@postnord/pn-marketweb-components 3.5.2 → 3.5.3
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/cjs/alert_exclamation_circle-24f29a5b.js +8 -0
- package/cjs/alert_exclamation_circle-24f29a5b.js.map +1 -0
- package/cjs/loader.cjs.js +1 -1
- package/cjs/pn-address-autofill.cjs.entry.js +47 -72
- package/cjs/pn-address-autofill.cjs.entry.js.map +1 -1
- package/cjs/pn-dropdown-choice-adds-row.cjs.entry.js +18 -6
- package/cjs/pn-dropdown-choice-adds-row.cjs.entry.js.map +1 -1
- package/cjs/pn-market-web-components.cjs.js +1 -1
- package/cjs/pn-marketweb-input.cjs.entry.js +2 -4
- package/cjs/pn-marketweb-input.cjs.entry.js.map +1 -1
- package/collection/components/input/pn-address-autofill/pn-address-autofill.css +6 -1
- package/collection/components/input/pn-address-autofill/pn-address-autofill.js +58 -68
- package/collection/components/input/pn-address-autofill/pn-address-autofill.js.map +1 -1
- package/collection/components/input/pn-address-autofill/pn-address-autofill.stories.js +2 -1
- package/collection/components/input/pn-address-autofill/translations.js +6 -3
- package/collection/components/input/pn-address-autofill/translations.js.map +1 -1
- package/collection/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.js +18 -6
- package/collection/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.js.map +1 -1
- package/components/alert_exclamation_circle.js +6 -0
- package/components/alert_exclamation_circle.js.map +1 -0
- package/components/pn-address-autofill.js +48 -72
- package/components/pn-address-autofill.js.map +1 -1
- package/components/pn-dropdown-choice-adds-row.js +18 -6
- package/components/pn-dropdown-choice-adds-row.js.map +1 -1
- package/components/pn-marketweb-input2.js +1 -3
- package/components/pn-marketweb-input2.js.map +1 -1
- package/esm/alert_exclamation_circle-f0fe7c7b.js +6 -0
- package/esm/alert_exclamation_circle-f0fe7c7b.js.map +1 -0
- package/esm/loader.js +1 -1
- package/esm/pn-address-autofill.entry.js +47 -72
- package/esm/pn-address-autofill.entry.js.map +1 -1
- package/esm/pn-dropdown-choice-adds-row.entry.js +18 -6
- package/esm/pn-dropdown-choice-adds-row.entry.js.map +1 -1
- package/esm/pn-market-web-components.js +1 -1
- package/esm/pn-marketweb-input.entry.js +1 -3
- package/esm/pn-marketweb-input.entry.js.map +1 -1
- package/package.json +1 -1
- package/pn-market-web-components/p-0ac30ee9.entry.js +2 -0
- package/pn-market-web-components/p-0ac30ee9.entry.js.map +1 -0
- package/pn-market-web-components/p-15d70aaf.entry.js +2 -0
- package/pn-market-web-components/p-15d70aaf.entry.js.map +1 -0
- package/pn-market-web-components/p-76c2c01f.js +2 -0
- package/pn-market-web-components/p-76c2c01f.js.map +1 -0
- package/pn-market-web-components/p-a11fdf9f.entry.js +2 -0
- package/pn-market-web-components/p-a11fdf9f.entry.js.map +1 -0
- package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
- package/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
- package/types/components/input/pn-address-autofill/pn-address-autofill.d.ts +2 -3
- package/types/components/input/pn-address-autofill/translations.d.ts +3 -0
- package/types/components.d.ts +2 -0
- package/umd/modules/@postnord/web-components/cjs/{angle_down-0b63ebde.js → chevron_down-83e72319.js} +3 -3
- package/umd/modules/@postnord/web-components/cjs/chevron_down-83e72319.js.map +1 -0
- package/umd/modules/@postnord/web-components/cjs/{angle_right-c8c55b43.js → chevron_right-aeb6aef3.js} +5 -5
- package/umd/modules/@postnord/web-components/cjs/chevron_right-aeb6aef3.js.map +1 -0
- package/umd/modules/@postnord/web-components/cjs/loader.cjs.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-accordion-row.cjs.entry.js +2 -2
- package/umd/modules/@postnord/web-components/cjs/pn-accordion-row.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-action-menu.cjs.entry.js +42 -12
- package/umd/modules/@postnord/web-components/cjs/pn-action-menu.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-button_2.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-card.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-checkbox.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-choice-chip.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-counter.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-date-picker.cjs.entry.js +22 -6
- package/umd/modules/@postnord/web-components/cjs/pn-date-picker.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-fieldset.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-file-upload.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-footer.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-header.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-input.cjs.entry.js +2 -2
- package/umd/modules/@postnord/web-components/cjs/pn-modal.cjs.entry.js +21 -7
- package/umd/modules/@postnord/web-components/cjs/pn-modal.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-multiselect.cjs.entry.js +2 -2
- package/umd/modules/@postnord/web-components/cjs/pn-multiselect.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-ocr-search.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-page-nav-dropdown-item.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-page-nav-item.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-page-nav.cjs.entry.js +2 -2
- package/umd/modules/@postnord/web-components/cjs/pn-page-nav.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-pagination.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-progress-bar.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator-step.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator-step.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-progress-stepper.cjs.entry.js +26 -41
- package/umd/modules/@postnord/web-components/cjs/pn-progress-stepper.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-radio-button.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-search-field.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-segment.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-segmented-control.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-select.cjs.entry.js +2 -2
- package/umd/modules/@postnord/web-components/cjs/pn-select.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-tab.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-tablist.cjs.entry.js +2 -2
- package/umd/modules/@postnord/web-components/cjs/pn-tablist.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-text-link.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-textarea.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-tile.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-toast.cjs.entry.js +25 -16
- package/umd/modules/@postnord/web-components/cjs/pn-toast.cjs.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-toggle-switch.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-tooltip.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/pn-zipcode-search.cjs.entry.js +1 -1
- package/umd/modules/@postnord/web-components/cjs/postnord-web-components.cjs.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/buttons/pn-action-menu/pn-action-menu.js +41 -11
- package/umd/modules/@postnord/web-components/collection/components/buttons/pn-action-menu/pn-action-menu.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/content/pn-accordion/row/pn-accordion-row.js +2 -2
- package/umd/modules/@postnord/web-components/collection/components/content/pn-accordion/row/pn-accordion-row.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-modal/pn-modal.css +92 -40
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-modal/pn-modal.js +35 -9
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-modal/pn-modal.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-bar/pn-progress-bar.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-indicator/pn-progress-indicator-step/pn-progress-indicator-step.js +5 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-indicator/pn-progress-indicator-step/pn-progress-indicator-step.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-indicator/pn-progress-indicator.js +5 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-indicator/pn-progress-indicator.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-stepper/pn-progress-stepper.css +85 -9
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-stepper/pn-progress-stepper.js +100 -97
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-stepper/pn-progress-stepper.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-spinner/pn-spinner.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-toast/pn-toast.css +0 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-toast/pn-toast.js +24 -15
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-toast/pn-toast.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/feedback/pn-tooltip/pn-tooltip.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-checkbox/pn-checkbox.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-choice-chip/pn-choice-chip.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-counter/pn-counter.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-date-picker/pn-date-picker.css +2 -3
- package/umd/modules/@postnord/web-components/collection/components/input/pn-date-picker/pn-date-picker.js +22 -6
- package/umd/modules/@postnord/web-components/collection/components/input/pn-date-picker/pn-date-picker.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-fieldset/pn-fieldset.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-file-upload/pn-file-upload.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-input/pn-input.js +2 -2
- package/umd/modules/@postnord/web-components/collection/components/input/pn-multiselect/pn-multiselect.js +2 -2
- package/umd/modules/@postnord/web-components/collection/components/input/pn-multiselect/pn-multiselect.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-radio-button/pn-radio-button.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-search-field/pn-search-field.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-segmented-control/pn-segmented-control.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-segmented-control/segment/pn-segment.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-select/pn-select.js +2 -2
- package/umd/modules/@postnord/web-components/collection/components/input/pn-select/pn-select.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-textarea/pn-textarea.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/input/pn-toggle-switch/pn-toggle-switch.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/layout/pn-header/pn-header.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-card/pn-card.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-footer/pn-footer.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/dropdown-item/pn-page-nav-dropdown-item.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/item/pn-page-nav-item.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/menu/pn-page-nav.js +2 -2
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/menu/pn-page-nav.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-pagination/pn-pagination.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tablist/pn-tablist.js +2 -2
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tablist/pn-tablist.js.map +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tablist/tab/pn-tab.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-text-link/pn-text-link.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tile/pn-tile.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/web-components/pn-ocr-search/pn-ocr-search.js +1 -1
- package/umd/modules/@postnord/web-components/collection/components/web-components/pn-zipcode-search/pn-zipcode-search.js +1 -1
- package/umd/modules/@postnord/web-components/collection/globals/types.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/{angle_down.js → chevron_down.js} +3 -3
- package/umd/modules/@postnord/web-components/components/chevron_down.js.map +1 -0
- package/umd/modules/@postnord/web-components/{esm/angle_right-b52095c9.js → components/chevron_right.js} +4 -4
- package/umd/modules/@postnord/web-components/components/chevron_right.js.map +1 -0
- package/umd/modules/@postnord/web-components/components/pn-accordion-row.js +2 -2
- package/umd/modules/@postnord/web-components/components/pn-accordion-row.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-action-menu.js +42 -12
- package/umd/modules/@postnord/web-components/components/pn-action-menu.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-card.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-checkbox.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-choice-chip.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-counter.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-date-picker.js +23 -7
- package/umd/modules/@postnord/web-components/components/pn-date-picker.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-fieldset.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-file-upload.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-footer.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-header.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-input.js +2 -2
- package/umd/modules/@postnord/web-components/components/pn-modal.js +25 -10
- package/umd/modules/@postnord/web-components/components/pn-modal.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-multiselect.js +2 -2
- package/umd/modules/@postnord/web-components/components/pn-multiselect.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-ocr-search.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-page-nav-dropdown-item.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-page-nav-item.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-page-nav.js +2 -2
- package/umd/modules/@postnord/web-components/components/pn-page-nav.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-pagination.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-progress-bar2.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-progress-indicator-step.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-progress-indicator-step.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-progress-indicator.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-progress-indicator.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-progress-stepper.js +34 -48
- package/umd/modules/@postnord/web-components/components/pn-progress-stepper.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-radio-button.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-search-field2.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-segment.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-segmented-control.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-select2.js +2 -2
- package/umd/modules/@postnord/web-components/components/pn-select2.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-spinner2.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-tab.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-tablist.js +2 -2
- package/umd/modules/@postnord/web-components/components/pn-tablist.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-text-link2.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-textarea.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-tile.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-toast.js +25 -16
- package/umd/modules/@postnord/web-components/components/pn-toast.js.map +1 -1
- package/umd/modules/@postnord/web-components/components/pn-toggle-switch.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-tooltip.js +1 -1
- package/umd/modules/@postnord/web-components/components/pn-zipcode-search.js +1 -1
- package/umd/modules/@postnord/web-components/esm/{angle_down-d788f691.js → chevron_down-6e3fb42f.js} +3 -3
- package/umd/modules/@postnord/web-components/esm/chevron_down-6e3fb42f.js.map +1 -0
- package/umd/modules/@postnord/web-components/{components/angle_right.js → esm/chevron_right-9d9305e8.js} +4 -4
- package/umd/modules/@postnord/web-components/esm/chevron_right-9d9305e8.js.map +1 -0
- package/umd/modules/@postnord/web-components/esm/loader.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-accordion-row.entry.js +2 -2
- package/umd/modules/@postnord/web-components/esm/pn-accordion-row.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-action-menu.entry.js +42 -12
- package/umd/modules/@postnord/web-components/esm/pn-action-menu.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-button_2.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-card.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-checkbox.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-choice-chip.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-counter.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-date-picker.entry.js +23 -7
- package/umd/modules/@postnord/web-components/esm/pn-date-picker.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-fieldset.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-file-upload.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-footer.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-header.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-input.entry.js +2 -2
- package/umd/modules/@postnord/web-components/esm/pn-modal.entry.js +22 -8
- package/umd/modules/@postnord/web-components/esm/pn-modal.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-multiselect.entry.js +2 -2
- package/umd/modules/@postnord/web-components/esm/pn-multiselect.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-ocr-search.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-page-nav-dropdown-item.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-page-nav-item.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-page-nav.entry.js +2 -2
- package/umd/modules/@postnord/web-components/esm/pn-page-nav.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-pagination.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-progress-bar.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-progress-indicator-step.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-progress-indicator-step.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-progress-indicator.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-progress-indicator.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-progress-stepper.entry.js +26 -41
- package/umd/modules/@postnord/web-components/esm/pn-progress-stepper.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-radio-button.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-search-field.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-segment.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-segmented-control.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-select.entry.js +2 -2
- package/umd/modules/@postnord/web-components/esm/pn-select.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-tab.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-tablist.entry.js +2 -2
- package/umd/modules/@postnord/web-components/esm/pn-tablist.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-text-link.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-textarea.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-tile.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-toast.entry.js +25 -16
- package/umd/modules/@postnord/web-components/esm/pn-toast.entry.js.map +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-toggle-switch.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-tooltip.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/pn-zipcode-search.entry.js +1 -1
- package/umd/modules/@postnord/web-components/esm/postnord-web-components.js +1 -1
- package/umd/modules/@postnord/web-components/hydrate/index.js +204 -137
- package/umd/modules/@postnord/web-components/hydrate/index.mjs +204 -137
- package/umd/modules/@postnord/web-components/package.json +16 -14
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-7e88df1f.entry.js → p-01472170.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-ed4271af.entry.js → p-06c7e91b.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-06c7e91b.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-8773152d.entry.js → p-10532427.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-ffe79fa4.entry.js → p-11ef58ab.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-16fb83d9.entry.js +6 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/p-16fb83d9.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-d74ccbb2.entry.js → p-1cd57319.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-adc6404b.entry.js → p-1e7c31ed.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-1e7c31ed.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-c2bbbcaa.entry.js → p-1fe6fc61.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-203ad7de.entry.js → p-23fdc4b6.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-23fdc4b6.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/p-240f6613.entry.js +6 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-7ae9c053.entry.js.map → p-240f6613.entry.js.map} +1 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-4f67fffa.entry.js → p-28357e12.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-28357e12.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-c96ff403.js → p-2f7bb5e8.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-2f7bb5e8.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-5b0000e9.entry.js → p-363f578a.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-c0d19737.entry.js → p-37297b9a.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-49a39ea1.entry.js +6 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/p-49a39ea1.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-bc95d4b0.entry.js → p-49f5fdd2.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-49f5fdd2.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-b556b835.entry.js → p-4d371963.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-ab29b9c0.entry.js → p-4eaab357.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-da713fc1.entry.js → p-5ed7e9b7.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-617a946d.entry.js +6 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/p-617a946d.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-e087c5c5.entry.js → p-63aa3911.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-65ae6360.entry.js +6 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/p-65ae6360.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-bf015c0f.entry.js → p-699b7bde.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-9bc1d14f.entry.js → p-6f9a21be.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-75c5fb41.entry.js +6 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/p-75c5fb41.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-bd14cdca.entry.js → p-8e07bc17.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-7bd6d804.entry.js → p-8eaa2540.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-bf967b50.js → p-99600bc7.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-99600bc7.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-ff068744.entry.js → p-9cecd28d.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-605d99df.entry.js → p-a440734f.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-b9a494ae.entry.js → p-ab553e80.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-936ed2a1.entry.js → p-ae04e001.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-ae04e001.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-a4df55c4.entry.js → p-b202a599.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/p-b83e6373.entry.js +6 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/p-b83e6373.entry.js.map +1 -0
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-fcd5028f.entry.js → p-bdb9bdc3.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-81f9f367.entry.js → p-cebe3a25.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-76b020f0.entry.js → p-d2f7b4a9.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-c45dc75d.entry.js → p-e8050420.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-412fc8d6.entry.js → p-eee2d131.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/{p-d3521b5d.entry.js → p-fb5d6d47.entry.js} +2 -2
- package/umd/modules/@postnord/web-components/postnord-web-components/postnord-web-components.esm.js +1 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/postnord-web-components.esm.js.map +1 -1
- package/umd/modules/@postnord/web-components/types/components/buttons/pn-action-menu/pn-action-menu.d.ts +3 -0
- package/umd/modules/@postnord/web-components/types/components/feedback/pn-modal/pn-modal.d.ts +12 -2
- package/umd/modules/@postnord/web-components/types/components/feedback/pn-progress-indicator/pn-progress-indicator-step/pn-progress-indicator-step.d.ts +4 -0
- package/umd/modules/@postnord/web-components/types/components/feedback/pn-progress-indicator/pn-progress-indicator.d.ts +4 -0
- package/umd/modules/@postnord/web-components/types/components/feedback/pn-progress-stepper/pn-progress-stepper.d.ts +27 -22
- package/umd/modules/@postnord/web-components/types/components/feedback/pn-toast/pn-toast.d.ts +2 -1
- package/umd/modules/@postnord/web-components/types/components.d.ts +60 -12
- package/umd/modules/@postnord/web-components/types/globals/types.d.ts +2 -1
- package/umd/modules/@postnord/web-components/vscode-data.json +7 -3
- package/vscode-data.json +4 -0
- package/pn-market-web-components/p-59cb7166.entry.js +0 -2
- package/pn-market-web-components/p-59cb7166.entry.js.map +0 -1
- package/pn-market-web-components/p-7c3091eb.entry.js +0 -2
- package/pn-market-web-components/p-7c3091eb.entry.js.map +0 -1
- package/pn-market-web-components/p-94a69959.entry.js +0 -2
- package/pn-market-web-components/p-94a69959.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/cjs/angle_down-0b63ebde.js.map +0 -1
- package/umd/modules/@postnord/web-components/cjs/angle_right-c8c55b43.js.map +0 -1
- package/umd/modules/@postnord/web-components/components/angle_down.js.map +0 -1
- package/umd/modules/@postnord/web-components/components/angle_right.js.map +0 -1
- package/umd/modules/@postnord/web-components/esm/angle_down-d788f691.js.map +0 -1
- package/umd/modules/@postnord/web-components/esm/angle_right-b52095c9.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-203ad7de.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-2615282e.entry.js +0 -6
- package/umd/modules/@postnord/web-components/postnord-web-components/p-2615282e.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-3bd59ac8.entry.js +0 -6
- package/umd/modules/@postnord/web-components/postnord-web-components/p-3bd59ac8.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-4f67fffa.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-514107a5.entry.js +0 -6
- package/umd/modules/@postnord/web-components/postnord-web-components/p-514107a5.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-6a30576b.entry.js +0 -6
- package/umd/modules/@postnord/web-components/postnord-web-components/p-6a30576b.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-7ae9c053.entry.js +0 -6
- package/umd/modules/@postnord/web-components/postnord-web-components/p-8bc8f614.entry.js +0 -6
- package/umd/modules/@postnord/web-components/postnord-web-components/p-8bc8f614.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-936ed2a1.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-adc6404b.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-bc95d4b0.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-bf967b50.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-c96ff403.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-ed4271af.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/postnord-web-components/p-fc5f9092.entry.js +0 -6
- package/umd/modules/@postnord/web-components/postnord-web-components/p-fc5f9092.entry.js.map +0 -1
- package/umd/modules/@postnord/web-components/readme.md +0 -32
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-7e88df1f.entry.js.map → p-01472170.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-8773152d.entry.js.map → p-10532427.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-ffe79fa4.entry.js.map → p-11ef58ab.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-d74ccbb2.entry.js.map → p-1cd57319.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-c2bbbcaa.entry.js.map → p-1fe6fc61.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-5b0000e9.entry.js.map → p-363f578a.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-c0d19737.entry.js.map → p-37297b9a.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-b556b835.entry.js.map → p-4d371963.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-ab29b9c0.entry.js.map → p-4eaab357.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-da713fc1.entry.js.map → p-5ed7e9b7.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-e087c5c5.entry.js.map → p-63aa3911.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-bf015c0f.entry.js.map → p-699b7bde.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-9bc1d14f.entry.js.map → p-6f9a21be.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-bd14cdca.entry.js.map → p-8e07bc17.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-7bd6d804.entry.js.map → p-8eaa2540.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-ff068744.entry.js.map → p-9cecd28d.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-605d99df.entry.js.map → p-a440734f.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-b9a494ae.entry.js.map → p-ab553e80.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-a4df55c4.entry.js.map → p-b202a599.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-fcd5028f.entry.js.map → p-bdb9bdc3.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-81f9f367.entry.js.map → p-cebe3a25.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-76b020f0.entry.js.map → p-d2f7b4a9.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-c45dc75d.entry.js.map → p-e8050420.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-412fc8d6.entry.js.map → p-eee2d131.entry.js.map} +0 -0
- /package/umd/modules/@postnord/web-components/postnord-web-components/{p-d3521b5d.entry.js.map → p-fb5d6d47.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pn-date-picker.js","sourceRoot":"","sources":["../../../../src/components/input/pn-date-picker/pn-date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch, Listen } from '@stencil/core';\nimport { PnLanguages, awaitTopbar, uuidv4, en, getTotalHeightOffset, reduceMotion } from '@/index';\n\nimport { translations } from './translations';\n\nimport type {\n DateType,\n GridDate,\n DateObject,\n DateObjectStrict,\n CalendarView,\n PnDatePickerSelectEvent,\n PnDatePickerFocusOptions,\n} from '@/globals/date';\nimport {\n CALENDAR,\n MONTHS,\n YEARS,\n validateDate,\n isBefore,\n isAfter,\n selectedDate,\n getDateObject,\n getDiff,\n getToday,\n getDate,\n getReadableDate,\n getGrid,\n setYear,\n setMonth,\n navigateGrid,\n} from '@/globals/date';\nimport { calendar, arrow_left, arrow_right, pn_return } from 'pn-design-assets/pn-assets/icons.js';\n\nimport type { Dayjs } from 'dayjs';\n\n/**\n * The date picker allows a single or a range of dates to be selected.\n *\n * Based on the `format` prop, separators will automatically be added if you type the date.\n *\n * You can navigate the calendar grid with your keyboard.\n *\n * @nativeInput Use the `input` event to listen to content being modified by the user. It is emitted everytime a user writes or removes content in the input.\n * @nativeChange The `change` event is emitted when the input loses focus, the user clicks `Enter` or makes a selection (such as auto complete or suggestions).\n *\n * @slot chips - Introduce some quick date selectors underneath the calendar grid. Use the `pn-choice-chip` component.\n * @slot helpertext - You can use this slot instead of the prop `helpertext`. Recommended, only if you need to include additional HTML markup. Such as a `pn-text-link`. Use a `span` element to wrap the text and link.\n * @slot error - You can use this slot instead of the prop `error`. Recommended, only if you need to include additional HTML markup. Such as a `pn-text-link`. Use a `span` element to wrap the text and link.\n */\n@Component({\n tag: 'pn-date-picker',\n styleUrl: 'pn-date-picker.scss',\n})\nexport class PnDatePicker {\n id: string = `pn-date-picker-${uuidv4()}`;\n\n idFrom: string = `${this.id}-from`;\n idTo: string = `${this.id}-to`;\n idFromButton: string = `${this.id}-from-button`;\n idToButton: string = `${this.id}-to-button`;\n idHelper: string = `${this.id}-helper`;\n idError: string = `${this.id}-error`;\n idCalendar: string = `${this.id}-calendar`;\n\n calendarElement: HTMLDivElement;\n\n today: Dayjs = getToday();\n animation: Animation;\n\n animationDurationDefault: number = 400;\n animationDuration: number = this.animationDurationDefault;\n\n separators: { index: number; name: string }[] = [];\n separatorRegex: RegExp = /[^a-zA-Z\\d\\s:]/g;\n\n listMonths = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n listWeek = [1, 2, 3, 4, 5, 6, 0];\n\n @Element() hostElement: HTMLElement;\n\n @State() open: boolean = false;\n @State() openUp: boolean = false;\n\n @State() selectingTo: boolean = false;\n\n @State() grid: GridDate;\n\n @State() viewYearStart: number = null;\n\n @State() dateViewYear: number;\n @State() dateViewMonth: number;\n @State() dateViewDate: number;\n\n @State() showHelperSlot: boolean;\n @State() showErrorSlot: boolean;\n\n @State() isClosing = false;\n @State() isExpanding = false;\n\n /** Set a label for the from date. */\n @Prop() labelFrom!: string;\n /** Set a label for the to date. @see {@link range} */\n @Prop() labelTo?: string;\n /** Provide a helpertext for the date input. */\n @Prop() helpertext?: string;\n /** Set a predefined value for the from date. @see {@link format} */\n @Prop({ mutable: true }) start: string = '';\n /**\n * Set a predefined value for the from date.\n *\n * @see {@link range}\n * @see {@link format}\n */\n @Prop({ mutable: true }) end: string = '';\n /**\n * Set the date format of the value.\n *\n * While you can set any date value from the Dayjs documentation,\n * we strongly recommend you pick a simple format that you can also type manually.\n *\n * @see {@link https://day.js.org/docs/en/display/format Day.js format documentation.}\n */\n @Prop() format: string = 'YYYY-MM-DD';\n /** Manually set language; this will be inherited from the topbar. */\n @Prop() language?: PnLanguages = null;\n\n /** Set a custom ID for the calendar. @category HTML attributes */\n @Prop() dateId: string = this.id;\n /** HTML input name @category HTML attributes */\n @Prop() name?: string;\n /**\n * Placeholder for the input field (defaults to the format prop).\n * @see {@link format}\n * @category HTML attributes\n **/\n @Prop() placeholder?: string = this.format;\n /**\n * Placeholder for end date (defaults to the format prop).\n * @see {@link format}\n * @category HTML attributes\n **/\n @Prop() endPlaceholder?: string = this.format;\n /** Set the input `autocomplete` attribute. @category HTML attributes */\n @Prop() autocomplete?: string;\n /** Set the input `list` attribute for the first date input. @category HTML attributes */\n @Prop() list?: string;\n /** Set the input `list` attribute for the second date input. @category HTML attributes */\n @Prop() listEnd?: string;\n /** Set the HTML pattern prop on the input elements. Make sure it matches the format. @category HTML attributes */\n @Prop() pattern?: string;\n\n /** Allow the selection of a date range. @category Features */\n @Prop() range: boolean = false;\n /**\n * Set a limit on how many days one may select.\n * By default, you can select an unlimited range.\n *\n * @todo Create a range limit function.\n * @see {@link range}\n *\n * @category Features\n * @hide true\n **/\n @Prop() rangeLimit?: number;\n /** The calendar grid is shown as default. You can set either `months` or `years` as your first choice. @category Features */\n @Prop({ mutable: true }) view: CalendarView = CALENDAR;\n /** Make the calendar open upwards by default. Opens downwards if there is not enough space. @category Features */\n @Prop() calendarUp: boolean = false;\n /** Show weekend numbers to the left of the calendar grid. @category Features */\n @Prop() weekNumbers: boolean = false;\n /** Disable the automatic insertion of separators when typing in the input. @category Features */\n @Prop() disableTypeAhead: boolean = false;\n /** Remove the option to select dates on weekends. @category Features */\n @Prop() disableWeekends: boolean = false;\n /**\n * Individual dates you want to disable. Use a comma separated string.\n *\n * Remember to use the same format that you have in the `format` prop.\n * @see {@link format}\n * @example \"YYYY-MM-DD,YYYY-MM-DD\"\n * @category Features\n **/\n @Prop() disabledDates?: string;\n /** If you use a format with an unknown length, disable the max length. @category Features */\n @Prop() disableMaxLength?: boolean = false;\n\n /** Set the date picker as required. @category State */\n @Prop() required: boolean = false;\n /** Set the date picker as readonly. @category State */\n @Prop() readonly: boolean = false;\n /** Set the date picker as disabled. @category State */\n @Prop() disabled: boolean = false;\n\n /** Set an error message for the date picker. Overwrites the helpertext if used at the same time. @category Validation */\n @Prop() error?: string;\n /** Trigger the invalid state without an error message. @category Validation */\n @Prop() invalid: boolean = false;\n\n /**\n * Earliest date possible, this will determine how many years back the date picker will show.\n *\n * Remember to use the same format that you have in the `format` prop.\n * @see {@link format}\n * @example \"2024-05-25\"\n * @category Min/max date\n **/\n @Prop({ mutable: true }) minDate?: string = null;\n @Watch('minDate')\n watchMin() {\n if (this.minDate === null) return;\n if (!validateDate(this.minDate, this.format)) this.minDate = null;\n }\n\n /**\n * Latest date possible, this will determine how many years forward the date picker will show.\n *\n * Remember to use the same format that you have in the `format` prop.\n * @see {@link format}\n * @example \"2024-06-25\"\n * @category Min/max date\n **/\n @Prop({ mutable: true }) maxDate?: string = null;\n @Watch('maxDate')\n watchMax() {\n if (this.maxDate === null) return;\n if (!validateDate(this.maxDate, this.format)) this.maxDate = null;\n }\n\n @Watch('start')\n watchValue() {\n if (!validateDate(this.start, this.format)) return this.dateInvalid.emit({ start: this.start });\n\n const { year, month, date } = getDateObject(this.start, this.format);\n\n this.setViewYear({ year });\n this.setViewMonth({ month });\n this.setViewDate({ date });\n\n if (this.range && isAfter(this.start, this.end, this.format, 'date')) {\n this.end = '';\n }\n\n this.emitSelection();\n }\n\n @Watch('end')\n watchValueTo() {\n if (!this.range) return;\n if (!validateDate(this.end, this.format)) return this.dateInvalid.emit({ end: this.end });\n\n const date = getDate(this.end, this.format);\n\n this.setViewYear({ year: date.year() });\n this.setViewMonth({ month: date.month() });\n this.setViewDate({ date: date.date() });\n\n if (isAfter(this.start, this.end, this.format, 'date')) {\n const value = this.start;\n this.start = this.end;\n this.end = value;\n }\n\n this.emitSelection();\n }\n\n @Watch('format')\n handleFormat() {\n this.separators.length = 0;\n this.format\n .split('')\n .forEach((item, index) => this.separatorRegex.exec(item) && this.separators.push({ name: item, index }));\n }\n\n @Watch('id')\n watchId() {\n this.idFrom = `${this.dateId}-from`;\n this.idTo = `${this.dateId}-to`;\n this.idFromButton = `${this.id}-from-button`;\n this.idToButton = `${this.id}-to-button`;\n this.idHelper = `${this.dateId}-helper`;\n this.idError = `${this.dateId}-error`;\n this.idCalendar = `${this.dateId}-calendar`;\n }\n\n @Watch('dateViewYear')\n @Watch('dateViewMonth')\n @Watch('dateViewDate')\n watchView() {\n const data = this.getCurrentDateObject();\n if (validateDate(data, this.format)) this.updateGrid();\n }\n\n @Watch('open')\n watchOpen() {\n this.toggleCalendar.emit(this.open);\n\n this.gridHandler();\n\n if (this.open) this.addGlobalEventListeners();\n else return this.removeGlobalEventListeners();\n\n this.calendarElement.style.removeProperty('--pn-calendar-offset-left');\n\n this.openUp = this.calendarUp;\n\n requestAnimationFrame(() => {\n const rectHost = this.getRect(this.hostElement);\n\n const { scrollHeight } = this.calendarElement;\n const { innerHeight, innerWidth } = window;\n\n const offsetTop = getTotalHeightOffset();\n\n const spaceUpwards = rectHost.y - offsetTop;\n const spaceDownwards = innerHeight - rectHost.bottom;\n\n const fitUpwards = spaceUpwards > scrollHeight;\n const fitDownwards = spaceDownwards > scrollHeight;\n\n const openTop = (this.openUp && (fitUpwards || spaceUpwards > spaceDownwards)) || (!fitDownwards && fitUpwards);\n\n this.openUp = openTop;\n\n // Calc y-axis\n\n const rectCal = this.getRect(this.calendarElement);\n const widthMinusRight = innerWidth - rectCal.right;\n\n const offset = 0 > widthMinusRight ? widthMinusRight - 8 : 0;\n\n this.calendarElement.style.setProperty('--pn-calendar-offset-left', `${Math.floor(offset)}px`);\n });\n }\n\n @Watch('helpertext')\n @Watch('error')\n handleMessage() {\n this.checkSlottedHelper();\n this.checkSlottedError();\n }\n\n @Watch('view')\n handleView() {\n this.currentView.emit(this.view);\n }\n\n /**\n * Use the new `dateSelection`. Its here for compatibility. Will be removed in v8.\n * @deprecated Use the new `dateSelection`. Will be removed in v8.\n **/\n @Event() dateselection: EventEmitter<PnDatePickerSelectEvent>;\n\n /** Emits on valid date selection. Either if the user selects a date in the calendar or writes it manually. */\n @Event() dateSelection: EventEmitter<PnDatePickerSelectEvent>;\n emitSelection() {\n const data: PnDatePickerSelectEvent = {\n start: this.start,\n };\n\n if (this.range) {\n const days = getDiff(this.start, this.end, this.format);\n data.end = this.end;\n data.days = typeof days === 'number' ? days + 1 : null;\n }\n\n this.dateSelection.emit(data);\n this.dateselection.emit(data);\n }\n\n /** Emitted when an invalid value is set. This can only be done if the user writes in the input itself. */\n @Event() dateInvalid: EventEmitter<{ start?: string; end?: string }>;\n\n /** Emitted when the calendar is toggled. */\n @Event() toggleCalendar: EventEmitter<boolean>;\n /** Emmitted when you select a new view. */\n @Event() currentView: EventEmitter<CalendarView>;\n\n /**\n * If the select is open and you resize the window.\n * Remove all css props and disable the animations entierly.\n **/\n @Listen('resize', { target: 'window' })\n handleResize() {\n if (!this.open) return;\n this.toggleGrid(false);\n }\n\n async componentWillLoad() {\n this.watchMin();\n this.watchMax();\n this.watchId();\n\n this.handleFormat();\n this.handleMessage();\n\n const valid = validateDate(this.start || this.end, this.format);\n const data = valid && getDateObject(this.start || this.end, this.format);\n\n const { year, month, date } = getDateObject(this.today);\n\n this.setViewDate({ date: data.date || date });\n this.setViewMonth({ month: data.month || month });\n this.setViewYear({ year: data.year || year });\n\n if (this.language === null) await awaitTopbar(this.hostElement);\n }\n\n // Animation\n\n private gridHandler() {\n if (this.open) this.openGrid();\n else this.closeGrid();\n }\n\n private openGrid() {\n requestAnimationFrame(() => {\n const { clientHeight, scrollHeight } = this.calendarElement;\n const height = this.isClosing ? clientHeight : 0;\n this.calendarElement.style.height = `${scrollHeight}px`;\n\n this.isExpanding = true;\n this.animateGrid(true, `${height}px`, `${this.calendarElement.scrollHeight}px`);\n });\n }\n\n private closeGrid() {\n const { scrollHeight, clientHeight } = this.calendarElement;\n const height = this.isExpanding ? clientHeight : scrollHeight;\n this.calendarElement.style.height = `0px`;\n\n this.isClosing = true;\n this.animateGrid(false, `${height}px`, `0px`);\n }\n\n private animateGrid(open: boolean, startHeight: string, endHeight: string) {\n this.cancelAnimations();\n\n if (reduceMotion()) this.animationDuration = 0;\n else this.animationDuration = this.animationDurationDefault;\n\n this.animation = this.calendarElement.animate(\n {\n height: [startHeight, endHeight],\n },\n {\n duration: this.animationDuration,\n easing: 'cubic-bezier(0.6, 0, 0.2, 1)',\n },\n );\n this.animation.onfinish = () => this.animationFinish();\n this.animation.oncancel = () => (open ? (this.isExpanding = false) : (this.isClosing = false));\n }\n\n private animationFinish() {\n this.cancelAnimations();\n this.calendarElement.style.height = this.isClosing ? '0px' : '';\n this.isClosing = false;\n this.isExpanding = false;\n }\n\n private cancelAnimations() {\n if (this.animation) this.animation.cancel();\n }\n // End of Animation\n\n private globalEvents = (event: PointerEvent | KeyboardEvent) => {\n const target = event.target as HTMLElement;\n const isWithinCalendar = target?.closest(this.hostElement.localName);\n if (!isWithinCalendar) this.toggleGrid(false);\n };\n\n private addGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.addEventListener('click', this.globalEvents);\n }\n\n private removeGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.removeEventListener('click', this.globalEvents);\n }\n\n private translate(prop: string): string {\n return translations?.[prop?.toUpperCase()]?.[this.language || en] || prop?.toUpperCase();\n }\n\n private translateDateText(customDate: DateObject, format: string): string {\n return getReadableDate({ ...this.getCurrentDateObject(), ...customDate }, this.language, format);\n }\n\n private getRect(element: HTMLElement): DOMRect {\n return element.getBoundingClientRect();\n }\n\n private toggleGrid(state?: boolean, selecting?: boolean) {\n this.open = state ?? !this.open;\n this.selectingTo = selecting;\n }\n\n private hasHelperText(): boolean {\n return this.helpertext?.length > 0 || this.showHelperSlot;\n }\n\n /** If any `error` text is present, either via prop/slot. */\n private hasErrorMessage(): boolean {\n return this.error?.length > 0 || this.showErrorSlot;\n }\n\n /** If any `error` is active, either via the prop `invalid` or `error` prop/slot. */\n private hasError(): boolean {\n return this.hasErrorMessage() || this.invalid || this.showErrorSlot;\n }\n\n private checkSlottedHelper() {\n const slottedHelper = this.hostElement.querySelector<HTMLElement>('[slot=helpertext]')?.textContent;\n this.showHelperSlot = !!slottedHelper?.length;\n }\n\n private checkSlottedError() {\n const slottedError = this.hostElement.querySelector<HTMLElement>('[slot=error]')?.textContent;\n this.showErrorSlot = !!slottedError?.length;\n }\n\n private viewingCalendar(): boolean {\n return this.view === CALENDAR;\n }\n\n private viewingMonth(): boolean {\n return this.view === MONTHS;\n }\n\n private viewingYears(): boolean {\n return this.view === YEARS;\n }\n\n private viewType(): DateType {\n return this.viewingCalendar() ? 'date' : this.viewingMonth() ? 'month' : 'year';\n }\n\n private isBeforeMax(data: DateObjectStrict): boolean {\n if (this.maxDate) return isBefore(data, this.maxDate, this.format, this.viewType());\n return true;\n }\n\n private isAfterMin(data: DateObjectStrict): boolean {\n if (this.minDate) return isAfter(data, this.minDate, this.format, this.viewType());\n return true;\n }\n\n private isDisabledWeekend(day: number): boolean {\n if (!this.viewingCalendar()) return false;\n return this.disableWeekends ? day >= 6 : false;\n }\n\n private isDisabledDate(data: DateObjectStrict): boolean {\n if (!this.disabledDates?.length || !this.viewingCalendar()) return false;\n const list = this.disabledDates.split(',');\n return !!list.find(disabledDate => selectedDate(disabledDate, data, this.format, this.viewType()));\n }\n\n private isDisabled(data: DateObjectStrict): {\n disabled: boolean;\n manualDisable: boolean;\n weekendDisable: boolean;\n minMaxDisable: boolean;\n } {\n const isAfterMaxDate = !this.isBeforeMax(data);\n const isBeforeMinDate = !this.isAfterMin(data);\n\n const weekendDisable = this.viewingCalendar() && this.isDisabledWeekend(data.day);\n\n const manualDisable = this.isDisabledDate(data);\n\n const disabled = isAfterMaxDate || isBeforeMinDate || weekendDisable || manualDisable;\n\n return {\n disabled,\n manualDisable,\n weekendDisable,\n minMaxDisable: isAfterMaxDate || isBeforeMinDate,\n };\n }\n\n private updateGrid() {\n this.grid = getGrid(this.dateViewYear, this.dateViewMonth);\n }\n\n private getCurrentViewDate(data: DateObjectStrict = this.getCurrentDateObject()): string {\n return getReadableDate(data, this.language, 'MMMM YYYY');\n }\n\n private isSelected(data: DateObject, to: boolean = false): boolean {\n const value = to ? this.end : this.start;\n return selectedDate(value, this.getCurrentDateObject(data), this.format, this.viewType());\n }\n\n private isToday(data: DateObject): boolean {\n return selectedDate(this.today.format(this.format), this.getCurrentDateObject(data), this.format, this.viewType());\n }\n\n private getCurrentDateObject({\n year = this.dateViewYear,\n month = this.dateViewMonth,\n date = this.dateViewDate,\n day,\n }: DateObject = {}) {\n return {\n year,\n month,\n date,\n day,\n };\n }\n\n /** Handle keyboard navigation in the calendar grid. */\n private calendarKeyboardNavigation(event: KeyboardEvent, data: DateObjectStrict, disabled: boolean = false) {\n const validCodes = [\n 'Enter',\n 'Space',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageDown',\n 'PageUp',\n 'Escape',\n ];\n\n if (!validCodes.includes(event.code)) return;\n\n event.preventDefault();\n if (event.code === 'Escape') return this.toggleGrid(false);\n\n const select = !disabled && event.code.match(/^(Enter|Space)$/);\n\n if (select && this.viewingYears()) return this.setViewYear({ year: data.year, reset: true });\n if (select && this.viewingMonth()) return this.setViewMonth({ month: data.month, grid: true, reset: true });\n if (select && this.viewingCalendar()) return this.setValue(data.date);\n\n const goToDate = this.navDirection(event, data);\n\n if (!goToDate) return;\n\n const { year, month, date } = goToDate;\n\n this.setViewYear({ year });\n this.setViewMonth({ month, grid: true });\n this.setViewDate({ date });\n\n this.resetFocus();\n }\n\n private navDirection(event: KeyboardEvent, data: DateObjectStrict): DateObjectStrict {\n const { code } = event;\n\n const nextDate = navigateGrid(code, data, this.disableWeekends, this.viewType());\n const date = getDateObject(nextDate);\n\n return date;\n }\n\n private getYearGrid(): number[] {\n const list = [];\n\n let oldestInList = this.viewYearStart - 7;\n\n for (let i = 0; 15 > i; i++) {\n list.push(oldestInList++);\n }\n\n return list;\n }\n\n /** Defaults to the calendar view. */\n private setView(view: CalendarView) {\n this.view = view;\n requestAnimationFrame(() => this.focusCalendar());\n }\n\n private setNavView(data: { minus?: boolean; plus?: boolean; grid?: boolean }) {\n if (this.viewingYears()) return this.setViewYear({ ...data, grid: true });\n return this.setViewMonth(data);\n }\n\n private setViewYear({\n year = this.dateViewYear,\n minus = false,\n plus = false,\n reset = false,\n grid = false,\n }: {\n year?: number;\n minus?: boolean;\n plus?: boolean;\n reset?: boolean;\n grid?: boolean;\n }) {\n const nextYear = setYear({ year, minus, plus });\n\n const start = this.viewYearStart;\n const max = start + 7;\n const min = start - 7;\n\n if (grid) {\n const minusVal = this.viewYearStart - 15;\n const plusVal = this.viewYearStart + 15;\n this.viewYearStart = minus ? minusVal : plusVal;\n this.dateViewYear = this.viewYearStart;\n } else this.dateViewYear = nextYear;\n\n if (start === null || nextYear > max || min > nextYear) this.viewYearStart = nextYear;\n\n if (reset) this.setView(CALENDAR);\n }\n\n private setViewMonth({\n month = this.dateViewMonth,\n minus = false,\n plus = false,\n reset = false,\n grid = false,\n }: {\n month?: number;\n minus?: boolean;\n plus?: boolean;\n reset?: boolean;\n grid?: boolean;\n }) {\n const nextMonth = setMonth({ month, minus, plus });\n\n this.dateViewMonth = nextMonth;\n\n if (!grid && month === 0 && minus) this.setViewYear({ minus: true });\n if (!grid && month === 11 && plus) this.setViewYear({ plus: true });\n\n if (reset) this.setView(CALENDAR);\n }\n\n private setViewDate({ date }: { date: number }) {\n this.dateViewDate = date;\n }\n\n private handleSeparator(event: InputEvent) {\n let value = (event.target as HTMLInputElement).value;\n\n const foundSeparator = this.separators.find(({ index }) => index === value.length);\n if (foundSeparator?.name) {\n value += foundSeparator.name;\n }\n\n return value;\n }\n\n private inputHandler(event: InputEvent, to: boolean = false) {\n const propName = to ? 'end' : 'start';\n const value = this.disableTypeAhead ? (event.target as HTMLInputElement).value : this.handleSeparator(event);\n\n this[propName] = value;\n }\n\n private setValue(date: number) {\n const value = getReadableDate(this.getCurrentDateObject({ date }), this.language, this.format);\n\n if (this.selectingTo) this.end = value;\n else this.start = value;\n\n this.setViewDate({ date });\n\n if (!this.range || this.selectingTo) {\n this.toggleGrid(false);\n this.focusToggleCalendarButton();\n }\n\n if (this.range && !this.selectingTo) this.selectingTo = true;\n }\n\n private getDayAttributes(dateObject: DateObject, blank: boolean): { [a: string]: any } {\n const data = this.getCurrentDateObject(dateObject);\n const { disabled } = this.isDisabled(data);\n\n if (blank) return { 'data-blank': true };\n\n function capitalize(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n }\n\n const type = this.viewType();\n const value = data[type];\n\n const disabledProp = type !== 'date' ? 'disabled' : 'aria-disabled';\n const selectedProp = type !== 'date' ? 'aria-pressed' : 'aria-selected';\n\n const selectedFrom = this.isSelected(data);\n const selectedTo = this.isSelected(data, true);\n\n const selected = selectedFrom || selectedTo;\n\n const after = this.range && isAfter(data, this.start, this.format, this.viewType());\n const before = this.range && isBefore(data, this.end, this.format, this.viewType());\n const isBetween = after && before;\n\n const isDisabled = disabled && (type === 'date' || !selected);\n\n const tabbable = this[`dateView${capitalize(type)}`] === value;\n\n const props: { [a: string]: any } = {\n 'onKeyDown': (e: KeyboardEvent) => this.calendarKeyboardNavigation(e, data, isDisabled),\n 'tabindex': tabbable ? '0' : '-1',\n [selectedProp]: (selected || isBetween)?.toString(),\n 'aria-current': this.isToday(data) ? 'date' : null,\n 'data-active': isDisabled ? null : selected,\n 'data-today': this.isToday(data),\n 'data-option': 'true',\n [`data-${type}`]: value,\n [disabledProp]: isDisabled ? 'true' : null,\n };\n\n const singleDate = selectedDate(this.start, this.end, this.format, 'date');\n\n if (this.range && !singleDate) {\n props['data-range'] = isBetween;\n props['data-range-from'] = selectedFrom && this.end !== '';\n props['data-range-to'] = selectedTo && this.start !== '';\n } else {\n props['data-single'] = true;\n }\n\n if (this.viewingCalendar()) props.onClick = () => this.setValue(data.date);\n if (this.viewingMonth()) props.onClick = () => this.setViewMonth({ month: data.month, reset: true });\n if (this.viewingYears()) props.onClick = () => this.setViewYear({ year: data.year, reset: true });\n\n if (isDisabled) delete props.onClick;\n\n return props;\n }\n\n /** Focus the button toggling the calendar. Handles the start/from date on its own. */\n private focusToggleCalendarButton() {\n requestAnimationFrame(() => {\n const id = this.range ? this.idToButton : this.idFromButton;\n this.hostElement.querySelector<HTMLButtonElement>(`#${id}`).focus({ preventScroll: true });\n });\n }\n\n private focusCalendar() {\n requestAnimationFrame(() => {\n const element = this.calendarTabElement({ first: true, grid: true });\n\n element?.focus({ preventScroll: true });\n });\n }\n\n private resetFocus() {\n if (this.open) return this.focusCalendar();\n else this.focusToggleCalendarButton();\n }\n\n private handleButtonBlur(event: KeyboardEvent) {\n if (event.code === 'Escape') {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n if (this.open && event.key === 'Tab') return this.focusCalendar();\n }\n\n /**\n * This function queries all tabbable elements inside the calendar popup.\n * Since we allow slotted content it important that we have a function that takes all elements into account.\n * With the `first` and `grid` argument, you can decide which one you want to get.\n * There are fallbacks so you should never get an empty list of elements.\n */\n private calendarTabElement({ first, grid }: PnDatePickerFocusOptions): HTMLElement {\n const focusableElements = ':is(input, select, button:not([tabindex=\"-1\"]), td[tabindex=\"0\"])';\n const elements = this.calendarElement.querySelectorAll<HTMLElement>(focusableElements);\n const list = Array.from(elements).filter(\n ({ localName, offsetParent }) => focusableElements.includes(localName) && offsetParent !== null,\n );\n\n const gridEl = list.find(({ dataset, tabIndex }) => dataset.option && tabIndex === 0);\n if (grid && gridEl) return gridEl;\n if (first) return list.shift();\n else return list.pop();\n }\n\n /**\n * We need to listen to the `Esc` and `Tab` key for the entire calendar popup.\n * Regardless if you focus the grid, the nav buttons or slotted content,\n * the popup will close if you press `Esc`. We also need to reset the focus when the user tabs.\n */\n private handleCalendarTabEsc(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tabElement = this.calendarTabElement({ first: event.shiftKey });\n\n event.stopImmediatePropagation();\n\n if (event.code === 'Escape') {\n event.preventDefault();\n\n this.toggleGrid(false);\n this.focusToggleCalendarButton();\n return;\n }\n\n if (event.code === 'Tab' && target.isEqualNode(tabElement)) {\n event.preventDefault();\n this.calendarTabElement({ first: !event.shiftKey }).focus({ preventScroll: true });\n }\n }\n\n private ariaDescribedby(): string {\n const list = [];\n if (this.hasErrorMessage()) list.push(this.idError);\n else if (this.hasHelperText()) list.push(this.idHelper);\n return list.length ? list.join(' ') : null;\n }\n\n /** Renders the date calendar grid. */\n private renderDateGrid(): HTMLTableElement {\n return (\n <table role=\"grid\" class=\"pn-date-picker-table\" aria-multiselectable={this.range ? 'true' : null}>\n <caption class=\"pn-date-picker-sr-only\" key={this.getCurrentViewDate()}>\n {this.getCurrentViewDate()}\n </caption>\n <thead class=\"pn-date-picker-thead\">\n <tr class=\"pn-date-picker-tr\">\n {this.weekNumbers && <th class=\"pn-date-picker-th\" scope=\"col\" aria-hidden=\"true\"></th>}\n {this.listWeek.map(index => (\n <th class=\"pn-date-picker-th\" scope=\"col\" abbr={this.translateDateText({ day: index }, 'dddd')}>\n {this.translateDateText({ day: index }, 'ddd')}\n </th>\n ))}\n </tr>\n </thead>\n <tbody class=\"pn-date-picker-tbody\">\n {this.grid?.map(({ week, list }) => (\n <tr key={`${this.dateViewYear}-${week}`} class=\"pn-date-picker-tr\">\n {this.weekNumbers && (\n <td\n class=\"pn-date-picker-td\"\n data-blank\n data-week\n title={`${this.translate('WEEK_NAME')} ${week}`}\n aria-hidden=\"true\"\n >\n <span class=\"pn-date-picker-td-week\">{week}</span>\n </td>\n )}\n {list.map(({ day, date, blank }) => (\n <td\n key={`${this.dateViewYear}-${this.dateViewMonth}-${date}`}\n class=\"pn-date-picker-td\"\n {...this.getDayAttributes({ date, day }, blank)}\n >\n <span class=\"pn-date-picker-td-text\">{date}</span>\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n\n /** Renders the month calendar grid. */\n private renderMonthGrid(): HTMLTableElement {\n return (\n <ul class=\"pn-date-picker-list\">\n {this.listMonths.map(month => (\n <li key={month} class=\"pn-date-picker-item\" data-item=\"month\">\n <button type=\"button\" class=\"pn-date-picker-button\" {...this.getDayAttributes({ month }, false)}>\n <span class=\"pn-date-picker-month\" data-full>\n {this.translateDateText({ month }, 'MMMM')}\n </span>\n <span class=\"pn-date-picker-month\" data-abbr>\n {this.translateDateText({ month }, 'MMM')}\n </span>\n </button>\n </li>\n ))}\n </ul>\n );\n }\n\n /** Renders the year calendar grid. */\n private renderYearGrid(): HTMLTableElement {\n return (\n <ul class=\"pn-date-picker-list\">\n {this.getYearGrid()?.map(year => (\n <li key={year} class=\"pn-date-picker-item\" data-item=\"year\">\n <button type=\"button\" class=\"pn-date-picker-button\" {...this.getDayAttributes({ year }, false)}>\n <span>{year}</span>\n </button>\n </li>\n ))}\n </ul>\n );\n }\n\n private renderInput({ to = false }: { to?: boolean } = {}) {\n const id = to ? this.idTo : this.idFrom;\n const idButton = to ? this.idToButton : this.idFromButton;\n const label = to ? this.labelTo : this.labelFrom;\n const value = to ? this.end : this.start;\n const placeholder = to ? this.endPlaceholder : this.placeholder;\n const list = to ? this.listEnd : this.list;\n\n const editing = this.open ? (this.selectingTo ? to : !to) : false;\n\n const defaultText = this.translate('SELECT_DATE') as string;\n\n const textProp = this.range ? (to ? 'END_' : 'START_') : '';\n const dateText = this.translate(`SELECTED_${textProp}DATE`) as string;\n\n let textButton = defaultText;\n if (value) {\n textButton += `, ${dateText.replace('{date}', value)}`;\n }\n\n const showButton = !(this.disabled || this.readonly);\n\n return (\n <div class=\"pn-date-picker-container\" data-error={this.hasError()}>\n <label class=\"pn-date-picker-label\" htmlFor={id}>\n <span>{label}</span>\n </label>\n <div class=\"pn-date-picker-field\">\n <input\n type=\"text\"\n id={id}\n class=\"pn-date-picker-input\"\n name={this.name}\n placeholder={placeholder}\n autocomplete={this.autocomplete}\n maxlength={this.disableMaxLength ? null : this.format.length}\n list={list}\n pattern={this.pattern}\n value={value}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n aria-describedby={this.ariaDescribedby()}\n aria-invalid={this.hasError()?.toString()}\n onInput={e => this.inputHandler(e, to)}\n data-active={editing}\n />\n {showButton && (\n <pn-button\n class=\"pn-date-picker-toggle\"\n buttonId={idButton}\n icon={calendar}\n iconOnly={true}\n appearance=\"light\"\n arialabel={textButton}\n ariaexpanded={this.open.toString()}\n ariacontrols={this.idCalendar}\n data-active={this.open}\n data-input\n small\n onPnClick={() => this.toggleGrid(null, to)}\n onKeyDown={e => this.handleButtonBlur(e)}\n />\n )}\n </div>\n </div>\n );\n }\n\n render() {\n return (\n <Host>\n <div class=\"pn-date-picker\">\n {this.renderInput()}\n\n {this.range && (\n <div class=\"pn-date-picker-range-icon test\">\n <pn-icon icon={arrow_right} />\n </div>\n )}\n\n {this.range && this.renderInput({ to: this.range })}\n </div>\n\n <div\n id={this.idCalendar}\n class=\"pn-date-picker-calendar\"\n role=\"dialog\"\n aria-label={this.translate('CALENDAR_NAVIGATION')}\n data-open={this.open}\n data-moving={this.isClosing || this.isExpanding}\n data-direction={this.openUp ? 'top' : 'bottom'}\n data-range={this.range}\n style={{ height: '0px' }}\n ref={el => (this.calendarElement = el)}\n onKeyDown={e => this.handleCalendarTabEsc(e)}\n >\n <div class=\"pn-date-picker-wrapper\">\n <nav class=\"pn-date-picker-nav\" aria-labelledby={this.idCalendar}>\n <pn-button\n hidden={this.viewingMonth()}\n small\n appearance=\"light\"\n arialabel={this.translate(`PREVIOUS_${this.viewType().toUpperCase()}`) as string}\n icon={arrow_left}\n iconOnly={true}\n onPnClick={() => this.setNavView({ minus: true })}\n />\n\n <pn-button\n hidden={!this.viewingCalendar()}\n small\n appearance=\"light\"\n onPnClick={() => this.setView(MONTHS)}\n >\n <span class=\"pn-date-picker-month\" data-full>\n {this.translateDateText({ date: 1 }, 'MMMM')}\n </span>\n <span class=\"pn-date-picker-month\" data-abbr>\n {this.translateDateText({ date: 1 }, 'MMM')}\n </span>\n </pn-button>\n\n <h2 hidden={this.viewingCalendar()} class=\"pn-date-picker-title\">\n {this.translate(`SELECT_${this.viewType().toUpperCase()}`)}\n </h2>\n\n <pn-button\n hidden={!this.viewingCalendar()}\n small\n appearance=\"light\"\n onPnClick={() => this.setView(YEARS)}\n >\n <span>{this.dateViewYear}</span>\n </pn-button>\n\n <pn-button\n hidden={this.viewingMonth()}\n small\n appearance=\"light\"\n arialabel={this.translate(`NEXT_${this.viewType().toUpperCase()}`) as string}\n icon={arrow_right}\n iconOnly={true}\n onPnClick={() => this.setNavView({ plus: true })}\n />\n </nav>\n\n {this.viewingYears() && this.renderYearGrid()}\n {this.viewingMonth() && this.renderMonthGrid()}\n {this.viewingCalendar() && this.renderDateGrid()}\n\n <aside class=\"pn-date-picker-chips\">\n <slot name=\"chips\"></slot>\n </aside>\n\n <nav class=\"pn-date-picker-bottom\" hidden={this.viewingCalendar()}>\n <pn-button\n appearance=\"light\"\n variant=\"outlined\"\n small\n icon={pn_return}\n onPnClick={() => this.setView(CALENDAR)}\n >\n <span>{this.translate('GO_CALENDAR')}</span>\n </pn-button>\n </nav>\n </div>\n </div>\n\n <p id={this.idHelper} class=\"pn-date-picker-helpertext\" hidden={!this.hasHelperText() || this.hasError()}>\n <span>{this.helpertext}</span>\n <slot name=\"helpertext\" />\n </p>\n\n <p id={this.idError} class=\"pn-date-picker-error\" role=\"alert\" hidden={!this.hasErrorMessage()}>\n <span>{this.error}</span>\n <slot name=\"error\" />\n </p>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pn-date-picker.js","sourceRoot":"","sources":["../../../../src/components/input/pn-date-picker/pn-date-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAe,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAW9C,OAAO,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,aAAa,EACb,OAAO,EACP,QAAQ,EACR,OAAO,EACP,eAAe,EACf,OAAO,EACP,OAAO,EACP,QAAQ,EACR,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAInG;;;;;;;;;;;;;GAaG;AAKH,MAAM,OAAO,YAAY;;oBA2BE,KAAK;sBACH,KAAK;2BAEA,KAAK;;6BAIJ,IAAI;;;;;;yBAShB,KAAK;2BACH,KAAK;;;;qBASa,EAAE;mBAOJ,EAAE;sBAShB,YAAY;wBAEJ,IAAI;sBAGZ,IAAI,CAAC,EAAE;;2BAQD,IAAI,CAAC,MAAM;8BAMR,IAAI,CAAC,MAAM;;;;;qBAWpB,KAAK;;oBAagB,QAAQ;0BAExB,KAAK;2BAEJ,KAAK;gCAEA,KAAK;+BAEN,KAAK;;gCAWH,KAAK;wBAGd,KAAK;wBAEL,KAAK;wBAEL,KAAK;;uBAKN,KAAK;uBAUY,IAAI;uBAeJ,IAAI;;IAvKhD,EAAE,GAAW,kBAAkB,MAAM,EAAE,EAAE,CAAC;IAE1C,MAAM,GAAW,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC;IACnC,IAAI,GAAW,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC;IAC/B,YAAY,GAAW,GAAG,IAAI,CAAC,EAAE,cAAc,CAAC;IAChD,UAAU,GAAW,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC;IAC5C,QAAQ,GAAW,GAAG,IAAI,CAAC,EAAE,SAAS,CAAC;IACvC,OAAO,GAAW,GAAG,IAAI,CAAC,EAAE,QAAQ,CAAC;IACrC,UAAU,GAAW,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC;IAE3C,eAAe,CAAiB;IAEhC,KAAK,GAAU,QAAQ,EAAE,CAAC;IAC1B,SAAS,CAAY;IAErB,wBAAwB,GAAW,GAAG,CAAC;IACvC,iBAAiB,GAAW,IAAI,CAAC,wBAAwB,CAAC;IAE1D,UAAU,GAAsC,EAAE,CAAC;IACnD,cAAc,GAAW,iBAAiB,CAAC;IAE3C,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtB,WAAW,CAAc;IAkIpC,QAAQ;QACN,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO;QAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACpE,CAAC;IAYD,QAAQ;QACN,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO;QAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACpE,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAEhG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAErE,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAE1F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAExC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;YACtB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM;aACR,KAAK,CAAC,EAAE,CAAC;aACT,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7G,CAAC;IAGD,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,OAAO,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,GAAG,IAAI,CAAC,EAAE,cAAc,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM,SAAS,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,MAAM,WAAW,CAAC;IAC9C,CAAC;IAKD,SAAS;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACzC,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACzD,CAAC;IAGD,SAAS;QACP,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC;;YACzC,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAE9C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAE9B,qBAAqB,CAAC,GAAG,EAAE;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEhD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;YAC9C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE3C,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;YAEzC,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC;YAC5C,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;YAErD,MAAM,UAAU,GAAG,YAAY,GAAG,YAAY,CAAC;YAC/C,MAAM,YAAY,GAAG,cAAc,GAAG,YAAY,CAAC;YAEnD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,YAAY,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC;YAEhH,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YAEtB,yEAAyE;YACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;YAEjC,sEAAsE;YACtE,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;YACpD,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;YAC5C,MAAM,iBAAiB,GAAG,WAAW,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC;YAEtE,0DAA0D;YAC1D,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC;YACvD,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3D,MAAM,YAAY,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC,sBAAsB;YAE3D,IAAI,WAAW,GAAG,iBAAiB,CAAC;YAEpC,4EAA4E;YAC5E,IAAI,gBAAgB,GAAG,YAAY,EAAE,CAAC;gBACpC,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC;YACzC,CAAC;YACD,4DAA4D;iBACvD,IAAI,iBAAiB,GAAG,UAAU,GAAG,EAAE,EAAE,CAAC;gBAC7C,WAAW,GAAG,UAAU,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;IACL,CAAC;IAID,aAAa;QACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAGD,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;QAGI;IACK,aAAa,CAAwC;IAE9D,8GAA8G;IACrG,aAAa,CAAwC;IAC9D,aAAa;QACX,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,0GAA0G;IACjG,WAAW,CAAiD;IAErE,4CAA4C;IACnC,cAAc,CAAwB;IAC/C,2CAA2C;IAClC,WAAW,CAA6B;IAEjD;;;QAGI;IAEJ,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExD,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;YAAE,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,YAAY;IAEJ,WAAW;QACjB,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC;IAEO,QAAQ;QACd,qBAAqB,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,YAAY,IAAI,CAAC;YAExD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS;QACf,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QAC9D,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAE1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAEO,WAAW,CAAC,IAAa,EAAE,WAAmB,EAAE,SAAiB;QACvE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,YAAY,EAAE;YAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;;YAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAE5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAC3C;YACE,MAAM,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;SACjC,EACD;YACE,QAAQ,EAAE,IAAI,CAAC,iBAAiB;YAChC,MAAM,EAAE,8BAA8B;SACvC,CACF,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;IACjG,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAC9C,CAAC;IACD,mBAAmB;IAEX,YAAY,GAAG,CAAC,KAAmC,EAAE,EAAE;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,MAAM,gBAAgB,GAAG,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC;IAEM,uBAAuB;QAC7B,MAAM,IAAI,GAAa,IAAI,CAAC,WAAW,CAAC,WAAW,EAAc,CAAC;QAElE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAEO,0BAA0B;QAChC,MAAM,IAAI,GAAa,IAAI,CAAC,WAAW,CAAC,WAAW,EAAc,CAAC;QAElE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,OAAO,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;IAC3F,CAAC;IAEO,iBAAiB,CAAC,UAAsB,EAAE,MAAc;QAC9D,OAAO,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnG,CAAC;IAEO,OAAO,CAAC,OAAoB;QAClC,OAAO,OAAO,CAAC,qBAAqB,EAAE,CAAC;IACzC,CAAC;IAEO,UAAU,CAAC,KAAe,EAAE,SAAmB;QACrD,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC;IAC5D,CAAC;IAED,4DAA4D;IACpD,eAAe;QACrB,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;IACtD,CAAC;IAED,oFAAoF;IAC5E,QAAQ;QACd,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC;IACtE,CAAC;IAEO,kBAAkB;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAc,mBAAmB,CAAC,EAAE,WAAW,CAAC;QACpG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC;IAChD,CAAC;IAEO,iBAAiB;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAc,cAAc,CAAC,EAAE,WAAW,CAAC;QAC9F,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9C,CAAC;IAEO,eAAe;QACrB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;IAChC,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;IAC9B,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;IAC7B,CAAC;IAEO,QAAQ;QACd,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAClF,CAAC;IAEO,WAAW,CAAC,IAAsB;QACxC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,UAAU,CAAC,IAAsB;QACvC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,iBAAiB,CAAC,GAAW;QACnC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO,KAAK,CAAC;QAC1C,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,CAAC;IAEO,cAAc,CAAC,IAAsB;QAC3C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO,KAAK,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrG,CAAC;IAEO,UAAU,CAAC,IAAsB;QAMvC,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElF,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,cAAc,IAAI,eAAe,IAAI,cAAc,IAAI,aAAa,CAAC;QAEtF,OAAO;YACL,QAAQ;YACR,aAAa;YACb,cAAc;YACd,aAAa,EAAE,cAAc,IAAI,eAAe;SACjD,CAAC;IACJ,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC;IAEO,kBAAkB,CAAC,OAAyB,IAAI,CAAC,oBAAoB,EAAE;QAC7E,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IAEO,UAAU,CAAC,IAAgB,EAAE,KAAc,KAAK;QACtD,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACzC,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC;IAEO,OAAO,CAAC,IAAgB;QAC9B,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrH,CAAC;IAEO,oBAAoB,CAAC,EAC3B,IAAI,GAAG,IAAI,CAAC,YAAY,EACxB,KAAK,GAAG,IAAI,CAAC,aAAa,EAC1B,IAAI,GAAG,IAAI,CAAC,YAAY,EACxB,GAAG,MACW,EAAE;QAChB,OAAO;YACL,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,GAAG;SACJ,CAAC;IACJ,CAAC;IAED,uDAAuD;IAC/C,0BAA0B,CAAC,KAAoB,EAAE,IAAsB,EAAE,WAAoB,KAAK;QACxG,MAAM,UAAU,GAAG;YACjB,OAAO;YACP,OAAO;YACP,YAAY;YACZ,WAAW;YACX,SAAS;YACT,WAAW;YACX,MAAM;YACN,KAAK;YACL,UAAU;YACV,QAAQ;YACR,QAAQ;SACT,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO;QAE7C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEhE,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5G,IAAI,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAEvC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,YAAY,CAAC,KAAoB,EAAE,IAAsB;QAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAEvB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,WAAW;QACjB,MAAM,IAAI,GAAG,EAAE,CAAC;QAEhB,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qCAAqC;IAC7B,OAAO,CAAC,IAAkB;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACpD,CAAC;IAEO,UAAU,CAAC,IAAyD;QAC1E,IAAI,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEO,WAAW,CAAC,EAClB,IAAI,GAAG,IAAI,CAAC,YAAY,EACxB,KAAK,GAAG,KAAK,EACb,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,KAAK,EACb,IAAI,GAAG,KAAK,GAOb;QACC,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;QACtB,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;QAEtB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,CAAC;;YAAM,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAEpC,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,GAAG,GAAG,IAAI,GAAG,GAAG,QAAQ;YAAE,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAEtF,IAAI,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEO,YAAY,CAAC,EACnB,KAAK,GAAG,IAAI,CAAC,aAAa,EAC1B,KAAK,GAAG,KAAK,EACb,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,KAAK,EACb,IAAI,GAAG,KAAK,GAOb;QACC,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAE/B,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK;YAAE,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI;YAAE,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,IAAI,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEO,WAAW,CAAC,EAAE,IAAI,EAAoB;QAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEO,eAAe,CAAC,KAAiB;QACvC,IAAI,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAErD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,cAAc,EAAE,IAAI,EAAE,CAAC;YACzB,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC;QAC/B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,KAAiB,EAAE,KAAc,KAAK;QACzD,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE7G,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IACzB,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE/F,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;;YAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC/D,CAAC;IAEO,gBAAgB,CAAC,UAAsB,EAAE,KAAc;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,KAAK;YAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAEzC,SAAS,UAAU,CAAC,IAAY;YAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,YAAY,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;QACpE,MAAM,YAAY,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;QAExE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,YAAY,IAAI,UAAU,CAAC;QAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,CAAC;QAElC,MAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC;QAE/D,MAAM,KAAK,GAAyB;YAClC,WAAW,EAAE,CAAC,CAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC;YACvF,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YACjC,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,IAAI,SAAS,CAAC,EAAE,QAAQ,EAAE;YACnD,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YAClD,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;YAC3C,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChC,aAAa,EAAE,MAAM;YACrB,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,KAAK;YACvB,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;SAC3C,CAAC;QAEF,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,KAAK,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;YAChC,KAAK,CAAC,iBAAiB,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;YAC3D,KAAK,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,YAAY,EAAE;YAAE,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrG,IAAI,IAAI,CAAC,YAAY,EAAE;YAAE,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAElG,IAAI,UAAU;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QAErC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sFAAsF;IAC9E,yBAAyB;QAC/B,qBAAqB,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,aAAa,CAAoB,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa;QACnB,qBAAqB,CAAC,GAAG,EAAE;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAErE,OAAO,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;;YACtC,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAEO,gBAAgB,CAAC,KAAoB;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAA4B;QAClE,MAAM,iBAAiB,GAAG,mEAAmE,CAAC;QAC9F,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAc,iBAAiB,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CACtC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,KAAK,IAAI,CAChG,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC;QACtF,IAAI,IAAI,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;;YAC1B,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAAC,KAAoB;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtE,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAEjC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC/C,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,uCAAuC;IAC/B,cAAc;QACpB,OAAO,CACL,aAAO,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,sBAAsB,0BAAuB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YAC9F,eAAS,KAAK,EAAC,wBAAwB,EAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,IACnE,IAAI,CAAC,kBAAkB,EAAE,CAClB;YACV,aAAO,KAAK,EAAC,sBAAsB;gBACjC,UAAI,KAAK,EAAC,mBAAmB;oBAC1B,IAAI,CAAC,WAAW,IAAI,UAAI,KAAK,EAAC,mBAAmB,EAAC,KAAK,EAAC,KAAK,iBAAa,MAAM,GAAM;oBACtF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC1B,UAAI,KAAK,EAAC,mBAAmB,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,IAC3F,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAC3C,CACN,CAAC,CACC,CACC;YACR,aAAO,KAAK,EAAC,sBAAsB,IAChC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAClC,UAAI,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,EAAE,KAAK,EAAC,mBAAmB;gBAC/D,IAAI,CAAC,WAAW,IAAI,CACnB,UACE,KAAK,EAAC,mBAAmB,yCAGzB,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,iBACnC,MAAM;oBAElB,YAAM,KAAK,EAAC,wBAAwB,IAAE,IAAI,CAAQ,CAC/C,CACN;gBACA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAClC,UACE,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,EACzD,KAAK,EAAC,mBAAmB,KACrB,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC;oBAE/C,YAAM,KAAK,EAAC,wBAAwB,IAAE,IAAI,CAAQ,CAC/C,CACN,CAAC,CACC,CACN,CAAC,CACI,CACF,CACT,CAAC;IACJ,CAAC;IAED,wCAAwC;IAChC,eAAe;QACrB,OAAO,CACL,UAAI,KAAK,EAAC,qBAAqB,IAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC5B,UAAI,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,qBAAqB,eAAW,OAAO;YAC3D,cAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,uBAAuB,KAAK,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;gBAC7F,YAAM,KAAK,EAAC,sBAAsB,uBAC/B,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CACrC;gBACP,YAAM,KAAK,EAAC,sBAAsB,uBAC/B,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CACpC,CACA,CACN,CACN,CAAC,CACC,CACN,CAAC;IACJ,CAAC;IAED,uCAAuC;IAC/B,cAAc;QACpB,OAAO,CACL,UAAI,KAAK,EAAC,qBAAqB,IAC5B,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC/B,UAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAC,qBAAqB,eAAW,MAAM;YACzD,cAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,uBAAuB,KAAK,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC;gBAC5F,gBAAO,IAAI,CAAQ,CACZ,CACN,CACN,CAAC,CACC,CACN,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,EAAE,EAAE,GAAG,KAAK,KAAuB,EAAE;QACvD,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACxC,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAC1D,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACjD,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACzC,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAChE,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAElE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAW,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,QAAQ,MAAM,CAAW,CAAC;QAEtE,IAAI,UAAU,GAAG,WAAW,CAAC;QAC7B,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErD,OAAO,CACL,WAAK,KAAK,EAAC,0BAA0B,gBAAa,IAAI,CAAC,QAAQ,EAAE;YAC/D,aAAO,KAAK,EAAC,sBAAsB,EAAC,OAAO,EAAE,EAAE;gBAC7C,gBAAO,KAAK,CAAQ,CACd;YACR,WAAK,KAAK,EAAC,sBAAsB;gBAC/B,aACE,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,EAAE,EACN,KAAK,EAAC,sBAAsB,EAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAC5D,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,sBACL,IAAI,CAAC,eAAe,EAAE,kBAC1B,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,EACzC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,iBACzB,OAAO,GACpB;gBACD,UAAU,IAAI,CACb,iBACE,KAAK,EAAC,uBAAuB,EAC7B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,IAAI,EACd,UAAU,EAAC,OAAO,EAClB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAClC,YAAY,EAAE,IAAI,CAAC,UAAU,iBAChB,IAAI,CAAC,IAAI,sBAEtB,KAAK,QACL,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAC1C,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GACxC,CACH,CACG,CACF,CACP,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAC,gBAAgB;gBACxB,IAAI,CAAC,WAAW,EAAE;gBAElB,IAAI,CAAC,KAAK,IAAI,CACb,4DAAK,KAAK,EAAC,gCAAgC;oBACzC,gEAAS,IAAI,EAAE,WAAW,GAAI,CAC1B,CACP;gBAEA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAC/C;YAEN,4DACE,EAAE,EAAE,IAAI,CAAC,UAAU,EACnB,KAAK,EAAC,yBAAyB,EAC/B,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,eACtC,IAAI,CAAC,IAAI,iBACP,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,oBAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,gBAClC,IAAI,CAAC,KAAK,EACtB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EACxB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,EACtC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAE5C,4DAAK,KAAK,EAAC,wBAAwB;oBACjC,4DAAK,KAAK,EAAC,oBAAoB,qBAAkB,IAAI,CAAC,UAAU;wBAC9D,kEACE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAC3B,KAAK,QACL,UAAU,EAAC,OAAO,EAClB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE,CAAW,EAChF,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,IAAI,EACd,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GACjD;wBAEF,kEACE,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,EAC/B,KAAK,QACL,UAAU,EAAC,OAAO,EAClB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;4BAErC,6DAAM,KAAK,EAAC,sBAAsB,uBAC/B,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CACvC;4BACP,6DAAM,KAAK,EAAC,sBAAsB,uBAC/B,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CACtC,CACG;wBAEZ,2DAAI,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAC,sBAAsB,IAC7D,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CACvD;wBAEL,kEACE,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,EAC/B,KAAK,QACL,UAAU,EAAC,OAAO,EAClB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;4BAEpC,+DAAO,IAAI,CAAC,YAAY,CAAQ,CACtB;wBAEZ,kEACE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAC3B,KAAK,QACL,UAAU,EAAC,OAAO,EAClB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE,CAAW,EAC5E,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,IAAI,EACd,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAChD,CACE;oBAEL,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;oBAC5C,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE;oBAC7C,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;oBAEhD,8DAAO,KAAK,EAAC,sBAAsB;wBACjC,6DAAM,IAAI,EAAC,OAAO,GAAQ,CACpB;oBAER,4DAAK,KAAK,EAAC,uBAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE;wBAC/D,kEACE,UAAU,EAAC,OAAO,EAClB,OAAO,EAAC,UAAU,EAClB,KAAK,QACL,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;4BAEvC,+DAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAQ,CAClC,CACR,CACF,CACF;YAEN,0DAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAC,2BAA2B,EAAC,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACtG,+DAAO,IAAI,CAAC,UAAU,CAAQ;gBAC9B,6DAAM,IAAI,EAAC,YAAY,GAAG,CACxB;YAEJ,0DAAG,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAC,sBAAsB,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC5F,+DAAO,IAAI,CAAC,KAAK,CAAQ;gBACzB,6DAAM,IAAI,EAAC,OAAO,GAAG,CACnB,CACC,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch, Listen } from '@stencil/core';\nimport { PnLanguages, awaitTopbar, uuidv4, en, getTotalHeightOffset, reduceMotion, getMenuWidth } from '@/index';\n\nimport { translations } from './translations';\n\nimport type {\n DateType,\n GridDate,\n DateObject,\n DateObjectStrict,\n CalendarView,\n PnDatePickerSelectEvent,\n PnDatePickerFocusOptions,\n} from '@/globals/date';\nimport {\n CALENDAR,\n MONTHS,\n YEARS,\n validateDate,\n isBefore,\n isAfter,\n selectedDate,\n getDateObject,\n getDiff,\n getToday,\n getDate,\n getReadableDate,\n getGrid,\n setYear,\n setMonth,\n navigateGrid,\n} from '@/globals/date';\nimport { calendar, arrow_left, arrow_right, pn_return } from 'pn-design-assets/pn-assets/icons.js';\n\nimport type { Dayjs } from 'dayjs';\n\n/**\n * The date picker allows a single or a range of dates to be selected.\n *\n * Based on the `format` prop, separators will automatically be added if you type the date.\n *\n * You can navigate the calendar grid with your keyboard.\n *\n * @nativeInput Use the `input` event to listen to content being modified by the user. It is emitted everytime a user writes or removes content in the input.\n * @nativeChange The `change` event is emitted when the input loses focus, the user clicks `Enter` or makes a selection (such as auto complete or suggestions).\n *\n * @slot chips - Introduce some quick date selectors underneath the calendar grid. Use the `pn-choice-chip` component.\n * @slot helpertext - You can use this slot instead of the prop `helpertext`. Recommended, only if you need to include additional HTML markup. Such as a `pn-text-link`. Use a `span` element to wrap the text and link.\n * @slot error - You can use this slot instead of the prop `error`. Recommended, only if you need to include additional HTML markup. Such as a `pn-text-link`. Use a `span` element to wrap the text and link.\n */\n@Component({\n tag: 'pn-date-picker',\n styleUrl: 'pn-date-picker.scss',\n})\nexport class PnDatePicker {\n id: string = `pn-date-picker-${uuidv4()}`;\n\n idFrom: string = `${this.id}-from`;\n idTo: string = `${this.id}-to`;\n idFromButton: string = `${this.id}-from-button`;\n idToButton: string = `${this.id}-to-button`;\n idHelper: string = `${this.id}-helper`;\n idError: string = `${this.id}-error`;\n idCalendar: string = `${this.id}-calendar`;\n\n calendarElement: HTMLDivElement;\n\n today: Dayjs = getToday();\n animation: Animation;\n\n animationDurationDefault: number = 400;\n animationDuration: number = this.animationDurationDefault;\n\n separators: { index: number; name: string }[] = [];\n separatorRegex: RegExp = /[^a-zA-Z\\d\\s:]/g;\n\n listMonths = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n listWeek = [1, 2, 3, 4, 5, 6, 0];\n\n @Element() hostElement: HTMLElement;\n\n @State() open: boolean = false;\n @State() openUp: boolean = false;\n\n @State() selectingTo: boolean = false;\n\n @State() grid: GridDate;\n\n @State() viewYearStart: number = null;\n\n @State() dateViewYear: number;\n @State() dateViewMonth: number;\n @State() dateViewDate: number;\n\n @State() showHelperSlot: boolean;\n @State() showErrorSlot: boolean;\n\n @State() isClosing = false;\n @State() isExpanding = false;\n\n /** Set a label for the from date. */\n @Prop() labelFrom!: string;\n /** Set a label for the to date. @see {@link range} */\n @Prop() labelTo?: string;\n /** Provide a helpertext for the date input. */\n @Prop() helpertext?: string;\n /** Set a predefined value for the from date. @see {@link format} */\n @Prop({ mutable: true }) start: string = '';\n /**\n * Set a predefined value for the from date.\n *\n * @see {@link range}\n * @see {@link format}\n */\n @Prop({ mutable: true }) end: string = '';\n /**\n * Set the date format of the value.\n *\n * While you can set any date value from the Dayjs documentation,\n * we strongly recommend you pick a simple format that you can also type manually.\n *\n * @see {@link https://day.js.org/docs/en/display/format Day.js format documentation.}\n */\n @Prop() format: string = 'YYYY-MM-DD';\n /** Manually set language; this will be inherited from the topbar. */\n @Prop() language?: PnLanguages = null;\n\n /** Set a custom ID for the calendar. @category HTML attributes */\n @Prop() dateId: string = this.id;\n /** HTML input name @category HTML attributes */\n @Prop() name?: string;\n /**\n * Placeholder for the input field (defaults to the format prop).\n * @see {@link format}\n * @category HTML attributes\n **/\n @Prop() placeholder?: string = this.format;\n /**\n * Placeholder for end date (defaults to the format prop).\n * @see {@link format}\n * @category HTML attributes\n **/\n @Prop() endPlaceholder?: string = this.format;\n /** Set the input `autocomplete` attribute. @category HTML attributes */\n @Prop() autocomplete?: string;\n /** Set the input `list` attribute for the first date input. @category HTML attributes */\n @Prop() list?: string;\n /** Set the input `list` attribute for the second date input. @category HTML attributes */\n @Prop() listEnd?: string;\n /** Set the HTML pattern prop on the input elements. Make sure it matches the format. @category HTML attributes */\n @Prop() pattern?: string;\n\n /** Allow the selection of a date range. @category Features */\n @Prop() range: boolean = false;\n /**\n * Set a limit on how many days one may select.\n * By default, you can select an unlimited range.\n *\n * @todo Create a range limit function.\n * @see {@link range}\n *\n * @category Features\n * @hide true\n **/\n @Prop() rangeLimit?: number;\n /** The calendar grid is shown as default. You can set either `months` or `years` as your first choice. @category Features */\n @Prop({ mutable: true }) view: CalendarView = CALENDAR;\n /** Make the calendar open upwards by default. Opens downwards if there is not enough space. @category Features */\n @Prop() calendarUp: boolean = false;\n /** Show weekend numbers to the left of the calendar grid. @category Features */\n @Prop() weekNumbers: boolean = false;\n /** Disable the automatic insertion of separators when typing in the input. @category Features */\n @Prop() disableTypeAhead: boolean = false;\n /** Remove the option to select dates on weekends. @category Features */\n @Prop() disableWeekends: boolean = false;\n /**\n * Individual dates you want to disable. Use a comma separated string.\n *\n * Remember to use the same format that you have in the `format` prop.\n * @see {@link format}\n * @example \"YYYY-MM-DD,YYYY-MM-DD\"\n * @category Features\n **/\n @Prop() disabledDates?: string;\n /** If you use a format with an unknown length, disable the max length. @category Features */\n @Prop() disableMaxLength?: boolean = false;\n\n /** Set the date picker as required. @category State */\n @Prop() required: boolean = false;\n /** Set the date picker as readonly. @category State */\n @Prop() readonly: boolean = false;\n /** Set the date picker as disabled. @category State */\n @Prop() disabled: boolean = false;\n\n /** Set an error message for the date picker. Overwrites the helpertext if used at the same time. @category Validation */\n @Prop() error?: string;\n /** Trigger the invalid state without an error message. @category Validation */\n @Prop() invalid: boolean = false;\n\n /**\n * Earliest date possible, this will determine how many years back the date picker will show.\n *\n * Remember to use the same format that you have in the `format` prop.\n * @see {@link format}\n * @example \"2024-05-25\"\n * @category Min/max date\n **/\n @Prop({ mutable: true }) minDate?: string = null;\n @Watch('minDate')\n watchMin() {\n if (this.minDate === null) return;\n if (!validateDate(this.minDate, this.format)) this.minDate = null;\n }\n\n /**\n * Latest date possible, this will determine how many years forward the date picker will show.\n *\n * Remember to use the same format that you have in the `format` prop.\n * @see {@link format}\n * @example \"2024-06-25\"\n * @category Min/max date\n **/\n @Prop({ mutable: true }) maxDate?: string = null;\n @Watch('maxDate')\n watchMax() {\n if (this.maxDate === null) return;\n if (!validateDate(this.maxDate, this.format)) this.maxDate = null;\n }\n\n @Watch('start')\n watchValue() {\n if (!validateDate(this.start, this.format)) return this.dateInvalid.emit({ start: this.start });\n\n const { year, month, date } = getDateObject(this.start, this.format);\n\n this.setViewYear({ year });\n this.setViewMonth({ month });\n this.setViewDate({ date });\n\n if (this.range && isAfter(this.start, this.end, this.format, 'date')) {\n this.end = '';\n }\n\n this.emitSelection();\n }\n\n @Watch('end')\n watchValueTo() {\n if (!this.range) return;\n if (!validateDate(this.end, this.format)) return this.dateInvalid.emit({ end: this.end });\n\n const date = getDate(this.end, this.format);\n\n this.setViewYear({ year: date.year() });\n this.setViewMonth({ month: date.month() });\n this.setViewDate({ date: date.date() });\n\n if (isAfter(this.start, this.end, this.format, 'date')) {\n const value = this.start;\n this.start = this.end;\n this.end = value;\n }\n\n this.emitSelection();\n }\n\n @Watch('format')\n handleFormat() {\n this.separators.length = 0;\n this.format\n .split('')\n .forEach((item, index) => this.separatorRegex.exec(item) && this.separators.push({ name: item, index }));\n }\n\n @Watch('id')\n watchId() {\n this.idFrom = `${this.dateId}-from`;\n this.idTo = `${this.dateId}-to`;\n this.idFromButton = `${this.id}-from-button`;\n this.idToButton = `${this.id}-to-button`;\n this.idHelper = `${this.dateId}-helper`;\n this.idError = `${this.dateId}-error`;\n this.idCalendar = `${this.dateId}-calendar`;\n }\n\n @Watch('dateViewYear')\n @Watch('dateViewMonth')\n @Watch('dateViewDate')\n watchView() {\n const data = this.getCurrentDateObject();\n if (validateDate(data, this.format)) this.updateGrid();\n }\n\n @Watch('open')\n watchOpen() {\n this.toggleCalendar.emit(this.open);\n\n this.gridHandler();\n\n if (this.open) this.addGlobalEventListeners();\n else return this.removeGlobalEventListeners();\n\n this.calendarElement.style.removeProperty('--pn-calendar-offset-left');\n\n this.openUp = this.calendarUp;\n\n requestAnimationFrame(() => {\n const rectHost = this.getRect(this.hostElement);\n\n const { scrollHeight } = this.calendarElement;\n const { innerHeight, innerWidth } = window;\n\n const offsetTop = getTotalHeightOffset();\n\n const spaceUpwards = rectHost.y - offsetTop;\n const spaceDownwards = innerHeight - rectHost.bottom;\n\n const fitUpwards = spaceUpwards > scrollHeight;\n const fitDownwards = spaceDownwards > scrollHeight;\n\n const openTop = (this.openUp && (fitUpwards || spaceUpwards > spaceDownwards)) || (!fitDownwards && fitUpwards);\n\n this.openUp = openTop;\n\n // Calc horizontal positioning - center calendar relative to host element\n const rectCal = this.getRect(this.calendarElement);\n const menuWidth = getMenuWidth();\n\n // Calculate center position: host center minus half of calendar width\n const hostCenterX = rectHost.x + rectHost.width / 2;\n const calendarHalfWidth = rectCal.width / 2;\n const idealCenterOffset = hostCenterX - calendarHalfWidth - rectCal.x;\n\n // Check boundaries, accounting for menu width on the left\n const calendarLeftEdge = rectCal.x + idealCenterOffset;\n const calendarRightEdge = calendarLeftEdge + rectCal.width;\n const leftBoundary = menuWidth + 16; // Menu width + buffer\n\n let finalOffset = idealCenterOffset;\n\n // Adjust if calendar would go beyond left edge of viewport or over the menu\n if (calendarLeftEdge < leftBoundary) {\n finalOffset = leftBoundary - rectCal.x;\n }\n // Adjust if calendar would go beyond right edge of viewport\n else if (calendarRightEdge > innerWidth - 16) {\n finalOffset = innerWidth - 16 - rectCal.width - rectCal.x;\n }\n\n this.calendarElement.style.setProperty('--pn-calendar-offset-left', `${Math.floor(finalOffset)}px`);\n });\n }\n\n @Watch('helpertext')\n @Watch('error')\n handleMessage() {\n this.checkSlottedHelper();\n this.checkSlottedError();\n }\n\n @Watch('view')\n handleView() {\n this.currentView.emit(this.view);\n }\n\n /**\n * Use the new `dateSelection`. Its here for compatibility. Will be removed in v8.\n * @deprecated Use the new `dateSelection`. Will be removed in v8.\n **/\n @Event() dateselection: EventEmitter<PnDatePickerSelectEvent>;\n\n /** Emits on valid date selection. Either if the user selects a date in the calendar or writes it manually. */\n @Event() dateSelection: EventEmitter<PnDatePickerSelectEvent>;\n emitSelection() {\n const data: PnDatePickerSelectEvent = {\n start: this.start,\n };\n\n if (this.range) {\n const days = getDiff(this.start, this.end, this.format);\n data.end = this.end;\n data.days = typeof days === 'number' ? days + 1 : null;\n }\n\n this.dateSelection.emit(data);\n this.dateselection.emit(data);\n }\n\n /** Emitted when an invalid value is set. This can only be done if the user writes in the input itself. */\n @Event() dateInvalid: EventEmitter<{ start?: string; end?: string }>;\n\n /** Emitted when the calendar is toggled. */\n @Event() toggleCalendar: EventEmitter<boolean>;\n /** Emmitted when you select a new view. */\n @Event() currentView: EventEmitter<CalendarView>;\n\n /**\n * If the select is open and you resize the window.\n * Remove all css props and disable the animations entierly.\n **/\n @Listen('resize', { target: 'window' })\n handleResize() {\n if (!this.open) return;\n this.toggleGrid(false);\n }\n\n async componentWillLoad() {\n this.watchMin();\n this.watchMax();\n this.watchId();\n\n this.handleFormat();\n this.handleMessage();\n\n const valid = validateDate(this.start || this.end, this.format);\n const data = valid && getDateObject(this.start || this.end, this.format);\n\n const { year, month, date } = getDateObject(this.today);\n\n this.setViewDate({ date: data.date || date });\n this.setViewMonth({ month: data.month || month });\n this.setViewYear({ year: data.year || year });\n\n if (this.language === null) await awaitTopbar(this.hostElement);\n }\n\n // Animation\n\n private gridHandler() {\n if (this.open) this.openGrid();\n else this.closeGrid();\n }\n\n private openGrid() {\n requestAnimationFrame(() => {\n const { clientHeight, scrollHeight } = this.calendarElement;\n const height = this.isClosing ? clientHeight : 0;\n this.calendarElement.style.height = `${scrollHeight}px`;\n\n this.isExpanding = true;\n this.animateGrid(true, `${height}px`, `${this.calendarElement.scrollHeight}px`);\n });\n }\n\n private closeGrid() {\n const { scrollHeight, clientHeight } = this.calendarElement;\n const height = this.isExpanding ? clientHeight : scrollHeight;\n this.calendarElement.style.height = `0px`;\n\n this.isClosing = true;\n this.animateGrid(false, `${height}px`, `0px`);\n }\n\n private animateGrid(open: boolean, startHeight: string, endHeight: string) {\n this.cancelAnimations();\n\n if (reduceMotion()) this.animationDuration = 0;\n else this.animationDuration = this.animationDurationDefault;\n\n this.animation = this.calendarElement.animate(\n {\n height: [startHeight, endHeight],\n },\n {\n duration: this.animationDuration,\n easing: 'cubic-bezier(0.6, 0, 0.2, 1)',\n },\n );\n this.animation.onfinish = () => this.animationFinish();\n this.animation.oncancel = () => (open ? (this.isExpanding = false) : (this.isClosing = false));\n }\n\n private animationFinish() {\n this.cancelAnimations();\n this.calendarElement.style.height = this.isClosing ? '0px' : '';\n this.isClosing = false;\n this.isExpanding = false;\n }\n\n private cancelAnimations() {\n if (this.animation) this.animation.cancel();\n }\n // End of Animation\n\n private globalEvents = (event: PointerEvent | KeyboardEvent) => {\n const target = event.target as HTMLElement;\n const isWithinCalendar = target?.closest(this.hostElement.localName);\n if (!isWithinCalendar) this.toggleGrid(false);\n };\n\n private addGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.addEventListener('click', this.globalEvents);\n }\n\n private removeGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.removeEventListener('click', this.globalEvents);\n }\n\n private translate(prop: string): string {\n return translations?.[prop?.toUpperCase()]?.[this.language || en] || prop?.toUpperCase();\n }\n\n private translateDateText(customDate: DateObject, format: string): string {\n return getReadableDate({ ...this.getCurrentDateObject(), ...customDate }, this.language, format);\n }\n\n private getRect(element: HTMLElement): DOMRect {\n return element.getBoundingClientRect();\n }\n\n private toggleGrid(state?: boolean, selecting?: boolean) {\n this.open = state ?? !this.open;\n this.selectingTo = selecting;\n }\n\n private hasHelperText(): boolean {\n return this.helpertext?.length > 0 || this.showHelperSlot;\n }\n\n /** If any `error` text is present, either via prop/slot. */\n private hasErrorMessage(): boolean {\n return this.error?.length > 0 || this.showErrorSlot;\n }\n\n /** If any `error` is active, either via the prop `invalid` or `error` prop/slot. */\n private hasError(): boolean {\n return this.hasErrorMessage() || this.invalid || this.showErrorSlot;\n }\n\n private checkSlottedHelper() {\n const slottedHelper = this.hostElement.querySelector<HTMLElement>('[slot=helpertext]')?.textContent;\n this.showHelperSlot = !!slottedHelper?.length;\n }\n\n private checkSlottedError() {\n const slottedError = this.hostElement.querySelector<HTMLElement>('[slot=error]')?.textContent;\n this.showErrorSlot = !!slottedError?.length;\n }\n\n private viewingCalendar(): boolean {\n return this.view === CALENDAR;\n }\n\n private viewingMonth(): boolean {\n return this.view === MONTHS;\n }\n\n private viewingYears(): boolean {\n return this.view === YEARS;\n }\n\n private viewType(): DateType {\n return this.viewingCalendar() ? 'date' : this.viewingMonth() ? 'month' : 'year';\n }\n\n private isBeforeMax(data: DateObjectStrict): boolean {\n if (this.maxDate) return isBefore(data, this.maxDate, this.format, this.viewType());\n return true;\n }\n\n private isAfterMin(data: DateObjectStrict): boolean {\n if (this.minDate) return isAfter(data, this.minDate, this.format, this.viewType());\n return true;\n }\n\n private isDisabledWeekend(day: number): boolean {\n if (!this.viewingCalendar()) return false;\n return this.disableWeekends ? day >= 6 : false;\n }\n\n private isDisabledDate(data: DateObjectStrict): boolean {\n if (!this.disabledDates?.length || !this.viewingCalendar()) return false;\n const list = this.disabledDates.split(',');\n return !!list.find(disabledDate => selectedDate(disabledDate, data, this.format, this.viewType()));\n }\n\n private isDisabled(data: DateObjectStrict): {\n disabled: boolean;\n manualDisable: boolean;\n weekendDisable: boolean;\n minMaxDisable: boolean;\n } {\n const isAfterMaxDate = !this.isBeforeMax(data);\n const isBeforeMinDate = !this.isAfterMin(data);\n\n const weekendDisable = this.viewingCalendar() && this.isDisabledWeekend(data.day);\n\n const manualDisable = this.isDisabledDate(data);\n\n const disabled = isAfterMaxDate || isBeforeMinDate || weekendDisable || manualDisable;\n\n return {\n disabled,\n manualDisable,\n weekendDisable,\n minMaxDisable: isAfterMaxDate || isBeforeMinDate,\n };\n }\n\n private updateGrid() {\n this.grid = getGrid(this.dateViewYear, this.dateViewMonth);\n }\n\n private getCurrentViewDate(data: DateObjectStrict = this.getCurrentDateObject()): string {\n return getReadableDate(data, this.language, 'MMMM YYYY');\n }\n\n private isSelected(data: DateObject, to: boolean = false): boolean {\n const value = to ? this.end : this.start;\n return selectedDate(value, this.getCurrentDateObject(data), this.format, this.viewType());\n }\n\n private isToday(data: DateObject): boolean {\n return selectedDate(this.today.format(this.format), this.getCurrentDateObject(data), this.format, this.viewType());\n }\n\n private getCurrentDateObject({\n year = this.dateViewYear,\n month = this.dateViewMonth,\n date = this.dateViewDate,\n day,\n }: DateObject = {}) {\n return {\n year,\n month,\n date,\n day,\n };\n }\n\n /** Handle keyboard navigation in the calendar grid. */\n private calendarKeyboardNavigation(event: KeyboardEvent, data: DateObjectStrict, disabled: boolean = false) {\n const validCodes = [\n 'Enter',\n 'Space',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageDown',\n 'PageUp',\n 'Escape',\n ];\n\n if (!validCodes.includes(event.code)) return;\n\n event.preventDefault();\n if (event.code === 'Escape') return this.toggleGrid(false);\n\n const select = !disabled && event.code.match(/^(Enter|Space)$/);\n\n if (select && this.viewingYears()) return this.setViewYear({ year: data.year, reset: true });\n if (select && this.viewingMonth()) return this.setViewMonth({ month: data.month, grid: true, reset: true });\n if (select && this.viewingCalendar()) return this.setValue(data.date);\n\n const goToDate = this.navDirection(event, data);\n\n if (!goToDate) return;\n\n const { year, month, date } = goToDate;\n\n this.setViewYear({ year });\n this.setViewMonth({ month, grid: true });\n this.setViewDate({ date });\n\n this.resetFocus();\n }\n\n private navDirection(event: KeyboardEvent, data: DateObjectStrict): DateObjectStrict {\n const { code } = event;\n\n const nextDate = navigateGrid(code, data, this.disableWeekends, this.viewType());\n const date = getDateObject(nextDate);\n\n return date;\n }\n\n private getYearGrid(): number[] {\n const list = [];\n\n let oldestInList = this.viewYearStart - 7;\n\n for (let i = 0; 15 > i; i++) {\n list.push(oldestInList++);\n }\n\n return list;\n }\n\n /** Defaults to the calendar view. */\n private setView(view: CalendarView) {\n this.view = view;\n requestAnimationFrame(() => this.focusCalendar());\n }\n\n private setNavView(data: { minus?: boolean; plus?: boolean; grid?: boolean }) {\n if (this.viewingYears()) return this.setViewYear({ ...data, grid: true });\n return this.setViewMonth(data);\n }\n\n private setViewYear({\n year = this.dateViewYear,\n minus = false,\n plus = false,\n reset = false,\n grid = false,\n }: {\n year?: number;\n minus?: boolean;\n plus?: boolean;\n reset?: boolean;\n grid?: boolean;\n }) {\n const nextYear = setYear({ year, minus, plus });\n\n const start = this.viewYearStart;\n const max = start + 7;\n const min = start - 7;\n\n if (grid) {\n const minusVal = this.viewYearStart - 15;\n const plusVal = this.viewYearStart + 15;\n this.viewYearStart = minus ? minusVal : plusVal;\n this.dateViewYear = this.viewYearStart;\n } else this.dateViewYear = nextYear;\n\n if (start === null || nextYear > max || min > nextYear) this.viewYearStart = nextYear;\n\n if (reset) this.setView(CALENDAR);\n }\n\n private setViewMonth({\n month = this.dateViewMonth,\n minus = false,\n plus = false,\n reset = false,\n grid = false,\n }: {\n month?: number;\n minus?: boolean;\n plus?: boolean;\n reset?: boolean;\n grid?: boolean;\n }) {\n const nextMonth = setMonth({ month, minus, plus });\n\n this.dateViewMonth = nextMonth;\n\n if (!grid && month === 0 && minus) this.setViewYear({ minus: true });\n if (!grid && month === 11 && plus) this.setViewYear({ plus: true });\n\n if (reset) this.setView(CALENDAR);\n }\n\n private setViewDate({ date }: { date: number }) {\n this.dateViewDate = date;\n }\n\n private handleSeparator(event: InputEvent) {\n let value = (event.target as HTMLInputElement).value;\n\n const foundSeparator = this.separators.find(({ index }) => index === value.length);\n if (foundSeparator?.name) {\n value += foundSeparator.name;\n }\n\n return value;\n }\n\n private inputHandler(event: InputEvent, to: boolean = false) {\n const propName = to ? 'end' : 'start';\n const value = this.disableTypeAhead ? (event.target as HTMLInputElement).value : this.handleSeparator(event);\n\n this[propName] = value;\n }\n\n private setValue(date: number) {\n const value = getReadableDate(this.getCurrentDateObject({ date }), this.language, this.format);\n\n if (this.selectingTo) this.end = value;\n else this.start = value;\n\n this.setViewDate({ date });\n\n if (!this.range || this.selectingTo) {\n this.toggleGrid(false);\n this.focusToggleCalendarButton();\n }\n\n if (this.range && !this.selectingTo) this.selectingTo = true;\n }\n\n private getDayAttributes(dateObject: DateObject, blank: boolean): { [a: string]: any } {\n const data = this.getCurrentDateObject(dateObject);\n const { disabled } = this.isDisabled(data);\n\n if (blank) return { 'data-blank': true };\n\n function capitalize(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n }\n\n const type = this.viewType();\n const value = data[type];\n\n const disabledProp = type !== 'date' ? 'disabled' : 'aria-disabled';\n const selectedProp = type !== 'date' ? 'aria-pressed' : 'aria-selected';\n\n const selectedFrom = this.isSelected(data);\n const selectedTo = this.isSelected(data, true);\n\n const selected = selectedFrom || selectedTo;\n\n const after = this.range && isAfter(data, this.start, this.format, this.viewType());\n const before = this.range && isBefore(data, this.end, this.format, this.viewType());\n const isBetween = after && before;\n\n const isDisabled = disabled && (type === 'date' || !selected);\n\n const tabbable = this[`dateView${capitalize(type)}`] === value;\n\n const props: { [a: string]: any } = {\n 'onKeyDown': (e: KeyboardEvent) => this.calendarKeyboardNavigation(e, data, isDisabled),\n 'tabindex': tabbable ? '0' : '-1',\n [selectedProp]: (selected || isBetween)?.toString(),\n 'aria-current': this.isToday(data) ? 'date' : null,\n 'data-active': isDisabled ? null : selected,\n 'data-today': this.isToday(data),\n 'data-option': 'true',\n [`data-${type}`]: value,\n [disabledProp]: isDisabled ? 'true' : null,\n };\n\n const singleDate = selectedDate(this.start, this.end, this.format, 'date');\n\n if (this.range && !singleDate) {\n props['data-range'] = isBetween;\n props['data-range-from'] = selectedFrom && this.end !== '';\n props['data-range-to'] = selectedTo && this.start !== '';\n } else {\n props['data-single'] = true;\n }\n\n if (this.viewingCalendar()) props.onClick = () => this.setValue(data.date);\n if (this.viewingMonth()) props.onClick = () => this.setViewMonth({ month: data.month, reset: true });\n if (this.viewingYears()) props.onClick = () => this.setViewYear({ year: data.year, reset: true });\n\n if (isDisabled) delete props.onClick;\n\n return props;\n }\n\n /** Focus the button toggling the calendar. Handles the start/from date on its own. */\n private focusToggleCalendarButton() {\n requestAnimationFrame(() => {\n const id = this.range ? this.idToButton : this.idFromButton;\n this.hostElement.querySelector<HTMLButtonElement>(`#${id}`).focus({ preventScroll: true });\n });\n }\n\n private focusCalendar() {\n requestAnimationFrame(() => {\n const element = this.calendarTabElement({ first: true, grid: true });\n\n element?.focus({ preventScroll: true });\n });\n }\n\n private resetFocus() {\n if (this.open) return this.focusCalendar();\n else this.focusToggleCalendarButton();\n }\n\n private handleButtonBlur(event: KeyboardEvent) {\n if (event.code === 'Escape') {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n if (this.open && event.key === 'Tab') return this.focusCalendar();\n }\n\n /**\n * This function queries all tabbable elements inside the calendar popup.\n * Since we allow slotted content it important that we have a function that takes all elements into account.\n * With the `first` and `grid` argument, you can decide which one you want to get.\n * There are fallbacks so you should never get an empty list of elements.\n */\n private calendarTabElement({ first, grid }: PnDatePickerFocusOptions): HTMLElement {\n const focusableElements = ':is(input, select, button:not([tabindex=\"-1\"]), td[tabindex=\"0\"])';\n const elements = this.calendarElement.querySelectorAll<HTMLElement>(focusableElements);\n const list = Array.from(elements).filter(\n ({ localName, offsetParent }) => focusableElements.includes(localName) && offsetParent !== null,\n );\n\n const gridEl = list.find(({ dataset, tabIndex }) => dataset.option && tabIndex === 0);\n if (grid && gridEl) return gridEl;\n if (first) return list.shift();\n else return list.pop();\n }\n\n /**\n * We need to listen to the `Esc` and `Tab` key for the entire calendar popup.\n * Regardless if you focus the grid, the nav buttons or slotted content,\n * the popup will close if you press `Esc`. We also need to reset the focus when the user tabs.\n */\n private handleCalendarTabEsc(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tabElement = this.calendarTabElement({ first: event.shiftKey });\n\n event.stopImmediatePropagation();\n\n if (event.code === 'Escape') {\n event.preventDefault();\n\n this.toggleGrid(false);\n this.focusToggleCalendarButton();\n return;\n }\n\n if (event.code === 'Tab' && target.isEqualNode(tabElement)) {\n event.preventDefault();\n this.calendarTabElement({ first: !event.shiftKey }).focus({ preventScroll: true });\n }\n }\n\n private ariaDescribedby(): string {\n const list = [];\n if (this.hasErrorMessage()) list.push(this.idError);\n else if (this.hasHelperText()) list.push(this.idHelper);\n return list.length ? list.join(' ') : null;\n }\n\n /** Renders the date calendar grid. */\n private renderDateGrid(): HTMLTableElement {\n return (\n <table role=\"grid\" class=\"pn-date-picker-table\" aria-multiselectable={this.range ? 'true' : null}>\n <caption class=\"pn-date-picker-sr-only\" key={this.getCurrentViewDate()}>\n {this.getCurrentViewDate()}\n </caption>\n <thead class=\"pn-date-picker-thead\">\n <tr class=\"pn-date-picker-tr\">\n {this.weekNumbers && <th class=\"pn-date-picker-th\" scope=\"col\" aria-hidden=\"true\"></th>}\n {this.listWeek.map(index => (\n <th class=\"pn-date-picker-th\" scope=\"col\" abbr={this.translateDateText({ day: index }, 'dddd')}>\n {this.translateDateText({ day: index }, 'ddd')}\n </th>\n ))}\n </tr>\n </thead>\n <tbody class=\"pn-date-picker-tbody\">\n {this.grid?.map(({ week, list }) => (\n <tr key={`${this.dateViewYear}-${week}`} class=\"pn-date-picker-tr\">\n {this.weekNumbers && (\n <td\n class=\"pn-date-picker-td\"\n data-blank\n data-week\n title={`${this.translate('WEEK_NAME')} ${week}`}\n aria-hidden=\"true\"\n >\n <span class=\"pn-date-picker-td-week\">{week}</span>\n </td>\n )}\n {list.map(({ day, date, blank }) => (\n <td\n key={`${this.dateViewYear}-${this.dateViewMonth}-${date}`}\n class=\"pn-date-picker-td\"\n {...this.getDayAttributes({ date, day }, blank)}\n >\n <span class=\"pn-date-picker-td-text\">{date}</span>\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n\n /** Renders the month calendar grid. */\n private renderMonthGrid(): HTMLTableElement {\n return (\n <ul class=\"pn-date-picker-list\">\n {this.listMonths.map(month => (\n <li key={month} class=\"pn-date-picker-item\" data-item=\"month\">\n <button type=\"button\" class=\"pn-date-picker-button\" {...this.getDayAttributes({ month }, false)}>\n <span class=\"pn-date-picker-month\" data-full>\n {this.translateDateText({ month }, 'MMMM')}\n </span>\n <span class=\"pn-date-picker-month\" data-abbr>\n {this.translateDateText({ month }, 'MMM')}\n </span>\n </button>\n </li>\n ))}\n </ul>\n );\n }\n\n /** Renders the year calendar grid. */\n private renderYearGrid(): HTMLTableElement {\n return (\n <ul class=\"pn-date-picker-list\">\n {this.getYearGrid()?.map(year => (\n <li key={year} class=\"pn-date-picker-item\" data-item=\"year\">\n <button type=\"button\" class=\"pn-date-picker-button\" {...this.getDayAttributes({ year }, false)}>\n <span>{year}</span>\n </button>\n </li>\n ))}\n </ul>\n );\n }\n\n private renderInput({ to = false }: { to?: boolean } = {}) {\n const id = to ? this.idTo : this.idFrom;\n const idButton = to ? this.idToButton : this.idFromButton;\n const label = to ? this.labelTo : this.labelFrom;\n const value = to ? this.end : this.start;\n const placeholder = to ? this.endPlaceholder : this.placeholder;\n const list = to ? this.listEnd : this.list;\n\n const editing = this.open ? (this.selectingTo ? to : !to) : false;\n\n const defaultText = this.translate('SELECT_DATE') as string;\n\n const textProp = this.range ? (to ? 'END_' : 'START_') : '';\n const dateText = this.translate(`SELECTED_${textProp}DATE`) as string;\n\n let textButton = defaultText;\n if (value) {\n textButton += `, ${dateText.replace('{date}', value)}`;\n }\n\n const showButton = !(this.disabled || this.readonly);\n\n return (\n <div class=\"pn-date-picker-container\" data-error={this.hasError()}>\n <label class=\"pn-date-picker-label\" htmlFor={id}>\n <span>{label}</span>\n </label>\n <div class=\"pn-date-picker-field\">\n <input\n type=\"text\"\n id={id}\n class=\"pn-date-picker-input\"\n name={this.name}\n placeholder={placeholder}\n autocomplete={this.autocomplete}\n maxlength={this.disableMaxLength ? null : this.format.length}\n list={list}\n pattern={this.pattern}\n value={value}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n aria-describedby={this.ariaDescribedby()}\n aria-invalid={this.hasError()?.toString()}\n onInput={e => this.inputHandler(e, to)}\n data-active={editing}\n />\n {showButton && (\n <pn-button\n class=\"pn-date-picker-toggle\"\n buttonId={idButton}\n icon={calendar}\n iconOnly={true}\n appearance=\"light\"\n arialabel={textButton}\n ariaexpanded={this.open.toString()}\n ariacontrols={this.idCalendar}\n data-active={this.open}\n data-input\n small\n onPnClick={() => this.toggleGrid(null, to)}\n onKeyDown={e => this.handleButtonBlur(e)}\n />\n )}\n </div>\n </div>\n );\n }\n\n render() {\n return (\n <Host>\n <div class=\"pn-date-picker\">\n {this.renderInput()}\n\n {this.range && (\n <div class=\"pn-date-picker-range-icon test\">\n <pn-icon icon={arrow_right} />\n </div>\n )}\n\n {this.range && this.renderInput({ to: this.range })}\n </div>\n\n <div\n id={this.idCalendar}\n class=\"pn-date-picker-calendar\"\n role=\"dialog\"\n aria-label={this.translate('CALENDAR_NAVIGATION')}\n data-open={this.open}\n data-moving={this.isClosing || this.isExpanding}\n data-direction={this.openUp ? 'top' : 'bottom'}\n data-range={this.range}\n style={{ height: '0px' }}\n ref={el => (this.calendarElement = el)}\n onKeyDown={e => this.handleCalendarTabEsc(e)}\n >\n <div class=\"pn-date-picker-wrapper\">\n <nav class=\"pn-date-picker-nav\" aria-labelledby={this.idCalendar}>\n <pn-button\n hidden={this.viewingMonth()}\n small\n appearance=\"light\"\n arialabel={this.translate(`PREVIOUS_${this.viewType().toUpperCase()}`) as string}\n icon={arrow_left}\n iconOnly={true}\n onPnClick={() => this.setNavView({ minus: true })}\n />\n\n <pn-button\n hidden={!this.viewingCalendar()}\n small\n appearance=\"light\"\n onPnClick={() => this.setView(MONTHS)}\n >\n <span class=\"pn-date-picker-month\" data-full>\n {this.translateDateText({ date: 1 }, 'MMMM')}\n </span>\n <span class=\"pn-date-picker-month\" data-abbr>\n {this.translateDateText({ date: 1 }, 'MMM')}\n </span>\n </pn-button>\n\n <h2 hidden={this.viewingCalendar()} class=\"pn-date-picker-title\">\n {this.translate(`SELECT_${this.viewType().toUpperCase()}`)}\n </h2>\n\n <pn-button\n hidden={!this.viewingCalendar()}\n small\n appearance=\"light\"\n onPnClick={() => this.setView(YEARS)}\n >\n <span>{this.dateViewYear}</span>\n </pn-button>\n\n <pn-button\n hidden={this.viewingMonth()}\n small\n appearance=\"light\"\n arialabel={this.translate(`NEXT_${this.viewType().toUpperCase()}`) as string}\n icon={arrow_right}\n iconOnly={true}\n onPnClick={() => this.setNavView({ plus: true })}\n />\n </nav>\n\n {this.viewingYears() && this.renderYearGrid()}\n {this.viewingMonth() && this.renderMonthGrid()}\n {this.viewingCalendar() && this.renderDateGrid()}\n\n <aside class=\"pn-date-picker-chips\">\n <slot name=\"chips\"></slot>\n </aside>\n\n <nav class=\"pn-date-picker-bottom\" hidden={this.viewingCalendar()}>\n <pn-button\n appearance=\"light\"\n variant=\"outlined\"\n small\n icon={pn_return}\n onPnClick={() => this.setView(CALENDAR)}\n >\n <span>{this.translate('GO_CALENDAR')}</span>\n </pn-button>\n </nav>\n </div>\n </div>\n\n <p id={this.idHelper} class=\"pn-date-picker-helpertext\" hidden={!this.hasHelperText() || this.hasError()}>\n <span>{this.helpertext}</span>\n <slot name=\"helpertext\" />\n </p>\n\n <p id={this.idError} class=\"pn-date-picker-error\" role=\"alert\" hidden={!this.hasErrorMessage()}>\n <span>{this.error}</span>\n <slot name=\"error\" />\n </p>\n </Host>\n );\n }\n}\n"]}
|
package/umd/modules/@postnord/web-components/collection/components/input/pn-fieldset/pn-fieldset.js
CHANGED
|
@@ -55,7 +55,7 @@ export class PnFieldset {
|
|
|
55
55
|
return alert_exclamation_circle;
|
|
56
56
|
}
|
|
57
57
|
render() {
|
|
58
|
-
return (h(Host, { key: '
|
|
58
|
+
return (h(Host, { key: 'f02790151992e43958982c27b08b91a2f625dc69' }, h("fieldset", { key: '72f7ce4fa8c06a0d7a5cd628578e99df4af6feaa', id: this.fieldsetId, class: "pn-fieldset", disabled: this.disabled, "aria-describedby": this.helpertext && this.idHelpertext, "aria-invalid": this.hasError().toString() }, h("legend", { key: 'd1e8927af562fac146d0d3d6bb8999cfed227251', class: "pn-fieldset-legend" }, this.legend), this.helpertext && (h("p", { key: '565e38f11324a2999649a1507bdca869963d40fc', id: this.idHelpertext, class: "pn-fieldset-helpertext" }, this.helpertext)), h("div", { key: '41f24d04a919cc469265a909f4038a313450e5c1', class: "pn-fieldset-items" }, h("slot", { key: 'a69ed2d87fa287f72217608a394da2e28d16b012' })), h("div", { key: 'a35cbee15cb692542331fe879f14ffca6bbd5954', class: "pn-fieldset-message-wrapper", role: "alert", hidden: !this.error }, h("pn-icon", { key: 'f2391c0f07ccd87f676fd3105f405826fe7f60c4', icon: this.getSymbol() }), h("p", { key: '44e30e61d9455c6fdf415658d760d86b6bba3af7', class: "pn-fieldset-message" }, this.error)))));
|
|
59
59
|
}
|
|
60
60
|
static get is() { return "pn-fieldset"; }
|
|
61
61
|
static get originalStyleUrls() {
|
|
@@ -365,7 +365,7 @@ export class PnFileUpload {
|
|
|
365
365
|
return list.join(',');
|
|
366
366
|
}
|
|
367
367
|
render() {
|
|
368
|
-
return (h(Host, { key: '
|
|
368
|
+
return (h(Host, { key: '30d80fef46dd4ec1a35ebed92cdd3a5799e8a274' }, h("div", { key: '74424e1a3f093f5b39efff46be24b6e501c5967c', class: "pn-file-upload-container" }, h("div", { key: '8575f8345855437ce1ab132931a6db83daedab63', class: "pn-dropzone-container" }, h("input", { key: 'e1f64e842cc835fc3b999a40125acc06aeca9d49', id: this.idFileUpload, class: "pn-file-upload-input", type: "file", name: this.name, multiple: this.multiple, accept: this.accept, capture: this.capture, disabled: this.disabled, required: this.required, "aria-describedby": this.describedBy(), "aria-invalid": this.invalid?.toString(), onClick: e => ripple(e, this.hostElement, '.pn-dropzone-inner'), onChange: () => this._onAddFile(), onDragOver: e => this._onDragOverFile(e), onDragLeave: e => this._onDragLeaveFile(e), onDrop: e => this._onDropFile(e), ref: el => (this.fileInputElement = el) }), h("div", { key: '9d1a9a487c267a0b5a0d26469245490bf45113db', class: "pn-dropzone-inner", "data-hover": this.isHovering, "data-invalid": this.invalid }, h("pn-icon", { key: 'c0625796810d3187b54060841dab300d0a3f88d2', class: "pn-file-upload-icon-element", icon: upload, color: "blue700" }), h("label", { key: '15fa438f664fd63153153b70132f1577be6699ab', htmlFor: this.idFileUpload, class: "pn-file-upload-title" }, this.label || this.translate('CLICKORDRAG')), this.helpertext && (h("p", { key: '2bdeea0f1cee2cdb77c0f5454a9a51977ceb2100', id: this.idHelpertext, class: "pn-file-upload-subtitle" }, this.helpertext)), this.accept && (h("p", { key: '2981fc00ff552d608db0f7ca9dee6551463c18cf', id: this.idAccepttext, class: "pn-file-upload-subtitle" }, this.translate('ACCEPTEDFORMATS'), ": ", this.accept, this.maxSize && (h("span", { key: 'b9a481a9e54df2d25c104395259aac0c642db78a' }, ' ', "(", this.translate('MAXFILESIZE'), ": ", this.maxSize, ")")))))), !!this.files.length && (h("ul", { key: '4c2205aa04c293d9e3757ddb1606596147dd0d46', class: "files-list" }, this.files.map((file) => (h("li", { class: "files-list-item-container", key: file.uuid }, h("div", { class: this.getFileItemClass(file) }, h("div", { class: "file-list-item-title" }, h("pn-icon", { icon: this.getFileIcon(file), color: this.getFileColor(file) }), this.hideProgress || file.progress === 0 ? (h("div", { class: "filename" }, file.filename)) : (h("pn-progress-bar", { label: file.filename, progress: file.progress, error: file.error && file.errorMessage }))), h("pn-button", { small: true, variant: "borderless", arialabel: `${this.translate('REMOVE_FILE')} ${file.filename}`, appearance: file.error ? 'warning' : 'light', icon: trash_can, iconOnly: true, tooltip: this.translate('REMOVE_FILE'), loading: this.isLoading(file), onClick: () => this.removeFile(file) })), file.error ? (h("div", { class: "files-list-item-text-error" }, file.errorMessage || file.error.message)) : null))))), h("slot", { key: 'c2838dd4eb5d553deab6c198f3f203ddf3612706' }))));
|
|
369
369
|
}
|
|
370
370
|
static get is() { return "pn-file-upload"; }
|
|
371
371
|
static get originalStyleUrls() {
|
package/umd/modules/@postnord/web-components/collection/components/input/pn-input/pn-input.js
CHANGED
|
@@ -178,10 +178,10 @@ export class PnInput {
|
|
|
178
178
|
return !this.showPrefix() && !!this.textSuffix?.length && !this.isPassword() && this.type !== 'search';
|
|
179
179
|
}
|
|
180
180
|
render() {
|
|
181
|
-
return (h(Host, { key: '
|
|
181
|
+
return (h(Host, { key: '7f8348da79171fdb3f3b48733a746d6bd531adee' }, h("div", { key: '4867fbb2418edcab774c6cd8c7d98c2431243ac1', class: "pn-input", "data-valid": this.valid, "data-error": this.hasError() }, (this.label || this.maxlength >= 1) && (h("label", { key: 'b8978f74d228ab484d3eb4abcba54f693781f4cf', htmlFor: this.inputid, class: "pn-input-label" }, this.label && h("span", { key: '1d28ce32a353c180a8cb4c2e0011362c9911a1f3' }, this.label), this.maxlength >= 0 && h("span", { key: 'aa862bff99623ec29fa4252c6b2a352900726bef' }, `${this.value.length}/${this.maxlength}`))), h("div", { key: '595c30428744da15ef835ced9a9d2eec8d866fda', class: "pn-input-group" }, h("input", { key: '343c997a23eb23b28daad30e19e26e7685eda62e', type: this.getInputType(), id: this.inputid, class: "pn-input-element", name: this.name, placeholder: this.placeholder, autocomplete: this.autocomplete, maxlength: this.maxlength, list: this.list, pattern: this.pattern, min: this.min, max: this.max, step: this.step, value: this.value, inputmode: this.inputmode, disabled: this.disabled, required: this.required, readonly: this.readonly, "aria-label": this.arialabel, "aria-describedby": this.hasMessage() ? this.idMessage : null, "aria-controls": this.ariacontrols, "aria-invalid": this.hasError()?.toString(), style: {
|
|
182
182
|
'--pn-input-offset-left': `${this.offsetLeft}px`,
|
|
183
183
|
'--pn-input-offset-right': `${this.offsetRight}px`,
|
|
184
|
-
}, onInput: e => this.setVal(e) }), h("div", { key: '
|
|
184
|
+
}, onInput: e => this.setVal(e) }), h("div", { key: 'b6442450590e1a5e26322e7c2e5664dc645a2338', class: "pn-input-eyecandy", "data-prefix": true, ref: el => (this.prefix = el) }, !!this.icon && h("pn-icon", { key: '9e832e7d92c500a8b999570334386567da7bdfb2', icon: this.icon, "aria-hidden": "true" }), this.showPrefix() && h("span", { key: '06d7d276a732e8506524fd4e04389e6d7a779724', class: "pn-input-text" }, this.textPrefix)), h("div", { key: '4fddb9d6b0112af9f194d548cfa45013d55d5345', class: "pn-input-eyecandy", "data-suffix": true, ref: el => (this.suffix = el) }, this.showSuffix() && h("span", { key: 'a1979b08de663081b527cff264b44da4bc4eed9c', class: "pn-input-text" }, this.textSuffix), this.stateDisplay() && h("pn-icon", { key: '4439c0e48081e602e632438948bd4aad7df271dd', "aria-hidden": "true", icon: this.stateIcon(), color: this.stateColor() }), this.isPassword() && (h("pn-button", { key: '263f37a02ef2774ced61547355fd1646b42ca465', icon: this.showPassword ? preview_on : preview_off, iconOnly: true, arialabel: this.passwordText(), small: true, appearance: "light", variant: "borderless", onClick: () => this.togglePassword() })), this.isSearch() && (h("pn-button", { key: 'd623852137ec384fb10144253f2e8fc48a2cc0b2', icon: close, iconOnly: true, arialabel: this.translate('CLEAR'), small: true, appearance: "light", variant: "borderless", onClick: () => this.clearVal() })))), h("p", { key: 'f88d31f6be9ca8bc1bf96eb58020dcf34c657730', class: "pn-input-message", id: this.idMessage, role: this.hasErrorMessage() ? 'alert' : null, hidden: !this.hasMessage() }, this.hasHelperText() && !this.hasError() && h("span", { key: '2e255d5201e9485e9f594ad9c4c68cfc123d36fa', class: "pn-input-helper" }, this.helpertext), h("span", { key: 'a7e6b9cb46357227d0b1c318522b43e866383aea', class: "pn-input-helper-slot", hidden: !this.showHelperSlot || this.hasError() }, h("slot", { key: '6e614ea8cf861d78cb63ffb6d3eaa54053b45017', name: "helpertext" })), this.hasErrorMessage() && h("span", { key: '545331e7c33cbbbb8f9d1952228dcf1819a48a66', class: "pn-input-error" }, this.error), h("span", { key: 'e446082015c2a97a3317f0b251e52b64d114de59', class: "pn-input-error-slot", hidden: !this.showErrorSlot }, h("slot", { key: '7827f003bf9eb49991776dabd9567d603562bec2', name: "error" }))))));
|
|
185
185
|
}
|
|
186
186
|
static get is() { return "pn-input"; }
|
|
187
187
|
static get originalStyleUrls() {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { h, Host } from "@stencil/core";
|
|
6
6
|
import { translations } from "./translations";
|
|
7
|
-
import { close, alert_exclamation_circle,
|
|
7
|
+
import { close, alert_exclamation_circle, chevron_down } from "pn-design-assets/pn-assets/icons.js";
|
|
8
8
|
import { uuidv4, awaitTopbar, ripple, en, getTotalHeightOffset, reduceMotion } from "../../../index";
|
|
9
9
|
/**
|
|
10
10
|
* The `pn-multiselect` gets its options via javascript.
|
|
@@ -527,7 +527,7 @@ export class PnMultiselect {
|
|
|
527
527
|
return (h("ul", { id: this.idChips, class: "pn-multiselect-chips", "aria-label": this.translate('SELECTED_OPTIONS'), ref: el => (this.elChips = el) }, this.optionsCheckedPreview()?.map(({ label, value }, index) => (h("li", { class: "pn-multiselect-chip", "aria-setsize": this.optionsCheckedTotal(), "aria-posinset": index + 1, key: `${label}-${value}` }, h("span", { class: "pn-multiselect-chip-label" }, label), h("button", { type: "button", class: "pn-multiselect-chip-button", "aria-label": `${this.translate('REMOVE')} ${label}`, onClick: () => this.optionSelect({ val: value, checked: false, chip: index }) }, h("pn-icon", { icon: close, small: true, color: "blue700" }))))), this.optionsCheckedTotal() > this.itemCount && (h("li", { class: "pn-multiselect-chip", "data-count": true }, h("span", { class: "pn-multiselect-chip-label" }, "+ ", this.additonalOptions())))));
|
|
528
528
|
}
|
|
529
529
|
render() {
|
|
530
|
-
return (h(Host, { key: '
|
|
530
|
+
return (h(Host, { key: '8dcab6f8526d10167d647733ebeba91c6cc4a891' }, h("fieldset", { key: 'b60a7513bb1481686d0353911fe946a8a0534416', class: "pn-multiselect", "data-icon": !!this.icon, "data-error": this.hasError(), disabled: this.disabled }, this.label && (h("legend", { key: '51f1dc3597171f431ec55d6960f5c22a1af86ea0', id: this.idLegend, class: "pn-multiselect-label", onClick: () => this.handleLabel() }, h("span", { key: '95c5a289c2489059fb076ed82fa40b57965b40fa' }, this.label), !!this.optionsChecked()?.length && (h("span", { key: 'bb1a5f52c8b05612c31325e9237292ad6cdd83ac' }, this.optionsCheckedTotal(), "/", this.optionsTotal())))), h("div", { key: '05bcb2bc08fe7495db84681072c83cef9aa1c00e', class: "pn-multiselect-group", ref: el => (this.elGroup = el) }, h("div", { key: '7da7473b15c01f1233dc0441571495743c7e8c91', class: "pn-multiselect-input" }, !!this.icon && h("pn-icon", { key: '2ac559c573d8fd0f1e6f39b94c7ba54e8f82530b', class: "pn-multiselect-icon", "data-custom": true, icon: this.icon }), h("input", { key: '0839cb250ceab31a45d643c89451cedb02d9e7bb', tabindex: this.search ? null : '-1', type: this.search ? 'search' : 'input', id: this.selectId, class: "pn-multiselect-element", value: this.search ? this.searchQuery : this.optionsCheckedLabels(), name: this.selectName, placeholder: this.getPlaceholder(), required: this.search ? null : this.required, "aria-labelledby": this.idLegend, "aria-describedby": this.describedBy(), "aria-controls": `${this.idOptions} ${this.search ? this.idChips : ''}`, "aria-invalid": this.hasError()?.toString(), disabled: this.disabled, readonly: !this.search, onClick: () => (this.search && this.open ? null : this.toggleOpen()), onKeyDown: e => this.handleInputKeyboard(e), onBlur: e => this.handleBlur(e), onInput: e => this.search && this.setSearchQuery(e.target.value), ref: el => (this.elInput = el) }), this.hasError() && (h("pn-icon", { key: 'bbe2ed7c5f861b6972ea3937c1aad7fa53269878', class: "pn-multiselect-icon", "data-error": true, icon: alert_exclamation_circle, color: "warning" })), h("button", { key: '4e2871a96160b3416dce289c8716665a04113b44', id: this.idButton, type: "button", class: "pn-multiselect-button", "aria-label": this.translate(`BUTTON_${this.open ? 'CLOSE' : 'OPEN'}`), "aria-describedby": this.search ? null : this.selectId, "aria-controls": this.idOptions, "aria-expanded": this.open.toString(), onClick: () => this.toggleOpen(), ref: el => (this.elButton = el) }, h("pn-icon", { key: '71c79e52bcca84ae16b225dc6c58332b95788234', class: "pn-multiselect-icon", icon: chevron_down, color: "blue700" }))), this.renderOptions()), this.hasMessage() && (h("p", { key: 'a27a65d1fba955a5b1bab1c7b79c5e78b5c0040a', id: this.idHelper, class: "pn-multiselect-description", role: !!this.error ? 'alert' : null }, h("span", { key: 'c00904641ae7ba9a9fb482fbf215d6a7f2643872' }, this.error || this.helpertext))), this.search && this.renderChips(), h("slot", { key: '02c6ced4675438a0b29505a2c20948b1345ec1e0' }), this.search && (h("p", { key: 'c8ce14a5d9d28e235de857c2264bed4f5507e389', id: this.idSr, class: "pn-multiselect-sr-only", role: "alert", "aria-live": "assertive" }, this.srMessage && h("span", { key: 'a365ee9816a1e3e732649857c4cf73c0470a85bf' }, this.srMessage))))));
|
|
531
531
|
}
|
|
532
532
|
static get is() { return "pn-multiselect"; }
|
|
533
533
|
static get originalStyleUrls() {
|