@sebgroup/green-angular 5.1.2 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/v-angular/account-number/account-number.module.mjs +18 -0
- package/esm2022/src/v-angular/account-number/account-number.pipe.mjs +54 -0
- package/esm2022/src/v-angular/account-number/index.mjs +3 -0
- package/esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs +5 -0
- package/esm2022/src/v-angular/alert/alert.component.mjs +47 -0
- package/esm2022/src/v-angular/alert/alert.models.mjs +8 -0
- package/esm2022/src/v-angular/alert/alert.module.mjs +18 -0
- package/esm2022/src/v-angular/alert/index.mjs +4 -0
- package/esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs +5 -0
- package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
- package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
- package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
- package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
- package/esm2022/src/v-angular/button/button.component.mjs +9 -9
- package/esm2022/src/v-angular/button/button.module.mjs +11 -11
- package/esm2022/src/v-angular/card/card.component.mjs +6 -6
- package/esm2022/src/v-angular/card/card.module.mjs +9 -9
- package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +6 -6
- package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +9 -7
- package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +14 -12
- package/esm2022/src/v-angular/core/core.utils.mjs +35 -1
- package/esm2022/src/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
- package/esm2022/src/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
- package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
- package/esm2022/src/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
- package/esm2022/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
- package/esm2022/src/v-angular/datepicker/datepicker.globals.mjs +20 -0
- package/esm2022/src/v-angular/datepicker/datepicker.models.mjs +56 -0
- package/esm2022/src/v-angular/datepicker/datepicker.module.mjs +63 -0
- package/esm2022/src/v-angular/datepicker/datepicker.utils.mjs +196 -0
- package/esm2022/src/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
- package/esm2022/src/v-angular/datepicker/index.mjs +17 -0
- package/esm2022/src/v-angular/datepicker/models/dates.mjs +291 -0
- package/esm2022/src/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
- package/esm2022/src/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
- package/esm2022/src/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
- package/esm2022/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.mjs +5 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.component.mjs +497 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.models.mjs +2 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.module.mjs +49 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
- package/esm2022/src/v-angular/drag-drop/index.mjs +5 -0
- package/esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs +5 -0
- package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
- package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +16 -9
- package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +31 -15
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
- package/esm2022/src/v-angular/external-link/external-link.directive.mjs +5 -5
- package/esm2022/src/v-angular/external-link/external-link.module.mjs +9 -9
- package/esm2022/src/v-angular/i18n/i18n.module.mjs +12 -12
- package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +6 -6
- package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +6 -6
- package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +11 -11
- package/esm2022/src/v-angular/input/input.component.mjs +11 -15
- package/esm2022/src/v-angular/input/input.module.mjs +27 -22
- package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +6 -6
- package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +10 -10
- package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +53 -31
- package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
- package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
- package/esm2022/src/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
- package/esm2022/src/v-angular/modal/modal.module.mjs +38 -27
- package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
- package/esm2022/src/v-angular/pagination/index.mjs +3 -0
- package/esm2022/src/v-angular/pagination/pagination.component.mjs +144 -0
- package/esm2022/src/v-angular/pagination/pagination.module.mjs +37 -0
- package/esm2022/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.mjs +5 -0
- package/esm2022/src/v-angular/radio/radio.component.mjs +14 -12
- package/esm2022/src/v-angular/radio/radio.module.mjs +12 -11
- package/esm2022/src/v-angular/slug/slug.module.mjs +6 -6
- package/esm2022/src/v-angular/table/index.mjs +9 -0
- package/esm2022/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.mjs +5 -0
- package/esm2022/src/v-angular/table/table.component.mjs +387 -0
- package/esm2022/src/v-angular/table/table.directive.mjs +110 -0
- package/esm2022/src/v-angular/table/table.models.mjs +2 -0
- package/esm2022/src/v-angular/table/table.module.mjs +40 -0
- package/esm2022/src/v-angular/table/table.tools.mjs +29 -0
- package/esm2022/src/v-angular/table/tr-thook.pipe.mjs +22 -0
- package/esm2022/src/v-angular/tabs/index.mjs +8 -0
- package/esm2022/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.mjs +5 -0
- package/esm2022/src/v-angular/tabs/tab.directive.mjs +81 -0
- package/esm2022/src/v-angular/tabs/tabs.component.mjs +262 -0
- package/esm2022/src/v-angular/tabs/tabs.models.mjs +2 -0
- package/esm2022/src/v-angular/tabs/tabs.module.mjs +21 -0
- package/esm2022/src/v-angular/textarea/textarea.component.mjs +9 -7
- package/esm2022/src/v-angular/textarea/textarea.module.mjs +27 -13
- package/esm2022/src/v-angular/toast/index.mjs +8 -0
- package/esm2022/src/v-angular/toast/sebgroup-green-angular-src-v-angular-toast.mjs +5 -0
- package/esm2022/src/v-angular/toast/toast-message.service.mjs +63 -0
- package/esm2022/src/v-angular/toast/toast.component.mjs +70 -0
- package/esm2022/src/v-angular/toast/toast.models.mjs +8 -0
- package/esm2022/src/v-angular/toast/toast.module.mjs +21 -0
- package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +35 -15
- package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +11 -11
- package/esm2022/src/v-angular/tooltip/tooltip.styles.mjs +60 -0
- package/esm2022/v-angular/alert/alert.component.mjs +47 -0
- package/esm2022/v-angular/alert/alert.models.mjs +8 -0
- package/esm2022/v-angular/alert/alert.module.mjs +18 -0
- package/esm2022/v-angular/alert/index.mjs +4 -0
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
- package/esm2022/v-angular/button/button.component.mjs +9 -9
- package/esm2022/v-angular/button/button.module.mjs +11 -11
- package/esm2022/v-angular/card/card.component.mjs +6 -6
- package/esm2022/v-angular/card/card.module.mjs +9 -9
- package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +6 -6
- package/esm2022/v-angular/checkbox/checkbox.component.mjs +9 -7
- package/esm2022/v-angular/checkbox/checkbox.module.mjs +14 -12
- package/esm2022/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
- package/esm2022/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
- package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
- package/esm2022/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
- package/esm2022/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
- package/esm2022/v-angular/datepicker/datepicker.globals.mjs +20 -0
- package/esm2022/v-angular/datepicker/datepicker.models.mjs +56 -0
- package/esm2022/v-angular/datepicker/datepicker.module.mjs +63 -0
- package/esm2022/v-angular/datepicker/datepicker.utils.mjs +196 -0
- package/esm2022/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
- package/esm2022/v-angular/datepicker/index.mjs +17 -0
- package/esm2022/v-angular/datepicker/models/dates.mjs +291 -0
- package/esm2022/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
- package/esm2022/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
- package/esm2022/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
- package/esm2022/v-angular/drag-drop/drag-drop.component.mjs +497 -0
- package/esm2022/v-angular/drag-drop/drag-drop.models.mjs +2 -0
- package/esm2022/v-angular/drag-drop/drag-drop.module.mjs +49 -0
- package/esm2022/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
- package/esm2022/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
- package/esm2022/v-angular/drag-drop/index.mjs +5 -0
- package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
- package/esm2022/v-angular/dropdown/dropdown.component.mjs +16 -9
- package/esm2022/v-angular/dropdown/dropdown.module.mjs +31 -15
- package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
- package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
- package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
- package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
- package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
- package/esm2022/v-angular/external-link/external-link.directive.mjs +37 -0
- package/esm2022/v-angular/external-link/external-link.module.mjs +18 -0
- package/esm2022/v-angular/external-link/index.mjs +3 -0
- package/esm2022/v-angular/i18n/i18n.module.mjs +12 -12
- package/esm2022/v-angular/i18n/i18n.test.module.mjs +6 -6
- package/esm2022/v-angular/index.mjs +10 -1
- package/esm2022/v-angular/info-circle/info-circle.component.mjs +6 -6
- package/esm2022/v-angular/info-circle/info-circle.module.mjs +11 -11
- package/esm2022/v-angular/input/input.component.mjs +11 -15
- package/esm2022/v-angular/input/input.module.mjs +27 -22
- package/esm2022/v-angular/input-mask/input-mask.directive.mjs +6 -6
- package/esm2022/v-angular/input-mask/input-mask.module.mjs +10 -10
- package/esm2022/v-angular/modal/dialog/dialog.component.mjs +53 -31
- package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
- package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
- package/esm2022/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
- package/esm2022/v-angular/modal/modal.module.mjs +38 -27
- package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
- package/esm2022/v-angular/pagination/index.mjs +3 -0
- package/esm2022/v-angular/pagination/pagination.component.mjs +144 -0
- package/esm2022/v-angular/pagination/pagination.module.mjs +37 -0
- package/esm2022/v-angular/radio/radio.component.mjs +14 -12
- package/esm2022/v-angular/radio/radio.module.mjs +12 -11
- package/esm2022/v-angular/slug/index.mjs +3 -0
- package/esm2022/v-angular/slug/slug.module.mjs +18 -0
- package/esm2022/v-angular/slug/slug.pipe.mjs +27 -0
- package/esm2022/v-angular/table/index.mjs +9 -0
- package/esm2022/v-angular/table/table.component.mjs +387 -0
- package/esm2022/v-angular/table/table.directive.mjs +110 -0
- package/esm2022/v-angular/table/table.models.mjs +2 -0
- package/esm2022/v-angular/table/table.module.mjs +40 -0
- package/esm2022/v-angular/table/table.tools.mjs +29 -0
- package/esm2022/v-angular/table/tr-thook.pipe.mjs +22 -0
- package/esm2022/v-angular/tabs/index.mjs +8 -0
- package/esm2022/v-angular/tabs/tab.directive.mjs +81 -0
- package/esm2022/v-angular/tabs/tabs.component.mjs +262 -0
- package/esm2022/v-angular/tabs/tabs.models.mjs +2 -0
- package/esm2022/v-angular/tabs/tabs.module.mjs +21 -0
- package/esm2022/v-angular/textarea/textarea.component.mjs +9 -7
- package/esm2022/v-angular/textarea/textarea.module.mjs +27 -13
- package/esm2022/v-angular/toast/index.mjs +8 -0
- package/esm2022/v-angular/toast/toast-message.service.mjs +63 -0
- package/esm2022/v-angular/toast/toast.component.mjs +70 -0
- package/esm2022/v-angular/toast/toast.models.mjs +8 -0
- package/esm2022/v-angular/toast/toast.module.mjs +21 -0
- package/esm2022/v-angular/tooltip/tooltip.directive.mjs +35 -15
- package/esm2022/v-angular/tooltip/tooltip.module.mjs +11 -11
- package/esm2022/v-angular/tooltip/tooltip.styles.mjs +60 -0
- package/esm2022/v-angular/v-angular.module.mjs +104 -68
- package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +76 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +76 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +23 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +14 -14
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +18 -18
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +6 -6
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +21 -17
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +34 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +1759 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +687 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +126 -74
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +12 -12
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +17 -17
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +15 -15
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +14 -14
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +36 -35
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +246 -81
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +185 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +24 -21
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +6 -6
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +585 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +367 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +33 -18
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +166 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +103 -24
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +6295 -2165
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/package.json +51 -3
- package/src/v-angular/account-number/README.md +70 -0
- package/src/v-angular/account-number/account-number.module.d.ts +8 -0
- package/src/v-angular/account-number/account-number.pipe.d.ts +32 -0
- package/src/v-angular/account-number/index.d.ts +2 -0
- package/src/v-angular/alert/alert.component.d.ts +19 -0
- package/src/v-angular/alert/alert.models.d.ts +13 -0
- package/src/v-angular/alert/alert.module.d.ts +8 -0
- package/src/v-angular/alert/index.d.ts +3 -0
- package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
- package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
- package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
- package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
- package/src/v-angular/button/button.component.d.ts +5 -5
- package/src/v-angular/button/button.module.d.ts +4 -4
- package/src/v-angular/card/card.component.d.ts +3 -3
- package/src/v-angular/card/card.module.d.ts +4 -4
- package/src/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
- package/src/v-angular/checkbox/checkbox.component.d.ts +6 -5
- package/src/v-angular/checkbox/checkbox.module.d.ts +5 -4
- package/src/v-angular/core/core.utils.d.ts +1 -0
- package/src/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
- package/src/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
- package/src/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
- package/src/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
- package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
- package/src/v-angular/datepicker/datepicker.globals.d.ts +13 -0
- package/src/v-angular/datepicker/datepicker.models.d.ts +50 -0
- package/src/v-angular/datepicker/datepicker.module.d.ts +19 -0
- package/src/v-angular/datepicker/datepicker.utils.d.ts +39 -0
- package/src/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
- package/src/v-angular/datepicker/index.d.ts +13 -0
- package/src/v-angular/datepicker/models/dates.d.ts +15 -0
- package/src/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
- package/src/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
- package/src/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
- package/src/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
- package/src/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
- package/src/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
- package/src/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
- package/src/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
- package/src/v-angular/drag-drop/index.d.ts +4 -0
- package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
- package/src/v-angular/dropdown/dropdown.component.d.ts +10 -6
- package/src/v-angular/dropdown/dropdown.module.d.ts +8 -7
- package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
- package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
- package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
- package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
- package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
- package/src/v-angular/external-link/external-link.directive.d.ts +3 -3
- package/src/v-angular/external-link/external-link.module.d.ts +4 -4
- package/src/v-angular/i18n/i18n.module.d.ts +7 -7
- package/src/v-angular/i18n/i18n.test.module.d.ts +4 -4
- package/src/v-angular/info-circle/info-circle.component.d.ts +4 -4
- package/src/v-angular/info-circle/info-circle.module.d.ts +4 -4
- package/src/v-angular/input/input.component.d.ts +5 -10
- package/src/v-angular/input/input.module.d.ts +5 -4
- package/src/v-angular/input-mask/input-mask.directive.d.ts +3 -3
- package/src/v-angular/input-mask/input-mask.module.d.ts +5 -5
- package/src/v-angular/modal/dialog/dialog.component.d.ts +16 -7
- package/src/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
- package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
- package/src/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
- package/src/v-angular/modal/modal.module.d.ts +4 -4
- package/src/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
- package/src/v-angular/pagination/index.d.ts +2 -0
- package/src/v-angular/pagination/pagination.component.d.ts +64 -0
- package/src/v-angular/pagination/pagination.module.d.ts +12 -0
- package/src/v-angular/radio/radio.component.d.ts +14 -13
- package/src/v-angular/radio/radio.module.d.ts +5 -4
- package/src/v-angular/slug/slug.module.d.ts +4 -4
- package/src/v-angular/table/index.d.ts +5 -0
- package/src/v-angular/table/table.component.d.ts +229 -0
- package/src/v-angular/table/table.directive.d.ts +36 -0
- package/src/v-angular/table/table.models.d.ts +62 -0
- package/src/v-angular/table/table.module.d.ts +12 -0
- package/src/v-angular/table/table.tools.d.ts +5 -0
- package/src/v-angular/table/tr-thook.pipe.d.ts +7 -0
- package/src/v-angular/tabs/index.d.ts +4 -0
- package/src/v-angular/tabs/tab.directive.d.ts +37 -0
- package/src/v-angular/tabs/tabs.component.d.ts +65 -0
- package/src/v-angular/tabs/tabs.models.d.ts +25 -0
- package/src/v-angular/tabs/tabs.module.d.ts +11 -0
- package/src/v-angular/textarea/textarea.component.d.ts +6 -5
- package/src/v-angular/textarea/textarea.module.d.ts +6 -4
- package/src/v-angular/toast/index.d.ts +4 -0
- package/src/v-angular/toast/toast-message.service.d.ts +17 -0
- package/src/v-angular/toast/toast.component.d.ts +22 -0
- package/src/v-angular/toast/toast.models.d.ts +15 -0
- package/src/v-angular/toast/toast.module.d.ts +10 -0
- package/src/v-angular/tooltip/tooltip.directive.d.ts +5 -3
- package/src/v-angular/tooltip/tooltip.module.d.ts +4 -4
- package/src/v-angular/tooltip/tooltip.styles.d.ts +11 -0
- package/v-angular/alert/alert.component.d.ts +19 -0
- package/v-angular/alert/alert.models.d.ts +13 -0
- package/v-angular/alert/alert.module.d.ts +8 -0
- package/v-angular/alert/index.d.ts +3 -0
- package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
- package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
- package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
- package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
- package/v-angular/button/button.component.d.ts +5 -5
- package/v-angular/button/button.module.d.ts +4 -4
- package/v-angular/card/card.component.d.ts +3 -3
- package/v-angular/card/card.module.d.ts +4 -4
- package/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
- package/v-angular/checkbox/checkbox.component.d.ts +6 -5
- package/v-angular/checkbox/checkbox.module.d.ts +5 -4
- package/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
- package/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
- package/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
- package/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
- package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
- package/v-angular/datepicker/datepicker.globals.d.ts +13 -0
- package/v-angular/datepicker/datepicker.models.d.ts +50 -0
- package/v-angular/datepicker/datepicker.module.d.ts +19 -0
- package/v-angular/datepicker/datepicker.utils.d.ts +39 -0
- package/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
- package/v-angular/datepicker/index.d.ts +13 -0
- package/v-angular/datepicker/models/dates.d.ts +15 -0
- package/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
- package/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
- package/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
- package/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
- package/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
- package/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
- package/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
- package/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
- package/v-angular/drag-drop/index.d.ts +4 -0
- package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
- package/v-angular/dropdown/dropdown.component.d.ts +10 -6
- package/v-angular/dropdown/dropdown.module.d.ts +8 -7
- package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
- package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
- package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
- package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
- package/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
- package/v-angular/external-link/external-link.directive.d.ts +17 -0
- package/v-angular/external-link/external-link.module.d.ts +8 -0
- package/v-angular/external-link/index.d.ts +2 -0
- package/v-angular/i18n/i18n.module.d.ts +7 -7
- package/v-angular/i18n/i18n.test.module.d.ts +4 -4
- package/v-angular/index.d.ts +9 -0
- package/v-angular/info-circle/info-circle.component.d.ts +4 -4
- package/v-angular/info-circle/info-circle.module.d.ts +4 -4
- package/v-angular/input/input.component.d.ts +5 -10
- package/v-angular/input/input.module.d.ts +5 -4
- package/v-angular/input-mask/input-mask.directive.d.ts +3 -3
- package/v-angular/input-mask/input-mask.module.d.ts +5 -5
- package/v-angular/modal/dialog/dialog.component.d.ts +16 -7
- package/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
- package/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
- package/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
- package/v-angular/modal/modal.module.d.ts +4 -4
- package/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
- package/v-angular/pagination/index.d.ts +2 -0
- package/v-angular/pagination/pagination.component.d.ts +64 -0
- package/v-angular/pagination/pagination.module.d.ts +12 -0
- package/v-angular/radio/radio.component.d.ts +14 -13
- package/v-angular/radio/radio.module.d.ts +5 -4
- package/v-angular/slug/index.d.ts +2 -0
- package/v-angular/slug/slug.module.d.ts +8 -0
- package/v-angular/slug/slug.pipe.d.ts +12 -0
- package/v-angular/table/index.d.ts +5 -0
- package/v-angular/table/table.component.d.ts +229 -0
- package/v-angular/table/table.directive.d.ts +36 -0
- package/v-angular/table/table.models.d.ts +62 -0
- package/v-angular/table/table.module.d.ts +12 -0
- package/v-angular/table/table.tools.d.ts +5 -0
- package/v-angular/table/tr-thook.pipe.d.ts +7 -0
- package/v-angular/tabs/index.d.ts +4 -0
- package/v-angular/tabs/tab.directive.d.ts +37 -0
- package/v-angular/tabs/tabs.component.d.ts +65 -0
- package/v-angular/tabs/tabs.models.d.ts +25 -0
- package/v-angular/tabs/tabs.module.d.ts +11 -0
- package/v-angular/textarea/textarea.component.d.ts +6 -5
- package/v-angular/textarea/textarea.module.d.ts +6 -4
- package/v-angular/toast/index.d.ts +4 -0
- package/v-angular/toast/toast-message.service.d.ts +17 -0
- package/v-angular/toast/toast.component.d.ts +22 -0
- package/v-angular/toast/toast.models.d.ts +15 -0
- package/v-angular/toast/toast.module.d.ts +10 -0
- package/v-angular/tooltip/tooltip.directive.d.ts +5 -3
- package/v-angular/tooltip/tooltip.module.d.ts +4 -4
- package/v-angular/tooltip/tooltip.styles.d.ts +11 -0
- package/v-angular/v-angular.module.d.ts +27 -18
|
@@ -1,22 +1,25 @@
|
|
|
1
|
+
import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Input, EventEmitter, Optional, Inject, ViewChildren, HostBinding, Output, HostListener, TemplateRef, Self, ContentChild, SkipSelf, NgModule, Directive, Host } from '@angular/core';
|
|
3
|
+
import { Component, Input, EventEmitter, Optional, Inject, ViewChildren, HostBinding, Output, HostListener, TemplateRef, Self, ContentChild, SkipSelf, NgModule, CUSTOM_ELEMENTS_SCHEMA, Directive, Host } from '@angular/core';
|
|
3
4
|
import * as i1$1 from '@angular/forms';
|
|
4
5
|
import * as i4 from '@jsverse/transloco';
|
|
5
6
|
import { TRANSLOCO_SCOPE } from '@jsverse/transloco';
|
|
6
7
|
import { Subject, fromEvent, takeUntil, distinctUntilChanged, tap, from, withLatestFrom } from 'rxjs';
|
|
7
|
-
import {
|
|
8
|
+
import { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
|
|
8
9
|
import * as i2 from '@sebgroup/green-angular/src/v-angular/core';
|
|
9
10
|
import { DropdownUtils } from '@sebgroup/green-angular/src/v-angular/core';
|
|
10
11
|
import * as i1 from '@angular/common';
|
|
11
12
|
import { CommonModule } from '@angular/common';
|
|
13
|
+
import * as i4$1 from '@sebgroup/green-angular/src/lib/shared';
|
|
14
|
+
import { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';
|
|
12
15
|
import scrollIntoView from 'scroll-into-view-if-needed';
|
|
13
16
|
import * as i3 from '@sebgroup/green-angular/src/v-angular/tooltip';
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
17
|
+
import { NggvTooltipModule } from '@sebgroup/green-angular/src/v-angular/tooltip';
|
|
18
|
+
import { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
|
|
16
19
|
import * as i2$1 from '@sebgroup/green-angular/src/v-angular/input';
|
|
17
|
-
import {
|
|
20
|
+
import { NggvInputComponent } from '@sebgroup/green-angular/src/v-angular/input';
|
|
18
21
|
|
|
19
|
-
class
|
|
22
|
+
class NggvTypeaheadHighlightComponent {
|
|
20
23
|
constructor() {
|
|
21
24
|
this.text = '';
|
|
22
25
|
this.input = '';
|
|
@@ -86,10 +89,10 @@ class NgvTypeaheadHighlightComponent {
|
|
|
86
89
|
}
|
|
87
90
|
return { start, end };
|
|
88
91
|
}
|
|
89
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type:
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadHighlightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvTypeaheadHighlightComponent, selector: "nggv-typeahead-highlight", inputs: { textContent: "textContent", textToHighlight: "textToHighlight" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!this.match\">{{ textContent }}</ng-container>\n<!-- Note that this is sensitive to line breaks producing extra spacing between the different parts -->\n<ng-container *ngIf=\"!!this.match\">\n {{ prefix || '' }}<span class=\"match\">{{ match }}</span\n >{{ suffix || '' }}\n</ng-container>\n", styles: [":host .match{font-weight:500}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
91
94
|
}
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadHighlightComponent, decorators: [{
|
|
93
96
|
type: Component,
|
|
94
97
|
args: [{ selector: 'nggv-typeahead-highlight', template: "<ng-container *ngIf=\"!this.match\">{{ textContent }}</ng-container>\n<!-- Note that this is sensitive to line breaks producing extra spacing between the different parts -->\n<ng-container *ngIf=\"!!this.match\">\n {{ prefix || '' }}<span class=\"match\">{{ match }}</span\n >{{ suffix || '' }}\n</ng-container>\n", styles: [":host .match{font-weight:500}\n"] }]
|
|
95
98
|
}], propDecorators: { textContent: [{
|
|
@@ -98,7 +101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
98
101
|
type: Input
|
|
99
102
|
}] } });
|
|
100
103
|
|
|
101
|
-
class
|
|
104
|
+
class NggvDropdownListComponent {
|
|
102
105
|
set expanded(state) {
|
|
103
106
|
this.setExpanded(state);
|
|
104
107
|
}
|
|
@@ -113,6 +116,12 @@ class NgvDropdownListComponent {
|
|
|
113
116
|
this.id = window.nggv?.nextId();
|
|
114
117
|
/** Special property used for selecting DOM elements during automated UI testing. */
|
|
115
118
|
this.thook = 'dropdown';
|
|
119
|
+
/**
|
|
120
|
+
* Used to control if "selectedValueChanged" only should emit distinct changes, or each time a value is selected
|
|
121
|
+
* When true, value is not emitted if there's no distinct change
|
|
122
|
+
* When false, value is emitted every time an option is selected
|
|
123
|
+
* */
|
|
124
|
+
this.onlyEmitDistinctChanges = true;
|
|
116
125
|
this.selectedValueChanged = new EventEmitter();
|
|
117
126
|
this.closed = new EventEmitter();
|
|
118
127
|
/** The current active option based on numeric index. */
|
|
@@ -144,9 +153,12 @@ class NgvDropdownListComponent {
|
|
|
144
153
|
updateState(option, event) {
|
|
145
154
|
if (option.disabled)
|
|
146
155
|
return;
|
|
147
|
-
this.
|
|
148
|
-
|
|
149
|
-
|
|
156
|
+
if (!this.onlyEmitDistinctChanges ||
|
|
157
|
+
!this.dropdownUtils.deepEqual(this.selectedValue, option)) {
|
|
158
|
+
this.selectedValue = option;
|
|
159
|
+
this.state = option;
|
|
160
|
+
this.selectedValueChanged.emit(option);
|
|
161
|
+
}
|
|
150
162
|
this.setExpanded(false);
|
|
151
163
|
event.stopPropagation();
|
|
152
164
|
}
|
|
@@ -233,10 +245,12 @@ class NgvDropdownListComponent {
|
|
|
233
245
|
const options = this.dropdownUtils.flattenOptions(this.options, !this.optionContentTpl);
|
|
234
246
|
let option;
|
|
235
247
|
switch (event.key) {
|
|
248
|
+
case 'Tab':
|
|
236
249
|
case 'Escape':
|
|
237
250
|
this.setExpanded(false);
|
|
238
251
|
this.closed.emit();
|
|
239
252
|
break;
|
|
253
|
+
case 'Space': // Select the currently chosen value
|
|
240
254
|
case 'Enter': // Select the currently chosen value
|
|
241
255
|
option = options[this.activeIndex];
|
|
242
256
|
this.updateState(option, event);
|
|
@@ -296,12 +310,12 @@ class NgvDropdownListComponent {
|
|
|
296
310
|
}, 0);
|
|
297
311
|
}
|
|
298
312
|
}
|
|
299
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
300
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type:
|
|
313
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownListComponent, deps: [{ token: TRANSLOCO_SCOPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
314
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvDropdownListComponent, selector: "nggv-dropdown-list", inputs: { expanded: "expanded", state: "state", scrollOffset: "scrollOffset", optionContentTpl: "optionContentTpl", groupLabelTpl: "groupLabelTpl", id: "id", thook: "thook", options: "options", textToHighlight: "textToHighlight", onlyEmitDistinctChanges: "onlyEmitDistinctChanges" }, outputs: { selectedValueChanged: "selectedValueChanged", closed: "closed" }, host: { listeners: { "document:keydown": "onKeyDown($event)", "document:keyup": "onKeyUp($event)" }, properties: { "attr.id": "this.id", "attr.data-thook": "this.thook" } }, viewQueries: [{ propertyName: "optionRefs", predicate: ["optionRefs"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <!-- group label template (default or custom) -->\n <ng-template\n *ngTemplateOutlet=\"listGroupTemplate; context: { $implicit: item }\"\n ></ng-template>\n\n <ul [attr.aria-disabled]=\"item.disabled\" class=\"gds-reset\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #listGroupTemplate let-item>\n <ng-container *ngIf=\"groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"groupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"basicGroupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n\n <ng-template #basicGroupLabelTpl let-item>\n <div class=\"nggv-group-label\">{{ t(item.label) }}</div>\n </ng-template>\n</ng-container>\n", styles: [":host{--gds-ref-pallet-base300: hsl(0, 0%, 87%);--gds-ref-pallet-base400: hsl(0, 0%, 81%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--sg-z-index-dropdown: ;--sg-z-index-popover: 1060;--sg-z-index-dropdown-backdrop: 990;--sg-z-index-dropdown: 2000;--sg-popover-background: #fff;--sg-popover-box-shadow: 0 .125rem .375rem rgba(0, 0, 0, .15);--text-primary-color: #333;position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover{background-color:var(--gds-ref-pallet-base400)}:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--gds-ref-pallet-base300)}:host .gds-dropdown__options__label:active{background-color:var(--gds-ref-pallet-base500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}:host li+.group{padding-top:0}:host .nggv-group-label{cursor:pointer;background-color:#e7e7e7;padding-inline:1rem;padding-block:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NggvTypeaheadHighlightComponent, selector: "nggv-typeahead-highlight", inputs: ["textContent", "textToHighlight"] }, { kind: "directive", type: i3.NggvTooltipDirective, selector: "[nggvTooltip]", inputs: ["nggvTooltip", "thook", "placement", "shown", "offset", "resizeThrottle", "tooltipId", "maxWidth"], outputs: ["nggvShow", "nggvHide"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
301
315
|
}
|
|
302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
316
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownListComponent, decorators: [{
|
|
303
317
|
type: Component,
|
|
304
|
-
args: [{ selector: 'nggv-dropdown-list', template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <
|
|
318
|
+
args: [{ selector: 'nggv-dropdown-list', template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <!-- group label template (default or custom) -->\n <ng-template\n *ngTemplateOutlet=\"listGroupTemplate; context: { $implicit: item }\"\n ></ng-template>\n\n <ul [attr.aria-disabled]=\"item.disabled\" class=\"gds-reset\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #listGroupTemplate let-item>\n <ng-container *ngIf=\"groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"groupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"basicGroupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n\n <ng-template #basicGroupLabelTpl let-item>\n <div class=\"nggv-group-label\">{{ t(item.label) }}</div>\n </ng-template>\n</ng-container>\n", styles: [":host{--gds-ref-pallet-base300: hsl(0, 0%, 87%);--gds-ref-pallet-base400: hsl(0, 0%, 81%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--sg-z-index-dropdown: ;--sg-z-index-popover: 1060;--sg-z-index-dropdown-backdrop: 990;--sg-z-index-dropdown: 2000;--sg-popover-background: #fff;--sg-popover-box-shadow: 0 .125rem .375rem rgba(0, 0, 0, .15);--text-primary-color: #333;position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover{background-color:var(--gds-ref-pallet-base400)}:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--gds-ref-pallet-base300)}:host .gds-dropdown__options__label:active{background-color:var(--gds-ref-pallet-base500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}:host li+.group{padding-top:0}:host .nggv-group-label{cursor:pointer;background-color:#e7e7e7;padding-inline:1rem;padding-block:.5rem}\n"] }]
|
|
305
319
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
306
320
|
type: Optional
|
|
307
321
|
}, {
|
|
@@ -315,6 +329,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
315
329
|
type: Input
|
|
316
330
|
}], optionContentTpl: [{
|
|
317
331
|
type: Input
|
|
332
|
+
}], groupLabelTpl: [{
|
|
333
|
+
type: Input
|
|
318
334
|
}], optionRefs: [{
|
|
319
335
|
type: ViewChildren,
|
|
320
336
|
args: ['optionRefs']
|
|
@@ -332,6 +348,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
332
348
|
type: Input
|
|
333
349
|
}], textToHighlight: [{
|
|
334
350
|
type: Input
|
|
351
|
+
}], onlyEmitDistinctChanges: [{
|
|
352
|
+
type: Input
|
|
335
353
|
}], selectedValueChanged: [{
|
|
336
354
|
type: Output
|
|
337
355
|
}], closed: [{
|
|
@@ -349,7 +367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
349
367
|
* Dropdowns enables users to make a quick selection of the available options for a specific entry.
|
|
350
368
|
* https://designlibrary.sebgroup.com/components/component-dropdown
|
|
351
369
|
*/
|
|
352
|
-
class
|
|
370
|
+
class NggvDropdownComponent extends NggvBaseControlValueAccessorComponent {
|
|
353
371
|
/** List of {@link Option} and {@link OptionGroup} listed when dropdown is expanded. */
|
|
354
372
|
set options(value) {
|
|
355
373
|
// update options
|
|
@@ -526,12 +544,12 @@ class NgvDropdownComponent extends NgvBaseControlValueAccessorComponent {
|
|
|
526
544
|
isOption(option) {
|
|
527
545
|
return !('options' in option);
|
|
528
546
|
}
|
|
529
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
530
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type:
|
|
547
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownComponent, deps: [{ token: i1$1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }, { token: i2.DropdownUtils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
548
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvDropdownComponent, selector: "nggv-dropdown", inputs: { thook: "thook", placeholder: "placeholder", ariaLabel: "ariaLabel", options: "options", scrollOffset: "scrollOffset", allowControlNullishOption: "allowControlNullishOption", textToHighlight: "textToHighlight", selectOnSingleOption: "selectOnSingleOption" }, outputs: { expandedChange: "expandedChange" }, host: { listeners: { "keyup": "onKeyUp($event)" }, properties: { "attr.data-thook": "this.thook" } }, queries: [{ propertyName: "selectedContentTpl", first: true, predicate: ["selectedTpl"], descendants: true, read: TemplateRef }, { propertyName: "optionContentTpl", first: true, predicate: ["optionTpl"], descendants: true, read: TemplateRef }, { propertyName: "groupLabelTpl", first: true, predicate: ["groupLabelTpl"], descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n aria-haspopup=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </button>\n\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%)}:host label{display:block;font-weight:500;line-height:1.25rem;margin-bottom:.5rem;width:100%}:host .description{margin-bottom:.5rem;line-height:1.25rem;width:100%}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4$1.NggCoreElementDirective, selector: "[nggCoreElement]" }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: NggvDropdownListComponent, selector: "nggv-dropdown-list", inputs: ["expanded", "state", "scrollOffset", "optionContentTpl", "groupLabelTpl", "id", "thook", "options", "textToHighlight", "onlyEmitDistinctChanges"], outputs: ["selectedValueChanged", "closed"] }] }); }
|
|
531
549
|
}
|
|
532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownComponent, decorators: [{
|
|
533
551
|
type: Component,
|
|
534
|
-
args: [{ selector: 'nggv-dropdown', template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label
|
|
552
|
+
args: [{ selector: 'nggv-dropdown', template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n aria-haspopup=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </button>\n\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%)}:host label{display:block;font-weight:500;line-height:1.25rem;margin-bottom:.5rem;width:100%}:host .description{margin-bottom:.5rem;line-height:1.25rem;width:100%}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"] }]
|
|
535
553
|
}], ctorParameters: () => [{ type: i1$1.NgControl, decorators: [{
|
|
536
554
|
type: Self
|
|
537
555
|
}, {
|
|
@@ -547,6 +565,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
547
565
|
}], optionContentTpl: [{
|
|
548
566
|
type: ContentChild,
|
|
549
567
|
args: ['optionTpl', { read: TemplateRef }]
|
|
568
|
+
}], groupLabelTpl: [{
|
|
569
|
+
type: ContentChild,
|
|
570
|
+
args: ['groupLabelTpl', { read: TemplateRef }]
|
|
550
571
|
}], thook: [{
|
|
551
572
|
type: HostBinding,
|
|
552
573
|
args: ['attr.data-thook']
|
|
@@ -554,6 +575,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
554
575
|
type: Input
|
|
555
576
|
}], placeholder: [{
|
|
556
577
|
type: Input
|
|
578
|
+
}], ariaLabel: [{
|
|
579
|
+
type: Input
|
|
557
580
|
}], options: [{
|
|
558
581
|
type: Input
|
|
559
582
|
}], scrollOffset: [{
|
|
@@ -572,7 +595,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
572
595
|
}] } });
|
|
573
596
|
|
|
574
597
|
// Use dropdownList template and combine stylesheets
|
|
575
|
-
class
|
|
598
|
+
class NggvTypeaheadDropdownListComponent extends NggvDropdownListComponent {
|
|
576
599
|
constructor(translocoScope, element) {
|
|
577
600
|
super(translocoScope);
|
|
578
601
|
this.translocoScope = translocoScope;
|
|
@@ -639,12 +662,12 @@ class NgvTypeaheadDropdownListComponent extends NgvDropdownListComponent {
|
|
|
639
662
|
// If a formatter exists, use it
|
|
640
663
|
return this.selectedFormatter(value) ?? '';
|
|
641
664
|
}
|
|
642
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
643
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type:
|
|
665
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadDropdownListComponent, deps: [{ token: TRANSLOCO_SCOPE, optional: true, skipSelf: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
666
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvTypeaheadDropdownListComponent, selector: "nggv-typeahead-dropdown-list", inputs: { hostComponent: "hostComponent", resultFormatter: "resultFormatter", selectedFormatter: "selectedFormatter" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <!-- group label template (default or custom) -->\n <ng-template\n *ngTemplateOutlet=\"listGroupTemplate; context: { $implicit: item }\"\n ></ng-template>\n\n <ul [attr.aria-disabled]=\"item.disabled\" class=\"gds-reset\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #listGroupTemplate let-item>\n <ng-container *ngIf=\"groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"groupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"basicGroupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n\n <ng-template #basicGroupLabelTpl let-item>\n <div class=\"nggv-group-label\">{{ t(item.label) }}</div>\n </ng-template>\n</ng-container>\n", styles: [":host{display:flex;width:100%;position:relative}\n", ":host{--gds-ref-pallet-base300: hsl(0, 0%, 87%);--gds-ref-pallet-base400: hsl(0, 0%, 81%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--sg-z-index-dropdown: ;--sg-z-index-popover: 1060;--sg-z-index-dropdown-backdrop: 990;--sg-z-index-dropdown: 2000;--sg-popover-background: #fff;--sg-popover-box-shadow: 0 .125rem .375rem rgba(0, 0, 0, .15);--text-primary-color: #333;position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover{background-color:var(--gds-ref-pallet-base400)}:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--gds-ref-pallet-base300)}:host .gds-dropdown__options__label:active{background-color:var(--gds-ref-pallet-base500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}:host li+.group{padding-top:0}:host .nggv-group-label{cursor:pointer;background-color:#e7e7e7;padding-inline:1rem;padding-block:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NggvTooltipDirective, selector: "[nggvTooltip]", inputs: ["nggvTooltip", "thook", "placement", "shown", "offset", "resizeThrottle", "tooltipId", "maxWidth"], outputs: ["nggvShow", "nggvHide"] }, { kind: "component", type: NggvTypeaheadHighlightComponent, selector: "nggv-typeahead-highlight", inputs: ["textContent", "textToHighlight"] }] }); }
|
|
644
667
|
}
|
|
645
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
668
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadDropdownListComponent, decorators: [{
|
|
646
669
|
type: Component,
|
|
647
|
-
args: [{ selector: 'nggv-typeahead-dropdown-list', template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <
|
|
670
|
+
args: [{ selector: 'nggv-typeahead-dropdown-list', template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <!-- group label template (default or custom) -->\n <ng-template\n *ngTemplateOutlet=\"listGroupTemplate; context: { $implicit: item }\"\n ></ng-template>\n\n <ul [attr.aria-disabled]=\"item.disabled\" class=\"gds-reset\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #listGroupTemplate let-item>\n <ng-container *ngIf=\"groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"groupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"basicGroupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n\n <ng-template #basicGroupLabelTpl let-item>\n <div class=\"nggv-group-label\">{{ t(item.label) }}</div>\n </ng-template>\n</ng-container>\n", styles: [":host{display:flex;width:100%;position:relative}\n", ":host{--gds-ref-pallet-base300: hsl(0, 0%, 87%);--gds-ref-pallet-base400: hsl(0, 0%, 81%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--sg-z-index-dropdown: ;--sg-z-index-popover: 1060;--sg-z-index-dropdown-backdrop: 990;--sg-z-index-dropdown: 2000;--sg-popover-background: #fff;--sg-popover-box-shadow: 0 .125rem .375rem rgba(0, 0, 0, .15);--text-primary-color: #333;position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover{background-color:var(--gds-ref-pallet-base400)}:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--gds-ref-pallet-base300)}:host .gds-dropdown__options__label:active{background-color:var(--gds-ref-pallet-base500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}:host li+.group{padding-top:0}:host .nggv-group-label{cursor:pointer;background-color:#e7e7e7;padding-inline:1rem;padding-block:.5rem}\n"] }]
|
|
648
671
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
649
672
|
type: SkipSelf
|
|
650
673
|
}, {
|
|
@@ -660,7 +683,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
660
683
|
type: Input
|
|
661
684
|
}] } });
|
|
662
685
|
|
|
663
|
-
class
|
|
686
|
+
class NggvTypeaheadInputComponent extends NggvInputComponent {
|
|
664
687
|
get dropdownButton() {
|
|
665
688
|
return this.hostComponent.inputRef?.nativeElement;
|
|
666
689
|
}
|
|
@@ -673,6 +696,8 @@ class NgvTypeaheadInputComponent extends NgvInputComponent {
|
|
|
673
696
|
this.cdr = cdr;
|
|
674
697
|
/** Boolean to indicate wether the dropdown is expanded or not, to apply appropriate styling */
|
|
675
698
|
this.expanded = false;
|
|
699
|
+
/** @internal Used to determine wether the input has been moved or not */
|
|
700
|
+
this.inputMoved = false;
|
|
676
701
|
super.ngOnInit();
|
|
677
702
|
}
|
|
678
703
|
ngOnInit() {
|
|
@@ -688,7 +713,7 @@ class NgvTypeaheadInputComponent extends NgvInputComponent {
|
|
|
688
713
|
* @param event fired containing which key was released.
|
|
689
714
|
*/
|
|
690
715
|
onKeyUp(event) {
|
|
691
|
-
if (event.code === 'Space') {
|
|
716
|
+
if (event.code === 'Space' && this.expanded) {
|
|
692
717
|
event.preventDefault();
|
|
693
718
|
}
|
|
694
719
|
}
|
|
@@ -706,6 +731,7 @@ class NgvTypeaheadInputComponent extends NgvInputComponent {
|
|
|
706
731
|
// Get the height of the parent button so the input can be explicitly set to the same height since it's absolutely positioned
|
|
707
732
|
this.buttonHeight =
|
|
708
733
|
this.dropdownButton.getBoundingClientRect().height || 32; // Default to 2em;
|
|
734
|
+
this.inputMoved = true;
|
|
709
735
|
}
|
|
710
736
|
}, 0);
|
|
711
737
|
}
|
|
@@ -719,6 +745,10 @@ class NgvTypeaheadInputComponent extends NgvInputComponent {
|
|
|
719
745
|
.pipe(takeUntil(this._destroy$))
|
|
720
746
|
.subscribe((state) => {
|
|
721
747
|
this.expanded = state;
|
|
748
|
+
// Calling this function from onInit caused issues when DOM has not fully been initialized because of
|
|
749
|
+
// different CSS used to hide (but not remove) from DOM
|
|
750
|
+
if (!this.inputMoved)
|
|
751
|
+
this.moveInput();
|
|
722
752
|
if (this.expanded) {
|
|
723
753
|
// Weird workaround for setting focus. Didn't set focus, but wrapping in setTimeout solved it.
|
|
724
754
|
// See suggestion here: https://github.com/ionic-team/stencil/issues/3772#issuecomment-1292599609
|
|
@@ -757,12 +787,12 @@ class NgvTypeaheadInputComponent extends NgvInputComponent {
|
|
|
757
787
|
this.inputChange$.next(this.state);
|
|
758
788
|
}
|
|
759
789
|
}
|
|
760
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
761
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type:
|
|
790
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
791
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvTypeaheadInputComponent, selector: "nggv-typeahead-input", inputs: { hostComponent: "hostComponent", resultFormatter: "resultFormatter", selectedFormatter: "selectedFormatter" }, host: { listeners: { "keyup": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div\n class=\"input-wrapper\"\n [ngClass]=\"{ expanded: expanded, collapsed: !expanded }\"\n [ngStyle]=\"{ 'height.px': buttonHeight }\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- INPUT FIELD -->\n <div class=\"input-group\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;top:0;left:0;width:calc(100% - 2.625em)}:host .input-wrapper{border:none;box-shadow:none}:host .input-wrapper.expanded{display:flex}:host .input-wrapper.expanded .input-group input.gds-field{height:100%;width:100%;min-height:unset;margin-left:1px;border:none;box-shadow:none}:host .input-wrapper.collapsed{display:none}:host .input-wrapper .input-group{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
762
792
|
}
|
|
763
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
793
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadInputComponent, decorators: [{
|
|
764
794
|
type: Component,
|
|
765
|
-
args: [{ selector: 'nggv-typeahead-input', template: "<ng-container>\n <div\n class=\"input-wrapper\"\n [ngClass]=\"{ expanded: expanded, collapsed: !expanded }\"\n [ngStyle]=\"{ 'height.px': buttonHeight }\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- INPUT FIELD -->\n <div class=\"input-group\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"
|
|
795
|
+
args: [{ selector: 'nggv-typeahead-input', template: "<ng-container>\n <div\n class=\"input-wrapper\"\n [ngClass]=\"{ expanded: expanded, collapsed: !expanded }\"\n [ngStyle]=\"{ 'height.px': buttonHeight }\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- INPUT FIELD -->\n <div class=\"input-group\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;top:0;left:0;width:calc(100% - 2.625em)}:host .input-wrapper{border:none;box-shadow:none}:host .input-wrapper.expanded{display:flex}:host .input-wrapper.expanded .input-group input.gds-field{height:100%;width:100%;min-height:unset;margin-left:1px;border:none;box-shadow:none}:host .input-wrapper.collapsed{display:none}:host .input-wrapper .input-group{width:100%}\n"] }]
|
|
766
796
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$1.NgControl, decorators: [{
|
|
767
797
|
type: Self
|
|
768
798
|
}, {
|
|
@@ -780,50 +810,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
780
810
|
type: Input
|
|
781
811
|
}], onKeyUp: [{
|
|
782
812
|
type: HostListener,
|
|
783
|
-
args: ['
|
|
813
|
+
args: ['keyup', ['$event']]
|
|
784
814
|
}] } });
|
|
785
815
|
|
|
786
|
-
class
|
|
787
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
788
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type:
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
816
|
+
class NggvTypeaheadModule {
|
|
817
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
818
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadModule, declarations: [NggvTypeaheadHighlightComponent,
|
|
819
|
+
NggvTypeaheadInputComponent,
|
|
820
|
+
NggvTypeaheadDropdownListComponent], imports: [CommonModule, NggvTooltipModule], exports: [NggvTypeaheadHighlightComponent,
|
|
821
|
+
NggvTypeaheadInputComponent,
|
|
822
|
+
NggvTypeaheadDropdownListComponent] }); }
|
|
823
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadModule, imports: [CommonModule, NggvTooltipModule] }); }
|
|
794
824
|
}
|
|
795
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
825
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadModule, decorators: [{
|
|
796
826
|
type: NgModule,
|
|
797
827
|
args: [{
|
|
798
828
|
declarations: [
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
829
|
+
NggvTypeaheadHighlightComponent,
|
|
830
|
+
NggvTypeaheadInputComponent,
|
|
831
|
+
NggvTypeaheadDropdownListComponent,
|
|
802
832
|
],
|
|
803
|
-
imports: [CommonModule,
|
|
833
|
+
imports: [CommonModule, NggvTooltipModule],
|
|
804
834
|
exports: [
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
835
|
+
NggvTypeaheadHighlightComponent,
|
|
836
|
+
NggvTypeaheadInputComponent,
|
|
837
|
+
NggvTypeaheadDropdownListComponent,
|
|
808
838
|
],
|
|
809
839
|
}]
|
|
810
840
|
}] });
|
|
811
841
|
|
|
812
|
-
class
|
|
813
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
814
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type:
|
|
815
|
-
|
|
842
|
+
class NggvDropdownModule {
|
|
843
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
844
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownModule, declarations: [NggvDropdownComponent, NggvDropdownListComponent], imports: [CommonModule,
|
|
845
|
+
NggCoreWrapperModule,
|
|
846
|
+
NggvTypeaheadModule,
|
|
847
|
+
NggvTooltipModule,
|
|
848
|
+
NggvI18nModule], exports: [NggvDropdownComponent, NggvDropdownListComponent] }); }
|
|
849
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownModule, imports: [CommonModule,
|
|
850
|
+
NggCoreWrapperModule,
|
|
851
|
+
NggvTypeaheadModule,
|
|
852
|
+
NggvTooltipModule,
|
|
853
|
+
NggvI18nModule] }); }
|
|
816
854
|
}
|
|
817
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
855
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownModule, decorators: [{
|
|
818
856
|
type: NgModule,
|
|
819
857
|
args: [{
|
|
820
|
-
declarations: [
|
|
821
|
-
imports: [
|
|
822
|
-
|
|
858
|
+
declarations: [NggvDropdownComponent, NggvDropdownListComponent],
|
|
859
|
+
imports: [
|
|
860
|
+
CommonModule,
|
|
861
|
+
NggCoreWrapperModule,
|
|
862
|
+
NggvTypeaheadModule,
|
|
863
|
+
NggvTooltipModule,
|
|
864
|
+
NggvI18nModule,
|
|
865
|
+
],
|
|
866
|
+
exports: [NggvDropdownComponent, NggvDropdownListComponent],
|
|
867
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
823
868
|
}]
|
|
824
869
|
}] });
|
|
825
870
|
|
|
826
|
-
class
|
|
871
|
+
class NggvTypeaheadDirective {
|
|
827
872
|
/** Function that filter the inputvalue */
|
|
828
873
|
set nggvTypeahead(value) {
|
|
829
874
|
this.typeaheadFunction = value;
|
|
@@ -835,7 +880,7 @@ class NgvTypeaheadDirective {
|
|
|
835
880
|
}
|
|
836
881
|
}
|
|
837
882
|
/** Forward text inputs to apply the filter function*/
|
|
838
|
-
|
|
883
|
+
onNggvInput(event) {
|
|
839
884
|
this.inputValue$.next(event);
|
|
840
885
|
}
|
|
841
886
|
/** Helper to the determine if the host is nggv-drodpown or nggv-input*/
|
|
@@ -847,9 +892,13 @@ class NgvTypeaheadDirective {
|
|
|
847
892
|
return { key: null, label: this.unselectLabel || '\u00A0' };
|
|
848
893
|
}
|
|
849
894
|
get emptyOption() {
|
|
850
|
-
return {
|
|
895
|
+
return {
|
|
896
|
+
key: null,
|
|
897
|
+
label: this.emptyOptionLabel || 'label.nomatchingoptions',
|
|
898
|
+
disabled: true,
|
|
899
|
+
};
|
|
851
900
|
}
|
|
852
|
-
/** Name of the component. nggv-dropdown if
|
|
901
|
+
/** Name of the component. nggv-dropdown if NggvDropdownComponent or nggv-input if NggvInputComponent */
|
|
853
902
|
get localName() {
|
|
854
903
|
return this.element.nativeElement.localName;
|
|
855
904
|
}
|
|
@@ -867,7 +916,6 @@ class NgvTypeaheadDirective {
|
|
|
867
916
|
}
|
|
868
917
|
ngOnInit() {
|
|
869
918
|
this.handleInputChanges();
|
|
870
|
-
this.inputValue$.next('');
|
|
871
919
|
if (this.hostIsDropdown)
|
|
872
920
|
this.createInput();
|
|
873
921
|
else
|
|
@@ -887,6 +935,8 @@ class NgvTypeaheadDirective {
|
|
|
887
935
|
this.inputSubscription$ = this.inputValue$
|
|
888
936
|
.pipe(takeUntil(this.onDestroy$), distinctUntilChanged(), tap((inputValue) => this.filterPhraseChange.emit(inputValue)), this.typeaheadFunction ? this.typeaheadFunction : () => from([]), withLatestFrom(this.inputValue$))
|
|
889
937
|
.subscribe(([filteredValues, input]) => this.setOptions(filteredValues, input));
|
|
938
|
+
// Trigger the pipe when this function have been called
|
|
939
|
+
this.inputValue$.next('');
|
|
890
940
|
}
|
|
891
941
|
/**
|
|
892
942
|
* @internal
|
|
@@ -896,7 +946,7 @@ class NgvTypeaheadDirective {
|
|
|
896
946
|
* */
|
|
897
947
|
createInput() {
|
|
898
948
|
// Create the input component
|
|
899
|
-
this.inputComponent = this.viewContainerRef.createComponent(
|
|
949
|
+
this.inputComponent = this.viewContainerRef.createComponent(NggvTypeaheadInputComponent);
|
|
900
950
|
// Forward necessary info to component
|
|
901
951
|
this.inputComponent.setInput('hostComponent', this.hostDropdown);
|
|
902
952
|
this.inputComponent.setInput('selectedFormatter', this.selectedFormatter);
|
|
@@ -908,7 +958,7 @@ class NgvTypeaheadDirective {
|
|
|
908
958
|
}
|
|
909
959
|
/** @internal Creates a nggv-dropdown-list if the host itself is a nggv-input */
|
|
910
960
|
createDropdownList() {
|
|
911
|
-
this.dropdownListComponent = this.viewContainerRef.createComponent(
|
|
961
|
+
this.dropdownListComponent = this.viewContainerRef.createComponent(NggvTypeaheadDropdownListComponent);
|
|
912
962
|
this.dropdownListComponent.setInput('hostComponent', this.hostInput);
|
|
913
963
|
}
|
|
914
964
|
/**
|
|
@@ -924,8 +974,8 @@ class NgvTypeaheadDirective {
|
|
|
924
974
|
// Conditionally add empty or nullish option if it's allowed, the input is empty and does not already contain nullish
|
|
925
975
|
const allowNullish = this.allowUnselect &&
|
|
926
976
|
!input &&
|
|
927
|
-
!(Object.keys(filteredValues[0]).includes('key') &&
|
|
928
|
-
filteredValues[0]
|
|
977
|
+
!(Object.keys(filteredValues[0] ?? {}).includes('key') &&
|
|
978
|
+
filteredValues[0]?.key == null);
|
|
929
979
|
if (filteredValues.length === 0) {
|
|
930
980
|
filteredValues = [this.emptyOption];
|
|
931
981
|
}
|
|
@@ -957,20 +1007,20 @@ class NgvTypeaheadDirective {
|
|
|
957
1007
|
return options;
|
|
958
1008
|
return options.map((value) => value?.label ? this.resultFormatter?.(value) : value);
|
|
959
1009
|
}
|
|
960
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
961
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type:
|
|
1010
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: NggvDropdownComponent, host: true, optional: true }, { token: i2$1.NggvInputComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1011
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NggvTypeaheadDirective, isStandalone: true, selector: "nggv-input[nggvTypeahead], nggv-dropdown[nggvTypeahead]", inputs: { nggvTypeahead: "nggvTypeahead", resultFormatter: "resultFormatter", selectedFormatter: "selectedFormatter", allowUnselect: "allowUnselect", unselectLabel: "unselectLabel", emptyOptionLabel: "emptyOptionLabel" }, outputs: { filterPhraseChange: "filterPhraseChange" }, host: { listeners: { "nggvInput": "onNggvInput($event)" } }, ngImport: i0 }); }
|
|
962
1012
|
}
|
|
963
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
1013
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadDirective, decorators: [{
|
|
964
1014
|
type: Directive,
|
|
965
1015
|
args: [{
|
|
966
1016
|
selector: 'nggv-input[nggvTypeahead], nggv-dropdown[nggvTypeahead]',
|
|
967
1017
|
standalone: true,
|
|
968
1018
|
}]
|
|
969
|
-
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type:
|
|
1019
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: NggvDropdownComponent, decorators: [{
|
|
970
1020
|
type: Optional
|
|
971
1021
|
}, {
|
|
972
1022
|
type: Host
|
|
973
|
-
}] }, { type: i2$1.
|
|
1023
|
+
}] }, { type: i2$1.NggvInputComponent, decorators: [{
|
|
974
1024
|
type: Optional
|
|
975
1025
|
}, {
|
|
976
1026
|
type: Host
|
|
@@ -984,9 +1034,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
984
1034
|
type: Input
|
|
985
1035
|
}], unselectLabel: [{
|
|
986
1036
|
type: Input
|
|
1037
|
+
}], emptyOptionLabel: [{
|
|
1038
|
+
type: Input
|
|
987
1039
|
}], filterPhraseChange: [{
|
|
988
1040
|
type: Output
|
|
989
|
-
}],
|
|
1041
|
+
}], onNggvInput: [{
|
|
990
1042
|
type: HostListener,
|
|
991
1043
|
args: ['nggvInput', ['$event']]
|
|
992
1044
|
}] } });
|
|
@@ -995,5 +1047,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
995
1047
|
* Generated bundle index. Do not edit.
|
|
996
1048
|
*/
|
|
997
1049
|
|
|
998
|
-
export {
|
|
1050
|
+
export { NggvDropdownComponent, NggvDropdownListComponent, NggvDropdownModule, NggvTypeaheadDirective, NggvTypeaheadDropdownListComponent, NggvTypeaheadHighlightComponent, NggvTypeaheadInputComponent, NggvTypeaheadModule };
|
|
999
1051
|
//# sourceMappingURL=sebgroup-green-angular-src-v-angular-dropdown.mjs.map
|