@descope/web-components-ui 1.32.0 → 1.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs.js +481 -364
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +524 -438
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/1408.js +382 -0
- package/dist/umd/1408.js.LICENSE.txt +17 -0
- package/dist/umd/1408.js.map +1 -0
- package/dist/umd/{9243.js → 1519.js} +7 -6
- package/dist/umd/1519.js.map +1 -0
- package/dist/umd/189.js +109 -276
- package/dist/umd/189.js.LICENSE.txt +12 -0
- package/dist/umd/189.js.map +1 -0
- package/dist/umd/{7979.js → 1899.js} +11 -10
- package/dist/umd/1899.js.map +1 -0
- package/dist/umd/{1172.js → 1995.js} +10 -9
- package/dist/umd/1995.js.map +1 -0
- package/dist/umd/2540.js +2 -1
- package/dist/umd/2540.js.map +1 -0
- package/dist/umd/2672.js +2 -0
- package/dist/umd/2672.js.map +1 -0
- package/dist/umd/2739.js +2 -0
- package/dist/umd/2739.js.map +1 -0
- package/dist/umd/{2570.js → 2894.js} +6 -5
- package/dist/umd/2894.js.map +1 -0
- package/dist/umd/{404.js → 3620.js} +9 -8
- package/dist/umd/3620.js.map +1 -0
- package/dist/umd/{4455.js → 384.js} +8 -7
- package/dist/umd/384.js.map +1 -0
- package/dist/umd/4467.js +3 -0
- package/dist/umd/4467.js.map +1 -0
- package/dist/umd/{4127.js → 4518.js} +11 -10
- package/dist/umd/4518.js.map +1 -0
- package/dist/umd/{1902.js → 4550.js} +7 -6
- package/dist/umd/4550.js.map +1 -0
- package/dist/umd/{4554.js → 4623.js} +7 -6
- package/dist/umd/4623.js.map +1 -0
- package/dist/umd/{742.js → 4914.js} +3 -2
- package/dist/umd/4914.js.map +1 -0
- package/dist/umd/{9478.js → 513.js} +6 -5
- package/dist/umd/513.js.map +1 -0
- package/dist/umd/{201.js → 5260.js} +6 -5
- package/dist/umd/5260.js.map +1 -0
- package/dist/umd/5414.js +2 -1
- package/dist/umd/5414.js.map +1 -0
- package/dist/umd/5648.js +110 -0
- package/dist/umd/5648.js.map +1 -0
- package/dist/umd/5780.js +2 -0
- package/dist/umd/5780.js.map +1 -0
- package/dist/umd/{5563.js → 6227.js} +6 -5
- package/dist/umd/6227.js.map +1 -0
- package/dist/umd/6424.js +149 -0
- package/dist/umd/6424.js.map +1 -0
- package/dist/umd/{7097.js → 6649.js} +6 -5
- package/dist/umd/6649.js.map +1 -0
- package/dist/umd/676.js +3 -0
- package/dist/umd/676.js.map +1 -0
- package/dist/umd/{1738.js → 7092.js} +2 -1
- package/dist/umd/7092.js.map +1 -0
- package/dist/umd/{3638.js → 7182.js} +3 -2
- package/dist/umd/7182.js.map +1 -0
- package/dist/umd/{507.js → 7291.js} +6 -5
- package/dist/umd/7291.js.map +1 -0
- package/dist/umd/{4187.js → 7565.js} +3 -2
- package/dist/umd/7565.js.map +1 -0
- package/dist/umd/{3191.js → 7620.js} +11 -7
- package/dist/umd/7620.js.map +1 -0
- package/dist/umd/{6050.js → 7774.js} +10 -9
- package/dist/umd/7774.js.map +1 -0
- package/dist/umd/{2666.js → 7939.js} +5 -4
- package/dist/umd/7939.js.map +1 -0
- package/dist/umd/{4114.js → 8618.js} +5 -4
- package/dist/umd/8618.js.map +1 -0
- package/dist/umd/8961.js +2 -0
- package/dist/umd/8961.js.map +1 -0
- package/dist/umd/{4574.js → 8983.js} +6 -5
- package/dist/umd/8983.js.map +1 -0
- package/dist/umd/9030.js +265 -307
- package/dist/umd/9030.js.LICENSE.txt +0 -6
- package/dist/umd/9030.js.map +1 -0
- package/dist/umd/9365.js +2 -0
- package/dist/umd/9365.js.map +1 -0
- package/dist/umd/{4218.js → 9380.js} +5 -4
- package/dist/umd/9380.js.map +1 -0
- package/dist/umd/9871.js +276 -0
- package/dist/umd/9871.js.map +1 -0
- package/dist/umd/9970.js +833 -0
- package/dist/umd/9970.js.map +1 -0
- package/dist/umd/DescopeDev.js +2 -1
- package/dist/umd/DescopeDev.js.map +1 -0
- package/dist/umd/boolean-fields-descope-boolean-field-internal-index-js.js +2 -1
- package/dist/umd/boolean-fields-descope-boolean-field-internal-index-js.js.map +1 -0
- package/dist/umd/boolean-fields-descope-checkbox-index-js.js +2 -1
- package/dist/umd/boolean-fields-descope-checkbox-index-js.js.map +1 -0
- package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js +2 -1
- package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js.map +1 -0
- package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +2 -1
- package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js.map +1 -0
- package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-internal-index-js.js +2 -1
- package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-internal-index-js.js.map +1 -0
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +2 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -0
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-internal-index-js.js +2 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-internal-index-js.js.map +1 -0
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +2 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.map +1 -0
- package/dist/umd/descope-address-field.js +2 -1
- package/dist/umd/descope-address-field.js.map +1 -0
- package/dist/umd/descope-alert-index-js.js +2 -1
- package/dist/umd/descope-alert-index-js.js.map +1 -0
- package/dist/umd/descope-apps-list-index-js.js +2 -1
- package/dist/umd/descope-apps-list-index-js.js.map +1 -0
- package/dist/umd/descope-autocomplete-field.js +2 -1
- package/dist/umd/descope-autocomplete-field.js.map +1 -0
- package/dist/umd/descope-avatar.js +2 -1
- package/dist/umd/descope-avatar.js.map +1 -0
- package/dist/umd/descope-badge-index-js.js +2 -1
- package/dist/umd/descope-badge-index-js.js.map +1 -0
- package/dist/umd/descope-button-index-js.js +5 -4
- package/dist/umd/descope-button-index-js.js.map +1 -0
- package/dist/umd/descope-code-snippet-index-js.js +2 -1
- package/dist/umd/descope-code-snippet-index-js.js.map +1 -0
- package/dist/umd/descope-combo-box.js +7 -6
- package/dist/umd/descope-combo-box.js.map +1 -0
- package/dist/umd/descope-container-index-js.js +2 -1
- package/dist/umd/descope-container-index-js.js.map +1 -0
- package/dist/umd/descope-date-field-descope-calendar-index-js.js +2 -1
- package/dist/umd/descope-date-field-descope-calendar-index-js.js.map +1 -0
- package/dist/umd/descope-date-field-index-js.js +2 -1
- package/dist/umd/descope-date-field-index-js.js.map +1 -0
- package/dist/umd/descope-divider-index-js.js +2 -1
- package/dist/umd/descope-divider-index-js.js.map +1 -0
- package/dist/umd/descope-email-field-index-js.js +5 -4
- package/dist/umd/descope-email-field-index-js.js.map +1 -0
- package/dist/umd/descope-enriched-text-index-js.js +2 -1
- package/dist/umd/descope-enriched-text-index-js.js.map +1 -0
- package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +5 -4
- package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.map +1 -0
- package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js +6 -5
- package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js.map +1 -0
- package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +2 -1
- package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js.map +1 -0
- package/dist/umd/descope-grid-descope-grid-text-column-index-js.js +5 -4
- package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.map +1 -0
- package/dist/umd/descope-grid-index-js.js +2 -1
- package/dist/umd/descope-grid-index-js.js.map +1 -0
- package/dist/umd/descope-hybrid-field-index-js.js +4 -3
- package/dist/umd/descope-hybrid-field-index-js.js.map +1 -0
- package/dist/umd/descope-icon-index-js.js +2 -1
- package/dist/umd/descope-icon-index-js.js.map +1 -0
- package/dist/umd/descope-image-index-js.js +2 -1
- package/dist/umd/descope-image-index-js.js.map +1 -0
- package/dist/umd/descope-link-index-js.js +2 -1
- package/dist/umd/descope-link-index-js.js.map +1 -0
- package/dist/umd/descope-list-index-js.js +2 -1
- package/dist/umd/descope-list-index-js.js.map +1 -0
- package/dist/umd/descope-loader-linear-index-js.js +2 -1
- package/dist/umd/descope-loader-linear-index-js.js.map +1 -0
- package/dist/umd/descope-loader-radial-index-js.js +2 -1
- package/dist/umd/descope-loader-radial-index-js.js.map +1 -0
- package/dist/umd/descope-logo-index-js.js +2 -1
- package/dist/umd/descope-logo-index-js.js.map +1 -0
- package/dist/umd/descope-modal-index-js.js +2 -1
- package/dist/umd/descope-modal-index-js.js.map +1 -0
- package/dist/umd/descope-multi-select-combo-box-index-js.js +2 -1
- package/dist/umd/descope-multi-select-combo-box-index-js.js.map +1 -0
- package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +2 -1
- package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js.map +1 -0
- package/dist/umd/descope-new-password-index-js.js +2 -1
- package/dist/umd/descope-new-password-index-js.js.map +1 -0
- package/dist/umd/descope-notification-descope-notification-card-index-js.js +2 -1
- package/dist/umd/descope-notification-descope-notification-card-index-js.js.map +1 -0
- package/dist/umd/descope-notification-index-js.js +2 -1
- package/dist/umd/descope-notification-index-js.js.map +1 -0
- package/dist/umd/descope-notp-image-index-js.js +2 -1
- package/dist/umd/descope-notp-image-index-js.js.map +1 -0
- package/dist/umd/descope-number-field-index-js.js +2 -1
- package/dist/umd/descope-number-field-index-js.js.map +1 -0
- package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js +2 -1
- package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js.map +1 -0
- package/dist/umd/descope-passcode-index-js.js +3 -2
- package/dist/umd/descope-passcode-index-js.js.map +1 -0
- package/dist/umd/descope-password-index-js.js +2 -1
- package/dist/umd/descope-password-index-js.js.map +1 -0
- package/dist/umd/descope-policy-validation-index-js.js +2 -1
- package/dist/umd/descope-policy-validation-index-js.js.map +1 -0
- package/dist/umd/descope-radio-group-index-js.js +2 -1
- package/dist/umd/descope-radio-group-index-js.js.map +1 -0
- package/dist/umd/descope-recaptcha-index-js.js +2 -1
- package/dist/umd/descope-recaptcha-index-js.js.map +1 -0
- package/dist/umd/descope-scopes-list-index-js.js +2 -1
- package/dist/umd/descope-scopes-list-index-js.js.map +1 -0
- package/dist/umd/descope-security-questions-setup-index-js.js +2 -1
- package/dist/umd/descope-security-questions-setup-index-js.js.map +1 -0
- package/dist/umd/descope-security-questions-verify-index-js.js +3 -2
- package/dist/umd/descope-security-questions-verify-index-js.js.map +1 -0
- package/dist/umd/descope-text-area-index-js.js +2 -1
- package/dist/umd/descope-text-area-index-js.js.map +1 -0
- package/dist/umd/descope-text-field-index-js.js +3 -2
- package/dist/umd/descope-text-field-index-js.js.map +1 -0
- package/dist/umd/descope-text.js +2 -1
- package/dist/umd/descope-text.js.map +1 -0
- package/dist/umd/descope-third-party-app-logo-index-js.js +2 -1
- package/dist/umd/descope-third-party-app-logo-index-js.js.map +1 -0
- package/dist/umd/descope-totp-image-index-js.js +2 -1
- package/dist/umd/descope-totp-image-index-js.js.map +1 -0
- package/dist/umd/descope-upload-file-index-js.js +2 -1
- package/dist/umd/descope-upload-file-index-js.js.map +1 -0
- package/dist/umd/descope-user-attribute-index-js.js +2 -1
- package/dist/umd/descope-user-attribute-index-js.js.map +1 -0
- package/dist/umd/descope-user-auth-method-index-js.js +2 -1
- package/dist/umd/descope-user-auth-method-index-js.js.map +1 -0
- package/dist/umd/fonts/font-1364590020.woff +0 -0
- package/dist/umd/fonts/font-1949233557.woff +0 -0
- package/dist/umd/index.js +2 -1
- package/dist/umd/index.js.map +1 -0
- package/dist/umd/mapping-fields-descope-mappings-field-descope-mapping-item-index-js.js +2 -1
- package/dist/umd/mapping-fields-descope-mappings-field-descope-mapping-item-index-js.js.map +1 -0
- package/dist/umd/mapping-fields-descope-mappings-field-descope-mappings-field-internal-index-js.js +2 -1
- package/dist/umd/mapping-fields-descope-mappings-field-descope-mappings-field-internal-index-js.js.map +1 -0
- package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +2 -1
- package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -0
- package/dist/umd/mapping-fields-descope-saml-group-mappings-descope-saml-group-mappings-internal-index-js.js +2 -1
- package/dist/umd/mapping-fields-descope-saml-group-mappings-descope-saml-group-mappings-internal-index-js.js.map +1 -0
- package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +2 -1
- package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -0
- package/dist/umd/phone-fields-descope-phone-field-descope-phone-field-internal-index-js.js +2 -1
- package/dist/umd/phone-fields-descope-phone-field-descope-phone-field-internal-index-js.js.map +1 -0
- package/dist/umd/phone-fields-descope-phone-field-index-js.js +2 -1
- package/dist/umd/phone-fields-descope-phone-field-index-js.js.map +1 -0
- package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +3 -2
- package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js.map +1 -0
- package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +8 -7
- package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js.map +1 -0
- package/package.json +10 -8
- package/src/baseClasses/createCssVarImageClass.js +10 -5
- package/src/components/button-selection-group-fields/baseButtonSelectionGroup.js +7 -0
- package/src/components/button-selection-group-fields/createBaseButtonSelectionGroupInternalClass.js +1 -8
- package/src/components/button-selection-group-fields/descope-button-selection-group-item/ButtonSelectionGroupItemClass.js +11 -6
- package/src/components/descope-alert/AlertClass.js +16 -12
- package/src/components/descope-badge/BadgeClass.js +11 -6
- package/src/components/descope-code-snippet/CodeSnippetClass.js +9 -4
- package/src/components/descope-container/ContainerClass.js +9 -4
- package/src/components/descope-date-field/DateFieldClass.js +22 -17
- package/src/components/descope-date-field/descope-calendar/CalendarClass.js +28 -18
- package/src/components/descope-date-field/descope-calendar/helpers.js +1 -2
- package/src/components/descope-divider/DividerClass.js +14 -9
- package/src/components/descope-enriched-text/EnrichedTextClass.js +9 -4
- package/src/components/descope-grid/GridClass.js +1 -1
- package/src/components/descope-hybrid-field/HybridFieldClass.js +15 -10
- package/src/components/descope-icon/IconClass.js +9 -4
- package/src/components/descope-image/ImageClass.js +10 -5
- package/src/components/descope-link/LinkClass.js +14 -9
- package/src/components/descope-list/ListClass.js +15 -13
- package/src/components/descope-list/ListItemClass.js +16 -14
- package/src/components/descope-loader-linear/LoaderLinearClass.js +10 -5
- package/src/components/descope-loader-radial/LoaderRadialClass.js +10 -5
- package/src/components/descope-modal/ModalClass.js +16 -4
- package/src/components/descope-new-password/NewPasswordClass.js +1 -1
- package/src/components/descope-new-password/descope-new-password-internal/NewPasswordInternal.js +8 -6
- package/src/components/descope-passcode/PasscodeClass.js +28 -1
- package/src/components/descope-passcode/descope-passcode-internal/PasscodeInternal.js +26 -23
- package/src/components/descope-passcode/descope-passcode-internal/helpers.js +3 -22
- package/src/components/descope-policy-validation/PolicyValidationClass.js +8 -3
- package/src/components/descope-recaptcha/RecaptchaClass.js +13 -8
- package/src/components/descope-scopes-list/ScopesListClass.js +9 -5
- package/src/components/descope-security-questions-setup/SecurityQuestionsSetupClass.js +9 -5
- package/src/components/descope-security-questions-verify/SecurityQuestionsVerifyClass.js +9 -5
- package/src/components/descope-text-field/TextFieldClass.js +1 -1
- package/src/components/descope-third-party-app-logo/ThirdPartyAppLogoClass.js +20 -16
- package/src/components/descope-upload-file/UploadFileClass.js +20 -15
- package/src/components/descope-user-attribute/UserAttributeClass.js +25 -22
- package/src/components/descope-user-auth-method/UserAuthMethodClass.js +25 -22
- package/src/components/mapping-fields/descope-mappings-field/descope-mapping-item/MappingItem.js +15 -9
- package/src/components/phone-fields/descope-phone-field/PhoneFieldClass.js +1 -0
- package/src/components/phone-fields/descope-phone-field/helpers.js +0 -1
- package/src/mixins/createProxy.js +3 -1
- package/src/mixins/createStyleMixin/index.js +9 -22
- package/src/mixins/draggableMixin.js +3 -2
- package/dist/umd/1402.js +0 -1
- package/dist/umd/1484.js +0 -148
- package/dist/umd/3110.js +0 -275
- package/dist/umd/3437.js +0 -2
- package/dist/umd/4619.js +0 -1
- package/dist/umd/4902.js +0 -170
- package/dist/umd/4902.js.LICENSE.txt +0 -23
- package/dist/umd/5096.js +0 -109
- package/dist/umd/5318.js +0 -1
- package/dist/umd/5459.js +0 -1
- package/dist/umd/7150.js +0 -2
- package/dist/umd/731.js +0 -832
- package/dist/umd/8823.js +0 -1
- /package/dist/umd/{9243.js.LICENSE.txt → 1519.js.LICENSE.txt} +0 -0
- /package/dist/umd/{1902.js.LICENSE.txt → 1899.js.LICENSE.txt} +0 -0
- /package/dist/umd/{1172.js.LICENSE.txt → 1995.js.LICENSE.txt} +0 -0
- /package/dist/umd/{2570.js.LICENSE.txt → 2894.js.LICENSE.txt} +0 -0
- /package/dist/umd/{1484.js.LICENSE.txt → 3620.js.LICENSE.txt} +0 -0
- /package/dist/umd/{2666.js.LICENSE.txt → 384.js.LICENSE.txt} +0 -0
- /package/dist/umd/{3437.js.LICENSE.txt → 4467.js.LICENSE.txt} +0 -0
- /package/dist/umd/{404.js.LICENSE.txt → 4518.js.LICENSE.txt} +0 -0
- /package/dist/umd/{4455.js.LICENSE.txt → 4550.js.LICENSE.txt} +0 -0
- /package/dist/umd/{4554.js.LICENSE.txt → 4623.js.LICENSE.txt} +0 -0
- /package/dist/umd/{742.js.LICENSE.txt → 4914.js.LICENSE.txt} +0 -0
- /package/dist/umd/{507.js.LICENSE.txt → 513.js.LICENSE.txt} +0 -0
- /package/dist/umd/{201.js.LICENSE.txt → 5260.js.LICENSE.txt} +0 -0
- /package/dist/umd/{5096.js.LICENSE.txt → 5648.js.LICENSE.txt} +0 -0
- /package/dist/umd/{5563.js.LICENSE.txt → 6227.js.LICENSE.txt} +0 -0
- /package/dist/umd/{4127.js.LICENSE.txt → 6424.js.LICENSE.txt} +0 -0
- /package/dist/umd/{7097.js.LICENSE.txt → 6649.js.LICENSE.txt} +0 -0
- /package/dist/umd/{7150.js.LICENSE.txt → 676.js.LICENSE.txt} +0 -0
- /package/dist/umd/{3638.js.LICENSE.txt → 7182.js.LICENSE.txt} +0 -0
- /package/dist/umd/{7979.js.LICENSE.txt → 7291.js.LICENSE.txt} +0 -0
- /package/dist/umd/{4187.js.LICENSE.txt → 7565.js.LICENSE.txt} +0 -0
- /package/dist/umd/{3191.js.LICENSE.txt → 7620.js.LICENSE.txt} +0 -0
- /package/dist/umd/{6050.js.LICENSE.txt → 7774.js.LICENSE.txt} +0 -0
- /package/dist/umd/{9478.js.LICENSE.txt → 7939.js.LICENSE.txt} +0 -0
- /package/dist/umd/{4114.js.LICENSE.txt → 8618.js.LICENSE.txt} +0 -0
- /package/dist/umd/{4574.js.LICENSE.txt → 8983.js.LICENSE.txt} +0 -0
- /package/dist/umd/{4218.js.LICENSE.txt → 9380.js.LICENSE.txt} +0 -0
- /package/dist/umd/{3110.js.LICENSE.txt → 9871.js.LICENSE.txt} +0 -0
- /package/dist/umd/{731.js.LICENSE.txt → 9970.js.LICENSE.txt} +0 -0
- /package/dist/umd/{bcdfe87ae253c2cf789c9a737f8d8c22.woff → fonts/font-38673212.woff} +0 -0
@@ -1,5 +1,5 @@
|
|
1
|
-
/*! For license information please see
|
2
|
-
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[
|
1
|
+
/*! For license information please see 1995.js.LICENSE.txt */
|
2
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[1995],{4408:(t,e,o)=>{o(64511),o(3241),o(83315);var i=o(40211),s=o(87550);const n=s.AH`
|
3
3
|
:host {
|
4
4
|
--vaadin-tooltip-offset-top: var(--lumo-space-xs);
|
5
5
|
--vaadin-tooltip-offset-bottom: var(--lumo-space-xs);
|
@@ -17,7 +17,7 @@
|
|
17
17
|
[part='content'] {
|
18
18
|
padding: var(--lumo-space-xs) var(--lumo-space-s);
|
19
19
|
}
|
20
|
-
`;(0,s.SF)("vaadin-tooltip-overlay",[i.L,n],{moduleId:"lumo-tooltip-overlay"});var a=o(
|
20
|
+
`;(0,s.SF)("vaadin-tooltip-overlay",[i.L,n],{moduleId:"lumo-tooltip-overlay"});var a=o(13256),r=o(82901),l=o(23927),d=o(5072),h=o(24473),_=o(81481);const c=t=>class extends((0,_.t)((0,h.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`}}}},u=s.AH`
|
21
21
|
:host {
|
22
22
|
z-index: 1100;
|
23
23
|
}
|
@@ -56,7 +56,7 @@
|
|
56
56
|
<div part="overlay" id="overlay">
|
57
57
|
<div part="content" id="content"><slot></slot></div>
|
58
58
|
</div>
|
59
|
-
`}ready(){super.ready(),this.owner=this.__dataHost,this.owner._overlayElement=this}}(0,r.X)(p);var v=o(
|
59
|
+
`}ready(){super.ready(),this.owner=this.__dataHost,this.owner._overlayElement=this}}(0,r.X)(p);var v=o(55774),m=o(90676),g=o(75365),y=o(30025),b=o(62804),f=o(76685),C=o(1508),w=o(55341),x=o(44099),T=o(11707);const E=500;let O=E,A=E,S=E;const L=new Set;let D=!1,P=null,V=null;class z{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:A}get hideDelay(){const t=this.host;return null!=t.hideDelay&&t.hideDelay>=0?t.hideDelay:S}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(),D&&(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),D=!0,this.__abortWarmUp(),this.__abortCooldown()}__warmupTooltip(t){this._isOpened()||(D?this.__showTooltip():this.__scheduleWarmUp(t))}__abortClose(){this.__closeTimeout&&(clearTimeout(this.__closeTimeout),this.__closeTimeout=null)}__abortCooldown(){V&&(clearTimeout(V),V=null)}__abortWarmUp(){P&&(clearTimeout(P),P=null)}__scheduleClose(){this._isOpened()&&(L.add(this.host),this.__closeTimeout=setTimeout((()=>{L.delete(this.host),this.__closeTimeout=null,this._setOpened(!1)}),this.hideDelay))}__scheduleCooldown(){V=setTimeout((()=>{V=null,D=!1}),this.hideDelay)}__scheduleWarmUp(t){const e=t?this.focusDelay:this.hoverDelay;P=setTimeout((()=>{P=null,D=!0,this.__showTooltip()}),e)}}const I=t=>class extends((0,w.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:E}static setDefaultHideDelay(t){S=null!=t&&t>=0?t:E}static setDefaultHoverDelay(t){A=null!=t&&t>=0?t:E}constructor(){super(),this._uniqueId=`vaadin-tooltip-${(0,T.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 z(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 x.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=f.aq.debounce(this.__setTargetByIdDebouncer,b._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,y.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,C.Wr)(t,"aria-describedby",this._uniqueId)})),t&&[t].flat().forEach((t=>{(0,C.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 N extends(I((0,g._)((0,m.q)((0,v.w)(a.Pu))))){static get is(){return"vaadin-tooltip"}static get template(){return a.qy`
|
60
60
|
<style>
|
61
61
|
:host {
|
62
62
|
display: none;
|
@@ -78,7 +78,7 @@
|
|
78
78
|
></vaadin-tooltip-overlay>
|
79
79
|
|
80
80
|
<slot name="sr-label"></slot>
|
81
|
-
`}}(0,r.X)(
|
81
|
+
`}}(0,r.X)(N),o(42068),o(9433),o(88660);var H=o(36411);const M=s.AH`
|
82
82
|
:host {
|
83
83
|
--vaadin-user-color-0: #df0b92;
|
84
84
|
--vaadin-user-color-1: #650acc;
|
@@ -98,7 +98,7 @@
|
|
98
98
|
--vaadin-user-color-5: #66fffa;
|
99
99
|
--vaadin-user-color-6: #e6ff66;
|
100
100
|
}
|
101
|
-
`;(0,
|
101
|
+
`;(0,H.q)("user-color-props",M),(0,s.SF)("vaadin-avatar",s.AH`
|
102
102
|
:host {
|
103
103
|
color: var(--lumo-secondary-text-color);
|
104
104
|
background-color: var(--lumo-contrast-10pct);
|
@@ -161,7 +161,7 @@
|
|
161
161
|
:host([theme~='xsmall']) {
|
162
162
|
--vaadin-avatar-size: var(--lumo-size-xs);
|
163
163
|
}
|
164
|
-
`,{moduleId:"lumo-avatar"});const
|
164
|
+
`,{moduleId:"lumo-avatar"});const B=document.createElement("template");B.innerHTML=`\n <style nonce=${window.DESCOPE_NONCE}>\n @font-face {\n font-family: 'vaadin-avatar-icons';\n src: url('`+o.p+"fonts/font-1949233557.woff');\n font-weight: normal;\n font-style: normal;\n }\n </style>\n",document.head.appendChild(B.content);var $=o(81488),k=o(53149);const F=t=>class extends((0,k.y)(t)){static get properties(){return{img:{type:String,reflectToAttribute:!0,observer:"__imgChanged"},abbr:{type:String,reflectToAttribute:!0},name:{type:String,reflectToAttribute:!0},colorIndex:{type:Number,observer:"__colorIndexChanged"},i18n:{type:Object,value:()=>({anonymous:"anonymous"})},withTooltip:{type:Boolean,value:!1,observer:"__withTooltipChanged"},__imgVisible:Boolean,__iconVisible:Boolean,__abbrVisible:Boolean,__tooltipNode:Object}}static get observers(){return["__imgOrAbbrOrNameChanged(img, abbr, name)","__i18nChanged(i18n)","__tooltipChanged(__tooltipNode, name, abbr)"]}ready(){super.ready(),this.__updateVisibility(),this.hasAttribute("role")||this.setAttribute("role","button"),this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.name||this.abbr||this.__setTooltip()}__colorIndexChanged(t){if(null!=t){const e=`--vaadin-user-color-${t}`;Boolean(getComputedStyle(document.documentElement).getPropertyValue(e))?(this.setAttribute("has-color-index",""),this.style.setProperty("--vaadin-avatar-user-color",`var(${e})`)):(this.removeAttribute("has-color-index"),console.warn(`The CSS property --vaadin-user-color-${t} is not defined`))}else this.removeAttribute("has-color-index")}__imgChanged(){this.__imgFailedToLoad=!1}__imgOrAbbrOrNameChanged(t,e,o){this.__updateVisibility(),e&&e!==this.__generatedAbbr||(this.abbr=o?this.__generatedAbbr=o.split(" ").map((t=>t.charAt(0))).join(""):void 0)}__tooltipChanged(t,e,o){t&&(o&&o!==this.__generatedAbbr?this.__setTooltip(e?`${e} (${o})`:o):this.__setTooltip(e))}__withTooltipChanged(t,e){if(t){const t=document.createElement("vaadin-tooltip");t.setAttribute("slot","tooltip"),this.appendChild(t),this.__tooltipNode=t}else e&&(this.__tooltipNode.target=null,this.__tooltipNode.remove(),this.__tooltipNode=null)}__i18nChanged(t){t&&t.anonymous&&(this.__oldAnonymous&&this.__tooltipNode&&this.__tooltipNode.text===this.__oldAnonymous&&this.__setTooltip(),this.__oldAnonymous=t.anonymous)}__updateVisibility(){this.__imgVisible=!!this.img&&!this.__imgFailedToLoad,this.__abbrVisible=!this.__imgVisible&&!!this.abbr,this.__iconVisible=!this.__imgVisible&&!this.abbr}__setTooltip(t){const e=this.__tooltipNode;e&&(e.text=t||this.i18n.anonymous)}__onImageLoadError(){this.img&&(console.warn(`<vaadin-avatar> The specified image could not be loaded: ${this.img}`),this.__imgFailedToLoad=!0,this.__updateVisibility())}},q=s.AH`
|
165
165
|
:host {
|
166
166
|
display: inline-block;
|
167
167
|
flex: none;
|
@@ -213,7 +213,7 @@
|
|
213
213
|
border-radius: inherit;
|
214
214
|
box-shadow: inset 0 0 0 2px var(--vaadin-avatar-user-color);
|
215
215
|
}
|
216
|
-
`;(0,s.SF)("vaadin-avatar",
|
216
|
+
`;(0,s.SF)("vaadin-avatar",q,{moduleId:"vaadin-avatar-styles"});class R extends(F((0,m.q)((0,s.cp)((0,v.w)(a.Pu))))){static get template(){return a.qy`
|
217
217
|
<img hidden$="[[!__imgVisible]]" src$="[[img]]" aria-hidden="true" on-error="__onImageLoadError" />
|
218
218
|
<svg
|
219
219
|
part="icon"
|
@@ -237,4 +237,5 @@
|
|
237
237
|
</svg>
|
238
238
|
|
239
239
|
<slot name="tooltip"></slot>
|
240
|
-
`}static get is(){return"vaadin-avatar"}ready(){super.ready(),this._tooltipController=new
|
240
|
+
`}static get is(){return"vaadin-avatar"}ready(){super.ready(),this._tooltipController=new $.I(this),this.addController(this._tooltipController)}}(0,r.X)(R)},4080:(t,e,o)=>{o.d(e,{CI:()=>_,H8:()=>a,gm:()=>r,m0:()=>n,nr:()=>h,un:()=>d});const i=t=>t.test(navigator.userAgent),s=t=>t.test(navigator.platform),n=i(/Android/u),a=i(/Chrome/u)&&/Google Inc/u.test(navigator.vendor),r=i(/Firefox/u),l=s(/^iPad/u)||s(/^Mac/u)&&navigator.maxTouchPoints>1,d=s(/^iPhone/u)||l,h=i(/^((?!chrome|android).)*safari/iu),_=(()=>{try{return document.createEvent("TouchEvent"),!0}catch(t){return!1}})()},21961:(t,e,o)=>{o.d(e,{C:()=>n});var i=o(98741);const s=new WeakMap,n=(0,i.y)((t=>class extends t{get slotStyles(){return{}}connectedCallback(){super.connectedCallback(),this.__applySlotStyles()}__applySlotStyles(){const t=this.getRootNode(),e=function(t){return s.has(t)||s.set(t,new Set),s.get(t)}(t);this.slotStyles.forEach((o=>{e.has(o)||(function(t,e){const o=document.createElement("style");window.DESCOPE_NONCE&&o.setAttribute("nonce",window.DESCOPE_NONCE),o.textContent=t,e===document?document.head.appendChild(o):e.insertBefore(o,e.firstChild)}(o,t),e.add(o))}))}}))},81481:(t,e,o)=>{o.d(e,{t:()=>r});var i=o(1508);const s={start:"top",end:"bottom"},n={start:"left",end:"right"},a=new ResizeObserver((t=>{setTimeout((()=>{t.forEach((t=>{t.target.__overlay&&t.target.__overlay._updatePosition()}))}))})),r=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,a.unobserve(e),t&&(this.__addUpdatePositionEventListeners(),e.__overlay=this,a.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),a=!o&&i||o&&!i;this.style.alignItems=a?"flex-start":"flex-end";const r=this.getBoundingClientRect(),l=this.__calculatePositionInOneDimension(t,r,this.noVerticalOverlap,s,this,e),d=this.__calculatePositionInOneDimension(t,r,this.noHorizontalOverlap,n,this,i);Object.assign(this.style,l,d),this.toggleAttribute("bottom-aligned",!e),this.toggleAttribute("top-aligned",e),this.toggleAttribute("end-aligned",!a),this.toggleAttribute("start-aligned",a)}__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,a){const r=o-t[n?a.end:a.start]-i[a.end],l=t[n?a.start:a.end]-i[a.start],d=s?r:l;return s===(d>(s?l:r)||d>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 a=n?i.start:i.end,r=n?i.end:i.start,l=parseFloat(s.style[a]||getComputedStyle(s)[a]),d=this.__adjustBottomProperty(a,i,l),h=e[n?i.start:i.end]-t[o===n?i.end:i.start],_=d?`${d}px`:`${l+h*(n?-1:1)}px`;return{[a]:_,[r]:""}}}}}]);
|
241
|
+
//# sourceMappingURL=1995.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"1995.js","mappings":"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","sources":["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/vaadin-lumo-styles/user-colors.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/avatar/theme/lumo/vaadin-avatar-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/avatar/src/vaadin-avatar-icons.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/avatar/src/vaadin-avatar-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/avatar/src/vaadin-avatar-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/avatar/src/vaadin-avatar.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/browser-utils.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-styles-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/overlay/src/vaadin-overlay-position-mixin.js"],"sourcesContent":["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 './version.js';\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst userColors = css`\n :host {\n --vaadin-user-color-0: #df0b92;\n --vaadin-user-color-1: #650acc;\n --vaadin-user-color-2: #097faa;\n --vaadin-user-color-3: #ad6200;\n --vaadin-user-color-4: #bf16f3;\n --vaadin-user-color-5: #084391;\n --vaadin-user-color-6: #078836;\n }\n\n [theme~='dark'] {\n --vaadin-user-color-0: #ff66c7;\n --vaadin-user-color-1: #9d8aff;\n --vaadin-user-color-2: #8aff66;\n --vaadin-user-color-3: #ffbd66;\n --vaadin-user-color-4: #dc6bff;\n --vaadin-user-color-5: #66fffa;\n --vaadin-user-color-6: #e6ff66;\n }\n`;\n\naddLumoGlobalStyles('user-color-props', userColors);\nexport { userColors };\n","import '@vaadin/vaadin-lumo-styles/color.js';\nimport '@vaadin/vaadin-lumo-styles/sizing.js';\nimport '@vaadin/vaadin-lumo-styles/spacing.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport '@vaadin/vaadin-lumo-styles/typography.js';\nimport '@vaadin/vaadin-lumo-styles/user-colors.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nregisterStyles(\n 'vaadin-avatar',\n css`\n :host {\n color: var(--lumo-secondary-text-color);\n background-color: var(--lumo-contrast-10pct);\n border-radius: 50%;\n outline: none;\n cursor: default;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n :host([has-color-index]) {\n color: var(--lumo-base-color);\n }\n\n :host([focus-ring]) {\n border-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));\n }\n\n [part='icon'],\n [part='abbr'] {\n fill: currentColor;\n }\n\n [part='abbr'] {\n font-family: var(--lumo-font-family);\n font-size: 2.4375em;\n font-weight: 500;\n }\n\n :host([theme~='xlarge']) [part='abbr'] {\n font-size: 2.5em;\n }\n\n :host([theme~='large']) [part='abbr'] {\n font-size: 2.375em;\n }\n\n :host([theme~='small']) [part='abbr'] {\n font-size: 2.75em;\n }\n\n :host([theme~='xsmall']) [part='abbr'] {\n font-size: 3em;\n }\n\n :host([theme~='xlarge']) {\n --vaadin-avatar-size: var(--lumo-size-xl);\n }\n\n :host([theme~='large']) {\n --vaadin-avatar-size: var(--lumo-size-l);\n }\n\n :host([theme~='small']) {\n --vaadin-avatar-size: var(--lumo-size-s);\n }\n\n :host([theme~='xsmall']) {\n --vaadin-avatar-size: var(--lumo-size-xs);\n }\n `,\n { moduleId: 'lumo-avatar' },\n);\n","/**\n * @license\n * Copyright (c) 2020 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nconst template = document.createElement('template');\n\ntemplate.innerHTML = `\n <style nonce=${window.DESCOPE_NONCE}>\n @font-face {\n font-family: 'vaadin-avatar-icons';\n src: url('` + __webpack_public_path__ + `fonts/font-1949233557.woff');\n font-weight: normal;\n font-style: normal;\n }\n </style>\n`;\n\ndocument.head.appendChild(template.content);\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 { FocusMixin } from '@vaadin/a11y-base/src/focus-mixin.js';\n\n/**\n * A mixin providing common avatar functionality.\n *\n * @polymerMixin\n * @mixes FocusMixin\n */\nexport const AvatarMixin = (superClass) =>\n class AvatarMixinClass extends FocusMixin(superClass) {\n static get properties() {\n return {\n /**\n * The path to the image\n */\n img: {\n type: String,\n reflectToAttribute: true,\n observer: '__imgChanged',\n },\n\n /**\n * A shortened form of name that is displayed\n * in the avatar when `img` is not provided.\n */\n abbr: {\n type: String,\n reflectToAttribute: true,\n },\n\n /**\n * Full name of the user\n * used for the tooltip of the avatar.\n */\n name: {\n type: String,\n reflectToAttribute: true,\n },\n\n /**\n * Color index used for avatar background.\n * @attr {number} color-index\n */\n colorIndex: {\n type: Number,\n observer: '__colorIndexChanged',\n },\n\n /**\n * The object used to localize this component.\n * To change the default localization, replace the entire\n * _i18n_ object or just the property you want to modify.\n *\n * The object has the following JSON structure and default values:\n *\n * ```\n * {\n * // Translation of the anonymous user avatar tooltip.\n * anonymous: 'anonymous'\n * }\n * ```\n *\n * @type {!AvatarI18n}\n * @default {English/US}\n */\n i18n: {\n type: Object,\n value: () => {\n return {\n anonymous: 'anonymous',\n };\n },\n },\n\n /**\n * When true, the avatar has tooltip shown on hover and focus.\n * The tooltip text is based on the `name` and `abbr` properties.\n * When neither is provided, `i18n.anonymous` is used instead.\n * @attr {boolean} with-tooltip\n */\n withTooltip: {\n type: Boolean,\n value: false,\n observer: '__withTooltipChanged',\n },\n\n /** @protected */\n __imgVisible: Boolean,\n\n /** @protected */\n __iconVisible: Boolean,\n\n /** @protected */\n __abbrVisible: Boolean,\n\n /** @private */\n __tooltipNode: Object,\n };\n }\n\n static get observers() {\n return [\n '__imgOrAbbrOrNameChanged(img, abbr, name)',\n '__i18nChanged(i18n)',\n '__tooltipChanged(__tooltipNode, name, abbr)',\n ];\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this.__updateVisibility();\n\n // By default, if the user hasn't provided a custom role,\n // the role attribute is set to \"button\".\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n\n if (!this.hasAttribute('tabindex')) {\n this.setAttribute('tabindex', '0');\n }\n\n // Should set `anonymous` if name / abbr is not provided\n if (!this.name && !this.abbr) {\n this.__setTooltip();\n }\n }\n\n /** @private */\n __colorIndexChanged(index) {\n if (index != null) {\n const prop = `--vaadin-user-color-${index}`;\n\n // Check if custom CSS property is defined\n const isValid = Boolean(getComputedStyle(document.documentElement).getPropertyValue(prop));\n\n if (isValid) {\n this.setAttribute('has-color-index', '');\n this.style.setProperty('--vaadin-avatar-user-color', `var(${prop})`);\n } else {\n this.removeAttribute('has-color-index');\n console.warn(`The CSS property --vaadin-user-color-${index} is not defined`);\n }\n } else {\n this.removeAttribute('has-color-index');\n }\n }\n\n /** @private */\n __imgChanged() {\n this.__imgFailedToLoad = false;\n }\n\n /** @private */\n __imgOrAbbrOrNameChanged(img, abbr, name) {\n this.__updateVisibility();\n\n if (abbr && abbr !== this.__generatedAbbr) {\n return;\n }\n\n if (name) {\n this.abbr = this.__generatedAbbr = name\n .split(' ')\n .map((word) => word.charAt(0))\n .join('');\n } else {\n this.abbr = undefined;\n }\n }\n\n /** @private */\n __tooltipChanged(tooltipNode, name, abbr) {\n if (tooltipNode) {\n if (abbr && abbr !== this.__generatedAbbr) {\n this.__setTooltip(name ? `${name} (${abbr})` : abbr);\n } else {\n this.__setTooltip(name);\n }\n }\n }\n\n /** @private */\n __withTooltipChanged(withTooltip, oldWithTooltip) {\n if (withTooltip) {\n // Create and attach tooltip\n const tooltipNode = document.createElement('vaadin-tooltip');\n tooltipNode.setAttribute('slot', 'tooltip');\n this.appendChild(tooltipNode);\n this.__tooltipNode = tooltipNode;\n } else if (oldWithTooltip) {\n // Cleanup and detach tooltip\n this.__tooltipNode.target = null;\n this.__tooltipNode.remove();\n this.__tooltipNode = null;\n }\n }\n\n /** @private */\n __i18nChanged(i18n) {\n if (i18n && i18n.anonymous) {\n if (this.__oldAnonymous && this.__tooltipNode && this.__tooltipNode.text === this.__oldAnonymous) {\n this.__setTooltip();\n }\n\n this.__oldAnonymous = i18n.anonymous;\n }\n }\n\n /** @private */\n __updateVisibility() {\n this.__imgVisible = !!this.img && !this.__imgFailedToLoad;\n this.__abbrVisible = !this.__imgVisible && !!this.abbr;\n this.__iconVisible = !this.__imgVisible && !this.abbr;\n }\n\n /** @private */\n __setTooltip(tooltip) {\n const tooltipNode = this.__tooltipNode;\n if (tooltipNode) {\n tooltipNode.text = tooltip || this.i18n.anonymous;\n }\n }\n\n /** @protected */\n __onImageLoadError() {\n if (this.img) {\n console.warn(`<vaadin-avatar> The specified image could not be loaded: ${this.img}`);\n this.__imgFailedToLoad = true;\n this.__updateVisibility();\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 { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nexport const avatarStyles = css`\n :host {\n display: inline-block;\n flex: none;\n border-radius: 50%;\n overflow: hidden;\n height: var(--vaadin-avatar-size, 64px);\n width: var(--vaadin-avatar-size, 64px);\n border: var(--vaadin-avatar-outline-width) solid transparent;\n margin: calc(var(--vaadin-avatar-outline-width) * -1);\n background-clip: content-box;\n --vaadin-avatar-outline-width: var(--vaadin-focus-ring-width, 2px);\n }\n\n img {\n height: 100%;\n width: 100%;\n object-fit: cover;\n }\n\n [part='icon'] {\n font-size: 5.6em;\n }\n\n [part='abbr'] {\n font-size: 2.2em;\n }\n\n [part='icon'] > text {\n font-family: 'vaadin-avatar-icons';\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n svg[hidden] {\n display: none !important;\n }\n\n :host([has-color-index]) {\n position: relative;\n background-color: var(--vaadin-avatar-user-color);\n }\n\n :host([has-color-index])::before {\n position: absolute;\n content: '';\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 2px var(--vaadin-avatar-user-color);\n }\n`;\n","/**\n * @license\n * Copyright (c) 2020 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './vaadin-avatar-icons.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 { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { AvatarMixin } from './vaadin-avatar-mixin.js';\nimport { avatarStyles } from './vaadin-avatar-styles.js';\n\nregisterStyles('vaadin-avatar', avatarStyles, { moduleId: 'vaadin-avatar-styles' });\n\n/**\n * `<vaadin-avatar>` is a Web Component providing avatar displaying functionality.\n *\n * ```html\n * <vaadin-avatar img=\"avatars/avatar-1.jpg\"></vaadin-avatar>\n * ```\n *\n * ### Styling\n *\n * The following shadow DOM parts are exposed for styling:\n *\n * Part name | Description\n * --------- | ---------------\n * `abbr` | The abbreviation element\n * `icon` | The icon element\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description\n * ------------------|-------------\n * `focus-ring` | Set when the avatar is focused using the keyboard.\n * `focused` | Set when the avatar is focused.\n * `has-color-index` | Set when the avatar has `colorIndex` and the corresponding custom CSS property exists.\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes AvatarMixin\n * @mixes ControllerMixin\n * @mixes ElementMixin\n * @mixes ThemableMixin\n */\nclass Avatar extends AvatarMixin(ElementMixin(ThemableMixin(ControllerMixin(PolymerElement)))) {\n static get template() {\n return html`\n <img hidden$=\"[[!__imgVisible]]\" src$=\"[[img]]\" aria-hidden=\"true\" on-error=\"__onImageLoadError\" />\n <svg\n part=\"icon\"\n hidden$=\"[[!__iconVisible]]\"\n id=\"avatar-icon\"\n viewBox=\"-50 -50 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n aria-hidden=\"true\"\n >\n <text dy=\".35em\" text-anchor=\"middle\"></text>\n </svg>\n <svg\n part=\"abbr\"\n hidden$=\"[[!__abbrVisible]]\"\n id=\"avatar-abbr\"\n viewBox=\"-50 -50 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n aria-hidden=\"true\"\n >\n <text dy=\".35em\" text-anchor=\"middle\">[[abbr]]</text>\n </svg>\n\n <slot name=\"tooltip\"></slot>\n `;\n }\n\n static get is() {\n return 'vaadin-avatar';\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._tooltipController = new TooltipController(this);\n this.addController(this._tooltipController);\n }\n}\n\ndefineCustomElement(Avatar);\n\nexport { Avatar };\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 */\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","/**\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 { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\nconst stylesMap = new WeakMap();\n\n/**\n * Get all the styles inserted into root.\n * @param {DocumentOrShadowRoot} root\n * @return {Set<string>}\n */\nfunction getRootStyles(root) {\n if (!stylesMap.has(root)) {\n stylesMap.set(root, new Set());\n }\n\n return stylesMap.get(root);\n}\n\n/**\n * Insert styles into the root.\n * @param {string} styles\n * @param {DocumentOrShadowRoot} root\n */\nfunction insertStyles(styles, root) {\n const style = document.createElement('style');\n if(window.DESCOPE_NONCE){\n style.setAttribute('nonce', window.DESCOPE_NONCE);\n }\n style.textContent = styles;\n\n if (root === document) {\n document.head.appendChild(style);\n } else {\n root.insertBefore(style, root.firstChild);\n }\n}\n\n/**\n * Mixin to insert styles into the outer scope to handle slotted components.\n * This is useful e.g. to hide native `<input type=\"number\">` controls.\n *\n * @polymerMixin\n */\nexport const SlotStylesMixin = dedupingMixin(\n (superclass) =>\n class SlotStylesMixinClass extends superclass {\n /**\n * List of styles to insert into root.\n * @protected\n */\n get slotStyles() {\n return {};\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n\n this.__applySlotStyles();\n }\n\n /** @private */\n __applySlotStyles() {\n const root = this.getRootNode();\n const rootStyles = getRootStyles(root);\n\n this.slotStyles.forEach((styles) => {\n if (!rootStyles.has(styles)) {\n insertStyles(styles, root);\n rootStyles.add(styles);\n }\n });\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 { 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":["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","document","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","userColors","createElement","innerHTML","window","DESCOPE_NONCE","head","appendChild","content","AvatarMixin","img","abbr","name","colorIndex","i18n","anonymous","withTooltip","__imgVisible","__iconVisible","__abbrVisible","__tooltipNode","__updateVisibility","hasAttribute","__setTooltip","__colorIndexChanged","index","documentElement","removeAttribute","__imgChanged","__imgFailedToLoad","__imgOrAbbrOrNameChanged","__generatedAbbr","split","map","word","charAt","join","undefined","__tooltipChanged","tooltipNode","__withTooltipChanged","oldWithTooltip","remove","__i18nChanged","__oldAnonymous","__onImageLoadError","avatarStyles","Avatar","_tooltipController","testUserAgent","regexp","test","navigator","userAgent","testPlatform","platform","isAndroid","isChrome","vendor","isFirefox","isIPad","maxTouchPoints","isIOS","isSafari","isTouch","createEvent","e","stylesMap","WeakMap","SlotStylesMixin","superclass","slotStyles","__applySlotStyles","rootStyles","set","get","getRootStyles","styles","insertBefore","firstChild","insertStyles","PROP_NAMES_VERTICAL","start","end","PROP_NAMES_HORIZONTAL","targetResizeObserver","ResizeObserver","__overlay","PositionMixin","horizontalAlign","verticalAlign","noHorizontalOverlap","noVerticalOverlap","requiredVerticalSpace","__onScroll","__addUpdatePositionEventListeners","__removeUpdatePositionEventListeners","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","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":""}
|