{"version":3,"file":"scripts.min.js","mappings":"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","sources":["webpack://app-razor-tutorial/./node_modules/slidetoggle/dist/utils/Numbers.js","webpack://app-razor-tutorial/./node_modules/slidetoggle/dist/utils/Element.js","webpack://app-razor-tutorial/./node_modules/slidetoggle/dist/utils/Event.js","webpack://app-razor-tutorial/./node_modules/slidetoggle/dist/utils/Animate.js","webpack://app-razor-tutorial/./node_modules/slidetoggle/dist/common/hide.js","webpack://app-razor-tutorial/./node_modules/slidetoggle/dist/common/show.js","webpack://app-razor-tutorial/./node_modules/slidetoggle/dist/common/toggle.js","webpack://app-razor-tutorial/./node_modules/split.js/dist/split.es.js","webpack://app-razor-tutorial/./src/ts/accordions.ts","webpack://app-razor-tutorial/./src/ts/imgDemo.ts","webpack://app-razor-tutorial/./src/ts/index.ts","webpack://app-razor-tutorial/./src/ts/lib-2sxc-accordion.ts","webpack://app-razor-tutorial/./src/ts/snippets.ts","webpack://app-razor-tutorial/./src/ts/split.ts","webpack://app-razor-tutorial/webpack/bootstrap","webpack://app-razor-tutorial/webpack/runtime/define property getters","webpack://app-razor-tutorial/webpack/runtime/hasOwnProperty shorthand","webpack://app-razor-tutorial/webpack/runtime/make namespace object","webpack://app-razor-tutorial/webpack/startup"],"sourcesContent":["export var Numbers;\n(function (Numbers) {\n Numbers.parseOrElse = function (str, or) {\n if (or === void 0) { or = '0'; }\n if (str) {\n return parseInt(str);\n }\n return or && typeof or === 'string' ? parseInt(or) : 0;\n };\n})(Numbers || (Numbers = {}));\n//# sourceMappingURL=Numbers.js.map","import { Numbers } from './Numbers';\nexport var Element;\n(function (Element) {\n var isElement = function (element) { return element instanceof HTMLElement; };\n Element.setStyles = function (element, styles) {\n Object.keys(styles).map(function (key) {\n element.style[key] = styles[key];\n });\n };\n Element.getBoxStyles = function (element) {\n var computedValue = window.getComputedStyle(element);\n return {\n height: Numbers.parseOrElse(computedValue.height),\n padding: {\n top: Numbers.parseOrElse(computedValue.paddingTop),\n bottom: Numbers.parseOrElse(computedValue.paddingBottom),\n },\n border: {\n top: Numbers.parseOrElse(computedValue.borderTopWidth),\n bottom: Numbers.parseOrElse(computedValue.borderBottomWidth),\n },\n };\n };\n Element.getElement = function (element) {\n if (isElement(element)) {\n return element;\n }\n var elementFromSelector = document.querySelector(element);\n if (isElement(elementFromSelector)) {\n return elementFromSelector;\n }\n throw new Error('Your element does not exist in the DOM.');\n };\n Element.setAttribute = function (element, attribute, value) {\n element.setAttribute(attribute, value);\n };\n Element.getAttribute = function (element, attribute) {\n return element.getAttribute(attribute);\n };\n})(Element || (Element = {}));\n//# sourceMappingURL=Element.js.map","export var Events;\n(function (Events) {\n Events.on = function (element, event, callback) {\n element.addEventListener(event, callback);\n return {\n destroy: function () { return element && element.removeEventListener(event, callback); },\n };\n };\n})(Events || (Events = {}));\n//# sourceMappingURL=Event.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Element } from './Element';\nimport { Events } from './Event';\nexport var Animate;\n(function (Animate) {\n var slideToggleAttribute = 'data-slide-toggle';\n var onRequestAnimationFrame = function (callback) {\n requestAnimationFrame(callback);\n };\n var getTransition = function (options) {\n var _a = options.miliseconds, miliseconds = _a === void 0 ? 200 : _a, _b = options.transitionFunction, transitionFunction = _b === void 0 ? 'linear' : _b;\n return \"all \" + miliseconds + \"ms \" + transitionFunction + \" 0s\";\n };\n var isHidden = function (element) { return Element.getAttribute(element, slideToggleAttribute) === 'false'; };\n var isShown = function (element) { return Element.getAttribute(element, slideToggleAttribute) === 'true'; };\n Animate.shouldCollapse = function (element) {\n var attribute = Element.getAttribute(element, slideToggleAttribute);\n if (!attribute) {\n var height = Element.getBoxStyles(element).height;\n return height && height > 0;\n }\n return Element.getAttribute(element, slideToggleAttribute) === 'true';\n };\n Animate.hide = function (element, options) {\n var _a;\n if (isHidden(element)) {\n return;\n }\n (_a = options.onAnimationStart) === null || _a === void 0 ? void 0 : _a.call(options);\n var _b = Element.getBoxStyles(element), height = _b.height, boxStyles = __rest(_b, [\"height\"]);\n Element.setStyles(element, { transition: '' });\n onRequestAnimationFrame(function () {\n Element.setStyles(element, {\n overflow: 'hidden',\n height: height + \"px\",\n paddingTop: boxStyles.padding.top + \"px\",\n paddingBottom: boxStyles.padding.bottom + \"px\",\n borderTopWidth: boxStyles.border.top + \"px\",\n borderBottomWidth: boxStyles.border.bottom + \"px\",\n transition: getTransition(options),\n });\n onRequestAnimationFrame(function () {\n Element.setStyles(element, {\n height: '0',\n paddingTop: '0',\n paddingBottom: '0',\n borderTopWidth: '0',\n borderBottomWidth: '0',\n });\n var event = Events.on(element, 'transitionend', function () {\n var _a;\n event.destroy();\n (_a = options.onAnimationEnd) === null || _a === void 0 ? void 0 : _a.call(options);\n });\n });\n });\n Element.setAttribute(element, slideToggleAttribute, 'false');\n };\n Animate.show = function (element, options) {\n var _a;\n if (isShown(element)) {\n return;\n }\n var _b = options.elementDisplayStyle, elementDisplayStyle = _b === void 0 ? 'block' : _b;\n (_a = options.onAnimationStart) === null || _a === void 0 ? void 0 : _a.call(options);\n Element.setStyles(element, {\n transition: '',\n display: elementDisplayStyle,\n height: 'auto',\n paddingTop: '',\n paddingBottom: '',\n borderTopWidth: '',\n borderBottomWidth: '',\n });\n var _c = Element.getBoxStyles(element), height = _c.height, boxStyles = __rest(_c, [\"height\"]);\n Element.setStyles(element, {\n display: 'none',\n });\n onRequestAnimationFrame(function () {\n Element.setStyles(element, {\n display: elementDisplayStyle,\n overflow: 'hidden',\n height: '0',\n paddingTop: '0',\n paddingBottom: '0',\n borderTopWidth: '0',\n borderBottomWidth: '0',\n transition: getTransition(options),\n });\n onRequestAnimationFrame(function () {\n Element.setStyles(element, {\n height: height + \"px\",\n paddingTop: boxStyles.padding.top + \"px\",\n paddingBottom: boxStyles.padding.bottom + \"px\",\n borderTopWidth: boxStyles.border.top + \"px\",\n borderBottomWidth: boxStyles.border.bottom + \"px\",\n });\n var event = Events.on(element, 'transitionend', function () {\n var _a;\n Element.setStyles(element, {\n height: '',\n overflow: '',\n paddingTop: '',\n paddingBottom: '',\n borderTopWidth: '',\n borderBottomWidth: '',\n });\n event.destroy();\n (_a = options.onAnimationEnd) === null || _a === void 0 ? void 0 : _a.call(options);\n });\n });\n });\n Element.setAttribute(element, slideToggleAttribute, 'true');\n };\n})(Animate || (Animate = {}));\n//# sourceMappingURL=Animate.js.map","import { Animate, Element } from '../utils';\nvar Hide;\n(function (Hide) {\n Hide.on = function (element, options) {\n Animate.hide(element, options);\n };\n})(Hide || (Hide = {}));\nexport var hide = function (element, options) {\n Hide.on(Element.getElement(element), options);\n};\n//# sourceMappingURL=hide.js.map","import { Animate, Element } from '../utils';\nvar Show;\n(function (Show) {\n Show.on = function (element, options) {\n Animate.show(element, options);\n };\n})(Show || (Show = {}));\nexport var show = function (element, options) {\n Show.on(Element.getElement(element), options);\n};\n//# sourceMappingURL=show.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { Animate, Element } from '../utils';\nvar Toggle;\n(function (Toggle) {\n var onHideEnd = function (options) {\n return function () {\n var _a, _b;\n (_a = options.onClose) === null || _a === void 0 ? void 0 : _a.call(options);\n (_b = options.onAnimationEnd) === null || _b === void 0 ? void 0 : _b.call(options);\n };\n };\n var onShowEnd = function (options) {\n return function () {\n var _a, _b;\n (_a = options.onOpen) === null || _a === void 0 ? void 0 : _a.call(options);\n (_b = options.onAnimationEnd) === null || _b === void 0 ? void 0 : _b.call(options);\n };\n };\n Toggle.on = function (element, options) {\n if (Animate.shouldCollapse(element)) {\n Animate.hide(element, __assign(__assign({}, options), { onAnimationEnd: onHideEnd(options) }));\n }\n else {\n Animate.show(element, __assign(__assign({}, options), { onAnimationEnd: onShowEnd(options) }));\n }\n };\n})(Toggle || (Toggle = {}));\nexport var toggle = function (element, options) {\n Toggle.on(Element.getElement(element), options);\n};\n//# sourceMappingURL=toggle.js.map","// The programming goals of Split.js are to deliver readable, understandable and\n// maintainable code, while at the same time manually optimizing for tiny minified file size,\n// browser compatibility without additional requirements\n// and very few assumptions about the user's page layout.\nvar global = typeof window !== 'undefined' ? window : null;\nvar ssr = global === null;\nvar document = !ssr ? global.document : undefined;\n\n// Save a couple long function names that are used frequently.\n// This optimization saves around 400 bytes.\nvar addEventListener = 'addEventListener';\nvar removeEventListener = 'removeEventListener';\nvar getBoundingClientRect = 'getBoundingClientRect';\nvar gutterStartDragging = '_a';\nvar aGutterSize = '_b';\nvar bGutterSize = '_c';\nvar HORIZONTAL = 'horizontal';\nvar NOOP = function () { return false; };\n\n// Helper function determines which prefixes of CSS calc we need.\n// We only need to do this once on startup, when this anonymous function is called.\n//\n// Tests -webkit, -moz and -o prefixes. Modified from StackOverflow:\n// http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167\nvar calc = ssr\n ? 'calc'\n : ((['', '-webkit-', '-moz-', '-o-']\n .filter(function (prefix) {\n var el = document.createElement('div');\n el.style.cssText = \"width:\" + prefix + \"calc(9px)\";\n\n return !!el.style.length\n })\n .shift()) + \"calc\");\n\n// Helper function checks if its argument is a string-like type\nvar isString = function (v) { return typeof v === 'string' || v instanceof String; };\n\n// Helper function allows elements and string selectors to be used\n// interchangeably. In either case an element is returned. This allows us to\n// do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`.\nvar elementOrSelector = function (el) {\n if (isString(el)) {\n var ele = document.querySelector(el);\n if (!ele) {\n throw new Error((\"Selector \" + el + \" did not match a DOM element\"))\n }\n return ele\n }\n\n return el\n};\n\n// Helper function gets a property from the properties object, with a default fallback\nvar getOption = function (options, propName, def) {\n var value = options[propName];\n if (value !== undefined) {\n return value\n }\n return def\n};\n\nvar getGutterSize = function (gutterSize, isFirst, isLast, gutterAlign) {\n if (isFirst) {\n if (gutterAlign === 'end') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n } else if (isLast) {\n if (gutterAlign === 'start') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n }\n\n return gutterSize\n};\n\n// Default options\nvar defaultGutterFn = function (i, gutterDirection) {\n var gut = document.createElement('div');\n gut.className = \"gutter gutter-\" + gutterDirection;\n return gut\n};\n\nvar defaultElementStyleFn = function (dim, size, gutSize) {\n var style = {};\n\n if (!isString(size)) {\n style[dim] = calc + \"(\" + size + \"% - \" + gutSize + \"px)\";\n } else {\n style[dim] = size;\n }\n\n return style\n};\n\nvar defaultGutterStyleFn = function (dim, gutSize) {\n var obj;\n\n return (( obj = {}, obj[dim] = (gutSize + \"px\"), obj ));\n};\n\n// The main function to initialize a split. Split.js thinks about each pair\n// of elements as an independant pair. Dragging the gutter between two elements\n// only changes the dimensions of elements in that pair. This is key to understanding\n// how the following functions operate, since each function is bound to a pair.\n//\n// A pair object is shaped like this:\n//\n// {\n// a: DOM element,\n// b: DOM element,\n// aMin: Number,\n// bMin: Number,\n// dragging: Boolean,\n// parent: DOM element,\n// direction: 'horizontal' | 'vertical'\n// }\n//\n// The basic sequence:\n//\n// 1. Set defaults to something sane. `options` doesn't have to be passed at all.\n// 2. Initialize a bunch of strings based on the direction we're splitting.\n// A lot of the behavior in the rest of the library is paramatized down to\n// rely on CSS strings and classes.\n// 3. Define the dragging helper functions, and a few helpers to go with them.\n// 4. Loop through the elements while pairing them off. Every pair gets an\n// `pair` object and a gutter.\n// 5. Actually size the pair elements, insert gutters and attach event listeners.\nvar Split = function (idsOption, options) {\n if ( options === void 0 ) options = {};\n\n if (ssr) { return {} }\n\n var ids = idsOption;\n var dimension;\n var clientAxis;\n var position;\n var positionEnd;\n var clientSize;\n var elements;\n\n // Allow HTMLCollection to be used as an argument when supported\n if (Array.from) {\n ids = Array.from(ids);\n }\n\n // All DOM elements in the split should have a common parent. We can grab\n // the first elements parent and hope users read the docs because the\n // behavior will be whacky otherwise.\n var firstElement = elementOrSelector(ids[0]);\n var parent = firstElement.parentNode;\n var parentStyle = getComputedStyle ? getComputedStyle(parent) : null;\n var parentFlexDirection = parentStyle ? parentStyle.flexDirection : null;\n\n // Set default options.sizes to equal percentages of the parent element.\n var sizes = getOption(options, 'sizes') || ids.map(function () { return 100 / ids.length; });\n\n // Standardize minSize and maxSize to an array if it isn't already.\n // This allows minSize and maxSize to be passed as a number.\n var minSize = getOption(options, 'minSize', 100);\n var minSizes = Array.isArray(minSize) ? minSize : ids.map(function () { return minSize; });\n var maxSize = getOption(options, 'maxSize', Infinity);\n var maxSizes = Array.isArray(maxSize) ? maxSize : ids.map(function () { return maxSize; });\n\n // Get other options\n var expandToMin = getOption(options, 'expandToMin', false);\n var gutterSize = getOption(options, 'gutterSize', 10);\n var gutterAlign = getOption(options, 'gutterAlign', 'center');\n var snapOffset = getOption(options, 'snapOffset', 30);\n var snapOffsets = Array.isArray(snapOffset) ? snapOffset : ids.map(function () { return snapOffset; });\n var dragInterval = getOption(options, 'dragInterval', 1);\n var direction = getOption(options, 'direction', HORIZONTAL);\n var cursor = getOption(\n options,\n 'cursor',\n direction === HORIZONTAL ? 'col-resize' : 'row-resize'\n );\n var gutter = getOption(options, 'gutter', defaultGutterFn);\n var elementStyle = getOption(\n options,\n 'elementStyle',\n defaultElementStyleFn\n );\n var gutterStyle = getOption(options, 'gutterStyle', defaultGutterStyleFn);\n\n // 2. Initialize a bunch of strings based on the direction we're splitting.\n // A lot of the behavior in the rest of the library is paramatized down to\n // rely on CSS strings and classes.\n if (direction === HORIZONTAL) {\n dimension = 'width';\n clientAxis = 'clientX';\n position = 'left';\n positionEnd = 'right';\n clientSize = 'clientWidth';\n } else if (direction === 'vertical') {\n dimension = 'height';\n clientAxis = 'clientY';\n position = 'top';\n positionEnd = 'bottom';\n clientSize = 'clientHeight';\n }\n\n // 3. Define the dragging helper functions, and a few helpers to go with them.\n // Each helper is bound to a pair object that contains its metadata. This\n // also makes it easy to store references to listeners that that will be\n // added and removed.\n //\n // Even though there are no other functions contained in them, aliasing\n // this to self saves 50 bytes or so since it's used so frequently.\n //\n // The pair object saves metadata like dragging state, position and\n // event listener references.\n\n function setElementSize(el, size, gutSize, i) {\n // Split.js allows setting sizes via numbers (ideally), or if you must,\n // by string, like '300px'. This is less than ideal, because it breaks\n // the fluid layout that `calc(% - px)` provides. You're on your own if you do that,\n // make sure you calculate the gutter size by hand.\n var style = elementStyle(dimension, size, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n el.style[prop] = style[prop];\n });\n }\n\n function setGutterSize(gutterElement, gutSize, i) {\n var style = gutterStyle(dimension, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n gutterElement.style[prop] = style[prop];\n });\n }\n\n function getSizes() {\n return elements.map(function (element) { return element.size; })\n }\n\n // Supports touch events, but not multitouch, so only the first\n // finger `touches[0]` is counted.\n function getMousePosition(e) {\n if ('touches' in e) { return e.touches[0][clientAxis] }\n return e[clientAxis]\n }\n\n // Actually adjust the size of elements `a` and `b` to `offset` while dragging.\n // calc is used to allow calc(percentage + gutterpx) on the whole split instance,\n // which allows the viewport to be resized without additional logic.\n // Element a's size is the same as offset. b's size is total size - a size.\n // Both sizes are calculated from the initial parent percentage,\n // then the gutter size is subtracted.\n function adjust(offset) {\n var a = elements[this.a];\n var b = elements[this.b];\n var percentage = a.size + b.size;\n\n a.size = (offset / this.size) * percentage;\n b.size = percentage - (offset / this.size) * percentage;\n\n setElementSize(a.element, a.size, this[aGutterSize], a.i);\n setElementSize(b.element, b.size, this[bGutterSize], b.i);\n }\n\n // drag, where all the magic happens. The logic is really quite simple:\n //\n // 1. Ignore if the pair is not dragging.\n // 2. Get the offset of the event.\n // 3. Snap offset to min if within snappable range (within min + snapOffset).\n // 4. Actually adjust each element in the pair to offset.\n //\n // ---------------------------------------------------------------------\n // | | <- a.minSize || b.minSize -> | |\n // | | | <- this.snapOffset || this.snapOffset -> | | |\n // | | | || | | |\n // | | | || | | |\n // ---------------------------------------------------------------------\n // | <- this.start this.size -> |\n function drag(e) {\n var offset;\n var a = elements[this.a];\n var b = elements[this.b];\n\n if (!this.dragging) { return }\n\n // Get the offset of the event from the first side of the\n // pair `this.start`. Then offset by the initial position of the\n // mouse compared to the gutter size.\n offset =\n getMousePosition(e) -\n this.start +\n (this[aGutterSize] - this.dragOffset);\n\n if (dragInterval > 1) {\n offset = Math.round(offset / dragInterval) * dragInterval;\n }\n\n // If within snapOffset of min or max, set offset to min or max.\n // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both.\n // Include the appropriate gutter sizes to prevent overflows.\n if (offset <= a.minSize + a.snapOffset + this[aGutterSize]) {\n offset = a.minSize + this[aGutterSize];\n } else if (\n offset >=\n this.size - (b.minSize + b.snapOffset + this[bGutterSize])\n ) {\n offset = this.size - (b.minSize + this[bGutterSize]);\n }\n\n if (offset >= a.maxSize - a.snapOffset + this[aGutterSize]) {\n offset = a.maxSize + this[aGutterSize];\n } else if (\n offset <=\n this.size - (b.maxSize - b.snapOffset + this[bGutterSize])\n ) {\n offset = this.size - (b.maxSize + this[bGutterSize]);\n }\n\n // Actually adjust the size.\n adjust.call(this, offset);\n\n // Call the drag callback continously. Don't do anything too intensive\n // in this callback.\n getOption(options, 'onDrag', NOOP)(getSizes());\n }\n\n // Cache some important sizes when drag starts, so we don't have to do that\n // continously:\n //\n // `size`: The total size of the pair. First + second + first gutter + second gutter.\n // `start`: The leading side of the first element.\n //\n // ------------------------------------------------\n // | aGutterSize -> ||| |\n // | ||| |\n // | ||| |\n // | ||| <- bGutterSize |\n // ------------------------------------------------\n // | <- start size -> |\n function calculateSizes() {\n // Figure out the parent size minus padding.\n var a = elements[this.a].element;\n var b = elements[this.b].element;\n\n var aBounds = a[getBoundingClientRect]();\n var bBounds = b[getBoundingClientRect]();\n\n this.size =\n aBounds[dimension] +\n bBounds[dimension] +\n this[aGutterSize] +\n this[bGutterSize];\n this.start = aBounds[position];\n this.end = aBounds[positionEnd];\n }\n\n function innerSize(element) {\n // Return nothing if getComputedStyle is not supported (< IE9)\n // Or if parent element has no layout yet\n if (!getComputedStyle) { return null }\n\n var computedStyle = getComputedStyle(element);\n\n if (!computedStyle) { return null }\n\n var size = element[clientSize];\n\n if (size === 0) { return null }\n\n if (direction === HORIZONTAL) {\n size -=\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight);\n } else {\n size -=\n parseFloat(computedStyle.paddingTop) +\n parseFloat(computedStyle.paddingBottom);\n }\n\n return size\n }\n\n // When specifying percentage sizes that are less than the computed\n // size of the element minus the gutter, the lesser percentages must be increased\n // (and decreased from the other elements) to make space for the pixels\n // subtracted by the gutters.\n function trimToMin(sizesToTrim) {\n // Try to get inner size of parent element.\n // If it's no supported, return original sizes.\n var parentSize = innerSize(parent);\n if (parentSize === null) {\n return sizesToTrim\n }\n\n if (minSizes.reduce(function (a, b) { return a + b; }, 0) > parentSize) {\n return sizesToTrim\n }\n\n // Keep track of the excess pixels, the amount of pixels over the desired percentage\n // Also keep track of the elements with pixels to spare, to decrease after if needed\n var excessPixels = 0;\n var toSpare = [];\n\n var pixelSizes = sizesToTrim.map(function (size, i) {\n // Convert requested percentages to pixel sizes\n var pixelSize = (parentSize * size) / 100;\n var elementGutterSize = getGutterSize(\n gutterSize,\n i === 0,\n i === sizesToTrim.length - 1,\n gutterAlign\n );\n var elementMinSize = minSizes[i] + elementGutterSize;\n\n // If element is too smal, increase excess pixels by the difference\n // and mark that it has no pixels to spare\n if (pixelSize < elementMinSize) {\n excessPixels += elementMinSize - pixelSize;\n toSpare.push(0);\n return elementMinSize\n }\n\n // Otherwise, mark the pixels it has to spare and return it's original size\n toSpare.push(pixelSize - elementMinSize);\n return pixelSize\n });\n\n // If nothing was adjusted, return the original sizes\n if (excessPixels === 0) {\n return sizesToTrim\n }\n\n return pixelSizes.map(function (pixelSize, i) {\n var newPixelSize = pixelSize;\n\n // While there's still pixels to take, and there's enough pixels to spare,\n // take as many as possible up to the total excess pixels\n if (excessPixels > 0 && toSpare[i] - excessPixels > 0) {\n var takenPixels = Math.min(\n excessPixels,\n toSpare[i] - excessPixels\n );\n\n // Subtract the amount taken for the next iteration\n excessPixels -= takenPixels;\n newPixelSize = pixelSize - takenPixels;\n }\n\n // Return the pixel size adjusted as a percentage\n return (newPixelSize / parentSize) * 100\n })\n }\n\n // stopDragging is very similar to startDragging in reverse.\n function stopDragging() {\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n if (self.dragging) {\n getOption(options, 'onDragEnd', NOOP)(getSizes());\n }\n\n self.dragging = false;\n\n // Remove the stored event listeners. This is why we store them.\n global[removeEventListener]('mouseup', self.stop);\n global[removeEventListener]('touchend', self.stop);\n global[removeEventListener]('touchcancel', self.stop);\n global[removeEventListener]('mousemove', self.move);\n global[removeEventListener]('touchmove', self.move);\n\n // Clear bound function references\n self.stop = null;\n self.move = null;\n\n a[removeEventListener]('selectstart', NOOP);\n a[removeEventListener]('dragstart', NOOP);\n b[removeEventListener]('selectstart', NOOP);\n b[removeEventListener]('dragstart', NOOP);\n\n a.style.userSelect = '';\n a.style.webkitUserSelect = '';\n a.style.MozUserSelect = '';\n a.style.pointerEvents = '';\n\n b.style.userSelect = '';\n b.style.webkitUserSelect = '';\n b.style.MozUserSelect = '';\n b.style.pointerEvents = '';\n\n self.gutter.style.cursor = '';\n self.parent.style.cursor = '';\n document.body.style.cursor = '';\n }\n\n // startDragging calls `calculateSizes` to store the inital size in the pair object.\n // It also adds event listeners for mouse/touch events,\n // and prevents selection while dragging so avoid the selecting text.\n function startDragging(e) {\n // Right-clicking can't start dragging.\n if ('button' in e && e.button !== 0) {\n return\n }\n\n // Alias frequently used variables to save space. 200 bytes.\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n // Call the onDragStart callback.\n if (!self.dragging) {\n getOption(options, 'onDragStart', NOOP)(getSizes());\n }\n\n // Don't actually drag the element. We emulate that in the drag function.\n e.preventDefault();\n\n // Set the dragging property of the pair object.\n self.dragging = true;\n\n // Create two event listeners bound to the same pair object and store\n // them in the pair object.\n self.move = drag.bind(self);\n self.stop = stopDragging.bind(self);\n\n // All the binding. `window` gets the stop events in case we drag out of the elements.\n global[addEventListener]('mouseup', self.stop);\n global[addEventListener]('touchend', self.stop);\n global[addEventListener]('touchcancel', self.stop);\n global[addEventListener]('mousemove', self.move);\n global[addEventListener]('touchmove', self.move);\n\n // Disable selection. Disable!\n a[addEventListener]('selectstart', NOOP);\n a[addEventListener]('dragstart', NOOP);\n b[addEventListener]('selectstart', NOOP);\n b[addEventListener]('dragstart', NOOP);\n\n a.style.userSelect = 'none';\n a.style.webkitUserSelect = 'none';\n a.style.MozUserSelect = 'none';\n a.style.pointerEvents = 'none';\n\n b.style.userSelect = 'none';\n b.style.webkitUserSelect = 'none';\n b.style.MozUserSelect = 'none';\n b.style.pointerEvents = 'none';\n\n // Set the cursor at multiple levels\n self.gutter.style.cursor = cursor;\n self.parent.style.cursor = cursor;\n document.body.style.cursor = cursor;\n\n // Cache the initial sizes of the pair.\n calculateSizes.call(self);\n\n // Determine the position of the mouse compared to the gutter\n self.dragOffset = getMousePosition(e) - self.end;\n }\n\n // adjust sizes to ensure percentage is within min size and gutter.\n sizes = trimToMin(sizes);\n\n // 5. Create pair and element objects. Each pair has an index reference to\n // elements `a` and `b` of the pair (first and second elements).\n // Loop through the elements while pairing them off. Every pair gets a\n // `pair` object and a gutter.\n //\n // Basic logic:\n //\n // - Starting with the second element `i > 0`, create `pair` objects with\n // `a = i - 1` and `b = i`\n // - Set gutter sizes based on the _pair_ being first/last. The first and last\n // pair have gutterSize / 2, since they only have one half gutter, and not two.\n // - Create gutter elements and add event listeners.\n // - Set the size of the elements, minus the gutter sizes.\n //\n // -----------------------------------------------------------------------\n // | i=0 | i=1 | i=2 | i=3 |\n // | | | | |\n // | pair 0 pair 1 pair 2 |\n // | | | | |\n // -----------------------------------------------------------------------\n var pairs = [];\n elements = ids.map(function (id, i) {\n // Create the element object.\n var element = {\n element: elementOrSelector(id),\n size: sizes[i],\n minSize: minSizes[i],\n maxSize: maxSizes[i],\n snapOffset: snapOffsets[i],\n i: i,\n };\n\n var pair;\n\n if (i > 0) {\n // Create the pair object with its metadata.\n pair = {\n a: i - 1,\n b: i,\n dragging: false,\n direction: direction,\n parent: parent,\n };\n\n pair[aGutterSize] = getGutterSize(\n gutterSize,\n i - 1 === 0,\n false,\n gutterAlign\n );\n pair[bGutterSize] = getGutterSize(\n gutterSize,\n false,\n i === ids.length - 1,\n gutterAlign\n );\n\n // if the parent has a reverse flex-direction, switch the pair elements.\n if (\n parentFlexDirection === 'row-reverse' ||\n parentFlexDirection === 'column-reverse'\n ) {\n var temp = pair.a;\n pair.a = pair.b;\n pair.b = temp;\n }\n }\n\n // Determine the size of the current element. IE8 is supported by\n // staticly assigning sizes without draggable gutters. Assigns a string\n // to `size`.\n //\n // Create gutter elements for each pair.\n if (i > 0) {\n var gutterElement = gutter(i, direction, element.element);\n setGutterSize(gutterElement, gutterSize, i);\n\n // Save bound event listener for removal later\n pair[gutterStartDragging] = startDragging.bind(pair);\n\n // Attach bound event listener\n gutterElement[addEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n gutterElement[addEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n\n parent.insertBefore(gutterElement, element.element);\n\n pair.gutter = gutterElement;\n }\n\n setElementSize(\n element.element,\n element.size,\n getGutterSize(\n gutterSize,\n i === 0,\n i === ids.length - 1,\n gutterAlign\n ),\n i\n );\n\n // After the first iteration, and we have a pair object, append it to the\n // list of pairs.\n if (i > 0) {\n pairs.push(pair);\n }\n\n return element\n });\n\n function adjustToMin(element) {\n var isLast = element.i === pairs.length;\n var pair = isLast ? pairs[element.i - 1] : pairs[element.i];\n\n calculateSizes.call(pair);\n\n var size = isLast\n ? pair.size - element.minSize - pair[bGutterSize]\n : element.minSize + pair[aGutterSize];\n\n adjust.call(pair, size);\n }\n\n elements.forEach(function (element) {\n var computedSize = element.element[getBoundingClientRect]()[dimension];\n\n if (computedSize < element.minSize) {\n if (expandToMin) {\n adjustToMin(element);\n } else {\n // eslint-disable-next-line no-param-reassign\n element.minSize = computedSize;\n }\n }\n });\n\n function setSizes(newSizes) {\n var trimmed = trimToMin(newSizes);\n trimmed.forEach(function (newSize, i) {\n if (i > 0) {\n var pair = pairs[i - 1];\n\n var a = elements[pair.a];\n var b = elements[pair.b];\n\n a.size = trimmed[i - 1];\n b.size = newSize;\n\n setElementSize(a.element, a.size, pair[aGutterSize], a.i);\n setElementSize(b.element, b.size, pair[bGutterSize], b.i);\n }\n });\n }\n\n function destroy(preserveStyles, preserveGutter) {\n pairs.forEach(function (pair) {\n if (preserveGutter !== true) {\n pair.parent.removeChild(pair.gutter);\n } else {\n pair.gutter[removeEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n pair.gutter[removeEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n }\n\n if (preserveStyles !== true) {\n var style = elementStyle(\n dimension,\n pair.a.size,\n pair[aGutterSize]\n );\n\n Object.keys(style).forEach(function (prop) {\n elements[pair.a].element.style[prop] = '';\n elements[pair.b].element.style[prop] = '';\n });\n }\n });\n }\n\n return {\n setSizes: setSizes,\n getSizes: getSizes,\n collapse: function collapse(i) {\n adjustToMin(elements[i]);\n },\n destroy: destroy,\n parent: parent,\n pairs: pairs,\n }\n};\n\nexport default Split;\n","interface AccordionData {\r\n nameId: string;\r\n isOpen: boolean;\r\n}\r\n\r\nexport function initToggleAll(data?: AccordionData) {\r\n var button = document.getElementById(`accordion-toggle-${data?.nameId}`);\r\n button.innerHTML = data?.isOpen ? \"Collapse all\" : \"Expand all\";\r\n button.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n const nameId = button.getAttribute(\"data-id\");\r\n\r\n toggleAllAccordions(nameId);\r\n });\r\n}\r\n\r\nfunction toggleAllAccordions(nameId: string) {\r\n var button = document.getElementById(`accordion-toggle-${nameId}`);\r\n var containerWithNameId = document.getElementById(nameId);\r\n var accordionHeaders = containerWithNameId.querySelectorAll(\r\n \".accordion-header button\"\r\n );\r\n var accordionCollapses = containerWithNameId.querySelectorAll(\r\n \".accordion-collapse\"\r\n );\r\n\r\n var isCollapsed = Array.from(accordionHeaders).some(function (header) {\r\n return header.classList.contains(\"collapsed\");\r\n });\r\n\r\n if (isCollapsed) {\r\n button.innerHTML = \"Collapse all\";\r\n accordionHeaders.forEach((header) => {\r\n header.classList.remove(\"collapsed\");\r\n });\r\n accordionCollapses.forEach((collapse) => {\r\n collapse.classList.add(\"show\");\r\n });\r\n } else {\r\n button.innerHTML = \"Expand all\";\r\n accordionHeaders.forEach((header) => {\r\n header.classList.add(\"collapsed\");\r\n });\r\n accordionCollapses.forEach((collapse) => {\r\n collapse.classList.remove(\"show\");\r\n });\r\n }\r\n}\r\n","\r\nexport function createImgDemo() {\r\n var winAny = window as any;\r\n winAny.imgDemo = {\r\n /** Start the system with the class name marking all labels */\r\n start: function(lblClassId: string) {\r\n var labels = document.querySelectorAll('.' + lblClassId);\r\n // console.log(\"labels\", labels);\r\n // return;\r\n labels.forEach(function (label) {\r\n // console.log(\"label\", label);\r\n var parts = winAny.imgDemo.getImgAndLabel(label);\r\n winAny.imgDemo.showCurrentSrc(parts, 'start');\r\n parts.img.onload = function () { winAny.imgDemo.showCurrentSrc(parts, 'repeat'); }\r\n\r\n });\r\n },\r\n\r\n /** Find the label object and find the matching image */\r\n getImgAndLabel: function(labelId: string) {\r\n // find the label\r\n const label = typeof(labelId) == 'string' \r\n ? document.querySelector(labelId)\r\n : labelId;\r\n\r\n // based on the label, try to find the image\r\n // console.log(\"label\", label);\r\n var labelParentDiv = label.parentElement;\r\n // console.log(\"labelParentDiv\", labelParentDiv);\r\n // based on the parent, find the next image sibling\r\n var img = labelParentDiv.nextElementSibling;\r\n // console.log(\"img\", img);\r\n\r\n // if still null, it's because it's wrapped inside the tag\r\n if (img == null)\r\n img = labelParentDiv.parentElement.nextElementSibling;\r\n\r\n // if the img is actually a picture tag, find the inner img\r\n if (img.tagName == \"PICTURE\")\r\n img = img.getElementsByTagName('img')[0];\r\n\r\n // console.log(\"img\", img != null);\r\n return { img, label };\r\n },\r\n\r\n /** Show the currentSrc in the label */\r\n showCurrentSrc: function(parts: any, note: string) {\r\n // log for debugging\r\n // console.log('showCurrentSrc-' + note, parts);\r\n let src = parts.img.currentSrc;\r\n if (!src) return;\r\n const lastSlash = src.lastIndexOf('/');\r\n src = \"...\" + src.substring(lastSlash);\r\n parts.label.innerHTML = 'CurrentSrc:' + src;\r\n },\r\n};\r\n\r\n\r\n}","import { show, toggle } from 'slidetoggle';\r\nimport { initAccordion } from './lib-2sxc-accordion';\r\nimport { AccordionOptions } from './lib-2sxc-accordion-options';\r\nimport { initRevealers } from './snippets';\r\nimport { initSplit } from './split';\r\nimport { createImgDemo } from './imgDemo';\r\nimport { initToggleAll } from './accordions';\r\ndeclare let ace: any;\r\n\r\nfunction initSourceCode({ domAttribute, aceOptions }: { domAttribute: string, aceOptions: { sourceCodeId: string, language: string, wrap: boolean } }) { \r\n // debug\r\n // console.log('args', arguments);\r\n\r\n // set base path - in case it's loaded as a module or similar and doesn't know its path\r\n // you can always debug this in the browser using commands such as:\r\n // ace.config.get('themePath')\r\n const acePath = \"https://cdn.jsdelivr.net/npm/ace-builds@1.35.2/src-noconflict\";\r\n ace.config.set('basePath', acePath);\r\n ace.config.set('themePath', acePath);\r\n ace.config.set('modePath', acePath);\r\n // console.log('ace.config', ace.config);\r\n\r\n // set theme\r\n let editor = ace.edit(aceOptions.sourceCodeId, { \r\n wrap: true,\r\n maxLines: 30\r\n });\r\n\r\n // console.log('editor', editor, editor.getOptions());\r\n\r\n editor.setTheme(\"ace/theme/sqlserver\");\r\n editor.session.setMode(aceOptions.language);\r\n editor.session.setOptions({\r\n wrap: aceOptions.wrap,\r\n });\r\n\r\n // enable collapse\r\n let codeBlockHeader = document.querySelector(`[${domAttribute}] .header:not(.active)`);\r\n if (codeBlockHeader == null) return;\r\n\r\n let codeBlock = codeBlockHeader.parentElement;\r\n codeBlockHeader.classList.add(\"active\");\r\n\r\n codeBlockHeader.addEventListener(\"click\", () => {\r\n toggle((codeBlock.querySelector(\".source-code\") as HTMLElement), {});\r\n codeBlock.classList.toggle(\"is-expanded\");\r\n })\r\n}\r\n\r\nexport function showParentSections(targetOpenElem: HTMLElement, options: AccordionOptions) {\r\n let parentSection = targetOpenElem.parentElement.closest(`[${options.attrChild}]`) as HTMLElement;\r\n if (parentSection == null) return\r\n parentSection.parentElement.classList.add(`${options.classIsExpanded}`);\r\n\r\n show(parentSection, {})\r\n}\r\n\r\nvar winAny = window as any;\r\nwinAny.razorTutorial ??= {};\r\nwinAny.razorTutorial.initAccordion ??= initAccordion;\r\nwinAny.razorTutorial.initSourceCode ??= initSourceCode;\r\n\r\n// Get snippets ready\r\nwinAny.snippets ??= {};\r\nwinAny.snippets.initRevealers ??= initRevealers;\r\n\r\n// Get splitter ready\r\nwinAny.splitter ??= {};\r\nwinAny.splitter.init ??= initSplit;\r\n\r\n// Get the imgDemo ready\r\ncreateImgDemo();\r\n\r\nwinAny.tutAccordions ??= {};\r\nwinAny.tutAccordions.init ??= initToggleAll;\r\n\r\n","import { hide, show, toggle } from 'slidetoggle';\r\nimport { showParentSections } from '.';\r\nimport { AccordionOptions } from './lib-2sxc-accordion-options';\r\n\r\n/*\r\n This is a shared code used in various 2sxc apps. Make sure that they are in sync, so if you improve it, improve all 2sxc apps which use this. \r\n ATM they are:\r\n - Accordion\r\n - FAQ\r\n - App School System\r\n\r\n The master with the newest / best version must always be the Accordion, the others should then get a fresh copy.\r\n Because this is shared, all parameters like DOM-IDs etc. must be provided in the Init-call that it can work across apps\r\n*/ \r\n\r\n// THIS FILE HAS MINOR MODIFICATIONS\r\n// - noHash because of Oqtane ca. line 38\r\n// - SEE LINE ca. 59\r\n\r\nexport function initAccordion({ domId, options } : { domId: string, options: AccordionOptions }) {\r\n // get navHight for correct scrollposition\r\n let nav = (document.getElementsByTagName(options.tagStickyHeader)[0] as HTMLElement);\r\n let navHeight = (nav != null ? nav.offsetHeight : 0);\r\n\r\n // attach click to all accordions when loading\r\n let accordionOpener = document.querySelectorAll(`[${options.attrParent}]`);\r\n\r\n accordionOpener.forEach ((elem: HTMLElement, index) => {\r\n elem.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n\r\n const currentElem = event.currentTarget as HTMLElement;\r\n const hash = currentElem.dataset.accordionParent;\r\n const parent = currentElem.parentElement;\r\n const targetOpenElem = document.querySelector(`[${options.attrChild}=\"${hash}\"`) as HTMLElement;\r\n\r\n // add hash to url\r\n if (!options.noHash)\r\n location.hash = hash;\r\n\r\n // open / close mechanic for slide\r\n toggle(targetOpenElem, {});\r\n parent.classList.toggle(`${options.classIsExpanded}`);\r\n })\r\n });\r\n\r\n // get hash from url and open specific item\r\n if (window.location.hash) {\r\n const hash = window.location.hash.replace('#', '');\r\n const targetHashElem = document.querySelector(`[${options.attrChild}=\"${hash}\"]`) as HTMLElement;\r\n \r\n // if target element exists scroll to element and open it\r\n if (targetHashElem) {\r\n // ADD THIS FUNCTION AFTER LIBRARY UPDATE: \r\n showParentSections(targetHashElem, options);\r\n\r\n \r\n setTimeout(() => {\r\n \r\n // open accordion\r\n show(targetHashElem, {\r\n onAnimationEnd: () => {\r\n const elemOffsetX = targetHashElem.getBoundingClientRect().top + window.scrollY - navHeight;\r\n targetHashElem.parentElement.classList.add(`${options.classIsExpanded}`);\r\n \r\n // scroll to element which should open then\r\n window.scrollTo({\r\n top: elemOffsetX,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n })\r\n })\r\n }\r\n }\r\n}","// 2dm 2023-05-04 I believe this is actually not in use\r\n// Will remove the TurnOn for now, and monitor\r\n// probably delete ca. 2023-06\r\nexport function initRevealers() { \r\n const sections = document.querySelectorAll(\"snippet.reveal-on-h3\");\r\n // console.log('sections', sections, sections.length);\r\n\r\n sections.forEach ((sect) => {\r\n const h3 = sect.querySelector(\"h3\");\r\n // console.log('t', sect, 'h3', h3);\r\n if (h3 != null)\r\n h3.addEventListener(\"click\", () => {\r\n sect.classList.toggle('reveal');\r\n });\r\n });\r\n}","import Split from 'split.js';\r\n\r\nexport function initSplit(data: SplitOptions) {\r\n // console.log('initSplit', data);\r\n const options: Split.Options = {\r\n gutter: (index, direction) => {\r\n // most code copied from https://github.com/nathancahill/split/tree/master/packages/splitjs\r\n // but we added a more custom class splitter-gutter\r\n const gutter = document.createElement('div')\r\n gutter.className = `gutter gutter-${direction} splitter-gutter`\r\n return gutter\r\n },\r\n ...data.options,\r\n };\r\n Split(data.parts, options);\r\n}\r\n\r\n\r\ninterface SplitOptions {\r\n parts: string[];\r\n options: Split.Options;\r\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(294);\n"],"names":["Numbers","Element","Events","parseOrElse","str","or","parseInt","isElement","element","HTMLElement","setStyles","styles","Object","keys","map","key","style","getBoxStyles","computedValue","window","getComputedStyle","height","padding","top","paddingTop","bottom","paddingBottom","border","borderTopWidth","borderBottomWidth","getElement","elementFromSelector","document","querySelector","Error","setAttribute","attribute","value","getAttribute","on","event","callback","addEventListener","destroy","removeEventListener","Animate","Hide","__rest","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","slideToggleAttribute","onRequestAnimationFrame","requestAnimationFrame","getTransition","options","_a","miliseconds","_b","transitionFunction","shouldCollapse","hide","isHidden","onAnimationStart","boxStyles","transition","overflow","onAnimationEnd","show","isShown","elementDisplayStyle","display","_c","Show","Toggle","__assign","assign","n","arguments","apply","this","onHideEnd","onClose","onShowEnd","onOpen","toggle","global","ssr","undefined","HORIZONTAL","NOOP","calc","filter","prefix","el","createElement","cssText","shift","isString","v","String","elementOrSelector","ele","getOption","propName","def","getGutterSize","gutterSize","isFirst","isLast","gutterAlign","defaultGutterFn","gutterDirection","gut","className","defaultElementStyleFn","dim","size","gutSize","defaultGutterStyleFn","obj","idsOption","dimension","clientAxis","position","positionEnd","clientSize","elements","ids","Array","from","parent","parentNode","parentStyle","parentFlexDirection","flexDirection","sizes","minSize","minSizes","isArray","maxSize","Infinity","maxSizes","expandToMin","snapOffset","snapOffsets","dragInterval","direction","cursor","gutter","elementStyle","gutterStyle","setElementSize","forEach","prop","getSizes","getMousePosition","touches","adjust","offset","a","b","percentage","drag","dragging","start","dragOffset","Math","round","calculateSizes","aBounds","bBounds","end","trimToMin","sizesToTrim","parentSize","computedStyle","parseFloat","paddingLeft","paddingRight","innerSize","reduce","excessPixels","toSpare","pixelSizes","pixelSize","elementGutterSize","elementMinSize","push","newPixelSize","takenPixels","min","stopDragging","self","stop","move","userSelect","webkitUserSelect","MozUserSelect","pointerEvents","body","startDragging","button","preventDefault","bind","pairs","adjustToMin","pair","id","temp","gutterElement","setGutterSize","insertBefore","computedSize","setSizes","newSizes","trimmed","newSize","collapse","preserveStyles","preserveGutter","removeChild","data","getElementById","nameId","innerHTML","isOpen","containerWithNameId","accordionHeaders","querySelectorAll","accordionCollapses","some","header","classList","contains","remove","add","toggleAllAccordions","winAny","imgDemo","lblClassId","label","parts","getImgAndLabel","showCurrentSrc","img","onload","labelId","labelParentDiv","parentElement","nextElementSibling","tagName","getElementsByTagName","note","src","currentSrc","lastSlash","lastIndexOf","substring","targetOpenElem","parentSection","closest","attrChild","classIsExpanded","razorTutorial","initAccordion","initSourceCode","domAttribute","aceOptions","acePath","ace","config","set","editor","edit","sourceCodeId","wrap","maxLines","setTheme","session","setMode","language","setOptions","codeBlockHeader","codeBlock","snippets","initRevealers","splitter","init","initSplit","createImgDemo","tutAccordions","initToggleAll","domId","nav","tagStickyHeader","navHeight","offsetHeight","attrParent","elem","index","currentElem","currentTarget","hash","dataset","accordionParent","noHash","location","replace","targetHashElem","showParentSections","setTimeout","elemOffsetX","getBoundingClientRect","scrollY","scrollTo","left","behavior","sect","h3","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","d","definition","o","defineProperty","enumerable","get","r","Symbol","toStringTag"],"sourceRoot":""}