@sebgroup/green-angular 4.6.7 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/accordion/accordion-list-item.component.mjs +4 -4
- package/esm2022/lib/accordion/accordion.component.mjs +4 -4
- package/esm2022/lib/accordion/accordion.module.mjs +4 -4
- package/esm2022/lib/badge/badge.component.mjs +5 -5
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/button/button.component.mjs +3 -3
- package/esm2022/lib/button/button.module.mjs +4 -4
- package/esm2022/lib/cell-table/cell-table-item.component.mjs +5 -5
- package/esm2022/lib/cell-table/cell-table.component.mjs +4 -4
- package/esm2022/lib/cell-table/cell-table.module.mjs +4 -4
- package/esm2022/lib/cell-table/cell-underline.directive.mjs +5 -5
- package/esm2022/lib/context-menu/context-menu.component.mjs +5 -12
- package/esm2022/lib/context-menu/context-menu.module.mjs +4 -4
- package/esm2022/lib/datepicker/datepicker.component.mjs +5 -5
- package/esm2022/lib/datepicker/datepicker.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown-button.directive.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown-option.directive.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.component.mjs +6 -11
- package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/lib/green-angular.module.mjs +4 -4
- package/esm2022/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +4 -4
- package/esm2022/lib/in-page-wizard/in-page-wizard.module.mjs +4 -4
- package/esm2022/lib/modal/modal-footer.directive.mjs +4 -4
- package/esm2022/lib/modal/modal-header.directive.mjs +4 -4
- package/esm2022/lib/modal/modal.component.mjs +22 -17
- package/esm2022/lib/modal/modal.module.mjs +4 -4
- package/esm2022/lib/pagination/pagination.component.mjs +4 -4
- package/esm2022/lib/pagination/pagination.module.mjs +4 -4
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +4 -4
- package/esm2022/lib/progress-circle/progress-circle.module.mjs +4 -4
- package/esm2022/lib/segmented-control/segmented-control.component.mjs +4 -4
- package/esm2022/lib/segmented-control/segmented-control.module.mjs +4 -4
- package/esm2022/lib/shared/core-control/core-control.directive.mjs +73 -0
- package/esm2022/lib/shared/core-control/core-control.module.mjs +19 -0
- package/esm2022/lib/shared/core-control/index.mjs +2 -0
- package/esm2022/lib/shared/core-element/core-element.directive.mjs +16 -12
- package/esm2022/lib/shared/core-element/core-element.module.mjs +4 -4
- package/esm2022/lib/shared/core-renderer/core-renderer.mjs +88 -0
- package/esm2022/lib/shared/core-renderer/index.mjs +2 -0
- package/esm2022/lib/shared/index.mjs +3 -1
- package/esm2022/lib/shared/on-scroll.directive.mjs +5 -5
- package/esm2022/lib/shared/shared.module.mjs +4 -4
- package/esm2022/lib/slider/slider.component.mjs +4 -4
- package/esm2022/lib/slider/slider.module.mjs +4 -4
- package/esm2022/lib/sortable-list/sortable-list.component.mjs +4 -4
- package/esm2022/lib/sortable-list/sortable-list.module.mjs +4 -4
- package/esm2022/src/lib/accordion/accordion-list-item.component.mjs +4 -4
- package/esm2022/src/lib/accordion/accordion.component.mjs +4 -4
- package/esm2022/src/lib/accordion/accordion.module.mjs +4 -4
- package/esm2022/src/lib/badge/badge.component.mjs +5 -5
- package/esm2022/src/lib/badge/badge.module.mjs +4 -4
- package/esm2022/src/lib/button/button.component.mjs +3 -3
- package/esm2022/src/lib/button/button.module.mjs +4 -4
- package/esm2022/src/lib/cell-table/cell-table-item.component.mjs +5 -5
- package/esm2022/src/lib/cell-table/cell-table.component.mjs +4 -4
- package/esm2022/src/lib/cell-table/cell-table.module.mjs +4 -4
- package/esm2022/src/lib/cell-table/cell-underline.directive.mjs +5 -5
- package/esm2022/src/lib/context-menu/context-menu.component.mjs +5 -12
- package/esm2022/src/lib/context-menu/context-menu.module.mjs +4 -4
- package/esm2022/src/lib/datepicker/datepicker.component.mjs +5 -5
- package/esm2022/src/lib/datepicker/datepicker.module.mjs +4 -4
- package/esm2022/src/lib/dropdown/dropdown-button.directive.mjs +4 -4
- package/esm2022/src/lib/dropdown/dropdown-option.directive.mjs +4 -4
- package/esm2022/src/lib/dropdown/dropdown.component.mjs +6 -11
- package/esm2022/src/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +4 -4
- package/esm2022/src/lib/in-page-wizard/in-page-wizard.module.mjs +4 -4
- package/esm2022/src/lib/modal/modal-footer.directive.mjs +4 -4
- package/esm2022/src/lib/modal/modal-header.directive.mjs +4 -4
- package/esm2022/src/lib/modal/modal.component.mjs +22 -17
- package/esm2022/src/lib/modal/modal.module.mjs +4 -4
- package/esm2022/src/lib/pagination/pagination.component.mjs +4 -4
- package/esm2022/src/lib/pagination/pagination.module.mjs +4 -4
- package/esm2022/src/lib/progress-circle/progress-circle.component.mjs +4 -4
- package/esm2022/src/lib/progress-circle/progress-circle.module.mjs +4 -4
- package/esm2022/src/lib/segmented-control/segmented-control.component.mjs +4 -4
- package/esm2022/src/lib/segmented-control/segmented-control.module.mjs +4 -4
- package/esm2022/src/lib/shared/core-control/core-control.directive.mjs +73 -0
- package/esm2022/src/lib/shared/core-control/core-control.module.mjs +19 -0
- package/esm2022/src/lib/shared/core-control/index.mjs +2 -0
- package/esm2022/src/lib/shared/core-element/core-element.directive.mjs +16 -12
- package/esm2022/src/lib/shared/core-element/core-element.module.mjs +4 -4
- package/esm2022/src/lib/shared/core-renderer/core-renderer.mjs +88 -0
- package/esm2022/src/lib/shared/core-renderer/index.mjs +2 -0
- package/esm2022/src/lib/shared/index.mjs +3 -1
- package/esm2022/src/lib/shared/on-scroll.directive.mjs +5 -5
- package/esm2022/src/lib/shared/shared.module.mjs +4 -4
- package/esm2022/src/lib/slider/slider.component.mjs +4 -4
- package/esm2022/src/lib/slider/slider.module.mjs +4 -4
- package/esm2022/src/lib/sortable-list/sortable-list.component.mjs +4 -4
- package/esm2022/src/lib/sortable-list/sortable-list.module.mjs +4 -4
- package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +7 -7
- package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +4 -4
- package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +4 -4
- package/esm2022/src/v-angular/button/button.component.mjs +6 -6
- package/esm2022/src/v-angular/button/button.module.mjs +4 -4
- package/esm2022/src/v-angular/card/card.component.mjs +3 -3
- package/esm2022/src/v-angular/card/card.module.mjs +4 -4
- package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +5 -5
- package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +4 -4
- package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +7 -7
- package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/src/v-angular/core/core.globals.mjs +1 -1
- package/esm2022/src/v-angular/core/core.utils.mjs +3 -3
- package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +6 -6
- package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +7 -7
- package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +6 -6
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +4 -4
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +6 -6
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +6 -6
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +4 -4
- package/esm2022/src/v-angular/external-link/external-link.directive.mjs +5 -5
- package/esm2022/src/v-angular/external-link/external-link.module.mjs +4 -4
- package/esm2022/src/v-angular/i18n/i18n.module.mjs +10 -10
- package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +7 -7
- package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +3 -3
- package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +4 -4
- package/esm2022/src/v-angular/input/input.component.mjs +7 -7
- package/esm2022/src/v-angular/input/input.module.mjs +4 -4
- package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +3 -3
- package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +6 -6
- package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +4 -4
- package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +7 -5
- package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +7 -6
- package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
- package/esm2022/src/v-angular/modal/modal.globals.mjs +1 -1
- package/esm2022/src/v-angular/modal/modal.module.mjs +9 -7
- package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +7 -6
- package/esm2022/src/v-angular/radio/radio.component.mjs +10 -10
- package/esm2022/src/v-angular/radio/radio.module.mjs +4 -4
- package/esm2022/src/v-angular/slug/slug.module.mjs +4 -4
- package/esm2022/src/v-angular/slug/slug.pipe.mjs +4 -4
- package/esm2022/src/v-angular/textarea/textarea.component.mjs +7 -7
- package/esm2022/src/v-angular/textarea/textarea.module.mjs +4 -4
- package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +5 -5
- package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +7 -7
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +4 -4
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +4 -4
- package/esm2022/v-angular/button/button.component.mjs +6 -6
- package/esm2022/v-angular/button/button.module.mjs +4 -4
- package/esm2022/v-angular/card/card.component.mjs +3 -3
- package/esm2022/v-angular/card/card.module.mjs +4 -4
- package/esm2022/v-angular/character-countdown/character-countdown.directive.mjs +5 -5
- package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +4 -4
- package/esm2022/v-angular/checkbox/checkbox.component.mjs +7 -7
- package/esm2022/v-angular/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +6 -6
- package/esm2022/v-angular/dropdown/dropdown.component.mjs +7 -7
- package/esm2022/v-angular/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +6 -6
- package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +4 -4
- package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +6 -6
- package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +6 -6
- package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +4 -4
- package/esm2022/v-angular/i18n/i18n.module.mjs +10 -10
- package/esm2022/v-angular/i18n/i18n.test.module.mjs +7 -7
- package/esm2022/v-angular/info-circle/info-circle.component.mjs +3 -3
- package/esm2022/v-angular/info-circle/info-circle.module.mjs +4 -4
- package/esm2022/v-angular/input/input.component.mjs +7 -7
- package/esm2022/v-angular/input/input.module.mjs +4 -4
- package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +3 -3
- package/esm2022/v-angular/input-mask/input-mask.directive.mjs +6 -6
- package/esm2022/v-angular/input-mask/input-mask.module.mjs +4 -4
- package/esm2022/v-angular/modal/dialog/dialog.component.mjs +7 -5
- package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +7 -6
- package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
- package/esm2022/v-angular/modal/modal.globals.mjs +1 -1
- package/esm2022/v-angular/modal/modal.module.mjs +9 -7
- package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +7 -6
- package/esm2022/v-angular/radio/radio.component.mjs +10 -10
- package/esm2022/v-angular/radio/radio.module.mjs +4 -4
- package/esm2022/v-angular/textarea/textarea.component.mjs +7 -7
- package/esm2022/v-angular/textarea/textarea.module.mjs +4 -4
- package/esm2022/v-angular/tooltip/tooltip.directive.mjs +5 -5
- package/esm2022/v-angular/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/v-angular/v-angular.module.mjs +11 -7
- package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +15 -15
- package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +8 -15
- package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +17 -22
- package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +33 -28
- package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +198 -26
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +9 -9
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +37 -37
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +16 -16
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +12 -12
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +28 -24
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +198 -194
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular.mjs +349 -186
- package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
- package/lib/context-menu/context-menu.component.d.ts +1 -6
- package/lib/datepicker/datepicker.component.d.ts +0 -7
- package/lib/dropdown/dropdown.component.d.ts +1 -6
- package/lib/modal/modal.component.d.ts +4 -2
- package/lib/shared/core-control/core-control.directive.d.ts +19 -0
- package/lib/shared/core-control/core-control.module.d.ts +9 -0
- package/lib/shared/core-control/index.d.ts +1 -0
- package/lib/shared/core-renderer/core-renderer.d.ts +37 -0
- package/lib/shared/core-renderer/index.d.ts +1 -0
- package/lib/shared/index.d.ts +2 -0
- package/package.json +10 -10
- package/src/lib/context-menu/context-menu.component.d.ts +1 -6
- package/src/lib/datepicker/datepicker.component.d.ts +0 -7
- package/src/lib/dropdown/dropdown.component.d.ts +1 -6
- package/src/lib/modal/modal.component.d.ts +4 -2
- package/src/lib/shared/core-control/core-control.directive.d.ts +19 -0
- package/src/lib/shared/core-control/core-control.module.d.ts +9 -0
- package/src/lib/shared/core-control/index.d.ts +1 -0
- package/src/lib/shared/core-renderer/core-renderer.d.ts +37 -0
- package/src/lib/shared/core-renderer/index.d.ts +1 -0
- package/src/lib/shared/index.d.ts +2 -0
- package/src/v-angular/modal/modal.module.d.ts +3 -1
- package/v-angular/modal/modal.module.d.ts +3 -1
- package/v-angular/v-angular.module.d.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular-src-v-angular-textarea.mjs","sources":["../../../../libs/angular/src/v-angular/textarea/textarea.component.ts","../../../../libs/angular/src/v-angular/textarea/textarea.component.html","../../../../libs/angular/src/v-angular/textarea/textarea.module.ts","../../../../libs/angular/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** Textarea fields allow users to add and edit longer or multiple line text. */\n@Component({\n selector: 'nggv-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n})\nexport class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'textarea'\n /** Text shown before input has a written value. */\n @Input() placeholder?: string\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /** Minimum length (number of characters) of value. */\n @Input() set minLength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n get minlength(): number {\n return this._minlength\n }\n\n /**\n * Minimum length (number of characters) of value.\n * @deprecated minlength triggers angular-template-validation. Use @Input() minLength instead.\n */\n @Input() set minlength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n /** Maximum length (number of characters) of value. */\n @Input() set maxLength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n get maxlength(): number {\n return this._maxlength\n }\n /**\n * Maximum length (number of characters) of value.\n * @deprecated maxlength triggers angular-template-validation. Use @Input() maxLength instead.\n */\n @Input() set maxlength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n\n /** Returns if maxlength is used */\n get hasMaxLength(): boolean {\n return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER\n }\n\n private _maxlength = Number.MAX_SAFE_INTEGER\n\n private _minlength = 0\n\n /** Sets the height of the textarea and disables resize. A scrollbar will appear if necessary. */\n @Input() rows?: number\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n /** @internal */\n onInput(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.state = (event.target as HTMLTextAreaElement).value\n this.onChange(this.state)\n }\n}\n","<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown';\nimport { NgvTextareaComponent } from './textarea.component'\n\n@NgModule({\n declarations: [NgvTextareaComponent],\n imports: [CommonModule, NgvI18nModule, NggCharacterCountdownDirectiveModule],\n exports: [NgvTextareaComponent],\n})\nexport class NgvTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-v-angular-textarea.mjs","sources":["../../../../libs/angular/src/v-angular/textarea/textarea.component.ts","../../../../libs/angular/src/v-angular/textarea/textarea.component.html","../../../../libs/angular/src/v-angular/textarea/textarea.module.ts","../../../../libs/angular/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** Textarea fields allow users to add and edit longer or multiple line text. */\n@Component({\n selector: 'nggv-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n})\nexport class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'textarea'\n /** Text shown before input has a written value. */\n @Input() placeholder?: string\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /** Minimum length (number of characters) of value. */\n @Input() set minLength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n get minlength(): number {\n return this._minlength\n }\n\n /**\n * Minimum length (number of characters) of value.\n * @deprecated minlength triggers angular-template-validation. Use @Input() minLength instead.\n */\n @Input() set minlength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n /** Maximum length (number of characters) of value. */\n @Input() set maxLength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n get maxlength(): number {\n return this._maxlength\n }\n /**\n * Maximum length (number of characters) of value.\n * @deprecated maxlength triggers angular-template-validation. Use @Input() maxLength instead.\n */\n @Input() set maxlength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n\n /** Returns if maxlength is used */\n get hasMaxLength(): boolean {\n return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER\n }\n\n private _maxlength = Number.MAX_SAFE_INTEGER\n\n private _minlength = 0\n\n /** Sets the height of the textarea and disables resize. A scrollbar will appear if necessary. */\n @Input() rows?: number\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n /** @internal */\n onInput(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.state = (event.target as HTMLTextAreaElement).value\n this.onChange(this.state)\n }\n}\n","<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown';\nimport { NgvTextareaComponent } from './textarea.component'\n\n@NgModule({\n declarations: [NgvTextareaComponent],\n imports: [CommonModule, NgvI18nModule, NggCharacterCountdownDirectiveModule],\n exports: [NgvTextareaComponent],\n})\nexport class NgvTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -236,15 +236,15 @@ class NgvTooltipDirective {
|
|
|
236
236
|
const remValue = value / fontSize;
|
|
237
237
|
return `${remValue}rem`;
|
|
238
238
|
}
|
|
239
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
240
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
239
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
240
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NgvTooltipDirective, selector: "[nggvTooltip]", inputs: { nggvTooltip: "nggvTooltip", thook: "thook", placement: "placement", shown: "shown", offset: "offset", resizeThrottle: "resizeThrottle", maxWidth: "maxWidth" }, outputs: { nggvShow: "nggvShow", nggvHide: "nggvHide" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
241
241
|
}
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipDirective, decorators: [{
|
|
243
243
|
type: Directive,
|
|
244
244
|
args: [{
|
|
245
245
|
selector: '[nggvTooltip]',
|
|
246
246
|
}]
|
|
247
|
-
}], ctorParameters:
|
|
247
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { nggvTooltip: [{
|
|
248
248
|
type: Input
|
|
249
249
|
}], thook: [{
|
|
250
250
|
type: Input
|
|
@@ -274,11 +274,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
274
274
|
}] } });
|
|
275
275
|
|
|
276
276
|
class NgvTooltipModule {
|
|
277
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
278
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
279
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
277
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
278
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipModule, declarations: [NgvTooltipDirective], imports: [NgvI18nModule], exports: [NgvTooltipDirective] }); }
|
|
279
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipModule, imports: [NgvI18nModule] }); }
|
|
280
280
|
}
|
|
281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
281
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipModule, decorators: [{
|
|
282
282
|
type: NgModule,
|
|
283
283
|
args: [{
|
|
284
284
|
declarations: [NgvTooltipDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular-src-v-angular-tooltip.mjs","sources":["../../../../libs/angular/src/v-angular/tooltip/tooltip.directive.ts","../../../../libs/angular/src/v-angular/tooltip/tooltip.module.ts","../../../../libs/angular/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChange,\n SimpleChanges,\n} from '@angular/core'\n\nexport type Placement = 'top' | 'right' | 'bottom' | 'left'\n\ntype Position = {\n top?: number\n right?: number\n bottom?: number\n left?: number\n}\n\n/**\n * A tooltip is a text label that acts as a helper to a specific item.\n * Recommended to use value `top` or `bottom` with `placement` for responsive design.\n * Dynamic resizing and tooltip position are a work in progress.\n * https://designlibrary.sebgroup.com/components/component-tooltip\n */\n@Directive({\n selector: '[nggvTooltip]',\n})\nexport class NgvTooltipDirective\n implements AfterViewInit, OnChanges, OnDestroy\n{\n /** The text that will be shown in the tooltip. */\n @Input() nggvTooltip?: string\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'tooltip'\n /** The side of the anchor which the tooltip will be rendered.\n * Recommended `top` and `bottom` for responsive designs as these are more stable.\n */\n @Input() placement: Placement = 'top'\n /** Initial state and subsequent updates on wether the tooltip is visible. */\n @Input() shown = false\n /** How far off from the text the tooltip will be rendered. */\n @Input() offset = 10\n /** How frequently the tooltip will be re-rendered when the page size changes. */\n @Input() resizeThrottle = 50\n /** Numeric max-width for tooltip. */\n @Input() maxWidth = 343\n\n /** Emits a show event triggered changing visibility state of the tooltip. */\n @Output() nggvShow = new EventEmitter<HTMLElement>()\n /** Emits a hide event triggered changing visibility state of the tooltip. */\n @Output() nggvHide = new EventEmitter<HTMLElement>()\n\n /** @internal */\n protected timeout = 0\n\n /** @internal */\n protected parentElement: HTMLElement\n\n /** @internal */\n protected anchorElement: HTMLElement\n\n /** @internal */\n protected tooltipElement: HTMLElement | undefined\n\n /** @internal */\n protected arrowElement: HTMLElement | undefined\n\n /** @internal Check if changes should trigger a re-render */\n static shouldUpdate(change: SimpleChange) {\n return (\n change &&\n !change.firstChange &&\n change.previousValue !== change.currentValue\n )\n }\n\n constructor(\n private anchorElementRef: ElementRef,\n private renderer: Renderer2,\n ) {\n this.anchorElement = this.anchorElementRef.nativeElement\n this.parentElement = document.body\n }\n\n ngAfterViewInit() {\n // Set a timeout to allow view to fully render before creating tooltip.\n setTimeout(() => (this.shown ? this.show(true) : this.hide(true)))\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n NgvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||\n NgvTooltipDirective.shouldUpdate(changes.placement) ||\n NgvTooltipDirective.shouldUpdate(changes.thook)\n ) {\n this.shown ? this.show(true) : this.hide(true)\n }\n\n if (NgvTooltipDirective.shouldUpdate(changes.shown)) {\n this.shown ? this.show() : this.hide()\n }\n\n if (NgvTooltipDirective.shouldUpdate(changes.offset)) {\n this.updatePosition()\n }\n }\n\n ngOnDestroy() {\n this.hide(true)\n }\n\n /** @internal */\n @HostListener('mouseenter')\n onMouseEnter() {\n this.show()\n }\n\n /** @internal */\n @HostListener('mouseleave')\n onMouseLeave() {\n this.hide()\n }\n\n /** @internal */\n @HostListener('window:resize')\n resize() {\n if (this.timeout) return\n this.timeout = window.setTimeout(() => {\n this.timeout = 0\n this.updatePosition()\n }, this.resizeThrottle)\n }\n\n /**\n * Sets the visibility state of the tooltip to true and creates a new tooltip if it doesn't exist or `recreate` is set.\n * @param recreate if set to true, destroy any existing tooltip and create a new one.\n */\n show(recreate = false) {\n // Require tooltip text to create\n if (!this.nggvTooltip || this.nggvTooltip.length === 0) return\n\n if (recreate || !this.tooltipElement) {\n this.hide(true)\n this.create(this.nggvTooltip)\n } else {\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n }\n\n this.updatePosition()\n this.shown = true\n this.nggvShow.emit(this.tooltipElement)\n }\n\n /**\n * Sets the visibility state of the tooltip to false and destroys an existing tooltip if `destroy` is set.\n * @param destroy if set to true, destroy any existing tooltip.\n */\n hide(destroy = false) {\n if (!this.tooltipElement) return\n if (this.parentElement.contains(this.tooltipElement))\n this.renderer.removeChild(this.parentElement, this.tooltipElement)\n if (destroy) this.destroy()\n this.shown = false\n this.nggvHide.emit(this.tooltipElement)\n }\n\n /**\n * @internal\n * Creates a new tooltip with the set placement and a given text as its body.\n * @param text the string to be displayed in the tooltip body.\n */\n create(text: string) {\n this.tooltipElement = this.renderer.createElement('div')\n this.renderer.addClass(this.tooltipElement, 'gds-tooltip')\n this.renderer.setAttribute(this.tooltipElement, 'data-thook', this.thook)\n this.renderer.setStyle(this.tooltipElement, 'position', 'absolute')\n this.renderer.setStyle(this.tooltipElement, 'z-index', '1040')\n this.renderer.setStyle(this.tooltipElement, 'border-radius', '.25rem')\n this.renderer.setStyle(this.tooltipElement, 'padding', '.5rem 1rem')\n const relativeMaxWidth = this.pxToRem(this.maxWidth)\n this.renderer.setStyle(this.tooltipElement, 'max-width', relativeMaxWidth)\n this.renderer.appendChild(\n this.tooltipElement,\n this.renderer.createText(text),\n )\n\n // add tooltip to DOM\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n\n this.arrowElement = this.renderer.createElement('div')\n this.renderer.addClass(\n this.arrowElement,\n `gds-tooltip__arrow-${this.placement}`,\n )\n\n // add arrow to tooltip element\n this.renderer.appendChild(this.tooltipElement, this.arrowElement)\n }\n\n /**\n * @internal\n * Destroys the current tooltip by un-setting variables, should only be used after detaching elements from the DOM.\n */\n destroy() {\n this.tooltipElement = undefined\n this.arrowElement = undefined\n }\n\n /**\n * @internal\n * Recalculates the position of the tooltip.\n */\n updatePosition() {\n if (!this.tooltipElement || !this.arrowElement) return\n const scrollPos =\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n this.parentElement.scrollTop ||\n 0\n const anchorRect = this.anchorElement.getBoundingClientRect()\n const tooltipRect = this.tooltipElement.getBoundingClientRect()\n const arrowRect = this.arrowElement.getBoundingClientRect()\n\n switch (this.placement) {\n case 'top':\n this.alignVertical(\n true,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'bottom':\n this.alignVertical(\n false,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'left':\n this.alignHorizontal(true, scrollPos, anchorRect, tooltipRect.height)\n break\n\n case 'right':\n this.alignHorizontal(false, scrollPos, anchorRect, tooltipRect.height)\n break\n\n default:\n return\n }\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `top` or `bottom`.\n */\n alignVertical(\n above: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipWidth: number,\n tooltipHeight: number,\n arrowWidth: number,\n ) {\n const width = this.parentElement.clientWidth\n const anchorMidX = anchor.left + anchor.width / 2\n const tooltip: Position = {}\n const arrow: Position = {}\n\n if (above)\n tooltip.top = anchor.top - tooltipHeight - this.offset + scrollPos\n else tooltip.top = anchor.bottom + this.offset + scrollPos\n\n if (anchorMidX < width / 2) {\n tooltip.left = Math.max(0, anchorMidX - tooltipWidth / 2)\n arrow.left = anchorMidX - tooltip.left\n } else {\n tooltip.right = Math.max(0, width - (anchorMidX + tooltipWidth / 2))\n arrow.right = width - anchorMidX - tooltip.right - arrowWidth\n }\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `left` or `right`.\n */\n alignHorizontal(\n before: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipHeight: number,\n ) {\n const width = this.parentElement.clientWidth\n const top = anchor.top + (anchor.height - tooltipHeight) / 2 + scrollPos\n const tooltip: Position = { top }\n const arrow: Position = { top: tooltipHeight / 2 }\n\n if (before) tooltip.right = width - anchor.left + this.offset\n else tooltip.left = anchor.right + this.offset\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Updates the CSS properties for the tooltip position.\n */\n setStyle(tooltip: Position, arrow: Position) {\n // Tooltip\n Object.entries(tooltip).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.tooltipElement, prop, position)\n })\n\n // Arrow\n Object.entries(arrow).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.arrowElement, prop, position)\n })\n }\n\n private pxToRem(value: number): string {\n const fontSizePx = window\n ?.getComputedStyle(this.parentElement)\n ?.getPropertyValue('font-size')\n const fontSizeNumberMatch = fontSizePx?.match(/\\d{1,}/)\n const fontSize = fontSizeNumberMatch ? +fontSizeNumberMatch[0] : 16\n const remValue = value / fontSize\n return `${remValue}rem`\n }\n}\n","import { NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NgvTooltipDirective } from './tooltip.directive'\n\n@NgModule({\n declarations: [NgvTooltipDirective],\n exports: [NgvTooltipDirective],\n imports: [NgvI18nModule],\n})\nexport class NgvTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-v-angular-tooltip.mjs","sources":["../../../../libs/angular/src/v-angular/tooltip/tooltip.directive.ts","../../../../libs/angular/src/v-angular/tooltip/tooltip.module.ts","../../../../libs/angular/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChange,\n SimpleChanges,\n} from '@angular/core'\n\nexport type Placement = 'top' | 'right' | 'bottom' | 'left'\n\ntype Position = {\n top?: number\n right?: number\n bottom?: number\n left?: number\n}\n\n/**\n * A tooltip is a text label that acts as a helper to a specific item.\n * Recommended to use value `top` or `bottom` with `placement` for responsive design.\n * Dynamic resizing and tooltip position are a work in progress.\n * https://designlibrary.sebgroup.com/components/component-tooltip\n */\n@Directive({\n selector: '[nggvTooltip]',\n})\nexport class NgvTooltipDirective\n implements AfterViewInit, OnChanges, OnDestroy\n{\n /** The text that will be shown in the tooltip. */\n @Input() nggvTooltip?: string\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'tooltip'\n /** The side of the anchor which the tooltip will be rendered.\n * Recommended `top` and `bottom` for responsive designs as these are more stable.\n */\n @Input() placement: Placement = 'top'\n /** Initial state and subsequent updates on wether the tooltip is visible. */\n @Input() shown = false\n /** How far off from the text the tooltip will be rendered. */\n @Input() offset = 10\n /** How frequently the tooltip will be re-rendered when the page size changes. */\n @Input() resizeThrottle = 50\n /** Numeric max-width for tooltip. */\n @Input() maxWidth = 343\n\n /** Emits a show event triggered changing visibility state of the tooltip. */\n @Output() nggvShow = new EventEmitter<HTMLElement>()\n /** Emits a hide event triggered changing visibility state of the tooltip. */\n @Output() nggvHide = new EventEmitter<HTMLElement>()\n\n /** @internal */\n protected timeout = 0\n\n /** @internal */\n protected parentElement: HTMLElement\n\n /** @internal */\n protected anchorElement: HTMLElement\n\n /** @internal */\n protected tooltipElement: HTMLElement | undefined\n\n /** @internal */\n protected arrowElement: HTMLElement | undefined\n\n /** @internal Check if changes should trigger a re-render */\n static shouldUpdate(change: SimpleChange) {\n return (\n change &&\n !change.firstChange &&\n change.previousValue !== change.currentValue\n )\n }\n\n constructor(\n private anchorElementRef: ElementRef,\n private renderer: Renderer2,\n ) {\n this.anchorElement = this.anchorElementRef.nativeElement\n this.parentElement = document.body\n }\n\n ngAfterViewInit() {\n // Set a timeout to allow view to fully render before creating tooltip.\n setTimeout(() => (this.shown ? this.show(true) : this.hide(true)))\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n NgvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||\n NgvTooltipDirective.shouldUpdate(changes.placement) ||\n NgvTooltipDirective.shouldUpdate(changes.thook)\n ) {\n this.shown ? this.show(true) : this.hide(true)\n }\n\n if (NgvTooltipDirective.shouldUpdate(changes.shown)) {\n this.shown ? this.show() : this.hide()\n }\n\n if (NgvTooltipDirective.shouldUpdate(changes.offset)) {\n this.updatePosition()\n }\n }\n\n ngOnDestroy() {\n this.hide(true)\n }\n\n /** @internal */\n @HostListener('mouseenter')\n onMouseEnter() {\n this.show()\n }\n\n /** @internal */\n @HostListener('mouseleave')\n onMouseLeave() {\n this.hide()\n }\n\n /** @internal */\n @HostListener('window:resize')\n resize() {\n if (this.timeout) return\n this.timeout = window.setTimeout(() => {\n this.timeout = 0\n this.updatePosition()\n }, this.resizeThrottle)\n }\n\n /**\n * Sets the visibility state of the tooltip to true and creates a new tooltip if it doesn't exist or `recreate` is set.\n * @param recreate if set to true, destroy any existing tooltip and create a new one.\n */\n show(recreate = false) {\n // Require tooltip text to create\n if (!this.nggvTooltip || this.nggvTooltip.length === 0) return\n\n if (recreate || !this.tooltipElement) {\n this.hide(true)\n this.create(this.nggvTooltip)\n } else {\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n }\n\n this.updatePosition()\n this.shown = true\n this.nggvShow.emit(this.tooltipElement)\n }\n\n /**\n * Sets the visibility state of the tooltip to false and destroys an existing tooltip if `destroy` is set.\n * @param destroy if set to true, destroy any existing tooltip.\n */\n hide(destroy = false) {\n if (!this.tooltipElement) return\n if (this.parentElement.contains(this.tooltipElement))\n this.renderer.removeChild(this.parentElement, this.tooltipElement)\n if (destroy) this.destroy()\n this.shown = false\n this.nggvHide.emit(this.tooltipElement)\n }\n\n /**\n * @internal\n * Creates a new tooltip with the set placement and a given text as its body.\n * @param text the string to be displayed in the tooltip body.\n */\n create(text: string) {\n this.tooltipElement = this.renderer.createElement('div')\n this.renderer.addClass(this.tooltipElement, 'gds-tooltip')\n this.renderer.setAttribute(this.tooltipElement, 'data-thook', this.thook)\n this.renderer.setStyle(this.tooltipElement, 'position', 'absolute')\n this.renderer.setStyle(this.tooltipElement, 'z-index', '1040')\n this.renderer.setStyle(this.tooltipElement, 'border-radius', '.25rem')\n this.renderer.setStyle(this.tooltipElement, 'padding', '.5rem 1rem')\n const relativeMaxWidth = this.pxToRem(this.maxWidth)\n this.renderer.setStyle(this.tooltipElement, 'max-width', relativeMaxWidth)\n this.renderer.appendChild(\n this.tooltipElement,\n this.renderer.createText(text),\n )\n\n // add tooltip to DOM\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n\n this.arrowElement = this.renderer.createElement('div')\n this.renderer.addClass(\n this.arrowElement,\n `gds-tooltip__arrow-${this.placement}`,\n )\n\n // add arrow to tooltip element\n this.renderer.appendChild(this.tooltipElement, this.arrowElement)\n }\n\n /**\n * @internal\n * Destroys the current tooltip by un-setting variables, should only be used after detaching elements from the DOM.\n */\n destroy() {\n this.tooltipElement = undefined\n this.arrowElement = undefined\n }\n\n /**\n * @internal\n * Recalculates the position of the tooltip.\n */\n updatePosition() {\n if (!this.tooltipElement || !this.arrowElement) return\n const scrollPos =\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n this.parentElement.scrollTop ||\n 0\n const anchorRect = this.anchorElement.getBoundingClientRect()\n const tooltipRect = this.tooltipElement.getBoundingClientRect()\n const arrowRect = this.arrowElement.getBoundingClientRect()\n\n switch (this.placement) {\n case 'top':\n this.alignVertical(\n true,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'bottom':\n this.alignVertical(\n false,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'left':\n this.alignHorizontal(true, scrollPos, anchorRect, tooltipRect.height)\n break\n\n case 'right':\n this.alignHorizontal(false, scrollPos, anchorRect, tooltipRect.height)\n break\n\n default:\n return\n }\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `top` or `bottom`.\n */\n alignVertical(\n above: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipWidth: number,\n tooltipHeight: number,\n arrowWidth: number,\n ) {\n const width = this.parentElement.clientWidth\n const anchorMidX = anchor.left + anchor.width / 2\n const tooltip: Position = {}\n const arrow: Position = {}\n\n if (above)\n tooltip.top = anchor.top - tooltipHeight - this.offset + scrollPos\n else tooltip.top = anchor.bottom + this.offset + scrollPos\n\n if (anchorMidX < width / 2) {\n tooltip.left = Math.max(0, anchorMidX - tooltipWidth / 2)\n arrow.left = anchorMidX - tooltip.left\n } else {\n tooltip.right = Math.max(0, width - (anchorMidX + tooltipWidth / 2))\n arrow.right = width - anchorMidX - tooltip.right - arrowWidth\n }\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `left` or `right`.\n */\n alignHorizontal(\n before: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipHeight: number,\n ) {\n const width = this.parentElement.clientWidth\n const top = anchor.top + (anchor.height - tooltipHeight) / 2 + scrollPos\n const tooltip: Position = { top }\n const arrow: Position = { top: tooltipHeight / 2 }\n\n if (before) tooltip.right = width - anchor.left + this.offset\n else tooltip.left = anchor.right + this.offset\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Updates the CSS properties for the tooltip position.\n */\n setStyle(tooltip: Position, arrow: Position) {\n // Tooltip\n Object.entries(tooltip).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.tooltipElement, prop, position)\n })\n\n // Arrow\n Object.entries(arrow).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.arrowElement, prop, position)\n })\n }\n\n private pxToRem(value: number): string {\n const fontSizePx = window\n ?.getComputedStyle(this.parentElement)\n ?.getPropertyValue('font-size')\n const fontSizeNumberMatch = fontSizePx?.match(/\\d{1,}/)\n const fontSize = fontSizeNumberMatch ? +fontSizeNumberMatch[0] : 16\n const remValue = value / fontSize\n return `${remValue}rem`\n }\n}\n","import { NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NgvTooltipDirective } from './tooltip.directive'\n\n@NgModule({\n declarations: [NgvTooltipDirective],\n exports: [NgvTooltipDirective],\n imports: [NgvI18nModule],\n})\nexport class NgvTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|