@descope/web-components-ui 1.31.0 → 1.33.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
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"189.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/delegate-focus-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/disabled-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/aria-id-reference.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/field-aria-controller.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/keyboard-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/a11y-base/src/tabindex-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/delegate-state-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/component-base/src/slot-child-observe-controller.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/error-controller.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/helper-controller.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/field-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/input-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/label-controller.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/label-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/labelled-input-controller.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/validate-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/mixins/helper.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/vaadin-lumo-styles/mixins/required-field.js"],"sourcesContent":["/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\nimport { FocusMixin } from './focus-mixin.js';\nimport { TabindexMixin } from './tabindex-mixin.js';\n\n/**\n * A mixin to forward focus to an element in the light DOM.\n *\n * @polymerMixin\n * @mixes FocusMixin\n * @mixes TabindexMixin\n */\nexport const DelegateFocusMixin = dedupingMixin(\n (superclass) =>\n class DelegateFocusMixinClass extends FocusMixin(TabindexMixin(superclass)) {\n static get properties() {\n return {\n /**\n * Specify that this control should have input focus when the page loads.\n */\n autofocus: {\n type: Boolean,\n },\n\n /**\n * A reference to the focusable element controlled by the mixin.\n * It can be an input, textarea, button or any element with tabindex > -1.\n *\n * Any component implementing this mixin is expected to provide it\n * by using `this._setFocusElement(input)` Polymer API.\n *\n * Toggling `tabindex` attribute on the host element propagates its value to `focusElement`.\n *\n * @protected\n * @type {!HTMLElement}\n */\n focusElement: {\n type: Object,\n readOnly: true,\n observer: '_focusElementChanged',\n },\n\n /**\n * Override the property from `TabIndexMixin`\n * to ensure the `tabindex` attribute of the focus element\n * will be restored to `0` after re-enabling the element.\n *\n * @protected\n * @override\n */\n _lastTabIndex: {\n value: 0,\n },\n };\n }\n\n constructor() {\n super();\n\n this._boundOnBlur = this._onBlur.bind(this);\n this._boundOnFocus = this._onFocus.bind(this);\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n if (this.autofocus && !this.disabled) {\n requestAnimationFrame(() => {\n this.focus();\n this.setAttribute('focus-ring', '');\n });\n }\n }\n\n /**\n * @protected\n * @override\n */\n focus() {\n if (this.focusElement && !this.disabled) {\n this.focusElement.focus();\n }\n }\n\n /**\n * @protected\n * @override\n */\n blur() {\n if (this.focusElement) {\n this.focusElement.blur();\n }\n }\n\n /**\n * @protected\n * @override\n */\n click() {\n if (this.focusElement && !this.disabled) {\n this.focusElement.click();\n }\n }\n\n /** @protected */\n _focusElementChanged(element, oldElement) {\n if (element) {\n element.disabled = this.disabled;\n this._addFocusListeners(element);\n this.__forwardTabIndex(this.tabindex);\n } else if (oldElement) {\n this._removeFocusListeners(oldElement);\n }\n }\n\n /**\n * @param {HTMLElement} element\n * @protected\n */\n _addFocusListeners(element) {\n element.addEventListener('blur', this._boundOnBlur);\n element.addEventListener('focus', this._boundOnFocus);\n }\n\n /**\n * @param {HTMLElement} element\n * @protected\n */\n _removeFocusListeners(element) {\n element.removeEventListener('blur', this._boundOnBlur);\n element.removeEventListener('focus', this._boundOnFocus);\n }\n\n /**\n * Focus event does not bubble, so we dispatch it manually\n * on the host element to support adding focus listeners\n * when the focusable element is placed in light DOM.\n * @param {FocusEvent} event\n * @protected\n */\n _onFocus(event) {\n event.stopPropagation();\n this.dispatchEvent(new Event('focus'));\n }\n\n /**\n * Blur event does not bubble, so we dispatch it manually\n * on the host element to support adding blur listeners\n * when the focusable element is placed in light DOM.\n * @param {FocusEvent} event\n * @protected\n */\n _onBlur(event) {\n event.stopPropagation();\n this.dispatchEvent(new Event('blur'));\n }\n\n /**\n * @param {FocusEvent} event\n * @return {boolean}\n * @protected\n * @override\n */\n _shouldSetFocus(event) {\n return event.target === this.focusElement;\n }\n\n /**\n * @param {FocusEvent} event\n * @return {boolean}\n * @protected\n * @override\n */\n _shouldRemoveFocus(event) {\n return event.target === this.focusElement;\n }\n\n /**\n * @param {boolean} disabled\n * @param {boolean} oldDisabled\n * @protected\n * @override\n */\n _disabledChanged(disabled, oldDisabled) {\n super._disabledChanged(disabled, oldDisabled);\n\n if (this.focusElement) {\n this.focusElement.disabled = disabled;\n }\n\n if (disabled) {\n this.blur();\n }\n }\n\n /**\n * Override an observer from `TabindexMixin`.\n * Do not call super to remove tabindex attribute\n * from the host after it has been forwarded.\n * @param {string} tabindex\n * @protected\n * @override\n */\n _tabindexChanged(tabindex) {\n this.__forwardTabIndex(tabindex);\n }\n\n /** @private */\n __forwardTabIndex(tabindex) {\n if (tabindex !== undefined && this.focusElement) {\n this.focusElement.tabIndex = tabindex;\n\n // Preserve tabindex=\"-1\" on the host element\n if (tabindex !== -1) {\n this.tabindex = undefined;\n }\n }\n\n if (this.disabled && tabindex) {\n // If tabindex attribute was changed while component was disabled\n if (tabindex !== -1) {\n this._lastTabIndex = tabindex;\n }\n this.tabindex = undefined;\n }\n }\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\n/**\n * A mixin to provide disabled property for field components.\n *\n * @polymerMixin\n */\nexport const DisabledMixin = dedupingMixin(\n (superclass) =>\n class DisabledMixinClass extends superclass {\n static get properties() {\n return {\n /**\n * If true, the user cannot interact with this element.\n */\n disabled: {\n type: Boolean,\n value: false,\n observer: '_disabledChanged',\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * @param {boolean} disabled\n * @protected\n */\n _disabledChanged(disabled) {\n this._setAriaDisabled(disabled);\n }\n\n /**\n * @param {boolean} disabled\n * @protected\n */\n _setAriaDisabled(disabled) {\n if (disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n\n /**\n * Overrides the default element `click` method in order to prevent\n * firing the `click` event when the element is disabled.\n * @protected\n * @override\n */\n click() {\n if (!this.disabled) {\n super.click();\n }\n }\n },\n);\n","/**\n * @license\n * Copyright (c) 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport {\n addValueToAttribute,\n deserializeAttributeValue,\n removeValueFromAttribute,\n serializeAttributeValue,\n} from '@vaadin/component-base/src/dom-utils.js';\n\nconst attributeToTargets = new Map();\n\n/**\n * Gets or creates a Set with the stored values for each element controlled by this helper\n *\n * @param {string} attr the attribute name used as key in the map\n *\n * @returns {WeakMap<HTMLElement, Set<string>} a weak map with the stored values for the elements being controlled by the helper\n */\nfunction getAttrMap(attr) {\n if (!attributeToTargets.has(attr)) {\n attributeToTargets.set(attr, new WeakMap());\n }\n return attributeToTargets.get(attr);\n}\n\n/**\n * Cleans the values set on the attribute to the given element.\n * It also stores the current values in the map, if `storeValue` is `true`.\n *\n * @param {HTMLElement} target\n * @param {string} attr the attribute to be cleared\n * @param {boolean} storeValue whether or not the current value of the attribute should be stored on the map\n * @returns\n */\nfunction cleanAriaIDReference(target, attr) {\n if (!target) {\n return;\n }\n\n target.removeAttribute(attr);\n}\n\n/**\n * Storing values of the accessible attributes in a Set inside of the WeakMap.\n *\n * @param {HTMLElement} target\n * @param {string} attr the attribute to be stored\n */\nfunction storeAriaIDReference(target, attr) {\n if (!target || !attr) {\n return;\n }\n const attributeMap = getAttrMap(attr);\n if (attributeMap.has(target)) {\n return;\n }\n const values = deserializeAttributeValue(target.getAttribute(attr));\n attributeMap.set(target, new Set(values));\n}\n\n/**\n * Restores the generated values of the attribute to the given element.\n *\n * @param {HTMLElement} target\n * @param {string} attr\n */\nexport function restoreGeneratedAriaIDReference(target, attr) {\n if (!target || !attr) {\n return;\n }\n const attributeMap = getAttrMap(attr);\n const values = attributeMap.get(target);\n if (!values || values.size === 0) {\n target.removeAttribute(attr);\n } else {\n addValueToAttribute(target, attr, serializeAttributeValue(values));\n }\n attributeMap.delete(target);\n}\n\n/**\n * Sets a new ID reference for a target element and an ARIA attribute.\n *\n * @typedef {Object} AriaIdReferenceConfig\n * @property {string | null | undefined} newId\n * @property {string | null | undefined} oldId\n * @property {boolean | null | undefined} fromUser\n * @param {HTMLElement} target\n * @param {string} attr\n * @param {AriaIdReferenceConfig | null | undefined} config\n * @param config.newId The new ARIA ID reference to set. If `null`, the attribute is removed,\n * and `config.fromUser` is true, any stored values are restored. If there are stored values\n * and `config.fromUser` is `false`, then `config.newId` is added to the stored values set.\n * @param config.oldId The ARIA ID reference to be removed from the attribute. If there are\n * stored values and `config.fromUser` is `false`, then `config.oldId` is removed from the\n * stored values set.\n * @param config.fromUser Indicates whether the function is called by the user or internally.\n * When `config.fromUser` is called with `true` for the first time, the function will clear\n * and store the attribute value for the given element.\n */\nexport function setAriaIDReference(target, attr, config = { newId: null, oldId: null, fromUser: false }) {\n if (!target || !attr) {\n return;\n }\n\n const { newId, oldId, fromUser } = config;\n\n const attributeMap = getAttrMap(attr);\n const storedValues = attributeMap.get(target);\n\n if (!fromUser && !!storedValues) {\n // If there's any stored values, it means the attribute is being handled by the user\n // Replace the \"oldId\" with \"newId\" on the stored values set and leave\n oldId && storedValues.delete(oldId);\n newId && storedValues.add(newId);\n return;\n }\n\n if (fromUser) {\n if (!storedValues) {\n // If it's called from user and there's no stored values for the attribute,\n // then store the current value\n storeAriaIDReference(target, attr);\n } else if (!newId) {\n // If called from user with newId == null, it means the attribute will no longer\n // be in control of the user and the stored values should be restored\n // Removing the entry on the map for this target\n attributeMap.delete(target);\n }\n\n // If it's from user, then clear the attribute value before setting newId\n cleanAriaIDReference(target, attr);\n }\n\n removeValueFromAttribute(target, attr, oldId);\n\n const attributeValue = !newId ? serializeAttributeValue(storedValues) : newId;\n if (attributeValue) {\n addValueToAttribute(target, attr, attributeValue);\n }\n}\n\n/**\n * Removes the {@link attr | attribute} value of the given {@link target} element.\n * It also stores the current value, if no stored values are present.\n *\n * @param {HTMLElement} target\n * @param {string} attr\n */\nexport function removeAriaIDReference(target, attr) {\n storeAriaIDReference(target, attr);\n cleanAriaIDReference(target, attr);\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 {\n removeAriaIDReference,\n restoreGeneratedAriaIDReference,\n setAriaIDReference,\n} from '@vaadin/a11y-base/src/aria-id-reference.js';\n\n/**\n * A controller for managing ARIA attributes for a field element:\n * either the component itself or slotted `<input>` element.\n */\nexport class FieldAriaController {\n constructor(host) {\n this.host = host;\n this.__required = false;\n }\n\n /**\n * Sets a target element to which ARIA attributes are added.\n *\n * @param {HTMLElement} target\n */\n setTarget(target) {\n this.__target = target;\n this.__setAriaRequiredAttribute(this.__required);\n // We need to make sure that value in __labelId is stored\n this.__setLabelIdToAriaAttribute(this.__labelId, this.__labelId);\n if (this.__labelIdFromUser != null) {\n this.__setLabelIdToAriaAttribute(this.__labelIdFromUser, this.__labelIdFromUser, true);\n }\n this.__setErrorIdToAriaAttribute(this.__errorId);\n this.__setHelperIdToAriaAttribute(this.__helperId);\n this.setAriaLabel(this.__label);\n }\n\n /**\n * Toggles the `aria-required` attribute on the target element\n * if the target is the host component (e.g. a field group).\n * Otherwise, it does nothing.\n *\n * @param {boolean} required\n */\n setRequired(required) {\n this.__setAriaRequiredAttribute(required);\n this.__required = required;\n }\n\n /**\n * Defines the `aria-label` attribute of the target element.\n *\n * To remove the attribute, pass `null` as `label`.\n *\n * @param {string | null | undefined} label\n */\n setAriaLabel(label) {\n this.__setAriaLabelToAttribute(label);\n this.__label = label;\n }\n\n /**\n * Links the target element with a slotted label element\n * via the target's attribute `aria-labelledby`.\n *\n * To unlink the previous slotted label element, pass `null` as `labelId`.\n *\n * @param {string | null} labelId\n */\n setLabelId(labelId, fromUser = false) {\n const oldLabelId = fromUser ? this.__labelIdFromUser : this.__labelId;\n this.__setLabelIdToAriaAttribute(labelId, oldLabelId, fromUser);\n if (fromUser) {\n this.__labelIdFromUser = labelId;\n } else {\n this.__labelId = labelId;\n }\n }\n\n /**\n * Links the target element with a slotted error element via the target's attribute:\n * - `aria-labelledby` if the target is the host component (e.g a field group).\n * - `aria-describedby` otherwise.\n *\n * To unlink the previous slotted error element, pass `null` as `errorId`.\n *\n * @param {string | null} errorId\n */\n setErrorId(errorId) {\n this.__setErrorIdToAriaAttribute(errorId, this.__errorId);\n this.__errorId = errorId;\n }\n\n /**\n * Links the target element with a slotted helper element via the target's attribute:\n * - `aria-labelledby` if the target is the host component (e.g a field group).\n * - `aria-describedby` otherwise.\n *\n * To unlink the previous slotted helper element, pass `null` as `helperId`.\n *\n * @param {string | null} helperId\n */\n setHelperId(helperId) {\n this.__setHelperIdToAriaAttribute(helperId, this.__helperId);\n this.__helperId = helperId;\n }\n\n /**\n * @param {string | null | undefined} label\n * @private\n * */\n __setAriaLabelToAttribute(label) {\n if (!this.__target) {\n return;\n }\n if (label) {\n removeAriaIDReference(this.__target, 'aria-labelledby');\n this.__target.setAttribute('aria-label', label);\n } else if (this.__label) {\n restoreGeneratedAriaIDReference(this.__target, 'aria-labelledby');\n this.__target.removeAttribute('aria-label');\n }\n }\n\n /**\n * @param {string | null | undefined} labelId\n * @param {string | null | undefined} oldLabelId\n * @param {boolean | null | undefined} fromUser\n * @private\n */\n __setLabelIdToAriaAttribute(labelId, oldLabelId, fromUser) {\n setAriaIDReference(this.__target, 'aria-labelledby', { newId: labelId, oldId: oldLabelId, fromUser });\n }\n\n /**\n * @param {string | null | undefined} errorId\n * @param {string | null | undefined} oldErrorId\n * @private\n */\n __setErrorIdToAriaAttribute(errorId, oldErrorId) {\n setAriaIDReference(this.__target, 'aria-describedby', { newId: errorId, oldId: oldErrorId, fromUser: false });\n }\n\n /**\n * @param {string | null | undefined} helperId\n * @param {string | null | undefined} oldHelperId\n * @private\n */\n __setHelperIdToAriaAttribute(helperId, oldHelperId) {\n setAriaIDReference(this.__target, 'aria-describedby', { newId: helperId, oldId: oldHelperId, fromUser: false });\n }\n\n /**\n * @param {boolean} required\n * @private\n */\n __setAriaRequiredAttribute(required) {\n if (!this.__target) {\n return;\n }\n\n if (['input', 'textarea'].includes(this.__target.localName)) {\n // Native <input> or <textarea>, required is enough\n return;\n }\n\n if (required) {\n this.__target.setAttribute('aria-required', 'true');\n } else {\n this.__target.removeAttribute('aria-required');\n }\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\n/**\n * A mixin that manages keyboard handling.\n * The mixin subscribes to the keyboard events while an actual implementation\n * for the event handlers is left to the client (a component or another mixin).\n *\n * @polymerMixin\n */\nexport const KeyboardMixin = dedupingMixin(\n (superclass) =>\n class KeyboardMixinClass extends superclass {\n /** @protected */\n ready() {\n super.ready();\n\n this.addEventListener('keydown', (event) => {\n this._onKeyDown(event);\n });\n\n this.addEventListener('keyup', (event) => {\n this._onKeyUp(event);\n });\n }\n\n /**\n * A handler for the `keydown` event. By default, it calls\n * separate methods for handling \"Enter\" and \"Escape\" keys.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} event\n * @protected\n */\n _onKeyDown(event) {\n switch (event.key) {\n case 'Enter':\n this._onEnter(event);\n break;\n case 'Escape':\n this._onEscape(event);\n break;\n default:\n break;\n }\n }\n\n /**\n * A handler for the `keyup` event. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onKeyUp(_event) {\n // To be implemented.\n }\n\n /**\n * A handler for the \"Enter\" key. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onEnter(_event) {\n // To be implemented.\n }\n\n /**\n * A handler for the \"Escape\" key. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onEscape(_event) {\n // To be implemented.\n }\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 { DisabledMixin } from './disabled-mixin.js';\n\n/**\n * A mixin to toggle the `tabindex` attribute.\n *\n * The attribute is set to -1 whenever the user disables the element\n * and restored with the last known value once the element is enabled.\n *\n * @polymerMixin\n * @mixes DisabledMixin\n */\nexport const TabindexMixin = (superclass) =>\n class TabindexMixinClass extends DisabledMixin(superclass) {\n static get properties() {\n return {\n /**\n * Indicates whether the element can be focused and where it participates in sequential keyboard navigation.\n *\n * @protected\n */\n tabindex: {\n type: Number,\n reflectToAttribute: true,\n observer: '_tabindexChanged',\n },\n\n /**\n * Stores the last known tabindex since the element has been disabled.\n *\n * @protected\n */\n _lastTabIndex: {\n type: Number,\n },\n };\n }\n\n /**\n * When the element gets disabled, the observer saves the last known tabindex\n * and makes the element not focusable by setting tabindex to -1.\n * As soon as the element gets enabled, the observer restores the last known tabindex\n * so that the element can be focusable again.\n *\n * @protected\n * @override\n */\n _disabledChanged(disabled, oldDisabled) {\n super._disabledChanged(disabled, oldDisabled);\n\n if (disabled) {\n if (this.tabindex !== undefined) {\n this._lastTabIndex = this.tabindex;\n }\n this.tabindex = -1;\n } else if (oldDisabled) {\n this.tabindex = this._lastTabIndex;\n }\n }\n\n /**\n * When the user has changed tabindex while the element is disabled,\n * the observer reverts tabindex to -1 and rather saves the new tabindex value to apply it later.\n * The new value will be applied as soon as the element becomes enabled.\n *\n * @protected\n */\n _tabindexChanged(tabindex) {\n if (this.disabled && tabindex !== -1) {\n this._lastTabIndex = tabindex;\n this.tabindex = -1;\n }\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\n/**\n * A mixin to delegate properties and attributes to a target element.\n *\n * @polymerMixin\n */\nexport const DelegateStateMixin = dedupingMixin(\n (superclass) =>\n class DelegateStateMixinClass extends superclass {\n static get properties() {\n return {\n /**\n * A target element to which attributes and properties are delegated.\n * @protected\n */\n stateTarget: {\n type: Object,\n observer: '_stateTargetChanged',\n },\n };\n }\n\n /**\n * An array of the host attributes to delegate to the target element.\n */\n static get delegateAttrs() {\n return [];\n }\n\n /**\n * An array of the host properties to delegate to the target element.\n */\n static get delegateProps() {\n return [];\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._createDelegateAttrsObserver();\n this._createDelegatePropsObserver();\n }\n\n /** @protected */\n _stateTargetChanged(target) {\n if (target) {\n this._ensureAttrsDelegated();\n this._ensurePropsDelegated();\n }\n }\n\n /** @protected */\n _createDelegateAttrsObserver() {\n this._createMethodObserver(`_delegateAttrsChanged(${this.constructor.delegateAttrs.join(', ')})`);\n }\n\n /** @protected */\n _createDelegatePropsObserver() {\n this._createMethodObserver(`_delegatePropsChanged(${this.constructor.delegateProps.join(', ')})`);\n }\n\n /** @protected */\n _ensureAttrsDelegated() {\n this.constructor.delegateAttrs.forEach((name) => {\n this._delegateAttribute(name, this[name]);\n });\n }\n\n /** @protected */\n _ensurePropsDelegated() {\n this.constructor.delegateProps.forEach((name) => {\n this._delegateProperty(name, this[name]);\n });\n }\n\n /** @protected */\n _delegateAttrsChanged(...values) {\n this.constructor.delegateAttrs.forEach((name, index) => {\n this._delegateAttribute(name, values[index]);\n });\n }\n\n /** @protected */\n _delegatePropsChanged(...values) {\n this.constructor.delegateProps.forEach((name, index) => {\n this._delegateProperty(name, values[index]);\n });\n }\n\n /** @protected */\n _delegateAttribute(name, value) {\n if (!this.stateTarget) {\n return;\n }\n\n if (name === 'invalid') {\n this._delegateAttribute('aria-invalid', value ? 'true' : false);\n }\n\n if (typeof value === 'boolean') {\n this.stateTarget.toggleAttribute(name, value);\n } else if (value) {\n this.stateTarget.setAttribute(name, value);\n } else {\n this.stateTarget.removeAttribute(name);\n }\n }\n\n /** @protected */\n _delegateProperty(name, value) {\n if (!this.stateTarget) {\n return;\n }\n\n this.stateTarget[name] = value;\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 { SlotController } from './slot-controller.js';\n\n/**\n * A controller that observes slotted element mutations, especially ID attribute\n * and the text content, and fires an event to notify host element about those.\n */\nexport class SlotChildObserveController extends SlotController {\n constructor(host, slot, tagName, config = {}) {\n super(host, slot, tagName, { ...config, useUniqueId: true });\n }\n\n /**\n * Override to initialize the newly added custom node.\n *\n * @param {Node} node\n * @protected\n * @override\n */\n initCustomNode(node) {\n this.__updateNodeId(node);\n this.__notifyChange(node);\n }\n\n /**\n * Override to notify the controller host about removal of\n * the custom node, and to apply the default one if needed.\n *\n * @param {Node} _node\n * @protected\n * @override\n */\n teardownNode(_node) {\n const node = this.getSlotChild();\n\n // Custom node is added to the slot\n if (node && node !== this.defaultNode) {\n this.__notifyChange(node);\n } else {\n this.restoreDefaultNode();\n this.updateDefaultNode(this.node);\n }\n }\n\n /**\n * Override method inherited from `SlotMixin`\n * to set ID attribute on the default node.\n *\n * @return {Node}\n * @protected\n * @override\n */\n attachDefaultNode() {\n const node = super.attachDefaultNode();\n\n if (node) {\n this.__updateNodeId(node);\n }\n\n return node;\n }\n\n /**\n * Override to restore default node when a custom one is removed.\n *\n * @protected\n */\n restoreDefaultNode() {\n // To be implemented\n }\n\n /**\n * Override to update default node text on property change.\n *\n * @param {Node} node\n * @protected\n */\n updateDefaultNode(node) {\n this.__notifyChange(node);\n }\n\n /**\n * Setup the mutation observer on the node to update ID and notify host.\n * Node doesn't get observed automatically until this method is called.\n *\n * @param {Node} node\n * @protected\n */\n observeNode(node) {\n // Stop observing the previous node, if any.\n if (this.__nodeObserver) {\n this.__nodeObserver.disconnect();\n }\n\n this.__nodeObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n const target = mutation.target;\n\n // Ensure the mutation target is the currently connected node\n // to ignore async mutations dispatched for removed element.\n const isCurrentNodeMutation = target === this.node;\n\n if (mutation.type === 'attributes') {\n // We use attributeFilter to only observe ID mutation,\n // no need to check for attribute name separately.\n if (isCurrentNodeMutation) {\n this.__updateNodeId(target);\n }\n } else if (isCurrentNodeMutation || target.parentElement === this.node) {\n // Node text content has changed.\n this.__notifyChange(this.node);\n }\n });\n });\n\n // Observe changes to node ID attribute, text content and children.\n this.__nodeObserver.observe(node, {\n attributes: true,\n attributeFilter: ['id'],\n childList: true,\n subtree: true,\n characterData: true,\n });\n }\n\n /**\n * Returns true if a node is an HTML element with children,\n * or is a defined custom element, or has non-empty text.\n *\n * @param {Node} node\n * @return {boolean}\n * @private\n */\n __hasContent(node) {\n if (!node) {\n return false;\n }\n\n return (\n (node.nodeType === Node.ELEMENT_NODE && (customElements.get(node.localName) || node.children.length > 0)) ||\n (node.textContent && node.textContent.trim() !== '')\n );\n }\n\n /**\n * Fire an event to notify the controller host about node changes.\n *\n * @param {Node} node\n * @private\n */\n __notifyChange(node) {\n this.dispatchEvent(\n new CustomEvent('slot-content-changed', {\n detail: { hasContent: this.__hasContent(node), node },\n }),\n );\n }\n\n /**\n * Set default ID on the node in case it is an HTML element.\n *\n * @param {Node} node\n * @private\n */\n __updateNodeId(node) {\n // When in multiple mode, only set ID attribute on the element in default slot.\n const isFirstNode = !this.nodes || node === this.nodes[0];\n if (node.nodeType === Node.ELEMENT_NODE && (!this.multiple || isFirstNode) && !node.id) {\n node.id = this.defaultId;\n }\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 { SlotChildObserveController } from '@vaadin/component-base/src/slot-child-observe-controller.js';\n\n/**\n * A controller that manages the error message node content.\n */\nexport class ErrorController extends SlotChildObserveController {\n constructor(host) {\n super(host, 'error-message', 'div');\n }\n\n /**\n * Set the error message element text content.\n *\n * @param {string} errorMessage\n */\n setErrorMessage(errorMessage) {\n this.errorMessage = errorMessage;\n\n this.updateDefaultNode(this.node);\n }\n\n /**\n * Set invalid state for detecting whether to show error message.\n *\n * @param {boolean} invalid\n */\n setInvalid(invalid) {\n this.invalid = invalid;\n\n this.updateDefaultNode(this.node);\n }\n\n /**\n * Override method inherited from `SlotController` to not run\n * initializer on the custom slotted node unnecessarily.\n *\n * @param {Node} node\n * @protected\n * @override\n */\n initAddedNode(node) {\n if (node !== this.defaultNode) {\n // There is no need to run `initNode`.\n this.initCustomNode(node);\n }\n }\n\n /**\n * Override to initialize the newly added default error message.\n *\n * @param {Node} errorNode\n * @protected\n * @override\n */\n initNode(errorNode) {\n this.updateDefaultNode(errorNode);\n }\n\n /**\n * Override to initialize the newly added custom error message.\n *\n * @param {Node} errorNode\n * @protected\n * @override\n */\n initCustomNode(errorNode) {\n // Save the custom error message content on the host.\n if (errorNode.textContent && !this.errorMessage) {\n this.errorMessage = errorNode.textContent.trim();\n }\n\n // Notify the host about custom node.\n super.initCustomNode(errorNode);\n }\n\n /**\n * Override method inherited from `SlotChildObserveController`\n * to restore the default error message element.\n *\n * @protected\n * @override\n */\n restoreDefaultNode() {\n this.attachDefaultNode();\n }\n\n /**\n * Override method inherited from `SlotChildObserveController`\n * to update the error message text and hidden state.\n *\n * Note: unlike with other controllers, this method is\n * called for both default and custom error message.\n *\n * @param {Node | undefined} node\n * @protected\n * @override\n */\n updateDefaultNode(errorNode) {\n const { errorMessage, invalid } = this;\n const hasError = Boolean(invalid && errorMessage && errorMessage.trim() !== '');\n\n if (errorNode) {\n errorNode.textContent = hasError ? errorMessage : '';\n errorNode.hidden = !hasError;\n\n // Role alert will make the error message announce immediately\n // as the field becomes invalid\n if (hasError) {\n errorNode.setAttribute('role', 'alert');\n } else {\n errorNode.removeAttribute('role');\n }\n }\n\n // Notify the host after update.\n super.updateDefaultNode(errorNode);\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 { SlotChildObserveController } from '@vaadin/component-base/src/slot-child-observe-controller.js';\n\n/**\n * A controller that manages the helper node content.\n */\nexport class HelperController extends SlotChildObserveController {\n constructor(host) {\n // Do not provide tag name, as we create helper lazily.\n super(host, 'helper', null);\n }\n\n /**\n * Set helper text based on corresponding host property.\n *\n * @param {string} helperText\n */\n setHelperText(helperText) {\n this.helperText = helperText;\n\n // Restore the default helper, if needed.\n const helperNode = this.getSlotChild();\n if (!helperNode) {\n this.restoreDefaultNode();\n }\n\n // When default helper is used, update it.\n if (this.node === this.defaultNode) {\n this.updateDefaultNode(this.node);\n }\n }\n\n /**\n * Override method inherited from `SlotChildObserveController`\n * to create the default helper element lazily as needed.\n *\n * @param {Node | undefined} node\n * @protected\n * @override\n */\n restoreDefaultNode() {\n const { helperText } = this;\n\n // No helper yet, create one.\n if (helperText && helperText.trim() !== '') {\n this.tagName = 'div';\n\n const helperNode = this.attachDefaultNode();\n\n // Observe the default node.\n this.observeNode(helperNode);\n }\n }\n\n /**\n * Override method inherited from `SlotChildObserveController`\n * to update the default helper element text content.\n *\n * @param {Node | undefined} node\n * @protected\n * @override\n */\n updateDefaultNode(node) {\n if (node) {\n node.textContent = this.helperText;\n }\n\n // Notify the host after update.\n super.updateDefaultNode(node);\n }\n\n /**\n * Override to observe the newly added custom node.\n *\n * @param {Node} node\n * @protected\n * @override\n */\n initCustomNode(node) {\n // Notify the host about a custom slotted helper.\n super.initCustomNode(node);\n\n this.observeNode(node);\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 { FieldAriaController } from '@vaadin/a11y-base/src/field-aria-controller.js';\nimport { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';\nimport { ErrorController } from './error-controller.js';\nimport { HelperController } from './helper-controller.js';\nimport { LabelMixin } from './label-mixin.js';\nimport { ValidateMixin } from './validate-mixin.js';\n\n/**\n * A mixin to provide common field logic: label, error message and helper text.\n *\n * @polymerMixin\n * @mixes ControllerMixin\n * @mixes LabelMixin\n * @mixes ValidateMixin\n */\nexport const FieldMixin = (superclass) =>\n class FieldMixinClass extends ValidateMixin(LabelMixin(ControllerMixin(superclass))) {\n static get properties() {\n return {\n /**\n * A target element to which ARIA attributes are set.\n * @protected\n */\n ariaTarget: {\n type: Object,\n observer: '_ariaTargetChanged',\n },\n\n /**\n * Error to show when the field is invalid.\n *\n * @attr {string} error-message\n */\n errorMessage: {\n type: String,\n observer: '_errorMessageChanged',\n },\n\n /**\n * String used for the helper text.\n * @attr {string} helper-text\n */\n helperText: {\n type: String,\n observer: '_helperTextChanged',\n },\n\n /**\n * String used to label the component to screen reader users.\n * @attr {string} accessible-name\n */\n accessibleName: {\n type: String,\n observer: '_accessibleNameChanged',\n },\n\n /**\n * Id of the element used as label of the component to screen reader users.\n * @attr {string} accessible-name-ref\n */\n accessibleNameRef: {\n type: String,\n observer: '_accessibleNameRefChanged',\n },\n };\n }\n\n static get observers() {\n return ['_invalidChanged(invalid)', '_requiredChanged(required)'];\n }\n\n constructor() {\n super();\n\n this._fieldAriaController = new FieldAriaController(this);\n this._helperController = new HelperController(this);\n this._errorController = new ErrorController(this);\n\n this._errorController.addEventListener('slot-content-changed', (event) => {\n this.toggleAttribute('has-error-message', event.detail.hasContent);\n });\n\n this._labelController.addEventListener('slot-content-changed', (event) => {\n const { hasContent, node } = event.detail;\n this.__labelChanged(hasContent, node);\n });\n\n this._helperController.addEventListener('slot-content-changed', (event) => {\n const { hasContent, node } = event.detail;\n this.toggleAttribute('has-helper', hasContent);\n this.__helperChanged(hasContent, node);\n });\n }\n\n /**\n * @protected\n * @return {HTMLElement}\n */\n get _errorNode() {\n return this._errorController.node;\n }\n\n /**\n * @protected\n * @return {HTMLElement}\n */\n get _helperNode() {\n return this._helperController.node;\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this.addController(this._fieldAriaController);\n this.addController(this._helperController);\n this.addController(this._errorController);\n }\n\n /** @private */\n __helperChanged(hasHelper, helperNode) {\n if (hasHelper) {\n this._fieldAriaController.setHelperId(helperNode.id);\n } else {\n this._fieldAriaController.setHelperId(null);\n }\n }\n\n /** @protected */\n _accessibleNameChanged(accessibleName) {\n this._fieldAriaController.setAriaLabel(accessibleName);\n }\n\n /** @protected */\n _accessibleNameRefChanged(accessibleNameRef) {\n this._fieldAriaController.setLabelId(accessibleNameRef, true);\n }\n\n /** @private */\n __labelChanged(hasLabel, labelNode) {\n // Label ID should be only added when the label content is present.\n // Otherwise, it may conflict with an `aria-label` attribute possibly added by the user.\n if (hasLabel) {\n this._fieldAriaController.setLabelId(labelNode.id);\n } else {\n this._fieldAriaController.setLabelId(null);\n }\n }\n\n /**\n * @param {string | null | undefined} errorMessage\n * @protected\n */\n _errorMessageChanged(errorMessage) {\n this._errorController.setErrorMessage(errorMessage);\n }\n\n /**\n * @param {string} helperText\n * @protected\n */\n _helperTextChanged(helperText) {\n this._helperController.setHelperText(helperText);\n }\n\n /**\n * @param {HTMLElement | null | undefined} target\n * @protected\n */\n _ariaTargetChanged(target) {\n if (target) {\n this._fieldAriaController.setTarget(target);\n }\n }\n\n /**\n * @param {boolean} required\n * @protected\n */\n _requiredChanged(required) {\n this._fieldAriaController.setRequired(required);\n }\n\n /**\n * @param {boolean} invalid\n * @protected\n */\n _invalidChanged(invalid) {\n this._errorController.setInvalid(invalid);\n\n // This timeout is needed to prevent NVDA from announcing the error message twice:\n // 1. Once adding the `[role=alert]` attribute when updating `has-error-message` (OK).\n // 2. Once linking the error ID with the ARIA target here (unwanted).\n // Related issue: https://github.com/vaadin/web-components/issues/3061.\n setTimeout(() => {\n // Error message ID needs to be dynamically added / removed based on the validity\n // Otherwise assistive technologies would announce the error, even if we hide it.\n if (invalid) {\n const node = this._errorNode;\n this._fieldAriaController.setErrorId(node && node.id);\n } else {\n this._fieldAriaController.setErrorId(null);\n }\n });\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\n/**\n * A mixin to store the reference to an input element\n * and add input and change event listeners to it.\n *\n * @polymerMixin\n */\nexport const InputMixin = dedupingMixin(\n (superclass) =>\n class InputMixinClass extends superclass {\n static get properties() {\n return {\n /**\n * A reference to the input element controlled by the mixin.\n * Any component implementing this mixin is expected to provide it\n * by using `this._setInputElement(input)` Polymer API.\n *\n * A typical case is using `InputController` that does this automatically.\n * However, the input element does not have to always be native <input>:\n * as an example, <vaadin-combo-box-light> accepts other components.\n *\n * @protected\n * @type {!HTMLElement}\n */\n inputElement: {\n type: Object,\n readOnly: true,\n observer: '_inputElementChanged',\n },\n\n /**\n * String used to define input type.\n * @protected\n */\n type: {\n type: String,\n readOnly: true,\n },\n\n /**\n * The value of the field.\n */\n value: {\n type: String,\n value: '',\n observer: '_valueChanged',\n notify: true,\n sync: true,\n },\n\n /**\n * Whether the input element has a non-empty value.\n *\n * @protected\n */\n _hasInputValue: {\n type: Boolean,\n value: false,\n observer: '_hasInputValueChanged',\n },\n };\n }\n\n constructor() {\n super();\n\n this._boundOnInput = this.__onInput.bind(this);\n this._boundOnChange = this._onChange.bind(this);\n }\n\n /**\n * Indicates whether the value is different from the default one.\n * Override if the `value` property has a type other than `string`.\n *\n * @protected\n */\n get _hasValue() {\n return this.value != null && this.value !== '';\n }\n\n /**\n * A property for accessing the input element's value.\n *\n * Override this getter if the property is different from the default `value` one.\n *\n * @protected\n * @return {string}\n */\n get _inputElementValueProperty() {\n return 'value';\n }\n\n /**\n * The input element's value.\n *\n * @protected\n * @return {string}\n */\n get _inputElementValue() {\n return this.inputElement ? this.inputElement[this._inputElementValueProperty] : undefined;\n }\n\n /**\n * The input element's value.\n *\n * @protected\n */\n set _inputElementValue(value) {\n if (this.inputElement) {\n this.inputElement[this._inputElementValueProperty] = value;\n }\n }\n\n /**\n * Clear the value of the field.\n */\n clear() {\n this._hasInputValue = false;\n\n this.value = '';\n\n // Clear the input immediately without waiting for the observer.\n // Otherwise, when using Lit, the old value would be restored.\n this._inputElementValue = '';\n }\n\n /**\n * Add event listeners to the input element instance.\n * Override this method to add custom listeners.\n * @param {!HTMLElement} input\n * @protected\n */\n _addInputListeners(input) {\n input.addEventListener('input', this._boundOnInput);\n input.addEventListener('change', this._boundOnChange);\n }\n\n /**\n * Remove event listeners from the input element instance.\n * @param {!HTMLElement} input\n * @protected\n */\n _removeInputListeners(input) {\n input.removeEventListener('input', this._boundOnInput);\n input.removeEventListener('change', this._boundOnChange);\n }\n\n /**\n * A method to forward the value property set on the field\n * programmatically back to the input element value.\n * Override this method to perform additional checks,\n * for example to skip this in certain conditions.\n * @param {string} value\n * @protected\n */\n _forwardInputValue(value) {\n // Value might be set before an input element is initialized.\n // This case should be handled separately by a component that\n // implements this mixin, for example in `connectedCallback`.\n if (!this.inputElement) {\n return;\n }\n\n this._inputElementValue = value != null ? value : '';\n }\n\n /**\n * @param {HTMLElement | undefined} input\n * @param {HTMLElement | undefined} oldInput\n * @protected\n */\n _inputElementChanged(input, oldInput) {\n if (input) {\n this._addInputListeners(input);\n } else if (oldInput) {\n this._removeInputListeners(oldInput);\n }\n }\n\n /**\n * Observer to notify about the change of private property.\n *\n * @private\n */\n _hasInputValueChanged(hasValue, oldHasValue) {\n if (hasValue || oldHasValue) {\n this.dispatchEvent(new CustomEvent('has-input-value-changed'));\n }\n }\n\n /**\n * An input event listener used to update `_hasInputValue` property.\n * Do not override this method.\n *\n * @param {Event} event\n * @private\n */\n __onInput(event) {\n this._setHasInputValue(event);\n this._onInput(event);\n }\n\n /**\n * An input event listener used to update the field value.\n *\n * @param {Event} event\n * @protected\n */\n _onInput(event) {\n // In the case a custom web component is passed as `inputElement`,\n // the actual native input element, on which the event occurred,\n // can be inside shadow trees.\n const target = event.composedPath()[0];\n // Ignore fake input events e.g. used by clear button.\n this.__userInput = event.isTrusted;\n this.value = target.value;\n this.__userInput = false;\n }\n\n /**\n * A change event listener.\n * Override this method with an actual implementation.\n * @param {Event} _event\n * @protected\n */\n _onChange(_event) {}\n\n /**\n * Toggle the has-value attribute based on the value property.\n *\n * @param {boolean} hasValue\n * @protected\n */\n _toggleHasValue(hasValue) {\n this.toggleAttribute('has-value', hasValue);\n }\n\n /**\n * Observer called when a value property changes.\n * @param {string | undefined} newVal\n * @param {string | undefined} oldVal\n * @protected\n */\n _valueChanged(newVal, oldVal) {\n this._toggleHasValue(this._hasValue);\n\n // Setting initial value to empty string, do nothing.\n if (newVal === '' && oldVal === undefined) {\n return;\n }\n\n // Value is set by the user, no need to sync it back to input.\n if (this.__userInput) {\n return;\n }\n\n // Setting a value programmatically, sync it to input element.\n this._forwardInputValue(newVal);\n }\n\n /**\n * Sets the `_hasInputValue` property based on the `input` event.\n *\n * @param {InputEvent} event\n * @protected\n */\n _setHasInputValue(event) {\n // In the case a custom web component is passed as `inputElement`,\n // the actual native input element, on which the event occurred,\n // can be inside shadow trees.\n const target = event.composedPath()[0];\n this._hasInputValue = target.value.length > 0;\n }\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 { SlotChildObserveController } from '@vaadin/component-base/src/slot-child-observe-controller.js';\n\n/**\n * A controller to manage the label element.\n */\nexport class LabelController extends SlotChildObserveController {\n constructor(host) {\n super(host, 'label', 'label');\n }\n\n /**\n * Set label based on corresponding host property.\n *\n * @param {string} label\n */\n setLabel(label) {\n this.label = label;\n\n // Restore the default label, if needed.\n const labelNode = this.getSlotChild();\n if (!labelNode) {\n this.restoreDefaultNode();\n }\n\n // When default label is used, update it.\n if (this.node === this.defaultNode) {\n this.updateDefaultNode(this.node);\n }\n }\n\n /**\n * Override method inherited from `SlotChildObserveController`\n * to restore and observe the default label element.\n *\n * @protected\n * @override\n */\n restoreDefaultNode() {\n const { label } = this;\n\n // Restore the default label.\n if (label && label.trim() !== '') {\n const labelNode = this.attachDefaultNode();\n\n // Observe the default label.\n this.observeNode(labelNode);\n }\n }\n\n /**\n * Override method inherited from `SlotChildObserveController`\n * to update the default label element text content.\n *\n * @param {Node | undefined} node\n * @protected\n * @override\n */\n updateDefaultNode(node) {\n if (node) {\n node.textContent = this.label;\n }\n\n // Notify the host after update.\n super.updateDefaultNode(node);\n }\n\n /**\n * Override to observe the newly added custom node.\n *\n * @param {Node} node\n * @protected\n * @override\n */\n initCustomNode(node) {\n // Notify the host about adding a custom node.\n super.initCustomNode(node);\n\n this.observeNode(node);\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';\nimport { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';\nimport { LabelController } from './label-controller.js';\n\n/**\n * A mixin to provide label via corresponding property or named slot.\n *\n * @polymerMixin\n * @mixes ControllerMixin\n */\nexport const LabelMixin = dedupingMixin(\n (superclass) =>\n class LabelMixinClass extends ControllerMixin(superclass) {\n static get properties() {\n return {\n /**\n * The label text for the input node.\n * When no light dom defined via [slot=label], this value will be used.\n */\n label: {\n type: String,\n observer: '_labelChanged',\n },\n };\n }\n\n constructor() {\n super();\n\n this._labelController = new LabelController(this);\n\n this._labelController.addEventListener('slot-content-changed', (event) => {\n this.toggleAttribute('has-label', event.detail.hasContent);\n });\n }\n\n /** @protected */\n get _labelId() {\n const node = this._labelNode;\n return node && node.id;\n }\n\n /** @protected */\n get _labelNode() {\n return this._labelController.node;\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this.addController(this._labelController);\n }\n\n /** @protected */\n _labelChanged(label) {\n this._labelController.setLabel(label);\n }\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 */\n\n/**\n * A controller for linking a `<label>` element with an `<input>` element.\n */\nexport class LabelledInputController {\n constructor(input, labelController) {\n this.input = input;\n this.__preventDuplicateLabelClick = this.__preventDuplicateLabelClick.bind(this);\n\n labelController.addEventListener('slot-content-changed', (event) => {\n this.__initLabel(event.detail.node);\n });\n\n // Initialize the default label element\n this.__initLabel(labelController.node);\n }\n\n /**\n * @param {HTMLElement} label\n * @private\n */\n __initLabel(label) {\n if (label) {\n label.addEventListener('click', this.__preventDuplicateLabelClick);\n\n if (this.input) {\n label.setAttribute('for', this.input.id);\n }\n }\n }\n\n /**\n * The native platform fires an event for both the click on the label, and also\n * the subsequent click on the native input element caused by label click.\n * This results in two click events arriving at the host, but we only want one.\n * This method prevents the duplicate click and ensures the correct isTrusted event\n * with the correct event.target arrives at the host.\n * @private\n */\n __preventDuplicateLabelClick() {\n const inputClickHandler = (e) => {\n e.stopImmediatePropagation();\n this.input.removeEventListener('click', inputClickHandler);\n };\n this.input.addEventListener('click', inputClickHandler);\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\n/**\n * A mixin to provide required state and validation logic.\n *\n * @polymerMixin\n */\nexport const ValidateMixin = dedupingMixin(\n (superclass) =>\n class ValidateMixinClass extends superclass {\n static get properties() {\n return {\n /**\n * Set to true when the field is invalid.\n */\n invalid: {\n type: Boolean,\n reflectToAttribute: true,\n notify: true,\n value: false,\n },\n\n /**\n * Specifies that the user must fill in a value.\n */\n required: {\n type: Boolean,\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * Validates the field and sets the `invalid` property based on the result.\n *\n * The method fires a `validated` event with the result of the validation.\n *\n * @return {boolean} True if the value is valid.\n */\n validate() {\n const isValid = this.checkValidity();\n this._setInvalid(!isValid);\n this.dispatchEvent(new CustomEvent('validated', { detail: { valid: isValid } }));\n return isValid;\n }\n\n /**\n * Returns true if the field value satisfies all constraints (if any).\n *\n * @return {boolean}\n */\n checkValidity() {\n return !this.required || !!this.value;\n }\n\n /**\n * @param {boolean} invalid\n * @protected\n */\n _setInvalid(invalid) {\n if (this._shouldSetInvalid(invalid)) {\n this.invalid = invalid;\n }\n }\n\n /**\n * Override this method to define whether the given `invalid` state should be set.\n *\n * @param {boolean} _invalid\n * @return {boolean}\n * @protected\n */\n _shouldSetInvalid(_invalid) {\n return true;\n }\n\n /**\n * Fired whenever the field is validated.\n *\n * @event validated\n * @param {Object} detail\n * @param {boolean} detail.valid the result of the validation.\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 '../color.js';\nimport '../sizing.js';\nimport '../style.js';\nimport '../typography.js';\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nexport const helper = css`\n :host {\n --_helper-spacing: var(--vaadin-input-field-helper-spacing, 0.4em);\n }\n\n :host([has-helper]) [part='helper-text']::before {\n content: '';\n display: block;\n height: var(--_helper-spacing);\n }\n\n [part='helper-text'] {\n display: block;\n color: var(--vaadin-input-field-helper-color, var(--lumo-secondary-text-color));\n font-size: var(--vaadin-input-field-helper-font-size, var(--lumo-font-size-xs));\n line-height: var(--lumo-line-height-xs);\n font-weight: var(--vaadin-input-field-helper-font-weight, 400);\n margin-left: calc(var(--lumo-border-radius-m) / 4);\n transition: color 0.2s;\n }\n\n :host(:hover:not([readonly])) [part='helper-text'] {\n color: var(--lumo-body-text-color);\n }\n\n :host([disabled]) [part='helper-text'] {\n color: var(--lumo-disabled-text-color);\n -webkit-text-fill-color: var(--lumo-disabled-text-color);\n }\n\n :host([has-helper][theme~='helper-above-field']) [part='helper-text']::before {\n display: none;\n }\n\n :host([has-helper][theme~='helper-above-field']) [part='helper-text']::after {\n content: '';\n display: block;\n height: var(--_helper-spacing);\n }\n\n :host([has-helper][theme~='helper-above-field']) [part='label'] {\n order: 0;\n padding-bottom: var(--_helper-spacing);\n }\n\n :host([has-helper][theme~='helper-above-field']) [part='helper-text'] {\n order: 1;\n }\n\n :host([has-helper][theme~='helper-above-field']) [part='label'] + * {\n order: 2;\n }\n\n :host([has-helper][theme~='helper-above-field']) [part='error-message'] {\n order: 3;\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 '../color.js';\nimport '../spacing.js';\nimport '../style.js';\nimport '../typography.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst requiredField = css`\n [part='label'] {\n align-self: flex-start;\n color: var(--vaadin-input-field-label-color, var(--lumo-secondary-text-color));\n font-weight: var(--vaadin-input-field-label-font-weight, 500);\n font-size: var(--vaadin-input-field-label-font-size, var(--lumo-font-size-s));\n margin-left: calc(var(--lumo-border-radius-m) / 4);\n transition: color 0.2s;\n line-height: 1;\n padding-right: 1em;\n padding-bottom: 0.5em;\n /* As a workaround for diacritics being cut off, add a top padding and a\n negative margin to compensate */\n padding-top: 0.25em;\n margin-top: -0.25em;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n position: relative;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n :host([focused]:not([readonly])) [part='label'] {\n color: var(--vaadin-input-field-focused-label-color, var(--lumo-primary-text-color));\n }\n\n :host(:hover:not([readonly]):not([focused])) [part='label'] {\n color: var(--vaadin-input-field-hovered-label-color, var(--lumo-body-text-color));\n }\n\n /* Touch device adjustment */\n @media (pointer: coarse) {\n :host(:hover:not([readonly]):not([focused])) [part='label'] {\n color: var(--vaadin-input-field-label-color, var(--lumo-secondary-text-color));\n }\n }\n\n :host([has-label])::before {\n margin-top: calc(var(--lumo-font-size-s) * 1.5);\n }\n\n :host([has-label][theme~='small'])::before {\n margin-top: calc(var(--lumo-font-size-xs) * 1.5);\n }\n\n :host([has-label]) {\n padding-top: var(--lumo-space-m);\n }\n\n :host([has-label]) ::slotted([slot='tooltip']) {\n --vaadin-tooltip-offset-bottom: calc((var(--lumo-space-m) - var(--lumo-space-xs)) * -1);\n }\n\n :host([required]) [part='required-indicator']::after {\n content: var(--lumo-required-field-indicator, '\\\\2022');\n transition: opacity 0.2s;\n color: var(--lumo-required-field-indicator-color, var(--lumo-primary-text-color));\n position: absolute;\n right: 0;\n width: 1em;\n text-align: center;\n }\n\n :host([invalid]) [part='required-indicator']::after {\n color: var(--lumo-required-field-indicator-color, var(--lumo-error-text-color));\n }\n\n [part='error-message'] {\n margin-left: calc(var(--lumo-border-radius-m) / 4);\n font-size: var(--vaadin-input-field-error-font-size, var(--lumo-font-size-xs));\n line-height: var(--lumo-line-height-xs);\n font-weight: var(--vaadin-input-field-error-font-weight, 400);\n color: var(--vaadin-input-field-error-color, var(--lumo-error-text-color));\n will-change: max-height;\n transition: 0.4s max-height;\n max-height: 5em;\n }\n\n :host([has-error-message]) [part='error-message']::before,\n :host([has-error-message]) [part='error-message']::after {\n content: '';\n display: block;\n height: 0.4em;\n }\n\n :host(:not([invalid])) [part='error-message'] {\n max-height: 0;\n overflow: hidden;\n }\n\n /* RTL specific styles */\n\n :host([dir='rtl']) [part='label'] {\n margin-left: 0;\n margin-right: calc(var(--lumo-border-radius-m) / 4);\n }\n\n :host([dir='rtl']) [part='label'] {\n padding-left: 1em;\n padding-right: 0;\n }\n\n :host([dir='rtl']) [part='required-indicator']::after {\n right: auto;\n left: 0;\n }\n\n :host([dir='rtl']) [part='error-message'] {\n margin-left: 0;\n margin-right: calc(var(--lumo-border-radius-m) / 4);\n }\n`;\n\nregisterStyles('', requiredField, { moduleId: 'lumo-required-field' });\n\nexport { requiredField };\n"],"names":["DelegateFocusMixin","superclass","properties","autofocus","type","Boolean","focusElement","Object","readOnly","observer","_lastTabIndex","value","constructor","super","this","_boundOnBlur","_onBlur","bind","_boundOnFocus","_onFocus","ready","disabled","requestAnimationFrame","focus","setAttribute","blur","click","_focusElementChanged","element","oldElement","_addFocusListeners","__forwardTabIndex","tabindex","_removeFocusListeners","addEventListener","removeEventListener","event","stopPropagation","dispatchEvent","Event","_shouldSetFocus","target","_shouldRemoveFocus","_disabledChanged","oldDisabled","_tabindexChanged","undefined","tabIndex","DisabledMixin","reflectToAttribute","_setAriaDisabled","removeAttribute","attributeToTargets","Map","getAttrMap","attr","has","set","WeakMap","get","cleanAriaIDReference","storeAriaIDReference","attributeMap","values","getAttribute","Set","setAriaIDReference","config","newId","oldId","fromUser","storedValues","delete","add","attributeValue","FieldAriaController","host","__required","setTarget","__target","__setAriaRequiredAttribute","__setLabelIdToAriaAttribute","__labelId","__labelIdFromUser","__setErrorIdToAriaAttribute","__errorId","__setHelperIdToAriaAttribute","__helperId","setAriaLabel","__label","setRequired","required","label","__setAriaLabelToAttribute","setLabelId","labelId","oldLabelId","setErrorId","errorId","setHelperId","helperId","size","restoreGeneratedAriaIDReference","oldErrorId","oldHelperId","includes","localName","KeyboardMixin","_onKeyDown","_onKeyUp","key","_onEnter","_onEscape","_event","TabindexMixin","Number","DelegateStateMixin","stateTarget","delegateAttrs","delegateProps","_createDelegateAttrsObserver","_createDelegatePropsObserver","_stateTargetChanged","_ensureAttrsDelegated","_ensurePropsDelegated","_createMethodObserver","join","forEach","name","_delegateAttribute","_delegateProperty","_delegateAttrsChanged","index","_delegatePropsChanged","toggleAttribute","SlotChildObserveController","slot","tagName","useUniqueId","initCustomNode","node","__updateNodeId","__notifyChange","teardownNode","_node","getSlotChild","defaultNode","restoreDefaultNode","updateDefaultNode","attachDefaultNode","observeNode","__nodeObserver","disconnect","MutationObserver","mutations","mutation","isCurrentNodeMutation","parentElement","observe","attributes","attributeFilter","childList","subtree","characterData","__hasContent","nodeType","Node","ELEMENT_NODE","customElements","children","length","textContent","trim","CustomEvent","detail","hasContent","isFirstNode","nodes","multiple","id","defaultId","ErrorController","setErrorMessage","errorMessage","setInvalid","invalid","initAddedNode","initNode","errorNode","hasError","hidden","HelperController","setHelperText","helperText","helperNode","FieldMixin","ariaTarget","String","accessibleName","accessibleNameRef","observers","_fieldAriaController","_helperController","_errorController","_labelController","__labelChanged","__helperChanged","_errorNode","_helperNode","addController","hasHelper","_accessibleNameChanged","_accessibleNameRefChanged","hasLabel","labelNode","_errorMessageChanged","_helperTextChanged","_ariaTargetChanged","_requiredChanged","_invalidChanged","setTimeout","InputMixin","inputElement","notify","sync","_hasInputValue","_boundOnInput","__onInput","_boundOnChange","_onChange","_hasValue","_inputElementValueProperty","_inputElementValue","clear","_addInputListeners","input","_removeInputListeners","_forwardInputValue","_inputElementChanged","oldInput","_hasInputValueChanged","hasValue","oldHasValue","_setHasInputValue","_onInput","composedPath","__userInput","isTrusted","_toggleHasValue","_valueChanged","newVal","oldVal","LabelController","setLabel","LabelMixin","_labelId","_labelNode","_labelChanged","LabelledInputController","labelController","__preventDuplicateLabelClick","__initLabel","inputClickHandler","e","stopImmediatePropagation","ValidateMixin","validate","isValid","checkValidity","_setInvalid","valid","_shouldSetInvalid","_invalid","helper","requiredField","moduleId"],"sourceRoot":""}
|
@@ -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 1899.js.LICENSE.txt */
|
2
|
+
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[1899],{89389:(t,e,o)=>{o.d(e,{$:()=>v});var r=o(13256),a=o(55774),i=o(82901),n=o(90676),s=o(81488),l=o(87550);const d=o(51450).AH`
|
3
3
|
:host {
|
4
4
|
display: inline-block;
|
5
5
|
position: relative;
|
@@ -59,7 +59,7 @@
|
|
59
59
|
outline-color: GrayText;
|
60
60
|
}
|
61
61
|
}
|
62
|
-
`;var u=o(
|
62
|
+
`;var u=o(84467),h=o(53149),c=o(36176);const p=t=>class extends((0,u.e)((0,c.l)((0,h.y)(t)))){static get properties(){return{tabindex:{type:Number,value:0,reflectToAttribute:!0}}}get _activeKeys(){return["Enter"," "]}ready(){super.ready(),this.hasAttribute("role")||this.setAttribute("role","button")}_onKeyDown(t){super._onKeyDown(t),t.altKey||t.shiftKey||t.ctrlKey||t.metaKey||this._activeKeys.includes(t.key)&&(t.preventDefault(),this.click())}};(0,l.SF)("vaadin-button",d,{moduleId:"vaadin-button-styles"});class v extends(p((0,n.q)((0,l.cp)((0,a.w)(r.Pu))))){static get is(){return"vaadin-button"}static get template(){return r.qy`
|
63
63
|
<div class="vaadin-button-container">
|
64
64
|
<span part="prefix" aria-hidden="true">
|
65
65
|
<slot name="prefix"></slot>
|
@@ -72,7 +72,7 @@
|
|
72
72
|
</span>
|
73
73
|
</div>
|
74
74
|
<slot name="tooltip"></slot>
|
75
|
-
`}ready(){super.ready(),this._tooltipController=new s.I(this),this.addController(this._tooltipController)}}(0,i.X)(v)},
|
75
|
+
`}ready(){super.ready(),this._tooltipController=new s.I(this),this.addController(this._tooltipController)}}(0,i.X)(v)},93555:(t,e,o)=>{o.d(e,{x:()=>a}),o(64511),o(42068),o(9433),o(3241),o(83315);var r=o(87550);const a=r.AH`
|
76
76
|
:host {
|
77
77
|
/* Sizing */
|
78
78
|
--lumo-button-size: var(--lumo-size-m);
|
@@ -335,7 +335,7 @@
|
|
335
335
|
margin-left: 0;
|
336
336
|
margin-right: 0;
|
337
337
|
}
|
338
|
-
`;(0,r.SF)("vaadin-button",a,{moduleId:"lumo-button"})},
|
338
|
+
`;(0,r.SF)("vaadin-button",a,{moduleId:"lumo-button"})},18330:(t,e,o)=>{o.d(e,{f:()=>a});var r=o(44099);class a extends r.r{constructor(t,e){super(t,"input","input",{initializer:(t,o)=>{o.value&&(t.value=o.value),o.type&&t.setAttribute("type",o.type),t.id=this.defaultId,"function"==typeof e&&e(t)},useUniqueId:!0})}}},37436:(t,e,o)=>{o.d(e,{a:()=>a});var r=o(44218);const a=t=>class extends((0,r.R)(t)){static get properties(){return{autocomplete:{type:String},autocorrect:{type:String},autocapitalize:{type:String,reflectToAttribute:!0}}}static get delegateAttrs(){return[...super.delegateAttrs,"autocapitalize","autocomplete","autocorrect"]}get __data(){return this.__dataValue||{}}set __data(t){this.__dataValue=t}_inputElementChanged(t){super._inputElementChanged(t),t&&(t.value&&t.value!==this.value&&(console.warn(`Please define value on the <${this.localName}> component!`),t.value=""),this.value&&(t.value=this.value))}_setFocused(t){super._setFocused(t),!t&&document.hasFocus()&&this.validate()}_onInput(t){super._onInput(t),this.invalid&&this.validate()}_valueChanged(t,e){super._valueChanged(t,e),void 0!==e&&this.invalid&&this.validate()}}},51899:(t,e,o)=>{o(52733);var r=o(93555),a=o(87550);const i=a.AH`
|
339
339
|
:host {
|
340
340
|
position: absolute;
|
341
341
|
right: 0;
|
@@ -348,7 +348,7 @@
|
|
348
348
|
background: transparent;
|
349
349
|
outline: none;
|
350
350
|
}
|
351
|
-
`;(0,a.SF)("vaadin-password-field-button",[r.x,i],{moduleId:"lumo-password-field-button"}),o(
|
351
|
+
`;(0,a.SF)("vaadin-password-field-button",[r.x,i],{moduleId:"lumo-password-field-button"}),o(25244),o(42068),o(3241);var n=o(47642);const s=a.AH`
|
352
352
|
[part='reveal-button']::before {
|
353
353
|
content: var(--lumo-icons-eye);
|
354
354
|
}
|
@@ -366,7 +366,7 @@
|
|
366
366
|
[part='reveal-button'][hidden] {
|
367
367
|
display: none !important;
|
368
368
|
}
|
369
|
-
`;(0,a.SF)("vaadin-password-field",[n.k,s],{moduleId:"lumo-password-field"});var l=o(
|
369
|
+
`;(0,a.SF)("vaadin-password-field",[n.k,s],{moduleId:"lumo-password-field"});var l=o(13256),d=o(89389),u=o(82901);class h extends d.${static get is(){return"vaadin-password-field-button"}static get template(){return l.qy`
|
370
370
|
<style>
|
371
371
|
:host {
|
372
372
|
display: block;
|
@@ -377,11 +377,11 @@
|
|
377
377
|
}
|
378
378
|
</style>
|
379
379
|
<slot name="tooltip"></slot>
|
380
|
-
`}}(0,u.X)(h);var c=o(
|
380
|
+
`}}(0,u.X)(h);var c=o(19398),p=o(44099),v=o(27136);const m=c.q`
|
381
381
|
<div part="reveal-button" slot="suffix">
|
382
382
|
<slot name="reveal"></slot>
|
383
383
|
</div>
|
384
|
-
`;let b;class g extends v.A{static get is(){return"vaadin-password-field"}static get template(){if(!b){b=super.template.cloneNode(!0);const t=m.content.querySelector('[part="reveal-button"]');b.content.querySelector('[part="input-field"]').appendChild(t)}return b}static get properties(){return{revealButtonHidden:{type:Boolean,observer:"_revealButtonHiddenChanged",value:!1},passwordVisible:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"_passwordVisibleChanged",readOnly:!0},i18n:{type:Object,value:()=>({reveal:"Show password"})}}}static get observers(){return["__i18nChanged(i18n.*)"]}constructor(){super(),this._setType("password"),this.__boundRevealButtonClick=this._onRevealButtonClick.bind(this),this.__boundRevealButtonMouseDown=this._onRevealButtonMouseDown.bind(this),this.__lastChange=""}get slotStyles(){const t=this.localName;return[...super.slotStyles,`\n ${t} [slot="input"]::-ms-reveal {\n display: none;\n }\n `]}get _revealNode(){return this._revealButtonController&&this._revealButtonController.node}ready(){super.ready(),this._revealPart=this.shadowRoot.querySelector('[part="reveal-button"]'),this._revealButtonController=new p.r(this,"reveal","vaadin-password-field-button",{initializer:t=>{t.disabled=this.disabled,t.addEventListener("click",this.__boundRevealButtonClick),t.addEventListener("mousedown",this.__boundRevealButtonMouseDown)}}),this.addController(this._revealButtonController),this.__updateAriaLabel(this.i18n),this._updateToggleState(!1),this._toggleRevealHidden(this.revealButtonHidden),this.inputElement&&(this.inputElement.autocapitalize="off")}_onChange(t){super._onChange(t),this.__lastChange=this.inputElement.value}_shouldSetFocus(t){return t.target===this.inputElement||t.target===this._revealNode}_shouldRemoveFocus(t){return!(t.relatedTarget===this._revealNode||t.relatedTarget===this.inputElement&&t.target===this._revealNode)}_setFocused(t){if(super._setFocused(t),t){const t=this.getRootNode().activeElement===this._revealNode;this.toggleAttribute("focus-ring",this._keyboardActive&&!t)}else this._setPasswordVisible(!1),this.__lastChange!==this.inputElement.value&&(this.__lastChange=this.inputElement.value,this.dispatchEvent(new CustomEvent("change",{bubbles:!0})))}__updateAriaLabel(t){t.reveal&&this._revealNode&&this._revealNode.setAttribute("aria-label",t.reveal)}__i18nChanged(t){this.__updateAriaLabel(t.base)}_revealButtonHiddenChanged(t){this._toggleRevealHidden(t)}_togglePasswordVisibility(){this._setPasswordVisible(!this.passwordVisible)}_onRevealButtonClick(){this._togglePasswordVisibility()}_onRevealButtonMouseDown(t){t.preventDefault(),this.inputElement.focus()}_toggleRevealHidden(t){this._revealNode&&(t?(this._revealPart.setAttribute("hidden",""),this._revealNode.setAttribute("tabindex","-1"),this._revealNode.setAttribute("aria-hidden","true")):(this._revealPart.removeAttribute("hidden"),this._revealNode.setAttribute("tabindex","0"),this._revealNode.removeAttribute("aria-hidden")))}_updateToggleState(t){this._revealNode&&this._revealNode.setAttribute("aria-pressed",t?"true":"false")}_passwordVisibleChanged(t){this._setType(t?"text":"password"),this._updateToggleState(t)}_disabledChanged(t,e){super._disabledChanged(t,e),this._revealNode&&(this._revealNode.disabled=t)}}(0,u.X)(g)},
|
384
|
+
`;let b;class g extends v.A{static get is(){return"vaadin-password-field"}static get template(){if(!b){b=super.template.cloneNode(!0);const t=m.content.querySelector('[part="reveal-button"]');b.content.querySelector('[part="input-field"]').appendChild(t)}return b}static get properties(){return{revealButtonHidden:{type:Boolean,observer:"_revealButtonHiddenChanged",value:!1},passwordVisible:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"_passwordVisibleChanged",readOnly:!0},i18n:{type:Object,value:()=>({reveal:"Show password"})}}}static get observers(){return["__i18nChanged(i18n.*)"]}constructor(){super(),this._setType("password"),this.__boundRevealButtonClick=this._onRevealButtonClick.bind(this),this.__boundRevealButtonMouseDown=this._onRevealButtonMouseDown.bind(this),this.__lastChange=""}get slotStyles(){const t=this.localName;return[...super.slotStyles,`\n ${t} [slot="input"]::-ms-reveal {\n display: none;\n }\n `]}get _revealNode(){return this._revealButtonController&&this._revealButtonController.node}ready(){super.ready(),this._revealPart=this.shadowRoot.querySelector('[part="reveal-button"]'),this._revealButtonController=new p.r(this,"reveal","vaadin-password-field-button",{initializer:t=>{t.disabled=this.disabled,t.addEventListener("click",this.__boundRevealButtonClick),t.addEventListener("mousedown",this.__boundRevealButtonMouseDown)}}),this.addController(this._revealButtonController),this.__updateAriaLabel(this.i18n),this._updateToggleState(!1),this._toggleRevealHidden(this.revealButtonHidden),this.inputElement&&(this.inputElement.autocapitalize="off")}_onChange(t){super._onChange(t),this.__lastChange=this.inputElement.value}_shouldSetFocus(t){return t.target===this.inputElement||t.target===this._revealNode}_shouldRemoveFocus(t){return!(t.relatedTarget===this._revealNode||t.relatedTarget===this.inputElement&&t.target===this._revealNode)}_setFocused(t){if(super._setFocused(t),t){const t=this.getRootNode().activeElement===this._revealNode;this.toggleAttribute("focus-ring",this._keyboardActive&&!t)}else this._setPasswordVisible(!1),this.__lastChange!==this.inputElement.value&&(this.__lastChange=this.inputElement.value,this.dispatchEvent(new CustomEvent("change",{bubbles:!0})))}__updateAriaLabel(t){t.reveal&&this._revealNode&&this._revealNode.setAttribute("aria-label",t.reveal)}__i18nChanged(t){this.__updateAriaLabel(t.base)}_revealButtonHiddenChanged(t){this._toggleRevealHidden(t)}_togglePasswordVisibility(){this._setPasswordVisible(!this.passwordVisible)}_onRevealButtonClick(){this._togglePasswordVisibility()}_onRevealButtonMouseDown(t){t.preventDefault(),this.inputElement.focus()}_toggleRevealHidden(t){this._revealNode&&(t?(this._revealPart.setAttribute("hidden",""),this._revealNode.setAttribute("tabindex","-1"),this._revealNode.setAttribute("aria-hidden","true")):(this._revealPart.removeAttribute("hidden"),this._revealNode.setAttribute("tabindex","0"),this._revealNode.removeAttribute("aria-hidden")))}_updateToggleState(t){this._revealNode&&this._revealNode.setAttribute("aria-pressed",t?"true":"false")}_passwordVisibleChanged(t){this._setType(t?"text":"password"),this._updateToggleState(t)}_disabledChanged(t,e){super._disabledChanged(t,e),this._revealNode&&(this._revealNode.disabled=t)}}(0,u.X)(g)},27136:(t,e,o)=>{o.d(e,{A:()=>p}),o(86689);var r=o(13256),a=o(82901),i=o(90676),n=o(81488),s=o(86314),l=o(87550),d=o(18330),u=o(37436),h=o(37720);const c=t=>class extends((0,u.a)(t)){static get properties(){return{maxlength:{type:Number},minlength:{type:Number},pattern:{type:String}}}static get delegateAttrs(){return[...super.delegateAttrs,"maxlength","minlength","pattern"]}static get constraints(){return[...super.constraints,"maxlength","minlength","pattern"]}constructor(){super(),this._setType("text")}get clearElement(){return this.$.clearButton}ready(){super.ready(),this.addController(new d.f(this,(t=>{this._setInputElement(t),this._setFocusElement(t),this.stateTarget=t,this.ariaTarget=t}))),this.addController(new h.q(this.inputElement,this._labelController))}};(0,l.SF)("vaadin-text-field",s.k,{moduleId:"vaadin-text-field-styles"});class p extends(c((0,l.cp)((0,i.q)(r.Pu)))){static get is(){return"vaadin-text-field"}static get template(){return r.qy`
|
385
385
|
<style>
|
386
386
|
[part='input-field'] {
|
387
387
|
flex-grow: 0;
|
@@ -416,4 +416,5 @@
|
|
416
416
|
</div>
|
417
417
|
</div>
|
418
418
|
<slot name="tooltip"></slot>
|
419
|
-
`}static get properties(){return{maxlength:{type:Number},minlength:{type:Number}}}ready(){super.ready(),this._tooltipController=new n.I(this),this._tooltipController.setPosition("top"),this._tooltipController.setAriaTarget(this.inputElement),this.addController(this._tooltipController)}}(0,a.X)(p)},
|
419
|
+
`}static get properties(){return{maxlength:{type:Number},minlength:{type:Number}}}ready(){super.ready(),this._tooltipController=new n.I(this),this._tooltipController.setPosition("top"),this._tooltipController.setAriaTarget(this.inputElement),this.addController(this._tooltipController)}}(0,a.X)(p)},52733:(t,e,o)=>{o(27397);var r=o(47642);(0,o(87550).SF)("vaadin-text-field",r.k,{moduleId:"lumo-text-field-styles"}),o(27136)}}]);
|
420
|
+
//# sourceMappingURL=1899.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"1899.js","mappings":"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","sources":["webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/src/vaadin-button-base.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/src/vaadin-button-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/src/vaadin-button.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/button/theme/lumo/vaadin-button-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/input-controller.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/field-base/src/input-field-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/password-field/theme/lumo/vaadin-password-field-button-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/password-field/theme/lumo/vaadin-password-field-styles.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/password-field/src/vaadin-password-field-button.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/password-field/src/vaadin-password-field.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/text-field/src/vaadin-text-field-mixin.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/text-field/src/vaadin-text-field.js","webpack://@descope/web-components-ui/../../../node_modules/@vaadin/text-field/theme/lumo/vaadin-text-field-styles.js"],"sourcesContent":["/**\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 'lit';\n\nexport const buttonStyles = css`\n :host {\n display: inline-block;\n position: relative;\n outline: none;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Aligns the button with form fields when placed on the same line.\n Note, to make it work, the form fields should have the same \"::before\" pseudo-element. */\n .vaadin-button-container::before {\n content: '\\\\2003';\n display: inline-block;\n width: 0;\n max-height: 100%;\n }\n\n .vaadin-button-container {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 100%;\n height: 100%;\n min-height: inherit;\n text-shadow: inherit;\n }\n\n [part='prefix'],\n [part='suffix'] {\n flex: none;\n }\n\n [part='label'] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n @media (forced-colors: active) {\n :host {\n outline: 1px solid;\n outline-offset: -1px;\n }\n\n :host([focused]) {\n outline-width: 2px;\n }\n\n :host([disabled]) {\n outline-color: GrayText;\n }\n }\n`;\n\nexport const buttonTemplate = (html) => html`\n <div class=\"vaadin-button-container\">\n <span part=\"prefix\" aria-hidden=\"true\">\n <slot name=\"prefix\"></slot>\n </span>\n <span part=\"label\">\n <slot></slot>\n </span>\n <span part=\"suffix\" aria-hidden=\"true\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n <slot name=\"tooltip\"></slot>\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 { ActiveMixin } from '@vaadin/a11y-base/src/active-mixin.js';\nimport { FocusMixin } from '@vaadin/a11y-base/src/focus-mixin.js';\nimport { TabindexMixin } from '@vaadin/a11y-base/src/tabindex-mixin.js';\n\n/**\n * A mixin providing common button functionality.\n *\n * @polymerMixin\n * @mixes ActiveMixin\n * @mixes FocusMixin\n * @mixes TabindexMixin\n */\nexport const ButtonMixin = (superClass) =>\n class ButtonMixinClass extends ActiveMixin(TabindexMixin(FocusMixin(superClass))) {\n static get properties() {\n return {\n /**\n * Indicates whether the element can be focused and where it participates in sequential keyboard navigation.\n *\n * @override\n * @protected\n */\n tabindex: {\n type: Number,\n value: 0,\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * By default, `Space` is the only possible activation key for a focusable HTML element.\n * Nonetheless, the button is an exception as it can be also activated by pressing `Enter`.\n * See the \"Keyboard Support\" section in https://www.w3.org/TR/wai-aria-practices/examples/button/button.html.\n *\n * @protected\n * @override\n */\n get _activeKeys() {\n return ['Enter', ' '];\n }\n\n /** @protected */\n ready() {\n super.ready();\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\n /**\n * Since the button component is designed on the base of the `[role=button]` attribute,\n * and doesn't have a native <button> inside, in order to be fully accessible from the keyboard,\n * it should manually fire the `click` event once an activation key is pressed,\n * as it follows from the WAI-ARIA specifications:\n * https://www.w3.org/TR/wai-aria-practices-1.1/#button\n *\n * According to the UI Events specifications,\n * the `click` event should be fired exactly on `keydown`:\n * https://www.w3.org/TR/uievents/#event-type-keydown\n *\n * @param {KeyboardEvent} event\n * @protected\n * @override\n */\n _onKeyDown(event) {\n super._onKeyDown(event);\n\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n if (this._activeKeys.includes(event.key)) {\n event.preventDefault();\n\n // `DisabledMixin` overrides the standard `click()` method\n // so that it doesn't fire the `click` event when the element is disabled.\n this.click();\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 { 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 { buttonStyles, buttonTemplate } from './vaadin-button-base.js';\nimport { ButtonMixin } from './vaadin-button-mixin.js';\n\nregisterStyles('vaadin-button', buttonStyles, { moduleId: 'vaadin-button-styles' });\n\n/**\n * `<vaadin-button>` is an accessible and customizable button that allows users to perform actions.\n *\n * ```html\n * <vaadin-button>Press me</vaadin-button>\n * ```\n *\n * ### Styling\n *\n * The following shadow DOM parts are available for styling:\n *\n * Part name | Description\n * ----------|-------------\n * `label` | The label (text) inside the button.\n * `prefix` | A slot for content before the label (e.g. an icon).\n * `suffix` | A slot for content after the label (e.g. an icon).\n *\n * The following attributes are available for styling:\n *\n * Attribute | Description\n * -------------|-------------\n * `active` | Set when the button is pressed down, either with mouse, touch or the keyboard.\n * `disabled` | Set when the button is disabled.\n * `focus-ring` | Set when the button is focused using the keyboard.\n * `focused` | Set when the button is focused.\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ButtonMixin\n * @mixes ControllerMixin\n * @mixes ElementMixin\n * @mixes ThemableMixin\n */\nclass Button extends ButtonMixin(ElementMixin(ThemableMixin(ControllerMixin(PolymerElement)))) {\n static get is() {\n return 'vaadin-button';\n }\n\n static get template() {\n return buttonTemplate(html);\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(Button);\n\nexport { Button };\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 { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst button = css`\n :host {\n /* Sizing */\n --lumo-button-size: var(--lumo-size-m);\n min-width: var(--vaadin-button-min-width, calc(var(--_button-size) * 2));\n height: var(--_button-size);\n padding: var(--vaadin-button-padding, 0 calc(var(--_button-size) / 3 + var(--lumo-border-radius-m) / 2));\n margin: var(--vaadin-button-margin, var(--lumo-space-xs) 0);\n box-sizing: border-box;\n /* Style */\n font-family: var(--lumo-font-family);\n font-size: var(--vaadin-button-font-size, var(--lumo-font-size-m));\n font-weight: var(--vaadin-button-font-weight, 500);\n color: var(--_lumo-button-text-color);\n background: var(--_lumo-button-background);\n border: var(--vaadin-button-border, none);\n border-radius: var(--vaadin-button-border-radius, var(--lumo-border-radius-m));\n cursor: var(--lumo-clickable-cursor);\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n flex-shrink: 0;\n --_button-size: var(--vaadin-button-height, var(--lumo-button-size));\n --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));\n --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);\n /* Used by notification */\n --_lumo-button-background: var(--vaadin-button-background, var(--lumo-contrast-5pct));\n --_lumo-button-text-color: var(--vaadin-button-text-color, var(--lumo-primary-text-color));\n --_lumo-button-primary-background: var(--vaadin-button-primary-background, var(--lumo-primary-color));\n --_lumo-button-primary-text-color: var(--vaadin-button-primary-text-color, var(--lumo-primary-contrast-color));\n }\n\n /* Set only for the internal parts so we don't affect the host vertical alignment */\n [part='label'],\n [part='prefix'],\n [part='suffix'] {\n line-height: var(--lumo-line-height-xs);\n }\n\n [part='label'] {\n padding: calc(var(--lumo-button-size) / 6) 0;\n }\n\n :host([theme~='small']) {\n font-size: var(--lumo-font-size-s);\n --lumo-button-size: var(--lumo-size-s);\n }\n\n :host([theme~='large']) {\n font-size: var(--lumo-font-size-l);\n --lumo-button-size: var(--lumo-size-l);\n }\n\n /* For interaction states */\n :host::before,\n :host::after {\n content: '';\n /* We rely on the host always being relative */\n position: absolute;\n z-index: 1;\n inset: 0;\n background-color: currentColor;\n border-radius: inherit;\n opacity: 0;\n pointer-events: none;\n }\n\n /* Hover */\n\n @media (any-hover: hover) {\n :host(:hover)::before {\n opacity: 0.02;\n }\n }\n\n /* Active */\n\n :host::after {\n transition: opacity 1.4s, transform 0.1s;\n filter: blur(8px);\n }\n\n :host([active])::before {\n opacity: 0.05;\n transition-duration: 0s;\n }\n\n :host([active])::after {\n opacity: 0.1;\n transition-duration: 0s, 0s;\n transform: scale(0);\n }\n\n /* Keyboard focus */\n\n :host([focus-ring]) {\n box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);\n }\n\n :host([theme~='primary'][focus-ring]) {\n box-shadow: 0 0 0 1px var(--lumo-base-color), 0 0 0 3px var(--lumo-primary-color-50pct);\n }\n\n /* Types (primary, tertiary, tertiary-inline */\n\n :host([theme~='tertiary']),\n :host([theme~='tertiary-inline']) {\n --_background: transparent !important;\n background: var(--vaadin-button-tertiary-background, var(--_background));\n min-width: 0;\n }\n\n :host([theme~='tertiary']) {\n border: var(--vaadin-button-tertiary-border, none);\n color: var(--vaadin-button-tertiary-text-color, var(--lumo-primary-text-color));\n font-weight: var(--vaadin-button-tertiary-font-weight, 500);\n padding: var(--vaadin-button-tertiary-padding, 0 calc(var(--_button-size) / 6));\n }\n\n :host([theme~='tertiary-inline'])::before {\n display: none;\n }\n\n :host([theme~='tertiary-inline']) {\n margin: 0;\n height: auto;\n padding: 0;\n line-height: inherit;\n font-size: inherit;\n }\n\n :host([theme~='tertiary-inline']) [part='label'] {\n padding: 0;\n overflow: visible;\n line-height: inherit;\n }\n\n :host([theme~='primary']) {\n background: var(--_lumo-button-primary-background);\n border: var(--vaadin-button-primary-border, none);\n color: var(--_lumo-button-primary-text-color);\n font-weight: var(--vaadin-button-primary-font-weight, 600);\n min-width: calc(var(--lumo-button-size) * 2.5);\n }\n\n :host([theme~='primary'])::before {\n background-color: black;\n }\n\n @media (any-hover: hover) {\n :host([theme~='primary']:hover)::before {\n opacity: 0.05;\n }\n }\n\n :host([theme~='primary'][active])::before {\n opacity: 0.1;\n }\n\n :host([theme~='primary'][active])::after {\n opacity: 0.2;\n }\n\n /* Colors (success, error, contrast) */\n\n :host([theme~='success']) {\n color: var(--lumo-success-text-color);\n }\n\n :host([theme~='success'][theme~='primary']) {\n background-color: var(--lumo-success-color);\n color: var(--lumo-success-contrast-color);\n }\n\n :host([theme~='error']) {\n color: var(--lumo-error-text-color);\n }\n\n :host([theme~='error'][theme~='primary']) {\n background-color: var(--lumo-error-color);\n color: var(--lumo-error-contrast-color);\n }\n\n :host([theme~='contrast']) {\n color: var(--lumo-contrast);\n }\n\n :host([theme~='contrast'][theme~='primary']) {\n background-color: var(--lumo-contrast);\n color: var(--lumo-base-color);\n }\n\n /* Disabled state. Keep selectors after other color variants. */\n\n :host([disabled]) {\n pointer-events: none;\n color: var(--lumo-disabled-text-color);\n }\n\n :host([theme~='primary'][disabled]) {\n background-color: var(--lumo-contrast-30pct);\n color: var(--lumo-base-color);\n }\n\n :host([theme~='primary'][disabled]) [part] {\n opacity: 0.7;\n }\n\n /* Icons */\n\n [part] ::slotted(vaadin-icon) {\n display: inline-block;\n width: var(--lumo-icon-size-m);\n height: var(--lumo-icon-size-m);\n }\n\n /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */\n [part] ::slotted(vaadin-icon[icon^='vaadin:']) {\n padding: 0.25em;\n box-sizing: border-box !important;\n }\n\n [part='prefix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n [part='suffix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n /* Icon-only */\n\n :host([theme~='icon']:not([theme~='tertiary-inline'])) {\n min-width: var(--lumo-button-size);\n padding-left: calc(var(--lumo-button-size) / 4);\n padding-right: calc(var(--lumo-button-size) / 4);\n }\n\n :host([theme~='icon']) [part='prefix'],\n :host([theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n\n /* RTL specific styles */\n\n :host([dir='rtl']) [part='prefix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n :host([dir='rtl']) [part='suffix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n :host([dir='rtl'][theme~='icon']) [part='prefix'],\n :host([dir='rtl'][theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n`;\n\nregisterStyles('vaadin-button', button, { moduleId: 'lumo-button' });\n\nexport { button };\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 { SlotController } from '@vaadin/component-base/src/slot-controller.js';\n\n/**\n * A controller to create and initialize slotted `<input>` element.\n */\nexport class InputController extends SlotController {\n constructor(host, callback) {\n super(host, 'input', 'input', {\n initializer: (node, host) => {\n if (host.value) {\n node.value = host.value;\n }\n if (host.type) {\n node.setAttribute('type', host.type);\n }\n\n // Ensure every instance has unique ID\n node.id = this.defaultId;\n\n if (typeof callback === 'function') {\n callback(node);\n }\n },\n useUniqueId: true,\n });\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 { InputControlMixin } from './input-control-mixin.js';\n\n/**\n * A mixin to provide logic for vaadin-text-field and related components.\n *\n * @polymerMixin\n * @mixes InputControlMixin\n */\nexport const InputFieldMixin = (superclass) =>\n class InputFieldMixinClass extends InputControlMixin(superclass) {\n static get properties() {\n return {\n /**\n * Whether the value of the control can be automatically completed by the browser.\n * List of available options at:\n * https://developer.mozilla.org/en/docs/Web/HTML/Element/input#attr-autocomplete\n */\n autocomplete: {\n type: String,\n },\n\n /**\n * This is a property supported by Safari that is used to control whether\n * autocorrection should be enabled when the user is entering/editing the text.\n * Possible values are:\n * on: Enable autocorrection.\n * off: Disable autocorrection.\n */\n autocorrect: {\n type: String,\n },\n\n /**\n * This is a property supported by Safari and Chrome that is used to control whether\n * autocapitalization should be enabled when the user is entering/editing the text.\n * Possible values are:\n * characters: Characters capitalization.\n * words: Words capitalization.\n * sentences: Sentences capitalization.\n * none: No capitalization.\n */\n autocapitalize: {\n type: String,\n reflectToAttribute: true,\n },\n };\n }\n\n static get delegateAttrs() {\n return [...super.delegateAttrs, 'autocapitalize', 'autocomplete', 'autocorrect'];\n }\n\n // Workaround for https://github.com/Polymer/polymer/issues/5259\n get __data() {\n return this.__dataValue || {};\n }\n\n set __data(value) {\n this.__dataValue = value;\n }\n\n /**\n * @param {HTMLElement} input\n * @protected\n * @override\n */\n _inputElementChanged(input) {\n super._inputElementChanged(input);\n\n if (input) {\n // Discard value set on the custom slotted input.\n if (input.value && input.value !== this.value) {\n console.warn(`Please define value on the <${this.localName}> component!`);\n input.value = '';\n }\n\n if (this.value) {\n input.value = this.value;\n }\n }\n }\n\n /**\n * Override an event listener from `FocusMixin`.\n * @param {boolean} focused\n * @protected\n * @override\n */\n _setFocused(focused) {\n super._setFocused(focused);\n\n // Do not validate when focusout is caused by document\n // losing focus, which happens on browser tab switch.\n if (!focused && document.hasFocus()) {\n this.validate();\n }\n }\n\n /**\n * Override an event listener from `InputMixin`\n * to mark as valid after user started typing.\n * @param {Event} event\n * @protected\n * @override\n */\n _onInput(event) {\n super._onInput(event);\n\n if (this.invalid) {\n this.validate();\n }\n }\n\n /**\n * Override an observer from `InputMixin` to validate the field\n * when a new value is set programmatically.\n *\n * @param {string | undefined} newValue\n * @param {string | undefined} oldValue\n * @protected\n * @override\n */\n _valueChanged(newValue, oldValue) {\n super._valueChanged(newValue, oldValue);\n\n if (oldValue === undefined) {\n return;\n }\n\n if (this.invalid) {\n this.validate();\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { button } from '@vaadin/button/theme/lumo/vaadin-button-styles.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst passwordFieldButton = css`\n :host {\n position: absolute;\n right: 0;\n top: 0;\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n background: transparent;\n outline: none;\n }\n`;\n\nregisterStyles('vaadin-password-field-button', [button, passwordFieldButton], {\n moduleId: 'lumo-password-field-button',\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 '@vaadin/vaadin-lumo-styles/font-icons.js';\nimport '@vaadin/vaadin-lumo-styles/sizing.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport { inputFieldShared } from '@vaadin/vaadin-lumo-styles/mixins/input-field-shared.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst passwordField = css`\n [part='reveal-button']::before {\n content: var(--lumo-icons-eye);\n }\n\n :host([password-visible]) [part='reveal-button']::before {\n content: var(--lumo-icons-eye-disabled);\n }\n\n /* Make it easy to hide the button across the whole app */\n [part='reveal-button'] {\n position: relative;\n display: var(--lumo-password-field-reveal-button-display, block);\n }\n\n [part='reveal-button'][hidden] {\n display: none !important;\n }\n`;\n\nregisterStyles('vaadin-password-field', [inputFieldShared, passwordField], { moduleId: 'lumo-password-field' });\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 { html } from '@polymer/polymer/polymer-element.js';\nimport { Button } from '@vaadin/button/src/vaadin-button.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\n\n/**\n * An element used internally by `<vaadin-password-field>`. Not intended to be used separately.\n *\n * @customElement\n * @extends Button\n * @private\n */\nclass PasswordFieldButton extends Button {\n static get is() {\n return 'vaadin-password-field-button';\n }\n\n static get template() {\n return html`\n <style>\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n </style>\n <slot name=\"tooltip\"></slot>\n `;\n }\n}\n\ndefineCustomElement(PasswordFieldButton);\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 './vaadin-password-field-button.js';\nimport { html } from '@polymer/polymer/lib/utils/html-tag.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { SlotController } from '@vaadin/component-base/src/slot-controller.js';\nimport { TextField } from '@vaadin/text-field/src/vaadin-text-field.js';\n\nconst ownTemplate = html`\n <div part=\"reveal-button\" slot=\"suffix\">\n <slot name=\"reveal\"></slot>\n </div>\n`;\n\nlet memoizedTemplate;\n\n/**\n * `<vaadin-password-field>` is an extension of `<vaadin-text-field>` component for entering passwords.\n *\n * ```html\n * <vaadin-password-field label=\"Password\"></vaadin-password-field>\n * ```\n *\n * ### Styling\n *\n * `<vaadin-password-field>` provides the same set of shadow DOM parts and state attributes as `<vaadin-text-field>`.\n * See [`<vaadin-text-field>`](#/elements/vaadin-text-field) for the styling documentation.\n *\n * In addition to `<vaadin-text-field>` parts, the following parts are available for theming:\n *\n * Part name | Description\n * ----------------|----------------------------------------------------\n * `reveal-button` | The eye icon which toggles the password visibility\n *\n * In addition to `<vaadin-text-field>` state attributes, the following state attributes are available for theming:\n *\n * Attribute | Description\n * -------------------|---------------------------------\n * `password-visible` | Set when the password is visible\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @fires {Event} input - Fired when the value is changed by the user: on every typing keystroke, and the value is cleared using the clear button.\n * @fires {Event} change - Fired when the user commits a value change.\n * @fires {CustomEvent} invalid-changed - Fired when the `invalid` property changes.\n * @fires {CustomEvent} value-changed - Fired when the `value` property changes.\n * @fires {CustomEvent} validated - Fired whenever the field is validated.\n *\n * @customElement\n * @extends TextField\n */\nexport class PasswordField extends TextField {\n static get is() {\n return 'vaadin-password-field';\n }\n\n static get template() {\n if (!memoizedTemplate) {\n // Clone the superclass template\n memoizedTemplate = super.template.cloneNode(true);\n\n // Retrieve this element's dom-module template\n const revealButton = ownTemplate.content.querySelector('[part=\"reveal-button\"]');\n\n // Append reveal-button and styles to the text-field template\n const inputField = memoizedTemplate.content.querySelector('[part=\"input-field\"]');\n inputField.appendChild(revealButton);\n }\n\n return memoizedTemplate;\n }\n\n static get properties() {\n return {\n /**\n * Set to true to hide the eye icon which toggles the password visibility.\n * @attr {boolean} reveal-button-hidden\n */\n revealButtonHidden: {\n type: Boolean,\n observer: '_revealButtonHiddenChanged',\n value: false,\n },\n\n /**\n * True if the password is visible ([type=text]).\n * @attr {boolean} password-visible\n */\n passwordVisible: {\n type: Boolean,\n value: false,\n reflectToAttribute: true,\n observer: '_passwordVisibleChanged',\n readOnly: true,\n },\n\n /**\n * An object with translated strings used for localization.\n * It has the following structure and default values:\n *\n * ```\n * {\n * // Translation of the reveal icon button accessible label\n * reveal: 'Show password'\n * }\n * ```\n */\n i18n: {\n type: Object,\n value: () => {\n return {\n reveal: 'Show password',\n };\n },\n },\n };\n }\n\n static get observers() {\n return ['__i18nChanged(i18n.*)'];\n }\n\n constructor() {\n super();\n this._setType('password');\n this.__boundRevealButtonClick = this._onRevealButtonClick.bind(this);\n this.__boundRevealButtonMouseDown = this._onRevealButtonMouseDown.bind(this);\n this.__lastChange = '';\n }\n\n /** @protected */\n get slotStyles() {\n const tag = this.localName;\n return [\n ...super.slotStyles,\n `\n ${tag} [slot=\"input\"]::-ms-reveal {\n display: none;\n }\n `,\n ];\n }\n\n /** @protected */\n get _revealNode() {\n return this._revealButtonController && this._revealButtonController.node;\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._revealPart = this.shadowRoot.querySelector('[part=\"reveal-button\"]');\n\n this._revealButtonController = new SlotController(this, 'reveal', 'vaadin-password-field-button', {\n initializer: (btn) => {\n btn.disabled = this.disabled;\n\n btn.addEventListener('click', this.__boundRevealButtonClick);\n btn.addEventListener('mousedown', this.__boundRevealButtonMouseDown);\n },\n });\n this.addController(this._revealButtonController);\n\n this.__updateAriaLabel(this.i18n);\n\n this._updateToggleState(false);\n this._toggleRevealHidden(this.revealButtonHidden);\n\n if (this.inputElement) {\n this.inputElement.autocapitalize = 'off';\n }\n }\n\n /**\n * Override an event listener inherited from `InputControlMixin`\n * to store the value at the moment of the native `change` event.\n * @param {Event} event\n * @protected\n * @override\n */\n _onChange(event) {\n super._onChange(event);\n\n this.__lastChange = this.inputElement.value;\n }\n\n /**\n * Override method inherited from `FocusMixin` to mark field as focused\n * when focus moves to the reveal button using Shift Tab.\n * @param {Event} event\n * @return {boolean}\n * @protected\n */\n _shouldSetFocus(event) {\n return event.target === this.inputElement || event.target === this._revealNode;\n }\n\n /**\n * Override method inherited from `FocusMixin` to not hide password\n * when focus moves to the reveal button or back to the input.\n * @param {Event} event\n * @return {boolean}\n * @protected\n */\n _shouldRemoveFocus(event) {\n return !(\n event.relatedTarget === this._revealNode ||\n (event.relatedTarget === this.inputElement && event.target === this._revealNode)\n );\n }\n\n /**\n * Override method inherited from `FocusMixin` to toggle password visibility.\n * @param {boolean} focused\n * @protected\n * @override\n */\n _setFocused(focused) {\n super._setFocused(focused);\n\n if (!focused) {\n this._setPasswordVisible(false);\n\n // Detect if `focusout` was prevented and if so, dispatch `change` event manually.\n if (this.__lastChange !== this.inputElement.value) {\n this.__lastChange = this.inputElement.value;\n this.dispatchEvent(new CustomEvent('change', { bubbles: true }));\n }\n } else {\n const isButtonFocused = this.getRootNode().activeElement === this._revealNode;\n // Remove focus-ring from the field when the reveal button gets focused\n this.toggleAttribute('focus-ring', this._keyboardActive && !isButtonFocused);\n }\n }\n\n /** @private */\n __updateAriaLabel(i18n) {\n if (i18n.reveal && this._revealNode) {\n this._revealNode.setAttribute('aria-label', i18n.reveal);\n }\n }\n\n /** @private */\n __i18nChanged(i18n) {\n this.__updateAriaLabel(i18n.base);\n }\n\n /** @private */\n _revealButtonHiddenChanged(hidden) {\n this._toggleRevealHidden(hidden);\n }\n\n /** @private */\n _togglePasswordVisibility() {\n this._setPasswordVisible(!this.passwordVisible);\n }\n\n /** @private */\n _onRevealButtonClick() {\n this._togglePasswordVisibility();\n }\n\n /** @private */\n _onRevealButtonMouseDown(e) {\n // Cancel the following focusout event\n e.preventDefault();\n\n // Focus the input to avoid problem with password still visible\n // when user clicks the reveal button and then clicks outside.\n this.inputElement.focus();\n }\n\n /** @private */\n _toggleRevealHidden(hidden) {\n if (this._revealNode) {\n if (hidden) {\n this._revealPart.setAttribute('hidden', '');\n this._revealNode.setAttribute('tabindex', '-1');\n this._revealNode.setAttribute('aria-hidden', 'true');\n } else {\n this._revealPart.removeAttribute('hidden');\n this._revealNode.setAttribute('tabindex', '0');\n this._revealNode.removeAttribute('aria-hidden');\n }\n }\n }\n\n /** @private */\n _updateToggleState(passwordVisible) {\n if (this._revealNode) {\n this._revealNode.setAttribute('aria-pressed', passwordVisible ? 'true' : 'false');\n }\n }\n\n /** @private */\n _passwordVisibleChanged(passwordVisible) {\n this._setType(passwordVisible ? 'text' : 'password');\n\n this._updateToggleState(passwordVisible);\n }\n\n /**\n * Override method inherited from `DisabledMixin` to synchronize the reveal button\n * disabled state with the password field disabled state.\n * @param {boolean} disabled\n * @param {boolean} oldDisabled\n * @protected\n */\n _disabledChanged(disabled, oldDisabled) {\n super._disabledChanged(disabled, oldDisabled);\n\n if (this._revealNode) {\n this._revealNode.disabled = disabled;\n }\n }\n}\n\ndefineCustomElement(PasswordField);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { InputController } from '@vaadin/field-base/src/input-controller.js';\nimport { InputFieldMixin } from '@vaadin/field-base/src/input-field-mixin.js';\nimport { LabelledInputController } from '@vaadin/field-base/src/labelled-input-controller.js';\n\n/**\n * A mixin providing common text field functionality.\n *\n * @polymerMixin\n * @mixes InputFieldMixin\n */\nexport const TextFieldMixin = (superClass) =>\n class TextFieldMixinClass extends InputFieldMixin(superClass) {\n static get properties() {\n return {\n /**\n * Maximum number of characters (in Unicode code points) that the user can enter.\n */\n maxlength: {\n type: Number,\n },\n\n /**\n * Minimum number of characters (in Unicode code points) that the user can enter.\n */\n minlength: {\n type: Number,\n },\n\n /**\n * A regular expression that the value is checked against.\n * The pattern must match the entire value, not just some subset.\n */\n pattern: {\n type: String,\n },\n };\n }\n\n static get delegateAttrs() {\n return [...super.delegateAttrs, 'maxlength', 'minlength', 'pattern'];\n }\n\n static get constraints() {\n return [...super.constraints, 'maxlength', 'minlength', 'pattern'];\n }\n\n constructor() {\n super();\n this._setType('text');\n }\n\n /** @protected */\n get clearElement() {\n return this.$.clearButton;\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this.addController(\n new InputController(this, (input) => {\n this._setInputElement(input);\n this._setFocusElement(input);\n this.stateTarget = input;\n this.ariaTarget = input;\n }),\n );\n this.addController(new LabelledInputController(this.inputElement, this._labelController));\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport '@vaadin/input-container/src/vaadin-input-container.js';\nimport { html, PolymerElement } from '@polymer/polymer';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';\nimport { inputFieldShared } from '@vaadin/field-base/src/styles/input-field-shared-styles.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { TextFieldMixin } from './vaadin-text-field-mixin.js';\n\nregisterStyles('vaadin-text-field', inputFieldShared, { moduleId: 'vaadin-text-field-styles' });\n\n/**\n * `<vaadin-text-field>` is a web component that allows the user to input and edit text.\n *\n * ```html\n * <vaadin-text-field label=\"First Name\"></vaadin-text-field>\n * ```\n *\n * ### Prefixes and suffixes\n *\n * These are child elements of a `<vaadin-text-field>` that are displayed\n * inline with the input, before or after.\n * In order for an element to be considered as a prefix, it must have the slot\n * attribute set to `prefix` (and similarly for `suffix`).\n *\n * ```html\n * <vaadin-text-field label=\"Email address\">\n * <div slot=\"prefix\">Sent to:</div>\n * <div slot=\"suffix\">@vaadin.com</div>\n * </vaadin-text-field>\n * ```\n *\n * ### Styling\n *\n * The following custom properties are available for styling:\n *\n * Custom property | Description | Default\n * -------------------------------|----------------------------|---------\n * `--vaadin-field-default-width` | Default width of the field | `12em`\n *\n * The following shadow DOM parts are available for styling:\n *\n * Part name | Description\n * ---------------------|----------------\n * `label` | The label element\n * `input-field` | The element that wraps prefix, value and suffix\n * `clear-button` | The clear button\n * `error-message` | The error message element\n * `helper-text` | The helper text element wrapper\n * `required-indicator` | The `required` state indicator element\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description | Part name\n * --------------------|-------------|------------\n * `disabled` | Set to a disabled text field | :host\n * `has-value` | Set when the element has a value | :host\n * `has-label` | Set when the element has a label | :host\n * `has-helper` | Set when the element has helper text or slot | :host\n * `has-error-message` | Set when the element has an error message | :host\n * `invalid` | Set when the element is invalid | :host\n * `input-prevented` | Temporarily set when invalid input is prevented | :host\n * `focused` | Set when the element is focused | :host\n * `focus-ring` | Set when the element is keyboard focused | :host\n * `readonly` | Set to a readonly text field | :host\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @fires {Event} input - Fired when the value is changed by the user: on every typing keystroke, and the value is cleared using the clear button.\n * @fires {Event} change - Fired when the user commits a value change.\n * @fires {CustomEvent} invalid-changed - Fired when the `invalid` property changes.\n * @fires {CustomEvent} value-changed - Fired when the `value` property changes.\n * @fires {CustomEvent} validated - Fired whenever the field is validated.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ElementMixin\n * @mixes ThemableMixin\n * @mixes TextFieldMixin\n */\nexport class TextField extends TextFieldMixin(ThemableMixin(ElementMixin(PolymerElement))) {\n static get is() {\n return 'vaadin-text-field';\n }\n\n static get template() {\n return html`\n <style>\n [part='input-field'] {\n flex-grow: 0;\n }\n </style>\n\n <div class=\"vaadin-field-container\">\n <div part=\"label\">\n <slot name=\"label\"></slot>\n <span part=\"required-indicator\" aria-hidden=\"true\" on-click=\"focus\"></span>\n </div>\n\n <vaadin-input-container\n part=\"input-field\"\n readonly=\"[[readonly]]\"\n disabled=\"[[disabled]]\"\n invalid=\"[[invalid]]\"\n theme$=\"[[_theme]]\"\n >\n <slot name=\"prefix\" slot=\"prefix\"></slot>\n <slot name=\"input\"></slot>\n <slot name=\"suffix\" slot=\"suffix\"></slot>\n <div id=\"clearButton\" part=\"clear-button\" slot=\"suffix\" aria-hidden=\"true\"></div>\n </vaadin-input-container>\n\n <div part=\"helper-text\">\n <slot name=\"helper\"></slot>\n </div>\n\n <div part=\"error-message\">\n <slot name=\"error-message\"></slot>\n </div>\n </div>\n <slot name=\"tooltip\"></slot>\n `;\n }\n\n static get properties() {\n return {\n /**\n * Maximum number of characters (in Unicode code points) that the user can enter.\n */\n maxlength: {\n type: Number,\n },\n\n /**\n * Minimum number of characters (in Unicode code points) that the user can enter.\n */\n minlength: {\n type: Number,\n },\n };\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._tooltipController = new TooltipController(this);\n this._tooltipController.setPosition('top');\n this._tooltipController.setAriaTarget(this.inputElement);\n this.addController(this._tooltipController);\n }\n}\n\ndefineCustomElement(TextField);\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport '@vaadin/input-container/theme/lumo/vaadin-input-container-styles.js';\nimport { inputFieldShared } from '@vaadin/vaadin-lumo-styles/mixins/input-field-shared.js';\nimport { registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nregisterStyles('vaadin-text-field', inputFieldShared, {\n moduleId: 'lumo-text-field-styles',\n});\n"],"names":["buttonStyles","ButtonMixin","superClass","properties","tabindex","type","Number","value","reflectToAttribute","_activeKeys","ready","super","this","hasAttribute","setAttribute","_onKeyDown","event","altKey","shiftKey","ctrlKey","metaKey","includes","key","preventDefault","click","moduleId","Button","is","template","_tooltipController","addController","button","InputController","constructor","host","callback","initializer","node","id","defaultId","useUniqueId","InputFieldMixin","superclass","autocomplete","String","autocorrect","autocapitalize","delegateAttrs","__data","__dataValue","_inputElementChanged","input","console","warn","localName","_setFocused","focused","document","hasFocus","validate","_onInput","invalid","_valueChanged","newValue","oldValue","undefined","passwordFieldButton","passwordField","PasswordFieldButton","ownTemplate","memoizedTemplate","PasswordField","cloneNode","revealButton","content","querySelector","appendChild","revealButtonHidden","Boolean","observer","passwordVisible","readOnly","i18n","Object","reveal","observers","_setType","__boundRevealButtonClick","_onRevealButtonClick","bind","__boundRevealButtonMouseDown","_onRevealButtonMouseDown","__lastChange","slotStyles","tag","_revealNode","_revealButtonController","_revealPart","shadowRoot","btn","disabled","addEventListener","__updateAriaLabel","_updateToggleState","_toggleRevealHidden","inputElement","_onChange","_shouldSetFocus","target","_shouldRemoveFocus","relatedTarget","isButtonFocused","getRootNode","activeElement","toggleAttribute","_keyboardActive","_setPasswordVisible","dispatchEvent","CustomEvent","bubbles","__i18nChanged","base","_revealButtonHiddenChanged","hidden","_togglePasswordVisibility","e","focus","removeAttribute","_passwordVisibleChanged","_disabledChanged","oldDisabled","TextFieldMixin","maxlength","minlength","pattern","constraints","clearElement","$","clearButton","_setInputElement","_setFocusElement","stateTarget","ariaTarget","_labelController","TextField","setPosition","setAriaTarget"],"sourceRoot":""}
|