@expressivecss/expressive 0.1.0-alpha.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +82 -2
- package/README.md +153 -43
- package/dist/css/expressive.css +7066 -9658
- package/dist/css/expressive.css.map +1 -0
- package/dist/css/expressive.min.css +1 -1
- package/dist/css/expressive.min.css.map +1 -0
- package/dist/js/expressive.cjs +7451 -0
- package/dist/js/expressive.cjs.map +7 -0
- package/dist/js/expressive.js +7313 -8099
- package/dist/js/expressive.js.map +7 -1
- package/dist/js/expressive.min.js +75 -1
- package/dist/js/expressive.min.js.map +7 -1
- package/dist/js/expressive.mjs +7222 -7998
- package/dist/js/expressive.mjs.map +7 -1
- package/dist/{js → types}/components/autocomplete.d.ts +10 -1
- package/dist/{js → types}/components/buttons.d.ts +11 -1
- package/dist/{js → types}/components/cards.d.ts +10 -1
- package/dist/{js → types}/components/carousel.d.ts +4 -5
- package/dist/{js/forms/character-counter.d.ts → types/components/characterCounter.d.ts} +1 -1
- package/dist/{js → types}/components/chips.d.ts +1 -1
- package/dist/{js → types}/components/collapsible.d.ts +1 -1
- package/dist/{js → types}/components/datepicker.d.ts +63 -2
- package/dist/{js → types}/components/dropdown.d.ts +3 -3
- package/dist/types/components/index.d.ts +23 -0
- package/dist/{js/components/materialbox.d.ts → types/components/lightbox.d.ts} +21 -21
- package/dist/{js → types}/components/modal.d.ts +1 -1
- package/dist/{js → types}/components/parallax.d.ts +11 -5
- package/dist/{js → types}/components/pushpin.d.ts +1 -1
- package/dist/{js/forms → types/components}/range.d.ts +3 -3
- package/dist/types/components/registry.d.ts +107 -0
- package/dist/{js → types}/components/scrollspy.d.ts +6 -9
- package/dist/{js/forms → types/components}/select.d.ts +11 -2
- package/dist/{js → types}/components/sidenav.d.ts +1 -1
- package/dist/{js → types}/components/slider.d.ts +3 -2
- package/dist/{js → types}/components/tabs.d.ts +3 -2
- package/dist/{js/components/tap-target.d.ts → types/components/tapTarget.d.ts} +2 -2
- package/dist/{js → types}/components/timepicker.d.ts +13 -5
- package/dist/{js/components/toast.d.ts → types/components/toasts.d.ts} +28 -4
- package/dist/{js → types}/components/tooltip.d.ts +2 -2
- package/dist/types/core/bounding.d.ts +6 -0
- package/dist/{js/foundation → types/core}/component.d.ts +1 -1
- package/dist/types/core/edges.d.ts +6 -0
- package/dist/{js/foundation → types/core}/utils.d.ts +21 -14
- package/dist/types/index.d.ts +6 -0
- package/dist/{js/plugins/docked-display.d.ts → types/plugins/dockedDisplayPlugin.d.ts} +7 -0
- package/package.json +60 -36
- package/src/sass/README.md +200 -0
- package/src/sass/abstracts/_breakpoints.scss +69 -0
- package/src/sass/abstracts/_elevation.scss +34 -0
- package/src/sass/abstracts/_index.scss +7 -0
- package/src/sass/abstracts/_mixins.scss +171 -0
- package/src/sass/abstracts/_variables.scss +57 -0
- package/src/{scss/layout/_table.scss → sass/base/_global.scss} +64 -2
- package/src/{scss/layout → sass/base}/_grid.scss +6 -6
- package/src/sass/base/_index.scss +6 -0
- package/src/{scss/foundation → sass/base}/_normalize.scss +51 -139
- package/src/sass/base/_typography.scss +90 -0
- package/src/sass/components/_badges.scss +77 -0
- package/src/{scss → sass}/components/_breadcrumb.scss +2 -0
- package/src/sass/components/_buttons.scss +407 -0
- package/src/sass/components/_cards.scss +328 -0
- package/src/{scss → sass}/components/_carousel.scss +5 -3
- package/src/sass/components/_chips.scss +140 -0
- package/src/sass/components/_collapsible.scss +81 -0
- package/src/{scss → sass}/components/_collection.scss +2 -2
- package/src/{scss/components/_date-picker.scss → sass/components/_datepicker.scss} +51 -44
- package/src/sass/components/_docked-display.scss +11 -0
- package/src/sass/components/_dropdown.scss +129 -0
- package/src/{scss/components/_material-icons.scss → sass/components/_icons-material-design.scss} +2 -0
- package/src/sass/components/_index.scss +35 -0
- package/src/{scss/components/_material-box.scss → sass/components/_lightbox.scss} +6 -4
- package/src/sass/components/_modal.scss +144 -0
- package/src/sass/components/_navbar.scss +345 -0
- package/src/{scss/layout/_footer.scss → sass/components/_page-footer.scss} +7 -6
- package/src/{scss → sass}/components/_pagination.scss +4 -3
- package/src/{scss → sass}/components/_parallax.scss +4 -1
- package/src/{scss → sass}/components/_preloader.scss +19 -97
- package/src/{scss → sass}/components/_pulse.scss +2 -0
- package/src/sass/components/_pushpin.scss +11 -0
- package/src/{scss → sass}/components/_sidenav.scss +99 -82
- package/src/{scss → sass}/components/_slider.scss +3 -1
- package/src/{scss/components/_table-of-contents.scss → sass/components/_table_of_contents.scss} +2 -0
- package/src/sass/components/_tabs.scss +232 -0
- package/src/{scss/components/_tap-target.scss → sass/components/_tapTarget.scss} +24 -22
- package/src/{scss/components/_time-picker.scss → sass/components/_timepicker.scss} +56 -56
- package/src/sass/components/_toast.scss +260 -0
- package/src/sass/components/_toolbar.scss +192 -0
- package/src/sass/components/_tooltip.scss +166 -0
- package/src/{scss → sass}/components/_transitions.scss +4 -4
- package/src/sass/components/forms/_checkboxes.scss +288 -0
- package/src/sass/components/forms/_fieldset.scss +128 -0
- package/src/{scss → sass/components}/forms/_file-input.scss +11 -9
- package/src/{scss → sass/components}/forms/_index.scss +2 -0
- package/src/sass/components/forms/_input-fields.scss +326 -0
- package/src/sass/components/forms/_radio-buttons.scss +190 -0
- package/src/sass/components/forms/_range.scss +310 -0
- package/src/sass/components/forms/_select.scss +103 -0
- package/src/sass/components/forms/_switches.scss +239 -0
- package/src/sass/expressive.scss +60 -0
- package/src/sass/tokens/_index.scss +4 -0
- package/src/sass/tokens/_reference.scss +265 -0
- package/src/sass/tokens/_theme.scss +49 -0
- package/src/{scss → sass}/utilities/_helpers.scss +33 -30
- package/src/sass/utilities/_index.scss +8 -0
- package/src/{scss → sass}/utilities/_spacing.scss +4 -3
- package/src/sass/utilities/_typescale.scss +45 -0
- package/src/sass/utilities/_visibility.scss +63 -0
- package/src/sass/utilities/_z-depth.scss +18 -0
- package/dist/js/components/index.d.ts +0 -21
- package/dist/js/forms/index.d.ts +0 -4
- package/dist/js/foundation/index.d.ts +0 -2
- package/dist/js/index.d.ts +0 -52
- package/dist/js/plugins/index.d.ts +0 -1
- package/src/scss/components/_appbar.scss +0 -454
- package/src/scss/components/_badges.scss +0 -77
- package/src/scss/components/_buttons.scss +0 -412
- package/src/scss/components/_cards.scss +0 -267
- package/src/scss/components/_chips.scss +0 -147
- package/src/scss/components/_collapsible.scss +0 -84
- package/src/scss/components/_dropdown.scss +0 -98
- package/src/scss/components/_index.scss +0 -28
- package/src/scss/components/_modal.scss +0 -84
- package/src/scss/components/_tabs.scss +0 -176
- package/src/scss/components/_toast.scss +0 -70
- package/src/scss/components/_tooltip.scss +0 -49
- package/src/scss/components/_video.scss +0 -15
- package/src/scss/expressive.scss +0 -7
- package/src/scss/forms/_checkboxes.scss +0 -199
- package/src/scss/forms/_input-fields.scss +0 -360
- package/src/scss/forms/_radio-buttons.scss +0 -114
- package/src/scss/forms/_range.scss +0 -148
- package/src/scss/forms/_select.scss +0 -108
- package/src/scss/forms/_switches.scss +0 -127
- package/src/scss/foundation/_base.scss +0 -71
- package/src/scss/foundation/_color-palette.scss +0 -402
- package/src/scss/foundation/_index.scss +0 -10
- package/src/scss/foundation/_mixins.scss +0 -198
- package/src/scss/foundation/_motion.scss +0 -70
- package/src/scss/foundation/_shape.scss +0 -30
- package/src/scss/foundation/_state-layers.scss +0 -68
- package/src/scss/foundation/_theme.scss +0 -238
- package/src/scss/foundation/_tokens.scss +0 -511
- package/src/scss/foundation/_variables.scss +0 -57
- package/src/scss/layout/_index.scss +0 -3
- package/src/scss/utilities/_a11y.scss +0 -77
- package/src/scss/utilities/_elevation.scss +0 -63
- package/src/scss/utilities/_index.scss +0 -7
- package/src/scss/utilities/_responsive.scss +0 -62
- package/src/scss/utilities/_typography.scss +0 -115
- /package/dist/{js/forms → types/behaviors}/forms.d.ts +0 -0
- /package/dist/{js/components → types/behaviors}/waves.d.ts +0 -0
- /package/src/{scss → sass}/utilities/_colors.scss +0 -0
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"file":"expressive.js","sources":["../../src/ts/foundation/utils.ts","../../src/ts/foundation/component.ts","../../src/ts/components/dropdown.ts","../../src/ts/components/autocomplete.ts","../../src/ts/components/buttons.ts","../../src/ts/components/cards.ts","../../src/ts/components/carousel.ts","../../src/ts/components/chips.ts","../../src/ts/components/collapsible.ts","../../src/ts/forms/select.ts","../../src/ts/plugins/docked-display.ts","../../src/ts/components/datepicker.ts","../../src/ts/components/materialbox.ts","../../src/ts/components/modal.ts","../../src/ts/components/parallax.ts","../../src/ts/components/pushpin.ts","../../src/ts/components/scrollspy.ts","../../src/ts/components/sidenav.ts","../../src/ts/components/slider.ts","../../src/ts/components/tabs.ts","../../src/ts/components/tap-target.ts","../../src/ts/components/timepicker.ts","../../src/ts/components/toast.ts","../../src/ts/components/tooltip.ts","../../src/ts/components/waves.ts","../../src/ts/forms/character-counter.ts","../../src/ts/forms/forms.ts","../../src/ts/forms/range.ts","../../src/ts/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_defaults"],"mappings":"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"}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ts/index.ts", "../../src/ts/core/utils.ts", "../../src/ts/core/component.ts", "../../src/ts/components/cards.ts", "../../src/ts/components/dropdown.ts", "../../src/ts/components/autocomplete.ts", "../../src/ts/components/chips.ts", "../../src/ts/components/range.ts", "../../src/ts/behaviors/forms.ts", "../../src/ts/behaviors/waves.ts", "../../src/ts/components/buttons.ts", "../../src/ts/components/carousel.ts", "../../src/ts/components/characterCounter.ts", "../../src/ts/components/collapsible.ts", "../../src/ts/components/select.ts", "../../src/ts/plugins/dockedDisplayPlugin.ts", "../../src/ts/components/datepicker.ts", "../../src/ts/components/lightbox.ts", "../../src/ts/components/modal.ts", "../../src/ts/components/parallax.ts", "../../src/ts/components/pushpin.ts", "../../src/ts/components/scrollspy.ts", "../../src/ts/components/sidenav.ts", "../../src/ts/components/slider.ts", "../../src/ts/components/tabs.ts", "../../src/ts/components/tapTarget.ts", "../../src/ts/components/timepicker.ts", "../../src/ts/components/toasts.ts", "../../src/ts/components/tooltip.ts", "../../src/ts/components/registry.ts"],
|
|
4
|
+
"sourcesContent": ["// Public entry point of the bundle.\n//\n// Layout:\n// core/ Component base class, Utils, shared types\n// components/ per-element widgets (+ index.ts barrel, registry.ts)\n// behaviors/ document-level enhancers, started below at import time\n// plugins/ helpers that are not Components\n//\n// See src/ts/README.md before adding anything.\n\nimport { Utils } from './core/utils';\nimport { Cards } from './components/cards';\nimport { Chips } from './components/chips';\nimport { Range } from './components/range';\nimport { Forms } from './behaviors/forms';\nimport { Waves } from './behaviors/waves';\n\nexport * from './components';\nexport { Forms } from './behaviors/forms';\nexport { Waves } from './behaviors/waves';\nexport { AutoInit } from './components/registry';\nexport type { AutoInitOptions } from './components/registry';\n\nexport const version = '0.1.0';\n\n// Side effects: importing the bundle wires up the document-level behaviors and\n// the delegated listeners the components below rely on. Order is preserved from\n// the original bundle - do not reorder without checking the event handlers.\n\nif (typeof document !== 'undefined') {\n document.addEventListener('keydown', Utils.docHandleKeydown, true);\n document.addEventListener('keyup', Utils.docHandleKeyup, true);\n document.addEventListener('focus', Utils.docHandleFocus, true);\n document.addEventListener('blur', Utils.docHandleBlur, true);\n}\nForms.Init();\nChips.Init();\nWaves.Init();\nRange.Init();\nCards.Init();\n", "import { Edges } from './edges';\nimport { Bounding } from './bounding';\n\n/**\n * Class with utilitary functions for global usage.\n */\nexport class Utils {\n /** Specifies wether tab is pressed or not. */\n static tabPressed: boolean = false;\n /** Specifies wether there is a key pressed. */\n static keyDown: boolean = false;\n\n /**\n * Key maps.\n */\n static keys = {\n TAB: ['Tab'],\n ENTER: ['Enter'],\n ESC: ['Escape', 'Esc'],\n BACKSPACE: ['Backspace'],\n ARROW_UP: ['ArrowUp', 'Up'],\n ARROW_DOWN: ['ArrowDown', 'Down'],\n ARROW_LEFT: ['ArrowLeft', 'Left'],\n ARROW_RIGHT: ['ArrowRight', 'Right'],\n DELETE: ['Delete', 'Del']\n };\n\n /**\n * Keys that count as keyboard navigation, precomputed.\n *\n * These handlers run at capture phase on the document for every keystroke on\n * the page, and used to rebuild three arrays and spread them into a fourth\n * on each one.\n */\n private static _navigationKeys = new Set([\n ...Utils.keys.TAB,\n ...Utils.keys.ARROW_DOWN,\n ...Utils.keys.ARROW_UP\n ]);\n\n /**\n * Detects when a key is pressed.\n * @param e Event instance.\n */\n static docHandleKeydown(e: KeyboardEvent) {\n Utils.keyDown = true;\n if (Utils._navigationKeys.has(e.key)) {\n Utils.tabPressed = true;\n }\n }\n\n /**\n * Detects when a key is released.\n * @param e Event instance.\n */\n static docHandleKeyup(e: KeyboardEvent) {\n Utils.keyDown = false;\n if (Utils._navigationKeys.has(e.key)) {\n Utils.tabPressed = false;\n }\n }\n\n /**\n * Detects when document is focused.\n * @param e Event instance.\n */\n /* eslint-disabled as of required event type condition check */\n /* eslint-disable-next-line */\n static docHandleFocus(e: FocusEvent) {\n if (Utils.keyDown) {\n document.body.classList.add('keyboard-focused');\n }\n }\n\n /**\n * Detects when document is not focused.\n * @param e Event instance.\n */\n /* eslint-disabled as of required event type condition check */\n /* eslint-disable-next-line */\n static docHandleBlur(e: FocusEvent) {\n document.body.classList.remove('keyboard-focused');\n }\n\n /**\n * Run `callback` once the document is parsed.\n *\n * The document-level behaviors all used a bare DOMContentLoaded listener,\n * which never fires if the bundle is loaded after that event - an async or\n * deferred script tag, or a dynamic import. Checking readyState first covers\n * both orders.\n */\n static onDocumentReady(callback: () => void): void {\n if (typeof document === 'undefined') return;\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback, { once: true });\n } else {\n callback();\n }\n }\n\n /**\n * Generates a unique string identifier.\n */\n static guid(): string {\n const s4 = (): string => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n };\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n }\n\n /**\n * Checks for exceeded edges\n * @param container Container element.\n * @param bounding Bounding rect.\n * @param offset Element offset.\n */\n static checkWithinContainer(container: HTMLElement, bounding: Bounding, offset: number): Edges {\n const edges = {\n top: false,\n right: false,\n bottom: false,\n left: false\n };\n\n const containerRect = container.getBoundingClientRect();\n // If body element is smaller than viewport, use viewport height instead.\n const containerBottom =\n container === document.body\n ? Math.max(containerRect.bottom, window.innerHeight)\n : containerRect.bottom;\n\n const scrollLeft = container.scrollLeft;\n const scrollTop = container.scrollTop;\n\n const scrolledX = bounding.left - scrollLeft;\n const scrolledY = bounding.top - scrollTop;\n\n // Check for container and viewport for each edge\n if (scrolledX < containerRect.left + offset || scrolledX < offset) {\n edges.left = true;\n }\n\n if (\n scrolledX + bounding.width > containerRect.right - offset ||\n scrolledX + bounding.width > window.innerWidth - offset\n ) {\n edges.right = true;\n }\n\n if (scrolledY < containerRect.top + offset || scrolledY < offset) {\n edges.top = true;\n }\n\n if (\n scrolledY + bounding.height > containerBottom - offset ||\n scrolledY + bounding.height > window.innerHeight - offset\n ) {\n edges.bottom = true;\n }\n\n return edges;\n }\n\n /**\n * Checks if element can be aligned in multiple directions.\n * @param el Element to be inspected.\n * @param container Container element.\n * @param bounding Bounding rect.\n * @param offset Element offset.\n */\n static checkPossibleAlignments(\n el: HTMLElement,\n container: HTMLElement,\n bounding: Bounding,\n offset: number\n ) {\n const canAlign: {\n top: boolean;\n right: boolean;\n bottom: boolean;\n left: boolean;\n spaceOnTop: number;\n spaceOnRight: number;\n spaceOnBottom: number;\n spaceOnLeft: number;\n } = {\n top: true,\n right: true,\n bottom: true,\n left: true,\n spaceOnTop: null,\n spaceOnRight: null,\n spaceOnBottom: null,\n spaceOnLeft: null\n };\n\n const containerAllowsOverflow = getComputedStyle(container).overflow === 'visible';\n const containerRect = container.getBoundingClientRect();\n const containerHeight = Math.min(containerRect.height, window.innerHeight);\n const containerWidth = Math.min(containerRect.width, window.innerWidth);\n const elOffsetRect = el.getBoundingClientRect();\n\n const scrollLeft = container.scrollLeft;\n const scrollTop = container.scrollTop;\n\n const scrolledX = bounding.left - scrollLeft;\n const scrolledYTopEdge = bounding.top - scrollTop;\n const scrolledYBottomEdge = bounding.top + elOffsetRect.height - scrollTop;\n\n // Check for container and viewport for left\n canAlign.spaceOnRight = !containerAllowsOverflow\n ? containerWidth - (scrolledX + bounding.width)\n : window.innerWidth - (elOffsetRect.left + bounding.width);\n if (canAlign.spaceOnRight < 0) {\n canAlign.left = false;\n }\n\n // Check for container and viewport for Right\n canAlign.spaceOnLeft = !containerAllowsOverflow\n ? scrolledX - bounding.width + elOffsetRect.width\n : elOffsetRect.right - bounding.width;\n if (canAlign.spaceOnLeft < 0) {\n canAlign.right = false;\n }\n\n // Check for container and viewport for Top\n canAlign.spaceOnBottom = !containerAllowsOverflow\n ? containerHeight - (scrolledYTopEdge + bounding.height + offset)\n : window.innerHeight - (elOffsetRect.top + bounding.height + offset);\n if (canAlign.spaceOnBottom < 0) {\n canAlign.top = false;\n }\n\n // Check for container and viewport for Bottom\n canAlign.spaceOnTop = !containerAllowsOverflow\n ? scrolledYBottomEdge - (bounding.height - offset)\n : elOffsetRect.bottom - (bounding.height + offset);\n if (canAlign.spaceOnTop < 0) {\n canAlign.bottom = false;\n }\n\n return canAlign;\n }\n\n /**\n * Retrieves target element id from trigger.\n * @param trigger Trigger element.\n */\n static getIdFromTrigger(trigger: HTMLElement): string {\n let id = trigger.dataset.target;\n if (!id) {\n id = trigger.getAttribute('href');\n return id ? id.slice(1) : '';\n }\n return id;\n }\n\n /**\n * Retrieves document scroll postion from top.\n */\n static getDocumentScrollTop(): number {\n return window.scrollY || document.documentElement.scrollTop || document.body.scrollTop || 0;\n }\n\n /**\n * Retrieves document scroll postion from left.\n */\n static getDocumentScrollLeft(): number {\n return window.scrollX || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n }\n\n /**\n * Fires the given function after a certain ammount of time.\n * @param func Function to be fired.\n * @param wait Wait time.\n * @param options Additional options.\n */\n static throttle(\n func: (...args: unknown[]) => void,\n wait: number,\n options: Partial<{ leading: boolean; trailing: boolean }> = {}\n ) {\n // `options` is nullable because callers pass an explicit null.\n let lastArgs: unknown[] = null,\n result,\n timeout = null,\n previous = 0;\n\n const later = () => {\n previous = options?.leading === false ? 0 : Date.now();\n timeout = null;\n // The trailing call replays the most recent arguments; without this it\n // used to fire with none at all.\n result = func(...(lastArgs ?? []));\n lastArgs = null;\n };\n\n return (...args: unknown[]) => {\n const now = Date.now();\n if (!previous && options?.leading === false) previous = now;\n const remaining = wait - (now - previous);\n lastArgs = args;\n if (remaining <= 0) {\n clearTimeout(timeout);\n timeout = null;\n previous = now;\n lastArgs = null;\n result = func(...args);\n } else if (!timeout && options?.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n }\n\n /**\n * Renders confirm/close buttons with callback function\n */\n static createConfirmationContainer(\n container: HTMLElement,\n confirmText: string,\n cancelText: string,\n onConfirm: (Function: object) => void,\n onCancel: (Function: object) => void\n ): void {\n const confirmationButtonsContainer = document.createElement('div');\n confirmationButtonsContainer.classList.add('confirmation-btns');\n container.append(confirmationButtonsContainer);\n\n this.createButton(confirmationButtonsContainer, cancelText, ['btn-cancel'], true, onCancel);\n this.createButton(confirmationButtonsContainer, confirmText, ['btn-confirm'], true, onConfirm);\n }\n\n /**\n * Renders a button with optional callback function\n */\n static createButton(\n container: HTMLElement,\n text: string,\n className: string[] = [],\n visibility: boolean = true,\n callback: (Function: object) => void = null\n ): void {\n className = className.concat(['btn', 'waves-effect', 'text']);\n const button = document.createElement('button');\n button.className = className.join(' ');\n button.style.visibility = visibility ? 'visible' : 'hidden';\n button.type = 'button';\n button.tabIndex = !!visibility ? 0 : -1;\n button.innerText = text;\n // The keypress handler used to call `callback` unconditionally, so a\n // button created without one threw on Enter.\n if (typeof callback === 'function') {\n button.addEventListener('click', callback);\n button.addEventListener('keypress', (e) => {\n if (Utils.keys.ENTER.includes(e.key)) callback(e);\n });\n }\n container.append(button);\n }\n\n static _setAbsolutePosition(\n origin: HTMLElement,\n container: HTMLElement,\n position: string,\n margin: number,\n transitionMovement: number,\n align: string = 'center'\n ) {\n const originHeight = origin.offsetHeight,\n originWidth = origin.offsetWidth,\n containerHeight = container.offsetHeight,\n containerWidth = container.offsetWidth,\n originRect = origin.getBoundingClientRect(); // one rect, read twice below\n let xMovement = 0,\n yMovement = 0,\n targetTop = originRect.top + Utils.getDocumentScrollTop(),\n targetLeft = originRect.left + Utils.getDocumentScrollLeft();\n\n if (position === 'top') {\n targetTop += -containerHeight - margin;\n if (align === 'center') {\n targetLeft += originWidth / 2 - containerWidth / 2; // This is center align\n }\n yMovement = -transitionMovement;\n } else if (position === 'right') {\n targetTop += originHeight / 2 - containerHeight / 2;\n targetLeft = originWidth + margin;\n xMovement = transitionMovement;\n } else if (position === 'left') {\n targetTop += originHeight / 2 - containerHeight / 2;\n targetLeft = -containerWidth - margin;\n xMovement = -transitionMovement;\n } else {\n targetTop += originHeight + margin;\n if (align === 'center') {\n targetLeft += originWidth / 2 - containerWidth / 2; // This is center align\n }\n yMovement = transitionMovement;\n }\n if (align === 'right') {\n targetLeft += originWidth - containerWidth - margin;\n }\n\n const newCoordinates = Utils._repositionWithinScreen(\n targetLeft,\n targetTop,\n containerWidth,\n containerHeight,\n margin,\n transitionMovement,\n align\n );\n\n container.style.top = newCoordinates.y + 'px';\n container.style.left = newCoordinates.x + 'px';\n\n return {x: xMovement, y: yMovement};\n }\n\n static _repositionWithinScreen(\n x: number,\n y: number,\n width: number,\n height: number,\n margin: number,\n transitionMovement: number,\n align: string\n ) {\n const scrollLeft = Utils.getDocumentScrollLeft();\n const scrollTop = Utils.getDocumentScrollTop();\n let newX = x - scrollLeft;\n let newY = y - scrollTop;\n\n const bounding: Bounding = {\n left: newX,\n top: newY,\n width: width,\n height: height\n };\n let offset: number;\n if (align === 'left' || align == 'center') {\n offset = margin + transitionMovement;\n } else if (align === 'right') {\n offset = margin - transitionMovement;\n }\n const edges = Utils.checkWithinContainer(document.body, bounding, offset);\n\n if (edges.left) {\n newX = offset;\n } else if (edges.right) {\n newX -= newX + width - window.innerWidth;\n }\n if (edges.top) {\n newY = offset;\n } else if (edges.bottom) {\n newY -= newY + height - window.innerHeight;\n }\n return {\n x: newX + scrollLeft,\n y: newY + scrollTop\n };\n }\n}\n", "/**\n * Base options for component initialization.\n */\nexport interface BaseOptions {}\n\nexport type MElement = HTMLElement | Element;\nexport type InitElements<T extends MElement> = NodeListOf<T> | HTMLCollectionOf<T>;\ntype ComponentConstructor<T extends Component<O>, O extends BaseOptions> = {\n new (el: HTMLElement, options: Partial<O>): T;\n};\ntype ComponentType<C extends Component<O>, O extends BaseOptions> = ComponentConstructor<C, O> &\n typeof Component<O>;\n\nexport interface I18nOptions {\n cancel: string;\n clear: string;\n done: string;\n}\n\nexport interface Openable {\n isOpen: boolean;\n open(): void;\n close(): void;\n}\n\n/**\n * Base class implementation for Expressive components.\n */\nexport class Component<O extends BaseOptions> {\n /**\n * The DOM element the plugin was initialized with.\n */\n el: HTMLElement;\n /**\n * The options the instance was initialized with.\n */\n options: O;\n\n /**\n * Constructs component instance and set everything up.\n */\n constructor(el: HTMLElement, options: Partial<O>, classDef: ComponentType<Component<O>, O>) {\n // Display error if el is not a valid HTML Element\n if (!(el instanceof HTMLElement)) {\n console.error(Error(el + ' is not an HTML Element'));\n }\n // If exists, destroy and reinitialize in child\n const ins = classDef.getInstance(el);\n if (!!ins) {\n ins.destroy();\n }\n this.el = el;\n }\n\n /**\n * Initializes component instance.\n * @param el HTML element.\n * @param options Component options.\n * @param classDef Class definition.\n */\n protected static init<I extends HTMLElement, O extends BaseOptions, C extends Component<O>>(\n el: I,\n options: O,\n classDef: ComponentType<C, O>\n ): C;\n /**\n * Initializes component instances.\n * @param els HTML elements.\n * @param options Component options.\n * @param classDef Class definition.\n */\n protected static init<I extends MElement, O extends BaseOptions, C extends Component<O>>(\n els: InitElements<I>,\n options: Partial<O>,\n classDef: ComponentType<C, O>\n ): C[];\n /**\n * Initializes component instances.\n * @param els HTML elements.\n * @param options Component options.\n * @param classDef Class definition.\n */\n protected static init<I extends MElement, O extends BaseOptions, C extends Component<O>>(\n els: I | InitElements<I>,\n options: Partial<O>,\n classDef: ComponentType<C, O>\n ): C | C[];\n /**\n * Initializes component instances.\n * @param els HTML elements.\n * @param options Component options.\n * @param classDef Class definition.\n */\n protected static init<I extends MElement, O extends BaseOptions, C extends Component<O>>(\n els: I | InitElements<I>,\n options: Partial<O>,\n classDef: ComponentType<C, O>\n ): C | C[] {\n let instances = null;\n if (els instanceof Element) {\n instances = new classDef(<HTMLElement>els, options);\n } else if (!!els && els.length) {\n instances = [];\n for (let i = 0; i < els.length; i++) {\n instances.push(new classDef(<HTMLElement>els[i], options));\n }\n }\n return instances;\n }\n\n /**\n * @returns default options for component instance.\n */\n static get defaults(): BaseOptions {\n return {};\n }\n\n /**\n * Retrieves component instance for the given element.\n * @param el Associated HTML Element.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static getInstance(el: HTMLElement): Component<BaseOptions> {\n throw new Error('This method must be implemented.');\n }\n\n /**\n * Destroy plugin instance and teardown.\n */\n destroy(): void {\n throw new Error('This method must be implemented.');\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement, Openable } from '../core/component';\n\nexport interface CardsOptions extends BaseOptions {\n onOpen: (el: Element) => void;\n onClose: (el: Element) => void;\n inDuration: number;\n outDuration: number;\n}\n\nconst _defaults: CardsOptions = {\n onOpen: null,\n onClose: null,\n inDuration: 225,\n outDuration: 300\n};\n\n/**\n * What counts as a card.\n *\n * Shared with `components/registry.ts` rather than written out twice: the\n * registry used to claim `.cards`, which matches nothing this component\n * actually initializes, so the AutoInit entry was dead while `Cards.Init()`\n * quietly did the work through the selector below.\n */\nexport const CARDS_SELECTOR = '.card, article:has(> aside), article:has(.card-reveal)';\n\nexport class Cards extends Component<CardsOptions> implements Openable {\n isOpen: boolean = false;\n private readonly cardReveal: HTMLElement | null;\n private readonly initialOverflow: string;\n private _activators: HTMLElement[] | null;\n private cardRevealClose: HTMLElement | null;\n\n constructor(el: HTMLElement, options: Partial<CardsOptions>) {\n super(el, options, Cards);\n this.el['Expressive_Cards'] = this;\n\n this.options = {\n ...Cards.defaults,\n ...options\n };\n\n this._activators = [];\n\n this.cardReveal = this.el.querySelector(':scope > aside, .card-reveal');\n if (this.cardReveal) {\n this.initialOverflow = getComputedStyle(this.el).overflow;\n this._activators = Array.from(this.el.querySelectorAll('.activator'));\n this._activators.forEach((el: HTMLElement) => {\n if (el) el.tabIndex = 0;\n });\n\n this.cardRevealClose = this.cardReveal.querySelector(\n '.card-title, :scope > :is(h1, h2, h3, h4, h5, h6)'\n );\n if (this.cardRevealClose) this.cardRevealClose.tabIndex = -1;\n\n this.cardReveal.ariaExpanded = 'false';\n this._setupEventHandlers();\n }\n }\n\n static get defaults(): CardsOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Cards.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<CardsOptions>): Cards;\n /**\n * Initializes instances of Cards.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<CardsOptions>): Cards[];\n /**\n * Initializes instances of Cards.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options?: Partial<CardsOptions>\n ): Cards | Cards[] {\n return super.init(els, options, Cards);\n }\n\n static getInstance(el: HTMLElement): Cards {\n return el['Expressive_Cards'];\n }\n\n /**\n * {@inheritDoc}\n */\n destroy() {\n this._removeEventHandlers();\n if (this.cardRevealClose) this._removeRevealCloseEventHandlers();\n this._activators = [];\n this.el['Expressive_Cards'] = undefined;\n }\n\n _setupEventHandlers = () => {\n this._activators.forEach((el: HTMLElement) => {\n el.addEventListener('click', this._handleClickInteraction);\n el.addEventListener('keypress', this._handleKeypressEvent);\n });\n };\n\n _removeEventHandlers = () => {\n this._activators.forEach((el: HTMLElement) => {\n el.removeEventListener('click', this._handleClickInteraction);\n el.removeEventListener('keypress', this._handleKeypressEvent);\n });\n };\n\n _handleClickInteraction = () => {\n this._handleRevealEvent();\n };\n\n _handleKeypressEvent: (e: KeyboardEvent) => void = (e: KeyboardEvent) => {\n if (Utils.keys.ENTER.includes(e.key)) {\n this._handleRevealEvent();\n }\n };\n\n _handleRevealEvent = () => {\n // Reveal Card\n this._activators.forEach((el: HTMLElement) => (el.tabIndex = -1));\n this.open();\n };\n\n _setupRevealCloseEventHandlers = () => {\n this.cardRevealClose.addEventListener('click', this.close);\n this.cardRevealClose.addEventListener('keypress', this._handleKeypressCloseEvent);\n };\n\n _removeRevealCloseEventHandlers = () => {\n this.cardRevealClose.removeEventListener('click', this.close);\n this.cardRevealClose.removeEventListener('keypress', this._handleKeypressCloseEvent);\n };\n\n _handleKeypressCloseEvent: (e: KeyboardEvent) => void = (e: KeyboardEvent) => {\n if (Utils.keys.ENTER.includes(e.key)) {\n this.close();\n }\n };\n\n /**\n * Show card reveal.\n */\n open: () => void = () => {\n if (this.isOpen) return;\n this.isOpen = true;\n this.el.style.overflow = 'hidden';\n this.cardReveal.style.display = 'block';\n this.cardReveal.ariaExpanded = 'true';\n // A reveal without a title has no close affordance; that is allowed.\n if (this.cardRevealClose) this.cardRevealClose.tabIndex = 0;\n setTimeout(() => {\n this.cardReveal.style.transition = `transform ${this.options.outDuration}ms ease`; //easeInOutQuad\n this.cardReveal.style.transform = 'translateY(-100%)';\n }, 1);\n if (typeof this.options.onOpen === 'function') {\n this.options.onOpen.call(this);\n }\n if (this.cardRevealClose) this._setupRevealCloseEventHandlers();\n };\n\n /**\n * Hide card reveal.\n */\n close: () => void = () => {\n if (!this.isOpen) return;\n this.isOpen = false;\n this.cardReveal.style.transition = `transform ${this.options.inDuration}ms ease`; //easeInOutQuad\n this.cardReveal.style.transform = 'translateY(0)';\n setTimeout(() => {\n this.cardReveal.style.display = 'none';\n this.cardReveal.ariaExpanded = 'false';\n this._activators.forEach((el: HTMLElement) => (el.tabIndex = 0));\n if (this.cardRevealClose) this.cardRevealClose.tabIndex = -1;\n this.el.style.overflow = this.initialOverflow;\n }, this.options.inDuration);\n if (typeof this.options.onClose === 'function') {\n this.options.onClose.call(this);\n }\n if (this.cardRevealClose) this._removeRevealCloseEventHandlers();\n };\n\n static Init() {\n // Handle initialization of static cards.\n Utils.onDocumentReady(() => {\n const cards = document.querySelectorAll(CARDS_SELECTOR);\n cards.forEach((el) => {\n if (el && el['Expressive_Cards'] == undefined) this.init(el as HTMLElement);\n });\n });\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement, Openable } from '../core/component';\n\nexport interface DropdownOptions extends BaseOptions {\n /**\n * Defines the edge the menu is aligned to.\n * @default 'left'\n */\n alignment: 'left' | 'right';\n /**\n * If true, automatically focus dropdown el for keyboard.\n * @default true\n */\n autoFocus: boolean;\n /**\n * If true, constrainWidth to the size of the dropdown activator.\n * @default true\n */\n constrainWidth: boolean;\n /**\n * Provide an element that will be the bounding container of the dropdown.\n * @default null\n */\n container: Element;\n /**\n * If false, the dropdown will show below the trigger.\n * @default true\n */\n coverTrigger: boolean;\n /**\n * If true, close dropdown on item click.\n * @default true\n */\n closeOnClick: boolean;\n /**\n * If true, the dropdown will open on hover.\n * @default false\n */\n hover: boolean;\n /**\n * The duration of the transition enter in milliseconds.\n * @default 150\n */\n inDuration: number;\n /**\n * The duration of the transition out in milliseconds.\n * @default 250\n */\n outDuration: number;\n /**\n * Function called when dropdown starts entering.\n * @default null\n */\n onOpenStart: (el: HTMLElement) => void;\n /**\n * Function called when dropdown finishes entering.\n * @default null\n */\n onOpenEnd: (el: HTMLElement) => void;\n /**\n * Function called when dropdown starts exiting.\n * @default null\n */\n onCloseStart: (el: HTMLElement) => void;\n /**\n * Function called when dropdown finishes exiting.\n * @default null\n */\n onCloseEnd: (el: HTMLElement) => void;\n /**\n * Function called when item is clicked.\n * @default null\n */\n onItemClick: (el: HTMLLIElement) => void;\n}\n\nconst _defaults: DropdownOptions = {\n alignment: 'left',\n autoFocus: true,\n constrainWidth: true,\n container: null,\n coverTrigger: true,\n closeOnClick: true,\n hover: false,\n inDuration: 150,\n outDuration: 250,\n onOpenStart: null,\n onOpenEnd: null,\n onCloseStart: null,\n onCloseEnd: null,\n onItemClick: null\n};\n\nexport class Dropdown extends Component<DropdownOptions> implements Openable {\n static _dropdowns: Dropdown[] = [];\n /** ID of the dropdown element. */\n id: string;\n /** The DOM element of the dropdown. */\n dropdownEl: HTMLElement;\n /** If the dropdown is open. */\n isOpen: boolean;\n /** If the dropdown content is scrollable. */\n isScrollable: boolean;\n isTouchMoving: boolean;\n /** The index of the item focused. */\n focusedIndex: number;\n filterQuery: string[];\n filterTimeout: ReturnType<typeof setTimeout>;\n\n constructor(el: HTMLElement, options: Partial<DropdownOptions>) {\n super(el, options, Dropdown);\n this.el['Expressive_Dropdown'] = this;\n\n Dropdown._dropdowns.push(this);\n this.id = Utils.getIdFromTrigger(el);\n this.dropdownEl = document.getElementById(this.id);\n this.dropdownEl?.classList.add('dropdown-content');\n\n this.options = {\n ...Dropdown.defaults,\n ...options\n };\n\n this.isOpen = false;\n this.isScrollable = false;\n this.isTouchMoving = false;\n this.focusedIndex = -1;\n this.filterQuery = [];\n this.el.ariaExpanded = 'false';\n\n // Move dropdown-content after dropdown-trigger\n this._moveDropdownToElement();\n this._makeDropdownFocusable();\n this._setupEventHandlers();\n }\n\n static get defaults(): DropdownOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Dropdown.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<DropdownOptions>): Dropdown;\n /**\n * Initializes instances of Dropdown.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<DropdownOptions>): Dropdown[];\n /**\n * Initializes instances of Dropdown.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<DropdownOptions> = {}\n ): Dropdown | Dropdown[] {\n return super.init(els, options, Dropdown);\n }\n\n static getInstance(el: HTMLElement): Dropdown {\n return el['Expressive_Dropdown'];\n }\n\n destroy() {\n clearTimeout(this.filterTimeout);\n this._resetDropdownStyles();\n this._removeEventHandlers();\n // Temporary handlers only exist while open, but removing them is a no-op\n // otherwise and leaving them attached leaks the instance.\n this._removeTemporaryEventHandlers();\n const index = Dropdown._dropdowns.indexOf(this);\n if (index >= 0) Dropdown._dropdowns.splice(index, 1);\n this.el['Expressive_Dropdown'] = undefined;\n }\n\n _setupEventHandlers() {\n // Trigger keydown handler\n this.el.addEventListener('keydown', this._handleTriggerKeydown);\n // Item click handler\n this.dropdownEl?.addEventListener('click', this._handleDropdownClick);\n // Hover event handlers\n if (this.options.hover) {\n this.el.addEventListener('mouseenter', this._handleMouseEnter);\n this.el.addEventListener('mouseleave', this._handleMouseLeave);\n this.dropdownEl.addEventListener('mouseleave', this._handleMouseLeave);\n // Click event handlers\n } else {\n this.el.addEventListener('click', this._handleClick);\n }\n }\n\n _removeEventHandlers() {\n // `dropdownEl` is optional-chained on the way in (the trigger may point at\n // an id that does not resolve); it has to be here too, or destroy() throws\n // before it can detach anything else.\n this.el.removeEventListener('keydown', this._handleTriggerKeydown);\n this.dropdownEl?.removeEventListener('click', this._handleDropdownClick);\n if (this.options.hover) {\n this.el.removeEventListener('mouseenter', this._handleMouseEnter);\n this.el.removeEventListener('mouseleave', this._handleMouseLeave);\n this.dropdownEl?.removeEventListener('mouseleave', this._handleMouseLeave);\n } else {\n this.el.removeEventListener('click', this._handleClick);\n }\n }\n\n _setupTemporaryEventHandlers() {\n document.body.addEventListener('click', this._handleDocumentClick);\n document.body.addEventListener('touchmove', this._handleDocumentTouchmove, { passive: true });\n this.dropdownEl?.addEventListener('keydown', this._handleDropdownKeydown);\n window.addEventListener('resize', this._handleWindowResize);\n }\n\n _removeTemporaryEventHandlers() {\n document.body.removeEventListener('click', this._handleDocumentClick);\n document.body.removeEventListener('touchmove', this._handleDocumentTouchmove);\n this.dropdownEl?.removeEventListener('keydown', this._handleDropdownKeydown);\n window.removeEventListener('resize', this._handleWindowResize);\n }\n\n _handleClick = (e: MouseEvent) => {\n e.preventDefault();\n //this._moveDropdown((<HTMLElement>e.target).closest('li'));\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n };\n\n _handleMouseEnter = () => {\n //this._moveDropdown((<HTMLElement>e.target).closest('li'));\n this.open();\n };\n\n _handleMouseLeave = (e: MouseEvent) => {\n const toEl = e.relatedTarget as HTMLElement;\n // relatedTarget is null when the pointer leaves the window entirely.\n if (!toEl) {\n this.close();\n return;\n }\n const leaveToDropdownContent = !!toEl.closest('.dropdown-content, menu');\n let leaveToActiveDropdownTrigger = false;\n const closestTrigger = toEl.closest('.dropdown-trigger');\n if (closestTrigger && !!closestTrigger['Expressive_Dropdown'] && closestTrigger['Expressive_Dropdown'].isOpen) {\n leaveToActiveDropdownTrigger = true;\n }\n // Close hover dropdown if mouse did not leave to either active dropdown-trigger or dropdown-content\n if (!leaveToActiveDropdownTrigger && !leaveToDropdownContent) {\n this.close();\n }\n };\n\n _handleDocumentClick = (e: MouseEvent) => {\n const target = <HTMLElement>e.target;\n if (this.options.closeOnClick && target.closest('.dropdown-content, menu') && !this.isTouchMoving) {\n // isTouchMoving to check if scrolling on mobile.\n this.close();\n } else if (!target.closest('.dropdown-content, menu')) {\n // Do this one frame later so that if the element clicked also triggers _handleClick\n // For example, if a label for a select was clicked, that we don't close/open the dropdown\n setTimeout(() => {\n if (this.isOpen) {\n this.close();\n }\n }, 0);\n }\n this.isTouchMoving = false;\n };\n\n _handleTriggerKeydown = (e: KeyboardEvent) => {\n // ARROW DOWN OR ENTER WHEN SELECT IS CLOSED - open Dropdown\n const arrowDownOrEnter =\n Utils.keys.ARROW_DOWN.includes(e.key) || Utils.keys.ENTER.includes(e.key);\n if (arrowDownOrEnter && !this.isOpen) {\n e.preventDefault();\n this.open();\n }\n };\n\n _handleDocumentTouchmove = (e: TouchEvent) => {\n const target = <HTMLElement>e.target;\n if (target.closest('.dropdown-content, menu')) {\n this.isTouchMoving = true;\n }\n };\n\n _handleDropdownClick = (e: MouseEvent) => {\n // onItemClick callback\n if (typeof this.options.onItemClick === 'function') {\n const itemEl = (<HTMLElement>e.target).closest('li');\n this.options.onItemClick.call(this, itemEl);\n }\n };\n\n _handleDropdownKeydown = (e: KeyboardEvent) => {\n const arrowUpOrDown =\n Utils.keys.ARROW_DOWN.includes(e.key) || Utils.keys.ARROW_UP.includes(e.key);\n if (Utils.keys.TAB.includes(e.key)) {\n e.preventDefault();\n this.close();\n }\n // Navigate down dropdown list\n else if (arrowUpOrDown && this.isOpen) {\n e.preventDefault();\n const direction = Utils.keys.ARROW_DOWN.includes(e.key) ? 1 : -1;\n let newFocusedIndex = this.focusedIndex;\n let hasFoundNewIndex = false;\n do {\n newFocusedIndex = newFocusedIndex + direction;\n if (\n !!this.dropdownEl.children[newFocusedIndex] &&\n (<HTMLLIElement>this.dropdownEl.children[newFocusedIndex]).tabIndex !== -1\n ) {\n hasFoundNewIndex = true;\n break;\n }\n } while (newFocusedIndex < this.dropdownEl.children.length && newFocusedIndex >= 0);\n\n if (hasFoundNewIndex) {\n // Remove active class from old element\n if (this.focusedIndex >= 0)\n this.dropdownEl.children[this.focusedIndex].classList.remove('active');\n this.focusedIndex = newFocusedIndex;\n this._focusFocusedItem();\n }\n }\n // ENTER selects choice on focused item\n else if (Utils.keys.ENTER.includes(e.key) && this.isOpen) {\n // Search for <a> and <button>\n const focusedElement = this.dropdownEl.children[this.focusedIndex];\n const activatableElement = <HTMLElement>focusedElement?.querySelector('a, button');\n // Click a or button tag if exists, otherwise click li tag\n if (!!activatableElement) {\n activatableElement.click();\n } else if (!!focusedElement) {\n if (focusedElement instanceof HTMLElement) {\n focusedElement.click();\n }\n }\n }\n // Close dropdown on ESC\n else if (Utils.keys.ESC.includes(e.key) && this.isOpen) {\n e.preventDefault();\n this.close();\n }\n\n // CASE WHEN USER TYPE LTTERS\n const keyText = e.key.toLowerCase();\n const isLetter = /[a-zA-Z0-9-_]/.test(keyText);\n const specialKeys = [\n ...Utils.keys.ARROW_DOWN,\n ...Utils.keys.ARROW_UP,\n ...Utils.keys.ENTER,\n ...Utils.keys.ESC,\n ...Utils.keys.TAB\n ];\n if (isLetter && !specialKeys.includes(e.key)) {\n this.filterQuery.push(keyText);\n const string = this.filterQuery.join('');\n // textContent rather than innerText: this scans every item on every\n // keystroke, and innerText forces a layout flush per item.\n const newOptionEl = Array.from(this.dropdownEl.querySelectorAll('li')).find(\n (el) => el.textContent.trim().toLowerCase().indexOf(string) === 0\n );\n if (newOptionEl) {\n this.focusedIndex = [...newOptionEl.parentNode.children].indexOf(newOptionEl);\n this._focusFocusedItem();\n }\n }\n // Re-arm rather than stack: without the clear, every keystroke left a live\n // timer behind and the query could reset while the user was still typing.\n clearTimeout(this.filterTimeout);\n this.filterTimeout = setTimeout(this._resetFilterQuery, 1000);\n };\n\n _handleWindowResize = () => {\n // Only re-place the dropdown if it's still visible\n // Accounts for elements hiding via media queries\n if (this.el.offsetParent) {\n this.recalculateDimensions();\n }\n };\n\n _resetFilterQuery = () => {\n this.filterQuery = [];\n };\n\n _resetDropdownStyles() {\n this.dropdownEl.style.display = '';\n this._resetDropdownPositioningStyles();\n this.dropdownEl.style.transform = '';\n this.dropdownEl.style.opacity = '';\n }\n\n _resetDropdownPositioningStyles() {\n this.dropdownEl.style.width = '';\n this.dropdownEl.style.height = '';\n this.dropdownEl.style.left = '';\n this.dropdownEl.style.top = '';\n this.dropdownEl.style.transformOrigin = '';\n }\n\n _moveDropdownToElement(containerEl: HTMLElement = null) {\n if (this.options.container) {\n this.options.container.append(this.dropdownEl);\n return;\n }\n if (containerEl) {\n if (!containerEl.contains(this.dropdownEl)) containerEl.append(this.dropdownEl);\n return;\n }\n this.el.after(this.dropdownEl);\n }\n\n _makeDropdownFocusable() {\n if (!this.dropdownEl) return;\n this.dropdownEl.popover = '';\n // Needed for arrow key navigation\n this.dropdownEl.tabIndex = 0;\n // Only set tabindex if it hasn't been set by user\n Array.from(this.dropdownEl.children).forEach((el) => {\n if (el instanceof HTMLHRElement || el.classList.contains('divider')) {\n el.setAttribute('tabindex', '-1');\n return;\n }\n if (!el.getAttribute('tabindex')) el.setAttribute('tabindex', '0');\n });\n }\n\n _focusFocusedItem() {\n if (\n this.focusedIndex >= 0 &&\n this.focusedIndex < this.dropdownEl.children.length &&\n this.options.autoFocus\n ) {\n (this.dropdownEl.children[this.focusedIndex] as HTMLElement).focus({\n preventScroll: true\n });\n this.dropdownEl.children[this.focusedIndex].scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest'\n });\n }\n }\n\n _getDropdownPosition(closestOverflowParent: HTMLElement) {\n // const offsetParentBRect = this.el.offsetParent.getBoundingClientRect();\n const triggerBRect = this.el.getBoundingClientRect();\n const dropdownBRect = this.dropdownEl.getBoundingClientRect();\n\n let idealHeight = dropdownBRect.height;\n let idealWidth = dropdownBRect.width;\n let idealXPos = triggerBRect.left - dropdownBRect.left;\n let idealYPos = triggerBRect.top - dropdownBRect.top;\n\n const dropdownBounds = {\n left: idealXPos,\n top: idealYPos,\n height: idealHeight,\n width: idealWidth\n };\n\n const alignments = Utils.checkPossibleAlignments(\n this.el,\n closestOverflowParent,\n dropdownBounds,\n this.options.coverTrigger ? 0 : triggerBRect.height\n );\n\n let verticalAlignment = 'top';\n let horizontalAlignment = this.options.alignment;\n idealYPos += this.options.coverTrigger ? 0 : triggerBRect.height;\n\n // Reset isScrollable\n this.isScrollable = false;\n\n if (!alignments.top) {\n if (alignments.bottom) {\n verticalAlignment = 'bottom';\n\n if (!this.options.coverTrigger) {\n idealYPos -= triggerBRect.height;\n }\n } else {\n this.isScrollable = true;\n\n // Determine which side has most space and cutoff at correct height\n idealHeight -= 20; // Add padding when cutoff\n if (alignments.spaceOnTop > alignments.spaceOnBottom) {\n verticalAlignment = 'bottom';\n idealHeight += alignments.spaceOnTop;\n idealYPos -= this.options.coverTrigger\n ? alignments.spaceOnTop - 20\n : alignments.spaceOnTop - 20 + triggerBRect.height;\n } else {\n idealHeight += alignments.spaceOnBottom;\n }\n }\n }\n\n // If preferred horizontal alignment is possible\n if (!alignments[horizontalAlignment]) {\n const oppositeAlignment = horizontalAlignment === 'left' ? 'right' : 'left';\n if (alignments[oppositeAlignment]) {\n horizontalAlignment = oppositeAlignment;\n } else {\n // Determine which side has most space and cutoff at correct height\n if (alignments.spaceOnLeft > alignments.spaceOnRight) {\n horizontalAlignment = 'right';\n idealWidth += alignments.spaceOnLeft;\n idealXPos -= alignments.spaceOnLeft;\n } else {\n horizontalAlignment = 'left';\n idealWidth += alignments.spaceOnRight;\n }\n }\n }\n\n if (verticalAlignment === 'bottom') {\n idealYPos =\n idealYPos - dropdownBRect.height + (this.options.coverTrigger ? triggerBRect.height : 0);\n }\n if (horizontalAlignment === 'right') {\n idealXPos = idealXPos - dropdownBRect.width + triggerBRect.width;\n }\n return {\n x: idealXPos,\n y: idealYPos,\n verticalAlignment: verticalAlignment,\n horizontalAlignment: horizontalAlignment,\n height: idealHeight,\n width: idealWidth\n };\n }\n\n _animateIn() {\n const duration = this.options.inDuration;\n this.dropdownEl.style.transition = 'none';\n // from\n this.dropdownEl.style.opacity = '0';\n this.dropdownEl.style.transform = 'scale(0.3, 0.3)';\n setTimeout(() => {\n // easeOutQuad (opacity) & easeOutQuint\n this.dropdownEl.style.transition = `opacity ${duration}ms ease, transform ${duration}ms ease`;\n // to\n this.dropdownEl.style.opacity = '1';\n this.dropdownEl.style.transform = 'scale(1, 1)';\n }, 1);\n setTimeout(() => {\n if (this.options.autoFocus) this.dropdownEl.focus();\n if (typeof this.options.onOpenEnd === 'function') this.options.onOpenEnd.call(this, this.el);\n }, duration);\n }\n\n _animateOut() {\n const duration = this.options.outDuration;\n // easeOutQuad (opacity) & easeOutQuint\n this.dropdownEl.style.transition = `opacity ${duration}ms ease, transform ${duration}ms ease`;\n // to\n this.dropdownEl.style.opacity = '0';\n this.dropdownEl.style.transform = 'scale(0.3, 0.3)';\n setTimeout(() => {\n this._resetDropdownStyles();\n if (typeof this.options.onCloseEnd === 'function')\n this.options.onCloseEnd.call(this, this.el);\n }, duration);\n }\n\n private _getClosestAncestor(el: HTMLElement, condition: (Function) => boolean): HTMLElement {\n let ancestor = el.parentNode;\n while (ancestor !== null && ancestor !== document) {\n if (condition(ancestor)) {\n return <HTMLElement>ancestor;\n }\n ancestor = ancestor.parentElement;\n }\n return null;\n }\n\n _placeDropdown() {\n // Container here will be closest ancestor with overflow: hidden\n let closestOverflowParent: HTMLElement = this._getClosestAncestor(\n this.dropdownEl,\n (ancestor: HTMLElement) => {\n return (\n !['HTML', 'BODY'].includes(ancestor.tagName) &&\n getComputedStyle(ancestor).overflow !== 'visible'\n );\n }\n );\n // Fallback\n if (!closestOverflowParent) {\n closestOverflowParent = <HTMLElement>(\n (!!this.dropdownEl.offsetParent ? this.dropdownEl.offsetParent : this.dropdownEl.parentNode)\n );\n }\n\n if (getComputedStyle(closestOverflowParent).position === 'static')\n closestOverflowParent.style.position = 'relative';\n\n //this._moveDropdown(closestOverflowParent);\n\n // Set width before calculating positionInfo\n const idealWidth = this.options.constrainWidth\n ? this.el.getBoundingClientRect().width\n : this.dropdownEl.getBoundingClientRect().width;\n this.dropdownEl.style.width = idealWidth + 'px';\n\n const positionInfo = this._getDropdownPosition(closestOverflowParent);\n this.dropdownEl.style.left = positionInfo.x + 'px';\n this.dropdownEl.style.top = positionInfo.y + 'px';\n this.dropdownEl.style.height = positionInfo.height + 'px';\n this.dropdownEl.style.width = positionInfo.width + 'px';\n this.dropdownEl.style.transformOrigin = `${\n positionInfo.horizontalAlignment === 'left' ? '0' : '100%'\n } ${positionInfo.verticalAlignment === 'top' ? '0' : '100%'}`;\n }\n\n /**\n * Open dropdown.\n */\n open = () => {\n if (this.isOpen) return;\n this.isOpen = true;\n // onOpenStart callback\n if (typeof this.options.onOpenStart === 'function') {\n this.options.onOpenStart.call(this, this.el);\n }\n // Reset styles\n this._resetDropdownStyles();\n this.dropdownEl.style.display = 'block';\n this._placeDropdown();\n this._animateIn();\n // Do this one frame later so that we don't bind an event handler that's immediately\n // called when the event bubbles up to the document and closes the dropdown\n setTimeout(() => this._setupTemporaryEventHandlers(), 0);\n this.el.ariaExpanded = 'true';\n };\n\n /**\n * Close dropdown.\n */\n close = () => {\n if (!this.isOpen) return;\n this.isOpen = false;\n this.focusedIndex = -1;\n // onCloseStart callback\n if (typeof this.options.onCloseStart === 'function') {\n this.options.onCloseStart.call(this, this.el);\n }\n this._animateOut();\n this._removeTemporaryEventHandlers();\n if (this.options.autoFocus) {\n this.el.focus();\n }\n this.el.ariaExpanded = 'false';\n };\n\n /**\n * While dropdown is open, you can recalculate its dimensions if its contents have changed.\n */\n recalculateDimensions = () => {\n if (this.isOpen) {\n this._resetDropdownPositioningStyles();\n this._placeDropdown();\n }\n };\n}\n", "import { Utils } from '../core/utils';\nimport { Dropdown, DropdownOptions } from './dropdown';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface AutocompleteData {\n /**\n * A primitive value that can be converted to string.\n * If \"text\" is not provided, it will also be used as \"option text\" as well\n */\n id: string | number;\n /**\n * This optional attribute is used as \"display value\" for the current entry.\n * When provided, it will also be taken into consideration by the standard search function.\n */\n text?: string;\n /**\n * This optional attribute is used to provide a valid image URL to the current option.\n */\n image?: string;\n /**\n * Optional attributes which describes the option.\n */\n description?: string;\n}\n\nexport interface AutocompleteOptions extends BaseOptions {\n /**\n * Data object defining autocomplete options with\n * optional icon strings.\n */\n data: AutocompleteData[];\n /**\n * Flag which can be set if multiple values can be selected. The Result will be an Array.\n * @default false\n */\n isMultiSelect: boolean;\n /**\n * Callback for when autocompleted.\n */\n onAutocomplete: (entries: AutocompleteData[]) => void;\n /**\n * Minimum number of characters before autocomplete starts.\n * @default 1\n */\n minLength: number;\n /**\n * The height of the Menu which can be set via css-property.\n * @default '300px'\n */\n maxDropDownHeight: string;\n /**\n * Function is called when the input text is altered and data can also be loaded asynchronously.\n * If the results are collected the items in the list can be updated via the function setMenuItems(collectedItems).\n * @param text Searched text.\n * @param autocomplete Current autocomplete instance.\n */\n onSearch: (text: string, autocomplete: Autocomplete) => void;\n /**\n * If true will render the key from each item directly as HTML.\n * User input MUST be properly sanitized first.\n * @default false\n */\n allowUnsafeHTML: boolean;\n /**\n * Pass options object to select dropdown initialization.\n * @default {}\n */\n dropdownOptions: Partial<DropdownOptions>;\n /**\n * Predefined selected values\n */\n selected: number[] | string[];\n}\n\nconst _defaults: AutocompleteOptions = {\n data: [], // Autocomplete data set\n onAutocomplete: null, // Callback for when autocompleted\n dropdownOptions: {\n // Default dropdown options\n autoFocus: false,\n closeOnClick: false,\n coverTrigger: false\n },\n minLength: 1, // Min characters before autocomplete starts\n isMultiSelect: false,\n onSearch: (text: string, autocomplete: Autocomplete) => {\n const normSearch = text.toLocaleLowerCase();\n autocomplete.setMenuItems(\n\n autocomplete.options.data.filter((option) =>\n option.id.toString().toLocaleLowerCase().includes(normSearch)\n || option.text?.toLocaleLowerCase().includes(normSearch)\n\n )\n );\n },\n maxDropDownHeight: '300px',\n allowUnsafeHTML: false,\n selected: []\n};\n\nexport class Autocomplete extends Component<AutocompleteOptions> {\n declare el: HTMLInputElement;\n /** If the autocomplete is open. */\n isOpen: boolean;\n /** Number of matching autocomplete options. */\n count: number;\n /** Index of the current selected option. */\n activeIndex: number;\n private oldVal: string;\n private $active: HTMLElement | null;\n private _mousedown: boolean;\n container: HTMLElement;\n /** Instance of the dropdown plugin for this autocomplete. */\n dropdown: Dropdown;\n static _keydown: boolean;\n selectedValues: AutocompleteData[];\n menuItems: AutocompleteData[];\n\n constructor(el: HTMLInputElement, options: Partial<AutocompleteOptions>) {\n super(el, options, Autocomplete);\n this.el['Expressive_Autocomplete'] = this;\n\n this.options = {\n ...Autocomplete.defaults,\n ...options\n };\n\n this.isOpen = false;\n this.count = 0;\n this.activeIndex = -1;\n this.oldVal = '';\n this.selectedValues = this.selectedValues || this.options.selected.map((value) => <AutocompleteData>{ id: value }) || [];\n this.menuItems = this.options.data || [];\n this.$active = null;\n this._mousedown = false;\n this._setupDropdown();\n this._setupEventHandlers();\n }\n\n static get defaults(): AutocompleteOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Autocomplete.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLInputElement, options?: Partial<AutocompleteOptions>): Autocomplete;\n /**\n * Initializes instances of Autocomplete.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: InitElements<HTMLInputElement | MElement>,\n options?: Partial<AutocompleteOptions>\n ): Autocomplete[];\n /**\n * Initializes instances of Autocomplete.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLInputElement | InitElements<HTMLInputElement | MElement>,\n options: Partial<AutocompleteOptions> = {}\n ): Autocomplete | Autocomplete[] {\n return super.init(els, options, Autocomplete);\n }\n\n static getInstance(el: HTMLElement): Autocomplete {\n return el['Expressive_Autocomplete'];\n }\n\n /**\n * The three-dot loading indicator, parsed once and cloned thereafter.\n *\n * It is shown on every input change, and it used to be assigned as an\n * innerHTML string each time - re-running the HTML parser over the same\n * fixed markup on every keystroke.\n */\n private static _loadingTemplate: HTMLElement = null;\n\n private static _loadingIndicator(): HTMLElement {\n if (!Autocomplete._loadingTemplate) {\n const template = document.createElement('template');\n template.innerHTML = `<div style=\"height:100%;width:50px;\"><svg version=\"1.1\" id=\"L4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 100 100\" enable-background=\"new 0 0 0 0\" xml:space=\"preserve\">\n <circle fill=\"#888c\" stroke=\"none\" cx=\"6\" cy=\"50\" r=\"6\"><animate attributeName=\"opacity\" dur=\"1s\" values=\"0;1;0\" repeatCount=\"indefinite\" begin=\"0.1\"/></circle>\n <circle fill=\"#888c\" stroke=\"none\" cx=\"26\" cy=\"50\" r=\"6\"><animate attributeName=\"opacity\" dur=\"1s\" values=\"0;1;0\" repeatCount=\"indefinite\" begin=\"0.2\"/></circle>\n <circle fill=\"#888c\" stroke=\"none\" cx=\"46\" cy=\"50\" r=\"6\"><animate attributeName=\"opacity\" dur=\"1s\" values=\"0;1;0\" repeatCount=\"indefinite\" begin=\"0.3\"/></circle>\n </svg></div>`;\n Autocomplete._loadingTemplate = template.content.firstElementChild as HTMLElement;\n }\n return Autocomplete._loadingTemplate.cloneNode(true) as HTMLElement;\n }\n\n destroy() {\n this._removeEventHandlers();\n this._removeDropdown();\n this.el['Expressive_Autocomplete'] = undefined;\n }\n\n _setupEventHandlers() {\n this.el.addEventListener('blur', this._handleInputBlur);\n this.el.addEventListener('keyup', this._handleInputKeyup);\n this.el.addEventListener('focus', this._handleInputFocus);\n this.el.addEventListener('keydown', this._handleInputKeydown);\n this.el.addEventListener('click', this._handleInputClick);\n this.container.addEventListener('mousedown', this._handleContainerMousedownAndTouchstart);\n this.container.addEventListener('mouseup', this._handleContainerMouseupAndTouchend);\n if (typeof window.ontouchstart !== 'undefined') {\n this.container.addEventListener('touchstart', this._handleContainerMousedownAndTouchstart);\n this.container.addEventListener('touchend', this._handleContainerMouseupAndTouchend);\n }\n }\n\n _removeEventHandlers() {\n this.el.removeEventListener('blur', this._handleInputBlur);\n this.el.removeEventListener('keyup', this._handleInputKeyup);\n this.el.removeEventListener('focus', this._handleInputFocus);\n this.el.removeEventListener('keydown', this._handleInputKeydown);\n this.el.removeEventListener('click', this._handleInputClick);\n this.container.removeEventListener('mousedown', this._handleContainerMousedownAndTouchstart);\n this.container.removeEventListener('mouseup', this._handleContainerMouseupAndTouchend);\n\n if (typeof window.ontouchstart !== 'undefined') {\n this.container.removeEventListener('touchstart', this._handleContainerMousedownAndTouchstart);\n this.container.removeEventListener('touchend', this._handleContainerMouseupAndTouchend);\n }\n }\n\n _setupDropdown() {\n this.container = document.createElement('ul');\n this.container.style.maxHeight = this.options.maxDropDownHeight;\n this.container.id = `autocomplete-options-${Utils.guid()}`;\n this.container.classList.add('autocomplete-content', 'dropdown-content');\n this.container.ariaExpanded = 'true';\n this.el.setAttribute('data-target', this.container.id);\n\n this.menuItems.forEach((menuItem) => {\n const itemElement = this._createDropdownItem(menuItem);\n this.container.append(itemElement);\n });\n\n // ! Issue in Component Dropdown: _placeDropdown moves dom-position\n this.el.parentElement.appendChild(this.container);\n\n // Initialize dropdown\n const dropdownOptions = {\n ...Autocomplete.defaults.dropdownOptions,\n ...this.options.dropdownOptions\n };\n // @todo shouldn't we conditionally check if dropdownOptions.onItemClick is set in first place?\n const userOnItemClick = dropdownOptions.onItemClick;\n // Ensuring the select Option call when user passes custom onItemClick function to dropdown\n dropdownOptions.onItemClick = (li) => {\n if (!li) return;\n const entryID = li.getAttribute('data-id');\n this.selectOption(entryID);\n // Handle user declared onItemClick if needed\n if (userOnItemClick && typeof userOnItemClick === 'function')\n userOnItemClick.call(this.dropdown, this.el);\n };\n this.dropdown = Dropdown.init(this.el, dropdownOptions);\n\n // ! Workaround for Label: move label up again\n // TODO: Just use PopperJS in future!\n const label = this.el.parentElement.querySelector('label');\n if (label) this.el.after(label);\n\n // Sketchy removal of dropdown click handler\n this.el.removeEventListener('click', this.dropdown._handleClick);\n if(!this.options.isMultiSelect && !(this.options.selected.length === 0)) {\n const selectedValue = this.menuItems.filter((value) => value.id === this.selectedValues[0].id);\n this.el.value = selectedValue[0].text;\n }\n // Set Value if already set in HTML\n if (this.el.value) this.selectOption(this.el.value);\n // Add StatusInfo\n const div = document.createElement('div');\n div.classList.add('status-info');\n div.setAttribute('style', 'position: absolute;right:0;top:0;');\n this.el.parentElement.appendChild(div);\n this._updateSelectedInfo();\n }\n\n _removeDropdown() {\n this.container.ariaExpanded = 'false';\n this.container.parentNode.removeChild(this.container);\n }\n\n _handleInputBlur = () => {\n if (!this._mousedown) {\n this.close();\n this._resetAutocomplete();\n }\n };\n\n _handleInputKeyup = (e: KeyboardEvent) => {\n if (e.type === 'keyup') Autocomplete._keydown = false;\n this.count = 0;\n const actualValue = this.el.value.toLocaleLowerCase();\n // Don't capture enter or arrow key usage.\n if (\n Utils.keys.ENTER.includes(e.key) ||\n Utils.keys.ARROW_UP.includes(e.key) ||\n Utils.keys.ARROW_DOWN.includes(e.key)\n )\n return;\n // Check if the input isn't empty\n // Check if focus triggered by tab\n if (this.oldVal !== actualValue && Utils.tabPressed) {\n this.open();\n }\n this._inputChangeDetection(actualValue);\n };\n\n _handleInputFocus = () => {\n this.count = 0;\n const actualValue = this.el.value.toLocaleLowerCase();\n this._inputChangeDetection(actualValue);\n };\n\n _inputChangeDetection = (value: string) => {\n // Value has changed!\n if (this.oldVal !== value) {\n this._setStatusLoading();\n this.options.onSearch(this.el.value, this);\n }\n // Reset Single-Select when Input cleared\n if (!this.options.isMultiSelect && this.el.value.length === 0) {\n this.selectedValues = [];\n this._triggerChanged();\n }\n this.oldVal = value;\n };\n\n _handleInputKeydown = (e: KeyboardEvent) => {\n Autocomplete._keydown = true;\n // Arrow keys and enter key usage\n const numItems = this.container.querySelectorAll('li').length;\n // select element on Enter\n if (Utils.keys.ENTER.includes(e.key) && this.activeIndex >= 0) {\n const liElement = this.container.querySelectorAll('li')[this.activeIndex];\n if (liElement) {\n this.selectOption(liElement.getAttribute('data-id'));\n e.preventDefault();\n }\n return;\n }\n // Capture up and down key\n if (Utils.keys.ARROW_UP.includes(e.key) || Utils.keys.ARROW_DOWN.includes(e.key)) {\n e.preventDefault();\n if (Utils.keys.ARROW_UP.includes(e.key) && this.activeIndex > 0) this.activeIndex--;\n if (Utils.keys.ARROW_DOWN.includes(e.key) && this.activeIndex < numItems - 1)\n this.activeIndex++;\n this.$active?.classList.remove('active');\n if (this.activeIndex >= 0) {\n this.$active = this.container.querySelectorAll('li')[this.activeIndex];\n this.$active?.classList.add('active');\n // Focus selected\n this.container.children[this.activeIndex].scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest'\n });\n }\n }\n };\n\n _handleInputClick = () => {\n this.open();\n };\n\n _handleContainerMousedownAndTouchstart = () => {\n this._mousedown = true;\n };\n\n _handleContainerMouseupAndTouchend = () => {\n this._mousedown = false;\n };\n\n _resetCurrentElementPosition() {\n this.activeIndex = -1;\n this.$active?.classList.remove('active');\n }\n\n _resetAutocomplete() {\n this.container.replaceChildren();\n this._resetCurrentElementPosition();\n this.oldVal = null;\n this.isOpen = false;\n this._mousedown = false;\n }\n\n _highlightPartialText(input: string, label: string) {\n const start = label.toLocaleLowerCase().indexOf('' + input.toLocaleLowerCase() + '');\n const end = start + input.length - 1;\n //custom filters may return results where the string does not match any part\n if (start == -1 || end == -1) {\n return [label, '', ''];\n }\n return [label.slice(0, start), label.slice(start, end + 1), label.slice(end + 1)];\n }\n\n _createDropdownItem(entry: AutocompleteData) {\n const item = document.createElement('li');\n item.setAttribute('data-id', <string>entry.id);\n item.setAttribute(\n 'style',\n 'display:grid; grid-auto-flow: column; user-select: none; align-items: center;'\n );\n item.tabIndex = 0;\n // Checkbox\n if (this.options.isMultiSelect) {\n const selection = document.createElement('div');\n selection.classList.add('item-selection');\n selection.style.textAlign = 'center';\n const checkbox = document.createElement('input');\n checkbox.type = 'checkbox';\n checkbox.checked = this.selectedValues.some((sel) => sel.id === entry.id);\n const spacer = document.createElement('span');\n spacer.style.paddingLeft = '21px';\n selection.append(checkbox, spacer);\n item.appendChild(selection);\n }\n // Image\n if (entry.image) {\n const img = document.createElement('img');\n img.classList.add('circle');\n img.src = entry.image;\n item.appendChild(img);\n }\n\n // Text\n const inputText = this.el.value.toLocaleLowerCase();\n const parts = this._highlightPartialText(inputText, (entry.text || entry.id).toString());\n const div = document.createElement('div');\n div.setAttribute('style', 'line-height:1.2;font-weight:500;');\n if (this.options.allowUnsafeHTML) {\n div.innerHTML = parts[0] + '<span class=\"highlight\">' + parts[1] + '</span>' + parts[2];\n } else {\n div.appendChild(document.createTextNode(parts[0]));\n if (parts[1]) {\n const highlight = document.createElement('span');\n highlight.textContent = parts[1];\n highlight.classList.add('highlight');\n div.appendChild(highlight);\n div.appendChild(document.createTextNode(parts[2]));\n }\n }\n\n const itemText = document.createElement('div');\n itemText.classList.add('item-text');\n itemText.setAttribute('style', 'padding:5px;overflow:hidden;');\n item.appendChild(itemText);\n item.querySelector('.item-text').appendChild(div);\n // Description\n if (\n typeof entry.description === 'string' ||\n (typeof entry.description === 'number' && !isNaN(entry.description))\n ) {\n const description = document.createElement('small');\n description.setAttribute(\n 'style',\n 'line-height:1.3;color:grey;white-space:nowrap;text-overflow:ellipsis;display:block;width:90%;overflow:hidden;'\n );\n description.innerText = entry.description;\n item.querySelector('.item-text').appendChild(description);\n }\n // Set Grid\n const getGridConfig = () => {\n if (this.options.isMultiSelect) {\n if (entry.image) return '40px min-content auto'; // cb-img-txt\n return '40px auto'; // cb-txt\n }\n if (entry.image) return 'min-content auto'; // img-txt\n return 'auto'; // txt\n };\n item.style.gridTemplateColumns = getGridConfig();\n return item;\n }\n\n _renderDropdown() {\n this._resetAutocomplete();\n // Check if Data is empty\n if (this.menuItems.length === 0) {\n this.menuItems = this.selectedValues; // Show selected Items\n }\n for (let i = 0; i < this.menuItems.length; i++) {\n const item = this._createDropdownItem(this.menuItems[i]);\n this.container.append(item);\n }\n }\n\n _setStatusLoading() {\n const statusElement = this.el.parentElement.querySelector('.status-info');\n if (statusElement) statusElement.replaceChildren(Autocomplete._loadingIndicator());\n }\n\n _updateSelectedInfo() {\n const statusElement = this.el.parentElement.querySelector('.status-info');\n if (statusElement) {\n if (this.options.isMultiSelect)\n statusElement.textContent = this.selectedValues.length.toString();\n else statusElement.replaceChildren();\n }\n }\n\n _refreshInputText() {\n if (this.selectedValues.length === 1) {\n const entry = this.selectedValues[0];\n this.el.value = entry.text || <string>entry.id; // Write Text to Input\n }\n }\n\n _triggerChanged() {\n this.el.dispatchEvent(new Event('change'));\n // Trigger Autocomplete Event\n if (typeof this.options.onAutocomplete === 'function')\n this.options.onAutocomplete.call(this, this.selectedValues);\n }\n\n /**\n * Show autocomplete.\n */\n open = () => {\n const inputText = this.el.value.toLocaleLowerCase();\n this._resetAutocomplete();\n if (inputText.length >= this.options.minLength) {\n this.isOpen = true;\n this._renderDropdown();\n }\n // Open dropdown\n if (!this.dropdown.isOpen) {\n setTimeout(() => {\n this.dropdown.open();\n }, 0); // TODO: why?\n } else this.dropdown.recalculateDimensions(); // Recalculate dropdown when its already open\n };\n\n /**\n * Hide autocomplete.\n */\n close = () => {\n this.dropdown.close();\n };\n\n /**\n * Updates the visible or selectable items shown in the menu.\n * @param menuItems Items to be available.\n * @param selected Selected item ids\n * @param open Option to conditionally open dropdown\n */\n setMenuItems(menuItems: AutocompleteData[], selected: number[] | string[] = null, open: boolean = true) {\n this.menuItems = menuItems;\n this.options.data = menuItems;\n if (selected) {\n this.selectedValues = this.menuItems.filter(\n (item) => !(selected.indexOf(<never>item.id) === -1)\n );\n }\n if (this.options.isMultiSelect) {\n this._renderDropdown();\n } else {\n this._refreshInputText();\n }\n if (open) this.open();\n this._updateSelectedInfo();\n this._triggerChanged();\n }\n\n /**\n * Sets selected values.\n * @deprecated @see https://github.com/materializecss/materialize/issues/552\n * @param entries\n */\n setValues(entries: AutocompleteData[]) {\n this.selectedValues = entries;\n this._updateSelectedInfo();\n if (!this.options.isMultiSelect) {\n this._refreshInputText();\n }\n this._triggerChanged();\n }\n\n /**\n * Select a specific autocomplete option via id-property.\n * @param id The id of a data-entry.\n */\n selectOption(id: number | string) {\n const entry = this.menuItems.find((item) => item.id == id);\n if (!entry) return;\n // Toggle Checkbox\n /* const li = this.container.querySelector('li[data-id=\"' + id + '\"]');\n if (!li) return;*/\n if (this.options.isMultiSelect) {\n /* const checkbox = <HTMLInputElement | null>li.querySelector('input[type=\"checkbox\"]');\n checkbox.checked = !checkbox.checked;*/\n if (!(this.selectedValues.filter(\n (selectedEntry) => selectedEntry.id === entry.id\n ).length >= 1)) this.selectedValues.push(entry);\n else this.selectedValues = this.selectedValues.filter(\n (selectedEntry) => selectedEntry.id !== entry.id\n );\n this._renderDropdown();\n this.el.focus();\n } else {\n // Single-Select\n this.selectedValues = [entry];\n this._refreshInputText();\n this._resetAutocomplete();\n this.close();\n }\n this._updateSelectedInfo();\n this._triggerChanged();\n }\n\n selectOptions(ids: []) {\n const entries = this.menuItems.filter(\n (item) => !(ids.indexOf(<never>item.id) === -1)\n );\n if (!entries) return;\n this.selectedValues = entries;\n this._renderDropdown();\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Autocomplete, AutocompleteOptions } from './autocomplete';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface ChipData {\n /**\n * Unique identifier.\n */\n id: number | string;\n /**\n * Chip text. If not specified, \"id\" will be used.\n */\n text?: string;\n /**\n * Chip image (URL).\n */\n image?: string;\n}\n\nexport interface ChipsOptions extends BaseOptions {\n /**\n * Set the chip data.\n * @default []\n */\n data: ChipData[];\n /**\n * Set first placeholder when there are no tags.\n * @default \"\"\n */\n placeholder: string;\n /**\n * Set second placeholder when adding additional tags.\n * @default \"\"\n */\n secondaryPlaceholder: string;\n /**\n * Set autocomplete options.\n * @default {}\n */\n autocompleteOptions: Partial<AutocompleteOptions>;\n /**\n * Toggles abililty to add custom value not in autocomplete list.\n * @default false\n */\n autocompleteOnly: boolean;\n /**\n * Set chips limit.\n * @default Infinity\n */\n limit: number;\n /**\n * Specifies class to be used in \"close\" button (useful when working with Material Symbols icon set).\n * @default 'material-icons'\n */\n closeIconClass: string;\n /**\n * Specifies option to render user input field\n * @default false;\n */\n allowUserInput: boolean;\n /**\n * Callback for chip add.\n * @default null\n */\n onChipAdd: (element: HTMLElement, chip: HTMLElement) => void;\n /**\n * Callback for chip select.\n * @default null\n */\n onChipSelect: (element: HTMLElement, chip: HTMLElement) => void;\n /**\n * Callback for chip delete.\n * @default null\n */\n onChipDelete: (element: HTMLElement, chip: HTMLElement) => void;\n}\n\nconst _defaults: ChipsOptions = {\n data: [],\n placeholder: '',\n secondaryPlaceholder: '',\n closeIconClass: 'material-icons',\n autocompleteOptions: {},\n autocompleteOnly: false,\n limit: Infinity,\n allowUserInput: false,\n onChipAdd: null,\n onChipSelect: null,\n onChipDelete: null\n};\n\nexport class Chips extends Component<ChipsOptions> {\n /** Array of the current chips data. */\n chipsData: ChipData[];\n /** If the chips has autocomplete enabled. */\n hasAutocomplete: boolean;\n /** Autocomplete instance, if any. */\n autocomplete: Autocomplete;\n _input: HTMLInputElement;\n _label: HTMLLabelElement;\n _chips: HTMLElement[];\n static _keydown: boolean;\n private _selectedChip: HTMLElement;\n\n constructor(el: HTMLElement, options: Partial<ChipsOptions>) {\n super(el, options, Chips);\n this.el['Expressive_Chips'] = this;\n\n this.options = {\n ...Chips.defaults,\n ...options\n };\n\n this.el.classList.add('chips');\n this.chipsData = [];\n this._chips = [];\n\n // Render initial chips\n if (this.options.data.length) {\n this.chipsData = this.options.data;\n this._renderChips();\n }\n\n // Render input element, setup event handlers\n if (this.options.allowUserInput) {\n this.el.classList.add('input-field');\n this._setupInput();\n this._setupEventHandlers();\n // move input to end\n this.el.append(this._input);\n }\n // After _setupInput: the label points at the input's id, which is only\n // assigned there. Running this first threw on any .chips with a <label>.\n this._setupLabel();\n }\n\n static get defaults() {\n return _defaults;\n }\n\n /**\n * Initializes instance of Chips.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<ChipsOptions>): Chips;\n /**\n * Initializes instances of Chips.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<ChipsOptions>): Chips[];\n /**\n * Initializes instances of Chips.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<ChipsOptions> = {}\n ): Chips | Chips[] {\n return super.init(els, options, Chips);\n }\n\n static getInstance(el: HTMLElement): Chips {\n return el['Expressive_Chips'];\n }\n\n getData() {\n return this.chipsData;\n }\n\n destroy() {\n if (this.options.allowUserInput) {\n this._removeEventHandlers();\n }\n this._chips.forEach((c) => c.remove());\n this._chips = [];\n this.el['Expressive_Chips'] = undefined;\n }\n\n _setupEventHandlers() {\n this.el.addEventListener('click', this._handleChipClick);\n // @todo why do we need this as document event listener, shouldn't we apply it to the element wrapper itself?\n document.addEventListener('keydown', Chips._handleChipsKeydown);\n document.addEventListener('keyup', Chips._handleChipsKeyup);\n this.el.addEventListener('blur', Chips._handleChipsBlur, true);\n this._input.addEventListener('focus', this._handleInputFocus);\n this._input.addEventListener('blur', this._handleInputBlur);\n this._input.addEventListener('keydown', this._handleInputKeydown);\n }\n\n _removeEventHandlers() {\n this.el.removeEventListener('click', this._handleChipClick);\n document.removeEventListener('keydown', Chips._handleChipsKeydown);\n document.removeEventListener('keyup', Chips._handleChipsKeyup);\n this.el.removeEventListener('blur', Chips._handleChipsBlur, true);\n this._input.removeEventListener('focus', this._handleInputFocus);\n this._input.removeEventListener('blur', this._handleInputBlur);\n this._input.removeEventListener('keydown', this._handleInputKeydown);\n }\n\n _handleChipClick = (e: MouseEvent) => {\n const _chip = (<HTMLElement>e.target).closest('.chip');\n const clickedClose = (<HTMLElement>e.target).classList.contains('close');\n if (_chip) {\n // Index into the chip list, not into the container's children: the\n // container also holds the label and the input, so counting children\n // gave an index that did not line up with chipsData.\n const index = this._chips.indexOf(_chip as HTMLElement);\n if (index < 0) return;\n if (clickedClose) {\n this.deleteChip(index);\n this._input.focus();\n } else {\n this.selectChip(index);\n }\n // Default handle click to focus on input\n } else {\n this._input.focus();\n }\n };\n\n static _handleChipsKeydown(e: KeyboardEvent) {\n Chips._keydown = true;\n const chips = (<HTMLElement>e.target).closest('.chips');\n const chipsKeydown = e.target && chips;\n\n // Don't handle keydown inputs on input and textarea\n const tag = (<HTMLElement>e.target).tagName;\n if (tag === 'INPUT' || tag === 'TEXTAREA' || !chipsKeydown) return;\n\n const currChips: Chips = chips['Expressive_Chips'];\n if (!currChips) return; // .chips markup without an instance behind it\n\n if (Utils.keys.BACKSPACE.includes(e.key) || Utils.keys.DELETE.includes(e.key)) {\n e.preventDefault();\n let selectIndex = currChips.chipsData.length;\n if (currChips._selectedChip) {\n const index = currChips._chips.indexOf(currChips._selectedChip);\n currChips.deleteChip(index);\n currChips._selectedChip = null;\n // Make sure selectIndex doesn't go negative\n selectIndex = Math.max(index - 1, 0);\n }\n if (currChips.chipsData.length) currChips.selectChip(selectIndex);\n else currChips._input.focus();\n } else if (Utils.keys.ARROW_LEFT.includes(e.key)) {\n if (currChips._selectedChip) {\n const selectIndex = currChips._chips.indexOf(currChips._selectedChip) - 1;\n if (selectIndex < 0) return;\n currChips.selectChip(selectIndex);\n }\n } else if (Utils.keys.ARROW_RIGHT.includes(e.key)) {\n if (currChips._selectedChip) {\n const selectIndex = currChips._chips.indexOf(currChips._selectedChip) + 1;\n if (selectIndex >= currChips.chipsData.length) currChips._input.focus();\n else currChips.selectChip(selectIndex);\n }\n }\n }\n\n static _handleChipsKeyup() {\n Chips._keydown = false;\n }\n\n static _handleChipsBlur(e: Event) {\n if (!Chips._keydown && document.hidden) {\n const chips = (<HTMLElement>e.target).closest('.chips');\n const currChips: Chips = chips?.['Expressive_Chips'];\n if (currChips) currChips._selectedChip = null;\n }\n }\n\n _handleInputFocus = () => {\n this.el.classList.add('focus');\n };\n\n _handleInputBlur = () => {\n this.el.classList.remove('focus');\n };\n\n _handleInputKeydown = (e: KeyboardEvent) => {\n Chips._keydown = true;\n if (Utils.keys.ENTER.includes(e.key)) {\n // Override enter if autocompleting.\n if (this.hasAutocomplete && this.autocomplete && this.autocomplete.isOpen) {\n return;\n }\n e.preventDefault();\n if (!this.hasAutocomplete || (this.hasAutocomplete && !this.options.autocompleteOnly)) {\n this.addChip({ id: this._input.value });\n }\n this._input.value = '';\n } else if (\n (Utils.keys.BACKSPACE.includes(e.key) || Utils.keys.ARROW_LEFT.includes(e.key)) &&\n this._input.value === '' &&\n this.chipsData.length\n ) {\n e.preventDefault();\n this.selectChip(this.chipsData.length - 1);\n }\n };\n\n _renderChip(chip: ChipData): HTMLDivElement {\n if (!chip.id) return;\n const renderedChip = document.createElement('div');\n renderedChip.classList.add('chip');\n renderedChip.innerText = chip.text || <string>chip.id;\n // attach image if needed\n if (chip.image) {\n const img = document.createElement('img');\n img.setAttribute('src', chip.image);\n renderedChip.insertBefore(img, renderedChip.firstChild);\n }\n if (this.options.allowUserInput) {\n renderedChip.setAttribute('tabindex', '0');\n const closeIcon = document.createElement('i');\n closeIcon.classList.add(this.options.closeIconClass, 'close');\n closeIcon.innerText = 'close';\n renderedChip.appendChild(closeIcon);\n }\n return renderedChip;\n }\n\n _renderChips() {\n this._chips = []; //.remove();\n for (let i = 0; i < this.chipsData.length; i++) {\n const chipElem = this._renderChip(this.chipsData[i]);\n this.el.appendChild(chipElem);\n this._chips.push(chipElem);\n }\n }\n\n _setupAutocomplete() {\n this.options.autocompleteOptions.onAutocomplete = (items) => {\n if (items.length > 0)\n this.addChip({\n id: items[0].id,\n text: items[0].text,\n image: items[0].image\n });\n this._input.value = '';\n this._input.focus();\n };\n this.autocomplete = Autocomplete.init(this._input, this.options.autocompleteOptions);\n }\n\n _setupInput() {\n this._input = this.el.querySelector('input');\n if (!this._input) {\n this._input = document.createElement('input');\n this.el.append(this._input);\n }\n this._input.classList.add('input');\n this.hasAutocomplete = Object.keys(this.options.autocompleteOptions).length > 0;\n // Setup autocomplete if needed\n if (this.hasAutocomplete) this._setupAutocomplete();\n this._setPlaceholder();\n // Set input id\n if (!this._input.getAttribute('id')) this._input.setAttribute('id', Utils.guid());\n }\n\n _setupLabel() {\n this._label = this.el.querySelector('label');\n // No input to point at when allowUserInput is off.\n if (this._label && this._input) this._label.setAttribute('for', this._input.getAttribute('id'));\n }\n\n _setPlaceholder() {\n if (this.chipsData !== undefined && !this.chipsData.length && this.options.placeholder) {\n this._input.placeholder = this.options.placeholder;\n } else if (\n (this.chipsData === undefined || !!this.chipsData.length) &&\n this.options.secondaryPlaceholder\n ) {\n this._input.placeholder = this.options.secondaryPlaceholder;\n }\n }\n\n _isValidAndNotExist(chip: ChipData) {\n const isValid = !!chip.id;\n const doesNotExist = !this.chipsData.some((item) => item.id == chip.id);\n return isValid && doesNotExist;\n }\n\n /**\n * Add chip to input.\n * @param chip Chip data object\n */\n addChip(chip: ChipData) {\n if (!this._isValidAndNotExist(chip) || this.chipsData.length >= this.options.limit) return;\n const renderedChip = this._renderChip(chip);\n this._chips.push(renderedChip);\n this.chipsData.push(chip);\n //$(this._input).before(renderedChip);\n this._input.before(renderedChip);\n this._setPlaceholder();\n // fire chipAdd callback\n if (typeof this.options.onChipAdd === 'function') {\n this.options.onChipAdd(this.el, renderedChip);\n }\n }\n\n /**\n * Delete nth chip.\n * @param chipIndex Index of chip\n */\n deleteChip(chipIndex: number) {\n const chip = this._chips[chipIndex];\n if (!chip) return;\n chip.remove();\n this._chips.splice(chipIndex, 1);\n this.chipsData.splice(chipIndex, 1);\n this._setPlaceholder();\n // fire chipDelete callback\n if (typeof this.options.onChipDelete === 'function') {\n this.options.onChipDelete(this.el, chip);\n }\n }\n\n /**\n * Select nth chip.\n * @param chipIndex Index of chip\n */\n selectChip(chipIndex: number) {\n const chip = this._chips[chipIndex];\n if (!chip) return;\n this._selectedChip = chip;\n chip.focus();\n // fire chipSelect callback\n if (typeof this.options.onChipSelect === 'function') {\n this.options.onChipSelect(this.el, chip);\n }\n }\n\n static Init() {\n // Handle removal of static chips - markup written by hand, with no Chips\n // instance behind it. Where there *is* an instance, _handleChipClick owns\n // the close button: removing the node here as well left chipsData holding\n // an entry whose element was gone.\n Utils.onDocumentReady(() => {\n const chips = document.querySelectorAll('.chips');\n chips.forEach((el) => {\n el.addEventListener('click', (e) => {\n if (el['Expressive_Chips']) return;\n if ((<HTMLElement>e.target).classList.contains('close')) {\n const chip = (<HTMLElement>e.target).closest('.chip');\n if (chip) chip.remove();\n }\n });\n });\n });\n }\n\n static {\n Chips._keydown = false;\n }\n}\n", "import { Component, BaseOptions, InitElements, MElement } from '../core/component';\nimport { Utils } from '../core/utils';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface RangeOptions extends BaseOptions {}\n\nconst _defaults: RangeOptions = {};\n\nexport class Range extends Component<RangeOptions> {\n declare el: HTMLInputElement;\n private _mousedown: boolean;\n value: HTMLElement;\n thumb: HTMLElement;\n\n constructor(el: HTMLInputElement, options: Partial<RangeOptions>) {\n super(el, options, Range);\n this.el['Expressive_Range'] = this;\n\n this.options = {\n ...Range.defaults,\n ...options\n };\n\n this._mousedown = false;\n this._setupThumb();\n this._sync();\n this._setupEventHandlers();\n }\n\n static get defaults(): RangeOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Range.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLInputElement, options?: Partial<RangeOptions>): Range;\n /**\n * Initializes instances of Range.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: InitElements<HTMLInputElement | MElement>,\n options?: Partial<RangeOptions>\n ): Range[];\n /**\n * Initializes instances of Range.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLInputElement | InitElements<HTMLInputElement | MElement>,\n options: Partial<RangeOptions> = {}\n ): Range | Range[] {\n return super.init(els, options, Range);\n }\n\n static getInstance(el: HTMLInputElement): Range {\n return el['Expressive_Range'];\n }\n\n destroy() {\n this._removeEventHandlers();\n this._removeThumb();\n this.el['Expressive_Range'] = undefined;\n }\n\n _setupEventHandlers() {\n this.el.addEventListener('change', this._handleRangeChange);\n this.el.addEventListener('mousedown', this._handleRangeMousedownTouchstart);\n this.el.addEventListener('touchstart', this._handleRangeMousedownTouchstart);\n this.el.addEventListener('input', this._handleRangeInputMousemoveTouchmove);\n this.el.addEventListener('mousemove', this._handleRangeInputMousemoveTouchmove);\n // Never calls preventDefault, so it does not need to block scrolling.\n this.el.addEventListener('touchmove', this._handleRangeInputMousemoveTouchmove, {\n passive: true\n });\n this.el.addEventListener('mouseup', this._handleRangeMouseupTouchend);\n this.el.addEventListener('touchend', this._handleRangeMouseupTouchend);\n this.el.addEventListener('blur', this._handleRangeBlurMouseoutTouchleave);\n this.el.addEventListener('mouseout', this._handleRangeBlurMouseoutTouchleave);\n this.el.addEventListener('touchleave', this._handleRangeBlurMouseoutTouchleave);\n }\n\n _removeEventHandlers() {\n this.el.removeEventListener('change', this._handleRangeChange);\n this.el.removeEventListener('mousedown', this._handleRangeMousedownTouchstart);\n this.el.removeEventListener('touchstart', this._handleRangeMousedownTouchstart);\n this.el.removeEventListener('input', this._handleRangeInputMousemoveTouchmove);\n this.el.removeEventListener('mousemove', this._handleRangeInputMousemoveTouchmove);\n this.el.removeEventListener('touchmove', this._handleRangeInputMousemoveTouchmove);\n this.el.removeEventListener('mouseup', this._handleRangeMouseupTouchend);\n this.el.removeEventListener('touchend', this._handleRangeMouseupTouchend);\n this.el.removeEventListener('blur', this._handleRangeBlurMouseoutTouchleave);\n this.el.removeEventListener('mouseout', this._handleRangeBlurMouseoutTouchleave);\n this.el.removeEventListener('touchleave', this._handleRangeBlurMouseoutTouchleave);\n }\n\n _handleRangeChange = () => {\n this._sync();\n this.thumb.classList.add('active');\n };\n\n _handleRangeMousedownTouchstart = (e: MouseEvent | TouchEvent) => {\n this._mousedown = true;\n this.el.classList.add('active');\n this._sync();\n if (e.type !== 'input') {\n this.thumb.classList.add('active');\n }\n };\n\n _handleRangeInputMousemoveTouchmove = () => {\n if (this._mousedown) {\n this._sync();\n this.thumb.classList.add('active');\n }\n };\n\n _handleRangeMouseupTouchend = () => {\n this._mousedown = false;\n this.el.classList.remove('active');\n };\n\n _handleRangeBlurMouseoutTouchleave = () => {\n if (!this._mousedown) {\n this.thumb.classList.remove('active');\n }\n };\n\n _setupThumb() {\n this.thumb = document.createElement('span');\n this.value = document.createElement('span');\n this.thumb.classList.add('thumb');\n this.value.classList.add('value');\n this.thumb.append(this.value);\n this.el.after(this.thumb);\n }\n\n _removeThumb() {\n this.thumb.remove();\n }\n\n _isVertical(): boolean {\n return !!this.el.closest('.vertical');\n }\n\n _sync() {\n const max = parseFloat(this.el.getAttribute('max')) || 100;\n const min = parseFloat(this.el.getAttribute('min')) || 0;\n const val = parseFloat(this.el.value) || 0;\n const percent = max === min ? 0 : (val - min) / (max - min);\n\n // Read before writing. This runs on every pointer move during a drag, and\n // setting the custom property first made each of the four offset reads\n // below flush a fresh layout.\n const left = this.el.offsetLeft;\n const top = this.el.offsetTop;\n const width = this.el.offsetWidth;\n const height = this.el.offsetHeight;\n\n this.el.style.setProperty('--md-comp-slider-active-fraction', `${percent * 100}%`);\n this.value.textContent = this.el.value;\n if (this._isVertical()) {\n this.thumb.style.left = `${left + width / 2}px`;\n this.thumb.style.top = `${top + (1 - percent) * height}px`;\n } else {\n this.thumb.style.left = `${left + percent * width}px`;\n this.thumb.style.top = `${top}px`;\n }\n }\n\n /**\n * Initializes every range input in the current document.\n */\n static Init() {\n // Deferred like every other Init(): this ran at import time, so a bundle\n // loaded in <head> found no inputs at all.\n Utils.onDocumentReady(() => {\n Range.init(document.querySelectorAll('input[type=range]') as NodeListOf<HTMLInputElement>, {});\n });\n }\n}\n", "import { Utils } from '../core/utils';\n\nexport class Forms {\n /**\n * Checks if the label has validation and apply\n * the correct class and styles\n * @param textfield\n */\n static validateField(textfield: HTMLInputElement) {\n if (!textfield) {\n console.error('No text field element found');\n return;\n }\n\n const hasLength = textfield.getAttribute('data-length') !== null;\n const lenAttr = parseInt(textfield.getAttribute('data-length'));\n const len = textfield.value.length;\n\n if (\n len === 0 &&\n textfield.validity.badInput === false &&\n !textfield.required &&\n textfield.classList.contains('validate')\n ) {\n textfield.classList.remove('invalid');\n } else if (textfield.classList.contains('validate')) {\n // Check for character counter attributes\n if (\n (textfield.validity.valid && hasLength && len <= lenAttr) ||\n (textfield.validity.valid && !hasLength)\n ) {\n textfield.classList.remove('invalid');\n } else {\n textfield.classList.add('invalid');\n }\n }\n }\n\n /**\n * Resizes the given TextArea after updating the\n * value content dynamically.\n * @param e EventTarget\n */\n static textareaAutoResize(e: EventTarget) {\n const textarea = e as HTMLTextAreaElement;\n if (!textarea) return;\n\n // Measure the textarea against itself: collapse it to its natural height,\n // then read the content height back. `.expressive-textarea` is\n // `overflow-y: hidden`, so scrollHeight is the full content height and\n // offsetHeight - clientHeight is exactly the borders (no scrollbar to\n // account for) - which border-box sizing needs added back.\n //\n // This replaces a mirror div that the value was copied into via\n // `innerHTML = innerHTML.replace(...)` - a full serialize and reparse of\n // the text on every keystroke, plus getComputedStyle and seven style\n // writes, run twice per keystroke because it was bound to keydown and\n // keyup both.\n if (!textarea.hasAttribute('original-height')) {\n textarea.setAttribute('original-height', textarea.getBoundingClientRect().height.toString());\n }\n const originalHeight = parseInt(textarea.getAttribute('original-height'));\n if (isNaN(originalHeight)) return;\n\n textarea.style.height = 'auto';\n // Three reads after a single write: one layout flush for the whole resize.\n const borders = textarea.offsetHeight - textarea.clientHeight;\n const contentHeight = textarea.scrollHeight + borders;\n textarea.style.height = Math.max(originalHeight, contentHeight) + 'px';\n }\n\n static Init() {\n Utils.onDocumentReady(() => {\n document.addEventListener('change', (e: KeyboardEvent) => {\n const target = <HTMLInputElement>e.target;\n if (target instanceof HTMLInputElement) {\n // The sibling-label loop that used to live here compared\n // `tagName == 'label'` (tagName is uppercase) so it never matched,\n // and no rule in the Sass styles `label.active` anyway - the\n // floating label is driven by CSS, not by a class from here.\n Forms.validateField(target);\n }\n });\n\n document.addEventListener('keyup', (e: KeyboardEvent) => {\n const target = <HTMLInputElement>e.target;\n // Radio and Checkbox focus class\n if (target instanceof HTMLInputElement && ['radio', 'checkbox'].includes(target.type)) {\n // TAB, check if tabbing to radio or checkbox.\n if (Utils.keys.TAB.includes(e.key)) {\n target.classList.add('tabbed');\n target.addEventListener('blur', () => target.classList.remove('tabbed'), {\n once: true\n });\n }\n }\n });\n\n document.querySelectorAll('.expressive-textarea').forEach((textArea: HTMLTextAreaElement) => {\n Forms.InitTextarea(textArea);\n });\n\n // File Input Path\n document\n .querySelectorAll('.file-field input[type=\"file\"]')\n .forEach((fileInput: HTMLInputElement) => {\n Forms.InitFileInputPath(fileInput);\n });\n });\n }\n\n static InitTextarea(textarea: HTMLTextAreaElement) {\n // Save Data in Element\n textarea.setAttribute('original-height', textarea.getBoundingClientRect().height.toString());\n Forms.textareaAutoResize(textarea);\n // `input` rather than keydown + keyup: it fires once per actual value\n // change and also covers paste, drag-drop and IME composition, which the\n // key events missed.\n textarea.addEventListener('input', (e) => Forms.textareaAutoResize(e.target));\n }\n\n static InitFileInputPath(fileInput: HTMLInputElement) {\n fileInput.addEventListener('change', () => {\n const fileField = fileInput.closest('.file-field');\n const pathInput = <HTMLInputElement>fileField.querySelector('input.file-path');\n const files = fileInput.files;\n const filenames = [];\n for (let i = 0; i < files.length; i++) {\n filenames.push(files[i].name);\n }\n pathInput.value = filenames.join(', ');\n pathInput.dispatchEvent(\n new Event('change', { bubbles: true, cancelable: true, composed: true })\n );\n });\n }\n}\n", "import { Utils } from '../core/utils';\n\ntype RGBColor = {\n r: number;\n g: number;\n b: number;\n};\n\ntype Position = {\n x: number;\n y: number;\n};\n\nexport class Waves {\n private static _offset(el: HTMLElement) {\n const box = el.getBoundingClientRect();\n const docElem = document.documentElement;\n return {\n top: box.top + window.pageYOffset - docElem.clientTop,\n left: box.left + window.pageXOffset - docElem.clientLeft\n };\n }\n\n // https://phoenix-dx.com/css-techniques-for-material-ripple-effect/\n\n static renderWaveEffect(\n targetElement: HTMLElement,\n position: Position | null = null,\n color: RGBColor | null = null\n ): void {\n const isCentered = position === null;\n const duration = 500;\n let animationFrame: number, animationStart: number;\n const animationStep = function (timestamp: number) {\n if (!animationStart) {\n animationStart = timestamp;\n }\n const frame = timestamp - animationStart;\n if (frame < duration) {\n const easing = (frame / duration) * (2 - frame / duration);\n const circle = isCentered\n ? 'circle at 50% 50%'\n : `circle at ${position.x}px ${position.y}px`;\n const waveColor = `rgba(${color?.r || 0}, ${color?.g || 0}, ${color?.b || 0}, ${0.3 * (1 - easing)})`;\n const stop = 90 * easing + '%';\n targetElement.style.backgroundImage =\n 'radial-gradient(' +\n circle +\n ', ' +\n waveColor +\n ' ' +\n stop +\n ', transparent ' +\n stop +\n ')';\n animationFrame = window.requestAnimationFrame(animationStep);\n } else {\n targetElement.style.backgroundImage = 'none';\n window.cancelAnimationFrame(animationFrame);\n }\n };\n animationFrame = window.requestAnimationFrame(animationStep);\n }\n\n static Init() {\n Utils.onDocumentReady(() => {\n document.body.addEventListener('click', (e) => {\n const trigger = <HTMLElement>e.target;\n const el = <HTMLElement>trigger.closest('.waves-effect');\n if (el && el.contains(trigger)) {\n const isCircular = el.classList.contains('waves-circle');\n const offset = Waves._offset(el); // one rect, not one per axis\n const x = e.pageX - offset.left;\n const y = e.pageY - offset.top;\n\n let color = null;\n if (el.classList.contains('waves-light')) color = { r: 255, g: 255, b: 255 };\n\n Waves.renderWaveEffect(el, isCircular ? null : { x, y }, color);\n }\n });\n });\n }\n}\n", "import { Component, BaseOptions, InitElements, MElement, Openable } from \"../core/component\";\nimport { Utils } from '../core/utils';\n\nexport interface FloatingActionButtonOptions extends BaseOptions {\n /**\n * Direction FAB menu opens.\n * @default \"top\"\n */\n direction: 'top' | 'right' | 'bottom' | 'left';\n /**\n * true: FAB menu appears on hover, false: FAB menu appears on click.\n * @default true\n */\n hoverEnabled: boolean;\n /**\n * Enable transit the FAB into a toolbar on click.\n * @default false\n */\n toolbarEnabled: boolean;\n}\n\nconst _defaults: FloatingActionButtonOptions = {\n direction: 'top',\n hoverEnabled: true,\n toolbarEnabled: false\n};\n\nexport class FloatingActionButton\n extends Component<FloatingActionButtonOptions>\n implements Openable\n{\n /**\n * Describes open/close state of FAB.\n */\n isOpen: boolean;\n\n private _anchor: HTMLElement;\n private _menu: HTMLElement | null;\n private _floatingBtns: HTMLElement[];\n private _floatingBtnsReverse: HTMLElement[];\n /** Toolbar-mode backdrop, kept so closing can take it back out. */\n private _backdrop: HTMLElement | null = null;\n\n offsetY: number;\n offsetX: number;\n btnBottom: number;\n btnLeft: number;\n btnWidth: number;\n\n constructor(el: HTMLElement, options: Partial<FloatingActionButtonOptions>) {\n super(el, options, FloatingActionButton);\n this.el['Expressive_FloatingActionButton'] = this;\n\n this.options = {\n ...FloatingActionButton.defaults,\n ...options\n };\n\n this.isOpen = false;\n this._anchor = this.el.querySelector('a, button');\n this._menu = this.el.querySelector('ul');\n this._floatingBtns = Array.from(this.el.querySelectorAll('ul .btn-floating'));\n this._floatingBtnsReverse = this._floatingBtns.reverse();\n this.offsetY = 0;\n this.offsetX = 0;\n\n this.el.classList.add(`direction-${this.options.direction}`);\n if (this._anchor) this._anchor.tabIndex = 0;\n if (this._menu) this._menu.ariaExpanded = 'false';\n if (this.options.direction === 'top')\n this.offsetY = 40;\n else if (this.options.direction === 'right')\n this.offsetX = -40;\n else if (this.options.direction === 'bottom')\n this.offsetY = -40;\n else\n this.offsetX = 40;\n this._setupEventHandlers();\n }\n\n static get defaults() {\n return _defaults;\n }\n\n /**\n * Initializes instance of FloatingActionButton.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(\n el: HTMLElement,\n options?: Partial<FloatingActionButtonOptions>\n ): FloatingActionButton;\n /**\n * Initializes instances of FloatingActionButton.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: InitElements<MElement>,\n options?: Partial<FloatingActionButtonOptions>\n ): FloatingActionButton[];\n /**\n * Initializes instances of FloatingActionButton.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<FloatingActionButtonOptions> = {}\n ): FloatingActionButton | FloatingActionButton[] {\n return super.init(els, options, FloatingActionButton);\n }\n\n static getInstance(el: HTMLElement): FloatingActionButton {\n return el['Expressive_FloatingActionButton'];\n }\n\n destroy() {\n this._removeEventHandlers();\n // Toolbar mode parks a capture-phase scroll listener and a body click\n // listener on the document; close() is what takes them back off.\n this.close();\n this.el['Expressive_FloatingActionButton'] = undefined;\n }\n\n _setupEventHandlers() {\n if (this.options.hoverEnabled && !this.options.toolbarEnabled) {\n this.el.addEventListener('mouseenter', this.open);\n this.el.addEventListener('mouseleave', this.close);\n } else {\n this.el.addEventListener('click', this._handleFABClick);\n }\n this.el.addEventListener('keypress', this._handleFABKeyPress);\n }\n\n _removeEventHandlers() {\n if (this.options.hoverEnabled && !this.options.toolbarEnabled) {\n this.el.removeEventListener('mouseenter', this.open);\n this.el.removeEventListener('mouseleave', this.close);\n } else {\n this.el.removeEventListener('click', this._handleFABClick);\n }\n this.el.removeEventListener('keypress', this._handleFABKeyPress);\n }\n\n _handleFABClick = () => {\n this._handleFABToggle()\n}\n\n _handleFABKeyPress = (e) => {\n if(Utils.keys.ENTER.includes(e.key)) {\n this._handleFABToggle();\n }\n }\n\n _handleFABToggle = () => {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n };\n\n _handleDocumentClick = (e: MouseEvent) => {\n const elem = e.target;\n if (elem !== this._menu) this.close();\n };\n\n /**\n * Open FAB.\n */\n open = (): void => {\n if (this.isOpen) return;\n if (this.options.toolbarEnabled) this._animateInToolbar();\n else this._animateInFAB();\n this.isOpen = true;\n };\n\n /**\n * Close FAB.\n */\n close = (): void => {\n if (!this.isOpen) return;\n if (this.options.toolbarEnabled) {\n window.removeEventListener('scroll', this.close, true);\n document.body.removeEventListener('click', this._handleDocumentClick, true);\n this._animateOutToolbar();\n } else {\n this._animateOutFAB();\n }\n this.isOpen = false;\n };\n\n _animateInFAB() {\n this.el.classList.add('active');\n if (this._menu) this._menu.ariaExpanded = 'true';\n const delayIncrement = 40;\n const duration = 275;\n\n this._floatingBtnsReverse.forEach((el, index) => {\n const delay = delayIncrement * index;\n el.style.transition = 'none';\n el.style.opacity = '0';\n el.style.transform = `translate(${this.offsetX}px, ${this.offsetY}px) scale(0.4)`;\n setTimeout(() => {\n // from:\n el.style.opacity = '0.4';\n // easeInOutQuad\n setTimeout(() => {\n // to:\n el.style.transition = `opacity ${duration}ms ease, transform ${duration}ms ease`;\n el.style.opacity = '1';\n el.style.transform = 'translate(0, 0) scale(1)';\n el.tabIndex = 0;\n }, 1);\n }, delay);\n });\n }\n\n _animateOutFAB() {\n const duration = 175;\n setTimeout(() => {\n this.el.classList.remove('active');\n if (this._menu) this._menu.ariaExpanded = 'false';\n }, duration);\n this._floatingBtnsReverse.forEach((el) => {\n el.style.transition = `opacity ${duration}ms ease, transform ${duration}ms ease`;\n // to\n el.style.opacity = '0';\n el.style.transform = `translate(${this.offsetX}px, ${this.offsetY}px) scale(0.4)`;\n el.tabIndex = -1;\n });\n }\n\n _animateInToolbar() {\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const btnRect = this.el.getBoundingClientRect();\n const fabColor = getComputedStyle(this._anchor).backgroundColor;\n\n // The backdrop has to be in the document before it has a width. Reading\n // `backdrop[0].clientWidth` off a bare element - a leftover from the\n // cash-based original, where [0] unwrapped the collection - threw here and\n // took the whole of toolbar mode with it.\n const backdrop = document.createElement('div');\n backdrop.classList.add('fab-backdrop');\n backdrop.style.backgroundColor = fabColor;\n this._anchor.append(backdrop);\n this._backdrop = backdrop;\n const backdropWidth = backdrop.clientWidth;\n const scaleFactor = backdropWidth > 0 ? windowWidth / backdropWidth : 1;\n\n this.offsetX = btnRect.left - windowWidth / 2 + btnRect.width / 2;\n this.offsetY = windowHeight - btnRect.bottom;\n this.btnBottom = btnRect.bottom;\n this.btnLeft = btnRect.left;\n this.btnWidth = btnRect.width;\n\n // Set initial state\n this.el.classList.add('active');\n this.el.style.textAlign = 'center';\n this.el.style.width = '100%';\n this.el.style.bottom = '0';\n this.el.style.left = '0';\n this.el.style.transform = 'translateX(' + this.offsetX + 'px)';\n this.el.style.transition = 'none';\n if (this._menu) this._menu.ariaExpanded = 'true';\n\n // Was missing its closing paren, so the browser dropped the declaration.\n this._anchor.style.transform = `translateY(${this.offsetY}px)`;\n this._anchor.style.transition = 'none';\n\n setTimeout(() => {\n this.el.style.transform = '';\n this.el.style.transition =\n 'transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s';\n\n this._anchor.style.overflow = 'visible';\n this._anchor.style.transform = '';\n this._anchor.style.transition = 'transform .2s';\n\n setTimeout(() => {\n this.el.style.overflow = 'hidden';\n this.el.style.backgroundColor = fabColor;\n\n backdrop.style.transform = 'scale(' + scaleFactor + ')';\n backdrop.style.transition = 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)';\n\n this._menu.querySelectorAll('li > a').forEach((a: HTMLAnchorElement) => {\n a.style.opacity = '1';\n a.tabIndex = 0;\n });\n\n // Scroll to close.\n window.addEventListener('scroll', this.close, true);\n document.body.addEventListener('click', this._handleDocumentClick, true);\n }, 100);\n }, 0);\n }\n\n /**\n * Reverse {@link _animateInToolbar}.\n *\n * Closing used to only unbind the listeners, leaving the FAB stretched\n * across the viewport with its backdrop still in the DOM - and a fresh\n * backdrop appended on every subsequent open.\n */\n _animateOutToolbar() {\n const backdrop = this._backdrop;\n this._backdrop = null;\n\n this._menu?.querySelectorAll('li > a').forEach((a: HTMLAnchorElement) => {\n a.style.opacity = '';\n a.tabIndex = -1;\n });\n\n if (backdrop) {\n backdrop.style.transition = 'transform .2s';\n backdrop.style.transform = 'scale(0)';\n }\n\n this.el.style.overflow = '';\n this.el.style.backgroundColor = '';\n this.el.style.transition = 'transform .2s';\n this.el.style.transform = `translateX(${this.offsetX}px)`;\n this._anchor.style.transition = 'transform .2s';\n this._anchor.style.transform = `translateY(${this.offsetY}px)`;\n\n setTimeout(() => {\n backdrop?.remove();\n this.el.classList.remove('active');\n if (this._menu) this._menu.ariaExpanded = 'false';\n // Clear every inline style _animateInToolbar wrote.\n this.el.style.textAlign = '';\n this.el.style.width = '';\n this.el.style.bottom = '';\n this.el.style.left = '';\n this.el.style.transform = '';\n this.el.style.transition = '';\n this._anchor.style.overflow = '';\n this._anchor.style.transform = '';\n this._anchor.style.transition = '';\n }, 200);\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface CarouselOptions extends BaseOptions {\n /**\n * Transition duration in milliseconds.\n * @default 200\n */\n duration: number;\n /**\n * Perspective zoom. If 0, all items are the same size.\n * @default -100\n */\n dist: number;\n /**\n * Set the spacing of the center item.\n * @default 0\n */\n shift: number;\n /**\n * Set the padding between non center items.\n * @default 0\n */\n padding: number;\n /**\n * Set the number of visible items.\n * @default 5\n */\n numVisible: number;\n /**\n * Make the carousel a full width slider like the second example.\n * @default false\n */\n fullWidth: boolean;\n /**\n * Set to true to show indicators.\n * @default false\n */\n indicators: boolean;\n /**\n * Don't wrap around and cycle through items.\n * @default false\n */\n noWrap: boolean;\n /**\n * Callback for when a new slide is cycled to.\n * @default null\n */\n onCycleTo: (current: Element, dragged: boolean) => void;\n}\n\nconst _defaults: CarouselOptions = {\n duration: 200, // ms\n dist: -100, // zoom scale TODO: make this more intuitive as an option\n shift: 0, // spacing for center image\n padding: 0, // Padding between non center items\n numVisible: 5, // Number of visible items in carousel\n fullWidth: false, // Change to full width styles\n indicators: false, // Toggle indicators\n noWrap: false, // Don't wrap around and cycle through items.\n onCycleTo: null // Callback for when a new slide is cycled to.\n};\n\nexport class Carousel extends Component<CarouselOptions> {\n hasMultipleSlides: boolean;\n showIndicators: boolean;\n noWrap: boolean;\n /** If the carousel is being clicked or tapped. */\n pressed: boolean;\n /** If the carousel is currently being dragged. */\n dragged: boolean;\n offset: number;\n target: number;\n images: HTMLElement[];\n itemWidth: number;\n itemHeight: number;\n dim: number;\n _indicators: HTMLUListElement;\n count: number;\n verticalDragged: boolean;\n reference: number;\n referenceY: number;\n velocity: number;\n frame: number;\n timestamp: number;\n ticker: ReturnType<typeof setTimeout>;\n amplitude: number;\n /** The index of the center carousel item. */\n center: number = 0;\n imageHeight: number;\n scrollingTimeout: ReturnType<typeof setTimeout>;\n oneTimeCallback: (current: Element, dragged: boolean) => void | null;\n\n constructor(el: HTMLElement, options: Partial<CarouselOptions>) {\n super(el, options, Carousel);\n this.el['Expressive_Carousel'] = this;\n\n this.options = {\n ...Carousel.defaults,\n ...options\n };\n\n // Setup\n this.hasMultipleSlides = this.el.querySelectorAll('.carousel-item').length > 1;\n this.showIndicators = this.options.indicators && this.hasMultipleSlides;\n this.noWrap = this.options.noWrap || !this.hasMultipleSlides;\n this.pressed = false;\n this.dragged = false;\n this.offset = this.target = 0;\n this.images = [];\n const firstItem = this.el.querySelector('.carousel-item');\n if (!firstItem) {\n console.error('Carousel: no .carousel-item elements to show');\n return;\n }\n this.itemWidth = firstItem.clientWidth;\n this.itemHeight = firstItem.clientHeight;\n this.dim = this.itemWidth * 2 + this.options.padding || 1; // Make sure dim is non zero for divisions.\n\n // Full Width carousel setup\n if (this.options.fullWidth) {\n this.options.dist = 0;\n this._setCarouselHeight();\n\n // Offset fixed items when indicators.\n if (this.showIndicators) {\n this.el.querySelector('.carousel-fixed-item')?.classList.add('with-indicators');\n }\n }\n\n // Iterate through slides\n this._indicators = document.createElement('ul');\n this._indicators.classList.add('indicators');\n\n this.el.querySelectorAll('.carousel-item').forEach((item: HTMLElement, i) => {\n this.images.push(item);\n if (this.showIndicators) {\n const indicator = document.createElement('li');\n indicator.classList.add('indicator-item');\n indicator.tabIndex = 0;\n if (i === 0) {\n indicator.classList.add('active');\n }\n this._indicators.appendChild(indicator);\n }\n });\n\n if (this.showIndicators) this.el.appendChild(this._indicators);\n\n this.count = this.images.length;\n\n // Cap numVisible at count\n this.options.numVisible = Math.min(this.count, this.options.numVisible);\n\n this._setupEventHandlers();\n this._scroll(this.offset);\n }\n\n static get defaults(): CarouselOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Carousel.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<CarouselOptions>): Carousel;\n /**\n * Initializes instances of Carousel.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<CarouselOptions>): Carousel[];\n /**\n * Initializes instances of Carousel.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<CarouselOptions> = {}\n ): Carousel | Carousel[] {\n return super.init(els, options, Carousel);\n }\n\n static getInstance(el: HTMLElement): Carousel {\n return el['Expressive_Carousel'];\n }\n\n destroy() {\n this._removeEventHandlers();\n this.el['Expressive_Carousel'] = undefined;\n }\n\n _setupEventHandlers() {\n if (typeof window.ontouchstart !== 'undefined') {\n this.el.addEventListener('touchstart', this._handleCarouselTap);\n this.el.addEventListener('touchmove', this._handleCarouselDrag);\n this.el.addEventListener('touchend', this._handleCarouselRelease);\n }\n this.el.addEventListener('mousedown', this._handleCarouselTap);\n this.el.addEventListener('mousemove', this._handleCarouselDrag);\n this.el.addEventListener('mouseup', this._handleCarouselRelease);\n this.el.addEventListener('mouseleave', this._handleCarouselRelease);\n this.el.addEventListener('click', this._handleCarouselClick);\n if (this.showIndicators && this._indicators) {\n this._indicators.querySelectorAll('.indicator-item').forEach((el) => {\n el.addEventListener('click', this._handleIndicatorClick);\n el.addEventListener('keypress', this._handleIndicatorKeyPress);\n });\n }\n // Resize\n window.addEventListener('resize', this._handleThrottledResize);\n }\n\n _removeEventHandlers() {\n if (typeof window.ontouchstart !== 'undefined') {\n this.el.removeEventListener('touchstart', this._handleCarouselTap);\n this.el.removeEventListener('touchmove', this._handleCarouselDrag);\n this.el.removeEventListener('touchend', this._handleCarouselRelease);\n }\n this.el.removeEventListener('mousedown', this._handleCarouselTap);\n this.el.removeEventListener('mousemove', this._handleCarouselDrag);\n this.el.removeEventListener('mouseup', this._handleCarouselRelease);\n this.el.removeEventListener('mouseleave', this._handleCarouselRelease);\n this.el.removeEventListener('click', this._handleCarouselClick);\n if (this.showIndicators && this._indicators) {\n this._indicators.querySelectorAll('.indicator-item').forEach((el) => {\n el.removeEventListener('click', this._handleIndicatorClick);\n });\n }\n window.removeEventListener('resize', this._handleThrottledResize);\n }\n\n // Built once per instance. Creating the throttled function inside the\n // handler - as this used to - produced a fresh closure per resize event and\n // never actually called it, so resizing did nothing at all.\n _handleThrottledResize = Utils.throttle(() => this._handleResize(), 200);\n\n _handleCarouselTap = (e: MouseEvent | TouchEvent) => {\n // Fixes firefox draggable image bug\n if (e.type === 'mousedown' && (<HTMLElement>e.target).tagName === 'IMG') {\n e.preventDefault();\n }\n this.pressed = true;\n this.dragged = false;\n this.verticalDragged = false;\n this.reference = this._xpos(e);\n this.referenceY = this._ypos(e);\n\n this.velocity = this.amplitude = 0;\n this.frame = this.offset;\n this.timestamp = Date.now();\n clearInterval(this.ticker);\n this.ticker = setInterval(this._track, 100);\n };\n\n _handleCarouselDrag = (e: MouseEvent | TouchEvent) => {\n let x: number, y: number, delta: number, deltaY: number;\n if (this.pressed) {\n x = this._xpos(e);\n y = this._ypos(e);\n delta = this.reference - x;\n deltaY = Math.abs(this.referenceY - y);\n if (deltaY < 30 && !this.verticalDragged) {\n // If vertical scrolling don't allow dragging.\n if (delta > 2 || delta < -2) {\n this.dragged = true;\n this.reference = x;\n this._scroll(this.offset + delta);\n }\n } else if (this.dragged) {\n // If dragging don't allow vertical scroll.\n e.preventDefault();\n e.stopPropagation();\n return false;\n } else {\n // Vertical scrolling.\n this.verticalDragged = true;\n }\n }\n if (this.dragged) {\n // If dragging don't allow vertical scroll.\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n };\n\n _handleCarouselRelease = (e: MouseEvent | TouchEvent) => {\n if (this.pressed) {\n this.pressed = false;\n } else {\n return;\n }\n clearInterval(this.ticker);\n this.target = this.offset;\n if (this.velocity > 10 || this.velocity < -10) {\n this.amplitude = 0.9 * this.velocity;\n this.target = this.offset + this.amplitude;\n }\n this.target = Math.round(this.target / this.dim) * this.dim;\n // No wrap of items.\n if (this.noWrap) {\n if (this.target >= this.dim * (this.count - 1)) {\n this.target = this.dim * (this.count - 1);\n } else if (this.target < 0) {\n this.target = 0;\n }\n }\n this.amplitude = this.target - this.offset;\n this.timestamp = Date.now();\n requestAnimationFrame(this._autoScroll);\n if (this.dragged) {\n e.preventDefault();\n e.stopPropagation();\n }\n return false;\n };\n\n _handleCarouselClick = (e: MouseEvent | TouchEvent) => {\n // Disable clicks if carousel was dragged.\n if (this.dragged) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n } else if (!this.options.fullWidth) {\n const clickedElem = (<HTMLElement>e.target).closest('.carousel-item');\n if (!clickedElem) return;\n const clickedIndex = [...clickedElem.parentNode.children].indexOf(clickedElem);\n const diff = this._wrap(this.center) - clickedIndex;\n // Disable clicks if carousel was shifted by click\n if (diff !== 0) {\n e.preventDefault();\n e.stopPropagation();\n }\n // fixes https://github.com/materializecss/materialize/issues/180\n if (clickedIndex < 0) {\n // relative X position > center of carousel = clicked at the right part of the carousel\n if (\n (e as MouseEvent).clientX - (e.target as HTMLElement).getBoundingClientRect().left >\n this.el.clientWidth / 2\n ) {\n this.next();\n } else {\n this.prev();\n }\n } else {\n this._cycleTo(clickedIndex);\n }\n }\n };\n\n _handleIndicatorClick = (e: Event) => {\n e.stopPropagation();\n this._handleIndicatorInteraction(e);\n };\n\n _handleIndicatorKeyPress = (e: KeyboardEvent) => {\n e.stopPropagation();\n if (Utils.keys.ENTER.includes(e.key)) {\n this._handleIndicatorInteraction(e);\n }\n };\n\n _handleIndicatorInteraction = (e: Event) => {\n const indicator = (<HTMLElement>e.target).closest('.indicator-item');\n if (indicator) {\n const index = [...indicator.parentNode.children].indexOf(indicator);\n this._cycleTo(index);\n }\n };\n\n _handleResize = () => {\n if (this.options.fullWidth) {\n const firstItem = this.el.querySelector('.carousel-item');\n const activeItem = this.el.querySelector('.carousel-item.active');\n if (!firstItem || !activeItem) return;\n this.itemWidth = firstItem.clientWidth;\n this.imageHeight = activeItem.clientHeight;\n this.dim = this.itemWidth * 2 + this.options.padding;\n this.offset = this.center * 2 * this.itemWidth;\n this.target = this.offset;\n this._setCarouselHeight(true);\n } else {\n this._scroll();\n }\n };\n\n _setCarouselHeight(imageOnly: boolean = false) {\n const firstSlide = this.el.querySelector('.carousel-item.active')\n ? this.el.querySelector('.carousel-item.active')\n : this.el.querySelector('.carousel-item');\n\n const firstImage = firstSlide.querySelector('img');\n if (firstImage) {\n if (firstImage.complete) {\n // If image won't trigger the load event\n const imageHeight = firstImage.clientHeight;\n if (imageHeight > 0) {\n this.el.style.height = imageHeight + 'px';\n } else {\n // If image still has no height, use the natural dimensions to calculate\n const naturalWidth = firstImage.naturalWidth;\n const naturalHeight = firstImage.naturalHeight;\n const adjustedHeight = (this.el.clientWidth / naturalWidth) * naturalHeight;\n this.el.style.height = adjustedHeight + 'px';\n }\n } else {\n // Get height when image is loaded normally\n firstImage.addEventListener('load', () => {\n this.el.style.height = firstImage.offsetHeight + 'px';\n });\n }\n } else if (!imageOnly) {\n const slideHeight = firstSlide.clientHeight;\n this.el.style.height = slideHeight + 'px';\n }\n }\n\n _xpos(e: MouseEvent | TouchEvent) {\n // touch event\n if (e.type.startsWith('touch') && (e as TouchEvent).targetTouches.length >= 1) {\n return (e as TouchEvent).targetTouches[0].clientX;\n }\n // mouse event\n return (e as MouseEvent).clientX;\n }\n\n _ypos(e: MouseEvent | TouchEvent) {\n // touch event\n if (e.type.startsWith('touch') && (e as TouchEvent).targetTouches.length >= 1) {\n return (e as TouchEvent).targetTouches[0].clientY;\n }\n // mouse event\n return (e as MouseEvent).clientY;\n }\n\n _wrap(x: number) {\n return x >= this.count ? x % this.count : x < 0 ? this._wrap(this.count + (x % this.count)) : x;\n }\n\n _track = () => {\n const now: number = Date.now(),\n elapsed: number = now - this.timestamp,\n delta: number = this.offset - this.frame,\n v: number = (1000 * delta) / (1 + elapsed);\n // now = Date.now();\n // elapsed = now - this.timestamp;\n this.timestamp = now;\n // delta = this.offset - this.frame;\n this.frame = this.offset;\n // v = (1000 * delta) / (1 + elapsed);\n this.velocity = 0.8 * v + 0.2 * this.velocity;\n };\n\n _autoScroll = () => {\n let elapsed: number, delta: number;\n if (this.amplitude) {\n elapsed = Date.now() - this.timestamp;\n delta = this.amplitude * Math.exp(-elapsed / this.options.duration);\n if (delta > 2 || delta < -2) {\n this._scroll(this.target - delta);\n requestAnimationFrame(this._autoScroll);\n } else {\n this._scroll(this.target);\n }\n }\n };\n\n _scroll(x: number = 0) {\n // Track scrolling state\n if (!this.el.classList.contains('scrolling')) {\n this.el.classList.add('scrolling');\n }\n if (this.scrollingTimeout != null) {\n clearTimeout(this.scrollingTimeout);\n }\n this.scrollingTimeout = setTimeout(() => {\n this.el.classList.remove('scrolling');\n }, this.options.duration);\n\n // Start actual scroll\n this.offset = typeof x === 'number' ? x : this.offset;\n this.center = Math.floor((this.offset + this.dim / 2) / this.dim);\n\n const half: number = this.count >> 1,\n delta: number = this.offset - this.center * this.dim,\n dir: number = delta < 0 ? 1 : -1,\n tween: number = (-dir * delta * 2) / this.dim;\n let i: number,\n el: HTMLElement,\n alignment: string,\n zTranslation: number,\n tweenedOpacity: number,\n centerTweenedOpacity: number;\n const lastCenter = this.center;\n const numVisibleOffset = 1 / this.options.numVisible;\n\n // delta = this.offset - this.center * this.dim;\n // dir = delta < 0 ? 1 : -1;\n // tween = (-dir * delta * 2) / this.dim;\n // half = this.count >> 1;\n\n if (this.options.fullWidth) {\n alignment = 'translateX(0)';\n centerTweenedOpacity = 1;\n } else {\n alignment = 'translateX(' + (this.el.clientWidth - this.itemWidth) / 2 + 'px) ';\n alignment += 'translateY(' + (this.el.clientHeight - this.itemHeight) / 2 + 'px)';\n centerTweenedOpacity = 1 - numVisibleOffset * tween;\n }\n\n // Set indicator active\n if (this.showIndicators) {\n const diff = this.center % this.count;\n const activeIndicator = this._indicators.querySelector('.indicator-item.active');\n const activeIndicatorIndex = [...activeIndicator.parentNode.children].indexOf(\n activeIndicator\n );\n if (activeIndicatorIndex !== diff) {\n activeIndicator.classList.remove('active');\n const pos = diff < 0 ? this.count + diff : diff;\n this._indicators.querySelectorAll('.indicator-item')[pos].classList.add('active');\n }\n }\n\n // center\n // Don't show wrapped items.\n if (!this.noWrap || (this.center >= 0 && this.center < this.count)) {\n el = this.images[this._wrap(this.center)];\n\n // Add active class to center item. Clear it off whichever item actually\n // has it - this used to unconditionally clear the *first* item.\n if (!el.classList.contains('active')) {\n this.el.querySelector('.carousel-item.active')?.classList.remove('active');\n el.classList.add('active');\n }\n // The transform for the centre item is written once, after the loop\n // below. A second copy used to be written here too, multiplied by `i` -\n // which is not assigned until the loop starts, so it produced\n // `translateX(NaNpx)` and the browser dropped the declaration.\n }\n\n for (i = 1; i <= half; ++i) {\n // right side\n if (this.options.fullWidth) {\n zTranslation = this.options.dist;\n tweenedOpacity = i === half && delta < 0 ? 1 - tween : 1;\n } else {\n zTranslation = this.options.dist * (i * 2 + tween * dir);\n tweenedOpacity = 1 - numVisibleOffset * (i * 2 + tween * dir);\n }\n // Don't show wrapped items.\n if (!this.noWrap || this.center + i < this.count) {\n el = this.images[this._wrap(this.center + i)];\n const transformString = `${alignment} translateX(${\n this.options.shift + (this.dim * i - delta) / 2\n }px) translateZ(${zTranslation}px)`;\n this._updateItemStyle(el, tweenedOpacity, -i, transformString);\n }\n // left side\n if (this.options.fullWidth) {\n zTranslation = this.options.dist;\n tweenedOpacity = i === half && delta > 0 ? 1 - tween : 1;\n } else {\n zTranslation = this.options.dist * (i * 2 - tween * dir);\n tweenedOpacity = 1 - numVisibleOffset * (i * 2 - tween * dir);\n }\n // Don't show wrapped items.\n if (!this.noWrap || this.center - i >= 0) {\n el = this.images[this._wrap(this.center - i)];\n const transformString = `${alignment} translateX(${\n -this.options.shift + (-this.dim * i - delta) / 2\n }px) translateZ(${zTranslation}px)`;\n this._updateItemStyle(el, tweenedOpacity, -i, transformString);\n }\n }\n // center\n // Don't show wrapped items.\n if (!this.noWrap || (this.center >= 0 && this.center < this.count)) {\n el = this.images[this._wrap(this.center)];\n const transformString = `${alignment} translateX(${-delta / 2}px) translateX(${\n dir * this.options.shift * tween\n }px) translateZ(${this.options.dist * tween}px)`;\n this._updateItemStyle(el, centerTweenedOpacity, 0, transformString);\n }\n // onCycleTo callback\n const _currItem = this.el.querySelectorAll('.carousel-item')[this._wrap(this.center)];\n\n if (lastCenter !== this.center && typeof this.options.onCycleTo === 'function') {\n this.options.onCycleTo.call(this, _currItem, this.dragged);\n }\n // One time callback\n if (typeof this.oneTimeCallback === 'function') {\n this.oneTimeCallback.call(this, _currItem, this.dragged);\n this.oneTimeCallback = null;\n }\n }\n\n _updateItemStyle(el: HTMLElement, opacity: number, zIndex: number, transform: string) {\n el.style.transform = transform;\n el.style.zIndex = zIndex.toString();\n el.style.opacity = opacity.toString();\n el.style.visibility = 'visible';\n }\n\n _cycleTo(n: number, callback: CarouselOptions['onCycleTo'] = null) {\n let diff = (this.center % this.count) - n;\n // Account for wraparound.\n if (!this.noWrap) {\n if (diff < 0) {\n if (Math.abs(diff + this.count) < Math.abs(diff)) {\n diff += this.count;\n }\n } else if (diff > 0) {\n if (Math.abs(diff - this.count) < diff) {\n diff -= this.count;\n }\n }\n }\n this.target = this.dim * Math.round(this.offset / this.dim);\n // Next\n if (diff < 0) {\n this.target += this.dim * Math.abs(diff);\n } // Prev\n else if (diff > 0) {\n this.target -= this.dim * diff;\n }\n // Set one time callback\n if (typeof callback === 'function') {\n this.oneTimeCallback = callback;\n }\n // Scroll\n if (this.offset !== this.target) {\n this.amplitude = this.target - this.offset;\n this.timestamp = Date.now();\n requestAnimationFrame(this._autoScroll);\n }\n }\n\n /**\n * Move carousel to next slide or go forward a given amount of slides.\n * @param n How many times the carousel slides.\n */\n next(n: number = 1) {\n if (n === undefined || isNaN(n)) {\n n = 1;\n }\n let index = this.center + n;\n if (index >= this.count || index < 0) {\n if (this.noWrap) return;\n index = this._wrap(index);\n }\n this._cycleTo(index);\n }\n\n /**\n * Move carousel to previous slide or go back a given amount of slides.\n * @param n How many times the carousel slides.\n */\n prev(n: number = 1) {\n if (n === undefined || isNaN(n)) {\n n = 1;\n }\n let index = this.center - n;\n if (index >= this.count || index < 0) {\n if (this.noWrap) return;\n index = this._wrap(index);\n }\n this._cycleTo(index);\n }\n\n /**\n * Move carousel to nth slide.\n * @param n Index of slide.\n * @param callback \"onCycleTo\" optional callback.\n */\n set(n: number, callback?: CarouselOptions['onCycleTo']) {\n if (n === undefined || isNaN(n)) {\n n = 0;\n }\n if (n > this.count || n < 0) {\n if (this.noWrap) return;\n n = this._wrap(n);\n }\n this._cycleTo(n, callback);\n }\n}\n", "import { Component, InitElements, MElement } from '../core/component';\n\nexport interface BaseOptions {}\n\nconst _defaults = Object.freeze({});\n\ntype InputElement = HTMLInputElement | HTMLTextAreaElement;\n\nexport class CharacterCounter extends Component<object> {\n declare el: InputElement;\n /** Stores the reference to the counter HTML element. */\n counterEl: HTMLSpanElement;\n /** Specifies whether the input is valid or not. */\n isInvalid: boolean;\n /** Specifies whether the input text has valid length or not. */\n isValidLength: boolean;\n\n constructor(el: HTMLInputElement | HTMLTextAreaElement, options: Partial<BaseOptions>) {\n super(el, {}, CharacterCounter);\n this.el['Expressive_CharacterCounter'] = this;\n\n this.options = {\n ...CharacterCounter.defaults,\n ...options\n };\n\n this.isInvalid = false;\n this.isValidLength = false;\n\n this._setupCounter();\n this._setupEventHandlers();\n }\n\n static get defaults(): BaseOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of CharacterCounter.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: InputElement, options?: Partial<BaseOptions>): CharacterCounter;\n /**\n * Initializes instances of CharacterCounter.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: InitElements<InputElement | MElement>,\n options?: Partial<BaseOptions>\n ): CharacterCounter[];\n /**\n * Initializes instances of CharacterCounter.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: InputElement | InitElements<InputElement | MElement>,\n options: Partial<BaseOptions> = {}\n ): CharacterCounter | CharacterCounter[] {\n return super.init(els, options, CharacterCounter);\n }\n\n static getInstance(el: InputElement): CharacterCounter {\n return el['Expressive_CharacterCounter'];\n }\n\n destroy() {\n this._removeEventHandlers();\n this.el['Expressive_CharacterCounter'] = undefined;\n this._removeCounter();\n }\n\n _setupEventHandlers() {\n this.el.addEventListener('focus', this.updateCounter, true);\n this.el.addEventListener('input', this.updateCounter, true);\n }\n\n _removeEventHandlers() {\n this.el.removeEventListener('focus', this.updateCounter, true);\n this.el.removeEventListener('input', this.updateCounter, true);\n }\n\n _setupCounter() {\n this.counterEl = document.createElement('span');\n this.counterEl.classList.add('character-counter');\n this.counterEl.style.float = 'right';\n this.counterEl.style.fontSize = '12px';\n this.counterEl.style.height = '1';\n this.el.parentElement.appendChild(this.counterEl);\n }\n\n _removeCounter() {\n this.counterEl.remove();\n }\n\n updateCounter = () => {\n const maxLength = parseInt(this.el.getAttribute('maxlength')),\n actualLength = (this.el as HTMLInputElement).value.length;\n\n this.isValidLength = actualLength <= maxLength;\n let counterString = actualLength.toString();\n if (maxLength) {\n counterString += '/' + maxLength;\n this._validateInput();\n }\n this.counterEl.textContent = counterString;\n };\n\n _validateInput() {\n if (this.isValidLength && this.isInvalid) {\n this.isInvalid = false;\n this.el.classList.remove('invalid');\n } else if (!this.isValidLength && !this.isInvalid) {\n this.isInvalid = true;\n this.el.classList.remove('valid');\n this.el.classList.add('invalid');\n }\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface CollapsibleOptions extends BaseOptions {\n /**\n * If accordion versus collapsible.\n * @default true\n */\n accordion: boolean;\n /**\n * Transition in duration in milliseconds.\n * @default 300\n */\n inDuration: number;\n /**\n * Transition out duration in milliseconds.\n * @default 300\n */\n outDuration: number;\n /**\n * Callback function called before collapsible is opened.\n * @default null\n */\n onOpenStart: (el: Element) => void;\n /**\n * Callback function called after collapsible is opened.\n * @default null\n */\n onOpenEnd: (el: Element) => void;\n /**\n * Callback function called before collapsible is closed.\n * @default null\n */\n onCloseStart: (el: Element) => void;\n /**\n * Callback function called after collapsible is closed.\n * @default null\n */\n onCloseEnd: (el: Element) => void;\n}\n\nconst _defaults: CollapsibleOptions = {\n accordion: true,\n onOpenStart: null,\n onOpenEnd: null,\n onCloseStart: null,\n onCloseEnd: null,\n inDuration: 300,\n outDuration: 300\n};\n\nexport class Collapsible extends Component<CollapsibleOptions> {\n private _headers: HTMLElement[];\n\n constructor(el: HTMLElement, options: Partial<CollapsibleOptions>) {\n super(el, options, Collapsible);\n this.el['Expressive_Collapsible'] = this;\n\n this.options = {\n ...Collapsible.defaults,\n ...options\n };\n\n // Setup tab indices\n this._headers = Array.from(this.el.querySelectorAll('li > .collapsible-header'));\n this._headers.forEach((el) => (el.tabIndex = 0));\n this._setupEventHandlers();\n\n // Open active\n const activeBodies: HTMLElement[] = Array.from(\n this.el.querySelectorAll('li.active > .collapsible-body')\n );\n if (this.options.accordion) {\n if (activeBodies.length > 0) {\n // Accordion => open first active only\n this._setExpanded(activeBodies[0]);\n }\n } else {\n // Expandables => all active\n activeBodies.forEach((el) => this._setExpanded(el));\n }\n }\n\n static get defaults(): CollapsibleOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Collapsible.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<CollapsibleOptions>): Collapsible;\n /**\n * Initializes instances of Collapsible.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<CollapsibleOptions>): Collapsible[];\n /**\n * Initializes instances of Collapsible.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<CollapsibleOptions> = {}\n ): Collapsible | Collapsible[] {\n return super.init(els, options, Collapsible);\n }\n\n static getInstance(el: HTMLElement): Collapsible {\n return el['Expressive_Collapsible'];\n }\n\n destroy() {\n this._removeEventHandlers();\n this.el['Expressive_Collapsible'] = undefined;\n }\n\n _setupEventHandlers() {\n this.el.addEventListener('click', this._handleCollapsibleClick);\n this._headers.forEach((header) =>\n header.addEventListener('keydown', this._handleCollapsibleKeydown)\n );\n }\n\n _removeEventHandlers() {\n this.el.removeEventListener('click', this._handleCollapsibleClick);\n this._headers.forEach((header) =>\n header.removeEventListener('keydown', this._handleCollapsibleKeydown)\n );\n }\n\n _handleCollapsibleClick = (e: MouseEvent | KeyboardEvent) => {\n const header = (e.target as HTMLElement).closest('.collapsible-header');\n if (e.target && header) {\n const collapsible = header.closest('.collapsible');\n if (collapsible !== this.el) return;\n\n const li = header.closest('li');\n const isActive = li.classList.contains('active');\n const index = [...li.parentNode.children].indexOf(li);\n\n if (isActive) this.close(index);\n else this.open(index);\n }\n };\n\n _handleCollapsibleKeydown = (e: KeyboardEvent) => {\n if (Utils.keys.ENTER.includes(e.key)) {\n this._handleCollapsibleClick(e);\n }\n };\n\n private _setExpanded(li: HTMLElement): void {\n li.style.maxHeight = li.scrollHeight + 'px';\n }\n\n _animateIn(index: number) {\n const li = <HTMLLIElement>this.el.children[index];\n if (!li) return;\n const body: HTMLElement = li.querySelector('.collapsible-body');\n const duration = this.options.inDuration; // easeInOutCubic\n body.style.transition = `max-height ${duration}ms ease-out`;\n this._setExpanded(body);\n setTimeout(() => {\n if (typeof this.options.onOpenEnd === 'function') {\n this.options.onOpenEnd.call(this, li);\n }\n }, duration);\n }\n\n _animateOut(index: number) {\n const li = this.el.children[index];\n if (!li) return;\n const body: HTMLElement = li.querySelector('.collapsible-body');\n const duration = this.options.outDuration; // easeInOutCubic\n body.style.transition = `max-height ${duration}ms ease-out`;\n body.style.maxHeight = '0';\n setTimeout(() => {\n if (typeof this.options.onCloseEnd === 'function') {\n this.options.onCloseEnd.call(this, li);\n }\n }, duration);\n }\n\n /**\n * Open collapsible section.\n * @param n Nth section to open.\n */\n open = (index: number) => {\n const listItems = Array.from(this.el.children).filter((c) => c.tagName === 'LI');\n const li = listItems[index];\n if (li && !li.classList.contains('active')) {\n // onOpenStart callback\n if (typeof this.options.onOpenStart === 'function') {\n this.options.onOpenStart.call(this, li);\n }\n // Handle accordion behavior\n if (this.options.accordion) {\n const activeLis = listItems.filter((li) => li.classList.contains('active'));\n activeLis.forEach((activeLi) => {\n const index = listItems.indexOf(activeLi);\n this.close(index);\n });\n }\n // Animate in\n li.classList.add('active');\n this._animateIn(index);\n }\n };\n\n /**\n * Close collapsible section.\n * @param n Nth section to close.\n */\n close = (index: number) => {\n const li = Array.from(this.el.children).filter((c) => c.tagName === 'LI')[index];\n if (li && li.classList.contains('active')) {\n // onCloseStart callback\n if (typeof this.options.onCloseStart === 'function') {\n this.options.onCloseStart.call(this, li);\n }\n // Animate out\n li.classList.remove('active');\n this._animateOut(index);\n }\n };\n}\n", "import { Utils } from '../core/utils';\nimport { Dropdown, DropdownOptions } from './dropdown';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface FormSelectOptions extends BaseOptions {\n /**\n * Classes to be added to the select wrapper element.\n * @default \"\"\n */\n classes: string;\n /**\n * Pass options object to select dropdown initialization.\n * @default {}\n */\n dropdownOptions: Partial<DropdownOptions>;\n}\n\nconst _defaults: FormSelectOptions = {\n classes: '',\n dropdownOptions: {}\n};\n\ntype ValueStruct = {\n el: HTMLOptionElement;\n optionEl: HTMLElement;\n};\n\nexport class FormSelect extends Component<FormSelectOptions> {\n declare el: HTMLSelectElement;\n /** If this is a multiple select. */\n isMultiple: boolean;\n /**\n * Label associated with the current select element.\n * Is \"null\", if not detected.\n */\n labelEl: HTMLLabelElement;\n /** Dropdown UL element. */\n dropdownOptions: HTMLUListElement;\n /** Text input that shows current selected option. */\n input: HTMLInputElement;\n /** Instance of the dropdown plugin for this select. */\n dropdown: Dropdown;\n /** The select wrapper element. */\n wrapper: HTMLDivElement;\n selectOptions: (HTMLOptionElement | HTMLOptGroupElement)[];\n private _values: ValueStruct[];\n nativeTabIndex: number;\n\n constructor(el: HTMLSelectElement, options: FormSelectOptions) {\n super(el, options, FormSelect);\n if (this.el.classList.contains('browser-default')) return;\n this.el['Expressive_FormSelect'] = this;\n\n this.options = {\n ...FormSelect.defaults,\n ...options\n };\n\n this.isMultiple = this.el.multiple;\n this.nativeTabIndex = this.el.tabIndex ?? -1;\n this.el.tabIndex = -1;\n this._values = [];\n this._setupDropdown();\n this._setupEventHandlers();\n }\n\n static get defaults(): FormSelectOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of FormSelect.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLSelectElement, options?: Partial<FormSelectOptions>): FormSelect;\n /**\n * Initializes instances of FormSelect.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: InitElements<HTMLSelectElement | MElement>,\n options?: Partial<FormSelectOptions>\n ): FormSelect[];\n /**\n * Initializes instances of FormSelect.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLSelectElement | InitElements<HTMLSelectElement | MElement>,\n options: Partial<FormSelectOptions> = {}\n ): FormSelect | FormSelect[] {\n return super.init(els, options, FormSelect);\n }\n\n static getInstance(el: HTMLElement): FormSelect {\n return el['Expressive_FormSelect'];\n }\n\n destroy() {\n this._removeEventHandlers();\n // The Dropdown holds itself in the static Dropdown._dropdowns registry\n // until its own destroy() runs, so dropping the elements is not enough -\n // every rebuilt select used to leave an instance behind for good.\n this.dropdown?.destroy();\n this._removeDropdown();\n this.el['Expressive_FormSelect'] = undefined;\n }\n\n /**\n * Re-read the native `<select>` and update the generated dropdown to match.\n *\n * Assigning `select.value` from script fires no `change` event, so nothing\n * else syncs the visible input text or the `.selected` state on the virtual\n * options. Call this after mutating the underlying select programmatically.\n */\n refresh() {\n this._setValueToInput();\n this._setSelectedStates();\n }\n\n _setupEventHandlers() {\n this.dropdownOptions.querySelectorAll('li:not(.optgroup)').forEach((el) => {\n el.addEventListener('click', this._handleOptionClick);\n el.addEventListener('keydown', this._handleOptionKeydown);\n });\n this.el.addEventListener('change', this._handleSelectChange);\n this.input.addEventListener('click', this._handleInputClick);\n }\n\n _removeEventHandlers() {\n this.dropdownOptions.querySelectorAll('li:not(.optgroup)').forEach((el) => {\n el.removeEventListener('click', this._handleOptionClick);\n el.removeEventListener('keydown', this._handleOptionKeydown);\n });\n this.el.removeEventListener('change', this._handleSelectChange);\n this.input.removeEventListener('click', this._handleInputClick);\n }\n\n _handleSelectChange = () => {\n this._setValueToInput();\n };\n\n // Named rather than inline so that _removeEventHandlers can actually detach\n // it - an anonymous listener per option was unremovable.\n _handleOptionKeydown = (e: KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') this._handleOptionClick(e);\n };\n\n _handleOptionClick = (e: MouseEvent | KeyboardEvent) => {\n e.preventDefault();\n const virtualOption = (e.target as HTMLLIElement).closest('li');\n this._selectOptionElement(virtualOption);\n e.stopPropagation();\n };\n\n _arraysEqual<T, E>(a: T[], b: (E | T)[]) {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; ++i) if (a[i] !== b[i]) return false;\n return true;\n }\n\n _selectOptionElement(virtualOption: HTMLElement) {\n if (\n !virtualOption.classList.contains('disabled') &&\n !virtualOption.classList.contains('optgroup')\n ) {\n const value = this._values.find((value) => value.optionEl === virtualOption);\n const previousSelectedValues = this.getSelectedValues();\n if (this.isMultiple) {\n // Multi-Select\n this._toggleEntryFromArray(value);\n } else {\n // Single-Select\n this._deselectAll();\n this._selectValue(value);\n }\n // Refresh Input-Text\n this._setValueToInput();\n // Trigger Change-Event only when data is different\n const actualSelectedValues = this.getSelectedValues();\n const selectionHasChanged = !this._arraysEqual(previousSelectedValues, actualSelectedValues);\n if (selectionHasChanged)\n this.el.dispatchEvent(\n new Event('change', { bubbles: true, cancelable: true, composed: true })\n ); // trigger('change');\n }\n if (!this.isMultiple) this.dropdown.close();\n }\n\n _handleInputClick = () => {\n if (this.dropdown && this.dropdown.isOpen) {\n this._setValueToInput();\n this._setSelectedStates();\n }\n };\n\n _setupDropdown() {\n // The DOM already knows which labels belong to this control. Building a\n // selector out of the id instead meant an id with any CSS-special\n // character either threw or matched something else entirely.\n this.labelEl = this.el.labels?.[0] ?? null;\n\n this.wrapper = document.createElement('div');\n this.wrapper.classList.add('select-wrapper', 'input-field');\n if (this.options.classes.length > 0) {\n this.wrapper.classList.add(...this.options.classes.split(' ').filter(Boolean));\n }\n this.el.before(this.wrapper);\n\n // Move actual select element into overflow hidden wrapper\n const hiddenDiv = document.createElement('div');\n hiddenDiv.classList.add('hide-select');\n this.wrapper.append(hiddenDiv);\n hiddenDiv.appendChild(this.el);\n\n if (this.el.disabled) this.wrapper.classList.add('disabled');\n\n this.selectOptions = <(HTMLOptGroupElement | HTMLOptionElement)[]>(\n Array.from(this.el.children).filter((el) => ['OPTION', 'OPTGROUP'].includes(el.tagName))\n );\n\n // Create dropdown\n this.dropdownOptions = document.createElement('ul');\n this.dropdownOptions.id = `select-options-${Utils.guid()}`;\n this.dropdownOptions.setAttribute('popover', 'auto');\n this.dropdownOptions.classList.add('dropdown-content', 'select-dropdown');\n this.dropdownOptions.setAttribute('role', 'listbox');\n this.dropdownOptions.ariaMultiSelectable = this.isMultiple.toString();\n if (this.isMultiple) this.dropdownOptions.classList.add('multiple-select-dropdown');\n\n // Create dropdown structure\n if (this.selectOptions.length > 0) {\n this.selectOptions.forEach((realOption) => {\n if (realOption.tagName === 'OPTION') {\n // Option\n const virtualOption = this._createAndAppendOptionWithIcon(\n realOption,\n this.isMultiple ? 'multiple' : undefined\n );\n this._addOptionToValues(realOption as HTMLOptionElement, virtualOption);\n } else if (realOption.tagName === 'OPTGROUP') {\n // Optgroup\n const groupId = 'opt-group-' + Utils.guid();\n const groupParent = document.createElement('li');\n groupParent.classList.add('optgroup');\n groupParent.tabIndex = -1;\n groupParent.setAttribute('role', 'group');\n groupParent.setAttribute('aria-labelledby', groupId);\n // Built as nodes, not markup: the optgroup's label attribute is\n // author content that may come from a server, and interpolating it\n // into innerHTML let it close the span and inject an element.\n const groupLabel = document.createElement('span');\n groupLabel.id = groupId;\n groupLabel.setAttribute('role', 'presentation');\n groupLabel.textContent = realOption.getAttribute('label') ?? '';\n groupParent.replaceChildren(groupLabel);\n this.dropdownOptions.append(groupParent);\n\n const groupChildren = [];\n const selectOptions = <HTMLOptionElement[]>(\n Array.from(realOption.children).filter((el) => el.tagName === 'OPTION')\n );\n selectOptions.forEach((realOption) => {\n const virtualOption = this._createAndAppendOptionWithIcon(\n realOption,\n 'optgroup-option'\n );\n const childId = 'opt-child-' + Utils.guid();\n virtualOption.id = childId;\n groupChildren.push(childId);\n this._addOptionToValues(realOption, virtualOption);\n });\n groupParent.setAttribute('aria-owns', groupChildren.join(' '));\n }\n });\n }\n this.wrapper.append(this.dropdownOptions);\n\n // Add input dropdown\n this.input = document.createElement('input');\n this.input.id = 'm_select-input-' + Utils.guid();\n this.input.classList.add('select-dropdown', 'dropdown-trigger');\n this.input.type = 'text';\n this.input.readOnly = true;\n this.input.setAttribute('data-target', this.dropdownOptions.id);\n this.input.ariaReadOnly = 'true';\n this.input.ariaRequired = this.el.hasAttribute('required').toString(); //setAttribute(\"aria-required\", this.el.hasAttribute(\"required\"));\n if (this.el.disabled) this.input.disabled = true; // 'true');\n this.input.setAttribute('tabindex', this.nativeTabIndex.toString());\n\n const attrs = this.el.attributes;\n for (let i = 0; i < attrs.length; ++i) {\n const attr = attrs[i];\n if (attr.name.startsWith('aria-')) this.input.setAttribute(attr.name, attr.value);\n }\n\n // Adds aria-attributes to input element\n this.input.setAttribute('role', 'combobox');\n this.input.ariaExpanded = 'false';\n this.input.setAttribute('aria-owns', this.dropdownOptions.id);\n this.input.setAttribute('aria-controls', this.dropdownOptions.id);\n this.input.placeholder = ' ';\n\n this.wrapper.prepend(this.input);\n this._setValueToInput();\n\n // Add caret\n const dropdownIcon = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); //document.createElement('svg')\n dropdownIcon.classList.add('caret');\n dropdownIcon.setAttribute('height', '24');\n dropdownIcon.setAttribute('width', '24');\n dropdownIcon.setAttribute('viewBox', '0 0 24 24');\n dropdownIcon.ariaHidden = 'true';\n dropdownIcon.innerHTML = `<path d=\"M7 10l5 5 5-5z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/>`;\n this.wrapper.prepend(dropdownIcon);\n\n // Initialize dropdown\n if (!this.el.disabled) {\n const dropdownOptions = { ...this.options.dropdownOptions };\n dropdownOptions.coverTrigger = false;\n const userOnOpenEnd = dropdownOptions.onOpenEnd;\n const userOnCloseEnd = dropdownOptions.onCloseEnd;\n // Add callback for centering selected option when dropdown content is scrollable\n dropdownOptions.onOpenEnd = () => {\n const selectedOption = this.dropdownOptions.querySelector('.selected');\n if (selectedOption) {\n // Focus selected option in dropdown\n Utils.keyDown = true;\n this.dropdown.focusedIndex = [...selectedOption.parentNode.children].indexOf(\n selectedOption\n );\n this.dropdown._focusFocusedItem();\n Utils.keyDown = false;\n // Handle scrolling to selected option\n if (this.dropdown.isScrollable) {\n let scrollOffset =\n selectedOption.getBoundingClientRect().top -\n (this.dropdownOptions as HTMLElement).getBoundingClientRect().top; // scroll to selected option\n scrollOffset -= this.dropdownOptions.clientHeight / 2; // center in dropdown\n this.dropdownOptions.scrollTop = scrollOffset;\n }\n }\n this.input.ariaExpanded = 'true';\n // Handle user declared onOpenEnd if needed\n if (userOnOpenEnd && typeof userOnOpenEnd === 'function')\n userOnOpenEnd.call(this.dropdown, this.el);\n };\n // Add callback for reseting \"expanded\" state\n dropdownOptions.onCloseEnd = () => {\n this.input.ariaExpanded = 'false';\n // Handle user declared onOpenEnd if needed\n if (userOnCloseEnd && typeof userOnCloseEnd === 'function')\n userOnCloseEnd.call(this.dropdown, this.el);\n };\n // Prevent dropdown from closing too early\n dropdownOptions.closeOnClick = false;\n this.dropdown = Dropdown.init(this.input, dropdownOptions);\n }\n // Add initial selections\n this._setSelectedStates();\n // move label\n if (this.labelEl) this.input.after(this.labelEl);\n }\n\n _addOptionToValues(realOption: HTMLOptionElement, virtualOption: HTMLElement) {\n this._values.push({ el: realOption, optionEl: virtualOption });\n }\n\n _removeDropdown() {\n this.wrapper.querySelector('.caret').remove();\n this.input.remove();\n this.dropdownOptions.remove();\n this.wrapper.before(this.el);\n this.wrapper.remove();\n }\n\n _createAndAppendOptionWithIcon(\n realOption: HTMLOptionElement | HTMLOptGroupElement,\n type: string\n ) {\n const li = document.createElement('li');\n li.setAttribute('role', 'option');\n if (realOption.disabled) {\n li.classList.add('disabled');\n li.ariaDisabled = 'true';\n }\n if (type === 'optgroup-option') li.classList.add(type);\n\n // Text / Checkbox. An <option>'s content model is text, so its markup is\n // its text - copying it as nodes rather than through innerHTML keeps it\n // that way instead of handing it back to the parser.\n const optionText = realOption.textContent;\n const span = document.createElement('span');\n if (this.isMultiple && !realOption.disabled) {\n const label = document.createElement('label');\n const checkbox = document.createElement('input');\n checkbox.type = 'checkbox';\n const labelText = document.createElement('span');\n labelText.textContent = optionText;\n label.append(checkbox, labelText);\n span.appendChild(label);\n } else {\n span.textContent = optionText;\n }\n li.appendChild(span);\n\n // add Icon\n const iconUrl = realOption.getAttribute('data-icon');\n // filter(Boolean): a doubled or trailing space yields an empty string,\n // and classList.add('') throws.\n const classes = realOption.getAttribute('class')?.split(' ').filter(Boolean);\n if (iconUrl) {\n const img = document.createElement('img');\n if (classes?.length) img.classList.add(...classes);\n img.src = iconUrl;\n img.ariaHidden = 'true';\n li.prepend(img);\n }\n // Check for multiple type\n this.dropdownOptions.append(li);\n return li;\n }\n\n _selectValue(value: ValueStruct) {\n value.el.selected = true;\n value.optionEl.classList.add('selected');\n value.optionEl.ariaSelected = 'true'; // setAttribute(\"aria-selected\", true);\n const checkbox = <HTMLInputElement>value.optionEl.querySelector('input[type=\"checkbox\"]');\n if (checkbox) checkbox.checked = true;\n }\n\n _deselectValue(value: ValueStruct) {\n value.el.selected = false;\n value.optionEl.classList.remove('selected');\n value.optionEl.ariaSelected = 'false'; //setAttribute(\"aria-selected\", false);\n const checkbox = <HTMLInputElement>value.optionEl.querySelector('input[type=\"checkbox\"]');\n if (checkbox) checkbox.checked = false;\n }\n\n _deselectAll() {\n this._values.forEach((value) => this._deselectValue(value));\n }\n\n _isValueSelected(value: ValueStruct) {\n const realValues = this.getSelectedValues();\n return realValues.some((realValue) => realValue === value.el.value);\n }\n\n _toggleEntryFromArray(value: ValueStruct) {\n if (this._isValueSelected(value)) this._deselectValue(value);\n else this._selectValue(value);\n }\n\n _getSelectedOptions(): HTMLOptionElement[] {\n // remove null, false, ... values\n return Array.prototype.filter.call(\n this.el.selectedOptions,\n (realOption: HTMLOptionElement) => realOption\n );\n }\n\n _setValueToInput() {\n const selectedRealOptions = this._getSelectedOptions();\n const selectedOptionPairs = this._values.filter(\n (value) => selectedRealOptions.indexOf(value.el) >= 0\n );\n // Filter not disabled\n const notDisabledOptionPairs = selectedOptionPairs.filter((op) => !op.el.disabled);\n // textContent, not innerText: innerText is layout-dependent, so reading it\n // once per selected option forced a reflow each time.\n const texts = notDisabledOptionPairs.map((value) =>\n value.optionEl.querySelector('span').textContent.trim()\n );\n // Set input-text to first Option with empty value which indicates a description like \"choose your option\"\n if (texts.length === 0) {\n const firstDisabledOption = <HTMLOptionElement>this.el.querySelector('option:disabled');\n if (firstDisabledOption && firstDisabledOption.value === '') {\n this.input.value = firstDisabledOption.innerText;\n return;\n }\n }\n this.input.value = texts.join(', ');\n }\n\n _setSelectedStates() {\n this._values.forEach((value) => {\n const optionIsSelected = value.el.selected;\n const cb = <HTMLInputElement>value.optionEl.querySelector('input[type=\"checkbox\"]');\n if (cb) cb.checked = optionIsSelected;\n if (optionIsSelected) {\n this._activateOption(this.dropdownOptions, value.optionEl);\n } else {\n value.optionEl.classList.remove('selected');\n value.optionEl.ariaSelected = 'false'; // attr(\"aria-selected\", 'false');\n }\n });\n }\n\n _activateOption(ul: HTMLElement, li: HTMLElement) {\n if (!li) return;\n if (!this.isMultiple)\n ul.querySelectorAll('li.selected').forEach((li) => li.classList.remove('selected'));\n li.classList.add('selected');\n li.ariaSelected = 'true';\n }\n\n getSelectedValues() {\n return this._getSelectedOptions().map((realOption) => realOption.value);\n }\n}\n", "import { Utils } from '../core/utils';\n\nexport interface DockedDisplayPluginOptions {\n /**\n * Margin between element and docked container\n */\n margin: number,\n /**\n * Transition movement\n */\n transition: number,\n /**\n * Transition duration\n */\n duration: number,\n /**\n * The alignment of the docked container\n */\n align: string\n}\n\nconst _defaults: DockedDisplayPluginOptions = {\n margin: 5,\n transition: 10,\n duration: 250,\n align: 'left'\n}\n\nexport class DockedDisplayPlugin {\n private readonly el: HTMLElement;\n private readonly container: HTMLDivElement;\n private options: Partial<DockedDisplayPluginOptions>;\n private visible: boolean;\n\n constructor(el: HTMLElement, container: HTMLElement, options: Partial<DockedDisplayPluginOptions>) {\n this.el = el;\n this.options = {\n ..._defaults,\n ...options\n };\n\n this.container = document.createElement('div');\n this.container.classList.add('display-docked');\n this.container.append(container);\n el.parentElement.append(this.container);\n\n document.addEventListener('click', this._handleDocumentClick);\n }\n\n private _handleDocumentClick = (e: MouseEvent) => {\n if (this.visible && !(this.el === <HTMLElement>e.target) && !((<HTMLElement>e.target).closest('.display-docked'))) {\n this.hide();\n }\n };\n\n /**\n * Tears the plugin down. The document listener holds a reference to this\n * instance - and through it the whole picker subtree - so the owning\n * component must call this from its own destroy().\n */\n destroy = () => {\n document.removeEventListener('click', this._handleDocumentClick);\n this.container.remove();\n };\n\n /**\n * Initializes instance of DockedDisplayPlugin\n * @param el HTMLElement to position to\n * @param container HTMLElement to be positioned\n * @param options Plugin options\n */\n static init(el: HTMLElement, container: HTMLElement, options?: Partial<DockedDisplayPluginOptions>): DockedDisplayPlugin {\n return new DockedDisplayPlugin(el, container, options);\n }\n\n show = () => {\n if (this.visible) return;\n this.visible = true;\n const coordinates = Utils._setAbsolutePosition(this.el, this.container, 'bottom', this.options.margin, this.options.transition, this.options.align);\n\n // @todo move to Util? -> duplicate code fragment with tooltip\n // easeOutCubic\n this.container.style.visibility = 'visible';\n this.container.style.transition = `\n transform ${this.options.duration}ms ease-out,\n opacity ${this.options.duration}ms ease-out`;\n setTimeout(() => {\n this.container.style.transform = `translateX(${coordinates.x}px) translateY(${coordinates.y}px)`;\n this.container.style.opacity = (1).toString();\n }, 1);\n };\n\n hide = () => {\n if (!this.visible) return;\n this.visible = false;\n // @todo move to Util? -> duplicate code fragment with tooltip\n this.container.removeAttribute('style');\n this.container.style.transition = `\n transform ${this.options.duration}ms ease-out,\n opacity ${this.options.duration}ms ease-out`;\n setTimeout(() => {\n this.container.style.transform = `translateX(0px) translateY(0px)`;\n this.container.style.opacity = '0';\n }, 1);\n };\n}\n", "import { Utils } from '../core/utils';\nimport { FormSelect } from './select';\nimport { BaseOptions, Component, I18nOptions, InitElements, MElement } from '../core/component';\nimport { DockedDisplayPlugin } from '../plugins/dockedDisplayPlugin';\n\nexport interface DateI18nOptions extends I18nOptions {\n previousMonth: string;\n nextMonth: string;\n months: string[];\n monthsShort: string[];\n weekdays: string[];\n weekdaysShort: string[];\n weekdaysAbbrev: string[];\n}\n\nexport interface DatepickerOptions extends BaseOptions {\n /**\n * The date output format for the input field value\n * or a function taking the date and outputting the\n * formatted date string.\n * @default 'mmm dd, yyyy'\n */\n format: string | ((d: Date) => string);\n /**\n * Used to create date object from current input string.\n * @default null\n */\n parse: ((value: string, format: string) => Date) | null;\n /**\n * The initial condition if the datepicker is based on date range.\n * @default false\n */\n isDateRange: boolean;\n /**\n * The selector of the user specified date range end element\n */\n dateRangeEndEl: string | null;\n /**\n * The initial condition if the datepicker is based on multiple date selection.\n * @default false\n */\n isMultipleSelection: boolean;\n /**\n * The initial date to view when first opened.\n * @default null\n */\n defaultDate: Date | null;\n /**\n * The initial end date to view when first opened.\n * @default null\n */\n defaultEndDate: Date | null;\n /**\n * Make the `defaultDate` the initial selected value.\n * @default false\n */\n setDefaultDate: boolean;\n /**\n * Make the `defaultEndDate` the initial selected value.\n * @default false\n */\n setDefaultEndDate: boolean;\n /**\n * Prevent selection of any date on the weekend.\n * @default false\n */\n disableWeekends: boolean;\n /**\n * Custom function to disable certain days.\n * @default null\n */\n disableDayFn: ((day: Date) => boolean) | null;\n /**\n * First day of week (0: Sunday, 1: Monday etc).\n * @default 0\n */\n firstDay: number;\n /**\n * The earliest date that can be selected.\n * @default null\n */\n minDate: Date | null;\n /**\n * The latest date that can be selected.\n * @default null\n */\n maxDate: Date | null;\n /**\n * Number of years either side, or array of upper/lower range.\n * @default 10\n */\n yearRange: number | number[];\n /**\n * Sort year range in reverse order.\n * @default false\n */\n yearRangeReverse: boolean;\n /**\n * Changes Datepicker to RTL.\n * @default false\n */\n isRTL: boolean;\n /**\n * Show month after year in Datepicker title.\n * @default false\n */\n showMonthAfterYear: boolean;\n /**\n * Render days of the calendar grid that fall in the next\n * or previous month.\n * @default false\n */\n showDaysInNextAndPreviousMonths: boolean;\n /**\n * Specify if the docked datepicker is in open state by default\n */\n openByDefault: boolean;\n /**\n * Specify a DOM element OR selector for a DOM element to render\n * the calendar in, by default it will be placed before the input.\n * @default null\n */\n container: HTMLElement | string | null;\n /**\n * Show the clear button in the datepicker.\n * @default false\n */\n showClearBtn: boolean;\n /**\n * Autosubmit calendar day select to input field\n * @default false\n */\n autoSubmit: true;\n /**\n * Internationalization options.\n */\n i18n: Partial<DateI18nOptions>;\n /**\n * An array of string returned by `Date.toDateString()`,\n * indicating there are events in the specified days.\n * @default []\n */\n events: string[];\n /**\n * Callback function when date is selected,\n * first parameter is the newly selected date.\n * @default null\n */\n onSelect: ((selectedDate: Date) => void) | null;\n /**\n * Callback function when Datepicker is closed.\n * @default null\n */\n //onClose: (() => void) | null; // TODO: Remove\n /**\n * Callback function when Datepicker HTML is refreshed.\n * @default null\n */\n onDraw: (() => void) | null;\n /**\n * Callback function for interaction with input field.\n * @default null\n */\n onInputInteraction: (() => void) | null;\n /**\n * Callback function for interaction with confirm button.\n * @default null\n */\n onConfirm: (() => void) | null;\n /**\n * Callback function for interaction with close button.\n * @default null\n */\n onCancel: (() => void) | null;\n\n /** Field used for internal calculations DO NOT CHANGE IT */\n minYear?: number;\n /** Field used for internal calculations DO NOT CHANGE IT */\n maxYear?: number;\n /** Field used for internal calculations DO NOT CHANGE IT */\n minMonth?: number;\n /** Field used for internal calculations DO NOT CHANGE IT */\n maxMonth?: number;\n /** Field used for internal calculations DO NOT CHANGE IT */\n startRange?: Date;\n /** Field used for internal calculations DO NOT CHANGE IT */\n endRange?: Date;\n /**\n * Display plugin\n */\n displayPlugin: string;\n /**\n * Configurable display plugin options\n */\n displayPluginOptions: object;\n}\n\nconst _defaults: DatepickerOptions = {\n // the default output format for the input field value\n format: 'mmm dd, yyyy',\n // Used to create date object from current input string\n parse: null,\n // The initial condition if the datepicker is based on date range\n isDateRange: false,\n // The selector of the user specified date range end element\n dateRangeEndEl: null,\n // The initial condition if the datepicker is based on multiple date selection\n isMultipleSelection: false,\n // The initial date to view when first opened\n defaultDate: null,\n // The initial end date to view when first opened\n defaultEndDate: null,\n // Make the `defaultDate` the initial selected value\n setDefaultDate: false,\n // Make the `defaultEndDate` the initial selected value\n setDefaultEndDate: false,\n disableWeekends: false,\n disableDayFn: null,\n // First day of week (0: Sunday, 1: Monday etc)\n firstDay: 0,\n // The earliest date that can be selected\n minDate: null,\n // Thelatest date that can be selected\n maxDate: null,\n // Number of years either side, or array of upper/lower range\n yearRange: 10,\n // used internally (don't config outside)\n minYear: 0,\n maxYear: 9999,\n minMonth: undefined,\n maxMonth: undefined,\n startRange: null,\n endRange: null,\n isRTL: false,\n yearRangeReverse: false,\n // Render the month after year in the calendar title\n showMonthAfterYear: false,\n // Render days of the calendar grid that fall in the next or previous month\n showDaysInNextAndPreviousMonths: false,\n // Specify if docked picker is in open state by default\n openByDefault: false,\n // Specify a DOM element to render the calendar in\n container: null,\n // Show clear button\n showClearBtn: false,\n // Autosubmit\n autoSubmit: true,\n // internationalization\n i18n: {\n cancel: 'Cancel',\n clear: 'Clear',\n done: 'Ok',\n previousMonth: '\u2039',\n nextMonth: '\u203A',\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ],\n monthsShort: [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdaysAbbrev: ['S', 'M', 'T', 'W', 'T', 'F', 'S']\n },\n // events array\n events: [],\n // callback function\n onSelect: null,\n onDraw: null,\n onInputInteraction: null,\n displayPlugin: null,\n displayPluginOptions: null,\n onConfirm: null,\n onCancel: null,\n};\n\nexport class Datepicker extends Component<DatepickerOptions> {\n declare el: HTMLInputElement;\n id: string;\n multiple: boolean = false;\n calendarEl: HTMLElement;\n\n /** CLEAR button instance. */\n // clearBtn: HTMLElement;\n /** DONE button instance */\n /*doneBtn: HTMLElement;\n cancelBtn: HTMLElement;*/\n\n containerEl: HTMLElement;\n yearTextEl: HTMLElement;\n dateTextEl: HTMLElement;\n endDateEl: HTMLInputElement;\n dateEls: HTMLInputElement[];\n /** The selected Date. */\n date: Date;\n endDate: null | Date;\n dates: Date[];\n formats: object;\n calendars: [{ month: number; year: number }];\n private _y: number;\n private _m: number;\n private displayPlugin: DockedDisplayPlugin;\n private footer: HTMLElement;\n /** Nesting depth of {@link _batchDraws}; > 0 means draws are being collected. */\n private _drawDepth = 0;\n /** Whether a draw was requested while batching. */\n private _drawDirty = false;\n /** Shape of the currently rendered controls; see {@link _controlsCacheKey}. */\n private _controlsKey: string = null;\n /** id linking the controls element to the table's aria-labelledby. */\n private _randId: string = null;\n static _template: string;\n\n constructor(el: HTMLInputElement, options: Partial<DatepickerOptions>) {\n super(el, options, Datepicker);\n this.el['Expressive_Datepicker'] = this;\n\n this.options = {\n ...Datepicker.defaults,\n ...options\n };\n\n // make sure i18n defaults are not lost when only few i18n option properties are passed\n if (!!options && options.hasOwnProperty('i18n') && typeof options.i18n === 'object') {\n this.options.i18n = { ...Datepicker.defaults.i18n, ...options.i18n };\n }\n\n // Remove time component from minDate and maxDate options\n if (this.options.minDate) this.options.minDate.setHours(0, 0, 0, 0);\n if (this.options.maxDate) this.options.maxDate.setHours(0, 0, 0, 0);\n\n this.id = Utils.guid();\n\n this._setupVariables();\n this._insertHTMLIntoDOM();\n this._setupEventHandlers();\n\n if (!this.options.defaultDate) {\n this.options.defaultDate = new Date(Date.parse(this.el.value));\n }\n\n const defDate = this.options.defaultDate;\n if (Datepicker._isDate(defDate)) {\n if (this.options.setDefaultDate) {\n this.setDate(defDate, true);\n this.setInputValue(this.el, defDate);\n } else {\n this.gotoDate(defDate);\n }\n } else {\n this.gotoDate(new Date());\n }\n if (this.options.isDateRange) {\n this.multiple = true;\n const defEndDate = this.options.defaultEndDate;\n if (Datepicker._isDate(defEndDate)) {\n if (this.options.setDefaultEndDate) {\n this.setDate(defEndDate, true, true);\n this.setInputValue(this.endDateEl, defEndDate);\n }\n }\n }\n if (this.options.isMultipleSelection) {\n this.multiple = true;\n this.dates = [];\n this.dateEls = [];\n this.dateEls.push(el);\n }\n if (this.options.displayPlugin) {\n if (this.options.displayPlugin === 'docked') this.displayPlugin = DockedDisplayPlugin.init(this.el, this.containerEl, this.options.displayPluginOptions);\n }\n }\n\n static get defaults() {\n return _defaults;\n }\n\n /**\n * Initializes instance of Datepicker.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLInputElement, options?: Partial<DatepickerOptions>): Datepicker;\n /**\n * Initializes instances of Datepicker.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: InitElements<HTMLInputElement | MElement>,\n options?: Partial<DatepickerOptions>\n ): Datepicker[];\n /**\n * Initializes instances of Datepicker.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLInputElement | InitElements<HTMLInputElement | MElement>,\n options: Partial<DatepickerOptions> = {}\n ): Datepicker | Datepicker[] {\n return super.init(els, options, Datepicker);\n }\n\n /**\n * Escape a value for interpolation into the calendar markup.\n *\n * `draw()` assembles the calendar as an HTML string, so every value that is\n * not a number this class computed itself has to go through here. In\n * practice that means the i18n strings: month and weekday names are the one\n * part of a datepicker that routinely comes from a translation file, and a\n * translation file is as trustworthy as whatever wrote it.\n */\n static _escape(value: unknown): string {\n return String(value ?? '')\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n\n static _isDate(obj) {\n return /Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n }\n\n static _isWeekend(date) {\n const day = date.getDay();\n return day === 0 || day === 6;\n }\n\n /**\n * @deprecated as this function has no effect without any return statement or global parameter setter.\n */\n static _setToStartOfDay(date) {\n if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0);\n }\n\n static _getDaysInMonth(year, month) {\n return [31, Datepicker._isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][\n month\n ];\n }\n\n static _isLeapYear(year) {\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n static _compareDates(a, b) {\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n return a.getTime() === b.getTime();\n }\n\n static _compareWithinRange(day: Date, date: Date, dateEnd: Date) {\n return day.getTime() > date.getTime() && day.getTime() < dateEnd.getTime();\n }\n\n static _comparePastDate(a: Date, b: Date) {\n return a.getTime() < b.getTime();\n }\n\n static getInstance(el: HTMLElement): Datepicker {\n return el['Expressive_Datepicker'];\n }\n\n destroy() {\n this._removeEventHandlers();\n this.displayPlugin?.destroy();\n this.containerEl.remove();\n this.destroySelects();\n this.el['Expressive_Datepicker'] = undefined;\n }\n\n destroySelects() {\n const oldYearSelect = this.calendarEl.querySelector('.orig-select-year');\n if (oldYearSelect) {\n FormSelect.getInstance(oldYearSelect as HTMLElement).destroy();\n }\n const oldMonthSelect = this.calendarEl.querySelector('.orig-select-month');\n if (oldMonthSelect) {\n FormSelect.getInstance(oldMonthSelect as HTMLElement).destroy();\n }\n }\n\n _insertHTMLIntoDOM() {\n // HTML5 input date field support\n if (this.el.type == 'date') {\n this.el.classList.add('datepicker-date-input');\n }\n\n // `!x === null` is always false, so this never ran; _renderDateInputFormat\n // now no-ops on its own when there is no hint element to fill in.\n this._renderDateInputFormat(this.el);\n\n if (this.options.isDateRange) {\n this.containerEl.classList.add('daterange');\n if (!this.options.dateRangeEndEl) {\n this.endDateEl = this.createDateInput();\n this.endDateEl.classList.add('datepicker-end-date');\n } else {\n // querySelector returns null, never undefined: the old check compared\n // against undefined, so a miss skipped the warning and fell through to\n // dereferencing null.\n this.endDateEl = document.querySelector(this.options.dateRangeEndEl);\n if (!this.endDateEl) {\n console.warn('Specified date range end input element in dateRangeEndEl not found');\n } else {\n this._renderDateInputFormat(this.endDateEl);\n }\n }\n }\n\n /*if (this.options.showClearBtn) {\n this.clearBtn.style.visibility = '';\n this.clearBtn.innerText = this.options.i18n.clear;\n }\n this.doneBtn.innerText = this.options.i18n.done;\n this.cancelBtn.innerText = this.options.i18n.cancel;*/\n Utils.createButton(this.footer, this.options.i18n.clear, ['datepicker-clear'], this.options.showClearBtn, this._handleClearClick);\n\n if (!this.options.autoSubmit) {\n Utils.createConfirmationContainer(this.footer, this.options.i18n.done, this.options.i18n.cancel, this._confirm, this._cancel);\n }\n\n if (this.options.container) {\n const optEl = this.options.container;\n this.options.container =\n optEl instanceof HTMLElement ? optEl : (document.querySelector(optEl) as HTMLElement);\n this.options.container.append(this.containerEl);\n } else {\n //this.containerEl.before(this.el);\n const appendTo = !this.endDateEl ? this.el : this.endDateEl;\n if (!this.options.openByDefault) (this.containerEl as HTMLElement).setAttribute('style', 'display: none; visibility: hidden;');\n appendTo.parentElement.after(this.containerEl);\n }\n }\n\n /**\n * Renders the date input format into the optional `.datepicker-format` hint\n * next to the input, if the consumer provided one.\n */\n _renderDateInputFormat(el: HTMLInputElement) {\n const formatEl = el.parentElement?.querySelector('.datepicker-format');\n if (!formatEl) return;\n // textContent, and nothing at all for a function format: this used to be\n // `innerHTML = format.toString()`, which rendered a format string as\n // markup and dumped a function's entire source into the page.\n formatEl.textContent =\n typeof this.options.format === 'function' ? '' : String(this.options.format);\n }\n\n /**\n * Gets a string representation of the given date.\n */\n toString(date: Date = this.date, format: string | ((d: Date) => string) = null): string {\n format = format || this.options.format;\n if (typeof format === 'function') return format(date);\n if (!Datepicker._isDate(date)) return '';\n // String Format\n return this.formatDate(date, format);\n }\n\n /**\n * Returns the formatted date.\n */\n formatDate(date: Date, format: string) {\n const formatArray = format.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g);\n return formatArray\n .map((label) => (this.formats[label] ? this.formats[label](date) : label))\n .join('');\n }\n\n /**\n * Sets date from input field.\n */\n setDateFromInput(el: HTMLInputElement) {\n const date = new Date(Date.parse(el.value));\n this.setDate(date, false, el == this.endDateEl, true);\n }\n\n /**\n * Set a date on the datepicker.\n * @param date Date to set on the datepicker.\n * @param preventOnSelect Undocumented as of 5 March 2018.\n * @param isEndDate\n * @param fromUserInput\n */\n setDate(\n date: Date = null,\n preventOnSelect: boolean = false,\n isEndDate: boolean = false,\n fromUserInput: boolean = false\n ) {\n const selectedDate = this.validateDate(date);\n if (!selectedDate) {\n return;\n }\n if (!this.options.isMultipleSelection) this.setSingleDate(selectedDate, isEndDate);\n else if (!fromUserInput) this.setMultiDate(selectedDate);\n Datepicker._setToStartOfDay(selectedDate);\n this.gotoDate(selectedDate);\n if (!preventOnSelect && typeof this.options.onSelect === 'function') {\n this.options.onSelect.call(this, selectedDate);\n }\n }\n\n validateDate(date: Date) {\n if (!date) {\n this._renderDateDisplay(date);\n return this.draw();\n }\n if (typeof date === 'string') {\n date = new Date(Date.parse(date));\n }\n if (!Datepicker._isDate(date)) {\n return;\n }\n const min = this.options.minDate,\n max = this.options.maxDate;\n if (Datepicker._isDate(min) && date < min) {\n date = min;\n } else if (Datepicker._isDate(max) && date > max) {\n date = max;\n }\n return new Date(date.getTime());\n }\n\n /**\n * Set a single date on the datepicker.\n * @param date Date to set on the datepicker.\n * @param isEndDate\n */\n setSingleDate(date: Date, isEndDate: boolean) {\n if (!isEndDate) {\n this.date = date;\n } else if (isEndDate) {\n this.endDate = date;\n }\n }\n\n /**\n * Set a multi date on the datepicker.\n * @param date Date to set on the datepicker.\n */\n setMultiDate(date: Date) {\n const selectedDate = this.dates?.find((item) => {\n return item.getTime() === date.getTime() ? item : false;\n });\n if (!selectedDate) {\n this.dates.push(date);\n } else {\n this.dates.splice(this.dates.indexOf(selectedDate), 1);\n }\n this.dates.sort((a: Date, b: Date) => (a.getTime() < b.getTime() ? -1 : 0));\n }\n\n /**\n * Sets the data-date attribute on the date input field\n */\n setDataDate(el, date) {\n el.setAttribute('data-date', this.toString(date));\n }\n\n /**\n * Sets dates on the input values.\n */\n setInputValues() {\n if (!this.options?.isMultipleSelection) {\n this.setInputValue(this.el, this.date);\n if (this.options?.isDateRange) {\n this.setInputValue(this.endDateEl, this.endDate);\n }\n return;\n }\n this.setMultipleSelectionInputValues();\n }\n\n setMultipleSelectionInputValues() {\n const dateElsArr = Array.from(this.dateEls).filter((el, index) => {\n if (index > this.dates.length - 1) return el;\n });\n dateElsArr.forEach((el) => {\n el.remove();\n });\n this.dates.forEach((date: Date, index: number) => {\n if (Array.from(this.dateEls)[index]) {\n this.setInputValue(this.dateEls[index], date);\n return;\n }\n\n const dateEl = this.createDateInput();\n this.setInputValue(dateEl, date);\n this.dateEls.push(dateEl);\n });\n }\n\n /**\n * Sets given date as the input value on the given element.\n */\n setInputValue(el, date) {\n if (el.type == 'date') {\n this.setDataDate(el, date);\n el.value = this.formatDate(date, 'yyyy-mm-dd');\n } else {\n el.value = this.toString(date);\n }\n this.el.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: { firedBy: this }\n })\n );\n }\n\n /**\n * Renders the date in the modal head section.\n */\n _renderDateDisplay(date: Date, endDate: Date = null) {\n const displayDate = Datepicker._isDate(date) ? date : new Date();\n // this.yearTextEl.innerHTML = displayDate.getFullYear().toString();\n // @todo should we include an option for date formatting by component options?\n // textContent: formatDate splices i18n month and weekday names in.\n if (!this.options.isDateRange) {\n this.dateTextEl.textContent = this.formatDate(displayDate, 'ddd, mmm d');\n } else {\n const displayEndDate = Datepicker._isDate(endDate) ? endDate : new Date();\n this.dateTextEl.textContent = `${this.formatDate(displayDate, 'mmm d')} - ${this.formatDate(displayEndDate, 'mmm d')}`;\n }\n }\n\n /**\n * Change date view to a specific date on the datepicker.\n * @param date Date to show on the datepicker.\n */\n gotoDate(date: Date) {\n let newCalendar = true;\n if (!Datepicker._isDate(date)) {\n return;\n }\n if (this.calendars) {\n const firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\n lastVisibleDate = new Date(\n this.calendars[this.calendars.length - 1].year,\n this.calendars[this.calendars.length - 1].month,\n 1\n ),\n visibleDate = date.getTime();\n // get the end of the month\n lastVisibleDate.setMonth(lastVisibleDate.getMonth() + 1);\n lastVisibleDate.setDate(lastVisibleDate.getDate() - 1);\n newCalendar =\n visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate;\n }\n if (newCalendar) {\n this.calendars = [\n {\n month: date.getMonth(),\n year: date.getFullYear()\n }\n ];\n }\n this.adjustCalendars();\n }\n\n adjustCalendars() {\n this.calendars[0] = this.adjustCalendar(this.calendars[0]);\n this.draw();\n }\n\n adjustCalendar(calendar) {\n if (calendar.month < 0) {\n calendar.year -= Math.ceil(Math.abs(calendar.month) / 12);\n calendar.month += 12;\n }\n if (calendar.month > 11) {\n calendar.year += Math.floor(Math.abs(calendar.month) / 12);\n calendar.month -= 12;\n }\n return calendar;\n }\n\n nextMonth() {\n this.calendars[0].month++;\n this.adjustCalendars();\n }\n\n prevMonth() {\n this.calendars[0].month--;\n this.adjustCalendars();\n }\n\n render(year, month, randId) {\n const now = new Date(),\n days = Datepicker._getDaysInMonth(year, month),\n data = [];\n let before = new Date(year, month, 1).getDay(),\n row = [];\n Datepicker._setToStartOfDay(now);\n if (this.options.firstDay > 0) {\n before -= this.options.firstDay;\n if (before < 0) {\n before += 7;\n }\n }\n const previousMonth = month === 0 ? 11 : month - 1,\n nextMonth = month === 11 ? 0 : month + 1,\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\n yearOfNextMonth = month === 11 ? year + 1 : year,\n daysInPreviousMonth = Datepicker._getDaysInMonth(yearOfPreviousMonth, previousMonth);\n let cells = days + before,\n after = cells;\n while (after > 7) {\n after -= 7;\n }\n cells += 7 - after;\n let isWeekSelected = false;\n for (let i = 0, r = 0; i < cells; i++) {\n const day = new Date(year, month, 1 + (i - before)),\n isToday = Datepicker._compareDates(day, now),\n hasEvent = this.options.events.indexOf(day.toDateString()) !== -1,\n isEmpty = i < before || i >= days + before,\n isStartRange =\n this.options.startRange && Datepicker._compareDates(this.options.startRange, day),\n isEndRange = this.options.endRange && Datepicker._compareDates(this.options.endRange, day),\n isInRange =\n this.options.startRange &&\n this.options.endRange &&\n this.options.startRange < day &&\n day < this.options.endRange,\n isDisabled =\n (this.options.minDate && day < this.options.minDate) ||\n (this.options.maxDate && day > this.options.maxDate) ||\n (this.options.disableWeekends && Datepicker._isWeekend(day)) ||\n (this.options.disableDayFn && this.options.disableDayFn(day)),\n isDateRangeStart = this.options.isDateRange && this.date && this.endDate && Datepicker._compareDates(this.date, day),\n isDateRangeEnd = this.options.isDateRange && this.endDate && Datepicker._compareDates(this.endDate, day),\n isDateRange =\n this.options.isDateRange &&\n Datepicker._isDate(this.endDate) &&\n Datepicker._compareWithinRange(day, this.date, this.endDate);\n let dayNumber = 1 + (i - before),\n monthNumber = month,\n yearNumber = year;\n\n let isSelected = false;\n if (Datepicker._isDate(this.date)) {\n isSelected = Datepicker._compareDates(day, this.date);\n }\n\n if (!isSelected && Datepicker._isDate(this.endDate)) {\n isSelected = Datepicker._compareDates(day, this.endDate);\n }\n\n if (\n this.options.isMultipleSelection &&\n this.dates?.some((item) => item.getTime() === day.getTime())\n ) {\n isSelected = true;\n }\n\n if (isEmpty) {\n if (i < before) {\n dayNumber = daysInPreviousMonth + dayNumber;\n monthNumber = previousMonth;\n yearNumber = yearOfPreviousMonth;\n } else {\n dayNumber = dayNumber - days;\n monthNumber = nextMonth;\n yearNumber = yearOfNextMonth;\n }\n }\n\n const dayConfig = {\n day: dayNumber,\n month: monthNumber,\n year: yearNumber,\n hasEvent: hasEvent,\n isSelected: isSelected,\n isToday: isToday,\n isDisabled: isDisabled,\n isEmpty: isEmpty,\n isStartRange: isStartRange,\n isEndRange: isEndRange,\n isInRange: isInRange,\n showDaysInNextAndPreviousMonths: this.options.showDaysInNextAndPreviousMonths,\n isDateRangeStart: isDateRangeStart,\n isDateRangeEnd: isDateRangeEnd,\n isDateRange: isDateRange\n };\n\n row.push(this.renderDay(dayConfig));\n\n if (++r === 7) {\n data.push(this.renderRow(row, this.options.isRTL, isWeekSelected));\n row = [];\n r = 0;\n isWeekSelected = false;\n }\n }\n return this.renderTable(this.options, data, randId);\n }\n\n renderDay(opts) {\n const classMap = {\n isDisabled: 'is-disabled',\n isToday: 'is-today',\n isSelected: 'is-selected',\n hasEvent: 'has-event',\n isInRange: 'is-inrange',\n isStartRange: 'is-startrange',\n isEndRange: 'is-endrange',\n isDateRangeStart: 'is-daterange-start',\n isDateRangeEnd: 'is-daterange-end',\n isDateRange: 'is-daterange'\n },\n ariaSelected = !(['isSelected', 'isDateRange'].filter((prop) => !!(opts.hasOwnProperty(prop) && opts[prop] === true)).length === 0),\n arr = ['datepicker-day'];\n\n if (opts.isEmpty) {\n if (opts.showDaysInNextAndPreviousMonths) {\n arr.push('is-outside-current-month');\n arr.push('is-selection-disabled');\n } else {\n return '<td class=\"is-empty\"></td>';\n }\n }\n\n for (const [property, className] of Object.entries(classMap)) {\n if (opts.hasOwnProperty(property) && opts[property]) {\n arr.push(className);\n }\n }\n\n return (\n `<td data-day=\"${opts.day}\" class=\"${arr.join(' ')}\" aria-selected=\"${ariaSelected}\">` +\n `<button class=\"datepicker-day-button\" type=\"button\" data-year=\"${opts.year}\" data-month=\"${opts.month}\" data-day=\"${opts.day}\">${opts.day}</button>` +\n '</td>'\n );\n }\n\n renderRow(days, isRTL, isRowSelected) {\n return (\n '<tr class=\"datepicker-row' +\n (isRowSelected ? ' is-selected' : '') +\n '\">' +\n (isRTL ? days.reverse() : days).join('') +\n '</tr>'\n );\n }\n\n renderTable(opts, data, randId) {\n return (\n '<div class=\"datepicker-table-wrapper\"><table cellpadding=\"0\" cellspacing=\"0\" class=\"datepicker-table\" role=\"grid\" aria-labelledby=\"' +\n randId +\n '\">' +\n this.renderHead(opts) +\n this.renderBody(data) +\n '</table></div>'\n );\n }\n\n renderHead(opts) {\n const arr = [];\n let i;\n for (i = 0; i < 7; i++) {\n const full = Datepicker._escape(this.renderDayName(opts, i));\n const abbrev = Datepicker._escape(this.renderDayName(opts, i, true));\n arr.push(`<th scope=\"col\"><abbr title=\"${full}\">${abbrev}</abbr></th>`);\n }\n return '<thead><tr>' + (opts.isRTL ? arr.reverse() : arr).join('') + '</tr></thead>';\n }\n\n renderBody(rows) {\n return '<tbody>' + rows.join('') + '</tbody>';\n }\n\n /**\n * Whether each month arrow is usable at this position in the allowed range.\n *\n * Depends on the month, which is deliberately *not* part of the controls\n * cache key - so the reuse path has to recompute and reapply it.\n */\n private _arrowState(year: number, month: number) {\n const opts = this.options;\n const isMinYear = year === opts.minYear;\n const isMaxYear = year === opts.maxYear;\n return {\n prev: !(isMinYear && (month === 0 || opts.minMonth >= month)),\n next: !(isMaxYear && (month === 11 || opts.maxMonth <= month))\n };\n }\n\n /**\n * Identifies the *shape* of the controls - everything that changes which\n * options the month and year selects contain, as opposed to which one is\n * picked. While this is stable the two FormSelects can be left alone.\n *\n * `year` is in the key because a numeric `yearRange` centres the year list\n * on the displayed year, so paging across a year boundary does change it.\n */\n private _controlsCacheKey(year: number): string {\n const o = this.options;\n return [\n year,\n o.minYear,\n o.maxYear,\n o.minMonth,\n o.maxMonth,\n Array.isArray(o.yearRange) ? o.yearRange.join('-') : o.yearRange,\n o.yearRangeReverse,\n o.showMonthAfterYear\n ].join('|');\n }\n\n renderTitle(instance, c, year, month, refYear, randId) {\n const opts = this.options,\n isMinYear = year === opts.minYear,\n isMaxYear = year === opts.maxYear;\n let i,\n j,\n arr = [],\n html =\n '<div id=\"' +\n randId +\n '\" class=\"datepicker-controls\" role=\"heading\" aria-live=\"assertive\">';\n\n // Decided up front. These used to be computed *below* the month-prev\n // button that reads `prev`, so the previous arrow was never disabled at\n // the start of the allowed range.\n const { prev, next } = this._arrowState(year, month);\n\n for (i = 0; i < 12; i++) {\n arr.push(\n '<option value=\"' +\n (year === refYear ? i - c : 12 + i - c) +\n '\"' +\n (i === month ? ' selected=\"selected\"' : '') +\n ((isMinYear && i < opts.minMonth) || (isMaxYear && i > opts.maxMonth)\n ? 'disabled=\"disabled\"'\n : '') +\n '>' +\n Datepicker._escape(opts.i18n.months[i]) +\n '</option>'\n );\n }\n\n const monthHtml =\n '<select class=\"datepicker-select orig-select-month\" tabindex=\"-1\">' +\n arr.join('') +\n '</select>';\n\n if (Array.isArray(opts.yearRange)) {\n i = opts.yearRange[0];\n j = opts.yearRange[1] + 1;\n } else {\n i = year - opts.yearRange;\n j = 1 + year + opts.yearRange;\n }\n\n for (arr = []; i < j && i <= opts.maxYear; i++) {\n if (i >= opts.minYear) {\n arr.push(`<option value=\"${i}\" ${i === year ? 'selected=\"selected\"' : ''}>${i}</option>`);\n }\n }\n if (opts.yearRangeReverse) arr.reverse();\n\n const yearHtml = `<select class=\"datepicker-select orig-select-year\" tabindex=\"-1\">${arr.join('')}</select>`;\n\n const leftArrow =\n '<svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"/><path d=\"M0-.5h24v24H0z\" fill=\"none\"/></svg>';\n html += `<button class=\"month-prev${\n prev ? '' : ' is-disabled'\n // @todo remove button class and add scss mixin, current implementation temporary for focus states, @see https://github.com/materializecss/materialize/issues/566\n } btn\" type=\"button\">${leftArrow}</button>`;\n\n html += '<div class=\"selects-container\">';\n if (opts.showMonthAfterYear) {\n html += yearHtml + monthHtml;\n } else {\n html += monthHtml + yearHtml;\n }\n html += '</div>';\n\n const rightArrow =\n '<svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"/><path d=\"M0-.25h24v24H0z\" fill=\"none\"/></svg>';\n html += `<button class=\"month-next${\n next ? '' : ' is-disabled'\n // @todo remove button class and add scss mixin, current implementation temporary for focus states, @see https://github.com/materializecss/materialize/issues/566\n } btn\" type=\"button\">${rightArrow}</button>`;\n\n return (html += '</div>');\n }\n\n /**\n * Run `fn`, collapsing every draw it triggers into a single one at the end.\n *\n * A single input click reaches draw() three times - once through\n * setDateFromInput -> setDate -> gotoDate, once directly, and once through\n * the trailing gotoDate - and each one destroys two FormSelect instances,\n * reparses the calendar and builds two fresh FormSelects. The three calls\n * cannot simply be deleted: the direct draw() is what covers an empty input\n * (setDate bails before drawing when the value does not parse), and the\n * trailing gotoDate re-centres on a date validateDate may have clamped to\n * minDate/maxDate. So they are collected instead of removed.\n *\n * Deliberately synchronous: the constructor and callers read calendarEl\n * immediately after init(), which a microtask-deferred draw would leave\n * empty.\n */\n private _batchDraws(fn: () => void) {\n this._drawDepth++;\n try {\n fn();\n } finally {\n this._drawDepth--;\n if (this._drawDepth === 0 && this._drawDirty) {\n this._drawDirty = false;\n this.draw();\n }\n }\n }\n\n // refresh HTML\n draw() {\n // Inside a batch, note that a draw is due and let the batch do it once.\n if (this._drawDepth > 0) {\n this._drawDirty = true;\n return;\n }\n const opts = this.options,\n minYear = opts.minYear,\n maxYear = opts.maxYear,\n minMonth = opts.minMonth,\n maxMonth = opts.maxMonth;\n\n if (this._y <= minYear) {\n this._y = minYear;\n if (!isNaN(minMonth) && this._m < minMonth) {\n this._m = minMonth;\n }\n }\n if (this._y >= maxYear) {\n this._y = maxYear;\n if (!isNaN(maxMonth) && this._m > maxMonth) {\n this._m = maxMonth;\n }\n }\n\n const year = this.calendars[0].year;\n const month = this.calendars[0].month;\n\n if (!this.options.isDateRange) {\n this._renderDateDisplay(this.date);\n } else {\n this._renderDateDisplay(this.date, this.endDate);\n }\n\n // Only the day grid changes when you page within a year. Rebuilding the\n // controls as well meant tearing down and reconstructing two FormSelects -\n // each with its own <ul> of 12 or 21+ options, an input, a caret and a\n // Dropdown - on every single draw.\n const key = this._controlsCacheKey(year);\n if (key === this._controlsKey && this.calendarEl.querySelector('.datepicker-controls')) {\n this._reuseControls(year, month);\n } else {\n this._controlsKey = key;\n // Held across table re-renders: the table's aria-labelledby points at\n // the controls element's id.\n this._randId = 'datepicker-title-' + Utils.guid();\n this._rebuildControls(year, month);\n }\n this._renderCalendarTable(year, month);\n\n if (typeof this.options.onDraw === 'function') {\n this.options.onDraw.call(this);\n }\n }\n\n /** Tear down the two FormSelects and render the controls from scratch. */\n private _rebuildControls(year: number, month: number) {\n this.destroySelects();\n this.calendarEl.innerHTML = this.renderTitle(this, 0, year, month, year, this._randId);\n\n const yearSelect = this.calendarEl.querySelector('.orig-select-year') as HTMLSelectElement;\n const monthSelect = this.calendarEl.querySelector('.orig-select-month') as HTMLSelectElement;\n // @todo fix accessibility @see https://github.com/materializecss/materialize/issues/522\n FormSelect.init(yearSelect, {\n classes: 'select-year',\n dropdownOptions: { container: document.body, constrainWidth: false }\n });\n FormSelect.init(monthSelect, {\n classes: 'select-month',\n dropdownOptions: { container: document.body, constrainWidth: false }\n });\n\n // Add change handlers for select\n yearSelect.addEventListener('change', this._handleYearChange);\n monthSelect.addEventListener('change', this._handleMonthChange);\n }\n\n /**\n * Keep the existing controls and bring them up to date: the selected month,\n * and the arrow states, which depend on the month rather than on the key.\n */\n private _reuseControls(year: number, month: number) {\n const monthSelect = this.calendarEl.querySelector('.orig-select-month') as HTMLSelectElement;\n if (monthSelect && monthSelect.value !== month.toString()) {\n monthSelect.value = month.toString();\n // Assigning .value fires no change event, so the wrapper needs telling.\n FormSelect.getInstance(monthSelect)?.refresh();\n }\n\n const { prev, next } = this._arrowState(year, month);\n this.calendarEl.querySelector('.month-prev')?.classList.toggle('is-disabled', !prev);\n this.calendarEl.querySelector('.month-next')?.classList.toggle('is-disabled', !next);\n }\n\n /** Replace just the day grid, leaving the controls in place. */\n private _renderCalendarTable(year: number, month: number) {\n const html = this.render(year, month, this._randId);\n const existing = this.calendarEl.querySelector('.datepicker-table-wrapper');\n if (existing) existing.outerHTML = html;\n else this.calendarEl.insertAdjacentHTML('beforeend', html);\n }\n\n _setupEventHandlers() {\n this.el.addEventListener('click', this._handleInputClick);\n this.el.addEventListener('keydown', this._handleInputKeydown);\n this.el.addEventListener('change', this._handleInputChange);\n this.calendarEl.addEventListener('click', this._handleCalendarClick);\n /* this.doneBtn.addEventListener('click', this._confirm);\n this.cancelBtn.addEventListener('click', this._cancel);\n\n if (this.options.showClearBtn) {\n this.clearBtn.addEventListener('click', this._handleClearClick);\n }*/\n }\n\n _setupVariables() {\n const template = document.createElement('template');\n template.innerHTML = Datepicker._template.trim();\n\n this.containerEl = <HTMLElement>template.content.firstChild;\n\n this.calendarEl = this.containerEl.querySelector('.datepicker-calendar');\n this.yearTextEl = this.containerEl.querySelector('.year-text');\n this.dateTextEl = this.containerEl.querySelector('.date-text');\n /* if (this.options.showClearBtn) {\n this.clearBtn = this.containerEl.querySelector('.datepicker-clear');\n }\n this.doneBtn = this.containerEl.querySelector('.datepicker-done');\n this.cancelBtn = this.containerEl.querySelector('.datepicker-cancel');*/\n this.footer = this.containerEl.querySelector('.datepicker-footer');\n\n this.formats = {\n d: (date: Date) => {\n return date.getDate();\n },\n dd: (date: Date) => {\n const d = date.getDate();\n return (d < 10 ? '0' : '') + d;\n },\n ddd: (date: Date) => {\n return this.options.i18n.weekdaysShort[date.getDay()];\n },\n dddd: (date: Date) => {\n return this.options.i18n.weekdays[date.getDay()];\n },\n m: (date: Date) => {\n return date.getMonth() + 1;\n },\n mm: (date: Date) => {\n const m = date.getMonth() + 1;\n return (m < 10 ? '0' : '') + m;\n },\n mmm: (date: Date) => {\n return this.options.i18n.monthsShort[date.getMonth()];\n },\n mmmm: (date: Date) => {\n return this.options.i18n.months[date.getMonth()];\n },\n yy: (date: Date) => {\n return ('' + date.getFullYear()).slice(2);\n },\n yyyy: (date: Date) => {\n return date.getFullYear();\n }\n };\n }\n\n _removeEventHandlers() {\n this.el.removeEventListener('click', this._handleInputClick);\n this.el.removeEventListener('keydown', this._handleInputKeydown);\n this.el.removeEventListener('change', this._handleInputChange);\n this.calendarEl.removeEventListener('click', this._handleCalendarClick);\n if (this.options.isDateRange && this.endDateEl) {\n this.endDateEl.removeEventListener('click', this._handleInputClick);\n this.endDateEl.removeEventListener('keypress', this._handleInputKeydown);\n this.endDateEl.removeEventListener('change', this._handleInputChange);\n }\n }\n\n _handleInputClick = (e) => {\n // Prevents default browser datepicker modal rendering\n if (e.type == 'date') {\n e.preventDefault();\n }\n this._batchDraws(() => {\n this.setDateFromInput(e.target as HTMLInputElement);\n this.draw();\n this.gotoDate(<HTMLElement>e.target === this.el ? this.date : this.endDate);\n });\n if (this.displayPlugin) this.displayPlugin.show();\n if (this.options.onInputInteraction) this.options.onInputInteraction.call(this);\n };\n\n _handleInputKeydown = (e: KeyboardEvent) => {\n if (Utils.keys.ENTER.includes(e.key)) {\n e.preventDefault();\n this._batchDraws(() => {\n this.setDateFromInput(e.target as HTMLInputElement);\n this.draw();\n });\n if (this.displayPlugin) this.displayPlugin.show();\n if (this.options.onInputInteraction) this.options.onInputInteraction.call(this);\n }\n };\n\n _handleCalendarClick = (e) => {\n const target = <HTMLElement>e.target;\n if (target.classList.contains('is-disabled')) return;\n\n this._batchDraws(() => {\n if (\n target.classList.contains('datepicker-day-button') &&\n !target.classList.contains('is-empty') &&\n !target.parentElement.classList.contains('is-disabled')\n ) {\n const selectedDate = new Date(\n e.target.getAttribute('data-year'),\n e.target.getAttribute('data-month'),\n e.target.getAttribute('data-day')\n );\n\n if (!this.multiple || (this.multiple && this.options.isMultipleSelection)) {\n this.setDate(selectedDate);\n }\n\n // Selecting a range end draws a second time on top of setDate's.\n if (this.options.isDateRange) {\n this._handleDateRangeCalendarClick(selectedDate);\n }\n\n if (this.options.autoSubmit) this._finishSelection();\n } else if (target.closest('.month-prev')) {\n this.prevMonth();\n } else if (target.closest('.month-next')) {\n this.nextMonth();\n }\n });\n };\n\n _handleDateRangeCalendarClick = (date: Date) => {\n if (this.endDate == null || !Datepicker._compareDates(date, this.endDate)) {\n if (Datepicker._isDate(this.date) && Datepicker._comparePastDate(date, this.date)) {\n return;\n }\n\n this.setDate(date, false, Datepicker._isDate(this.date));\n return;\n }\n\n this._clearDates();\n this.draw();\n };\n\n _handleClearClick = () => {\n this._clearDates();\n this.setInputValues();\n };\n\n _clearDates = () => {\n this.date = null;\n this.endDate = null;\n this.draw();\n };\n\n _handleMonthChange = (e) => {\n this.gotoMonth(e.target.value);\n };\n\n _handleYearChange = (e) => {\n this.gotoYear(e.target.value);\n };\n\n // change view to a specific month (zero-index, e.g. 0: January)\n gotoMonth(month) {\n if (!isNaN(month)) {\n this.calendars[0].month = parseInt(month, 10);\n this.adjustCalendars();\n }\n }\n\n // change view to a specific full year (e.g. \"2012\")\n gotoYear(year) {\n if (!isNaN(year)) {\n this.calendars[0].year = parseInt(year, 10);\n this.adjustCalendars();\n }\n }\n\n _handleInputChange = (e: Event) => {\n let date;\n const el = e.target as HTMLElement;\n // Prevent change event from being fired when triggered by the plugin\n if (e['detail']?.firedBy === this) return;\n // Prevent change event from being fired if an end date is set without a start date\n if (el == this.endDateEl && !this.date) return;\n if (this.options.parse) {\n date = this.options.parse(\n (e.target as HTMLInputElement).value,\n typeof this.options.format === 'function'\n ? this.options.format(new Date(this.el.value))\n : this.options.format\n );\n } else {\n date = new Date(Date.parse((e.target as HTMLInputElement).value));\n }\n if (Datepicker._isDate(date)) {\n this.setDate(date, false, el == this.endDateEl, true);\n if (e.type == 'date') {\n this.setDataDate(e, date);\n this.setInputValues();\n }\n }\n };\n\n renderDayName(opts, day, abbr: boolean = false) {\n day += opts.firstDay;\n while (day >= 7) {\n day -= 7;\n }\n return abbr ? opts.i18n.weekdaysAbbrev[day] : opts.i18n.weekdays[day];\n }\n\n createDateInput() {\n const dateInput = <HTMLInputElement>this.el.cloneNode(true);\n // cloneNode copies the id too, and two elements sharing one id break every\n // lookup that goes through it.\n dateInput.removeAttribute('id');\n dateInput.addEventListener('click', this._handleInputClick);\n dateInput.addEventListener('keypress', this._handleInputKeydown);\n dateInput.addEventListener('change', this._handleInputChange);\n this.el.parentElement.appendChild(dateInput);\n return dateInput;\n }\n\n // Set input value to the selected date and close Datepicker\n _finishSelection = () => {\n this.setInputValues();\n // Commented out because of function deprecations\n // this.close();\n };\n\n _confirm = () => {\n this._finishSelection();\n if (typeof this.options.onConfirm === 'function') this.options.onConfirm.call(this);\n }\n\n _cancel = () => {\n if (typeof this.options.onCancel === 'function') this.options.onCancel.call(this);\n };\n\n // deprecated\n open() {\n console.warn('Datepicker.open() is deprecated. Remove this method and wrap in modal yourself.');\n return this;\n }\n close() {\n console.warn(\n 'Datepicker.close() is deprecated. Remove this method and wrap in modal yourself.'\n );\n return this;\n }\n\n static {\n Datepicker._template = `\n <div class=\"datepicker-container\">\n <div class=\"datepicker-date-display\">\n <span class=\"year-text\"></span>\n <span class=\"date-text\"></span>\n </div>\n <div class=\"datepicker-calendar-container\">\n <div class=\"datepicker-calendar\"></div>\n <div class=\"datepicker-footer\">\n <!--<button class=\"btn-flat datepicker-clear waves-effect\" style=\"visibility: hidden;\" type=\"button\"></button>\n <div class=\"confirmation-btns\">\n <button class=\"btn-flat datepicker-cancel waves-effect\" type=\"button\"></button>\n <button class=\"btn-flat datepicker-done waves-effect\" type=\"button\"></button>\n </div>-->\n </div>\n </div>\n </div>`;\n }\n}\n", "import { Utils } from '../core/utils';\nimport { BaseOptions, Component, InitElements, MElement } from '../core/component';\n\nexport interface LightboxOptions extends BaseOptions {\n /**\n * Transition in duration in milliseconds.\n * @default 275\n */\n inDuration: number;\n /**\n * Transition out duration in milliseconds.\n * @default 200\n */\n outDuration: number;\n /**\n * Callback function called before lightbox is opened.\n * @default null\n */\n onOpenStart: (el: Element) => void;\n /**\n * Callback function called after lightbox is opened.\n * @default null\n */\n onOpenEnd: (el: Element) => void;\n /**\n * Callback function called before lightbox is closed.\n * @default null\n */\n onCloseStart: (el: Element) => void;\n /**\n * Callback function called after lightbox is closed.\n * @default null\n */\n onCloseEnd: (el: Element) => void;\n}\n\nconst _defaults: LightboxOptions = {\n inDuration: 275,\n outDuration: 200,\n onOpenStart: null,\n onOpenEnd: null,\n onCloseStart: null,\n onCloseEnd: null\n};\n\nexport class Lightbox extends Component<LightboxOptions> {\n /** If the lightbox overlay is showing. */\n overlayActive: boolean;\n /** If the lightbox is no longer being animated. */\n doneAnimating: boolean;\n /** Caption, if specified. */\n caption: string;\n /** Original width of image. */\n originalWidth: number;\n /** Original height of image. */\n originalHeight: number;\n private originInlineStyles: string;\n private placeholder: HTMLElement;\n private _changedAncestorList: HTMLElement[];\n private newHeight: number;\n private newWidth: number;\n private windowWidth: number;\n private windowHeight: number;\n private attrWidth: string;\n private attrHeight: string;\n private _overlay: HTMLElement;\n private _photoCaption: HTMLElement;\n\n constructor(el: HTMLElement, options: Partial<LightboxOptions>) {\n super(el, options, Lightbox);\n this.el['Expressive_Lightbox'] = this;\n\n this.options = {\n ...Lightbox.defaults,\n ...options\n };\n\n this.overlayActive = false;\n this.doneAnimating = true;\n this.placeholder = document.createElement('div');\n this.placeholder.classList.add('material-placeholder');\n this.originalWidth = 0;\n this.originalHeight = 0;\n this.originInlineStyles = this.el.getAttribute('style');\n this.caption = this.el.getAttribute('data-caption') || '';\n this.el.tabIndex = 0;\n // Wrap\n this.el.before(this.placeholder);\n this.placeholder.append(this.el);\n this._setupEventHandlers();\n }\n\n static get defaults(): LightboxOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Lightbox.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<LightboxOptions>): Lightbox;\n /**\n * Initializes instances of Lightbox.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<LightboxOptions>): Lightbox[];\n /**\n * Initializes instances of Lightbox.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<LightboxOptions> = {}\n ): Lightbox | Lightbox[] {\n return super.init(els, options, Lightbox);\n }\n\n static getInstance(el: HTMLElement): Lightbox {\n return el['Expressive_Lightbox'];\n }\n\n destroy() {\n this._removeEventHandlers();\n this.el['Expressive_Lightbox'] = undefined;\n // Unwrap image\n //this.placeholder.after(this.el).remove();\n this.placeholder.remove();\n this.el.removeAttribute('style');\n }\n\n private _setupEventHandlers() {\n this.el.addEventListener('click', this._handleLightboxClick);\n this.el.addEventListener('keypress', this._handleLightboxKeypress);\n }\n\n private _removeEventHandlers() {\n this.el.removeEventListener('click', this._handleLightboxClick);\n this.el.removeEventListener('keypress', this._handleLightboxKeypress);\n }\n\n private _handleLightboxClick = () => {\n this._handleLightboxToggle();\n };\n\n private _handleLightboxKeypress = (e: KeyboardEvent) => {\n if (Utils.keys.ENTER.includes(e.key)) {\n this._handleLightboxToggle();\n }\n };\n\n private _handleLightboxToggle = () => {\n // If already modal, return to original\n if (this.doneAnimating === false || (this.overlayActive && this.doneAnimating)) this.close();\n else this.open();\n };\n\n private _handleWindowScroll = () => {\n if (this.overlayActive) this.close();\n };\n\n private _handleWindowResize = () => {\n if (this.overlayActive) this.close();\n };\n\n private _handleWindowEscape = (e: KeyboardEvent) => {\n if (Utils.keys.ESC.includes(e.key) && this.doneAnimating && this.overlayActive) this.close();\n };\n\n private _makeAncestorsOverflowVisible() {\n this._changedAncestorList = [];\n let ancestor = this.placeholder.parentNode;\n while (ancestor !== null && ancestor !== document) {\n const curr = <HTMLElement>ancestor;\n if (curr.style.overflow !== 'visible') {\n curr.style.overflow = 'visible';\n this._changedAncestorList.push(curr);\n }\n ancestor = ancestor.parentNode;\n }\n }\n\n private _offset(el: HTMLElement) {\n const box = el.getBoundingClientRect();\n const docElem = document.documentElement;\n return {\n top: box.top + window.scrollY - docElem.clientTop,\n left: box.left + window.scrollX - docElem.clientLeft\n };\n }\n private _updateVars(): void {\n this.windowWidth = window.innerWidth;\n this.windowHeight = window.innerHeight;\n this.caption = this.el.getAttribute('data-caption') || '';\n }\n\n // Image\n private _animateImageIn(): void {\n this.el.style.maxHeight = this.newHeight.toString() + 'px';\n this.el.style.maxWidth = this.newWidth.toString() + 'px';\n const duration = this.options.inDuration;\n // from\n this.el.style.transition = 'none';\n this.el.style.height = this.originalHeight + 'px';\n this.el.style.width = this.originalWidth + 'px';\n setTimeout(() => {\n // One offset for both axes, read before any of the writes below.\n const placeholderOffset = this._offset(this.placeholder);\n // easeOutQuad\n this.el.style.transition = `height ${duration}ms ease,\n width ${duration}ms ease,\n left ${duration}ms ease,\n top ${duration}ms ease\n `;\n // to\n this.el.style.height = this.newHeight + 'px';\n this.el.style.width = this.newWidth + 'px';\n this.el.style.left =\n Utils.getDocumentScrollLeft() +\n this.windowWidth / 2 -\n placeholderOffset.left -\n this.newWidth / 2 +\n 'px';\n\n this.el.style.top =\n Utils.getDocumentScrollTop() +\n this.windowHeight / 2 -\n placeholderOffset.top -\n this.newHeight / 2 +\n 'px';\n }, 1);\n\n setTimeout(() => {\n this.doneAnimating = true;\n if (typeof this.options.onOpenEnd === 'function') this.options.onOpenEnd.call(this, this.el);\n }, duration);\n\n /*\n anim({\n targets: this.el, // image\n height: [this.originalHeight, this.newHeight],\n width: [this.originalWidth, this.newWidth],\n left:\n Utils.getDocumentScrollLeft() +\n this.windowWidth / 2 -\n this._offset(this.placeholder).left -\n this.newWidth / 2,\n top:\n Utils.getDocumentScrollTop() +\n this.windowHeight / 2 -\n this._offset(this.placeholder).top -\n this.newHeight / 2,\n\n duration: this.options.inDuration,\n easing: 'easeOutQuad',\n complete: () => {\n this.doneAnimating = true;\n if (typeof this.options.onOpenEnd === 'function') this.options.onOpenEnd.call(this, this.el);\n }\n });\n */\n }\n private _animateImageOut(): void {\n const duration = this.options.outDuration;\n // easeOutQuad\n this.el.style.transition = `height ${duration}ms ease,\n width ${duration}ms ease,\n left ${duration}ms ease,\n top ${duration}ms ease\n `;\n // to\n this.el.style.height = this.originalHeight + 'px'; // was originalWidth\n this.el.style.width = this.originalWidth + 'px';\n this.el.style.left = '0';\n this.el.style.top = '0';\n setTimeout(() => {\n this.placeholder.style.height = '';\n this.placeholder.style.width = '';\n this.placeholder.style.position = '';\n this.placeholder.style.top = '';\n this.placeholder.style.left = '';\n // Revert to width or height attribute\n if (this.attrWidth) this.el.setAttribute('width', this.attrWidth.toString());\n if (this.attrHeight) this.el.setAttribute('height', this.attrHeight.toString());\n this.el.removeAttribute('style');\n if (this.originInlineStyles) this.el.setAttribute('style', this.originInlineStyles);\n // Remove class\n this.el.classList.remove('active');\n this.doneAnimating = true;\n // Remove overflow overrides on ancestors\n this._changedAncestorList.forEach((anchestor) => (anchestor.style.overflow = ''));\n // onCloseEnd callback\n if (typeof this.options.onCloseEnd === 'function')\n this.options.onCloseEnd.call(this, this.el);\n }, duration);\n }\n\n // Caption\n private _addCaption(): void {\n this._photoCaption = document.createElement('div');\n this._photoCaption.classList.add('lightbox-caption');\n this._photoCaption.innerText = this.caption;\n document.body.append(this._photoCaption);\n this._photoCaption.style.display = 'inline';\n // Animate\n this._photoCaption.style.transition = 'none';\n this._photoCaption.style.opacity = '0';\n const duration = this.options.inDuration;\n setTimeout(() => {\n this._photoCaption.style.transition = `opacity ${duration}ms ease`;\n this._photoCaption.style.opacity = '1';\n }, 1);\n }\n private _removeCaption(): void {\n const duration = this.options.outDuration;\n this._photoCaption.style.transition = `opacity ${duration}ms ease`;\n this._photoCaption.style.opacity = '0';\n setTimeout(() => {\n this._photoCaption.remove();\n }, duration);\n }\n\n // Overlay\n private _addOverlay(): void {\n this._overlay = document.createElement('div');\n this._overlay.id = 'lightbox-overlay';\n this._overlay.addEventListener(\n 'click',\n () => {\n if (this.doneAnimating) this.close();\n },\n { once: true }\n );\n\n // Put before in origin image to preserve z-index layering.\n this.el.before(this._overlay);\n\n // Set dimensions if needed\n const overlayOffset = this._overlay.getBoundingClientRect();\n this._overlay.style.width = this.windowWidth + 'px';\n this._overlay.style.height = this.windowHeight + 'px';\n this._overlay.style.left = -1 * overlayOffset.left + 'px';\n this._overlay.style.top = -1 * overlayOffset.top + 'px';\n\n // Animate\n this._overlay.style.transition = 'none';\n this._overlay.style.opacity = '0';\n const duration = this.options.inDuration;\n setTimeout(() => {\n this._overlay.style.transition = `opacity ${duration}ms ease`;\n this._overlay.style.opacity = '1';\n }, 1);\n }\n private _removeOverlay(): void {\n const duration = this.options.outDuration;\n this._overlay.style.transition = `opacity ${duration}ms ease`;\n this._overlay.style.opacity = '0';\n setTimeout(() => {\n this.overlayActive = false;\n this._overlay.remove();\n }, duration);\n }\n\n /**\n * Open lightbox.\n */\n open = () => {\n this._updateVars();\n // Both rects are read up front: measuring the placeholder after writing\n // its width forced a second layout for the height.\n const originRect = this.el.getBoundingClientRect();\n const placeholderRect = this.placeholder.getBoundingClientRect();\n this.originalWidth = originRect.width;\n this.originalHeight = originRect.height;\n // Set states\n this.doneAnimating = false;\n this.el.classList.add('active');\n this.overlayActive = true;\n // onOpenStart callback\n if (typeof this.options.onOpenStart === 'function')\n this.options.onOpenStart.call(this, this.el);\n // Set positioning for placeholder\n this.placeholder.style.width = placeholderRect.width + 'px';\n this.placeholder.style.height = placeholderRect.height + 'px';\n this.placeholder.style.position = 'relative';\n this.placeholder.style.top = '0';\n this.placeholder.style.left = '0';\n this._makeAncestorsOverflowVisible();\n // Set css on origin\n this.el.style.position = 'absolute';\n this.el.style.zIndex = '1000';\n this.el.style.willChange = 'left, top, width, height';\n // Change from width or height attribute to css\n this.attrWidth = this.el.getAttribute('width');\n this.attrHeight = this.el.getAttribute('height');\n if (this.attrWidth) {\n this.el.style.width = this.attrWidth + 'px';\n this.el.removeAttribute('width');\n }\n if (this.attrHeight) {\n this.el.style.height = this.attrHeight + 'px'; // was width, from the height attribute\n this.el.removeAttribute('height');\n }\n this._addOverlay();\n // Add and animate caption if it exists\n if (this.caption !== '') this._addCaption();\n // Resize Image\n const widthPercent = this.originalWidth / this.windowWidth;\n const heightPercent = this.originalHeight / this.windowHeight;\n this.newWidth = 0;\n this.newHeight = 0;\n if (widthPercent > heightPercent) {\n // Width first\n const ratio = this.originalHeight / this.originalWidth;\n this.newWidth = this.windowWidth * 0.9;\n this.newHeight = this.windowWidth * 0.9 * ratio;\n } else {\n // Height first\n const ratio = this.originalWidth / this.originalHeight;\n this.newWidth = this.windowHeight * 0.9 * ratio;\n this.newHeight = this.windowHeight * 0.9;\n }\n this._animateImageIn();\n // Handle Exit triggers\n window.addEventListener('scroll', this._handleWindowScroll, { passive: true });\n window.addEventListener('resize', this._handleWindowResize, { passive: true });\n window.addEventListener('keyup', this._handleWindowEscape);\n };\n\n /**\n * Close lightbox.\n */\n close = () => {\n this._updateVars();\n this.doneAnimating = false;\n // onCloseStart callback\n if (typeof this.options.onCloseStart === 'function')\n this.options.onCloseStart.call(this, this.el);\n //anim.remove(this.el);\n //anim.remove(this._overlay);\n //if (this.caption !== '') anim.remove(this._photoCaption);\n // disable exit handlers\n window.removeEventListener('scroll', this._handleWindowScroll);\n window.removeEventListener('resize', this._handleWindowResize);\n window.removeEventListener('keyup', this._handleWindowEscape);\n this._removeOverlay();\n this._animateImageOut();\n if (this.caption !== '') this._removeCaption();\n };\n}\n", "import { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\n// Obsolete for versions > 2.1.1\n\nexport interface ModalOptions extends BaseOptions {\n opacity: number;\n inDuration: number;\n outDuration: number;\n preventScrolling: boolean;\n onOpenStart: (this: Modal, el: HTMLElement) => void;\n onOpenEnd: (this: Modal, el: HTMLElement) => void;\n onCloseStart: (el: HTMLElement) => void;\n onCloseEnd: (el: HTMLElement) => void;\n dismissible: boolean;\n startingTop: string;\n endingTop: string;\n}\n\nconst _defaults = {\n opacity: 0.5,\n inDuration: 250,\n outDuration: 250,\n onOpenStart: null,\n onOpenEnd: null,\n onCloseStart: null,\n onCloseEnd: null,\n preventScrolling: true,\n dismissible: true,\n startingTop: '4%',\n endingTop: '10%'\n};\n\nexport class Modal extends Component<ModalOptions> {\n constructor(el: HTMLElement, options: Partial<ModalOptions>) {\n super(el, options, Modal);\n this.el['Expressive_Modal'] = this;\n this.options = {\n ...Modal.defaults,\n ...options\n };\n this.el.tabIndex = 0;\n this._setupEventHandlers();\n }\n\n static get defaults() {\n return _defaults;\n }\n\n static init(el: HTMLElement, options?: Partial<ModalOptions>): Modal;\n static init(els: InitElements<MElement>, options?: Partial<ModalOptions>): Modal[];\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<ModalOptions> = {}\n ): Modal | Modal[] {\n return super.init(els, options, Modal);\n }\n\n static getInstance(el: HTMLElement): Modal {\n return el['Expressive_Modal'];\n }\n\n destroy() {}\n _setupEventHandlers() {}\n _removeEventHandlers() {}\n _handleTriggerClick() {}\n _handleOverlayClick() {}\n _handleModalCloseClick() {}\n _handleKeydown() {}\n _handleFocus() {}\n open() {\n return this;\n }\n close() {\n return this;\n }\n\n // Experimental!\n\n static #createHtml(config: ModalCreateConfig) {\n const title = config.header\n ? `<h2>${typeof config.header === 'string' ? config.header : ''}</h2>`\n : '';\n const actions = config.footer\n ? `<form method=\"dialog\">${typeof config.footer === 'string' ? config.footer : ''}</form>`\n : '';\n return `<dialog id=\"${config.id}\">\n ${title}\n <div>${typeof config.content === 'string' ? config.content : ''}</div>\n ${actions}\n </dialog>`;\n }\n\n static #createHtmlElement(config: ModalCreateConfig) {\n const dialog = document.createElement('dialog');\n dialog.id = config.id;\n return dialog;\n }\n\n static create(config) {\n const isServer = false;\n if (isServer) return this.#createHtml(config);\n return this.#createHtmlElement(config);\n }\n\n static {}\n}\n\ninterface ModalCreateConfig {\n id: string;\n header: string | HTMLElement;\n content: string | HTMLElement;\n footer: string | HTMLElement;\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface ParallaxOptions extends BaseOptions {\n /**\n * The minimum width of the screen, in pixels, where the parallax functionality starts working.\n * @default 0\n */\n responsiveThreshold: number;\n}\n\nconst _defaults: ParallaxOptions = {\n responsiveThreshold: 0 // breakpoint for swipeable\n};\n\nexport class Parallax extends Component<ParallaxOptions> {\n private _enabled: boolean;\n private _img: HTMLImageElement;\n static _parallaxes: Parallax[] = [];\n static _handleWindowResizeThrottled: (...args: unknown[]) => void;\n private static _scrollFrame: number = null;\n\n constructor(el: HTMLElement, options: Partial<ParallaxOptions>) {\n super(el, options, Parallax);\n this.el['Expressive_Parallax'] = this;\n\n this.options = {\n ...Parallax.defaults,\n ...options\n };\n\n this._enabled = window.innerWidth > this.options.responsiveThreshold;\n this._img = this.el.querySelector('img');\n if (!this._img) {\n console.error('Parallax: no <img> to move inside the .parallax element');\n return;\n }\n this._updateParallax();\n this._setupEventHandlers();\n this._setupStyles();\n Parallax._parallaxes.push(this);\n }\n\n static get defaults(): ParallaxOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Parallax.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<ParallaxOptions>): Parallax;\n /**\n * Initializes instances of Parallax.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<ParallaxOptions>): Parallax[];\n /**\n * Initializes instances of Parallax.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<ParallaxOptions> = {}\n ): Parallax | Parallax[] {\n return super.init(els, options, Parallax);\n }\n\n static getInstance(el: HTMLElement): Parallax {\n return el['Expressive_Parallax'];\n }\n\n destroy() {\n const index = Parallax._parallaxes.indexOf(this);\n if (index >= 0) Parallax._parallaxes.splice(index, 1);\n if (this._img) this._img.style.transform = '';\n this._removeEventHandlers();\n this.el['Expressive_Parallax'] = undefined;\n }\n\n static _handleScroll() {\n for (let i = 0; i < Parallax._parallaxes.length; i++) {\n const parallaxInstance = Parallax._parallaxes[i];\n parallaxInstance._updateParallax.call(parallaxInstance);\n }\n }\n\n /**\n * Coalesce scroll events onto animation frames.\n *\n * The handler reads layout and then writes a transform, so running it more\n * than once per frame is wasted work - and the 5ms throttle it replaces was\n * short enough to let several run per frame anyway.\n */\n static _requestScrollUpdate = () => {\n if (Parallax._scrollFrame !== null) return;\n Parallax._scrollFrame = requestAnimationFrame(() => {\n Parallax._scrollFrame = null;\n Parallax._handleScroll();\n });\n };\n\n static _handleWindowResize() {\n for (let i = 0; i < Parallax._parallaxes.length; i++) {\n const parallaxInstance = Parallax._parallaxes[i];\n parallaxInstance._enabled = window.innerWidth > parallaxInstance.options.responsiveThreshold;\n }\n }\n\n _setupEventHandlers() {\n this._img?.addEventListener('load', this._handleImageLoad);\n if (Parallax._parallaxes.length === 0) {\n if (!Parallax._handleWindowResizeThrottled) {\n Parallax._handleWindowResizeThrottled = Utils.throttle(Parallax._handleWindowResize, 100);\n }\n window.addEventListener('scroll', Parallax._requestScrollUpdate, { passive: true });\n window.addEventListener('resize', Parallax._handleWindowResizeThrottled, { passive: true });\n }\n }\n\n _removeEventHandlers() {\n this._img?.removeEventListener('load', this._handleImageLoad);\n if (Parallax._parallaxes.length === 0) {\n window.removeEventListener('scroll', Parallax._requestScrollUpdate);\n window.removeEventListener('resize', Parallax._handleWindowResizeThrottled);\n if (Parallax._scrollFrame !== null) {\n cancelAnimationFrame(Parallax._scrollFrame);\n Parallax._scrollFrame = null;\n }\n }\n }\n\n _setupStyles() {\n if (this._img) this._img.style.opacity = '1';\n }\n\n _handleImageLoad = () => {\n this._updateParallax();\n };\n\n _updateParallax() {\n // Runs for every parallax element on every scroll tick, so it reads\n // layout once: one rect for the element, reused for the height check and\n // both offsets.\n const rect = this.el.getBoundingClientRect();\n const containerHeight = rect.height > 0 ? this.el.parentElement.offsetHeight : 500;\n const imgHeight = this._img.offsetHeight;\n const parallaxDist = imgHeight - containerHeight;\n const top = rect.top + window.scrollY - document.documentElement.clientTop;\n const bottom = top + containerHeight;\n const scrollTop = Utils.getDocumentScrollTop();\n const windowHeight = window.innerHeight;\n const windowBottom = scrollTop + windowHeight;\n const percentScrolled = (windowBottom - top) / (containerHeight + windowHeight);\n const parallax = parallaxDist * percentScrolled;\n\n if (!this._enabled) {\n this._img.style.transform = '';\n } else if (bottom > scrollTop && top < scrollTop + windowHeight) {\n this._img.style.transform = `translate3D(-50%, ${parallax}px, 0)`;\n }\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface PushpinOptions extends BaseOptions {\n /**\n * The distance in pixels from the top of the page where\n * the element becomes fixed.\n * @default 0\n */\n top: number;\n /**\n * The distance in pixels from the top of the page where\n * the elements stops being fixed.\n * @default Infinity\n */\n bottom: number;\n /**\n * The offset from the top the element will be fixed at.\n * @default 0\n */\n offset: number;\n /**\n * Callback function called when pushpin position changes.\n * You are provided with a position string.\n * @default null\n */\n onPositionChange: (position: 'pinned' | 'pin-top' | 'pin-bottom') => void;\n}\n\nconst _defaults = {\n top: 0,\n bottom: Infinity,\n offset: 0,\n onPositionChange: null\n};\n\nexport class Pushpin extends Component<PushpinOptions> {\n static _pushpins: Pushpin[];\n originalOffset: number;\n\n constructor(el: HTMLElement, options: Partial<PushpinOptions>) {\n super(el, options, Pushpin);\n this.el['Expressive_Pushpin'] = this;\n\n this.options = {\n ...Pushpin.defaults,\n ...options\n };\n\n this.originalOffset = (this.el as HTMLElement).offsetTop;\n Pushpin._pushpins.push(this);\n this._setupEventHandlers();\n this._updatePosition();\n }\n\n static get defaults(): PushpinOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Pushpin.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<PushpinOptions>): Pushpin;\n /**\n * Initializes instances of Pushpin.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<PushpinOptions>): Pushpin[];\n /**\n * Initializes instances of Pushpin.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<PushpinOptions> = {}\n ): Pushpin | Pushpin[] {\n return super.init(els, options, Pushpin);\n }\n\n static getInstance(el: HTMLElement): Pushpin {\n return el['Expressive_Pushpin'];\n }\n\n destroy() {\n (this.el as HTMLElement).style.top = null;\n this._removePinClasses();\n // Remove pushpin Inst\n const index = Pushpin._pushpins.indexOf(this);\n Pushpin._pushpins.splice(index, 1);\n if (Pushpin._pushpins.length === 0) {\n this._removeEventHandlers();\n }\n this.el['Expressive_Pushpin'] = undefined;\n }\n\n static _updateElements() {\n for (let i = 0; i < Pushpin._pushpins.length; i++) {\n Pushpin._pushpins[i]._updatePosition();\n }\n }\n\n _setupEventHandlers() {\n document.addEventListener('scroll', Pushpin._updateElements, { passive: true });\n }\n\n _removeEventHandlers() {\n document.removeEventListener('scroll', Pushpin._updateElements);\n }\n\n _updatePosition() {\n const scrolled = Utils.getDocumentScrollTop() + this.options.offset;\n\n if (\n this.options.top <= scrolled &&\n this.options.bottom >= scrolled &&\n !this.el.classList.contains('pinned')\n ) {\n this._removePinClasses();\n (this.el as HTMLElement).style.top = `${this.options.offset}px`;\n this.el.classList.add('pinned');\n\n // onPositionChange callback\n if (typeof this.options.onPositionChange === 'function') {\n this.options.onPositionChange.call(this, 'pinned');\n }\n }\n\n // Add pin-top (when scrolled position is above top)\n if (scrolled < this.options.top && !this.el.classList.contains('pin-top')) {\n this._removePinClasses();\n (this.el as HTMLElement).style.top = '0';\n this.el.classList.add('pin-top');\n\n // onPositionChange callback\n if (typeof this.options.onPositionChange === 'function') {\n this.options.onPositionChange.call(this, 'pin-top');\n }\n }\n\n // Add pin-bottom (when scrolled position is below bottom)\n if (scrolled > this.options.bottom && !this.el.classList.contains('pin-bottom')) {\n this._removePinClasses();\n this.el.classList.add('pin-bottom');\n (this.el as HTMLElement).style.top = `${this.options.bottom - this.originalOffset}px`;\n\n // onPositionChange callback\n if (typeof this.options.onPositionChange === 'function') {\n this.options.onPositionChange.call(this, 'pin-bottom');\n }\n }\n }\n\n _removePinClasses() {\n this.el.classList.remove('pin-top', 'pinned', 'pin-bottom');\n }\n\n static {\n Pushpin._pushpins = [];\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface ScrollSpyOptions extends BaseOptions {\n /**\n * Throttle of scroll handler.\n * @default 100\n */\n throttle: number;\n /**\n * Offset for centering element when scrolled to.\n * @default 200\n */\n scrollOffset: number;\n /**\n * Class applied to active elements.\n * @default 'active'\n */\n activeClass: string;\n /**\n * Used to find active element.\n * @default id => 'a[href=\"#' + id + '\"]'\n */\n getActiveElement: (id: string) => string;\n /**\n * Used to keep last top element active even if\n * scrollbar goes outside of scrollspy elements.\n *\n * If there is no last top element,\n * then the active one will be the first element.\n *\n * @default false\n */\n keepTopElementActive: boolean;\n /**\n * Used to set scroll animation duration in milliseconds.\n * @default null (browser's native animation implementation/duration)\n */\n animationDuration: number | null;\n}\n\nconst _defaults: ScrollSpyOptions = {\n throttle: 100,\n scrollOffset: 200, // offset - 200 allows elements near bottom of page to scroll\n activeClass: 'active',\n getActiveElement: (id: string): string => {\n return 'a[href=\"#' + id + '\"]';\n },\n keepTopElementActive: false,\n animationDuration: null\n};\n\nexport class ScrollSpy extends Component<ScrollSpyOptions> {\n static _elements: ScrollSpy[];\n static _count: number;\n static _increment: number;\n static _elementsInView: ScrollSpy[];\n static _visibleElements: HTMLElement[];\n static _ticks: number;\n static _keptTopActiveElement: HTMLElement | null = null;\n // The document-level listeners are shared by every instance, so the\n // references they are registered with have to be shared too - registering\n // with one instance's bound handler and unregistering with another's is a\n // silent no-op that leaves the listener attached forever.\n private static _throttledScroll: (...args: unknown[]) => void = null;\n private static _throttledResize: (...args: unknown[]) => void = null;\n\n private tickId: number;\n private id: string;\n\n constructor(el: HTMLElement, options: Partial<ScrollSpyOptions>) {\n super(el, options, ScrollSpy);\n this.el['Expressive_ScrollSpy'] = this;\n\n this.options = {\n ...ScrollSpy.defaults,\n ...options\n };\n\n ScrollSpy._elements.push(this);\n ScrollSpy._count++;\n ScrollSpy._increment++;\n this.tickId = -1;\n this.id = ScrollSpy._increment.toString();\n this._setupEventHandlers();\n ScrollSpy._handleWindowScroll();\n }\n\n static get defaults(): ScrollSpyOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of ScrollSpy.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<ScrollSpyOptions>): ScrollSpy;\n /**\n * Initializes instances of ScrollSpy.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<ScrollSpyOptions>): ScrollSpy[];\n /**\n * Initializes instances of ScrollSpy.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<ScrollSpyOptions> = {}\n ): ScrollSpy | ScrollSpy[] {\n return super.init(els, options, ScrollSpy);\n }\n\n static getInstance(el: HTMLElement): ScrollSpy {\n return el['Expressive_ScrollSpy'];\n }\n\n destroy() {\n const elementIndex = ScrollSpy._elements.indexOf(this);\n if (elementIndex >= 0) ScrollSpy._elements.splice(elementIndex, 1);\n const inViewIndex = ScrollSpy._elementsInView.indexOf(this);\n if (inViewIndex >= 0) ScrollSpy._elementsInView.splice(inViewIndex, 1);\n const visibleIndex = ScrollSpy._visibleElements.indexOf(this.el);\n if (visibleIndex >= 0) ScrollSpy._visibleElements.splice(visibleIndex, 1);\n ScrollSpy._count--;\n this._removeEventHandlers();\n // Optional: the trigger may already be gone from the DOM, and throwing\n // here would abort the rest of the teardown.\n const actElem = document.querySelector(this.options.getActiveElement(this.el.id));\n actElem?.classList.remove(this.options.activeClass);\n this.el['Expressive_ScrollSpy'] = undefined;\n }\n\n _setupEventHandlers() {\n if (ScrollSpy._count === 1) {\n // Honour the documented `throttle` option - the scroll handler reads\n // layout for every spied element, so running it on every scroll event\n // was the single most expensive thing this component did.\n ScrollSpy._throttledScroll = Utils.throttle(ScrollSpy._handleWindowScroll, this.options.throttle);\n ScrollSpy._throttledResize = Utils.throttle(ScrollSpy._handleWindowScroll, 200);\n window.addEventListener('scroll', ScrollSpy._throttledScroll, { passive: true });\n window.addEventListener('resize', ScrollSpy._throttledResize, { passive: true });\n document.body.addEventListener('click', ScrollSpy._handleTriggerClick);\n }\n }\n\n _removeEventHandlers() {\n if (ScrollSpy._count === 0) {\n window.removeEventListener('scroll', ScrollSpy._throttledScroll);\n window.removeEventListener('resize', ScrollSpy._throttledResize);\n document.body.removeEventListener('click', ScrollSpy._handleTriggerClick);\n ScrollSpy._throttledScroll = null;\n ScrollSpy._throttledResize = null;\n }\n }\n\n static _handleTriggerClick = (e: MouseEvent) => {\n const trigger = e.target;\n for (let i = ScrollSpy._elements.length - 1; i >= 0; i--) {\n const scrollspy = ScrollSpy._elements[i];\n const x = document.querySelector('a[href=\"#' + scrollspy.el.id + '\"]');\n if (trigger === x) {\n e.preventDefault();\n\n if (scrollspy.el['Expressive_ScrollSpy'].options.animationDuration) {\n ScrollSpy._smoothScrollIntoView(\n scrollspy.el,\n scrollspy.el['Expressive_ScrollSpy'].options.animationDuration\n );\n } else {\n scrollspy.el.scrollIntoView({ behavior: 'smooth' });\n }\n break;\n }\n }\n };\n\n static _handleWindowScroll = () => {\n // unique tick id\n ScrollSpy._ticks++;\n\n // viewport rectangle\n const top = Utils.getDocumentScrollTop(),\n left = Utils.getDocumentScrollLeft(),\n right = left + window.innerWidth,\n bottom = top + window.innerHeight;\n\n // determine which elements are in view\n const intersections = ScrollSpy._findElements(top, right, bottom, left);\n for (let i = 0; i < intersections.length; i++) {\n const scrollspy = intersections[i];\n const lastTick = scrollspy.tickId;\n if (lastTick < 0) {\n // entered into view\n scrollspy._enter();\n }\n\n // update tick id\n scrollspy.tickId = ScrollSpy._ticks;\n }\n\n for (let i = 0; i < ScrollSpy._elementsInView.length; i++) {\n const scrollspy = ScrollSpy._elementsInView[i];\n const lastTick = scrollspy.tickId;\n if (lastTick >= 0 && lastTick !== ScrollSpy._ticks) {\n // exited from view\n scrollspy._exit();\n scrollspy.tickId = -1;\n }\n }\n // remember elements in view for next tick\n ScrollSpy._elementsInView = intersections;\n if (ScrollSpy._elements.length) {\n const options = ScrollSpy._elements[0].el['Expressive_ScrollSpy'].options;\n if (options.keepTopElementActive && ScrollSpy._visibleElements.length === 0) {\n ScrollSpy._resetKeptTopActiveElement(options.activeClass);\n // Measure once per element, then sort on the numbers. Reading the\n // distance inside the comparator meant O(n log n) forced layouts.\n const topElements = ScrollSpy._elements\n .map((value) => ({ value, distance: ScrollSpy._getDistanceToViewport(value.el) }))\n .filter((entry) => entry.distance <= 0)\n .sort((a, b) => a.distance - b.distance)\n .map((entry) => entry.value);\n const nearestTopElement = topElements.length\n ? topElements[topElements.length - 1]\n : ScrollSpy._elements[0];\n const actElem = document.querySelector(options.getActiveElement(nearestTopElement.el.id));\n actElem?.classList.add(options.activeClass);\n ScrollSpy._keptTopActiveElement = actElem as HTMLElement;\n }\n }\n };\n\n static _findElements(top: number, right: number, bottom: number, left: number): ScrollSpy[] {\n const hits = [];\n // Hoisted out of the loop: these are per-document, not per-element, and\n // reading them inside would force a layout flush on every iteration.\n const docElem = document.documentElement;\n const clientTop = docElem.clientTop;\n const clientLeft = docElem.clientLeft;\n const scrollY = window.scrollY;\n const scrollX = window.scrollX;\n\n for (let i = 0; i < ScrollSpy._elements.length; i++) {\n const scrollspy = ScrollSpy._elements[i];\n const currTop = top + scrollspy.options.scrollOffset || 200;\n\n // One rect per element per tick. This used to take five - a height\n // check, two _offset() calls that each built their own rect, and two\n // more reads for width and height - and it runs for every spied element\n // on every scroll tick.\n const box = scrollspy.el.getBoundingClientRect();\n if (box.height > 0) {\n const elTop = box.top + scrollY - clientTop,\n elLeft = box.left + scrollX - clientLeft,\n elRight = elLeft + box.width,\n elBottom = elTop + box.height;\n\n const isIntersect = !(\n elLeft > right ||\n elRight < left ||\n elTop > bottom ||\n elBottom < currTop\n );\n\n if (isIntersect) {\n hits.push(scrollspy);\n }\n }\n }\n return hits;\n }\n\n _enter() {\n ScrollSpy._visibleElements = ScrollSpy._visibleElements.filter(\n (value) => value.getBoundingClientRect().height !== 0\n );\n\n if (ScrollSpy._visibleElements[0]) {\n const actElem = document.querySelector(\n this.options.getActiveElement(ScrollSpy._visibleElements[0].id)\n );\n actElem?.classList.remove(this.options.activeClass);\n\n if (\n ScrollSpy._visibleElements[0]['Expressive_ScrollSpy'] &&\n this.id < ScrollSpy._visibleElements[0]['Expressive_ScrollSpy'].id\n ) {\n ScrollSpy._visibleElements.unshift(this.el);\n } else {\n ScrollSpy._visibleElements.push(this.el);\n }\n } else {\n ScrollSpy._visibleElements.push(this.el);\n }\n ScrollSpy._resetKeptTopActiveElement(this.options.activeClass);\n const selector = this.options.getActiveElement(ScrollSpy._visibleElements[0].id);\n document.querySelector(selector)?.classList.add(this.options.activeClass);\n }\n\n _exit() {\n ScrollSpy._visibleElements = ScrollSpy._visibleElements.filter(\n (value) => value.getBoundingClientRect().height !== 0\n );\n\n if (ScrollSpy._visibleElements[0]) {\n const actElem = document.querySelector(\n this.options.getActiveElement(ScrollSpy._visibleElements[0].id)\n );\n actElem?.classList.remove(this.options.activeClass);\n\n ScrollSpy._visibleElements = ScrollSpy._visibleElements.filter((x) => x.id != this.el.id);\n\n if (ScrollSpy._visibleElements[0]) {\n // Check if empty\n const selector = this.options.getActiveElement(ScrollSpy._visibleElements[0].id);\n document.querySelector(selector)?.classList.add(this.options.activeClass);\n ScrollSpy._resetKeptTopActiveElement(this.options.activeClass);\n }\n }\n }\n\n private static _resetKeptTopActiveElement(activeClass: string) {\n if (ScrollSpy._keptTopActiveElement) {\n ScrollSpy._keptTopActiveElement.classList.remove(activeClass);\n ScrollSpy._keptTopActiveElement = null;\n }\n }\n\n private static _getDistanceToViewport(element) {\n const rect = element.getBoundingClientRect();\n const distance = rect.top;\n return distance;\n }\n\n private static _smoothScrollIntoView(element, duration = 300) {\n const targetPosition =\n element.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n const startPosition = window.scrollY || window.pageYOffset;\n const distance = targetPosition - startPosition;\n const startTime = performance.now();\n\n function scrollStep(currentTime) {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n const scrollY = startPosition + distance * progress;\n\n if (progress < 1) {\n window.scrollTo(0, scrollY);\n requestAnimationFrame(scrollStep);\n } else {\n window.scrollTo(0, targetPosition);\n }\n }\n requestAnimationFrame(scrollStep);\n }\n\n static {\n ScrollSpy._elements = [];\n ScrollSpy._elementsInView = [];\n ScrollSpy._visibleElements = []; // Array.<cash>\n ScrollSpy._count = 0;\n ScrollSpy._increment = 0;\n ScrollSpy._ticks = 0;\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement, Openable } from '../core/component';\n\nexport interface SidenavOptions extends BaseOptions {\n /**\n * Side of screen on which Sidenav appears.\n * @default 'left'\n */\n edge: 'left' | 'right';\n /**\n * Allow swipe gestures to open/close Sidenav.\n * @default true\n */\n draggable: boolean;\n /**\n * Width of the area where you can start dragging.\n * @default '10px'\n */\n dragTargetWidth: string;\n /**\n * Length in ms of enter transition.\n * @default 250\n */\n inDuration: number;\n /**\n * Length in ms of exit transition.\n * @default 200\n */\n outDuration: number;\n /**\n * Prevent page from scrolling while sidenav is open.\n * @default true\n */\n preventScrolling: boolean;\n /**\n * Function called when sidenav starts entering.\n */\n onOpenStart: (elem: HTMLElement) => void;\n /**\n * Function called when sidenav finishes entering.\n */\n onOpenEnd: (elem: HTMLElement) => void;\n /**\n * Function called when sidenav starts exiting.\n */\n onCloseStart: (elem: HTMLElement) => void;\n /**\n * Function called when sidenav finishes exiting.\n */\n onCloseEnd: (elem: HTMLElement) => void;\n}\n\nconst _defaults: SidenavOptions = {\n edge: 'left',\n draggable: true,\n dragTargetWidth: '10px',\n inDuration: 250,\n outDuration: 200,\n onOpenStart: null,\n onOpenEnd: null,\n onCloseStart: null,\n onCloseEnd: null,\n preventScrolling: true\n};\n\nexport class Sidenav extends Component<SidenavOptions> implements Openable {\n id: string;\n /** Describes open/close state of Sidenav. */\n isOpen: boolean;\n /** Describes if sidenav is fixed. */\n isFixed: boolean;\n /** Describes if Sidenav is being dragged. */\n isDragged: boolean;\n lastWindowWidth: number;\n lastWindowHeight: number;\n static _sidenavs: Sidenav[];\n private _overlay: HTMLElement;\n dragTarget: Element;\n private _startingXpos: number;\n private _xPos: number;\n private _time: number;\n private _width: number;\n private _initialScrollTop: number;\n private _verticallyScrolling: boolean;\n private deltaX: number;\n private velocityX: number;\n private percentOpen: number;\n\n constructor(el: HTMLElement, options: Partial<SidenavOptions>) {\n super(el, options, Sidenav);\n this.el['Expressive_Sidenav'] = this;\n\n this.options = {\n ...Sidenav.defaults,\n ...options\n };\n\n this.id = this.el.id;\n this.isOpen = false;\n this.isFixed = this.el.classList.contains('sidenav-fixed');\n this.isDragged = false;\n // Window size variables for window resize checks\n this.lastWindowWidth = window.innerWidth;\n this.lastWindowHeight = window.innerHeight;\n this._createOverlay();\n this._createDragTarget();\n this._setupEventHandlers();\n this._setupClasses();\n this._setupFixed();\n Sidenav._sidenavs.push(this);\n }\n\n static get defaults(): SidenavOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Sidenav.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<SidenavOptions>): Sidenav;\n /**\n * Initializes instances of Sidenav.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<SidenavOptions>): Sidenav[];\n /**\n * Initializes instances of Sidenav.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<SidenavOptions> = {}\n ): Sidenav | Sidenav[] {\n return super.init(els, options, Sidenav);\n }\n\n static getInstance(el: HTMLElement): Sidenav {\n return el['Expressive_Sidenav'];\n }\n\n destroy() {\n this._removeEventHandlers();\n this._enableBodyScrolling();\n this._overlay.parentNode.removeChild(this._overlay);\n this.dragTarget.parentNode.removeChild(this.dragTarget);\n this.el['Expressive_Sidenav'] = undefined;\n this.el.style.transform = '';\n const index = Sidenav._sidenavs.indexOf(this);\n if (index >= 0) {\n Sidenav._sidenavs.splice(index, 1);\n }\n }\n\n private _createOverlay() {\n this._overlay = document.createElement('div');\n this._overlay.classList.add('sidenav-overlay');\n this._overlay.addEventListener('click', this.close);\n document.body.appendChild(this._overlay);\n }\n\n private _setupEventHandlers() {\n if (Sidenav._sidenavs.length === 0) {\n document.body.addEventListener('click', this._handleTriggerClick);\n }\n // The drag handlers only set transforms and opacity - none of them calls\n // preventDefault - so they can be passive and stay off the scroll path.\n const passive = { passive: true } as const;\n this.dragTarget.addEventListener('touchmove', this._handleDragTargetDrag, passive);\n this.dragTarget.addEventListener('touchend', this._handleDragTargetRelease);\n this._overlay.addEventListener('touchmove', this._handleCloseDrag, passive);\n this._overlay.addEventListener('touchend', this._handleCloseRelease);\n this.el.addEventListener('touchmove', this._handleCloseDrag, passive);\n this.el.addEventListener('touchend', this._handleCloseRelease);\n this.el.addEventListener('click', this._handleCloseTriggerClick);\n // Add resize for side nav fixed\n if (this.isFixed) {\n window.addEventListener('resize', this._handleWindowResize, passive);\n }\n /* Set aria-hidden state */\n this._setAriaHidden();\n this._setTabIndex();\n }\n\n private _removeEventHandlers() {\n if (Sidenav._sidenavs.length === 1) {\n document.body.removeEventListener('click', this._handleTriggerClick);\n }\n this.dragTarget.removeEventListener('touchmove', this._handleDragTargetDrag);\n this.dragTarget.removeEventListener('touchend', this._handleDragTargetRelease);\n this._overlay.removeEventListener('touchmove', this._handleCloseDrag);\n this._overlay.removeEventListener('touchend', this._handleCloseRelease);\n this.el.removeEventListener('touchmove', this._handleCloseDrag);\n this.el.removeEventListener('touchend', this._handleCloseRelease);\n this.el.removeEventListener('click', this._handleCloseTriggerClick);\n\n // Remove resize for side nav fixed\n if (this.isFixed) {\n window.removeEventListener('resize', this._handleWindowResize);\n }\n }\n\n private _handleTriggerClick(e) {\n const trigger = e.target.closest('.sidenav-trigger');\n if (e.target && trigger) {\n const sidenavId = Utils.getIdFromTrigger(trigger);\n // The trigger can name an id that is not in the document.\n const sidenavInstance = document.getElementById(sidenavId)?.['Expressive_Sidenav'];\n if (sidenavInstance) {\n sidenavInstance.open();\n }\n e.preventDefault();\n }\n }\n\n // Set variables needed at the beginning of drag and stop any current transition.\n private _startDrag(e) {\n const clientX = e.targetTouches[0].clientX;\n this.isDragged = true;\n this._startingXpos = clientX;\n this._xPos = this._startingXpos;\n this._time = Date.now();\n this._width = this.el.getBoundingClientRect().width;\n this._overlay.style.display = 'block';\n this._initialScrollTop = this.isOpen ? this.el.scrollTop : Utils.getDocumentScrollTop();\n this._verticallyScrolling = false;\n }\n\n //Set variables needed at each drag move update tick\n private _dragMoveUpdate(e) {\n const clientX = e.targetTouches[0].clientX;\n const currentScrollTop = this.isOpen ? this.el.scrollTop : Utils.getDocumentScrollTop();\n this.deltaX = Math.abs(this._xPos - clientX);\n this._xPos = clientX;\n this.velocityX = this.deltaX / (Date.now() - this._time);\n this._time = Date.now();\n if (this._initialScrollTop !== currentScrollTop) {\n this._verticallyScrolling = true;\n }\n }\n\n private _handleDragTargetDrag = (e) => {\n // Check if draggable\n if (!this._isDraggable()) return;\n let totalDeltaX = this._calculateDelta(e);\n const dragDirection = totalDeltaX > 0 ? 'right' : 'left';\n // Don't allow totalDeltaX to exceed Sidenav width or be dragged in the opposite direction\n totalDeltaX = Math.min(this._width, Math.abs(totalDeltaX));\n if (this.options.edge === dragDirection) {\n totalDeltaX = 0;\n }\n /**\n * transformX is the drag displacement\n * transformPrefix is the initial transform placement\n * Invert values if Sidenav is right edge\n */\n let transformX = totalDeltaX;\n let transformPrefix = 'translateX(-100%)';\n if (this.options.edge === 'right') {\n transformPrefix = 'translateX(100%)';\n transformX = -transformX;\n }\n // Calculate open/close percentage of sidenav, with open = 1 and close = 0\n this.percentOpen = Math.min(1, totalDeltaX / this._width);\n // Set transform and opacity styles\n this.el.style.transform = `${transformPrefix} translateX(${transformX}px)`;\n this._overlay.style.opacity = this.percentOpen.toString();\n };\n\n private _handleDragTargetRelease = () => {\n if (this.isDragged) {\n if (this.percentOpen > 0.2) {\n this.open();\n } else {\n this._animateOut();\n }\n this.isDragged = false;\n this._verticallyScrolling = false;\n }\n };\n\n private _handleCloseDrag = (e) => {\n // Check if open and draggable\n if (!this.isOpen || !this._isDraggable()) return;\n let totalDeltaX = this._calculateDelta(e);\n // dragDirection is the attempted user drag direction\n const dragDirection = totalDeltaX > 0 ? 'right' : 'left';\n totalDeltaX = Math.min(this._width, Math.abs(totalDeltaX));\n if (this.options.edge !== dragDirection) {\n totalDeltaX = 0;\n }\n let transformX = -totalDeltaX;\n if (this.options.edge === 'right') {\n transformX = -transformX;\n }\n // Calculate open/close percentage of sidenav, with open = 1 and close = 0\n this.percentOpen = Math.min(1, 1 - totalDeltaX / this._width);\n // Set transform and opacity styles\n this.el.style.transform = `translateX(${transformX}px)`;\n this._overlay.style.opacity = this.percentOpen.toString();\n };\n\n private _calculateDelta = (e) => {\n // If not being dragged, set initial drag start variables\n if (!this.isDragged) {\n this._startDrag(e);\n }\n // Run touchmove updates\n this._dragMoveUpdate(e);\n // Calculate raw deltaX\n return this._xPos - this._startingXpos;\n };\n\n private _handleCloseRelease = () => {\n if (this.isOpen && this.isDragged) {\n if (this.percentOpen > 0.8) {\n this._animateIn();\n } else {\n this.close();\n }\n this.isDragged = false;\n this._verticallyScrolling = false;\n }\n };\n\n // Handles closing of Sidenav when element with class .sidenav-close\n private _handleCloseTriggerClick = (e) => {\n const closeTrigger = e.target.closest('.sidenav-close');\n if (closeTrigger && !this._isCurrentlyFixed()) {\n this.close();\n }\n };\n\n private _handleWindowResize = () => {\n // Only handle horizontal resizes\n if (this.lastWindowWidth !== window.innerWidth) {\n if (window.innerWidth > 992) {\n this.open();\n } else {\n this.close();\n }\n }\n this.lastWindowWidth = window.innerWidth;\n this.lastWindowHeight = window.innerHeight;\n };\n\n private _setupClasses() {\n if (this.options.edge === 'right') {\n this.el.classList.add('right-aligned');\n this.dragTarget.classList.add('right-aligned');\n }\n }\n\n private _removeClasses() {\n this.el.classList.remove('right-aligned');\n this.dragTarget.classList.remove('right-aligned');\n }\n\n private _setupFixed() {\n if (this._isCurrentlyFixed()) this.open();\n }\n\n private _isDraggable() {\n return this.options.draggable && !this._isCurrentlyFixed() && !this._verticallyScrolling;\n }\n\n private _isCurrentlyFixed() {\n return this.isFixed && window.innerWidth > 992;\n }\n\n private _createDragTarget() {\n const dragTarget = document.createElement('div');\n dragTarget.classList.add('drag-target');\n dragTarget.style.width = this.options.dragTargetWidth;\n document.body.appendChild(dragTarget);\n this.dragTarget = dragTarget;\n }\n\n private _preventBodyScrolling() {\n document.body.style.overflow = 'hidden';\n }\n\n private _enableBodyScrolling() {\n document.body.style.overflow = '';\n }\n\n /**\n * Opens Sidenav.\n */\n open = () => {\n if (this.isOpen === true) return;\n this.isOpen = true;\n // Run onOpenStart callback\n if (typeof this.options.onOpenStart === 'function') {\n this.options.onOpenStart.call(this, this.el);\n }\n // Handle fixed Sidenav\n if (this._isCurrentlyFixed()) {\n // Show if fixed\n this.el.style.transform = 'translateX(0)';\n this._enableBodyScrolling();\n this._overlay.style.display = 'none';\n }\n // Handle non-fixed Sidenav\n else {\n if (this.options.preventScrolling) this._preventBodyScrolling();\n if (!this.isDragged || this.percentOpen != 1) this._animateIn();\n /* Set aria-hidden state */\n this._setAriaHidden();\n this._setTabIndex();\n }\n };\n\n /**\n * Closes Sidenav.\n */\n close = () => {\n if (this.isOpen === false) return;\n this.isOpen = false;\n // Run onCloseStart callback\n if (typeof this.options.onCloseStart === 'function') {\n this.options.onCloseStart.call(this, this.el);\n }\n // Handle fixed Sidenav\n if (this._isCurrentlyFixed()) {\n const transformX = this.options.edge === 'left' ? '-105%' : '105%';\n this.el.style.transform = `translateX(${transformX})`;\n }\n // Handle non-fixed Sidenav\n else {\n this._enableBodyScrolling();\n if (!this.isDragged || this.percentOpen != 0) {\n this._animateOut();\n } else {\n this._overlay.style.display = 'none';\n }\n /* Set aria-hidden state */\n this._setAriaHidden();\n this._setTabIndex();\n }\n };\n\n private _animateIn() {\n this._animateSidenavIn();\n this._animateOverlayIn();\n }\n\n private _animateOut() {\n this._animateSidenavOut();\n this._animateOverlayOut();\n }\n\n private _animateSidenavIn() {\n let slideOutPercent = this.options.edge === 'left' ? -1 : 1;\n if (this.isDragged) {\n slideOutPercent =\n this.options.edge === 'left'\n ? slideOutPercent + this.percentOpen\n : slideOutPercent - this.percentOpen;\n }\n const duration = this.options.inDuration;\n // from\n this.el.style.transition = 'none';\n this.el.style.transform = 'translateX(' + slideOutPercent * 100 + '%)';\n setTimeout(() => {\n this.el.style.transition = `transform ${duration}ms ease`; // easeOutQuad\n // to\n this.el.style.transform = 'translateX(0)';\n }, 1);\n setTimeout(() => {\n if (typeof this.options.onOpenEnd === 'function') this.options.onOpenEnd.call(this, this.el);\n }, duration);\n }\n\n private _animateSidenavOut() {\n const endPercent = this.options.edge === 'left' ? -1 : 1;\n // let slideOutPercent = 0;\n // if (this.isDragged) {\n // // @todo unused variable\n // slideOutPercent =\n // this.options.edge === 'left'\n // ? endPercent + this.percentOpen\n // : endPercent - this.percentOpen;\n // }\n\n const duration = this.options.outDuration;\n this.el.style.transition = `transform ${duration}ms ease`; // easeOutQuad\n // to\n this.el.style.transform = 'translateX(' + endPercent * 100 + '%)';\n setTimeout(() => {\n if (typeof this.options.onCloseEnd === 'function')\n this.options.onCloseEnd.call(this, this.el);\n }, duration);\n }\n\n private _animateOverlayIn() {\n let start = 0;\n if (this.isDragged) start = this.percentOpen;\n else this._overlay.style.display = 'block';\n // Animation\n const duration = this.options.inDuration;\n // from\n this._overlay.style.transition = 'none';\n this._overlay.style.opacity = start.toString();\n // easeOutQuad\n setTimeout(() => {\n this._overlay.style.transition = `opacity ${duration}ms ease`;\n // to\n this._overlay.style.opacity = '1';\n }, 1);\n }\n\n private _animateOverlayOut() {\n const duration = this.options.outDuration;\n // easeOutQuad\n this._overlay.style.transition = `opacity ${duration}ms ease`;\n // to\n this._overlay.style.opacity = '0';\n setTimeout(() => {\n this._overlay.style.display = 'none';\n }, duration);\n }\n\n private _setAriaHidden = () => {\n this.el.ariaHidden = this.isOpen ? 'false' : 'true';\n const navWrapper = document.querySelector('.nav-wrapper ul') as HTMLUListElement;\n if (navWrapper) navWrapper.ariaHidden = this.isOpen.toString();\n };\n\n private _setTabIndex = () => {\n const navLinks = document.querySelectorAll('.nav-wrapper ul li a');\n const sideNavLinks = document.querySelectorAll('.sidenav li a');\n if (navLinks)\n navLinks.forEach((navLink: HTMLAnchorElement) => {\n navLink.tabIndex = this.isOpen ? -1 : 0;\n });\n if (sideNavLinks)\n sideNavLinks.forEach((sideNavLink: HTMLAnchorElement) => {\n sideNavLink.tabIndex = this.isOpen ? 0 : -1;\n });\n };\n\n static {\n Sidenav._sidenavs = [];\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface SliderOptions extends BaseOptions {\n /**\n * Set to false to hide slide indicators.\n * @default true\n */\n indicators: boolean;\n /**\n * Set height of slider.\n * @default 400\n */\n height: number;\n /**\n * Set the duration of the transition animation in ms.\n * @default 500\n */\n duration: number;\n /**\n * Set the duration between transitions in ms.\n * @default 6000\n */\n interval: number;\n /**\n * If slider should pause when keyboard focus is received.\n * @default true\n */\n pauseOnFocus: boolean;\n /**\n * If slider should pause when is hovered by a pointer.\n * @default true\n */\n pauseOnHover: boolean;\n /**\n * Optional function used to generate ARIA label to indicators (for accessibility purposes).\n * @param index Current index, starting from \"1\".\n * @param current A which indicates whether it is the current element or not\n * @returns a string to be used as label indicator.\n * @default null\n */\n indicatorLabelFunc: (index: number, current: boolean) => string;\n}\n\nconst _defaults: SliderOptions = {\n indicators: true,\n height: 400,\n duration: 500,\n interval: 6000,\n pauseOnFocus: true,\n pauseOnHover: true,\n indicatorLabelFunc: null // Function which will generate a label for the indicators (ARIA)\n};\n\nexport class Slider extends Component<SliderOptions> {\n /** Index of current slide. */\n activeIndex: number;\n interval: ReturnType<typeof setTimeout>;\n eventPause: boolean;\n _slider: HTMLUListElement;\n _slides: HTMLLIElement[];\n _activeSlide: HTMLLIElement;\n _indicators: HTMLLIElement[];\n _hovered: boolean;\n _focused: boolean;\n _focusCurrent: boolean;\n _sliderId: string;\n\n constructor(el: HTMLElement, options: Partial<SliderOptions>) {\n super(el, options, Slider);\n this.el['Expressive_Slider'] = this;\n\n this.options = {\n ...Slider.defaults,\n ...options\n };\n\n // init props\n this.interval = null;\n this.eventPause = false;\n this._hovered = false;\n this._focused = false;\n this._focusCurrent = false;\n\n // setup\n this._slider = this.el.querySelector('.slides');\n this._slides = Array.from(this._slider.querySelectorAll('li'));\n this.activeIndex = this._slides.findIndex((li) => li.classList.contains('active'));\n\n if (this.activeIndex !== -1) {\n this._activeSlide = this._slides[this.activeIndex];\n }\n\n this._setSliderHeight();\n\n // Sets element id if it does not have one\n if (this._slider.hasAttribute('id')) this._sliderId = this._slider.getAttribute('id');\n else {\n this._sliderId = 'slider-' + Utils.guid();\n this._slider.setAttribute('id', this._sliderId);\n }\n\n const placeholderBase64 =\n 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n // Set initial positions of captions\n this._slides.forEach((slide) => {\n // Caption\n //const caption = <HTMLElement|null>slide.querySelector('.caption');\n //if (caption) this._animateCaptionIn(caption, 0);\n // Set Images as Background Images\n const img = slide.querySelector('img');\n if (img) {\n if (img.src !== placeholderBase64) {\n img.style.backgroundImage = 'url(' + img.src + ')';\n img.src = placeholderBase64;\n }\n }\n // Sets slide as focusable by code\n if (!slide.hasAttribute('tabindex')) slide.setAttribute('tabindex', '-1');\n // Removes initial visibility from \"inactive\" slides\n slide.style.visibility = 'hidden';\n });\n\n this._setupIndicators();\n\n // Show active slide\n if (this._activeSlide) {\n this._activeSlide.style.display = 'block';\n this._activeSlide.style.visibility = 'visible';\n } else {\n this.activeIndex = 0;\n this._slides[0].classList.add('active');\n this._slides[0].style.visibility = 'visible';\n this._activeSlide = this._slides[0];\n this._animateSlide(this._slides[0], true);\n // Update indicators\n if (this.options.indicators) {\n this._indicators[this.activeIndex].children[0].classList.add('active');\n }\n }\n this._setupEventHandlers();\n // auto scroll\n this.start();\n }\n\n static get defaults() {\n return _defaults;\n }\n\n /**\n * Initializes instance of Slider.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<SliderOptions>): Slider;\n /**\n * Initializes instances of Slider.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<SliderOptions>): Slider[];\n /**\n * Initializes instances of Slider.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<SliderOptions> = {}\n ): Slider | Slider[] {\n return super.init(els, options, Slider);\n }\n\n static getInstance(el: HTMLElement): Slider {\n return el['Expressive_Slider'];\n }\n\n destroy() {\n this.pause();\n this._removeIndicators();\n this._removeEventHandlers();\n this.el['Expressive_Slider'] = undefined;\n }\n\n private _setupEventHandlers() {\n if (this.options.pauseOnFocus) {\n this.el.addEventListener('focusin', this._handleAutoPauseFocus);\n this.el.addEventListener('focusout', this._handleAutoStartFocus);\n }\n if (this.options.pauseOnHover) {\n this.el.addEventListener('mouseenter', this._handleAutoPauseHover);\n this.el.addEventListener('mouseleave', this._handleAutoStartHover);\n }\n if (this.options.indicators) {\n this._indicators.forEach((el) => {\n el.addEventListener('click', this._handleIndicatorClick);\n });\n }\n document.addEventListener('visibilitychange', this._handleVisibilityChange);\n }\n\n private _removeEventHandlers() {\n if (this.options.pauseOnFocus) {\n this.el.removeEventListener('focusin', this._handleAutoPauseFocus);\n this.el.removeEventListener('focusout', this._handleAutoStartFocus);\n }\n if (this.options.pauseOnHover) {\n this.el.removeEventListener('mouseenter', this._handleAutoPauseHover);\n this.el.removeEventListener('mouseleave', this._handleAutoStartHover);\n }\n if (this.options.indicators) {\n this._indicators.forEach((el) => {\n el.removeEventListener('click', this._handleIndicatorClick);\n });\n }\n document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n }\n\n // Nobody is watching a backgrounded tab. Browsers clamp the timer rather\n // than stopping it, so without this the slider keeps cycling slides - and\n // running their transitions - out of sight.\n private _handleVisibilityChange = () => {\n if (document.hidden) {\n if (this.interval != null) this._pause(true);\n } else if (\n this.eventPause &&\n !(this.options.pauseOnHover && this._hovered) &&\n !(this.options.pauseOnFocus && this._focused)\n ) {\n this.start();\n }\n };\n\n private _handleIndicatorClick = (e: MouseEvent) => {\n const el = (<HTMLElement>e.target).parentElement;\n const currIndex = [...el.parentNode.children].indexOf(el);\n this._focusCurrent = true;\n this.set(currIndex);\n };\n\n private _handleAutoPauseHover = () => {\n this._hovered = true;\n if (this.interval != null) {\n this._pause(true);\n }\n };\n\n private _handleAutoPauseFocus = () => {\n this._focused = true;\n if (this.interval != null) {\n this._pause(true);\n }\n };\n\n private _handleAutoStartHover = () => {\n this._hovered = false;\n if (!(this.options.pauseOnFocus && this._focused) && this.eventPause) {\n this.start();\n }\n };\n\n private _handleAutoStartFocus = () => {\n this._focused = false;\n if (!(this.options.pauseOnHover && this._hovered) && this.eventPause) {\n this.start();\n }\n };\n\n private _handleInterval = () => {\n const activeElem = this._slider.querySelector('.active');\n let newActiveIndex = [...activeElem.parentNode.children].indexOf(activeElem);\n if (this._slides.length === newActiveIndex + 1)\n newActiveIndex = 0; // loop to start\n else newActiveIndex += 1;\n this.set(newActiveIndex);\n };\n\n private _animateSlide(slide: HTMLElement, isDirectionIn: boolean): void {\n let dx = 0,\n dy = 0;\n // from\n slide.style.opacity = isDirectionIn ? '0' : '1';\n setTimeout(() => {\n slide.style.transition = `opacity ${this.options.duration}ms ease`;\n // to\n slide.style.opacity = isDirectionIn ? '1' : '0';\n }, 1);\n // Caption\n const caption: HTMLElement = slide.querySelector('.caption');\n if (!caption) return;\n if (caption.classList.contains('center-align')) dy = -100;\n else if (caption.classList.contains('right-align')) dx = 100;\n else if (caption.classList.contains('left-align')) dx = -100;\n // from\n caption.style.opacity = isDirectionIn ? '0' : '1';\n caption.style.transform = isDirectionIn ? `translate(${dx}px, ${dy}px)` : `translate(0, 0)`;\n setTimeout(() => {\n caption.style.transition = `opacity ${this.options.duration}ms ease, transform ${this.options.duration}ms ease`;\n // to\n caption.style.opacity = isDirectionIn ? '1' : '0';\n caption.style.transform = isDirectionIn ? `translate(0, 0)` : `translate(${dx}px, ${dy}px)`;\n }, this.options.duration); // delay\n }\n\n private _setSliderHeight() {\n // If fullscreen, do nothing\n if (!this.el.classList.contains('fullscreen')) {\n if (this.options.indicators) {\n // Add height if indicators are present\n this.el.style.height = this.options.height + 40 + 'px'; //.css('height', this.options.height + 40 + 'px');\n } else {\n this.el.style.height = this.options.height + 'px';\n }\n this._slider.style.height = this.options.height + 'px';\n }\n }\n\n private _setupIndicators() {\n if (this.options.indicators) {\n const ul = document.createElement('ul');\n ul.classList.add('indicators');\n\n const arrLi = [];\n this._slides.forEach((el, i) => {\n const label = this.options.indicatorLabelFunc\n ? this.options.indicatorLabelFunc.call(this, i + 1, i === 0)\n : `${i + 1}`;\n const li = document.createElement('li');\n li.classList.add('indicator-item');\n // setAttribute, not an interpolated attribute in markup: the label\n // comes from indicatorLabelFunc and a quote in it would break out.\n const button = document.createElement('button');\n button.type = 'button';\n button.classList.add('indicator-item-btn');\n button.setAttribute('aria-label', label);\n button.setAttribute('aria-controls', this._sliderId);\n li.appendChild(button);\n arrLi.push(li);\n ul.append(li);\n });\n\n this.el.append(ul);\n this._indicators = arrLi;\n }\n }\n\n private _removeIndicators() {\n this.el.querySelector('ul.indicators').remove(); //find('ul.indicators').remove();\n }\n\n set(index: number) {\n // Wrap around indices.\n if (index >= this._slides.length) index = 0;\n else if (index < 0) index = this._slides.length - 1;\n\n // Only do if index changes\n if (this.activeIndex === index) return;\n\n this._activeSlide = this._slides[this.activeIndex];\n const _caption = <HTMLElement | null>this._activeSlide.querySelector('.caption');\n\n this._activeSlide.classList.remove('active');\n // Enables every slide\n this._slides.forEach((slide) => (slide.style.visibility = 'visible'));\n\n //--- Hide active Slide + Caption\n this._activeSlide.style.opacity = '0';\n setTimeout(() => {\n this._slides.forEach((slide) => {\n if (slide.classList.contains('active')) return;\n slide.style.opacity = '0';\n slide.style.transform = 'translate(0, 0)';\n // Disables invisible slides (for assistive technologies)\n slide.style.visibility = 'hidden';\n });\n }, this.options.duration);\n\n // Hide active Caption - a slide is not required to have one.\n //this._animateCaptionIn(_caption, this.options.duration);\n if (_caption) _caption.style.opacity = '0';\n\n // Update indicators\n if (this.options.indicators) {\n const activeIndicator = this._indicators[this.activeIndex].children[0];\n const nextIndicator = this._indicators[index].children[0];\n activeIndicator.classList.remove('active');\n nextIndicator.classList.add('active');\n if (typeof this.options.indicatorLabelFunc === 'function') {\n activeIndicator.ariaLabel = this.options.indicatorLabelFunc.call(\n this,\n this.activeIndex,\n false\n );\n nextIndicator.ariaLabel = this.options.indicatorLabelFunc.call(this, index, true);\n }\n }\n\n //--- Show new Slide + Caption\n this._animateSlide(this._slides[index], true);\n this._slides[index].classList.add('active');\n this.activeIndex = index;\n\n // Reset interval, if allowed. This check prevents autostart\n // when slider is paused, since it can be changed though indicators.\n if (this.interval != null) {\n this.start();\n }\n }\n\n _pause(fromEvent: boolean) {\n clearInterval(this.interval);\n this.eventPause = fromEvent;\n this.interval = null;\n }\n\n /**\n * Pause slider autoslide.\n */\n pause = () => {\n this._pause(false);\n };\n\n /**\n * Start slider autoslide.\n */\n start = () => {\n clearInterval(this.interval);\n this.interval = setInterval(\n this._handleInterval,\n this.options.duration + this.options.interval\n );\n this.eventPause = false;\n };\n\n /**\n * Move to next slider.\n */\n next = () => {\n let newIndex = this.activeIndex + 1;\n // Wrap around indices.\n if (newIndex >= this._slides.length) newIndex = 0;\n else if (newIndex < 0) newIndex = this._slides.length - 1;\n this.set(newIndex);\n };\n\n /**\n * Move to prev slider.\n */\n prev = () => {\n let newIndex = this.activeIndex - 1;\n // Wrap around indices.\n if (newIndex >= this._slides.length) newIndex = 0;\n else if (newIndex < 0) newIndex = this._slides.length - 1;\n this.set(newIndex);\n };\n}\n", "import { Carousel } from './carousel';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport interface TabsOptions extends BaseOptions {\n /**\n * Transition duration in milliseconds.\n * @default 300\n */\n duration: number;\n /**\n * Callback for when a new tab content is shown.\n * @default null\n */\n onShow: (newContent: Element) => void;\n /**\n * Set to true to enable swipeable tabs.\n * This also uses the responsiveThreshold option.\n * @default false\n */\n swipeable: boolean;\n /**\n * The maximum width of the screen, in pixels,\n * where the swipeable functionality initializes.\n * @default infinity\n */\n responsiveThreshold: number;\n}\n\nconst _defaults: TabsOptions = {\n duration: 300,\n onShow: null,\n swipeable: false,\n responsiveThreshold: Infinity // breakpoint for swipeable\n};\n\nexport class Tabs extends Component<TabsOptions> {\n _tabLinks: NodeListOf<HTMLAnchorElement>;\n _index: number;\n _indicator: HTMLElement;\n _tabWidth: number;\n _tabsWidth: number;\n _tabsCarousel: Carousel;\n _activeTabLink: HTMLAnchorElement;\n _content: HTMLElement;\n\n constructor(el: HTMLElement, options: Partial<TabsOptions>) {\n super(el, options, Tabs);\n this.el['Expressive_Tabs'] = this;\n\n this.options = {\n ...Tabs.defaults,\n ...options\n };\n\n this._tabLinks = this._queryTabLinks();\n this._index = 0;\n this._setupActiveTabLink();\n if (this.options.swipeable) {\n this._setupSwipeableTabs();\n } else {\n this._setupNormalTabs();\n }\n // Setup tabs indicator after content to ensure accurate widths\n this._setTabsAndTabWidth();\n this._createIndicator();\n this._setupEventHandlers();\n }\n\n static get defaults(): TabsOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Tabs.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<TabsOptions>): Tabs;\n /**\n * Initializes instances of Tabs.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<TabsOptions>): Tabs[];\n /**\n * Initializes instances of Tabs.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<TabsOptions> = {}\n ): Tabs | Tabs[] {\n return super.init(els, options, Tabs);\n }\n\n static getInstance(el: HTMLElement): Tabs {\n return el['Expressive_Tabs'];\n }\n\n destroy() {\n this._removeEventHandlers();\n this._indicator.parentNode.removeChild(this._indicator);\n if (this.options.swipeable) {\n this._teardownSwipeableTabs();\n } else {\n this._teardownNormalTabs();\n }\n this.el['Expressive_Tabs'] = undefined;\n }\n\n /**\n * The index of tab that is currently shown.\n */\n get index() {\n return this._index;\n }\n\n _setupEventHandlers() {\n window.addEventListener('resize', this._handleWindowResize);\n this.el.addEventListener('click', this._handleTabClick);\n }\n\n _removeEventHandlers() {\n window.removeEventListener('resize', this._handleWindowResize);\n this.el.removeEventListener('click', this._handleTabClick);\n }\n\n _handleWindowResize = () => {\n this._setTabsAndTabWidth();\n if (this._tabWidth !== 0 && this._tabsWidth !== 0) {\n this._indicator.style.left = this._calcLeftPos(this._activeTabLink) + 'px';\n this._indicator.style.right = this._calcRightPos(this._activeTabLink) + 'px';\n }\n };\n\n _queryTabLinks() {\n return this.el.querySelectorAll<HTMLAnchorElement>(\n ':scope > a, :scope > .tab > a, :scope > li.tab > a'\n );\n }\n\n _handleTabClick = (e: MouseEvent) => {\n const target = e.target as Element | null;\n if (!target) return;\n const tabLink = target.closest('a') as HTMLAnchorElement | null;\n if (!tabLink || !Array.from(this._tabLinks).includes(tabLink)) return;\n\n const tab = tabLink.parentElement;\n const disabled =\n tabLink.classList.contains('disabled') ||\n tabLink.getAttribute('aria-disabled') === 'true' ||\n tab?.classList.contains('disabled');\n if (disabled) {\n e.preventDefault();\n return;\n }\n // Act as regular link if target attribute is specified.\n if (tabLink.hasAttribute('target')) return;\n // Make the old tab inactive.\n this._activeTabLink.classList.remove('active');\n const _oldContent = this._content;\n // Update the variables with the new link and content\n\n this._activeTabLink = tabLink;\n if (tabLink.hash) this._content = document.querySelector(tabLink.hash);\n this._tabLinks = this._queryTabLinks();\n // Make the tab active\n this._activeTabLink.classList.add('active');\n const prevIndex = this._index;\n this._index = Math.max(Array.from(this._tabLinks).indexOf(tabLink), 0);\n\n // Swap content\n if (this.options.swipeable) {\n if (this._tabsCarousel) {\n this._tabsCarousel.set(this._index, () => {\n if (typeof this.options.onShow === 'function')\n this.options.onShow.call(this, this._content);\n });\n }\n } else {\n if (this._content) {\n this._content.style.display = 'block';\n this._content.classList.add('active');\n if (typeof this.options.onShow === 'function')\n this.options.onShow.call(this, this._content);\n if (_oldContent && _oldContent !== this._content) {\n _oldContent.style.display = 'none';\n _oldContent.classList.remove('active');\n }\n }\n }\n // Update widths after content is swapped (scrollbar bugfix)\n this._setTabsAndTabWidth();\n this._animateIndicator(prevIndex);\n e.preventDefault();\n };\n\n _createIndicator() {\n const tag = this.el.tagName === 'UL' || this.el.tagName === 'OL' ? 'li' : 'span';\n const indicator = document.createElement(tag);\n indicator.classList.add('indicator');\n this.el.appendChild(indicator);\n this._indicator = indicator;\n this._indicator.style.left = this._calcLeftPos(this._activeTabLink) + 'px';\n this._indicator.style.right = this._calcRightPos(this._activeTabLink) + 'px';\n }\n\n _setupActiveTabLink() {\n // If the location.hash matches one of the links, use that as the active tab.\n this._activeTabLink = Array.from(this._tabLinks).find(\n (a: HTMLAnchorElement) => a.getAttribute('href') === location.hash\n );\n // If no match is found, use the first link or any with class 'active' as the initial active tab.\n if (!this._activeTabLink) {\n let activeTabLink = this.el.querySelector('a.active');\n if (!activeTabLink) {\n activeTabLink = this._tabLinks[0];\n }\n this._activeTabLink = activeTabLink as HTMLAnchorElement;\n }\n Array.from(this._tabLinks).forEach((a: HTMLAnchorElement) => a.classList.remove('active'));\n this._activeTabLink.classList.add('active');\n\n this._index = Math.max(Array.from(this._tabLinks).indexOf(this._activeTabLink), 0);\n if (this._activeTabLink && this._activeTabLink.hash) {\n this._content = document.querySelector(this._activeTabLink.hash);\n if (this._content) this._content.classList.add('active');\n }\n }\n\n _setupSwipeableTabs() {\n // Change swipeable according to responsive threshold\n if (window.innerWidth > this.options.responsiveThreshold) this.options.swipeable = false;\n\n const tabsContent = [];\n this._tabLinks.forEach((a) => {\n if (a.hash) {\n const currContent = document.querySelector(a.hash);\n currContent.classList.add('carousel-item');\n tabsContent.push(currContent);\n }\n });\n\n // Create Carousel-Wrapper around Tab-Contents\n const tabsWrapper = document.createElement('div');\n tabsWrapper.classList.add('tabs-content', 'carousel', 'carousel-slider');\n\n // Wrap around\n tabsContent[0].parentElement.insertBefore(tabsWrapper, tabsContent[0]);\n tabsContent.forEach((tabContent) => {\n tabsWrapper.appendChild(tabContent);\n tabContent.style.display = '';\n });\n\n this._tabsCarousel = Carousel.init(tabsWrapper, {\n fullWidth: true,\n noWrap: true,\n onCycleTo: (item) => {\n const prevIndex = this._index;\n this._index = Array.from(item.parentNode.children).indexOf(item);\n this._activeTabLink.classList.remove('active');\n this._activeTabLink = Array.from(this._tabLinks)[this._index];\n this._activeTabLink.classList.add('active');\n this._animateIndicator(prevIndex);\n if (typeof this.options.onShow === 'function')\n this.options.onShow.call(this, this._content);\n }\n });\n // Set initial carousel slide to active tab\n this._tabsCarousel.set(this._index);\n }\n\n _teardownSwipeableTabs() {\n const tabsWrapper = this._tabsCarousel.el;\n this._tabsCarousel.destroy();\n // Unwrap\n tabsWrapper.append(tabsWrapper.parentElement);\n tabsWrapper.remove();\n }\n\n _setupNormalTabs() {\n // Hide Tabs Content\n Array.from(this._tabLinks).forEach((a) => {\n if (a === this._activeTabLink) return;\n if ((<HTMLAnchorElement>a).hash) {\n const currContent = document.querySelector((<HTMLAnchorElement>a).hash);\n if (currContent) (<HTMLElement>currContent).style.display = 'none';\n }\n });\n }\n\n _teardownNormalTabs() {\n // show Tabs Content\n this._tabLinks.forEach((a) => {\n if (a.hash) {\n const currContent = document.querySelector(a.hash) as HTMLElement;\n if (currContent) currContent.style.display = '';\n }\n });\n }\n\n _setTabsAndTabWidth() {\n this._tabsWidth = this.el.getBoundingClientRect().width;\n this._tabWidth = Math.max(this._tabsWidth, this.el.scrollWidth) / this._tabLinks.length;\n }\n\n _calcRightPos(el) {\n return Math.ceil(this._tabsWidth - el.offsetLeft - el.getBoundingClientRect().width);\n }\n\n _calcLeftPos(el) {\n return Math.floor(el.offsetLeft);\n }\n\n /**\n * Recalculate tab indicator position. This is useful when\n * the indicator position is not correct.\n */\n updateTabIndicator() {\n this._setTabsAndTabWidth();\n this._animateIndicator(this._index);\n }\n\n _animateIndicator(prevIndex) {\n let leftDelay = 0,\n rightDelay = 0;\n\n const isMovingLeftOrStaying = this._index - prevIndex >= 0;\n if (isMovingLeftOrStaying) leftDelay = 90;\n else rightDelay = 90;\n\n // in v1: easeOutQuad\n this._indicator.style.transition = `\n left ${this.options.duration}ms ease-out ${leftDelay}ms,\n right ${this.options.duration}ms ease-out ${rightDelay}ms`;\n\n this._indicator.style.left = this._calcLeftPos(this._activeTabLink) + 'px';\n this._indicator.style.right = this._calcRightPos(this._activeTabLink) + 'px';\n }\n\n /**\n * Show tab content that corresponds to the tab with the id.\n * @param tabId The id of the tab that you want to switch to.\n */\n select(tabId: string) {\n const tab = Array.from(this._tabLinks).find(\n (a: HTMLAnchorElement) => a.getAttribute('href') === '#' + tabId\n );\n if (tab) (<HTMLAnchorElement>tab).click();\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement, Openable } from '../core/component';\n\nexport interface TapTargetOptions extends BaseOptions {\n /**\n * Callback function called when Tap Target is opened.\n * @default null\n */\n onOpen: (origin: HTMLElement) => void;\n /**\n * Callback function called when Tap Target is closed.\n * @default null\n */\n onClose: (origin: HTMLElement) => void;\n}\n\nconst _defaults: TapTargetOptions = {\n onOpen: null,\n onClose: null\n};\n\nexport class TapTarget extends Component<TapTargetOptions> implements Openable {\n /**\n * If the tap target is open.\n */\n isOpen: boolean;\n\n static _taptargets: TapTarget[];\n private wrapper: HTMLElement;\n // private _origin: HTMLElement;\n private originEl: HTMLElement;\n private waveEl: HTMLElement & Element & Node;\n private contentEl: HTMLElement;\n\n constructor(el: HTMLElement, options: Partial<TapTargetOptions>) {\n super(el, options, TapTarget);\n this.el['Expressive_TapTarget'] = this;\n\n this.options = {\n ...TapTarget.defaults,\n ...options\n };\n\n this.isOpen = false;\n // setup\n // getElementById, not a `#${...}` selector: data-target is author content\n // and anything that is not a bare identifier either threw a SyntaxError\n // here or steered the query somewhere else.\n this.originEl = el.dataset.target ? document.getElementById(el.dataset.target) : null;\n if (!this.originEl) {\n console.error(`TapTarget: no element with id \"${el.dataset.target ?? ''}\" to attach to`);\n return;\n }\n this.originEl.tabIndex = 0;\n\n this._setup();\n this._calculatePositioning();\n this._setupEventHandlers();\n\n TapTarget._taptargets.push(this);\n }\n\n static get defaults(): TapTargetOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of TapTarget.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<TapTargetOptions>): TapTarget;\n /**\n * Initializes instances of TapTarget.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<TapTargetOptions>): TapTarget[];\n /**\n * Initializes instances of TapTarget.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<TapTargetOptions> = {}\n ): TapTarget | TapTarget[] {\n return super.init(els, options, TapTarget);\n }\n\n static getInstance(el: HTMLElement): TapTarget {\n return el['Expressive_TapTarget'];\n }\n\n destroy() {\n // close() detaches the document-level handlers registered by open(); they\n // are not covered by _removeEventHandlers and would otherwise survive.\n this.close();\n this._removeEventHandlers();\n this.el['Expressive_TapTarget'] = undefined;\n const index = TapTarget._taptargets.indexOf(this);\n if (index >= 0) {\n TapTarget._taptargets.splice(index, 1);\n }\n }\n\n _setupEventHandlers() {\n if (!this.originEl) return; // constructor bailed: nothing was ever wired up\n this.originEl.addEventListener('click', this._handleTargetToggle);\n this.originEl.addEventListener('keypress', this._handleKeyboardInteraction, true);\n // this.originEl.addEventListener('click', this._handleOriginClick);\n // Resize\n window.addEventListener('resize', this._handleThrottledResize);\n }\n\n _removeEventHandlers() {\n if (!this.originEl) return;\n this.originEl.removeEventListener('click', this._handleTargetToggle);\n this.originEl.removeEventListener('keypress', this._handleKeyboardInteraction, true);\n // this.originEl.removeEventListener('click', this._handleOriginClick);\n window.removeEventListener('resize', this._handleThrottledResize);\n }\n\n // Built once per instance; see the note in carousel.ts - the previous form\n // returned a new throttled function on every resize and never invoked it.\n _handleThrottledResize = Utils.throttle(() => this._handleResize(), 200);\n\n _handleKeyboardInteraction = (e: KeyboardEvent) => {\n if (Utils.keys.ENTER.includes(e.key)) {\n this._handleTargetToggle();\n }\n };\n\n _handleTargetToggle = () => {\n if (!this.isOpen) this.open();\n else this.close();\n };\n\n /*_handleOriginClick = () => {\n this.close();\n }*/\n\n _handleResize = () => {\n this._calculatePositioning();\n };\n\n _handleDocumentClick = (e: MouseEvent | TouchEvent | KeyboardEvent) => {\n const target = e.target;\n if (!(target instanceof Element)) return;\n // \"outside the origin and outside the tap target\" - expressed against the\n // elements themselves rather than by rebuilding a selector from\n // data-target on every document click.\n if (!this.originEl.contains(target) && !target.closest('.tap-target-wrapper')) {\n this.close();\n // e.preventDefault();\n // e.stopPropagation();\n }\n };\n\n _setup() {\n // Creating tap target\n this.wrapper = this.el.parentElement;\n this.waveEl = this.wrapper.querySelector('.tap-target-wave');\n this.el.parentElement.ariaExpanded = 'false';\n this.originEl.style.zIndex = '1002';\n // this.originEl = this.wrapper.querySelector('.tap-target-origin');\n this.contentEl = this.el.querySelector('.tap-target-content');\n // Creating wrapper\n if (!this.wrapper.classList.contains('.tap-target-wrapper')) {\n this.wrapper = document.createElement('div');\n this.wrapper.classList.add('tap-target-wrapper');\n this.el.before(this.wrapper);\n this.wrapper.append(this.el);\n }\n // Creating content\n if (!this.contentEl) {\n this.contentEl = document.createElement('div');\n this.contentEl.classList.add('tap-target-content');\n this.el.append(this.contentEl);\n }\n // Creating foreground wave\n if (!this.waveEl) {\n this.waveEl = document.createElement('div');\n this.waveEl.classList.add('tap-target-wave');\n // Creating origin\n /*if (!this.originEl) {\n this.originEl = <HTMLElement>this._origin.cloneNode(true); // .clone(true, true);\n this.originEl.classList.add('tap-target-origin');\n this.originEl.removeAttribute('id');\n this.originEl.removeAttribute('style');\n this.waveEl.append(this.originEl);\n }*/\n this.wrapper.append(this.waveEl);\n }\n }\n\n private _offset(el: HTMLElement) {\n const box = el.getBoundingClientRect();\n const docElem = document.documentElement;\n return {\n top: box.top + window.pageYOffset - docElem.clientTop,\n left: box.left + window.pageXOffset - docElem.clientLeft\n };\n }\n\n _calculatePositioning() {\n // Element or parent is fixed position?\n let isFixed = getComputedStyle(this.originEl).position === 'fixed';\n if (!isFixed) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let currentElem: any = this.originEl;\n const parents = [];\n while ((currentElem = currentElem.parentNode) && currentElem !== document)\n parents.push(currentElem);\n\n for (let i = 0; i < parents.length; i++) {\n isFixed = getComputedStyle(parents[i]).position === 'fixed';\n if (isFixed) break;\n }\n }\n // Calculating origin - one rect, reused for both axes and both branches.\n const originWidth = this.originEl.offsetWidth;\n const originHeight = this.originEl.offsetHeight;\n const originOffset = this._offset(this.originEl);\n const originTop = isFixed\n ? originOffset.top - Utils.getDocumentScrollTop()\n : originOffset.top;\n const originLeft = isFixed\n ? originOffset.left - Utils.getDocumentScrollLeft()\n : originOffset.left;\n\n // Calculating screen\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const scrollBarWidth = windowWidth - document.documentElement.clientWidth;\n const centerX = windowWidth / 2;\n const centerY = windowHeight / 2;\n const isLeft = originLeft <= centerX;\n const isRight = originLeft > centerX;\n const isTop = originTop <= centerY;\n const isBottom = originTop > centerY;\n const isCenterX = originLeft >= windowWidth * 0.25 && originLeft <= windowWidth * 0.75;\n\n // Calculating tap target\n const tapTargetWidth = this.el.offsetWidth;\n const tapTargetHeight = this.el.offsetHeight;\n const tapTargetTop = originTop + originHeight / 2 - tapTargetHeight / 2;\n const tapTargetLeft = originLeft + originWidth / 2 - tapTargetWidth / 2;\n const tapTargetPosition = isFixed ? 'fixed' : 'absolute';\n\n // Calculating content\n const tapTargetTextWidth = isCenterX ? tapTargetWidth : tapTargetWidth / 2 + originWidth;\n const tapTargetTextHeight = tapTargetHeight / 2;\n const tapTargetTextTop = isTop ? tapTargetHeight / 2 : 0;\n const tapTargetTextBottom = 0;\n const tapTargetTextLeft = isLeft && !isCenterX ? tapTargetWidth / 2 - originWidth : 0;\n const tapTargetTextRight = 0;\n const tapTargetTextPadding = originWidth;\n const tapTargetTextAlign = isBottom ? 'bottom' : 'top';\n\n // Calculating wave\n const tapTargetWaveWidth = originWidth > originHeight ? originWidth * 2 : originWidth * 2;\n const tapTargetWaveHeight = tapTargetWaveWidth;\n const tapTargetWaveTop = tapTargetHeight / 2 - tapTargetWaveHeight / 2;\n const tapTargetWaveLeft = tapTargetWidth / 2 - tapTargetWaveWidth / 2;\n\n // Setting tap target\n this.wrapper.style.top = isTop ? tapTargetTop + 'px' : '';\n this.wrapper.style.right = isRight\n ? windowWidth - tapTargetLeft - tapTargetWidth - scrollBarWidth + 'px'\n : '';\n this.wrapper.style.bottom = isBottom\n ? windowHeight - tapTargetTop - tapTargetHeight + 'px'\n : '';\n this.wrapper.style.left = isLeft ? tapTargetLeft + 'px' : '';\n this.wrapper.style.position = tapTargetPosition;\n\n // Setting content\n this.contentEl.style.width = tapTargetTextWidth + 'px';\n this.contentEl.style.height = tapTargetTextHeight + 'px';\n this.contentEl.style.top = tapTargetTextTop + 'px';\n this.contentEl.style.right = tapTargetTextRight + 'px';\n this.contentEl.style.bottom = tapTargetTextBottom + 'px';\n this.contentEl.style.left = tapTargetTextLeft + 'px';\n this.contentEl.style.padding = tapTargetTextPadding + 'px';\n this.contentEl.style.verticalAlign = tapTargetTextAlign;\n\n // Setting wave\n this.waveEl.style.top = tapTargetWaveTop + 'px';\n this.waveEl.style.left = tapTargetWaveLeft + 'px';\n this.waveEl.style.width = tapTargetWaveWidth + 'px';\n this.waveEl.style.height = tapTargetWaveHeight + 'px';\n }\n\n /**\n * Open Tap Target.\n */\n open = () => {\n if (this.isOpen) return;\n // onOpen callback\n if (typeof this.options.onOpen === 'function') {\n this.options.onOpen.call(this, this.originEl);\n }\n this.isOpen = true;\n this.wrapper.classList.add('open');\n this.wrapper.ariaExpanded = 'true';\n document.body.addEventListener('click', this._handleDocumentClick, true);\n document.body.addEventListener('keypress', this._handleDocumentClick, true);\n document.body.addEventListener('touchend', this._handleDocumentClick);\n };\n\n /**\n * Close Tap Target.\n */\n close = () => {\n if (!this.isOpen) return;\n // onClose callback\n if (typeof this.options.onClose === 'function') {\n this.options.onClose.call(this, this.originEl);\n }\n this.isOpen = false;\n this.wrapper.classList.remove('open');\n this.wrapper.ariaExpanded = 'false';\n document.body.removeEventListener('click', this._handleDocumentClick, true);\n document.body.removeEventListener('keypress', this._handleDocumentClick, true);\n document.body.removeEventListener('touchend', this._handleDocumentClick);\n };\n\n static {\n TapTarget._taptargets = [];\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Component, BaseOptions, InitElements, MElement, I18nOptions } from '../core/component';\nimport { DockedDisplayPlugin } from '../plugins/dockedDisplayPlugin';\n\nexport type Views = 'hours' | 'minutes';\n\nexport interface TimepickerOptions extends BaseOptions {\n /**\n * Dial radius.\n * @default 135\n */\n dialRadius: number;\n /**\n * Outer radius.\n * @default 105\n */\n outerRadius: number;\n /**\n * Inner radius.\n * @default 70\n */\n innerRadius: number;\n /**\n * Tick radius.\n * @default 20\n */\n tickRadius: number;\n /**\n * Duration of the transition from/to the hours/minutes view.\n * @default 350\n */\n duration: number;\n /**\n * Specify a DOM element OR selector for a DOM element to render\n * the time picker in, by default it will be placed before the input.\n * @default null\n */\n container: HTMLElement | string | null;\n /**\n * Show the clear button in the Timepicker.\n * @default false\n */\n showClearBtn: boolean;\n /**\n * Autosubmit timepicker selection to input field\n * @default true\n */\n autoSubmit: true;\n /**\n * Default time to set on the timepicker 'now' or '13:14'.\n * @default 'now';\n */\n defaultTime: string;\n /**\n * Millisecond offset from the defaultTime.\n * @default 0\n */\n fromNow: number;\n /**\n * Internationalization options.\n */\n i18n: Partial<I18nOptions>;\n /**\n * Use 12 hour AM/PM clock instead of 24 hour clock.\n * @default true\n */\n twelveHour: boolean;\n /**\n * Vibrate device when dragging clock hand.\n * @default true\n */\n vibrate: boolean;\n /**\n * Callback function when a time is selected.\n * @default null\n */\n onSelect: (hour: number, minute: number) => void;\n /**\n * Callback function for interaction with input field.\n * @default null\n */\n onInputInteraction: (() => void) | null;\n /**\n * Callback function for done.\n * @default null\n */\n onDone: (() => void) | null;\n /**\n * Callback function for cancel.\n * @default null\n */\n onCancel: (() => void) | null;\n /**\n * Display plugin\n */\n displayPlugin: string;\n /**\n * Configurable display plugin options\n */\n displayPluginOptions: object;\n}\n\nconst _defaults: TimepickerOptions = {\n dialRadius: 135,\n outerRadius: 105,\n innerRadius: 70,\n tickRadius: 20,\n duration: 350,\n container: null,\n defaultTime: 'now', // default time, 'now' or '13:14' e.g.\n fromNow: 0, // Millisecond offset from the defaultTime\n showClearBtn: false,\n autoSubmit: true,\n // internationalization\n i18n: {\n cancel: 'Cancel',\n clear: 'Clear',\n done: 'Ok'\n },\n twelveHour: true, // change to 12 hour AM/PM clock from 24 hour\n vibrate: true, // vibrate the device when dragging clock hand\n // Callbacks\n onSelect: null,\n onInputInteraction: null,\n onDone: null,\n onCancel: null,\n displayPlugin: null,\n displayPluginOptions: null,\n};\n\ntype Point = {\n x: number;\n y: number;\n};\n\nexport class Timepicker extends Component<TimepickerOptions> {\n declare el: HTMLInputElement;\n id: string;\n containerEl: HTMLElement;\n plate: HTMLElement;\n digitalClock: HTMLElement;\n inputHours: HTMLInputElement;\n inputMinutes: HTMLInputElement;\n x0: number;\n y0: number;\n moved: boolean;\n dx: number;\n dy: number;\n /**\n * Current view on the timepicker.\n * @default 'hours'\n */\n currentView: Views;\n hand: SVGElement;\n minutesView: HTMLElement;\n hours: number;\n minutes: number;\n /** The selected time. */\n time: string;\n /**\n * If the time is AM or PM on twelve-hour clock.\n * @default 'PM'\n */\n amOrPm: 'AM' | 'PM';\n static _template;\n /** Whether this device exposes the Vibration API at all. */\n canVibrate: boolean;\n _canvas: HTMLElement;\n hoursView: HTMLElement;\n spanAmPm: HTMLSpanElement;\n footer: HTMLElement;\n private _amBtn: HTMLElement;\n private _pmBtn: HTMLElement;\n bg: Element;\n bearing: Element;\n g: Element;\n toggleViewTimer: ReturnType<typeof setTimeout>;\n vibrateTimer: ReturnType<typeof setTimeout>;\n private displayPlugin: DockedDisplayPlugin;\n /** Whether the dial (ticks + SVG + AM/PM buttons) has been built yet. */\n private _clockBuilt = false;\n\n constructor(el: HTMLInputElement, options: Partial<TimepickerOptions>) {\n super(el, options, Timepicker);\n this.el['Expressive_Timepicker'] = this;\n this.options = {\n ...Timepicker.defaults,\n ...options\n };\n this.id = Utils.guid();\n this._insertHTMLIntoDOM();\n this._setupVariables();\n this._setupEventHandlers();\n // The dial is ~40 elements (12 or 24 hour ticks, 12 minute ticks, the SVG\n // hand and the AM/PM buttons) and is built by _ensureClockBuilt() rather\n // than here - see _pickerSetup for when that first happens.\n this._pickerSetup();\n\n if (this.options.displayPlugin) {\n if (this.options.displayPlugin === 'docked') this.displayPlugin = DockedDisplayPlugin.init(this.el, this.containerEl, this.options.displayPluginOptions);\n }\n }\n\n static get defaults(): TimepickerOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Timepicker.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLInputElement, options?: Partial<TimepickerOptions>): Timepicker;\n /**\n * Initializes instances of Timepicker.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: InitElements<HTMLInputElement | MElement>,\n options?: Partial<TimepickerOptions>\n ): Timepicker[];\n /**\n * Initializes instances of Timepicker.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLInputElement | InitElements<HTMLInputElement | MElement>,\n options: Partial<TimepickerOptions> = {}\n ): Timepicker | Timepicker[] {\n return super.init(els, options, Timepicker);\n }\n\n static _addLeadingZero(num: number) {\n return (num < 10 ? '0' : '') + num;\n }\n\n static _createSVGEl(name: string) {\n const svgNS = 'http://www.w3.org/2000/svg';\n return document.createElementNS(svgNS, name);\n }\n\n static _Pos(e: TouchEvent | MouseEvent): Point {\n if (e.type.startsWith('touch') && (e as TouchEvent).targetTouches.length >= 1) {\n return {\n x: (e as TouchEvent).targetTouches[0].clientX,\n y: (e as TouchEvent).targetTouches[0].clientY\n };\n }\n // mouse event\n return { x: (e as MouseEvent).clientX, y: (e as MouseEvent).clientY };\n }\n\n static getInstance(el: HTMLElement): Timepicker {\n return el['Expressive_Timepicker'];\n }\n\n destroy() {\n this._removeEventHandlers();\n this.displayPlugin?.destroy();\n this.containerEl.remove();\n this.el['Expressive_Timepicker'] = undefined;\n }\n\n _setupEventHandlers() {\n this.el.addEventListener('click', this._handleInputClick);\n this.el.addEventListener('keydown', this._handleInputKeydown);\n this.plate.addEventListener('mousedown', this._handleClockClickStart);\n this.plate.addEventListener('touchstart', this._handleClockClickStart);\n this.digitalClock.addEventListener('keyup', this._inputFromTextField);\n this.inputHours.addEventListener('focus', () => this.showView('hours'));\n this.inputHours.addEventListener('focusout', () => this.formatHours());\n this.inputMinutes.addEventListener('focus', () => this.showView('minutes'));\n this.inputMinutes.addEventListener('focusout', () => this.formatMinutes());\n }\n\n _removeEventHandlers() {\n this.el.removeEventListener('click', this._handleInputClick);\n this.el.removeEventListener('keydown', this._handleInputKeydown);\n // Drag handlers live on the document while the clock hand is held; if the\n // component is destroyed mid-drag they would otherwise outlive it.\n document.removeEventListener('mousemove', this._handleDocumentClickMove);\n document.removeEventListener('touchmove', this._handleDocumentClickMove);\n document.removeEventListener('mouseup', this._handleDocumentClickEnd);\n document.removeEventListener('touchend', this._handleDocumentClickEnd);\n }\n\n _handleInputClick = () => {\n // Before focus(): focusing inputHours fires the handler that calls\n // showView, and an already-focused input fires nothing at all.\n this._ensureClockBuilt();\n this.inputHours.focus();\n if (typeof this.options.onInputInteraction === 'function') this.options.onInputInteraction.call(this);\n if (this.displayPlugin) this.displayPlugin.show();\n };\n\n _handleInputKeydown = (e: KeyboardEvent) => {\n if (Utils.keys.ENTER.includes(e.key)) {\n e.preventDefault();\n this._ensureClockBuilt();\n this.inputHours.focus();\n if (typeof this.options.onInputInteraction === 'function') this.options.onInputInteraction.call(this);\n if (this.displayPlugin) this.displayPlugin.show();\n }\n };\n\n _handleTimeInputEnterKey = (e: KeyboardEvent) => {\n if (Utils.keys.ENTER.includes(e.key)) {\n e.preventDefault();\n this._inputFromTextField();\n }\n };\n\n _handleClockClickStart = (e) => {\n e.preventDefault();\n this._ensureClockBuilt();\n const clockPlateBR = this.plate.getBoundingClientRect();\n const offset = { x: clockPlateBR.left, y: clockPlateBR.top };\n\n this.x0 = offset.x + this.options.dialRadius;\n this.y0 = offset.y + this.options.dialRadius;\n this.moved = false;\n const clickPos = Timepicker._Pos(e);\n this.dx = clickPos.x - this.x0;\n this.dy = clickPos.y - this.y0;\n\n // Set clock hands\n this.setHand(this.dx, this.dy, false);\n // Mousemove on document\n document.addEventListener('mousemove', this._handleDocumentClickMove);\n document.addEventListener('touchmove', this._handleDocumentClickMove);\n // Mouseup on document\n document.addEventListener('mouseup', this._handleDocumentClickEnd);\n document.addEventListener('touchend', this._handleDocumentClickEnd);\n };\n\n _handleDocumentClickMove = (e) => {\n e.preventDefault();\n const clickPos = Timepicker._Pos(e);\n const x = clickPos.x - this.x0;\n const y = clickPos.y - this.y0;\n this.moved = true;\n this.setHand(x, y, false);\n };\n\n _handleDocumentClickEnd = (e) => {\n e.preventDefault();\n document.removeEventListener('mouseup', this._handleDocumentClickEnd);\n document.removeEventListener('touchend', this._handleDocumentClickEnd);\n const clickPos = Timepicker._Pos(e);\n const x = clickPos.x - this.x0;\n const y = clickPos.y - this.y0;\n if (this.moved && x === this.dx && y === this.dy) {\n this.setHand(x, y);\n }\n\n if (this.currentView === 'hours') {\n this.inputMinutes.focus();\n this.showView('minutes', this.options.duration / 2);\n } else {\n // this.minutesView.classList.add('timepicker-dial-out');\n setTimeout(() => {\n if (this.options.autoSubmit) this.done();\n }, this.options.duration / 2);\n }\n\n if (typeof this.options.onSelect === 'function') {\n this.options.onSelect.call(this, this.hours, this.minutes);\n }\n // Unbind mousemove event\n document.removeEventListener('mousemove', this._handleDocumentClickMove);\n document.removeEventListener('touchmove', this._handleDocumentClickMove);\n };\n\n _insertHTMLIntoDOM() {\n const template = document.createElement('template');\n template.innerHTML = Timepicker._template.trim();\n\n this.containerEl = <HTMLElement>template.content.firstChild;\n this.containerEl.id = 'container-' + this.id;\n\n // Append popover to input by default\n const optEl = this.options.container;\n const containerEl = optEl instanceof HTMLElement ? optEl : document.querySelector(optEl);\n\n if (this.options.container && !!containerEl) {\n containerEl.append(this.containerEl);\n } else {\n this.el.parentElement.appendChild(this.containerEl);\n }\n }\n\n _setupVariables() {\n this.currentView = 'hours';\n // `navigator.webkitVibrate` never shipped in any browser - the probe it\n // came from was folklore. A plain feature check is the whole of it.\n this.canVibrate = typeof navigator.vibrate === 'function';\n this._canvas = this.containerEl.querySelector('.timepicker-canvas');\n this.plate = this.containerEl.querySelector('.timepicker-plate');\n this.digitalClock = this.containerEl.querySelector('.timepicker-display-column');\n this.hoursView = this.containerEl.querySelector('.timepicker-hours');\n this.minutesView = this.containerEl.querySelector('.timepicker-minutes');\n this.inputHours = this.containerEl.querySelector('.timepicker-input-hours');\n this.inputMinutes = this.containerEl.querySelector('.timepicker-input-minutes');\n this.spanAmPm = this.containerEl.querySelector('.timepicker-span-am-pm');\n this.footer = this.containerEl.querySelector('.timepicker-footer');\n this.amOrPm = 'PM';\n }\n\n /*private _createButton(text: string, visibility: string): HTMLButtonElement {\n const button = document.createElement('button');\n button.classList.add('btn', 'waves-effect', 'text');\n button.style.visibility = visibility;\n button.type = 'button';\n button.tabIndex = -1;\n button.innerText = text;\n return button;\n }*/\n\n _pickerSetup() {\n // clearButton.classList.add('timepicker-clear');\n // clearButton.addEventListener('click', this.clear);\n // this.footer.appendChild(clearButton);\n Utils.createButton(\n this.footer,\n this.options.i18n.clear,\n ['timepicker-clear'],\n this.options.showClearBtn,\n this.clear\n );\n\n if (!this.options.autoSubmit) {\n /*const confirmationBtnsContainer = document.createElement('div');\n confirmationBtnsContainer.classList.add('confirmation-btns');\n this.footer.append(confirmationBtnsContainer);\n\n const cancelButton = this._createButton(this.options.i18n.cancel, '');\n cancelButton.classList.add('timepicker-close');\n cancelButton.addEventListener('click', this.close);\n confirmationBtnsContainer.appendChild(cancelButton);\n\n const doneButton = this._createButton(this.options.i18n.done, '');\n doneButton.classList.add('timepicker-close');\n //doneButton.addEventListener('click', this._finishSelection);\n confirmationBtnsContainer.appendChild(doneButton);*/\n Utils.createConfirmationContainer(\n this.footer,\n this.options.i18n.done,\n this.options.i18n.cancel,\n this.confirm,\n this.cancel\n );\n }\n\n this._updateTimeFromInput();\n\n // With a docked display the container is `visibility: hidden` until\n // show(), so the dial can wait for the first interaction. Without one it\n // is on screen from the moment it is inserted and has to be ready now.\n if (!this.options.displayPlugin) this.showView('hours');\n }\n\n /**\n * Build the dial, once. Cheap to call repeatedly - every entry point that\n * touches the clock calls it first, so the picker cannot be interacted with\n * before it exists.\n */\n private _ensureClockBuilt() {\n if (this._clockBuilt) return;\n this._clockBuilt = true;\n this._clockSetup();\n // Applies the AM/PM state _updateTimeFromInput worked out before the\n // buttons existed.\n this._updateAmPmView();\n }\n\n _clockSetup() {\n if (this.options.twelveHour) {\n // AM Button\n this._amBtn = document.createElement('div');\n this._amBtn.classList.add('am-btn', 'btn');\n this._amBtn.innerText = 'AM';\n this._amBtn.tabIndex = 0;\n this._amBtn.addEventListener('click', this._handleAmPmClick);\n this._amBtn.addEventListener('keypress', this._handleAmPmKeypress);\n this.spanAmPm.appendChild(this._amBtn);\n // PM Button\n this._pmBtn = document.createElement('div');\n this._pmBtn.classList.add('pm-btn', 'btn');\n this._pmBtn.innerText = 'PM';\n this._pmBtn.tabIndex = 0;\n this._pmBtn.addEventListener('click', this._handleAmPmClick);\n this._pmBtn.addEventListener('keypress', this._handleAmPmKeypress);\n this.spanAmPm.appendChild(this._pmBtn);\n }\n this._buildHoursView();\n this._buildMinutesView();\n this._buildSVGClock();\n }\n\n _buildSVGClock() {\n // Draw clock hands and others\n const dialRadius = this.options.dialRadius;\n const tickRadius = this.options.tickRadius;\n const diameter = dialRadius * 2;\n const svg = Timepicker._createSVGEl('svg');\n svg.setAttribute('class', 'timepicker-svg');\n svg.setAttribute('width', diameter.toString());\n svg.setAttribute('height', diameter.toString());\n const g = Timepicker._createSVGEl('g');\n g.setAttribute('transform', 'translate(' + dialRadius + ',' + dialRadius + ')');\n const bearing = Timepicker._createSVGEl('circle');\n bearing.setAttribute('class', 'timepicker-canvas-bearing');\n bearing.setAttribute('cx', '0');\n bearing.setAttribute('cy', '0');\n bearing.setAttribute('r', '4');\n const hand = Timepicker._createSVGEl('line');\n hand.setAttribute('x1', '0');\n hand.setAttribute('y1', '0');\n const bg = Timepicker._createSVGEl('circle');\n bg.setAttribute('class', 'timepicker-canvas-bg');\n bg.setAttribute('r', tickRadius.toString());\n g.appendChild(hand);\n g.appendChild(bg);\n g.appendChild(bearing);\n svg.appendChild(g);\n this._canvas.appendChild(svg);\n this.hand = hand;\n this.bg = bg;\n this.bearing = bearing;\n this.g = g;\n }\n\n _buildHoursView() {\n // const $tick = document.createElement('div');\n // $tick.classList.add('timepicker-tick');\n // Hours view\n if (this.options.twelveHour) {\n for (let i = 1; i < 13; i += 1) {\n // const tick = <HTMLElement>$tick.cloneNode(true);\n const radian = (i / 6) * Math.PI;\n const radius = this.options.outerRadius;\n this._buildHoursTick(i, radian, radius);\n }\n } else {\n for (let i = 0; i < 24; i += 1) {\n // const tick = <HTMLElement>$tick.cloneNode(true);\n const radian = (i / 6) * Math.PI;\n const inner = i > 0 && i < 13;\n const radius = inner ? this.options.innerRadius : this.options.outerRadius;\n this._buildHoursTick(i, radian, radius);\n }\n }\n }\n\n _buildHoursTick(i: number, radian: number, radius: number) {\n const tick = document.createElement('div');\n tick.classList.add('timepicker-tick');\n tick.style.left =\n this.options.dialRadius + Math.sin(radian) * radius - this.options.tickRadius + 'px';\n tick.style.top =\n this.options.dialRadius - Math.cos(radian) * radius - this.options.tickRadius + 'px';\n tick.textContent = i === 0 ? '00' : i.toString();\n this.hoursView.appendChild(tick);\n }\n\n _buildMinutesView() {\n const _tick = document.createElement('div');\n _tick.classList.add('timepicker-tick');\n // Minutes view\n for (let i = 0; i < 60; i += 5) {\n const tick = <HTMLElement>_tick.cloneNode(true);\n const radian = (i / 30) * Math.PI;\n tick.style.left =\n this.options.dialRadius +\n Math.sin(radian) * this.options.outerRadius -\n this.options.tickRadius +\n 'px';\n tick.style.top =\n this.options.dialRadius -\n Math.cos(radian) * this.options.outerRadius -\n this.options.tickRadius +\n 'px';\n tick.textContent = Timepicker._addLeadingZero(i);\n this.minutesView.appendChild(tick);\n }\n }\n\n _handleAmPmClick = (e: MouseEvent) => {\n this._handleAmPmInteraction(<HTMLElement>e.target);\n };\n\n _handleAmPmKeypress = (e: KeyboardEvent) => {\n if (Utils.keys.ENTER.includes(e.key)) {\n this._handleAmPmInteraction(<HTMLElement>e.target);\n }\n };\n\n _handleAmPmInteraction = (e: HTMLElement) => {\n this.amOrPm = e.classList.contains('am-btn') ? 'AM' : 'PM';\n this._updateAmPmView();\n }\n\n _updateAmPmView() {\n // _updateTimeFromInput settles amOrPm before the dial is built; the\n // buttons pick the state up in _ensureClockBuilt.\n if (!this._amBtn || !this._pmBtn) return;\n if (this.options.twelveHour) {\n if (this.amOrPm === 'PM') {\n this._amBtn.classList.remove('filled');\n this._pmBtn.classList.add('filled');\n } else if (this.amOrPm === 'AM') {\n this._amBtn.classList.add('filled');\n this._pmBtn.classList.remove('filled');\n }\n }\n }\n\n _updateTimeFromInput() {\n // Get the time\n let value = ((this.el.value || this.options.defaultTime || '') + '').split(':');\n if (this.options.twelveHour && !(typeof value[1] === 'undefined')) {\n if (value[1].toUpperCase().indexOf('AM') > 0) {\n this.amOrPm = 'AM';\n } else {\n this.amOrPm = 'PM';\n }\n value[1] = value[1].replace('AM', '').replace('PM', '');\n }\n if (value[0] === 'now') {\n const now = new Date(+new Date() + this.options.fromNow);\n value = [now.getHours().toString(), now.getMinutes().toString()];\n if (this.options.twelveHour) {\n this.amOrPm = parseInt(value[0]) >= 12 && parseInt(value[0]) < 24 ? 'PM' : 'AM';\n }\n }\n this.hours = +value[0] || 0;\n this.minutes = +value[1] || 0;\n this.inputHours.value = Timepicker._addLeadingZero(this.hours);\n this.inputMinutes.value = Timepicker._addLeadingZero(this.minutes);\n\n this._updateAmPmView();\n }\n\n /**\n * Show hours or minutes view on timepicker.\n * @param view The name of the view you want to switch to, 'hours' or 'minutes'.\n * @param delay\n */\n showView = (view: Views, delay: number = null) => {\n this._ensureClockBuilt();\n if (view === 'minutes' && getComputedStyle(this.hoursView).visibility === 'visible') {\n // raiseCallback(this.options.beforeHourSelect);\n }\n const isHours = view === 'hours',\n nextView = isHours ? this.hoursView : this.minutesView,\n hideView = isHours ? this.minutesView : this.hoursView;\n this.currentView = view;\n\n /*if (isHours) {\n this.inputHours.classList.add('text-primary');\n this.inputMinutes.classList.remove('text-primary');\n } else {\n this.inputHours.classList.remove('text-primary');\n this.inputMinutes.classList.add('text-primary');\n }*/\n\n // Transition view\n hideView.classList.add('timepicker-dial-out');\n\n nextView.style.visibility = 'visible';\n nextView.classList.remove('timepicker-dial-out');\n\n // Reset clock hand\n this.resetClock(delay);\n // After transitions ended\n clearTimeout(this.toggleViewTimer);\n this.toggleViewTimer = setTimeout(() => {\n hideView.style.visibility = 'hidden';\n }, this.options.duration);\n };\n\n resetClock(delay) {\n const view = this.currentView,\n value = this[view],\n isHours = view === 'hours',\n unit = Math.PI / (isHours ? 6 : 30),\n radian = value * unit,\n radius =\n isHours && value > 0 && value < 13 ? this.options.innerRadius : this.options.outerRadius,\n x = Math.sin(radian) * radius,\n y = -Math.cos(radian) * radius;\n\n if (delay) {\n this._canvas?.classList.add('timepicker-canvas-out');\n setTimeout(() => {\n this._canvas?.classList.remove('timepicker-canvas-out');\n this.setHand(x, y);\n }, delay);\n } else {\n this.setHand(x, y);\n }\n }\n\n _inputFromTextField = () => {\n const isHours = this.currentView === 'hours';\n if (isHours && this.inputHours.value !== '') {\n const value = parseInt(this.inputHours.value);\n if (value > 0 && value < (this.options.twelveHour ? 13 : 24)) {\n this.hours = value;\n } else {\n this.setHoursDefault();\n }\n this.drawClockFromTimeInput(this.hours, isHours);\n } else if (!isHours && this.inputMinutes.value !== '') {\n const value = parseInt(this.inputMinutes.value);\n if (value >= 0 && value < 60) {\n this.minutes = value;\n } else {\n this.minutes = new Date().getMinutes();\n this.inputMinutes.value = this.minutes.toString();\n }\n this.drawClockFromTimeInput(this.minutes, isHours);\n }\n };\n\n drawClockFromTimeInput(value, isHours) {\n const unit = Math.PI / (isHours ? 6 : 30);\n const radian = value * unit;\n let radius;\n if (this.options.twelveHour) {\n radius = this.options.outerRadius;\n } else {\n radius =\n isHours && value > 0 && value < 13 ? this.options.innerRadius : this.options.outerRadius;\n }\n this.setClockAttributes(radian, radius);\n }\n\n setHand(x, y, roundBy5: boolean = false) {\n const isHours = this.currentView === 'hours',\n unit = Math.PI / (isHours || roundBy5 ? 6 : 30),\n z = Math.sqrt(x * x + y * y),\n inner = isHours && z < (this.options.outerRadius + this.options.innerRadius) / 2;\n let radian = Math.atan2(x, -y),\n radius = inner ? this.options.innerRadius : this.options.outerRadius;\n\n if (this.options.twelveHour) {\n radius = this.options.outerRadius;\n }\n\n // Radian should in range [0, 2PI]\n if (radian < 0) {\n radian = Math.PI * 2 + radian;\n }\n\n // Get the round value\n let value = Math.round(radian / unit);\n\n // Get the round radian\n radian = value * unit;\n\n // Correct the hours or minutes\n if (this.options.twelveHour) {\n if (isHours) {\n if (value === 0) value = 12;\n } else {\n if (roundBy5) value *= 5;\n if (value === 60) value = 0;\n }\n } else {\n if (isHours) {\n if (value === 12) {\n value = 0;\n }\n value = inner ? (value === 0 ? 12 : value) : value === 0 ? 0 : value + 12;\n } else {\n if (roundBy5) {\n value *= 5;\n }\n if (value === 60) {\n value = 0;\n }\n }\n }\n\n // Once hours or minutes changed, vibrate the device\n if (this[this.currentView] !== value) {\n if (this.canVibrate && this.options.vibrate) {\n // Do not vibrate too frequently\n if (!this.vibrateTimer) {\n navigator.vibrate(10);\n this.vibrateTimer = setTimeout(() => {\n this.vibrateTimer = null;\n }, 100);\n }\n }\n }\n\n this[this.currentView] = value;\n if (isHours) {\n this.inputHours.value = Timepicker._addLeadingZero(value);\n } else {\n this.inputMinutes.value = Timepicker._addLeadingZero(value);\n }\n\n // Set clock hand and others' position\n this.setClockAttributes(radian, radius);\n }\n\n setClockAttributes(radian: number, radius: number) {\n // Nothing to point at until the SVG exists.\n if (!this.hand || !this.bg) return;\n const cx1 = Math.sin(radian) * (radius - this.options.tickRadius),\n cy1 = -Math.cos(radian) * (radius - this.options.tickRadius),\n cx2 = Math.sin(radian) * radius,\n cy2 = -Math.cos(radian) * radius;\n this.hand.setAttribute('x2', cx1.toString());\n this.hand.setAttribute('y2', cy1.toString());\n this.bg.setAttribute('cx', cx2.toString());\n this.bg.setAttribute('cy', cy2.toString());\n }\n\n formatHours() {\n if (this.inputHours.value == '') this.setHoursDefault();\n this.inputHours.value = Timepicker._addLeadingZero(Number(this.inputHours.value));\n }\n\n formatMinutes() {\n if (this.inputMinutes.value == '') this.minutes = new Date().getMinutes();\n this.inputMinutes.value = Timepicker._addLeadingZero(Number(this.inputMinutes.value));\n }\n\n setHoursDefault() {\n this.hours = new Date().getHours();\n this.inputHours.value = (this.hours % (this.options.twelveHour ? 12 : 24)).toString();\n }\n\n done = (clearValue = null) => {\n // Set input value\n const last = this.el.value;\n let value = clearValue\n ? ''\n : Timepicker._addLeadingZero(this.hours) + ':' + Timepicker._addLeadingZero(this.minutes);\n this.time = value;\n if (!clearValue && this.options.twelveHour) {\n value = `${value} ${this.amOrPm}`;\n }\n this.el.value = value;\n // Trigger change event\n if (value !== last) {\n this.el.dispatchEvent(\n new Event('change', { bubbles: true, cancelable: true, composed: true })\n );\n }\n };\n\n confirm = () => {\n this.done();\n if (typeof this.options.onDone === 'function') this.options.onDone.call(this);\n }\n\n cancel = () => {\n // not logical clearing the input field on cancel, since the end user might want to make use of the previously submitted value\n // this.clear();\n if (typeof this.options.onCancel === 'function') this.options.onCancel.call(this);\n }\n\n clear = () => {\n this.done(true);\n };\n\n // deprecated\n open() {\n console.warn(\n 'Timepicker.close() is deprecated. Remove this method and wrap in modal yourself.'\n );\n return this;\n }\n\n close() {\n console.warn(\n 'Timepicker.close() is deprecated. Remove this method and wrap in modal yourself.'\n );\n return this;\n }\n\n static {\n Timepicker._template = `<div class=\"timepicker-container\">\n <div class=\"timepicker-digital-display\">\n <div class=\"timepicker-text-container\">\n <div class=\"timepicker-display-column timepicker-display-digital-clock\">\n <div class=\"timepicker-input-hours-wrapper\">\n <input type=\"text\" maxlength=\"2\" class=\"timepicker-input-hours text-primary\" />\n </div>\n <div class=\"timepicker-input-divider-wrapper\">\n <span class=\"timepicker-input-divider\">:</span>\n </div>\n <div class=\"timepicker-input-minutes-wrapper\">\n <input type=\"text\" maxlength=\"2\" class=\"timepicker-input-minutes\" />\n </div>\n </div>\n <div class=\"timepicker-display-column timepicker-display-am-pm\">\n <div class=\"timepicker-span-am-pm\"></div>\n </div>\n </div>\n </div>\n <div class=\"timepicker-analog-display\">\n <div class=\"timepicker-plate\">\n <div class=\"timepicker-canvas\"></div>\n <div class=\"timepicker-dial timepicker-hours\"></div>\n <div class=\"timepicker-dial timepicker-minutes timepicker-dial-out\"></div>\n </div>\n <div class=\"timepicker-footer\"></div>\n </div>\n </div>`;\n }\n}\n", "import { BaseOptions } from '../core/component';\n\nexport interface ToastOptions extends BaseOptions {\n /**\n * The content of the Toast.\n * @default \"\"\n */\n text: string;\n /**\n * Optional action label. Rendered as a trailing text button.\n * @default \"\"\n */\n action: string;\n /**\n * Called when the action button is pressed. The toast still dismisses.\n * @default null\n */\n onAction: () => void;\n /**\n * Show a trailing close icon button.\n * @default false\n */\n dismissible: boolean;\n /**\n * Element Id for the tooltip.\n * @default \"\"\n */\n toastId?: string;\n /**\n * Length in ms the Toast stays before dismissal.\n * @default 4000\n */\n displayLength: number;\n /**\n * Transition in duration in milliseconds.\n * @default 300\n */\n inDuration: number;\n /**\n * Transition out duration in milliseconds.\n * @default 375\n */\n outDuration: number;\n /**\n * Classes to be added to the toast element.\n * @default \"\"\n */\n classes: string;\n /**\n * Callback function called when toast is dismissed.\n * @default null\n */\n completeCallback: () => void;\n /**\n * The percentage of the toast's width it takes fora drag\n * to dismiss a Toast.\n * @default 0.8\n */\n activationPercent: number;\n}\n\nconst _defaults: ToastOptions = {\n text: '',\n action: '',\n onAction: null,\n dismissible: false,\n displayLength: 4000,\n inDuration: 300,\n outDuration: 375,\n classes: '',\n completeCallback: null,\n activationPercent: 0.8\n};\n\nexport class Toast {\n /** The toast element. */\n el: HTMLElement;\n /**\n * The remaining amount of time in ms that the toast\n * will stay before dismissal.\n */\n timeRemaining: number;\n /**\n * Describes the current pan state of the Toast.\n */\n panning: boolean;\n options: ToastOptions;\n message: string;\n counterTimeout: ReturnType<typeof setTimeout>;\n /** Wall-clock time the toast is due to dismiss, for pause/resume. */\n private _deadline: number;\n wasSwiped: boolean;\n startingXPos: number;\n xPos: number;\n time: number;\n deltaX: number;\n velocityX: number;\n\n static _toasts: Toast[];\n static _container: HTMLElement;\n static _draggedToast: Toast;\n\n constructor(options: Partial<ToastOptions>) {\n this.options = {\n ...Toast.defaults,\n ...options\n };\n this.message = this.options.text;\n this.panning = false;\n this.timeRemaining = this.options.displayLength;\n if (Toast._toasts.length === 0) {\n Toast._createContainer();\n }\n // Create new toast\n Toast._toasts.push(this);\n const toastElement = this._createToast();\n toastElement['Expressive_Toast'] = this;\n this.el = toastElement;\n this._animateIn();\n this._setTimer();\n }\n\n static get defaults(): ToastOptions {\n return _defaults;\n }\n\n static getInstance(el: HTMLElement): Toast {\n return el['Expressive_Toast'];\n }\n\n static _createContainer() {\n const container = document.createElement('div');\n container.setAttribute('id', 'toast-container');\n // Add event handler\n container.addEventListener('touchstart', Toast._onDragStart);\n container.addEventListener('touchmove', Toast._onDragMove);\n container.addEventListener('touchend', Toast._onDragEnd);\n container.addEventListener('mousedown', Toast._onDragStart);\n document.addEventListener('mousemove', Toast._onDragMove);\n document.addEventListener('mouseup', Toast._onDragEnd);\n document.body.appendChild(container);\n Toast._container = container;\n }\n\n static _removeContainer() {\n document.removeEventListener('mousemove', Toast._onDragMove);\n document.removeEventListener('mouseup', Toast._onDragEnd);\n Toast._container.remove();\n Toast._container = null;\n }\n\n static _onDragStart(e: TouchEvent | MouseEvent) {\n const target = e.target as HTMLElement | null;\n // Don't start a swipe from the action or close \u2014 those are buttons.\n if (target && !target.closest('button, a') && target.closest('.toast, .snackbar')) {\n const toastElem = target.closest('.toast, .snackbar') as HTMLElement;\n const toast: Toast = toastElem['Expressive_Toast'];\n if (!toast) return;\n toast.panning = true;\n toast._pauseTimer();\n Toast._draggedToast = toast;\n toast.el.classList.add('panning');\n toast.el.style.transition = '';\n toast.startingXPos = Toast._xPos(e);\n toast.time = Date.now();\n toast.xPos = Toast._xPos(e);\n }\n }\n\n static _onDragMove(e: TouchEvent | MouseEvent) {\n if (!!Toast._draggedToast) {\n e.preventDefault();\n const toast = Toast._draggedToast;\n toast.deltaX = Math.abs(toast.xPos - Toast._xPos(e));\n toast.xPos = Toast._xPos(e);\n toast.velocityX = toast.deltaX / (Date.now() - toast.time);\n toast.time = Date.now();\n\n const totalDeltaX = toast.xPos - toast.startingXPos;\n const activationDistance = toast.el.offsetWidth * toast.options.activationPercent;\n toast.el.style.transform = `translateX(${totalDeltaX}px)`;\n toast.el.style.opacity = (1 - Math.abs(totalDeltaX / activationDistance)).toString();\n }\n }\n\n static _onDragEnd() {\n if (!!Toast._draggedToast) {\n const toast = Toast._draggedToast;\n toast.panning = false;\n toast.el.classList.remove('panning');\n\n const totalDeltaX = toast.xPos - toast.startingXPos;\n const activationDistance = toast.el.offsetWidth * toast.options.activationPercent;\n const shouldBeDismissed = Math.abs(totalDeltaX) > activationDistance || toast.velocityX > 1;\n\n // Remove toast\n if (shouldBeDismissed) {\n toast.wasSwiped = true;\n toast.dismiss();\n // Animate toast back to original position\n } else {\n toast.el.style.transition = 'transform .2s, opacity .2s';\n toast.el.style.transform = '';\n toast.el.style.opacity = '';\n toast._resumeTimer();\n }\n Toast._draggedToast = null;\n }\n }\n\n static _xPos(e: TouchEvent | MouseEvent) {\n if (e.type.startsWith('touch') && (e as TouchEvent).targetTouches.length >= 1) {\n return (e as TouchEvent).targetTouches[0].clientX;\n }\n // mouse event\n return (e as MouseEvent).clientX;\n }\n\n /**\n * dismiss all toasts.\n */\n static dismissAll() {\n // Copy first: dismiss() splices the list it is iterating.\n for (const toast of [...Toast._toasts]) {\n toast.dismiss();\n }\n }\n\n _createToast() {\n let toast: HTMLElement = this.options.toastId\n ? document.getElementById(this.options.toastId)\n : document.createElement('div');\n if (toast instanceof HTMLTemplateElement) {\n const node = (toast as HTMLTemplateElement).content.cloneNode(true);\n toast = (node as HTMLElement).firstElementChild as HTMLElement;\n }\n toast.classList.add('toast', 'snackbar');\n toast.setAttribute('role', 'status');\n toast.setAttribute('aria-live', 'polite');\n toast.setAttribute('aria-atomic', 'true');\n // Add custom classes onto toast\n if (this.options.classes.length > 0) {\n toast.classList.add(...this.options.classes.split(' ').filter(Boolean));\n }\n if (this.message) {\n const text = document.createElement('p');\n text.textContent = this.message;\n toast.replaceChildren(text);\n }\n if (this.options.action) {\n const action = document.createElement('button');\n action.type = 'button';\n action.textContent = this.options.action;\n action.addEventListener('click', (e) => {\n e.stopPropagation();\n if (typeof this.options.onAction === 'function') {\n this.options.onAction();\n }\n this.dismiss();\n });\n toast.appendChild(action);\n }\n if (this.options.dismissible) {\n const close = document.createElement('button');\n close.type = 'button';\n close.className = 'circle';\n close.setAttribute('aria-label', 'Dismiss');\n const icon = document.createElement('i');\n icon.className = 'material-icons';\n icon.setAttribute('aria-hidden', 'true');\n icon.textContent = 'close';\n close.appendChild(icon);\n close.addEventListener('click', (e) => {\n e.stopPropagation();\n this.dismiss();\n });\n toast.appendChild(close);\n }\n Toast._container.appendChild(toast);\n return toast;\n }\n\n _animateIn() {\n // Animate toast in\n this.el.style.display = '';\n this.el.style.opacity = '0';\n // easeOutCubic\n this.el.style.transition = `\n top ${this.options.inDuration}ms ease,\n opacity ${this.options.inDuration}ms ease\n `;\n setTimeout(() => {\n this.el.style.top = '0';\n this.el.style.opacity = '1';\n }, 1);\n }\n\n /**\n * Arm the dismissal timer.\n *\n * One timeout, not a 20ms interval ticking a counter down: the old form woke\n * the page up 50 times a second per toast purely to subtract 20 from a\n * number. Dragging pauses the countdown via _pauseTimer/_resumeTimer instead.\n */\n _setTimer() {\n if (this.timeRemaining === Infinity) return;\n this._deadline = Date.now() + this.timeRemaining;\n this.counterTimeout = setTimeout(() => this.dismiss(), this.timeRemaining);\n }\n\n /** Stop the countdown, banking the time that was left on it. */\n _pauseTimer() {\n if (this.counterTimeout == null) return;\n clearTimeout(this.counterTimeout);\n this.counterTimeout = null;\n this.timeRemaining = Math.max(0, this._deadline - Date.now());\n }\n\n /** Restart a countdown stopped by {@link _pauseTimer}. */\n _resumeTimer() {\n if (this.counterTimeout != null) return;\n this._setTimer();\n }\n\n /**\n * Dismiss toast with animation.\n */\n dismiss() {\n clearTimeout(this.counterTimeout);\n this.counterTimeout = null;\n const activationDistance = this.el.offsetWidth * this.options.activationPercent;\n\n if (this.wasSwiped) {\n this.el.style.transition = 'transform .05s, opacity .05s';\n this.el.style.transform = `translateX(${activationDistance}px)`;\n this.el.style.opacity = '0';\n }\n\n // easeOutExpo\n this.el.style.transition = `\n margin ${this.options.outDuration}ms ease,\n opacity ${this.options.outDuration}ms ease`;\n\n setTimeout(() => {\n this.el.style.opacity = '0';\n this.el.style.marginTop = '-40px';\n }, 1);\n\n setTimeout(() => {\n // Call the optional callback\n if (typeof this.options.completeCallback === 'function') {\n this.options.completeCallback();\n }\n // Remove toast from DOM\n if (this.el.id != this.options.toastId) {\n this.el.remove();\n // Guarded: splice(-1, 1) on an already-removed toast would drop an\n // unrelated one off the end of the list.\n const index = Toast._toasts.indexOf(this);\n if (index >= 0) Toast._toasts.splice(index, 1);\n if (Toast._toasts.length === 0 && Toast._container) {\n Toast._removeContainer();\n }\n }\n }, this.options.outDuration);\n }\n\n static {\n Toast._toasts = [];\n Toast._container = null;\n Toast._draggedToast = null;\n }\n}\n", "import { Utils } from '../core/utils';\nimport { Bounding } from '../core/bounding';\nimport { Component, BaseOptions, InitElements, MElement } from '../core/component';\n\nexport type TooltipPosition = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface TooltipOptions extends BaseOptions {\n /**\n * Delay time before tooltip disappears.\n * @default 200\n */\n exitDelay: number;\n /**\n * Delay time before tooltip appears.\n * @default 0\n */\n enterDelay: number;\n /**\n * Element Id for the tooltip.\n * @default \"\"\n */\n tooltipId?: string;\n /**\n * Text string for the tooltip.\n * @default \"\"\n */\n text: string;\n /**\n * Set distance tooltip appears away from its activator\n * excluding transitionMovement.\n * @default 4\n */\n margin: number;\n /**\n * Enter transition duration.\n * @default 300\n */\n inDuration: number;\n /**\n * Opacity of the tooltip.\n * @default 1\n */\n opacity: number;\n /**\n * Exit transition duration.\n * @default 250\n */\n outDuration: number;\n /**\n * Set the direction of the tooltip.\n * @default 'bottom'\n */\n position: TooltipPosition;\n /**\n * Amount in px that the tooltip moves during its transition.\n * @default 10\n */\n transitionMovement: number;\n}\n\nconst _defaults: TooltipOptions = {\n exitDelay: 200,\n enterDelay: 0,\n text: '',\n margin: 4,\n inDuration: 250,\n outDuration: 200,\n position: 'bottom' as TooltipPosition,\n transitionMovement: 10,\n opacity: 1\n};\n\nexport class Tooltip extends Component<TooltipOptions> {\n /**\n * If tooltip is open.\n */\n isOpen: boolean;\n /**\n * If tooltip is hovered.\n */\n isHovered: boolean;\n /**\n * If tooltip is focused.\n */\n isFocused: boolean;\n tooltipEl: HTMLElement;\n private _exitDelayTimeout: ReturnType<typeof setTimeout>;\n private _enterDelayTimeout: ReturnType<typeof setTimeout>;\n xMovement: number;\n yMovement: number;\n\n constructor(el: HTMLElement, options: Partial<TooltipOptions>) {\n super(el, options, Tooltip);\n this.el['Expressive_Tooltip'] = this;\n\n this.options = {\n ...Tooltip.defaults,\n ...this._getAttributeOptions(),\n ...options\n };\n\n this.isOpen = false;\n this.isHovered = false;\n this.isFocused = false;\n this._appendTooltipEl();\n this._setupEventHandlers();\n }\n\n static get defaults(): TooltipOptions {\n return _defaults;\n }\n\n /**\n * Initializes instance of Tooltip.\n * @param el HTML element.\n * @param options Component options.\n */\n static init(el: HTMLElement, options?: Partial<TooltipOptions>): Tooltip;\n /**\n * Initializes instances of Tooltip.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(els: InitElements<MElement>, options?: Partial<TooltipOptions>): Tooltip[];\n /**\n * Initializes instances of Tooltip.\n * @param els HTML elements.\n * @param options Component options.\n */\n static init(\n els: HTMLElement | InitElements<MElement>,\n options: Partial<TooltipOptions> = {}\n ): Tooltip | Tooltip[] {\n return super.init(els, options, Tooltip);\n }\n\n static getInstance(el: HTMLElement): Tooltip {\n return el['Expressive_Tooltip'];\n }\n\n destroy() {\n if (this.el.getAttribute('aria-describedby') === this.tooltipEl.id) {\n this.el.removeAttribute('aria-describedby');\n }\n this.tooltipEl.remove();\n this._removeEventHandlers();\n this.el['Expressive_Tooltip'] = undefined;\n }\n\n _appendTooltipEl() {\n this.tooltipEl = document.createElement('div');\n this.tooltipEl.classList.add('tooltip', 'material-tooltip');\n this.tooltipEl.id = `tooltip-${Utils.guid()}`;\n this.tooltipEl.setAttribute('role', 'tooltip');\n this.el.setAttribute('aria-describedby', this.tooltipEl.id);\n\n const tooltipContentEl = this.options.tooltipId\n ? document.getElementById(this.options.tooltipId)\n : document.createElement('div');\n if (this.options.tooltipId) {\n this.tooltipEl.classList.add('rich');\n }\n tooltipContentEl.style.display = '';\n tooltipContentEl.classList.add('tooltip-content');\n this._setTooltipContent(tooltipContentEl);\n this.tooltipEl.appendChild(tooltipContentEl);\n document.body.appendChild(this.tooltipEl);\n }\n\n _setTooltipContent(tooltipContentEl: HTMLElement) {\n if (this.options.tooltipId) return;\n tooltipContentEl.innerText = this.options.text;\n }\n\n _updateTooltipContent() {\n this._setTooltipContent(this.tooltipEl.querySelector('.tooltip-content'));\n }\n\n _setupEventHandlers() {\n this.el.addEventListener('mouseenter', this._handleMouseEnter);\n this.el.addEventListener('mouseleave', this._handleMouseLeave);\n this.el.addEventListener('focus', this._handleFocus, true);\n this.el.addEventListener('blur', this._handleBlur, true);\n }\n\n _removeEventHandlers() {\n this.el.removeEventListener('mouseenter', this._handleMouseEnter);\n this.el.removeEventListener('mouseleave', this._handleMouseLeave);\n this.el.removeEventListener('focus', this._handleFocus, true);\n this.el.removeEventListener('blur', this._handleBlur, true);\n }\n\n /**\n * Show tooltip.\n */\n open = (isManual: boolean) => {\n if (this.isOpen) return;\n isManual = isManual === undefined ? true : undefined; // Default value true\n this.isOpen = true;\n // Update tooltip content with HTML attribute options\n this.options = { ...this.options, ...this._getAttributeOptions() };\n this._updateTooltipContent();\n this._setEnterDelayTimeout(isManual);\n };\n\n /**\n * Hide tooltip.\n */\n close = () => {\n if (!this.isOpen) return;\n this.isHovered = false;\n this.isFocused = false;\n this.isOpen = false;\n this._setExitDelayTimeout();\n };\n\n _setExitDelayTimeout() {\n clearTimeout(this._exitDelayTimeout);\n this._exitDelayTimeout = setTimeout(() => {\n if (this.isHovered || this.isFocused) return;\n this._animateOut();\n }, this.options.exitDelay);\n }\n\n _setEnterDelayTimeout(isManual) {\n clearTimeout(this._enterDelayTimeout);\n this._enterDelayTimeout = setTimeout(() => {\n if (!this.isHovered && !this.isFocused && !isManual) return;\n this._animateIn();\n }, this.options.enterDelay);\n }\n\n _positionTooltip() {\n const tooltip: HTMLElement = this.tooltipEl;\n const origin = this.el as HTMLElement,\n originHeight = origin.offsetHeight,\n originWidth = origin.offsetWidth,\n tooltipHeight = tooltip.offsetHeight,\n tooltipWidth = tooltip.offsetWidth,\n margin = this.options.margin;\n\n this.xMovement = 0;\n this.yMovement = 0;\n\n const originRect = origin.getBoundingClientRect();\n let targetTop = originRect.top + Utils.getDocumentScrollTop();\n let targetLeft = originRect.left + Utils.getDocumentScrollLeft();\n if (this.options.position === 'top') {\n targetTop += -tooltipHeight - margin;\n targetLeft += originWidth / 2 - tooltipWidth / 2;\n this.yMovement = -this.options.transitionMovement;\n } else if (this.options.position === 'right') {\n targetTop += originHeight / 2 - tooltipHeight / 2;\n targetLeft += originWidth + margin;\n this.xMovement = this.options.transitionMovement;\n } else if (this.options.position === 'left') {\n targetTop += originHeight / 2 - tooltipHeight / 2;\n targetLeft += -tooltipWidth - margin;\n this.xMovement = -this.options.transitionMovement;\n } else {\n targetTop += originHeight + margin;\n targetLeft += originWidth / 2 - tooltipWidth / 2;\n this.yMovement = this.options.transitionMovement;\n }\n\n const newCoordinates = this._repositionWithinScreen(\n targetLeft,\n targetTop,\n tooltipWidth,\n tooltipHeight\n );\n\n tooltip.style.top = newCoordinates.y + 'px';\n tooltip.style.left = newCoordinates.x + 'px';\n }\n\n _repositionWithinScreen(x: number, y: number, width: number, height: number) {\n const scrollLeft = Utils.getDocumentScrollLeft();\n const scrollTop = Utils.getDocumentScrollTop();\n let newX = x - scrollLeft;\n let newY = y - scrollTop;\n\n const bounding: Bounding = {\n left: newX,\n top: newY,\n width: width,\n height: height\n };\n const offset = this.options.margin + this.options.transitionMovement;\n const edges = Utils.checkWithinContainer(document.body, bounding, offset);\n\n if (edges.left) {\n newX = offset;\n } else if (edges.right) {\n newX -= newX + width - window.innerWidth;\n }\n if (edges.top) {\n newY = offset;\n } else if (edges.bottom) {\n newY -= newY + height - window.innerHeight;\n }\n return {\n x: newX + scrollLeft,\n y: newY + scrollTop\n };\n }\n\n _animateIn() {\n this._positionTooltip();\n this.tooltipEl.style.visibility = 'visible';\n const duration = this.options.inDuration;\n // easeOutCubic\n this.tooltipEl.style.transition = `\n transform ${duration}ms ease-out,\n opacity ${duration}ms ease-out`;\n setTimeout(() => {\n this.tooltipEl.style.transform = `translateX(${this.xMovement}px) translateY(${this.yMovement}px)`;\n this.tooltipEl.style.opacity = (this.options.opacity || 1).toString();\n }, 1);\n }\n\n _animateOut() {\n const duration = this.options.outDuration;\n // easeOutCubic\n this.tooltipEl.style.transition = `\n transform ${duration}ms ease-out,\n opacity ${duration}ms ease-out`;\n setTimeout(() => {\n this.tooltipEl.style.transform = `translateX(0px) translateY(0px)`;\n this.tooltipEl.style.opacity = '0';\n }, 1);\n /*\n anim.remove(this.tooltipEl);\n anim({\n targets: this.tooltipEl,\n opacity: 0,\n translateX: 0,\n translateY: 0,\n duration: this.options.outDuration,\n easing: 'easeOutCubic'\n });\n */\n }\n\n _handleMouseEnter = () => {\n this.isHovered = true;\n this.isFocused = false; // Allows close of tooltip when opened by focus.\n this.open(false);\n };\n\n _handleMouseLeave = () => {\n this.isHovered = false;\n this.isFocused = false; // Allows close of tooltip when opened by focus.\n this.close();\n };\n\n _handleFocus = () => {\n if (Utils.tabPressed) {\n this.isFocused = true;\n this.open(false);\n }\n };\n\n _handleBlur = () => {\n this.isFocused = false;\n this.close();\n };\n\n _getAttributeOptions(): Partial<TooltipOptions> {\n const attributeOptions: Partial<TooltipOptions> = {};\n const tooltipTextOption = this.el.getAttribute('data-tooltip');\n const tooltipId = this.el.getAttribute('data-tooltip-id');\n const positionOption = this.el.getAttribute('data-position');\n if (tooltipTextOption) {\n attributeOptions.text = tooltipTextOption;\n }\n if (positionOption) {\n attributeOptions.position = positionOption as TooltipPosition;\n }\n if (tooltipId) {\n attributeOptions.tooltipId = tooltipId;\n }\n\n return attributeOptions;\n }\n}\n", "import { InitElements, MElement } from '../core/component';\nimport * as Components from './index';\nimport { CARDS_SELECTOR } from './cards';\n\n/**\n * The components `AutoInit()` starts, in initialization order, with the\n * selector each one claims.\n *\n * This table is the single source of truth: the options type below and the\n * init calls in `AutoInit()` are both derived from it, so wiring up a new\n * auto-initialized component means adding one line here (plus its export in\n * ./index.ts) - not four hand-synchronized edits that fail silently when one\n * is forgotten.\n *\n * A component that should only ever be constructed explicitly (Toast,\n * CharacterCounter, Range, ...) simply stays out of this table.\n */\nexport const AUTO_INIT_COMPONENTS = {\n Autocomplete: { component: Components.Autocomplete, selector: '.autocomplete' },\n // Shared with Cards.Init() - see CARDS_SELECTOR. This entry used to read\n // '.cards', which no card markup uses.\n Cards: { component: Components.Cards, selector: CARDS_SELECTOR },\n Carousel: { component: Components.Carousel, selector: '.carousel' },\n Chips: { component: Components.Chips, selector: '.chips' },\n Collapsible: { component: Components.Collapsible, selector: '.collapsible' },\n Datepicker: { component: Components.Datepicker, selector: '.datepicker' },\n Dropdown: { component: Components.Dropdown, selector: '.dropdown-trigger' },\n Lightbox: { component: Components.Lightbox, selector: '.lightboxed' },\n Modal: { component: Components.Modal, selector: '.modal' },\n Parallax: { component: Components.Parallax, selector: '.parallax' },\n Pushpin: { component: Components.Pushpin, selector: '.pushpin' },\n ScrollSpy: { component: Components.ScrollSpy, selector: '.scrollspy' },\n FormSelect: { component: Components.FormSelect, selector: 'select' },\n Sidenav: { component: Components.Sidenav, selector: '.sidenav' },\n Tabs: { component: Components.Tabs, selector: '.tabs' },\n TapTarget: { component: Components.TapTarget, selector: '.tap-target' },\n Timepicker: { component: Components.Timepicker, selector: '.timepicker' },\n Tooltip: { component: Components.Tooltip, selector: '.tooltipped' },\n FloatingActionButton: {\n component: Components.FloatingActionButton,\n selector: '.fixed-action-btn'\n }\n};\n\ntype Registry = typeof AUTO_INIT_COMPONENTS;\n\n/**\n * Per-component options accepted by {@link AutoInit}, derived from the table\n * above - each key takes that component's own options type.\n */\nexport type AutoInitOptions = {\n [K in keyof Registry]?: Partial<InstanceType<Registry[K]['component']>['options']>;\n};\n\n/** The shape every entry in the table satisfies; see the cast in AutoInit. */\ntype AutoInitable = {\n init(els: InitElements<MElement>, options: Partial<object>): unknown;\n};\n\n/**\n * Automatically initialize components.\n * @param context Root element to initialize. Defaults to `document.body`.\n * @param options Options for each component.\n */\nexport function AutoInit(\n context: HTMLElement = document.body,\n options?: Partial<AutoInitOptions>\n) {\n for (const name of Object.keys(AUTO_INIT_COMPONENTS) as (keyof Registry)[]) {\n const { component, selector } = AUTO_INIT_COMPONENTS[name];\n // `:is()` so that `:not(.no-autoinit)` applies to the whole selector. A\n // bare `${selector}:not(...)` binds the negation to the last alternative\n // only, which would silently break the opt-out for any comma-separated\n // entry (Cards is the first).\n const els = context.querySelectorAll(`:is(${selector}):not(.no-autoinit)`);\n // Each component's static `init` is overloaded; indexing the table widens\n // it to a union TypeScript cannot call, so narrow it once, here.\n (component as unknown as AutoInitable).init(els, options?.[name] ?? {});\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["el", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "li", "index", "el", "_defaults", "value", "realOption", "li", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults", "_defaults"]
|
|
7
|
+
}
|