@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
|
@@ -3,6 +3,7 @@ import { MarketWebContextService } from "../../../globals/MarketWebContextServic
|
|
|
3
3
|
import { FetchHelper } from "../../../globals/FetchHelper";
|
|
4
4
|
import debounce from "debounce";
|
|
5
5
|
import { translations } from "./translations";
|
|
6
|
+
import { alert_exclamation_circle } from "pn-design-assets/pn-assets/icons";
|
|
6
7
|
export class PnAddressAutofill {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.market = null;
|
|
@@ -15,11 +16,12 @@ export class PnAddressAutofill {
|
|
|
15
16
|
this.cityProps = null;
|
|
16
17
|
this.streetAddressProps = null;
|
|
17
18
|
this.streetNumberProps = null;
|
|
19
|
+
this.addressNotFoundError = null;
|
|
18
20
|
this.postalCode = null;
|
|
19
21
|
this.city = null;
|
|
20
22
|
this.streetAddress = null;
|
|
21
23
|
this.streetNumber = null;
|
|
22
|
-
this.validAddress =
|
|
24
|
+
this.validAddress = true;
|
|
23
25
|
this.translation = undefined;
|
|
24
26
|
this.postalCodeRequiredLabel = null;
|
|
25
27
|
this.streetRequiredLabel = null;
|
|
@@ -36,7 +38,6 @@ export class PnAddressAutofill {
|
|
|
36
38
|
streetNumberInputField = null;
|
|
37
39
|
pnInputHiddenValue = null;
|
|
38
40
|
endpointPath = '/api/location/get-by-postalcode';
|
|
39
|
-
locationEndpointPath = '/api/location/get-by-location';
|
|
40
41
|
_postalCodeProps = null;
|
|
41
42
|
_cityProps = null;
|
|
42
43
|
_streetAddressProps = null;
|
|
@@ -98,15 +99,15 @@ export class PnAddressAutofill {
|
|
|
98
99
|
}
|
|
99
100
|
addEventHandlers() {
|
|
100
101
|
let debounceTimeout;
|
|
101
|
-
this.postalCodeInputField.addEventListener('
|
|
102
|
+
this.postalCodeInputField.addEventListener('input', (e) => {
|
|
102
103
|
this.isLoading = true;
|
|
103
104
|
clearTimeout(debounceTimeout);
|
|
104
105
|
debounceTimeout = window.setTimeout(() => {
|
|
105
106
|
this.fetchPostalCodeData(e);
|
|
106
107
|
}, 300);
|
|
107
108
|
});
|
|
108
|
-
this.
|
|
109
|
-
this.
|
|
109
|
+
this.streetNumberInputField.addEventListener('input', debounce(this.fetchAddress.bind(this), 300));
|
|
110
|
+
this.streetAddressInputField.addEventListener('keydown', () => { this.streetNumberInputField.value = ''; });
|
|
110
111
|
this.addFormFieldEvent();
|
|
111
112
|
}
|
|
112
113
|
addFormFieldEvent() {
|
|
@@ -146,6 +147,11 @@ export class PnAddressAutofill {
|
|
|
146
147
|
this.resetFields();
|
|
147
148
|
this.postalCode = postalCode;
|
|
148
149
|
var data = (await this.fetchPostalCode(postalCode));
|
|
150
|
+
if (!data || !data.addresses) {
|
|
151
|
+
this.city = null;
|
|
152
|
+
this.isLoading = true;
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
149
155
|
const cityInfo = data.addresses?.find(addr => addr.postalCode === postalCode);
|
|
150
156
|
this.city = cityInfo?.city || null;
|
|
151
157
|
this.isLoading = false;
|
|
@@ -169,24 +175,6 @@ export class PnAddressAutofill {
|
|
|
169
175
|
return null;
|
|
170
176
|
}
|
|
171
177
|
}
|
|
172
|
-
async fetchAddress() {
|
|
173
|
-
const endpointBase = this.endpoint.endsWith('/')
|
|
174
|
-
? this.endpoint.slice(0, -1)
|
|
175
|
-
: this.endpoint;
|
|
176
|
-
//merge street and number
|
|
177
|
-
var locationSearch = this.streetAddress + ' ' + this.streetNumber;
|
|
178
|
-
//this is Air search api which will return the address, without postcode, postalcode verification is done in handleAddressDropdown
|
|
179
|
-
const fetchUrl = `${endpointBase}${this.locationEndpointPath}?countryCode=${this.countryCode}&query=${locationSearch}`;
|
|
180
|
-
try {
|
|
181
|
-
const data = await this.fetchHelper.fetchJson(fetchUrl, { mode: 'cors' }, this.cache);
|
|
182
|
-
return data;
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
console.error("Error fetching address data:", error);
|
|
186
|
-
this.isLoading = true;
|
|
187
|
-
return null;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
178
|
resetFields() {
|
|
191
179
|
this.streetAddressInputField.value = '';
|
|
192
180
|
this.streetNumberInputField.value = '';
|
|
@@ -199,61 +187,45 @@ export class PnAddressAutofill {
|
|
|
199
187
|
element.removeAttribute('error');
|
|
200
188
|
});
|
|
201
189
|
}
|
|
202
|
-
async
|
|
203
|
-
const streetAddress = this.streetAddressInputField.value;
|
|
204
|
-
const streetNumber = this.streetNumberInputField.value;
|
|
205
|
-
|
|
206
|
-
|
|
190
|
+
async fetchAddress() {
|
|
191
|
+
const streetAddress = this.streetAddressInputField.value.trim();
|
|
192
|
+
const streetNumber = this.streetNumberInputField.value.trim();
|
|
193
|
+
if (!streetAddress || !streetNumber) {
|
|
194
|
+
this.validAddress = false;
|
|
207
195
|
return;
|
|
208
196
|
}
|
|
209
|
-
|
|
197
|
+
const endpointBase = this.endpoint.endsWith('/')
|
|
198
|
+
? this.endpoint.slice(0, -1)
|
|
199
|
+
: this.endpoint;
|
|
200
|
+
const fetchUrl = `${endpointBase}${this.endpointPath}?countryCode=${this.countryCode}&postalCode=${this.postalCodeInputField.value}&address=${streetAddress + " " + streetNumber}`;
|
|
201
|
+
try {
|
|
202
|
+
const data = await this.fetchHelper.fetchJson(fetchUrl, { mode: 'cors' }, this.cache);
|
|
203
|
+
if (!data?.addresses?.length) {
|
|
204
|
+
this.validAddress = false;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
const inputStreetAddress = this.normalizeChar(streetAddress);
|
|
208
|
+
const inputStreetNumber = this.normalizeChar(streetNumber);
|
|
209
|
+
const addressFound = data.addresses.some(addr => this.normalizeChar(addr.street) === inputStreetAddress &&
|
|
210
|
+
this.normalizeChar(addr.houseNumber) === inputStreetNumber &&
|
|
211
|
+
addr.postalCode === this.postalCodeInputField.value);
|
|
212
|
+
this.validAddress = addressFound;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
console.error("Error fetching address data:", error);
|
|
217
|
+
this.isLoading = true;
|
|
218
|
+
this.validAddress = false;
|
|
219
|
+
}
|
|
210
220
|
if (this.streetAddress === streetAddress && this.streetNumber === streetNumber) {
|
|
211
221
|
return;
|
|
212
222
|
}
|
|
213
|
-
//set the values
|
|
214
223
|
if (streetAddress) {
|
|
215
224
|
this.streetAddress = streetAddress;
|
|
216
225
|
}
|
|
217
226
|
if (streetNumber) {
|
|
218
227
|
this.streetNumber = streetNumber;
|
|
219
228
|
}
|
|
220
|
-
//fetch data
|
|
221
|
-
var data = await this.fetchAddress();
|
|
222
|
-
//verify the error
|
|
223
|
-
var showStreetAddressError = false;
|
|
224
|
-
var showStreetNumberError = false;
|
|
225
|
-
if (!data?.addresses?.length) {
|
|
226
|
-
if (e.target === this.streetAddressInputField) {
|
|
227
|
-
showStreetAddressError = true;
|
|
228
|
-
}
|
|
229
|
-
if (e.target === this.streetNumberInputField) {
|
|
230
|
-
showStreetNumberError = true;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
if (this.streetAddress && !data.addresses.find(addr => this.normalizeChar(addr.street) === this.normalizeChar(this.streetAddress) && addr.postalCode === this.postalCode)) {
|
|
235
|
-
showStreetAddressError = true;
|
|
236
|
-
}
|
|
237
|
-
if (this.streetNumber && !data.addresses.find(addr => addr.houseNumber.toLowerCase() === this.streetNumber.toLowerCase() && addr.postalCode === this.postalCode)) {
|
|
238
|
-
showStreetNumberError = true;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
//helpertext changes are temp fix to show the error text, this can be removed once the upgrade is done and fixes this issue.
|
|
242
|
-
this.pnInputStreetAddress.removeAttribute('error');
|
|
243
|
-
this.pnInputStreetAddress.setAttribute('helpertext', this._streetAddressProps.streetAddressInputHelpertext);
|
|
244
|
-
this.pnInputStreetNumber.removeAttribute('error');
|
|
245
|
-
this.pnInputStreetNumber.setAttribute('helpertext', this._streetNumberProps.streetNumberInputHelpertext);
|
|
246
|
-
this.validAddress = true;
|
|
247
|
-
if (showStreetAddressError) {
|
|
248
|
-
this.pnInputStreetAddress.setAttribute('error', this._streetAddressProps.streetAddressInputError);
|
|
249
|
-
this.pnInputStreetAddress.setAttribute('helpertext', this._streetAddressProps.streetAddressInputError);
|
|
250
|
-
this.validAddress = false;
|
|
251
|
-
}
|
|
252
|
-
if (showStreetNumberError) {
|
|
253
|
-
this.pnInputStreetNumber.setAttribute('error', this._streetNumberProps.streetNumberInputError);
|
|
254
|
-
this.pnInputStreetNumber.setAttribute('helpertext', this._streetNumberProps.streetNumberInputError);
|
|
255
|
-
this.validAddress = false;
|
|
256
|
-
}
|
|
257
229
|
}
|
|
258
230
|
//this function is added to compare the street input values if entered without special characters like é, ø ect
|
|
259
231
|
normalizeChar(str) {
|
|
@@ -270,7 +242,7 @@ export class PnAddressAutofill {
|
|
|
270
242
|
return str1;
|
|
271
243
|
}
|
|
272
244
|
render() {
|
|
273
|
-
return (h(Host, { key: '
|
|
245
|
+
return (h(Host, { key: '6e09c78bcd1117bbcdbcec1fc65444772636036d', class: "pn-address-autofill" }, this._postalCodeProps?.postalCodeCityLabel ? (h("div", { class: "label-container" }, h("label", null, `${this._postalCodeProps.postalCodeCityLabel + ' ' + this.postalCodeRequiredLabel}`))) : null, h("div", { key: '8f5a0760096e3618436b7554a6a5c89c1b0bab0a', class: "input-container-row" }, h("pn-input", { key: '2490a7c926f9c693cf67dabbd60e56297aee44aa', type: "number", name: this._postalCodeProps?.postalCodeInputName, required: this._postalCodeProps?.postalCodeInputRequired, placeholder: this._postalCodeProps?.postalCodeInputPlaceholder, ref: el => (this.pnInputPostalCode = el), autocomplete: "off", helpertext: this._postalCodeProps?.postalCodeInputHelpertext }), h("pn-input", { key: '49bc2fdedb78d9ce11c973bd0d2ab127603ab148', type: "text", name: this._cityProps?.cityInputName, disabled: true, value: this.city, placeholder: this._cityProps?.cityInputPlaceholder, autocomplete: "off", helpertext: this._cityProps?.cityInputHelpertext })), this._streetAddressProps?.streetAddressNumberLabel ? (h("div", { class: "label-container" }, h("label", null, `${this._streetAddressProps.streetAddressNumberLabel + ' ' + this.streetRequiredLabel}`))) : null, h("div", { key: 'fed64c4457c27593bf6a22dea066f029fcd4a53d', class: "input-container-row" }, h("pn-input", { key: '7d7667465f4cad869cf8274158611aa32b7a8975', type: "text", name: this._streetAddressProps?.streetAddressInputName, required: this._streetAddressProps?.streetAddressInputRequired, value: this.streetAddress, placeholder: this._streetAddressProps?.streetAddressInputPlaceholder, ref: el => (this.pnInputStreetAddress = el), autocomplete: "off", helpertext: this._streetAddressProps?.streetAddressInputHelpertext, disabled: this.isLoading }), h("pn-input", { key: '8bc6498685c92de3e53034dcf4fe7078e171e41f', type: "text", name: this._streetNumberProps?.streetNumberInputName, required: this._streetNumberProps?.streetNumberInputRequired, value: this.streetNumber, placeholder: this._streetNumberProps?.streetNumberInputPlaceholder, ref: el => (this.pnInputStreetNumber = el), autocomplete: "off", helpertext: this._streetNumberProps?.streetNumberInputHelpertext, disabled: this.isLoading })), (!this.validAddress && this.streetAddressInputField.value && this.streetNumberInputField.value) ? (h("div", { class: "toast-container" }, h("pn-toast", { text: this.addressNotFoundError ?? this.translation.addressNotFound, appearance: "warning", icon: alert_exclamation_circle }))) : null));
|
|
274
246
|
}
|
|
275
247
|
static get is() { return "pn-address-autofill"; }
|
|
276
248
|
static get originalStyleUrls() {
|
|
@@ -488,6 +460,24 @@ export class PnAddressAutofill {
|
|
|
488
460
|
"attribute": "street-number-props",
|
|
489
461
|
"reflect": false,
|
|
490
462
|
"defaultValue": "null"
|
|
463
|
+
},
|
|
464
|
+
"addressNotFoundError": {
|
|
465
|
+
"type": "string",
|
|
466
|
+
"mutable": false,
|
|
467
|
+
"complexType": {
|
|
468
|
+
"original": "string",
|
|
469
|
+
"resolved": "string",
|
|
470
|
+
"references": {}
|
|
471
|
+
},
|
|
472
|
+
"required": false,
|
|
473
|
+
"optional": false,
|
|
474
|
+
"docs": {
|
|
475
|
+
"tags": [],
|
|
476
|
+
"text": ""
|
|
477
|
+
},
|
|
478
|
+
"attribute": "address-not-found-error",
|
|
479
|
+
"reflect": false,
|
|
480
|
+
"defaultValue": "null"
|
|
491
481
|
}
|
|
492
482
|
};
|
|
493
483
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pn-address-autofill.js","sourceRoot":"","sources":["../../../../src/components/input/pn-address-autofill/pn-address-autofill.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM9C,MAAM,OAAO,iBAAiB;;sBAkB6B,IAAI;2BAEC,IAAI;wBACvC,IAAI;qBACN,IAAI;2BACC,IAAI;wBACP,IAAI;+BAEqB,IAAI;yBAChB,IAAI;kCACc,IAAI;iCACN,IAAI;0BAE9B,IAAI;oBACV,IAAI;6BACK,IAAI;4BACL,IAAI;4BACH,KAAK;;uCAEK,IAAI;mCACR,IAAI;2BAEZ,IAAI;yBACL,IAAI;;IAxCvB,WAAW,CAAU;IAChC,iBAAiB,GAAgB,IAAI,CAAC;IACtC,WAAW,GAAgB,IAAI,CAAC;IAChC,oBAAoB,GAAgB,IAAI,CAAC;IACzC,mBAAmB,GAAgB,IAAI,CAAC;IACxC,oBAAoB,GAAqB,IAAI,CAAC;IAC9C,uBAAuB,GAAqB,IAAI,CAAC;IACjD,sBAAsB,GAAqB,IAAI,CAAC;IAChD,kBAAkB,GAAgB,IAAI,CAAC;IACvC,YAAY,GAAG,iCAAiC,CAAC;IACjD,oBAAoB,GAAG,+BAA+B,CAAC;IAC/C,gBAAgB,GAAoB,IAAI,CAAC;IACzC,UAAU,GAAc,IAAI,CAAC;IAC7B,mBAAmB,GAAuB,IAAI,CAAC;IAC/C,kBAAkB,GAAsB,IAAI,CAAC;IA4B5C,eAAe,CAAuB;IAE/C,WAAW,GAAG,IAAI,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAExD,iBAAiB;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAChF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE9E,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;QAChD,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAElE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,QAAQ,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,MAAM,uBAAuB,CAAC,WAAW,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAA;QAEtB,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAE9B,IAAG,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,KAAK,IAAI,EAAE,CAAC;YAC1D,IAAI,CAAC,uBAAuB,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC;QACxE,CAAC;QAED,IAAG,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,KAAK,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpE,CAAC;IACH,CAAC;IAEC,eAAe;QACb,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEH,gBAAgB;QACd,IAAI,eAAmC,CAAC;QAExC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACxD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,YAAY,CAAC,eAAe,CAAC,CAAC;YAC9B,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACvC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC7D,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1B,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC9C,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;gBACzE,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACjG,IAAI,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAQ;QAChC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAEnD,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,IAAI,UAAU,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC;QAEnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAGD,KAAK,CAAC,eAAe,CAAC,UAAU;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAElB,MAAM,QAAQ,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,YAAY,gBAAgB,IAAI,CAAC,WAAW,eAAe,UAAU,EAAE,CAAC;QAEhH,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAS,CAAC;YAE9F,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;gBACzF,OAAO;YACT,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,YAAY;QAChB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAElB,yBAAyB;QACzB,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAElE,kIAAkI;QAClI,MAAM,QAAQ,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,oBAAoB,gBAAgB,IAAI,CAAC,WAAW,UAAU,cAAc,EAAE,CAAC;QAEvH,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAS,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;IAEH,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,uBAAuB,CAAC,KAAK,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAI,KAAK,CAAC;QAE3B,IAAI,MAAM,GAAG,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEvD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACnC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,CAAQ;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAEvD,+CAA+C;QAC/C,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,gBAAgB;QAChB,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACrC,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACnC,CAAC;QAED,YAAY;QACZ,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAErC,kBAAkB;QAClB,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAElC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC9C,sBAAsB,GAAG,IAAI,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC7C,qBAAqB,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1K,sBAAsB,GAAG,IAAI,CAAC;YAChC,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjK,qBAAqB,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,4HAA4H;QAC5H,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;QAE5G,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,CAAC;QAEzG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,sBAAsB,EAAE,CAAC;YAC3B,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;YAClG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;YACvG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;QACD,IAAI,qBAAqB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;YAC/F,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;YACpG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,+GAA+G;IAC/G,aAAa,CAAC,GAAG;QAEf,MAAM,cAAc,GAAG;YACrB,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;YACT,qBAAqB;SACtB,CAAC;QAEF,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;aAC5D,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;aACnD,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAC,qBAAqB;YAC9B,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAC5C,WAAK,KAAK,EAAC,iBAAiB;gBAC1B,iBAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,GAAG,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAS,CAChG,CACP,CAAC,CAAC,CAAC,IAAI;YACR,4DAAK,KAAK,EAAC,qBAAqB;gBAC9B,iEACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,EAChD,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,uBAAuB,EACxD,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,0BAA0B,EAC9D,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAiB,CAAC,EACvD,YAAY,EAAC,KAAK,EAClB,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,yBAAyB,GAClD;gBAEZ,iEACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,EACpC,QAAQ,QACR,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,oBAAoB,EAClD,YAAY,EAAC,KAAK,EAClB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,GACtC,CACR;YAEL,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,CAAC,CACpD,WAAK,KAAK,EAAC,iBAAiB;gBAC1B,iBAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,GAAG,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAS,CACpG,CACP,CAAC,CAAC,CAAC,IAAI;YACR,4DAAK,KAAK,EAAC,qBAAqB;gBAC9B,iEACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,sBAAsB,EACtD,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,0BAA0B,EAC9D,KAAK,EAAE,IAAI,CAAC,aAAa,EACzB,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE,6BAA6B,EACpE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAiB,CAAC,EAC1D,YAAY,EAAC,KAAK,EAClB,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE,4BAA4B,EAClE,QAAQ,EAAE,IAAI,CAAC,SAAS,GACd;gBAEZ,iEACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,EACpD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,yBAAyB,EAC5D,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,WAAW,EAAE,IAAI,CAAC,kBAAkB,EAAE,4BAA4B,EAClE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAiB,CAAC,EACzD,YAAY,EAAC,KAAK,EAClB,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,2BAA2B,EAChE,QAAQ,EAAE,IAAI,CAAC,SAAS,GACd,CACR,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Element, State, Host, EventEmitter, Event } from '@stencil/core';\nimport { MarketWebContextService } from '../../../globals/MarketWebContextService';\nimport { FetchHelper } from '../../../globals/FetchHelper';\nimport { Root, PostalCodeProps, CityProps, StreetAddressProps, StreetNumberProps } from './types';\nimport debounce from 'debounce';\nimport { translations } from './translations';\n\n@Component({\n tag: 'pn-address-autofill',\n styleUrl: 'pn-address-autofill.scss',\n})\nexport class PnAddressAutofill {\n @Element() hostElement: Element;\n pnInputPostalCode: HTMLElement = null;\n pnInputCity: HTMLElement = null;\n pnInputStreetAddress: HTMLElement = null;\n pnInputStreetNumber: HTMLElement = null;\n postalCodeInputField: HTMLInputElement = null;\n streetAddressInputField: HTMLInputElement = null;\n streetNumberInputField: HTMLInputElement = null;\n pnInputHiddenValue: HTMLElement = null;\n endpointPath = '/api/location/get-by-postalcode';\n locationEndpointPath = '/api/location/get-by-location';\n private _postalCodeProps: PostalCodeProps = null;\n private _cityProps: CityProps = null;\n private _streetAddressProps: StreetAddressProps = null;\n private _streetNumberProps: StreetNumberProps = null;\n\n /** Specifies which market we want to show (se,dk,fi,no,com) */\n @Prop({ mutable: true, reflect: true }) market: string = null; //se\n /** Specifies which environment we're fetching data from. (production, preproduction, integration, localhost) */\n @Prop({ mutable: true, reflect: true }) environment: string = null; //sv\n @Prop() endpoint: string = null;\n @Prop() cache: boolean = true;\n @Prop() countryCode: string = null;\n @Prop() language: string = null;\n\n @Prop() postalCodeProps: string | PostalCodeProps = null;\n @Prop() cityProps: string | CityProps = null;\n @Prop() streetAddressProps: string | StreetAddressProps = null;\n @Prop() streetNumberProps: string | StreetNumberProps = null;\n\n @State() postalCode: string = null;\n @State() city: string = null;\n @State() streetAddress: string = null;\n @State() streetNumber: string = null;\n @State() validAddress: boolean = false;\n @State() translation: any;\n @State() postalCodeRequiredLabel: string = null;\n @State() streetRequiredLabel: string = null;\n\n @State() fullAddress: string = null;\n @State() isLoading: boolean = true;\n\n @Event() addresscomplete: EventEmitter<string>;\n\n fetchHelper = new FetchHelper('PostalCodeCityAutofill');\n\n componentWillLoad() {\n this.setInitialValues();\n this._postalCodeProps = this.setProps(this.postalCodeProps);\n this._cityProps = this.setProps(this.cityProps);\n this._streetAddressProps = this.setProps(this.streetAddressProps);\n this._streetNumberProps = this.setProps(this.streetNumberProps);\n }\n\n setProps(props) {\n if (typeof props === 'string') {\n return JSON.parse(props);\n } else {\n return props;\n }\n }\n\n componentDidLoad() {\n this.postalCodeInputField = this.pnInputPostalCode.querySelector('input');\n this.streetAddressInputField = this.pnInputStreetAddress.querySelector('input');\n this.streetNumberInputField = this.pnInputStreetNumber.querySelector('input');\n\n this.addEventHandlers();\n }\n\n async setInitialValues(href = window.location.href) {\n const marketWebContextService = new MarketWebContextService(href);\n\n if (!this.environment) {\n this.environment = await marketWebContextService.getEnvironmentName();\n }\n\n if (!this.endpoint && this.environment?.indexOf('local') === -1) {\n this.endpoint = await marketWebContextService.getEndpoint(this.environment, this.market);\n }\n\n if (!this.endpoint) {\n this.endpoint = '';\n }\n\n if (!this.language) {\n this.language = await marketWebContextService.getLanguage();\n }\n\n this.setTranslations()\n\n this.postalCodeRequiredLabel = \"\";\n this.streetRequiredLabel = \"\";\n\n if(this._postalCodeProps.postalCodeInputRequired === true) {\n this.postalCodeRequiredLabel = \" (\" + this.translation.required + \")\"; \n }\n\n if(this._streetAddressProps.streetAddressInputRequired === true) {\n this.streetRequiredLabel = \" (\" + this.translation.required + \")\"; \n }\n }\n\n setTranslations() {\n if (this.language === 'nb') {\n this.language = 'no';\n }\n if (this.language && translations[this.language]) {\n this.translation = translations[this.language];\n }\n }\n\n addEventHandlers() {\n let debounceTimeout: number | undefined;\n\n this.postalCodeInputField.addEventListener('keyup', (e) => {\n this.isLoading = true;\n clearTimeout(debounceTimeout);\n debounceTimeout = window.setTimeout(() => {\n this.fetchPostalCodeData(e);\n }, 300);\n });\n\n this.streetAddressInputField.addEventListener('blur', this.handleAddressDropdown.bind(this));\n this.streetNumberInputField.addEventListener('blur', this.handleAddressDropdown.bind(this));\n this.addFormFieldEvent();\n }\n\n addFormFieldEvent() {\n const allInputs = this.hostElement.querySelectorAll('input');\n allInputs.forEach(element => {\n ['keyup', 'change', 'blur'].forEach(eventName => {\n const debounceUpdate = debounce(this.updateHiddenValue.bind(this), 1000);\n element.addEventListener(eventName, debounceUpdate);\n });\n });\n }\n\n updateHiddenValue(e) {\n if (e.target === this.streetNumberInputField) {\n this.streetNumber = this.streetNumberInputField.value;\n }\n\n if (this.validAddress && this.postalCode && this.city && this.streetAddress && this.streetNumber) {\n this.fullAddress = `${this.streetAddress} ${this.streetNumber}, ${this.city} ${this.postalCode}`;\n } else {\n this.fullAddress = '';\n }\n\n this.addresscomplete.emit(this.fullAddress);\n }\n\n async fetchPostalCodeData(e: Event) {\n if (!e) {\n return;\n }\n const postalCode = this.postalCodeInputField.value;\n\n var postalCodeLength = 4;\n\n if (postalCode.length < postalCodeLength) {\n this.resetFields();\n return;\n }\n\n if (this.postalCode === postalCode) {\n return;\n }\n\n this.resetFields();\n this.postalCode = postalCode;\n\n var data = (await this.fetchPostalCode(postalCode));\n\n const cityInfo = data.addresses?.find(addr => addr.postalCode === postalCode);\n this.city = cityInfo?.city || null;\n\n this.isLoading = false;\n }\n\n\n async fetchPostalCode(postalCode) {\n const endpointBase = this.endpoint.endsWith('/')\n ? this.endpoint.slice(0, -1)\n : this.endpoint;\n\n const fetchUrl = `${endpointBase}${this.endpointPath}?countryCode=${this.countryCode}&postalCode=${postalCode}`;\n\n try {\n const data = await this.fetchHelper.fetchJson(fetchUrl, { mode: 'cors' }, this.cache) as Root;\n\n if (!data?.addresses?.length) {\n this.pnInputPostalCode.setAttribute('error', this._postalCodeProps.postalCodeInputError);\n return;\n }\n return data;\n }\n catch (error) {\n console.error(\"Error fetching address data:\", error);\n this.isLoading = true;\n return null;\n }\n }\n\n\n async fetchAddress() {\n const endpointBase = this.endpoint.endsWith('/')\n ? this.endpoint.slice(0, -1)\n : this.endpoint;\n\n //merge street and number\n var locationSearch = this.streetAddress + ' ' + this.streetNumber;\n\n //this is Air search api which will return the address, without postcode, postalcode verification is done in handleAddressDropdown\n const fetchUrl = `${endpointBase}${this.locationEndpointPath}?countryCode=${this.countryCode}&query=${locationSearch}`;\n\n try {\n const data = await this.fetchHelper.fetchJson(fetchUrl, { mode: 'cors' }, this.cache) as Root;\n return data;\n }\n catch (error) {\n console.error(\"Error fetching address data:\", error);\n this.isLoading = true;\n return null;\n }\n\n }\n\n private resetFields() {\n this.streetAddressInputField.value = '';\n this.streetNumberInputField.value = '';\n this.city = null;\n this.streetAddress = null;\n this.streetNumber = null;\n this.validAddress = false;\n\n let inputs = document.getElementsByTagName('pn-input');\n\n Array.from(inputs).forEach(element => {\n element.removeAttribute('error');\n });\n }\n\n async handleAddressDropdown(e: Event) {\n const streetAddress = this.streetAddressInputField.value;\n const streetNumber = this.streetNumberInputField.value;\n\n //no data fetching if both the inputs are empty\n if (!streetAddress && !streetNumber) {\n return;\n }\n\n //skip the data fetch if there is no change in input\n if (this.streetAddress === streetAddress && this.streetNumber === streetNumber) {\n return;\n }\n\n //set the values\n if (streetAddress) {\n this.streetAddress = streetAddress;\n }\n if (streetNumber) {\n this.streetNumber = streetNumber;\n }\n\n //fetch data\n var data = await this.fetchAddress();\n\n //verify the error\n var showStreetAddressError = false;\n var showStreetNumberError = false;\n\n if (!data?.addresses?.length) {\n if (e.target === this.streetAddressInputField) {\n showStreetAddressError = true;\n }\n if (e.target === this.streetNumberInputField) {\n showStreetNumberError = true;\n }\n } else {\n if (this.streetAddress && !data.addresses.find(addr => this.normalizeChar(addr.street) === this.normalizeChar(this.streetAddress) && addr.postalCode === this.postalCode)) {\n showStreetAddressError = true;\n }\n if (this.streetNumber && !data.addresses.find(addr => addr.houseNumber.toLowerCase() === this.streetNumber.toLowerCase() && addr.postalCode === this.postalCode)) {\n showStreetNumberError = true;\n }\n }\n\n //helpertext changes are temp fix to show the error text, this can be removed once the upgrade is done and fixes this issue.\n this.pnInputStreetAddress.removeAttribute('error');\n this.pnInputStreetAddress.setAttribute('helpertext', this._streetAddressProps.streetAddressInputHelpertext);\n\n this.pnInputStreetNumber.removeAttribute('error');\n this.pnInputStreetNumber.setAttribute('helpertext', this._streetNumberProps.streetNumberInputHelpertext);\n\n this.validAddress = true;\n\n if (showStreetAddressError) {\n this.pnInputStreetAddress.setAttribute('error', this._streetAddressProps.streetAddressInputError);\n this.pnInputStreetAddress.setAttribute('helpertext', this._streetAddressProps.streetAddressInputError);\n this.validAddress = false;\n }\n if (showStreetNumberError) {\n this.pnInputStreetNumber.setAttribute('error', this._streetNumberProps.streetNumberInputError);\n this.pnInputStreetNumber.setAttribute('helpertext', this._streetNumberProps.streetNumberInputError);\n this.validAddress = false;\n }\n }\n\n //this function is added to compare the street input values if entered without special characters like é, ø ect\n normalizeChar(str) {\n\n const specialCharMap = {\n 'ø': 'o',\n 'Ø': 'o',\n 'æ': 'ae',\n 'Æ': 'ae',\n // Add more as needed\n };\n\n var str1 = str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\")\n .split('').map(char => specialCharMap[char] || char)\n .join('').toLowerCase()\n return str1;\n }\n\n render() {\n return (\n <Host class=\"pn-address-autofill\">\n {this._postalCodeProps?.postalCodeCityLabel ? (\n <div class=\"label-container\">\n <label>{`${this._postalCodeProps.postalCodeCityLabel + ' ' + this.postalCodeRequiredLabel}`}</label>\n </div>\n ) : null}\n <div class=\"input-container-row\">\n <pn-input\n type=\"number\"\n name={this._postalCodeProps?.postalCodeInputName}\n required={this._postalCodeProps?.postalCodeInputRequired}\n placeholder={this._postalCodeProps?.postalCodeInputPlaceholder}\n ref={el => (this.pnInputPostalCode = el as HTMLElement)}\n autocomplete=\"off\"\n helpertext={this._postalCodeProps?.postalCodeInputHelpertext}\n ></pn-input>\n\n <pn-input\n type=\"text\"\n name={this._cityProps?.cityInputName}\n disabled\n value={this.city}\n placeholder={this._cityProps?.cityInputPlaceholder}\n autocomplete=\"off\"\n helpertext={this._cityProps?.cityInputHelpertext}\n ></pn-input>\n </div>\n\n {this._streetAddressProps?.streetAddressNumberLabel ? (\n <div class=\"label-container\">\n <label>{`${this._streetAddressProps.streetAddressNumberLabel + ' ' + this.streetRequiredLabel}`}</label>\n </div>\n ) : null}\n <div class=\"input-container-row\">\n <pn-input\n type=\"text\"\n name={this._streetAddressProps?.streetAddressInputName}\n required={this._streetAddressProps?.streetAddressInputRequired}\n value={this.streetAddress}\n placeholder={this._streetAddressProps?.streetAddressInputPlaceholder}\n ref={el => (this.pnInputStreetAddress = el as HTMLElement)}\n autocomplete=\"off\"\n helpertext={this._streetAddressProps?.streetAddressInputHelpertext}\n disabled={this.isLoading}\n ></pn-input>\n\n <pn-input\n type=\"text\"\n name={this._streetNumberProps?.streetNumberInputName}\n required={this._streetNumberProps?.streetNumberInputRequired}\n value={this.streetNumber}\n placeholder={this._streetNumberProps?.streetNumberInputPlaceholder}\n ref={el => (this.pnInputStreetNumber = el as HTMLElement)}\n autocomplete=\"off\"\n helpertext={this._streetNumberProps?.streetNumberInputHelpertext}\n disabled={this.isLoading}\n ></pn-input>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pn-address-autofill.js","sourceRoot":"","sources":["../../../../src/components/input/pn-address-autofill/pn-address-autofill.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, State, Host, EventEmitter, Event } from '@stencil/core';\nimport { MarketWebContextService } from '../../../globals/MarketWebContextService';\nimport { FetchHelper } from '../../../globals/FetchHelper';\nimport { Root, PostalCodeProps, CityProps, StreetAddressProps, StreetNumberProps } from './types';\nimport debounce from 'debounce';\nimport { translations } from './translations';\nimport { alert_exclamation_circle } from 'pn-design-assets/pn-assets/icons';\n\n@Component({\n tag: 'pn-address-autofill',\n styleUrl: 'pn-address-autofill.scss',\n})\nexport class PnAddressAutofill {\n @Element() hostElement: Element;\n pnInputPostalCode: HTMLElement = null;\n pnInputCity: HTMLElement = null;\n pnInputStreetAddress: HTMLElement = null;\n pnInputStreetNumber: HTMLElement = null;\n postalCodeInputField: HTMLInputElement = null;\n streetAddressInputField: HTMLInputElement = null;\n streetNumberInputField: HTMLInputElement = null;\n pnInputHiddenValue: HTMLElement = null;\n endpointPath = '/api/location/get-by-postalcode';\n private _postalCodeProps: PostalCodeProps = null;\n private _cityProps: CityProps = null;\n private _streetAddressProps: StreetAddressProps = null;\n private _streetNumberProps: StreetNumberProps = null;\n\n /** Specifies which market we want to show (se,dk,fi,no,com) */\n @Prop({ mutable: true, reflect: true }) market: string = null; //se\n /** Specifies which environment we're fetching data from. (production, preproduction, integration, localhost) */\n @Prop({ mutable: true, reflect: true }) environment: string = null; //sv\n @Prop() endpoint: string = null;\n @Prop() cache: boolean = true;\n @Prop() countryCode: string = null;\n @Prop() language: string = null;\n\n @Prop() postalCodeProps: string | PostalCodeProps = null;\n @Prop() cityProps: string | CityProps = null;\n @Prop() streetAddressProps: string | StreetAddressProps = null;\n @Prop() streetNumberProps: string | StreetNumberProps = null;\n @Prop() addressNotFoundError: string = null;\n\n @State() postalCode: string = null;\n @State() city: string = null;\n @State() streetAddress: string = null;\n @State() streetNumber: string = null;\n @State() validAddress: boolean = true;\n @State() translation: any;\n @State() postalCodeRequiredLabel: string = null;\n @State() streetRequiredLabel: string = null;\n\n @State() fullAddress: string = null;\n @State() isLoading: boolean = true;\n\n @Event() addresscomplete: EventEmitter<string>;\n\n fetchHelper = new FetchHelper('PostalCodeCityAutofill');\n\n componentWillLoad() {\n this.setInitialValues();\n this._postalCodeProps = this.setProps(this.postalCodeProps);\n this._cityProps = this.setProps(this.cityProps);\n this._streetAddressProps = this.setProps(this.streetAddressProps);\n this._streetNumberProps = this.setProps(this.streetNumberProps);\n }\n\n setProps(props) {\n if (typeof props === 'string') {\n return JSON.parse(props);\n } else {\n return props;\n }\n }\n\n componentDidLoad() {\n this.postalCodeInputField = this.pnInputPostalCode.querySelector('input');\n this.streetAddressInputField = this.pnInputStreetAddress.querySelector('input');\n this.streetNumberInputField = this.pnInputStreetNumber.querySelector('input');\n\n this.addEventHandlers();\n }\n\n async setInitialValues(href = window.location.href) {\n const marketWebContextService = new MarketWebContextService(href);\n\n if (!this.environment) {\n this.environment = await marketWebContextService.getEnvironmentName();\n }\n\n if (!this.endpoint && this.environment?.indexOf('local') === -1) {\n this.endpoint = await marketWebContextService.getEndpoint(this.environment, this.market);\n }\n\n if (!this.endpoint) {\n this.endpoint = '';\n }\n\n if (!this.language) {\n this.language = await marketWebContextService.getLanguage();\n }\n\n this.setTranslations()\n\n this.postalCodeRequiredLabel = \"\";\n this.streetRequiredLabel = \"\";\n\n if (this._postalCodeProps.postalCodeInputRequired === true) {\n this.postalCodeRequiredLabel = \" (\" + this.translation.required + \")\";\n }\n\n if (this._streetAddressProps.streetAddressInputRequired === true) {\n this.streetRequiredLabel = \" (\" + this.translation.required + \")\";\n }\n }\n\n setTranslations() {\n if (this.language === 'nb') {\n this.language = 'no';\n }\n if (this.language && translations[this.language]) {\n this.translation = translations[this.language];\n }\n }\n\n addEventHandlers() {\n let debounceTimeout: number | undefined;\n\n this.postalCodeInputField.addEventListener('input', (e) => {\n this.isLoading = true;\n clearTimeout(debounceTimeout);\n debounceTimeout = window.setTimeout(() => {\n this.fetchPostalCodeData(e);\n }, 300);\n });\n\n this.streetNumberInputField.addEventListener('input', debounce(this.fetchAddress.bind(this), 300));\n this.streetAddressInputField.addEventListener('keydown', () => { this.streetNumberInputField.value = '' });\n this.addFormFieldEvent();\n }\n\n addFormFieldEvent() {\n const allInputs = this.hostElement.querySelectorAll('input');\n allInputs.forEach(element => {\n ['keyup', 'change', 'blur'].forEach(eventName => {\n const debounceUpdate = debounce(this.updateHiddenValue.bind(this), 1000);\n element.addEventListener(eventName, debounceUpdate);\n });\n });\n }\n\n updateHiddenValue(e) {\n if (e.target === this.streetNumberInputField) {\n this.streetNumber = this.streetNumberInputField.value;\n }\n\n if (this.validAddress && this.postalCode && this.city && this.streetAddress && this.streetNumber) {\n this.fullAddress = `${this.streetAddress} ${this.streetNumber}, ${this.city} ${this.postalCode}`;\n } else {\n this.fullAddress = '';\n }\n\n this.addresscomplete.emit(this.fullAddress);\n }\n\n async fetchPostalCodeData(e: Event) {\n if (!e) {\n return;\n }\n const postalCode = this.postalCodeInputField.value;\n\n var postalCodeLength = 4;\n\n if (postalCode.length < postalCodeLength) {\n this.resetFields();\n return;\n }\n\n if (this.postalCode === postalCode) {\n return;\n }\n\n this.resetFields();\n this.postalCode = postalCode;\n\n var data = (await this.fetchPostalCode(postalCode));\n\n if (!data || !data.addresses) {\n this.city = null;\n this.isLoading = true;\n return;\n }\n\n const cityInfo = data.addresses?.find(addr => addr.postalCode === postalCode);\n this.city = cityInfo?.city || null;\n\n this.isLoading = false;\n }\n\n\n async fetchPostalCode(postalCode) {\n const endpointBase = this.endpoint.endsWith('/')\n ? this.endpoint.slice(0, -1)\n : this.endpoint;\n\n const fetchUrl = `${endpointBase}${this.endpointPath}?countryCode=${this.countryCode}&postalCode=${postalCode}`;\n\n try {\n const data = await this.fetchHelper.fetchJson(fetchUrl, { mode: 'cors' }, this.cache) as Root;\n\n if (!data?.addresses?.length) {\n this.pnInputPostalCode.setAttribute('error', this._postalCodeProps.postalCodeInputError);\n return;\n }\n return data;\n }\n catch (error) {\n console.error(\"Error fetching address data:\", error);\n this.isLoading = true;\n return null;\n }\n }\n\n private resetFields() {\n this.streetAddressInputField.value = '';\n this.streetNumberInputField.value = '';\n this.city = null;\n this.streetAddress = null;\n this.streetNumber = null;\n this.validAddress = false;\n\n let inputs = document.getElementsByTagName('pn-input');\n\n Array.from(inputs).forEach(element => {\n element.removeAttribute('error');\n });\n }\n\n async fetchAddress() {\n const streetAddress = this.streetAddressInputField.value.trim();\n const streetNumber = this.streetNumberInputField.value.trim();\n\n if (!streetAddress || !streetNumber) {\n this.validAddress = false;\n return;\n }\n\n const endpointBase = this.endpoint.endsWith('/')\n ? this.endpoint.slice(0, -1)\n : this.endpoint;\n\n const fetchUrl = `${endpointBase}${this.endpointPath}?countryCode=${this.countryCode}&postalCode=${this.postalCodeInputField.value}&address=${streetAddress + \" \" + streetNumber}`;\n\n try {\n const data = await this.fetchHelper.fetchJson(fetchUrl, { mode: 'cors' }, this.cache) as Root;\n\n if (!data?.addresses?.length) {\n this.validAddress = false;\n } else {\n const inputStreetAddress = this.normalizeChar(streetAddress);\n const inputStreetNumber = this.normalizeChar(streetNumber);\n\n const addressFound = data.addresses.some(addr =>\n this.normalizeChar(addr.street) === inputStreetAddress &&\n this.normalizeChar(addr.houseNumber) === inputStreetNumber &&\n addr.postalCode === this.postalCodeInputField.value\n );\n\n this.validAddress = addressFound;\n }\n } catch (error) {\n console.error(\"Error fetching address data:\", error);\n this.isLoading = true;\n this.validAddress = false;\n }\n\n if (this.streetAddress === streetAddress && this.streetNumber === streetNumber) {\n return;\n }\n\n if (streetAddress) {\n this.streetAddress = streetAddress;\n }\n if (streetNumber) {\n this.streetNumber = streetNumber;\n }\n }\n //this function is added to compare the street input values if entered without special characters like é, ø ect\n normalizeChar(str) {\n\n const specialCharMap = {\n 'ø': 'o',\n 'Ø': 'o',\n 'æ': 'ae',\n 'Æ': 'ae',\n // Add more as needed\n };\n\n var str1 = str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\")\n .split('').map(char => specialCharMap[char] || char)\n .join('').toLowerCase()\n return str1;\n }\n\n render() {\n return (\n <Host class=\"pn-address-autofill\">\n {this._postalCodeProps?.postalCodeCityLabel ? (\n <div class=\"label-container\">\n <label>{`${this._postalCodeProps.postalCodeCityLabel + ' ' + this.postalCodeRequiredLabel}`}</label>\n </div>\n ) : null}\n <div class=\"input-container-row\">\n <pn-input\n type=\"number\"\n name={this._postalCodeProps?.postalCodeInputName}\n required={this._postalCodeProps?.postalCodeInputRequired}\n placeholder={this._postalCodeProps?.postalCodeInputPlaceholder}\n ref={el => (this.pnInputPostalCode = el as HTMLElement)}\n autocomplete=\"off\"\n helpertext={this._postalCodeProps?.postalCodeInputHelpertext}\n ></pn-input>\n\n <pn-input\n type=\"text\"\n name={this._cityProps?.cityInputName}\n disabled\n value={this.city}\n placeholder={this._cityProps?.cityInputPlaceholder}\n autocomplete=\"off\"\n helpertext={this._cityProps?.cityInputHelpertext}\n ></pn-input>\n </div>\n\n {this._streetAddressProps?.streetAddressNumberLabel ? (\n <div class=\"label-container\">\n <label>{`${this._streetAddressProps.streetAddressNumberLabel + ' ' + this.streetRequiredLabel}`}</label>\n </div>\n ) : null}\n <div class=\"input-container-row\">\n <pn-input\n type=\"text\"\n name={this._streetAddressProps?.streetAddressInputName}\n required={this._streetAddressProps?.streetAddressInputRequired}\n value={this.streetAddress}\n placeholder={this._streetAddressProps?.streetAddressInputPlaceholder}\n ref={el => (this.pnInputStreetAddress = el as HTMLElement)}\n autocomplete=\"off\"\n helpertext={this._streetAddressProps?.streetAddressInputHelpertext}\n disabled={this.isLoading}\n ></pn-input>\n\n <pn-input\n type=\"text\"\n name={this._streetNumberProps?.streetNumberInputName}\n required={this._streetNumberProps?.streetNumberInputRequired}\n value={this.streetNumber}\n placeholder={this._streetNumberProps?.streetNumberInputPlaceholder}\n ref={el => (this.pnInputStreetNumber = el as HTMLElement)}\n autocomplete=\"off\"\n helpertext={this._streetNumberProps?.streetNumberInputHelpertext}\n disabled={this.isLoading}\n ></pn-input>\n </div>\n {(!this.validAddress && this.streetAddressInputField.value && this.streetNumberInputField.value) ? (\n <div class=\"toast-container\">\n <pn-toast text={this.addressNotFoundError ?? this.translation.addressNotFound} appearance=\"warning\" icon={alert_exclamation_circle}></pn-toast>\n </div>\n ) : null}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -21,7 +21,7 @@ const Template = ({ ...args }) => {
|
|
|
21
21
|
street-address-props='${args.streetAddressProps}'
|
|
22
22
|
street-number-props='${args.streetNumberProps}'
|
|
23
23
|
endpoint='${args.endpoint}'
|
|
24
|
-
|
|
24
|
+
address-not-found-error="${args.addressNotFoundError}"
|
|
25
25
|
>
|
|
26
26
|
</pn-address-autofill>`;
|
|
27
27
|
};
|
|
@@ -34,6 +34,7 @@ Primary.args = {
|
|
|
34
34
|
endpoint: 'https://localhost:51547/',
|
|
35
35
|
cache: true,
|
|
36
36
|
countryCode: 'se',
|
|
37
|
+
addressNotFoundError: "Address not found in storybook",
|
|
37
38
|
postalCodeProps:
|
|
38
39
|
'{"postalCodeCityLabel":"Postal Code and city labe","postalCodeInputName":"__postalcode","postalCodeInputPlaceholder":"Postal Code","postalCodeInputRequired":true,"postalCodeInputHelpertext":"Postal Code Helpertext", "postalCodeInputError":"Too low"}',
|
|
39
40
|
cityProps: '{"cityInputName":"__city","cityInputPlaceholder":"City","cityInputHelpertext":"City Helpertext"}',
|
|
@@ -2,17 +2,20 @@ export const translations = {
|
|
|
2
2
|
'sv': {
|
|
3
3
|
errorEmpty: 'Får inte vara tom',
|
|
4
4
|
errorPostalCode: 'Kan inte hitta postkoden',
|
|
5
|
-
required: 'obligatoriskt'
|
|
5
|
+
required: 'obligatoriskt',
|
|
6
|
+
addressNotFound: 'Adressen hittades inte'
|
|
6
7
|
},
|
|
7
8
|
'en': {
|
|
8
9
|
errorEmpty: 'Cannot be empty',
|
|
9
10
|
errorPostalCode: 'Could not find postalcode',
|
|
10
|
-
required: 'required'
|
|
11
|
+
required: 'required',
|
|
12
|
+
addressNotFound: 'Address not found'
|
|
11
13
|
},
|
|
12
14
|
'da': {
|
|
13
15
|
errorEmpty: 'Kan ikke være tom',
|
|
14
16
|
errorPostalCode: 'Kunne ikke finde postnummeret',
|
|
15
|
-
required: 'påkrævet'
|
|
17
|
+
required: 'påkrævet',
|
|
18
|
+
addressNotFound: 'Adressen blev ikke fundet'
|
|
16
19
|
},
|
|
17
20
|
'no': {
|
|
18
21
|
errorEmpty: 'Cannot be empty',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.js","sourceRoot":"","sources":["../../../../src/components/input/pn-address-autofill/translations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE;QACJ,UAAU,EAAE,mBAAmB;QAC/B,eAAe,EAAE,0BAA0B;QAC3C,QAAQ,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"translations.js","sourceRoot":"","sources":["../../../../src/components/input/pn-address-autofill/translations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE;QACJ,UAAU,EAAE,mBAAmB;QAC/B,eAAe,EAAE,0BAA0B;QAC3C,QAAQ,EAAE,eAAe;QACzB,eAAe,EAAE,wBAAwB;KAC1C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;QAC5C,QAAQ,EAAE,UAAU;QACpB,eAAe,EAAE,mBAAmB;KACrC;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,mBAAmB;QAC/B,eAAe,EAAE,+BAA+B;QAChD,QAAQ,EAAE,UAAU;QACpB,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;QAC5C,QAAQ,EAAE,YAAY;KACvB;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;IACD,OAAO,EAAE;QACP,UAAU,EAAE,iBAAiB;QAC7B,eAAe,EAAE,2BAA2B;KAC7C;CACF,CAAC","sourcesContent":["export const translations = {\n 'sv': {\n errorEmpty: 'Får inte vara tom',\n errorPostalCode: 'Kan inte hitta postkoden',\n required: 'obligatoriskt',\n addressNotFound: 'Adressen hittades inte'\n },\n 'en': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n required: 'required',\n addressNotFound: 'Address not found'\n },\n 'da': {\n errorEmpty: 'Kan ikke være tom',\n errorPostalCode: 'Kunne ikke finde postnummeret',\n required: 'påkrævet',\n addressNotFound: 'Adressen blev ikke fundet'\n },\n 'no': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'fi': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n required: 'pakollinen'\n },\n 'de': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'zh': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'fr': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'es': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'nl': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'it': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'tr': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'pl': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'pt': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n 'pt-BR': {\n errorEmpty: 'Cannot be empty',\n errorPostalCode: 'Could not find postalcode',\n },\n};\n"]}
|
package/collection/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.js
CHANGED
|
@@ -82,12 +82,14 @@ export class pnDropdownChoiceAddsRow {
|
|
|
82
82
|
this.rowvalues.emit('');
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
+
let allRowsValid = true;
|
|
85
86
|
const formValues = allRows.map(row => {
|
|
86
87
|
const nameElm = row.querySelector('.tr-name');
|
|
87
88
|
const dropdownElm = row.querySelector('.tr-dropdown');
|
|
88
89
|
const inputElm = row.querySelector('.tr-input');
|
|
89
90
|
if (!nameElm || !inputElm) {
|
|
90
|
-
|
|
91
|
+
allRowsValid = false;
|
|
92
|
+
return null;
|
|
91
93
|
}
|
|
92
94
|
const rowData = {
|
|
93
95
|
row: [
|
|
@@ -97,11 +99,14 @@ export class pnDropdownChoiceAddsRow {
|
|
|
97
99
|
}
|
|
98
100
|
]
|
|
99
101
|
};
|
|
100
|
-
if (dropdownElm) {
|
|
102
|
+
if (dropdownElm && dropdownElm.querySelector('pn-select')) {
|
|
101
103
|
const pnSelect = dropdownElm.querySelector('pn-select');
|
|
102
104
|
const nativeSelect = pnSelect?.querySelector('select');
|
|
103
105
|
const dropdownSelection = nativeSelect?.value || '';
|
|
104
|
-
if (dropdownSelection) {
|
|
106
|
+
if (!dropdownSelection) {
|
|
107
|
+
allRowsValid = false;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
105
110
|
rowData.row.push({
|
|
106
111
|
name: this.rowDropdownLabel,
|
|
107
112
|
value: dropdownSelection
|
|
@@ -116,16 +121,22 @@ export class pnDropdownChoiceAddsRow {
|
|
|
116
121
|
value: inputValue.toString()
|
|
117
122
|
});
|
|
118
123
|
}
|
|
124
|
+
else {
|
|
125
|
+
allRowsValid = false;
|
|
126
|
+
}
|
|
119
127
|
return rowData;
|
|
120
128
|
});
|
|
121
|
-
if (!
|
|
129
|
+
if (!allRowsValid || !formValues.length || formValues.includes(null)) {
|
|
122
130
|
this.formValue = '';
|
|
131
|
+
this.rowvalues.emit('');
|
|
123
132
|
return;
|
|
124
133
|
}
|
|
125
134
|
this.formValue = `PN-JSON|${JSON.stringify(formValues)}`;
|
|
126
135
|
if (this.validateInputs()) {
|
|
127
136
|
this.rowvalues.emit(this.formValue);
|
|
128
|
-
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.rowvalues.emit('');
|
|
129
140
|
}
|
|
130
141
|
}
|
|
131
142
|
catch (error) {
|
|
@@ -173,6 +184,7 @@ export class pnDropdownChoiceAddsRow {
|
|
|
173
184
|
this.tableBody.appendChild(newRow);
|
|
174
185
|
this.updateRowSelectDropdown();
|
|
175
186
|
this.nextRowIndex++;
|
|
187
|
+
selectedElement.value = '';
|
|
176
188
|
}
|
|
177
189
|
getCurrentRow(selectedValue) {
|
|
178
190
|
return this.hostElement.querySelectorAll(`.tr-name[data-name='${selectedValue}'`);
|
|
@@ -311,7 +323,7 @@ export class pnDropdownChoiceAddsRow {
|
|
|
311
323
|
return true;
|
|
312
324
|
}
|
|
313
325
|
render() {
|
|
314
|
-
return (h(Host, { key: '
|
|
326
|
+
return (h(Host, { key: '4d75a1a804885406d9bf70647ee031b283001316' }, h("div", { key: '4db2eab15b25d322bd8081f22fa0dfb4e40ff1d8', class: "dropdown-choice-form-row" }, h("pn-select", { key: '34479df6fd80391a95628b34a9d3d4007a43700a', ref: el => (this.pnRowSelectDropdown = el), name: this.addRowDropdownName, label: this.addRowDropdownLabel, class: "pn-row-select-dropdown", language: this.languageCode }, h("option", { key: 'c445488973b9c7127a55f0f83cfb46276f3a165e', value: "", selected: true, disabled: true }, this.addRowDropdownPlaceholder), this.rowSelectDropdownArr?.map((value) => h("option", { label: value, value: value }, value)))), h("div", { key: '15abdc5dae3056d3e81069c01e67245aacba5c59', class: "dropdown-choice-form-row" }, h("div", { key: '2386cfc37b14b5769e095596f191054b2fb3e0af', class: "pn-dropdown-choice-table" }, h("div", { key: '123b39e0fc0dba53aa35da0dea41178f77633c76', ref: el => (this.tableHead = el) }, this.nextRowIndex === 0 ? null : (h("div", { class: "table-header" }, h("div", { class: "table-header-name" }, h("label", null, this.rowNameLabel)), h("div", { class: "table-header-dropdown" }, h("label", null, this.rowDropdownLabel)), h("div", { class: "table-header-input" }, h("label", null, this.rowInputLabel)), h("div", { class: "table-header-delete" })))), h("div", { key: '8d6e932979cd2065cbf77a70e74e30d087351b24', ref: el => (this.tableBody = el), class: "pn-dropdown-choice-table-slot" }, h("slot", { key: '8957b9b3b30d090c51bc993ff4676f91a2846a15' }))))));
|
|
315
327
|
}
|
|
316
328
|
static get is() { return "pn-dropdown-choice-adds-row"; }
|
|
317
329
|
static get originalStyleUrls() {
|
package/collection/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pn-dropdown-choice-adds-row.js","sourceRoot":"","sources":["../../../../src/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAErG,OAAO,QAAQ,MAAM,UAAU,CAAC;AAMhC,MAAM,OAAO,uBAAuB;;4BAOM,IAAI;4BACb,IAAI;kCACE,EAAE;yCACK,EAAE;mCACR,EAAE;4BACT,EAAE;8BACC,IAAI;gCACH,EAAE;sCACI,EAAE;6BACX,EAAE;mCACI,EAAE;+BACN,CAAC;iCACC,IAAI;iCACJ,IAAI;oCACD,IAAI;4BAEX,IAAI;oCACM,IAAI;yBACjB,IAAI;;IAxBtB,WAAW,CAAU;IAChC,mBAAmB,GAAgB,IAAI,CAAC;IACxC,SAAS,GAAgB,IAAI,CAAC;IAC9B,SAAS,GAAgB,IAAI,CAAC;IACtB,aAAa,CAAS;IAsBrB,SAAS,CAAuB;IAGzC,mBAAmB;QACjB,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACnC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,GAAG,CAAC,CAAC,EAAE;QACjB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAEhF,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACtC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,aAAa,CAAC,WAAW,CAAgB,CAAC;YACxG,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,sBAAsB;QACpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;YAE/E,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,oBAAoB,IAAI,4BAA4B,EAAE,CAAC,CAAC;gBACnG,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACnC,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC9C,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAEhD,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACxD,CAAC;gBAED,MAAM,OAAO,GAAG;oBACd,GAAG,EAAE;wBACH;4BACE,IAAI,EAAE,IAAI,CAAC,YAAY;4BACvB,KAAK,EAAE,OAAO,CAAC,SAAS;yBACzB;qBACF;iBACF,CAAC;gBAEF,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;oBACxD,MAAM,YAAY,GAAG,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACvD,MAAM,iBAAiB,GAAG,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;oBACpD,IAAI,iBAAiB,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,IAAI,CAAC,gBAAgB;4BAC3B,KAAK,EAAE,iBAAiB;yBACzB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,IAAI,CAAC,aAAa;wBACxB,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;qBAC7B,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/D,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAEzD,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,CAAc;QAC1B,MAAM,eAAe,GAAG,CAAC,CAAC,MAA2B,CAAC;QACtD,MAAM,aAAa,GAAG,eAAe,EAAE,KAAK,CAAC;QAE7C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;QAC/E,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,SAAS,GAAG,qBAAqB,CAAC;QACzC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpD,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC;QACpC,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC;QACxC,aAAa,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAElC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;QAEjF,IAAI,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAC7D,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACvD,gBAAgB,CAAC,SAAS,GAAG,WAAW,CAAC;YACzC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAEjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,aAAqB;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,uBAAuB,aAAa,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,oBAAoB,CAAC,aAAqB;QACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrD,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;QACjF,MAAM,oBAAoB,GAAG,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAErD,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,mCAAmC,CAAC,EAAE,WAAW,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACrD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,aAAa,WAAW,CAAC,CAAC;YAC3D,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAClE,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC1C,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAEnC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrD,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACtC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACtD,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC5B,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC5B,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAElC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACrD,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnD,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnD,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC1C,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,aAAqB;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,aAAa,QAAQ,CAAC,CAAC;QACxD,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,wBAAwB;QACtB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACtD,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3C,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAChD,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzE,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,uBAAuB;QAGrB,MAAM,IAAI,GAAU,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE;YAChF,MAAM,cAAc,GAAG,EAAE,EAAE,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;YACxE,MAAM,mBAAmB,GAAG,cAAc,EAAE,aAAa,CAAC,yBAAyB,CAAC,EAAE,WAAW,CAAC;YAClG,MAAM,GAAG,GAAQ;gBACf,OAAO,EAAE,EAAE,EAAE,SAAS;gBACtB,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAAE,WAAW;gBACjF,WAAW,EAAE,mBAAmB;aACjC,CAAC;YACF,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1E,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,CAAC,CAAC,aAAkC,CAAC;QACvD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC5D,SAAS,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAE7E,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACzB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,cAAc;QACZ,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,kBAAkB,EAAE,CAAC;YACvB,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACxC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO;gBACT,CAAC;gBAED,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACvD,MAAM,WAAW,GAAG,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC;gBAE3C,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;oBAC/C,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,oBAAoB,IAAI,4BAA4B,EAAE,CAAC,CAAC;oBACnG,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC/B,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBACvD,IAAI,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEjD,IAAI,IAAI,CAAC,eAAe,GAAG,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzE,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,EAAE,CAAC,CAAC;wBAClF,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;yBAAM,IAAI,YAAY,IAAI,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;wBACpD,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,IAAI,4BAA4B,EAAE,CAAC,CAAC;wBAC7F,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBACpC,WAAW,GAAG,KAAK,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,IAAI,WAAW,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAC,0BAA0B;gBACnC,kEACE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAiB,CAAC,EACzD,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAC7B,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAC/B,KAAK,EAAC,wBAAwB,EAC9B,QAAQ,EAAE,IAAI,CAAC,YAAY;oBAC3B,+DAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,QAAC,QAAQ,UAAE,IAAI,CAAC,yBAAyB,CAAU;oBAC3E,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,cAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAG,KAAK,CAAU,CAAC,CAC9F,CACR;YACN,4DAAK,KAAK,EAAC,0BAA0B;gBACnC,4DAAK,KAAK,EAAC,0BAA0B;oBACnC,4DAAK,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAiB,CAAC,IACjD,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChC,WAAK,KAAK,EAAC,cAAc;wBACvB,WAAK,KAAK,EAAC,mBAAmB;4BAC5B,iBAAQ,IAAI,CAAC,YAAY,CAAS,CAC9B;wBACN,WAAK,KAAK,EAAC,uBAAuB;4BAChC,iBAAQ,IAAI,CAAC,gBAAgB,CAAS,CAClC;wBACN,WAAK,KAAK,EAAC,oBAAoB;4BAC7B,iBAAQ,IAAI,CAAC,aAAa,CAAS,CAC/B;wBACN,WAAK,KAAK,EAAC,qBAAqB,GAAO,CACnC,CACP,CACG;oBACN,4DAAK,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAiB,CAAC,EAAE,KAAK,EAAC,+BAA+B;wBACzF,8DAAa,CACT,CACF,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Element, State, Host, Watch, Event, EventEmitter } from '@stencil/core';\nimport { FormValue, RowValue, Root } from './types';\nimport debounce from 'debounce';\n\n@Component({\n tag: 'pn-dropdown-choice-adds-row',\n styleUrl: 'pn-dropdown-choice-adds-row.scss',\n})\nexport class pnDropdownChoiceAddsRow {\n @Element() hostElement: Element;\n pnRowSelectDropdown: HTMLElement = null;\n tableHead: HTMLElement = null;\n tableBody: HTMLElement = null;\n private _dropdownData: Root[];\n\n @Prop() dropdownData: string | Root[] = null;\n @Prop() languageCode: string = null;\n @Prop() addRowDropdownName: string = '';\n @Prop() addRowDropdownPlaceholder: string = '';\n @Prop() addRowDropdownLabel: string = '';\n @Prop() rowNameLabel: string = '';\n @Prop() rowHasDropdown: boolean = true;\n @Prop() rowDropdownLabel: string = '';\n @Prop() rowDropdownPlaceholder: string = '';\n @Prop() rowInputLabel: string = '';\n @Prop() rowDeleteButtonText: string = '';\n @Prop() totalInputLimit: number = 0;\n @Prop() inputLimitWarning: string = null;\n @Prop() inputEmptyWarning: string = null;\n @Prop() dropdownEmptyWarning: string = null;\n\n @State() nextRowIndex: number = null;\n @State() rowSelectDropdownArr: string[] = null;\n @State() formValue: string = null;\n\n @Event() rowvalues: EventEmitter<string>;\n\n @Watch('dropdownData')\n dropdownDataWatcher() {\n if (typeof this.dropdownData === 'string') {\n this._dropdownData = JSON.parse(this.dropdownData);\n } else {\n this._dropdownData = this.dropdownData;\n }\n }\n\n componentWillLoad() {\n this.dropdownDataWatcher();\n }\n\n componentDidLoad() {\n this.setInitialValues();\n this.addEventHandlers();\n }\n\n addEventHandlers() {\n this.pnRowSelectDropdown.addEventListener('change', debounce(this.addRowElement.bind(this), 500));\n }\n\n setInitialValues() {\n this.nextRowIndex = 0;\n this.setRowSelectDropdownArr();\n }\n\n setRowSelectDropdownArr() {\n this.rowSelectDropdownArr = [];\n this._dropdownData.forEach(element => {\n this.rowSelectDropdownArr.push(element.label);\n });\n }\n\n formRowEvent = e => {\n const debouncedAddValue = debounce(this.updateHiddenFieldValue.bind(this), 500);\n\n if (e.target.matches('input')) {\n ['change', 'keyup'].forEach(eventName => {\n e.target.addEventListener(eventName, debouncedAddValue);\n });\n } else {\n const rowDropdown = e.target.closest('.generated-table-row')?.querySelector('pn-select') as HTMLElement;\n if (rowDropdown) {\n rowDropdown.addEventListener('change', debouncedAddValue);\n }\n }\n };\n\n updateHiddenFieldValue() {\n try {\n const allRows = [...this.tableBody.querySelectorAll('.generated-table-row')];\n const mainDropdown = this.hostElement.querySelector('.pn-row-select-dropdown');\n\n if (!mainDropdown) {\n return;\n }\n\n if (!allRows.length) {\n mainDropdown.setAttribute('error', `${this.dropdownEmptyWarning || \"This field cannot be empty\"}`);\n this.formValue = '';\n this.rowvalues.emit('');\n return;\n }\n\n const formValues = allRows.map(row => {\n const nameElm = row.querySelector('.tr-name');\n const dropdownElm = row.querySelector('.tr-dropdown');\n const inputElm = row.querySelector('.tr-input');\n\n if (!nameElm || !inputElm) {\n throw new Error('Required elements missing from row');\n }\n\n const rowData = {\n row: [\n {\n name: this.rowNameLabel,\n value: nameElm.innerHTML\n }\n ]\n };\n\n if (dropdownElm) {\n const pnSelect = dropdownElm.querySelector('pn-select');\n const nativeSelect = pnSelect?.querySelector('select');\n const dropdownSelection = nativeSelect?.value || '';\n if (dropdownSelection) {\n rowData.row.push({\n name: this.rowDropdownLabel,\n value: dropdownSelection\n });\n }\n }\n\n const input = inputElm.querySelector('input');\n const inputValue = parseInt(input?.value || '0', 10);\n if (inputValue > 0) {\n rowData.row.push({\n name: this.rowInputLabel,\n value: inputValue.toString()\n });\n }\n return rowData;\n });\n\n if (!formValues.length || formValues.length !== allRows.length) {\n this.formValue = '';\n return;\n }\n\n this.formValue = `PN-JSON|${JSON.stringify(formValues)}`;\n\n if (this.validateInputs()) {\n this.rowvalues.emit(this.formValue);\n return;\n }\n\n } catch (error) {\n console.error('Error updating field value: ', error);\n this.formValue = '';\n }\n }\n\n addRowElement(e: CustomEvent) {\n const selectedElement = e.target as HTMLSelectElement;\n const selectedValue = selectedElement?.value;\n\n if (!selectedValue) {\n return;\n }\n\n const mainDropdown = this.hostElement.querySelector('.pn-row-select-dropdown');\n mainDropdown?.removeAttribute('error');\n\n if (!this.tableBody) {\n console.error('tableBody is not defined.');\n return;\n }\n\n const newRow = document.createElement('div');\n newRow.setAttribute('index', `${this.nextRowIndex}`);\n newRow.className = 'generated-table-row';\n newRow.onclick = e => this.formRowEvent(e);\n\n const rowNameColumn = document.createElement('div');\n rowNameColumn.className = 'tr-name';\n rowNameColumn.innerHTML = selectedValue;\n rowNameColumn.dataset.name = selectedValue;\n newRow.appendChild(rowNameColumn);\n\n const selectedR = this._dropdownData?.find(item => item.label === selectedValue);\n\n if (selectedR?.values?.length) {\n this.rowHasDropdown = true;\n const dropdownCol = this.createDropdownColumn(selectedValue);\n newRow.appendChild(dropdownCol);\n } else {\n this.rowHasDropdown = false;\n const emptyDropdownCol = document.createElement('div');\n emptyDropdownCol.className = 'tr-column';\n newRow.appendChild(emptyDropdownCol);\n }\n\n const rowInputColumn = this.createInputColumn(selectedValue);\n newRow.appendChild(rowInputColumn);\n\n const deleteButton = this.createDeleteButtonColumn();\n newRow.appendChild(deleteButton);\n\n this.tableBody.appendChild(newRow);\n\n this.updateRowSelectDropdown();\n this.nextRowIndex++;\n }\n\n getCurrentRow(selectedValue: string) {\n return this.hostElement.querySelectorAll(`.tr-name[data-name='${selectedValue}'`);\n }\n\n createDropdownColumn(selectedValue: string) {\n const dropdownColumn = document.createElement('div');\n dropdownColumn.setAttribute('class', 'tr-dropdown');\n const selectedItem = this._dropdownData.find(arr => arr.label === selectedValue);\n const selectedOptionValues = [];\n const currentRow = this.getCurrentRow(selectedValue);\n\n currentRow.forEach(row => {\n selectedOptionValues.push(row.parentElement?.querySelector('.tr-dropdown [aria-selected=true]')?.textContent);\n });\n\n if (selectedItem.values.length) {\n const dropdown = document.createElement('pn-select');\n dropdown.setAttribute('name', `${selectedValue}-dropdown`);\n dropdown.setAttribute('placeholder', this.rowDropdownPlaceholder);\n dropdown.setAttribute('required', 'true');\n dropdown.setAttribute('error', '');\n\n const placeholder = document.createElement('option');\n placeholder.setAttribute(\"value\", \"\");\n placeholder.textContent = this.rowDropdownPlaceholder;\n placeholder.selected = true;\n placeholder.disabled = true;\n dropdown.appendChild(placeholder);\n\n selectedItem.values.forEach(childItem => {\n const childOption = document.createElement('option');\n childOption.setAttribute(\"label\", childItem.label);\n childOption.setAttribute(\"value\", childItem.label);\n childOption.textContent = childItem.label;\n dropdown.appendChild(childOption);\n });\n\n dropdownColumn.appendChild(dropdown);\n }\n\n return dropdownColumn;\n }\n\n createInputColumn(selectedValue: string) {\n const inputColumn = document.createElement('div');\n inputColumn.setAttribute('class', 'tr-input');\n const inputElm = document.createElement('pn-input');\n inputElm.setAttribute('type', 'number');\n inputElm.setAttribute('name', `${selectedValue}-input`);\n inputElm.setAttribute('placeholder', '0');\n if (this.totalInputLimit > 0) {\n inputElm.setAttribute('max', `${this.totalInputLimit}`);\n }\n inputElm.setAttribute('min', '0');\n inputElm.setAttribute('error', '');\n inputColumn.appendChild(inputElm);\n return inputColumn;\n }\n\n createDeleteButtonColumn() {\n const buttonColumn = document.createElement('div');\n buttonColumn.setAttribute('class', 'tr-delete');\n const buttonElm = document.createElement('pn-button');\n buttonElm.onclick = e => this.deleteRow(e);\n buttonElm.setAttribute('appearance', 'warning');\n buttonElm.setAttribute('small', 'true');\n buttonElm.appendChild(document.createTextNode(this.rowDeleteButtonText));\n buttonColumn.appendChild(buttonElm);\n return buttonColumn;\n }\n\n updateRowSelectDropdown() {\n type Row = { rowName: string; selectedValue: string; placeholder: string };\n\n const rows: Row[] = [].map.call(this.tableBody.querySelectorAll('.tr-name'), el => {\n const dropdownColumn = el?.parentElement?.querySelector('.tr-dropdown');\n const dropdownPlaceholder = dropdownColumn?.querySelector('.pn-select-content span')?.textContent;\n const row: Row = {\n rowName: el?.innerHTML,\n selectedValue: dropdownColumn?.querySelector('[aria-selected=true]')?.textContent,\n placeholder: dropdownPlaceholder,\n };\n return row;\n });\n\n const selectOptions = this.pnRowSelectDropdown.querySelectorAll('option');\n selectOptions.forEach(elm => {\n elm.removeAttribute('selected');\n });\n }\n\n deleteRow(e: Event) {\n e.preventDefault();\n this.nextRowIndex--;\n const targetElm = e.currentTarget as HTMLButtonElement;\n const targetRow = targetElm.closest('.generated-table-row');\n targetRow.remove();\n const allRows = [...this.tableBody.querySelectorAll('.generated-table-row')];\n\n allRows.map((elm, index) => {\n elm.setAttribute('index', `${index}`);\n });\n this.updateHiddenFieldValue()\n this.updateRowSelectDropdown();\n }\n\n validateInputs() {\n const dropdownSelections = this.tableBody.querySelectorAll('pn-select');\n const numberInputs = this.tableBody.querySelectorAll('pn-input');\n let selectionEmpty = false;\n let showWarning = false;\n\n if (dropdownSelections) {\n dropdownSelections.forEach(dropdownElem => {\n if (!dropdownElem) {\n return;\n }\n\n const selection = dropdownElem.querySelector('select');\n const dropdownVal = selection?.value || '';\n\n if (dropdownVal === null || dropdownVal === \"\") {\n dropdownElem.setAttribute('error', `${this.dropdownEmptyWarning || \"This field cannot be empty\"}`);\n selectionEmpty = true;\n } else {\n dropdownElem.setAttribute('error', '');\n }\n });\n }\n\n if (numberInputs) {\n numberInputs.forEach(inputElem => {\n if (inputElem) {\n const currentNumber = inputElem.querySelector(\"input\");\n let currentValue = parseInt(currentNumber.value);\n\n if (this.totalInputLimit < currentValue && inputElem.hasAttribute('max')) {\n inputElem.setAttribute('error', `${this.inputLimitWarning || \"Amount too high\"}`);\n showWarning = true;\n } else if (currentValue <= 0 || isNaN(currentValue)) {\n inputElem.setAttribute('error', `${this.inputEmptyWarning || \"This field cannot be empty\"}`);\n showWarning = true;\n } else {\n inputElem.setAttribute('error', '');\n showWarning = false;\n }\n }\n });\n }\n\n if (selectionEmpty || showWarning) {\n return false;\n }\n\n return true;\n }\n\n render() {\n return (\n <Host>\n <div class=\"dropdown-choice-form-row\">\n <pn-select\n ref={el => (this.pnRowSelectDropdown = el as HTMLElement)}\n name={this.addRowDropdownName}\n label={this.addRowDropdownLabel}\n class=\"pn-row-select-dropdown\"\n language={this.languageCode}>\n <option value=\"\" selected disabled>{this.addRowDropdownPlaceholder}</option>\n {this.rowSelectDropdownArr?.map((value: string) => <option label={value} value={value}>{value}</option>)}\n </pn-select>\n </div>\n <div class=\"dropdown-choice-form-row\">\n <div class=\"pn-dropdown-choice-table\">\n <div ref={el => (this.tableHead = el as HTMLElement)}>\n {this.nextRowIndex === 0 ? null : (\n <div class=\"table-header\">\n <div class=\"table-header-name\">\n <label>{this.rowNameLabel}</label>\n </div>\n <div class=\"table-header-dropdown\">\n <label>{this.rowDropdownLabel}</label>\n </div>\n <div class=\"table-header-input\">\n <label>{this.rowInputLabel}</label>\n </div>\n <div class=\"table-header-delete\"></div>\n </div>\n )}\n </div>\n <div ref={el => (this.tableBody = el as HTMLElement)} class=\"pn-dropdown-choice-table-slot\">\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pn-dropdown-choice-adds-row.js","sourceRoot":"","sources":["../../../../src/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, State, Host, Watch, Event, EventEmitter } from '@stencil/core';\nimport { FormValue, RowValue, Root } from './types';\nimport debounce from 'debounce';\n\n@Component({\n tag: 'pn-dropdown-choice-adds-row',\n styleUrl: 'pn-dropdown-choice-adds-row.scss',\n})\nexport class pnDropdownChoiceAddsRow {\n @Element() hostElement: Element;\n pnRowSelectDropdown: HTMLElement = null;\n tableHead: HTMLElement = null;\n tableBody: HTMLElement = null;\n private _dropdownData: Root[];\n\n @Prop() dropdownData: string | Root[] = null;\n @Prop() languageCode: string = null;\n @Prop() addRowDropdownName: string = '';\n @Prop() addRowDropdownPlaceholder: string = '';\n @Prop() addRowDropdownLabel: string = '';\n @Prop() rowNameLabel: string = '';\n @Prop() rowHasDropdown: boolean = true;\n @Prop() rowDropdownLabel: string = '';\n @Prop() rowDropdownPlaceholder: string = '';\n @Prop() rowInputLabel: string = '';\n @Prop() rowDeleteButtonText: string = '';\n @Prop() totalInputLimit: number = 0;\n @Prop() inputLimitWarning: string = null;\n @Prop() inputEmptyWarning: string = null;\n @Prop() dropdownEmptyWarning: string = null;\n\n @State() nextRowIndex: number = null;\n @State() rowSelectDropdownArr: string[] = null;\n @State() formValue: string = null;\n\n @Event() rowvalues: EventEmitter<string>;\n\n @Watch('dropdownData')\n dropdownDataWatcher() {\n if (typeof this.dropdownData === 'string') {\n this._dropdownData = JSON.parse(this.dropdownData);\n } else {\n this._dropdownData = this.dropdownData;\n }\n }\n\n componentWillLoad() {\n this.dropdownDataWatcher();\n }\n\n componentDidLoad() {\n this.setInitialValues();\n this.addEventHandlers();\n }\n\n addEventHandlers() {\n this.pnRowSelectDropdown.addEventListener('change', debounce(this.addRowElement.bind(this), 500));\n }\n\n setInitialValues() {\n this.nextRowIndex = 0;\n this.setRowSelectDropdownArr();\n }\n\n setRowSelectDropdownArr() {\n this.rowSelectDropdownArr = [];\n this._dropdownData.forEach(element => {\n this.rowSelectDropdownArr.push(element.label);\n });\n }\n\n formRowEvent = e => {\n const debouncedAddValue = debounce(this.updateHiddenFieldValue.bind(this), 500);\n\n if (e.target.matches('input')) {\n ['change', 'keyup'].forEach(eventName => {\n e.target.addEventListener(eventName, debouncedAddValue);\n });\n } else {\n const rowDropdown = e.target.closest('.generated-table-row')?.querySelector('pn-select') as HTMLElement;\n if (rowDropdown) {\n rowDropdown.addEventListener('change', debouncedAddValue);\n }\n }\n };\n\n updateHiddenFieldValue() {\n try {\n const allRows = [...this.tableBody.querySelectorAll('.generated-table-row')];\n const mainDropdown = this.hostElement.querySelector('.pn-row-select-dropdown');\n\n if (!mainDropdown) {\n return;\n }\n\n if (!allRows.length) {\n mainDropdown.setAttribute('error', `${this.dropdownEmptyWarning || \"This field cannot be empty\"}`);\n this.formValue = '';\n this.rowvalues.emit('');\n return;\n }\n\n let allRowsValid = true;\n const formValues = allRows.map(row => {\n const nameElm = row.querySelector('.tr-name');\n const dropdownElm = row.querySelector('.tr-dropdown');\n const inputElm = row.querySelector('.tr-input');\n\n if (!nameElm || !inputElm) {\n allRowsValid = false;\n return null;\n }\n\n const rowData = {\n row: [\n {\n name: this.rowNameLabel,\n value: nameElm.innerHTML\n }\n ]\n };\n\n if (dropdownElm && dropdownElm.querySelector('pn-select')) {\n const pnSelect = dropdownElm.querySelector('pn-select');\n const nativeSelect = pnSelect?.querySelector('select');\n const dropdownSelection = nativeSelect?.value || '';\n if (!dropdownSelection) {\n allRowsValid = false;\n } else {\n rowData.row.push({\n name: this.rowDropdownLabel,\n value: dropdownSelection\n });\n }\n }\n\n const input = inputElm.querySelector('input');\n const inputValue = parseInt(input?.value || '0', 10);\n if (inputValue > 0) {\n rowData.row.push({\n name: this.rowInputLabel,\n value: inputValue.toString()\n });\n } else {\n allRowsValid = false;\n }\n return rowData;\n });\n\n if (!allRowsValid || !formValues.length || formValues.includes(null)) {\n this.formValue = '';\n this.rowvalues.emit('');\n return;\n }\n\n this.formValue = `PN-JSON|${JSON.stringify(formValues)}`;\n \n if (this.validateInputs()) {\n this.rowvalues.emit(this.formValue);\n } else {\n this.rowvalues.emit('');\n }\n\n } catch (error) {\n console.error('Error updating field value: ', error);\n this.formValue = '';\n }\n }\n\n addRowElement(e: CustomEvent) {\n const selectedElement = e.target as HTMLSelectElement;\n const selectedValue = selectedElement?.value;\n\n if (!selectedValue) {\n return;\n }\n\n const mainDropdown = this.hostElement.querySelector('.pn-row-select-dropdown');\n mainDropdown?.removeAttribute('error');\n\n if (!this.tableBody) {\n console.error('tableBody is not defined.');\n return;\n }\n\n const newRow = document.createElement('div');\n newRow.setAttribute('index', `${this.nextRowIndex}`);\n newRow.className = 'generated-table-row';\n newRow.onclick = e => this.formRowEvent(e);\n\n const rowNameColumn = document.createElement('div');\n rowNameColumn.className = 'tr-name';\n rowNameColumn.innerHTML = selectedValue;\n rowNameColumn.dataset.name = selectedValue;\n newRow.appendChild(rowNameColumn);\n\n const selectedR = this._dropdownData?.find(item => item.label === selectedValue);\n\n if (selectedR?.values?.length) {\n this.rowHasDropdown = true;\n const dropdownCol = this.createDropdownColumn(selectedValue);\n newRow.appendChild(dropdownCol);\n } else {\n this.rowHasDropdown = false;\n const emptyDropdownCol = document.createElement('div');\n emptyDropdownCol.className = 'tr-column';\n newRow.appendChild(emptyDropdownCol);\n }\n\n const rowInputColumn = this.createInputColumn(selectedValue);\n newRow.appendChild(rowInputColumn);\n\n const deleteButton = this.createDeleteButtonColumn();\n newRow.appendChild(deleteButton);\n\n this.tableBody.appendChild(newRow);\n\n this.updateRowSelectDropdown();\n this.nextRowIndex++;\n selectedElement.value = '';\n }\n\n getCurrentRow(selectedValue: string) {\n return this.hostElement.querySelectorAll(`.tr-name[data-name='${selectedValue}'`);\n }\n\n createDropdownColumn(selectedValue: string) {\n const dropdownColumn = document.createElement('div');\n dropdownColumn.setAttribute('class', 'tr-dropdown');\n const selectedItem = this._dropdownData.find(arr => arr.label === selectedValue);\n const selectedOptionValues = [];\n const currentRow = this.getCurrentRow(selectedValue);\n\n currentRow.forEach(row => {\n selectedOptionValues.push(row.parentElement?.querySelector('.tr-dropdown [aria-selected=true]')?.textContent);\n });\n\n if (selectedItem.values.length) {\n const dropdown = document.createElement('pn-select');\n dropdown.setAttribute('name', `${selectedValue}-dropdown`);\n dropdown.setAttribute('placeholder', this.rowDropdownPlaceholder);\n dropdown.setAttribute('required', 'true');\n dropdown.setAttribute('error', '');\n\n const placeholder = document.createElement('option');\n placeholder.setAttribute(\"value\", \"\");\n placeholder.textContent = this.rowDropdownPlaceholder;\n placeholder.selected = true;\n placeholder.disabled = true;\n dropdown.appendChild(placeholder);\n\n selectedItem.values.forEach(childItem => {\n const childOption = document.createElement('option');\n childOption.setAttribute(\"label\", childItem.label);\n childOption.setAttribute(\"value\", childItem.label);\n childOption.textContent = childItem.label;\n dropdown.appendChild(childOption);\n });\n\n dropdownColumn.appendChild(dropdown);\n }\n\n return dropdownColumn;\n }\n\n createInputColumn(selectedValue: string) {\n const inputColumn = document.createElement('div');\n inputColumn.setAttribute('class', 'tr-input');\n const inputElm = document.createElement('pn-input');\n inputElm.setAttribute('type', 'number');\n inputElm.setAttribute('name', `${selectedValue}-input`);\n inputElm.setAttribute('placeholder', '0');\n if (this.totalInputLimit > 0) {\n inputElm.setAttribute('max', `${this.totalInputLimit}`);\n }\n inputElm.setAttribute('min', '0');\n inputElm.setAttribute('error', '');\n inputColumn.appendChild(inputElm);\n return inputColumn;\n }\n\n createDeleteButtonColumn() {\n const buttonColumn = document.createElement('div');\n buttonColumn.setAttribute('class', 'tr-delete');\n const buttonElm = document.createElement('pn-button');\n buttonElm.onclick = e => this.deleteRow(e);\n buttonElm.setAttribute('appearance', 'warning');\n buttonElm.setAttribute('small', 'true');\n buttonElm.appendChild(document.createTextNode(this.rowDeleteButtonText));\n buttonColumn.appendChild(buttonElm);\n return buttonColumn;\n }\n\n updateRowSelectDropdown() {\n type Row = { rowName: string; selectedValue: string; placeholder: string };\n\n const rows: Row[] = [].map.call(this.tableBody.querySelectorAll('.tr-name'), el => {\n const dropdownColumn = el?.parentElement?.querySelector('.tr-dropdown');\n const dropdownPlaceholder = dropdownColumn?.querySelector('.pn-select-content span')?.textContent;\n const row: Row = {\n rowName: el?.innerHTML,\n selectedValue: dropdownColumn?.querySelector('[aria-selected=true]')?.textContent,\n placeholder: dropdownPlaceholder,\n };\n return row;\n });\n\n const selectOptions = this.pnRowSelectDropdown.querySelectorAll('option');\n selectOptions.forEach(elm => {\n elm.removeAttribute('selected');\n });\n }\n\n deleteRow(e: Event) {\n e.preventDefault();\n this.nextRowIndex--;\n const targetElm = e.currentTarget as HTMLButtonElement;\n const targetRow = targetElm.closest('.generated-table-row');\n targetRow.remove();\n const allRows = [...this.tableBody.querySelectorAll('.generated-table-row')];\n\n allRows.map((elm, index) => {\n elm.setAttribute('index', `${index}`);\n });\n this.updateHiddenFieldValue()\n this.updateRowSelectDropdown();\n }\n\n validateInputs() {\n const dropdownSelections = this.tableBody.querySelectorAll('pn-select');\n const numberInputs = this.tableBody.querySelectorAll('pn-input');\n let selectionEmpty = false;\n let showWarning = false;\n\n if (dropdownSelections) {\n dropdownSelections.forEach(dropdownElem => {\n if (!dropdownElem) {\n return;\n }\n\n const selection = dropdownElem.querySelector('select');\n const dropdownVal = selection?.value || '';\n\n if (dropdownVal === null || dropdownVal === \"\") {\n dropdownElem.setAttribute('error', `${this.dropdownEmptyWarning || \"This field cannot be empty\"}`);\n selectionEmpty = true;\n } else {\n dropdownElem.setAttribute('error', '');\n }\n });\n }\n\n if (numberInputs) {\n numberInputs.forEach(inputElem => {\n if (inputElem) {\n const currentNumber = inputElem.querySelector(\"input\");\n let currentValue = parseInt(currentNumber.value);\n\n if (this.totalInputLimit < currentValue && inputElem.hasAttribute('max')) {\n inputElem.setAttribute('error', `${this.inputLimitWarning || \"Amount too high\"}`);\n showWarning = true;\n } else if (currentValue <= 0 || isNaN(currentValue)) {\n inputElem.setAttribute('error', `${this.inputEmptyWarning || \"This field cannot be empty\"}`);\n showWarning = true;\n } else {\n inputElem.setAttribute('error', '');\n showWarning = false;\n }\n }\n });\n }\n\n if (selectionEmpty || showWarning) {\n return false;\n }\n\n return true;\n }\n\n render() {\n return (\n <Host>\n <div class=\"dropdown-choice-form-row\">\n <pn-select\n ref={el => (this.pnRowSelectDropdown = el as HTMLElement)}\n name={this.addRowDropdownName}\n label={this.addRowDropdownLabel}\n class=\"pn-row-select-dropdown\"\n language={this.languageCode}>\n <option value=\"\" selected disabled>{this.addRowDropdownPlaceholder}</option>\n {this.rowSelectDropdownArr?.map((value: string) => <option label={value} value={value}>{value}</option>)}\n </pn-select>\n </div>\n <div class=\"dropdown-choice-form-row\">\n <div class=\"pn-dropdown-choice-table\">\n <div ref={el => (this.tableHead = el as HTMLElement)}>\n {this.nextRowIndex === 0 ? null : (\n <div class=\"table-header\">\n <div class=\"table-header-name\">\n <label>{this.rowNameLabel}</label>\n </div>\n <div class=\"table-header-dropdown\">\n <label>{this.rowDropdownLabel}</label>\n </div>\n <div class=\"table-header-input\">\n <label>{this.rowInputLabel}</label>\n </div>\n <div class=\"table-header-delete\"></div>\n </div>\n )}\n </div>\n <div ref={el => (this.tableBody = el as HTMLElement)} class=\"pn-dropdown-choice-table-slot\">\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|