@sebgroup/green-angular 0.0.0-v-angular-20250113082841
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/README.md +68 -0
- package/esm2022/index.mjs +18 -0
- package/esm2022/lib/accordion/accordion-list-item.component.mjs +50 -0
- package/esm2022/lib/accordion/accordion.component.mjs +72 -0
- package/esm2022/lib/accordion/accordion.module.mjs +19 -0
- package/esm2022/lib/accordion/index.mjs +4 -0
- package/esm2022/lib/badge/badge.component.mjs +80 -0
- package/esm2022/lib/badge/badge.module.mjs +18 -0
- package/esm2022/lib/badge/index.mjs +3 -0
- package/esm2022/lib/button/button.component.mjs +28 -0
- package/esm2022/lib/button/button.module.mjs +18 -0
- package/esm2022/lib/button/index.mjs +3 -0
- package/esm2022/lib/cell-table/cell-table-item.component.mjs +91 -0
- package/esm2022/lib/cell-table/cell-table.component.mjs +97 -0
- package/esm2022/lib/cell-table/cell-table.module.mjs +26 -0
- package/esm2022/lib/cell-table/cell-table.types.mjs +7 -0
- package/esm2022/lib/cell-table/cell-underline.directive.mjs +55 -0
- package/esm2022/lib/cell-table/index.mjs +4 -0
- package/esm2022/lib/context-menu/context-menu.component.mjs +73 -0
- package/esm2022/lib/context-menu/context-menu.module.mjs +20 -0
- package/esm2022/lib/context-menu/index.mjs +3 -0
- package/esm2022/lib/datepicker/datepicker.component.mjs +138 -0
- package/esm2022/lib/datepicker/datepicker.module.mjs +20 -0
- package/esm2022/lib/datepicker/index.mjs +3 -0
- package/esm2022/lib/dropdown/dropdown-button.directive.mjs +16 -0
- package/esm2022/lib/dropdown/dropdown-option.directive.mjs +16 -0
- package/esm2022/lib/dropdown/dropdown.component.mjs +222 -0
- package/esm2022/lib/dropdown/dropdown.module.mjs +34 -0
- package/esm2022/lib/dropdown/index.mjs +5 -0
- package/esm2022/lib/green-angular.module.mjs +72 -0
- package/esm2022/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +61 -0
- package/esm2022/lib/in-page-wizard/in-page-wizard.module.mjs +18 -0
- package/esm2022/lib/in-page-wizard/index.mjs +3 -0
- package/esm2022/lib/modal/index.mjs +5 -0
- package/esm2022/lib/modal/modal-footer.directive.mjs +16 -0
- package/esm2022/lib/modal/modal-header.directive.mjs +16 -0
- package/esm2022/lib/modal/modal.component.mjs +309 -0
- package/esm2022/lib/modal/modal.module.mjs +41 -0
- package/esm2022/lib/pagination/index.mjs +3 -0
- package/esm2022/lib/pagination/pagination.component.mjs +175 -0
- package/esm2022/lib/pagination/pagination.module.mjs +18 -0
- package/esm2022/lib/progress-circle/index.mjs +3 -0
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +41 -0
- package/esm2022/lib/progress-circle/progress-circle.module.mjs +18 -0
- package/esm2022/lib/segmented-control/index.mjs +3 -0
- package/esm2022/lib/segmented-control/segmented-control.component.mjs +35 -0
- package/esm2022/lib/segmented-control/segmented-control.module.mjs +19 -0
- package/esm2022/lib/shared/core-element/core-element.directive.mjs +33 -0
- package/esm2022/lib/shared/core-element/core-element.module.mjs +18 -0
- package/esm2022/lib/shared/core-element/index.mjs +3 -0
- package/esm2022/lib/shared/index.mjs +4 -0
- package/esm2022/lib/shared/on-scroll.directive.mjs +47 -0
- package/esm2022/lib/shared/shared.module.mjs +18 -0
- package/esm2022/lib/slider/index.mjs +3 -0
- package/esm2022/lib/slider/slider.component.mjs +113 -0
- package/esm2022/lib/slider/slider.module.mjs +19 -0
- package/esm2022/lib/sortable-list/index.mjs +3 -0
- package/esm2022/lib/sortable-list/sortable-list.component.mjs +181 -0
- package/esm2022/lib/sortable-list/sortable-list.module.mjs +20 -0
- package/esm2022/sebgroup-green-angular.mjs +5 -0
- package/esm2022/src/lib/accordion/accordion-list-item.component.mjs +50 -0
- package/esm2022/src/lib/accordion/accordion.component.mjs +72 -0
- package/esm2022/src/lib/accordion/accordion.module.mjs +19 -0
- package/esm2022/src/lib/accordion/index.mjs +4 -0
- package/esm2022/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +5 -0
- package/esm2022/src/lib/badge/badge.component.mjs +80 -0
- package/esm2022/src/lib/badge/badge.module.mjs +18 -0
- package/esm2022/src/lib/badge/index.mjs +3 -0
- package/esm2022/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +5 -0
- package/esm2022/src/lib/button/button.component.mjs +28 -0
- package/esm2022/src/lib/button/button.module.mjs +18 -0
- package/esm2022/src/lib/button/index.mjs +3 -0
- package/esm2022/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +5 -0
- package/esm2022/src/lib/cell-table/cell-table-item.component.mjs +91 -0
- package/esm2022/src/lib/cell-table/cell-table.component.mjs +97 -0
- package/esm2022/src/lib/cell-table/cell-table.module.mjs +26 -0
- package/esm2022/src/lib/cell-table/cell-table.types.mjs +7 -0
- package/esm2022/src/lib/cell-table/cell-underline.directive.mjs +55 -0
- package/esm2022/src/lib/cell-table/index.mjs +4 -0
- package/esm2022/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +5 -0
- package/esm2022/src/lib/context-menu/context-menu.component.mjs +73 -0
- package/esm2022/src/lib/context-menu/context-menu.module.mjs +20 -0
- package/esm2022/src/lib/context-menu/index.mjs +3 -0
- package/esm2022/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +5 -0
- package/esm2022/src/lib/datepicker/datepicker.component.mjs +138 -0
- package/esm2022/src/lib/datepicker/datepicker.module.mjs +20 -0
- package/esm2022/src/lib/datepicker/index.mjs +3 -0
- package/esm2022/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +5 -0
- package/esm2022/src/lib/dropdown/dropdown-button.directive.mjs +16 -0
- package/esm2022/src/lib/dropdown/dropdown-option.directive.mjs +16 -0
- package/esm2022/src/lib/dropdown/dropdown.component.mjs +222 -0
- package/esm2022/src/lib/dropdown/dropdown.module.mjs +34 -0
- package/esm2022/src/lib/dropdown/index.mjs +5 -0
- package/esm2022/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +5 -0
- package/esm2022/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +61 -0
- package/esm2022/src/lib/in-page-wizard/in-page-wizard.module.mjs +18 -0
- package/esm2022/src/lib/in-page-wizard/index.mjs +3 -0
- package/esm2022/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +5 -0
- package/esm2022/src/lib/modal/index.mjs +5 -0
- package/esm2022/src/lib/modal/modal-footer.directive.mjs +16 -0
- package/esm2022/src/lib/modal/modal-header.directive.mjs +16 -0
- package/esm2022/src/lib/modal/modal.component.mjs +309 -0
- package/esm2022/src/lib/modal/modal.module.mjs +41 -0
- package/esm2022/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +5 -0
- package/esm2022/src/lib/pagination/index.mjs +3 -0
- package/esm2022/src/lib/pagination/pagination.component.mjs +175 -0
- package/esm2022/src/lib/pagination/pagination.module.mjs +18 -0
- package/esm2022/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +5 -0
- package/esm2022/src/lib/progress-circle/index.mjs +3 -0
- package/esm2022/src/lib/progress-circle/progress-circle.component.mjs +41 -0
- package/esm2022/src/lib/progress-circle/progress-circle.module.mjs +18 -0
- package/esm2022/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +5 -0
- package/esm2022/src/lib/segmented-control/index.mjs +3 -0
- package/esm2022/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +5 -0
- package/esm2022/src/lib/segmented-control/segmented-control.component.mjs +35 -0
- package/esm2022/src/lib/segmented-control/segmented-control.module.mjs +19 -0
- package/esm2022/src/lib/shared/core-element/core-element.directive.mjs +33 -0
- package/esm2022/src/lib/shared/core-element/core-element.module.mjs +18 -0
- package/esm2022/src/lib/shared/core-element/index.mjs +3 -0
- package/esm2022/src/lib/shared/index.mjs +4 -0
- package/esm2022/src/lib/shared/on-scroll.directive.mjs +47 -0
- package/esm2022/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +5 -0
- package/esm2022/src/lib/shared/shared.module.mjs +18 -0
- package/esm2022/src/lib/slider/index.mjs +3 -0
- package/esm2022/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +5 -0
- package/esm2022/src/lib/slider/slider.component.mjs +113 -0
- package/esm2022/src/lib/slider/slider.module.mjs +19 -0
- package/esm2022/src/lib/sortable-list/index.mjs +3 -0
- package/esm2022/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +5 -0
- package/esm2022/src/lib/sortable-list/sortable-list.component.mjs +181 -0
- package/esm2022/src/lib/sortable-list/sortable-list.module.mjs +20 -0
- 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 +297 -0
- package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +17 -0
- package/esm2022/src/v-angular/base-control-value-accessor/index.mjs +3 -0
- package/esm2022/src/v-angular/base-control-value-accessor/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +5 -0
- package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +25 -0
- package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +20 -0
- package/esm2022/src/v-angular/breadcrumbs/index.mjs +3 -0
- package/esm2022/src/v-angular/breadcrumbs/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +5 -0
- package/esm2022/src/v-angular/button/button.component.mjs +108 -0
- package/esm2022/src/v-angular/button/button.module.mjs +20 -0
- package/esm2022/src/v-angular/button/index.mjs +3 -0
- package/esm2022/src/v-angular/button/sebgroup-green-angular-src-v-angular-button.mjs +5 -0
- package/esm2022/src/v-angular/card/card.component.mjs +11 -0
- package/esm2022/src/v-angular/card/card.module.mjs +18 -0
- package/esm2022/src/v-angular/card/index.mjs +3 -0
- package/esm2022/src/v-angular/card/sebgroup-green-angular-src-v-angular-card.mjs +5 -0
- package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +51 -0
- package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +18 -0
- package/esm2022/src/v-angular/character-countdown/index.mjs +3 -0
- package/esm2022/src/v-angular/character-countdown/sebgroup-green-angular-src-v-angular-character-countdown.mjs +5 -0
- package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +74 -0
- package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +21 -0
- package/esm2022/src/v-angular/checkbox/index.mjs +3 -0
- package/esm2022/src/v-angular/checkbox/sebgroup-green-angular-src-v-angular-checkbox.mjs +5 -0
- package/esm2022/src/v-angular/core/core.globals.mjs +20 -0
- package/esm2022/src/v-angular/core/core.utils.mjs +62 -0
- package/esm2022/src/v-angular/core/index.mjs +3 -0
- package/esm2022/src/v-angular/core/sebgroup-green-angular-src-v-angular-core.mjs +5 -0
- 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 +496 -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 +75 -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 +271 -0
- package/esm2022/src/v-angular/dropdown/dropdown-list/index.mjs +2 -0
- package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +246 -0
- package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +38 -0
- package/esm2022/src/v-angular/dropdown/index.mjs +6 -0
- package/esm2022/src/v-angular/dropdown/sebgroup-green-angular-src-v-angular-dropdown.mjs +5 -0
- package/esm2022/src/v-angular/dropdown/typeahead/index.mjs +6 -0
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +98 -0
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +85 -0
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +132 -0
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +33 -0
- package/esm2022/src/v-angular/external-link/external-link.directive.mjs +37 -0
- package/esm2022/src/v-angular/external-link/external-link.module.mjs +18 -0
- package/esm2022/src/v-angular/external-link/index.mjs +3 -0
- package/esm2022/src/v-angular/external-link/sebgroup-green-angular-src-v-angular-external-link.mjs +5 -0
- package/esm2022/src/v-angular/i18n/i18n.json +12 -0
- package/esm2022/src/v-angular/i18n/i18n.module.mjs +89 -0
- package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +89 -0
- package/esm2022/src/v-angular/i18n/index.mjs +3 -0
- package/esm2022/src/v-angular/i18n/sebgroup-green-angular-src-v-angular-i18n.mjs +5 -0
- package/esm2022/src/v-angular/info-circle/index.mjs +3 -0
- package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +28 -0
- package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +21 -0
- package/esm2022/src/v-angular/info-circle/sebgroup-green-angular-src-v-angular-info-circle.mjs +5 -0
- package/esm2022/src/v-angular/input/index.mjs +3 -0
- package/esm2022/src/v-angular/input/input.component.mjs +218 -0
- package/esm2022/src/v-angular/input/input.module.mjs +41 -0
- package/esm2022/src/v-angular/input/sebgroup-green-angular-src-v-angular-input.mjs +5 -0
- package/esm2022/src/v-angular/input-mask/config.mjs +9 -0
- package/esm2022/src/v-angular/input-mask/constants.mjs +2 -0
- package/esm2022/src/v-angular/input-mask/index.mjs +6 -0
- package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +21 -0
- package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +165 -0
- package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +35 -0
- package/esm2022/src/v-angular/input-mask/input-mask.types.mjs +2 -0
- package/esm2022/src/v-angular/input-mask/sebgroup-green-angular-src-v-angular-input-mask.mjs +5 -0
- package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +217 -0
- package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +157 -0
- package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +19 -0
- package/esm2022/src/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
- package/esm2022/src/v-angular/modal/index.mjs +6 -0
- package/esm2022/src/v-angular/modal/modal.globals.mjs +20 -0
- package/esm2022/src/v-angular/modal/modal.module.mjs +53 -0
- package/esm2022/src/v-angular/modal/modal.types.mjs +2 -0
- package/esm2022/src/v-angular/modal/sebgroup-green-angular-src-v-angular-modal.mjs +5 -0
- package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +253 -0
- 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/index.mjs +3 -0
- package/esm2022/src/v-angular/radio/radio.component.mjs +132 -0
- package/esm2022/src/v-angular/radio/radio.module.mjs +21 -0
- package/esm2022/src/v-angular/radio/sebgroup-green-angular-src-v-angular-radio.mjs +5 -0
- package/esm2022/src/v-angular/slug/index.mjs +3 -0
- package/esm2022/src/v-angular/slug/sebgroup-green-angular-src-v-angular-slug.mjs +5 -0
- package/esm2022/src/v-angular/slug/slug.module.mjs +18 -0
- package/esm2022/src/v-angular/slug/slug.pipe.mjs +27 -0
- 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 +260 -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/index.mjs +3 -0
- package/esm2022/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.mjs +5 -0
- package/esm2022/src/v-angular/textarea/textarea.component.mjs +105 -0
- package/esm2022/src/v-angular/textarea/textarea.module.mjs +34 -0
- 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/index.mjs +3 -0
- package/esm2022/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.mjs +5 -0
- package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +293 -0
- package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +18 -0
- 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 +297 -0
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +17 -0
- package/esm2022/v-angular/base-control-value-accessor/index.mjs +3 -0
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +25 -0
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +20 -0
- package/esm2022/v-angular/breadcrumbs/index.mjs +3 -0
- package/esm2022/v-angular/button/button.component.mjs +108 -0
- package/esm2022/v-angular/button/button.module.mjs +20 -0
- package/esm2022/v-angular/button/index.mjs +3 -0
- package/esm2022/v-angular/card/card.component.mjs +11 -0
- package/esm2022/v-angular/card/card.module.mjs +18 -0
- package/esm2022/v-angular/card/index.mjs +3 -0
- package/esm2022/v-angular/character-countdown/character-countdown.directive.mjs +51 -0
- package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +18 -0
- package/esm2022/v-angular/character-countdown/index.mjs +3 -0
- package/esm2022/v-angular/checkbox/checkbox.component.mjs +74 -0
- package/esm2022/v-angular/checkbox/checkbox.module.mjs +21 -0
- package/esm2022/v-angular/checkbox/index.mjs +3 -0
- 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 +496 -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 +75 -0
- package/esm2022/v-angular/drag-drop/index.mjs +5 -0
- package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +271 -0
- package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +2 -0
- package/esm2022/v-angular/dropdown/dropdown.component.mjs +246 -0
- package/esm2022/v-angular/dropdown/dropdown.module.mjs +38 -0
- package/esm2022/v-angular/dropdown/index.mjs +6 -0
- package/esm2022/v-angular/dropdown/typeahead/index.mjs +6 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +98 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +85 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +132 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +33 -0
- 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.json +12 -0
- package/esm2022/v-angular/i18n/i18n.module.mjs +89 -0
- package/esm2022/v-angular/i18n/i18n.test.module.mjs +89 -0
- package/esm2022/v-angular/i18n/index.mjs +3 -0
- package/esm2022/v-angular/index.mjs +27 -0
- package/esm2022/v-angular/info-circle/index.mjs +3 -0
- package/esm2022/v-angular/info-circle/info-circle.component.mjs +28 -0
- package/esm2022/v-angular/info-circle/info-circle.module.mjs +21 -0
- package/esm2022/v-angular/input/index.mjs +3 -0
- package/esm2022/v-angular/input/input.component.mjs +218 -0
- package/esm2022/v-angular/input/input.module.mjs +41 -0
- package/esm2022/v-angular/input-mask/config.mjs +9 -0
- package/esm2022/v-angular/input-mask/constants.mjs +2 -0
- package/esm2022/v-angular/input-mask/index.mjs +6 -0
- package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +21 -0
- package/esm2022/v-angular/input-mask/input-mask.directive.mjs +165 -0
- package/esm2022/v-angular/input-mask/input-mask.module.mjs +35 -0
- package/esm2022/v-angular/input-mask/input-mask.types.mjs +2 -0
- package/esm2022/v-angular/modal/dialog/dialog.component.mjs +217 -0
- package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +157 -0
- package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +19 -0
- package/esm2022/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
- package/esm2022/v-angular/modal/index.mjs +6 -0
- package/esm2022/v-angular/modal/modal.globals.mjs +20 -0
- package/esm2022/v-angular/modal/modal.module.mjs +53 -0
- package/esm2022/v-angular/modal/modal.types.mjs +2 -0
- package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +253 -0
- 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/index.mjs +3 -0
- package/esm2022/v-angular/radio/radio.component.mjs +132 -0
- package/esm2022/v-angular/radio/radio.module.mjs +21 -0
- package/esm2022/v-angular/sebgroup-green-angular-v-angular.mjs +5 -0
- 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 +260 -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/index.mjs +3 -0
- package/esm2022/v-angular/textarea/textarea.component.mjs +105 -0
- package/esm2022/v-angular/textarea/textarea.module.mjs +34 -0
- 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/index.mjs +3 -0
- package/esm2022/v-angular/tooltip/tooltip.directive.mjs +293 -0
- package/esm2022/v-angular/tooltip/tooltip.module.mjs +18 -0
- package/esm2022/v-angular/tooltip/tooltip.styles.mjs +60 -0
- package/esm2022/v-angular/v-angular.module.mjs +120 -0
- package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +141 -0
- package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +102 -0
- package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +50 -0
- package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +270 -0
- package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +97 -0
- package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +162 -0
- package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +284 -0
- package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +83 -0
- package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +377 -0
- package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
- package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
- package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
- package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +113 -0
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +135 -0
- package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
- package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
- 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 +318 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +49 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +131 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +33 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +73 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +98 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +88 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -0
- 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 +685 -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 +1037 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +58 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +198 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +53 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +227 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +262 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +717 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -0
- 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 +156 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +49 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -0
- 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 +365 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +141 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -0
- 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 +374 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +7538 -0
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular.mjs +2229 -0
- package/fesm2022/sebgroup-green-angular.mjs.map +1 -0
- package/index.d.ts +17 -0
- package/lib/accordion/accordion-list-item.component.d.ts +16 -0
- package/lib/accordion/accordion.component.d.ts +16 -0
- package/lib/accordion/accordion.module.d.ts +9 -0
- package/lib/accordion/index.d.ts +3 -0
- package/lib/badge/badge.component.d.ts +25 -0
- package/lib/badge/badge.module.d.ts +8 -0
- package/lib/badge/index.d.ts +2 -0
- package/lib/button/button.component.d.ts +9 -0
- package/lib/button/button.module.d.ts +8 -0
- package/lib/button/index.d.ts +2 -0
- package/lib/cell-table/cell-table-item.component.d.ts +14 -0
- package/lib/cell-table/cell-table.component.d.ts +44 -0
- package/lib/cell-table/cell-table.module.d.ts +10 -0
- package/lib/cell-table/cell-table.types.d.ts +34 -0
- package/lib/cell-table/cell-underline.directive.d.ts +14 -0
- package/lib/cell-table/index.d.ts +3 -0
- package/lib/context-menu/context-menu.component.d.ts +44 -0
- package/lib/context-menu/context-menu.module.d.ts +9 -0
- package/lib/context-menu/index.d.ts +2 -0
- package/lib/datepicker/datepicker.component.d.ts +59 -0
- package/lib/datepicker/datepicker.module.d.ts +9 -0
- package/lib/datepicker/index.d.ts +2 -0
- package/lib/dropdown/dropdown-button.directive.d.ts +8 -0
- package/lib/dropdown/dropdown-option.directive.d.ts +8 -0
- package/lib/dropdown/dropdown.component.d.ts +78 -0
- package/lib/dropdown/dropdown.module.d.ts +11 -0
- package/lib/dropdown/index.d.ts +4 -0
- package/lib/green-angular.module.d.ts +21 -0
- package/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +19 -0
- package/lib/in-page-wizard/in-page-wizard.module.d.ts +8 -0
- package/lib/in-page-wizard/index.d.ts +2 -0
- package/lib/modal/index.d.ts +4 -0
- package/lib/modal/modal-footer.directive.d.ts +8 -0
- package/lib/modal/modal-header.directive.d.ts +8 -0
- package/lib/modal/modal.component.d.ts +67 -0
- package/lib/modal/modal.module.d.ts +11 -0
- package/lib/pagination/index.d.ts +2 -0
- package/lib/pagination/pagination.component.d.ts +42 -0
- package/lib/pagination/pagination.module.d.ts +8 -0
- package/lib/progress-circle/index.d.ts +2 -0
- package/lib/progress-circle/progress-circle.component.d.ts +14 -0
- package/lib/progress-circle/progress-circle.module.d.ts +8 -0
- package/lib/segmented-control/index.d.ts +2 -0
- package/lib/segmented-control/segmented-control.component.d.ts +11 -0
- package/lib/segmented-control/segmented-control.module.d.ts +9 -0
- package/lib/shared/core-element/core-element.directive.d.ts +13 -0
- package/lib/shared/core-element/core-element.module.d.ts +8 -0
- package/lib/shared/core-element/index.d.ts +2 -0
- package/lib/shared/index.d.ts +3 -0
- package/lib/shared/on-scroll.directive.d.ts +14 -0
- package/lib/shared/shared.module.d.ts +8 -0
- package/lib/slider/index.d.ts +2 -0
- package/lib/slider/slider.component.d.ts +38 -0
- package/lib/slider/slider.module.d.ts +9 -0
- package/lib/sortable-list/index.d.ts +2 -0
- package/lib/sortable-list/sortable-list.component.d.ts +91 -0
- package/lib/sortable-list/sortable-list.module.d.ts +10 -0
- package/package.json +308 -0
- package/src/lib/accordion/accordion-list-item.component.d.ts +16 -0
- package/src/lib/accordion/accordion.component.d.ts +16 -0
- package/src/lib/accordion/accordion.module.d.ts +9 -0
- package/src/lib/accordion/index.d.ts +3 -0
- package/src/lib/badge/badge.component.d.ts +25 -0
- package/src/lib/badge/badge.module.d.ts +8 -0
- package/src/lib/badge/index.d.ts +2 -0
- package/src/lib/button/button.component.d.ts +9 -0
- package/src/lib/button/button.module.d.ts +8 -0
- package/src/lib/button/index.d.ts +2 -0
- package/src/lib/cell-table/cell-table-item.component.d.ts +14 -0
- package/src/lib/cell-table/cell-table.component.d.ts +44 -0
- package/src/lib/cell-table/cell-table.module.d.ts +10 -0
- package/src/lib/cell-table/cell-table.types.d.ts +34 -0
- package/src/lib/cell-table/cell-underline.directive.d.ts +14 -0
- package/src/lib/cell-table/index.d.ts +3 -0
- package/src/lib/context-menu/context-menu.component.d.ts +44 -0
- package/src/lib/context-menu/context-menu.module.d.ts +9 -0
- package/src/lib/context-menu/index.d.ts +2 -0
- package/src/lib/datepicker/datepicker.component.d.ts +59 -0
- package/src/lib/datepicker/datepicker.module.d.ts +9 -0
- package/src/lib/datepicker/index.d.ts +2 -0
- package/src/lib/dropdown/dropdown-button.directive.d.ts +8 -0
- package/src/lib/dropdown/dropdown-option.directive.d.ts +8 -0
- package/src/lib/dropdown/dropdown.component.d.ts +78 -0
- package/src/lib/dropdown/dropdown.module.d.ts +11 -0
- package/src/lib/dropdown/index.d.ts +4 -0
- package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +19 -0
- package/src/lib/in-page-wizard/in-page-wizard.module.d.ts +8 -0
- package/src/lib/in-page-wizard/index.d.ts +2 -0
- package/src/lib/modal/index.d.ts +4 -0
- package/src/lib/modal/modal-footer.directive.d.ts +8 -0
- package/src/lib/modal/modal-header.directive.d.ts +8 -0
- package/src/lib/modal/modal.component.d.ts +67 -0
- package/src/lib/modal/modal.module.d.ts +11 -0
- package/src/lib/pagination/index.d.ts +2 -0
- package/src/lib/pagination/pagination.component.d.ts +42 -0
- package/src/lib/pagination/pagination.module.d.ts +8 -0
- package/src/lib/progress-circle/index.d.ts +2 -0
- package/src/lib/progress-circle/progress-circle.component.d.ts +14 -0
- package/src/lib/progress-circle/progress-circle.module.d.ts +8 -0
- package/src/lib/segmented-control/index.d.ts +2 -0
- package/src/lib/segmented-control/segmented-control.component.d.ts +11 -0
- package/src/lib/segmented-control/segmented-control.module.d.ts +9 -0
- package/src/lib/shared/core-element/core-element.directive.d.ts +13 -0
- package/src/lib/shared/core-element/core-element.module.d.ts +8 -0
- package/src/lib/shared/core-element/index.d.ts +2 -0
- package/src/lib/shared/index.d.ts +3 -0
- package/src/lib/shared/on-scroll.directive.d.ts +14 -0
- package/src/lib/shared/shared.module.d.ts +8 -0
- package/src/lib/slider/index.d.ts +2 -0
- package/src/lib/slider/slider.component.d.ts +38 -0
- package/src/lib/slider/slider.module.d.ts +9 -0
- package/src/lib/sortable-list/index.d.ts +2 -0
- package/src/lib/sortable-list/sortable-list.component.d.ts +91 -0
- package/src/lib/sortable-list/sortable-list.module.d.ts +10 -0
- 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 +130 -0
- package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +7 -0
- package/src/v-angular/base-control-value-accessor/index.d.ts +2 -0
- package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +18 -0
- package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +10 -0
- package/src/v-angular/breadcrumbs/index.d.ts +2 -0
- package/src/v-angular/button/button.component.d.ts +62 -0
- package/src/v-angular/button/button.module.d.ts +10 -0
- package/src/v-angular/button/index.d.ts +2 -0
- package/src/v-angular/card/card.component.d.ts +5 -0
- package/src/v-angular/card/card.module.d.ts +8 -0
- package/src/v-angular/card/index.d.ts +2 -0
- package/src/v-angular/character-countdown/character-countdown.directive.d.ts +17 -0
- package/src/v-angular/character-countdown/character-countdown.module.d.ts +8 -0
- package/src/v-angular/character-countdown/index.d.ts +2 -0
- package/src/v-angular/checkbox/checkbox.component.d.ts +28 -0
- package/src/v-angular/checkbox/checkbox.module.d.ts +10 -0
- package/src/v-angular/checkbox/index.d.ts +2 -0
- package/src/v-angular/core/core.globals.d.ts +13 -0
- package/src/v-angular/core/core.utils.d.ts +23 -0
- package/src/v-angular/core/index.d.ts +2 -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 +96 -0
- package/src/v-angular/dropdown/dropdown-list/index.d.ts +1 -0
- package/src/v-angular/dropdown/dropdown.component.d.ts +103 -0
- package/src/v-angular/dropdown/dropdown.module.d.ts +13 -0
- package/src/v-angular/dropdown/index.d.ts +5 -0
- package/src/v-angular/dropdown/typeahead/index.d.ts +5 -0
- package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +34 -0
- package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +34 -0
- package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +59 -0
- package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
- package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +11 -0
- package/src/v-angular/external-link/external-link.directive.d.ts +17 -0
- package/src/v-angular/external-link/external-link.module.d.ts +8 -0
- package/src/v-angular/external-link/index.d.ts +2 -0
- package/src/v-angular/i18n/i18n.module.d.ts +15 -0
- package/src/v-angular/i18n/i18n.test.module.d.ts +27 -0
- package/src/v-angular/i18n/index.d.ts +2 -0
- package/src/v-angular/info-circle/index.d.ts +2 -0
- package/src/v-angular/info-circle/info-circle.component.d.ts +16 -0
- package/src/v-angular/info-circle/info-circle.module.d.ts +10 -0
- package/src/v-angular/input/index.d.ts +2 -0
- package/src/v-angular/input/input.component.d.ts +85 -0
- package/src/v-angular/input/input.module.d.ts +13 -0
- package/src/v-angular/input-mask/config.d.ts +6 -0
- package/src/v-angular/input-mask/constants.d.ts +2 -0
- package/src/v-angular/input-mask/index.d.ts +5 -0
- package/src/v-angular/input-mask/input-mask-format.pipe.d.ts +8 -0
- package/src/v-angular/input-mask/input-mask.directive.d.ts +39 -0
- package/src/v-angular/input-mask/input-mask.module.d.ts +11 -0
- package/src/v-angular/input-mask/input-mask.types.d.ts +20 -0
- package/src/v-angular/modal/dialog/dialog.component.d.ts +64 -0
- package/src/v-angular/modal/fold-out/fold-out.component.d.ts +47 -0
- package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +6 -0
- package/src/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
- package/src/v-angular/modal/index.d.ts +5 -0
- package/src/v-angular/modal/modal.globals.d.ts +13 -0
- package/src/v-angular/modal/modal.module.d.ts +15 -0
- package/src/v-angular/modal/modal.types.d.ts +5 -0
- package/src/v-angular/modal/slide-out/slide-out.component.d.ts +83 -0
- 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/index.d.ts +2 -0
- package/src/v-angular/radio/radio.component.d.ts +49 -0
- package/src/v-angular/radio/radio.module.d.ts +10 -0
- package/src/v-angular/slug/index.d.ts +2 -0
- package/src/v-angular/slug/slug.module.d.ts +8 -0
- package/src/v-angular/slug/slug.pipe.d.ts +12 -0
- 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/index.d.ts +2 -0
- package/src/v-angular/textarea/textarea.component.d.ts +45 -0
- package/src/v-angular/textarea/textarea.module.d.ts +12 -0
- 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/index.d.ts +2 -0
- package/src/v-angular/tooltip/tooltip.directive.d.ts +108 -0
- package/src/v-angular/tooltip/tooltip.module.d.ts +8 -0
- 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 +130 -0
- package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +7 -0
- package/v-angular/base-control-value-accessor/index.d.ts +2 -0
- package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +18 -0
- package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +10 -0
- package/v-angular/breadcrumbs/index.d.ts +2 -0
- package/v-angular/button/button.component.d.ts +62 -0
- package/v-angular/button/button.module.d.ts +10 -0
- package/v-angular/button/index.d.ts +2 -0
- package/v-angular/card/card.component.d.ts +5 -0
- package/v-angular/card/card.module.d.ts +8 -0
- package/v-angular/card/index.d.ts +2 -0
- package/v-angular/character-countdown/character-countdown.directive.d.ts +17 -0
- package/v-angular/character-countdown/character-countdown.module.d.ts +8 -0
- package/v-angular/character-countdown/index.d.ts +2 -0
- package/v-angular/checkbox/checkbox.component.d.ts +28 -0
- package/v-angular/checkbox/checkbox.module.d.ts +10 -0
- package/v-angular/checkbox/index.d.ts +2 -0
- 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 +96 -0
- package/v-angular/dropdown/dropdown-list/index.d.ts +1 -0
- package/v-angular/dropdown/dropdown.component.d.ts +103 -0
- package/v-angular/dropdown/dropdown.module.d.ts +13 -0
- package/v-angular/dropdown/index.d.ts +5 -0
- package/v-angular/dropdown/typeahead/index.d.ts +5 -0
- package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +34 -0
- package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +34 -0
- package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +59 -0
- package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
- package/v-angular/dropdown/typeahead/typeahead.module.d.ts +11 -0
- 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 +15 -0
- package/v-angular/i18n/i18n.test.module.d.ts +27 -0
- package/v-angular/i18n/index.d.ts +2 -0
- package/v-angular/index.d.ts +26 -0
- package/v-angular/info-circle/index.d.ts +2 -0
- package/v-angular/info-circle/info-circle.component.d.ts +16 -0
- package/v-angular/info-circle/info-circle.module.d.ts +10 -0
- package/v-angular/input/index.d.ts +2 -0
- package/v-angular/input/input.component.d.ts +85 -0
- package/v-angular/input/input.module.d.ts +13 -0
- package/v-angular/input-mask/config.d.ts +6 -0
- package/v-angular/input-mask/constants.d.ts +2 -0
- package/v-angular/input-mask/index.d.ts +5 -0
- package/v-angular/input-mask/input-mask-format.pipe.d.ts +8 -0
- package/v-angular/input-mask/input-mask.directive.d.ts +39 -0
- package/v-angular/input-mask/input-mask.module.d.ts +11 -0
- package/v-angular/input-mask/input-mask.types.d.ts +20 -0
- package/v-angular/modal/dialog/dialog.component.d.ts +64 -0
- package/v-angular/modal/fold-out/fold-out.component.d.ts +47 -0
- package/v-angular/modal/fold-out/fold-out.directive.d.ts +6 -0
- package/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
- package/v-angular/modal/index.d.ts +5 -0
- package/v-angular/modal/modal.globals.d.ts +13 -0
- package/v-angular/modal/modal.module.d.ts +15 -0
- package/v-angular/modal/modal.types.d.ts +5 -0
- package/v-angular/modal/slide-out/slide-out.component.d.ts +83 -0
- 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/index.d.ts +2 -0
- package/v-angular/radio/radio.component.d.ts +49 -0
- package/v-angular/radio/radio.module.d.ts +10 -0
- 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/index.d.ts +2 -0
- package/v-angular/textarea/textarea.component.d.ts +45 -0
- package/v-angular/textarea/textarea.module.d.ts +12 -0
- 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/index.d.ts +2 -0
- package/v-angular/tooltip/tooltip.directive.d.ts +108 -0
- package/v-angular/tooltip/tooltip.module.d.ts +8 -0
- package/v-angular/tooltip/tooltip.styles.d.ts +11 -0
- package/v-angular/v-angular.module.d.ts +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-v-angular-table.mjs","sources":["../../../../libs/angular/src/v-angular/table/table.directive.ts","../../../../libs/angular/src/v-angular/table/table.tools.ts","../../../../libs/angular/src/v-angular/table/tr-thook.pipe.ts","../../../../libs/angular/src/v-angular/table/table.component.ts","../../../../libs/angular/src/v-angular/table/table.component.html","../../../../libs/angular/src/v-angular/table/table.module.ts","../../../../libs/angular/src/v-angular/table/index.ts","../../../../libs/angular/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.ts"],"sourcesContent":["import { Directive, HostBinding, Input, TemplateRef } from '@angular/core'\n\nconst enum ColumnCSSClass {\n Primary = 'gds-table__primary-col',\n Sortable = 'gds-table__sortable-col',\n Numeric = 'gds-table__numeric-col',\n Negative = 'gds-table__negative-col',\n Ascending = 'gds-table__sortable-col--asc',\n Descending = 'gds-table__sortable-col--desc',\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[columnType]',\n})\nexport class TableDirective {\n @Input() columnType: 'numeric' | 'text' | undefined = 'text'\n @Input() sortable?: boolean\n @Input() sortOrder?: 'desc' | 'asc'\n @Input() value: any\n\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'table'\n\n @HostBinding('class.' + ColumnCSSClass.Numeric) get numericColumn(): boolean {\n return this.columnType === 'numeric'\n }\n\n @HostBinding('class.' + ColumnCSSClass.Sortable) get isSortable(): boolean {\n return !!this.sortable\n }\n\n @HostBinding('class.' + ColumnCSSClass.Ascending)\n get orderAscending(): boolean {\n return this.sortOrder === 'asc' && !!this.sortable\n }\n\n @HostBinding('class.' + ColumnCSSClass.Descending)\n get orderDescending(): boolean {\n return this.sortOrder === 'desc' && !!this.sortable\n }\n\n @HostBinding('class.' + ColumnCSSClass.Negative)\n get negativeValue(): boolean {\n if (!isNaN(this.value)) return +this.value < 0\n return false\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableColumn]',\n})\nexport class TableTemplateDirective<K = string> {\n @Input() tableColumn!: K\n @Input() tableColumnTarget?: 'th' | 'td' | 'both' = 'both'\n\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableFooter]',\n})\nexport class TableFooterTemplateDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tableAppendableRows]',\n})\nexport class TableAppendableRowsTemplateDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","const getKeyValue = <T, K extends keyof T>(obj: T, key: K): T[K] => obj[key]\n\nexport const pick = (\n propertyArray: Array<string>,\n object: { [key: string]: unknown },\n): object => {\n if (object instanceof Object) {\n return propertyArray.reduce(\n (acc: object, curr: string) => ({\n ...acc,\n [curr]: getKeyValue(object, curr),\n }),\n {},\n )\n }\n throw Error('The value for argument \"object\" must be an object')\n}\n\nexport const orderByDescending = <T>(\n property: keyof T | string,\n): ((a: any, b: any) => number) => {\n return (a: any, b: any) => {\n if (a[property] > b[property]) return -1\n if (a[property] < b[property]) return 1\n return 0\n }\n}\n\nexport const orderByAscending = <T>(\n property: keyof T | string,\n): ((a: any, b: any) => number) => {\n return (a: any, b: any) => {\n if (a[property] < b[property]) return -1\n if (a[property] > b[property]) return 1\n return 0\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n name: 'trThook',\n standalone: true,\n})\nexport class TrThookPipe implements PipeTransform {\n transform<V>(\n value: V,\n index: number,\n thookFn?: (rowData: V) => string,\n ): string {\n // call thook fn to set thook for active row\n if (thookFn != null) {\n return thookFn(value)\n }\n\n // default thook\n return `table-row-${index}`\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core'\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms'\nimport { Subscription } from 'rxjs'\nimport { debounceTime, map } from 'rxjs/operators'\n\nimport {\n TableAppendableRowsTemplateDirective,\n TableFooterTemplateDirective,\n TableTemplateDirective,\n} from './table.directive'\nimport {\n ariaLabelsOrderBy,\n OrderBy,\n TableColumn,\n TableRow,\n} from './table.models'\nimport { orderByAscending, orderByDescending, pick } from './table.tools'\n\nlet staticInitId = 0\n\nfunction objectFromEntries(entryMap: Map<any, any>): { [key: string]: any } {\n const fromEntries: { [key: string]: any } = {}\n for (const [key, value] of entryMap) {\n fromEntries[key] = value\n }\n return fromEntries\n}\n\n/**\n * A table component with built-in sorting and selecting functionality.\n * By default, table cells (i.e. `<td>` elements) and table headers (i.e. `<th>` elements) are populated with text only values.\n *\n * To customize the contents of either the `<td>` or `<th>` elements (like adding color, icons, form fields, extra padding etc.), provide\n * the customized content within a `<ng-template>`-tag, and place the ng-template in the html between the start and ending tag of\n * the `<nggv-table>`. Add a `tableColumn`-attribute to the `<ng-template>`-element, and set the value to the specific column property.\n * Set `tableColumnTarget` to either `th`, `td` or `both` (default) depending on target element type.\n * The entire row from the `@Input() tableData` is available from the context `$implicit` variable.\n *\n * @example\n * <!-- for table cells i.e. td-elements -->\n * <ng-template tableColumn=\"status\" tableColumnTarget=\"td\" let-myDataVar=\"$implicit\" let-status=\"$implicit.status\">\n * <!-- my custom status element -->\n * </ng-template>\n *\n * @example\n * <!-- for table headers i.e. th-elements -->\n * <ng-template tableColumn=\"status\" tableColumnTarget=\"th\" let-myDataVar=\"$implicit\" let-status=\"$implicit.status\">\n * <!-- my custom status element -->\n * </ng-template>\n *\n * It is possible to add custom rows that are appended below data row. Use `<ng-template>`-tag and place the ng-template in the html between the start and ending tag of\n * the `<nggv-table>`. Add a `tableAppendableRows`-attribute to the `<ng-template>`-element. Any `tr` elements that exist within `<ng-template tableAppendableRows>` and `</ng-template>` tags will be put below data row's `tr` element in the table.\n *\n * @example\n * <!-- custom appended rows -->\n * <ng-template tableAppendableRows let-myDataVar=\"$implicit\" let-status=\"$implicit.status\">\n * <tr>\n * <!-- first row's columns -->\n * </tr>\n * <!-- more rows if needed -->\n * </ng-template>\n *\n * If custom styling is needed for data row that has appended rows, you can use data attribute `data-hasrowspan` to distinguish it from data row without appended rows.\n * You can pass your own custom method with conditional logic to define what value will be passed to data-hasrowspan.\n * In addition, hasRowSpan function accepts item from `@Input() tableData` as argument which is of the same type as value passed to context `$implicit` variable.\n * IMPORTANT: use arrow function style for defining function inside component, i.e. `hasRowSpan = (value) => output;`. If regular function will be defined, i.e. `hasRowSpan(value) { return output; }`, binding will not work.\n *\n * @example\n * <!-- inside component\n * class CustomComponent {\n * customHasRowSpanFunction = (item: CustomDataType) => item.appendedRowsData.length > 0 ? true : false;\n * }\n * -->\n * <!-- inside stylesheets\n * [data-hasrowspan=\"true\"] {\n * color: blue;\n * }\n * .appended-row {\n * color: blue;\n * }\n * -->\n * <nggv-table [hasRowSpan]=\"customHasRowSpanFunction\">\n * <!-- custom appended rows -->\n * <ng-template tableAppendableRows let-appendedRowsData=\"$implicit.appendedRowsData\">\n * <tr *ngFor=\"let appendedRowItem of appendedRowsData\" class=\"appended-row\">\n * <td>{{ appendedRowItem }}</td>\n * <!-- other row's columns -->\n * </tr>\n * </ng-template>\n * </nggv-table>\n *\n * In addition, it is possible to add footer for the table. Similarly to adding custom columns, use `<ng-template>`-tag and place the ng-template in the html between the start and ending tag of\n * the `<nggv-table>`. Add a `tableFooter`-attribute to the `<ng-template>`-element. Any elements that exist within `<ng-template tableFooter>` and `</ng-template>` tags will be put to tfoot element inside the table.\n *\n * @example\n * <!-- for table footer i.e. tfoot-element -->\n * <ng-template tableFooter>\n * <tr>\n * <!-- first row's columns -->\n * </tr>\n * <!-- more rows if needed -->\n * </ng-template>\n *\n */\n@Component({\n selector: 'nggv-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n})\nexport class TableComponent<T extends TableRow>\n implements OnInit, OnChanges, AfterContentInit, OnDestroy\n{\n /**\n * @internal\n * Custom templates defined in the html.\n */\n @ContentChildren(TableTemplateDirective, { descendants: true })\n customTemplates!: QueryList<TableTemplateDirective<keyof T>>\n\n /**\n * @internal\n * Custom appended rows template defined in the html.\n */\n @ContentChild(TableAppendableRowsTemplateDirective)\n appendedRowsTemplate!: TableAppendableRowsTemplateDirective\n\n /**\n * @internal\n * Custom footer template defined in the html.\n */\n @ContentChild(TableFooterTemplateDirective)\n customFooterTemplate!: TableFooterTemplateDirective\n\n /** Emits the table row that was clicked. Works on all columns if not preventDefaultEmit is set for that column. */\n @Output() ngvRowClick = new EventEmitter<T | any>()\n\n /**\n * Emits currently selected and deselected items in the table as key-value pairs.\n * Uses each item`s itemId as key, and a boolean value to describe selected status.\n */\n @Output() ngvRowSelect = new EventEmitter<string[]>()\n\n /**\n * Emits event to signal that the table should be reordered.\n */\n @Output() ngvOrderBy = new EventEmitter<OrderBy<T>>()\n\n /**\n * An array of items describing how the table header should be rendered,\n * together with instructions for how each row should be displayed in that column.\n */\n @Input() tableColumns!: TableColumn<T>[]\n\n /** Data array to display data in the table. Each item <T> in the array represents a row in the table. */\n @Input() tableData!: T[]\n\n /**\n * Property name used to uniquely describe each item (i.e. row) in the data table.\n * Defaults to \\'id\\'.\n * Is required if selectable is true.\n */\n @Input() rowId = 'id'\n\n /**\n * Function's return value is used for data attribute \\'data-hasrowspan\\'.\n * If custom hasRowSpan function is not passed to the table,\n * then this function returns undefined value by default which results in \\'data-hasrowspan\\' attribute being omitted in html\n * (angular omits attributes that contain null or undefined value).\n * IMPORTANT: use arrow function style for defining function inside component, i.e. `hasRowSpan = (value) => output;`. If regular function will be defined, i.e. `hasRowSpan(value) { return output; }`, binding will not work.\n */\n @Input() hasRowSpan: (item: T) => any = (_) => undefined\n\n /**\n * Used to enable/disable the left-side checkbox column.\n * Defaults to true.\n */\n @Input() selectable = true\n\n /**\n * Allow nggv-table to attempt sorting the data in the table. Not recommended if only a subset is loaded or if the dataset is very large.\n * Disabled by default.\n */\n @Input() allowLocalSort = false\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'table-select-all'\n\n /** Function to overwrite generated thook for each row. */\n @Input() trThookFn?: (item: T) => string\n\n /** Aria label for the checkbox in the table header */\n @Input() ariaLabelCheckboxTh?: string\n\n /** Aria label for the checkbox in the table header */\n @Input() ariaLabelCheckboxTr?: string\n\n /** Aria labels for sorting in the table header */\n @Input() ariaLabelsOrderBy?: ariaLabelsOrderBy\n\n /**\n * @internal\n * Internal data structure used to keep track of added content templates used in td elements.\n */\n customRowTemplates = new Map<keyof T, TemplateRef<any>>()\n\n /**\n * @internal\n * Internal data structure used to keep track of added content templates used in th elements.\n */\n customHeaderTemplates = new Map<keyof T, TemplateRef<any>>()\n\n /**\n * @internal\n * Internal data structure used to hold custom appended rows i.e. tr elements (rows).\n */\n appendedRowsTemplateRef!: TemplateRef<any>\n\n /**\n * @internal\n * Internal data structure used to hold tfoot element children i.e. tr elements (rows).\n */\n customFooterTemplateRef!: TemplateRef<any>\n\n /**\n * @internal\n * Incremental id.\n */\n initId!: number\n\n /**\n * @internal\n * FormGroup containing all row id\\'s as controls, and whether these are selected or not as values.\n */\n rowSelectors: UntypedFormGroup = new UntypedFormGroup({})\n\n /**\n * @internal\n * Master selector for selecting or deselecting all row selectors.\n */\n groupSelector: UntypedFormControl = new UntypedFormControl(false)\n\n private selected: string[] = []\n private subs: Subscription[] = []\n\n ngOnChanges(changes: SimpleChanges) {\n // table data was updated and the rows should be selectable\n if (\n (changes.tableData?.currentValue && this.selectable) ||\n (changes.selectable?.currentValue === true && this.tableData)\n ) {\n const wasChanged = this.registerSelectableRows(\n changes.tableData.currentValue,\n )\n if (wasChanged && !this.subs.length) {\n // first time this is run\n const groupSelectorSub = this.groupValueSubscription\n const rowSelectorSub = this.rowValueSubscription\n this.subs.push(groupSelectorSub, rowSelectorSub)\n } else if (wasChanged) {\n this.rowSelectors.updateValueAndValidity()\n }\n }\n\n // sort any incoming data\n if (\n this.allowLocalSort &&\n (changes.tableData?.currentValue || changes.tableColumns?.currentValue)\n ) {\n const orderedByColumn: TableColumn<T> | undefined =\n this.tableColumns?.find((el) => el.order !== undefined)\n if (orderedByColumn) this.sortItemsBy(orderedByColumn)\n }\n }\n\n ngOnInit(): void {\n this.initId = staticInitId++\n }\n\n ngAfterContentInit() {\n // if any custom templates were defined in the template\n if (this.customTemplates.length) {\n // for each template found\n this.customTemplates.map((tableTemplate) => {\n // if target is either 'td' or 'both'\n if (\n ['td', 'both'].includes(tableTemplate.tableColumnTarget as string)\n ) {\n // add to custom row templates\n this.customRowTemplates.set(\n tableTemplate.tableColumn,\n tableTemplate.templateRef,\n )\n }\n // if target is either 'th' or 'both'\n if (\n ['th', 'both'].includes(tableTemplate.tableColumnTarget as string)\n ) {\n // add to custom header templates\n this.customHeaderTemplates.set(\n tableTemplate.tableColumn,\n tableTemplate.templateRef,\n )\n }\n })\n }\n\n // if appended rows' template is defined in the template\n if (this.appendedRowsTemplate) {\n // set templateRef of appended rows' template to variable\n this.appendedRowsTemplateRef = this.appendedRowsTemplate.templateRef\n }\n\n // if custom footer template is defined in the template\n if (this.customFooterTemplate) {\n // set templateRef of table footer to variable\n this.customFooterTemplateRef = this.customFooterTemplate.templateRef\n }\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n /**\n * @internal\n * Returns a subscription to the master selector control that either selects or deselects all row controls.\n */\n get groupValueSubscription(): Subscription {\n return this.groupSelector.valueChanges.subscribe({\n next: (value: boolean) => {\n const selectMap = new Map(Object.entries(this.rowSelectorsValue))\n selectMap.forEach((_, key) => selectMap.set(key, value))\n const patchValue = objectFromEntries(selectMap)\n this.rowSelectors.patchValue(patchValue)\n },\n })\n }\n\n /**\n * @internal\n * Returns a subscription to all individual row selectors and update the master selector if all are selected.\n */\n get rowValueSubscription(): Subscription {\n return this.rowSelectors.valueChanges\n .pipe(\n debounceTime(0), // to limit the number of events and to wait for all sub controls to update\n map((val: { [key: string]: boolean }) => {\n // get a filtered array of keys for all rows that are selected\n const selected = Object.keys(val).filter((key) => {\n return val[key] === true && this.rowSelectors.get(key)?.enabled\n })\n // returns an object containing only the filtered keys\n return pick(selected, val)\n }),\n )\n .subscribe({\n next: (value: object) => {\n // the number of selected keys compared to the total number of keys available\n const numberOfSelected = Object.keys(value).length\n const allSelected: boolean =\n numberOfSelected > 0\n ? numberOfSelected === Object.keys(this.rowSelectorsValue).length\n : false\n // update the master selector control\n this.groupSelector.setValue(allSelected, { emitEvent: false })\n // update the array of currently selected id's\n this.selected = Object.keys(value)\n // and emit the updated value\n this.ngvRowSelect.emit(this.selected)\n },\n })\n }\n\n /**\n * @internal\n * Registers or disables row controls for new or removed rows.\n */\n registerSelectableRows(tableData: any[]): boolean {\n if (!tableData) return false\n // Array containing only the id's for each row\n const dataRowIds: string[] = tableData.map((data: any) => data[this.rowId])\n\n // Array containing the id's that have registered controls\n const currentIds: string[] = Object.keys(this.rowSelectorsValue)\n\n // Array containing all ids that lacks a corresponding control (i.e. new rows)\n const newIds: string[] = dataRowIds.filter(\n (id) => currentIds.indexOf(id) === -1,\n )\n\n // Array containing all ids that has a control but is no longer in the data set (i.e. removed rows)\n const removedIds: string[] = currentIds.filter(\n (id) => dataRowIds.indexOf(id) === -1,\n )\n\n // Register new controls for added rows\n if (newIds.length) {\n newIds.forEach((id) => {\n const ctrl = this.rowSelectors.registerControl(\n id,\n new UntypedFormControl(false),\n )\n if (ctrl.disabled) ctrl.enable()\n })\n }\n\n // Set already registered controls to disabled for removed rows\n if (removedIds.length)\n removedIds.forEach((id) => this.rowSelectors.get(id)?.disable())\n\n return newIds.length > 0 || removedIds.length > 0\n }\n\n /**\n * @internal\n * Returns all enabled values unless all rows are disabled.\n */\n get rowSelectorsValue(): any {\n return this.rowSelectors.enabled ? this.rowSelectors.value : {}\n }\n\n toggleSortOrderWithSpace(event: any, column: TableColumn<T>) {\n if (column.sortable) {\n event.preventDefault()\n this.toggleSortOrder(column)\n }\n }\n\n /**\n * @internal\n * Switches sorting order between ascending and descending order for a column.\n * @param column the column to sort rows after.\n */\n toggleSortOrder(column: TableColumn<T>) {\n // check if the table is already sorted by another column than the one provided\n const currentlyOrderedBy = this.tableColumns?.find(\n (el) => el !== column && el.order !== undefined,\n )\n if (currentlyOrderedBy) delete currentlyOrderedBy.order\n column.order = column.order === 'desc' ? 'asc' : 'desc'\n this.sortItemsBy(column)\n }\n\n /** If sortable, reorders the table data using the specified column as ordering attribute. */\n sortItemsBy(column: TableColumn<T>): TableRow[] | undefined {\n if (!column.sortable) return\n // emit re-order event\n this.ngvOrderBy.emit({ property: column.property, order: column.order })\n // if local sort is allowed, reorder data\n if (!this.allowLocalSort || !this.tableData) return\n return this.tableData.sort(\n column.order === 'desc'\n ? orderByDescending(column.property)\n : orderByAscending(column.property),\n )\n }\n\n /**\n * @internal\n * Emits row data for what row was clicked if defaultEmit is allowed.\n */\n propagateItemClick(item: any, preventDefaultEmit?: boolean) {\n if (!preventDefaultEmit) this.ngvRowClick.emit(item)\n }\n\n getAriaLabel(column: TableColumn<T>): string | undefined {\n const sortOrder =\n column.order === 'asc'\n ? this.ariaLabelsOrderBy?.desc\n : this.ariaLabelsOrderBy?.asc\n if (!sortOrder) return // no aria labels defined\n return column.ariaLabelSortable?.replace('{{sortOrder}}', sortOrder)\n }\n}\n","<table class=\"gds-table\" *transloco=\"let t\">\n <!-- Table header -->\n <thead>\n <tr>\n <!-- Checkbox column for header -->\n <th *ngIf=\"selectable\" class=\"column__check\">\n <div class=\"gds-field-checkbox-wrap\">\n <input\n type=\"checkbox\"\n [formControl]=\"groupSelector\"\n [attr.aria-label]=\"ariaLabelCheckboxTh\"\n [attr.id]=\"'cb_header__' + initId\"\n [attr.data-thook]=\"thook\"\n />\n <label [attr.for]=\"'cb_header__' + initId\"></label>\n </div>\n </th>\n\n <!-- Other columns -->\n <th\n *ngFor=\"let column of tableColumns\"\n [columnType]=\"column.valueType\"\n [sortable]=\"column.sortable\"\n [sortOrder]=\"column.order\"\n [thook]=\"'column-header-' + !!column.property\"\n (click)=\"toggleSortOrder(column)\"\n (keydown.space)=\"toggleSortOrderWithSpace($event, column)\"\n [attr.aria-label]=\"getAriaLabel(column)\"\n [attr.aria-sort]=\"column.order + 'ending'\"\n >\n <ng-container\n *ngIf=\"\n customHeaderTemplates.get(column.property) as thTemplate;\n else defaultThTemplate\n \"\n >\n <!-- Cannot infer thTemplate as TemplateRef therefore null -->\n <ng-template\n *ngTemplateOutlet=\"\n thTemplate || null;\n context: { $implicit: column }\n \"\n >\n </ng-template>\n </ng-container>\n\n <ng-template #defaultThTemplate>\n <button class=\"sg-table-sort\">\n {{ t(column.label ?? '') }}\n </button>\n </ng-template>\n </th>\n </tr>\n </thead>\n\n <!-- Table body -->\n <tbody [formGroup]=\"rowSelectors\">\n <ng-container *ngFor=\"let item of tableData; let i = index\">\n <tr\n [attr.data-thook]=\"item | trThook: i : trThookFn\"\n [attr.data-hasrowspan]=\"hasRowSpan(item)\"\n >\n <!-- Checkbox column for row -->\n <td *ngIf=\"selectable\" class=\"column__check\">\n <div class=\"gds-field-checkbox-wrap\">\n <input\n *ngIf=\"rowSelectors.get(item[rowId])\"\n type=\"checkbox\"\n [formControlName]=\"item[rowId]\"\n [attr.aria-label]=\"ariaLabelCheckboxTr\"\n [attr.id]=\"'cb_row__' + initId + '_' + i\"\n [attr.data-thook]=\"'row-select-' + i\"\n />\n <label [attr.for]=\"'cb_row__' + initId + '_' + i\"></label>\n </div>\n </td>\n\n <!-- Other columns -->\n <td\n *ngFor=\"let column of tableColumns\"\n (click)=\"propagateItemClick(item, column.preventDefaultClickEvent)\"\n [columnType]=\"column.valueType\"\n [value]=\"item[column.property]\"\n >\n <ng-container\n *ngIf=\"\n customRowTemplates.get(column.property) as tdTemplate;\n else defaultTdTemplate\n \"\n >\n <!-- Cannot infer tdTemplate as TemplateRef therefore null -->\n <ng-template\n *ngTemplateOutlet=\"\n tdTemplate || null;\n context: { $implicit: item }\n \"\n >\n </ng-template>\n </ng-container>\n\n <ng-template #defaultTdTemplate>\n {{ item[column.property] }}\n </ng-template>\n </td>\n </tr>\n\n <!-- custom appended rows -->\n <ng-container *ngIf=\"appendedRowsTemplateRef as trTemplate\">\n <!-- Cannot infer trTemplate as TemplateRef therefore null -->\n <ng-container\n *ngTemplateOutlet=\"trTemplate || null; context: { $implicit: item }\"\n >\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n\n <!-- Table footer -->\n <tfoot *ngIf=\"customFooterTemplateRef as trTemplate\">\n <!-- Cannot infer trTemplate as TemplateRef therefore null -->\n <ng-container *ngTemplateOutlet=\"trTemplate || null\"> </ng-container>\n </tfoot>\n</table>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { TableComponent } from './table.component'\nimport {\n TableAppendableRowsTemplateDirective,\n TableDirective,\n TableFooterTemplateDirective,\n TableTemplateDirective,\n} from './table.directive'\nimport { TrThookPipe } from './tr-thook.pipe'\n\n@NgModule({\n declarations: [\n TableComponent,\n TableDirective,\n TableTemplateDirective,\n TableFooterTemplateDirective,\n TableAppendableRowsTemplateDirective,\n ],\n imports: [CommonModule, ReactiveFormsModule, TranslocoModule, TrThookPipe],\n exports: [\n TableComponent,\n TableTemplateDirective,\n TableFooterTemplateDirective,\n TableAppendableRowsTemplateDirective,\n ],\n})\nexport class NggvTableModule {}\n","/*\n * Public API Surface of table\n */\n\nexport * from './table.component'\nexport * from './table.directive'\nexport * from './tr-thook.pipe'\nexport * from './table.models'\nexport * from './table.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4.TableDirective","i5.TrThookPipe"],"mappings":"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"}
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, HostBinding, Input, QueryList, EventEmitter, Component, ContentChildren, Output, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/router';
|
|
4
|
+
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
5
|
+
import { filter } from 'rxjs/operators';
|
|
6
|
+
import * as i2 from '@angular/common';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import * as i3 from '@jsverse/transloco';
|
|
9
|
+
import { TranslocoModule } from '@jsverse/transloco';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Directive that provides the tab container with data about its child tabs.
|
|
13
|
+
* The directive sets its own active state and adds aria attributes.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <nggv-tabs>
|
|
17
|
+
* <article tab="Tab title 1"> <!-- Content --> </article>
|
|
18
|
+
* <article tab="Tab title 2" [active]="true"> <!-- Content --> </article>
|
|
19
|
+
* <article tab="Tab title 3" disabled> <!-- Content --> </article>
|
|
20
|
+
* <article tab="<strong>Tab title 4</strong>"> <!-- Content --> </article>
|
|
21
|
+
* </nggv-tabs>
|
|
22
|
+
*/
|
|
23
|
+
class TabDirective {
|
|
24
|
+
constructor() {
|
|
25
|
+
/** @internal */
|
|
26
|
+
this.baseClass = true;
|
|
27
|
+
/** @internal */
|
|
28
|
+
this.role = 'tabpanel';
|
|
29
|
+
/** Special property used for selecting DOM elements during automated UI testing. */
|
|
30
|
+
this.thook = 'tabs-panel';
|
|
31
|
+
/** Sets whether this tab should be the active tab on load. */
|
|
32
|
+
this.active = false;
|
|
33
|
+
/** Sets whether this tab should be able to be selected. */
|
|
34
|
+
this.disabled = false;
|
|
35
|
+
}
|
|
36
|
+
/** @internal */
|
|
37
|
+
get hidden() {
|
|
38
|
+
return !this.active;
|
|
39
|
+
}
|
|
40
|
+
/** @internal */
|
|
41
|
+
get attrId() {
|
|
42
|
+
return `panel-${this.id}`;
|
|
43
|
+
}
|
|
44
|
+
/** @internal */
|
|
45
|
+
get ariaLabelledby() {
|
|
46
|
+
return `tab-${this.id}`;
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
49
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: TabDirective, selector: "[tab]", inputs: { thook: "thook", active: "active", tab: "tab", disabled: "disabled", id: "id" }, host: { properties: { "class.gds-tabs__panel": "this.baseClass", "attr.role": "this.role", "attr.data-thook": "this.thook", "class.-active": "this.active", "attr.hidden": "this.hidden", "attr.id": "this.attrId", "attr.aria-labelledby": "this.ariaLabelledby" } }, ngImport: i0 }); }
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabDirective, decorators: [{
|
|
52
|
+
type: Directive,
|
|
53
|
+
args: [{
|
|
54
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
55
|
+
selector: '[tab]',
|
|
56
|
+
}]
|
|
57
|
+
}], propDecorators: { baseClass: [{
|
|
58
|
+
type: HostBinding,
|
|
59
|
+
args: ['class.gds-tabs__panel']
|
|
60
|
+
}], role: [{
|
|
61
|
+
type: HostBinding,
|
|
62
|
+
args: ['attr.role']
|
|
63
|
+
}], thook: [{
|
|
64
|
+
type: HostBinding,
|
|
65
|
+
args: ['attr.data-thook']
|
|
66
|
+
}, {
|
|
67
|
+
type: Input
|
|
68
|
+
}], active: [{
|
|
69
|
+
type: HostBinding,
|
|
70
|
+
args: ['class.-active']
|
|
71
|
+
}, {
|
|
72
|
+
type: Input
|
|
73
|
+
}], hidden: [{
|
|
74
|
+
type: HostBinding,
|
|
75
|
+
args: ['attr.hidden']
|
|
76
|
+
}], tab: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], disabled: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], id: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], attrId: [{
|
|
83
|
+
type: HostBinding,
|
|
84
|
+
args: ['attr.id']
|
|
85
|
+
}], ariaLabelledby: [{
|
|
86
|
+
type: HostBinding,
|
|
87
|
+
args: ['attr.aria-labelledby']
|
|
88
|
+
}] } });
|
|
89
|
+
|
|
90
|
+
class TabsComponent {
|
|
91
|
+
constructor(router) {
|
|
92
|
+
this.router = router;
|
|
93
|
+
/** @internal */
|
|
94
|
+
this.baseClass = true;
|
|
95
|
+
/** Special property used for selecting DOM elements during automated UI testing. */
|
|
96
|
+
this.thook = 'tabs';
|
|
97
|
+
/** @internal List of children with a {@link TabDirective}. */
|
|
98
|
+
this.tabRefs = new QueryList();
|
|
99
|
+
/**
|
|
100
|
+
* List of tabs to generate, this should not be used in conjunction with children that have a {@link TabDirective}.
|
|
101
|
+
* It is useful for generating a list of tabs with links for navigation.
|
|
102
|
+
* If any tab has the link property, a `<router-outlet>` is added below the tabs list.
|
|
103
|
+
*/
|
|
104
|
+
this.tabs = [];
|
|
105
|
+
/**
|
|
106
|
+
* Event triggered on initialization and every time the active tab changes.
|
|
107
|
+
* The tab change can be cancelled if event type is set to `'before'` and `cancel()` is called.
|
|
108
|
+
*/
|
|
109
|
+
this.ngvTabSwitch = new EventEmitter();
|
|
110
|
+
/** @internal Adds a `<router-outlet>` below the tabs list. */
|
|
111
|
+
this.useRouting = false;
|
|
112
|
+
/** @internal If tab switching has started. */
|
|
113
|
+
this.isSwitching = false;
|
|
114
|
+
/** @internal */
|
|
115
|
+
this.subs = [];
|
|
116
|
+
/** @internal */
|
|
117
|
+
this.updateFromInput = () => {
|
|
118
|
+
// Make sure each tab has a unique id
|
|
119
|
+
this.tabs = TabsComponent.uniqueIds(this.tabs);
|
|
120
|
+
// Determine if router outlet should be used
|
|
121
|
+
this.useRouting = this.tabs.some(({ link }) => link);
|
|
122
|
+
this.updateTabs();
|
|
123
|
+
};
|
|
124
|
+
/** @internal */
|
|
125
|
+
this.updateFromReferences = () => {
|
|
126
|
+
this.tabs = this.tabRefs.map((tabRef) => ({
|
|
127
|
+
tab: tabRef.tab,
|
|
128
|
+
id: tabRef.id,
|
|
129
|
+
active: tabRef.active,
|
|
130
|
+
disabled: tabRef.disabled,
|
|
131
|
+
directive: tabRef,
|
|
132
|
+
}));
|
|
133
|
+
// Make sure each tab has a unique id
|
|
134
|
+
this.tabs = TabsComponent.uniqueIds(this.tabs);
|
|
135
|
+
this.tabs.forEach((tab) => {
|
|
136
|
+
if (tab.directive)
|
|
137
|
+
tab.directive.id = tab.id;
|
|
138
|
+
});
|
|
139
|
+
this.updateTabs();
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/** @internal */
|
|
143
|
+
static uniqueIds(tabs) {
|
|
144
|
+
const uniqueIds = new Set();
|
|
145
|
+
let offset = 0;
|
|
146
|
+
return tabs.map((tab, index) => {
|
|
147
|
+
if (tab.id && !uniqueIds.has(tab.id)) {
|
|
148
|
+
// Id is already unique
|
|
149
|
+
uniqueIds.add(tab.id);
|
|
150
|
+
return { ...tab };
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// If no id is set for the tab, use the next available index
|
|
154
|
+
while (uniqueIds.has(index + offset))
|
|
155
|
+
offset++;
|
|
156
|
+
const id = index + offset;
|
|
157
|
+
if (uniqueIds.has(tab.id)) {
|
|
158
|
+
console.warn(`Duplicate tab id "${tab.id}" found for tab "${tab.tab}", de-duplicating using index + offset. New tab id will be ${id}`);
|
|
159
|
+
}
|
|
160
|
+
uniqueIds.add(id);
|
|
161
|
+
return { ...tab, id };
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
ngOnChanges(changes) {
|
|
166
|
+
if (changes.tabs.currentValue) {
|
|
167
|
+
// Update tabs on property updates
|
|
168
|
+
this.updateFromInput();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
ngOnInit() {
|
|
172
|
+
// Update tabs on route change
|
|
173
|
+
this.subs.push(this.router.events
|
|
174
|
+
.pipe(filter((e) => e instanceof NavigationEnd))
|
|
175
|
+
.subscribe((e) => {
|
|
176
|
+
// Skip if already routing to tab
|
|
177
|
+
if (this.isSwitching)
|
|
178
|
+
return;
|
|
179
|
+
const tab = this.tabs.find(({ link }) => link && e.url.endsWith(link));
|
|
180
|
+
if (tab) {
|
|
181
|
+
this.onSelect(tab.id);
|
|
182
|
+
if (tab.disabled) {
|
|
183
|
+
// Fallback to previously selected tab or first tab not disabled
|
|
184
|
+
const fallbackTab = this.selectedTab
|
|
185
|
+
? this.selectedTab
|
|
186
|
+
: this.tabs.find(({ disabled }) => !disabled);
|
|
187
|
+
if (fallbackTab && fallbackTab.link)
|
|
188
|
+
this.router.navigateByUrl(fallbackTab.link);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}));
|
|
192
|
+
}
|
|
193
|
+
ngAfterContentInit() {
|
|
194
|
+
// Update tabs on view init
|
|
195
|
+
if (this.tabRefs.length) {
|
|
196
|
+
this.updateFromReferences();
|
|
197
|
+
}
|
|
198
|
+
// Update tabs on view child change
|
|
199
|
+
this.subs.push(this.tabRefs.changes.subscribe(this.updateFromReferences));
|
|
200
|
+
}
|
|
201
|
+
/** @internal */
|
|
202
|
+
updateTabs() {
|
|
203
|
+
const url = window.location.href;
|
|
204
|
+
// Select tab if its link matches active url
|
|
205
|
+
let selectedTab = this.tabs.find(({ link, disabled }) => link && !disabled && url.endsWith(link));
|
|
206
|
+
// Fallback to first active tab
|
|
207
|
+
if (!selectedTab)
|
|
208
|
+
selectedTab = this.tabs.find((tab) => tab.active);
|
|
209
|
+
// Fallback to first tab
|
|
210
|
+
if (!selectedTab)
|
|
211
|
+
selectedTab = this.tabs[0];
|
|
212
|
+
// Select or give up
|
|
213
|
+
if (selectedTab && this.selectedTab !== selectedTab)
|
|
214
|
+
this.onSelect(selectedTab.id);
|
|
215
|
+
}
|
|
216
|
+
ngOnDestroy() {
|
|
217
|
+
this.subs.forEach((sub) => sub.unsubscribe());
|
|
218
|
+
}
|
|
219
|
+
/** @internal */
|
|
220
|
+
activateTab(tab) {
|
|
221
|
+
// Deactivate all tabs
|
|
222
|
+
this.tabs.forEach((t) => {
|
|
223
|
+
t.active = false;
|
|
224
|
+
if (t.directive)
|
|
225
|
+
t.directive.active = false;
|
|
226
|
+
});
|
|
227
|
+
// Activate selected tab
|
|
228
|
+
tab.active = true;
|
|
229
|
+
if (tab.directive)
|
|
230
|
+
tab.directive.active = true;
|
|
231
|
+
// Send end event
|
|
232
|
+
this.ngvTabSwitch.emit({ type: 'end', prev: this.selectedTab, next: tab });
|
|
233
|
+
this.selectedTab = tab;
|
|
234
|
+
this.isSwitching = false;
|
|
235
|
+
}
|
|
236
|
+
/** @internal */
|
|
237
|
+
onSelect(id) {
|
|
238
|
+
const selectedTab = this.tabs.find((tab) => tab.id === id);
|
|
239
|
+
if (selectedTab &&
|
|
240
|
+
!selectedTab.disabled &&
|
|
241
|
+
selectedTab !== this.selectedTab) {
|
|
242
|
+
let cancelled = false;
|
|
243
|
+
// Events are synchronous and allow for tab switch to be cancelled if desired
|
|
244
|
+
this.isSwitching = true;
|
|
245
|
+
this.ngvTabSwitch.emit({
|
|
246
|
+
type: 'start',
|
|
247
|
+
prev: this.selectedTab,
|
|
248
|
+
next: selectedTab,
|
|
249
|
+
cancel: () => {
|
|
250
|
+
cancelled = true;
|
|
251
|
+
},
|
|
252
|
+
});
|
|
253
|
+
if (cancelled) {
|
|
254
|
+
this.ngvTabSwitch.emit({
|
|
255
|
+
type: 'cancel',
|
|
256
|
+
prev: this.selectedTab,
|
|
257
|
+
next: selectedTab,
|
|
258
|
+
});
|
|
259
|
+
this.isSwitching = false;
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (selectedTab.link) {
|
|
263
|
+
// Navigate and wait for guard accept route
|
|
264
|
+
this.router
|
|
265
|
+
.navigateByUrl(selectedTab.link, { replaceUrl: true })
|
|
266
|
+
.then((changed) => {
|
|
267
|
+
if (changed === false) {
|
|
268
|
+
this.ngvTabSwitch.emit({
|
|
269
|
+
type: 'cancel',
|
|
270
|
+
prev: this.selectedTab,
|
|
271
|
+
next: selectedTab,
|
|
272
|
+
});
|
|
273
|
+
this.isSwitching = false;
|
|
274
|
+
}
|
|
275
|
+
else
|
|
276
|
+
this.activateTab(selectedTab);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
this.activateTab(selectedTab);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
/** @internal */
|
|
285
|
+
onKeyDown(event) {
|
|
286
|
+
const tabElement = event.target;
|
|
287
|
+
if (!tabElement)
|
|
288
|
+
return false;
|
|
289
|
+
const parent = tabElement.parentElement;
|
|
290
|
+
switch (event.key) {
|
|
291
|
+
case 'End': // End
|
|
292
|
+
if (parent)
|
|
293
|
+
this.tabFocusHelper(event, parent.lastElementChild);
|
|
294
|
+
break;
|
|
295
|
+
case 'Home': // Home
|
|
296
|
+
if (parent)
|
|
297
|
+
this.tabFocusHelper(event, parent.firstElementChild);
|
|
298
|
+
break;
|
|
299
|
+
case 'LeftArrow': // Left arrow
|
|
300
|
+
case 'UpArrow': // Up arrow
|
|
301
|
+
this.tabFocusHelper(event, tabElement.previousElementSibling);
|
|
302
|
+
break;
|
|
303
|
+
case 'RightArrow': // Right arrow
|
|
304
|
+
case 'DownArrow': // Down arrow
|
|
305
|
+
this.tabFocusHelper(event, tabElement.nextElementSibling);
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
/** @internal */
|
|
311
|
+
tabFocusHelper(event, tabElement) {
|
|
312
|
+
if (!tabElement || !(tabElement instanceof HTMLElement))
|
|
313
|
+
return;
|
|
314
|
+
event.preventDefault();
|
|
315
|
+
event.stopPropagation();
|
|
316
|
+
tabElement.focus();
|
|
317
|
+
this.onSelect(tabElement.id.slice(4));
|
|
318
|
+
}
|
|
319
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabsComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
320
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TabsComponent, selector: "nggv-tabs", inputs: { thook: "thook", tabs: "tabs" }, outputs: { ngvTabSwitch: "ngvTabSwitch" }, host: { properties: { "class.gds-tabs": "this.baseClass", "attr.data-thook": "this.thook" } }, queries: [{ propertyName: "tabRefs", predicate: TabDirective }], usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div\n class=\"gds-tabs__tablist\"\n role=\"tablist\"\n [attr.data-thook]=\"thook + '-list'\"\n (keydown)=\"onKeyDown($event)\"\n >\n <button\n class=\"gds-tabs__tab\"\n [id]=\"'tab-' + (tab.id !== undefined ? tab.id : '')\"\n role=\"tab\"\n [attr.data-thook]=\"tab.thook || thook + '-tab'\"\n [tabindex]=\"tab.active ? 0 : -1\"\n [attr.aria-controls]=\"'panel-' + (tab.id !== undefined ? tab.id : '')\"\n [attr.aria-selected]=\"tab.active\"\n [class.-selected]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n [innerHTML]=\"t(tab.tab)\"\n (click)=\"onSelect(tab.id)\"\n *ngFor=\"let tab of tabs\"\n ></button>\n </div>\n <article\n *ngIf=\"useRouting\"\n class=\"gds-tabs__panel -active\"\n [id]=\"'panel-' + (selectedTab ? selectedTab.id : '')\"\n [attr.data-thook]=\"thook + '-panel'\"\n [attr.aria-labelledby]=\"'tab-' + (selectedTab ? selectedTab.id : '')\"\n >\n <router-outlet></router-outlet>\n </article>\n <ng-content *ngIf=\"!useRouting\"></ng-content>\n</ng-container>\n", styles: [":host{--sg-border-width: 1px;--sg-border-color: #868686;--gds-ref-pallet-base600: #868686;--text-primary-color: #333}:host .gds-tabs__tablist{display:flex;overflow-x:auto;padding:.25rem;margin:-.25rem;--sg-border-color: var(--gds-ref-pallet-base600)}:host .gds-tabs__tablist::-webkit-scrollbar{display:none}:host .gds-tabs__tablist:not(.gds-tabs--fluid):after{border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);content:\"\";display:block;flex-grow:1}:host .gds-tabs__tab{background-color:transparent;border:0;cursor:pointer;padding:0;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);padding:.75rem 1rem;font-weight:500;transition:all .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;display:flex;justify-content:center;color:var(--text-primary-color);text-align:center;text-decoration:none;white-space:nowrap;border-radius:.25rem .25rem 0 0;gap:.25rem;transition:none;font-size:1rem;font-family:inherit}:host .gds-tabs__tab:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host .gds-tabs__tab:focus:not(:focus-visible){box-shadow:none;outline:0}:host .gds-tabs__tab:focus,:host .gds-tabs__tab:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}.gds-tabs--fluid :host .gds-tabs__tab{flex:1}:host .gds-tabs__tab svg>*{fill:currentColor}:host .gds-tabs__tab.-selected{box-sizing:border-box;border-top:solid var(--sg-border-width) var(--sg-border-color);border-right:solid var(--sg-border-width) var(--sg-border-color);border-left:solid var(--sg-border-width) var(--sg-border-color);transition:all .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-bottom:var(--sg-border-width) transparent;color:var(--text-primary-color);transition:none;padding:11px 15px 12px}:host .gds-tabs__tab.-selected:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#333;color:#fff;--background: rgb(51, 51, 51);--color: rgb(255, 255, 255);border-color:#333}:host .gds-tabs__tab[disabled]{color:#adadad;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
321
|
+
}
|
|
322
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TabsComponent, decorators: [{
|
|
323
|
+
type: Component,
|
|
324
|
+
args: [{ selector: 'nggv-tabs', template: "<ng-container *transloco=\"let t\">\n <div\n class=\"gds-tabs__tablist\"\n role=\"tablist\"\n [attr.data-thook]=\"thook + '-list'\"\n (keydown)=\"onKeyDown($event)\"\n >\n <button\n class=\"gds-tabs__tab\"\n [id]=\"'tab-' + (tab.id !== undefined ? tab.id : '')\"\n role=\"tab\"\n [attr.data-thook]=\"tab.thook || thook + '-tab'\"\n [tabindex]=\"tab.active ? 0 : -1\"\n [attr.aria-controls]=\"'panel-' + (tab.id !== undefined ? tab.id : '')\"\n [attr.aria-selected]=\"tab.active\"\n [class.-selected]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n [innerHTML]=\"t(tab.tab)\"\n (click)=\"onSelect(tab.id)\"\n *ngFor=\"let tab of tabs\"\n ></button>\n </div>\n <article\n *ngIf=\"useRouting\"\n class=\"gds-tabs__panel -active\"\n [id]=\"'panel-' + (selectedTab ? selectedTab.id : '')\"\n [attr.data-thook]=\"thook + '-panel'\"\n [attr.aria-labelledby]=\"'tab-' + (selectedTab ? selectedTab.id : '')\"\n >\n <router-outlet></router-outlet>\n </article>\n <ng-content *ngIf=\"!useRouting\"></ng-content>\n</ng-container>\n", styles: [":host{--sg-border-width: 1px;--sg-border-color: #868686;--gds-ref-pallet-base600: #868686;--text-primary-color: #333}:host .gds-tabs__tablist{display:flex;overflow-x:auto;padding:.25rem;margin:-.25rem;--sg-border-color: var(--gds-ref-pallet-base600)}:host .gds-tabs__tablist::-webkit-scrollbar{display:none}:host .gds-tabs__tablist:not(.gds-tabs--fluid):after{border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);content:\"\";display:block;flex-grow:1}:host .gds-tabs__tab{background-color:transparent;border:0;cursor:pointer;padding:0;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);padding:.75rem 1rem;font-weight:500;transition:all .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;display:flex;justify-content:center;color:var(--text-primary-color);text-align:center;text-decoration:none;white-space:nowrap;border-radius:.25rem .25rem 0 0;gap:.25rem;transition:none;font-size:1rem;font-family:inherit}:host .gds-tabs__tab:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host .gds-tabs__tab:focus:not(:focus-visible){box-shadow:none;outline:0}:host .gds-tabs__tab:focus,:host .gds-tabs__tab:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}.gds-tabs--fluid :host .gds-tabs__tab{flex:1}:host .gds-tabs__tab svg>*{fill:currentColor}:host .gds-tabs__tab.-selected{box-sizing:border-box;border-top:solid var(--sg-border-width) var(--sg-border-color);border-right:solid var(--sg-border-width) var(--sg-border-color);border-left:solid var(--sg-border-width) var(--sg-border-color);transition:all .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-bottom:var(--sg-border-width) transparent;color:var(--text-primary-color);transition:none;padding:11px 15px 12px}:host .gds-tabs__tab.-selected:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#333;color:#fff;--background: rgb(51, 51, 51);--color: rgb(255, 255, 255);border-color:#333}:host .gds-tabs__tab[disabled]{color:#adadad;cursor:not-allowed}\n"] }]
|
|
325
|
+
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { baseClass: [{
|
|
326
|
+
type: HostBinding,
|
|
327
|
+
args: ['class.gds-tabs']
|
|
328
|
+
}], thook: [{
|
|
329
|
+
type: HostBinding,
|
|
330
|
+
args: ['attr.data-thook']
|
|
331
|
+
}, {
|
|
332
|
+
type: Input
|
|
333
|
+
}], tabRefs: [{
|
|
334
|
+
type: ContentChildren,
|
|
335
|
+
args: [TabDirective]
|
|
336
|
+
}], tabs: [{
|
|
337
|
+
type: Input
|
|
338
|
+
}], ngvTabSwitch: [{
|
|
339
|
+
type: Output
|
|
340
|
+
}] } });
|
|
341
|
+
|
|
342
|
+
class NggvTabsModule {
|
|
343
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
344
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvTabsModule, declarations: [TabDirective, TabsComponent], imports: [CommonModule, TranslocoModule, RouterModule], exports: [TabDirective, TabsComponent] }); }
|
|
345
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTabsModule, imports: [CommonModule, TranslocoModule, RouterModule] }); }
|
|
346
|
+
}
|
|
347
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTabsModule, decorators: [{
|
|
348
|
+
type: NgModule,
|
|
349
|
+
args: [{
|
|
350
|
+
declarations: [TabDirective, TabsComponent],
|
|
351
|
+
imports: [CommonModule, TranslocoModule, RouterModule],
|
|
352
|
+
exports: [TabDirective, TabsComponent],
|
|
353
|
+
}]
|
|
354
|
+
}] });
|
|
355
|
+
|
|
356
|
+
/*
|
|
357
|
+
* Public API Surface of tabs
|
|
358
|
+
*/
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* Generated bundle index. Do not edit.
|
|
362
|
+
*/
|
|
363
|
+
|
|
364
|
+
export { NggvTabsModule, TabDirective, TabsComponent };
|
|
365
|
+
//# sourceMappingURL=sebgroup-green-angular-src-v-angular-tabs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-v-angular-tabs.mjs","sources":["../../../../libs/angular/src/v-angular/tabs/tab.directive.ts","../../../../libs/angular/src/v-angular/tabs/tabs.component.ts","../../../../libs/angular/src/v-angular/tabs/tabs.component.html","../../../../libs/angular/src/v-angular/tabs/tabs.module.ts","../../../../libs/angular/src/v-angular/tabs/index.ts","../../../../libs/angular/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.ts"],"sourcesContent":["import { Directive, HostBinding, Input } from '@angular/core'\n\n/**\n * Directive that provides the tab container with data about its child tabs.\n * The directive sets its own active state and adds aria attributes.\n *\n * @example\n * <nggv-tabs>\n * <article tab=\"Tab title 1\"> <!-- Content --> </article>\n * <article tab=\"Tab title 2\" [active]=\"true\"> <!-- Content --> </article>\n * <article tab=\"Tab title 3\" disabled> <!-- Content --> </article>\n * <article tab=\"<strong>Tab title 4</strong>\"> <!-- Content --> </article>\n * </nggv-tabs>\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[tab]',\n})\nexport class TabDirective {\n /** @internal */\n @HostBinding('class.gds-tabs__panel') baseClass = true\n /** @internal */\n @HostBinding('attr.role') role = 'tabpanel'\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'tabs-panel'\n /** Sets whether this tab should be the active tab on load. */\n @HostBinding('class.-active') @Input() active = false\n /** @internal */\n @HostBinding('attr.hidden') get hidden() {\n return !this.active\n }\n /** Sets the title displayed in the tab list for this child. */\n @Input() tab!: string\n /** Sets whether this tab should be able to be selected. */\n @Input() disabled = false\n /** Identifier used for aria attributes and selection. */\n @Input() id: string | number | undefined // todo: discuss if window.ngv.nextId() should be used\n\n /** @internal */\n @HostBinding('attr.id') get attrId() {\n return `panel-${this.id}`\n }\n\n /** @internal */\n @HostBinding('attr.aria-labelledby') get ariaLabelledby() {\n return `tab-${this.id}`\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n} from '@angular/core'\nimport { NavigationEnd, Router } from '@angular/router'\nimport { Subscription } from 'rxjs'\nimport { filter } from 'rxjs/operators'\n\nimport { TabDirective } from './tab.directive'\nimport { EventTabChange, Tab } from './tabs.models'\n\n@Component({\n selector: 'nggv-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n})\nexport class TabsComponent\n implements OnChanges, OnInit, AfterContentInit, OnDestroy\n{\n /** @internal */\n @HostBinding('class.gds-tabs') baseClass = true\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'tabs'\n\n /** @internal List of children with a {@link TabDirective}. */\n @ContentChildren(TabDirective) tabRefs: QueryList<TabDirective> =\n new QueryList()\n\n /**\n * List of tabs to generate, this should not be used in conjunction with children that have a {@link TabDirective}.\n * It is useful for generating a list of tabs with links for navigation.\n * If any tab has the link property, a `<router-outlet>` is added below the tabs list.\n */\n @Input() tabs: Tab[] = []\n\n /**\n * Event triggered on initialization and every time the active tab changes.\n * The tab change can be cancelled if event type is set to `'before'` and `cancel()` is called.\n */\n @Output() public ngvTabSwitch = new EventEmitter<EventTabChange>()\n\n /** @internal Adds a `<router-outlet>` below the tabs list. */\n useRouting = false\n\n /** @internal The currently active tab. */\n selectedTab: Tab | undefined\n\n /** @internal If tab switching has started. */\n isSwitching = false\n\n /** @internal */\n protected subs: Subscription[] = []\n\n constructor(protected router: Router) {}\n\n /** @internal */\n static uniqueIds(tabs: Tab[]) {\n const uniqueIds = new Set()\n let offset = 0\n return tabs.map((tab, index) => {\n if (tab.id && !uniqueIds.has(tab.id)) {\n // Id is already unique\n uniqueIds.add(tab.id)\n return { ...tab }\n } else {\n // If no id is set for the tab, use the next available index\n while (uniqueIds.has(index + offset)) offset++\n const id = index + offset\n if (uniqueIds.has(tab.id)) {\n console.warn(\n `Duplicate tab id \"${tab.id}\" found for tab \"${tab.tab}\", de-duplicating using index + offset. New tab id will be ${id}`,\n )\n }\n uniqueIds.add(id)\n return { ...tab, id }\n }\n })\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.tabs.currentValue) {\n // Update tabs on property updates\n this.updateFromInput()\n }\n }\n\n ngOnInit() {\n // Update tabs on route change\n this.subs.push(\n this.router.events\n .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe((e: NavigationEnd) => {\n // Skip if already routing to tab\n if (this.isSwitching) return\n const tab = this.tabs.find(({ link }) => link && e.url.endsWith(link))\n if (tab) {\n this.onSelect(tab.id)\n if (tab.disabled) {\n // Fallback to previously selected tab or first tab not disabled\n const fallbackTab = this.selectedTab\n ? this.selectedTab\n : this.tabs.find(({ disabled }) => !disabled)\n if (fallbackTab && fallbackTab.link)\n this.router.navigateByUrl(fallbackTab.link)\n }\n }\n }),\n )\n }\n\n ngAfterContentInit() {\n // Update tabs on view init\n if (this.tabRefs.length) {\n this.updateFromReferences()\n }\n // Update tabs on view child change\n this.subs.push(this.tabRefs.changes.subscribe(this.updateFromReferences))\n }\n\n /** @internal */\n protected updateFromInput = () => {\n // Make sure each tab has a unique id\n this.tabs = TabsComponent.uniqueIds(this.tabs)\n // Determine if router outlet should be used\n this.useRouting = this.tabs.some(({ link }) => link)\n this.updateTabs()\n }\n\n /** @internal */\n protected updateFromReferences = () => {\n this.tabs = this.tabRefs.map((tabRef) => ({\n tab: tabRef.tab,\n id: tabRef.id,\n active: tabRef.active,\n disabled: tabRef.disabled,\n directive: tabRef,\n }))\n // Make sure each tab has a unique id\n this.tabs = TabsComponent.uniqueIds(this.tabs)\n this.tabs.forEach((tab) => {\n if (tab.directive) tab.directive.id = tab.id\n })\n this.updateTabs()\n }\n\n /** @internal */\n protected updateTabs() {\n const url = window.location.href\n // Select tab if its link matches active url\n let selectedTab = this.tabs.find(\n ({ link, disabled }) => link && !disabled && url.endsWith(link),\n )\n // Fallback to first active tab\n if (!selectedTab) selectedTab = this.tabs.find((tab) => tab.active)\n // Fallback to first tab\n if (!selectedTab) selectedTab = this.tabs[0]\n // Select or give up\n if (selectedTab && this.selectedTab !== selectedTab)\n this.onSelect(selectedTab.id)\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n /** @internal */\n protected activateTab(tab: Tab) {\n // Deactivate all tabs\n this.tabs.forEach((t) => {\n t.active = false\n if (t.directive) t.directive.active = false\n })\n // Activate selected tab\n tab.active = true\n if (tab.directive) tab.directive.active = true\n // Send end event\n this.ngvTabSwitch.emit({ type: 'end', prev: this.selectedTab, next: tab })\n this.selectedTab = tab\n this.isSwitching = false\n }\n\n /** @internal */\n onSelect(id: string | number | undefined) {\n const selectedTab = this.tabs.find((tab) => tab.id === id)\n if (\n selectedTab &&\n !selectedTab.disabled &&\n selectedTab !== this.selectedTab\n ) {\n let cancelled = false\n // Events are synchronous and allow for tab switch to be cancelled if desired\n this.isSwitching = true\n this.ngvTabSwitch.emit({\n type: 'start',\n prev: this.selectedTab,\n next: selectedTab,\n cancel: () => {\n cancelled = true\n },\n })\n if (cancelled) {\n this.ngvTabSwitch.emit({\n type: 'cancel',\n prev: this.selectedTab,\n next: selectedTab,\n })\n this.isSwitching = false\n return\n }\n if (selectedTab.link) {\n // Navigate and wait for guard accept route\n this.router\n .navigateByUrl(selectedTab.link, { replaceUrl: true })\n .then((changed) => {\n if (changed === false) {\n this.ngvTabSwitch.emit({\n type: 'cancel',\n prev: this.selectedTab,\n next: selectedTab,\n })\n this.isSwitching = false\n } else this.activateTab(selectedTab)\n })\n } else {\n this.activateTab(selectedTab)\n }\n }\n }\n\n /** @internal */\n onKeyDown(event: KeyboardEvent) {\n const tabElement = event.target as HTMLElement\n if (!tabElement) return false\n const parent = tabElement.parentElement\n switch (event.key) {\n case 'End': // End\n if (parent)\n this.tabFocusHelper(event, parent.lastElementChild as HTMLElement)\n break\n\n case 'Home': // Home\n if (parent)\n this.tabFocusHelper(event, parent.firstElementChild as HTMLElement)\n break\n\n case 'LeftArrow': // Left arrow\n case 'UpArrow': // Up arrow\n this.tabFocusHelper(\n event,\n tabElement.previousElementSibling as HTMLElement,\n )\n break\n\n case 'RightArrow': // Right arrow\n case 'DownArrow': // Down arrow\n this.tabFocusHelper(event, tabElement.nextElementSibling as HTMLElement)\n break\n }\n return true\n }\n\n /** @internal */\n protected tabFocusHelper(event: KeyboardEvent, tabElement: HTMLElement) {\n if (!tabElement || !(tabElement instanceof HTMLElement)) return\n event.preventDefault()\n event.stopPropagation()\n tabElement.focus()\n this.onSelect(tabElement.id.slice(4))\n }\n}\n","<ng-container *transloco=\"let t\">\n <div\n class=\"gds-tabs__tablist\"\n role=\"tablist\"\n [attr.data-thook]=\"thook + '-list'\"\n (keydown)=\"onKeyDown($event)\"\n >\n <button\n class=\"gds-tabs__tab\"\n [id]=\"'tab-' + (tab.id !== undefined ? tab.id : '')\"\n role=\"tab\"\n [attr.data-thook]=\"tab.thook || thook + '-tab'\"\n [tabindex]=\"tab.active ? 0 : -1\"\n [attr.aria-controls]=\"'panel-' + (tab.id !== undefined ? tab.id : '')\"\n [attr.aria-selected]=\"tab.active\"\n [class.-selected]=\"tab.active\"\n [disabled]=\"tab.disabled\"\n [innerHTML]=\"t(tab.tab)\"\n (click)=\"onSelect(tab.id)\"\n *ngFor=\"let tab of tabs\"\n ></button>\n </div>\n <article\n *ngIf=\"useRouting\"\n class=\"gds-tabs__panel -active\"\n [id]=\"'panel-' + (selectedTab ? selectedTab.id : '')\"\n [attr.data-thook]=\"thook + '-panel'\"\n [attr.aria-labelledby]=\"'tab-' + (selectedTab ? selectedTab.id : '')\"\n >\n <router-outlet></router-outlet>\n </article>\n <ng-content *ngIf=\"!useRouting\"></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { TabDirective } from './tab.directive'\nimport { TabsComponent } from './tabs.component'\n\n@NgModule({\n declarations: [TabDirective, TabsComponent],\n imports: [CommonModule, TranslocoModule, RouterModule],\n exports: [TabDirective, TabsComponent],\n})\nexport class NggvTabsModule {}\n","/*\n * Public API Surface of tabs\n */\n\nexport * from './tab.directive'\nexport * from './tabs.component'\nexport * from './tabs.models'\nexport * from './tabs.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|