@festo-ui/angular 3.1.0-pre-20220203.2 → 3.1.0-pre-20220203.4
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/esm2020/festo-ui-angular.mjs +5 -0
- package/esm2020/index.mjs +18 -0
- package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +23 -0
- package/esm2020/lib/components/buttons/button/button.component.mjs +41 -0
- package/esm2020/lib/components/buttons/link-button/link-button.component.mjs +33 -0
- package/esm2020/lib/components/chips/chip/chip.component.mjs +37 -0
- package/esm2020/lib/components/chips/chip-container/chip-container.component.mjs +16 -0
- package/esm2020/lib/components/click-outside.directive.mjs +28 -0
- package/esm2020/lib/components/components.module.mjs +155 -0
- package/esm2020/lib/components/loading-indicator/loading-indicator.component.mjs +16 -0
- package/esm2020/lib/components/modals/alert/alert.component.mjs +52 -0
- package/esm2020/lib/components/modals/confirm/confirm.component.mjs +67 -0
- package/esm2020/lib/components/modals/index.mjs +2 -0
- package/esm2020/lib/components/modals/modal.service.mjs +112 -0
- package/esm2020/lib/components/modals/modals.module.mjs +28 -0
- package/esm2020/lib/components/modals/prompt/prompt.component.mjs +102 -0
- package/esm2020/lib/components/pagination/pagination.component.mjs +55 -0
- package/esm2020/lib/components/popovers/legend/legend.component.mjs +42 -0
- package/esm2020/lib/components/popovers/legend/legend.directive.mjs +31 -0
- package/esm2020/lib/components/popovers/popover/popover.component.mjs +31 -0
- package/esm2020/lib/components/popovers/popover-content/popover-content.component.mjs +82 -0
- package/esm2020/lib/components/popovers/popover-content/popover-content.directive.mjs +39 -0
- package/esm2020/lib/components/popovers/popover-menu/popover-menu.component.mjs +68 -0
- package/esm2020/lib/components/popovers/popover-ref.mjs +25 -0
- package/esm2020/lib/components/popovers/popover.defaults.mjs +60 -0
- package/esm2020/lib/components/popovers/popover.models.mjs +23 -0
- package/esm2020/lib/components/popovers/popover.service.mjs +123 -0
- package/esm2020/lib/components/popovers/tooltip/tooltip.directive.mjs +94 -0
- package/esm2020/lib/components/progress/progress.component.mjs +20 -0
- package/esm2020/lib/components/scroll/index.mjs +2 -0
- package/esm2020/lib/components/scroll/scrollable.directive.mjs +72 -0
- package/esm2020/lib/components/search-input/search-input.component.mjs +150 -0
- package/esm2020/lib/components/snackbar/snackbar-container.component.mjs +21 -0
- package/esm2020/lib/components/snackbar/snackbar-container.directive.mjs +83 -0
- package/esm2020/lib/components/snackbar/snackbar.component.mjs +79 -0
- package/esm2020/lib/components/snackbar/snackbar.models.mjs +2 -0
- package/esm2020/lib/components/snackbar/snackbar.module.mjs +26 -0
- package/esm2020/lib/components/snackbar/snackbar.service.mjs +23 -0
- package/esm2020/lib/components/stepper/stepper.component.mjs +22 -0
- package/esm2020/lib/components/table-header-cell/table-header-cell.directive.mjs +58 -0
- package/esm2020/lib/components/tabs/tab-pane/tab-pane.component.mjs +31 -0
- package/esm2020/lib/components/tabs/tabs.component.mjs +355 -0
- package/esm2020/lib/content/content.module.mjs +20 -0
- package/esm2020/lib/content/icon/icon.component.mjs +17 -0
- package/esm2020/lib/festo-angular.module.mjs +58 -0
- package/esm2020/lib/forms/checkbox/checkbox.component.mjs +149 -0
- package/esm2020/lib/forms/color-indicator/color-indicator.component.mjs +68 -0
- package/esm2020/lib/forms/color-picker/color-helper.mjs +121 -0
- package/esm2020/lib/forms/color-picker/color-picker.component.mjs +273 -0
- package/esm2020/lib/forms/container-host.mjs +27 -0
- package/esm2020/lib/forms/date-picker/date-picker.component.mjs +199 -0
- package/esm2020/lib/forms/date-range-picker/date-range-picker.component.mjs +224 -0
- package/esm2020/lib/forms/forms.module.mjs +146 -0
- package/esm2020/lib/forms/radio/radio.component.mjs +346 -0
- package/esm2020/lib/forms/segment/segment-control/segment-control.component.mjs +52 -0
- package/esm2020/lib/forms/segment/segment.component.mjs +109 -0
- package/esm2020/lib/forms/select/chip-text.pipe.mjs +34 -0
- package/esm2020/lib/forms/select/select-option/select-option.component.mjs +22 -0
- package/esm2020/lib/forms/select/select.component.mjs +257 -0
- package/esm2020/lib/forms/slider/slider.component.mjs +110 -0
- package/esm2020/lib/forms/switch/switch.component.mjs +120 -0
- package/esm2020/lib/forms/text-area/text-area.component.mjs +180 -0
- package/esm2020/lib/forms/text-editor/text-editor.component.mjs +286 -0
- package/esm2020/lib/forms/text-input/text-input.component.mjs +183 -0
- package/esm2020/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +89 -0
- package/esm2020/lib/forms/time-picker/time-picker.component.mjs +188 -0
- package/esm2020/lib/forms/unique-selection-dispatcher.mjs +39 -0
- package/esm2020/lib/forms/value-accessor-base.mjs +41 -0
- package/esm2020/lib/layout/layout.module.mjs +18 -0
- package/esm2020/lib/wrappers/flatpickr/flatpickr.component.mjs +59 -0
- package/fesm2015/{festo-ui-angular.js → festo-ui-angular.mjs} +317 -521
- package/fesm2015/festo-ui-angular.mjs.map +1 -0
- package/fesm2020/festo-ui-angular.mjs +5383 -0
- package/fesm2020/festo-ui-angular.mjs.map +1 -0
- package/package.json +31 -16
- package/scss/base/components/breadcrumb/breadcrumb.component.scss +0 -1
- package/scss/base/components/modals/prompt/prompt.component.scss +0 -1
- package/scss/base/components/popovers/legend/legend.component.scss +2 -2
- package/scss/base/components/popovers/popover/styles.scss +3 -3
- package/scss/base/components/popovers/popover-content/popover-content.component.scss +1 -1
- package/scss/base/components/scroll/scroll-story-helper.scss +1 -3
- package/scss/base/components/snackbar/snackbar.component.scss +1 -1
- package/scss/base/components/stepper/stepper.component.scss +16 -15
- package/scss/base/forms/color-picker/color-picker.component.scss +12 -12
- package/scss/base/forms/date-picker/date-picker.component.scss +1 -1
- package/scss/base/forms/date-range-picker/date-range-picker.component.scss +1 -1
- package/scss/base/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.scss +1 -1
- package/scss/styles.scss +2 -2
- package/bundles/festo-ui-angular.umd.js +0 -6429
- package/bundles/festo-ui-angular.umd.js.map +0 -1
- package/esm2015/festo-ui-angular.js +0 -5
- package/esm2015/festo-ui-angular.js.map +0 -1
- package/esm2015/index.js +0 -18
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +0 -27
- package/esm2015/lib/components/breadcrumb/breadcrumb.component.js.map +0 -1
- package/esm2015/lib/components/buttons/button/button.component.js +0 -46
- package/esm2015/lib/components/buttons/button/button.component.js.map +0 -1
- package/esm2015/lib/components/buttons/link-button/link-button.component.js +0 -38
- package/esm2015/lib/components/buttons/link-button/link-button.component.js.map +0 -1
- package/esm2015/lib/components/chips/chip/chip.component.js +0 -42
- package/esm2015/lib/components/chips/chip/chip.component.js.map +0 -1
- package/esm2015/lib/components/chips/chip-container/chip-container.component.js +0 -21
- package/esm2015/lib/components/chips/chip-container/chip-container.component.js.map +0 -1
- package/esm2015/lib/components/click-outside.directive.js +0 -28
- package/esm2015/lib/components/click-outside.directive.js.map +0 -1
- package/esm2015/lib/components/components.module.js +0 -155
- package/esm2015/lib/components/components.module.js.map +0 -1
- package/esm2015/lib/components/loading-indicator/loading-indicator.component.js +0 -21
- package/esm2015/lib/components/loading-indicator/loading-indicator.component.js.map +0 -1
- package/esm2015/lib/components/modals/alert/alert.component.js +0 -57
- package/esm2015/lib/components/modals/alert/alert.component.js.map +0 -1
- package/esm2015/lib/components/modals/confirm/confirm.component.js +0 -73
- package/esm2015/lib/components/modals/confirm/confirm.component.js.map +0 -1
- package/esm2015/lib/components/modals/index.js +0 -2
- package/esm2015/lib/components/modals/index.js.map +0 -1
- package/esm2015/lib/components/modals/modal.service.js +0 -91
- package/esm2015/lib/components/modals/modal.service.js.map +0 -1
- package/esm2015/lib/components/modals/modals.module.js +0 -28
- package/esm2015/lib/components/modals/modals.module.js.map +0 -1
- package/esm2015/lib/components/modals/prompt/prompt.component.js +0 -110
- package/esm2015/lib/components/modals/prompt/prompt.component.js.map +0 -1
- package/esm2015/lib/components/pagination/pagination.component.js +0 -60
- package/esm2015/lib/components/pagination/pagination.component.js.map +0 -1
- package/esm2015/lib/components/popovers/legend/legend.component.js +0 -46
- package/esm2015/lib/components/popovers/legend/legend.component.js.map +0 -1
- package/esm2015/lib/components/popovers/legend/legend.directive.js +0 -31
- package/esm2015/lib/components/popovers/legend/legend.directive.js.map +0 -1
- package/esm2015/lib/components/popovers/popover/popover.component.js +0 -35
- package/esm2015/lib/components/popovers/popover/popover.component.js.map +0 -1
- package/esm2015/lib/components/popovers/popover-content/popover-content.component.js +0 -86
- package/esm2015/lib/components/popovers/popover-content/popover-content.component.js.map +0 -1
- package/esm2015/lib/components/popovers/popover-content/popover-content.directive.js +0 -39
- package/esm2015/lib/components/popovers/popover-content/popover-content.directive.js.map +0 -1
- package/esm2015/lib/components/popovers/popover-menu/popover-menu.component.js +0 -72
- package/esm2015/lib/components/popovers/popover-menu/popover-menu.component.js.map +0 -1
- package/esm2015/lib/components/popovers/popover-ref.js +0 -25
- package/esm2015/lib/components/popovers/popover-ref.js.map +0 -1
- package/esm2015/lib/components/popovers/popover.defaults.js +0 -60
- package/esm2015/lib/components/popovers/popover.defaults.js.map +0 -1
- package/esm2015/lib/components/popovers/popover.models.js +0 -23
- package/esm2015/lib/components/popovers/popover.models.js.map +0 -1
- package/esm2015/lib/components/popovers/popover.service.js +0 -117
- package/esm2015/lib/components/popovers/popover.service.js.map +0 -1
- package/esm2015/lib/components/popovers/tooltip/tooltip.directive.js +0 -96
- package/esm2015/lib/components/popovers/tooltip/tooltip.directive.js.map +0 -1
- package/esm2015/lib/components/progress/progress.component.js +0 -23
- package/esm2015/lib/components/progress/progress.component.js.map +0 -1
- package/esm2015/lib/components/scroll/index.js +0 -2
- package/esm2015/lib/components/scroll/index.js.map +0 -1
- package/esm2015/lib/components/scroll/scrollable.directive.js +0 -73
- package/esm2015/lib/components/scroll/scrollable.directive.js.map +0 -1
- package/esm2015/lib/components/search-input/search-input.component.js +0 -155
- package/esm2015/lib/components/search-input/search-input.component.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar-container.component.js +0 -26
- package/esm2015/lib/components/snackbar/snackbar-container.component.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar-container.directive.js +0 -83
- package/esm2015/lib/components/snackbar/snackbar-container.directive.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar.component.js +0 -85
- package/esm2015/lib/components/snackbar/snackbar.component.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar.models.js +0 -2
- package/esm2015/lib/components/snackbar/snackbar.models.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar.module.js +0 -26
- package/esm2015/lib/components/snackbar/snackbar.module.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar.service.js +0 -23
- package/esm2015/lib/components/snackbar/snackbar.service.js.map +0 -1
- package/esm2015/lib/components/stepper/stepper.component.js +0 -28
- package/esm2015/lib/components/stepper/stepper.component.js.map +0 -1
- package/esm2015/lib/components/table-header-cell/table-header-cell.directive.js +0 -58
- package/esm2015/lib/components/table-header-cell/table-header-cell.directive.js.map +0 -1
- package/esm2015/lib/components/tabs/tab-pane/tab-pane.component.js +0 -35
- package/esm2015/lib/components/tabs/tab-pane/tab-pane.component.js.map +0 -1
- package/esm2015/lib/components/tabs/tabs.component.js +0 -362
- package/esm2015/lib/components/tabs/tabs.component.js.map +0 -1
- package/esm2015/lib/content/content.module.js +0 -24
- package/esm2015/lib/content/content.module.js.map +0 -1
- package/esm2015/lib/content/icon/icon.component.js +0 -23
- package/esm2015/lib/content/icon/icon.component.js.map +0 -1
- package/esm2015/lib/festo-angular.module.js +0 -58
- package/esm2015/lib/festo-angular.module.js.map +0 -1
- package/esm2015/lib/forms/checkbox/checkbox.component.js +0 -156
- package/esm2015/lib/forms/checkbox/checkbox.component.js.map +0 -1
- package/esm2015/lib/forms/color-indicator/color-indicator.component.js +0 -72
- package/esm2015/lib/forms/color-indicator/color-indicator.component.js.map +0 -1
- package/esm2015/lib/forms/color-picker/color-helper.js +0 -121
- package/esm2015/lib/forms/color-picker/color-helper.js.map +0 -1
- package/esm2015/lib/forms/color-picker/color-picker.component.js +0 -280
- package/esm2015/lib/forms/color-picker/color-picker.component.js.map +0 -1
- package/esm2015/lib/forms/container-host.js +0 -27
- package/esm2015/lib/forms/container-host.js.map +0 -1
- package/esm2015/lib/forms/date-picker/date-picker.component.js +0 -205
- package/esm2015/lib/forms/date-picker/date-picker.component.js.map +0 -1
- package/esm2015/lib/forms/date-range-picker/date-range-picker.component.js +0 -230
- package/esm2015/lib/forms/date-range-picker/date-range-picker.component.js.map +0 -1
- package/esm2015/lib/forms/forms.module.js +0 -146
- package/esm2015/lib/forms/forms.module.js.map +0 -1
- package/esm2015/lib/forms/radio/radio.component.js +0 -353
- package/esm2015/lib/forms/radio/radio.component.js.map +0 -1
- package/esm2015/lib/forms/segment/segment-control/segment-control.component.js +0 -58
- package/esm2015/lib/forms/segment/segment-control/segment-control.component.js.map +0 -1
- package/esm2015/lib/forms/segment/segment.component.js +0 -116
- package/esm2015/lib/forms/segment/segment.component.js.map +0 -1
- package/esm2015/lib/forms/select/chip-text.pipe.js +0 -34
- package/esm2015/lib/forms/select/chip-text.pipe.js.map +0 -1
- package/esm2015/lib/forms/select/select-option/select-option.component.js +0 -29
- package/esm2015/lib/forms/select/select-option/select-option.component.js.map +0 -1
- package/esm2015/lib/forms/select/select.component.js +0 -265
- package/esm2015/lib/forms/select/select.component.js.map +0 -1
- package/esm2015/lib/forms/slider/slider.component.js +0 -116
- package/esm2015/lib/forms/slider/slider.component.js.map +0 -1
- package/esm2015/lib/forms/switch/switch.component.js +0 -127
- package/esm2015/lib/forms/switch/switch.component.js.map +0 -1
- package/esm2015/lib/forms/text-area/text-area.component.js +0 -186
- package/esm2015/lib/forms/text-area/text-area.component.js.map +0 -1
- package/esm2015/lib/forms/text-editor/text-editor.component.js +0 -294
- package/esm2015/lib/forms/text-editor/text-editor.component.js.map +0 -1
- package/esm2015/lib/forms/text-input/text-input.component.js +0 -189
- package/esm2015/lib/forms/text-input/text-input.component.js.map +0 -1
- package/esm2015/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.js +0 -103
- package/esm2015/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.js.map +0 -1
- package/esm2015/lib/forms/time-picker/time-picker.component.js +0 -194
- package/esm2015/lib/forms/time-picker/time-picker.component.js.map +0 -1
- package/esm2015/lib/forms/unique-selection-dispatcher.js +0 -39
- package/esm2015/lib/forms/unique-selection-dispatcher.js.map +0 -1
- package/esm2015/lib/forms/value-accessor-base.js +0 -41
- package/esm2015/lib/forms/value-accessor-base.js.map +0 -1
- package/esm2015/lib/layout/layout.module.js +0 -18
- package/esm2015/lib/layout/layout.module.js.map +0 -1
- package/esm2015/lib/wrappers/flatpickr/flatpickr.component.js +0 -63
- package/esm2015/lib/wrappers/flatpickr/flatpickr.component.js.map +0 -1
- package/fesm2015/festo-ui-angular.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"festo-ui-angular.umd.js","sources":["../../../../libs/angular/src/lib/components/buttons/button/button.component.ts","../../../../libs/angular/src/lib/components/buttons/button/button.component.html","../../../../libs/angular/src/lib/components/buttons/link-button/link-button.component.ts","../../../../libs/angular/src/lib/components/buttons/link-button/link-button.component.html","../../../../libs/angular/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/angular/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../libs/angular/src/lib/components/loading-indicator/loading-indicator.component.ts","../../../../libs/angular/src/lib/components/loading-indicator/loading-indicator.component.html","../../../../libs/angular/src/lib/components/chips/chip-container/chip-container.component.ts","../../../../libs/angular/src/lib/components/chips/chip-container/chip-container.component.html","../../../../libs/angular/src/lib/components/chips/chip/chip.component.ts","../../../../libs/angular/src/lib/components/chips/chip/chip.component.html","../../../../libs/angular/src/lib/components/table-header-cell/table-header-cell.directive.ts","../../../../libs/angular/src/lib/components/stepper/stepper.component.ts","../../../../libs/angular/src/lib/components/stepper/stepper.component.html","../../../../libs/angular/src/lib/components/popovers/popover.models.ts","../../../../libs/angular/src/lib/components/popovers/popover-ref.ts","../../../../libs/angular/src/lib/components/popovers/popover/popover.component.ts","../../../../libs/angular/src/lib/components/popovers/popover/popover.component.html","../../../../libs/angular/src/lib/components/popovers/popover.defaults.ts","../../../../libs/angular/src/lib/components/popovers/popover.service.ts","../../../../libs/angular/src/lib/components/popovers/popover-menu/popover-menu.component.ts","../../../../libs/angular/src/lib/components/popovers/popover-menu/popover-menu.component.html","../../../../libs/angular/src/lib/components/popovers/tooltip/tooltip.directive.ts","../../../../libs/angular/src/lib/components/popovers/popover-content/popover-content.component.ts","../../../../libs/angular/src/lib/components/popovers/popover-content/popover-content.component.html","../../../../libs/angular/src/lib/components/popovers/popover-content/popover-content.directive.ts","../../../../libs/angular/src/lib/components/popovers/legend/legend.component.ts","../../../../libs/angular/src/lib/components/popovers/legend/legend.component.html","../../../../libs/angular/src/lib/components/popovers/legend/legend.directive.ts","../../../../libs/angular/src/lib/components/progress/progress.component.ts","../../../../libs/angular/src/lib/components/progress/progress.component.html","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/angular/src/lib/components/tabs/tab-pane/tab-pane.component.ts","../../../../libs/angular/src/lib/components/tabs/tab-pane/tab-pane.component.html","../../../../libs/angular/src/lib/components/tabs/tabs.component.ts","../../../../libs/angular/src/lib/components/tabs/tabs.component.html","../../../../libs/angular/src/lib/components/pagination/pagination.component.ts","../../../../libs/angular/src/lib/components/pagination/pagination.component.html","../../../../libs/angular/src/lib/components/scroll/scrollable.directive.ts","../../../../libs/angular/src/lib/components/click-outside.directive.ts","../../../../libs/angular/src/lib/components/search-input/search-input.component.ts","../../../../libs/angular/src/lib/components/search-input/search-input.component.html","../../../../libs/angular/src/lib/components/components.module.ts","../../../../libs/angular/src/lib/forms/checkbox/checkbox.component.ts","../../../../libs/angular/src/lib/forms/checkbox/checkbox.component.html","../../../../libs/angular/src/lib/forms/switch/switch.component.ts","../../../../libs/angular/src/lib/forms/switch/switch.component.html","../../../../libs/angular/src/lib/forms/unique-selection-dispatcher.ts","../../../../libs/angular/src/lib/forms/radio/radio.component.ts","../../../../libs/angular/src/lib/forms/radio/radio.component.html","../../../../libs/angular/src/lib/forms/select/select-option/select-option.component.ts","../../../../libs/angular/src/lib/forms/select/select-option/select-option.component.html","../../../../libs/angular/src/lib/forms/select/chip-text.pipe.ts","../../../../libs/angular/src/lib/forms/select/select.component.ts","../../../../libs/angular/src/lib/forms/select/select.component.html","../../../../libs/angular/src/lib/forms/text-input/text-input.component.ts","../../../../libs/angular/src/lib/forms/text-input/text-input.component.html","../../../../libs/angular/src/lib/forms/text-area/text-area.component.ts","../../../../libs/angular/src/lib/forms/text-area/text-area.component.html","../../../../libs/angular/src/lib/forms/color-picker/color-helper.ts","../../../../libs/angular/src/lib/forms/color-picker/color-picker.component.ts","../../../../libs/angular/src/lib/forms/color-picker/color-picker.component.html","../../../../libs/angular/src/lib/forms/slider/slider.component.ts","../../../../libs/angular/src/lib/forms/slider/slider.component.html","../../../../libs/angular/src/lib/forms/color-indicator/color-indicator.component.ts","../../../../libs/angular/src/lib/forms/color-indicator/color-indicator.component.html","../../../../libs/angular/src/lib/forms/value-accessor-base.ts","../../../../libs/angular/src/lib/forms/segment/segment-control/segment-control.component.ts","../../../../libs/angular/src/lib/forms/segment/segment-control/segment-control.component.html","../../../../libs/angular/src/lib/forms/segment/segment.component.ts","../../../../libs/angular/src/lib/forms/segment/segment.component.html","../../../../libs/angular/src/lib/wrappers/flatpickr/flatpickr.component.ts","../../../../libs/angular/src/lib/wrappers/flatpickr/flatpickr.component.html","../../../../libs/angular/src/lib/forms/date-picker/date-picker.component.ts","../../../../libs/angular/src/lib/forms/date-picker/date-picker.component.html","../../../../libs/angular/src/lib/forms/date-range-picker/date-range-picker.component.ts","../../../../libs/angular/src/lib/forms/date-range-picker/date-range-picker.component.html","../../../../libs/angular/src/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.ts","../../../../libs/angular/src/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.html","../../../../libs/angular/src/lib/forms/time-picker/time-picker.component.ts","../../../../libs/angular/src/lib/forms/time-picker/time-picker.component.html","../../../../libs/angular/src/lib/forms/text-editor/text-editor.component.ts","../../../../libs/angular/src/lib/forms/text-editor/text-editor.component.html","../../../../libs/angular/src/lib/forms/container-host.ts","../../../../libs/angular/src/lib/forms/forms.module.ts","../../../../libs/angular/src/lib/components/modals/alert/alert.component.ts","../../../../libs/angular/src/lib/components/modals/alert/alert.component.html","../../../../libs/angular/src/lib/components/modals/confirm/confirm.component.ts","../../../../libs/angular/src/lib/components/modals/confirm/confirm.component.html","../../../../libs/angular/src/lib/components/modals/prompt/prompt.component.ts","../../../../libs/angular/src/lib/components/modals/prompt/prompt.component.html","../../../../libs/angular/src/lib/components/modals/modals.module.ts","../../../../libs/angular/src/lib/components/snackbar/snackbar.component.ts","../../../../libs/angular/src/lib/components/snackbar/snackbar.component.html","../../../../libs/angular/src/lib/components/snackbar/snackbar.service.ts","../../../../libs/angular/src/lib/components/snackbar/snackbar-container.directive.ts","../../../../libs/angular/src/lib/components/snackbar/snackbar-container.component.ts","../../../../libs/angular/src/lib/components/snackbar/snackbar-container.component.html","../../../../libs/angular/src/lib/components/snackbar/snackbar.module.ts","../../../../libs/angular/src/lib/content/icon/icon.component.ts","../../../../libs/angular/src/lib/content/icon/icon.component.html","../../../../libs/angular/src/lib/content/content.module.ts","../../../../libs/angular/src/lib/layout/layout.module.ts","../../../../libs/angular/src/lib/festo-angular.module.ts","../../../../libs/angular/src/lib/components/modals/modal.service.ts","../../../../libs/angular/src/index.ts","../../../../libs/angular/src/festo-ui-angular.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ViewEncapsulation, ContentChild, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'fng-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonComponent {\n @Input() text: string;\n @Input() icon: string;\n @Input() disabled = false;\n @Input() primary = false;\n @Input() iconOnly = false;\n @Input() large = false;\n @Output() fngClick = new EventEmitter<any>();\n @ContentChild('content') content: ElementRef;\n\n onClick(event: any) {\n if (!this.disabled) {\n this.fngClick.emit(event);\n }\n }\n}\n","<button (click)=\"onClick($event)\"\n [ngClass]=\"{\n 'fwe-btn': true,\n 'fng-button': true,\n 'fwe-btn-icon': iconOnly,\n 'fwe-disabled': disabled,\n 'fwe-btn-hero': primary,\n 'fwe-btn-lg': large\n }\"\n [disabled]=\"disabled\">\n <i *ngIf=\"icon\" [class]=\"'fwe-icon fwe-icon-' + icon\"></i>\n <div *ngIf=\"!iconOnly\" class=\"fng-button-text\">\n <ng-content></ng-content>\n <span *ngIf=\"!content\">{{text}}</span>\n </div>\n</button>","import { Component, Input, Output, EventEmitter, ViewEncapsulation, ContentChild, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'fng-link-button',\n templateUrl: './link-button.component.html',\n styleUrls: ['./link-button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class LinkButtonComponent {\n @Input() text: string;\n @Input() icon: string;\n @Input() disabled = false;\n @Input() iconOnly = false;\n @Output() fngClick = new EventEmitter<any>();\n @ContentChild('content') content: ElementRef;\n\n onClick(event: any) {\n this.fngClick.emit(event);\n }\n}\n","<button (click)=\"onClick($event)\"\n [ngClass]=\"{\n 'fwe-btn': true,\n 'fwe-btn-link': true,\n 'fwe-disabled': disabled\n }\" [disabled]=\"disabled\">\n <i *ngIf=\"icon\" [class]=\"'fwe-icon fwe-icon-' + icon\"></i>\n <ng-content *ngIf=\"!iconOnly\"></ng-content>\n <span *ngIf=\"!content\">{{text}}</span>\n</button>","import { Component, Input, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fng-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class BreadcrumbComponent {\n @Input() useRouterLink = false;\n @Input() locations: { label: string, url: string }[];\n @Output() navigate = new EventEmitter<string>();\n}\n","<div class=\"fwe-breadcrumb\">\n <ng-container *ngFor=\"let location of locations; let i = index\">\n <a *ngIf=\"useRouterLink\" class=\"fng-breadcrumb-location\" [routerLink]=\"location.url\">{{ location.label }}</a>\n <a *ngIf=\"!useRouterLink\" class=\"fng-breadcrumb-location\" (click)=\"navigate.emit(location.url)\">{{ location.label }}</a>\n <i class=\"fwe-icon fwe-icon-arrows-right-2\" *ngIf=\"i + 1 < locations.length\"></i>\n </ng-container>\n</div>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fng-loading-indicator',\n templateUrl: './loading-indicator.component.html',\n styleUrls: ['./loading-indicator.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class LoadingIndicatorComponent {\n @Input() size: 'large' | 'medium' | 'small' = 'large';\n}\n","<div class=\"fng-waiting-container\">\n <div class=\"fwe-waiting-indicator\"\n [class.fwe-waiting-indicator-md]=\"size === 'medium'\"\n [class.fwe-waiting-indicator-sm]=\"size === 'small'\">\n <div class=\"fwe-waiting-circle-1\"></div>\n <div class=\"fwe-waiting-circle-2\"></div>\n <div class=\"fwe-waiting-circle-3\"></div>\n </div>\n <ng-content></ng-content>\n</div>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fng-chip-container',\n templateUrl: './chip-container.component.html',\n styleUrls: ['./chip-container.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ChipContainerComponent {\n @Input() large = false;\n}\n","<div class=\"fwe-chip-container\" [class.fwe-chip-container-lg]=large>\n <ng-content></ng-content>\n</div>","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\nexport enum ChipType {\n Choise = 'CHOISE',\n Category = 'CATEGORY',\n Filter = 'FILTER',\n Action = 'ACTION',\n Readonly = 'READONLY'\n}\n\n@Component({\n selector: 'fng-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ChipComponent {\n ChipType = ChipType;\n\n @Input() type: ChipType = ChipType.Choise;\n @Input() selected = false;\n @Input() disabled = false;\n @Input() icon: string;\n @Input() large = false;\n}\n","<div [ngClass]=\"{\n 'fwe-chip': true,\n 'fwe-selected': selected,\n 'fwe-disabled': disabled,\n 'fwe-chip-lg': large,\n 'fwe-category': type === ChipType.Category,\n 'fwe-filter': type === ChipType.Filter,\n 'fwe-readonly': type === ChipType.Readonly \n}\">\n <i *ngIf=\"icon\" [class]=\"'fwe-icon fwe-icon-' + icon\"></i>\n <ng-content></ng-content>\n</div>","import { Directive, Input, Output, EventEmitter } from '@angular/core';\n\nexport interface TableColumnOrder {\n orderBy?: string;\n ascending: boolean;\n}\n\n@Directive({\n selector: '[fngTh]',\n host: {\n '[class.fwe-table-order]': 'order != null',\n '[class.fwe-active]': 'active',\n '[class.fwe-table-order-descending]': 'orderDescending',\n '[attr.abbr]': 'abbr',\n '[attr.colspan]': 'colspan',\n '[attr.headers]': 'headers',\n '[attr.rowspan]': 'rowspan',\n '[attr.scope]': 'scope',\n '(click)': 'onChangeOrder()'\n }\n})\nexport class TableHeaderCellDirective {\n @Input() order: TableColumnOrder;\n @Input() fngTh: string;\n\n @Output() changeOrder = new EventEmitter<string>();\n\n /* Attributes */\n @Input() abbr: string;\n @Input() colspan: number;\n @Input() headers: string;\n @Input() rowspan: number;\n @Input() scope: string;\n\n get active(): boolean {\n if (this.order == null) {\n return false;\n }\n\n if (this.order.orderBy == null || this.fngTh == null) {\n return false;\n }\n\n return this.order.orderBy === this.fngTh;\n }\n\n get orderDescending(): boolean {\n return this.active && !this.order.ascending;\n }\n\n onChangeOrder() {\n this.changeOrder.emit(this.fngTh);\n }\n}\n","import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\n\n/**\n * Contains all properties of a wizard step.\n */\nexport interface WizardStep {\n /**\n * The name of the step.\n */\n name: string;\n}\n\n/**\n * A component that shows steps of a process.\n * For example useful in wizard dialogs.\n */\n@Component({\n selector: 'fng-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class StepperComponent {\n /**\n * The steps.\n */\n @Input() steps: WizardStep[];\n\n /**\n * The current step index.\n */\n @Input() stepIndex: number;\n\n /**\n * When true the wizard will change to error mode.\n */\n @Input() error: boolean;\n}\n","<div class=\"fng-stepper\" [class.fng-stepper-error]=\"error\">\n <div *ngFor=\"let step of steps; index as i; first as isFirst\"\n class=\"fng-step-container\"\n [class.fng-step-active]=\"i === stepIndex\"\n [class.fng-step-done]=\"i < stepIndex\"\n [class.fng-step-first]=\"isFirst\">\n <div *ngIf=\"!isFirst\" class=\"fng-step-connector\"></div>\n <div class=\"fng-step\">\n <div *ngIf=\"i >= stepIndex\">{{i + 1}}</div>\n <div class=\"fng-step-name fwe-d-none fwe-d-lg-block\">{{step.name}}</div>\n </div>\n </div>\n</div>\n","import { TemplateRef, Type } from '@angular/core';\n\nexport interface PopoverParams<T> {\n origin: HTMLElement;\n content: PopoverContent;\n options?: PopoverOptions;\n data?: T;\n}\n\nexport enum PopoverTypes {\n Tooltip = 'tooltip',\n Menu = 'menu',\n Legend = 'legend',\n Content = 'content'\n}\n\nexport enum PopoverPosition {\n Top = 'top',\n Bottom = 'bottom',\n Right = 'right',\n RightTop = 'right-top',\n Left = 'left',\n LeftTop = 'left-top'\n}\n\nexport interface PopoverOptions {\n type: PopoverTypes;\n width?: string | number;\n height?: string | number;\n maxWidth?: string | number;\n maxHeight?: string | number;\n minWidth?: string | number;\n minHeight?: string | number;\n hasBackdrop?: boolean;\n backdropClass?: string;\n positions?: PopoverPosition[];\n}\n\nexport interface PopoverCloseEvent<T = any> {\n type: 'backdropClick' | 'close';\n data: T;\n}\n\nexport enum PopoverContentTypes {\n Template = 'template',\n Component = 'component',\n Text = 'text'\n}\n\nexport type PopoverContent = TemplateRef<any> | Type<any> | string;\n\nexport interface PopoverMenu<T = any> {\n text: string;\n icon: string;\n action: string;\n data?: T;\n}\n\nexport interface PopoverMenuAction<T = any> {\n action: string;\n payload: T;\n}\n\nexport interface PopoverMenuActionAware<T = any> {\n onMenuAction(event: PopoverMenuAction<T>): void;\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { Subject } from 'rxjs';\n\nimport { PopoverContent, PopoverCloseEvent } from './popover.models';\n\nexport class PopoverRef<T = any> {\n private afterClosed = new Subject<PopoverCloseEvent<T>>();\n afterClosed$ = this.afterClosed.asObservable();\n\n constructor(public overlay: OverlayRef, public content: PopoverContent, public data: T) {\n overlay.backdropClick().subscribe(() => {\n this._close('backdropClick', null);\n });\n }\n\n close(data?: T) {\n this._close('close', data);\n }\n\n private _close(type: PopoverCloseEvent['type'], data?: T) {\n this.overlay.dispose();\n this.afterClosed.next({\n type,\n data\n });\n this.afterClosed.complete();\n }\n}\n","import { Component, OnInit, TemplateRef } from '@angular/core';\n\nimport { PopoverRef } from '../popover-ref';\nimport { PopoverContent, PopoverContentTypes } from '../popover.models';\n\n@Component({\n selector: 'fng-popover',\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.component.scss']\n})\nexport class PopoverComponent implements OnInit {\n type: PopoverContentTypes = PopoverContentTypes.Text;\n content: PopoverContent;\n context: any;\n\n constructor(private popoverRef: PopoverRef) {}\n\n ngOnInit() {\n this.content = this.popoverRef.content;\n if ('string' === typeof this.content) {\n this.type = PopoverContentTypes.Text;\n }\n\n if (this.content instanceof TemplateRef) {\n this.type = PopoverContentTypes.Template;\n this.context = {\n close: this.popoverRef.close.bind(this.popoverRef)\n };\n }\n }\n}\n","<div class=\"fwe-popover-container\">\n <div class=\"fwe-triangle\"></div>\n <div class=\"fwe-popover\">\n <ng-container [ngSwitch]=\"type\">\n <div class=\"fwe-popover-content\" *ngSwitchCase=\"'text'\" [innerHTML]=\"content\"></div>\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container *ngTemplateOutlet=\"content; context: context\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'component'\">\n <ng-container *ngComponentOutlet=\"content\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n","import { PopoverPosition, PopoverTypes } from './popover.models';\n\nexport const defaultPositions = {\n [PopoverPosition.Bottom]: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 22\n },\n [PopoverPosition.Top]: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -22\n },\n [PopoverPosition.Right]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 22\n },\n [PopoverPosition.Left]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -22\n },\n [PopoverPosition.LeftTop]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -22,\n offsetY: -32\n },\n [PopoverPosition.RightTop]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 22,\n offsetY: -32\n }\n};\nexport const defaultClasses = {\n [PopoverTypes.Tooltip]: 'fng-popover-tooltip',\n [PopoverTypes.Menu]: 'fng-popover-menu',\n [PopoverTypes.Legend]: 'fng-popover-legend',\n [PopoverTypes.Content]: 'fng-popover-content',\n [PopoverPosition.Bottom]: 'fng-popover-bottom',\n [PopoverPosition.Top]: 'fng-popover-top',\n [PopoverPosition.Right]: 'fng-popover-right',\n [PopoverPosition.Left]: 'fng-popover-left',\n [PopoverPosition.RightTop]: 'fng-popover-right-top',\n [PopoverPosition.LeftTop]: 'fng-popover-left-top'\n};\n","import { Injectable, Injector } from '@angular/core';\nimport {\n Overlay,\n ConnectionPositionPair,\n OverlayConfig,\n FlexibleConnectedPositionStrategy,\n NoopScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { PopoverRef } from './popover-ref';\nimport { PopoverComponent } from './popover/popover.component';\nimport { defaultPositions, defaultClasses } from './popover.defaults';\nimport { PopoverParams, PopoverOptions, PopoverTypes, PopoverPosition } from './popover.models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PopoverService {\n readonly options: PopoverOptions = {\n type: PopoverTypes.Tooltip,\n width: null,\n height: null,\n maxWidth: null,\n maxHeight: null,\n minWidth: null,\n minHeight: null,\n hasBackdrop: false,\n backdropClass: 'fng-popover-backdrop',\n positions: null\n };\n\n get defaultOptions() {\n return this.options;\n }\n\n constructor(private overlay: Overlay, private injector: Injector) {}\n\n open<T>({ origin, content, data, options }: PopoverParams<T>): PopoverRef<T> {\n if (null == options) {\n options = this.defaultOptions;\n }\n const overlayConfig = this.getOverlayConfig({ origin, options });\n const overlayRef = this.overlay.create(overlayConfig);\n const popoverRef = new PopoverRef<T>(overlayRef, content, data);\n const injector = this.createInjector(popoverRef, this.injector);\n\n overlayRef.attach(new ComponentPortal(PopoverComponent, null, injector));\n\n return popoverRef;\n }\n\n private getOverlayConfig({ origin, options }: { origin: HTMLElement; options: PopoverOptions }): OverlayConfig {\n const type = null != options.type ? options.type : this.defaultOptions.type;\n const positions = null != options.positions ? options.positions : this.defaultOptions.positions;\n return new OverlayConfig({\n width: null != options.width ? options.width : this.defaultOptions.width,\n height: null != options.height ? options.height : this.defaultOptions.height,\n maxWidth: null != options.maxWidth ? options.maxWidth : this.defaultOptions.maxWidth,\n maxHeight: null != options.maxHeight ? options.maxHeight : this.defaultOptions.maxHeight,\n minWidth: null != options.minWidth ? options.minWidth : this.defaultOptions.minWidth,\n minHeight: null != options.minHeight ? options.minHeight : this.defaultOptions.minHeight,\n positionStrategy: this.getOverlayPosition(origin, type, positions),\n scrollStrategy:\n null != this.overlay && null != this.overlay.scrollStrategies ? this.overlay.scrollStrategies.block() : ({} as NoopScrollStrategy),\n hasBackdrop: null != options.hasBackdrop ? options.hasBackdrop : this.defaultOptions.hasBackdrop,\n backdropClass: null != options.backdropClass ? options.backdropClass : this.defaultOptions.backdropClass\n });\n }\n\n private getOverlayPosition(origin: HTMLElement, type: PopoverTypes, positions: PopoverPosition[]): FlexibleConnectedPositionStrategy {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions(null != positions ? this.getPositions(type, positions) : this.getDefaultPositions(type))\n .withFlexibleDimensions(false)\n .withViewportMargin(16)\n .withPush(false);\n\n return positionStrategy;\n }\n\n private createInjector(popoverRef: PopoverRef, injector: Injector) {\n return Injector.create({\n parent: injector,\n providers: [{ provide: PopoverRef, useValue: popoverRef }]\n });\n }\n\n private getDefaultPositions(type: PopoverTypes): ConnectionPositionPair[] {\n const pairs: ConnectionPositionPair[] = [];\n let positions = [];\n const fn = (t: PopoverTypes, p: PopoverPosition[]) =>\n p.map(position => {\n pairs.push({\n ...defaultPositions[position as string],\n panelClass: [defaultClasses[t], defaultClasses[position]]\n });\n });\n switch (type) {\n case PopoverTypes.Tooltip:\n positions = [PopoverPosition.Bottom, PopoverPosition.Top];\n fn(PopoverTypes.Tooltip, positions);\n break;\n case PopoverTypes.Menu:\n positions = [PopoverPosition.Right, PopoverPosition.Left];\n fn(PopoverTypes.Menu, positions);\n break;\n case PopoverTypes.Legend:\n positions = [PopoverPosition.Bottom];\n fn(PopoverTypes.Legend, positions);\n break;\n case PopoverTypes.Content:\n positions = [PopoverPosition.Bottom];\n fn(PopoverTypes.Content, positions);\n break;\n default:\n break;\n }\n return pairs;\n }\n\n private getPositions(type: PopoverTypes, positions: PopoverPosition[]): ConnectionPositionPair[] {\n const pairs: ConnectionPositionPair[] = [];\n positions.map(position => {\n pairs.push({\n ...defaultPositions[position as string],\n panelClass: [defaultClasses[type], defaultClasses[position]]\n });\n });\n\n return pairs;\n }\n}\n","import { Component, TemplateRef, Input, Output, EventEmitter, ViewChild, ElementRef, HostListener } from '@angular/core';\n\nimport { PopoverService } from '../popover.service';\nimport { PopoverRef } from '../popover-ref';\nimport { PopoverTypes, PopoverMenu, PopoverMenuAction, PopoverPosition } from '../popover.models';\n\nexport interface PopoverMenuOptions {\n positions?: PopoverPosition[];\n}\n\n@Component({\n selector: 'fng-popover-menu',\n templateUrl: './popover-menu.component.html',\n styleUrls: ['./popover-menu.component.scss']\n})\nexport class PopoverMenuComponent {\n @Input() icon = 'fwe-icon-menu-more fwe-icon-lg';\n @Input() menu: PopoverMenu[] = [];\n @Input() options: PopoverMenuOptions = {};\n\n @Output() menuAction: EventEmitter<PopoverMenuAction> = new EventEmitter();\n\n @ViewChild('menuTpl') menuTpl: TemplateRef<any>;\n @ViewChild('origin') origin: ElementRef;\n\n private popoverRef: PopoverRef;\n private itemHeight = 36;\n\n constructor(private popoverService: PopoverService) {}\n\n show(event: Event, content: TemplateRef<any>, origin: HTMLElement) {\n event.stopPropagation();\n event.preventDefault();\n if (0 < this.menu.length) {\n this.popoverRef = this.popoverService.open({\n content,\n origin,\n options: {\n type: PopoverTypes.Menu,\n hasBackdrop: true,\n // height calc is needed for correct vertical positioning (+32 -> 2 * vertical padding 16px)\n height: +(this.itemHeight * this.menu.length + 32),\n positions: this.options != null && this.options.positions ? this.options.positions : null\n }\n });\n }\n }\n\n action(action: string, payload: any) {\n this.menuAction.emit({ action, payload });\n if (null != this.popoverRef) {\n this.popoverRef.close();\n }\n }\n\n @HostListener('document:keydown.escape')\n hide() {\n if (null != this.popoverRef) {\n this.popoverRef.close();\n }\n }\n}\n","<ng-container *ngIf=\"0 < menu.length\">\n <button type=\"button\" class=\"fwe-btn fwe-btn-link fwe-dark origin\" (click)=\"show($event, menuTpl, origin)\" #origin>\n <i class=\"fwe-icon fwe-pr-0\" [ngClass]=\"icon\"></i>\n </button>\n <ng-template #menuTpl>\n <ul class=\"fwe-list-group\">\n <li *ngFor=\"let item of menu\" class=\"fwe-list-group-item\">\n <button type=\"button\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"action(item?.action, item?.data)\">\n <i class=\"fwe-icon\" [ngClass]=\"item?.icon\"></i>\n <span>{{ item?.text }}</span>\n </button>\n </li>\n </ul>\n </ng-template>\n</ng-container>\n","import { Directive, HostListener, Input, ElementRef, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\n\nimport { PopoverService } from '../popover.service';\nimport { PopoverRef } from '../popover-ref';\nimport { PopoverTypes } from '../popover.models';\n\nexport interface TooltipOptions {\n maxWidth?: string | number;\n delay?: number;\n}\n\n@Directive({\n selector: '[fngTooltip]'\n})\nexport class TooltipDirective implements OnChanges, OnDestroy {\n @Input('fngTooltip') text = '';\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fngTooltipVisible') isVisible?: boolean = false;\n @Input() options: TooltipOptions = {\n maxWidth: 400,\n delay: 0\n };\n private origin: HTMLElement;\n private popoverRef: PopoverRef;\n private innerIsVisible = false;\n private timeoutHandle = null;\n\n constructor(private elmenetRef: ElementRef, private popoverService: PopoverService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.origin = this.elmenetRef.nativeElement;\n\n if (changes?.isVisible?.currentValue === true) {\n if (this.innerIsVisible === false) {\n this.open();\n }\n }\n if (changes?.isVisible?.currentValue === false) {\n if (this.innerIsVisible === true) {\n this.close();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n @HostListener('mouseenter')\n show() {\n if (this.options?.delay > 0) {\n this.timeoutHandle = setTimeout(() => {\n this.open();\n }, +this.options?.delay);\n } else {\n this.open();\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n if (this.timeoutHandle != null) {\n clearTimeout(this.timeoutHandle);\n }\n this.close();\n }\n\n private open() {\n if (this.innerIsVisible === false) {\n this.popoverRef = this.popoverService.open({\n content: this.text,\n origin: this.origin,\n options: {\n type: PopoverTypes.Tooltip,\n maxWidth: this.options.maxWidth\n }\n });\n this.innerIsVisible = true;\n }\n }\n\n private close() {\n if (this.popoverRef != null) {\n this.popoverRef.close();\n }\n this.innerIsVisible = false;\n }\n}\n","import { Component, ViewChild, TemplateRef, Input, Output, EventEmitter, OnDestroy, AfterViewInit, ElementRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { PopoverService } from '../popover.service';\nimport { PopoverRef } from '../popover-ref';\nimport { PopoverTypes, PopoverCloseEvent, PopoverPosition } from '../popover.models';\n\nexport interface PopoverContentOptions {\n positions?: PopoverPosition[];\n maxWidth?: string | number;\n minHeight?: string | number;\n}\n\nexport interface PopoverContentActions {\n close: () => void;\n}\n\n@Component({\n selector: 'fng-popover-content',\n templateUrl: './popover-content.component.html',\n styleUrls: ['./popover-content.component.scss']\n})\nexport class PopoverContentComponent implements AfterViewInit, OnDestroy {\n @Input() options: PopoverContentOptions = {};\n @Output() close: EventEmitter<PopoverCloseEvent> = new EventEmitter();\n @Output() actions: EventEmitter<PopoverContentActions> = new EventEmitter();\n @ViewChild('tpl') templateRef: TemplateRef<any>;\n @ViewChild('fngContent') contentRef: ElementRef;\n\n showDefault = false;\n offScreen = true;\n height = 16; // add default padding\n width = 16; // add default padding\n\n private closeSub: Subscription;\n private popoverRef: PopoverRef;\n\n constructor(private popoverService: PopoverService) {}\n\n ngOnDestroy(): void {\n if (this.closeSub) {\n this.closeSub.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n const parent: HTMLElement = this.templateRef.elementRef.nativeElement.parentElement;\n parent.childNodes.forEach((node: HTMLElement) => {\n if (null != node.dataset && undefined !== node.dataset.fngRoot) {\n this.width = this.width + node.getBoundingClientRect().width;\n this.height = this.height + node.getBoundingClientRect().height;\n }\n });\n }\n\n show(origin: HTMLElement) {\n this.offScreen = false;\n this.popoverRef = this.popoverService.open({\n content: this.templateRef,\n origin,\n options: {\n positions: null != this.options && this.options.positions ? this.options.positions : null,\n width: this.width,\n height: this.height,\n type: PopoverTypes.Content,\n hasBackdrop: true\n }\n });\n\n this.actions.emit({\n close: () => {\n this.hide();\n }\n });\n\n if (this.closeSub) {\n this.closeSub.unsubscribe();\n }\n this.closeSub = this.popoverRef.afterClosed$.pipe(take(1)).subscribe(event => {\n this.close.emit(event);\n });\n }\n\n hide() {\n if (null != this.popoverRef) {\n this.popoverRef.close();\n }\n }\n}\n","<div #default *ngIf=\"showDefault; else tpl\"></div>\n<ng-template #tpl>\n <div data-fng-root [class.fng-off-screen]=\"offScreen\">\n <div #fngContent class=\"fng-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","import { Directive, ElementRef, HostListener, OnInit, ContentChild } from '@angular/core';\n\nimport { PopoverContentComponent } from './popover-content.component';\n\n@Directive({\n selector: '[fngPopoverContent]'\n})\nexport class PopoverContentDirective implements OnInit {\n @ContentChild('fngComponent') component: PopoverContentComponent;\n private origin: HTMLElement;\n\n constructor(private elmenetRef: ElementRef) {}\n\n ngOnInit(): void {\n this.origin = this.elmenetRef.nativeElement;\n }\n\n @HostListener('click')\n show() {\n if (null != this.component) {\n this.component.show(this.origin);\n }\n }\n\n @HostListener('document:keydown.escape')\n hide() {\n if (null != this.component) {\n this.component.hide();\n }\n }\n}\n","import { Component, Input, ViewChild, TemplateRef } from '@angular/core';\nimport { PopoverRef } from '../popover-ref';\nimport { PopoverTypes } from '../popover.models';\nimport { PopoverService } from '../popover.service';\n\nexport interface PopoverLegendOptions {\n maxWidth?: string | number;\n}\n\nexport interface LegendItem {\n name: string;\n text: string;\n}\n\n@Component({\n selector: 'fng-legend',\n templateUrl: './legend.component.html',\n styleUrls: ['./legend.component.scss']\n})\nexport class LegendComponent {\n @Input() items: LegendItem[] = [];\n @Input() options: PopoverLegendOptions = {};\n @ViewChild('tpl') templateRef: TemplateRef<any>;\n private popoverRef: PopoverRef;\n\n constructor(private popoverService: PopoverService) {}\n\n show(origin: HTMLElement) {\n if (0 < this.items.length) {\n this.popoverRef = this.popoverService.open({\n content: this.templateRef,\n origin,\n options: {\n type: PopoverTypes.Legend,\n hasBackdrop: true\n }\n });\n }\n }\n\n hide() {\n this.popoverRef.close();\n }\n}\n","<ng-template #tpl>\n <dl *ngIf=\"0 < items.length\" class=\"fng-legend\">\n <div *ngFor=\"let item of items\" class=\"fng-legend-content\">\n <dt>{{ item?.name }}</dt>\n <dd>{{ item?.text }}</dd>\n </div>\n </dl>\n</ng-template>\n","import { Directive, ElementRef, ContentChild, HostListener, OnInit } from '@angular/core';\n\nimport { PopoverContentComponent } from '../popover-content/popover-content.component';\n\n@Directive({\n selector: '[fngLegend]'\n})\nexport class LegendDirective implements OnInit {\n @ContentChild('fngContent') ref: PopoverContentComponent;\n private origin: HTMLElement;\n\n constructor(private elmenetRef: ElementRef) {}\n\n ngOnInit(): void {\n this.origin = this.elmenetRef.nativeElement;\n }\n\n @HostListener('click')\n show() {\n if (null != this.ref) {\n this.ref.show(this.origin);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'fng-progress',\n templateUrl: './progress.component.html'\n})\nexport class ProgressComponent {\n @Input() progress: number;\n @Input() error: boolean;\n @Input() background: 'white' | 'background' | 'black' = 'white';\n}\n","<div class=\"fwe-progress\">\n <div\n class=\"fwe-progress-bar\"\n role=\"progressbar\"\n [style.width.%]=\"progress\"\n [class.fwe-bg-red]=\"error\"\n [class.fwe-progress-bar-black]=\"background === 'black'\"\n [class.fwe-progress-bar-background]=\"background === 'background'\"\n [attr.aria-valuenow]=\"progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n ></div>\n</div>\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'fng-tab-pane',\n templateUrl: './tab-pane.component.html',\n styleUrls: ['./tab-pane.component.scss']\n})\nexport class TabPaneComponent implements OnChanges {\n static nextId = 0;\n // @deprcated Input() id is not in use anymore but still exists for backwards compatiblity\n @Input() id: string;\n @Input() name: string;\n @Input() icon: string;\n @Input() active: boolean;\n @Input() isVisible: boolean;\n tabId: string;\n tabPaneId = `tab-panel-content-${++TabPaneComponent.nextId}`;\n\n private changesSubject = new Subject<boolean>();\n changes$ = this.changesSubject.asObservable();\n\n ngOnChanges(): void {\n this.changesSubject.next(true);\n }\n}\n","<div role=\"tabpanel\" [id]=\"tabPaneId\" [attr.aria-labelledby]=\"tabId\" [class.fng-show]=\"isVisible\" [class.fng-hide]=\"!isVisible\">\n <ng-content></ng-content>\n</div>\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TabPaneComponent } from './tab-pane/tab-pane.component';\n\nexport interface Tab {\n name: string;\n paneId: string;\n active?: boolean;\n icon?: string;\n}\n\n// fill: use the remaining space and add in same proportion to every tab item\n// equal: make all tab items same width (as the one with largest content)\nexport type TabItemAppearance = 'fill' | 'equal' | 'default';\n\n// legacy: recommended for desktop only applications\n// responsive: desktop, tablet, mobile with scrollable tabs\nexport type TabViewType = 'legacy' | 'responsive';\n\n// configuration options for legacy tab view type\nexport interface TabsConfiguration {\n tabBar?: {\n fullWidth?: boolean;\n };\n tabItems?: {\n appearance: TabItemAppearance;\n };\n}\n\n// provides details about the left and right edges of the tab element and the tab content element\n// these values are used to determine the visual position of the tab with respect of its parent container\nexport interface TabDimensions {\n rootLeft: number;\n rootRight: number;\n contentLeft: number;\n contentRight: number;\n}\n\nexport interface TabScrollAnimation {\n finalScrollPosition: number;\n scrollDelta: number;\n}\n\nexport interface TabScrollHorizontalEdges {\n left: number;\n right: number;\n}\n\n@Component({\n selector: 'fng-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TabsComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n static nextId = 0;\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fngTabsViewType') viewType: TabViewType = 'responsive';\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('fngTabsUseBottomDivider') showDivider: boolean = false;\n\n @Input() config: TabsConfiguration = null;\n @Output() fngTabChange = new EventEmitter<{ previous: string; current: string }>();\n\n @ContentChildren(TabPaneComponent) panes: QueryList<TabPaneComponent>;\n @ViewChild('scroller') scroller: ElementRef;\n @ViewChild('scrollAera') scrollAera: ElementRef;\n @ViewChild('scrollContent') scrollContent: ElementRef;\n\n componentId = `tabs-${++TabsComponent.nextId}`;\n tabs: Tab[] = [];\n useCompactDensity: boolean = true;\n private activeTab: Tab = null;\n private elemScroller: HTMLElement;\n private elemScrollArea: HTMLElement;\n private elemScrollContent: HTMLElement;\n private readonly injectedWindow: Window;\n private resizeObserver: ResizeObserver;\n private complete: Subject<boolean> = new Subject();\n\n constructor(\n private elRef: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n private renderer: Renderer2,\n private cd: ChangeDetectorRef\n ) {\n this.injectedWindow = this.document.defaultView;\n }\n\n ngAfterContentInit() {\n this.initTabs();\n if (null === this.activeTab) {\n this.panes.map((pane, i) => {\n if (0 === i) {\n pane.isVisible = true;\n }\n });\n } else {\n this.panes.find(pane => null != this.activeTab.paneId && pane.tabPaneId === this.activeTab.paneId).isVisible = true;\n }\n }\n\n ngAfterViewInit(): void {\n this.elemScroller = this.scroller?.nativeElement;\n this.elemScrollArea = this.scrollAera?.nativeElement;\n this.elemScrollContent = this.scrollContent?.nativeElement;\n const initialWidth = this.elemScrollArea?.offsetWidth;\n if (initialWidth > 768) {\n this.useCompactDensity = false;\n this.cd.detectChanges();\n }\n\n this.resizeObserver = new ResizeObserver(() => {\n const width = this.elemScrollArea.offsetWidth;\n if (width > 768 && this.useCompactDensity === true) {\n this.useCompactDensity = false;\n this.cd.detectChanges();\n } else if (width <= 768 && this.useCompactDensity === false) {\n this.useCompactDensity = true;\n this.cd.detectChanges();\n }\n });\n\n if (this.elemScrollArea != null) {\n this.resizeObserver.observe(this.elemScrollArea);\n }\n\n this.handleTabPaneChanges();\n }\n\n ngOnDestroy(): void {\n this.complete.next(true);\n this.complete.unsubscribe();\n }\n\n showTabPane(id: string) {\n const pane = this.panes.find(p => p.tabPaneId === id);\n if (null != pane) {\n this.panes.map(p => {\n p.isVisible = false;\n });\n pane.isVisible = true;\n\n this.tabs.map(tab => {\n if (tab.paneId !== pane.tabPaneId) {\n tab.active = false;\n } else {\n tab.active = true;\n }\n });\n this.fngTabChange.emit({\n previous: this.activeTab?.paneId,\n current: id\n });\n this.activeTab = this.tabs.find(tab => !!tab.active);\n }\n }\n\n handleTabScroll(event: any, index: number) {\n const scrollContentWidth = this.elemScrollContent.offsetWidth;\n const scrollAreaWidth = this.elemScrollArea.offsetWidth;\n\n // check if no scroll is needed\n if (scrollAreaWidth > scrollContentWidth) {\n return;\n }\n\n // check index\n if (!this.indexIsInRange(index)) {\n return;\n }\n\n // always scroll to 0 if scrolling to the first tab\n if (index === 0) {\n this.scrollTo(0);\n return;\n }\n\n // always scroll to the max value if scrolling to the last tab\n if (index === this.tabs.length - 1) {\n this.scrollTo(this.elemScrollContent.offsetWidth);\n return;\n }\n\n const currentTab: HTMLElement = event.target;\n this.scrollIntoView(index, currentTab);\n }\n\n private initTabs() {\n this.tabs = [];\n this.panes.map((pane, i) => {\n pane.tabId = this.componentId + '-tab-' + i;\n const tab: Tab = {\n name: null != pane.name ? pane.name : '',\n paneId: null != pane.tabPaneId ? pane.tabPaneId : null,\n icon: null != pane.icon ? pane.icon : null,\n active: null != pane.active ? pane.active : false\n };\n this.tabs.push(tab);\n });\n\n this.initActiveTab();\n this.cd.detectChanges();\n }\n\n private initActiveTab() {\n const activeTab: Tab = this.tabs.find((tab: Tab) => !!tab.active);\n if (!activeTab && 0 < this.tabs.length) {\n this.tabs[0] = { ...this.tabs[0], active: true };\n this.activeTab = this.tabs[0];\n } else {\n this.activeTab = activeTab;\n }\n }\n\n private handleTabPaneChanges() {\n // first subscribe to any changes in tab pane, so that the tabs in this view wiil be updated\n this.panes.forEach(pane => {\n pane.changes$.pipe(takeUntil(this.complete)).subscribe(() => {\n // on changes in a tab pane, we init the tabs again\n this.initTabs();\n });\n });\n }\n\n private scrollTo(scrollX: number) {\n const currentScrollX = this.getScrollPosition();\n const safeScrollX = this.clampScrollValue(scrollX);\n const scrollDelta = safeScrollX - currentScrollX;\n this.animate({\n finalScrollPosition: safeScrollX,\n scrollDelta\n });\n }\n\n private scrollIntoView(index: number, tab: HTMLElement) {\n const scrollPosition = this.getScrollPosition();\n const barWidth = this.elemScrollArea.offsetWidth;\n const tabDimensions = this.computeDimensions(tab);\n const nextIndex = this.findAdjacentTabIndexClosestToEdge(index, tabDimensions, scrollPosition, barWidth);\n\n if (!this.indexIsInRange(nextIndex)) {\n return;\n }\n\n const scrollIncrement = this.calculateScrollIncrement(index, nextIndex, scrollPosition, barWidth);\n this.incrementScroll(scrollIncrement);\n }\n\n private incrementScroll(scrollXIncrement: number) {\n // no scroll needed\n if (scrollXIncrement === 0) {\n return;\n }\n const scrollOperation = this.getIncrementScrollOperation(scrollXIncrement);\n this.animate(scrollOperation);\n }\n\n private animate(animation: TabScrollAnimation) {\n // no animation needed\n if (animation.scrollDelta === 0) {\n return;\n }\n\n this.stopScrollAnimation();\n\n // this animation uses the flip approach\n // https://aerotwist.com/blog/flip-your-animations/\n // https://css-tricks.com/animating-layouts-with-the-flip-technique/\n this.elemScrollArea.scrollLeft = animation.finalScrollPosition;\n this.setScrollContentStyleProperty('transform', `translateX(${animation.scrollDelta}px)`);\n // force repaint\n this.elemScrollArea.getBoundingClientRect();\n\n requestAnimationFrame(() => {\n this.renderer.addClass(this.elemScroller, 'fng-tab-scroller--animating');\n this.setScrollContentStyleProperty('transform', 'none');\n });\n }\n\n private stopScrollAnimation() {\n const currentScrollPosition = this.getAnimatingScrollPosition();\n this.renderer.removeClass(this.elemScroller, 'fng-tab-scroller--animating');\n this.setScrollContentStyleProperty('transform', 'translateX(0px)');\n this.elemScrollArea.scrollLeft = currentScrollPosition;\n }\n\n private getAnimatingScrollPosition(): number {\n const currentTranslateX = this.calculateCurrentTranslateX();\n const scrollLeft = this.elemScrollArea.scrollLeft;\n return scrollLeft - currentTranslateX;\n }\n\n private getIncrementScrollOperation(scrollX: number): TabScrollAnimation {\n const currentScrollX = this.getScrollPosition();\n const targetScrollX = scrollX + currentScrollX;\n const safeScrollX = this.clampScrollValue(targetScrollX);\n const scrollDelta = safeScrollX - currentScrollX;\n return {\n finalScrollPosition: safeScrollX,\n scrollDelta\n };\n }\n\n private clampScrollValue(scrollX: number): number {\n const edges = this.calculateScrollEdges();\n return Math.min(Math.max(edges.left, scrollX), edges.right);\n }\n\n private calculateScrollEdges(): TabScrollHorizontalEdges {\n const scrollContentWidth = this.elemScrollContent.offsetWidth;\n const scrollAreaWidth = this.elemScrollArea.offsetWidth;\n return {\n left: 0,\n right: scrollContentWidth - scrollAreaWidth\n };\n }\n\n private computeDimensions(tab: HTMLElement): TabDimensions {\n const rootWidth = tab.offsetWidth;\n const rootLeft = tab.offsetLeft;\n\n const tabContent: HTMLElement = tab.querySelector<HTMLElement>('.fng-tab-content');\n const contentWidth = tabContent.offsetWidth;\n const contentLeft = tabContent.offsetLeft;\n\n return {\n contentLeft: rootLeft + contentLeft,\n contentRight: rootLeft + contentLeft + contentWidth,\n rootLeft,\n rootRight: rootLeft + rootWidth\n };\n }\n\n private calculateScrollIncrement(index: number, nextIndex: number, scrollPosition: number, barWidth: number): number {\n const nextTab: HTMLElement = (this.elRef.nativeElement as HTMLElement).querySelector<HTMLElement>(\n `#${this.componentId}-tab-${nextIndex}`\n );\n const nextTabDimensions = this.computeDimensions(nextTab);\n const relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\n const relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\n const leftIncrement = relativeContentRight - 48;\n const rightIncrement = relativeContentLeft + 48;\n\n if (nextIndex < index) {\n return Math.min(leftIncrement, 0);\n }\n\n return Math.max(rightIncrement, 0);\n }\n\n private indexIsInRange(index: number) {\n return index >= 0 && index < this.tabs.length;\n }\n\n private getScrollPosition(): number {\n const currentTranslateX = this.calculateCurrentTranslateX();\n const scrollLeft = this.elemScrollArea.scrollLeft;\n\n return scrollLeft - currentTranslateX;\n }\n\n private calculateCurrentTranslateX(): number {\n const transformValue = this.getScrollContentStyleValue('transform');\n if (transformValue === 'none') {\n return 0;\n }\n\n // the transform value is in form of 'matrix(a, b, c, d, tx, ty)'\n // get all the parenthesized values\n const match = /\\((.+?)\\)/.exec(transformValue);\n if (!match) {\n return 0;\n }\n\n const matrixParams = match[1];\n // we need value of tx -> translateX\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [a, b, c, d, tx, ty] = matrixParams.split(',');\n return parseFloat(tx);\n }\n\n private getScrollContentStyleValue(propName: string) {\n return this.injectedWindow.getComputedStyle(this.elemScrollContent).getPropertyValue(propName);\n }\n\n private setScrollContentStyleProperty(propName: string, value: any) {\n this.renderer.setStyle(this.elemScrollContent, propName, value);\n }\n\n private findAdjacentTabIndexClosestToEdge(index: number, tabDimensions: TabDimensions, scrollPosition: number, barWidth: number): number {\n /**\n * tabs are laid out in the tab scroller like this:\n *\n * scroll position\n * +---+\n * | | bar width\n * | +-----------------------------------+\n * | | |\n * | v v\n * | +-----------------------------------+\n * v | tab scroller |\n * +------------+--------------+-------------------+\n * | tab | tab | tab |\n * +------------+--------------+-------------------+\n * | |\n * +-----------------------------------+\n *\n * to determine the next adjacent index, we look at the tab root left and\n * tab root right, both relative to the scroll position. if the tab root\n * left is less than 0, then we know it's out of view to the left. if the\n * tab root right minus the bar width is greater than 0, we know the tab is\n * out of view to the right. from there, we either increment or decrement\n * the index.\n */\n const relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\n const relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\n const relativeRootDelta = relativeRootLeft + relativeRootRight;\n const leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\n const rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\n\n if (leftEdgeIsCloser) {\n return index - 1;\n }\n\n if (rightEdgeIsCloser) {\n return index + 1;\n }\n\n return -1;\n }\n}\n","<ng-container *ngIf=\"viewType === 'legacy'\">\n <div class=\"fwe-legacy-tabs\">\n <ul\n role=\"tablist\"\n class=\"fwe-legacy-tab-bar\"\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\n >\n <li *ngFor=\"let tab of tabs; let i = index\" class=\"fwe-legacy-tab-item\" [class.fwe-active]=\"tab?.active\">\n <ng-container *ngIf=\"null == tab?.icon\">\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? 'true' : 'false'\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n >{{ tab.name }}</a\n >\n </ng-container>\n <ng-container *ngIf=\"null != tab?.icon\">\n <a\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? 'true' : 'false'\"\n role=\"tab\"\n class=\"fwe-legacy-tab-link\"\n (click)=\"showTabPane(tab.paneId)\"\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\n >\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\n <span>{{ tab.name }}</span>\n </a>\n </ng-container>\n </li>\n </ul>\n <div class=\"fwe-legacy-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"viewType !== 'legacy'\">\n <div class=\"fng-tab-bar\" role=\"tablist\">\n <div class=\"fng-tab-scroller\" #scroller>\n <div\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\n #scrollAera\n >\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\n <button\n *ngFor=\"let tab of tabs; let i = index\"\n role=\"tab\"\n class=\"fng-tab\"\n [id]=\"componentId + '-tab-' + i\"\n [attr.aria-controls]=\"tab.paneId\"\n [attr.aria-selected]=\"true === tab?.active ? 'true' : 'false'\"\n [tabindex]=\"i === 0 ? 0 : -1\"\n [class.fng-tab--active]=\"tab?.active\"\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\n >\n <span class=\"fng-tab-content\">\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\n </span>\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\n </span>\n </button>\n <div class=\"fng-tab-scroller-divider-line\"></div>\n </div>\n </div>\n </div>\n <div class=\"fng-tab-panel-content\">\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-template #tabPanelContent>\n <ng-content></ng-content>\n</ng-template>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\nexport enum PaginationType {\n Numeric = 'NUMERIC',\n Dots = 'DOTS'\n}\n\n@Component({\n selector: 'fng-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PaginationComponent {\n PaginationType = PaginationType;\n\n @Input() type: PaginationType = PaginationType.Numeric;\n @Input() pageCurrent = 0;\n @Input()\n set pageMax(value: number) {\n this.innerPageMax = value;\n this.dotArray = [...Array(value).fill(0).keys()];\n }\n get pageMax() {\n return this.innerPageMax;\n }\n\n @Output() changePage = new EventEmitter<number>();\n\n innerPageMax: number;\n dotArray: number[] = [];\n\n onBtnDown() {\n if (this.pageCurrent > 1) {\n this.pageCurrent--;\n this.changePage.emit(this.pageCurrent);\n }\n }\n\n onBtnUp() {\n if (this.pageCurrent < this.pageMax) {\n this.pageCurrent++;\n this.changePage.emit(this.pageCurrent);\n }\n }\n\n onDotClick(index: number) {\n this.pageCurrent = index + 1;\n this.changePage.emit(this.pageCurrent);\n }\n}\n","<ng-container *ngIf=\"type === PaginationType.Numeric\">\n <div class=\"fwe-pagination fwe-p-m\" [class.fwe-d-none]=\"pageMax < 2\">\n <button class=\"fwe-navigate-btn-down\" (click)=\"onBtnDown()\" [class.fwe-disabled]=\"pageCurrent <= 1\"></button>\n <span class=\"fwe-page-current\">{{ pageCurrent }}</span>\n <span class=\"fwe-page-max\">{{ pageMax }}</span>\n <button class=\"fwe-navigate-btn-up\" (click)=\"onBtnUp()\" [class.fwe-disabled]=\"pageCurrent >= pageMax\"></button>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"type === PaginationType.Dots\">\n <div class=\"fwe-p-m\" [class.fwe-d-none]=\"pageMax < 2\">\n <div class=\"fwe-pagination\">\n <span\n *ngFor=\"let index of dotArray\"\n class=\"fwe-page-dot\"\n [class.fwe-selected]=\"index + 1 === pageCurrent\"\n (click)=\"onDotClick(index)\"\n ></span>\n </div>\n </div>\n</ng-container>\n","import { Directive, ElementRef, OnChanges, SimpleChanges, Input, AfterViewInit, NgZone, Renderer2, OnDestroy } from '@angular/core';\nimport SimpleBar from 'simplebar';\n\nexport interface ScrollableAware extends AfterViewInit {\n scrollableViewReady: boolean;\n}\n\n@Directive({\n selector: '[fngScrollable]'\n})\nexport class ScrollableDirective implements OnChanges, OnDestroy {\n @Input('fngScrollableScrollbarMinSize') scrollbarMinSize: number = 25;\n @Input('fngScrollableViewReady') viewReady: boolean;\n\n private sb: SimpleBar;\n private isScrolling = false;\n private resizeObserver: ResizeObserver;\n\n constructor(private el: ElementRef, private ngZone: NgZone, private renderer: Renderer2) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.viewReady.currentValue === true) {\n this.initScrollbar();\n this.initResizeObserver();\n }\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.disconnect();\n }\n\n private initScrollbar() {\n const el: HTMLElement = this.el.nativeElement;\n // yes, we explict want to run outside angular to avoid unnecessary change detection cycles\n this.ngZone.runOutsideAngular(() => {\n this.sb = new SimpleBar(el, { scrollbarMinSize: this.scrollbarMinSize });\n this.sb.getScrollElement().addEventListener(\n 'scroll',\n this.delay(() => {\n // triggered on scroll stop\n this.isScrolling = false;\n }),\n false\n );\n });\n this.updateMaxWidth();\n }\n\n private initResizeObserver() {\n const el: HTMLElement = this.el.nativeElement;\n this.resizeObserver = new ResizeObserver(() => {\n this.updateMaxWidth();\n });\n this.resizeObserver.observe(el);\n }\n\n private updateMaxWidth() {\n const el: HTMLElement = this.el.nativeElement;\n const wrapper = el.querySelector('.simplebar-content-wrapper');\n const width = el.getBoundingClientRect().width;\n this.renderer.setStyle(wrapper, 'max-width', width + 'px');\n }\n\n private delay(callback: any) {\n let timer: number;\n return () => {\n if (!this.isScrolling) {\n // triggered on scroll start\n this.isScrolling = true;\n }\n\n window.clearTimeout(timer);\n timer = window.setTimeout(callback, 50);\n };\n }\n}\n","import { Directive, ElementRef, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[fngClickOutside]'\n})\nexport class ClickOutsideDirective {\n constructor(private elRef: ElementRef) {}\n\n @Output()\n public clickOutside = new EventEmitter();\n\n @HostListener('document:click', ['$event.target'])\n public onClick(targetElement: HTMLElement) {\n const inside = this.elRef.nativeElement.contains(targetElement);\n if (!inside) {\n this.clickOutside.emit(null);\n }\n }\n}\n","import { Component, Input, ViewChild, ElementRef, ViewEncapsulation, Output, EventEmitter, HostListener } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n/**\n * A custom form element for search inputs.\n */\n@Component({\n selector: 'fng-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SearchInputComponent {\n @ViewChild('inputElement')\n inputRef!: ElementRef<HTMLInputElement>;\n\n /**\n * the querrry was changed, update the suggetion list\n */\n @Output()\n readonly fngChange = new EventEmitter<string>();\n\n /**\n * Start search on this event\n */\n @Output()\n readonly fngSearch = new EventEmitter<string>();\n\n /**\n * The search input label.\n */\n @Input() label: string = '';\n\n /**\n * When true the control's disabled attribute is set\n * and it gets addeed the .disabled css class.\n */\n @Input()\n get disabled(): boolean {\n return this.innerDisabled;\n }\n set disabled(value: boolean) {\n this.innerDisabled = coerceBooleanProperty(value);\n }\n protected innerDisabled = false;\n\n innerValue: string = '';\n\n /**\n * The getter for value.\n */\n get value(): string {\n return this.innerValue;\n }\n\n /**\n * The setter for value.\n */\n @Input()\n set value(value: string) {\n if (value != null) {\n value = '' + value;\n }\n this.innerValue = value;\n }\n\n /**\n * The list of suggestions\n */\n @Input()\n set suggestions(value: string[]) {\n this.selectedSuggestionIndex = -1;\n this.innerSuggestions = value;\n }\n\n /**\n * The list of suggestions capped by 10 entries\n */\n get cappedSuggestions(): string[] {\n return this.innerSuggestions.slice(0, 10);\n }\n\n innerSuggestions: string[] = [];\n hideSuggestionList: boolean = false;\n\n // This is the index of the selected element in dhe suggestion list.\n selectedSuggestionIndex = -1;\n\n @HostListener('document:keydown', ['$event'])\n keyhandler(event: KeyboardEvent) {\n if (!this.cappedSuggestions || !this.cappedSuggestions.length) {\n return;\n }\n\n // navigate inside the suggestion list\n if (event.key === 'ArrowUp') {\n if (this.selectedSuggestionIndex > 0) {\n this.selectedSuggestionIndex--;\n } else {\n this.selectedSuggestionIndex = this.cappedSuggestions.length - 1;\n }\n this.value = this.cappedSuggestions[this.selectedSuggestionIndex];\n }\n\n if (event.key === 'ArrowDown') {\n if (this.selectedSuggestionIndex >= this.cappedSuggestions.length - 1) {\n this.selectedSuggestionIndex = 0;\n } else {\n this.selectedSuggestionIndex++;\n }\n this.value = this.cappedSuggestions[this.selectedSuggestionIndex];\n }\n }\n\n onClickOutside(): void {\n this.hideSuggestionList = true;\n }\n\n onFocus() {\n this.hideSuggestionList = false;\n }\n\n onInput(event: any) {\n this.selectedSuggestionIndex = -1;\n this.value = event.target.value;\n this.fngChange.emit(this.value);\n }\n\n // also triggert on \"Enter\" and \"Escape\"\n onSearch(event: any): void {\n event.stopPropagation();\n this.selectedSuggestionIndex = -1;\n this.fngSearch.emit(this.value);\n this.hideSuggestionList = true;\n this.inputRef.nativeElement.blur();\n }\n\n onSuggestionClick(suggestion: string) {\n this.selectedSuggestionIndex = -1;\n this.value = suggestion;\n this.fngSearch.emit(this.value);\n this.hideSuggestionList = true;\n this.inputRef.nativeElement.blur();\n }\n\n clearQuerry(): void {\n this.selectedSuggestionIndex = -1;\n this.value = '';\n this.fngSearch.emit(this.value);\n this.hideSuggestionList = true;\n this.inputRef.nativeElement.blur();\n }\n}\n","<div class=\"fwe-search-input fwe-w-100\" (clickOutside)=\"onClickOutside()\" fngClickOutside>\n <input\n class=\"fwe-w-100\"\n #inputElement\n [attr.disabled]=\"disabled ? '' : null\"\n [placeholder]=\"label\"\n (focus)=\"onFocus()\"\n type=\"search\"\n (input)=\"onInput($event)\"\n (search)=\"onSearch($event)\"\n [value]=\"innerValue\"\n />\n <div class=\"fwe-search-icon\"></div>\n <div class=\"fwe-clear-icon\" (click)=\"clearQuerry()\"></div>\n <div class=\"fwe-search-suggestions\" *ngIf=\"innerSuggestions?.length && !hideSuggestionList\">\n <div\n *ngFor=\"let suggestion of cappedSuggestions; let i = index\"\n (click)=\"onSuggestionClick(suggestion)\"\n [class.fwe-selected]=\"selectedSuggestionIndex === i\"\n class=\"fwe-search-suggestion\"\n >\n {{ suggestion }}\n </div>\n <div class=\"fwe-ml-xxs\" *ngIf=\"innerSuggestions.length > 10\">...</div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\n\nimport { ButtonComponent } from './buttons/button/button.component';\nimport { LinkButtonComponent } from './buttons/link-button/link-button.component';\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { LoadingIndicatorComponent } from './loading-indicator/loading-indicator.component';\nimport { ChipContainerComponent } from './chips/chip-container/chip-container.component';\nimport { ChipComponent } from './chips/chip/chip.component';\nimport { TableHeaderCellDirective } from './table-header-cell/table-header-cell.directive';\nimport { StepperComponent } from './stepper/stepper.component';\nimport { PopoverComponent } from './popovers/popover/popover.component';\nimport { PopoverMenuComponent } from './popovers/popover-menu/popover-menu.component';\nimport { TooltipDirective } from './popovers/tooltip/tooltip.directive';\nimport { PopoverContentComponent } from './popovers/popover-content/popover-content.component';\nimport { PopoverContentDirective } from './popovers/popover-content/popover-content.directive';\nimport { LegendComponent } from './popovers/legend/legend.component';\nimport { LegendDirective } from './popovers/legend/legend.directive';\nimport { ProgressComponent } from './progress/progress.component';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { TabPaneComponent } from './tabs/tab-pane/tab-pane.component';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { ScrollableDirective } from './scroll/scrollable.directive';\nimport { SearchInputComponent } from './search-input/search-input.component';\nimport { ClickOutsideDirective } from './click-outside.directive';\n\nexport * from './buttons/button/button.component';\nexport * from './buttons/link-button/link-button.component';\nexport * from './breadcrumb/breadcrumb.component';\nexport * from './loading-indicator/loading-indicator.component';\nexport * from './chips/chip/chip.component';\nexport * from './chips/chip-container/chip-container.component';\nexport * from './table-header-cell/table-header-cell.directive';\nexport * from './stepper/stepper.component';\nexport * from './popovers/popover/popover.component';\nexport * from './popovers/popover-menu/popover-menu.component';\nexport * from './popovers/tooltip/tooltip.directive';\nexport * from './popovers/popover-content/popover-content.component';\nexport * from './popovers/popover-content/popover-content.directive';\nexport * from './popovers/legend/legend.component';\nexport * from './popovers/legend/legend.directive';\nexport * from './popovers/popover.models';\nexport * from './progress/progress.component';\nexport * from './tabs/tabs.component';\nexport * from './tabs/tab-pane/tab-pane.component';\nexport * from './pagination/pagination.component';\nexport * from './scroll';\nexport * from './search-input/search-input.component';\nexport * from './click-outside.directive';\n\n@NgModule({\n declarations: [\n ButtonComponent,\n LinkButtonComponent,\n BreadcrumbComponent,\n LoadingIndicatorComponent,\n ChipContainerComponent,\n ChipComponent,\n PaginationComponent,\n TableHeaderCellDirective,\n StepperComponent,\n PopoverComponent,\n PopoverMenuComponent,\n TooltipDirective,\n PopoverContentComponent,\n PopoverContentDirective,\n LegendComponent,\n LegendDirective,\n ProgressComponent,\n TabsComponent,\n TabPaneComponent,\n ScrollableDirective,\n SearchInputComponent,\n ClickOutsideDirective\n ],\n imports: [RouterModule, CommonModule, OverlayModule, PortalModule],\n exports: [\n ButtonComponent,\n LinkButtonComponent,\n BreadcrumbComponent,\n LoadingIndicatorComponent,\n ChipContainerComponent,\n ChipComponent,\n PaginationComponent,\n TableHeaderCellDirective,\n StepperComponent,\n PopoverComponent,\n PopoverMenuComponent,\n TooltipDirective,\n PopoverContentComponent,\n PopoverContentDirective,\n LegendComponent,\n LegendDirective,\n ProgressComponent,\n TabsComponent,\n TabPaneComponent,\n ScrollableDirective,\n SearchInputComponent,\n ClickOutsideDirective\n ],\n providers: [],\n bootstrap: [PopoverComponent]\n})\nexport class FestoAngularComponentsModule {}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n forwardRef,\n ChangeDetectorRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'fng-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n }\n ]\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() name: string = null;\n @Input() large = false;\n @Input() valid = true;\n @Input() labelPosition: 'before' | 'after' | 'below' = 'after';\n\n private innerId = `fng-checkbox-${++nextUniqueId}`;\n get id(): string {\n return this.innerId;\n }\n @Input()\n set id(value: string) {\n this.innerId = value ? `${value}-${++nextUniqueId}` : `fng-checkbox-${++nextUniqueId}`;\n }\n\n get inputId(): string {\n return `${this.innerId}-input`;\n }\n\n @Input()\n get checked(): boolean {\n return this.isChecked;\n }\n set checked(value: boolean) {\n if (value !== this.checked) {\n this.isChecked = value;\n this.changeDetector.markForCheck();\n }\n }\n private isChecked = false;\n\n @Input()\n get disabled() {\n return this.isDisabled;\n }\n set disabled(value: any) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.disabled) {\n this.isDisabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n private isDisabled = false;\n\n @Input()\n get indeterminate(): boolean {\n return this.isIndeterminate;\n }\n set indeterminate(value: boolean) {\n const changed = value !== this.isIndeterminate;\n this.isIndeterminate = coerceBooleanProperty(value);\n if (changed) {\n this.indeterminateChange.emit(this.isIndeterminate);\n }\n this.changeDetector.markForCheck();\n }\n private isIndeterminate = false;\n\n @Input() value: string;\n\n @Input()\n get required(): boolean {\n return this.isRequired;\n }\n set required(value: boolean) {\n this.isRequired = coerceBooleanProperty(value);\n }\n private isRequired: boolean;\n\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() readonly change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n controlValueAccessorChangeFn: (value: any) => void;\n\n onTouched: () => any;\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInteractionEvent(event: Event) {\n event.stopPropagation();\n }\n\n onInputClick(event: Event) {\n event.stopPropagation();\n\n if (!this.disabled) {\n if (this.indeterminate) {\n Promise.resolve().then(() => {\n this.isIndeterminate = false;\n this.indeterminateChange.emit(this.isIndeterminate);\n });\n }\n if (!this.valid) {\n this.valid = true;\n }\n if (this.required) {\n this.required = false;\n }\n this.checked = !this.checked;\n if (this.controlValueAccessorChangeFn != null) {\n this.controlValueAccessorChangeFn(this.checked);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n this.change.emit(this.checked);\n }\n }\n}\n","<label class=\"fwe-checkbox-container\"\n [class.fng-checkbox-large]=\"large\"\n [class.fng-checkbox-invalid]=\"!valid || required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fng-checkbox-indeterminate]=\"indeterminate\"\n [class.fwe-checked]=\"checked\"\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-label-below': labelPosition == 'below',\n 'fwe-label-before': labelPosition == 'before'\n }\">\n <input type=\"checkbox\"\n [id]=\"inputId\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n [checked]=\"checked\" \n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"fwe-checkbox-indicator-container\">\n <div class=\"fwe-checkbox-indicator-background\"></div>\n <ng-container *ngIf=\"!indeterminate && checked\">\n <svg *ngIf=\"large\" width=\"24px\" height=\"24px\">\n <path d=\"M17.5 7L10 14.5 7.501 12l-1.5 1.501L10 17.5l9-9z\" fill=\"#fff\" />\n </svg>\n <svg *ngIf=\"!large\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\">\n <path d=\"M6 12L3 9l1.25-1.25L6 9.5l5.75-5.75L13 5l-7 7z\" fill=\"#fff\" />\n </svg>\n </ng-container>\n <div *ngIf=\"indeterminate && !checked\" class=\"fwe-indeterminate-indicator\"></div>\n </div>\n <div class=\"fwe-checkbox-title\">\n <ng-content></ng-content>\n </div>\n</label>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n forwardRef,\n ChangeDetectorRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'fng-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true\n }\n ]\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input() name: string = null;\n @Input() large = false;\n @Input() labelPosition: 'before' | 'after' | 'below' = 'before';\n\n private innerId = `fng-switch-${++nextUniqueId}`;\n get id(): string {\n return this.innerId;\n }\n @Input()\n set id(value: string) {\n this.innerId = value ? `${value}-${++nextUniqueId}` : `fng-switch-${++nextUniqueId}`;\n }\n\n get inputId(): string {\n return `${this.innerId}-input`;\n }\n\n @Input()\n get checked(): boolean {\n return this.isChecked;\n }\n set checked(value: boolean) {\n if (value !== this.checked) {\n this.isChecked = value;\n this.changeDetector.markForCheck();\n }\n }\n private isChecked = false;\n\n @Input()\n get disabled() {\n return this.isDisabled;\n }\n set disabled(value: any) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.disabled) {\n this.isDisabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n private isDisabled = false;\n\n @Input() value: string;\n\n @Input()\n get required(): boolean {\n return this.isRequired;\n }\n set required(value: boolean) {\n this.isRequired = coerceBooleanProperty(value);\n }\n private isRequired: boolean;\n\n @Output() readonly change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n controlValueAccessorChangeFn: (value: any) => void;\n\n onTouched: () => any;\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInteractionEvent(event: Event) {\n event.stopPropagation();\n }\n\n onInputClick(event: Event) {\n event.stopPropagation();\n\n if (!this.disabled) {\n if (this.required) {\n this.required = false;\n }\n this.checked = !this.checked;\n if (this.controlValueAccessorChangeFn != null) {\n this.controlValueAccessorChangeFn(this.checked);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n this.change.emit(this.checked);\n }\n }\n}\n","<label\n [ngClass]=\"{\n 'fwe-switch-container': true,\n 'fwe-checked': checked,\n 'fwe-disabled': disabled,\n 'fwe-switch-label-below': labelPosition == 'below',\n 'fwe-switch-label-before': labelPosition == 'before',\n 'fwe-switch-lg': large\n }\"\n>\n <input\n title=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\" \n [attr.value]=\"value\"\n [attr.name]=\"name\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n [disabled]=\"disabled\"\n />\n <div class=\"fwe-switch-track\"></div>\n <div class=\"fwe-switch-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n","import { Injectable, OnDestroy } from '@angular/core';\n\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n\n@Injectable({ providedIn: 'root' })\nexport class UniqueSelectionDispatcher implements OnDestroy {\n private listeners: UniqueSelectionDispatcherListener[] = [];\n\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id: string, name: string) {\n for (const listener of this.listeners) {\n listener(id, name);\n }\n }\n\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener: UniqueSelectionDispatcherListener): () => void {\n this.listeners.push(listener);\n return () => {\n this.listeners = this.listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\n\n ngOnDestroy() {\n this.listeners = [];\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n Optional,\n EventEmitter,\n Output,\n ChangeDetectorRef,\n OnDestroy,\n ViewEncapsulation,\n Directive,\n forwardRef,\n AfterContentInit,\n ContentChildren,\n HostBinding\n} from '@angular/core';\nimport type { QueryList } from '@angular/core';\nimport { UniqueSelectionDispatcher } from '../unique-selection-dispatcher';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport class RadioChange {\n constructor(public source: RadioComponent, public value: any) {}\n}\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: '[fngRadioGroup]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupDirective),\n multi: true\n }\n ]\n})\nexport class RadioGroupDirective implements AfterContentInit, ControlValueAccessor {\n @HostBinding('class.fwe-radio-group') hostClass = true;\n @HostBinding('attr.role') role = 'radiogroup';\n\n @Output()\n readonly change = new EventEmitter<RadioChange>();\n\n @ContentChildren(forwardRef(() => RadioComponent), { descendants: true })\n radios: QueryList<RadioComponent>;\n\n @Input()\n get name(): string {\n return this.innerName;\n }\n set name(value: string) {\n this.innerName = value;\n this.updateRadioButtonNames();\n }\n\n @Input()\n get large() {\n return this.isLarge;\n }\n set large(v) {\n this.isLarge = v;\n this.updateRadioButtonSize();\n }\n\n @Input()\n get labelPosition() {\n return this.innerLabelPosition;\n }\n set labelPosition(v) {\n this.innerLabelPosition = v;\n this.markRadiosForCheck();\n }\n\n @Input()\n get value(): any {\n return this.innerValue;\n }\n set value(newValue: any) {\n if (this.innerValue !== newValue) {\n this.innerValue = newValue;\n this.updateSelectedRadioFromValue();\n this.checkSelectedRadioButton();\n }\n }\n\n @Input()\n get selected() {\n return this.isSelected;\n }\n set selected(selected: any | null) {\n this.isSelected = selected;\n this.value = selected ? selected.value : null;\n this.checkSelectedRadioButton();\n }\n\n @Input()\n get disabled(): boolean {\n return this.isDisabled;\n }\n set disabled(value) {\n this.isDisabled = coerceBooleanProperty(value);\n this.markRadiosForCheck();\n }\n\n @Input()\n get required(): boolean {\n return this.isRequired;\n }\n set required(value: boolean) {\n this.isRequired = coerceBooleanProperty(value);\n this.markRadiosForCheck();\n }\n\n private isLarge = false;\n private isDisabled = false;\n private isRequired = false;\n private innerValue: any = null;\n private isInitialized = false;\n private isSelected: RadioComponent | null = null;\n private innerName = `fngRadioGroup-${nextUniqueId++}`;\n private innerLabelPosition: 'before' | 'after' | 'below' = 'before';\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n controlValueAccessorChangeFn: (value: any) => void;\n\n onTouched: () => void;\n\n ngAfterContentInit() {\n this.isInitialized = true;\n }\n\n checkSelectedRadioButton() {\n if (this.isSelected && !this.isSelected.checked) {\n this.isSelected.checked = true;\n }\n }\n\n touch() {\n if (this.onTouched != null) {\n this.onTouched();\n }\n }\n\n emitChangeEvent(): void {\n if (this.isInitialized) {\n this.change.emit(new RadioChange(this.isSelected, this.innerValue));\n }\n }\n\n markRadiosForCheck() {\n if (this.radios) {\n this.radios.forEach(radio => radio.markForCheck());\n }\n }\n\n writeValue(value: any) {\n this.value = value;\n this.changeDetector.markForCheck();\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.changeDetector.markForCheck();\n }\n\n private updateRadioButtonSize(): void {\n if (this.radios) {\n this.radios.forEach(radio => {\n radio.large = this.large;\n radio.markForCheck();\n });\n }\n }\n\n private updateRadioButtonNames(): void {\n if (this.radios) {\n this.radios.forEach(radio => {\n radio.name = this.name;\n radio.markForCheck();\n });\n }\n }\n\n private updateSelectedRadioFromValue(): void {\n const isAlreadySelected = this.isSelected !== null && this.isSelected.value === this.innerValue;\n if (this.radios && !isAlreadySelected) {\n this.isSelected = null;\n this.radios.forEach(radio => {\n radio.checked = this.value === radio.value;\n if (radio.checked) {\n this.isSelected = radio;\n }\n });\n }\n }\n}\n\n@Component({\n selector: 'fng-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class RadioComponent implements OnInit, OnDestroy {\n @Input() name: string;\n\n private innerId = `fng-radio-${++nextUniqueId}`;\n get id(): string {\n return this.innerId;\n }\n @Input()\n set id(value: string) {\n this.innerId = value ? `${value}-${++nextUniqueId}` : `fng-radio-${++nextUniqueId}`;\n }\n\n get inputId(): string {\n return `${this.innerId}-input`;\n }\n\n @Input()\n get checked(): boolean {\n return this.isChecked;\n }\n set checked(value: boolean) {\n const newCheckedState = coerceBooleanProperty(value);\n if (this.isChecked !== newCheckedState) {\n this.isChecked = newCheckedState;\n if (newCheckedState && this.radioGroup && this.radioGroup.value !== this.value) {\n this.radioGroup.selected = this;\n } else if (!newCheckedState && this.radioGroup && this.radioGroup.value === this.value) {\n this.radioGroup.selected = null;\n }\n\n if (newCheckedState) {\n this.radioDispatcher.notify(this.id, this.name);\n }\n this.changeDetector.markForCheck();\n }\n }\n\n @Input()\n get value(): any {\n return this.innerValue;\n }\n set value(value: any) {\n if (this.innerValue !== value) {\n this.innerValue = value;\n if (this.radioGroup !== null) {\n if (!this.checked) {\n this.checked = this.radioGroup.value === value;\n }\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n }\n\n @Input()\n get large() {\n return this.isLarge || (this.radioGroup != null && this.radioGroup.large);\n }\n set large(value) {\n this.isLarge = value;\n }\n\n @Input()\n get labelPosition() {\n return this.innerLabelPosition || (this.radioGroup && this.radioGroup.labelPosition) || 'before';\n }\n set labelPosition(value) {\n this.innerLabelPosition = value;\n }\n\n @Input()\n get disabled(): boolean {\n return this.isDisabled || (this.radioGroup != null && this.radioGroup.disabled);\n }\n set disabled(value: boolean) {\n const newDisabledState = coerceBooleanProperty(value);\n if (this.isDisabled !== newDisabledState) {\n this.isDisabled = newDisabledState;\n this.changeDetector.markForCheck();\n }\n }\n\n @Input()\n get required(): boolean {\n return this.isRequired || (this.radioGroup && this.radioGroup.required);\n }\n set required(value: boolean) {\n this.isRequired = coerceBooleanProperty(value);\n }\n\n @Output() readonly change = new EventEmitter<RadioChange>();\n\n radioGroup: RadioGroupDirective;\n\n private isLarge = false;\n private isChecked = false;\n private isDisabled: boolean;\n private isRequired: boolean;\n private innerValue: any = null;\n private innerLabelPosition: 'before' | 'after' | 'below';\n private removeUniqueSelectionListener: () => void;\n\n constructor(\n @Optional() radioGroup: RadioGroupDirective,\n private changeDetector: ChangeDetectorRef,\n private radioDispatcher: UniqueSelectionDispatcher\n ) {\n this.radioGroup = radioGroup;\n this.removeUniqueSelectionListener = radioDispatcher.listen((id: string, name: string) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n });\n }\n\n ngOnInit() {\n if (this.radioGroup) {\n this.checked = this.radioGroup.value === this.innerValue;\n this.name = this.radioGroup.name;\n }\n }\n\n ngOnDestroy() {\n if (this.removeUniqueSelectionListener != null) {\n this.removeUniqueSelectionListener();\n }\n }\n\n onInputClick(event: Event) {\n event.stopPropagation();\n }\n\n onInputChange(event: Event) {\n event.stopPropagation();\n\n if (!this.disabled) {\n const groupValueChanged = this.radioGroup && this.value !== this.radioGroup.value;\n this.checked = true;\n this.emitChangeEvent();\n\n if (this.radioGroup) {\n if (typeof this.radioGroup?.controlValueAccessorChangeFn === 'function') {\n this.radioGroup?.controlValueAccessorChangeFn(this.value);\n }\n\n if (groupValueChanged) {\n this.radioGroup.emitChangeEvent();\n }\n }\n }\n }\n\n markForCheck() {\n this.changeDetector.markForCheck();\n }\n\n private emitChangeEvent(): void {\n this.change.emit(new RadioChange(this, this.innerValue));\n }\n}\n","<label\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-radio': true,\n 'fwe-radio-label-below': labelPosition == 'below',\n 'fwe-radio-label-before': labelPosition == 'before',\n 'fwe-radio-lg': large\n }\"\n>\n <input\n type=\"radio\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"fwe-radio-checkmark\"></div>\n <div class=\"fwe-radio-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n","import { Component, Input, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\n\n@Component({\n selector: 'fng-select-option',\n templateUrl: './select-option.component.html',\n styleUrls: ['./select-option.component.scss']\n})\nexport class SelectOptionComponent implements AfterViewInit {\n @Input() value: any;\n @ViewChild('root') elementRef!: ElementRef;\n\n el: HTMLElement;\n\n ngAfterViewInit(): void {\n this.el = this.elementRef.nativeElement;\n }\n\n async update(): Promise<HTMLElement> {\n return await Promise.resolve(this.el);\n }\n}\n","<span #root>\n <ng-content></ng-content>\n</span>\n","import { Pipe, PipeTransform } from '@angular/core';\n\nfunction defaultValueKey(key: string): string {\n return key == null ? 'value' : key;\n}\n\nfunction defaultTextKey(key: string): string {\n return key == null ? 'text' : key;\n}\n\n@Pipe({\n name: 'fngChipText',\n pure: false\n})\nexport class ChipTextPipe implements PipeTransform {\n transform(value: any, options: any[], optionsValueKey?: string, optionsTextKey?: string): string {\n let chipText = '';\n optionsValueKey = defaultValueKey(optionsValueKey);\n optionsTextKey = defaultTextKey(optionsTextKey);\n\n options.forEach((_: any, index: number) => {\n if (JSON.stringify(options[index][optionsValueKey]) === JSON.stringify(value[optionsValueKey])) {\n chipText = options[index][optionsTextKey];\n }\n\n if (JSON.stringify(options[index][optionsValueKey]) === JSON.stringify(value)) {\n chipText = options[index][optionsTextKey];\n }\n });\n\n return chipText;\n }\n}\n","import {\r\n Component,\r\n Input,\r\n HostBinding,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n Inject,\r\n forwardRef,\r\n ViewChild,\r\n ElementRef,\r\n AfterViewInit,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { SelectOptionComponent } from './select-option/select-option.component';\r\n\r\nexport interface SelectOption {\r\n value: any;\r\n text: string;\r\n}\r\n\r\n@Component({\r\n selector: 'fng-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectComponent implements ControlValueAccessor, OnInit, AfterViewInit {\r\n static nextId = 0;\r\n\r\n protected _disabled = false;\r\n protected _required = false;\r\n protected _value: any;\r\n protected body: HTMLElement;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n }\r\n\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n }\r\n\r\n get value(): any {\r\n return this._value;\r\n }\r\n\r\n set value(value: any) {\r\n if (this.multiple === true) {\r\n const index = this._value.indexOf(value);\r\n if (index === -1) {\r\n this._value.push(value);\r\n this.checked.set(value, 'checked');\r\n } else {\r\n this._value.splice(index, 1);\r\n this.checked.set(value, null);\r\n }\r\n } else {\r\n this._value = value;\r\n }\r\n\r\n if (this.onChange != null) {\r\n this.onChange(this.value);\r\n }\r\n this.fngChange.emit(this.value);\r\n }\r\n\r\n onChange: (_: any) => void;\r\n onTouched: () => void;\r\n\r\n touched = false;\r\n\r\n @HostBinding()\r\n id = `input-control-${++SelectComponent.nextId}`;\r\n\r\n @Input() multiple: boolean;\r\n @Input() size: number;\r\n @Input() options = [];\r\n @Input() optionsValueKey: string;\r\n @Input() optionsTextKey: string;\r\n @Input() optionObjectAsValue: boolean;\r\n @Input() error: string;\r\n @Input() label = '';\r\n @Input() hideLabel = false;\r\n @Input() hint = '';\r\n @Input() resetOption: string;\r\n @ContentChildren(SelectOptionComponent) fngSelectOptions: QueryList<SelectOptionComponent>;\r\n @ViewChild('div') elementRef: ElementRef;\r\n @Output() fngChange = new EventEmitter<any>();\r\n\r\n selectPanelClasses: string[] = ['fng-select-panel'];\r\n showOptions = false;\r\n empty: boolean;\r\n triggerWidth: any;\r\n checked = new Map();\r\n hasProjectedOptions = false;\r\n projectedHtml = [];\r\n\r\n constructor(@Inject(DOCUMENT) protected document: any, protected renderer: Renderer2, protected cd: ChangeDetectorRef) {\r\n this.body = (this.document as Document).body;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.size != null) {\r\n this.selectPanelClasses.push('fng-select-panel-options-' + this.size);\r\n }\r\n\r\n if (this.multiple === true) {\r\n this._value = [];\r\n this.selectPanelClasses.push('fng-select-panel-multiple');\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.triggerWidth = this.elementRef.nativeElement?.getBoundingClientRect()?.width;\r\n this.initProjectedOptions();\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(shouldDisable: boolean): void {\r\n this.disabled = shouldDisable;\r\n }\r\n\r\n writeValue(value: any | null): void {\r\n if (value === undefined) {\r\n return;\r\n }\r\n\r\n if (this.multiple === true) {\r\n this._value = value;\r\n // set checkmarks in overlay panel, so that it is displayed correctly when user opens it\r\n value?.forEach(v => {\r\n this.checked.set(v, 'checked');\r\n });\r\n } else {\r\n this._value = value;\r\n }\r\n }\r\n\r\n getOptionText(index: number) {\r\n if (this.options[index] != null && this.options[index][this.optionsTextKey] != null) {\r\n return this.options[index][this.optionsTextKey];\r\n }\r\n }\r\n\r\n getOptionValue(index: number) {\r\n // if set to true the complete option object is returned as value\r\n if (this.optionObjectAsValue === true) {\r\n return this.options[index];\r\n }\r\n\r\n // try to access standard property 'value'\r\n const v = this.options[index]['value'];\r\n\r\n if (v !== undefined) {\r\n return v;\r\n }\r\n\r\n // try to map the value to a property of the option by given key\r\n if (this.options[index] != null && this.options[index][this.optionsValueKey] != null) {\r\n return this.options[index][this.optionsValueKey];\r\n }\r\n }\r\n\r\n removeChip(event: any, chip: string) {\r\n event.stopPropagation();\r\n if (!this._disabled) {\r\n this.markAsTouched();\r\n this.value = chip;\r\n }\r\n }\r\n\r\n onOpenedChange(isOpen: boolean) {\r\n if (isOpen) {\r\n this.renderer.addClass(this.body, 'fng-select-panel-open');\r\n } else {\r\n this.renderer.removeClass(this.body, 'fng-select-panel-open');\r\n }\r\n }\r\n\r\n close() {\r\n this.showOptions = false;\r\n this.isEmpty();\r\n }\r\n\r\n toggle() {\r\n if (false === this.disabled) {\r\n this.triggerWidth = this.elementRef.nativeElement?.getBoundingClientRect()?.width;\r\n this.showOptions = !this.showOptions;\r\n this.onOpenedChange(this.showOptions);\r\n this.isEmpty();\r\n }\r\n }\r\n\r\n select(value: any, event: Event) {\r\n if (!this._disabled) {\r\n this.markAsTouched();\r\n event.stopPropagation();\r\n this.value = value;\r\n\r\n if (this.multiple !== true) {\r\n // closes overlay panel\r\n this.toggle();\r\n }\r\n }\r\n }\r\n\r\n markAsTouched() {\r\n if (!this.touched) {\r\n if (this.onTouched != null) {\r\n this.onTouched();\r\n }\r\n this.touched = true;\r\n }\r\n }\r\n\r\n onContentChange(changes: MutationRecord[]) {\r\n if (changes != null) {\r\n this.options = [];\r\n this.projectedHtml = [];\r\n this.initProjectedOptions();\r\n }\r\n }\r\n\r\n protected initProjectedOptions() {\r\n if (this.fngSelectOptions.length > 0) {\r\n this.hasProjectedOptions = true;\r\n this.fngSelectOptions.forEach(component => {\r\n component.update().then(el => {\r\n this.options.push({ value: component.value, text: el.textContent.trim() });\r\n this.projectedHtml.push(el.innerHTML);\r\n this.cd.detectChanges();\r\n });\r\n });\r\n }\r\n this.cd.detectChanges();\r\n }\r\n\r\n protected isEmpty() {\r\n if (!this.showOptions && (!this._value || '' === this._value)) {\r\n this.empty = true;\r\n } else {\r\n this.empty = false;\r\n }\r\n }\r\n}\r\n","<div #div class=\"fwe-select-wrapper\" [class.fwe-disabled]=\"disabled\" [class.fng-hide-label]=\"hideLabel\">\n <div\n class=\"fwe-select\"\n (click)=\"toggle()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [class.fwe-focus]=\"showOptions\"\n [class.fwe-required]=\"required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fwe-pty]=\"empty\"\n >\n <div class=\"fwe-select-content\">\n <ng-container *ngIf=\"!multiple; else chips\">\n {{ value != null && value | fngChipText: options:optionsValueKey:optionsTextKey }}\n </ng-container>\n <ng-template #chips>\n <div class=\"fwe-chip-container\">\n <div\n *ngFor=\"let v of value\"\n class=\"fwe-chip chip-text-truncate fwe-pr-4\"\n [style.max-width.px]=\"triggerWidth\"\n [title]=\"v | fngChipText: options:optionsValueKey:optionsTextKey\"\n >\n {{ v | fngChipText: options:optionsValueKey:optionsTextKey }}\n <span class=\"chip-removable\" (click)=\"removeChip($event, v)\"></span>\n </div>\n </div>\n </ng-template>\n </div>\n </div>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth\"\n [cdkConnectedOverlayOpen]=\"showOptions\"\n [cdkConnectedOverlayPanelClass]=\"selectPanelClasses\"\n (backdropClick)=\"close()\"\n >\n <div class=\"fng-select-panel-wrap\">\n <ul class=\"fwe-select-options-container\">\n <li class=\"fwe-select-option\" *ngIf=\"resetOption != null && !multiple\" (click)=\"select(null, $event)\">{{ resetOption }}</li>\n <li\n class=\"fwe-select-option\"\n *ngFor=\"let option of options; let i = index\"\n (click)=\"select(getOptionValue(i), $event)\"\n [title]=\"getOptionText(i) || option?.text\"\n >\n <span class=\"fwe-select-option-content\">\n <span\n *ngIf=\"multiple\"\n class=\"fng-select-pseudo-checkbox\"\n [ngClass]=\"{ 'fng-select-pseudo-checkbox-checked': checked.get(getOptionValue(i)) === 'checked' }\"\n ></span>\n <span *ngIf=\"hasProjectedOptions; else defaultTemplate\" [innerHTML]=\"projectedHtml[i]\"></span>\n <ng-template #defaultTemplate>{{ getOptionText(i) || option?.text }}</ng-template>\n </span>\n </li>\n </ul>\n </div>\n </ng-template>\n <label class=\"fwe-select-label\" [for]=\"id\" [class.fwe-sr-only]=\"hideLabel\">{{ label }}</label>\n <div class=\"fwe-select-description\" *ngIf=\"hint\">\n {{ hint }}\n </div>\n <div class=\"fwe-select-invalid\" *ngIf=\"error\">\n {{ error }}\n </div>\n</div>\n<div class=\"fwe-d-none\" (cdkObserveContent)=\"onContentChange($event)\">\n <ng-content></ng-content>\n</div>\n","import { Component, OnInit, Input, forwardRef, ViewChild, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n/**\n * A custom form element for text inputs.\n */\n@Component({\n selector: 'fng-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextInputComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class TextInputComponent implements OnInit, ControlValueAccessor {\n /**\n * The text input label.\n */\n @Input() label: string;\n\n /**\n * A string specifying the type of control to render.\n */\n @Input()\n get type(): string {\n return this.innerType;\n }\n set type(value: string) {\n const supported = ['text', 'number', 'password', 'date', 'time', 'datetime-local'];\n if (value != null && supported.indexOf(value) !== -1) {\n this.innerType = value;\n } else {\n this.innerType = 'text';\n }\n }\n protected innerType = 'text';\n\n @Input()\n get readonly(): boolean {\n return this.innerReadonly;\n }\n set readonly(value: boolean) {\n this.innerReadonly = coerceBooleanProperty(value);\n }\n private innerReadonly = false;\n\n @Input() step: number;\n @Input() min: number;\n @Input() max: number;\n @Input() tabindex: number;\n @Input() placeholder: string;\n @Input() name: string;\n\n /**\n * When true the control's disabled attribute is set\n * and it gets addeed the .disabled css class.\n */\n @Input()\n get disabled(): boolean {\n return this.innerDisabled;\n }\n set disabled(value: boolean) {\n this.innerDisabled = coerceBooleanProperty(value);\n\n if (this.focused) {\n this.focused = false;\n }\n }\n protected innerDisabled = false;\n\n /**\n * The inner value.\n */\n innerValue: string;\n\n /**\n * The getter for value.\n */\n get value(): string {\n return this.innerValue;\n }\n\n /**\n * The setter for value.\n */\n @Input()\n set value(value: string) {\n if (value != null) {\n value = '' + value;\n }\n this.innerValue = value;\n this.focused = !!value;\n if (this.onChange != null) {\n this.onChange(value);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n }\n\n @Input()\n get required(): boolean {\n return this.innerRequired;\n }\n set required(value: boolean) {\n this.innerRequired = coerceBooleanProperty(value);\n }\n protected innerRequired = false;\n\n /**\n * Error description when invalid.\n */\n @Input() error: string;\n\n /**\n * Hint description when valid.\n */\n @Input() hint: string;\n\n @ViewChild('inputElement') inputElement: ElementRef;\n\n /**\n * When true the text input has focus.\n */\n focused: boolean;\n\n /**\n * Triggered on change.\n */\n onChange: (value: string) => void;\n\n /**\n * Triggered on touch.\n */\n onTouched: () => void;\n\n /**\n * Called on component initialisation.\n */\n ngOnInit(): void {\n this.onBlur();\n }\n\n /**\n * Writes the value.\n * @param value The value.\n */\n writeValue(value: string): void {\n if (value != null) {\n value = '' + value;\n }\n this.innerValue = value;\n this.focused = !!value;\n }\n\n /**\n * Registers a function to onChange.\n * @param fn The registered function.\n */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /**\n * Registers a function to onTouched.\n * @param fn The registered function.\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * Called when the text input is in focus.\n */\n onFocus() {\n this.focused = true;\n }\n\n onInput(event: any) {\n this.value = event.target.value;\n }\n\n /**\n * Called when the text input blurs.\n */\n onBlur() {\n if (this.focused) {\n this.focused = false;\n }\n }\n\n /**\n * Sets the disabled state.\n * @param isDisabled When true the control is disabled\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<label class=\"fwe-input-text\" [class.fwe-no-pointer-events]=\"readonly === true\">\n <input\n #inputElement\n [disabled]=\"disabled\"\n [required]=\"required === true || null\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.type]=\"type\"\n [attr.step]=\"step\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n [value]=\"value\"\n (focus)=\"onFocus()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n <span class=\"fwe-input-text-label\">{{ label }}</span>\n <span *ngIf=\"hint; else projectedHint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error; else projectedError\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n\n <ng-template #projectedHint>\n <span class=\"fwe-input-text-info fng-projected\"><ng-content select=\".fng-hint\"></ng-content></span>\n </ng-template>\n\n <ng-template #projectedError>\n <span class=\"fwe-input-text-invalid fng-projected\"><ng-content select=\".fng-error\"></ng-content></span>\n </ng-template>\n</label>\n","import { Component, OnInit, Input, forwardRef, ViewChild, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\n\n/**\n * A custom form element for text inputs.\n */\n@Component({\n selector: 'fng-text-area',\n templateUrl: './text-area.component.html',\n styleUrls: ['./text-area.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class TextAreaComponent implements OnInit, ControlValueAccessor {\n /**\n * The text input label.\n */\n @Input() label: string;\n\n @Input()\n get readonly(): boolean {\n return this.innerReadonly;\n }\n set readonly(value: boolean) {\n this.innerReadonly = coerceBooleanProperty(value);\n }\n private innerReadonly = false;\n\n @Input() placeholder: string;\n @Input() tabindex: number;\n @Input() name: string;\n\n /**\n * When true the control's disabled attribute is set\n * and it gets addeed the .disabled css class.\n */\n @Input()\n get disabled(): boolean {\n return this.innerDisabled;\n }\n set disabled(value: boolean) {\n this.innerDisabled = coerceBooleanProperty(value);\n\n if (this.focused) {\n this.focused = false;\n }\n }\n protected innerDisabled = false;\n\n /**\n * The inner value.\n */\n innerValue: string;\n\n /**\n * The getter for value.\n */\n get value(): string {\n return this.innerValue;\n }\n\n /**\n * The setter for value.\n */\n @Input()\n set value(value: string) {\n if (value != null) {\n value = '' + value;\n }\n this.innerValue = value;\n this.focused = !!value;\n if (this.onChange != null) {\n this.onChange(value);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n }\n\n @Input()\n get required(): boolean {\n return this.innerRequired;\n }\n set required(value: boolean) {\n this.innerRequired = coerceBooleanProperty(value);\n }\n protected innerRequired = false;\n\n /**\n * Error description when invalid.\n */\n @Input() error: string;\n\n /**\n * Hint description when valid.\n */\n @Input() hint: string;\n\n /**\n * the height is managed by classes. the last one is \"fwe-row-10\"\n */\n @Input()\n get rows(): number {\n return this.innerRows;\n }\n set rows(value: number) {\n const v = coerceNumberProperty(value);\n this.innerRows = v > 10 ? 10 : v;\n }\n protected innerRows = 3;\n\n @Input() maxlength: number;\n\n @ViewChild('inputElement') inputElement: ElementRef;\n\n /**\n * When true the text input has focus.\n */\n focused: boolean;\n\n /**\n * Triggered on change.\n */\n onChange: (value: string) => void;\n\n /**\n * Triggered on touch.\n */\n onTouched: () => void;\n\n /**\n * Called on component initialisation.\n */\n ngOnInit(): void {\n this.onBlur();\n }\n\n /**\n * Writes the value.\n * @param value The value.\n */\n writeValue(value: string): void {\n if (value != null) {\n value = '' + value;\n }\n this.innerValue = value;\n this.focused = !!value;\n }\n\n /**\n * Registers a function to onChange.\n * @param fn The registered function.\n */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /**\n * Registers a function to onTouched.\n * @param fn The registered function.\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * Called when the text input is in focus.\n */\n onFocus() {\n this.focused = true;\n }\n\n onInput(event: any) {\n this.value = event.target.value;\n\n // The height is adjusted to the content on \"rows = 0\"\n if (this.rows === 0) {\n const textarea = this.inputElement.nativeElement;\n textarea.style.height = '1px'; // trigger calculation of the textarea.scrollHeight\n textarea.style.height = 25 + textarea.scrollHeight + 'px';\n }\n }\n\n /**\n * Called when the text input blurs.\n */\n onBlur() {\n if (this.focused) {\n this.focused = false;\n }\n }\n\n /**\n * Sets the disabled state.\n * @param isDisabled When true the control is disabled\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<label class=\"fwe-input-text\">\n <textarea #inputElement\n [class]=\"'fwe-row-' + rows\"\n [disabled]=\"disabled\"\n [required]=\"required === true || null\"\n [attr.readonly]=\"readonly === true || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.name]=\"name || null\"\n [attr.tabindex]=\"tabindex\"\n [class.fng-has-value]=\"value != null && value !== ''\"\n autocomplete=\"off\"\n (focus)=\"onFocus()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\">{{value}}</textarea>\n <span class=\"fwe-input-text-label\">{{label}}</span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{hint}}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{error}}</span>\n <span *ngIf=\"maxlength > 0 && value != null\" class=\"fwe-input-text-count\">{{value.length}} / {{maxlength}}</span>\n</label>\n\n\n","export abstract class ColorHelper {\n // based on: https://gist.github.com/mjackson/5311256\n public static rgbToHsv(rgb: Record<'r' | 'g' | 'b', number>): Record<'h' | 's' | 'v', number> {\n if (!rgb) {\n return undefined;\n }\n\n const r = this.limitToByte(rgb.r) / 255;\n const g = this.limitToByte(rgb.g) / 255;\n const b = this.limitToByte(rgb.b) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let h = max;\n let s = max;\n const v = max;\n\n const d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return { h, s, v };\n }\n\n // based on: https://gist.github.com/mjackson/5311256\n public static hsvToRgb(hsv: Record<'h' | 's' | 'v', number>): Record<'r' | 'g' | 'b', number> {\n if (!hsv) {\n return undefined;\n }\n\n hsv.h = this.limitToOne(hsv.h);\n hsv.s = this.limitToOne(hsv.s);\n hsv.v = this.limitToOne(hsv.v);\n\n let r: number;\n let g: number;\n let b: number;\n\n const i = Math.floor(hsv.h * 6);\n const f = hsv.h * 6 - i;\n const p = hsv.v * (1 - hsv.s);\n const q = hsv.v * (1 - f * hsv.s);\n const t = hsv.v * (1 - (1 - f) * hsv.s);\n\n switch (i % 6) {\n case 0:\n r = hsv.v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = hsv.v;\n b = p;\n break;\n case 2:\n r = p;\n g = hsv.v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = hsv.v;\n break;\n case 4:\n r = t;\n g = p;\n b = hsv.v;\n break;\n case 5:\n r = hsv.v;\n g = p;\n b = q;\n break;\n }\n\n return {\n r: this.limitToByte(r * 255),\n g: this.limitToByte(g * 255),\n b: this.limitToByte(b * 255)\n };\n }\n\n private static limitToByte(num) {\n return Math.round(num <= 0 ? 0 : num >= 255 ? 255 : num);\n }\n\n private static limitToOne(num) {\n return num <= 0 ? 0 : num >= 1 ? 1 : num;\n }\n\n private static numberToHex(rgb: number): string {\n let hex = Math.round(rgb).toString(16);\n if (hex.length < 2) {\n hex = '0' + hex;\n }\n return hex.toUpperCase();\n }\n\n public static rgbToHex(rgb: Record<'r' | 'g' | 'b', number>) {\n if (!rgb) {\n return undefined;\n }\n\n rgb.r = this.limitToByte(rgb.r);\n rgb.g = this.limitToByte(rgb.g);\n rgb.b = this.limitToByte(rgb.b);\n\n const red = this.numberToHex(rgb.r);\n const green = this.numberToHex(rgb.g);\n const blue = this.numberToHex(rgb.b);\n return '#' + red + green + blue;\n }\n\n public static hexToRgb(hexString: string): Record<'r' | 'g' | 'b', number> {\n const numbersOnly = hexString.substring(1);\n const aRgbHex = numbersOnly.match(/.{1,2}/g);\n return { r: parseInt(aRgbHex[0], 16), g: parseInt(aRgbHex[1], 16), b: parseInt(aRgbHex[2], 16) };\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CdkDragMove } from '@angular/cdk/drag-drop';\nimport { Component, forwardRef, Input, ViewEncapsulation, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ColorHelper } from './color-helper';\n\nexport const PREDEFINED_COLORS: string[] = [\n '#0091dc',\n '#333333',\n '#ffffff',\n '#f2f3f5',\n '#e5e8eb',\n '#d8dce1',\n '#b6bec6',\n '#80ca3d',\n '#ffd600',\n '#ff9600',\n '#d50000'\n];\n\n/**\n * A custom form element to pick a color.\n */\n@Component({\n selector: 'fng-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['../text-input/text-input.component.scss', './color-picker.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ColorPickerComponent implements OnChanges, ControlValueAccessor {\n baseSize = 184;\n\n inputType = 'RGB';\n\n isSelectOpen = false;\n\n @Input() useAlpha = false;\n\n @Input()\n get alpha(): number {\n return this.innerAlpha;\n }\n set alpha(value: number) {\n if (value <= 100 && value >= 0 && this.innerAlpha !== Math.round(value)) {\n this.innerAlpha = Math.round(value);\n this.alphaInput = this.innerAlpha;\n this.updateKnobs();\n }\n }\n\n @Output() alphaChange = new EventEmitter<number>();\n\n /**\n * The current color\n */\n get color(): string {\n return this.innerColor;\n }\n @Input()\n set color(value: string) {\n if (this.isHexColor(value)) {\n this.innerColor = value.toUpperCase();\n } else {\n this.innerColor = null;\n }\n this.updateColorRgb(true);\n }\n\n @Input()\n get disabled(): boolean {\n return this.innerDisabled;\n }\n set disabled(value: boolean) {\n this.innerDisabled = coerceBooleanProperty(value);\n }\n\n /**\n * an array with color strings representing the palette.\n * Example: ['#234567, '#AA00FF']\n * Pass null to hide palette.\n */\n @Input() palette: string[];\n\n /**\n * hide the hue and gradient picker and shot the palette only.\n */\n @Input() paletteOnly = false;\n\n private innerColor: string;\n private innerDisabled: boolean;\n private innerAlpha: number;\n\n // input controls\n hexInputColor = '#ff0000';\n redInput = 255;\n greenInput = 0;\n blueInput = 0;\n alphaInput = 100;\n\n // HSV value\n hue: number;\n saturation: number;\n value: number;\n\n // poitions of the knobs in px\n hueKnobOffset = 0;\n alphaKnobOffset = 0;\n saturationKnobOffset = 0;\n valueKnobOffset = 0;\n\n // callbacks for ControlValueAccessor\n onTouched: () => any;\n onChange: (color: string) => any;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.palette?.currentValue?.length > 0 && changes.palette.currentValue.indexOf('FESTO_COLORS') !== -1) {\n this.palette = PREDEFINED_COLORS;\n }\n }\n\n // ControlValueAccessor\n writeValue(color: string): void {\n if (this.isHexColor(color)) {\n this.innerColor = color.toUpperCase();\n } else {\n this.innerColor = null;\n }\n this.updateColorRgb(false);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.innerDisabled = isDisabled;\n }\n\n // update method for changes of the rgb value\n updateColorRgb(emitChange: boolean) {\n const currentColor = this.innerColor || '#FFFFFF';\n this.updateInputs(currentColor);\n const rgb = ColorHelper.hexToRgb(currentColor);\n const hsv = ColorHelper.rgbToHsv(rgb);\n this.hue = hsv.h;\n this.saturation = hsv.s;\n this.value = hsv.v;\n this.updateKnobs();\n if (emitChange) {\n if (this.onChange != null) {\n this.onChange(this.innerColor);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n }\n }\n\n // update method for changes of the hsv value\n updateColorHsv() {\n const rgb = ColorHelper.hsvToRgb({ h: this.hue, s: this.saturation, v: this.value });\n this.innerColor = ColorHelper.rgbToHex(rgb);\n this.updateInputs(this.innerColor);\n if (this.onChange != null) {\n this.onChange(this.innerColor);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n }\n\n // event handler for inputs\n onHexBlur() {\n if (this.isHexColor(this.hexInputColor)) {\n this.color = this.hexInputColor.toUpperCase();\n } else {\n this.hexInputColor = this.color;\n }\n }\n\n onHexInput() {\n if (this.isHexColor(this.hexInputColor)) {\n this.color = this.hexInputColor.toUpperCase();\n }\n }\n\n onRgbBlur() {\n if (this.isHexColor(this.hexInputColor)) {\n this.color = this.hexInputColor.toUpperCase();\n } else {\n this.hexInputColor = this.color;\n }\n }\n\n onRgbInput(value: number, channel: string) {\n if (value > 255 || value < 0) {\n this.updateInputs(this.innerColor);\n } else {\n const rgb = ColorHelper.hexToRgb(this.innerColor);\n rgb[channel] = value;\n this.innerColor = ColorHelper.rgbToHex(rgb);\n this.updateColorRgb(true);\n }\n }\n\n onAlphaInput(value: number) {\n if (value > 100 || value < 0) {\n this.alphaInput = this.innerAlpha;\n } else {\n this.alpha = value;\n this.alphaChange.emit(this.alpha);\n }\n }\n\n onGradientClick(event: MouseEvent) {\n this.saturation = event.offsetX / this.baseSize;\n this.value = (this.baseSize - event.offsetY) / this.baseSize;\n this.updateColorHsv();\n this.updateKnobs();\n }\n\n onGradientDrag(event: CdkDragMove) {\n const position = event.source.getFreeDragPosition();\n this.saturation = Math.floor(position.x) / this.baseSize;\n this.value = (this.baseSize - position.y) / this.baseSize;\n this.updateColorHsv();\n }\n\n onHueClick(event: MouseEvent) {\n this.hue = event.offsetY / this.baseSize;\n this.updateColorHsv();\n this.updateKnobs();\n }\n\n onAlphaClick(event: MouseEvent) {\n this.alpha = 100 - Math.round((event.offsetY / this.baseSize) * 100);\n this.alphaChange.emit(this.alpha);\n }\n\n onHueDrag(event: CdkDragMove) {\n const position = event.source.getFreeDragPosition();\n this.hue = (position.y + this.baseSize + 14) / this.baseSize;\n this.updateColorHsv();\n }\n\n onAlphaDrag(event: CdkDragMove) {\n const position = event.source.getFreeDragPosition();\n this.innerAlpha = 100 - Math.round((position.y / this.baseSize) * 100);\n this.alphaInput = this.innerAlpha;\n this.alphaChange.emit(this.innerAlpha);\n }\n\n onRemoveColor() {\n if (this.useAlpha) {\n this.alpha = 0;\n this.alphaChange.emit(this.alpha);\n } else {\n this.color = null;\n }\n }\n\n isHexColor(value: string) {\n return /^#[0-9A-F]{6}$/i.test(value);\n }\n\n getSaturationGradient(): string {\n return 'linear-gradient(to right, white, hsl(' + this.hue * 360 + ', 100%, 50%) )';\n }\n\n updateInputs(hexColor: string) {\n this.hexInputColor = hexColor;\n const rgb = ColorHelper.hexToRgb(hexColor);\n this.redInput = rgb.r;\n this.greenInput = rgb.g;\n this.blueInput = rgb.b;\n }\n\n updateKnobs() {\n this.alphaKnobOffset = ((100 - this.alpha) / 100) * this.baseSize;\n this.hueKnobOffset = this.hue * this.baseSize - (this.baseSize + 14);\n this.saturationKnobOffset = this.saturation * this.baseSize;\n this.valueKnobOffset = (1 - this.value) * this.baseSize;\n }\n\n onChangeType(type: string) {\n this.inputType = type;\n this.isSelectOpen = false;\n }\n}\n","<div class=\"fwe-color-picker\" [class.fwe-alpha-active]=\"useAlpha\">\n <div class=\"fwe-d-flex\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-gradient-picker\">\n <div class=\"fwe-saturation-gradient\" [ngStyle]=\"{ 'background-image': getSaturationGradient() }\"></div>\n <div class=\"fwe-brightness-gradient\" (click)=\"onGradientClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".gradient-picker\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: saturationKnobOffset, y: valueKnobOffset }\"\n (cdkDragMoved)=\"onGradientDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n\n <div class=\"fwe-hue-picker\">\n <div class=\"fwe-picker-background\" (click)=\"onHueClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".hue-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: hueKnobOffset }\"\n (cdkDragMoved)=\"onHueDrag($event)\"\n [style.background]=\"'hsl(' + hue * 360 + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <div class=\"fwe-alpha-picker\" *ngIf=\"useAlpha\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"8\"\n height=\"184\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"4\" ry=\"4\" width=\"8\" height=\"184\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <div\n class=\"fwe-picker-background\"\n (click)=\"onAlphaClick($event)\"\n [ngStyle]=\"{ 'background-image': 'linear-gradient( ' + color + ' , transparent)' }\"\n ></div>\n\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".alpha-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: alphaKnobOffset }\"\n (cdkDragMoved)=\"onAlphaDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n </div>\n\n <div class=\"fwe-mt-s\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-type-select\">\n <div class=\"fwe-type-indicator\" (click)=\"isSelectOpen = !isSelectOpen\">\n <span class=\"fwe-input-type\">{{ inputType }}</span>\n <i class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </div>\n <div class=\"fwe-popover\" *ngIf=\"isSelectOpen\">\n <div class=\"fwe-type-item\" (click)=\"onChangeType('HEX')\" [class.fwe-selected]=\"inputType === 'HEX'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> HEX\n </div>\n <div class=\"fwe-type-item\" (click)=\"onChangeType('RGB')\" [class.fwe-selected]=\"inputType === 'RGB'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> RGB\n </div>\n </div>\n </div>\n\n <div class=\"fwe-d-flex\">\n <ng-container *ngIf=\"inputType === 'HEX'\">\n <label class=\"fwe-input-text fwe-hex-input\">\n <input type=\"text\" [(ngModel)]=\"hexInputColor\" (blur)=\"onHexBlur()\" (input)=\"onHexInput()\" />\n </label>\n </ng-container>\n <ng-container *ngIf=\"inputType === 'RGB'\">\n <label class=\"fwe-input-text fwe-red-input\">\n <input type=\"number\" [(ngModel)]=\"redInput\" (input)=\"onRgbInput(redInput, 'r')\" />\n </label>\n <label class=\"fwe-input-text fwe-green-input\">\n <input type=\"number\" [(ngModel)]=\"greenInput\" (input)=\"onRgbInput(greenInput, 'g')\" />\n </label>\n <label class=\"fwe-input-text fwe-blue-input\">\n <input type=\"number\" min=\"0\" max=\"255\" [(ngModel)]=\"blueInput\" (input)=\"onRgbInput(blueInput, 'b')\" />\n </label>\n </ng-container>\n\n <label class=\"fwe-input-text fwe-alpha-input fwe-ml-auto\" *ngIf=\"useAlpha\">\n <span>\n <input type=\"number\" min=\"0\" max=\"100\" [(ngModel)]=\"alphaInput\" (input)=\"onAlphaInput(alphaInput)\" />\n <span class=\"fwe-percent-char\">%</span>\n </span>\n </label>\n </div>\n </div>\n\n <div class=\"fwe-mt-xs fwe-color-grid\" *ngIf=\"palette && palette.length\">\n <div class=\"fwe-remove-color-button\" (click)=\"onRemoveColor()\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <i class=\"fwe-icon fwe-icon-menu-check\" [class.fwe-color-text]=\"!color\"></i>\n </div>\n <ng-container *ngFor=\"let colorItem of palette\">\n <div\n class=\"fwe-color-item\"\n [class.fwe-white-item]=\"colorItem.toUpperCase() === '#FFFFFF'\"\n [style.background]=\"colorItem\"\n (click)=\"color = colorItem\"\n >\n <i class=\"fwe-icon fwe-icon-menu-check\" *ngIf=\"colorItem.toUpperCase() === color\"></i>\n </div>\n </ng-container>\n </div>\n</div>\n","import { OnDestroy, Component, forwardRef, ViewEncapsulation, Input, ElementRef, AfterViewInit, HostListener } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Subscription, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'fng-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class SliderComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n @Input() label: string;\n @Input() large = false;\n\n @Input()\n min = 0;\n\n @Input()\n max = 100;\n\n @Input()\n step: number;\n\n @Input()\n digitsInfo: string;\n\n @Input()\n locale: string;\n\n left: number;\n\n protected innerDisabled = false;\n get disabled(): boolean {\n return this.innerDisabled;\n }\n @Input()\n set disabled(value: boolean) {\n this.innerDisabled = coerceBooleanProperty(value);\n }\n\n protected innerValue: number;\n get value(): number {\n return this.innerValue;\n }\n\n @Input()\n set value(value: number) {\n this.innerValue = coerceNumberProperty(value);\n if (this.onChange != null) {\n this.onChange(value);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n this.updateValuePosition();\n }\n\n private resizeSub: Subscription;\n private resizeSubject = new Subject();\n\n constructor(private elementRef: ElementRef) {}\n\n onChange: (value: number) => void;\n\n onTouched: () => void;\n\n @HostListener('window:resize') onResize() {\n this.resizeSubject.next();\n }\n\n ngAfterViewInit() {\n this.resizeSub = this.resizeSubject.pipe(debounceTime(25)).subscribe(() => this.updateValuePosition());\n }\n\n ngOnDestroy() {\n if (this.resizeSub != null) {\n this.resizeSub.unsubscribe();\n }\n }\n\n writeValue(value: any): void {\n this.innerValue = coerceNumberProperty(value);\n this.updateValuePosition();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInput(event: any) {\n this.value = coerceNumberProperty((event.target as HTMLInputElement).value);\n }\n\n updateValuePosition() {\n if (this.elementRef != null && this.elementRef.nativeElement != null) {\n const bcr = (this.elementRef.nativeElement as HTMLElement).getBoundingClientRect();\n const diff = this.max - this.min;\n this.left = ((this.value - this.min) / diff) * (bcr.width - 16);\n }\n }\n}\n","<label class=\"fwe-slider\" [class.fwe-slider-lg]=\"large\" [class.fng-slider-label]=\"label != null\">\n <span *ngIf=\"label\">{{label}}</span>\n <input type=\"range\"\n class=\"fwe-slider-input\"\n [disabled]=\"disabled\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n autocomplete=\"off\"\n [value]=\"value\"\n (input)=\"onInput($event)\">\n <span *ngIf=\"left != null\" class=\"fng-slider-value\" [style.left]=\"left + 'px'\">{{value | number:digitsInfo:locale}}</span>\n</label>\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { Component, Input } from '@angular/core';\n\n/**\n * A control to display a color.\n */\n@Component({\n selector: 'fng-color-indicator',\n templateUrl: './color-indicator.component.html',\n styleUrls: ['./color-indicator.component.scss']\n})\nexport class ColorIndicatorComponent {\n /**\n * The label above the color.\n */\n @Input() label: string;\n\n /**\n * A text next to the color.\n */\n @Input() text: string;\n\n /**\n * The current color as a string.\n * Examples: '#ffffff', 'red', 'rgba(1,2,3,0.5)'\n */\n @Input() color: string;\n\n /**\n * enable an overlay to edit the color.\n * The editor must be passed as the content of the indicator.\n */\n @Input() showPopOver: boolean;\n\n @Input() disabled: boolean;\n\n public isEditorOpen = false;\n\n public positions = [\n new ConnectionPositionPair(\n {\n originX: 'center',\n originY: 'top'\n },\n {\n overlayX: 'center',\n overlayY: 'bottom'\n },\n 0,\n -20,\n ['fng-color-indicator-top']\n ),\n new ConnectionPositionPair(\n {\n originX: 'center',\n originY: 'bottom'\n },\n {\n overlayX: 'center',\n overlayY: 'top'\n },\n 0,\n 20,\n ['fng-color-indicator-bottom']\n ),\n new ConnectionPositionPair(\n {\n originX: 'start',\n originY: 'center'\n },\n {\n overlayX: 'end',\n overlayY: 'center'\n },\n -20,\n 0,\n ['fng-color-indicator-left']\n ),\n new ConnectionPositionPair(\n {\n originX: 'end',\n originY: 'center'\n },\n {\n overlayX: 'start',\n overlayY: 'center'\n },\n 20,\n 0,\n ['fng-color-indicator-right']\n )\n ];\n\n getBorderColor(): string {\n if (!this.color || this.color.toUpperCase() === '#FFFFFF' || this.color.toUpperCase() === '#F2F3F5') {\n return '#b6bec6'; // = $control-border\n } else {\n return this.color;\n }\n }\n}\n","<div class=\"fwe-color-indicator\" (click)=\"isEditorOpen = showPopOver ? !isEditorOpen : false\" [class.disabled]=\"disabled\">\n <div class=\"fwe-color-label\" [style.opacity]=\"isEditorOpen ? 0 : 1\">\n {{ label }}\n </div>\n <div class=\"fwe-color-container\">\n <div\n class=\"fwe-color-box\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [style.background]=\"color\"\n [style.border-color]=\"getBorderColor()\"\n >\n <svg\n *ngIf=\"!color\"\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n </div>\n <div class=\"fwe-color-indicator-text\" *ngIf=\"text\">\n {{ text }}\n </div>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isEditorOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n [cdkConnectedOverlayViewportMargin]=\"32\"\n (backdropClick)=\"isEditorOpen = false\"\n >\n <div class=\"fwe-popover-container\">\n <div class=\"fwe-triangle\"></div>\n <div class=\"fwe-popover\" #popoverContent>\n <div class=\"fwe-color-label fwe-mb-s\">\n {{ label }}\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n</div>\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Input, Directive } from '@angular/core';\n\n@Directive()\nexport class ValueAccessorBaseDirective<T> implements ControlValueAccessor {\n @Input() disabled = false;\n\n protected innerValue: T;\n\n protected changed = new Array<(value: T) => void>();\n protected touched = new Array<() => void>();\n\n get value(): T {\n return this.innerValue;\n }\n\n set value(value: T) {\n if (this.innerValue !== value) {\n this.innerValue = value;\n this.changed.forEach(f => f(value));\n }\n }\n\n touch() {\n this.touched.forEach(f => f());\n }\n\n writeValue(value: T) {\n this.innerValue = value;\n }\n\n registerOnChange(fn: (value: T) => void) {\n this.changed.push(fn);\n }\n\n registerOnTouched(fn: () => void) {\n this.touched.push(fn);\n }\n\n setDisabledState?(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n SimpleChanges,\n OnChanges,\n ViewChild,\n TemplateRef,\n AfterViewInit,\n ViewRef,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'fng-segment-control',\n templateUrl: './segment-control.component.html',\n styleUrls: ['./segment-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SegmentControlComponent implements OnInit, OnChanges, AfterViewInit {\n id: string;\n view: ViewRef;\n viewMode: 'text' | 'icon' | 'icon-text';\n\n @Input() name: string;\n @Input() value: any;\n @Input() label: string;\n @Input() icon: string;\n @Input() iconOnly: boolean;\n @Input() checked: boolean;\n @Input() disabled: boolean;\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('tpl') tpl: TemplateRef<any>;\n\n ngOnInit(): void {\n this.id = (Math.random() * Date.now()).toString().replace('.', '-');\n this.viewMode = 'text';\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (null != changes.icon && null != changes.icon.currentValue) {\n this.icon = `fwe-icon-${this.icon}`;\n }\n\n if (null != changes.iconOnly && null != changes.iconOnly.currentValue) {\n this.viewMode = changes.iconOnly.currentValue === true ? 'icon' : 'icon-text';\n }\n }\n\n ngAfterViewInit(): void {\n this.view = this.tpl.createEmbeddedView(null);\n }\n\n onChange(event: { target: HTMLInputElement }) {\n this.change.emit(event.target.value);\n }\n}\n","<ng-template #tpl>\n <input\n (change)=\"onChange($event)\"\n class=\"fwe-segment-input\"\n type=\"radio\"\n [id]=\"id\"\n [name]=\"name\"\n [value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n />\n <label class=\"fwe-segment-label\" [for]=\"id\">\n <ng-container [ngSwitch]=\"viewMode\">\n <ng-container *ngSwitchCase=\"'icon'\">\n <span class=\"fwe-sr-only\">{{ label }}</span>\n <i aria-hidden=\"true\" class=\"fwe-icon\" [ngClass]=\"icon\"></i>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n {{ label }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'icon-text'\">\n <i aria-hidden=\"true\" class=\"fwe-icon\" [ngClass]=\"icon\"></i>{{ label }}\n </ng-container>\n </ng-container>\n </label>\n</ng-template>\n","import {\n Component,\n ContentChildren,\n Input,\n AfterContentInit,\n SimpleChanges,\n OnChanges,\n AfterViewInit,\n ViewChild,\n ViewContainerRef,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n OnDestroy,\n forwardRef,\n ViewEncapsulation,\n SimpleChange\n} from '@angular/core';\nimport type { QueryList } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ValueAccessorBaseDirective } from '../value-accessor-base';\nimport { SegmentControlComponent } from './segment-control/segment-control.component';\n\nexport interface SegmentComponentConfiguration {\n outline: boolean;\n iconOnly: boolean;\n}\n\n@Component({\n selector: 'fng-segment',\n templateUrl: './segment.component.html',\n styleUrls: ['./segment.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentComponent),\n multi: true\n }\n ]\n})\nexport class SegmentComponent extends ValueAccessorBaseDirective<any> implements OnChanges, AfterContentInit, AfterViewInit, OnDestroy {\n private complete: Subject<boolean> = new Subject();\n\n defaultConfig: SegmentComponentConfiguration = {\n outline: true,\n iconOnly: true\n };\n useIcon = false;\n useIconAndText = false;\n\n @Input() legend = '';\n @Input() config: SegmentComponentConfiguration = this.defaultConfig;\n @ContentChildren(SegmentControlComponent, { descendants: true }) controls: QueryList<SegmentControlComponent>;\n @ViewChild('vc', { read: ViewContainerRef }) vc: ViewContainerRef;\n\n @Output() fngChange = new EventEmitter<any>();\n @Output() change = new EventEmitter<any>();\n\n @Input()\n set value(value: string) {\n if (this.innerValue !== value) {\n this.innerValue = value;\n this.changed.forEach(f => {\n this.fngChange.emit(this.innerValue);\n this.change.emit(this.innerValue);\n return f(value);\n });\n }\n }\n\n constructor(private cd: ChangeDetectorRef) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (null != changes.config && null != changes.config.currentValue) {\n this.config = Object.assign({}, this.defaultConfig, changes.config.currentValue);\n }\n }\n\n ngAfterContentInit(): void {\n if (this.controls.length > 0) {\n this.controls.forEach(component => {\n component.change.pipe(takeUntil(this.complete)).subscribe(val => {\n this.value = val;\n });\n\n if (component.icon != null && this.config.iconOnly === true) {\n this.useIcon = true;\n component.ngOnChanges({\n iconOnly: new SimpleChange(null, true, false)\n });\n }\n\n if (component.icon != null && this.config.iconOnly !== true) {\n this.useIconAndText = true;\n component.ngOnChanges({\n iconOnly: new SimpleChange(null, false, false)\n });\n }\n });\n }\n }\n\n ngAfterViewInit(): void {\n this.html();\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.complete.next(true);\n this.complete.unsubscribe();\n }\n\n private html() {\n this.controls.forEach(component => {\n this.vc.insert(component.view);\n });\n }\n}\n","<fieldset\n class=\"fwe-segment\"\n [ngClass]=\"{\n 'fwe-segment-outline': config.outline,\n 'fwe-segment-icon': useIcon,\n 'fwe-segment-icon-text': useIconAndText\n }\"\n>\n <legend>{{ legend }}</legend>\n <div class=\"fwe-segment-group\">\n <ng-container #vc></ng-container>\n </div>\n</fieldset>\n","import { ElementRef, Input, Output, EventEmitter, Component, ViewChild, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core';\nimport flatpickr from 'flatpickr';\n\nexport interface FlatPickerOptions {\n maxDate?: Date;\n minDate?: Date;\n mode?: 'single' | 'range';\n}\n\n@Component({\n selector: 'fng-flatpickr',\n templateUrl: './flatpickr.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FlatpickrComponent implements OnInit, OnDestroy {\n @Input() date: Date | Date[];\n @Input() options: FlatPickerOptions;\n @Output() dateChange = new EventEmitter<Date | Date[]>();\n\n @ViewChild('datePicker', { static: true }) datePickerRef: ElementRef;\n\n private datePicker: flatpickr.Instance;\n\n ngOnInit() {\n const options: FlatPickerOptions =\n this.options != null\n ? {\n minDate: this.options.minDate || null,\n maxDate: this.options.maxDate || null,\n mode: this.options.mode || 'single'\n }\n : {\n minDate: null,\n maxDate: null,\n mode: 'single'\n };\n this.datePicker = flatpickr(this.datePickerRef.nativeElement, {\n inline: true,\n defaultDate: this.date,\n onChange: c => this.onDateChange(c),\n maxDate: options.maxDate,\n minDate: options.minDate,\n mode: options.mode\n }) as flatpickr.Instance;\n }\n\n ngOnDestroy() {\n if (this.datePicker != null) {\n this.datePicker.destroy();\n }\n }\n\n onDateChange(dateOption: Date | Date[]) {\n const mode = this.options != null && this.options.mode === 'range' ? 'range' : 'single';\n if (mode === 'range' && Array.isArray(dateOption) && dateOption.length === 2) {\n this.dateChange.emit(dateOption);\n }\n if (mode === 'single' && Array.isArray(dateOption) && dateOption.length === 1) {\n this.dateChange.emit(dateOption[0]);\n }\n }\n}\n","<div class=\"fng-flatpickr\">\n <div #datePicker></div>\n</div>\n","import { Component, ViewEncapsulation, forwardRef, Input, ElementRef, ViewChild, ComponentRef, HostListener, HostBinding } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { FlatpickrComponent } from '../../wrappers/flatpickr/flatpickr.component';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { formatDate } from '@angular/common';\nimport { LOCALE_ID, Inject } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport interface DatePickerOptions {\n maxDate?: Date;\n minDate?: Date;\n keepOpenOnDateChange?: boolean;\n}\n\n@Component({\n selector: 'fng-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class DatePickerComponent implements ControlValueAccessor {\n get value(): Date {\n return this.innerValue;\n }\n @Input()\n set value(date: Date) {\n if (!this.disabled) {\n this.innerValue = date;\n if (this.onChange != null) {\n this.onChange(date);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n }\n }\n\n @Input()\n get disabled(): boolean {\n return this.innerDisabled;\n }\n set disabled(value: boolean) {\n this.innerDisabled = coerceBooleanProperty(value);\n }\n protected innerDisabled = false;\n\n @Input() hint: string;\n @Input() error: string;\n @Input() options: DatePickerOptions;\n\n /** A locale code for the locale format rules to use. */\n @Input() locale: string;\n\n /* The date-time components to include. See `DatePipe` for details. */\n @Input() format: string;\n\n /** The time zone. A time zone offset from GMT (such as `'+0430'`) */\n @Input() timezone: string;\n\n @Input()\n get required(): boolean {\n return this.innerRequired;\n }\n set required(value: boolean) {\n this.innerRequired = coerceBooleanProperty(value);\n }\n protected innerRequired = false;\n\n @ViewChild('connector', { static: true }) connector: ElementRef;\n\n @Input()\n @HostBinding('style.width') width: string;\n @HostBinding('style.display') display: string = 'block';\n\n get displayValue(): string {\n if (!this.value) {\n return null;\n }\n const format = this.format || 'mediumDate';\n const locale = this.locale || this.localeDefault;\n const timezone = this.timezone;\n return formatDate(this.value, format, locale, timezone);\n }\n\n datePickerRef: OverlayRef;\n private innerValue: Date;\n private complete = new Subject();\n private datePicker: ComponentRef<FlatpickrComponent>;\n\n constructor(private overlay: Overlay, @Inject(LOCALE_ID) private localeDefault: string) {}\n\n onTouched: () => any;\n onChange: (date: Date) => any;\n\n @HostListener('document:keydown', ['$event'])\n hide(event: KeyboardEvent) {\n if (event.key === 'Escape' || event.key === 'Tab') {\n this.dispose();\n }\n }\n\n onDateChange(date: Date) {\n this.value = date;\n }\n\n writeValue(date: Date): void {\n this.innerValue = date;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n toggle(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled) {\n if (this.datePickerRef == null) {\n this.datePickerRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'fng-date-picker-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.connector.nativeElement)\n .withPositions([\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: -12,\n offsetX: -10,\n panelClass: ['flatpickr-calendar', 'open']\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: 4,\n offsetX: -10,\n panelClass: ['flatpickr-calendar', 'open']\n }\n ])\n .withFlexibleDimensions(false)\n .withPush(false)\n });\n const datePickerPortal = new ComponentPortal(FlatpickrComponent);\n this.datePicker = this.datePickerRef.attach(datePickerPortal);\n this.datePicker.instance.options = this.options;\n this.datePicker.instance.date = this.value;\n this.datePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe((c: Date) => {\n this.onDateChange(c);\n if (this.options == null || !this.options.keepOpenOnDateChange) {\n this.dispose();\n }\n });\n this.datePickerRef\n .backdropClick()\n .pipe(takeUntil(this.complete))\n .subscribe(() => this.dispose());\n this.datePicker.instance.ngOnInit();\n } else {\n this.dispose();\n }\n }\n }\n\n private dispose() {\n if (this.datePickerRef != null) {\n this.datePickerRef.detach();\n this.datePickerRef.dispose();\n this.datePickerRef = null;\n }\n if (this.complete != null) {\n this.complete.next();\n this.complete.complete();\n }\n }\n}\n","<label #connector class=\"fng-date-picker fwe-input-text fwe-input-text-icon\" (click)=\"toggle($event)\">\n <i class=\"fwe-icon fwe-icon-time-calendar\" [class.fwe-color-hero]=\"datePickerRef != null\" [class.fwe-color-control-disabled]=\"disabled\"></i>\n <input\n aria-label=\"picked date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"datePickerRef != null\"\n [value]=\"displayValue\"\n [disabled]=\"disabled\"\n />\n <span class=\"fwe-input-text-label\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n</label>\n","import {\n Component,\n ViewEncapsulation,\n forwardRef,\n Input,\n ElementRef,\n ViewChild,\n ComponentRef,\n HostListener,\n Output,\n EventEmitter,\n HostBinding\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { FlatpickrComponent } from '../../wrappers/flatpickr/flatpickr.component';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { LOCALE_ID, Inject } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport interface DateRangePickerOptions {\n maxDate?: Date;\n minDate?: Date;\n keepOpenOnDateChange?: boolean;\n}\n\n@Component({\n selector: 'fng-date-range-picker',\n templateUrl: './date-range-picker.component.html',\n styleUrls: ['./date-range-picker.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateRangePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class DateRangePickerComponent implements ControlValueAccessor {\n get value(): Date[] {\n return this.innerValue;\n }\n @Input()\n set value(dateRange: Date[]) {\n if (!this.disabled) {\n this.innerValue = dateRange;\n if (this.onChange != null) {\n this.onChange(dateRange);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n this.fngChange.emit(this.innerValue);\n this.change.emit(this.innerValue);\n }\n }\n\n @Input()\n get disabled(): boolean {\n return this.innerDisabled;\n }\n set disabled(value: boolean) {\n this.innerDisabled = coerceBooleanProperty(value);\n }\n protected innerDisabled = false;\n\n @Input() hint: string;\n @Input() error: string;\n\n /** A locale code for the locale format rules to use. */\n @Input() locale: string;\n\n /* The date-time components to include. See `DatePipe` for details. */\n @Input() format: string;\n\n /** The time zone. A time zone offset from GMT (such as `'+0430'`) */\n @Input() timezone: string;\n\n @Input() options: DateRangePickerOptions;\n\n @Input()\n get required(): boolean {\n return this.innerRequired;\n }\n set required(value: boolean) {\n this.innerRequired = coerceBooleanProperty(value);\n }\n protected innerRequired = false;\n\n @Input()\n @HostBinding('style.width') width: string;\n @HostBinding('style.display') display: string = 'block';\n\n @Output() fngChange = new EventEmitter<any>();\n @Output() change = new EventEmitter<any>();\n\n @ViewChild('connector', { static: true }) connector: ElementRef;\n\n get fromDateDisplayValue(): string {\n const v = this.value;\n if (!v || v.length !== 2) {\n return null;\n }\n const from = this.value[0];\n const format = this.format || 'mediumDate';\n const locale = this.locale || this.localeDefault;\n const timezone = this.timezone;\n return formatDate(from, format, locale, timezone);\n }\n\n get toDateDisplayValue(): string {\n const v = this.value;\n if (!v || v.length !== 2) {\n return null;\n }\n const to = this.value[1];\n const format = this.format || 'mediumDate';\n const locale = this.locale || this.localeDefault;\n const timezone = this.timezone;\n return formatDate(to, format, locale, timezone);\n }\n\n dateRangePickerRef: OverlayRef;\n\n private innerValue: Date[];\n private complete = new Subject();\n private datePicker: ComponentRef<FlatpickrComponent>;\n\n constructor(private overlay: Overlay, @Inject(LOCALE_ID) private localeDefault: string) {}\n\n onTouched: () => any;\n onChange: (dateRange: Date[]) => any;\n\n @HostListener('document:keydown', ['$event'])\n hide(event: KeyboardEvent) {\n if (event.key === 'Escape' || event.key === 'Tab') {\n this.dispose();\n }\n }\n\n onDateChange(dateRange: Date[]) {\n this.value = dateRange;\n }\n\n writeValue(dateRange: Date[]): void {\n this.innerValue = dateRange;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n toggle(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!this.disabled) {\n if (this.dateRangePickerRef == null) {\n this.dateRangePickerRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'fng-date-picker-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.connector.nativeElement)\n .withPositions([\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: -12,\n offsetX: -10,\n panelClass: ['flatpickr-calendar', 'open']\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: 4,\n offsetX: -10,\n panelClass: ['flatpickr-calendar', 'open']\n }\n ])\n .withFlexibleDimensions(false)\n .withPush(false)\n });\n const datePickerPortal = new ComponentPortal(FlatpickrComponent);\n this.datePicker = this.dateRangePickerRef.attach(datePickerPortal);\n this.datePicker.instance.options = {\n mode: 'range',\n minDate: this.options != null && this.options.minDate != null ? this.options.minDate : null,\n maxDate: this.options != null && this.options.maxDate != null ? this.options.maxDate : null\n };\n this.datePicker.instance.date = this.value;\n this.datePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe((c: Date[]) => {\n this.onDateChange(c);\n if (this.options == null || !this.options.keepOpenOnDateChange) {\n this.dispose();\n }\n });\n this.dateRangePickerRef\n .backdropClick()\n .pipe(takeUntil(this.complete))\n .subscribe(() => this.dispose());\n this.datePicker.instance.ngOnInit();\n } else {\n this.dispose();\n }\n }\n }\n\n private dispose() {\n if (this.dateRangePickerRef != null) {\n this.dateRangePickerRef.detach();\n this.dateRangePickerRef.dispose();\n this.dateRangePickerRef = null;\n }\n if (this.complete != null) {\n this.complete.next();\n this.complete.complete();\n }\n }\n}\n","<div #connector class=\"fng-date-range-picker\" (click)=\"toggle($event)\">\n <label class=\"fwe-input-text fwe-input-text-icon\">\n <i\n class=\"fwe-icon fwe-icon-time-calendar\"\n [class.fwe-color-hero]=\"dateRangePickerRef != null\"\n [class.fwe-color-control-disabled]=\"disabled\"\n ></i>\n <div class=\"fng-date-range-picker-inputs\" [class.fng-date-range-picker-inputs--disabled]=\"disabled\">\n <input\n aria-label=\"picked start date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"fromDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n <input\n aria-label=\"picked end date\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"dateRangePickerRef != null\"\n [value]=\"toDateDisplayValue\"\n [disabled]=\"disabled\"\n />\n </div>\n <span class=\"fwe-input-text-label\" [class.fwe-color-text-disabled]=\"disabled\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n </label>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'fng-time-picker-dropdown',\n templateUrl: './time-picker-dropdown.component.html',\n styleUrls: ['./time-picker-dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TimePickerDropdownComponent implements AfterViewInit {\n @Input() date: Date;\n @Input() showSeconds = false;\n @Input() timeFormat: '12' | '24' = '24';\n @Output() dateChange = new EventEmitter<{ date: Date; close: boolean }>();\n\n @ViewChild('hoursInput') hoursInput: ElementRef;\n\n @HostListener('document:keydown', ['$event'])\n hide(event: KeyboardEvent) {\n if (event.key === 'Escape' || event.key === 'Enter') {\n this.onDateChange(true, event.key === 'Escape');\n }\n }\n\n ngAfterViewInit() {\n if (this.hoursInput != null && this.hoursInput.nativeElement != null) {\n (this.hoursInput.nativeElement as HTMLElement).focus();\n }\n }\n\n onHourUp() {\n this.date?.setHours(this.date.getHours() + 1);\n this.onDateChange(false, false);\n }\n\n onHourDown() {\n this.date?.setHours(this.date.getHours() - 1);\n this.onDateChange(false, false);\n }\n\n onMinuteUp() {\n this.date?.setMinutes(this.date.getMinutes() + 1);\n this.onDateChange(false, false);\n }\n\n onMinuteDown() {\n this.date?.setMinutes(this.date.getMinutes() - 1);\n this.onDateChange(false, false);\n }\n\n onSecondUp() {\n this.date?.setSeconds(this.date.getSeconds() + 1);\n this.onDateChange(false, false);\n }\n\n onSecondDown() {\n this.date?.setSeconds(this.date.getSeconds() - 1);\n this.onDateChange(false, false);\n }\n\n onHourChange(event: KeyboardEvent) {\n const max = +(event.target as HTMLInputElement).max;\n const min = +(event.target as HTMLInputElement).min;\n const hour = +(event.target as HTMLInputElement).value;\n this.date?.setHours(hour > max ? max : hour < min ? min : hour);\n }\n\n onMinuteChange(event: KeyboardEvent) {\n const max = +(event.target as HTMLInputElement).max;\n const min = +(event.target as HTMLInputElement).min;\n const minute = +(event.target as HTMLInputElement).value;\n this.date?.setMinutes(minute > max ? max : minute < min ? min : minute);\n }\n\n onSecondChange(event: KeyboardEvent) {\n const max = +(event.target as HTMLInputElement).max;\n const min = +(event.target as HTMLInputElement).min;\n const seconds = +(event.target as HTMLInputElement).value;\n this.date?.setSeconds(seconds > max ? max : seconds < min ? min : seconds);\n }\n\n onDateChange(close: boolean, reset: boolean) {\n if (this.date != null) {\n this.date = new Date(this.date);\n this.dateChange.emit({ date: !reset ? new Date(this.date) : null, close });\n }\n }\n}\n","<div class=\"fwe-timepicker\" [class.fwe-timepicker-am-pm]=\"timeFormat === '12'\">\n <div class=\"fwe-timepicker-spinners\">\n <div class=\"fwe-timepicker-spinners-hours\">\n <button type=\"button\" aria-label=\"hour up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input #hoursInput\n aria-label=\"hours value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n tabindex=\"1\"\n step=\"1\"\n [value]=\"date | date: (timeFormat === '12' ? 'hh' : 'HH')\"\n [attr.max]=\"timeFormat === '12' ? 12 : 23\"\n (input)=\"onHourChange($event)\"\n />\n <button type=\"button\" aria-label=\"hour down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onHourDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div class=\"fwe-timepicker-spinners-minutes\">\n <button type=\"button\" aria-label=\"minute up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"minutes value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"2\"\n [value]=\"date | date:'mm'\"\n (input)=\"onMinuteChange($event)\"\n />\n <button type=\"button\" aria-label=\"minute down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onMinuteDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n <div *ngIf=\"showSeconds\" class=\"fwe-timepicker-spinners-seconds\">\n <button type=\"button\" aria-label=\"seconds up\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondUp()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-expand\"></i>\n </button>\n <input\n aria-label=\"seconds value\"\n class=\"fwe-timepicker-hide-spinners\"\n type=\"number\"\n min=\"0\"\n max=\"59\"\n step=\"1\"\n tabindex=\"3\"\n [value]=\"date | date:'ss'\"\n (input)=\"onSecondChange($event)\"\n />\n <button type=\"button\" aria-label=\"seconds down\" class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onSecondDown()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </button>\n </div>\n </div>\n <span *ngIf=\"timeFormat === '12'\" class=\"fwe-badge fwe-badge-control\">\n {{ date | date:'a' }}\n </span>\n</div>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, ComponentRef, ElementRef, forwardRef, HostBinding, HostListener, Input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TimePickerDropdownComponent } from './time-picker-dropdown/time-picker-dropdown.component';\n\nexport interface TimePickerOptions {\n timeFormat?: '12' | '24';\n showSeconds?: boolean;\n}\n\n@Component({\n selector: 'fng-time-picker',\n templateUrl: './time-picker.component.html',\n styleUrls: ['./time-picker.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class TimePickerComponent implements ControlValueAccessor {\n get value(): Date {\n return this.innerValue;\n }\n @Input()\n set value(date: Date) {\n if (!this.disabled) {\n this.innerValue = date;\n if (this.onChange != null) {\n this.onChange(date);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n }\n }\n\n @Input()\n get disabled(): boolean {\n return this.innerDisabled;\n }\n set disabled(value: boolean) {\n this.innerDisabled = coerceBooleanProperty(value);\n }\n\n @Input()\n get required(): boolean {\n return this.innerRequired;\n }\n set required(value: boolean) {\n this.innerRequired = coerceBooleanProperty(value);\n }\n protected innerRequired = false;\n\n @Input() hint: string;\n @Input() error: string;\n @Input() options: TimePickerOptions;\n\n @Input()\n @HostBinding('style.width') width: string;\n @HostBinding('style.display') display: string = 'block';\n\n @ViewChild('connector', { static: true }) connector: ElementRef;\n\n get timeFormat(): string {\n let timeFormat = 'H:mm';\n if (this.options != null) {\n if (this.options.showSeconds) {\n timeFormat += ':ss';\n }\n if (this.options.timeFormat === '12') {\n timeFormat = timeFormat.toLowerCase() + ' a';\n }\n }\n return timeFormat;\n }\n\n timePickerRef: OverlayRef;\n\n protected innerValue: Date;\n protected innerDisabled = false;\n\n private complete = new Subject();\n private timePicker: ComponentRef<TimePickerDropdownComponent>;\n\n constructor(private overlay: Overlay) {}\n\n onTouched: () => void;\n onChange: (date: Date) => void;\n\n @HostListener('document:keydown', ['$event'])\n hide(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.dispose();\n }\n }\n\n writeValue(date: Date): void {\n this.innerValue = date;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n toggle(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled) {\n if (this.timePickerRef == null && this.connector != null && this.connector.nativeElement != null) {\n const labelWidth = (this.connector.nativeElement as HTMLElement).clientWidth;\n this.timePickerRef = this.overlay.create({\n width: `${labelWidth}px`,\n panelClass: 'fng-first-child-fullwidth',\n hasBackdrop: true,\n backdropClass: 'fng-date-picker-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.connector.nativeElement)\n .withPositions([\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: -12\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: 4\n }\n ])\n .withFlexibleDimensions(false)\n .withPush(false)\n });\n const timePickerPortal = new ComponentPortal(TimePickerDropdownComponent);\n this.timePicker = this.timePickerRef.attach(timePickerPortal);\n this.timePicker.instance.timeFormat = this.options != null && this.options.timeFormat != null ? this.options.timeFormat : '24';\n this.timePicker.instance.showSeconds = this.options != null && this.options.showSeconds != null ? this.options.showSeconds : false;\n this.timePicker.instance.date = new Date(this.value);\n this.timePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe(ev => {\n if (ev.date != null) {\n this.value = ev.date;\n }\n if (ev.close) {\n this.dispose();\n }\n });\n this.timePickerRef\n .backdropClick()\n .pipe(takeUntil(this.complete))\n .subscribe(() => this.dispose());\n } else {\n this.dispose();\n }\n }\n }\n\n private dispose() {\n if (this.timePickerRef != null) {\n this.timePickerRef.detach();\n this.timePickerRef.dispose();\n this.timePickerRef = null;\n }\n if (this.complete != null) {\n this.complete.next();\n this.complete.complete();\n }\n }\n}\n","<label #connector class=\"fng-time-picker fwe-input-text fwe-input-text-icon\" (click)=\"toggle($event)\">\n <i class=\"fwe-icon fwe-icon-time-time\" [class.fwe-color-hero]=\"timePickerRef != null\" [class.fwe-color-control-disabled]=\"disabled\"></i>\n <input\n aria-label=\"picked time\"\n type=\"text\"\n readonly\n [required]=\"required === true || null\"\n [class.fwe-border-hero]=\"timePickerRef != null\"\n [value]=\"value | date: timeFormat\"\n [disabled]=\"disabled\"\n />\n <span class=\"fwe-input-text-label\"><ng-content></ng-content></span>\n <span *ngIf=\"hint\" class=\"fwe-input-text-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fwe-input-text-invalid\">{{ error }}</span>\n</label>\n","import {\n Component,\n ViewEncapsulation,\n Input,\n AfterViewInit,\n SecurityContext,\n ElementRef,\n Renderer2,\n EventEmitter,\n Output,\n forwardRef,\n OnChanges,\n ViewChild,\n SimpleChanges,\n OnInit\n} from '@angular/core';\nimport QuillType from 'quill';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ValueAccessorBaseDirective } from '../value-accessor-base';\n\nexport interface TextEditorConfiguration {\n toolbar?: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n alignCenter?: boolean;\n alignRight?: boolean;\n bulletList?: boolean;\n orderedList?: boolean;\n image?: boolean;\n link?: boolean;\n };\n}\n\n@Component({\n selector: 'fng-text-editor',\n templateUrl: './text-editor.component.html',\n styleUrls: ['./text-editor.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextEditorComponent),\n multi: true\n }\n ]\n})\nexport class TextEditorComponent extends ValueAccessorBaseDirective<string> implements OnInit, AfterViewInit, OnChanges {\n id: string;\n quillEditor!: QuillType;\n editorElem!: HTMLElement;\n defaultConfig: TextEditorConfiguration = {\n toolbar: {\n bold: true,\n italic: true,\n underline: true,\n alignCenter: true,\n alignRight: true,\n bulletList: true,\n orderedList: true,\n image: true,\n link: true\n }\n };\n\n @ViewChild('btnBold') btnBold: ElementRef;\n @ViewChild('btnItalic') btnItalic: ElementRef;\n @ViewChild('btnUnderline') btnUnderline: ElementRef;\n @ViewChild('btnAlignCenter') btnAlignCenter: ElementRef;\n @ViewChild('btnAlignRight') btnAlignRight: ElementRef;\n @ViewChild('btnLink') btnLink: ElementRef;\n @ViewChild('btnUl') btnUl: ElementRef;\n @ViewChild('btnOl') btnOl: ElementRef;\n @ViewChild('btnImage') btnImage: ElementRef;\n\n @Output() fngChange = new EventEmitter<any>();\n @Output() change = new EventEmitter<any>();\n\n @Input() config: TextEditorConfiguration = this.defaultConfig;\n @Input() modules: any;\n @Input() label: string;\n @Input() readOnly: boolean;\n @Input() maxLength: number;\n @Input() error: string;\n @Input() hint: string;\n @Input()\n set value(value: string) {\n if (this.innerValue !== value) {\n this.innerValue = value;\n this.changed.forEach(f => {\n this.fngChange.emit(this.innerValue);\n this.change.emit(this.innerValue);\n return f(value);\n });\n }\n }\n\n get value() {\n return this.innerValue;\n }\n\n // needed to access editor content\n valueGetter = (editorElement: HTMLElement): string | any => {\n let html: string | null = editorElement.querySelector('.ql-editor').innerHTML;\n if (html === '<p><br></p>' || html === '<div><br></div>') {\n html = null;\n }\n return html;\n };\n\n // needed to access editor content\n valueSetter = (quillEditor: QuillType, value: any): any => {\n value = this.domSanitizer.sanitize(SecurityContext.HTML, value);\n value = this.handleWhitespace(value);\n return quillEditor.clipboard.convert(value);\n };\n\n constructor(public elementRef: ElementRef, private renderer: Renderer2, private domSanitizer: DomSanitizer) {\n super();\n }\n\n ngOnInit(): void {\n this.id = (Math.random() * Date.now()).toString().replace('.', '-');\n }\n\n ngAfterViewInit(): void {\n this.editorElem = this.elementRef.nativeElement.querySelector(`#editor-${this.id}`);\n\n this.quillEditor = new QuillType(this.editorElem, {\n modules: { toolbar: `#editor-toolbar-${this.id}`, ...this.modules },\n theme: 'snow',\n scrollingContainer: `#editor-container-${this.id}`\n });\n this.setEditorLabel();\n this.addWhitespaceMatcher();\n this.addImageMatcher();\n\n if (this.innerValue) {\n const content = this.valueSetter(this.quillEditor, this.innerValue);\n this.quillEditor.setContents(content, 'silent');\n this.quillEditor.getModule('history').clear();\n }\n\n this.handle();\n\n this.quillEditor.on('text-change', () => {\n this.value = this.valueGetter(this.editorElem);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.config?.currentValue != null) {\n this.config = { toolbar: { ...this.defaultConfig.toolbar, ...changes.config.currentValue?.toolbar } };\n }\n\n if (!this.quillEditor) {\n return;\n }\n\n this.handle();\n }\n\n writeValue(value: string) {\n if (value === null || value === '') {\n return;\n }\n\n this.innerValue = value;\n\n if (!this.quillEditor) {\n return;\n }\n\n const content = this.valueSetter(this.quillEditor, value);\n this.quillEditor.setContents(content);\n }\n\n setDisabledState(isDisabled: boolean = this.disabled): void {\n this.disabled = isDisabled;\n if (this.quillEditor) {\n if (isDisabled) {\n this.quillEditor.disable();\n this.renderer.setAttribute(this.elementRef.nativeElement, 'disabled', 'disabled');\n } else {\n if (!this.readOnly) {\n this.quillEditor.enable();\n }\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'disabled');\n }\n }\n }\n\n setReadOnlyState() {\n this.quillEditor.enable(!this.readOnly);\n }\n\n delegate(event: any, action: string) {\n let btn: HTMLElement = null;\n switch (action) {\n case 'bold':\n btn = this.btnBold.nativeElement;\n btn.click();\n break;\n case 'italic':\n btn = this.btnItalic.nativeElement;\n btn.click();\n break;\n case 'underline':\n btn = this.btnUnderline.nativeElement;\n btn.click();\n break;\n case 'align-center':\n btn = this.btnAlignCenter.nativeElement;\n btn.click();\n break;\n case 'align-right':\n btn = this.btnAlignRight.nativeElement;\n btn.click();\n break;\n case 'link':\n btn = this.btnLink.nativeElement;\n btn.click();\n break;\n case 'ul':\n btn = this.btnUl.nativeElement;\n btn.click();\n break;\n case 'ol':\n btn = this.btnOl.nativeElement;\n btn.click();\n break;\n case 'image':\n btn = this.btnImage.nativeElement;\n btn.click();\n break;\n default:\n break;\n }\n }\n\n currentLength(): number {\n return this.value?.length;\n }\n\n hideDivider(name: string) {\n const linkOrImage = this.config.toolbar.image || this.config.toolbar.link;\n const lists = this.config.toolbar.bulletList || this.config.toolbar.orderedList;\n const typos = this.config.toolbar.bold || this.config.toolbar.italic || this.config.toolbar.underline;\n const textAlign = this.config.toolbar.alignCenter || this.config.toolbar.alignRight;\n switch (name) {\n case 'typo':\n return !typos || (!textAlign && !linkOrImage && !lists);\n case 'text-align':\n return !textAlign || (!linkOrImage && !lists);\n case 'lists':\n return !lists || !linkOrImage;\n case 'image':\n return !this.config.toolbar.image || !this.config.toolbar.link;\n default:\n break;\n }\n }\n\n private setEditorLabel() {\n const editorDiv = this.elementRef.nativeElement.querySelector('.ql-editor');\n this.renderer.setAttribute(editorDiv, 'role', 'textbox');\n this.renderer.setAttribute(editorDiv, 'aria-labelledby', `editor-label-${this.id}`);\n this.renderer.setAttribute(editorDiv, 'aria-multiline', 'true');\n }\n\n private handle() {\n this.setReadOnlyState();\n this.setDisabledState();\n }\n\n private addWhitespaceMatcher() {\n // set up a matcher that replaces placeholder ###tab### with \\t in delta again\n this.quillEditor.clipboard.addMatcher('p', (_node, delta) => {\n let str = JSON.stringify(delta);\n str = str.replace(/###tab###/g, '\\\\t');\n delta = JSON.parse(str);\n return delta;\n });\n }\n\n private addImageMatcher() {\n // set up a matcher that does allow/disallow to paste images corresponding to config settings\n this.quillEditor.clipboard.addMatcher('img', (_node, delta) => {\n // allowed, passthru delta\n if (this.config.toolbar.image === true) {\n return delta;\n }\n\n // not allowed, remove image by setting up a new delta\n const Delta = QuillType.import('quill-delta');\n return new Delta().insert('');\n });\n }\n\n private handleWhitespace(value: string): string {\n // set a placeholder for tab entity to avoid that quill removes it\n return value.replace(/	/gi, '###tab###');\n }\n}\n","<label class=\"fwe-input-text\" [class.fwe-disabled]=\"disabled\">\n <div class=\"fng-editor-toolbar\" [id]=\"'editor-toolbar-' + id\">\n <span class=\"ql-formats fwe-d-none\">\n <select class=\"ql-size\" aria-hidden=\"true\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n <span class=\"ql-formats fng-editor-toolbar-buttons-container fwe-mr-3\">\n <ng-container *ngIf=\"config?.toolbar?.bold\">\n <button type=\"button\" #btnBold class=\"ql-bold fwe-d-none action-bold\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline || config?.toolbar?.italic\"\n (click)=\"delegate($event, 'bold')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-bold\">B</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.italic\">\n <button type=\"button\" #btnItalic class=\"ql-italic fwe-d-none action-italic\" aria-hidden=\"true\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.underline\"\n (click)=\"delegate($event, 'italic')\"\n [disabled]=\"disabled\"\n >\n <div class=\"fng-button-text fng-text-italic\">I</div>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.underline\">\n <button type=\"button\" #btnUnderline class=\"ql-underline fwe-d-none action-underline\" aria-hidden=\"true\"></button>\n <button type=\"button\" class=\"fwe-btn fng-button\" (click)=\"delegate($event, 'underline')\" [disabled]=\"disabled\">\n <div class=\"fng-button-text fng-text-underline\">U</div>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('typo')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.alignCenter\">\n <button\n type=\"button\"\n #btnAlignCenter\n class=\"ql-align fwe-d-none action-align-center\"\n aria-hidden=\"true\"\n value=\"center\"\n ></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.alignRight\"\n (click)=\"delegate($event, 'align-center')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-center fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"config?.toolbar?.alignRight\">\n <button type=\"button\" #btnAlignRight class=\"ql-align fwe-d-none action-align-right\" aria-hidden=\"true\" value=\"right\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n (click)=\"delegate($event, 'align-right')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fng-icon-text-align-right fwe-pr-0\" [class.fng-gray]=\"disabled\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('text-align')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.bulletList\">\n <button type=\"button\" #btnUl class=\"ql-list fwe-d-none action-ul\" aria-hidden=\"true\" value=\"bullet\"></button>\n <button\n type=\"button\"\n class=\"fwe-btn fng-btn-toolbar-list fng-button\"\n [class.fwe-mr-3]=\"config?.toolbar?.orderedList\"\n (click)=\"delegate($event, 'ul')\"\n [disabled]=\"disabled\"\n >\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-list-list-view fwe-pr-0\"></i>\n </button>\n </ng-container>\n <ng-container *ngIf=\"config?.toolbar?.orderedList\">\n <button type=\"button\" #btnOl class=\"ql-list fwe-d-none action-ol\" aria-hidden=\"true\" value=\"ordered\"></button>\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'ol')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-enumeration fwe-pr-0\"></i>\n </button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('lists')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.image\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'image')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-image-image fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnImage class=\"ql-image fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n\n <div *ngIf=\"!hideDivider('image')\" class=\"fng-divider-y fwe-mx-4\"></div>\n\n <ng-container *ngIf=\"config?.toolbar?.link\">\n <button type=\"button\" class=\"fwe-btn fng-btn-toolbar-list fng-button\" (click)=\"delegate($event, 'link')\" [disabled]=\"disabled\">\n <i class=\"fwe-icon fwe-icon-toolbar-list fwe-icon-file-link fwe-pr-0\"></i>\n </button>\n <button type=\"button\" #btnLink class=\"ql-link fwe-d-none\" aria-hidden=\"true\"></button>\n </ng-container>\n </span>\n </div>\n <div class=\"fng-editor-container\" [id]=\"'editor-container-' + id\">\n <div class=\"fng-editor\" [id]=\"'editor-' + id\"></div>\n </div>\n <span class=\"fwe-input-text-label\" [id]=\"'editor-label-' + id\">{{ label }}</span>\n <span *ngIf=\"hint\" class=\"fng-text-editor-info\">{{ hint }}</span>\n <span *ngIf=\"error\" class=\"fng-text-editor-invalid\">{{ error }}</span>\n <span *ngIf=\"maxLength > 0 && value != null\" class=\"fwe-input-text-count\">{{ currentLength() }} / {{ maxLength }}</span>\n</label>\n","import { HostListener, ElementRef, Directive } from '@angular/core';\n\n@Directive()\nexport abstract class ContainerHostDirective {\n constructor(public elementRef: ElementRef) {}\n\n @HostListener('document:click', ['$event.target'])\n public onHostClick(target: Element) {\n if (this.elementRef && this.elementRef.nativeElement) {\n const containsTarget = this.elementRef.nativeElement.contains(target);\n if (!containsTarget) {\n this.onOutsideClick();\n } else {\n this.onContainerClick();\n }\n }\n }\n\n abstract onOutsideClick(): void;\n abstract onContainerClick(): void;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { SwitchComponent } from './switch/switch.component';\nimport { RadioComponent, RadioGroupDirective } from './radio/radio.component';\nimport { UniqueSelectionDispatcher } from './unique-selection-dispatcher';\nimport { SelectComponent } from './select/select.component';\nimport { TextInputComponent } from './text-input/text-input.component';\nimport { TextAreaComponent } from './text-area/text-area.component';\nimport { ColorPickerComponent } from './color-picker/color-picker.component';\nimport { SliderComponent } from './slider/slider.component';\nimport { ColorIndicatorComponent } from './color-indicator/color-indicator.component';\nimport { SegmentComponent } from './segment/segment.component';\nimport { SegmentControlComponent } from './segment/segment-control/segment-control.component';\nimport { DatePickerComponent } from './date-picker/date-picker.component';\nimport { FlatpickrComponent } from '../wrappers/flatpickr/flatpickr.component';\nimport { DateRangePickerComponent } from './date-range-picker/date-range-picker.component';\nimport { TimePickerComponent } from './time-picker/time-picker.component';\nimport { TimePickerDropdownComponent } from './time-picker/time-picker-dropdown/time-picker-dropdown.component';\nimport { TextEditorComponent } from './text-editor/text-editor.component';\n\nexport * from './checkbox/checkbox.component';\nexport * from './switch/switch.component';\nexport * from './radio/radio.component';\nexport * from './select/select.component';\nexport * from './select/select-option/select-option.component';\nexport * from './select/chip-text.pipe';\nexport * from './text-input/text-input.component';\nexport * from './text-area/text-area.component';\nexport * from './color-picker/color-picker.component';\nexport * from './slider/slider.component';\nexport * from './color-indicator/color-indicator.component';\nexport * from './segment/segment.component';\nexport * from './segment/segment-control/segment-control.component';\nexport * from './date-picker/date-picker.component';\nexport * from './date-range-picker/date-range-picker.component';\nexport * from './time-picker/time-picker.component';\nexport * from './time-picker/time-picker-dropdown/time-picker-dropdown.component';\nexport * from './text-editor/text-editor.component';\nexport { ValueAccessorBaseDirective as ValueAccessorBase } from './value-accessor-base';\nexport { ContainerHostDirective as ContainerHost } from './container-host';\nimport { ChipTextPipe } from './select/chip-text.pipe';\nimport { SelectOptionComponent } from './select/select-option/select-option.component';\n\n@NgModule({\n declarations: [\n CheckboxComponent,\n SwitchComponent,\n RadioGroupDirective,\n RadioComponent,\n TextInputComponent,\n TextAreaComponent,\n ColorIndicatorComponent,\n FlatpickrComponent,\n DatePickerComponent,\n DateRangePickerComponent,\n ColorPickerComponent,\n SelectComponent,\n SelectOptionComponent,\n SliderComponent,\n SegmentComponent,\n SegmentControlComponent,\n TimePickerComponent,\n TimePickerDropdownComponent,\n TextEditorComponent,\n ChipTextPipe\n ],\n imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule],\n exports: [\n ReactiveFormsModule,\n FormsModule,\n CheckboxComponent,\n SwitchComponent,\n RadioGroupDirective,\n RadioComponent,\n TextInputComponent,\n TextAreaComponent,\n ColorIndicatorComponent,\n DatePickerComponent,\n DateRangePickerComponent,\n ColorPickerComponent,\n SelectComponent,\n SelectOptionComponent,\n SliderComponent,\n SegmentComponent,\n SegmentControlComponent,\n TimePickerComponent,\n TimePickerDropdownComponent,\n TextEditorComponent,\n ChipTextPipe\n ],\n providers: [UniqueSelectionDispatcher]\n})\nexport class FestoAngularFormsModule {}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Modal } from '../index';\n\nexport interface AlertData {\n title: string;\n subtitle?: string;\n body: string;\n alertType: 'info' | 'warning' | 'error';\n cancel?: string;\n ok?: string;\n strong?: boolean;\n}\n\n@Component({\n selector: 'fng-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AlertComponent implements AfterViewInit, Modal<AlertData, any> {\n @Input() data: AlertData;\n @Output() close = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n @ViewChild('closeBtn') closeBtn: ElementRef;\n\n @HostListener('window:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.key === 'Esc' || event.key === 'Escape') {\n this.onClose();\n }\n }\n\n ngAfterViewInit() {\n if (this.closeBtn) {\n (this.closeBtn.nativeElement as HTMLElement).focus();\n }\n }\n\n onClose() {\n this.close.emit();\n }\n\n onOk() {\n this.ok.emit();\n }\n\n onCancel() {\n this.cancel.emit();\n }\n}\n","<div\n class=\"fwe-modal\"\n [ngClass]=\"{\n 'fwe-modal--with-indicator-bar': data?.strong === true,\n 'fwe-modal--warning': data?.alertType === 'warning',\n 'fwe-modal--error': data?.alertType === 'error',\n 'fwe-modal--info': data?.alertType === 'info'\n }\"\n>\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">\n <i\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-warning': data?.alertType === 'warning',\n 'fwe-icon-status-failure': data?.alertType === 'error',\n 'fwe-icon-status-check-status': data?.alertType === 'info'\n }\"\n ></i\n >{{ data?.subtitle }}\n </h2>\n <h1 class=\"fwe-modal-h1\">\n <i\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-warning': data?.alertType === 'warning',\n 'fwe-icon-status-failure': data?.alertType === 'error',\n 'fwe-icon-status-check-status': data?.alertType === 'info'\n }\"\n ></i\n >{{ data?.title }}\n </h1>\n </div>\n <div class=\"fwe-modal-body\">\n <p>{{ data?.body }}</p>\n </div>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons fwe-modal-buttons--full-width\">\n <button\n *ngIf=\"data?.cancel\"\n type=\"button\"\n aria-label=\"Cancel\"\n class=\"fwe-btn fwe-btn-lg\"\n [ngClass]=\"{ 'fwe-btn-link': data?.strong === true && (data?.alertType === 'warning' || data?.alertType === 'error') }\"\n (click)=\"onCancel()\"\n >\n {{ data?.cancel }}\n </button>\n <button *ngIf=\"data?.ok\" type=\"button\" aria-label=\"Ok\" class=\"fwe-btn fwe-btn-lg fwe-btn-hero\" (click)=\"onOk()\">\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { Modal } from '../index';\n\nexport interface ConfirmData {\n title: string;\n subtitle?: string;\n body: string;\n cancel?: string;\n ok?: string;\n}\n\n@Component({\n selector: 'fng-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class ConfirmComponent implements AfterViewInit, Modal<ConfirmData, any> {\n hasScrollableContent: boolean = true;\n\n @Input() data: ConfirmData;\n @Output() close = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n @ViewChild('closeBtn') closeBtn: ElementRef;\n @ViewChild('content') content: ElementRef;\n\n @HostListener('window:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.key === 'Esc' || event.key === 'Escape') {\n this.onClose();\n }\n }\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n if (this.closeBtn) {\n (this.closeBtn.nativeElement as HTMLElement).focus();\n }\n\n if (this.content) {\n const el: HTMLElement = this.content.nativeElement;\n const clientHeight = el.getBoundingClientRect().height;\n const scrollHeight = el.scrollHeight;\n this.hasScrollableContent = this.shouldScroll(clientHeight, scrollHeight);\n this.cd.detectChanges();\n }\n }\n\n onClose() {\n this.close.emit();\n }\n\n onOk() {\n this.ok.emit();\n }\n\n onCancel() {\n this.cancel.emit();\n }\n\n private shouldScroll(clientHeight: number, scrollHeight: number): boolean {\n return scrollHeight > clientHeight;\n }\n}\n","<div class=\"fwe-modal\" [ngClass]=\"{ 'fwe-modal--with-scrollable-content': hasScrollableContent }\">\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">{{ data?.subtitle }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ data?.title }}</h1>\n </div>\n <div class=\"fwe-modal-body\" #content>\n <p>{{ data?.body }}</p>\n </div>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons\" [ngClass]=\"{ 'fwe-modal-buttons--full-width': !hasScrollableContent }\">\n <button *ngIf=\"data?.cancel\" type=\"button\" aria-label=\"Cancel\" class=\"fwe-btn fwe-btn-lg\" (click)=\"onCancel()\">\n {{ data?.cancel }}\n </button>\n <button *ngIf=\"data?.ok\" type=\"button\" aria-label=\"Ok\" class=\"fwe-btn fwe-btn-lg fwe-btn-hero\" (click)=\"onOk()\">\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { AbstractControlOptions, AsyncValidatorFn, FormBuilder, FormGroup, ValidatorFn } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Modal } from '../index';\n\nexport interface PromptData {\n title: string;\n subtitle?: string;\n label: string;\n hint?: string;\n errors?: { [key: string]: string };\n cancel?: string;\n ok?: string;\n value?: string;\n validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null;\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null;\n}\n\n@Component({\n selector: 'fng-prompt',\n templateUrl: './prompt.component.html',\n styleUrls: ['./prompt.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PromptComponent implements OnInit, AfterViewInit, OnDestroy, Modal<PromptData, any> {\n @Input() data: PromptData;\n @Output() close = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n @ViewChild('closeBtn') closeBtn: ElementRef;\n\n form: FormGroup;\n error = '';\n\n get text(): string {\n return this.form?.get('text')?.value;\n }\n\n get valid(): boolean {\n return this.form?.get('text')?.valid;\n }\n\n private complete: Subject<boolean> = new Subject();\n\n constructor(private formBuilder: FormBuilder) {}\n\n @HostListener('window:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.key === 'Esc' || event.key === 'Escape') {\n this.onClose();\n }\n }\n\n ngOnInit(): void {\n const text = this.data?.value || '';\n\n this.form = this.formBuilder.group({\n text: this.formBuilder.control(text, this.data?.validatorOrOpts, this.data?.asyncValidator)\n });\n\n if (text) {\n this.form.get('text').markAsDirty();\n }\n\n this.form\n .get('text')\n .statusChanges.pipe(takeUntil(this.complete))\n .subscribe(sc => {\n if (sc === 'INVALID') {\n this.handleErrors();\n } else {\n this.error = '';\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.closeBtn) {\n (this.closeBtn.nativeElement as HTMLElement).focus();\n }\n }\n\n ngOnDestroy(): void {\n this.complete.next(true);\n this.complete.unsubscribe();\n }\n\n onClose() {\n this.close.emit();\n }\n\n onOk() {\n if (this.valid) {\n this.ok.emit(this.text);\n }\n }\n\n onCancel() {\n this.cancel.emit();\n }\n\n private handleErrors() {\n const e = this.form.get('text').errors;\n const key = Object.keys(e)[0];\n if (this.data.errors != null && this.data.errors[key]) {\n this.error = this.data.errors[key];\n } else {\n this.error = 'Prompt input is invalid.';\n }\n }\n}\n","<div class=\"fwe-modal\">\n <div class=\"fwe-modal-close\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-btn fwe-btn-link fwe-dark\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data?.subtitle\" class=\"fwe-modal-h2\">{{ data?.subtitle }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ data?.title }}</h1>\n </div>\n <form [formGroup]=\"form\" class=\"fwe-modal-body\">\n <fng-text-input formControlName=\"text\" [label]=\"data?.label\" [hint]=\"data?.hint\" type=\"text\" [error]=\"error\"></fng-text-input>\n </form>\n <div class=\"fwe-modal-footer\" *ngIf=\"data?.cancel || data?.ok\">\n <div class=\"fwe-modal-buttons\">\n <button *ngIf=\"data?.cancel\" type=\"button\" aria-label=\"Cancel\" class=\"fwe-btn\" (click)=\"onCancel()\">\n {{ data?.cancel }}\n </button>\n <button *ngIf=\"data?.ok\" type=\"button\" aria-label=\"Ok\" class=\"fwe-btn fwe-btn-hero\" (click)=\"onOk()\">\n {{ data?.ok }}\n </button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nimport { FestoAngularFormsModule } from '../../forms/forms.module';\nimport { AlertComponent } from './alert/alert.component';\nimport { ConfirmComponent } from './confirm/confirm.component';\nimport { PromptComponent } from './prompt/prompt.component';\n\nexport * from './index';\nexport * from './alert/alert.component';\nexport * from './confirm/confirm.component';\nexport * from './prompt/prompt.component';\n\n@NgModule({\n declarations: [AlertComponent, ConfirmComponent, PromptComponent],\n imports: [CommonModule, RouterModule, OverlayModule, FestoAngularFormsModule],\n exports: [AlertComponent, ConfirmComponent, PromptComponent],\n providers: []\n})\nexport class FestoAngularModalsModule {}\n","import { AfterViewInit, Component, EventEmitter, HostBinding, Input, OnDestroy, Output, ViewEncapsulation } from '@angular/core';\nimport { animate, sequence, state, style, transition, trigger } from '@angular/animations';\nimport { SnackbarData } from './snackbar.models';\n\n@Component({\n selector: 'fng-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('appearDisappear', [\n state('init', style({ opacity: 0 })),\n state(\n 'first',\n style({\n opacity: 1,\n transform: 'translateY(0)'\n })\n ),\n state('fadeIn', style({ opacity: '1' })),\n transition('void => fadeIn', [style({ opacity: 0 }), animate('0.6s ease-out')]),\n transition('void => first', [style({ transform: 'translateY(100px)' }), animate('0.6s ease-out')]),\n transition(\n ':leave',\n sequence([\n style({ 'margin-bottom': '24px' }),\n animate('0.3s ease-out', style({ opacity: 0 })),\n animate('0.3s ease-out', style({ height: '0px', 'margin-bottom': '0px' }))\n ])\n )\n ])\n ]\n})\nexport class SnackbarComponent implements AfterViewInit, OnDestroy {\n @Input() data: SnackbarData;\n @Output() close = new EventEmitter<any>();\n @Output() action = new EventEmitter<any>();\n\n @HostBinding('style.display') blockDisplay = 'block';\n @HostBinding('@appearDisappear') animationState: 'init' | 'first' | 'fadeIn' = 'init';\n\n private timeout: any;\n\n ngAfterViewInit() {\n if (this.data && this.data.disappearAfter) {\n this.timeout = setTimeout(() => this.onClose(), this.data.disappearAfter);\n }\n }\n\n ngOnDestroy() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n }\n\n onAction() {\n this.action.emit();\n }\n\n onClose() {\n this.close.emit();\n }\n}\n","<div\n [ngClass]=\"{\n 'fwe-snackbar': true,\n 'fwe-snackbar-b': data?.variant === 'b',\n 'fwe-snackbar-c': data?.variant === 'c',\n 'fwe-snackbar-warning': data?.type === 'warning',\n 'fwe-snackbar-error': data?.type === 'error',\n 'fwe-snackbar-shadow': data?.darkBackground\n }\"\n>\n <i\n *ngIf=\"data?.type\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-info': data?.type === 'info',\n 'fwe-icon-status-warning': data?.type === 'warning',\n 'fwe-icon-status-failure': data?.type === 'error'\n }\"\n ></i>\n <span>{{ data?.text }}</span>\n <button *ngIf=\"data?.action\" aria-label=\"UserAction\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onAction()\">\n {{ data?.action }}\n </button>\n <button *ngIf=\"data?.showClose\" aria-label=\"Close\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { SnackbarData } from './snackbar.models';\n\nexport type SnackDescription = {\n data: SnackbarData;\n actionCallback?: () => void;\n closeCallback?: () => void;\n resolve: (value: unknown) => void;\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SnackbarService {\n snacks$: Observable<SnackDescription>;\n\n private snacks = new Subject<SnackDescription>();\n\n constructor() {\n this.snacks$ = this.snacks.asObservable();\n }\n\n snack(data: SnackbarData, actionCallback?: () => void, closeCallback?: () => void) {\n return new Promise(resolve => {\n this.snacks.next({ data, actionCallback, closeCallback, resolve });\n });\n }\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnDestroy,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SnackbarComponent } from './snackbar.component';\nimport { SnackbarConfig } from './snackbar.models';\nimport { SnackbarService, SnackDescription } from './snackbar.service';\n\ninterface SnackbarRef {\n componentRef: ComponentRef<SnackbarComponent>;\n complete: Subject<boolean>;\n}\n\n@Directive({\n selector: '[fngSnackbarContainer]'\n})\nexport class SnackbarContainerDirective implements OnDestroy, OnInit {\n @Input() fngSnackbarContainer: SnackbarConfig;\n\n private snacks: SnackbarRef[] = [];\n\n private snacksSub: Subscription;\n private factory: ComponentFactory<SnackbarComponent>;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private snackbarService: SnackbarService\n ) {\n this.factory = this.componentFactoryResolver.resolveComponentFactory(SnackbarComponent);\n }\n\n ngOnInit() {\n this.snacksSub = this.snackbarService.snacks$.subscribe(SnackDescription => this.push(SnackDescription));\n }\n\n ngOnDestroy() {\n if (this.snacks != null && this.snacks.length > 0) {\n this.snacks.forEach(snack => {\n snack.complete.next(true);\n snack.complete.complete();\n snack.complete.unsubscribe();\n });\n }\n if (this.snacksSub != null) {\n this.snacksSub.unsubscribe();\n }\n }\n\n private push(snackDescription: SnackDescription) {\n const complete = new Subject<boolean>();\n const componentRef = this.viewContainerRef.createComponent(this.factory, 0);\n const componentInstance = componentRef.instance;\n componentInstance.data = { ...this.fngSnackbarContainer, ...snackDescription.data };\n componentInstance.animationState = this.snacks.length === 0 ? 'first' : 'fadeIn';\n const snackbarRef = { componentRef, complete };\n componentInstance.close.pipe(takeUntil(complete)).subscribe(() => {\n this.remove(snackbarRef);\n if (snackDescription.closeCallback) {\n snackDescription.closeCallback();\n }\n });\n componentInstance.action.pipe(takeUntil(complete)).subscribe(() => {\n if (componentInstance.data.closeOnAction) {\n this.remove(snackbarRef);\n }\n if (snackDescription.actionCallback) {\n snackDescription.actionCallback();\n }\n });\n this.snacks.push(snackbarRef);\n snackDescription.resolve(snackbarRef.componentRef);\n }\n\n private remove(snackbarRef: SnackbarRef) {\n const index = this.snacks.indexOf(snackbarRef);\n if (index !== -1) {\n const deletedSnackbarRef = this.snacks.splice(index, 1);\n if (deletedSnackbarRef != null && deletedSnackbarRef.length > 0) {\n const deletedSnackbar = deletedSnackbarRef[0];\n if (deletedSnackbar.complete != null) {\n deletedSnackbar.complete.next(true);\n deletedSnackbar.complete.complete();\n deletedSnackbar.complete.unsubscribe();\n }\n if (deletedSnackbar.componentRef != null) {\n deletedSnackbar.componentRef.destroy();\n }\n }\n }\n }\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { SnackbarConfig } from './snackbar.models';\n\n@Component({\n selector: 'fng-snackbar-container',\n templateUrl: './snackbar-container.component.html',\n styleUrls: ['./snackbar-container.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SnackbarContainerComponent {\n @Input() config: SnackbarConfig = {\n darkBackground: true,\n disappearAfter: 5000,\n closeOnAction: true\n };\n}\n","<div class=\"fwe-snackbar-container\">\n <div [fngSnackbarContainer]=\"config\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SnackbarComponent } from './snackbar.component';\nimport { SnackbarContainerDirective } from './snackbar-container.directive';\nimport { SnackbarContainerComponent } from './snackbar-container.component';\n\nexport * from './snackbar.models';\nexport * from './snackbar.component';\nexport * from './snackbar-container.component';\nexport * from './snackbar-container.directive';\n\n@NgModule({\n declarations: [SnackbarComponent, SnackbarContainerDirective, SnackbarContainerComponent],\n imports: [CommonModule],\n exports: [SnackbarContainerComponent, SnackbarContainerDirective, SnackbarContainerComponent],\n providers: [],\n bootstrap: [SnackbarComponent]\n})\nexport class FestoAngularSnackbarModule {}\n","import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\n\nexport type IconType = 'font' | 'img' | 'svg';\n\n/**\n * Describes an icon.\n */\nexport interface Icon {\n /**\n * The icon type.\n * - 'font' uses [name]{@link Icon#name} to resolve the icon from the icon font.\n * - 'img' uses [url]{@link Icon#url}, [height]{@link Icon#height}, [width]{@link Icon#width}\n * - 'svg' uses ng-content to display svg, [height]{@link Icon#height}, [width]{@link Icon#width}\n */\n type: IconType;\n\n /**\n * The name used to resolve the icon.\n */\n name?: string;\n\n /**\n * The url used to resolve the image.\n */\n url?: string;\n\n /**\n * Height of the image in pixel (px).\n */\n height?: number;\n\n /**\n * Width of the image in pixel (px).\n */\n width?: number;\n\n /**\n * This string will be added as css class to the icon.\n */\n class?: string;\n}\n\n/**\n * An icon component.\n */\n@Component({\n selector: 'fng-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class IconComponent {\n /**\n * The icon.\n */\n @Input() icon: Icon;\n}\n","<i *ngIf=\"icon?.type === 'font'\" [class]=\"'fwe-icon fwe-icon-' + icon?.name + ' ' + (icon.class || '')\"></i>\n<img *ngIf=\"icon?.type === 'img'\" [class]=\"icon.class\"\n [src]=\"icon?.url\"\n [ngStyle]=\"{'width': icon?.width + 'px', 'height': icon?.height + 'px'}\">\n<ng-content *ngIf=\"icon?.type === 'svg'\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from './icon/icon.component';\n\nexport * from './icon/icon.component';\n\n@NgModule({\n declarations: [\n IconComponent\n ],\n imports: [ CommonModule ],\n exports: [\n IconComponent\n ],\n providers: [],\n})\nexport class FestoAngularContentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [],\n imports: [ CommonModule ],\n exports: [],\n providers: [],\n})\nexport class FestoAngularLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { FestoAngularLayoutModule } from './layout/layout.module';\nimport { FestoAngularComponentsModule } from './components/components.module';\nimport { FestoAngularContentModule } from './content/content.module';\nimport { FestoAngularFormsModule } from './forms/forms.module';\nimport { FestoAngularModalsModule } from './components/modals/modals.module';\nimport { FestoAngularSnackbarModule } from './components/snackbar/snackbar.module';\n\n@NgModule({\n declarations: [],\n imports: [\n FestoAngularLayoutModule,\n FestoAngularComponentsModule,\n FestoAngularContentModule,\n FestoAngularFormsModule,\n FestoAngularModalsModule,\n FestoAngularSnackbarModule\n ],\n exports: [\n FestoAngularLayoutModule,\n FestoAngularComponentsModule,\n FestoAngularContentModule,\n FestoAngularFormsModule,\n FestoAngularModalsModule,\n FestoAngularSnackbarModule\n ]\n})\nexport class FestoAngularModule {}\n","import { Injectable, SimpleChange } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { Modal, ModalOptions, ModalResult } from './index';\nimport { AlertComponent, AlertData } from './alert/alert.component';\nimport { ConfirmComponent, ConfirmData } from './confirm/confirm.component';\nimport { Subject } from 'rxjs';\nimport { PromptComponent, PromptData } from './prompt/prompt.component';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n constructor(protected overlay: Overlay, private router: Router) {}\n\n alert(data: AlertData, options?: ModalOptions) {\n return this.open<AlertData, any, AlertComponent>(data, AlertComponent, {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true,\n ...options\n });\n }\n\n confirm(data: ConfirmData, options?: ModalOptions) {\n options = options || {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true,\n ...options\n };\n return this.open<ConfirmData, any, ConfirmComponent>(data, ConfirmComponent, options);\n }\n\n prompt(data: PromptData, options?: ModalOptions) {\n options = options || {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true,\n ...options\n };\n return this.open<PromptData, any, PromptComponent>(data, PromptComponent, options);\n }\n\n open<TData, TResult, TModal extends Modal<TData, TResult>>(\n data: TData,\n modal: ComponentType<TModal>,\n options: ModalOptions\n ): Promise<ModalResult<TResult>> {\n return new Promise((resolve, reject) => {\n const complete = new Subject<boolean>();\n const positionStrategy = options.positionStrategy || this.overlay.position().global().centerHorizontally().centerVertically();\n const scrollStrategy = this.overlay.scrollStrategies.block();\n const overlayRef = this.overlay.create({\n panelClass: options.overlayClass,\n positionStrategy,\n scrollStrategy,\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n ...options\n });\n\n if (options.closeOnNavigation) {\n this.router.events\n .pipe(\n filter(e => e instanceof NavigationStart),\n takeUntil(complete)\n )\n .subscribe(() => this.dispose(overlayRef, complete).then(() => resolve({ userAction: 'navigated' })));\n }\n\n if (options.shouldCloseOnBackdrop) {\n overlayRef\n .backdropClick()\n .pipe(takeUntil(complete))\n .subscribe(() => this.dispose(overlayRef, complete).then(() => resolve({ userAction: 'backdrop' })));\n }\n\n const modalPortal = new ComponentPortal(modal);\n const componentRef = overlayRef.attach(modalPortal);\n if (componentRef != null && componentRef.instance != null) {\n componentRef.instance.data = data;\n if (componentRef.instance.close != null) {\n componentRef.instance.close\n .pipe(takeUntil(complete))\n .subscribe(() => this.dispose(overlayRef, complete).then(() => resolve({ userAction: 'close' })));\n }\n if (componentRef.instance.cancel != null) {\n componentRef.instance.cancel\n .pipe(takeUntil(complete))\n .subscribe(() => this.dispose(overlayRef, complete).then(() => resolve({ userAction: 'cancel' })));\n }\n if (componentRef.instance.ok != null) {\n componentRef.instance.ok\n .pipe(takeUntil(complete))\n .subscribe(result => this.dispose(overlayRef, complete).then(() => resolve({ userAction: 'ok', result })));\n }\n if (componentRef.instance.ngOnChanges != null) {\n componentRef.instance.ngOnChanges({ data: new SimpleChange(null, data, true) });\n }\n } else {\n this.dispose(overlayRef, complete).then(() => reject(new Error('Could not attach component to overlay.')));\n }\n });\n }\n\n private dispose(overlayRef: OverlayRef, complete: Subject<boolean>) {\n return new Promise<void>(resolve => {\n complete.next();\n complete.complete();\n complete.unsubscribe();\n overlayRef.dispose();\n resolve();\n });\n }\n}\n","// COMPONENTS\nexport * from './lib/components/components.module';\n\n// MODALS\nexport * from './lib/components/modals/modals.module';\n\n// SNACKBAR\nexport * from './lib/components/snackbar/snackbar.module';\n\n// CONTENT\nexport * from './lib/content/content.module';\n\n// FORMS\nexport * from './lib/forms/forms.module';\n\n// LAYOUT\nexport * from './lib/layout/layout.module';\n\n// MAIN\nexport * from './lib/festo-angular.module';\n\n// SERVICES\nexport * from './lib/components/modals/modal.service';\nexport * from './lib/components/snackbar/snackbar.service';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["EventEmitter","Component","ViewEncapsulation","Input","Output","ContentChild","ChipType","Directive","ChangeDetectionStrategy","PopoverTypes","PopoverPosition","PopoverContentTypes","Subject","TemplateRef","ComponentPortal","OverlayConfig","Injector","Injectable","ViewChild","HostListener","take","takeUntil","DOCUMENT","Inject","ContentChildren","PaginationType","SimpleBar","coerceBooleanProperty","RouterModule","CommonModule","OverlayModule","PortalModule","NgModule","nextUniqueId","NG_VALUE_ACCESSOR","forwardRef","HostBinding","Optional","Pipe","coerceNumberProperty","debounceTime","ConnectionPositionPair","SimpleChange","ViewContainerRef","flatpickr","formatDate","LOCALE_ID","SecurityContext","QuillType","ReactiveFormsModule","FormsModule","ScrollingModule","DragDropModule","ObserversModule","trigger","state","style","transition","animate","sequence","filter","NavigationStart"],"mappings":"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"}
|