@descope/web-components-ui 2.2.24 → 2.2.25

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.
Files changed (84) hide show
  1. package/README.md +1 -1
  2. package/dist/umd/1408.js +2 -2
  3. package/dist/umd/1453.js +177 -0
  4. package/dist/umd/{1995.js.LICENSE.txt → 1453.js.LICENSE.txt} +6 -0
  5. package/dist/umd/1453.js.map +1 -0
  6. package/dist/umd/1899.js +2 -2
  7. package/dist/umd/2562.js +3 -0
  8. package/dist/umd/2562.js.map +1 -0
  9. package/dist/umd/3620.js +3 -3
  10. package/dist/umd/4518.js +3 -3
  11. package/dist/umd/4550.js +2 -2
  12. package/dist/umd/4623.js +1 -1
  13. package/dist/umd/4914.js +1 -1
  14. package/dist/umd/4914.js.map +1 -1
  15. package/dist/umd/5260.js +2 -2
  16. package/dist/umd/5263.js +498 -0
  17. package/dist/umd/5263.js.LICENSE.txt +17 -0
  18. package/dist/umd/5263.js.map +1 -0
  19. package/dist/umd/5648.js +1 -1
  20. package/dist/umd/5966.js +125 -0
  21. package/dist/umd/5966.js.map +1 -0
  22. package/dist/umd/6477.js +3 -3
  23. package/dist/umd/7291.js +2 -2
  24. package/dist/umd/7387.js +144 -0
  25. package/dist/umd/{6419.js.LICENSE.txt → 7387.js.LICENSE.txt} +8 -2
  26. package/dist/umd/7387.js.map +1 -0
  27. package/dist/umd/7774.js +3 -3
  28. package/dist/umd/7939.js +1 -1
  29. package/dist/umd/8202.js +82 -0
  30. package/dist/umd/{descope-apps-list.js.LICENSE.txt → 8202.js.LICENSE.txt} +0 -6
  31. package/dist/umd/8202.js.map +1 -0
  32. package/dist/umd/8983.js +1 -1
  33. package/dist/umd/9117.js +3 -3
  34. package/dist/umd/9970.js +1 -1
  35. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +1 -1
  36. package/dist/umd/descope-apps-list.js +1 -17
  37. package/dist/umd/descope-apps-list.js.map +1 -1
  38. package/dist/umd/descope-avatar.js +161 -2
  39. package/dist/umd/descope-avatar.js.LICENSE.txt +6 -0
  40. package/dist/umd/descope-avatar.js.map +1 -1
  41. package/dist/umd/descope-button.js +1 -1
  42. package/dist/umd/descope-combo-box.js +2 -2
  43. package/dist/umd/descope-date-field-index-js.js +1 -1
  44. package/dist/umd/descope-email-field-index-js.js +1 -1
  45. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +1 -1
  46. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.map +1 -1
  47. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js +1 -1
  48. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js.map +1 -1
  49. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +1 -1
  50. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js.map +1 -1
  51. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js +1 -1
  52. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.map +1 -1
  53. package/dist/umd/descope-outbound-app-button.js +1 -1
  54. package/dist/umd/descope-outbound-apps.js +1 -338
  55. package/dist/umd/descope-outbound-apps.js.map +1 -1
  56. package/dist/umd/descope-passcode-index-js.js +1 -1
  57. package/dist/umd/descope-security-questions-verify-index-js.js +1 -1
  58. package/dist/umd/descope-text-field-index-js.js +1 -1
  59. package/dist/umd/descope-timer-button.js +1 -1
  60. package/dist/umd/descope-tooltip.js +2 -1
  61. package/dist/umd/descope-tooltip.js.LICENSE.txt +11 -0
  62. package/dist/umd/descope-tooltip.js.map +1 -1
  63. package/dist/umd/descope-upload-file-index-js.js +1 -1
  64. package/dist/umd/descope-user-attribute-index-js.js +1 -1
  65. package/dist/umd/descope-user-auth-method-index-js.js +1 -1
  66. package/dist/umd/index.js +1 -1
  67. package/dist/umd/index.js.map +1 -1
  68. package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +1 -1
  69. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
  70. package/package.json +29 -29
  71. package/dist/umd/1519.js +0 -203
  72. package/dist/umd/1519.js.LICENSE.txt +0 -51
  73. package/dist/umd/1519.js.map +0 -1
  74. package/dist/umd/1995.js +0 -241
  75. package/dist/umd/1995.js.map +0 -1
  76. package/dist/umd/6419.js +0 -82
  77. package/dist/umd/6419.js.map +0 -1
  78. package/dist/umd/676.js +0 -3
  79. package/dist/umd/676.js.map +0 -1
  80. package/dist/umd/8618.js +0 -125
  81. package/dist/umd/8618.js.map +0 -1
  82. package/dist/umd/descope-outbound-apps.js.LICENSE.txt +0 -5
  83. /package/dist/umd/{676.js.LICENSE.txt → 2562.js.LICENSE.txt} +0 -0
  84. /package/dist/umd/{8618.js.LICENSE.txt → 5966.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"7387.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../../../node_modules/@open-wc/dedupe-mixin/src/dedupeMixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/polylit-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/popover/src/vaadin-popover-overlay-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/popover/src/vaadin-popover-overlay.js","webpack://@descope/web-components-ui/../../../node_modules/lit-html/directives/if-defined.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/popover/src/vaadin-popover-target-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/popover/src/vaadin-popover.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/popover/src/vaadin-popover-position-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/text-field/src/vaadin-text-field-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/text-field/src/vaadin-text-field.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/input-field-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/text-field/theme/lumo/vaadin-text-field-styles.js"],"sourcesContent":["const appliedClassMixins = new WeakMap();\n\n/** Vefify if the Mixin was previously applyed\n * @private\n * @param {function} mixin Mixin being applyed\n * @param {object} superClass Class receiving the new mixin\n * @returns {boolean}\n */\nfunction wasMixinPreviouslyApplied(mixin, superClass) {\n let klass = superClass;\n while (klass) {\n if (appliedClassMixins.get(klass) === mixin) {\n return true;\n }\n klass = Object.getPrototypeOf(klass);\n }\n return false;\n}\n\n/** Apply each mixin in the chain to make sure they are not applied more than once to the final class.\n * @export\n * @param {function} mixin Mixin to be applyed\n * @returns {object} Mixed class with mixin applied\n */\nexport function dedupeMixin(mixin) {\n return superClass => {\n if (wasMixinPreviouslyApplied(mixin, superClass)) {\n return superClass;\n }\n const mixedClass = mixin(superClass);\n appliedClassMixins.set(mixedClass, mixin);\n return mixedClass;\n };\n}\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupeMixin } from '@open-wc/dedupe-mixin';\nimport { get, set } from './path-utils.js';\n\nconst caseMap = {};\n\nconst CAMEL_TO_DASH = /([A-Z])/gu;\n\nfunction camelToDash(camel) {\n if (!caseMap[camel]) {\n caseMap[camel] = camel.replace(CAMEL_TO_DASH, '-$1').toLowerCase();\n }\n return caseMap[camel];\n}\n\nfunction upper(name) {\n return name[0].toUpperCase() + name.substring(1);\n}\n\nfunction parseObserver(observerString) {\n const [method, rest] = observerString.split('(');\n const observerProps = rest\n .replace(')', '')\n .split(',')\n .map((prop) => prop.trim());\n\n return {\n method,\n observerProps,\n };\n}\n\nfunction getOrCreateMap(obj, name) {\n if (!Object.prototype.hasOwnProperty.call(obj, name)) {\n // Clone any existing entries (superclasses)\n obj[name] = new Map(obj[name]);\n }\n return obj[name];\n}\n\nconst PolylitMixinImplementation = (superclass) => {\n class PolylitMixinClass extends superclass {\n static createProperty(name, options) {\n if ([String, Boolean, Number, Array].includes(options)) {\n options = {\n type: options,\n };\n }\n\n if (options.reflectToAttribute) {\n options.reflect = true;\n }\n\n super.createProperty(name, options);\n }\n\n static getOrCreateMap(name) {\n return getOrCreateMap(this, name);\n }\n\n /**\n * @protected\n * @override\n */\n static finalize() {\n super.finalize();\n\n if (Array.isArray(this.observers)) {\n const complexObservers = this.getOrCreateMap('__complexObservers');\n\n this.observers.forEach((observer) => {\n const { method, observerProps } = parseObserver(observer);\n complexObservers.set(method, observerProps);\n });\n }\n }\n\n static addCheckedInitializer(initializer) {\n super.addInitializer((instance) => {\n // Prevent initializer from affecting superclass\n if (instance instanceof this) {\n initializer(instance);\n }\n });\n }\n\n static getPropertyDescriptor(name, key, options) {\n const defaultDescriptor = super.getPropertyDescriptor(name, key, options);\n\n let result = defaultDescriptor;\n\n if (options.sync) {\n result = {\n get: defaultDescriptor.get,\n set(value) {\n const oldValue = this[name];\n this[key] = value;\n this.requestUpdate(name, oldValue, options);\n\n // Enforce synchronous update\n if (this.hasUpdated) {\n this.performUpdate();\n }\n },\n configurable: true,\n enumerable: true,\n };\n }\n\n if (options.readOnly) {\n const setter = defaultDescriptor.set;\n\n this.addCheckedInitializer((instance) => {\n // This is run during construction of the element\n instance[`_set${upper(name)}`] = function (value) {\n setter.call(instance, value);\n\n if (options.sync) {\n this.performUpdate();\n }\n };\n });\n\n result = {\n get: defaultDescriptor.get,\n set() {\n // Do nothing, property is read-only.\n },\n configurable: true,\n enumerable: true,\n };\n }\n\n if ('value' in options) {\n // Set the default value\n this.addCheckedInitializer((instance) => {\n const value = typeof options.value === 'function' ? options.value.call(instance) : options.value;\n\n if (options.readOnly) {\n instance[`_set${upper(name)}`](value);\n } else {\n instance[name] = value;\n }\n });\n }\n\n if (options.observer) {\n const method = options.observer;\n\n // Set this method\n this.getOrCreateMap('__observers').set(name, method);\n\n this.addCheckedInitializer((instance) => {\n if (!instance[method]) {\n console.warn(`observer method ${method} not defined`);\n }\n });\n }\n\n if (options.notify) {\n if (!this.__notifyProps) {\n this.__notifyProps = new Set();\n // eslint-disable-next-line no-prototype-builtins\n } else if (!this.hasOwnProperty('__notifyProps')) {\n // Clone any existing observers (superclasses)\n const notifyProps = this.__notifyProps;\n this.__notifyProps = new Set(notifyProps);\n }\n\n // Set this method\n this.__notifyProps.add(name);\n }\n\n if (options.computed) {\n const assignComputedMethod = `__assignComputed${name}`;\n const observer = parseObserver(options.computed);\n this.prototype[assignComputedMethod] = function (...props) {\n this[name] = this[observer.method](...props);\n };\n\n this.getOrCreateMap('__complexObservers').set(assignComputedMethod, observer.observerProps);\n }\n\n if (!options.attribute) {\n options.attribute = camelToDash(name);\n }\n\n return result;\n }\n\n /** @protected */\n firstUpdated() {\n super.firstUpdated();\n\n if (!this.$) {\n this.$ = {};\n }\n\n this.renderRoot.querySelectorAll('[id]').forEach((node) => {\n this.$[node.id] = node;\n });\n }\n\n /** @protected */\n ready() {}\n\n /** @protected */\n updated(props) {\n if (this.constructor.__observers) {\n this.__runObservers(props, this.constructor.__observers);\n }\n\n if (this.constructor.__complexObservers) {\n this.__runComplexObservers(props, this.constructor.__complexObservers);\n }\n\n if (this.__dynamicObservers) {\n this.__runComplexObservers(props, this.__dynamicObservers);\n }\n\n if (this.constructor.__notifyProps) {\n this.__runNotifyProps(props, this.constructor.__notifyProps);\n }\n\n if (!this.__isReadyInvoked) {\n this.__isReadyInvoked = true;\n this.ready();\n }\n }\n\n /** @protected */\n _createMethodObserver(observer) {\n const dynamicObservers = getOrCreateMap(this, '__dynamicObservers');\n const { method, observerProps } = parseObserver(observer);\n dynamicObservers.set(method, observerProps);\n }\n\n /** @private */\n __runComplexObservers(props, observers) {\n observers.forEach((observerProps, method) => {\n if (observerProps.some((prop) => props.has(prop))) {\n if (!this[method]) {\n console.warn(`observer method ${method} not defined`);\n } else {\n this[method](...observerProps.map((prop) => this[prop]));\n }\n }\n });\n }\n\n /** @private */\n __runObservers(props, observers) {\n props.forEach((v, k) => {\n const observer = observers.get(k);\n if (observer !== undefined && this[observer]) {\n this[observer](this[k], v);\n }\n });\n }\n\n /** @private */\n __runNotifyProps(props, notifyProps) {\n props.forEach((_, k) => {\n if (notifyProps.has(k)) {\n this.dispatchEvent(\n new CustomEvent(`${camelToDash(k)}-changed`, {\n detail: {\n value: this[k],\n },\n }),\n );\n }\n });\n }\n\n /** @protected */\n _get(path, object) {\n return get(path, object);\n }\n\n /** @protected */\n _set(path, value, object) {\n set(path, value, object);\n }\n }\n\n return PolylitMixinClass;\n};\n\nexport const PolylitMixin = dedupeMixin(PolylitMixinImplementation);\n","/**\n * @license\n * Copyright (c) 2022 - 2024 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';\nimport { PositionMixin } from '@vaadin/overlay/src/vaadin-overlay-position-mixin.js';\n\n/**\n * A mixin providing common popover overlay functionality.\n *\n * @polymerMixin\n * @mixes PositionMixin\n * @mixes OverlayMixin\n */\nexport const PopoverOverlayMixin = (superClass) =>\n class PopoverOverlayMixinClass extends PositionMixin(OverlayMixin(superClass)) {\n static get properties() {\n return {\n position: {\n type: String,\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * Tag name prefix used by custom properties.\n * @protected\n * @return {string}\n */\n get _tagNamePrefix() {\n return 'vaadin-popover';\n }\n\n requestContentUpdate() {\n super.requestContentUpdate();\n\n // Copy custom properties from the owner\n if (this.positionTarget && this.owner) {\n const style = getComputedStyle(this.owner);\n ['top', 'bottom', 'start', 'end'].forEach((prop) => {\n this.style.setProperty(\n `--${this._tagNamePrefix}-offset-${prop}`,\n style.getPropertyValue(`--${this._tagNamePrefix}-offset-${prop}`),\n );\n });\n }\n }\n\n /**\n * @protected\n * @override\n */\n _updatePosition() {\n super._updatePosition();\n\n if (!this.positionTarget || !this.opened) {\n return;\n }\n\n this.removeAttribute('arrow-centered');\n\n // Center the overlay horizontally\n if (this.position === 'bottom' || this.position === 'top') {\n const targetRect = this.positionTarget.getBoundingClientRect();\n const overlayRect = this.$.overlay.getBoundingClientRect();\n\n const offset = targetRect.width / 2 - overlayRect.width / 2;\n\n if (this.style.left) {\n const left = overlayRect.left + offset;\n if (left > 0) {\n this.style.left = `${left}px`;\n // Center the pointer arrow horizontally\n this.setAttribute('arrow-centered', '');\n }\n }\n\n if (this.style.right) {\n const right = parseFloat(this.style.right) + offset;\n if (right > 0) {\n this.style.right = `${right}px`;\n // Center the pointer arrow horizontally\n this.setAttribute('arrow-centered', '');\n }\n }\n }\n\n // Center the overlay vertically\n if (this.position === 'start' || this.position === 'end') {\n const targetRect = this.positionTarget.getBoundingClientRect();\n const overlayRect = this.$.overlay.getBoundingClientRect();\n\n const offset = targetRect.height / 2 - overlayRect.height / 2;\n this.style.top = `${overlayRect.top + offset}px`;\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2024 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css, html, LitElement } from 'lit';\nimport { isElementFocused } from '@vaadin/a11y-base/src/focus-utils.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';\nimport { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';\nimport { overlayStyles } from '@vaadin/overlay/src/vaadin-overlay-styles.js';\nimport { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { PopoverOverlayMixin } from './vaadin-popover-overlay-mixin.js';\n\n/**\n * An element used internally by `<vaadin-popover>`. Not intended to be used separately.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes DirMixin\n * @mixes PopoverOverlayMixin\n * @mixes ThemableMixin\n * @private\n */\nclass PopoverOverlay extends PopoverOverlayMixin(DirMixin(ThemableMixin(PolylitMixin(LitElement)))) {\n static get is() {\n return 'vaadin-popover-overlay';\n }\n\n static get styles() {\n return [\n overlayStyles,\n css`\n :host {\n --_vaadin-popover-content-width: auto;\n --_vaadin-popover-content-height: auto;\n }\n\n :host([modeless][with-backdrop]) [part='backdrop'] {\n pointer-events: none;\n }\n\n :host([position^='top'][top-aligned]) [part='overlay'],\n :host([position^='bottom'][top-aligned]) [part='overlay'] {\n margin-top: var(--vaadin-popover-offset-top, 0);\n }\n\n [part='overlay'] {\n position: relative;\n overflow: visible;\n max-height: 100%;\n }\n\n [part='content'] {\n overflow: auto;\n box-sizing: border-box;\n max-height: 100%;\n width: var(--_vaadin-popover-content-width);\n height: var(--_vaadin-popover-content-height);\n }\n\n /* Increase the area of the popover so the pointer can go from the target directly to it. */\n [part='overlay']::before {\n position: absolute;\n content: '';\n inset-block: calc(var(--vaadin-popover-offset-top, 0) * -1) calc(var(--vaadin-popover-offset-bottom, 0) * -1);\n inset-inline: calc(var(--vaadin-popover-offset-start, 0) * -1) calc(var(--vaadin-popover-offset-end, 0) * -1);\n z-index: -1;\n pointer-events: auto;\n }\n\n :host([position^='top'][bottom-aligned]) [part='overlay'],\n :host([position^='bottom'][bottom-aligned]) [part='overlay'] {\n margin-bottom: var(--vaadin-popover-offset-bottom, 0);\n }\n\n :host([position^='start'][start-aligned]) [part='overlay'],\n :host([position^='end'][start-aligned]) [part='overlay'] {\n margin-inline-start: var(--vaadin-popover-offset-start, 0);\n }\n\n :host([position^='start'][end-aligned]) [part='overlay'],\n :host([position^='end'][end-aligned]) [part='overlay'] {\n margin-inline-end: var(--vaadin-popover-offset-end, 0);\n }\n\n [part='arrow'] {\n display: none;\n position: absolute;\n height: 0;\n width: 0;\n }\n\n :host([theme~='arrow']) [part='arrow'] {\n display: block;\n }\n `,\n ];\n }\n\n /** @protected */\n render() {\n return html`\n <div id=\"backdrop\" part=\"backdrop\" hidden ?hidden=\"${!this.withBackdrop}\"></div>\n <div part=\"overlay\" id=\"overlay\" tabindex=\"0\">\n <div part=\"arrow\"></div>\n <div part=\"content\" id=\"content\"><slot></slot></div>\n </div>\n `;\n }\n\n /**\n * Override method inherited from `OverlayMixin` to not close\n * modal popover on outside click when opening on focus.\n *\n * @param {Event} event\n * @return {boolean}\n * @protected\n */\n _shouldCloseOnOutsideClick(event) {\n // When opening a modal popover on mouse focusin, the focus moves to the overlay\n // and then outside click listener is fired. Detect this case and prevent closing.\n if (this.owner.__hasTrigger('focus') && isElementFocused(this)) {\n return false;\n }\n\n return super._shouldCloseOnOutsideClick(event);\n }\n}\n\ndefineCustomElement(PopoverOverlay);\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","/**\n * @license\n * Copyright (c) 2024 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { microTask } from '@vaadin/component-base/src/async.js';\nimport { Debouncer } from '@vaadin/component-base/src/debounce.js';\n\n/**\n * A mixin providing popover target functionality.\n *\n * @polymerMixin\n */\nexport const PopoverTargetMixin = (superClass) =>\n class PopoverTargetMixinClass extends superClass {\n static get properties() {\n return {\n /**\n * The id of the element to be used as `target` value.\n * The element should be in the DOM by the time when\n * the attribute is set, otherwise a warning is shown.\n */\n for: {\n type: String,\n observer: '__forChanged',\n },\n\n /**\n * Reference to the DOM element used both to trigger the overlay\n * by user interaction and to visually position it on the screen.\n *\n * Defaults to an element referenced with `for` attribute, in\n * which case it must be located in the same shadow scope.\n */\n target: {\n type: Object,\n observer: '__targetChanged',\n },\n };\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n\n if (this.target) {\n this._addTargetListeners(this.target);\n }\n }\n\n /** @protected */\n disconnectedCallback() {\n super.disconnectedCallback();\n\n if (this.target) {\n this._removeTargetListeners(this.target);\n }\n }\n\n /** @private */\n __forChanged(forId) {\n if (forId) {\n this.__setTargetByIdDebouncer = Debouncer.debounce(this.__setTargetByIdDebouncer, microTask, () =>\n this.__setTargetById(forId),\n );\n }\n }\n\n /** @private */\n __setTargetById(targetId) {\n if (!this.isConnected) {\n return;\n }\n\n const target = this.getRootNode().getElementById(targetId);\n\n if (target) {\n this.target = target;\n } else {\n console.warn(`No element with id=\"${targetId}\" set via \"for\" property found on the page.`);\n }\n }\n\n /** @private */\n __targetChanged(target, oldTarget) {\n if (oldTarget) {\n this._removeTargetListeners(oldTarget);\n }\n\n if (target) {\n this._addTargetListeners(target);\n }\n }\n\n /**\n * @param {HTMLElement} _target\n * @protected\n */\n _addTargetListeners(_target) {\n // To be implemented.\n }\n\n /**\n * @param {HTMLElement} _target\n * @protected\n */\n _removeTargetListeners(_target) {\n // To be implemented.\n }\n };\n","/**\n * @license\n * Copyright (c) 2024 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './vaadin-popover-overlay.js';\nimport { css, html, LitElement } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {\n getDeepActiveElement,\n getFocusableElements,\n isElementFocused,\n isKeyboardActive,\n} from '@vaadin/a11y-base/src/focus-utils.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { OverlayClassMixin } from '@vaadin/component-base/src/overlay-class-mixin.js';\nimport { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';\nimport { generateUniqueId } from '@vaadin/component-base/src/unique-id-utils.js';\nimport { isLastOverlay } from '@vaadin/overlay/src/vaadin-overlay-stack-mixin.js';\nimport { ThemePropertyMixin } from '@vaadin/vaadin-themable-mixin/vaadin-theme-property-mixin.js';\nimport { PopoverPositionMixin } from './vaadin-popover-position-mixin.js';\nimport { PopoverTargetMixin } from './vaadin-popover-target-mixin.js';\n\nconst DEFAULT_DELAY = 500;\n\nlet defaultFocusDelay = DEFAULT_DELAY;\nlet defaultHoverDelay = DEFAULT_DELAY;\nlet defaultHideDelay = DEFAULT_DELAY;\n\n/**\n * Controller for handling popover opened state.\n */\nclass PopoverOpenedStateController {\n constructor(host) {\n this.host = host;\n }\n\n /**\n * Whether closing is currently in progress.\n * @return {boolean}\n */\n get isClosing() {\n return this.__closeTimeout != null;\n }\n\n /** @private */\n get __focusDelay() {\n const popover = this.host;\n return popover.focusDelay != null && popover.focusDelay >= 0 ? popover.focusDelay : defaultFocusDelay;\n }\n\n /** @private */\n get __hoverDelay() {\n const popover = this.host;\n return popover.hoverDelay != null && popover.hoverDelay >= 0 ? popover.hoverDelay : defaultHoverDelay;\n }\n\n /** @private */\n get __hideDelay() {\n const popover = this.host;\n return popover.hideDelay != null && popover.hideDelay >= 0 ? popover.hideDelay : defaultHideDelay;\n }\n\n /**\n * Schedule opening the popover.\n * @param {Object} options\n */\n open(options = { immediate: false }) {\n const { immediate, trigger } = options;\n const shouldDelayHover = trigger === 'hover' && this.__hoverDelay > 0;\n const shouldDelayFocus = trigger === 'focus' && this.__focusDelay > 0;\n\n if (!immediate && (shouldDelayHover || shouldDelayFocus) && !this.__closeTimeout) {\n this.__scheduleOpen(trigger);\n } else {\n this.__showPopover();\n }\n }\n\n /**\n * Schedule closing the popover.\n * @param {boolean} immediate\n */\n close(immediate) {\n if (!immediate && this.__hideDelay > 0) {\n this.__scheduleClose();\n } else {\n this.__abortClose();\n this.__setOpened(false);\n }\n\n this.__abortOpen();\n }\n\n /** @private */\n __setOpened(opened) {\n this.host.opened = opened;\n }\n\n /** @private */\n __showPopover() {\n this.__abortClose();\n this.__setOpened(true);\n }\n\n /** @private */\n __abortClose() {\n if (this.__closeTimeout) {\n clearTimeout(this.__closeTimeout);\n this.__closeTimeout = null;\n }\n }\n\n /** @private */\n __abortOpen() {\n if (this.__openTimeout) {\n clearTimeout(this.__openTimeout);\n this.__openTimeout = null;\n }\n }\n\n /** @private */\n __scheduleClose() {\n this.__closeTimeout = setTimeout(() => {\n this.__closeTimeout = null;\n this.__setOpened(false);\n }, this.__hideDelay);\n }\n\n /** @private */\n __scheduleOpen(trigger) {\n this.__abortOpen();\n\n const delay = trigger === 'focus' ? this.__focusDelay : this.__hoverDelay;\n this.__openTimeout = setTimeout(() => {\n this.__openTimeout = null;\n this.__showPopover();\n }, delay);\n }\n}\n\n/**\n * `<vaadin-popover>` is a Web Component for creating overlays\n * that are positioned next to specified DOM element (target).\n *\n * Unlike `<vaadin-tooltip>`, the popover supports rich content\n * that can be provided by using `renderer` function.\n *\n * ### Styling\n *\n * `<vaadin-popover>` uses `<vaadin-popover-overlay>` internal\n * themable component as the actual visible overlay.\n *\n * See [`<vaadin-overlay>`](#/elements/vaadin-overlay) documentation\n * for `<vaadin-popover-overlay>` parts.\n *\n * In addition to `<vaadin-overlay>` parts, the following parts are available for styling:\n *\n * Part name | Description\n * -----------------|-------------------------------------------\n * `arrow` | Optional arrow pointing to the target when using `theme=\"arrow\"`\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description\n * -----------------|----------------------------------------\n * `position` | Reflects the `position` property value.\n *\n * Note: the `theme` attribute value set on `<vaadin-popover>` is\n * propagated to the internal `<vaadin-popover-overlay>` component.\n *\n * ### Custom CSS Properties\n *\n * The following custom CSS properties are available on the `<vaadin-popover>` element:\n *\n * Custom CSS property | Description\n * ---------------------------------|-------------\n * `--vaadin-popover-offset-top` | Used as an offset when the popover is aligned vertically below the target\n * `--vaadin-popover-offset-bottom` | Used as an offset when the popover is aligned vertically above the target\n * `--vaadin-popover-offset-start` | Used as an offset when the popover is aligned horizontally after the target\n * `--vaadin-popover-offset-end` | Used as an offset when the popover is aligned horizontally before the target\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @fires {CustomEvent} opened-changed - Fired when the `opened` property changes.\n * @fires {CustomEvent} closed - Fired when the popover is closed.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ElementMixin\n * @mixes OverlayClassMixin\n * @mixes PopoverPositionMixin\n * @mixes PopoverTargetMixin\n * @mixes ThemePropertyMixin\n */\nclass Popover extends PopoverPositionMixin(\n PopoverTargetMixin(OverlayClassMixin(ThemePropertyMixin(ElementMixin(PolylitMixin(LitElement))))),\n) {\n static get is() {\n return 'vaadin-popover';\n }\n\n static get styles() {\n return css`\n :host {\n display: none !important;\n }\n `;\n }\n\n static get properties() {\n return {\n /**\n * String used to label the overlay to screen reader users.\n *\n * @attr {string} accessible-name\n */\n accessibleName: {\n type: String,\n },\n\n /**\n * Id of the element used as label of the overlay to screen reader users.\n *\n * @attr {string} accessible-name-ref\n */\n accessibleNameRef: {\n type: String,\n },\n\n /**\n * When true, the popover content automatically receives focus after\n * it is opened. Modal popovers use this behavior by default.\n */\n autofocus: {\n type: Boolean,\n },\n\n /**\n * Height to be set on the overlay content.\n *\n * @attr {string} content-height\n */\n contentHeight: {\n type: String,\n },\n\n /**\n * Width to be set on the overlay content.\n *\n * @attr {string} content-width\n */\n contentWidth: {\n type: String,\n },\n\n /**\n * The delay in milliseconds before the popover is opened\n * on focus when the corresponding trigger is used.\n *\n * When not specified, the global default (500ms) is used.\n *\n * @attr {number} focus-delay\n */\n focusDelay: {\n type: Number,\n },\n\n /**\n * The delay in milliseconds before the popover is closed\n * on losing hover, when the corresponding trigger is used.\n * On blur, the popover is closed immediately.\n *\n * When not specified, the global default (500ms) is used.\n *\n * @attr {number} hide-delay\n */\n hideDelay: {\n type: Number,\n },\n\n /**\n * The delay in milliseconds before the popover is opened\n * on hover when the corresponding trigger is used.\n *\n * When not specified, the global default (500ms) is used.\n *\n * @attr {number} hover-delay\n */\n hoverDelay: {\n type: Number,\n },\n\n /**\n * True if the popover overlay is opened, false otherwise.\n */\n opened: {\n type: Boolean,\n value: false,\n notify: true,\n observer: '__openedChanged',\n },\n\n /**\n * The `role` attribute value to be set on the overlay.\n *\n * @attr {string} overlay-role\n */\n overlayRole: {\n type: String,\n value: 'dialog',\n },\n\n /**\n * Custom function for rendering the content of the overlay.\n * Receives two arguments:\n *\n * - `root` The root container DOM element. Append your content to it.\n * - `popover` The reference to the `vaadin-popover` element (overlay host).\n */\n renderer: {\n type: Object,\n },\n\n /**\n * When true, the popover prevents interacting with background elements\n * by setting `pointer-events` style on the document body to `none`.\n * This also enables trapping focus inside the overlay.\n */\n modal: {\n type: Boolean,\n value: false,\n },\n\n /**\n * Set to true to disable closing popover overlay on outside click.\n *\n * @attr {boolean} no-close-on-outside-click\n */\n noCloseOnOutsideClick: {\n type: Boolean,\n value: false,\n },\n\n /**\n * Set to true to disable closing popover overlay on Escape press.\n * When the popover is modal, pressing Escape anywhere in the\n * document closes the overlay. Otherwise, only Escape press\n * from the popover itself or its target closes the overlay.\n *\n * @attr {boolean} no-close-on-esc\n */\n noCloseOnEsc: {\n type: Boolean,\n value: false,\n },\n\n /**\n * Popover trigger mode, used to configure how the overlay is opened or closed.\n * Could be set to multiple by providing an array, e.g. `trigger = ['hover', 'focus']`.\n *\n * Supported values:\n * - `click` (default) - opens and closes on target click.\n * - `hover` - opens on target mouseenter, closes on target mouseleave. Moving mouse\n * to the popover overlay content keeps the overlay opened.\n * - `focus` - opens on target focus, closes on target blur. Moving focus to the\n * popover overlay content keeps the overlay opened.\n *\n * In addition to the behavior specified by `trigger`, the popover can be closed by:\n * - pressing Escape key (unless `noCloseOnEsc` property is true)\n * - outside click (unless `noCloseOnOutsideClick` property is true)\n *\n * When setting `trigger` property to `null`, `undefined` or empty array, the popover\n * can be only opened or closed programmatically by changing `opened` property.\n */\n trigger: {\n type: Array,\n value: () => ['click'],\n },\n\n /**\n * When true, the overlay has a backdrop (modality curtain) on top of the\n * underlying page content, covering the whole viewport.\n *\n * @attr {boolean} with-backdrop\n */\n withBackdrop: {\n type: Boolean,\n value: false,\n },\n\n /** @private */\n __shouldRestoreFocus: {\n type: Boolean,\n value: false,\n sync: true,\n },\n\n /** @private */\n __overlayId: {\n type: String,\n },\n };\n }\n\n static get observers() {\n return [\n '__updateContentHeight(contentHeight, _overlayElement)',\n '__updateContentWidth(contentWidth, _overlayElement)',\n '__openedOrTargetChanged(opened, target)',\n '__overlayRoleOrTargetChanged(overlayRole, target)',\n ];\n }\n\n /**\n * Sets the default focus delay to be used by all popover instances,\n * except for those that have focus delay configured using property.\n *\n * @param {number} focusDelay\n */\n static setDefaultFocusDelay(focusDelay) {\n defaultFocusDelay = focusDelay != null && focusDelay >= 0 ? focusDelay : DEFAULT_DELAY;\n }\n\n /**\n * Sets the default hide delay to be used by all popover instances,\n * except for those that have hide delay configured using property.\n *\n * @param {number} hideDelay\n */\n static setDefaultHideDelay(hideDelay) {\n defaultHideDelay = hideDelay != null && hideDelay >= 0 ? hideDelay : DEFAULT_DELAY;\n }\n\n /**\n * Sets the default hover delay to be used by all popover instances,\n * except for those that have hover delay configured using property.\n *\n * @param {number} hoverDelay\n */\n static setDefaultHoverDelay(hoverDelay) {\n defaultHoverDelay = hoverDelay != null && hoverDelay >= 0 ? hoverDelay : DEFAULT_DELAY;\n }\n\n constructor() {\n super();\n\n this.__overlayId = `vaadin-popover-${generateUniqueId()}`;\n\n this.__onGlobalClick = this.__onGlobalClick.bind(this);\n this.__onGlobalKeyDown = this.__onGlobalKeyDown.bind(this);\n this.__onTargetClick = this.__onTargetClick.bind(this);\n this.__onTargetFocusIn = this.__onTargetFocusIn.bind(this);\n this.__onTargetFocusOut = this.__onTargetFocusOut.bind(this);\n this.__onTargetMouseEnter = this.__onTargetMouseEnter.bind(this);\n this.__onTargetMouseLeave = this.__onTargetMouseLeave.bind(this);\n\n this._openedStateController = new PopoverOpenedStateController(this);\n }\n\n /** @protected */\n render() {\n const effectivePosition = this.__effectivePosition;\n\n return html`\n <vaadin-popover-overlay\n id=\"${this.__overlayId}\"\n role=\"${this.overlayRole}\"\n aria-label=\"${ifDefined(this.accessibleName)}\"\n aria-labelledby=\"${ifDefined(this.accessibleNameRef)}\"\n .renderer=\"${this.renderer}\"\n .owner=\"${this}\"\n theme=\"${ifDefined(this._theme)}\"\n .positionTarget=\"${this.target}\"\n .position=\"${effectivePosition}\"\n .opened=\"${this.opened}\"\n .modeless=\"${!this.modal}\"\n .focusTrap=\"${this.modal}\"\n .withBackdrop=\"${this.withBackdrop}\"\n ?no-horizontal-overlap=\"${this.__computeNoHorizontalOverlap(effectivePosition)}\"\n ?no-vertical-overlap=\"${this.__computeNoVerticalOverlap(effectivePosition)}\"\n .horizontalAlign=\"${this.__computeHorizontalAlign(effectivePosition)}\"\n .verticalAlign=\"${this.__computeVerticalAlign(effectivePosition)}\"\n @mousedown=\"${this.__onOverlayMouseDown}\"\n @mouseenter=\"${this.__onOverlayMouseEnter}\"\n @mouseleave=\"${this.__onOverlayMouseLeave}\"\n @focusin=\"${this.__onOverlayFocusIn}\"\n @focusout=\"${this.__onOverlayFocusOut}\"\n @opened-changed=\"${this.__onOpenedChanged}\"\n .restoreFocusOnClose=\"${this.__shouldRestoreFocus}\"\n .restoreFocusNode=\"${this.target}\"\n @vaadin-overlay-escape-press=\"${this.__onEscapePress}\"\n @vaadin-overlay-outside-click=\"${this.__onOutsideClick}\"\n @vaadin-overlay-open=\"${this.__onOverlayOpened}\"\n @vaadin-overlay-closed=\"${this.__onOverlayClosed}\"\n ></vaadin-popover-overlay>\n `;\n }\n\n /**\n * Requests an update for the content of the popover.\n * While performing the update, it invokes the renderer passed in the `renderer` property.\n *\n * It is not guaranteed that the update happens immediately (synchronously) after it is requested.\n */\n requestContentUpdate() {\n if (!this.renderer || !this._overlayElement) {\n return;\n }\n\n this._overlayElement.requestContentUpdate();\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._overlayElement = this.shadowRoot.querySelector('vaadin-popover-overlay');\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n\n document.documentElement.addEventListener('click', this.__onGlobalClick, true);\n }\n\n /** @protected */\n disconnectedCallback() {\n super.disconnectedCallback();\n\n document.documentElement.removeEventListener('click', this.__onGlobalClick, true);\n\n this._openedStateController.close(true);\n }\n\n /**\n * @param {HTMLElement} target\n * @protected\n * @override\n */\n _addTargetListeners(target) {\n target.addEventListener('click', this.__onTargetClick);\n target.addEventListener('mouseenter', this.__onTargetMouseEnter);\n target.addEventListener('mouseleave', this.__onTargetMouseLeave);\n target.addEventListener('focusin', this.__onTargetFocusIn);\n target.addEventListener('focusout', this.__onTargetFocusOut);\n }\n\n /**\n * @param {HTMLElement} target\n * @protected\n * @override\n */\n _removeTargetListeners(target) {\n target.removeEventListener('click', this.__onTargetClick);\n target.removeEventListener('mouseenter', this.__onTargetMouseEnter);\n target.removeEventListener('mouseleave', this.__onTargetMouseLeave);\n target.removeEventListener('focusin', this.__onTargetFocusIn);\n target.removeEventListener('focusout', this.__onTargetFocusOut);\n }\n\n /** @private */\n __openedChanged(opened, oldOpened) {\n if (opened) {\n document.addEventListener('keydown', this.__onGlobalKeyDown, true);\n } else if (oldOpened) {\n document.removeEventListener('keydown', this.__onGlobalKeyDown, true);\n }\n }\n\n /** @private */\n __openedOrTargetChanged(opened, target) {\n if (target) {\n target.setAttribute('aria-expanded', opened ? 'true' : 'false');\n\n if (opened) {\n target.setAttribute('aria-controls', this.__overlayId);\n } else {\n target.removeAttribute('aria-controls');\n }\n }\n }\n\n /** @private */\n __overlayRoleOrTargetChanged(overlayRole, target) {\n if (this.__oldTarget) {\n this.__oldTarget.removeAttribute('aria-haspopup');\n }\n\n if (target) {\n const isDialog = overlayRole === 'dialog' || overlayRole === 'alertdialog';\n target.setAttribute('aria-haspopup', isDialog ? 'dialog' : 'true');\n\n this.__oldTarget = target;\n }\n }\n\n /**\n * Overlay's global outside click listener doesn't work when\n * the overlay is modeless, so we use a separate listener.\n * @private\n */\n __onGlobalClick(event) {\n if (\n this.opened &&\n !this.__isManual &&\n !this.modal &&\n !event.composedPath().some((el) => el === this._overlayElement || el === this.target) &&\n !this.noCloseOnOutsideClick &&\n isLastOverlay(this._overlayElement)\n ) {\n this._openedStateController.close(true);\n }\n }\n\n /** @private */\n __onTargetClick() {\n if (this.__hasTrigger('click')) {\n if (!this.opened) {\n this.__shouldRestoreFocus = true;\n }\n if (this.opened) {\n this._openedStateController.close(true);\n } else {\n this._openedStateController.open({ immediate: true });\n }\n }\n }\n\n /**\n * Overlay's global Escape press listener doesn't work when\n * the overlay is modeless, so we use a separate listener.\n * @private\n */\n __onGlobalKeyDown(event) {\n // Modal popover uses overlay logic for Esc key and focus trap.\n if (this.modal) {\n return;\n }\n\n if (\n event.key === 'Escape' &&\n !this.noCloseOnEsc &&\n this.opened &&\n !this.__isManual &&\n isLastOverlay(this._overlayElement)\n ) {\n // Prevent closing parent overlay (e.g. dialog)\n event.stopPropagation();\n this._openedStateController.close(true);\n }\n\n // Include popover content in the Tab order after the target.\n if (event.key === 'Tab') {\n if (event.shiftKey) {\n this.__onGlobalShiftTab(event);\n } else {\n this.__onGlobalTab(event);\n }\n }\n }\n\n /** @private */\n __onGlobalTab(event) {\n const overlayPart = this._overlayElement.$.overlay;\n\n // Move focus to the popover content on target element Tab\n if (this.target && isElementFocused(this.target)) {\n event.preventDefault();\n overlayPart.focus();\n return;\n }\n\n // Move focus to the next element after target on content Tab\n const lastFocusable = this.__getLastFocusable(overlayPart);\n if (lastFocusable && isElementFocused(lastFocusable)) {\n const focusable = this.__getNextBodyFocusable(this.target);\n if (focusable && focusable !== overlayPart) {\n event.preventDefault();\n focusable.focus();\n return;\n }\n }\n\n // Prevent focusing the popover content on previous element Tab\n const activeElement = getDeepActiveElement();\n const nextFocusable = this.__getNextBodyFocusable(activeElement);\n if (nextFocusable === overlayPart && lastFocusable) {\n // Move focus to the last overlay focusable and do NOT prevent keydown\n // to move focus outside the popover content (e.g. to the URL bar).\n lastFocusable.focus();\n }\n }\n\n /** @private */\n __onGlobalShiftTab(event) {\n const overlayPart = this._overlayElement.$.overlay;\n\n // Prevent restoring focus after target blur on Shift + Tab\n if (this.target && isElementFocused(this.target) && this.__shouldRestoreFocus) {\n this.__shouldRestoreFocus = false;\n return;\n }\n\n // Move focus back to the target on overlay content Shift + Tab\n if (this.target && isElementFocused(overlayPart)) {\n event.preventDefault();\n this.target.focus();\n return;\n }\n\n // Move focus back to the popover on next element Shift + Tab\n const nextFocusable = this.__getNextBodyFocusable(this.target);\n if (nextFocusable && isElementFocused(nextFocusable)) {\n const lastFocusable = this.__getLastFocusable(overlayPart);\n if (lastFocusable) {\n event.preventDefault();\n lastFocusable.focus();\n }\n }\n }\n\n /** @private */\n __getNextBodyFocusable(target) {\n const focusables = getFocusableElements(document.body);\n const idx = focusables.findIndex((el) => el === target);\n return focusables[idx + 1];\n }\n\n /** @private */\n __getLastFocusable(container) {\n const focusables = getFocusableElements(container);\n return focusables.pop();\n }\n\n /** @private */\n __onTargetFocusIn() {\n this.__focusInside = true;\n\n if (this.__hasTrigger('focus')) {\n // When trigger is set to both focus and click, only open on\n // keyboard focus, to prevent issue when immediately closing\n // on click which occurs after the focus caused by mousedown.\n if (this.__hasTrigger('click') && !isKeyboardActive()) {\n return;\n }\n\n // Prevent overlay re-opening when restoring focus on close.\n if (!this.__shouldRestoreFocus) {\n this.__shouldRestoreFocus = true;\n this._openedStateController.open({ trigger: 'focus' });\n }\n }\n }\n\n /** @private */\n __onTargetFocusOut(event) {\n // Do not close the popover on overlay focusout if it's not the last one.\n // This covers the case when focus moves to the nested popover opened\n // without focusing parent popover overlay (e.g. using hover trigger).\n if (!isLastOverlay(this._overlayElement)) {\n return;\n }\n\n if ((this.__hasTrigger('focus') && this.__mouseDownInside) || this._overlayElement.contains(event.relatedTarget)) {\n return;\n }\n\n this.__handleFocusout();\n }\n\n /** @private */\n __onTargetMouseEnter() {\n this.__hoverInside = true;\n\n if (this.__hasTrigger('hover') && !this.opened) {\n // Prevent closing due to `pointer-events: none` set on body.\n if (this.modal) {\n this.target.style.pointerEvents = 'auto';\n }\n this._openedStateController.open({ trigger: 'hover' });\n }\n }\n\n /** @private */\n __onTargetMouseLeave(event) {\n // Do not close the popover on target focusout if the overlay is not the last one.\n // This happens e.g. when opening the nested popover that uses non-modal overlay.\n if (this._overlayElement.opened && !isLastOverlay(this._overlayElement)) {\n return;\n }\n\n if (this._overlayElement.contains(event.relatedTarget)) {\n return;\n }\n\n this.__handleMouseLeave();\n }\n\n /** @private */\n __onOverlayFocusIn() {\n this.__focusInside = true;\n\n // When using Tab to move focus, restoring focus is reset. However, if pressing Tab\n // causes focus to be moved inside the overlay, we should restore focus on close.\n if (this.__hasTrigger('focus') || this.__hasTrigger('click')) {\n this.__shouldRestoreFocus = true;\n }\n }\n\n /** @private */\n __onOverlayFocusOut(event) {\n // Do not close the popover on overlay focusout if it's not the last one.\n // This covers the following cases of nested overlay based components:\n // 1. Moving focus to the nested overlay (e.g. vaadin-select, vaadin-menu-bar)\n // 2. Closing not focused nested overlay on outside (e.g. vaadin-combo-box)\n if (!isLastOverlay(this._overlayElement)) {\n return;\n }\n\n if (\n (this.__hasTrigger('focus') && this.__mouseDownInside) ||\n event.relatedTarget === this.target ||\n this._overlayElement.contains(event.relatedTarget)\n ) {\n return;\n }\n\n this.__handleFocusout();\n }\n\n /** @private */\n __onOverlayMouseDown() {\n if (this.__hasTrigger('focus')) {\n this.__mouseDownInside = true;\n\n document.addEventListener(\n 'mouseup',\n () => {\n this.__mouseDownInside = false;\n },\n { once: true },\n );\n }\n }\n\n /** @private */\n __onOverlayMouseEnter() {\n this.__hoverInside = true;\n\n // Prevent closing if cursor moves to the overlay during hide delay.\n if (this.__hasTrigger('hover') && this._openedStateController.isClosing) {\n this._openedStateController.open({ immediate: true });\n }\n }\n\n /** @private */\n __onOverlayMouseLeave(event) {\n // Do not close the popover on overlay focusout if it's not the last one.\n // This happens when opening the nested component that uses \"modal\" overlay\n // setting `pointer-events: none` on the body (combo-box, date-picker etc).\n if (!isLastOverlay(this._overlayElement)) {\n return;\n }\n\n if (event.relatedTarget === this.target) {\n return;\n }\n\n this.__handleMouseLeave();\n }\n\n /** @private */\n __handleFocusout() {\n this.__focusInside = false;\n\n if (this.__hasTrigger('hover') && this.__hoverInside) {\n return;\n }\n\n if (this.__hasTrigger('focus')) {\n this._openedStateController.close(true);\n }\n }\n\n /** @private */\n __handleMouseLeave() {\n this.__hoverInside = false;\n\n if (this.__hasTrigger('focus') && this.__focusInside) {\n return;\n }\n\n if (this.__hasTrigger('hover')) {\n this._openedStateController.close();\n }\n }\n\n /** @private */\n __onOpenedChanged(event) {\n this.opened = event.detail.value;\n }\n\n /** @private */\n __onOverlayOpened() {\n if (this.autofocus && !this.modal) {\n this._overlayElement.$.overlay.focus();\n }\n }\n\n /** @private */\n __onOverlayClosed() {\n // Reset restoring focus state after a timeout to make sure focus was restored\n // and then allow re-opening overlay on re-focusing target with focus trigger.\n if (this.__shouldRestoreFocus) {\n setTimeout(() => {\n this.__shouldRestoreFocus = false;\n });\n }\n\n // Restore pointer-events set when opening on hover.\n if (this.modal && this.target.style.pointerEvents) {\n this.target.style.pointerEvents = '';\n }\n\n this.dispatchEvent(new CustomEvent('closed'));\n }\n\n /**\n * Close the popover if `noCloseOnEsc` isn't set to true.\n * @private\n */\n __onEscapePress(e) {\n if (this.noCloseOnEsc || this.__isManual) {\n e.preventDefault();\n }\n }\n\n /**\n * Close the popover if `noCloseOnOutsideClick` isn't set to true.\n * @private\n */\n __onOutsideClick(e) {\n if (this.noCloseOnOutsideClick || this.__isManual) {\n e.preventDefault();\n }\n }\n\n /** @private */\n __hasTrigger(trigger) {\n return Array.isArray(this.trigger) && this.trigger.includes(trigger);\n }\n\n /** @private */\n get __isManual() {\n return this.trigger == null || (Array.isArray(this.trigger) && this.trigger.length === 0);\n }\n\n /** @private */\n __updateDimension(overlay, dimension, value) {\n const prop = `--_vaadin-popover-content-${dimension}`;\n\n if (value) {\n overlay.style.setProperty(prop, value);\n } else {\n overlay.style.removeProperty(prop);\n }\n }\n\n /** @private */\n __updateContentHeight(height, overlay) {\n if (overlay) {\n this.__updateDimension(overlay, 'height', height);\n }\n }\n\n /** @private */\n __updateContentWidth(width, overlay) {\n if (overlay) {\n this.__updateDimension(overlay, 'width', width);\n }\n }\n\n /**\n * Fired when the popover is closed.\n *\n * @event closed\n */\n}\n\ndefineCustomElement(Popover);\n\nexport { Popover };\n","/**\n * @license\n * Copyright (c) 2024 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\n/**\n * A mixin providing popover position functionality.\n *\n * @polymerMixin\n */\nexport const PopoverPositionMixin = (superClass) =>\n class PopoverPositionMixinClass extends superClass {\n static get properties() {\n return {\n /**\n * Position of the overlay with respect to the target.\n * Supported values: `top-start`, `top`, `top-end`,\n * `bottom-start`, `bottom`, `bottom-end`, `start-top`,\n * `start`, `start-bottom`, `end-top`, `end`, `end-bottom`.\n */\n position: {\n type: String,\n },\n\n /**\n * Default value used when `position` property is not set.\n * @protected\n */\n _position: {\n type: String,\n value: 'bottom',\n },\n\n /** @private */\n __effectivePosition: {\n type: String,\n computed: '__computePosition(position, _position)',\n },\n };\n }\n\n /** @protected */\n __computeHorizontalAlign(position) {\n return ['top-end', 'bottom-end', 'start-top', 'start', 'start-bottom'].includes(position) ? 'end' : 'start';\n }\n\n /** @protected */\n __computeNoHorizontalOverlap(position) {\n return ['start-top', 'start', 'start-bottom', 'end-top', 'end', 'end-bottom'].includes(position);\n }\n\n /** @protected */\n __computeNoVerticalOverlap(position) {\n return ['top-start', 'top-end', 'top', 'bottom-start', 'bottom', 'bottom-end'].includes(position);\n }\n\n /** @protected */\n __computeVerticalAlign(position) {\n return ['top-start', 'top-end', 'top', 'start-bottom', 'end-bottom'].includes(position) ? 'bottom' : 'top';\n }\n\n /** @private */\n __computePosition(position, defaultPosition) {\n return position || defaultPosition;\n }\n };\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { InputController } from '@vaadin/field-base/src/input-controller.js';\nimport { InputFieldMixin } from '@vaadin/field-base/src/input-field-mixin.js';\nimport { LabelledInputController } from '@vaadin/field-base/src/labelled-input-controller.js';\n\n/**\n * A mixin providing common text field functionality.\n *\n * @polymerMixin\n * @mixes InputFieldMixin\n */\nexport const TextFieldMixin = (superClass) =>\n class TextFieldMixinClass extends InputFieldMixin(superClass) {\n static get properties() {\n return {\n /**\n * Maximum number of characters (in Unicode code points) that the user can enter.\n */\n maxlength: {\n type: Number,\n },\n\n /**\n * Minimum number of characters (in Unicode code points) that the user can enter.\n */\n minlength: {\n type: Number,\n },\n\n /**\n * A regular expression that the value is checked against.\n * The pattern must match the entire value, not just some subset.\n */\n pattern: {\n type: String,\n },\n };\n }\n\n static get delegateAttrs() {\n return [...super.delegateAttrs, 'maxlength', 'minlength', 'pattern'];\n }\n\n static get constraints() {\n return [...super.constraints, 'maxlength', 'minlength', 'pattern'];\n }\n\n constructor() {\n super();\n this._setType('text');\n }\n\n /** @protected */\n get clearElement() {\n return this.$.clearButton;\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this.addController(\n new InputController(this, (input) => {\n this._setInputElement(input);\n this._setFocusElement(input);\n this.stateTarget = input;\n this.ariaTarget = input;\n }),\n );\n this.addController(new LabelledInputController(this.inputElement, this._labelController));\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport '@vaadin/input-container/src/vaadin-input-container.js';\nimport { html, PolymerElement } from '@polymer/polymer';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';\nimport { inputFieldShared } from '@vaadin/field-base/src/styles/input-field-shared-styles.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { TextFieldMixin } from './vaadin-text-field-mixin.js';\n\nregisterStyles('vaadin-text-field', inputFieldShared, { moduleId: 'vaadin-text-field-styles' });\n\n/**\n * `<vaadin-text-field>` is a web component that allows the user to input and edit text.\n *\n * ```html\n * <vaadin-text-field label=\"First Name\"></vaadin-text-field>\n * ```\n *\n * ### Prefixes and suffixes\n *\n * These are child elements of a `<vaadin-text-field>` that are displayed\n * inline with the input, before or after.\n * In order for an element to be considered as a prefix, it must have the slot\n * attribute set to `prefix` (and similarly for `suffix`).\n *\n * ```html\n * <vaadin-text-field label=\"Email address\">\n * <div slot=\"prefix\">Sent to:</div>\n * <div slot=\"suffix\">@vaadin.com</div>\n * </vaadin-text-field>\n * ```\n *\n * ### Styling\n *\n * The following custom properties are available for styling:\n *\n * Custom property | Description | Default\n * -------------------------------|----------------------------|---------\n * `--vaadin-field-default-width` | Default width of the field | `12em`\n *\n * The following shadow DOM parts are available for styling:\n *\n * Part name | Description\n * ---------------------|----------------\n * `label` | The label element\n * `input-field` | The element that wraps prefix, value and suffix\n * `clear-button` | The clear button\n * `error-message` | The error message element\n * `helper-text` | The helper text element wrapper\n * `required-indicator` | The `required` state indicator element\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description | Part name\n * --------------------|-------------|------------\n * `disabled` | Set to a disabled text field | :host\n * `has-value` | Set when the element has a value | :host\n * `has-label` | Set when the element has a label | :host\n * `has-helper` | Set when the element has helper text or slot | :host\n * `has-error-message` | Set when the element has an error message | :host\n * `invalid` | Set when the element is invalid | :host\n * `input-prevented` | Temporarily set when invalid input is prevented | :host\n * `focused` | Set when the element is focused | :host\n * `focus-ring` | Set when the element is keyboard focused | :host\n * `readonly` | Set to a readonly text field | :host\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @fires {Event} input - Fired when the value is changed by the user: on every typing keystroke, and the value is cleared using the clear button.\n * @fires {Event} change - Fired when the user commits a value change.\n * @fires {CustomEvent} invalid-changed - Fired when the `invalid` property changes.\n * @fires {CustomEvent} value-changed - Fired when the `value` property changes.\n * @fires {CustomEvent} validated - Fired whenever the field is validated.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ElementMixin\n * @mixes ThemableMixin\n * @mixes TextFieldMixin\n */\nexport class TextField extends TextFieldMixin(ThemableMixin(ElementMixin(PolymerElement))) {\n static get is() {\n return 'vaadin-text-field';\n }\n\n static get template() {\n return html`\n <style>\n [part='input-field'] {\n flex-grow: 0;\n }\n </style>\n\n <div class=\"vaadin-field-container\">\n <div part=\"label\">\n <slot name=\"label\"></slot>\n <span part=\"required-indicator\" aria-hidden=\"true\" on-click=\"focus\"></span>\n </div>\n\n <vaadin-input-container\n part=\"input-field\"\n readonly=\"[[readonly]]\"\n disabled=\"[[disabled]]\"\n invalid=\"[[invalid]]\"\n theme$=\"[[_theme]]\"\n >\n <slot name=\"prefix\" slot=\"prefix\"></slot>\n <slot name=\"input\"></slot>\n <slot name=\"suffix\" slot=\"suffix\"></slot>\n <div id=\"clearButton\" part=\"clear-button\" slot=\"suffix\" aria-hidden=\"true\"></div>\n </vaadin-input-container>\n\n <div part=\"helper-text\">\n <slot name=\"helper\"></slot>\n </div>\n\n <div part=\"error-message\">\n <slot name=\"error-message\"></slot>\n </div>\n </div>\n <slot name=\"tooltip\"></slot>\n `;\n }\n\n static get properties() {\n return {\n /**\n * Maximum number of characters (in Unicode code points) that the user can enter.\n */\n maxlength: {\n type: Number,\n },\n\n /**\n * Minimum number of characters (in Unicode code points) that the user can enter.\n */\n minlength: {\n type: Number,\n },\n };\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._tooltipController = new TooltipController(this);\n this._tooltipController.setPosition('top');\n this._tooltipController.setAriaTarget(this.inputElement);\n this.addController(this._tooltipController);\n }\n}\n\ndefineCustomElement(TextField);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { InputControlMixin } from './input-control-mixin.js';\n\n/**\n * A mixin to provide logic for vaadin-text-field and related components.\n *\n * @polymerMixin\n * @mixes InputControlMixin\n */\nexport const InputFieldMixin = (superclass) =>\n class InputFieldMixinClass extends InputControlMixin(superclass) {\n static get properties() {\n return {\n /**\n * Whether the value of the control can be automatically completed by the browser.\n * List of available options at:\n * https://developer.mozilla.org/en/docs/Web/HTML/Element/input#attr-autocomplete\n */\n autocomplete: {\n type: String,\n },\n\n /**\n * This is a property supported by Safari that is used to control whether\n * autocorrection should be enabled when the user is entering/editing the text.\n * Possible values are:\n * on: Enable autocorrection.\n * off: Disable autocorrection.\n */\n autocorrect: {\n type: String,\n },\n\n /**\n * This is a property supported by Safari and Chrome that is used to control whether\n * autocapitalization should be enabled when the user is entering/editing the text.\n * Possible values are:\n * characters: Characters capitalization.\n * words: Words capitalization.\n * sentences: Sentences capitalization.\n * none: No capitalization.\n */\n autocapitalize: {\n type: String,\n reflectToAttribute: true,\n },\n };\n }\n\n static get delegateAttrs() {\n return [...super.delegateAttrs, 'autocapitalize', 'autocomplete', 'autocorrect'];\n }\n\n // Workaround for https://github.com/Polymer/polymer/issues/5259\n get __data() {\n return this.__dataValue || {};\n }\n\n set __data(value) {\n this.__dataValue = value;\n }\n\n /**\n * @param {HTMLElement} input\n * @protected\n * @override\n */\n _inputElementChanged(input) {\n super._inputElementChanged(input);\n\n if (input) {\n // Discard value set on the custom slotted input.\n if (input.value && input.value !== this.value) {\n console.warn(`Please define value on the <${this.localName}> component!`);\n input.value = '';\n }\n\n if (this.value) {\n input.value = this.value;\n }\n }\n }\n\n /**\n * Override an event listener from `FocusMixin`.\n * @param {boolean} focused\n * @protected\n * @override\n */\n _setFocused(focused) {\n super._setFocused(focused);\n\n // Do not validate when focusout is caused by document\n // losing focus, which happens on browser tab switch.\n if (!focused && document.hasFocus()) {\n this.validate();\n }\n }\n\n /**\n * Override an event listener from `InputMixin`\n * to mark as valid after user started typing.\n * @param {Event} event\n * @protected\n * @override\n */\n _onInput(event) {\n super._onInput(event);\n\n if (this.invalid) {\n this.validate();\n }\n }\n\n /**\n * Override an observer from `InputMixin` to validate the field\n * when a new value is set programmatically.\n *\n * @param {string | undefined} newValue\n * @param {string | undefined} oldValue\n * @protected\n * @override\n */\n _valueChanged(newValue, oldValue) {\n super._valueChanged(newValue, oldValue);\n\n if (oldValue === undefined) {\n return;\n }\n\n if (this.invalid) {\n this.validate();\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport '@vaadin/input-container/theme/lumo/vaadin-input-container-styles.js';\nimport { inputFieldShared } from '@vaadin/vaadin-lumo-styles/mixins/input-field-shared.js';\nimport { registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nregisterStyles('vaadin-text-field', inputFieldShared, {\n moduleId: 'lumo-text-field-styles',\n});\n"],"names":["appliedClassMixins","WeakMap","caseMap","CAMEL_TO_DASH","camelToDash","camel","replace","toLowerCase","upper","name","toUpperCase","substring","parseObserver","observerString","method","rest","split","observerProps","map","prop","trim","getOrCreateMap","obj","Object","prototype","hasOwnProperty","call","Map","PolylitMixin","mixin","superclass","createProperty","options","String","Boolean","Number","Array","includes","type","reflectToAttribute","reflect","super","this","finalize","isArray","observers","complexObservers","forEach","observer","set","addCheckedInitializer","initializer","addInitializer","instance","getPropertyDescriptor","key","defaultDescriptor","result","sync","get","value","oldValue","requestUpdate","hasUpdated","performUpdate","configurable","enumerable","readOnly","setter","console","warn","notify","__notifyProps","notifyProps","Set","add","computed","assignComputedMethod","props","attribute","firstUpdated","$","renderRoot","querySelectorAll","node","id","ready","updated","constructor","__observers","__runObservers","__complexObservers","__runComplexObservers","__dynamicObservers","__runNotifyProps","__isReadyInvoked","_createMethodObserver","dynamicObservers","some","has","v","k","undefined","_","dispatchEvent","CustomEvent","detail","_get","path","object","_set","superClass","klass","getPrototypeOf","wasMixinPreviouslyApplied","mixedClass","PopoverOverlayMixin","properties","position","_tagNamePrefix","requestContentUpdate","positionTarget","owner","style","getComputedStyle","setProperty","getPropertyValue","_updatePosition","opened","removeAttribute","targetRect","getBoundingClientRect","overlayRect","overlay","offset","width","left","setAttribute","right","parseFloat","height","top","PopoverOverlay","is","styles","render","withBackdrop","_shouldCloseOnOutsideClick","event","__hasTrigger","o","PopoverTargetMixin","for","target","connectedCallback","_addTargetListeners","disconnectedCallback","_removeTargetListeners","__forChanged","forId","__setTargetByIdDebouncer","debounce","__setTargetById","targetId","isConnected","getRootNode","getElementById","__targetChanged","oldTarget","_target","DEFAULT_DELAY","defaultFocusDelay","defaultHoverDelay","defaultHideDelay","PopoverOpenedStateController","host","isClosing","__closeTimeout","__focusDelay","popover","focusDelay","__hoverDelay","hoverDelay","__hideDelay","hideDelay","open","immediate","trigger","shouldDelayHover","shouldDelayFocus","__showPopover","__scheduleOpen","close","__scheduleClose","__abortClose","__setOpened","__abortOpen","clearTimeout","__openTimeout","setTimeout","delay","Popover","_position","__effectivePosition","__computeHorizontalAlign","__computeNoHorizontalOverlap","__computeNoVerticalOverlap","__computeVerticalAlign","__computePosition","defaultPosition","PopoverPositionMixin","accessibleName","accessibleNameRef","autofocus","contentHeight","contentWidth","overlayRole","renderer","modal","noCloseOnOutsideClick","noCloseOnEsc","__shouldRestoreFocus","__overlayId","setDefaultFocusDelay","setDefaultHideDelay","setDefaultHoverDelay","__onGlobalClick","bind","__onGlobalKeyDown","__onTargetClick","__onTargetFocusIn","__onTargetFocusOut","__onTargetMouseEnter","__onTargetMouseLeave","_openedStateController","effectivePosition","_theme","__onOverlayMouseDown","__onOverlayMouseEnter","__onOverlayMouseLeave","__onOverlayFocusIn","__onOverlayFocusOut","__onOpenedChanged","__onEscapePress","__onOutsideClick","__onOverlayOpened","__onOverlayClosed","_overlayElement","shadowRoot","querySelector","document","documentElement","addEventListener","removeEventListener","__openedChanged","oldOpened","__openedOrTargetChanged","__overlayRoleOrTargetChanged","__oldTarget","isDialog","__isManual","composedPath","el","stopPropagation","shiftKey","__onGlobalShiftTab","__onGlobalTab","overlayPart","preventDefault","focus","lastFocusable","__getLastFocusable","focusable","__getNextBodyFocusable","activeElement","nextFocusable","focusables","body","idx","findIndex","container","pop","__focusInside","__mouseDownInside","contains","relatedTarget","__handleFocusout","__hoverInside","pointerEvents","__handleMouseLeave","once","e","length","__updateDimension","dimension","removeProperty","__updateContentHeight","__updateContentWidth","TextFieldMixin","maxlength","minlength","pattern","delegateAttrs","constraints","_setType","clearElement","clearButton","addController","input","_setInputElement","_setFocusElement","stateTarget","ariaTarget","inputElement","_labelController","moduleId","TextField","template","_tooltipController","setPosition","setAriaTarget","InputFieldMixin","autocomplete","autocorrect","autocapitalize","__data","__dataValue","_inputElementChanged","localName","_setFocused","focused","hasFocus","validate","_onInput","invalid","_valueChanged","newValue"],"sourceRoot":""}
package/dist/umd/7774.js CHANGED
@@ -21,7 +21,7 @@
21
21
  <div part="content">
22
22
  <slot></slot>
23
23
  </div>
24
- `}static get is(){return"vaadin-combo-box-item"}}(0,r.X)(h);var p=o(24473),u=o(5072),c=o(32888);const m=s.AH`
24
+ `}static get is(){return"vaadin-combo-box-item"}}(0,r.X)(h);var p=o(58069),u=o(5072),c=o(32888);const m=s.AH`
25
25
  #overlay {
26
26
  width: var(--vaadin-combo-box-overlay-width, var(--_vaadin-combo-box-overlay-default-width, auto));
27
27
  }
@@ -64,7 +64,7 @@
64
64
  <div id="selector">
65
65
  <slot></slot>
66
66
  </div>
67
- `}}(0,r.X)(g);var f=o(90676),_=o(81488),y=o(44218),x=o(18330),w=o(37720),k=o(83304);const C=t=>class extends((0,k.U)(t)){static get properties(){return{pattern:{type:String}}}static get delegateAttrs(){return[...super.delegateAttrs,"pattern"]}static get constraints(){return[...super.constraints,"pattern"]}};var S=o(86314),I=o(11402),F=o(65909);(0,s.SF)("vaadin-combo-box",S.k,{moduleId:"vaadin-combo-box-styles"});class z extends((0,I.K)((0,F.x)(C((0,y.R)((0,s.cp)((0,f.q)(l.Pu))))))){static get is(){return"vaadin-combo-box"}static get template(){return l.qy`
67
+ `}}(0,r.X)(g);var f=o(72562),_=o(81488),y=o(44218),x=o(18330),w=o(37720),k=o(83304);const C=t=>class extends((0,k.U)(t)){static get properties(){return{pattern:{type:String}}}static get delegateAttrs(){return[...super.delegateAttrs,"pattern"]}static get constraints(){return[...super.constraints,"pattern"]}};var S=o(86314),I=o(11402),F=o(65909);(0,s.SF)("vaadin-combo-box",S.k,{moduleId:"vaadin-combo-box-styles"});class z extends((0,I.K)((0,F.x)(C((0,y.R)((0,s.cp)((0,f.q)(l.Pu))))))){static get is(){return"vaadin-combo-box"}static get template(){return l.qy`
68
68
  <style>
69
69
  :host([opened]) {
70
70
  pointer-events: auto;
@@ -187,7 +187,7 @@
187
187
  :host([theme~='whitespace'][has-label]) [part='label'] {
188
188
  padding-bottom: 0.5em;
189
189
  }
190
- `;(0,a.SF)("vaadin-custom-field",[s.Q,i.d,l],{moduleId:"lumo-custom-field"});var r=o(13256),n=o(82901),d=o(90676),h=o(53149),p=o(7888),u=o(1508),c=o(81488),m=o(26127);const v=t=>t.split("\t"),b=t=>t.join("\t"),g=t=>class extends((0,m.Y)((0,h.y)((0,p.f)(t)))){static get properties(){return{name:String,value:{type:String,observer:"__valueChanged",notify:!0},inputs:{type:Array,readOnly:!0},formatValue:{type:Function},parseValue:{type:Function}}}ready(){super.ready(),this.setAttribute("role","group"),this.ariaTarget=this,this.__childrenObserver=new MutationObserver(()=>{this.__setInputsFromSlot()}),this.__setInputsFromSlot(),this.$.slot.addEventListener("slotchange",()=>{this.__setInputsFromSlot(),(0,u.J$)(this.$.slot).filter(t=>!this.__isInput(t)).forEach(t=>{this.__childrenObserver.observe(t,{childList:!0})})}),this._tooltipController=new c.I(this),this.addController(this._tooltipController),this._tooltipController.setShouldShow(t=>!(t.inputs||[]).some(t=>t.opened))}focus(){this.inputs&&this.inputs[0]&&this.inputs[0].focus()}_setFocused(t){super._setFocused(t),t||this.validate()}_shouldRemoveFocus(t){const{relatedTarget:e}=t;return!this.inputs.some(t=>e===(t.focusElement||t))}checkValidity(){return!(this.inputs.filter(t=>!(t.validate||t.checkValidity).call(t)).length||this.required&&!this.value.trim())}_onKeyDown(t){"Tab"===t.key&&(this.inputs.indexOf(t.target)<this.inputs.length-1&&!t.shiftKey||this.inputs.indexOf(t.target)>0&&t.shiftKey?this.dispatchEvent(new CustomEvent("internal-tab")):this.__setValue())}_onInputChange(t){t.stopPropagation(),this.__setValue(),this.validate(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!1,detail:{value:this.value}}))}__setValue(){this.__settingValue=!0;const t=this.formatValue||b;this.value=t.apply(this,[this.inputs.map(t=>t.value)]),this.__settingValue=!1}__isInput(t){return!("input"===t.getAttribute("slot")||"textarea"===t.getAttribute("slot"))&&(t.validate||t.checkValidity)}__getInputsFromSlot(){return(0,u.J$)(this.$.slot).filter(t=>this.__isInput(t))}__setInputsFromSlot(){this._setInputs(this.__getInputsFromSlot()),this.__setValue()}__toggleHasValue(t){this.toggleAttribute("has-value",null!==t&&""!==t.trim())}__valueChanged(t,e){if(this.__settingValue||!this.inputs)return;this.__toggleHasValue(t);const o=(this.parseValue||v).apply(this,[t]);o&&0!==o.length?(this.inputs.forEach((t,e)=>{t.value=o[e]}),void 0!==e&&this.validate()):console.warn("Value parser has not provided values array")}},f=o(51450).AH`
190
+ `;(0,a.SF)("vaadin-custom-field",[s.Q,i.d,l],{moduleId:"lumo-custom-field"});var r=o(13256),n=o(82901),d=o(72562),h=o(53149),p=o(7888),u=o(1508),c=o(81488),m=o(26127);const v=t=>t.split("\t"),b=t=>t.join("\t"),g=t=>class extends((0,m.Y)((0,h.y)((0,p.f)(t)))){static get properties(){return{name:String,value:{type:String,observer:"__valueChanged",notify:!0},inputs:{type:Array,readOnly:!0},formatValue:{type:Function},parseValue:{type:Function}}}ready(){super.ready(),this.setAttribute("role","group"),this.ariaTarget=this,this.__childrenObserver=new MutationObserver(()=>{this.__setInputsFromSlot()}),this.__setInputsFromSlot(),this.$.slot.addEventListener("slotchange",()=>{this.__setInputsFromSlot(),(0,u.J$)(this.$.slot).filter(t=>!this.__isInput(t)).forEach(t=>{this.__childrenObserver.observe(t,{childList:!0})})}),this._tooltipController=new c.I(this),this.addController(this._tooltipController),this._tooltipController.setShouldShow(t=>!(t.inputs||[]).some(t=>t.opened))}focus(){this.inputs&&this.inputs[0]&&this.inputs[0].focus()}_setFocused(t){super._setFocused(t),t||this.validate()}_shouldRemoveFocus(t){const{relatedTarget:e}=t;return!this.inputs.some(t=>e===(t.focusElement||t))}checkValidity(){return!(this.inputs.filter(t=>!(t.validate||t.checkValidity).call(t)).length||this.required&&!this.value.trim())}_onKeyDown(t){"Tab"===t.key&&(this.inputs.indexOf(t.target)<this.inputs.length-1&&!t.shiftKey||this.inputs.indexOf(t.target)>0&&t.shiftKey?this.dispatchEvent(new CustomEvent("internal-tab")):this.__setValue())}_onInputChange(t){t.stopPropagation(),this.__setValue(),this.validate(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!1,detail:{value:this.value}}))}__setValue(){this.__settingValue=!0;const t=this.formatValue||b;this.value=t.apply(this,[this.inputs.map(t=>t.value)]),this.__settingValue=!1}__isInput(t){return!("input"===t.getAttribute("slot")||"textarea"===t.getAttribute("slot"))&&(t.validate||t.checkValidity)}__getInputsFromSlot(){return(0,u.J$)(this.$.slot).filter(t=>this.__isInput(t))}__setInputsFromSlot(){this._setInputs(this.__getInputsFromSlot()),this.__setValue()}__toggleHasValue(t){this.toggleAttribute("has-value",null!==t&&""!==t.trim())}__valueChanged(t,e){if(this.__settingValue||!this.inputs)return;this.__toggleHasValue(t);const o=(this.parseValue||v).apply(this,[t]);o&&0!==o.length?(this.inputs.forEach((t,e)=>{t.value=o[e]}),void 0!==e&&this.validate()):console.warn("Value parser has not provided values array")}},f=o(51450).AH`
191
191
  :host {
192
192
  display: inline-flex;
193
193
  }
package/dist/umd/7939.js CHANGED
@@ -49,7 +49,7 @@
49
49
  [part='input-field'] ::slotted(vaadin-icon) {
50
50
  margin-top: calc((var(--lumo-icon-size-m) - 1em * var(--lumo-line-height-s)) / -2);
51
51
  }
52
- `;(0,n.SF)("vaadin-text-area",[i.k,r],{moduleId:"lumo-text-area"}),a(86689);var o=a(13256),s=a(82901),l=a(90676),d=a(81488),p=a(86314),u=a(10438),h=a(37436),c=a(37720),v=a(44099);class m extends v.r{constructor(t,e){super(t,"textarea","textarea",{initializer:(t,a)=>{const i=a.getAttribute("value");i&&(t.value=i);const n=a.getAttribute("name");n&&t.setAttribute("name",n),t.id=this.defaultId,"function"==typeof e&&e(t)},useUniqueId:!0})}}const g=t=>class extends((0,u.U)((0,h.a)(t))){static get properties(){return{maxlength:{type:Number},minlength:{type:Number},pattern:{type:String}}}static get delegateAttrs(){return[...super.delegateAttrs,"maxlength","minlength","pattern"]}static get constraints(){return[...super.constraints,"maxlength","minlength","pattern"]}get clearElement(){return this.$.clearButton}_onResize(){this._updateHeight(),this.__scrollPositionUpdated()}_onScroll(){this.__scrollPositionUpdated()}ready(){super.ready(),this.addController(new m(this,t=>{this._setInputElement(t),this._setFocusElement(t),this.stateTarget=t,this.ariaTarget=t})),this.addController(new c.q(this.inputElement,this._labelController)),this.addEventListener("animationend",this._onAnimationEnd),this._inputField=this.shadowRoot.querySelector("[part=input-field]"),this._inputField.addEventListener("wheel",t=>{const e=this._inputField.scrollTop;this._inputField.scrollTop+=t.deltaY,e!==this._inputField.scrollTop&&(t.preventDefault(),this.__scrollPositionUpdated())}),this._updateHeight(),this.__scrollPositionUpdated()}__scrollPositionUpdated(){this._inputField.style.setProperty("--_text-area-vertical-scroll-position","0px"),this._inputField.style.setProperty("--_text-area-vertical-scroll-position",`${this._inputField.scrollTop}px`)}_onAnimationEnd(t){0===t.animationName.indexOf("vaadin-text-area-appear")&&this._updateHeight()}_valueChanged(t,e){super._valueChanged(t,e),this._updateHeight()}_updateHeight(){const t=this.inputElement,e=this._inputField;if(!t||!e)return;const a=e.scrollTop,i=this.value?this.value.length:0;if(this._oldValueLength>=i){const a=getComputedStyle(e).height,i=getComputedStyle(t).width;e.style.display="block",e.style.height=a,t.style.maxWidth=i,t.style.height="auto"}this._oldValueLength=i;const n=t.scrollHeight;n>t.clientHeight&&(t.style.height=`${n}px`),t.style.removeProperty("max-width"),e.style.removeProperty("display"),e.style.removeProperty("height"),e.scrollTop=a}checkValidity(){if(!super.checkValidity())return!1;if(!this.pattern||!this.inputElement.value)return!0;try{const t=this.inputElement.value.match(this.pattern);return!!t&&t[0]===t.input}catch(t){return!0}}},_=a(51450).AH`
52
+ `;(0,n.SF)("vaadin-text-area",[i.k,r],{moduleId:"lumo-text-area"}),a(86689);var o=a(13256),s=a(82901),l=a(72562),d=a(81488),p=a(86314),u=a(10438),h=a(37436),c=a(37720),v=a(44099);class m extends v.r{constructor(t,e){super(t,"textarea","textarea",{initializer:(t,a)=>{const i=a.getAttribute("value");i&&(t.value=i);const n=a.getAttribute("name");n&&t.setAttribute("name",n),t.id=this.defaultId,"function"==typeof e&&e(t)},useUniqueId:!0})}}const g=t=>class extends((0,u.U)((0,h.a)(t))){static get properties(){return{maxlength:{type:Number},minlength:{type:Number},pattern:{type:String}}}static get delegateAttrs(){return[...super.delegateAttrs,"maxlength","minlength","pattern"]}static get constraints(){return[...super.constraints,"maxlength","minlength","pattern"]}get clearElement(){return this.$.clearButton}_onResize(){this._updateHeight(),this.__scrollPositionUpdated()}_onScroll(){this.__scrollPositionUpdated()}ready(){super.ready(),this.addController(new m(this,t=>{this._setInputElement(t),this._setFocusElement(t),this.stateTarget=t,this.ariaTarget=t})),this.addController(new c.q(this.inputElement,this._labelController)),this.addEventListener("animationend",this._onAnimationEnd),this._inputField=this.shadowRoot.querySelector("[part=input-field]"),this._inputField.addEventListener("wheel",t=>{const e=this._inputField.scrollTop;this._inputField.scrollTop+=t.deltaY,e!==this._inputField.scrollTop&&(t.preventDefault(),this.__scrollPositionUpdated())}),this._updateHeight(),this.__scrollPositionUpdated()}__scrollPositionUpdated(){this._inputField.style.setProperty("--_text-area-vertical-scroll-position","0px"),this._inputField.style.setProperty("--_text-area-vertical-scroll-position",`${this._inputField.scrollTop}px`)}_onAnimationEnd(t){0===t.animationName.indexOf("vaadin-text-area-appear")&&this._updateHeight()}_valueChanged(t,e){super._valueChanged(t,e),this._updateHeight()}_updateHeight(){const t=this.inputElement,e=this._inputField;if(!t||!e)return;const a=e.scrollTop,i=this.value?this.value.length:0;if(this._oldValueLength>=i){const a=getComputedStyle(e).height,i=getComputedStyle(t).width;e.style.display="block",e.style.height=a,t.style.maxWidth=i,t.style.height="auto"}this._oldValueLength=i;const n=t.scrollHeight;n>t.clientHeight&&(t.style.height=`${n}px`),t.style.removeProperty("max-width"),e.style.removeProperty("display"),e.style.removeProperty("height"),e.scrollTop=a}checkValidity(){if(!super.checkValidity())return!1;if(!this.pattern||!this.inputElement.value)return!0;try{const t=this.inputElement.value.match(this.pattern);return!!t&&t[0]===t.input}catch(t){return!0}}},_=a(51450).AH`
53
53
  :host {
54
54
  animation: 1ms vaadin-text-area-appear;
55
55
  }
@@ -0,0 +1,82 @@
1
+ /*! For license information please see 8202.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[8202],{4080:(t,e,o)=>{o.d(e,{CI:()=>d,H8:()=>r,gm:()=>a,m0:()=>n,nr:()=>h,un:()=>_});const i=t=>t.test(navigator.userAgent),s=t=>t.test(navigator.platform),n=i(/Android/u),r=i(/Chrome/u)&&/Google Inc/u.test(navigator.vendor),a=i(/Firefox/u),l=s(/^iPad/u)||s(/^Mac/u)&&navigator.maxTouchPoints>1,_=s(/^iPhone/u)||l,h=i(/^((?!chrome|android).)*safari/iu),d=(()=>{try{return document.createEvent("TouchEvent"),!0}catch(t){return!1}})()},17017:(t,e,o)=>{o(64511),o(3241),o(83315);var i=o(40211),s=o(87550);const n=s.AH`
3
+ :host {
4
+ --vaadin-tooltip-offset-top: var(--lumo-space-xs);
5
+ --vaadin-tooltip-offset-bottom: var(--lumo-space-xs);
6
+ --vaadin-tooltip-offset-start: var(--lumo-space-xs);
7
+ --vaadin-tooltip-offset-end: var(--lumo-space-xs);
8
+ }
9
+
10
+ [part='overlay'] {
11
+ background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));
12
+ color: var(--lumo-body-text-color);
13
+ font-size: var(--lumo-font-size-xs);
14
+ line-height: var(--lumo-line-height-s);
15
+ }
16
+
17
+ [part='content'] {
18
+ padding: var(--lumo-space-xs) var(--lumo-space-s);
19
+ }
20
+ `;(0,s.SF)("vaadin-tooltip-overlay",[i.L,n],{moduleId:"lumo-tooltip-overlay"}),o(76720)},76720:(t,e,o)=>{var i=o(13256),s=o(82901),n=o(23927),r=o(5072),a=o(87550),l=o(58069),_=o(81481);const h=t=>class extends((0,_.t)((0,l.c)(t))){static get properties(){return{position:{type:String,reflectToAttribute:!0}}}requestContentUpdate(){if(super.requestContentUpdate(),this.toggleAttribute("hidden",""===this.textContent.trim()),this.positionTarget&&this.owner){const t=getComputedStyle(this.owner);["top","bottom","start","end"].forEach(e=>{this.style.setProperty(`--vaadin-tooltip-offset-${e}`,t.getPropertyValue(`--vaadin-tooltip-offset-${e}`))})}}_updatePosition(){if(super._updatePosition(),this.positionTarget){if("bottom"===this.position||"top"===this.position){const t=this.positionTarget.getBoundingClientRect(),e=this.$.overlay.getBoundingClientRect(),o=t.width/2-e.width/2;if(this.style.left){const t=e.left+o;t>0&&(this.style.left=`${t}px`)}if(this.style.right){const t=parseFloat(this.style.right)+o;t>0&&(this.style.right=`${t}px`)}}if("start"===this.position||"end"===this.position){const t=this.positionTarget.getBoundingClientRect(),e=this.$.overlay.getBoundingClientRect(),o=t.height/2-e.height/2;this.style.top=`${e.top+o}px`}}}},d=a.AH`
21
+ :host {
22
+ z-index: 1100;
23
+ }
24
+
25
+ [part='overlay'] {
26
+ max-width: 40ch;
27
+ }
28
+
29
+ :host([position^='top'][top-aligned]) [part='overlay'],
30
+ :host([position^='bottom'][top-aligned]) [part='overlay'] {
31
+ margin-top: var(--vaadin-tooltip-offset-top, 0);
32
+ }
33
+
34
+ :host([position^='top'][bottom-aligned]) [part='overlay'],
35
+ :host([position^='bottom'][bottom-aligned]) [part='overlay'] {
36
+ margin-bottom: var(--vaadin-tooltip-offset-bottom, 0);
37
+ }
38
+
39
+ :host([position^='start'][start-aligned]) [part='overlay'],
40
+ :host([position^='end'][start-aligned]) [part='overlay'] {
41
+ margin-inline-start: var(--vaadin-tooltip-offset-start, 0);
42
+ }
43
+
44
+ :host([position^='start'][end-aligned]) [part='overlay'],
45
+ :host([position^='end'][end-aligned]) [part='overlay'] {
46
+ margin-inline-end: var(--vaadin-tooltip-offset-end, 0);
47
+ }
48
+
49
+ @media (forced-colors: active) {
50
+ [part='overlay'] {
51
+ outline: 1px dashed;
52
+ }
53
+ }
54
+ `;(0,a.SF)("vaadin-tooltip-overlay",[r.B,d],{moduleId:"vaadin-tooltip-overlay-styles"});class u extends(h((0,n.v)((0,a.cp)(i.Pu)))){static get is(){return"vaadin-tooltip-overlay"}static get template(){return i.qy`
55
+ <div id="backdrop" part="backdrop" hidden></div>
56
+ <div part="overlay" id="overlay">
57
+ <div part="content" id="content"><slot></slot></div>
58
+ </div>
59
+ `}ready(){super.ready(),this.owner=this.__dataHost,this.owner._overlayElement=this}}(0,s.X)(u);var c=o(55774),p=o(72562),v=o(75365),g=o(30025),m=o(62804),y=o(76685),f=o(1508),b=o(55341),C=o(44099),w=o(11707);const T=500;let O=T,E=T,x=T;const L=new Set;let A=!1,D=null,S=null;class P{constructor(t){this.host=t}get openedProp(){return this.host.manual?"opened":"_autoOpened"}get focusDelay(){const t=this.host;return null!=t.focusDelay&&t.focusDelay>=0?t.focusDelay:O}get hoverDelay(){const t=this.host;return null!=t.hoverDelay&&t.hoverDelay>=0?t.hoverDelay:E}get hideDelay(){const t=this.host;return null!=t.hideDelay&&t.hideDelay>=0?t.hideDelay:x}get isClosing(){return L.has(this.host)}open(t={immediate:!1}){const{immediate:e,hover:o,focus:i}=t,s=o&&this.hoverDelay>0,n=i&&this.focusDelay>0;e||!s&&!n||this.__closeTimeout?this.__showTooltip():this.__warmupTooltip(n)}close(t){!t&&this.hideDelay>0?this.__scheduleClose():(this.__abortClose(),this._setOpened(!1)),this.__abortWarmUp(),A&&(this.__abortCooldown(),this.__scheduleCooldown())}_isOpened(){return this.host[this.openedProp]}_setOpened(t){this.host[this.openedProp]=t}__flushClosingTooltips(){L.forEach(t=>{t._stateController.close(!0),L.delete(t)})}__showTooltip(){this.__abortClose(),this.__flushClosingTooltips(),this._setOpened(!0),A=!0,this.__abortWarmUp(),this.__abortCooldown()}__warmupTooltip(t){this._isOpened()||(A?this.__showTooltip():this.__scheduleWarmUp(t))}__abortClose(){this.__closeTimeout&&(clearTimeout(this.__closeTimeout),this.__closeTimeout=null)}__abortCooldown(){S&&(clearTimeout(S),S=null)}__abortWarmUp(){D&&(clearTimeout(D),D=null)}__scheduleClose(){this._isOpened()&&(L.add(this.host),this.__closeTimeout=setTimeout(()=>{L.delete(this.host),this.__closeTimeout=null,this._setOpened(!1)},this.hideDelay))}__scheduleCooldown(){S=setTimeout(()=>{S=null,A=!1},this.hideDelay)}__scheduleWarmUp(t){const e=t?this.focusDelay:this.hoverDelay;D=setTimeout(()=>{D=null,A=!0,this.__showTooltip()},e)}}const H=t=>class extends((0,b.i)(t)){static get properties(){return{ariaTarget:{type:Object},context:{type:Object,value:()=>({})},focusDelay:{type:Number},for:{type:String,observer:"__forChanged"},generator:{type:Object},hideDelay:{type:Number},hoverDelay:{type:Number},manual:{type:Boolean,value:!1,sync:!0},opened:{type:Boolean,value:!1,sync:!0},position:{type:String},shouldShow:{type:Object,value:()=>(t,e)=>!0},target:{type:Object,observer:"__targetChanged"},text:{type:String,observer:"__textChanged"},_autoOpened:{type:Boolean,observer:"__autoOpenedChanged",sync:!0},_effectiveAriaTarget:{type:Object,computed:"__computeAriaTarget(ariaTarget, target)",observer:"__effectiveAriaTargetChanged"},__effectivePosition:{type:String,computed:"__computePosition(position, _position)"},__isTargetHidden:{type:Boolean,value:!1},_isConnected:{type:Boolean,sync:!0},_position:{type:String,value:"bottom"},_srLabel:{type:Object},_overlayContent:{type:String}}}static get observers(){return["__generatorChanged(_overlayElement, generator, context)","__updateSrLabelText(_srLabel, _overlayContent)"]}static setDefaultFocusDelay(t){O=null!=t&&t>=0?t:T}static setDefaultHideDelay(t){x=null!=t&&t>=0?t:T}static setDefaultHoverDelay(t){E=null!=t&&t>=0?t:T}constructor(){super(),this._uniqueId=`vaadin-tooltip-${(0,w.I)()}`,this._renderer=this.__tooltipRenderer.bind(this),this.__onFocusin=this.__onFocusin.bind(this),this.__onFocusout=this.__onFocusout.bind(this),this.__onMouseDown=this.__onMouseDown.bind(this),this.__onMouseEnter=this.__onMouseEnter.bind(this),this.__onMouseLeave=this.__onMouseLeave.bind(this),this.__onKeyDown=this.__onKeyDown.bind(this),this.__onOverlayOpen=this.__onOverlayOpen.bind(this),this.__targetVisibilityObserver=new IntersectionObserver(t=>{t.forEach(t=>this.__onTargetVisibilityChange(t.isIntersecting))},{threshold:0}),this._stateController=new P(this)}connectedCallback(){super.connectedCallback(),this._isConnected=!0,document.body.addEventListener("vaadin-overlay-open",this.__onOverlayOpen)}disconnectedCallback(){super.disconnectedCallback(),this._autoOpened&&this._stateController.close(!0),this._isConnected=!1,document.body.removeEventListener("vaadin-overlay-open",this.__onOverlayOpen)}ready(){super.ready(),this._srLabelController=new C.r(this,"sr-label","div",{initializer:t=>{t.id=this._uniqueId,t.setAttribute("role","tooltip"),this._srLabel=t}}),this.addController(this._srLabelController)}__computeHorizontalAlign(t){return["top-end","bottom-end","start-top","start","start-bottom"].includes(t)?"end":"start"}__computeNoHorizontalOverlap(t){return["start-top","start","start-bottom","end-top","end","end-bottom"].includes(t)}__computeNoVerticalOverlap(t){return["top-start","top-end","top","bottom-start","bottom","bottom-end"].includes(t)}__computeVerticalAlign(t){return["top-start","top-end","top","start-bottom","end-bottom"].includes(t)?"bottom":"top"}__computeOpened(t,e,o,i){return i&&(t?e:o)}__computePosition(t,e){return t||e}__autoOpenedChanged(t,e){t?document.addEventListener("keydown",this.__onKeyDown,!0):e&&document.removeEventListener("keydown",this.__onKeyDown,!0)}__forChanged(t){t&&(this.__setTargetByIdDebouncer=y.aq.debounce(this.__setTargetByIdDebouncer,m._3,()=>this.__setTargetById(t)))}__setTargetById(t){if(!this.isConnected)return;const e=this.getRootNode().getElementById(t);e?this.target=e:console.warn(`No element with id="${t}" found to show tooltip.`)}__targetChanged(t,e){e&&(e.removeEventListener("mouseenter",this.__onMouseEnter),e.removeEventListener("mouseleave",this.__onMouseLeave),e.removeEventListener("focusin",this.__onFocusin),e.removeEventListener("focusout",this.__onFocusout),e.removeEventListener("mousedown",this.__onMouseDown),this.__targetVisibilityObserver.unobserve(e)),t&&(t.addEventListener("mouseenter",this.__onMouseEnter),t.addEventListener("mouseleave",this.__onMouseLeave),t.addEventListener("focusin",this.__onFocusin),t.addEventListener("focusout",this.__onFocusout),t.addEventListener("mousedown",this.__onMouseDown),requestAnimationFrame(()=>{this.__targetVisibilityObserver.observe(t)}))}__onFocusin(t){this.manual||(0,g.aJ)()&&(this.target.contains(t.relatedTarget)||this.__isShouldShow()&&(this.__focusInside=!0,this.__isTargetHidden||this.__hoverInside&&this._autoOpened||this._stateController.open({focus:!0})))}__onFocusout(t){this.manual||this.target.contains(t.relatedTarget)||(this.__focusInside=!1,this.__hoverInside||this._stateController.close(!0))}__onKeyDown(t){"Escape"===t.key&&(t.stopPropagation(),this._stateController.close(!0))}__onMouseDown(){this.manual||this._stateController.close(!0)}__onMouseEnter(){this.manual||this.__isShouldShow()&&(this.__hoverInside||(this.__hoverInside=!0,this.__isTargetHidden||this.__focusInside&&this._autoOpened||this._stateController.open({hover:!0})))}__onMouseLeave(t){t.relatedTarget!==this._overlayElement&&this.__handleMouseLeave()}__onOverlayMouseEnter(){this._stateController.isClosing&&this._stateController.open({immediate:!0})}__onOverlayMouseLeave(t){t.relatedTarget!==this.target&&this.__handleMouseLeave()}__handleMouseLeave(){this.manual||(this.__hoverInside=!1,this.__focusInside||this._stateController.close())}__onOverlayOpen(){this.manual||this._overlayElement.opened&&!this._overlayElement._last&&this._stateController.close(!0)}__onTargetVisibilityChange(t){const e=this.__isTargetHidden;this.__isTargetHidden=!t,e&&t&&(this.__focusInside||this.__hoverInside)?this._stateController.open({immediate:!0}):!t&&this._autoOpened&&this._stateController.close(!0)}__isShouldShow(){return"function"!=typeof this.shouldShow||!0===this.shouldShow(this.target,this.context)}__textChanged(t,e){this._overlayElement&&(t||e)&&this._overlayElement.requestContentUpdate()}__tooltipRenderer(t){t.textContent="function"==typeof this.generator?this.generator(this.context):this.text,this._overlayContent=t.textContent}__computeAriaTarget(t,e){return(Array.isArray(t)?t.some(t=>t&&t.nodeType===Node.ELEMENT_NODE):t)?t:e}__effectiveAriaTargetChanged(t,e){e&&[e].flat().forEach(t=>{(0,f.Wr)(t,"aria-describedby",this._uniqueId)}),t&&[t].flat().forEach(t=>{(0,f.iA)(t,"aria-describedby",this._uniqueId)})}__generatorChanged(t,e,o){t&&(e===this.__oldTextGenerator&&o===this.__oldContext||t.requestContentUpdate(),this.__oldTextGenerator=e,this.__oldContext=o)}__updateSrLabelText(t,e){t&&(t.textContent=e)}};class I extends(H((0,v._)((0,p.q)((0,c.w)(i.Pu))))){static get is(){return"vaadin-tooltip"}static get template(){return i.qy`
60
+ <style>
61
+ :host {
62
+ display: none;
63
+ }
64
+ </style>
65
+ <vaadin-tooltip-overlay
66
+ renderer="[[_renderer]]"
67
+ theme$="[[_theme]]"
68
+ opened="[[__computeOpened(manual, opened, _autoOpened, _isConnected)]]"
69
+ position-target="[[target]]"
70
+ position="[[__effectivePosition]]"
71
+ no-horizontal-overlap$="[[__computeNoHorizontalOverlap(__effectivePosition)]]"
72
+ no-vertical-overlap$="[[__computeNoVerticalOverlap(__effectivePosition)]]"
73
+ horizontal-align="[[__computeHorizontalAlign(__effectivePosition)]]"
74
+ vertical-align="[[__computeVerticalAlign(__effectivePosition)]]"
75
+ on-mouseenter="__onOverlayMouseEnter"
76
+ on-mouseleave="__onOverlayMouseLeave"
77
+ modeless
78
+ ></vaadin-tooltip-overlay>
79
+
80
+ <slot name="sr-label"></slot>
81
+ `}}(0,s.X)(I)},81481:(t,e,o)=>{o.d(e,{t:()=>a});var i=o(1508);const s={start:"top",end:"bottom"},n={start:"left",end:"right"},r=new ResizeObserver(t=>{setTimeout(()=>{t.forEach(t=>{t.target.__overlay&&t.target.__overlay._updatePosition()})})}),a=t=>class extends t{static get properties(){return{positionTarget:{type:Object,value:null,sync:!0},horizontalAlign:{type:String,value:"start",sync:!0},verticalAlign:{type:String,value:"top",sync:!0},noHorizontalOverlap:{type:Boolean,value:!1,sync:!0},noVerticalOverlap:{type:Boolean,value:!1,sync:!0},requiredVerticalSpace:{type:Number,value:0,sync:!0}}}static get observers(){return["__positionSettingsChanged(horizontalAlign, verticalAlign, noHorizontalOverlap, noVerticalOverlap, requiredVerticalSpace)","__overlayOpenedChanged(opened, positionTarget)"]}constructor(){super(),this.__onScroll=this.__onScroll.bind(this),this._updatePosition=this._updatePosition.bind(this)}connectedCallback(){super.connectedCallback(),this.opened&&this.__addUpdatePositionEventListeners()}disconnectedCallback(){super.disconnectedCallback(),this.__removeUpdatePositionEventListeners()}__addUpdatePositionEventListeners(){window.visualViewport.addEventListener("resize",this._updatePosition),window.visualViewport.addEventListener("scroll",this.__onScroll,!0),this.__positionTargetAncestorRootNodes=(0,i.Dy)(this.positionTarget),this.__positionTargetAncestorRootNodes.forEach(t=>{t.addEventListener("scroll",this.__onScroll,!0)})}__removeUpdatePositionEventListeners(){window.visualViewport.removeEventListener("resize",this._updatePosition),window.visualViewport.removeEventListener("scroll",this.__onScroll,!0),this.__positionTargetAncestorRootNodes&&(this.__positionTargetAncestorRootNodes.forEach(t=>{t.removeEventListener("scroll",this.__onScroll,!0)}),this.__positionTargetAncestorRootNodes=null)}__overlayOpenedChanged(t,e){if(this.__removeUpdatePositionEventListeners(),e&&(e.__overlay=null,r.unobserve(e),t&&(this.__addUpdatePositionEventListeners(),e.__overlay=this,r.observe(e))),t){const t=getComputedStyle(this);this.__margins||(this.__margins={},["top","bottom","left","right"].forEach(e=>{this.__margins[e]=parseInt(t[e],10)})),this.setAttribute("dir",t.direction),this._updatePosition(),requestAnimationFrame(()=>this._updatePosition())}}__positionSettingsChanged(){this._updatePosition()}__onScroll(t){t.target instanceof Node&&this.contains(t.target)||this._updatePosition()}_updatePosition(){if(!this.positionTarget||!this.opened)return;const t=this.positionTarget.getBoundingClientRect();if(0===t.width&&0===t.height&&this.opened)return void(this.opened=!1);const e=this.__shouldAlignStartVertically(t);this.style.justifyContent=e?"flex-start":"flex-end";const o=this.__isRTL,i=this.__shouldAlignStartHorizontally(t,o),r=!o&&i||o&&!i;this.style.alignItems=r?"flex-start":"flex-end";const a=this.getBoundingClientRect(),l=this.__calculatePositionInOneDimension(t,a,this.noVerticalOverlap,s,this,e),_=this.__calculatePositionInOneDimension(t,a,this.noHorizontalOverlap,n,this,i);Object.assign(this.style,l,_),this.toggleAttribute("bottom-aligned",!e),this.toggleAttribute("top-aligned",e),this.toggleAttribute("end-aligned",!r),this.toggleAttribute("start-aligned",r)}__shouldAlignStartHorizontally(t,e){const o=Math.max(this.__oldContentWidth||0,this.$.overlay.offsetWidth);this.__oldContentWidth=this.$.overlay.offsetWidth;const i=Math.min(window.innerWidth,document.documentElement.clientWidth),s=!e&&"start"===this.horizontalAlign||e&&"end"===this.horizontalAlign;return this.__shouldAlignStart(t,o,i,this.__margins,s,this.noHorizontalOverlap,n)}__shouldAlignStartVertically(t){const e=this.requiredVerticalSpace||Math.max(this.__oldContentHeight||0,this.$.overlay.offsetHeight);this.__oldContentHeight=this.$.overlay.offsetHeight;const o=Math.min(window.innerHeight,document.documentElement.clientHeight),i="top"===this.verticalAlign;return this.__shouldAlignStart(t,e,o,this.__margins,i,this.noVerticalOverlap,s)}__shouldAlignStart(t,e,o,i,s,n,r){const a=o-t[n?r.end:r.start]-i[r.end],l=t[n?r.start:r.end]-i[r.start],_=s?a:l;return s===(_>(s?l:a)||_>e)}__adjustBottomProperty(t,e,o){let i;if(t===e.end){if(e.end===s.end){const t=Math.min(window.innerHeight,document.documentElement.clientHeight);o>t&&this.__oldViewportHeight&&(i=o-(this.__oldViewportHeight-t)),this.__oldViewportHeight=t}if(e.end===n.end){const t=Math.min(window.innerWidth,document.documentElement.clientWidth);o>t&&this.__oldViewportWidth&&(i=o-(this.__oldViewportWidth-t)),this.__oldViewportWidth=t}}return i}__calculatePositionInOneDimension(t,e,o,i,s,n){const r=n?i.start:i.end,a=n?i.end:i.start,l=parseFloat(s.style[r]||getComputedStyle(s)[r]),_=this.__adjustBottomProperty(r,i,l),h=e[n?i.start:i.end]-t[o===n?i.end:i.start],d=_?`${_}px`:`${l+h*(n?-1:1)}px`;return{[r]:d,[a]:""}}}}}]);
82
+ //# sourceMappingURL=8202.js.map
@@ -15,9 +15,3 @@
15
15
  * Copyright (c) 2022 - 2023 Vaadin Ltd.
16
16
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
17
17
  */
18
-
19
- /**
20
- * @license
21
- * Copyright (c) 2023 Vaadin Ltd.
22
- * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
23
- */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"8202.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/browser-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/tooltip/theme/lumo/vaadin-tooltip-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/tooltip/src/vaadin-tooltip-overlay-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/tooltip/src/vaadin-tooltip-overlay-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/tooltip/src/vaadin-tooltip-overlay.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/tooltip/src/vaadin-tooltip-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/tooltip/src/vaadin-tooltip.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/overlay/src/vaadin-overlay-position-mixin.js"],"sourcesContent":["/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\n\nconst testUserAgent = (regexp) => regexp.test(navigator.userAgent);\n\nconst testPlatform = (regexp) => regexp.test(navigator.platform);\n\nconst testVendor = (regexp) => regexp.test(navigator.vendor);\n\nexport const isAndroid = testUserAgent(/Android/u);\n\nexport const isChrome = testUserAgent(/Chrome/u) && testVendor(/Google Inc/u);\n\nexport const isFirefox = testUserAgent(/Firefox/u);\n\n// IPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\nexport const isIPad = testPlatform(/^iPad/u) || (testPlatform(/^Mac/u) && navigator.maxTouchPoints > 1);\n\nexport const isIPhone = testPlatform(/^iPhone/u);\n\nexport const isIOS = isIPhone || isIPad;\n\nexport const isSafari = testUserAgent(/^((?!chrome|android).)*safari/iu);\n\nexport const isTouch = (() => {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n})();\n","import '@vaadin/vaadin-lumo-styles/color.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport '@vaadin/vaadin-lumo-styles/typography.js';\nimport { overlay } from '@vaadin/vaadin-lumo-styles/mixins/overlay.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst tooltipOverlay = css`\n :host {\n --vaadin-tooltip-offset-top: var(--lumo-space-xs);\n --vaadin-tooltip-offset-bottom: var(--lumo-space-xs);\n --vaadin-tooltip-offset-start: var(--lumo-space-xs);\n --vaadin-tooltip-offset-end: var(--lumo-space-xs);\n }\n\n [part='overlay'] {\n background: var(--lumo-base-color) linear-gradient(var(--lumo-contrast-5pct), var(--lumo-contrast-5pct));\n color: var(--lumo-body-text-color);\n font-size: var(--lumo-font-size-xs);\n line-height: var(--lumo-line-height-s);\n }\n\n [part='content'] {\n padding: var(--lumo-space-xs) var(--lumo-space-s);\n }\n`;\n\nregisterStyles('vaadin-tooltip-overlay', [overlay, tooltipOverlay], { moduleId: 'lumo-tooltip-overlay' });\n","/**\n * @license\n * Copyright (c) 2022 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';\nimport { PositionMixin } from '@vaadin/overlay/src/vaadin-overlay-position-mixin.js';\n\n/**\n * A mixin providing common tooltip overlay functionality.\n *\n * @polymerMixin\n * @mixes PositionMixin\n * @mixes OverlayMixin\n */\nexport const TooltipOverlayMixin = (superClass) =>\n class TooltipOverlayMixinClass extends PositionMixin(OverlayMixin(superClass)) {\n static get properties() {\n return {\n position: {\n type: String,\n reflectToAttribute: true,\n },\n };\n }\n\n requestContentUpdate() {\n super.requestContentUpdate();\n\n this.toggleAttribute('hidden', this.textContent.trim() === '');\n\n // Copy custom properties from the tooltip\n if (this.positionTarget && this.owner) {\n const style = getComputedStyle(this.owner);\n ['top', 'bottom', 'start', 'end'].forEach((prop) => {\n this.style.setProperty(\n `--vaadin-tooltip-offset-${prop}`,\n style.getPropertyValue(`--vaadin-tooltip-offset-${prop}`),\n );\n });\n }\n }\n\n /**\n * @protected\n * @override\n */\n _updatePosition() {\n super._updatePosition();\n\n if (!this.positionTarget) {\n return;\n }\n\n // Center the tooltip overlay horizontally\n if (this.position === 'bottom' || this.position === 'top') {\n const targetRect = this.positionTarget.getBoundingClientRect();\n const overlayRect = this.$.overlay.getBoundingClientRect();\n\n const offset = targetRect.width / 2 - overlayRect.width / 2;\n\n if (this.style.left) {\n const left = overlayRect.left + offset;\n if (left > 0) {\n this.style.left = `${left}px`;\n }\n }\n\n if (this.style.right) {\n const right = parseFloat(this.style.right) + offset;\n if (right > 0) {\n this.style.right = `${right}px`;\n }\n }\n }\n\n // Center the tooltip overlay vertically\n if (this.position === 'start' || this.position === 'end') {\n const targetRect = this.positionTarget.getBoundingClientRect();\n const overlayRect = this.$.overlay.getBoundingClientRect();\n\n const offset = targetRect.height / 2 - overlayRect.height / 2;\n this.style.top = `${overlayRect.top + offset}px`;\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2022 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nexport const tooltipOverlayStyles = css`\n :host {\n z-index: 1100;\n }\n\n [part='overlay'] {\n max-width: 40ch;\n }\n\n :host([position^='top'][top-aligned]) [part='overlay'],\n :host([position^='bottom'][top-aligned]) [part='overlay'] {\n margin-top: var(--vaadin-tooltip-offset-top, 0);\n }\n\n :host([position^='top'][bottom-aligned]) [part='overlay'],\n :host([position^='bottom'][bottom-aligned]) [part='overlay'] {\n margin-bottom: var(--vaadin-tooltip-offset-bottom, 0);\n }\n\n :host([position^='start'][start-aligned]) [part='overlay'],\n :host([position^='end'][start-aligned]) [part='overlay'] {\n margin-inline-start: var(--vaadin-tooltip-offset-start, 0);\n }\n\n :host([position^='start'][end-aligned]) [part='overlay'],\n :host([position^='end'][end-aligned]) [part='overlay'] {\n margin-inline-end: var(--vaadin-tooltip-offset-end, 0);\n }\n\n @media (forced-colors: active) {\n [part='overlay'] {\n outline: 1px dashed;\n }\n }\n`;\n","/**\n * @license\n * Copyright (c) 2022 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';\nimport { overlayStyles } from '@vaadin/overlay/src/vaadin-overlay-styles.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { TooltipOverlayMixin } from './vaadin-tooltip-overlay-mixin.js';\nimport { tooltipOverlayStyles } from './vaadin-tooltip-overlay-styles.js';\n\nregisterStyles('vaadin-tooltip-overlay', [overlayStyles, tooltipOverlayStyles], {\n moduleId: 'vaadin-tooltip-overlay-styles',\n});\n\n/**\n * An element used internally by `<vaadin-tooltip>`. Not intended to be used separately.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes DirMixin\n * @mixes ThemableMixin\n * @mixes TooltipOverlayMixin\n * @private\n */\nclass TooltipOverlay extends TooltipOverlayMixin(DirMixin(ThemableMixin(PolymerElement))) {\n static get is() {\n return 'vaadin-tooltip-overlay';\n }\n\n static get template() {\n return html`\n <div id=\"backdrop\" part=\"backdrop\" hidden></div>\n <div part=\"overlay\" id=\"overlay\">\n <div part=\"content\" id=\"content\"><slot></slot></div>\n </div>\n `;\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n // When setting `manual` and `opened` attributes, the overlay is already moved to body\n // by the time when `ready()` callback of the `vaadin-tooltip` is executed by Polymer,\n // so querySelector() would return null. So we use this workaround to set properties.\n this.owner = this.__dataHost;\n this.owner._overlayElement = this;\n }\n}\n\ndefineCustomElement(TooltipOverlay);\n","/**\n * @license\n * Copyright (c) 2022 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { isKeyboardActive } from '@vaadin/a11y-base/src/focus-utils.js';\nimport { microTask } from '@vaadin/component-base/src/async.js';\nimport { Debouncer } from '@vaadin/component-base/src/debounce.js';\nimport { addValueToAttribute, removeValueFromAttribute } from '@vaadin/component-base/src/dom-utils.js';\nimport { OverlayClassMixin } from '@vaadin/component-base/src/overlay-class-mixin.js';\nimport { SlotController } from '@vaadin/component-base/src/slot-controller.js';\nimport { generateUniqueId } from '@vaadin/component-base/src/unique-id-utils.js';\n\nconst DEFAULT_DELAY = 500;\n\nlet defaultFocusDelay = DEFAULT_DELAY;\nlet defaultHoverDelay = DEFAULT_DELAY;\nlet defaultHideDelay = DEFAULT_DELAY;\n\nconst closing = new Set();\n\nlet warmedUp = false;\nlet warmUpTimeout = null;\nlet cooldownTimeout = null;\n\n/**\n * Resets the global tooltip warmup and cooldown state.\n * Only for internal use in tests.\n * @private\n */\nexport function resetGlobalTooltipState() {\n warmedUp = false;\n clearTimeout(warmUpTimeout);\n clearTimeout(cooldownTimeout);\n closing.clear();\n}\n\n/**\n * Controller for handling tooltip opened state.\n */\nclass TooltipStateController {\n constructor(host) {\n this.host = host;\n }\n\n /** @private */\n get openedProp() {\n return this.host.manual ? 'opened' : '_autoOpened';\n }\n\n /** @private */\n get focusDelay() {\n const tooltip = this.host;\n return tooltip.focusDelay != null && tooltip.focusDelay >= 0 ? tooltip.focusDelay : defaultFocusDelay;\n }\n\n /** @private */\n get hoverDelay() {\n const tooltip = this.host;\n return tooltip.hoverDelay != null && tooltip.hoverDelay >= 0 ? tooltip.hoverDelay : defaultHoverDelay;\n }\n\n /** @private */\n get hideDelay() {\n const tooltip = this.host;\n return tooltip.hideDelay != null && tooltip.hideDelay >= 0 ? tooltip.hideDelay : defaultHideDelay;\n }\n\n /**\n * Whether closing is currently in progress.\n * @return {boolean}\n */\n get isClosing() {\n return closing.has(this.host);\n }\n\n /**\n * Schedule opening the tooltip.\n * @param {Object} options\n */\n open(options = { immediate: false }) {\n const { immediate, hover, focus } = options;\n const isHover = hover && this.hoverDelay > 0;\n const isFocus = focus && this.focusDelay > 0;\n\n if (!immediate && (isHover || isFocus) && !this.__closeTimeout) {\n this.__warmupTooltip(isFocus);\n } else {\n this.__showTooltip();\n }\n }\n\n /**\n * Schedule closing the tooltip.\n * @param {boolean} immediate\n */\n close(immediate) {\n if (!immediate && this.hideDelay > 0) {\n this.__scheduleClose();\n } else {\n this.__abortClose();\n this._setOpened(false);\n }\n\n this.__abortWarmUp();\n\n if (warmedUp) {\n // Re-start cooldown timer on each tooltip closing.\n this.__abortCooldown();\n this.__scheduleCooldown();\n }\n }\n\n /** @private */\n _isOpened() {\n return this.host[this.openedProp];\n }\n\n /** @private */\n _setOpened(opened) {\n this.host[this.openedProp] = opened;\n }\n\n /** @private */\n __flushClosingTooltips() {\n closing.forEach((tooltip) => {\n tooltip._stateController.close(true);\n closing.delete(tooltip);\n });\n }\n\n /** @private */\n __showTooltip() {\n this.__abortClose();\n this.__flushClosingTooltips();\n\n this._setOpened(true);\n warmedUp = true;\n\n // Abort previously scheduled timers.\n this.__abortWarmUp();\n this.__abortCooldown();\n }\n\n /** @private */\n __warmupTooltip(isFocus) {\n if (!this._isOpened()) {\n // First tooltip is opened, warm up.\n if (!warmedUp) {\n this.__scheduleWarmUp(isFocus);\n } else {\n // Warmed up, show another tooltip.\n this.__showTooltip();\n }\n }\n }\n\n /** @private */\n __abortClose() {\n if (this.__closeTimeout) {\n clearTimeout(this.__closeTimeout);\n this.__closeTimeout = null;\n }\n }\n\n /** @private */\n __abortCooldown() {\n if (cooldownTimeout) {\n clearTimeout(cooldownTimeout);\n cooldownTimeout = null;\n }\n }\n\n /** @private */\n __abortWarmUp() {\n if (warmUpTimeout) {\n clearTimeout(warmUpTimeout);\n warmUpTimeout = null;\n }\n }\n\n /** @private */\n __scheduleClose() {\n if (this._isOpened()) {\n closing.add(this.host);\n\n this.__closeTimeout = setTimeout(() => {\n closing.delete(this.host);\n this.__closeTimeout = null;\n this._setOpened(false);\n }, this.hideDelay);\n }\n }\n\n /** @private */\n __scheduleCooldown() {\n cooldownTimeout = setTimeout(() => {\n cooldownTimeout = null;\n warmedUp = false;\n }, this.hideDelay);\n }\n\n /** @private */\n __scheduleWarmUp(isFocus) {\n const delay = isFocus ? this.focusDelay : this.hoverDelay;\n warmUpTimeout = setTimeout(() => {\n warmUpTimeout = null;\n warmedUp = true;\n this.__showTooltip();\n }, delay);\n }\n}\n\n/**\n * A mixin providing common tooltip functionality.\n *\n * @polymerMixin\n * @mixes OverlayClassMixin\n */\nexport const TooltipMixin = (superClass) =>\n class TooltipMixinClass extends OverlayClassMixin(superClass) {\n static get properties() {\n return {\n /**\n * Element used to link with the `aria-describedby`\n * attribute. Supports array of multiple elements.\n * When not set, defaults to `target`.\n */\n ariaTarget: {\n type: Object,\n },\n\n /**\n * Object with properties passed to `generator` and\n * `shouldShow` functions for generating tooltip text\n * or detecting whether to show the tooltip or not.\n */\n context: {\n type: Object,\n value: () => {\n return {};\n },\n },\n\n /**\n * The delay in milliseconds before the tooltip\n * is opened on keyboard focus, when not in manual mode.\n * @attr {number} focus-delay\n */\n focusDelay: {\n type: Number,\n },\n\n /**\n * The id of the element used as a tooltip trigger.\n * The element should be in the DOM by the time when\n * the attribute is set, otherwise a warning is shown.\n */\n for: {\n type: String,\n observer: '__forChanged',\n },\n\n /**\n * Function used to generate the tooltip content.\n * When provided, it overrides the `text` property.\n * Use the `context` property to provide argument\n * that can be passed to the generator function.\n */\n generator: {\n type: Object,\n },\n\n /**\n * The delay in milliseconds before the tooltip\n * is closed on losing hover, when not in manual mode.\n * On blur, the tooltip is closed immediately.\n * @attr {number} hide-delay\n */\n hideDelay: {\n type: Number,\n },\n\n /**\n * The delay in milliseconds before the tooltip\n * is opened on hover, when not in manual mode.\n * @attr {number} hover-delay\n */\n hoverDelay: {\n type: Number,\n },\n\n /**\n * When true, the tooltip is controlled programmatically\n * instead of reacting to focus and mouse events.\n */\n manual: {\n type: Boolean,\n value: false,\n sync: true,\n },\n\n /**\n * When true, the tooltip is opened programmatically.\n * Only works if `manual` is set to `true`.\n */\n opened: {\n type: Boolean,\n value: false,\n sync: true,\n },\n\n /**\n * Position of the tooltip with respect to its target.\n * Supported values: `top-start`, `top`, `top-end`,\n * `bottom-start`, `bottom`, `bottom-end`, `start-top`,\n * `start`, `start-bottom`, `end-top`, `end`, `end-bottom`.\n */\n position: {\n type: String,\n },\n\n /**\n * Function used to detect whether to show the tooltip based on a condition,\n * called every time the tooltip is about to be shown on hover and focus.\n * The function takes two parameters: `target` and `context`, which contain\n * values of the corresponding tooltip properties at the time of calling.\n * The tooltip is only shown when the function invocation returns `true`.\n */\n shouldShow: {\n type: Object,\n value: () => {\n return (_target, _context) => true;\n },\n },\n\n /**\n * Reference to the element used as a tooltip trigger.\n * The target must be placed in the same shadow scope.\n * Defaults to an element referenced with `for`.\n */\n target: {\n type: Object,\n observer: '__targetChanged',\n },\n\n /**\n * String used as a tooltip content.\n */\n text: {\n type: String,\n observer: '__textChanged',\n },\n\n /**\n * Set to true when the overlay is opened using auto-added\n * event listeners: mouseenter and focusin (keyboard only).\n * @protected\n */\n _autoOpened: {\n type: Boolean,\n observer: '__autoOpenedChanged',\n sync: true,\n },\n\n /**\n * Element used to link with the `aria-describedby`\n * attribute. When not set, defaults to `target`.\n * @protected\n */\n _effectiveAriaTarget: {\n type: Object,\n computed: '__computeAriaTarget(ariaTarget, target)',\n observer: '__effectiveAriaTargetChanged',\n },\n\n /** @private */\n __effectivePosition: {\n type: String,\n computed: '__computePosition(position, _position)',\n },\n\n /** @private */\n __isTargetHidden: {\n type: Boolean,\n value: false,\n },\n\n /** @private */\n _isConnected: {\n type: Boolean,\n sync: true,\n },\n\n /**\n * Default value used when `position` property is not set.\n * @protected\n */\n _position: {\n type: String,\n value: 'bottom',\n },\n\n /** @private */\n _srLabel: {\n type: Object,\n },\n\n /** @private */\n _overlayContent: {\n type: String,\n },\n };\n }\n\n static get observers() {\n return [\n '__generatorChanged(_overlayElement, generator, context)',\n '__updateSrLabelText(_srLabel, _overlayContent)',\n ];\n }\n\n /**\n * Sets the default focus delay to be used by all tooltip instances,\n * except for those that have focus delay configured using property.\n *\n * @param {number} delay\n */\n static setDefaultFocusDelay(focusDelay) {\n defaultFocusDelay = focusDelay != null && focusDelay >= 0 ? focusDelay : DEFAULT_DELAY;\n }\n\n /**\n * Sets the default hide delay to be used by all tooltip instances,\n * except for those that have hide delay configured using property.\n *\n * @param {number} hideDelay\n */\n static setDefaultHideDelay(hideDelay) {\n defaultHideDelay = hideDelay != null && hideDelay >= 0 ? hideDelay : DEFAULT_DELAY;\n }\n\n /**\n * Sets the default hover delay to be used by all tooltip instances,\n * except for those that have hover delay configured using property.\n *\n * @param {number} delay\n */\n static setDefaultHoverDelay(hoverDelay) {\n defaultHoverDelay = hoverDelay != null && hoverDelay >= 0 ? hoverDelay : DEFAULT_DELAY;\n }\n\n constructor() {\n super();\n\n this._uniqueId = `vaadin-tooltip-${generateUniqueId()}`;\n this._renderer = this.__tooltipRenderer.bind(this);\n\n this.__onFocusin = this.__onFocusin.bind(this);\n this.__onFocusout = this.__onFocusout.bind(this);\n this.__onMouseDown = this.__onMouseDown.bind(this);\n this.__onMouseEnter = this.__onMouseEnter.bind(this);\n this.__onMouseLeave = this.__onMouseLeave.bind(this);\n this.__onKeyDown = this.__onKeyDown.bind(this);\n this.__onOverlayOpen = this.__onOverlayOpen.bind(this);\n\n this.__targetVisibilityObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => this.__onTargetVisibilityChange(entry.isIntersecting));\n },\n { threshold: 0 },\n );\n\n this._stateController = new TooltipStateController(this);\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n\n this._isConnected = true;\n\n document.body.addEventListener('vaadin-overlay-open', this.__onOverlayOpen);\n }\n\n /** @protected */\n disconnectedCallback() {\n super.disconnectedCallback();\n\n if (this._autoOpened) {\n this._stateController.close(true);\n }\n this._isConnected = false;\n\n document.body.removeEventListener('vaadin-overlay-open', this.__onOverlayOpen);\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._srLabelController = new SlotController(this, 'sr-label', 'div', {\n initializer: (element) => {\n element.id = this._uniqueId;\n element.setAttribute('role', 'tooltip');\n this._srLabel = element;\n },\n });\n this.addController(this._srLabelController);\n }\n\n /** @private */\n __computeHorizontalAlign(position) {\n return ['top-end', 'bottom-end', 'start-top', 'start', 'start-bottom'].includes(position) ? 'end' : 'start';\n }\n\n /** @private */\n __computeNoHorizontalOverlap(position) {\n return ['start-top', 'start', 'start-bottom', 'end-top', 'end', 'end-bottom'].includes(position);\n }\n\n /** @private */\n __computeNoVerticalOverlap(position) {\n return ['top-start', 'top-end', 'top', 'bottom-start', 'bottom', 'bottom-end'].includes(position);\n }\n\n /** @private */\n __computeVerticalAlign(position) {\n return ['top-start', 'top-end', 'top', 'start-bottom', 'end-bottom'].includes(position) ? 'bottom' : 'top';\n }\n\n /** @private */\n __computeOpened(manual, opened, autoOpened, connected) {\n return connected && (manual ? opened : autoOpened);\n }\n\n /** @private */\n __computePosition(position, defaultPosition) {\n return position || defaultPosition;\n }\n\n /** @private */\n __autoOpenedChanged(opened, oldOpened) {\n if (opened) {\n document.addEventListener('keydown', this.__onKeyDown, true);\n } else if (oldOpened) {\n document.removeEventListener('keydown', this.__onKeyDown, true);\n }\n }\n\n /** @private */\n __forChanged(forId) {\n if (forId) {\n this.__setTargetByIdDebouncer = Debouncer.debounce(this.__setTargetByIdDebouncer, microTask, () =>\n this.__setTargetById(forId),\n );\n }\n }\n\n /** @private */\n __setTargetById(targetId) {\n if (!this.isConnected) {\n return;\n }\n\n const target = this.getRootNode().getElementById(targetId);\n\n if (target) {\n this.target = target;\n } else {\n console.warn(`No element with id=\"${targetId}\" found to show tooltip.`);\n }\n }\n\n /** @private */\n __targetChanged(target, oldTarget) {\n if (oldTarget) {\n oldTarget.removeEventListener('mouseenter', this.__onMouseEnter);\n oldTarget.removeEventListener('mouseleave', this.__onMouseLeave);\n oldTarget.removeEventListener('focusin', this.__onFocusin);\n oldTarget.removeEventListener('focusout', this.__onFocusout);\n oldTarget.removeEventListener('mousedown', this.__onMouseDown);\n\n this.__targetVisibilityObserver.unobserve(oldTarget);\n }\n\n if (target) {\n target.addEventListener('mouseenter', this.__onMouseEnter);\n target.addEventListener('mouseleave', this.__onMouseLeave);\n target.addEventListener('focusin', this.__onFocusin);\n target.addEventListener('focusout', this.__onFocusout);\n target.addEventListener('mousedown', this.__onMouseDown);\n\n // Wait before observing to avoid Chrome issue.\n requestAnimationFrame(() => {\n this.__targetVisibilityObserver.observe(target);\n });\n }\n }\n\n /** @private */\n __onFocusin(event) {\n if (this.manual) {\n return;\n }\n\n // Only open on keyboard focus.\n if (!isKeyboardActive()) {\n return;\n }\n\n // Do not re-open while focused if closed on Esc or mousedown.\n if (this.target.contains(event.relatedTarget)) {\n return;\n }\n\n if (!this.__isShouldShow()) {\n return;\n }\n\n this.__focusInside = true;\n\n if (!this.__isTargetHidden && (!this.__hoverInside || !this._autoOpened)) {\n this._stateController.open({ focus: true });\n }\n }\n\n /** @private */\n __onFocusout(event) {\n if (this.manual) {\n return;\n }\n\n // Do not close when moving focus within a component.\n if (this.target.contains(event.relatedTarget)) {\n return;\n }\n\n this.__focusInside = false;\n\n if (!this.__hoverInside) {\n this._stateController.close(true);\n }\n }\n\n /** @private */\n __onKeyDown(event) {\n if (event.key === 'Escape') {\n event.stopPropagation();\n this._stateController.close(true);\n }\n }\n\n /** @private */\n __onMouseDown() {\n if (this.manual) {\n return;\n }\n\n this._stateController.close(true);\n }\n\n /** @private */\n __onMouseEnter() {\n if (this.manual) {\n return;\n }\n\n if (!this.__isShouldShow()) {\n return;\n }\n\n if (this.__hoverInside) {\n // Already hovering inside the element, do nothing.\n return;\n }\n\n this.__hoverInside = true;\n\n if (!this.__isTargetHidden && (!this.__focusInside || !this._autoOpened)) {\n this._stateController.open({ hover: true });\n }\n }\n\n /** @private */\n __onMouseLeave(event) {\n if (event.relatedTarget !== this._overlayElement) {\n this.__handleMouseLeave();\n }\n }\n\n /** @protected */\n __onOverlayMouseEnter() {\n // Retain opened state when moving pointer over the overlay.\n // Closing can start due to an offset between the target and\n // the overlay itself. If that's the case, re-open overlay.\n // See https://github.com/vaadin/web-components/issues/6316\n if (this._stateController.isClosing) {\n this._stateController.open({ immediate: true });\n }\n }\n\n /** @protected */\n __onOverlayMouseLeave(event) {\n if (event.relatedTarget !== this.target) {\n this.__handleMouseLeave();\n }\n }\n\n /** @private */\n __handleMouseLeave() {\n if (this.manual) {\n return;\n }\n\n this.__hoverInside = false;\n\n if (!this.__focusInside) {\n this._stateController.close();\n }\n }\n\n /** @private */\n __onOverlayOpen() {\n if (this.manual) {\n return;\n }\n\n // Close tooltip if another overlay is opened on top of the tooltip's overlay\n if (this._overlayElement.opened && !this._overlayElement._last) {\n this._stateController.close(true);\n }\n }\n\n /** @private */\n __onTargetVisibilityChange(isVisible) {\n const oldHidden = this.__isTargetHidden;\n this.__isTargetHidden = !isVisible;\n\n // Open the overlay when the target becomes visible and has focus or hover.\n if (oldHidden && isVisible && (this.__focusInside || this.__hoverInside)) {\n this._stateController.open({ immediate: true });\n return;\n }\n\n // Close the overlay when the target is no longer fully visible.\n if (!isVisible && this._autoOpened) {\n this._stateController.close(true);\n }\n }\n\n /** @private */\n __isShouldShow() {\n if (typeof this.shouldShow === 'function' && this.shouldShow(this.target, this.context) !== true) {\n return false;\n }\n\n return true;\n }\n\n /** @private */\n __textChanged(text, oldText) {\n if (this._overlayElement && (text || oldText)) {\n this._overlayElement.requestContentUpdate();\n }\n }\n\n /** @private */\n __tooltipRenderer(root) {\n root.textContent = typeof this.generator === 'function' ? this.generator(this.context) : this.text;\n\n // Update the sr-only label text content\n this._overlayContent = root.textContent;\n }\n\n /** @private */\n __computeAriaTarget(ariaTarget, target) {\n const isElementNode = (el) => el && el.nodeType === Node.ELEMENT_NODE;\n const isAriaTargetSet = Array.isArray(ariaTarget) ? ariaTarget.some(isElementNode) : ariaTarget;\n return isAriaTargetSet ? ariaTarget : target;\n }\n\n /** @private */\n __effectiveAriaTargetChanged(ariaTarget, oldAriaTarget) {\n if (oldAriaTarget) {\n [oldAriaTarget].flat().forEach((target) => {\n removeValueFromAttribute(target, 'aria-describedby', this._uniqueId);\n });\n }\n\n if (ariaTarget) {\n [ariaTarget].flat().forEach((target) => {\n addValueToAttribute(target, 'aria-describedby', this._uniqueId);\n });\n }\n }\n\n /** @private */\n __generatorChanged(overlayElement, generator, context) {\n if (overlayElement) {\n if (generator !== this.__oldTextGenerator || context !== this.__oldContext) {\n overlayElement.requestContentUpdate();\n }\n\n this.__oldTextGenerator = generator;\n this.__oldContext = context;\n }\n }\n\n /** @private */\n __updateSrLabelText(srLabel, textContent) {\n if (srLabel) {\n srLabel.textContent = textContent;\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2022 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './vaadin-tooltip-overlay.js';\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { ThemePropertyMixin } from '@vaadin/vaadin-themable-mixin/vaadin-theme-property-mixin.js';\nimport { TooltipMixin } from './vaadin-tooltip-mixin.js';\n\n/**\n * `<vaadin-tooltip>` is a Web Component for creating tooltips.\n *\n * ```html\n * <button id=\"confirm\">Confirm</button>\n * <vaadin-tooltip text=\"Click to save changes\" for=\"confirm\"></vaadin-tooltip>\n * ```\n *\n * ### Styling\n *\n * `<vaadin-tooltip>` uses `<vaadin-tooltip-overlay>` internal\n * themable component as the actual visible overlay.\n *\n * See [`<vaadin-overlay>`](#/elements/vaadin-overlay) documentation\n * for `<vaadin-tooltip-overlay>` parts.\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description\n * -----------------|----------------------------------------\n * `position` | Reflects the `position` property value.\n *\n * Note: the `theme` attribute value set on `<vaadin-tooltip>` is\n * propagated to the internal `<vaadin-tooltip-overlay>` component.\n *\n * ### Custom CSS Properties\n *\n * The following custom CSS properties are available on the `<vaadin-tooltip>` element:\n *\n * Custom CSS property | Description\n * ---------------------------------|-------------\n * `--vaadin-tooltip-offset-top` | Used as an offset when the tooltip is aligned vertically below the target\n * `--vaadin-tooltip-offset-bottom` | Used as an offset when the tooltip is aligned vertically above the target\n * `--vaadin-tooltip-offset-start` | Used as an offset when the tooltip is aligned horizontally after the target\n * `--vaadin-tooltip-offset-end` | Used as an offset when the tooltip is aligned horizontally before the target\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ControllerMixin\n * @mixes ElementMixin\n * @mixes ThemePropertyMixin\n * @mixes TooltipMixin\n */\nclass Tooltip extends TooltipMixin(ThemePropertyMixin(ElementMixin(ControllerMixin(PolymerElement)))) {\n static get is() {\n return 'vaadin-tooltip';\n }\n\n static get template() {\n return html`\n <style>\n :host {\n display: none;\n }\n </style>\n <vaadin-tooltip-overlay\n renderer=\"[[_renderer]]\"\n theme$=\"[[_theme]]\"\n opened=\"[[__computeOpened(manual, opened, _autoOpened, _isConnected)]]\"\n position-target=\"[[target]]\"\n position=\"[[__effectivePosition]]\"\n no-horizontal-overlap$=\"[[__computeNoHorizontalOverlap(__effectivePosition)]]\"\n no-vertical-overlap$=\"[[__computeNoVerticalOverlap(__effectivePosition)]]\"\n horizontal-align=\"[[__computeHorizontalAlign(__effectivePosition)]]\"\n vertical-align=\"[[__computeVerticalAlign(__effectivePosition)]]\"\n on-mouseenter=\"__onOverlayMouseEnter\"\n on-mouseleave=\"__onOverlayMouseLeave\"\n modeless\n ></vaadin-tooltip-overlay>\n\n <slot name=\"sr-label\"></slot>\n `;\n }\n}\n\ndefineCustomElement(Tooltip);\n\nexport { Tooltip };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { getAncestorRootNodes } from '@vaadin/component-base/src/dom-utils.js';\n\nconst PROP_NAMES_VERTICAL = {\n start: 'top',\n end: 'bottom',\n};\n\nconst PROP_NAMES_HORIZONTAL = {\n start: 'left',\n end: 'right',\n};\n\nconst targetResizeObserver = new ResizeObserver((entries) => {\n setTimeout(() => {\n entries.forEach((entry) => {\n if (entry.target.__overlay) {\n entry.target.__overlay._updatePosition();\n }\n });\n });\n});\n\n/**\n * @polymerMixin\n */\nexport const PositionMixin = (superClass) =>\n class PositionMixin extends superClass {\n static get properties() {\n return {\n /**\n * The element next to which this overlay should be aligned.\n * The position of the overlay relative to the positionTarget can be adjusted\n * with properties `horizontalAlign`, `verticalAlign`, `noHorizontalOverlap`\n * and `noVerticalOverlap`.\n */\n positionTarget: {\n type: Object,\n value: null,\n sync: true,\n },\n\n /**\n * When `positionTarget` is set, this property defines whether to align the overlay's\n * left or right side to the target element by default.\n * Possible values are `start` and `end`.\n * RTL is taken into account when interpreting the value.\n * The overlay is automatically flipped to the opposite side when it doesn't fit into\n * the default side defined by this property.\n *\n * @attr {start|end} horizontal-align\n */\n horizontalAlign: {\n type: String,\n value: 'start',\n sync: true,\n },\n\n /**\n * When `positionTarget` is set, this property defines whether to align the overlay's\n * top or bottom side to the target element by default.\n * Possible values are `top` and `bottom`.\n * The overlay is automatically flipped to the opposite side when it doesn't fit into\n * the default side defined by this property.\n *\n * @attr {top|bottom} vertical-align\n */\n verticalAlign: {\n type: String,\n value: 'top',\n sync: true,\n },\n\n /**\n * When `positionTarget` is set, this property defines whether the overlay should overlap\n * the target element in the x-axis, or be positioned right next to it.\n *\n * @attr {boolean} no-horizontal-overlap\n */\n noHorizontalOverlap: {\n type: Boolean,\n value: false,\n sync: true,\n },\n\n /**\n * When `positionTarget` is set, this property defines whether the overlay should overlap\n * the target element in the y-axis, or be positioned right above/below it.\n *\n * @attr {boolean} no-vertical-overlap\n */\n noVerticalOverlap: {\n type: Boolean,\n value: false,\n sync: true,\n },\n\n /**\n * If the overlay content has no intrinsic height, this property can be used to set\n * the minimum vertical space (in pixels) required by the overlay. Setting a value to\n * the property effectively disables the content measurement in favor of using this\n * fixed value for determining the open direction.\n *\n * @attr {number} required-vertical-space\n */\n requiredVerticalSpace: {\n type: Number,\n value: 0,\n sync: true,\n },\n };\n }\n\n static get observers() {\n return [\n '__positionSettingsChanged(horizontalAlign, verticalAlign, noHorizontalOverlap, noVerticalOverlap, requiredVerticalSpace)',\n '__overlayOpenedChanged(opened, positionTarget)',\n ];\n }\n\n constructor() {\n super();\n\n this.__onScroll = this.__onScroll.bind(this);\n this._updatePosition = this._updatePosition.bind(this);\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n\n if (this.opened) {\n this.__addUpdatePositionEventListeners();\n }\n }\n\n /** @protected */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.__removeUpdatePositionEventListeners();\n }\n\n /** @private */\n __addUpdatePositionEventListeners() {\n window.visualViewport.addEventListener('resize', this._updatePosition);\n window.visualViewport.addEventListener('scroll', this.__onScroll, true);\n\n this.__positionTargetAncestorRootNodes = getAncestorRootNodes(this.positionTarget);\n this.__positionTargetAncestorRootNodes.forEach((node) => {\n node.addEventListener('scroll', this.__onScroll, true);\n });\n }\n\n /** @private */\n __removeUpdatePositionEventListeners() {\n window.visualViewport.removeEventListener('resize', this._updatePosition);\n window.visualViewport.removeEventListener('scroll', this.__onScroll, true);\n\n if (this.__positionTargetAncestorRootNodes) {\n this.__positionTargetAncestorRootNodes.forEach((node) => {\n node.removeEventListener('scroll', this.__onScroll, true);\n });\n this.__positionTargetAncestorRootNodes = null;\n }\n }\n\n /** @private */\n __overlayOpenedChanged(opened, positionTarget) {\n this.__removeUpdatePositionEventListeners();\n\n if (positionTarget) {\n positionTarget.__overlay = null;\n targetResizeObserver.unobserve(positionTarget);\n\n if (opened) {\n this.__addUpdatePositionEventListeners();\n positionTarget.__overlay = this;\n targetResizeObserver.observe(positionTarget);\n }\n }\n\n if (opened) {\n const computedStyle = getComputedStyle(this);\n if (!this.__margins) {\n this.__margins = {};\n ['top', 'bottom', 'left', 'right'].forEach((propName) => {\n this.__margins[propName] = parseInt(computedStyle[propName], 10);\n });\n }\n this.setAttribute('dir', computedStyle.direction);\n\n this._updatePosition();\n // Schedule another position update (to cover virtual keyboard opening for example)\n requestAnimationFrame(() => this._updatePosition());\n }\n }\n\n __positionSettingsChanged() {\n this._updatePosition();\n }\n\n /** @private */\n __onScroll(e) {\n // If the scroll event occurred inside the overlay, ignore it.\n if (e.target instanceof Node && this.contains(e.target)) {\n return;\n }\n\n this._updatePosition();\n }\n\n _updatePosition() {\n if (!this.positionTarget || !this.opened) {\n return;\n }\n\n const targetRect = this.positionTarget.getBoundingClientRect();\n\n if (targetRect.width === 0 && targetRect.height === 0 && this.opened) {\n this.opened = false;\n return;\n }\n\n // Detect the desired alignment and update the layout accordingly\n const shouldAlignStartVertically = this.__shouldAlignStartVertically(targetRect);\n this.style.justifyContent = shouldAlignStartVertically ? 'flex-start' : 'flex-end';\n\n const isRTL = this.__isRTL;\n const shouldAlignStartHorizontally = this.__shouldAlignStartHorizontally(targetRect, isRTL);\n const flexStart = (!isRTL && shouldAlignStartHorizontally) || (isRTL && !shouldAlignStartHorizontally);\n this.style.alignItems = flexStart ? 'flex-start' : 'flex-end';\n\n // Get the overlay rect after possible overlay alignment changes\n const overlayRect = this.getBoundingClientRect();\n\n // Obtain vertical positioning properties\n const verticalProps = this.__calculatePositionInOneDimension(\n targetRect,\n overlayRect,\n this.noVerticalOverlap,\n PROP_NAMES_VERTICAL,\n this,\n shouldAlignStartVertically,\n );\n\n // Obtain horizontal positioning properties\n const horizontalProps = this.__calculatePositionInOneDimension(\n targetRect,\n overlayRect,\n this.noHorizontalOverlap,\n PROP_NAMES_HORIZONTAL,\n this,\n shouldAlignStartHorizontally,\n );\n\n // Apply the positioning properties to the overlay\n Object.assign(this.style, verticalProps, horizontalProps);\n\n this.toggleAttribute('bottom-aligned', !shouldAlignStartVertically);\n this.toggleAttribute('top-aligned', shouldAlignStartVertically);\n\n this.toggleAttribute('end-aligned', !flexStart);\n this.toggleAttribute('start-aligned', flexStart);\n }\n\n __shouldAlignStartHorizontally(targetRect, rtl) {\n // Using previous size to fix a case where window resize may cause the overlay to be squeezed\n // smaller than its current space before the fit-calculations.\n const contentWidth = Math.max(this.__oldContentWidth || 0, this.$.overlay.offsetWidth);\n this.__oldContentWidth = this.$.overlay.offsetWidth;\n\n const viewportWidth = Math.min(window.innerWidth, document.documentElement.clientWidth);\n const defaultAlignLeft = (!rtl && this.horizontalAlign === 'start') || (rtl && this.horizontalAlign === 'end');\n\n return this.__shouldAlignStart(\n targetRect,\n contentWidth,\n viewportWidth,\n this.__margins,\n defaultAlignLeft,\n this.noHorizontalOverlap,\n PROP_NAMES_HORIZONTAL,\n );\n }\n\n __shouldAlignStartVertically(targetRect) {\n // Using previous size to fix a case where window resize may cause the overlay to be squeezed\n // smaller than its current space before the fit-calculations.\n const contentHeight =\n this.requiredVerticalSpace || Math.max(this.__oldContentHeight || 0, this.$.overlay.offsetHeight);\n this.__oldContentHeight = this.$.overlay.offsetHeight;\n\n const viewportHeight = Math.min(window.innerHeight, document.documentElement.clientHeight);\n const defaultAlignTop = this.verticalAlign === 'top';\n\n return this.__shouldAlignStart(\n targetRect,\n contentHeight,\n viewportHeight,\n this.__margins,\n defaultAlignTop,\n this.noVerticalOverlap,\n PROP_NAMES_VERTICAL,\n );\n }\n\n // eslint-disable-next-line max-params\n __shouldAlignStart(targetRect, contentSize, viewportSize, margins, defaultAlignStart, noOverlap, propNames) {\n const spaceForStartAlignment =\n viewportSize - targetRect[noOverlap ? propNames.end : propNames.start] - margins[propNames.end];\n const spaceForEndAlignment = targetRect[noOverlap ? propNames.start : propNames.end] - margins[propNames.start];\n\n const spaceForDefaultAlignment = defaultAlignStart ? spaceForStartAlignment : spaceForEndAlignment;\n const spaceForOtherAlignment = defaultAlignStart ? spaceForEndAlignment : spaceForStartAlignment;\n\n const shouldGoToDefaultSide =\n spaceForDefaultAlignment > spaceForOtherAlignment || spaceForDefaultAlignment > contentSize;\n\n return defaultAlignStart === shouldGoToDefaultSide;\n }\n\n /**\n * Returns an adjusted value after resizing the browser window,\n * to avoid wrong calculations when e.g. previously set `bottom`\n * CSS property value is larger than the updated viewport height.\n * See https://github.com/vaadin/web-components/issues/4604\n */\n __adjustBottomProperty(cssPropNameToSet, propNames, currentValue) {\n let adjustedProp;\n\n if (cssPropNameToSet === propNames.end) {\n // Adjust horizontally\n if (propNames.end === PROP_NAMES_VERTICAL.end) {\n const viewportHeight = Math.min(window.innerHeight, document.documentElement.clientHeight);\n\n if (currentValue > viewportHeight && this.__oldViewportHeight) {\n const heightDiff = this.__oldViewportHeight - viewportHeight;\n adjustedProp = currentValue - heightDiff;\n }\n\n this.__oldViewportHeight = viewportHeight;\n }\n\n // Adjust vertically\n if (propNames.end === PROP_NAMES_HORIZONTAL.end) {\n const viewportWidth = Math.min(window.innerWidth, document.documentElement.clientWidth);\n\n if (currentValue > viewportWidth && this.__oldViewportWidth) {\n const widthDiff = this.__oldViewportWidth - viewportWidth;\n adjustedProp = currentValue - widthDiff;\n }\n\n this.__oldViewportWidth = viewportWidth;\n }\n }\n\n return adjustedProp;\n }\n\n /**\n * Returns an object with CSS position properties to set,\n * e.g. { top: \"100px\" }\n */\n // eslint-disable-next-line max-params\n __calculatePositionInOneDimension(targetRect, overlayRect, noOverlap, propNames, overlay, shouldAlignStart) {\n const cssPropNameToSet = shouldAlignStart ? propNames.start : propNames.end;\n const cssPropNameToClear = shouldAlignStart ? propNames.end : propNames.start;\n\n const currentValue = parseFloat(overlay.style[cssPropNameToSet] || getComputedStyle(overlay)[cssPropNameToSet]);\n const adjustedValue = this.__adjustBottomProperty(cssPropNameToSet, propNames, currentValue);\n\n const diff =\n overlayRect[shouldAlignStart ? propNames.start : propNames.end] -\n targetRect[noOverlap === shouldAlignStart ? propNames.end : propNames.start];\n\n const valueToSet = adjustedValue\n ? `${adjustedValue}px`\n : `${currentValue + diff * (shouldAlignStart ? -1 : 1)}px`;\n\n return {\n [cssPropNameToSet]: valueToSet,\n [cssPropNameToClear]: '',\n };\n }\n };\n"],"names":["testUserAgent","regexp","test","navigator","userAgent","testPlatform","platform","isAndroid","isChrome","vendor","isFirefox","isIPad","maxTouchPoints","isIOS","isSafari","isTouch","document","createEvent","e","tooltipOverlay","overlay","moduleId","TooltipOverlayMixin","superClass","properties","position","type","String","reflectToAttribute","requestContentUpdate","super","this","toggleAttribute","textContent","trim","positionTarget","owner","style","getComputedStyle","forEach","prop","setProperty","getPropertyValue","_updatePosition","targetRect","getBoundingClientRect","overlayRect","$","offset","width","left","right","parseFloat","height","top","tooltipOverlayStyles","TooltipOverlay","is","template","ready","__dataHost","_overlayElement","DEFAULT_DELAY","defaultFocusDelay","defaultHoverDelay","defaultHideDelay","closing","Set","warmedUp","warmUpTimeout","cooldownTimeout","TooltipStateController","constructor","host","openedProp","manual","focusDelay","tooltip","hoverDelay","hideDelay","isClosing","has","open","options","immediate","hover","focus","isHover","isFocus","__closeTimeout","__showTooltip","__warmupTooltip","close","__scheduleClose","__abortClose","_setOpened","__abortWarmUp","__abortCooldown","__scheduleCooldown","_isOpened","opened","__flushClosingTooltips","_stateController","delete","__scheduleWarmUp","clearTimeout","add","setTimeout","delay","TooltipMixin","ariaTarget","Object","context","value","Number","for","observer","generator","Boolean","sync","shouldShow","_target","_context","target","text","_autoOpened","_effectiveAriaTarget","computed","__effectivePosition","__isTargetHidden","_isConnected","_position","_srLabel","_overlayContent","observers","setDefaultFocusDelay","setDefaultHideDelay","setDefaultHoverDelay","_uniqueId","_renderer","__tooltipRenderer","bind","__onFocusin","__onFocusout","__onMouseDown","__onMouseEnter","__onMouseLeave","__onKeyDown","__onOverlayOpen","__targetVisibilityObserver","IntersectionObserver","entries","entry","__onTargetVisibilityChange","isIntersecting","threshold","connectedCallback","body","addEventListener","disconnectedCallback","removeEventListener","_srLabelController","initializer","element","id","setAttribute","addController","__computeHorizontalAlign","includes","__computeNoHorizontalOverlap","__computeNoVerticalOverlap","__computeVerticalAlign","__computeOpened","autoOpened","connected","__computePosition","defaultPosition","__autoOpenedChanged","oldOpened","__forChanged","forId","__setTargetByIdDebouncer","debounce","__setTargetById","targetId","isConnected","getRootNode","getElementById","console","warn","__targetChanged","oldTarget","unobserve","requestAnimationFrame","observe","event","contains","relatedTarget","__isShouldShow","__focusInside","__hoverInside","key","stopPropagation","__handleMouseLeave","__onOverlayMouseEnter","__onOverlayMouseLeave","_last","isVisible","oldHidden","__textChanged","oldText","root","__computeAriaTarget","Array","isArray","some","el","nodeType","Node","ELEMENT_NODE","__effectiveAriaTargetChanged","oldAriaTarget","flat","__generatorChanged","overlayElement","__oldTextGenerator","__oldContext","__updateSrLabelText","srLabel","Tooltip","PROP_NAMES_VERTICAL","start","end","PROP_NAMES_HORIZONTAL","targetResizeObserver","ResizeObserver","__overlay","PositionMixin","horizontalAlign","verticalAlign","noHorizontalOverlap","noVerticalOverlap","requiredVerticalSpace","__onScroll","__addUpdatePositionEventListeners","__removeUpdatePositionEventListeners","window","visualViewport","__positionTargetAncestorRootNodes","node","__overlayOpenedChanged","computedStyle","__margins","propName","parseInt","direction","__positionSettingsChanged","shouldAlignStartVertically","__shouldAlignStartVertically","justifyContent","isRTL","__isRTL","shouldAlignStartHorizontally","__shouldAlignStartHorizontally","flexStart","alignItems","verticalProps","__calculatePositionInOneDimension","horizontalProps","assign","rtl","contentWidth","Math","max","__oldContentWidth","offsetWidth","viewportWidth","min","innerWidth","documentElement","clientWidth","defaultAlignLeft","__shouldAlignStart","contentHeight","__oldContentHeight","offsetHeight","viewportHeight","innerHeight","clientHeight","defaultAlignTop","contentSize","viewportSize","margins","defaultAlignStart","noOverlap","propNames","spaceForStartAlignment","spaceForEndAlignment","spaceForDefaultAlignment","__adjustBottomProperty","cssPropNameToSet","currentValue","adjustedProp","__oldViewportHeight","__oldViewportWidth","shouldAlignStart","cssPropNameToClear","adjustedValue","diff","valueToSet"],"sourceRoot":""}
package/dist/umd/8983.js CHANGED
@@ -306,7 +306,7 @@
306
306
  --vaadin-button-primary-background: var(--lumo-shade-50pct);
307
307
  --vaadin-button-primary-text-color: var(--lumo-primary-contrast-color);
308
308
  }
309
- `,{moduleId:"lumo-notification-card"});var r=a(13256),i=a(51450),n=a(73278),l=a(4080),s=a(82901),c=a(90676),d=a(55341),m=a(21255),u=a(75365);class p extends((0,e.cp)((0,c.q)(r.Pu))){static get template(){return r.qy`
309
+ `,{moduleId:"lumo-notification-card"});var r=a(13256),i=a(51450),n=a(73278),l=a(4080),s=a(82901),c=a(72562),d=a(55341),m=a(21255),u=a(75365);class p extends((0,e.cp)((0,c.q)(r.Pu))){static get template(){return r.qy`
310
310
  <style>
311
311
  :host {
312
312
  position: fixed;