@festo-ui/angular 8.2.0-dev.617 → 8.2.0-dev.620

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.
Files changed (100) hide show
  1. package/css/bundle.css +1 -1
  2. package/css/popover.css +1 -1
  3. package/fesm2022/festo-ui-angular.mjs +514 -260
  4. package/fesm2022/festo-ui-angular.mjs.map +1 -1
  5. package/lib/components/components.module.d.ts +3 -1
  6. package/lib/components/overlay/overlay-content/overlay-content.component.d.ts +5 -0
  7. package/lib/components/overlay/overlay-outlet.directive.d.ts +64 -0
  8. package/lib/components/popovers/popover.defaults.d.ts +0 -18
  9. package/lib/components/popovers/popover.models.d.ts +2 -1
  10. package/lib/components/popovers/tooltip/tooltip.directive.d.ts +7 -0
  11. package/lib/forms/value-accessor-base.d.ts +1 -1
  12. package/package.json +9 -11
  13. package/public-api.d.ts +2 -0
  14. package/scss/base/icons-svg.scss +1 -1
  15. package/scss/base/image-gallery.scss +2 -2
  16. package/scss/base/popover.scss +2 -2
  17. package/scss/base/styles.scss +4 -4
  18. package/esm2022/festo-ui-angular.mjs +0 -5
  19. package/esm2022/lib/components/accordion/accordion-header/accordion-header.component.mjs +0 -11
  20. package/esm2022/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.mjs +0 -15
  21. package/esm2022/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.mjs +0 -28
  22. package/esm2022/lib/components/accordion/accordion-item/accordion-item.component.mjs +0 -148
  23. package/esm2022/lib/components/accordion/accordion.component.mjs +0 -59
  24. package/esm2022/lib/components/accordion/index.mjs +0 -6
  25. package/esm2022/lib/components/bottom-sheet/bottom-sheet.component.mjs +0 -97
  26. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -26
  27. package/esm2022/lib/components/buttons/button/button.component.mjs +0 -48
  28. package/esm2022/lib/components/buttons/link-button/link-button.component.mjs +0 -34
  29. package/esm2022/lib/components/chips/chip/chip.component.mjs +0 -38
  30. package/esm2022/lib/components/chips/chip-container/chip-container.component.mjs +0 -17
  31. package/esm2022/lib/components/components.module.mjs +0 -212
  32. package/esm2022/lib/components/loading-indicator/loading-indicator.component.mjs +0 -17
  33. package/esm2022/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs +0 -39
  34. package/esm2022/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs +0 -65
  35. package/esm2022/lib/components/mobile-flyout/mobile-flyout.component.mjs +0 -69
  36. package/esm2022/lib/components/pagination/pagination.component.mjs +0 -57
  37. package/esm2022/lib/components/popovers/legend/legend.component.mjs +0 -42
  38. package/esm2022/lib/components/popovers/legend/legend.directive.mjs +0 -31
  39. package/esm2022/lib/components/popovers/popover/popover.component.mjs +0 -31
  40. package/esm2022/lib/components/popovers/popover-content/popover-content.component.mjs +0 -80
  41. package/esm2022/lib/components/popovers/popover-content/popover-content.directive.mjs +0 -39
  42. package/esm2022/lib/components/popovers/popover-menu/popover-menu.component.mjs +0 -67
  43. package/esm2022/lib/components/popovers/popover-ref.mjs +0 -25
  44. package/esm2022/lib/components/popovers/popover.defaults.mjs +0 -59
  45. package/esm2022/lib/components/popovers/popover.models.mjs +0 -7
  46. package/esm2022/lib/components/popovers/popover.service.mjs +0 -140
  47. package/esm2022/lib/components/popovers/tooltip/tooltip.directive.mjs +0 -101
  48. package/esm2022/lib/components/progress/progress.component.mjs +0 -22
  49. package/esm2022/lib/components/scroll/index.mjs +0 -2
  50. package/esm2022/lib/components/scroll/scrollable.directive.mjs +0 -75
  51. package/esm2022/lib/components/search-input/search-input.component.mjs +0 -182
  52. package/esm2022/lib/components/sidebar-overlay/sidebar-overlay.component.mjs +0 -59
  53. package/esm2022/lib/components/snackbar/snackbar-container.component.mjs +0 -21
  54. package/esm2022/lib/components/snackbar/snackbar-container.directive.mjs +0 -80
  55. package/esm2022/lib/components/snackbar/snackbar.component.mjs +0 -81
  56. package/esm2022/lib/components/snackbar/snackbar.models.mjs +0 -2
  57. package/esm2022/lib/components/snackbar/snackbar.module.mjs +0 -24
  58. package/esm2022/lib/components/snackbar/snackbar.service.mjs +0 -23
  59. package/esm2022/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.mjs +0 -19
  60. package/esm2022/lib/components/stepper-horizontal/stepper-horizontal.component.mjs +0 -52
  61. package/esm2022/lib/components/stepper-vertical/step-vertical/step-vertical.component.mjs +0 -57
  62. package/esm2022/lib/components/stepper-vertical/stepper-vertical.component.mjs +0 -54
  63. package/esm2022/lib/components/table-header-cell/table-header-cell.directive.mjs +0 -60
  64. package/esm2022/lib/components/tabs/tab-pane/tab-pane.component.mjs +0 -34
  65. package/esm2022/lib/components/tabs/tabs.component.mjs +0 -459
  66. package/esm2022/lib/directives/click-outside.directive.mjs +0 -29
  67. package/esm2022/lib/festo-angular.module.mjs +0 -21
  68. package/esm2022/lib/forms/checkbox/checkbox.component.mjs +0 -154
  69. package/esm2022/lib/forms/color-indicator/color-indicator.component.mjs +0 -88
  70. package/esm2022/lib/forms/color-picker/color-helper.mjs +0 -129
  71. package/esm2022/lib/forms/color-picker/color-picker.component.mjs +0 -292
  72. package/esm2022/lib/forms/date-picker/date-picker.component.mjs +0 -205
  73. package/esm2022/lib/forms/date-range-picker/date-range-picker.component.mjs +0 -231
  74. package/esm2022/lib/forms/flatpickr/flatpickr.component.mjs +0 -55
  75. package/esm2022/lib/forms/forms.module.mjs +0 -132
  76. package/esm2022/lib/forms/radio/radio.component.mjs +0 -349
  77. package/esm2022/lib/forms/segment/segment-control/segment-control.component.mjs +0 -65
  78. package/esm2022/lib/forms/segment/segment.component.mjs +0 -139
  79. package/esm2022/lib/forms/select/chip-text.pipe.mjs +0 -39
  80. package/esm2022/lib/forms/select/select-option/select-option.component.mjs +0 -23
  81. package/esm2022/lib/forms/select/select.component.mjs +0 -273
  82. package/esm2022/lib/forms/slider/slider.component.mjs +0 -117
  83. package/esm2022/lib/forms/switch/switch.component.mjs +0 -121
  84. package/esm2022/lib/forms/text-area/text-area.component.mjs +0 -187
  85. package/esm2022/lib/forms/text-editor/text-editor.component.mjs +0 -307
  86. package/esm2022/lib/forms/text-input/text-input.component.mjs +0 -208
  87. package/esm2022/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +0 -107
  88. package/esm2022/lib/forms/time-picker/time-picker.component.mjs +0 -204
  89. package/esm2022/lib/forms/unique-selection-dispatcher.mjs +0 -41
  90. package/esm2022/lib/forms/value-accessor-base.mjs +0 -41
  91. package/esm2022/lib/modals/alert/alert.component.mjs +0 -55
  92. package/esm2022/lib/modals/confirm/confirm.component.mjs +0 -56
  93. package/esm2022/lib/modals/custom-modal/custom-modal.component.mjs +0 -88
  94. package/esm2022/lib/modals/image-gallery/image-gallery.component.mjs +0 -80
  95. package/esm2022/lib/modals/index.mjs +0 -2
  96. package/esm2022/lib/modals/modal.service.mjs +0 -118
  97. package/esm2022/lib/modals/modals.module.mjs +0 -27
  98. package/esm2022/lib/modals/prompt/prompt.component.mjs +0 -114
  99. package/esm2022/lib/pipes/safe-html.pipe.mjs +0 -21
  100. package/esm2022/public-api.mjs +0 -66
@@ -1 +1 @@
1
- {"version":3,"file":"festo-ui-angular.mjs","sources":["../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.ts","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.html","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.ts","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.html","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item.component.ts","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item.component.html","../../../projects/angular/src/lib/components/accordion/accordion.component.ts","../../../projects/angular/src/lib/components/accordion/accordion.component.html","../../../projects/angular/src/lib/components/accordion/accordion-header/accordion-header.component.ts","../../../projects/angular/src/lib/components/accordion/accordion-header/accordion-header.component.html","../../../projects/angular/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/angular/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/angular/src/lib/components/buttons/button/button.component.ts","../../../projects/angular/src/lib/components/buttons/button/button.component.html","../../../projects/angular/src/lib/components/buttons/link-button/link-button.component.ts","../../../projects/angular/src/lib/components/buttons/link-button/link-button.component.html","../../../projects/angular/src/lib/components/chips/chip-container/chip-container.component.ts","../../../projects/angular/src/lib/components/chips/chip-container/chip-container.component.html","../../../projects/angular/src/lib/components/chips/chip/chip.component.ts","../../../projects/angular/src/lib/components/chips/chip/chip.component.html","../../../projects/angular/src/lib/directives/click-outside.directive.ts","../../../projects/angular/src/lib/components/bottom-sheet/bottom-sheet.component.ts","../../../projects/angular/src/lib/components/bottom-sheet/bottom-sheet.component.html","../../../projects/angular/src/lib/components/loading-indicator/loading-indicator.component.ts","../../../projects/angular/src/lib/components/loading-indicator/loading-indicator.component.html","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.ts","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.html","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.ts","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.html","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout.component.ts","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout.component.html","../../../projects/angular/src/lib/components/pagination/pagination.component.ts","../../../projects/angular/src/lib/components/pagination/pagination.component.html","../../../projects/angular/src/lib/components/popovers/popover-ref.ts","../../../projects/angular/src/lib/components/popovers/popover.models.ts","../../../projects/angular/src/lib/components/popovers/popover/popover.component.ts","../../../projects/angular/src/lib/components/popovers/popover/popover.component.html","../../../projects/angular/src/lib/components/popovers/popover.defaults.ts","../../../projects/angular/src/lib/components/popovers/popover.service.ts","../../../projects/angular/src/lib/components/popovers/legend/legend.component.ts","../../../projects/angular/src/lib/components/popovers/legend/legend.component.html","../../../projects/angular/src/lib/components/popovers/legend/legend.directive.ts","../../../projects/angular/src/lib/components/popovers/popover-content/popover-content.component.ts","../../../projects/angular/src/lib/components/popovers/popover-content/popover-content.component.html","../../../projects/angular/src/lib/components/popovers/popover-content/popover-content.directive.ts","../../../projects/angular/src/lib/components/popovers/popover-menu/popover-menu.component.ts","../../../projects/angular/src/lib/components/popovers/popover-menu/popover-menu.component.html","../../../projects/angular/src/lib/components/popovers/tooltip/tooltip.directive.ts","../../../projects/angular/src/lib/components/progress/progress.component.ts","../../../projects/angular/src/lib/components/progress/progress.component.html","../../../projects/angular/src/lib/components/scroll/scrollable.directive.ts","../../../projects/angular/src/lib/pipes/safe-html.pipe.ts","../../../projects/angular/src/lib/components/search-input/search-input.component.ts","../../../projects/angular/src/lib/components/search-input/search-input.component.html","../../../projects/angular/src/lib/components/sidebar-overlay/sidebar-overlay.component.ts","../../../projects/angular/src/lib/components/sidebar-overlay/sidebar-overlay.component.html","../../../projects/angular/src/lib/components/snackbar/snackbar.component.ts","../../../projects/angular/src/lib/components/snackbar/snackbar.component.html","../../../projects/angular/src/lib/components/snackbar/snackbar.service.ts","../../../projects/angular/src/lib/components/snackbar/snackbar-container.directive.ts","../../../projects/angular/src/lib/components/snackbar/snackbar-container.component.ts","../../../projects/angular/src/lib/components/snackbar/snackbar-container.component.html","../../../projects/angular/src/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.ts","../../../projects/angular/src/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.html","../../../projects/angular/src/lib/components/stepper-horizontal/stepper-horizontal.component.ts","../../../projects/angular/src/lib/components/stepper-horizontal/stepper-horizontal.component.html","../../../projects/angular/src/lib/components/stepper-vertical/step-vertical/step-vertical.component.ts","../../../projects/angular/src/lib/components/stepper-vertical/step-vertical/step-vertical.component.html","../../../projects/angular/src/lib/components/stepper-vertical/stepper-vertical.component.ts","../../../projects/angular/src/lib/components/stepper-vertical/stepper-vertical.component.html","../../../projects/angular/src/lib/components/table-header-cell/table-header-cell.directive.ts","../../../projects/angular/src/lib/components/tabs/tab-pane/tab-pane.component.ts","../../../projects/angular/src/lib/components/tabs/tab-pane/tab-pane.component.html","../../../projects/angular/src/lib/components/tabs/tabs.component.ts","../../../projects/angular/src/lib/components/tabs/tabs.component.html","../../../projects/angular/src/lib/components/components.module.ts","../../../projects/angular/src/lib/components/snackbar/snackbar.module.ts","../../../projects/angular/src/lib/modals/alert/alert.component.ts","../../../projects/angular/src/lib/modals/alert/alert.component.html","../../../projects/angular/src/lib/modals/confirm/confirm.component.ts","../../../projects/angular/src/lib/modals/confirm/confirm.component.html","../../../projects/angular/src/lib/forms/text-input/text-input.component.ts","../../../projects/angular/src/lib/forms/text-input/text-input.component.html","../../../projects/angular/src/lib/modals/prompt/prompt.component.ts","../../../projects/angular/src/lib/modals/prompt/prompt.component.html","../../../projects/angular/src/lib/modals/image-gallery/image-gallery.component.ts","../../../projects/angular/src/lib/modals/image-gallery/image-gallery.component.html","../../../projects/angular/src/lib/modals/modal.service.ts","../../../projects/angular/src/lib/modals/custom-modal/custom-modal.component.ts","../../../projects/angular/src/lib/modals/custom-modal/custom-modal.component.html","../../../projects/angular/src/lib/modals/modals.module.ts","../../../projects/angular/src/lib/forms/checkbox/checkbox.component.ts","../../../projects/angular/src/lib/forms/checkbox/checkbox.component.html","../../../projects/angular/src/lib/forms/color-indicator/color-indicator.component.ts","../../../projects/angular/src/lib/forms/color-indicator/color-indicator.component.html","../../../projects/angular/src/lib/forms/color-picker/color-helper.ts","../../../projects/angular/src/lib/forms/color-picker/color-picker.component.ts","../../../projects/angular/src/lib/forms/color-picker/color-picker.component.html","../../../projects/angular/src/lib/forms/flatpickr/flatpickr.component.ts","../../../projects/angular/src/lib/forms/flatpickr/flatpickr.component.html","../../../projects/angular/src/lib/forms/date-picker/date-picker.component.ts","../../../projects/angular/src/lib/forms/date-picker/date-picker.component.html","../../../projects/angular/src/lib/forms/date-range-picker/date-range-picker.component.ts","../../../projects/angular/src/lib/forms/date-range-picker/date-range-picker.component.html","../../../projects/angular/src/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.ts","../../../projects/angular/src/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.html","../../../projects/angular/src/lib/forms/time-picker/time-picker.component.ts","../../../projects/angular/src/lib/forms/time-picker/time-picker.component.html","../../../projects/angular/src/lib/forms/unique-selection-dispatcher.ts","../../../projects/angular/src/lib/forms/radio/radio.component.ts","../../../projects/angular/src/lib/forms/radio/radio.component.html","../../../projects/angular/src/lib/forms/segment/segment-control/segment-control.component.ts","../../../projects/angular/src/lib/forms/segment/segment-control/segment-control.component.html","../../../projects/angular/src/lib/forms/segment/segment.component.ts","../../../projects/angular/src/lib/forms/segment/segment.component.html","../../../projects/angular/src/lib/forms/select/select-option/select-option.component.ts","../../../projects/angular/src/lib/forms/select/select-option/select-option.component.html","../../../projects/angular/src/lib/forms/select/chip-text.pipe.ts","../../../projects/angular/src/lib/forms/select/select.component.ts","../../../projects/angular/src/lib/forms/select/select.component.html","../../../projects/angular/src/lib/forms/slider/slider.component.ts","../../../projects/angular/src/lib/forms/slider/slider.component.html","../../../projects/angular/src/lib/forms/switch/switch.component.ts","../../../projects/angular/src/lib/forms/switch/switch.component.html","../../../projects/angular/src/lib/forms/text-area/text-area.component.ts","../../../projects/angular/src/lib/forms/text-area/text-area.component.html","../../../projects/angular/src/lib/forms/value-accessor-base.ts","../../../projects/angular/src/lib/forms/text-editor/text-editor.component.ts","../../../projects/angular/src/lib/forms/text-editor/text-editor.component.html","../../../projects/angular/src/lib/forms/forms.module.ts","../../../projects/angular/src/lib/festo-angular.module.ts","../../../projects/angular/src/public-api.ts","../../../projects/angular/src/festo-ui-angular.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-accordion-item-body',\n templateUrl: './accordion-item-body.component.html',\n styleUrls: ['./accordion-item-body.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionItemBodyComponent {\n // parentId will be set by accordion item this body belongs to\n id: string = '';\n}\n","<div\n role=\"region\"\n [attr.id]=\"id + '-body'\"\n [attr.aria-labelledby]=\"id + '-header'\"\n class=\"fng-accordion-item-body\"\n>\n <ng-content></ng-content>\n <div class=\"fng-accordion-item-body-spacer-bottom\"></div>\n</div>\n","import { Component, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport enum FngAccordionHeaderActions {\n Toggle = 'toggle'\n}\n\n@Component({\n standalone: true,\n selector: 'fng-accordion-item-header',\n templateUrl: './accordion-item-header.component.html',\n styleUrls: ['./accordion-item-header.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionItemHeaderComponent implements OnDestroy {\n // parentId will be set by accordion item this header belongs to\n id: string = '';\n private actions: Subject<FngAccordionHeaderActions> = new Subject<FngAccordionHeaderActions>();\n actions$: Observable<FngAccordionHeaderActions> = this.actions.asObservable();\n\n ngOnDestroy() {\n this.actions.complete();\n }\n\n toggle() {\n this.actions.next(FngAccordionHeaderActions.Toggle);\n }\n}\n","<div\n class=\"fng-accordion-item-header\"\n role=\"button\"\n tabindex=\"0\"\n [attr.id]=\"id + '-header'\"\n [attr.aria-expanded]=\"\"\n [attr.aria-controls]=\"id + '-body'\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</div>\n","import { Subscription } from 'rxjs';\nimport { FngAccordionActions, FngAccordionComponent } from './../accordion.component';\nimport {\n Component,\n ContentChild,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ElementRef,\n Renderer2,\n AfterViewInit,\n ChangeDetectorRef,\n AfterContentInit\n} from '@angular/core';\n\nimport { FngAccordionItemBodyComponent } from './accordion-item-body/accordion-item-body.component';\nimport { FngAccordionHeaderActions, FngAccordionItemHeaderComponent } from './accordion-item-header/accordion-item-header.component';\n\n@Component({\n standalone: true,\n selector: 'fng-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionItemComponent implements OnChanges, AfterViewInit, AfterContentInit {\n static nextId = 0;\n componentId = `accordion-item-${++FngAccordionItemComponent.nextId}`;\n expanded: boolean = false;\n _linkText: string = '';\n get linkText() {\n if (this.expanded === true) {\n this._linkText = this?.accordion?.showLess || '';\n } else {\n this._linkText = this?.accordion?.showMore || '';\n }\n return this._linkText;\n }\n\n @ContentChild(FngAccordionItemHeaderComponent) header: FngAccordionItemHeaderComponent | undefined;\n @ContentChild(FngAccordionItemBodyComponent) body: FngAccordionItemBodyComponent | undefined;\n\n // compound id of parent id and this component id to get a unique identifier in dom\n id = '';\n\n // parentId will be set by accordion this item belongs to\n parentId: string = '';\n private accordion: FngAccordionComponent | undefined;\n private accordionSubscription: Subscription | undefined;\n private accordionItemHeaderSubscription: Subscription | undefined;\n private element: HTMLElement | null = null;\n private pristine: boolean = true;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private cd: ChangeDetectorRef) {}\n\n ngAfterContentInit(): void {\n this.id = `${this.parentId}-${this.componentId}`;\n if (this.header && this.body) {\n this.header.id = this.id;\n this.body.id = this.id;\n }\n }\n\n ngAfterViewInit(): void {\n const element: HTMLElement = this.elementRef.nativeElement;\n this.element = element.querySelector('.fng-accordion-item-body');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['accordion']?.currentValue != null) {\n const accordion = changes?.['accordion']?.currentValue;\n this.accordion = accordion;\n if (this.accordion) {\n this.subscribeToAccordionActions();\n this.subscribeToAccordionItemHeaderActions();\n }\n }\n this.cd.detectChanges();\n }\n\n toggle(): void {\n // save the new expanded state in another var, because it may be overwritten when closeAll is called\n const newExpandedState = !this.expanded;\n const changeExpandedState = () => {\n this.expanded = newExpandedState;\n if (this.expanded === true) {\n this.expandItem();\n } else {\n this.collapseItem();\n }\n };\n\n // if the accordion allows only one expanded item at once we first have to close all items\n if (this.accordion != null && this.accordion.multi === false) {\n this.accordion.closeAll();\n /// run in new macrotask to avoid render issues when transitioning to new expanded state\n setTimeout(() => {\n changeExpandedState();\n });\n } else {\n changeExpandedState();\n }\n }\n\n collapseItem() {\n // get the height of item body regardless of its actual size\n const itemHeight = this.element?.scrollHeight;\n // set the actual item height as style to avoid transition from height: auto\n this.renderer.setStyle(this.element, 'height', itemHeight + 'px');\n setTimeout(() => {\n this.renderer.setStyle(this.element, 'height', 0 + 'px');\n });\n }\n\n expandItem() {\n // if the item was expanded once, we have to rerun change detection before expanding again\n // because the content inside may have changed\n if (this.pristine === false) {\n this.cd.detectChanges();\n }\n\n // get the height of item body regardless of its actual size\n const itemHeight = this.element?.scrollHeight;\n this.renderer.setStyle(this.element, 'height', itemHeight + 'px');\n setTimeout(() => {\n this.renderer.setStyle(this.element, 'height', null);\n this.pristine = false;\n }, 300);\n }\n\n private handleAction(action: FngAccordionActions | FngAccordionHeaderActions) {\n switch (action) {\n case FngAccordionActions.OpenAll:\n this.expanded = true;\n this.expandItem();\n break;\n case FngAccordionActions.CloseAll:\n if (this.expanded === true) {\n this.expanded = false;\n this.collapseItem();\n }\n break;\n case FngAccordionHeaderActions.Toggle:\n this.toggle();\n break;\n default:\n break;\n }\n }\n\n private subscribeToAccordionActions() {\n if (this.accordionSubscription != null) {\n this.accordionSubscription.unsubscribe();\n }\n this.accordionSubscription = this.accordion?.actions$.subscribe(action => {\n this.handleAction(action);\n });\n }\n\n private subscribeToAccordionItemHeaderActions() {\n if (this.accordionItemHeaderSubscription != null) {\n this.accordionItemHeaderSubscription.unsubscribe();\n }\n this.accordionItemHeaderSubscription = this.header?.actions$.subscribe(action => {\n this.handleAction(action);\n });\n }\n}\n","<div class=\"fng-accordion-item\" [class.fng-accordion-item--collapsed]=\"!expanded\" [class.fng-accordion-item--expanded]=\"expanded === true\">\n <ng-content></ng-content>\n <div class=\"fng-accordion-item-link\">{{ linkText }}</div>\n</div>\n","import { Component, ContentChildren, QueryList, SimpleChange, ViewEncapsulation, AfterViewInit, Input, OnDestroy } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\n\nimport { FngAccordionItemComponent } from './accordion-item/accordion-item.component';\n\nexport enum FngAccordionActions {\n OpenAll = 'openAll',\n CloseAll = 'closeAll'\n}\n\n@Component({\n standalone: true,\n selector: 'fng-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionComponent implements AfterViewInit, OnDestroy {\n static nextId = 0;\n readonly componentId = `accordion-${++FngAccordionComponent.nextId}`;\n\n private actions: Subject<FngAccordionActions> = new Subject<FngAccordionActions>();\n actions$: Observable<FngAccordionActions> = this.actions.asObservable();\n\n // if the accordion should only allow one expanded item at once this property can be set to false\n @Input('fngAccordionKeepItemsOpen') multi: boolean = true;\n @Input('fngAccordionShowMoreText') showMore: string = 'Show more';\n @Input('fngAccordionShowLessText') showLess: string = 'Show less';\n @ContentChildren(FngAccordionItemComponent) items: QueryList<FngAccordionItemComponent> | undefined;\n\n ngAfterViewInit(): void {\n this.items?.forEach(item => {\n item.ngOnChanges({\n parentId: new SimpleChange(null, this.componentId, false),\n accordion: new SimpleChange(null, this, false)\n });\n });\n }\n\n ngOnDestroy() {\n this.actions.complete();\n }\n\n openAll(): void {\n if (this.multi) {\n this.actions.next(FngAccordionActions.OpenAll);\n }\n }\n\n closeAll(): void {\n this.actions.next(FngAccordionActions.CloseAll);\n }\n}\n","<div class=\"fng-accordion\">\n <ng-content></ng-content>\n</div>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-accordion-header',\n templateUrl: './accordion-header.component.html',\n styleUrls: ['./accordion-header.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionHeaderComponent {}\n","<div class=\"fng-accordion-header\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [RouterModule, CommonModule],\r\n selector: 'fng-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FngBreadcrumbComponent {\r\n @Input() useRouterLink = false;\r\n @Input() locations: { label: string; url: string }[] = [];\r\n @Output() navigate = new EventEmitter<string>();\r\n}\r\n","<div class=\"fwe-breadcrumb\">\r\n <ng-container *ngFor=\"let location of locations\">\r\n <a *ngIf=\"useRouterLink\" class=\"fng-breadcrumb-location\" [routerLink]=\"location.url\">{{ location.label }}</a>\r\n <a *ngIf=\"!useRouterLink\" class=\"fng-breadcrumb-location\" (click)=\"navigate.emit(location.url)\">{{ location.label }}</a>\r\n </ng-container>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter, ViewEncapsulation, ContentChild, ElementRef } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngButtonComponent {\n @Input() text: string | undefined;\n @Input() icon: string | undefined;\n @Input() disabled = false;\n @Input() primary = false;\n @Input() tertiary = false;\n @Input() iconOnly = false;\n @Input() large = false;\n @Input() floating = false;\n @Output() fngClick = new EventEmitter<any>();\n @ContentChild('content') content: ElementRef | undefined;\n\n onClick(event: any) {\n if (!this.disabled) {\n this.fngClick.emit(event);\n }\n }\n}\n","\n<button\n (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 && !tertiary,\n 'fwe-btn-link': tertiary && !primary,\n 'fwe-btn-lg': large,\n 'fwe-btn-floating': floating\n }\"\n [disabled]=\"disabled\"\n>\n <i *ngIf=\"icon\" [class]=\"'fwe-icon fwe-icon-' + icon\"></i>\n <div *ngIf=\"!iconOnly\">\n <ng-content></ng-content>\n <span *ngIf=\"!content\">{{ text }}</span>\n </div>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter, ViewEncapsulation, ContentChild, ElementRef } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-link-button',\n templateUrl: './link-button.component.html',\n styleUrls: ['./link-button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngLinkButtonComponent {\n @Input() text: string | undefined;\n @Input() icon: string | undefined;\n @Input() disabled = false;\n @Input() iconOnly = false;\n @Output() fngClick = new EventEmitter<any>();\n @ContentChild('content') content: ElementRef | undefined;\n\n onClick(event: any) {\n this.fngClick.emit(event);\n }\n}\n","<button\n (click)=\"onClick($event)\"\n [ngClass]=\"{\n 'fwe-btn': true,\n 'fwe-btn-link': true,\n 'fwe-disabled': disabled\n }\"\n [disabled]=\"disabled\"\n>\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>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-chip-container',\n templateUrl: './chip-container.component.html',\n styleUrls: ['./chip-container.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngChipContainerComponent {\n @Input() large = false;\n}\n","<div class=\"fwe-chip-container\" [class.fwe-chip-container-lg]=\"large\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { 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 standalone: true,\n imports: [CommonModule],\n selector: 'fng-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngChipComponent {\n ChipType = ChipType;\n\n @Input() type: ChipType = ChipType.Choise;\n @Input() selected = false;\n @Input() disabled = false;\n @Input() icon: string | undefined;\n @Input() large = false;\n}\n","<div\n [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>\n <i *ngIf=\"icon\" [class]=\"'fwe-icon fwe-icon-' + icon\"></i>\n <ng-content></ng-content>\n</div>\n","import { Directive, ElementRef, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[fngClickOutside]'\n})\nexport class FngClickOutsideDirective {\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 { NgIf } from '@angular/common';\nimport { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fng-bottom-sheet',\n standalone: true,\n imports: [NgIf],\n templateUrl: './bottom-sheet.component.html',\n styleUrl: './bottom-sheet.component.scss',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngBottomSheetComponent {\n @Input() hasBackdrop: boolean = true;\n @Input() isExpanded: boolean = false;\n @Input() hideCloseIcon: boolean = false;\n @Input() expandFrom: 'bottom' | 'center' = 'center';\n\n @Output() close = new EventEmitter<void>();\n\n @HostBinding('class.bottom-sheet--open') isOpen = false;\n @HostBinding('class.bottom-sheet--expanded') get isExpandedState() {\n return this.isExpanded;\n }\n\n isClosing: boolean = false;\n\n private startY: number = 0;\n private currentY: number = 0;\n private swiping: boolean = false;\n\n ngOnInit() {\n setTimeout(() => {\n this.isOpen = true;\n }, 0); // trigger the transition on open\n }\n\n @HostListener('touchstart', ['$event'])\n onTouchStart(event: TouchEvent) {\n this.startY = event.touches[0].clientY;\n this.swiping = true;\n }\n\n @HostListener('touchmove', ['$event'])\n onTouchMove(event: TouchEvent) {\n if (!this.swiping) return;\n\n this.currentY = event.touches[0].clientY;\n const deltaY = this.currentY - this.startY;\n\n if (deltaY < -50 && !this.isExpanded) {\n // swipe up to expand\n this.isExpanded = true;\n this.swiping = false;\n } else if (deltaY > 50 && this.isExpanded) {\n // swipe down to collapse\n this.isExpanded = false;\n this.swiping = false;\n } else if (deltaY > 100 && !this.isExpanded) {\n // swipe down to close\n this.closeBottomSheet();\n this.swiping = false;\n }\n }\n\n @HostListener('touchend')\n onTouchEnd() {\n this.swiping = false;\n }\n\n toggleExpand() {\n this.isExpanded = !this.isExpanded;\n }\n\n closeBottomSheet() {\n this.isClosing = true;\n this.hasBackdrop = false;\n setTimeout(() => {\n this.isClosing = false;\n this.isOpen = false;\n this.close.emit();\n }, 300); // wait for the transition to finish before closing\n }\n}\n","<div class=\"fwe-bottom-sheet-backdrop\" [class.fwe-bottom-sheet-backdrop--visible]=\"hasBackdrop\"\n (click)=\"closeBottomSheet()\"></div>\n<div class=\"fwe-bottom-sheet-container\" [class.fwe-bottom-sheet-container--open]=\"isOpen\"\n [class.fwe-bottom-sheet-container--expanded]=\"isExpanded\"\n [class.fwe-bottom-sheet-container--expand-from-center]=\"expandFrom === 'center'\"\n [class.fwe-bottom-sheet-container--with-backdrop]=\"hasBackdrop\"\n [class.fwe-bottom-sheet-container--closing]=\"isClosing\"\n >\n <div class=\"fwe-bottom-sheet-header\">\n <div class=\"fwe-bottom-sheet-drag-handle-container\" (click)=\"toggleExpand()\">\n <div class=\"fwe-bottom-sheet-drag-handle\"></div>\n </div>\n <button *ngIf=\"!hideCloseIcon\" type=\"button\"\n class=\"fwe-bottom-sheet-close-btn\" (click)=\"closeBottomSheet()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-bottom-sheet-content\">\n <ng-content></ng-content>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-loading-indicator',\n templateUrl: './loading-indicator.component.html',\n styleUrls: ['./loading-indicator.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngLoadingIndicatorComponent {\n @Input() size: 'large' | 'medium' | 'small' = 'large';\n}\n","<div class=\"fwe-waiting-container\" [class.fwe-waiting-container-sm]=\"size === 'small'\">\n <div\n class=\"fwe-waiting-indicator\"\n [class.fwe-waiting-indicator-md]=\"size === 'medium'\"\n [class.fwe-waiting-indicator-sm]=\"size === 'small'\"\n >\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 class=\"fwe-waiting-circle-4\"></div>\n </div>\n <div class=\"fwe-waiting-content-container\">\n <ng-content></ng-content>\n </div>\n</div>\n","/* eslint-disable @angular-eslint/no-empty-lifecycle-method */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, Optional, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { RouterLinkActive, RouterModule } from '@angular/router';\n\n@Component({\n standalone: true,\n imports: [CommonModule, RouterModule],\n selector: 'fng-mobile-flyout-item',\n templateUrl: './mobile-flyout-item.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngMobileFlyoutItemComponent implements OnChanges {\n @Input() icon: string = '';\n @Input() pageLink: string = '';\n @Input() lastElement = false;\n\n onNavigateCallback: ((pageName: string) => void) | undefined;\n\n constructor(@Optional() public rla: RouterLinkActive) {}\n\n ngOnChanges(_: SimpleChanges): void {\n // lifecycle hook is called by parent component so do not remove it\n }\n\n onClick() {\n if (this.onNavigateCallback) {\n this.onNavigateCallback(this.pageLink);\n }\n }\n}\n","<a class=\"fwe-mobile-flyout-item\" [class.fwe-bb]=\"!lastElement\" (click)=\"onClick()\">\n <i *ngIf=\"icon\" [class]=\"'fwe-mr-xs fwe-icon fwe-icon-' + icon\"></i>\n <div *ngIf=\"!rla\" class=\"fwe-flex-grow-1\" routerLinkActive=\"fwe-color-hero\">\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n </div>\n <div\n *ngIf=\"rla?.routerLinkActiveOptions\"\n class=\"fwe-flex-grow-1\"\n routerLinkActive=\"fwe-color-hero\"\n [routerLinkActiveOptions]=\"rla.routerLinkActiveOptions\"\n >\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n </div>\n <i *ngIf=\"pageLink\" class=\"fwe-icon fwe-icon-arrows-right-2\"></i>\n</a>\n<ng-template #itemContent>\n <ng-content></ng-content>\n</ng-template>\n","import { AfterContentInit, Component, ContentChildren, Input, QueryList, OnDestroy, SimpleChange, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FngMobileFlyoutItemComponent } from '../mobile-flyout-item/mobile-flyout-item.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-mobile-flyout-page',\n templateUrl: './mobile-flyout-page.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngMobileFlyoutPageComponent implements AfterContentInit, OnDestroy {\n @ContentChildren(FngMobileFlyoutItemComponent) itemComponents!: QueryList<FngMobileFlyoutItemComponent>;\n @Input() name: string = '';\n @Input() back: string = 'Back';\n\n isfirstelement = false;\n visible = false;\n onNavigateCallback: ((pageName: string) => void) | undefined;\n\n private complete: Subject<boolean> = new Subject();\n\n ngAfterContentInit(): void {\n this.initItemComponents();\n\n // if we have item components that are added dynamically (e.g. *ngIf)\n // we need to call init again to have all navigate callbacks defined\n this.itemComponents.changes.pipe(takeUntil(this.complete)).subscribe(() => {\n this.initItemComponents();\n });\n }\n\n ngOnDestroy(): void {\n this.complete.next(true);\n this.complete.unsubscribe();\n }\n\n onNavigate(pageName: string) {\n if (this.onNavigateCallback) {\n this.onNavigateCallback(pageName);\n }\n }\n\n onBack() {\n this.visible = false;\n }\n\n private initItemComponents() {\n if (!this.itemComponents) {\n return;\n }\n\n // register click-callbacks\n this.itemComponents.forEach(s => {\n s.onNavigateCallback = pageName => this.onNavigate(pageName);\n });\n\n if (this.itemComponents.last) {\n // pass new value by ngOnChanges for proper change detection\n this.itemComponents.last.ngOnChanges({\n lastElement: new SimpleChange(null, true, false)\n });\n }\n }\n}\n","<div class=\"fwe-mobile-flyout-page\" [class.fwe-opened]=\"visible\">\n <div class=\"fwe-page-back\" *ngIf=\"!isfirstelement\" (click)=\"onBack()\">\n <i></i>\n <div>{{ back }}</div>\n </div>\n <div class=\"fwe-mobile-flyout-item-container\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { AfterContentInit, Component, ContentChildren, OnDestroy, Output, QueryList, EventEmitter, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FngMobileFlyoutPageComponent } from './mobile-flyout-page/mobile-flyout-page.component';\nimport { CommonModule } from '@angular/common';\nimport { FngClickOutsideDirective } from '../../directives/click-outside.directive';\n\n@Component({\n standalone: true,\n imports: [CommonModule, FngClickOutsideDirective],\n selector: 'fng-mobile-flyout',\n templateUrl: './mobile-flyout.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngMobileFlyoutComponent implements AfterContentInit, OnDestroy {\n @Output() flyoutOpenChange: EventEmitter<boolean> = new EventEmitter();\n @ContentChildren(FngMobileFlyoutPageComponent) pageComponents!: QueryList<FngMobileFlyoutPageComponent>;\n isOpen = false;\n\n private complete: Subject<boolean> = new Subject();\n\n ngAfterContentInit(): void {\n this.initPageComponents();\n\n // if we have page components that are added dynamically (e.g. *ngIf)\n // we need to call init again to have all navigate callbacks defined\n this.pageComponents.changes.pipe(takeUntil(this.complete)).subscribe(() => {\n this.initPageComponents();\n });\n }\n\n ngOnDestroy(): void {\n this.complete.next(true);\n this.complete.unsubscribe();\n }\n\n onNavigate(pageName: string) {\n // handle clicks on router links\n if (!pageName) {\n this.isOpen = false;\n this.flyoutOpenChange.emit(this.isOpen);\n }\n\n // handle page-navigation clicks\n const nextPage = this.pageComponents.find(p => p.name === pageName);\n if (nextPage) {\n nextPage.visible = true;\n }\n }\n\n toggle() {\n this.isOpen = !this.isOpen;\n this.flyoutOpenChange.emit(this.isOpen);\n }\n\n onClickOutside() {\n this.isOpen = false;\n this.flyoutOpenChange.emit(this.isOpen);\n }\n\n private initPageComponents() {\n if (!this.pageComponents) {\n return;\n }\n\n // register click-callbacks and open the first element\n this.pageComponents.forEach((s, i) => {\n s.onNavigateCallback = pageName => this.onNavigate(pageName);\n s.isfirstelement = i === 0;\n s.visible = i === 0;\n });\n }\n}\n","<div class=\"fwe-mobile-flyout\" (clickOutside)=\"onClickOutside()\" fngClickOutside>\n <button [class.fwe-burger-button]=\"!isOpen\" [class.fwe-close-button]=\"isOpen\" (click)=\"toggle()\"></button>\n <div class=\"fwe-mobile-flyout-container\" [class.fwe-opened]=\"isOpen\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\nexport enum FngPaginationType {\n Numeric = 'NUMERIC',\n Dots = 'DOTS'\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPaginationComponent {\n PaginationType = FngPaginationType;\n\n @Input() type: FngPaginationType = FngPaginationType.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 = 0;\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 { OverlayRef } from '@angular/cdk/overlay';\nimport { Subject } from 'rxjs';\n\nimport { FngPopoverContent, FngPopoverCloseEvent } from './popover.models';\n\nexport class PopoverRef<T = any> {\n private afterClosed = new Subject<FngPopoverCloseEvent<T>>();\n afterClosed$ = this.afterClosed.asObservable();\n\n constructor(public overlay: OverlayRef, public content: FngPopoverContent | undefined, public data: T) {\n overlay.backdropClick().subscribe(() => {\n this._close('backdropClick', undefined);\n });\n }\n\n close(data?: T) {\n this._close('close', data);\n }\n\n private _close(type: FngPopoverCloseEvent['type'], data?: T) {\n this.overlay.dispose();\n this.afterClosed.next({\n type,\n data\n });\n this.afterClosed.complete();\n }\n}\n","import { TemplateRef, Type } from '@angular/core';\r\n\r\nexport interface FngPopoverParams<T> {\r\n origin?: HTMLElement;\r\n content?: FngPopoverContent;\r\n options?: FngPopoverOptions;\r\n data: T;\r\n}\r\n\r\nexport type FngPopoverTypes = 'tooltip' | 'menu' | 'legend' | 'content';\r\nexport type FngPopoverPosition = 'top' | 'bottom' | 'right' | 'rightTop' | 'left' | 'leftTop';\r\n\r\nexport interface FngPopoverOptions {\r\n type: FngPopoverTypes;\r\n width?: string | number;\r\n height?: string | number;\r\n maxWidth?: string | number;\r\n maxHeight?: string | number;\r\n minWidth?: string | number;\r\n minHeight?: string | number;\r\n hasBackdrop?: boolean;\r\n backdropClass?: string;\r\n positions?: FngPopoverPosition[] | undefined;\r\n scrollStrategy?: FngScrollStrategy;\r\n}\r\n\r\nexport type FngScrollStrategy = 'noop' | 'close' | 'block';\r\n\r\nexport interface FngPopoverCloseEvent<T = any> {\r\n type: 'backdropClick' | 'close';\r\n data: T | undefined;\r\n}\r\n\r\nexport enum FngPopoverContentTypes {\r\n Template = 'template',\r\n Component = 'component',\r\n Text = 'text'\r\n}\r\n\r\nexport type FngPopoverContent = TemplateRef<any> | Type<any> | string;\r\n\r\nexport interface FngPopoverMenu<T = any> {\r\n text: string;\r\n icon: string;\r\n action: string;\r\n data?: T;\r\n}\r\n\r\nexport interface FngPopoverMenuAction<T = any> {\r\n action: string;\r\n payload: T;\r\n}\r\n\r\nexport interface FngPopoverMenuActionAware<T = any> {\r\n onMenuAction(event: FngPopoverMenuAction<T>): void;\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit, TemplateRef, ViewEncapsulation } from '@angular/core';\n\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverContentTypes } from '../popover.models';\n\n@Component({\n standalone: true,\n selector: 'fng-popover',\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.component.scss'],\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPopoverComponent implements OnInit {\n type: FngPopoverContentTypes | null = FngPopoverContentTypes.Text;\n content: any;\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 = FngPopoverContentTypes.Text;\n }\n\n if (this.content instanceof TemplateRef) {\n this.type = FngPopoverContentTypes.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","export const defaultPositions = {\r\n bottom: {\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 22\r\n },\r\n top: {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -22\r\n },\r\n right: {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetX: 22\r\n },\r\n left: {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetX: -22\r\n },\r\n leftTop: {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetX: -22,\r\n offsetY: -32\r\n },\r\n rightTop: {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetX: 22,\r\n offsetY: -32\r\n }\r\n};\r\nexport const defaultClasses = {\r\n tooltip: 'fng-popover-tooltip',\r\n menu: 'fng-popover-menu',\r\n legend: 'fng-popover-legend',\r\n content: 'fng-popover-content',\r\n bottom: 'fng-popover-bottom',\r\n top: 'fng-popover-top',\r\n right: 'fng-popover-right',\r\n left: 'fng-popover-left',\r\n rightTop: 'fng-popover-right-top',\r\n leftTop: 'fng-popover-left-top'\r\n};\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport {\r\n Overlay,\r\n ConnectionPositionPair,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n NoopScrollStrategy,\r\n ConnectedPosition,\r\n CloseScrollStrategy,\r\n BlockScrollStrategy\r\n} from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\n\r\nimport { PopoverRef } from './popover-ref';\r\nimport { FngPopoverComponent } from './popover/popover.component';\r\nimport { defaultPositions, defaultClasses } from './popover.defaults';\r\nimport { FngPopoverParams, FngPopoverOptions, FngPopoverTypes, FngPopoverPosition, FngScrollStrategy } from './popover.models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FngPopoverService {\r\n readonly options: FngPopoverOptions = {\r\n type: 'tooltip',\r\n width: undefined,\r\n height: undefined,\r\n maxWidth: undefined,\r\n maxHeight: undefined,\r\n minWidth: undefined,\r\n minHeight: undefined,\r\n hasBackdrop: false,\r\n backdropClass: 'fng-popover-backdrop',\r\n positions: undefined\r\n };\r\n\r\n get defaultOptions() {\r\n return this.options;\r\n }\r\n\r\n constructor(private overlay: Overlay, private injector: Injector) {}\r\n\r\n open<T>({ origin, content, data, options }: FngPopoverParams<T>): PopoverRef<T> {\r\n if (null == options) {\r\n options = this.defaultOptions;\r\n }\r\n const overlayConfig = this.getOverlayConfig({ origin, options });\r\n const overlayRef = this.overlay.create(overlayConfig);\r\n const popoverRef = new PopoverRef<T>(overlayRef, content, data);\r\n const injector = this.createInjector(popoverRef, this.injector);\r\n\r\n overlayRef.attach(new ComponentPortal(FngPopoverComponent, null, injector));\r\n\r\n return popoverRef;\r\n }\r\n\r\n private getOverlayConfig({ origin, options }: { origin: HTMLElement | undefined; options: FngPopoverOptions }): OverlayConfig {\r\n const type = null != options.type ? options.type : this.defaultOptions.type;\r\n const positions = null != options.positions ? options.positions : this.defaultOptions.positions;\r\n\r\n return new OverlayConfig({\r\n width: null != options.width ? options.width : this.defaultOptions.width,\r\n height: null != options.height ? options.height : this.defaultOptions.height,\r\n maxWidth: null != options.maxWidth ? options.maxWidth : this.defaultOptions.maxWidth,\r\n maxHeight: null != options.maxHeight ? options.maxHeight : this.defaultOptions.maxHeight,\r\n minWidth: null != options.minWidth ? options.minWidth : this.defaultOptions.minWidth,\r\n minHeight: null != options.minHeight ? options.minHeight : this.defaultOptions.minHeight,\r\n positionStrategy: this.getOverlayPosition(origin!, type, positions),\r\n scrollStrategy: this.overlay.scrollStrategies != null ? this.getScrollStrategy(options?.scrollStrategy) : ({} as NoopScrollStrategy),\r\n hasBackdrop: null != options.hasBackdrop ? options.hasBackdrop : this.defaultOptions.hasBackdrop,\r\n backdropClass: null != options.backdropClass ? options.backdropClass : this.defaultOptions.backdropClass\r\n });\r\n }\r\n\r\n private getScrollStrategy(scrollStrategy: FngScrollStrategy | undefined): NoopScrollStrategy | CloseScrollStrategy | BlockScrollStrategy {\r\n let strategy: NoopScrollStrategy | CloseScrollStrategy | BlockScrollStrategy;\r\n switch (scrollStrategy) {\r\n case 'noop':\r\n strategy = this.overlay.scrollStrategies.noop();\r\n break;\r\n case 'close':\r\n strategy = this.overlay.scrollStrategies.close();\r\n break;\r\n case 'block':\r\n strategy = this.overlay.scrollStrategies.block();\r\n break;\r\n default:\r\n strategy = this.overlay.scrollStrategies.block();\r\n break;\r\n }\r\n\r\n return strategy;\r\n }\r\n\r\n private getOverlayPosition(\r\n origin: HTMLElement,\r\n type: FngPopoverTypes,\r\n positions: FngPopoverPosition[] | undefined\r\n ): FlexibleConnectedPositionStrategy {\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(origin)\r\n .withPositions(null != positions ? this.getPositions(type, positions) : (this.getDefaultPositions(type) as ConnectedPosition[]))\r\n .withFlexibleDimensions(false)\r\n .withViewportMargin(16)\r\n .withPush(false);\r\n\r\n return positionStrategy;\r\n }\r\n\r\n private createInjector(popoverRef: PopoverRef, injector: Injector) {\r\n return Injector.create({\r\n parent: injector,\r\n providers: [{ provide: PopoverRef, useValue: popoverRef }]\r\n });\r\n }\r\n\r\n private getDefaultPositions(type: FngPopoverTypes | undefined | null): any {\r\n const pairs: any = [];\r\n let positions = [];\r\n const fn = (t: FngPopoverTypes, p: string[]) =>\r\n p.map(position => {\r\n pairs.push({\r\n ...defaultPositions[position as keyof typeof defaultPositions],\r\n panelClass: [defaultClasses[t], defaultClasses[position as keyof typeof defaultClasses]]\r\n });\r\n });\r\n switch (type) {\r\n case 'tooltip':\r\n positions = ['bottom', 'top'];\r\n fn('tooltip', positions);\r\n break;\r\n case 'menu':\r\n positions = ['right', 'left', 'bottom', 'top'];\r\n fn('menu', positions);\r\n break;\r\n case 'legend':\r\n positions = ['bottom'];\r\n fn('legend', positions);\r\n break;\r\n case 'content':\r\n positions = ['bottom'];\r\n fn('content', positions);\r\n break;\r\n default:\r\n break;\r\n }\r\n return pairs;\r\n }\r\n\r\n private getPositions(type: FngPopoverTypes, positions: FngPopoverPosition[]): ConnectionPositionPair[] {\r\n const pairs: any[] = [];\r\n positions.map(position => {\r\n pairs.push({\r\n ...defaultPositions[position as keyof typeof defaultPositions],\r\n panelClass: [defaultClasses[type], defaultClasses[position as keyof typeof defaultClasses]]\r\n });\r\n });\r\n\r\n return pairs;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverService } from '../popover.service';\n\nexport interface FngPopoverLegendOptions {\n maxWidth?: string | number;\n}\n\nexport interface FngLegendItem {\n name: string;\n text: string;\n}\n\n@Component({\n standalone: true,\n selector: 'fng-legend',\n templateUrl: './legend.component.html',\n styleUrls: ['./legend.component.scss'],\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngLegendComponent {\n @Input() items: FngLegendItem[] = [];\n @Input() options: FngPopoverLegendOptions = {};\n @ViewChild('tpl') templateRef: TemplateRef<any> | undefined;\n private popoverRef: PopoverRef | undefined;\n\n constructor(private popoverService: FngPopoverService) {}\n\n show(origin: HTMLElement) {\n if (0 < this.items.length && this.templateRef) {\n this.popoverRef = this.popoverService.open({\n content: this.templateRef,\n origin,\n options: {\n type: 'legend',\n hasBackdrop: true\n },\n data: undefined\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 { FngPopoverContentComponent } from '../popover-content/popover-content.component';\n\n@Directive({\n standalone: true,\n selector: '[fngLegend]'\n})\nexport class FngLegendDirective implements OnInit {\n @ContentChild('fngContent') ref: FngPopoverContentComponent | undefined;\n private origin: HTMLElement | undefined;\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 && this.origin) {\n this.ref.show(this.origin);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ViewChild,\n TemplateRef,\n Input,\n Output,\n EventEmitter,\n OnDestroy,\n AfterViewInit,\n ElementRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { FngPopoverService } from '../popover.service';\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverCloseEvent, FngPopoverPosition } from '../popover.models';\n\nexport interface FngPopoverContentOptions {\n positions?: FngPopoverPosition[];\n maxWidth?: string | number;\n minHeight?: string | number;\n}\n\nexport interface FngPopoverContentActions {\n close: () => void;\n}\n\n@Component({\n standalone: true,\n selector: 'fng-popover-content',\n templateUrl: './popover-content.component.html',\n styleUrls: ['./popover-content.component.scss'],\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPopoverContentComponent implements AfterViewInit, OnDestroy {\n @Input() options: FngPopoverContentOptions = {};\n @Output() close: EventEmitter<FngPopoverCloseEvent> = new EventEmitter();\n @Output() actions: EventEmitter<FngPopoverContentActions> = new EventEmitter();\n @ViewChild('tpl') templateRef!: TemplateRef<any>;\n @ViewChild('fngContent') contentRef: ElementRef | undefined;\n\n showDefault = false;\n offScreen = true;\n height = 16; // add default padding\n width = 16; // add default padding\n\n private closeSub: Subscription | undefined;\n private popoverRef: PopoverRef | undefined;\n\n constructor(private popoverService: FngPopoverService) {}\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: any) => {\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 : undefined,\n width: this.width,\n height: this.height,\n type: 'content',\n hasBackdrop: true\n },\n data: undefined\n });\n\n this.actions.emit({\n close: () => {\n this.hide();\n }\n });\n\n if (this.closeSub) {\n this.closeSub.unsubscribe();\n }\n\n this.closeSub = this.popoverRef?.afterClosed$.pipe(take(1)).subscribe(event => {\n this.close.emit(event);\n });\n }\n\n hide() {\n this.popoverRef?.close();\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 { FngPopoverContentComponent } from './popover-content.component';\n\n@Directive({\n standalone: true,\n selector: '[fngPopoverContent]'\n})\nexport class FngPopoverContentDirective implements OnInit {\n @ContentChild('fngComponent') component: FngPopoverContentComponent | undefined;\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 { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverMenu, FngPopoverMenuAction, FngPopoverPosition } from '../popover.models';\nimport { FngPopoverService } from '../popover.service';\n\nexport interface FngPopoverMenuOptions {\n positions?: FngPopoverPosition[];\n}\n\n@Component({\n standalone: true,\n selector: 'fng-popover-menu',\n templateUrl: './popover-menu.component.html',\n styleUrls: ['./popover-menu.component.scss'],\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPopoverMenuComponent {\n @Input() icon = 'fwe-icon-menu-more fwe-icon-lg';\n @Input() menu: FngPopoverMenu[] = [];\n @Input() options: FngPopoverMenuOptions = {};\n\n @Output() menuAction: EventEmitter<FngPopoverMenuAction> = new EventEmitter();\n\n @ViewChild('menuTpl') menuTpl: TemplateRef<any> | undefined;\n @ViewChild('origin') origin: ElementRef | undefined;\n\n private popoverRef: PopoverRef | undefined;\n private itemHeight = 36;\n\n constructor(private popoverService: FngPopoverService) {}\n\n show(event: Event, content: TemplateRef<any> | undefined, origin: HTMLElement) {\n if (!content) {\n return;\n }\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: '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 : undefined\n },\n data: undefined\n });\n }\n }\n\n action(action: string, payload: any) {\n this.menuAction.emit({ action, payload });\n\n this.popoverRef?.close();\n }\n\n @HostListener('document:keydown.escape')\n hide() {\n this.popoverRef?.close();\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-mr-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 fwe-mr-0\" [ngClass]=\"item?.icon\"></i>\n <span>{{ item?.text }}</span>\n </button>\n </li>\n </ul>\n </ng-template>\n</ng-container>\n","import { Directive, ElementRef, HostListener, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\n\nimport { FngPopoverPosition } from './../popover.models';\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverService } from '../popover.service';\n\nexport interface FngTooltipOptions {\n maxWidth?: string | number;\n delay?: number;\n}\n\n@Directive({\n standalone: true,\n selector: '[fngTooltip]'\n})\nexport class FngTooltipDirective implements OnChanges, OnDestroy {\n @Input('fngTooltip') text = '';\n @Input('fngTooltipVisible') isVisible: boolean = false;\n @Input('fngTooltipPositions') positions: FngPopoverPosition[] = [];\n @Input('fngTooltipOptions') options: FngTooltipOptions = {\n maxWidth: 400,\n delay: 0\n };\n private origin: HTMLElement | undefined;\n private popoverRef: PopoverRef | undefined;\n private innerIsVisible = false;\n private timeoutHandle: any = null;\n\n constructor(private elmenetRef: ElementRef, private popoverService: FngPopoverService) {}\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 && this.options.delay && 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 && this.origin) {\n this.popoverRef = this.popoverService.open({\n content: this.text,\n origin: this.origin,\n options: {\n type: 'tooltip',\n maxWidth: this.options.maxWidth,\n // using a set here removes duplicate positions and ensures that at least the bottom position will be used\n positions: [...new Set([...this.positions, 'bottom'] as FngPopoverPosition[])],\n scrollStrategy: 'close'\n },\n data: undefined\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, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-progress',\n templateUrl: './progress.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngProgressComponent {\n @Input() progress: number = 0;\n @Input() error: boolean = false;\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","import { Directive, ElementRef, OnChanges, SimpleChanges, Input, AfterViewInit, NgZone, Renderer2, OnDestroy } from '@angular/core';\nimport SimpleBar from 'simplebar';\n\n\nexport interface FngScrollableAware extends AfterViewInit {\n scrollableViewReady: boolean;\n}\n\n@Directive({\n standalone: true,\n selector: '[fngScrollable]'\n})\nexport class FngScrollableDirective implements OnChanges, OnDestroy {\n @Input('fngScrollableScrollbarMinSize') scrollbarMinSize: number = 25;\n @Input('fngScrollableViewReady') viewReady: boolean = false;\n\n private sb: SimpleBar | undefined;\n private isScrolling = false;\n private resizeObserver: ResizeObserver = {} as 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 { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n standalone: true,\n name: 'fngSafeHtml'\n})\nexport class FngSafeHtmlPipe implements PipeTransform {\n constructor(protected sanitizer: DomSanitizer) {}\n\n public transform(value: any): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n }\n}\n","import { Component, Input, ViewChild, ElementRef, ViewEncapsulation, Output, EventEmitter, HostListener } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { FngSafeHtmlPipe } from '../../pipes/safe-html.pipe';\n\nexport class FngSearchSuggestion {\n /**\n * a html-string. e.g.: '<strong> hello </strong>'\n */\n template: string = '';\n\n /**\n * This Value will be used as new query when the user selects the suggestion.\n */\n value: string = '';\n\n /**\n * Creates a basic Suggestion from a string. The first query match is highlighted by bold tags.\n * @param suggestionString The suggested string (should contain the whole query)\n * @param query The current query. This string will be highlighted.\n * @returns a html-string.\n */\n static basicSuggestion(suggestionString: string, query: string): FngSearchSuggestion {\n const i = suggestionString.toLocaleLowerCase().indexOf(query.toLocaleLowerCase());\n let template = suggestionString;\n if (i != -1) {\n const boldStart = i;\n const boldEnd = i + query.length;\n const part1 = suggestionString.substring(0, boldStart);\n const part2 = suggestionString.substring(boldStart, boldEnd);\n const part3 = suggestionString.substring(boldEnd, suggestionString.length);\n template = part1 + '<strong>' + part2 + '</strong>' + part3;\n }\n return { value: suggestionString, template };\n }\n}\n\n/**\n * A custom form element for search inputs.\n */\n@Component({\n standalone: true,\n imports: [CommonModule, FngSafeHtmlPipe],\n selector: 'fng-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSearchInputComponent {\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: FngSearchSuggestion[]) {\n this.selectedSuggestionIndex = -1;\n this.innerSuggestions = value;\n }\n\n /**\n * The list of suggestions capped by 10 entries\n */\n get cappedSuggestions(): FngSearchSuggestion[] {\n return this.innerSuggestions.slice(0, 10);\n }\n\n innerSuggestions: FngSearchSuggestion[] = [];\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].value;\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].value;\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: FngSearchSuggestion) {\n this.selectedSuggestionIndex = -1;\n this.value = suggestion.value;\n this.fngSearch.emit(this.value);\n this.hideSuggestionList = true;\n this.inputRef.nativeElement.blur();\n }\n\n clearQuery(): 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\" (clickOutside)=\"onClickOutside()\" fngClickOutside>\n <input\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)=\"clearQuery()\"></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 <div [innerHTML]=\"suggestion.template | fngSafeHtml\"></div>\n </div>\n <div class=\"fwe-ml-xxs\" *ngIf=\"innerSuggestions.length > 10\">...</div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Every sidebar instance has its unique instanceID.\n * When a sidebar is opened, this ID is the next currentsInstanceID.\n * Every instance with an other ID will be closed then.\n *\n * usage: <fng-sidebar-overlay [(open)]=\"sidebarOpen\" fngNavbarMargin> ... </fng-details-sidebar>\n */\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-sidebar-overlay',\n templateUrl: './sidebar-overlay.component.html',\n styleUrls: ['./sidebar-overlay.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSidebarOverlayComponent {\n static currentsInstanceID$ = new BehaviorSubject<number>(0);\n\n private instanceID: number;\n\n private internalOpen = false;\n\n @Input() get fngNavbarMargin(): boolean {\n return this.internalNavbarMargin;\n }\n set fngNavbarMargin(value: boolean | '') {\n this.internalNavbarMargin = value === '' || value;\n }\n internalNavbarMargin = false;\n\n @Input() set open(value: boolean | '') {\n this.internalOpen = value === '' || value;\n if (this.internalOpen) {\n FngSidebarOverlayComponent.currentsInstanceID$.next(this.instanceID);\n }\n }\n get open(): boolean {\n return this.internalOpen;\n }\n\n @Output() openChange = new EventEmitter<boolean>();\n\n constructor() {\n this.instanceID = Math.random();\n FngSidebarOverlayComponent.currentsInstanceID$.subscribe(id => {\n // close open instances when an other is opened\n if (this.internalOpen && id !== this.instanceID) {\n this.internalOpen = false;\n this.openChange.emit(this.internalOpen);\n }\n });\n }\n\n closeSidebar() {\n this.internalOpen = false;\n this.openChange.emit(this.internalOpen);\n }\n}\n","<div class=\"fwe-sidebar-overlay\" [class.fwe-sidebar-overlay--open]=\"open\" [class.fwe-navbar-margin]=\"internalNavbarMargin\">\n <button type=\"button\" class=\"fwe-sidebar-overlay-close-btn\" (click)=\"closeSidebar()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n <ng-content></ng-content>\n</div>\n","import { AfterViewInit, Component, EventEmitter, HostBinding, Input, OnDestroy, Output, ViewEncapsulation } from '@angular/core';\nimport { animate, sequence, state, style, transition, trigger } from '@angular/animations';\nimport { FngSnackbarData } from './snackbar.models';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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 FngSnackbarComponent implements AfterViewInit, OnDestroy {\n @Input() data: FngSnackbarData = {} as FngSnackbarData;\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-info': data.type === 'info',\n 'fwe-snackbar-warning': data.type === 'warning',\n 'fwe-snackbar-error': data.type === 'error',\n 'fwe-snackbar-shadow': data.darkBackground\n }\"\n>\n <span>{{ data.text }}</span>\n <button *ngIf=\"data?.action\" aria-label=\"UserAction\" type=\"button\" class=\"fwe-snackbar-link-btn\" (click)=\"onAction()\">\n {{ data.action }}\n </button>\n\n <div *ngIf=\"data?.action && data?.showClose\" class=\"fwe-snackbar-separator\"></div>\n\n <button *ngIf=\"data?.showClose\" aria-label=\"Close\" type=\"button\" class=\"fwe-snackbar-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { FngSnackbarData } from './snackbar.models';\n\nexport type FngSnackDescription = {\n data: FngSnackbarData;\n actionCallback?: () => void;\n closeCallback?: () => void;\n resolve: (value: unknown) => void;\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FngSnackbarService {\n snacks$: Observable<FngSnackDescription>;\n\n private snacks = new Subject<FngSnackDescription>();\n\n constructor() {\n this.snacks$ = this.snacks.asObservable();\n }\n\n snack(data: FngSnackbarData, actionCallback?: () => void, closeCallback?: () => void) {\n return new Promise(resolve => {\n this.snacks.next({ data, actionCallback, closeCallback, resolve });\n });\n }\n}\n","import {\n ComponentRef,\n Directive,\n Input,\n OnDestroy,\n ViewContainerRef\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FngSnackbarComponent } from './snackbar.component';\nimport { FngSnackbarConfig } from './snackbar.models';\nimport { FngSnackbarService, FngSnackDescription } from './snackbar.service';\n\ninterface FngSnackbarRef {\n componentRef: ComponentRef<FngSnackbarComponent>;\n complete: Subject<boolean>;\n}\n\n@Directive({\n standalone: true,\n selector: '[fngSnackbarContainer]'\n})\nexport class FngSnackbarContainerDirective implements OnDestroy {\n @Input() fngSnackbarContainer: FngSnackbarConfig = {} as FngSnackbarConfig;\n\n private snacks: FngSnackbarRef[] = [];\n\n private snacksSub: Subscription;\n\n constructor(private viewContainerRef: ViewContainerRef, private snackbarService: FngSnackbarService) {\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: FngSnackDescription) {\n const complete = new Subject<boolean>();\n const componentRef = this.viewContainerRef.createComponent(FngSnackbarComponent);\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: FngSnackbarRef) {\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 { FngSnackbarConfig } from './snackbar.models';\nimport { FngSnackbarContainerDirective } from './snackbar-container.directive';\n\n@Component({\n standalone: true,\n imports: [FngSnackbarContainerDirective],\n selector: 'fng-snackbar-container',\n templateUrl: './snackbar-container.component.html',\n styleUrls: ['./snackbar-container.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSnackbarContainerComponent {\n @Input() config: FngSnackbarConfig = {\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 { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-step-horizontal',\n templateUrl: './step-horizontal.component.html',\n styleUrls: ['./step-horizontal.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngStepHorizontalComponent {\n @Input() isActive = false;\n\n @Input() title: string = '';\n}\n","<div class=\"fng-overflow-hidden\" [class.fng-hidden]=\"!isActive\">\n <div class=\"fng-moving-container\">\n <ng-content></ng-content>\n </div>\n</div>\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { delay } from 'rxjs/operators';\nimport { FngStepHorizontalComponent } from './step-horizontal/step-horizontal.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-stepper-horizontal',\n templateUrl: './stepper-horizontal.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngStepperHorizontalComponent implements AfterContentInit, OnChanges {\n @ContentChildren(FngStepHorizontalComponent) stepComponents!: QueryList<FngStepHorizontalComponent>;\n\n @Input() stepIndex: number = 0;\n @Output() stepIndexChange = new EventEmitter<number>();\n\n ngOnChanges() {\n this.updateStepComponents();\n }\n\n updateStepComponents(): void {\n if (this.stepIndex > -1 && this.stepComponents?.length > this.stepIndex) {\n this.stepComponents.forEach((s, i) => {\n s.isActive = i == this.stepIndex;\n });\n }\n }\n\n ngAfterContentInit(): void {\n if (!this.stepComponents) {\n return;\n }\n this.stepComponents.changes.pipe(delay(0)).subscribe(() => {\n this.updateStepComponents();\n });\n this.updateStepComponents();\n }\n\n onStepClick(index: number) {\n if (this.stepIndex > index) {\n this.stepIndex = index;\n this.updateStepComponents();\n this.stepIndexChange?.emit(index);\n }\n }\n}\n","<div class=\"fwe-stepper-horizontal\">\n <div\n *ngFor=\"let step of stepComponents; index as i\"\n class=\"fwe-step-container\"\n (click)=\"onStepClick(i)\"\n [class.fwe-step-done]=\"stepIndex > i\"\n [class.fwe-step-active]=\"i === stepIndex\"\n >\n <div class=\"fwe-step\">\n <div class=\"fwe-step-no\">{{ i + 1 }}</div>\n <div class=\"fwe-step-name\">{{ step.title }}</div>\n </div>\n </div>\n</div>\n\n<ng-content></ng-content>\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-step-vertical',\n templateUrl: './step-vertical.component.html',\n styleUrls: ['./step-vertical.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngStepVerticalComponent implements AfterViewInit {\n @ViewChild('stepContent') stepContent?: ElementRef;\n @ViewChild('stepContentContainer') stepContentContainer?: ElementRef;\n\n @Input() index: number = 0;\n\n @Input() title: string = '';\n\n @Input() isDone: boolean = false;\n\n @Input() isLastElement: boolean = false;\n\n // Note: OnChanges does not work because the input are not updated via bindings\n @Input() set isActive(value: boolean) {\n this._isActive = value;\n this.updateHeight();\n }\n get isActive(): boolean {\n return this._isActive;\n }\n _isActive = false;\n\n public onStepClickCallback: (i: number) => void = () => null;\n\n updateHeight() {\n if (this.stepContent && this.stepContentContainer) {\n if (this.isActive) {\n const itemHeight = this.stepContent.nativeElement.offsetHeight;\n this.stepContentContainer.nativeElement.style.height = itemHeight + 'px';\n } else {\n this.stepContentContainer.nativeElement.style.height = '20px';\n }\n }\n }\n\n ngAfterViewInit() {\n this.updateHeight();\n }\n}\n","<div\n class=\"fwe-step-container\"\n [class.fwe-last-element]=\"isLastElement\"\n [class.fwe-step-active]=\"isActive\"\n [class.fwe-step-done]=\"isDone\"\n>\n <div class=\"fwe-step\" (click)=\"onStepClickCallback(index)\">\n <div class=\"fwe-step-no\">{{ index + 1 }}</div>\n <div class=\"fwe-step-name\">{{ title }}</div>\n </div>\n <div #stepContentContainer class=\"fwe-step-content-container\">\n <div #stepContent class=\"fwe-step-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { delay } from 'rxjs/operators';\nimport { FngStepVerticalComponent } from './step-vertical/step-vertical.component';\n\n@Component({\n standalone: true,\n selector: 'fng-stepper-vertical',\n templateUrl: './stepper-vertical.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngStepperVerticalComponent implements AfterContentInit, OnChanges {\n @ContentChildren(FngStepVerticalComponent) stepComponents!: QueryList<FngStepVerticalComponent>;\n\n @Input() stepIndex: number = 0;\n @Output() stepIndexChange = new EventEmitter<number>();\n\n ngOnChanges() {\n this.updateStepComponents();\n }\n\n updateStepComponents(): void {\n if (this.stepIndex > -1 && this.stepComponents?.length > this.stepIndex) {\n this.stepComponents.forEach((s, i) => {\n s.index = i;\n s.isDone = i < this.stepIndex;\n s.isActive = i == this.stepIndex;\n s.isLastElement = i == this.stepComponents.length - 1;\n s.onStepClickCallback = i => this.onStepClick(i);\n });\n }\n }\n\n ngAfterContentInit(): void {\n if (!this.stepComponents) {\n return;\n }\n this.stepComponents.changes.pipe(delay(0)).subscribe(() => {\n this.updateStepComponents();\n });\n this.updateStepComponents();\n }\n\n onStepClick(index: number) {\n if (this.stepIndex > index) {\n this.stepIndex = index;\n this.updateStepComponents();\n this.stepIndexChange?.emit(index);\n }\n }\n}\n","<div class=\"fwe-stepper-vertical\">\n <ng-content></ng-content>\n</div>\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface FngTableColumnOrder {\n orderBy?: string;\n ascending: boolean;\n}\n\n@Directive({\n standalone: true,\n selector: '[fngTh]',\n host: {\n '[class.fwe-table-order]': 'order != null',\n '[class.fwe-active]': 'active',\n '[class.fwe-table-order-ascending]': 'active && orderDescending === false',\n '[class.fwe-table-order-descending]': 'active && orderDescending === true',\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 FngTableHeaderCellDirective {\n @Input() order: FngTableColumnOrder | undefined;\n @Input() fngTh: string | undefined;\n\n @Output() changeOrder = new EventEmitter<string>();\n\n /* Attributes */\n @Input() abbr: string | undefined;\n @Input() colspan: number | undefined;\n @Input() headers: string | undefined;\n @Input() rowspan: number | undefined;\n @Input() scope: string | undefined;\n\n get active(): boolean {\n if (!this.order) {\n return false;\n }\n\n if (!this.order.orderBy || !this.fngTh) {\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, OnChanges, ViewEncapsulation } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'fng-tab-pane',\r\n templateUrl: './tab-pane.component.html',\r\n styleUrls: ['./tab-pane.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FngTabPaneComponent implements OnChanges {\r\n static nextId = 0;\r\n // @deprecated Input() id is not in use anymore but still exists for backwards compatiblity\r\n @Input() id: string | undefined;\r\n @Input() name: string | undefined;\r\n @Input() icon: string | undefined;\r\n @Input() active: boolean | undefined;\r\n @Input() isVisible: boolean | undefined;\r\n @Input() disabled: boolean = false;\r\n\r\n tabId: string | undefined;\r\n tabPaneId = `tab-panel-content-${++FngTabPaneComponent.nextId}`;\r\n\r\n private changesSubject = new Subject<boolean>();\r\n changes$ = this.changesSubject.asObservable();\r\n\r\n ngOnChanges(): void {\r\n this.changesSubject.next(true);\r\n }\r\n}\r\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 { CommonModule, DOCUMENT } from '@angular/common';\r\nimport {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n QueryList,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { noop, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { FngTabPaneComponent } from './tab-pane/tab-pane.component';\r\n\r\nexport interface FngTab {\r\n name: string;\r\n paneId: string | null;\r\n active?: boolean;\r\n icon?: string | null;\r\n disabled?: boolean;\r\n}\r\n\r\n// fill: use the remaining space and add in same proportion to every tab item\r\n// equal: make all tab items same width (as the one with largest content)\r\nexport type FngTabItemAppearance = 'fill' | 'equal' | 'default';\r\n\r\n// legacy: recommended for desktop only applications\r\n// responsive: desktop, tablet, mobile with scrollable tabs\r\nexport type FngTabViewType = 'legacy' | 'responsive';\r\n\r\n// configuration options for legacy tab view type\r\nexport interface FngTabsConfiguration {\r\n tabBar?: {\r\n fullWidth?: boolean;\r\n };\r\n tabItems?: {\r\n appearance: FngTabItemAppearance;\r\n };\r\n}\r\n\r\n// provides details about the left and right edges of the tab element and the tab content element\r\n// these values are used to determine the visual position of the tab with respect of its parent container\r\nexport interface FngTabDimensions {\r\n rootLeft: number;\r\n rootRight: number;\r\n contentLeft: number;\r\n contentRight: number;\r\n}\r\n\r\nexport interface FngTabScrollAnimation {\r\n finalScrollPosition: number;\r\n scrollDelta: number;\r\n}\r\n\r\nexport interface FngTabScrollHorizontalEdges {\r\n left: number;\r\n right: number;\r\n}\r\n\r\nexport interface FngBeforeTabChangeEvent {\r\n ok: () => void;\r\n cancel: () => void;\r\n}\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [CommonModule],\r\n selector: 'fng-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FngTabsComponent implements AfterContentInit, AfterViewInit, OnDestroy {\r\n static nextId = 0;\r\n @Input('fngTabsViewType') viewType: FngTabViewType = 'responsive';\r\n @Input('fngTabsUseBottomDivider') showDivider: boolean = false;\r\n\r\n @Input() config: FngTabsConfiguration | null = null;\r\n @Output() fngBeforeTabChange = new EventEmitter<FngBeforeTabChangeEvent>();\r\n @Output() fngTabChange = new EventEmitter<{ previous: string; current: string }>();\r\n\r\n @ContentChildren(FngTabPaneComponent) panes: QueryList<FngTabPaneComponent> | undefined;\r\n @ViewChild('scroller') scroller: ElementRef | undefined;\r\n @ViewChild('scrollAera') scrollAera: ElementRef | undefined;\r\n @ViewChild('scrollContent') scrollContent: ElementRef | undefined;\r\n\r\n componentId = `tabs-${++FngTabsComponent.nextId}`;\r\n tabs: FngTab[] = [];\r\n useCompactDensity: boolean = true;\r\n private activeTab: FngTab | undefined = undefined;\r\n private elemScroller: HTMLElement | undefined;\r\n private elemScrollArea: HTMLElement | undefined;\r\n private elemScrollContent: HTMLElement | undefined;\r\n private readonly injectedWindow: Window | null;\r\n private resizeObserver!: ResizeObserver;\r\n private complete: Subject<boolean> = new Subject();\r\n\r\n constructor(\r\n private elRef: ElementRef,\r\n @Inject(DOCUMENT) private document: Document,\r\n private renderer: Renderer2,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.injectedWindow = this.document.defaultView;\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.initTabs();\r\n if (null == this.activeTab) {\r\n this.panes?.map((pane, i) => {\r\n if (0 === i) {\r\n pane.isVisible = true;\r\n }\r\n });\r\n } else {\r\n const pane = this.panes?.find(pane => {\r\n if (this.activeTab) {\r\n return this.activeTab.paneId != null && pane.tabPaneId === this.activeTab.paneId;\r\n } else {\r\n return false;\r\n }\r\n });\r\n if (pane) {\r\n pane.isVisible = true;\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.elemScroller = this.scroller?.nativeElement;\r\n this.elemScrollArea = this.scrollAera?.nativeElement;\r\n this.elemScrollContent = this.scrollContent?.nativeElement;\r\n if (this.elemScroller == null || this.elemScrollArea == null || this.elemScrollContent == null) {\r\n return;\r\n }\r\n const initialWidth = this.elemScrollArea.offsetWidth;\r\n if (initialWidth != null && initialWidth > 768) {\r\n this.useCompactDensity = false;\r\n this.cd.detectChanges();\r\n }\r\n\r\n this.resizeObserver = new ResizeObserver(() => {\r\n if (this.elemScrollArea == null) {\r\n return;\r\n }\r\n const width = this.elemScrollArea.offsetWidth;\r\n if (width != null && width > 768 && this.useCompactDensity === true) {\r\n this.useCompactDensity = false;\r\n this.cd.detectChanges();\r\n } else if (width != null && width <= 768 && this.useCompactDensity === false) {\r\n this.useCompactDensity = true;\r\n this.cd.detectChanges();\r\n }\r\n });\r\n\r\n if (this.elemScrollArea != null) {\r\n this.resizeObserver.observe(this.elemScrollArea);\r\n }\r\n\r\n this.handleTabPaneChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.complete.next(true);\r\n this.complete.unsubscribe();\r\n }\r\n\r\n showTabPane(id: string | null) {\r\n if (id == null) {\r\n return;\r\n }\r\n\r\n const pane = this.panes?.find(p => p.tabPaneId === id);\r\n const handleTabChange = (id: string) => {\r\n if (pane != null && pane.disabled !== true) {\r\n this.panes?.map(p => {\r\n p.isVisible = false;\r\n });\r\n pane.isVisible = true;\r\n\r\n this.tabs.map(tab => {\r\n if (tab.paneId !== pane.tabPaneId) {\r\n tab.active = false;\r\n } else {\r\n tab.active = true;\r\n }\r\n });\r\n this.fngTabChange.emit({\r\n previous: this.activeTab?.paneId || '',\r\n current: id\r\n });\r\n this.activeTab = this.tabs.find(tab => !!tab.active);\r\n this.cd.detectChanges();\r\n }\r\n };\r\n\r\n if (this.fngBeforeTabChange?.observers?.length > 0 && pane?.disabled !== true) {\r\n this.fngBeforeTabChange.emit({\r\n ok: () => {\r\n handleTabChange(id);\r\n },\r\n cancel: () => {\r\n noop();\r\n }\r\n });\r\n } else {\r\n handleTabChange(id);\r\n }\r\n }\r\n\r\n handleTabScroll(event: any, index: number) {\r\n if (this.elemScrollContent == null || this.elemScrollArea == null) {\r\n return;\r\n }\r\n const scrollContentWidth = this.elemScrollContent.offsetWidth;\r\n const scrollAreaWidth = this.elemScrollArea.offsetWidth;\r\n\r\n // check if no scroll is needed\r\n if (scrollAreaWidth > scrollContentWidth) {\r\n return;\r\n }\r\n\r\n // check index\r\n if (!this.indexIsInRange(index)) {\r\n return;\r\n }\r\n\r\n // always scroll to 0 if scrolling to the first tab\r\n if (index === 0) {\r\n this.scrollTo(0);\r\n return;\r\n }\r\n\r\n // always scroll to the max value if scrolling to the last tab\r\n if (index === this.tabs.length - 1) {\r\n this.scrollTo(this.elemScrollContent.offsetWidth);\r\n return;\r\n }\r\n\r\n const currentTab: HTMLElement = event.target;\r\n this.scrollIntoView(index, currentTab);\r\n }\r\n\r\n private initTabs() {\r\n this.tabs = [];\r\n this.panes?.map((pane, i) => {\r\n pane.tabId = this.componentId + '-tab-' + i;\r\n const tab: FngTab = {\r\n name: null != pane.name ? pane.name : '',\r\n paneId: null != pane.tabPaneId ? pane.tabPaneId : null,\r\n icon: null != pane.icon ? pane.icon : null,\r\n active: null != pane.active ? pane.active : false,\r\n disabled: null != pane.disabled ? pane.disabled : false\r\n };\r\n this.tabs.push(tab);\r\n });\r\n\r\n this.initActiveTab();\r\n this.cd.detectChanges();\r\n }\r\n\r\n private initActiveTab() {\r\n const activeTab: FngTab | undefined = this.tabs.find((tab: FngTab) => !!tab.active);\r\n if (!activeTab && 0 < this.tabs.length) {\r\n this.tabs[0] = { ...this.tabs[0], active: true };\r\n this.activeTab = this.tabs[0];\r\n } else {\r\n this.activeTab = activeTab;\r\n }\r\n }\r\n\r\n private handleTabPaneChanges() {\r\n // first subscribe to any changes in tab pane, so that the tabs in this view wiil be updated\r\n this.panes?.forEach(pane => {\r\n pane.changes$.pipe(takeUntil(this.complete)).subscribe(() => {\r\n // on changes in a tab pane, we init the tabs again\r\n this.initTabs();\r\n });\r\n });\r\n }\r\n\r\n private scrollTo(scrollX: number | undefined) {\r\n if (scrollX == null) {\r\n return;\r\n }\r\n const currentScrollX = this.getScrollPosition();\r\n const safeScrollX = this.clampScrollValue(scrollX);\r\n if (safeScrollX == null || currentScrollX == null) {\r\n return;\r\n }\r\n const scrollDelta = safeScrollX - currentScrollX;\r\n this.animate({\r\n finalScrollPosition: safeScrollX,\r\n scrollDelta\r\n });\r\n }\r\n\r\n private scrollIntoView(index: number, tab: HTMLElement) {\r\n if (this.elemScrollArea == null) {\r\n return;\r\n }\r\n\r\n const scrollPosition = this.getScrollPosition();\r\n const barWidth = this.elemScrollArea.offsetWidth;\r\n if (barWidth == null || scrollPosition == null) {\r\n return;\r\n }\r\n\r\n const tabDimensions = this.computeDimensions(tab);\r\n if (tabDimensions == null) {\r\n return;\r\n }\r\n\r\n const nextIndex = this.findAdjacentTabIndexClosestToEdge(index, tabDimensions, scrollPosition, barWidth);\r\n if (!this.indexIsInRange(nextIndex)) {\r\n return;\r\n }\r\n\r\n const scrollIncrement = this.calculateScrollIncrement(index, nextIndex, scrollPosition, barWidth);\r\n if (scrollIncrement == null) {\r\n return;\r\n }\r\n\r\n this.incrementScroll(scrollIncrement);\r\n }\r\n\r\n private incrementScroll(scrollXIncrement: number) {\r\n // no scroll needed\r\n if (scrollXIncrement === 0) {\r\n return;\r\n }\r\n const scrollOperation = this.getIncrementScrollOperation(scrollXIncrement);\r\n if (scrollOperation == null) {\r\n return;\r\n }\r\n this.animate(scrollOperation);\r\n }\r\n\r\n private animate(animation: FngTabScrollAnimation) {\r\n // no animation needed\r\n if (animation.scrollDelta === 0) {\r\n return;\r\n }\r\n\r\n // no animation possible\r\n if (this.elemScrollArea == null) {\r\n return;\r\n }\r\n\r\n this.stopScrollAnimation();\r\n\r\n // this animation uses the flip approach\r\n // https://aerotwist.com/blog/flip-your-animations/\r\n // https://css-tricks.com/animating-layouts-with-the-flip-technique/\r\n this.elemScrollArea.scrollLeft = animation.finalScrollPosition;\r\n this.setScrollContentStyleProperty('transform', `translateX(${animation.scrollDelta}px)`);\r\n // force repaint\r\n this.elemScrollArea.getBoundingClientRect();\r\n\r\n requestAnimationFrame(() => {\r\n this.renderer.addClass(this.elemScroller, 'fng-tab-scroller--animating');\r\n this.setScrollContentStyleProperty('transform', 'none');\r\n });\r\n }\r\n\r\n private stopScrollAnimation() {\r\n if (this.elemScrollArea == null) {\r\n return;\r\n }\r\n const currentScrollPosition = this.getAnimatingScrollPosition();\r\n if (currentScrollPosition == null) {\r\n return;\r\n }\r\n\r\n this.renderer.removeClass(this.elemScroller, 'fng-tab-scroller--animating');\r\n this.setScrollContentStyleProperty('transform', 'translateX(0px)');\r\n this.elemScrollArea.scrollLeft = currentScrollPosition;\r\n }\r\n\r\n private getAnimatingScrollPosition(): number | null {\r\n if (this.elemScrollArea == null) {\r\n return null;\r\n }\r\n const currentTranslateX = this.calculateCurrentTranslateX();\r\n const scrollLeft = this.elemScrollArea.scrollLeft;\r\n return scrollLeft - currentTranslateX;\r\n }\r\n\r\n private getIncrementScrollOperation(scrollX: number): FngTabScrollAnimation | null {\r\n const currentScrollX = this.getScrollPosition();\r\n if (currentScrollX == null) {\r\n return null;\r\n }\r\n\r\n const targetScrollX = scrollX + currentScrollX;\r\n const safeScrollX = this.clampScrollValue(targetScrollX);\r\n if (safeScrollX == null) {\r\n return null;\r\n }\r\n const scrollDelta = safeScrollX - currentScrollX;\r\n return {\r\n finalScrollPosition: safeScrollX,\r\n scrollDelta\r\n };\r\n }\r\n\r\n private clampScrollValue(scrollX: number): number | null {\r\n const edges = this.calculateScrollEdges();\r\n if (edges == null) {\r\n return null;\r\n }\r\n return Math.min(Math.max(edges.left, scrollX), edges.right);\r\n }\r\n\r\n private calculateScrollEdges(): FngTabScrollHorizontalEdges | null {\r\n if (this.elemScrollArea == null || this.elemScrollContent == null) {\r\n return null;\r\n }\r\n const scrollContentWidth = this.elemScrollContent.offsetWidth;\r\n const scrollAreaWidth = this.elemScrollArea.offsetWidth;\r\n return {\r\n left: 0,\r\n right: scrollContentWidth - scrollAreaWidth\r\n };\r\n }\r\n\r\n private computeDimensions(tab: HTMLElement): FngTabDimensions | null {\r\n const rootWidth = tab.offsetWidth;\r\n const rootLeft = tab.offsetLeft;\r\n\r\n const tabContent: HTMLElement | null = tab.querySelector<HTMLElement>('.fng-tab-content');\r\n if (tabContent == null) {\r\n return null;\r\n }\r\n\r\n const contentWidth = tabContent.offsetWidth;\r\n const contentLeft = tabContent.offsetLeft;\r\n\r\n return {\r\n contentLeft: rootLeft + contentLeft,\r\n contentRight: rootLeft + contentLeft + contentWidth,\r\n rootLeft,\r\n rootRight: rootLeft + rootWidth\r\n };\r\n }\r\n\r\n private calculateScrollIncrement(index: number, nextIndex: number, scrollPosition: number, barWidth: number): number | null {\r\n const nextTab: HTMLElement | null = (this.elRef.nativeElement as HTMLElement).querySelector<HTMLElement>(\r\n `#${this.componentId}-tab-${nextIndex}`\r\n );\r\n\r\n if (nextTab == null) {\r\n return null;\r\n }\r\n\r\n const nextTabDimensions = this.computeDimensions(nextTab);\r\n\r\n if (nextTabDimensions == null) {\r\n return null;\r\n }\r\n\r\n const relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\r\n const relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\r\n const leftIncrement = relativeContentRight - 48;\r\n const rightIncrement = relativeContentLeft + 48;\r\n\r\n if (nextIndex < index) {\r\n return Math.min(leftIncrement, 0);\r\n }\r\n\r\n return Math.max(rightIncrement, 0);\r\n }\r\n\r\n private indexIsInRange(index: number) {\r\n return index >= 0 && index < this.tabs.length;\r\n }\r\n\r\n private getScrollPosition(): number | null {\r\n if (this.elemScrollArea == null) {\r\n return null;\r\n }\r\n const currentTranslateX = this.calculateCurrentTranslateX();\r\n const scrollLeft = this.elemScrollArea.scrollLeft;\r\n\r\n return scrollLeft - currentTranslateX;\r\n }\r\n\r\n private calculateCurrentTranslateX(): number {\r\n const transformValue = this.getScrollContentStyleValue('transform');\r\n if (transformValue == null) {\r\n return 0;\r\n }\r\n\r\n if (transformValue === 'none') {\r\n return 0;\r\n }\r\n\r\n // the transform value is in form of 'matrix(a, b, c, d, tx, ty)'\r\n // get all the parenthesized values\r\n const match = /\\((.+?)\\)/.exec(transformValue);\r\n if (!match) {\r\n return 0;\r\n }\r\n\r\n const matrixParams = match[1];\r\n // we need value of tx -> translateX\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const [a, b, c, d, tx, ty] = matrixParams.split(',');\r\n return parseFloat(tx);\r\n }\r\n\r\n private getScrollContentStyleValue(propName: string) {\r\n if (this.elemScrollContent == null) {\r\n return;\r\n }\r\n return this.injectedWindow?.getComputedStyle(this.elemScrollContent).getPropertyValue(propName);\r\n }\r\n\r\n private setScrollContentStyleProperty(propName: string, value: any) {\r\n this.renderer.setStyle(this.elemScrollContent, propName, value);\r\n }\r\n\r\n private findAdjacentTabIndexClosestToEdge(\r\n index: number,\r\n tabDimensions: FngTabDimensions,\r\n scrollPosition: number,\r\n barWidth: number\r\n ): number {\r\n /**\r\n * tabs are laid out in the tab scroller like this:\r\n *\r\n * scroll position\r\n * +---+\r\n * | | bar width\r\n * | +-----------------------------------+\r\n * | | |\r\n * | v v\r\n * | +-----------------------------------+\r\n * v | tab scroller |\r\n * +------------+--------------+-------------------+\r\n * | tab | tab | tab |\r\n * +------------+--------------+-------------------+\r\n * | |\r\n * +-----------------------------------+\r\n *\r\n * to determine the next adjacent index, we look at the tab root left and\r\n * tab root right, both relative to the scroll position. if the tab root\r\n * left is less than 0, then we know it's out of view to the left. if the\r\n * tab root right minus the bar width is greater than 0, we know the tab is\r\n * out of view to the right. from there, we either increment or decrement\r\n * the index.\r\n */\r\n const relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\r\n const relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\r\n const relativeRootDelta = relativeRootLeft + relativeRootRight;\r\n const leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\r\n const rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\r\n\r\n if (leftEdgeIsCloser) {\r\n return index - 1;\r\n }\r\n\r\n if (rightEdgeIsCloser) {\r\n return index + 1;\r\n }\r\n\r\n return -1;\r\n }\r\n}\r\n","<ng-container *ngIf=\"viewType === 'legacy'\">\r\n <div class=\"fwe-legacy-tabs\">\r\n <ul\r\n role=\"tablist\"\r\n class=\"fwe-legacy-tab-bar\"\r\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\r\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\r\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\r\n >\r\n <li\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n class=\"fwe-legacy-tab-item\"\r\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\r\n >\r\n <ng-container *ngIf=\"null == tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n >{{ tab.name }}</a\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"null != tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\r\n >\r\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\r\n <span>{{ tab.name }}</span>\r\n </a>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"fwe-legacy-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"viewType !== 'legacy'\">\r\n <div class=\"fng-tab-bar\" role=\"tablist\">\r\n <div class=\"fng-tab-scroller\" #scroller>\r\n <div\r\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\r\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\r\n #scrollAera\r\n >\r\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\r\n <button\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n role=\"tab\"\r\n class=\"fng-tab\"\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [tabindex]=\"i === 0 ? 0 : -1\"\r\n [class.fng-tab--active]=\"tab?.active\"\r\n [class.fng-tab--disabled]=\"tab?.disabled\"\r\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\r\n >\r\n <span class=\"fng-tab-content\">\r\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\r\n </span>\r\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\r\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\r\n </span>\r\n </button>\r\n <div class=\"fng-tab-scroller-divider-line\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"fng-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #tabPanelContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\nimport { FngClickOutsideDirective } from '../directives/click-outside.directive';\nimport {\n FngAccordionComponent,\n FngAccordionHeaderComponent,\n FngAccordionItemBodyComponent,\n FngAccordionItemComponent,\n FngAccordionItemHeaderComponent\n} from './accordion';\nimport { FngBottomSheetComponent } from './bottom-sheet/bottom-sheet.component';\nimport { FngBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { FngButtonComponent } from './buttons/button/button.component';\nimport { FngLinkButtonComponent } from './buttons/link-button/link-button.component';\nimport { FngChipContainerComponent } from './chips/chip-container/chip-container.component';\nimport { FngChipComponent } from './chips/chip/chip.component';\nimport { FngLoadingIndicatorComponent } from './loading-indicator/loading-indicator.component';\nimport { FngMobileFlyoutItemComponent } from './mobile-flyout/mobile-flyout-item/mobile-flyout-item.component';\nimport { FngMobileFlyoutPageComponent } from './mobile-flyout/mobile-flyout-page/mobile-flyout-page.component';\nimport { FngMobileFlyoutComponent } from './mobile-flyout/mobile-flyout.component';\nimport { FngPaginationComponent } from './pagination/pagination.component';\nimport { FngLegendComponent } from './popovers/legend/legend.component';\nimport { FngLegendDirective } from './popovers/legend/legend.directive';\nimport { FngPopoverContentComponent } from './popovers/popover-content/popover-content.component';\nimport { FngPopoverContentDirective } from './popovers/popover-content/popover-content.directive';\nimport { FngPopoverMenuComponent } from './popovers/popover-menu/popover-menu.component';\nimport { FngPopoverComponent } from './popovers/popover/popover.component';\nimport { FngTooltipDirective } from './popovers/tooltip/tooltip.directive';\nimport { FngProgressComponent } from './progress/progress.component';\nimport { FngScrollableDirective } from './scroll';\nimport { FngSearchInputComponent } from './search-input/search-input.component';\nimport { FngSidebarOverlayComponent } from './sidebar-overlay/sidebar-overlay.component';\nimport { FngSnackbarContainerComponent } from './snackbar/snackbar-container.component';\nimport { FngStepHorizontalComponent } from './stepper-horizontal/step-horizontal/step-horizontal.component';\nimport { FngStepperHorizontalComponent } from './stepper-horizontal/stepper-horizontal.component';\nimport { FngStepVerticalComponent } from './stepper-vertical/step-vertical/step-vertical.component';\nimport { FngStepperVerticalComponent } from './stepper-vertical/stepper-vertical.component';\nimport { FngTableHeaderCellDirective } from './table-header-cell/table-header-cell.directive';\nimport { FngTabPaneComponent } from './tabs/tab-pane/tab-pane.component';\nimport { FngTabsComponent } from './tabs/tabs.component';\n\n@NgModule({\n imports: [\n FngClickOutsideDirective,\n FngPaginationComponent,\n FngMobileFlyoutPageComponent,\n FngMobileFlyoutItemComponent,\n FngMobileFlyoutComponent,\n FngLoadingIndicatorComponent,\n FngChipComponent,\n FngChipContainerComponent,\n FngTabsComponent,\n FngTabPaneComponent,\n FngBreadcrumbComponent,\n FngAccordionComponent,\n FngAccordionHeaderComponent,\n FngAccordionItemComponent,\n FngAccordionItemBodyComponent,\n FngAccordionItemHeaderComponent,\n FngButtonComponent,\n FngLinkButtonComponent,\n FngSearchInputComponent,\n FngSnackbarContainerComponent,\n FngStepHorizontalComponent,\n FngStepperHorizontalComponent,\n FngStepperVerticalComponent,\n FngStepVerticalComponent,\n FngTableHeaderCellDirective,\n FngScrollableDirective,\n FngProgressComponent,\n FngLegendDirective,\n FngPopoverComponent,\n FngPopoverContentDirective,\n FngPopoverContentComponent,\n FngPopoverMenuComponent,\n FngTooltipDirective,\n FngLegendDirective,\n FngLegendComponent,\n FngSidebarOverlayComponent,\n FngBottomSheetComponent\n ],\n exports: [\n FngClickOutsideDirective,\n FngBreadcrumbComponent,\n FngAccordionComponent,\n FngAccordionHeaderComponent,\n FngAccordionItemComponent,\n FngAccordionItemBodyComponent,\n FngAccordionItemHeaderComponent,\n FngButtonComponent,\n FngLinkButtonComponent,\n FngChipContainerComponent,\n FngChipComponent,\n FngLoadingIndicatorComponent,\n FngMobileFlyoutComponent,\n FngMobileFlyoutItemComponent,\n FngMobileFlyoutPageComponent,\n FngPaginationComponent,\n FngSearchInputComponent,\n FngSnackbarContainerComponent,\n FngStepHorizontalComponent,\n FngStepperHorizontalComponent,\n FngStepperVerticalComponent,\n FngStepVerticalComponent,\n FngTableHeaderCellDirective,\n FngScrollableDirective,\n FngProgressComponent,\n FngTabsComponent,\n FngTabPaneComponent,\n FngLegendDirective,\n FngPopoverComponent,\n FngPopoverContentDirective,\n FngPopoverContentComponent,\n FngPopoverMenuComponent,\n FngTooltipDirective,\n FngLegendDirective,\n FngLegendComponent,\n FngSidebarOverlayComponent,\n FngBottomSheetComponent\n ]\n})\nexport class FestoAngularComponentsModule {}\n","import { NgModule } from '@angular/core';\n\nimport { FngSnackbarComponent } from './snackbar.component';\nimport { FngSnackbarContainerDirective } from './snackbar-container.directive';\nimport { FngSnackbarContainerComponent } 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 imports: [FngSnackbarComponent, FngSnackbarContainerDirective, FngSnackbarContainerComponent],\n exports: [FngSnackbarContainerComponent, FngSnackbarContainerDirective, FngSnackbarContainerComponent],\n providers: []\n // bootstrap: [SnackbarComponent]\n})\nexport class FestoAngularSnackbarModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FngSafeHtmlPipe } from './../../pipes/safe-html.pipe';\nimport { Modal } from '../index';\n\nexport interface FngAlertData {\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 standalone: true,\n imports: [CommonModule, FngSafeHtmlPipe],\n selector: 'fng-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAlertComponent implements AfterViewInit, Modal<FngAlertData, any> {\n @Input() data: FngAlertData = {} as FngAlertData;\n @Output() close = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n @ViewChild('closeBtn') closeBtn: ElementRef | undefined;\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 <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-modal-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data.subtitle\" class=\"fwe-modal-h2\">\n {{ data.subtitle }}\n </h2>\n <h1 class=\"fwe-modal-h1\">\n {{ data.title }}\n </h1>\n </div>\n <div class=\"fwe-modal-body\" [innerHTML]=\"data.body | fngSafeHtml\"></div>\n <div class=\"fwe-modal-footer\" *ngIf=\"data.cancel || data.ok\">\n <div class=\"fwe-modal-buttons\">\n <button\n *ngIf=\"data.cancel\"\n type=\"button\"\n aria-label=\"Cancel\"\n class=\"fwe-btn fwe-btn-lg\"\n [class.fwe-btn-link]=\"data.strong\"\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\" [class.fwe-btn-hero]=\"!data.strong\" (click)=\"onOk()\">\n {{ data.ok }}\n </button>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\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';\nimport { FngSafeHtmlPipe } from './../../pipes/safe-html.pipe';\nimport { Modal } from '../index';\n\nexport interface FngConfirmData {\n title: string;\n subtitle?: string;\n body: string;\n cancel?: string;\n ok?: string;\n large?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, FngSafeHtmlPipe],\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 FngConfirmComponent implements AfterViewInit, Modal<FngConfirmData, any> {\n @Input() data: FngConfirmData = {} as FngConfirmData;\n @Output() close = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n @ViewChild('closeBtn') closeBtn: ElementRef | undefined;\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\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 class=\"fwe-modal\" [ngClass]=\"{ 'fwe-modal--large': data.large }\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-modal-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\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\" [innerHTML]=\"data.body | fngSafeHtml\"></div>\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 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 { Component, OnInit, Input, forwardRef, ViewChild, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\n\n/**\n * A custom form element for text inputs.\n */\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\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(() => FngTextInputComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngTextInputComponent 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 | undefined = undefined;\n @Input() min: number | undefined = undefined;\n @Input() max: number | undefined = undefined;\n @Input() tabindex: number | undefined = undefined;\n @Input() placeholder: string | undefined = undefined;\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 | undefined= undefined;\n\n @ViewChild('inputElement') inputElement: ElementRef | undefined;\n\n /**\n * When true the text input has focus.\n */\n focused: boolean = false;\n\n /**\n * Triggered on change.\n */\n onChange: ((value: string) => void) | undefined;\n\n /**\n * Triggered on touch.\n */\n onTouched: (() => void) | undefined;\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 /**\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 || false\"\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 (focus)=\"onFocus()\"\n [(ngModel)]=\"value\"\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 {\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 {\n AbstractControlOptions,\n AsyncValidatorFn,\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n ValidatorFn\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Modal } from '../index';\nimport { CommonModule } from '@angular/common';\nimport { FngTextInputComponent } from '../../forms/text-input/text-input.component';\n\nexport interface FngPromptData {\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 placeholder?: string;\n validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null;\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null;\n}\n\n@Component({\n standalone: true,\n imports: [ReactiveFormsModule, FormsModule, CommonModule, FngTextInputComponent],\n selector: 'fng-prompt',\n templateUrl: './prompt.component.html',\n styleUrls: ['./prompt.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPromptComponent implements OnInit, AfterViewInit, OnDestroy, Modal<FngPromptData, any> {\n @Input() data: FngPromptData = {} as FngPromptData;\n @Output() close = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n @ViewChild('closeBtn') closeBtn: ElementRef | undefined;\n @ViewChild('inputField') inputField: FngTextInputComponent | undefined;\n\n form: FormGroup = this.formBuilder.group({\n text: this.formBuilder.control('')\n });\n\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 if (event.key === 'Enter') {\n this.onOk();\n }\n }\n\n ngOnInit(): void {\n const text = this.data.value || '';\n\n const textControl = this.formBuilder.control(text, this.data?.validatorOrOpts, this.data?.asyncValidator);\n\n this.form = this.formBuilder.group({\n text: textControl\n });\n\n if (text) {\n textControl.markAsDirty();\n }\n\n textControl.statusChanges.pipe(takeUntil(this.complete)).subscribe(sc => {\n if (sc === 'INVALID') {\n this.handleErrors();\n } else {\n this.error = '';\n }\n });\n this.handleErrors();\n }\n\n ngAfterViewInit() {\n if (this.inputField) {\n (this.inputField.inputElement?.nativeElement as HTMLInputElement).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 if (e) {\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}\n","<div class=\"fwe-modal\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-modal-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\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\n #inputField\n type=\"text\"\n [label]=\"data.label\"\n formControlName=\"text\"\n [error]=\"error\"\n [hint]=\"data.hint\"\n [placeholder]=\"data.placeholder\"\n >\n </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 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-hero fwe-btn-lg\" (click)=\"onOk()\">\n {{ data.ok }}\n </button>\n </div>\n </div>\n</div>\n","import { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SwiperModule } from 'swiper/angular';\n\nimport { CommonModule } from '@angular/common';\nimport SwiperCore, { FreeMode, Keyboard, Navigation, Thumbs, Zoom } from 'swiper';\nimport { FngSafeHtmlPipe } from '../../pipes/safe-html.pipe';\nimport { Modal } from '../modals.module';\n\nSwiperCore.use([FreeMode, Navigation, Keyboard, Thumbs, Zoom]);\n\nexport interface FngImageDescriptiveContent {\n title: string;\n body: string;\n}\n\nexport interface FngImageGalleryData {\n startIndex: number;\n images: { url: string; alt: string; content?: FngImageDescriptiveContent; containMode?: boolean }[];\n thumbnailImages?: { url: string; alt: string; containMode?: boolean }[];\n pagination?: boolean;\n descriptiveContent?: boolean;\n slideChanged?: (index: number) => void;\n showScaleButton: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [SwiperModule, CommonModule, FngSafeHtmlPipe],\n selector: 'fng-image-gallery',\n templateUrl: './image-gallery.component.html',\n styleUrls: ['./image-gallery.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngImageGalleryComponent implements Modal<FngImageGalleryData, any> {\n @Input() data: FngImageGalleryData = {\n startIndex: 0,\n images: [],\n thumbnailImages: [],\n slideChanged: () => null,\n pagination: true,\n descriptiveContent: false,\n showScaleButton: false\n };\n\n\n @Output() close = new EventEmitter<any>();\n @Output() scaleUp = new EventEmitter<any>();\n @Output() scaleDown = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n thumbsSwiper: any;\n currentIndex = this.data.startIndex + 1;\n isScaled = false;\n\n constructor(private cd: ChangeDetectorRef) {}\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 onSlideChange(swiper: { activeIndex: number }[]) {\n this.currentIndex = swiper[0].activeIndex + 1;\n this.cd.markForCheck();\n this.cd.detectChanges();\n if (this.data?.slideChanged) {\n this.data.slideChanged(swiper[0].activeIndex);\n }\n }\n\n onClose() {\n this.close.emit();\n }\n\n onScale() {\n if(!this.isScaled) {\n this.scaleUp.emit();\n this.isScaled = true;\n } else {\n this.scaleDown.emit();\n this.isScaled = false;\n }\n }\n}\n","<div\n class=\"fwe-modal fwe-modal-image-gallery\"\n *ngIf=\"data != null\"\n [class.fwe-modal-image-gallery--with-thumbnails]=\"data.thumbnailImages?.length\"\n [class.fwe-modal-image-gallery--with-container]=\"data.descriptiveContent\"\n>\n <div class=\"fwe-image-gallery-header\">\n <div *ngIf=\"data.pagination\" class=\"fwe-pagination fwe-pagination--on-dark-bg\">\n <button aria-label=\"previous\" type=\"button\" class=\"fwe-navigate-btn-down\"></button>\n <span class=\"fwe-page-current\">{{ currentIndex }}</span>\n <span class=\"fwe-page-max\">{{ data.images.length }}</span>\n <button aria-label=\"next\" type=\"button\" class=\"fwe-navigate-btn-up\"></button>\n </div>\n <button\n *ngIf=\"data?.showScaleButton === true\"\n aria-label=\"scale up\"\n type=\"button\"\n class=\"fwe-btn fwe-btn-link fwe-ml-auto\"\n (click)=\"onScale()\"\n >\n <i\n class=\"fwe-icon fwe-icon-lg fwe-color-white fwe-modal-image-gallery-scale\"\n [ngClass]=\"{ 'fwe-icon-arrows-scale-down': isScaled === true, 'fwe-icon-arrows-scale-up': isScaled === false }\"\n ></i>\n </button>\n <button\n aria-label=\"close\"\n type=\"button\"\n class=\"fwe-btn fwe-btn-link\"\n (click)=\"onClose()\"\n [ngClass]=\"{ 'fwe-ml-auto': !data.showScaleButton, 'fwe-ml-3': data.showScaleButton }\"\n >\n <i class=\"fwe-icon fwe-icon-2x fwe-color-white fwe-icon-menu-close fwe-modal-image-gallery-close\"></i>\n </button>\n </div>\n <ng-container [ngSwitch]=\"data.descriptiveContent\">\n <div class=\"fwe-image-gallery-container\" *ngSwitchCase=\"true\">\n <ng-container *ngTemplateOutlet=\"baseGallery\"></ng-container>\n <div class=\"fwe-image-gallery-content\" *ngIf=\"data.images[currentIndex - 1]?.content as imageContent\">\n <h3>{{ imageContent.title }}</h3>\n <div [innerHTML]=\"imageContent.body | fngSafeHtml\"></div>\n </div>\n </div>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"baseGallery\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #baseGallery>\n <div class=\"fwe-image-gallery-wrapper\">\n <swiper\n [initialSlide]=\"data.startIndex\"\n [keyboard]=\"{\n enabled: true\n }\"\n [spaceBetween]=\"0\"\n [zoom]=\"true\"\n [navigation]=\"{\n nextEl: '.fwe-navigate-btn-up',\n prevEl: '.fwe-navigate-btn-down'\n }\"\n [thumbs]=\"{ swiper: thumbsSwiper }\"\n (slideChange)=\"onSlideChange($event)\"\n class=\"gallery-swiper fwe-image-gallery\"\n >\n <ng-template *ngFor=\"let image of data.images\" swiperSlide>\n <div class=\"swiper-zoom-container\">\n <img [alt]=\"image.alt\" [src]=\"image.url\" [class.fwe-object-fit-contain]=\"image.containMode\" [class.fwe-p-m]=\"image.containMode\" />\n </div>\n </ng-template>\n </swiper>\n <swiper\n *ngIf=\"data.thumbnailImages?.length\"\n (swiper)=\"thumbsSwiper = $event\"\n [slidesPerView]=\"'auto'\"\n [freeMode]=\"true\"\n [threshold]=\"20\"\n [watchSlidesProgress]=\"true\"\n class=\"thumbs-swiper fwe-image-gallery-thumbs\"\n >\n <ng-template *ngFor=\"let thumbnail of data.thumbnailImages\" swiperSlide>\n <img\n [alt]=\"thumbnail.alt\"\n [src]=\"thumbnail.url\"\n [class.fwe-object-fit-contain]=\"thumbnail.containMode\"\n [class.fwe-p-xxxs]=\"thumbnail.containMode\"\n />\n </ng-template>\n </swiper>\n </div>\n</ng-template>\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 { FngAlertComponent, FngAlertData } from './alert/alert.component';\nimport { FngConfirmComponent, FngConfirmData } from './confirm/confirm.component';\nimport { Subject } from 'rxjs';\nimport { FngPromptComponent, FngPromptData } from './prompt/prompt.component';\nimport { FngImageGalleryComponent, FngImageGalleryData } from './image-gallery/image-gallery.component';\n\n@Injectable({ providedIn: 'root' })\nexport class FngModalService {\n constructor(protected overlay: Overlay, private router: Router) {}\n\n alert(data: FngAlertData, options?: ModalOptions) {\n return this.open<FngAlertData, any, FngAlertComponent>(data, FngAlertComponent, {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true,\n ...options\n });\n }\n\n confirm(data: FngConfirmData, options?: ModalOptions) {\n options = options || {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true\n };\n return this.open<FngConfirmData, any, FngConfirmComponent>(data, FngConfirmComponent, options);\n }\n\n prompt(data: FngPromptData, options?: ModalOptions) {\n options = options || {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true\n };\n return this.open<FngPromptData, any, FngPromptComponent>(data, FngPromptComponent, options);\n }\n\n openImageGallery(data: FngImageGalleryData) {\n const options: ModalOptions = {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true\n };\n return this.open<FngImageGalleryData, any, FngImageGalleryComponent>(data, FngImageGalleryComponent, 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(true);\n complete.complete();\n complete.unsubscribe();\n overlayRef.dispose();\n resolve();\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-custom-modal',\n templateUrl: './custom-modal.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngCustomModalComponent {\n private _visible: boolean = false;\n\n @Input() closeOnBackdrop: boolean = false;\n @Input() large: boolean = false;\n @Input()\n set visible(value: boolean) {\n this._visible = value;\n\n if (!value && this.visibleChange) {\n this.visibleChange.emit(false);\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n /**\n * Emits false on close modal by close, cancel, click outside and close by providing value false to visible\n */\n @Output() visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Input() header: string = '';\n @Input() subheader: string = '';\n\n @Input() acknowledgeLabel: string = 'Ok';\n @Output() acknowledge: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() cancelLabel: string = 'Cancel';\n @Output() cancel: EventEmitter<void> = new EventEmitter<void>();\n\n @Output() close: EventEmitter<void> = new EventEmitter<void>();\n\n closeModal(): void {\n this.visible = false;\n }\n\n onClose(): void {\n if (this.close) {\n this.close.emit();\n }\n this.closeModal();\n }\n\n onCancel(): void {\n this.closeModal();\n if (this.cancel) {\n this.cancel.emit();\n }\n }\n\n onAcknowledge(): void {\n if (this.acknowledge) {\n this.acknowledge.emit();\n }\n }\n\n onClickOutside(): void {\n if (this.closeOnBackdrop) {\n this.onClose();\n }\n }\n\n onClickInside(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","<div class=\"fwe-modal-backdrop\" *ngIf=\"visible\" (mousedown)=\"onClickOutside()\">\n <div class=\"fwe-modal\" [class.fwe-modal--large]=\"large\" (mousedown)=\"onClickInside($event)\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-modal-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n <div class=\"fwe-modal-header\">\n <h2 class=\"fwe-modal-h2\" *ngIf=\"subheader?.length\">{{ subheader }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ header }}</h1>\n </div>\n <div class=\"fwe-modal-body\">\n <ng-content></ng-content>\n </div>\n <div class=\"fwe-modal-footer\">\n <div class=\"fwe-modal-buttons\">\n <button class=\"fwe-btn fwe-btn-lg\" (click)=\"onCancel()\">\n {{ cancelLabel }}\n </button>\n <button class=\"fwe-btn fwe-btn-hero fwe-btn-lg\" (click)=\"onAcknowledge()\">\n {{ acknowledgeLabel }}\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { FngAlertComponent } from './alert/alert.component';\nimport { FngConfirmComponent } from './confirm/confirm.component';\nimport { FngPromptComponent } from './prompt/prompt.component';\nimport { FngCustomModalComponent } from './custom-modal/custom-modal.component';\nimport { FngImageGalleryComponent } from './image-gallery/image-gallery.component';\n\nexport * from './index';\nexport * from './alert/alert.component';\nexport * from './confirm/confirm.component';\nexport * from './prompt/prompt.component';\nexport * from './custom-modal/custom-modal.component';\nexport * from './image-gallery/image-gallery.component';\n\n@NgModule({\n imports: [FngAlertComponent, FngConfirmComponent, FngPromptComponent, FngCustomModalComponent, FngImageGalleryComponent],\n exports: [FngAlertComponent, FngConfirmComponent, FngPromptComponent, FngCustomModalComponent, FngImageGalleryComponent],\n providers: []\n})\nexport class FestoAngularModalsModule {}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\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 standalone: true,\n imports: [CommonModule],\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(() => FngCheckboxComponent),\n multi: true\n }\n ]\n})\nexport class FngCheckboxComponent implements ControlValueAccessor {\n @Input() name: string = '';\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 = 'false';\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 = false;\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 = () => null;\n\n onTouched: () => any = () => null;\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\n 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>\n <input\n 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 />\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 { ConnectionPositionPair, OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A control to display a color.\n */\n@Component({\n standalone: true,\n imports: [OverlayModule, CommonModule],\n selector: 'fng-color-indicator',\n templateUrl: './color-indicator.component.html',\n styleUrls: ['./color-indicator.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngColorIndicatorComponent {\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 = '#ffffff';\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 = false;\n\n @Input() disabled: boolean = false;\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() === '#F0F2F3') {\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.fwe-color-indicator--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=\"#e2e5e8\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e2e5e8\" />\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","export abstract class ColorHelper {\n // based on: https://gist.github.com/mjackson/5311256\n public static rgbToHsv(rgb: Record<'r' | 'g' | 'b', number> | undefined | null): Record<'h' | 's' | 'v', number> {\n if (!rgb) {\n return { h: 0, s: 0, v: 0 };\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> | undefined | null): Record<'r' | 'g' | 'b', number> {\n if (!hsv) {\n return { r: 0, g: 0, b: 0 };\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 = 0;\n let g: number = 0;\n let b: number = 0;\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: number) {\n return Math.round(num <= 0 ? 0 : num >= 255 ? 255 : num);\n }\n\n private static limitToOne(num: number) {\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> | undefined | null) {\n if (!rgb) {\n return '#FFFFFF';\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 | null): Record<'r' | 'g' | 'b', number> {\n if (!hexString) {\n return { r: 0, g: 0, b: 0 };\n }\n const numbersOnly = hexString.substring(1);\n const aRgbHex = numbersOnly.match(/.{1,2}/g);\n if (aRgbHex?.length === 3) {\n return { r: parseInt(aRgbHex[0], 16), g: parseInt(aRgbHex[1], 16), b: parseInt(aRgbHex[2], 16) };\n } else {\n return { r: 0, g: 0, b: 0 };\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CdkDragMove, DragDropModule } from '@angular/cdk/drag-drop';\nimport { Component, forwardRef, Input, ViewEncapsulation, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { ColorHelper } from './color-helper';\nimport { CommonModule } from '@angular/common';\n\nexport const PREDEFINED_COLORS: string[] = [\n '#0091dc',\n '#333333',\n '#ffffff',\n '#f0f2f3',\n '#e2e5e8',\n '#d3d8dd',\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 standalone: true,\n imports: [CommonModule, DragDropModule, FormsModule],\n selector: 'fng-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FngColorPickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngColorPickerComponent 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 | null {\n return this.innerColor;\n }\n @Input()\n set color(value: string | null) {\n if (value && 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 | null = null;\n private innerDisabled: boolean = true;\n private innerAlpha: number = 1;\n\n // input controls\n hexInputColor: string | null = '#ff0000';\n redInput = 255;\n greenInput = 0;\n blueInput = 0;\n alphaInput = 100;\n\n // HSV value\n hue: number = 0;\n saturation: number = 0;\n value: number = 0;\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 = () => null;\n onChange: (color: string | null) => any = () => null;\n\n ngOnChanges(changes: SimpleChanges): void {\n const paletteChanged = changes['palette'];\n if (paletteChanged['currentValue'].length > 0 && paletteChanged['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.hexInputColor && 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.hexInputColor && this.isHexColor(this.hexInputColor)) {\n this.color = this.hexInputColor.toUpperCase();\n }\n }\n\n onRgbBlur() {\n if (this.hexInputColor && 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 as keyof typeof rgb] = 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 | null) {\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=\".fwe-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=\".fwe-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=\"#e2e5e8\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e2e5e8\" />\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=\".fwe-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=\"#e2e5e8\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e2e5e8\" />\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 { ElementRef, Input, Output, EventEmitter, Component, ViewChild, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core';\nimport flatpickr from 'flatpickr';\nimport { BaseOptions } from 'flatpickr/dist/types/options';\n\nexport interface FlatPickerOptions {\n maxDate?: Date | undefined;\n minDate?: Date | undefined;\n mode?: 'single' | 'range';\n}\n\n@Component({\n standalone: true,\n selector: 'fng-flatpickr',\n templateUrl: './flatpickr.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngFlatpickrComponent implements OnInit, OnDestroy {\n @Input() date: Date | Date[] = new Date();\n @Input() options: FlatPickerOptions | undefined;\n @Output() dateChange = new EventEmitter<Date | Date[]>();\n\n @ViewChild('datePicker', { static: true }) datePickerRef: ElementRef | undefined;\n\n private datePicker: flatpickr.Instance | undefined;\n\n ngOnInit() {\n const options: FlatPickerOptions = {\n minDate: this.options?.minDate || undefined,\n maxDate: this.options?.maxDate || undefined,\n mode: this.options?.mode || 'single'\n };\n const config: Partial<BaseOptions> = {\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 };\n this.datePicker = flatpickr(this.datePickerRef?.nativeElement, config) 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 {\n Component,\n ViewEncapsulation,\n forwardRef,\n Input,\n ElementRef,\n ViewChild,\n ComponentRef,\n HostListener,\n HostBinding, ChangeDetectorRef\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';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CommonModule, formatDate } from '@angular/common';\nimport { LOCALE_ID, Inject } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FngFlatpickrComponent } from '../flatpickr/flatpickr.component';\n\nexport interface FngDatePickerOptions {\n maxDate?: Date;\n minDate?: Date;\n keepOpenOnDateChange?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, FngFlatpickrComponent],\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(() => FngDatePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngDatePickerComponent 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 | undefined;\n @Input() error: string | undefined;\n @Input() options: FngDatePickerOptions = {} as FngDatePickerOptions;\n\n /** A locale code for the locale format rules to use. */\n @Input() locale: string | undefined;\n\n /* The date-time components to include. See `DatePipe` for details. */\n @Input() format: string | undefined;\n\n /** The time zone. A time zone offset from GMT (such as `'+0430'`) */\n @Input() timezone: string | undefined;\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 | undefined;\n\n @Input()\n @HostBinding('style.width')\n width: string | undefined;\n @HostBinding('style.display') display: string = 'block';\n\n get displayValue(): string {\n if (!this.value) {\n return '';\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 | undefined;\n private innerValue: Date = new Date();\n private complete = new Subject<boolean>();\n private datePicker: ComponentRef<FngFlatpickrComponent> | undefined;\n\n constructor(private overlay: Overlay, @Inject(LOCALE_ID) private localeDefault: string, private cd: ChangeDetectorRef) {}\n\n onTouched: (() => any) | undefined;\n onChange: ((date: Date) => any) | undefined;\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 // we need to re-render our view after value changed\n this.cd.markForCheck();\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(FngFlatpickrComponent);\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 | Date[]) => {\n if (c instanceof Date) {\n this.onDateChange(c);\n }\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 = undefined;\n }\n if (this.complete != null) {\n this.complete.next(true);\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\n class=\"fng-icon-svg fng-icon-svg--time-calendar\"\n [class.fwe-color-hero]=\"datePickerRef != null\"\n [class.fwe-color-control-disabled]=\"disabled\"\n ></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, ChangeDetectorRef\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 { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { LOCALE_ID, Inject } from '@angular/core';\nimport { CommonModule, formatDate } from '@angular/common';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FngFlatpickrComponent } from '../flatpickr/flatpickr.component';\n\nexport interface FngDateRangePickerOptions {\n maxDate?: Date;\n minDate?: Date;\n keepOpenOnDateChange?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngDateRangePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngDateRangePickerComponent 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 | undefined;\n @Input() error: string | undefined;\n\n /** A locale code for the locale format rules to use. */\n @Input() locale: string | undefined;\n\n /* The date-time components to include. See `DatePipe` for details. */\n @Input() format: string | undefined;\n\n /** The time zone. A time zone offset from GMT (such as `'+0430'`) */\n @Input() timezone: string | undefined;\n\n @Input() options: FngDateRangePickerOptions = {} as FngDateRangePickerOptions;\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')\n width: string = 'none';\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 | undefined;\n\n get fromDateDisplayValue(): string | null {\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 | null {\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 | undefined;\n\n private innerValue: Date[] = [new Date(), new Date()];\n private complete = new Subject<boolean>();\n private datePicker: ComponentRef<FngFlatpickrComponent> | undefined;\n\n constructor(private overlay: Overlay, @Inject(LOCALE_ID) private localeDefault: string, private cd: ChangeDetectorRef) {}\n\n onTouched: (() => any) | undefined;\n onChange: ((dateRange: Date[]) => any) | undefined;\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 // we need to re-render our view after value changed\n this.cd.markForCheck();\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(FngFlatpickrComponent);\n this.datePicker = this.dateRangePickerRef.attach(datePickerPortal);\n this.datePicker.instance.options = {\n mode: 'range',\n minDate: this.options && this.options.minDate ? this.options.minDate : undefined,\n maxDate: this.options && this.options.maxDate ? this.options.maxDate : undefined\n };\n this.datePicker.instance.date = this.value;\n this.datePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe((c: Date | Date[]) => {\n if (Array.isArray(c)) {\n this.onDateChange(c);\n }\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 = undefined;\n }\n if (this.complete != null) {\n this.complete.next(true);\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=\"fng-icon-svg fng-icon-svg--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 { CommonModule } from '@angular/common';\nimport {\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 standalone: true,\n imports: [CommonModule],\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 FngTimePickerDropdownComponent implements AfterViewInit {\n @Input() date: Date = new Date();\n @Input() showSeconds = false;\n @Input() timeFormat: '12' | '24' = '24';\n @Output() dateChange = new EventEmitter<{ reset: boolean; date: Date; close: boolean }>();\n\n @ViewChild('hoursInput') hoursInput: ElementRef | undefined;\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: Event) {\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 this.onDateChange(false, false);\n }\n\n onMinuteChange(event: Event) {\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 this.onDateChange(false, false);\n }\n\n onSecondChange(event: Event) {\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 this.onDateChange(false, false);\n }\n\n onToggleTimeFormat() {\n // Get the current hour in 24-hour format\n let hours = this.date.getHours();\n\n if (hours >= 0 && hours < 12) {\n // Switching from AM to PM\n this.date.setHours(hours + 12);\n } else {\n // Switching from PM to AM\n this.date.setHours(hours - 12);\n }\n this.onDateChange(false, false);\n }\n\n onDateChange(close: boolean, reset: boolean) {\n if (this.date != null) {\n this.date = new Date(this.date);\n this.dateChange.emit({ reset, date: new Date(this.date), close });\n }\n }\n}\n","<div class=\"fwe-timepicker\">\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\n #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 <button *ngIf=\"timeFormat === '12'\" class=\"fwe-btn fwe-ml-m\" (click)=\"onToggleTimeFormat()\">\n {{ date | date : 'a' }}\n </button>\n</div>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation\n} 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 { FngTimePickerDropdownComponent } from './time-picker-dropdown/time-picker-dropdown.component';\nimport { CommonModule } from '@angular/common';\n\nexport interface FngTimePickerOptions {\n timeFormat?: '12' | '24';\n showSeconds?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngTimePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngTimePickerComponent 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 | undefined;\n @Input() error: string | undefined;\n @Input() options: FngTimePickerOptions | undefined;\n\n @Input()\n @HostBinding('style.width')\n width: string = 'none';\n @HostBinding('style.display') display: string = 'block';\n\n @ViewChild('connector', { static: true }) connector: ElementRef | undefined;\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 | null = null;\n\n protected innerValue: Date = new Date();\n protected innerDisabled = false;\n\n private complete = new Subject<boolean>();\n private timePicker: ComponentRef<FngTimePickerDropdownComponent> | undefined;\n\n constructor(private overlay: Overlay, private cd: ChangeDetectorRef) {}\n\n onTouched: (() => void) | undefined;\n onChange: ((date: Date) => void) | undefined;\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 const resetValue = this.value;\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 minWidth: `${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 originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: -12\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: 4\n }\n ])\n .withFlexibleDimensions(false)\n .withPush(false)\n });\n const timePickerPortal = new ComponentPortal(FngTimePickerDropdownComponent);\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.reset) {\n this.value = resetValue;\n } else {\n this.value = ev.date;\n }\n if (ev.close) {\n this.disposeDropdown();\n }\n // we need to re-render our view after value changed\n this.cd.markForCheck();\n });\n this.timePickerRef\n .backdropClick()\n .pipe(takeUntil(this.complete))\n .subscribe(() => this.disposeDropdown());\n } else {\n this.disposeDropdown();\n }\n }\n }\n\n public disposeDropdown() {\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(true);\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=\"fng-icon-svg fng-icon-svg--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 { Injectable, OnDestroy } from '@angular/core';\n\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n\n@Injectable({ providedIn: 'root' })\nexport class FngUniqueSelectionDispatcher 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 if (name) {\n listener(id, name);\n }\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 { FngUniqueSelectionDispatcher } from '../unique-selection-dispatcher';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\n\nexport class FngRadioChange {\n constructor(public source: FngRadioComponent | null, public value: any) {}\n}\n\nlet nextUniqueId = 0;\n\n@Directive({\n standalone: true,\n selector: '[fngRadioGroup]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FngRadioGroupDirective),\n multi: true\n }\n ]\n})\nexport class FngRadioGroupDirective 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<FngRadioChange>();\n\n @ContentChildren(forwardRef(() => FngRadioComponent), { descendants: true })\n radios: QueryList<FngRadioComponent> | undefined;\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: FngRadioComponent | null = null;\n private innerName = `fngRadioGroup-${nextUniqueId++}`;\n private innerLabelPosition: 'before' | 'after' | 'below' = 'after';\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n controlValueAccessorChangeFn: ((value: any) => void) | undefined;\n\n onTouched: (() => void) | undefined;\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 FngRadioChange(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 standalone: true,\n imports: [CommonModule],\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 FngRadioComponent implements OnInit, OnDestroy {\n @Input() name: string | undefined;\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<FngRadioChange>();\n\n radioGroup: FngRadioGroupDirective;\n\n private isLarge = false;\n private isChecked = false;\n private isDisabled: boolean = false;\n private isRequired: boolean = false;\n private innerValue: any = null;\n private innerLabelPosition: 'before' | 'after' | 'below' | undefined;\n private removeUniqueSelectionListener: () => void;\n\n constructor(\n @Optional() radioGroup: FngRadioGroupDirective,\n private changeDetector: ChangeDetectorRef,\n private radioDispatcher: FngUniqueSelectionDispatcher\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 FngRadioChange(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 { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n OnInit,\n SimpleChanges,\n OnChanges,\n ViewChild,\n TemplateRef,\n AfterViewInit,\n ViewRef,\n Output,\n EventEmitter,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-segment-control',\n templateUrl: './segment-control.component.html',\n styleUrls: ['./segment-control.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSegmentControlComponent implements OnInit, OnChanges, AfterViewInit {\n id: string | undefined;\n view: ViewRef | undefined;\n viewMode: 'text' | 'icon' | 'icon-text' = 'text';\n\n @Input() name: string | undefined;\n @Input() value: any;\n @Input() label: string | undefined;\n @Input() icon: string | undefined;\n @Input() iconOnly: boolean | undefined;\n @Input() checked: boolean | undefined;\n @Input() disabled: boolean | undefined;\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('tpl') tpl: TemplateRef<any> | undefined;\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 (changes['icon']?.currentValue) {\n const prefix = 'fwe-icon-';\n let icon: string = changes['icon'].currentValue;\n if (icon.indexOf(prefix) === -1) {\n icon = `${prefix}${icon}`;\n }\n this.icon = icon;\n }\n\n if (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 onInputChange(event: Event) {\n event.stopPropagation();\n this.checked = true;\n const target = (event as unknown as { target: HTMLInputElement }).target;\n this.change.emit(target.value);\n }\n\n onInputClick(event: Event) {\n event.stopPropagation();\n }\n}\n","<ng-template #tpl>\n <input\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($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'\"> <i aria-hidden=\"true\" class=\"fwe-icon\" [ngClass]=\"icon\"></i>{{ label }} </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 Output,\n EventEmitter,\n OnDestroy,\n forwardRef,\n ViewEncapsulation,\n SimpleChange\n} from '@angular/core';\nimport type { QueryList } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FngSegmentControlComponent } from './segment-control/segment-control.component';\nimport { CommonModule } from '@angular/common';\n\nexport interface FngSegmentComponentConfiguration {\n outline: boolean;\n iconOnly: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-segment',\n templateUrl: './segment.component.html',\n styleUrls: ['./segment.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FngSegmentComponent),\n multi: true\n }\n ]\n})\nexport class FngSegmentComponent implements OnChanges, AfterContentInit, AfterViewInit, OnDestroy, ControlValueAccessor {\n protected changed = new Array<(value: string) => void>();\n protected touched = new Array<() => void>();\n\n protected innerValue: any;\n\n writeValue(value: string) {\n this.innerValue = value;\n this.updateCheckState();\n }\n\n updateCheckState() {\n if (this.controls) {\n this.controls.forEach(component => {\n component.checked = component.value === this.value;\n });\n }\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.changed.push(fn);\n }\n\n registerOnTouched(fn: () => void) {\n this.touched.push(fn);\n }\n\n private complete: Subject<boolean> = new Subject();\n\n defaultConfig: FngSegmentComponentConfiguration = {\n outline: true,\n iconOnly: true\n };\n useIcon = false;\n useIconAndText = false;\n id: string;\n\n @Input() legend = '';\n @Input() config: FngSegmentComponentConfiguration = this.defaultConfig;\n @ContentChildren(FngSegmentControlComponent, { descendants: true }) controls: QueryList<FngSegmentControlComponent> | undefined;\n @ViewChild('vc', { read: ViewContainerRef }) vc: ViewContainerRef | undefined;\n\n @Output() fngChange = new EventEmitter<any>();\n @Output() change = new EventEmitter<any>();\n\n @Input()\n set value(value: any) {\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 get value(): any {\n return this.innerValue;\n }\n\n constructor(private cd: ChangeDetectorRef) {\n this.id = (Math.random() * Date.now()).toString().replace('.', '-');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config']?.currentValue) {\n this.config = Object.assign({}, this.defaultConfig, changes['config'].currentValue);\n }\n }\n\n ngAfterContentInit(): void {\n if (this.controls?.length) {\n this.controls.forEach(component => {\n component.change.pipe(takeUntil(this.complete)).subscribe(val => {\n this.value = val;\n this.updateCheckState();\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 if (this.controls) {\n this.controls.forEach(component => {\n if (component.view) {\n if (!component.name) {\n component.name = this.id;\n }\n this.vc?.insert(component.view);\n }\n });\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 class=\"fwe-sr-only fwe-d-inline-block\">{{ legend }}</legend>\n <div class=\"fwe-segment-group\">\n <ng-container #vc></ng-container>\n </div>\n</fieldset>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewChild, ElementRef, AfterViewInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-select-option',\n templateUrl: './select-option.component.html',\n styleUrls: ['./select-option.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSelectOptionComponent implements AfterViewInit {\n @Input() value: any;\n @ViewChild('root') elementRef!: ElementRef;\n\n el: HTMLElement | undefined;\n\n ngAfterViewInit(): void {\n this.el = this.elementRef.nativeElement;\n }\n\n async update(): Promise<HTMLElement | undefined> {\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 | undefined): string | undefined {\n return key === undefined ? 'value' : key;\n}\n\nfunction defaultTextKey(key: string | undefined): string | undefined {\n return key === undefined ? 'text' : key;\n}\n\n@Pipe({\n standalone: true,\n name: 'fngChipText',\n pure: false\n})\nexport class FngChipTextPipe implements PipeTransform {\n transform(value: any, options: any[], optionsValueKey?: string, optionsTextKey?: string): string {\n let chipText = '';\n\n optionsValueKey = defaultValueKey(optionsValueKey);\n optionsTextKey = defaultTextKey(optionsTextKey);\n\n options.forEach((_: any, index: number) => {\n if (optionsValueKey && JSON.stringify(options[index][optionsValueKey]) === JSON.stringify(value[optionsValueKey])) {\n if (optionsTextKey) {\n chipText = options[index][optionsTextKey];\n }\n }\n\n if (optionsValueKey && JSON.stringify(options[index][optionsValueKey]) === JSON.stringify(value)) {\n if (optionsTextKey) {\n chipText = options[index][optionsTextKey];\n }\n }\n });\n\n return chipText;\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FngSelectOptionComponent } from './select-option/select-option.component';\nimport { FngChipTextPipe } from './chip-text.pipe';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport interface FngSelectOption {\n value: any;\n text: string;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, FngChipTextPipe, FngSelectOptionComponent, OverlayModule],\n selector: 'fng-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FngSelectComponent),\n multi: true\n }\n ]\n})\nexport class FngSelectComponent implements ControlValueAccessor, OnInit, AfterViewInit, AfterContentInit {\n static nextId = 0;\n\n protected _disabled = false;\n protected _required = false;\n protected _value: any;\n protected body: HTMLElement;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n if (this.multiple === true) {\n const index = this._value.indexOf(value);\n if (index === -1) {\n this._value.push(value);\n this.checked.set(value, 'checked');\n } else {\n this._value.splice(index, 1);\n this.checked.set(value, null);\n }\n } else {\n this._value = value;\n }\n\n if (this.onChange != null) {\n this.onChange(this.value);\n }\n this.fngChange.emit(this.value);\n }\n\n onChange: (value: any) => void = (): void => {};\n onTouched: () => void = (): void => {};\n\n @HostBinding()\n id = `input-control-${++FngSelectComponent.nextId}`;\n\n @Input() multiple: boolean = false;\n @Input() size: number = 0;\n @Input() options: any[] = [];\n @Input() optionsValueKey: string | undefined;\n @Input() optionsTextKey: string | undefined;\n @Input() optionObjectAsValue: boolean | undefined;\n @Input() error: string | undefined;\n @Input() label = '';\n @Input() hideLabel = false;\n @Input() hint = '';\n @Input() resetOption: string | undefined;\n @ContentChildren(FngSelectOptionComponent) fngSelectOptions: QueryList<FngSelectOptionComponent> | undefined;\n @ViewChild('div') elementRef: ElementRef | undefined;\n @Output() fngChange = new EventEmitter<any>();\n\n selectPanelClasses: string[] = ['fng-select-panel'];\n showOptions = false;\n empty: boolean = false;\n triggerWidth: any;\n checked = new Map();\n hasProjectedOptions = false;\n projectedHtml: any[] = [];\n\n constructor(\n public cd: ChangeDetectorRef,\n @Inject(DOCUMENT) protected document: Document,\n protected renderer: Renderer2,\n protected destroy: DestroyRef\n ) {\n this.body = this.document.body;\n }\n ngAfterContentInit(): void {\n if (!this.fngSelectOptions) {\n return;\n }\n // observe if any of the projected content (fng-select-option) changes\n this.fngSelectOptions.changes.pipe(takeUntilDestroyed(this.destroy)).subscribe(_ => {\n // if content changes init again\n this.options = [];\n this.projectedHtml = [];\n this.initProjectedOptions();\n });\n }\n\n ngOnInit(): void {\n if (this.size != null) {\n this.selectPanelClasses.push('fng-select-panel-options-' + this.size);\n }\n\n if (this.multiple === true) {\n this._value = [];\n this.selectPanelClasses.push('fng-select-panel-multiple');\n }\n }\n\n ngAfterViewInit(): void {\n this.triggerWidth = this.elementRef?.nativeElement?.getBoundingClientRect()?.width;\n this.initProjectedOptions();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(shouldDisable: boolean): void {\n this.disabled = shouldDisable;\n }\n\n writeValue(value: any | null): void {\n if (value === undefined) {\n return;\n }\n\n if (this.multiple === true) {\n this._value = value;\n\n // clear any previous state of overlay panel\n this.checked.clear();\n\n // set checkmarks in overlay panel, so that it is displayed correctly when user opens it\n value?.forEach((v: any) => {\n this.checked.set(v, 'checked');\n });\n } else {\n this._value = value;\n }\n }\n\n getOptionText(index: number) {\n if (this.options[index] && this.optionsTextKey && this.options[index][this.optionsTextKey] != null) {\n return this.options[index][this.optionsTextKey];\n }\n return undefined;\n }\n\n getOptionValue(index: number) {\n // if set to true the complete option object is returned as value\n if (this.optionObjectAsValue === true) {\n return this.options[index];\n }\n\n // try to access standard property 'value'\n const v = this.options[index]['value'];\n\n if (v !== undefined) {\n return v;\n }\n\n // try to map the value to a property of the option by given key\n if (this.options[index] && this.optionsValueKey && this.options[index][this.optionsValueKey] != null) {\n return this.options[index][this.optionsValueKey];\n }\n return undefined;\n }\n\n removeChip(event: any, chip: string) {\n event.stopPropagation();\n if (!this._disabled) {\n this.value = chip;\n }\n }\n\n onOpenedChange(isOpen: boolean) {\n if (isOpen) {\n this.renderer.addClass(this.body, 'fng-select-panel-open');\n } else {\n this.renderer.removeClass(this.body, 'fng-select-panel-open');\n }\n }\n\n close() {\n this.showOptions = false;\n this.isEmpty();\n this.cd.markForCheck();\n }\n\n toggle() {\n if (this.disabled) {\n return;\n }\n\n this.triggerWidth = this.elementRef?.nativeElement?.getBoundingClientRect()?.width;\n this.showOptions = !this.showOptions;\n this.onOpenedChange(this.showOptions);\n this.isEmpty();\n this.cd.markForCheck();\n }\n\n select(value: any, event: Event) {\n if (this.disabled) {\n return;\n }\n\n event.stopPropagation();\n this.value = value;\n\n if (this.multiple !== true) {\n // closes overlay panel\n this.toggle();\n }\n }\n\n @HostListener('blur')\n markAsTouched(): void {\n if (this.disabled) {\n return;\n }\n\n this.onTouched();\n this.cd.markForCheck();\n }\n\n initProjectedOptions() {\n if (this.fngSelectOptions?.length) {\n this.hasProjectedOptions = true;\n this.fngSelectOptions.forEach(component => {\n component.update().then(el => {\n if (el) {\n this.options.push({ value: component.value, text: el.textContent?.trim() });\n this.projectedHtml.push(el.innerHTML);\n this.cd.detectChanges();\n }\n });\n });\n }\n this.cd.detectChanges();\n }\n\n isEmpty() {\n this.empty = !this.showOptions && (!this._value || '' === this._value);\n }\n}\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 (detach)=\"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\">\n <ng-content></ng-content>\n</div>\n","import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, HostListener, Input, OnDestroy, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngSliderComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSliderComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n @Input() label: string | undefined;\n\n @Input()\n min = 0;\n\n @Input()\n max = 100;\n\n @Input()\n step: number = 0;\n\n @Input()\n digitsInfo: string | undefined;\n\n @Input()\n locale: string | undefined;\n\n @Input()\n hideValue = false;\n\n left: number = 0;\n\n numberoffset: number = 0;\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 = 0;\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 = new Subscription();\n private resizeSubject = new Subject<boolean>();\n\n constructor(private elementRef: ElementRef) {}\n\n onChange: ((value: number) => void) | undefined;\n\n onTouched: (() => void) | undefined;\n\n @HostListener('window:resize') onResize() {\n this.resizeSubject.next(true);\n }\n\n ngAfterViewInit() {\n this.resizeSub.add(this.resizeSubject.pipe(debounceTime(25)).subscribe(() => this.updateValuePosition()));\n }\n\n ngOnDestroy() {\n this.resizeSub.unsubscribe();\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 - 8);\n const decimalPipe = new DecimalPipe(this.locale || 'en-US');\n const stringValue = decimalPipe.transform(this.value, this.digitsInfo);\n this.numberoffset = 8 - (stringValue || '1').length * 6;\n }\n }\n}\n","<label class=\"fwe-slider\" [class.fng-slider-label]=\"label != null\">\n <span *ngIf=\"label\">{{ label }}</span>\n <input\n 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 />\n <span *ngIf=\"left != null && !hideValue\" class=\"fng-slider-value\" [style.left]=\"left + numberoffset + 'px'\">{{\n value | number: digitsInfo : locale\n }}</span>\n <div class=\"fng-slider-indicator\" [class.disabled]=\"disabled\" [style.width]=\"left + 'px'\"></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';\nimport { CommonModule } from '@angular/common';\n\nlet nextUniqueId = 0;\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngSwitchComponent),\n multi: true\n }\n ]\n})\nexport class FngSwitchComponent implements ControlValueAccessor {\n @Input() name: string | undefined;\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 | undefined;\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 = false;\n\n @Output() readonly change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n controlValueAccessorChangeFn: ((value: any) => void) | undefined;\n\n onTouched: (() => any) | undefined;\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 { 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';\nimport { CommonModule } from '@angular/common';\n\n/**\n * A custom form element for text inputs.\n */\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngTextAreaComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngTextAreaComponent implements OnInit, ControlValueAccessor {\n /**\n * The text input label.\n */\n @Input() label: string | undefined;\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 | undefined;\n @Input() tabindex: number = 0;\n @Input() name: string | undefined;\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 | undefined;\n\n /**\n * The getter for value.\n */\n get value(): string | undefined {\n return this.innerValue;\n }\n\n /**\n * The setter for value.\n */\n @Input()\n set value(value: string | undefined) {\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 | undefined;\n\n /**\n * Hint description when valid.\n */\n @Input() hint: string | undefined;\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 = 0;\n\n @ViewChild('inputElement') inputElement: ElementRef | undefined;\n\n /**\n * When true the text input has focus.\n */\n focused: boolean = false;\n\n /**\n * Triggered on change.\n */\n onChange: ((value: string | undefined) => void) | undefined;\n\n /**\n * Triggered on touch.\n */\n onTouched: (() => void) | undefined;\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\n #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()\"\n >{{ value }}</textarea\n >\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","import { ControlValueAccessor } from '@angular/forms';\nimport { Input, Directive } from '@angular/core';\n\n@Directive()\nexport class FngValueAccessorBaseDirective<T> implements ControlValueAccessor {\n @Input() disabled = false;\n\n protected innerValue: T | undefined;\n\n protected changed = new Array<(value: T) => void>();\n protected touched = new Array<() => void>();\n\n get value(): T | undefined {\n return this.innerValue;\n }\n\n set value(value: T | undefined) {\n if (value && 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 AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SecurityContext,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport QuillType from 'quill';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport Delta from 'quill-delta';\nimport { FngValueAccessorBaseDirective } from '../value-accessor-base';\n\nexport interface FngTextEditorConfiguration {\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 sanitizing?: {\n skipDefaultSanitizing?: boolean;\n skipWhitespaceHandling?: boolean;\n sanitizingFn?: (ds: DomSanitizer, value: string) => string;\n };\n focusCursorToEndOnWrite?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule],\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(() => FngTextEditorComponent),\n multi: true\n }\n ]\n})\nexport class FngTextEditorComponent\n extends FngValueAccessorBaseDirective<string | null | undefined>\n implements OnInit, AfterViewInit, OnChanges\n{\n id: string | undefined;\n quillEditor!: QuillType;\n editorElem!: HTMLElement;\n defaultConfig: FngTextEditorConfiguration = {\n toolbar: {\n bold: true,\n italic: true,\n underline: true,\n alignCenter: false,\n alignRight: false,\n bulletList: true,\n orderedList: true,\n image: true,\n link: true\n },\n sanitizing: {\n sanitizingFn: undefined,\n skipDefaultSanitizing: false,\n skipWhitespaceHandling: false\n },\n focusCursorToEndOnWrite: true\n };\n\n @ViewChild('btnBold') btnBold: ElementRef | undefined;\n @ViewChild('btnItalic') btnItalic: ElementRef | undefined;\n @ViewChild('btnUnderline') btnUnderline: ElementRef | undefined;\n @ViewChild('btnAlignCenter') btnAlignCenter: ElementRef | undefined;\n @ViewChild('btnAlignRight') btnAlignRight: ElementRef | undefined;\n @ViewChild('btnLink') btnLink: ElementRef | undefined;\n @ViewChild('btnUl') btnUl: ElementRef | undefined;\n @ViewChild('btnOl') btnOl: ElementRef | undefined;\n @ViewChild('btnImage') btnImage: ElementRef | undefined;\n\n @Output() fngChange = new EventEmitter<any>();\n @Output() change = new EventEmitter<any>();\n\n @Input() config: FngTextEditorConfiguration = this.defaultConfig;\n @Input() modules: any;\n @Input() label: string | undefined;\n @Input() readOnly: boolean = false;\n @Input() maxLength: number = 0;\n @Input() error: string | undefined;\n @Input() hint: string | undefined;\n @Input()\n override set value(value: string | null | undefined) {\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 override get value() {\n return this.innerValue;\n }\n\n // needed to access editor content\n valueGetter = (editorElement: HTMLElement): string | any => {\n let html: string | undefined = editorElement?.querySelector('.ql-editor')?.innerHTML;\n if (html === '<p><br></p>' || html === '<div><br></div>') {\n html = undefined;\n }\n return html;\n };\n\n // needed to access editor content\n valueSetter = (quillEditor: QuillType, value: any): any => {\n const sanitizeConfig = this.config?.sanitizing || this.defaultConfig.sanitizing;\n\n if (sanitizeConfig?.sanitizingFn) {\n value = sanitizeConfig.sanitizingFn(this.domSanitizer, value);\n }\n if (sanitizeConfig && !sanitizeConfig.skipDefaultSanitizing) {\n value = this.domSanitizer.sanitize(SecurityContext.HTML, value);\n }\n if (sanitizeConfig && !sanitizeConfig.skipWhitespaceHandling) {\n value = this.handleWhitespace(value);\n }\n\n return quillEditor.clipboard.convert({ html: value });\n };\n\n constructor(\n public elementRef: ElementRef,\n private renderer: Renderer2,\n private domSanitizer: DomSanitizer\n ) {\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 });\n this.setEditorLabel();\n this.addWhitespaceMatcher();\n this.addImageMatcher();\n\n const content = this.valueSetter(this.quillEditor, this.innerValue || '');\n this.quillEditor.setContents(content, 'silent');\n (this.quillEditor.getModule('history') as any).clear();\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 = {\n toolbar: { ...this.defaultConfig.toolbar, ...changes['config'].currentValue?.toolbar },\n sanitizing: { ...this.defaultConfig.sanitizing, ...changes['config'].currentValue?.sanitizing }\n };\n }\n\n if (!this.quillEditor) {\n return;\n }\n\n this.handle();\n }\n\n override writeValue(value: string) {\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 if (this.config?.focusCursorToEndOnWrite) {\n // when new content gets written we always set cursor focus to end of text\n this.quillEditor.setSelection(Number.MAX_SAFE_INTEGER, 0);\n }\n }\n\n override 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 | undefined = undefined;\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 || 0;\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 return false;\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 // not allowed, remove image by setting up a new 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(/&#9;/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 type=\"button\" #btnAlignCenter class=\"ql-align fwe-d-none action-align-center\" aria-hidden=\"true\" value=\"center\"></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=\"fng-icon-svg-text-align-center\" [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=\"fng-icon-svg-text-align-right\" [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=\"fng-icon-svg-list-view\"></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=\"fng-icon-svg-enumeration\"></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=\"fng-icon-svg-image\"></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=\"fng-icon-svg-link\"></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 { NgModule } from '@angular/core';\nimport { FngCheckboxComponent } from './checkbox/checkbox.component';\nimport { FngColorIndicatorComponent } from './color-indicator/color-indicator.component';\nimport { FngColorPickerComponent } from './color-picker/color-picker.component';\nimport { FngTextInputComponent } from './text-input/text-input.component';\nimport { FngTimePickerDropdownComponent } from './time-picker/time-picker-dropdown/time-picker-dropdown.component';\nimport { FngTimePickerComponent } from './time-picker/time-picker.component';\nimport { FngDatePickerComponent } from './date-picker/date-picker.component';\nimport { FngDateRangePickerComponent } from './date-range-picker/date-range-picker.component';\nimport { FngRadioComponent, FngRadioGroupDirective } from './radio/radio.component';\nimport { FngSegmentComponent } from './segment/segment.component';\nimport { FngSegmentControlComponent } from './segment/segment-control/segment-control.component';\nimport { FngSelectOptionComponent } from './select/select-option/select-option.component';\nimport { FngSelectComponent } from './select/select.component';\nimport { FngSliderComponent } from './slider/slider.component';\nimport { FngSwitchComponent } from './switch/switch.component';\nimport { FngTextAreaComponent } from './text-area/text-area.component';\nimport { FngTextEditorComponent } from './text-editor/text-editor.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n ReactiveFormsModule,\n FormsModule,\n FngCheckboxComponent,\n FngColorIndicatorComponent,\n FngColorPickerComponent,\n FngTextInputComponent,\n FngTimePickerDropdownComponent,\n FngTimePickerComponent,\n FngDatePickerComponent,\n FngDateRangePickerComponent,\n FngRadioGroupDirective,\n FngRadioComponent,\n FngSegmentComponent,\n FngSegmentControlComponent,\n FngSelectOptionComponent,\n FngSelectComponent,\n FngSliderComponent,\n FngSwitchComponent,\n FngTextAreaComponent,\n FngTextEditorComponent\n ],\n exports: [\n ReactiveFormsModule,\n FormsModule,\n FngCheckboxComponent,\n FngColorIndicatorComponent,\n FngColorPickerComponent,\n FngTextInputComponent,\n FngTimePickerDropdownComponent,\n FngTimePickerComponent,\n FngDatePickerComponent,\n FngDateRangePickerComponent,\n FngRadioGroupDirective,\n FngRadioComponent,\n FngSegmentComponent,\n FngSegmentControlComponent,\n FngSelectOptionComponent,\n FngSelectComponent,\n FngSliderComponent,\n FngSwitchComponent,\n FngTextAreaComponent,\n FngTextEditorComponent\n ]\n})\nexport class FestoAngularFormsModule {}\n","import { NgModule } from '@angular/core';\nimport { FestoAngularComponentsModule } from './components/components.module';\nimport { FestoAngularFormsModule } from './forms/forms.module';\nimport { FngSafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { FestoAngularModalsModule } from './modals/modals.module';\nimport { FestoAngularSnackbarModule } from './components/snackbar/snackbar.module';\n\n@NgModule({\n declarations: [],\n imports: [FngSafeHtmlPipe, FestoAngularComponentsModule, FestoAngularFormsModule, FestoAngularModalsModule, FestoAngularSnackbarModule],\n exports: [FngSafeHtmlPipe, FestoAngularComponentsModule, FestoAngularFormsModule, FestoAngularModalsModule, FestoAngularSnackbarModule]\n})\nexport class FestoAngularModule {}\n","/*\n * Public API Surface of angular\n */\n\nexport * from './lib/components/accordion/index';\nexport * from './lib/components/breadcrumb/breadcrumb.component';\nexport * from './lib/components/buttons/button/button.component';\nexport * from './lib/components/buttons/link-button/link-button.component';\nexport * from './lib/components/chips/chip-container/chip-container.component';\nexport * from './lib/components/chips/chip/chip.component';\nexport * from './lib/components/components.module';\nexport * from './lib/components/loading-indicator/loading-indicator.component';\nexport * from './lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component';\nexport * from './lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component';\nexport * from './lib/components/mobile-flyout/mobile-flyout.component';\nexport * from './lib/components/pagination/pagination.component';\nexport * from './lib/components/popovers/legend/legend.component';\nexport * from './lib/components/popovers/legend/legend.directive';\nexport * from './lib/components/popovers/popover-content/popover-content.component';\nexport * from './lib/components/popovers/popover-content/popover-content.directive';\nexport * from './lib/components/popovers/popover-menu/popover-menu.component';\nexport * from './lib/components/popovers/popover.models';\nexport * from './lib/components/popovers/popover.service';\nexport * from './lib/components/popovers/popover/popover.component';\nexport * from './lib/components/popovers/tooltip/tooltip.directive';\nexport * from './lib/components/progress/progress.component';\nexport * from './lib/components/scroll/scrollable.directive';\nexport * from './lib/components/search-input/search-input.component';\nexport * from './lib/components/snackbar/snackbar-container.component';\nexport * from './lib/components/snackbar/snackbar-container.directive';\nexport * from './lib/components/snackbar/snackbar.module';\nexport * from './lib/components/snackbar/snackbar.service';\nexport * from './lib/components/stepper-horizontal/step-horizontal/step-horizontal.component';\nexport * from './lib/components/stepper-horizontal/stepper-horizontal.component';\nexport * from './lib/components/stepper-vertical/step-vertical/step-vertical.component';\nexport * from './lib/components/stepper-vertical/stepper-vertical.component';\nexport * from './lib/components/table-header-cell/table-header-cell.directive';\nexport * from './lib/components/tabs/tab-pane/tab-pane.component';\nexport * from './lib/components/tabs/tabs.component';\n\nexport * from './lib/modals/alert/alert.component';\nexport * from './lib/modals/index';\nexport * from './lib/modals/modal.service';\nexport * from './lib/modals/modals.module';\n\nexport * from './lib/components/bottom-sheet/bottom-sheet.component';\nexport * from './lib/components/sidebar-overlay/sidebar-overlay.component';\nexport * from './lib/forms/checkbox/checkbox.component';\nexport * from './lib/forms/color-indicator/color-indicator.component';\nexport * from './lib/forms/color-picker/color-picker.component';\nexport * from './lib/forms/date-picker/date-picker.component';\nexport * from './lib/forms/date-range-picker/date-range-picker.component';\nexport * from './lib/forms/forms.module';\nexport * from './lib/forms/radio/radio.component';\nexport * from './lib/forms/segment/segment-control/segment-control.component';\nexport * from './lib/forms/segment/segment.component';\nexport * from './lib/forms/select/select-option/select-option.component';\nexport * from './lib/forms/select/select.component';\nexport * from './lib/forms/slider/slider.component';\nexport * from './lib/forms/switch/switch.component';\nexport * from './lib/forms/text-area/text-area.component';\nexport * from './lib/forms/text-editor/text-editor.component';\nexport * from './lib/forms/text-input/text-input.component';\nexport * from './lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component';\nexport * from './lib/forms/time-picker/time-picker.component';\n\nexport * from './lib/directives/click-outside.directive';\n\nexport * from './lib/pipes/safe-html.pipe';\n\nexport * from './lib/festo-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i1.PopoverRef","i1.FngPopoverService","i1.FngSnackbarService","nextUniqueId","i1.FngUniqueSelectionDispatcher"],"mappings":"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"}
1
+ {"version":3,"file":"festo-ui-angular.mjs","sources":["../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.ts","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.html","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.ts","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.html","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item.component.ts","../../../projects/angular/src/lib/components/accordion/accordion-item/accordion-item.component.html","../../../projects/angular/src/lib/components/accordion/accordion.component.ts","../../../projects/angular/src/lib/components/accordion/accordion.component.html","../../../projects/angular/src/lib/components/accordion/accordion-header/accordion-header.component.ts","../../../projects/angular/src/lib/components/accordion/accordion-header/accordion-header.component.html","../../../projects/angular/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/angular/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/angular/src/lib/components/buttons/button/button.component.ts","../../../projects/angular/src/lib/components/buttons/button/button.component.html","../../../projects/angular/src/lib/components/buttons/link-button/link-button.component.ts","../../../projects/angular/src/lib/components/buttons/link-button/link-button.component.html","../../../projects/angular/src/lib/components/chips/chip-container/chip-container.component.ts","../../../projects/angular/src/lib/components/chips/chip-container/chip-container.component.html","../../../projects/angular/src/lib/components/chips/chip/chip.component.ts","../../../projects/angular/src/lib/components/chips/chip/chip.component.html","../../../projects/angular/src/lib/directives/click-outside.directive.ts","../../../projects/angular/src/lib/components/bottom-sheet/bottom-sheet.component.ts","../../../projects/angular/src/lib/components/bottom-sheet/bottom-sheet.component.html","../../../projects/angular/src/lib/components/loading-indicator/loading-indicator.component.ts","../../../projects/angular/src/lib/components/loading-indicator/loading-indicator.component.html","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.ts","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.html","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.ts","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.html","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout.component.ts","../../../projects/angular/src/lib/components/mobile-flyout/mobile-flyout.component.html","../../../projects/angular/src/lib/components/pagination/pagination.component.ts","../../../projects/angular/src/lib/components/pagination/pagination.component.html","../../../projects/angular/src/lib/components/popovers/popover-ref.ts","../../../projects/angular/src/lib/components/popovers/popover.models.ts","../../../projects/angular/src/lib/components/popovers/popover/popover.component.ts","../../../projects/angular/src/lib/components/popovers/popover/popover.component.html","../../../projects/angular/src/lib/components/popovers/popover.defaults.ts","../../../projects/angular/src/lib/components/popovers/popover.service.ts","../../../projects/angular/src/lib/components/popovers/legend/legend.component.ts","../../../projects/angular/src/lib/components/popovers/legend/legend.component.html","../../../projects/angular/src/lib/components/popovers/legend/legend.directive.ts","../../../projects/angular/src/lib/components/popovers/popover-content/popover-content.component.ts","../../../projects/angular/src/lib/components/popovers/popover-content/popover-content.component.html","../../../projects/angular/src/lib/components/popovers/popover-content/popover-content.directive.ts","../../../projects/angular/src/lib/components/popovers/popover-menu/popover-menu.component.ts","../../../projects/angular/src/lib/components/popovers/popover-menu/popover-menu.component.html","../../../projects/angular/src/lib/components/popovers/tooltip/tooltip.directive.ts","../../../projects/angular/src/lib/components/progress/progress.component.ts","../../../projects/angular/src/lib/components/progress/progress.component.html","../../../projects/angular/src/lib/components/scroll/scrollable.directive.ts","../../../projects/angular/src/lib/pipes/safe-html.pipe.ts","../../../projects/angular/src/lib/components/search-input/search-input.component.ts","../../../projects/angular/src/lib/components/search-input/search-input.component.html","../../../projects/angular/src/lib/components/sidebar-overlay/sidebar-overlay.component.ts","../../../projects/angular/src/lib/components/sidebar-overlay/sidebar-overlay.component.html","../../../projects/angular/src/lib/components/snackbar/snackbar.component.ts","../../../projects/angular/src/lib/components/snackbar/snackbar.component.html","../../../projects/angular/src/lib/components/snackbar/snackbar.service.ts","../../../projects/angular/src/lib/components/snackbar/snackbar-container.directive.ts","../../../projects/angular/src/lib/components/snackbar/snackbar-container.component.ts","../../../projects/angular/src/lib/components/snackbar/snackbar-container.component.html","../../../projects/angular/src/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.ts","../../../projects/angular/src/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.html","../../../projects/angular/src/lib/components/stepper-horizontal/stepper-horizontal.component.ts","../../../projects/angular/src/lib/components/stepper-horizontal/stepper-horizontal.component.html","../../../projects/angular/src/lib/components/stepper-vertical/step-vertical/step-vertical.component.ts","../../../projects/angular/src/lib/components/stepper-vertical/step-vertical/step-vertical.component.html","../../../projects/angular/src/lib/components/stepper-vertical/stepper-vertical.component.ts","../../../projects/angular/src/lib/components/stepper-vertical/stepper-vertical.component.html","../../../projects/angular/src/lib/components/table-header-cell/table-header-cell.directive.ts","../../../projects/angular/src/lib/components/tabs/tab-pane/tab-pane.component.ts","../../../projects/angular/src/lib/components/tabs/tab-pane/tab-pane.component.html","../../../projects/angular/src/lib/components/tabs/tabs.component.ts","../../../projects/angular/src/lib/components/tabs/tabs.component.html","../../../projects/angular/src/lib/components/overlay/overlay-outlet.directive.ts","../../../projects/angular/src/lib/components/overlay/overlay-content/overlay-content.component.ts","../../../projects/angular/src/lib/components/overlay/overlay-content/overlay-content.component.html","../../../projects/angular/src/lib/components/components.module.ts","../../../projects/angular/src/lib/components/snackbar/snackbar.module.ts","../../../projects/angular/src/lib/modals/alert/alert.component.ts","../../../projects/angular/src/lib/modals/alert/alert.component.html","../../../projects/angular/src/lib/modals/confirm/confirm.component.ts","../../../projects/angular/src/lib/modals/confirm/confirm.component.html","../../../projects/angular/src/lib/forms/text-input/text-input.component.ts","../../../projects/angular/src/lib/forms/text-input/text-input.component.html","../../../projects/angular/src/lib/modals/prompt/prompt.component.ts","../../../projects/angular/src/lib/modals/prompt/prompt.component.html","../../../projects/angular/src/lib/modals/image-gallery/image-gallery.component.ts","../../../projects/angular/src/lib/modals/image-gallery/image-gallery.component.html","../../../projects/angular/src/lib/modals/modal.service.ts","../../../projects/angular/src/lib/modals/custom-modal/custom-modal.component.ts","../../../projects/angular/src/lib/modals/custom-modal/custom-modal.component.html","../../../projects/angular/src/lib/modals/modals.module.ts","../../../projects/angular/src/lib/forms/checkbox/checkbox.component.ts","../../../projects/angular/src/lib/forms/checkbox/checkbox.component.html","../../../projects/angular/src/lib/forms/color-indicator/color-indicator.component.ts","../../../projects/angular/src/lib/forms/color-indicator/color-indicator.component.html","../../../projects/angular/src/lib/forms/color-picker/color-helper.ts","../../../projects/angular/src/lib/forms/color-picker/color-picker.component.ts","../../../projects/angular/src/lib/forms/color-picker/color-picker.component.html","../../../projects/angular/src/lib/forms/flatpickr/flatpickr.component.ts","../../../projects/angular/src/lib/forms/flatpickr/flatpickr.component.html","../../../projects/angular/src/lib/forms/date-picker/date-picker.component.ts","../../../projects/angular/src/lib/forms/date-picker/date-picker.component.html","../../../projects/angular/src/lib/forms/date-range-picker/date-range-picker.component.ts","../../../projects/angular/src/lib/forms/date-range-picker/date-range-picker.component.html","../../../projects/angular/src/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.ts","../../../projects/angular/src/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.html","../../../projects/angular/src/lib/forms/time-picker/time-picker.component.ts","../../../projects/angular/src/lib/forms/time-picker/time-picker.component.html","../../../projects/angular/src/lib/forms/unique-selection-dispatcher.ts","../../../projects/angular/src/lib/forms/radio/radio.component.ts","../../../projects/angular/src/lib/forms/radio/radio.component.html","../../../projects/angular/src/lib/forms/segment/segment-control/segment-control.component.ts","../../../projects/angular/src/lib/forms/segment/segment-control/segment-control.component.html","../../../projects/angular/src/lib/forms/segment/segment.component.ts","../../../projects/angular/src/lib/forms/segment/segment.component.html","../../../projects/angular/src/lib/forms/select/select-option/select-option.component.ts","../../../projects/angular/src/lib/forms/select/select-option/select-option.component.html","../../../projects/angular/src/lib/forms/select/chip-text.pipe.ts","../../../projects/angular/src/lib/forms/select/select.component.ts","../../../projects/angular/src/lib/forms/select/select.component.html","../../../projects/angular/src/lib/forms/slider/slider.component.ts","../../../projects/angular/src/lib/forms/slider/slider.component.html","../../../projects/angular/src/lib/forms/switch/switch.component.ts","../../../projects/angular/src/lib/forms/switch/switch.component.html","../../../projects/angular/src/lib/forms/text-area/text-area.component.ts","../../../projects/angular/src/lib/forms/text-area/text-area.component.html","../../../projects/angular/src/lib/forms/value-accessor-base.ts","../../../projects/angular/src/lib/forms/text-editor/text-editor.component.ts","../../../projects/angular/src/lib/forms/text-editor/text-editor.component.html","../../../projects/angular/src/lib/forms/forms.module.ts","../../../projects/angular/src/lib/festo-angular.module.ts","../../../projects/angular/src/public-api.ts","../../../projects/angular/src/festo-ui-angular.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-accordion-item-body',\n templateUrl: './accordion-item-body.component.html',\n styleUrls: ['./accordion-item-body.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionItemBodyComponent {\n // parentId will be set by accordion item this body belongs to\n id: string = '';\n}\n","<div\n role=\"region\"\n [attr.id]=\"id + '-body'\"\n [attr.aria-labelledby]=\"id + '-header'\"\n class=\"fng-accordion-item-body\"\n>\n <ng-content></ng-content>\n <div class=\"fng-accordion-item-body-spacer-bottom\"></div>\n</div>\n","import { Component, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport enum FngAccordionHeaderActions {\n Toggle = 'toggle'\n}\n\n@Component({\n standalone: true,\n selector: 'fng-accordion-item-header',\n templateUrl: './accordion-item-header.component.html',\n styleUrls: ['./accordion-item-header.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionItemHeaderComponent implements OnDestroy {\n // parentId will be set by accordion item this header belongs to\n id: string = '';\n private actions: Subject<FngAccordionHeaderActions> = new Subject<FngAccordionHeaderActions>();\n actions$: Observable<FngAccordionHeaderActions> = this.actions.asObservable();\n\n ngOnDestroy() {\n this.actions.complete();\n }\n\n toggle() {\n this.actions.next(FngAccordionHeaderActions.Toggle);\n }\n}\n","<div\n class=\"fng-accordion-item-header\"\n role=\"button\"\n tabindex=\"0\"\n [attr.id]=\"id + '-header'\"\n [attr.aria-expanded]=\"\"\n [attr.aria-controls]=\"id + '-body'\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</div>\n","import { Subscription } from 'rxjs';\nimport { FngAccordionActions, FngAccordionComponent } from './../accordion.component';\nimport {\n Component,\n ContentChild,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ElementRef,\n Renderer2,\n AfterViewInit,\n ChangeDetectorRef,\n AfterContentInit\n} from '@angular/core';\n\nimport { FngAccordionItemBodyComponent } from './accordion-item-body/accordion-item-body.component';\nimport { FngAccordionHeaderActions, FngAccordionItemHeaderComponent } from './accordion-item-header/accordion-item-header.component';\n\n@Component({\n standalone: true,\n selector: 'fng-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionItemComponent implements OnChanges, AfterViewInit, AfterContentInit {\n static nextId = 0;\n componentId = `accordion-item-${++FngAccordionItemComponent.nextId}`;\n expanded: boolean = false;\n _linkText: string = '';\n get linkText() {\n if (this.expanded === true) {\n this._linkText = this?.accordion?.showLess || '';\n } else {\n this._linkText = this?.accordion?.showMore || '';\n }\n return this._linkText;\n }\n\n @ContentChild(FngAccordionItemHeaderComponent) header: FngAccordionItemHeaderComponent | undefined;\n @ContentChild(FngAccordionItemBodyComponent) body: FngAccordionItemBodyComponent | undefined;\n\n // compound id of parent id and this component id to get a unique identifier in dom\n id = '';\n\n // parentId will be set by accordion this item belongs to\n parentId: string = '';\n private accordion: FngAccordionComponent | undefined;\n private accordionSubscription: Subscription | undefined;\n private accordionItemHeaderSubscription: Subscription | undefined;\n private element: HTMLElement | null = null;\n private pristine: boolean = true;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private cd: ChangeDetectorRef) {}\n\n ngAfterContentInit(): void {\n this.id = `${this.parentId}-${this.componentId}`;\n if (this.header && this.body) {\n this.header.id = this.id;\n this.body.id = this.id;\n }\n }\n\n ngAfterViewInit(): void {\n const element: HTMLElement = this.elementRef.nativeElement;\n this.element = element.querySelector('.fng-accordion-item-body');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['accordion']?.currentValue != null) {\n const accordion = changes?.['accordion']?.currentValue;\n this.accordion = accordion;\n if (this.accordion) {\n this.subscribeToAccordionActions();\n this.subscribeToAccordionItemHeaderActions();\n }\n }\n this.cd.detectChanges();\n }\n\n toggle(): void {\n // save the new expanded state in another var, because it may be overwritten when closeAll is called\n const newExpandedState = !this.expanded;\n const changeExpandedState = () => {\n this.expanded = newExpandedState;\n if (this.expanded === true) {\n this.expandItem();\n } else {\n this.collapseItem();\n }\n };\n\n // if the accordion allows only one expanded item at once we first have to close all items\n if (this.accordion != null && this.accordion.multi === false) {\n this.accordion.closeAll();\n /// run in new macrotask to avoid render issues when transitioning to new expanded state\n setTimeout(() => {\n changeExpandedState();\n });\n } else {\n changeExpandedState();\n }\n }\n\n collapseItem() {\n // get the height of item body regardless of its actual size\n const itemHeight = this.element?.scrollHeight;\n // set the actual item height as style to avoid transition from height: auto\n this.renderer.setStyle(this.element, 'height', itemHeight + 'px');\n setTimeout(() => {\n this.renderer.setStyle(this.element, 'height', 0 + 'px');\n });\n }\n\n expandItem() {\n // if the item was expanded once, we have to rerun change detection before expanding again\n // because the content inside may have changed\n if (this.pristine === false) {\n this.cd.detectChanges();\n }\n\n // get the height of item body regardless of its actual size\n const itemHeight = this.element?.scrollHeight;\n this.renderer.setStyle(this.element, 'height', itemHeight + 'px');\n setTimeout(() => {\n this.renderer.setStyle(this.element, 'height', null);\n this.pristine = false;\n }, 300);\n }\n\n private handleAction(action: FngAccordionActions | FngAccordionHeaderActions) {\n switch (action) {\n case FngAccordionActions.OpenAll:\n this.expanded = true;\n this.expandItem();\n break;\n case FngAccordionActions.CloseAll:\n if (this.expanded === true) {\n this.expanded = false;\n this.collapseItem();\n }\n break;\n case FngAccordionHeaderActions.Toggle:\n this.toggle();\n break;\n default:\n break;\n }\n }\n\n private subscribeToAccordionActions() {\n if (this.accordionSubscription != null) {\n this.accordionSubscription.unsubscribe();\n }\n this.accordionSubscription = this.accordion?.actions$.subscribe(action => {\n this.handleAction(action);\n });\n }\n\n private subscribeToAccordionItemHeaderActions() {\n if (this.accordionItemHeaderSubscription != null) {\n this.accordionItemHeaderSubscription.unsubscribe();\n }\n this.accordionItemHeaderSubscription = this.header?.actions$.subscribe(action => {\n this.handleAction(action);\n });\n }\n}\n","<div class=\"fng-accordion-item\" [class.fng-accordion-item--collapsed]=\"!expanded\" [class.fng-accordion-item--expanded]=\"expanded === true\">\n <ng-content></ng-content>\n <div class=\"fng-accordion-item-link\">{{ linkText }}</div>\n</div>\n","import { Component, ContentChildren, QueryList, SimpleChange, ViewEncapsulation, AfterViewInit, Input, OnDestroy } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\n\nimport { FngAccordionItemComponent } from './accordion-item/accordion-item.component';\n\nexport enum FngAccordionActions {\n OpenAll = 'openAll',\n CloseAll = 'closeAll'\n}\n\n@Component({\n standalone: true,\n selector: 'fng-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionComponent implements AfterViewInit, OnDestroy {\n static nextId = 0;\n readonly componentId = `accordion-${++FngAccordionComponent.nextId}`;\n\n private actions: Subject<FngAccordionActions> = new Subject<FngAccordionActions>();\n actions$: Observable<FngAccordionActions> = this.actions.asObservable();\n\n // if the accordion should only allow one expanded item at once this property can be set to false\n @Input('fngAccordionKeepItemsOpen') multi: boolean = true;\n @Input('fngAccordionShowMoreText') showMore: string = 'Show more';\n @Input('fngAccordionShowLessText') showLess: string = 'Show less';\n @ContentChildren(FngAccordionItemComponent) items: QueryList<FngAccordionItemComponent> | undefined;\n\n ngAfterViewInit(): void {\n this.items?.forEach(item => {\n item.ngOnChanges({\n parentId: new SimpleChange(null, this.componentId, false),\n accordion: new SimpleChange(null, this, false)\n });\n });\n }\n\n ngOnDestroy() {\n this.actions.complete();\n }\n\n openAll(): void {\n if (this.multi) {\n this.actions.next(FngAccordionActions.OpenAll);\n }\n }\n\n closeAll(): void {\n this.actions.next(FngAccordionActions.CloseAll);\n }\n}\n","<div class=\"fng-accordion\">\n <ng-content></ng-content>\n</div>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-accordion-header',\n templateUrl: './accordion-header.component.html',\n styleUrls: ['./accordion-header.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAccordionHeaderComponent {}\n","<div class=\"fng-accordion-header\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [RouterModule, CommonModule],\r\n selector: 'fng-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FngBreadcrumbComponent {\r\n @Input() useRouterLink = false;\r\n @Input() locations: { label: string; url: string }[] = [];\r\n @Output() navigate = new EventEmitter<string>();\r\n}\r\n","<div class=\"fwe-breadcrumb\">\r\n <ng-container *ngFor=\"let location of locations\">\r\n <a *ngIf=\"useRouterLink\" class=\"fng-breadcrumb-location\" [routerLink]=\"location.url\">{{ location.label }}</a>\r\n <a *ngIf=\"!useRouterLink\" class=\"fng-breadcrumb-location\" (click)=\"navigate.emit(location.url)\">{{ location.label }}</a>\r\n </ng-container>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter, ViewEncapsulation, ContentChild, ElementRef } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngButtonComponent {\n @Input() text: string | undefined;\n @Input() icon: string | undefined;\n @Input() disabled = false;\n @Input() primary = false;\n @Input() tertiary = false;\n @Input() iconOnly = false;\n @Input() large = false;\n @Input() floating = false;\n @Output() fngClick = new EventEmitter<any>();\n @ContentChild('content') content: ElementRef | undefined;\n\n onClick(event: any) {\n if (!this.disabled) {\n this.fngClick.emit(event);\n }\n }\n}\n","\n<button\n (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 && !tertiary,\n 'fwe-btn-link': tertiary && !primary,\n 'fwe-btn-lg': large,\n 'fwe-btn-floating': floating\n }\"\n [disabled]=\"disabled\"\n>\n <i *ngIf=\"icon\" [class]=\"'fwe-icon fwe-icon-' + icon\"></i>\n <div *ngIf=\"!iconOnly\">\n <ng-content></ng-content>\n <span *ngIf=\"!content\">{{ text }}</span>\n </div>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter, ViewEncapsulation, ContentChild, ElementRef } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-link-button',\n templateUrl: './link-button.component.html',\n styleUrls: ['./link-button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngLinkButtonComponent {\n @Input() text: string | undefined;\n @Input() icon: string | undefined;\n @Input() disabled = false;\n @Input() iconOnly = false;\n @Output() fngClick = new EventEmitter<any>();\n @ContentChild('content') content: ElementRef | undefined;\n\n onClick(event: any) {\n this.fngClick.emit(event);\n }\n}\n","<button\n (click)=\"onClick($event)\"\n [ngClass]=\"{\n 'fwe-btn': true,\n 'fwe-btn-link': true,\n 'fwe-disabled': disabled\n }\"\n [disabled]=\"disabled\"\n>\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>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-chip-container',\n templateUrl: './chip-container.component.html',\n styleUrls: ['./chip-container.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngChipContainerComponent {\n @Input() large = false;\n}\n","<div class=\"fwe-chip-container\" [class.fwe-chip-container-lg]=\"large\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { 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 standalone: true,\n imports: [CommonModule],\n selector: 'fng-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngChipComponent {\n ChipType = ChipType;\n\n @Input() type: ChipType = ChipType.Choise;\n @Input() selected = false;\n @Input() disabled = false;\n @Input() icon: string | undefined;\n @Input() large = false;\n}\n","<div\n [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>\n <i *ngIf=\"icon\" [class]=\"'fwe-icon fwe-icon-' + icon\"></i>\n <ng-content></ng-content>\n</div>\n","import { Directive, ElementRef, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[fngClickOutside]'\n})\nexport class FngClickOutsideDirective {\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 { NgIf } from '@angular/common';\nimport { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fng-bottom-sheet',\n standalone: true,\n imports: [NgIf],\n templateUrl: './bottom-sheet.component.html',\n styleUrl: './bottom-sheet.component.scss',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngBottomSheetComponent {\n @Input() hasBackdrop: boolean = true;\n @Input() isExpanded: boolean = false;\n @Input() hideCloseIcon: boolean = false;\n @Input() expandFrom: 'bottom' | 'center' = 'center';\n\n @Output() close = new EventEmitter<void>();\n\n @HostBinding('class.bottom-sheet--open') isOpen = false;\n @HostBinding('class.bottom-sheet--expanded') get isExpandedState() {\n return this.isExpanded;\n }\n\n isClosing: boolean = false;\n\n private startY: number = 0;\n private currentY: number = 0;\n private swiping: boolean = false;\n\n ngOnInit() {\n setTimeout(() => {\n this.isOpen = true;\n }, 0); // trigger the transition on open\n }\n\n @HostListener('touchstart', ['$event'])\n onTouchStart(event: TouchEvent) {\n this.startY = event.touches[0].clientY;\n this.swiping = true;\n }\n\n @HostListener('touchmove', ['$event'])\n onTouchMove(event: TouchEvent) {\n if (!this.swiping) return;\n\n this.currentY = event.touches[0].clientY;\n const deltaY = this.currentY - this.startY;\n\n if (deltaY < -50 && !this.isExpanded) {\n // swipe up to expand\n this.isExpanded = true;\n this.swiping = false;\n } else if (deltaY > 50 && this.isExpanded) {\n // swipe down to collapse\n this.isExpanded = false;\n this.swiping = false;\n } else if (deltaY > 100 && !this.isExpanded) {\n // swipe down to close\n this.closeBottomSheet();\n this.swiping = false;\n }\n }\n\n @HostListener('touchend')\n onTouchEnd() {\n this.swiping = false;\n }\n\n toggleExpand() {\n this.isExpanded = !this.isExpanded;\n }\n\n closeBottomSheet() {\n this.isClosing = true;\n this.hasBackdrop = false;\n setTimeout(() => {\n this.isClosing = false;\n this.isOpen = false;\n this.close.emit();\n }, 300); // wait for the transition to finish before closing\n }\n}\n","<div class=\"fwe-bottom-sheet-backdrop\" [class.fwe-bottom-sheet-backdrop--visible]=\"hasBackdrop\"\n (click)=\"closeBottomSheet()\"></div>\n<div class=\"fwe-bottom-sheet-container\" [class.fwe-bottom-sheet-container--open]=\"isOpen\"\n [class.fwe-bottom-sheet-container--expanded]=\"isExpanded\"\n [class.fwe-bottom-sheet-container--expand-from-center]=\"expandFrom === 'center'\"\n [class.fwe-bottom-sheet-container--with-backdrop]=\"hasBackdrop\"\n [class.fwe-bottom-sheet-container--closing]=\"isClosing\"\n >\n <div class=\"fwe-bottom-sheet-header\">\n <div class=\"fwe-bottom-sheet-drag-handle-container\" (click)=\"toggleExpand()\">\n <div class=\"fwe-bottom-sheet-drag-handle\"></div>\n </div>\n <button *ngIf=\"!hideCloseIcon\" type=\"button\"\n class=\"fwe-bottom-sheet-close-btn\" (click)=\"closeBottomSheet()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n </div>\n <div class=\"fwe-bottom-sheet-content\">\n <ng-content></ng-content>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-loading-indicator',\n templateUrl: './loading-indicator.component.html',\n styleUrls: ['./loading-indicator.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngLoadingIndicatorComponent {\n @Input() size: 'large' | 'medium' | 'small' = 'large';\n}\n","<div class=\"fwe-waiting-container\" [class.fwe-waiting-container-sm]=\"size === 'small'\">\n <div\n class=\"fwe-waiting-indicator\"\n [class.fwe-waiting-indicator-md]=\"size === 'medium'\"\n [class.fwe-waiting-indicator-sm]=\"size === 'small'\"\n >\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 class=\"fwe-waiting-circle-4\"></div>\n </div>\n <div class=\"fwe-waiting-content-container\">\n <ng-content></ng-content>\n </div>\n</div>\n","/* eslint-disable @angular-eslint/no-empty-lifecycle-method */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, Optional, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { RouterLinkActive, RouterModule } from '@angular/router';\n\n@Component({\n standalone: true,\n imports: [CommonModule, RouterModule],\n selector: 'fng-mobile-flyout-item',\n templateUrl: './mobile-flyout-item.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngMobileFlyoutItemComponent implements OnChanges {\n @Input() icon: string = '';\n @Input() pageLink: string = '';\n @Input() lastElement = false;\n\n onNavigateCallback: ((pageName: string) => void) | undefined;\n\n constructor(@Optional() public rla: RouterLinkActive) {}\n\n ngOnChanges(_: SimpleChanges): void {\n // lifecycle hook is called by parent component so do not remove it\n }\n\n onClick() {\n if (this.onNavigateCallback) {\n this.onNavigateCallback(this.pageLink);\n }\n }\n}\n","<a class=\"fwe-mobile-flyout-item\" [class.fwe-bb]=\"!lastElement\" (click)=\"onClick()\">\n <i *ngIf=\"icon\" [class]=\"'fwe-mr-xs fwe-icon fwe-icon-' + icon\"></i>\n <div *ngIf=\"!rla\" class=\"fwe-flex-grow-1\" routerLinkActive=\"fwe-color-hero\">\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n </div>\n <div\n *ngIf=\"rla?.routerLinkActiveOptions\"\n class=\"fwe-flex-grow-1\"\n routerLinkActive=\"fwe-color-hero\"\n [routerLinkActiveOptions]=\"rla.routerLinkActiveOptions\"\n >\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n </div>\n <i *ngIf=\"pageLink\" class=\"fwe-icon fwe-icon-arrows-right-2\"></i>\n</a>\n<ng-template #itemContent>\n <ng-content></ng-content>\n</ng-template>\n","import { AfterContentInit, Component, ContentChildren, Input, QueryList, OnDestroy, SimpleChange, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FngMobileFlyoutItemComponent } from '../mobile-flyout-item/mobile-flyout-item.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-mobile-flyout-page',\n templateUrl: './mobile-flyout-page.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngMobileFlyoutPageComponent implements AfterContentInit, OnDestroy {\n @ContentChildren(FngMobileFlyoutItemComponent) itemComponents!: QueryList<FngMobileFlyoutItemComponent>;\n @Input() name: string = '';\n @Input() back: string = 'Back';\n\n isfirstelement = false;\n visible = false;\n onNavigateCallback: ((pageName: string) => void) | undefined;\n\n private complete: Subject<boolean> = new Subject();\n\n ngAfterContentInit(): void {\n this.initItemComponents();\n\n // if we have item components that are added dynamically (e.g. *ngIf)\n // we need to call init again to have all navigate callbacks defined\n this.itemComponents.changes.pipe(takeUntil(this.complete)).subscribe(() => {\n this.initItemComponents();\n });\n }\n\n ngOnDestroy(): void {\n this.complete.next(true);\n this.complete.unsubscribe();\n }\n\n onNavigate(pageName: string) {\n if (this.onNavigateCallback) {\n this.onNavigateCallback(pageName);\n }\n }\n\n onBack() {\n this.visible = false;\n }\n\n private initItemComponents() {\n if (!this.itemComponents) {\n return;\n }\n\n // register click-callbacks\n this.itemComponents.forEach(s => {\n s.onNavigateCallback = pageName => this.onNavigate(pageName);\n });\n\n if (this.itemComponents.last) {\n // pass new value by ngOnChanges for proper change detection\n this.itemComponents.last.ngOnChanges({\n lastElement: new SimpleChange(null, true, false)\n });\n }\n }\n}\n","<div class=\"fwe-mobile-flyout-page\" [class.fwe-opened]=\"visible\">\n <div class=\"fwe-page-back\" *ngIf=\"!isfirstelement\" (click)=\"onBack()\">\n <i></i>\n <div>{{ back }}</div>\n </div>\n <div class=\"fwe-mobile-flyout-item-container\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { AfterContentInit, Component, ContentChildren, OnDestroy, Output, QueryList, EventEmitter, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FngMobileFlyoutPageComponent } from './mobile-flyout-page/mobile-flyout-page.component';\nimport { CommonModule } from '@angular/common';\nimport { FngClickOutsideDirective } from '../../directives/click-outside.directive';\n\n@Component({\n standalone: true,\n imports: [CommonModule, FngClickOutsideDirective],\n selector: 'fng-mobile-flyout',\n templateUrl: './mobile-flyout.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngMobileFlyoutComponent implements AfterContentInit, OnDestroy {\n @Output() flyoutOpenChange: EventEmitter<boolean> = new EventEmitter();\n @ContentChildren(FngMobileFlyoutPageComponent) pageComponents!: QueryList<FngMobileFlyoutPageComponent>;\n isOpen = false;\n\n private complete: Subject<boolean> = new Subject();\n\n ngAfterContentInit(): void {\n this.initPageComponents();\n\n // if we have page components that are added dynamically (e.g. *ngIf)\n // we need to call init again to have all navigate callbacks defined\n this.pageComponents.changes.pipe(takeUntil(this.complete)).subscribe(() => {\n this.initPageComponents();\n });\n }\n\n ngOnDestroy(): void {\n this.complete.next(true);\n this.complete.unsubscribe();\n }\n\n onNavigate(pageName: string) {\n // handle clicks on router links\n if (!pageName) {\n this.isOpen = false;\n this.flyoutOpenChange.emit(this.isOpen);\n }\n\n // handle page-navigation clicks\n const nextPage = this.pageComponents.find(p => p.name === pageName);\n if (nextPage) {\n nextPage.visible = true;\n }\n }\n\n toggle() {\n this.isOpen = !this.isOpen;\n this.flyoutOpenChange.emit(this.isOpen);\n }\n\n onClickOutside() {\n this.isOpen = false;\n this.flyoutOpenChange.emit(this.isOpen);\n }\n\n private initPageComponents() {\n if (!this.pageComponents) {\n return;\n }\n\n // register click-callbacks and open the first element\n this.pageComponents.forEach((s, i) => {\n s.onNavigateCallback = pageName => this.onNavigate(pageName);\n s.isfirstelement = i === 0;\n s.visible = i === 0;\n });\n }\n}\n","<div class=\"fwe-mobile-flyout\" (clickOutside)=\"onClickOutside()\" fngClickOutside>\n <button [class.fwe-burger-button]=\"!isOpen\" [class.fwe-close-button]=\"isOpen\" (click)=\"toggle()\"></button>\n <div class=\"fwe-mobile-flyout-container\" [class.fwe-opened]=\"isOpen\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\nexport enum FngPaginationType {\n Numeric = 'NUMERIC',\n Dots = 'DOTS'\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPaginationComponent {\n PaginationType = FngPaginationType;\n\n @Input() type: FngPaginationType = FngPaginationType.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 = 0;\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 { OverlayRef } from '@angular/cdk/overlay';\nimport { Subject } from 'rxjs';\n\nimport { FngPopoverContent, FngPopoverCloseEvent } from './popover.models';\n\nexport class PopoverRef<T = any> {\n private afterClosed = new Subject<FngPopoverCloseEvent<T>>();\n afterClosed$ = this.afterClosed.asObservable();\n\n constructor(public overlay: OverlayRef, public content: FngPopoverContent | undefined, public data: T) {\n overlay.backdropClick().subscribe(() => {\n this._close('backdropClick', undefined);\n });\n }\n\n close(data?: T) {\n this._close('close', data);\n }\n\n private _close(type: FngPopoverCloseEvent['type'], data?: T) {\n this.overlay.dispose();\n this.afterClosed.next({\n type,\n data\n });\n this.afterClosed.complete();\n }\n}\n","import { TemplateRef, Type } from '@angular/core';\r\n\r\nexport interface FngPopoverParams<T> {\r\n origin?: HTMLElement;\r\n content?: FngPopoverContent;\r\n options?: FngPopoverOptions;\r\n data: T;\r\n}\r\n\r\nexport type FngPopoverTypes = 'tooltip' | 'menu' | 'legend' | 'content';\r\nexport type FngPopoverPosition = 'top' | 'bottom' | 'right' | 'left';\r\n\r\nexport interface FngPopoverOptions {\r\n type: FngPopoverTypes;\r\n width?: string | number;\r\n height?: string | number;\r\n maxWidth?: string | number;\r\n maxHeight?: string | number;\r\n minWidth?: string | number;\r\n minHeight?: string | number;\r\n hasBackdrop?: boolean;\r\n backdropClass?: string;\r\n panelClass?: string;\r\n positions?: FngPopoverPosition[] | undefined;\r\n scrollStrategy?: FngScrollStrategy;\r\n}\r\n\r\nexport type FngScrollStrategy = 'noop' | 'close' | 'block';\r\n\r\nexport interface FngPopoverCloseEvent<T = any> {\r\n type: 'backdropClick' | 'close';\r\n data: T | undefined;\r\n}\r\n\r\nexport enum FngPopoverContentTypes {\r\n Template = 'template',\r\n Component = 'component',\r\n Text = 'text'\r\n}\r\n\r\nexport type FngPopoverContent = TemplateRef<any> | Type<any> | string;\r\n\r\nexport interface FngPopoverMenu<T = any> {\r\n text: string;\r\n icon: string;\r\n action: string;\r\n data?: T;\r\n}\r\n\r\nexport interface FngPopoverMenuAction<T = any> {\r\n action: string;\r\n payload: T;\r\n}\r\n\r\nexport interface FngPopoverMenuActionAware<T = any> {\r\n onMenuAction(event: FngPopoverMenuAction<T>): void;\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit, TemplateRef, ViewEncapsulation } from '@angular/core';\n\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverContentTypes } from '../popover.models';\n\n@Component({\n standalone: true,\n selector: 'fng-popover',\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.component.scss'],\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPopoverComponent implements OnInit {\n type: FngPopoverContentTypes | null = FngPopoverContentTypes.Text;\n content: any;\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 = FngPopoverContentTypes.Text;\n }\n\n if (this.content instanceof TemplateRef) {\n this.type = FngPopoverContentTypes.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","export const defaultPositions = {\r\n bottom: {\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 22\r\n },\r\n top: {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -22\r\n },\r\n right: {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetX: 22\r\n },\r\n left: {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetX: -22\r\n }\r\n};\r\nexport const defaultClasses = {\r\n tooltip: 'fng-popover-tooltip',\r\n menu: 'fng-popover-menu',\r\n legend: 'fng-popover-legend',\r\n content: 'fng-popover-content',\r\n bottom: 'fng-popover-bottom',\r\n top: 'fng-popover-top',\r\n right: 'fng-popover-right',\r\n left: 'fng-popover-left',\r\n};\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport {\r\n Overlay,\r\n ConnectionPositionPair,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n NoopScrollStrategy,\r\n ConnectedPosition,\r\n CloseScrollStrategy,\r\n BlockScrollStrategy\r\n} from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\n\r\nimport { PopoverRef } from './popover-ref';\r\nimport { FngPopoverComponent } from './popover/popover.component';\r\nimport { defaultPositions, defaultClasses } from './popover.defaults';\r\nimport { FngPopoverParams, FngPopoverOptions, FngPopoverTypes, FngPopoverPosition, FngScrollStrategy } from './popover.models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FngPopoverService {\r\n readonly options: FngPopoverOptions = {\r\n type: 'tooltip',\r\n width: undefined,\r\n height: undefined,\r\n maxWidth: undefined,\r\n maxHeight: undefined,\r\n minWidth: undefined,\r\n minHeight: undefined,\r\n hasBackdrop: false,\r\n backdropClass: 'fng-popover-backdrop',\r\n panelClass: undefined,\r\n positions: undefined\r\n };\r\n\r\n get defaultOptions() {\r\n return this.options;\r\n }\r\n\r\n constructor(private overlay: Overlay, private injector: Injector) {}\r\n\r\n open<T>({ origin, content, data, options }: FngPopoverParams<T>): PopoverRef<T> {\r\n if (null == options) {\r\n options = this.defaultOptions;\r\n }\r\n const overlayConfig = this.getOverlayConfig({ origin, options });\r\n const overlayRef = this.overlay.create(overlayConfig);\r\n const popoverRef = new PopoverRef<T>(overlayRef, content, data);\r\n const injector = this.createInjector(popoverRef, this.injector);\r\n\r\n overlayRef.attach(new ComponentPortal(FngPopoverComponent, null, injector));\r\n\r\n return popoverRef;\r\n }\r\n\r\n private getOverlayConfig({ origin, options }: { origin: HTMLElement | undefined; options: FngPopoverOptions }): OverlayConfig { \r\n const type = null != options.type ? options.type : this.defaultOptions.type;\r\n const positions = null != options.positions ? options.positions : this.defaultOptions.positions;\r\n\r\n return new OverlayConfig({\r\n width: null != options.width ? options.width : this.defaultOptions.width,\r\n height: null != options.height ? options.height : this.defaultOptions.height,\r\n maxWidth: null != options.maxWidth ? options.maxWidth : this.defaultOptions.maxWidth,\r\n maxHeight: null != options.maxHeight ? options.maxHeight : this.defaultOptions.maxHeight,\r\n minWidth: null != options.minWidth ? options.minWidth : this.defaultOptions.minWidth,\r\n minHeight: null != options.minHeight ? options.minHeight : this.defaultOptions.minHeight,\r\n positionStrategy: this.getOverlayPosition(origin!, type, positions),\r\n scrollStrategy: this.overlay.scrollStrategies != null ? this.getScrollStrategy(options?.scrollStrategy) : ({} as NoopScrollStrategy),\r\n hasBackdrop: null != options.hasBackdrop ? options.hasBackdrop : this.defaultOptions.hasBackdrop,\r\n backdropClass: null != options.backdropClass ? options.backdropClass : this.defaultOptions.backdropClass,\r\n panelClass: null != options.panelClass ? options.panelClass : this.defaultOptions.panelClass,\r\n });\r\n }\r\n\r\n private getScrollStrategy(scrollStrategy: FngScrollStrategy | undefined): NoopScrollStrategy | CloseScrollStrategy | BlockScrollStrategy {\r\n let strategy: NoopScrollStrategy | CloseScrollStrategy | BlockScrollStrategy;\r\n switch (scrollStrategy) {\r\n case 'noop':\r\n strategy = this.overlay.scrollStrategies.noop();\r\n break;\r\n case 'close':\r\n strategy = this.overlay.scrollStrategies.close();\r\n break;\r\n case 'block':\r\n strategy = this.overlay.scrollStrategies.block();\r\n break;\r\n default:\r\n strategy = this.overlay.scrollStrategies.block();\r\n break;\r\n }\r\n\r\n return strategy;\r\n }\r\n\r\n private getOverlayPosition(\r\n origin: HTMLElement,\r\n type: FngPopoverTypes,\r\n positions: FngPopoverPosition[] | undefined\r\n ): FlexibleConnectedPositionStrategy {\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(origin)\r\n .withPositions(null != positions ? this.getPositions(type, positions) : (this.getDefaultPositions(type) as ConnectedPosition[]))\r\n .withFlexibleDimensions(false)\r\n .withViewportMargin(16)\r\n .withPush(false);\r\n\r\n return positionStrategy;\r\n }\r\n\r\n private createInjector(popoverRef: PopoverRef, injector: Injector) {\r\n return Injector.create({\r\n parent: injector,\r\n providers: [{ provide: PopoverRef, useValue: popoverRef }]\r\n });\r\n }\r\n\r\n private getDefaultPositions(type: FngPopoverTypes | undefined | null): any {\r\n const pairs: any = [];\r\n let positions = [];\r\n const fn = (t: FngPopoverTypes, p: string[]) =>\r\n p.map(position => {\r\n pairs.push({\r\n ...defaultPositions[position as keyof typeof defaultPositions],\r\n panelClass: [defaultClasses[t], defaultClasses[position as keyof typeof defaultClasses]]\r\n });\r\n });\r\n switch (type) {\r\n case 'tooltip':\r\n positions = ['bottom', 'top'];\r\n fn('tooltip', positions);\r\n break;\r\n case 'menu':\r\n positions = ['right', 'left', 'bottom', 'top'];\r\n fn('menu', positions);\r\n break;\r\n case 'legend':\r\n positions = ['bottom'];\r\n fn('legend', positions);\r\n break;\r\n case 'content':\r\n positions = ['bottom'];\r\n fn('content', positions);\r\n break;\r\n default:\r\n break;\r\n }\r\n return pairs;\r\n }\r\n\r\n private getPositions(type: FngPopoverTypes, positions: FngPopoverPosition[]): ConnectionPositionPair[] {\r\n const pairs: any[] = [];\r\n positions.map(position => {\r\n pairs.push({\r\n ...defaultPositions[position as keyof typeof defaultPositions],\r\n panelClass: [defaultClasses[type], defaultClasses[position as keyof typeof defaultClasses]]\r\n });\r\n });\r\n\r\n return pairs;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverService } from '../popover.service';\n\nexport interface FngPopoverLegendOptions {\n maxWidth?: string | number;\n}\n\nexport interface FngLegendItem {\n name: string;\n text: string;\n}\n\n@Component({\n standalone: true,\n selector: 'fng-legend',\n templateUrl: './legend.component.html',\n styleUrls: ['./legend.component.scss'],\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngLegendComponent {\n @Input() items: FngLegendItem[] = [];\n @Input() options: FngPopoverLegendOptions = {};\n @ViewChild('tpl') templateRef: TemplateRef<any> | undefined;\n private popoverRef: PopoverRef | undefined;\n\n constructor(private popoverService: FngPopoverService) {}\n\n show(origin: HTMLElement) {\n if (0 < this.items.length && this.templateRef) {\n this.popoverRef = this.popoverService.open({\n content: this.templateRef,\n origin,\n options: {\n type: 'legend',\n hasBackdrop: true\n },\n data: undefined\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 { FngPopoverContentComponent } from '../popover-content/popover-content.component';\n\n@Directive({\n standalone: true,\n selector: '[fngLegend]'\n})\nexport class FngLegendDirective implements OnInit {\n @ContentChild('fngContent') ref: FngPopoverContentComponent | undefined;\n private origin: HTMLElement | undefined;\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 && this.origin) {\n this.ref.show(this.origin);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ViewChild,\n TemplateRef,\n Input,\n Output,\n EventEmitter,\n OnDestroy,\n AfterViewInit,\n ElementRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { FngPopoverService } from '../popover.service';\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverCloseEvent, FngPopoverPosition } from '../popover.models';\n\nexport interface FngPopoverContentOptions {\n positions?: FngPopoverPosition[];\n maxWidth?: string | number;\n minHeight?: string | number;\n}\n\nexport interface FngPopoverContentActions {\n close: () => void;\n}\n\n@Component({\n standalone: true,\n selector: 'fng-popover-content',\n templateUrl: './popover-content.component.html',\n styleUrls: ['./popover-content.component.scss'],\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPopoverContentComponent implements AfterViewInit, OnDestroy {\n @Input() options: FngPopoverContentOptions = {};\n @Output() close: EventEmitter<FngPopoverCloseEvent> = new EventEmitter();\n @Output() actions: EventEmitter<FngPopoverContentActions> = new EventEmitter();\n @ViewChild('tpl') templateRef!: TemplateRef<any>;\n @ViewChild('fngContent') contentRef: ElementRef | undefined;\n\n showDefault = false;\n offScreen = true;\n height = 16; // add default padding\n width = 16; // add default padding\n\n private closeSub: Subscription | undefined;\n private popoverRef: PopoverRef | undefined;\n\n constructor(private popoverService: FngPopoverService) {}\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: any) => {\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 : undefined,\n width: this.width,\n height: this.height,\n maxWidth: null != this.options && this.options.maxWidth ? this.options.maxWidth : undefined, \n type: 'content',\n hasBackdrop: true\n },\n data: undefined\n });\n\n this.actions.emit({\n close: () => {\n this.hide();\n }\n });\n\n if (this.closeSub) {\n this.closeSub.unsubscribe();\n }\n\n this.closeSub = this.popoverRef?.afterClosed$.pipe(take(1)).subscribe(event => {\n this.close.emit(event);\n });\n }\n\n hide() {\n this.popoverRef?.close();\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 { FngPopoverContentComponent } from './popover-content.component';\n\n@Directive({\n standalone: true,\n selector: '[fngPopoverContent]'\n})\nexport class FngPopoverContentDirective implements OnInit {\n @ContentChild('fngComponent') component: FngPopoverContentComponent | undefined;\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 { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverMenu, FngPopoverMenuAction, FngPopoverPosition } from '../popover.models';\nimport { FngPopoverService } from '../popover.service';\n\nexport interface FngPopoverMenuOptions {\n positions?: FngPopoverPosition[];\n}\n\n@Component({\n standalone: true,\n selector: 'fng-popover-menu',\n templateUrl: './popover-menu.component.html',\n styleUrls: ['./popover-menu.component.scss'],\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPopoverMenuComponent {\n @Input() icon = 'fwe-icon-menu-more fwe-icon-lg';\n @Input() menu: FngPopoverMenu[] = [];\n @Input() options: FngPopoverMenuOptions = {};\n\n @Output() menuAction: EventEmitter<FngPopoverMenuAction> = new EventEmitter();\n\n @ViewChild('menuTpl') menuTpl: TemplateRef<any> | undefined;\n @ViewChild('origin') origin: ElementRef | undefined;\n\n private popoverRef: PopoverRef | undefined;\n private itemHeight = 36;\n\n constructor(private popoverService: FngPopoverService) {}\n\n show(event: Event, content: TemplateRef<any> | undefined, origin: HTMLElement) {\n if (!content) {\n return;\n }\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: '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 : undefined\n },\n data: undefined\n });\n }\n }\n\n action(action: string, payload: any) {\n this.menuAction.emit({ action, payload });\n\n this.popoverRef?.close();\n }\n\n @HostListener('document:keydown.escape')\n hide() {\n this.popoverRef?.close();\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-mr-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 fwe-mr-0\" [ngClass]=\"item?.icon\"></i>\n <span>{{ item?.text }}</span>\n </button>\n </li>\n </ul>\n </ng-template>\n</ng-container>\n","import { Directive, ElementRef, HostListener, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\n\nimport { FngPopoverPosition } from './../popover.models';\nimport { PopoverRef } from '../popover-ref';\nimport { FngPopoverService } from '../popover.service';\n\nexport interface FngTooltipOptions {\n /**\n * @deprecated\n * Direct number input of maximum width of the tooltip is not supported anymore.\n * Use the `customClass` option instead and style the tooltip with CSS.\n * This option is kept for backward compatibility.\n */\n maxWidth?: string | number;\n delay?: number;\n customClass?: string;\n}\n\n@Directive({\n standalone: true,\n selector: '[fngTooltip]'\n})\nexport class FngTooltipDirective implements OnChanges, OnDestroy {\n @Input('fngTooltip') text = '';\n @Input('fngTooltipVisible') isVisible: boolean = false;\n @Input('fngTooltipPositions') positions: FngPopoverPosition[] = [];\n @Input('fngTooltipOptions') options: FngTooltipOptions = { \n delay: 0,\n customClass: undefined\n };\n private origin: HTMLElement | undefined;\n private popoverRef: PopoverRef | undefined;\n private innerIsVisible = false;\n private timeoutHandle: any = null;\n\n constructor(\n private elmenetRef: ElementRef,\n private popoverService: FngPopoverService\n ) {}\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 && this.options.delay && 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 && this.origin) {\n this.popoverRef = this.popoverService.open({\n content: this.text,\n origin: this.origin,\n options: {\n type: 'tooltip',\n // using a set here removes duplicate positions and ensures that at least the bottom position will be used\n positions: [...new Set([...this.positions, 'bottom'] as FngPopoverPosition[])],\n scrollStrategy: 'close',\n panelClass: this.options.customClass || 'fng-tooltip-panel'\n },\n data: undefined\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, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-progress',\n templateUrl: './progress.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngProgressComponent {\n @Input() progress: number = 0;\n @Input() error: boolean = false;\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","import { Directive, ElementRef, OnChanges, SimpleChanges, Input, AfterViewInit, NgZone, Renderer2, OnDestroy } from '@angular/core';\nimport SimpleBar from 'simplebar';\n\n\nexport interface FngScrollableAware extends AfterViewInit {\n scrollableViewReady: boolean;\n}\n\n@Directive({\n standalone: true,\n selector: '[fngScrollable]'\n})\nexport class FngScrollableDirective implements OnChanges, OnDestroy {\n @Input('fngScrollableScrollbarMinSize') scrollbarMinSize: number = 25;\n @Input('fngScrollableViewReady') viewReady: boolean = false;\n\n private sb: SimpleBar | undefined;\n private isScrolling = false;\n private resizeObserver: ResizeObserver = {} as 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 { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n standalone: true,\n name: 'fngSafeHtml'\n})\nexport class FngSafeHtmlPipe implements PipeTransform {\n constructor(protected sanitizer: DomSanitizer) {}\n\n public transform(value: any): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(value);\n }\n}\n","import { Component, Input, ViewChild, ElementRef, ViewEncapsulation, Output, EventEmitter, HostListener } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { FngSafeHtmlPipe } from '../../pipes/safe-html.pipe';\n\nexport class FngSearchSuggestion {\n /**\n * a html-string. e.g.: '<strong> hello </strong>'\n */\n template: string = '';\n\n /**\n * This Value will be used as new query when the user selects the suggestion.\n */\n value: string = '';\n\n /**\n * Creates a basic Suggestion from a string. The first query match is highlighted by bold tags.\n * @param suggestionString The suggested string (should contain the whole query)\n * @param query The current query. This string will be highlighted.\n * @returns a html-string.\n */\n static basicSuggestion(suggestionString: string, query: string): FngSearchSuggestion {\n const i = suggestionString.toLocaleLowerCase().indexOf(query.toLocaleLowerCase());\n let template = suggestionString;\n if (i != -1) {\n const boldStart = i;\n const boldEnd = i + query.length;\n const part1 = suggestionString.substring(0, boldStart);\n const part2 = suggestionString.substring(boldStart, boldEnd);\n const part3 = suggestionString.substring(boldEnd, suggestionString.length);\n template = part1 + '<strong>' + part2 + '</strong>' + part3;\n }\n return { value: suggestionString, template };\n }\n}\n\n/**\n * A custom form element for search inputs.\n */\n@Component({\n standalone: true,\n imports: [CommonModule, FngSafeHtmlPipe],\n selector: 'fng-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSearchInputComponent {\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: FngSearchSuggestion[]) {\n this.selectedSuggestionIndex = -1;\n this.innerSuggestions = value;\n }\n\n /**\n * The list of suggestions capped by 10 entries\n */\n get cappedSuggestions(): FngSearchSuggestion[] {\n return this.innerSuggestions.slice(0, 10);\n }\n\n innerSuggestions: FngSearchSuggestion[] = [];\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].value;\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].value;\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: FngSearchSuggestion) {\n this.selectedSuggestionIndex = -1;\n this.value = suggestion.value;\n this.fngSearch.emit(this.value);\n this.hideSuggestionList = true;\n this.inputRef.nativeElement.blur();\n }\n\n clearQuery(): 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\" (clickOutside)=\"onClickOutside()\" fngClickOutside>\n <input\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)=\"clearQuery()\"></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 <div [innerHTML]=\"suggestion.template | fngSafeHtml\"></div>\n </div>\n <div class=\"fwe-ml-xxs\" *ngIf=\"innerSuggestions.length > 10\">...</div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Every sidebar instance has its unique instanceID.\n * When a sidebar is opened, this ID is the next currentsInstanceID.\n * Every instance with an other ID will be closed then.\n *\n * usage: <fng-sidebar-overlay [(open)]=\"sidebarOpen\" fngNavbarMargin> ... </fng-details-sidebar>\n */\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-sidebar-overlay',\n templateUrl: './sidebar-overlay.component.html',\n styleUrls: ['./sidebar-overlay.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSidebarOverlayComponent {\n static currentsInstanceID$ = new BehaviorSubject<number>(0);\n\n private instanceID: number;\n\n private internalOpen = false;\n\n @Input() get fngNavbarMargin(): boolean {\n return this.internalNavbarMargin;\n }\n set fngNavbarMargin(value: boolean | '') {\n this.internalNavbarMargin = value === '' || value;\n }\n internalNavbarMargin = false;\n\n @Input() set open(value: boolean | '') {\n this.internalOpen = value === '' || value;\n if (this.internalOpen) {\n FngSidebarOverlayComponent.currentsInstanceID$.next(this.instanceID);\n }\n }\n get open(): boolean {\n return this.internalOpen;\n }\n\n @Output() openChange = new EventEmitter<boolean>();\n\n constructor() {\n this.instanceID = Math.random();\n FngSidebarOverlayComponent.currentsInstanceID$.subscribe(id => {\n // close open instances when an other is opened\n if (this.internalOpen && id !== this.instanceID) {\n this.internalOpen = false;\n this.openChange.emit(this.internalOpen);\n }\n });\n }\n\n closeSidebar() {\n this.internalOpen = false;\n this.openChange.emit(this.internalOpen);\n }\n}\n","<div class=\"fwe-sidebar-overlay\" [class.fwe-sidebar-overlay--open]=\"open\" [class.fwe-navbar-margin]=\"internalNavbarMargin\">\n <button type=\"button\" class=\"fwe-sidebar-overlay-close-btn\" (click)=\"closeSidebar()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n <ng-content></ng-content>\n</div>\n","import { AfterViewInit, Component, EventEmitter, HostBinding, Input, OnDestroy, Output, ViewEncapsulation } from '@angular/core';\nimport { animate, sequence, state, style, transition, trigger } from '@angular/animations';\nimport { FngSnackbarData } from './snackbar.models';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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 FngSnackbarComponent implements AfterViewInit, OnDestroy {\n @Input() data: FngSnackbarData = {} as FngSnackbarData;\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-info': data.type === 'info',\n 'fwe-snackbar-warning': data.type === 'warning',\n 'fwe-snackbar-error': data.type === 'error',\n 'fwe-snackbar-shadow': data.darkBackground\n }\"\n>\n <span>{{ data.text }}</span>\n <button *ngIf=\"data?.action\" aria-label=\"UserAction\" type=\"button\" class=\"fwe-snackbar-link-btn\" (click)=\"onAction()\">\n {{ data.action }}\n </button>\n\n <div *ngIf=\"data?.action && data?.showClose\" class=\"fwe-snackbar-separator\"></div>\n\n <button *ngIf=\"data?.showClose\" aria-label=\"Close\" type=\"button\" class=\"fwe-snackbar-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { FngSnackbarData } from './snackbar.models';\n\nexport type FngSnackDescription = {\n data: FngSnackbarData;\n actionCallback?: () => void;\n closeCallback?: () => void;\n resolve: (value: unknown) => void;\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FngSnackbarService {\n snacks$: Observable<FngSnackDescription>;\n\n private snacks = new Subject<FngSnackDescription>();\n\n constructor() {\n this.snacks$ = this.snacks.asObservable();\n }\n\n snack(data: FngSnackbarData, actionCallback?: () => void, closeCallback?: () => void) {\n return new Promise(resolve => {\n this.snacks.next({ data, actionCallback, closeCallback, resolve });\n });\n }\n}\n","import {\n ComponentRef,\n Directive,\n Input,\n OnDestroy,\n ViewContainerRef\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FngSnackbarComponent } from './snackbar.component';\nimport { FngSnackbarConfig } from './snackbar.models';\nimport { FngSnackbarService, FngSnackDescription } from './snackbar.service';\n\ninterface FngSnackbarRef {\n componentRef: ComponentRef<FngSnackbarComponent>;\n complete: Subject<boolean>;\n}\n\n@Directive({\n standalone: true,\n selector: '[fngSnackbarContainer]'\n})\nexport class FngSnackbarContainerDirective implements OnDestroy {\n @Input() fngSnackbarContainer: FngSnackbarConfig = {} as FngSnackbarConfig;\n\n private snacks: FngSnackbarRef[] = [];\n\n private snacksSub: Subscription;\n\n constructor(private viewContainerRef: ViewContainerRef, private snackbarService: FngSnackbarService) {\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: FngSnackDescription) {\n const complete = new Subject<boolean>();\n const componentRef = this.viewContainerRef.createComponent(FngSnackbarComponent);\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: FngSnackbarRef) {\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 { FngSnackbarConfig } from './snackbar.models';\nimport { FngSnackbarContainerDirective } from './snackbar-container.directive';\n\n@Component({\n standalone: true,\n imports: [FngSnackbarContainerDirective],\n selector: 'fng-snackbar-container',\n templateUrl: './snackbar-container.component.html',\n styleUrls: ['./snackbar-container.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSnackbarContainerComponent {\n @Input() config: FngSnackbarConfig = {\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 { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-step-horizontal',\n templateUrl: './step-horizontal.component.html',\n styleUrls: ['./step-horizontal.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngStepHorizontalComponent {\n @Input() isActive = false;\n\n @Input() title: string = '';\n}\n","<div class=\"fng-overflow-hidden\" [class.fng-hidden]=\"!isActive\">\n <div class=\"fng-moving-container\">\n <ng-content></ng-content>\n </div>\n</div>\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { delay } from 'rxjs/operators';\nimport { FngStepHorizontalComponent } from './step-horizontal/step-horizontal.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-stepper-horizontal',\n templateUrl: './stepper-horizontal.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngStepperHorizontalComponent implements AfterContentInit, OnChanges {\n @ContentChildren(FngStepHorizontalComponent) stepComponents!: QueryList<FngStepHorizontalComponent>;\n\n @Input() stepIndex: number = 0;\n @Output() stepIndexChange = new EventEmitter<number>();\n\n ngOnChanges() {\n this.updateStepComponents();\n }\n\n updateStepComponents(): void {\n if (this.stepIndex > -1 && this.stepComponents?.length > this.stepIndex) {\n this.stepComponents.forEach((s, i) => {\n s.isActive = i == this.stepIndex;\n });\n }\n }\n\n ngAfterContentInit(): void {\n if (!this.stepComponents) {\n return;\n }\n this.stepComponents.changes.pipe(delay(0)).subscribe(() => {\n this.updateStepComponents();\n });\n this.updateStepComponents();\n }\n\n onStepClick(index: number) {\n if (this.stepIndex > index) {\n this.stepIndex = index;\n this.updateStepComponents();\n this.stepIndexChange?.emit(index);\n }\n }\n}\n","<div class=\"fwe-stepper-horizontal\">\n <div\n *ngFor=\"let step of stepComponents; index as i\"\n class=\"fwe-step-container\"\n (click)=\"onStepClick(i)\"\n [class.fwe-step-done]=\"stepIndex > i\"\n [class.fwe-step-active]=\"i === stepIndex\"\n >\n <div class=\"fwe-step\">\n <div class=\"fwe-step-no\">{{ i + 1 }}</div>\n <div class=\"fwe-step-name\">{{ step.title }}</div>\n </div>\n </div>\n</div>\n\n<ng-content></ng-content>\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'fng-step-vertical',\n templateUrl: './step-vertical.component.html',\n styleUrls: ['./step-vertical.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngStepVerticalComponent implements AfterViewInit {\n @ViewChild('stepContent') stepContent?: ElementRef;\n @ViewChild('stepContentContainer') stepContentContainer?: ElementRef;\n\n @Input() index: number = 0;\n\n @Input() title: string = '';\n\n @Input() isDone: boolean = false;\n\n @Input() isLastElement: boolean = false;\n\n // Note: OnChanges does not work because the input are not updated via bindings\n @Input() set isActive(value: boolean) {\n this._isActive = value;\n this.updateHeight();\n }\n get isActive(): boolean {\n return this._isActive;\n }\n _isActive = false;\n\n public onStepClickCallback: (i: number) => void = () => null;\n\n updateHeight() {\n if (this.stepContent && this.stepContentContainer) {\n if (this.isActive) {\n const itemHeight = this.stepContent.nativeElement.offsetHeight;\n this.stepContentContainer.nativeElement.style.height = itemHeight + 'px';\n } else {\n this.stepContentContainer.nativeElement.style.height = '20px';\n }\n }\n }\n\n ngAfterViewInit() {\n this.updateHeight();\n }\n}\n","<div\n class=\"fwe-step-container\"\n [class.fwe-last-element]=\"isLastElement\"\n [class.fwe-step-active]=\"isActive\"\n [class.fwe-step-done]=\"isDone\"\n>\n <div class=\"fwe-step\" (click)=\"onStepClickCallback(index)\">\n <div class=\"fwe-step-no\">{{ index + 1 }}</div>\n <div class=\"fwe-step-name\">{{ title }}</div>\n </div>\n <div #stepContentContainer class=\"fwe-step-content-container\">\n <div #stepContent class=\"fwe-step-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { delay } from 'rxjs/operators';\nimport { FngStepVerticalComponent } from './step-vertical/step-vertical.component';\n\n@Component({\n standalone: true,\n selector: 'fng-stepper-vertical',\n templateUrl: './stepper-vertical.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngStepperVerticalComponent implements AfterContentInit, OnChanges {\n @ContentChildren(FngStepVerticalComponent) stepComponents!: QueryList<FngStepVerticalComponent>;\n\n @Input() stepIndex: number = 0;\n @Output() stepIndexChange = new EventEmitter<number>();\n\n ngOnChanges() {\n this.updateStepComponents();\n }\n\n updateStepComponents(): void {\n if (this.stepIndex > -1 && this.stepComponents?.length > this.stepIndex) {\n this.stepComponents.forEach((s, i) => {\n s.index = i;\n s.isDone = i < this.stepIndex;\n s.isActive = i == this.stepIndex;\n s.isLastElement = i == this.stepComponents.length - 1;\n s.onStepClickCallback = i => this.onStepClick(i);\n });\n }\n }\n\n ngAfterContentInit(): void {\n if (!this.stepComponents) {\n return;\n }\n this.stepComponents.changes.pipe(delay(0)).subscribe(() => {\n this.updateStepComponents();\n });\n this.updateStepComponents();\n }\n\n onStepClick(index: number) {\n if (this.stepIndex > index) {\n this.stepIndex = index;\n this.updateStepComponents();\n this.stepIndexChange?.emit(index);\n }\n }\n}\n","<div class=\"fwe-stepper-vertical\">\n <ng-content></ng-content>\n</div>\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface FngTableColumnOrder {\n orderBy?: string;\n ascending: boolean;\n}\n\n@Directive({\n standalone: true,\n selector: '[fngTh]',\n host: {\n '[class.fwe-table-order]': 'order != null',\n '[class.fwe-active]': 'active',\n '[class.fwe-table-order-ascending]': 'active && orderDescending === false',\n '[class.fwe-table-order-descending]': 'active && orderDescending === true',\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 FngTableHeaderCellDirective {\n @Input() order: FngTableColumnOrder | undefined;\n @Input() fngTh: string | undefined;\n\n @Output() changeOrder = new EventEmitter<string>();\n\n /* Attributes */\n @Input() abbr: string | undefined;\n @Input() colspan: number | undefined;\n @Input() headers: string | undefined;\n @Input() rowspan: number | undefined;\n @Input() scope: string | undefined;\n\n get active(): boolean {\n if (!this.order) {\n return false;\n }\n\n if (!this.order.orderBy || !this.fngTh) {\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, OnChanges, ViewEncapsulation } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'fng-tab-pane',\r\n templateUrl: './tab-pane.component.html',\r\n styleUrls: ['./tab-pane.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FngTabPaneComponent implements OnChanges {\r\n static nextId = 0;\r\n // @deprecated Input() id is not in use anymore but still exists for backwards compatiblity\r\n @Input() id: string | undefined;\r\n @Input() name: string | undefined;\r\n @Input() icon: string | undefined;\r\n @Input() active: boolean | undefined;\r\n @Input() isVisible: boolean | undefined;\r\n @Input() disabled: boolean = false;\r\n\r\n tabId: string | undefined;\r\n tabPaneId = `tab-panel-content-${++FngTabPaneComponent.nextId}`;\r\n\r\n private changesSubject = new Subject<boolean>();\r\n changes$ = this.changesSubject.asObservable();\r\n\r\n ngOnChanges(): void {\r\n this.changesSubject.next(true);\r\n }\r\n}\r\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 { CommonModule, DOCUMENT } from '@angular/common';\r\nimport {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n QueryList,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { noop, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { FngTabPaneComponent } from './tab-pane/tab-pane.component';\r\n\r\nexport interface FngTab {\r\n name: string;\r\n paneId: string | null;\r\n active?: boolean;\r\n icon?: string | null;\r\n disabled?: boolean;\r\n}\r\n\r\n// fill: use the remaining space and add in same proportion to every tab item\r\n// equal: make all tab items same width (as the one with largest content)\r\nexport type FngTabItemAppearance = 'fill' | 'equal' | 'default';\r\n\r\n// legacy: recommended for desktop only applications\r\n// responsive: desktop, tablet, mobile with scrollable tabs\r\nexport type FngTabViewType = 'legacy' | 'responsive';\r\n\r\n// configuration options for legacy tab view type\r\nexport interface FngTabsConfiguration {\r\n tabBar?: {\r\n fullWidth?: boolean;\r\n };\r\n tabItems?: {\r\n appearance: FngTabItemAppearance;\r\n };\r\n}\r\n\r\n// provides details about the left and right edges of the tab element and the tab content element\r\n// these values are used to determine the visual position of the tab with respect of its parent container\r\nexport interface FngTabDimensions {\r\n rootLeft: number;\r\n rootRight: number;\r\n contentLeft: number;\r\n contentRight: number;\r\n}\r\n\r\nexport interface FngTabScrollAnimation {\r\n finalScrollPosition: number;\r\n scrollDelta: number;\r\n}\r\n\r\nexport interface FngTabScrollHorizontalEdges {\r\n left: number;\r\n right: number;\r\n}\r\n\r\nexport interface FngBeforeTabChangeEvent {\r\n ok: () => void;\r\n cancel: () => void;\r\n}\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [CommonModule],\r\n selector: 'fng-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FngTabsComponent implements AfterContentInit, AfterViewInit, OnDestroy {\r\n static nextId = 0;\r\n @Input('fngTabsViewType') viewType: FngTabViewType = 'responsive';\r\n @Input('fngTabsUseBottomDivider') showDivider: boolean = false;\r\n\r\n @Input() config: FngTabsConfiguration | null = null;\r\n @Output() fngBeforeTabChange = new EventEmitter<FngBeforeTabChangeEvent>();\r\n @Output() fngTabChange = new EventEmitter<{ previous: string; current: string }>();\r\n\r\n @ContentChildren(FngTabPaneComponent) panes: QueryList<FngTabPaneComponent> | undefined;\r\n @ViewChild('scroller') scroller: ElementRef | undefined;\r\n @ViewChild('scrollAera') scrollAera: ElementRef | undefined;\r\n @ViewChild('scrollContent') scrollContent: ElementRef | undefined;\r\n\r\n componentId = `tabs-${++FngTabsComponent.nextId}`;\r\n tabs: FngTab[] = [];\r\n useCompactDensity: boolean = true;\r\n private activeTab: FngTab | undefined = undefined;\r\n private elemScroller: HTMLElement | undefined;\r\n private elemScrollArea: HTMLElement | undefined;\r\n private elemScrollContent: HTMLElement | undefined;\r\n private readonly injectedWindow: Window | null;\r\n private resizeObserver!: ResizeObserver;\r\n private complete: Subject<boolean> = new Subject();\r\n\r\n constructor(\r\n private elRef: ElementRef,\r\n @Inject(DOCUMENT) private document: Document,\r\n private renderer: Renderer2,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.injectedWindow = this.document.defaultView;\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.initTabs();\r\n if (null == this.activeTab) {\r\n this.panes?.map((pane, i) => {\r\n if (0 === i) {\r\n pane.isVisible = true;\r\n }\r\n });\r\n } else {\r\n const pane = this.panes?.find(pane => {\r\n if (this.activeTab) {\r\n return this.activeTab.paneId != null && pane.tabPaneId === this.activeTab.paneId;\r\n } else {\r\n return false;\r\n }\r\n });\r\n if (pane) {\r\n pane.isVisible = true;\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.elemScroller = this.scroller?.nativeElement;\r\n this.elemScrollArea = this.scrollAera?.nativeElement;\r\n this.elemScrollContent = this.scrollContent?.nativeElement;\r\n if (this.elemScroller == null || this.elemScrollArea == null || this.elemScrollContent == null) {\r\n return;\r\n }\r\n const initialWidth = this.elemScrollArea.offsetWidth;\r\n if (initialWidth != null && initialWidth > 768) {\r\n this.useCompactDensity = false;\r\n this.cd.detectChanges();\r\n }\r\n\r\n this.resizeObserver = new ResizeObserver(() => {\r\n if (this.elemScrollArea == null) {\r\n return;\r\n }\r\n const width = this.elemScrollArea.offsetWidth;\r\n if (width != null && width > 768 && this.useCompactDensity === true) {\r\n this.useCompactDensity = false;\r\n this.cd.detectChanges();\r\n } else if (width != null && width <= 768 && this.useCompactDensity === false) {\r\n this.useCompactDensity = true;\r\n this.cd.detectChanges();\r\n }\r\n });\r\n\r\n if (this.elemScrollArea != null) {\r\n this.resizeObserver.observe(this.elemScrollArea);\r\n }\r\n\r\n this.handleTabPaneChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.complete.next(true);\r\n this.complete.unsubscribe();\r\n }\r\n\r\n showTabPane(id: string | null) {\r\n if (id == null) {\r\n return;\r\n }\r\n\r\n const pane = this.panes?.find(p => p.tabPaneId === id);\r\n const handleTabChange = (id: string) => {\r\n if (pane != null && pane.disabled !== true) {\r\n this.panes?.map(p => {\r\n p.isVisible = false;\r\n });\r\n pane.isVisible = true;\r\n\r\n this.tabs.map(tab => {\r\n if (tab.paneId !== pane.tabPaneId) {\r\n tab.active = false;\r\n } else {\r\n tab.active = true;\r\n }\r\n });\r\n this.fngTabChange.emit({\r\n previous: this.activeTab?.paneId || '',\r\n current: id\r\n });\r\n this.activeTab = this.tabs.find(tab => !!tab.active);\r\n this.cd.detectChanges();\r\n }\r\n };\r\n\r\n if (this.fngBeforeTabChange?.observers?.length > 0 && pane?.disabled !== true) {\r\n this.fngBeforeTabChange.emit({\r\n ok: () => {\r\n handleTabChange(id);\r\n },\r\n cancel: () => {\r\n noop();\r\n }\r\n });\r\n } else {\r\n handleTabChange(id);\r\n }\r\n }\r\n\r\n handleTabScroll(event: any, index: number) {\r\n if (this.elemScrollContent == null || this.elemScrollArea == null) {\r\n return;\r\n }\r\n const scrollContentWidth = this.elemScrollContent.offsetWidth;\r\n const scrollAreaWidth = this.elemScrollArea.offsetWidth;\r\n\r\n // check if no scroll is needed\r\n if (scrollAreaWidth > scrollContentWidth) {\r\n return;\r\n }\r\n\r\n // check index\r\n if (!this.indexIsInRange(index)) {\r\n return;\r\n }\r\n\r\n // always scroll to 0 if scrolling to the first tab\r\n if (index === 0) {\r\n this.scrollTo(0);\r\n return;\r\n }\r\n\r\n // always scroll to the max value if scrolling to the last tab\r\n if (index === this.tabs.length - 1) {\r\n this.scrollTo(this.elemScrollContent.offsetWidth);\r\n return;\r\n }\r\n\r\n const currentTab: HTMLElement = event.target;\r\n this.scrollIntoView(index, currentTab);\r\n }\r\n\r\n private initTabs() {\r\n this.tabs = [];\r\n this.panes?.map((pane, i) => {\r\n pane.tabId = this.componentId + '-tab-' + i;\r\n const tab: FngTab = {\r\n name: null != pane.name ? pane.name : '',\r\n paneId: null != pane.tabPaneId ? pane.tabPaneId : null,\r\n icon: null != pane.icon ? pane.icon : null,\r\n active: null != pane.active ? pane.active : false,\r\n disabled: null != pane.disabled ? pane.disabled : false\r\n };\r\n this.tabs.push(tab);\r\n });\r\n\r\n this.initActiveTab();\r\n this.cd.detectChanges();\r\n }\r\n\r\n private initActiveTab() {\r\n const activeTab: FngTab | undefined = this.tabs.find((tab: FngTab) => !!tab.active);\r\n if (!activeTab && 0 < this.tabs.length) {\r\n this.tabs[0] = { ...this.tabs[0], active: true };\r\n this.activeTab = this.tabs[0];\r\n } else {\r\n this.activeTab = activeTab;\r\n }\r\n }\r\n\r\n private handleTabPaneChanges() {\r\n // first subscribe to any changes in tab pane, so that the tabs in this view wiil be updated\r\n this.panes?.forEach(pane => {\r\n pane.changes$.pipe(takeUntil(this.complete)).subscribe(() => {\r\n // on changes in a tab pane, we init the tabs again\r\n this.initTabs();\r\n });\r\n });\r\n }\r\n\r\n private scrollTo(scrollX: number | undefined) {\r\n if (scrollX == null) {\r\n return;\r\n }\r\n const currentScrollX = this.getScrollPosition();\r\n const safeScrollX = this.clampScrollValue(scrollX);\r\n if (safeScrollX == null || currentScrollX == null) {\r\n return;\r\n }\r\n const scrollDelta = safeScrollX - currentScrollX;\r\n this.animate({\r\n finalScrollPosition: safeScrollX,\r\n scrollDelta\r\n });\r\n }\r\n\r\n private scrollIntoView(index: number, tab: HTMLElement) {\r\n if (this.elemScrollArea == null) {\r\n return;\r\n }\r\n\r\n const scrollPosition = this.getScrollPosition();\r\n const barWidth = this.elemScrollArea.offsetWidth;\r\n if (barWidth == null || scrollPosition == null) {\r\n return;\r\n }\r\n\r\n const tabDimensions = this.computeDimensions(tab);\r\n if (tabDimensions == null) {\r\n return;\r\n }\r\n\r\n const nextIndex = this.findAdjacentTabIndexClosestToEdge(index, tabDimensions, scrollPosition, barWidth);\r\n if (!this.indexIsInRange(nextIndex)) {\r\n return;\r\n }\r\n\r\n const scrollIncrement = this.calculateScrollIncrement(index, nextIndex, scrollPosition, barWidth);\r\n if (scrollIncrement == null) {\r\n return;\r\n }\r\n\r\n this.incrementScroll(scrollIncrement);\r\n }\r\n\r\n private incrementScroll(scrollXIncrement: number) {\r\n // no scroll needed\r\n if (scrollXIncrement === 0) {\r\n return;\r\n }\r\n const scrollOperation = this.getIncrementScrollOperation(scrollXIncrement);\r\n if (scrollOperation == null) {\r\n return;\r\n }\r\n this.animate(scrollOperation);\r\n }\r\n\r\n private animate(animation: FngTabScrollAnimation) {\r\n // no animation needed\r\n if (animation.scrollDelta === 0) {\r\n return;\r\n }\r\n\r\n // no animation possible\r\n if (this.elemScrollArea == null) {\r\n return;\r\n }\r\n\r\n this.stopScrollAnimation();\r\n\r\n // this animation uses the flip approach\r\n // https://aerotwist.com/blog/flip-your-animations/\r\n // https://css-tricks.com/animating-layouts-with-the-flip-technique/\r\n this.elemScrollArea.scrollLeft = animation.finalScrollPosition;\r\n this.setScrollContentStyleProperty('transform', `translateX(${animation.scrollDelta}px)`);\r\n // force repaint\r\n this.elemScrollArea.getBoundingClientRect();\r\n\r\n requestAnimationFrame(() => {\r\n this.renderer.addClass(this.elemScroller, 'fng-tab-scroller--animating');\r\n this.setScrollContentStyleProperty('transform', 'none');\r\n });\r\n }\r\n\r\n private stopScrollAnimation() {\r\n if (this.elemScrollArea == null) {\r\n return;\r\n }\r\n const currentScrollPosition = this.getAnimatingScrollPosition();\r\n if (currentScrollPosition == null) {\r\n return;\r\n }\r\n\r\n this.renderer.removeClass(this.elemScroller, 'fng-tab-scroller--animating');\r\n this.setScrollContentStyleProperty('transform', 'translateX(0px)');\r\n this.elemScrollArea.scrollLeft = currentScrollPosition;\r\n }\r\n\r\n private getAnimatingScrollPosition(): number | null {\r\n if (this.elemScrollArea == null) {\r\n return null;\r\n }\r\n const currentTranslateX = this.calculateCurrentTranslateX();\r\n const scrollLeft = this.elemScrollArea.scrollLeft;\r\n return scrollLeft - currentTranslateX;\r\n }\r\n\r\n private getIncrementScrollOperation(scrollX: number): FngTabScrollAnimation | null {\r\n const currentScrollX = this.getScrollPosition();\r\n if (currentScrollX == null) {\r\n return null;\r\n }\r\n\r\n const targetScrollX = scrollX + currentScrollX;\r\n const safeScrollX = this.clampScrollValue(targetScrollX);\r\n if (safeScrollX == null) {\r\n return null;\r\n }\r\n const scrollDelta = safeScrollX - currentScrollX;\r\n return {\r\n finalScrollPosition: safeScrollX,\r\n scrollDelta\r\n };\r\n }\r\n\r\n private clampScrollValue(scrollX: number): number | null {\r\n const edges = this.calculateScrollEdges();\r\n if (edges == null) {\r\n return null;\r\n }\r\n return Math.min(Math.max(edges.left, scrollX), edges.right);\r\n }\r\n\r\n private calculateScrollEdges(): FngTabScrollHorizontalEdges | null {\r\n if (this.elemScrollArea == null || this.elemScrollContent == null) {\r\n return null;\r\n }\r\n const scrollContentWidth = this.elemScrollContent.offsetWidth;\r\n const scrollAreaWidth = this.elemScrollArea.offsetWidth;\r\n return {\r\n left: 0,\r\n right: scrollContentWidth - scrollAreaWidth\r\n };\r\n }\r\n\r\n private computeDimensions(tab: HTMLElement): FngTabDimensions | null {\r\n const rootWidth = tab.offsetWidth;\r\n const rootLeft = tab.offsetLeft;\r\n\r\n const tabContent: HTMLElement | null = tab.querySelector<HTMLElement>('.fng-tab-content');\r\n if (tabContent == null) {\r\n return null;\r\n }\r\n\r\n const contentWidth = tabContent.offsetWidth;\r\n const contentLeft = tabContent.offsetLeft;\r\n\r\n return {\r\n contentLeft: rootLeft + contentLeft,\r\n contentRight: rootLeft + contentLeft + contentWidth,\r\n rootLeft,\r\n rootRight: rootLeft + rootWidth\r\n };\r\n }\r\n\r\n private calculateScrollIncrement(index: number, nextIndex: number, scrollPosition: number, barWidth: number): number | null {\r\n const nextTab: HTMLElement | null = (this.elRef.nativeElement as HTMLElement).querySelector<HTMLElement>(\r\n `#${this.componentId}-tab-${nextIndex}`\r\n );\r\n\r\n if (nextTab == null) {\r\n return null;\r\n }\r\n\r\n const nextTabDimensions = this.computeDimensions(nextTab);\r\n\r\n if (nextTabDimensions == null) {\r\n return null;\r\n }\r\n\r\n const relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\r\n const relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\r\n const leftIncrement = relativeContentRight - 48;\r\n const rightIncrement = relativeContentLeft + 48;\r\n\r\n if (nextIndex < index) {\r\n return Math.min(leftIncrement, 0);\r\n }\r\n\r\n return Math.max(rightIncrement, 0);\r\n }\r\n\r\n private indexIsInRange(index: number) {\r\n return index >= 0 && index < this.tabs.length;\r\n }\r\n\r\n private getScrollPosition(): number | null {\r\n if (this.elemScrollArea == null) {\r\n return null;\r\n }\r\n const currentTranslateX = this.calculateCurrentTranslateX();\r\n const scrollLeft = this.elemScrollArea.scrollLeft;\r\n\r\n return scrollLeft - currentTranslateX;\r\n }\r\n\r\n private calculateCurrentTranslateX(): number {\r\n const transformValue = this.getScrollContentStyleValue('transform');\r\n if (transformValue == null) {\r\n return 0;\r\n }\r\n\r\n if (transformValue === 'none') {\r\n return 0;\r\n }\r\n\r\n // the transform value is in form of 'matrix(a, b, c, d, tx, ty)'\r\n // get all the parenthesized values\r\n const match = /\\((.+?)\\)/.exec(transformValue);\r\n if (!match) {\r\n return 0;\r\n }\r\n\r\n const matrixParams = match[1];\r\n // we need value of tx -> translateX\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const [a, b, c, d, tx, ty] = matrixParams.split(',');\r\n return parseFloat(tx);\r\n }\r\n\r\n private getScrollContentStyleValue(propName: string) {\r\n if (this.elemScrollContent == null) {\r\n return;\r\n }\r\n return this.injectedWindow?.getComputedStyle(this.elemScrollContent).getPropertyValue(propName);\r\n }\r\n\r\n private setScrollContentStyleProperty(propName: string, value: any) {\r\n this.renderer.setStyle(this.elemScrollContent, propName, value);\r\n }\r\n\r\n private findAdjacentTabIndexClosestToEdge(\r\n index: number,\r\n tabDimensions: FngTabDimensions,\r\n scrollPosition: number,\r\n barWidth: number\r\n ): number {\r\n /**\r\n * tabs are laid out in the tab scroller like this:\r\n *\r\n * scroll position\r\n * +---+\r\n * | | bar width\r\n * | +-----------------------------------+\r\n * | | |\r\n * | v v\r\n * | +-----------------------------------+\r\n * v | tab scroller |\r\n * +------------+--------------+-------------------+\r\n * | tab | tab | tab |\r\n * +------------+--------------+-------------------+\r\n * | |\r\n * +-----------------------------------+\r\n *\r\n * to determine the next adjacent index, we look at the tab root left and\r\n * tab root right, both relative to the scroll position. if the tab root\r\n * left is less than 0, then we know it's out of view to the left. if the\r\n * tab root right minus the bar width is greater than 0, we know the tab is\r\n * out of view to the right. from there, we either increment or decrement\r\n * the index.\r\n */\r\n const relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\r\n const relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\r\n const relativeRootDelta = relativeRootLeft + relativeRootRight;\r\n const leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\r\n const rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\r\n\r\n if (leftEdgeIsCloser) {\r\n return index - 1;\r\n }\r\n\r\n if (rightEdgeIsCloser) {\r\n return index + 1;\r\n }\r\n\r\n return -1;\r\n }\r\n}\r\n","<ng-container *ngIf=\"viewType === 'legacy'\">\r\n <div class=\"fwe-legacy-tabs\">\r\n <ul\r\n role=\"tablist\"\r\n class=\"fwe-legacy-tab-bar\"\r\n [class.fwe-legacy-tab-bar-full-width]=\"config?.tabBar?.fullWidth\"\r\n [class.fwe-legacy-tab-items-equal-width]=\"'equal' === config?.tabItems?.appearance\"\r\n [class.fwe-legacy-tab-items-fill]=\"'fill' === config?.tabItems?.appearance\"\r\n >\r\n <li\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n class=\"fwe-legacy-tab-item\"\r\n [ngClass]=\"{ 'fwe-active': tab?.active, 'fwe-disabled': tab?.disabled }\"\r\n >\r\n <ng-container *ngIf=\"null == tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n >{{ tab.name }}</a\r\n >\r\n </ng-container>\r\n <ng-container *ngIf=\"null != tab?.icon\">\r\n <a\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [attr.aria-disabled]=\"true === tab?.disabled ? true : false\"\r\n role=\"tab\"\r\n class=\"fwe-legacy-tab-link\"\r\n (click)=\"showTabPane(tab.paneId)\"\r\n [class.fwe-can-swap-icon]=\"2 === tabs.length && 1 === i\"\r\n >\r\n <i [class]=\"'fwe-icon ' + tab.icon\"></i>\r\n <span>{{ tab.name }}</span>\r\n </a>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"fwe-legacy-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"viewType !== 'legacy'\">\r\n <div class=\"fng-tab-bar\" role=\"tablist\">\r\n <div class=\"fng-tab-scroller\" #scroller>\r\n <div\r\n class=\"fng-tab-scroller-scroll-area fng-tab-scroller-scroll-area--scroll\"\r\n [class.fng-tab-scroller-scroll-area--compact]=\"useCompactDensity\"\r\n #scrollAera\r\n >\r\n <div class=\"fng-tab-scroller-scroll-content\" [class.fng-tab-scroller-scroll-content--with-divider]=\"showDivider\" #scrollContent>\r\n <button\r\n *ngFor=\"let tab of tabs; let i = index\"\r\n role=\"tab\"\r\n class=\"fng-tab\"\r\n [id]=\"componentId + '-tab-' + i\"\r\n [attr.aria-controls]=\"tab.paneId\"\r\n [attr.aria-selected]=\"true === tab?.active ? true : false\"\r\n [tabindex]=\"i === 0 ? 0 : -1\"\r\n [class.fng-tab--active]=\"tab?.active\"\r\n [class.fng-tab--disabled]=\"tab?.disabled\"\r\n (click)=\"handleTabScroll($event, i); showTabPane(tab.paneId)\"\r\n >\r\n <span class=\"fng-tab-content\">\r\n <span class=\"fng-tab-text-label\">{{ tab.name }}</span>\r\n </span>\r\n <span class=\"fng-tab-indicator\" [class.fng-tab-indicator--active]=\"tab?.active\">\r\n <span class=\"fng-tab-indicator-content fng-tab-indicator-content--underline\"></span>\r\n </span>\r\n </button>\r\n <div class=\"fng-tab-scroller-divider-line\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"fng-tab-panel-content\">\r\n <ng-container *ngTemplateOutlet=\"tabPanelContent\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #tabPanelContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n inject,\n TemplateRef,\n ViewContainerRef,\n Injector,\n Type,\n HostBinding,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { Overlay, OverlayRef, ConnectedPosition } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Subscription } from 'rxjs';\n\n// public type for position names\nexport type ConnectedPositionName =\n | 'topStart'\n | 'topCenter'\n | 'topEnd'\n | 'bottomStart'\n | 'bottomCenter'\n | 'bottomEnd'\n | 'startTop'\n | 'startCenter'\n | 'startBottom'\n | 'endTop'\n | 'endCenter'\n | 'endBottom';\n\n// build the 12 standard connected positions (rtl-friendly via start/end)\nexport const POSITION_MAP: Record<ConnectedPositionName, ConnectedPosition> = {\n // above the origin\n topStart: { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n topCenter: { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },\n topEnd: { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },\n\n // below the origin\n bottomStart: { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n bottomCenter: { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\n bottomEnd: { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n\n // to the start (left in ltr, right in rtl)\n startTop: { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n startCenter: { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },\n startBottom: { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' },\n\n // to the end (right in ltr, left in rtl)\n endTop: { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n endCenter: { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },\n endBottom: { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' }\n};\n\n// a convenient fallback order that tries below → above → right → left\nexport const ALL_POSITIONS: ConnectedPosition[] = [\n POSITION_MAP.bottomCenter,\n POSITION_MAP.bottomStart,\n POSITION_MAP.bottomEnd,\n POSITION_MAP.topCenter,\n POSITION_MAP.topStart,\n POSITION_MAP.topEnd,\n POSITION_MAP.endCenter,\n POSITION_MAP.endTop,\n POSITION_MAP.endBottom,\n POSITION_MAP.startCenter,\n POSITION_MAP.startTop,\n POSITION_MAP.startBottom\n];\n\n@Directive({\n selector: '[fngOverlayOutlet]',\n standalone: true\n})\nexport class FngOverlayOutletDirective implements OnDestroy {\n private readonly overlay = inject(Overlay);\n private readonly vcr = inject(ViewContainerRef);\n private readonly injector = inject(Injector);\n private overlayRef?: OverlayRef;\n private portalInstance?: TemplatePortal | ComponentPortal<unknown>;\n private positionSubscription?: Subscription;\n\n /**\n * content for the overlay. supply either a templateref (preferred for arbitrary html)\n * or a component type (will be created via componentportal).\n *\n * example (templateref): [fngOverlayOutlet]=\"tplref\"\n * example (component): [fngOverlayOutlet]=\"youroverlaycomponent\"\n */\n @Input('fngOverlayOutlet') content!: TemplateRef<any> | Type<any>;\n\n /** optional context when using templateref content. */\n @Input() fngOverlayContext: Record<string, any> | null = null;\n\n /** css class(es) to apply to the overlay panel. */\n @Input() fngOverlayPanelClass: string | string[] | undefined;\n\n /** whether the overlay should have a backdrop. defaults to true. */\n @Input() fngOverlayHasBackdrop = true;\n\n /** backdrop class; defaults to a transparent clickable backdrop. */\n @Input() fngOverlayBackdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n /** close the overlay when the backdrop is clicked (if there is one). */\n @Input() fngOverlayCloseOnBackdropClick = true;\n\n /** close the overlay when pressing escape. */\n @Input() fngOverlayCloseOnEscape = true;\n\n /** optional x/y offsets applied to every position. */\n @Input() fngOverlayOffsetX: number = 0;\n @Input() fngOverlayOffsetY: number = 0;\n\n /**\n * choose positions by name, or omit to use all_positions fallback order.\n * example: [fngOverlayPositions]=\"['topEnd','topStart']\"\n */\n @Input() fngOverlayPositions?: ConnectedPositionName[];\n\n /**\n * if you want a different origin element than the host (rare), pass an htmlelement here.\n */\n @Input() fngOverlayOrigin?: HTMLElement | ElementRef<HTMLElement> | null;\n\n /** emits when the overlay is closed */\n @Output() fngOverlayClosed = new EventEmitter<void>();\n\n @HostListener('click', ['$event'])\n _onHostClick(evt: MouseEvent) {\n evt.stopPropagation();\n this.toggle();\n }\n\n // adds css class to the host element to indicate interactivity\n @HostBinding('class.fwe-cursor-pointer') readonly cssClass = true;\n\n constructor(private readonly host: ElementRef<HTMLElement>) {}\n\n ngOnDestroy(): void {\n this.positionSubscription?.unsubscribe();\n this.overlayRef?.dispose();\n this.portalInstance = undefined;\n }\n\n open(): void {\n if (!this.overlayRef) {\n this.overlayRef = this.createOverlay();\n this.bindOverlayLifecycle();\n }\n\n if (!this.portalInstance) {\n this.portalInstance = this.createPortalFromContent();\n }\n\n if (this.overlayRef && this.portalInstance && !this.overlayRef.hasAttached()) {\n this.overlayRef.attach(this.portalInstance);\n }\n }\n\n close(): void {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n this.fngOverlayClosed.emit();\n }\n }\n\n toggle(): void {\n if (this.overlayRef?.hasAttached()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n private getPositionClass(position: ConnectedPosition): string {\n if (position.overlayY === 'bottom' && position.overlayX === 'center') {\n return 'fng-popover-top';\n } else if (position.overlayY === 'top' && position.overlayX === 'center') {\n return 'fng-popover-bottom';\n } else if (position.overlayX === 'end' && position.overlayY === 'center') {\n return 'fng-popover-left';\n } else if (position.overlayX === 'start' && position.overlayY === 'center') {\n return 'fng-popover-right';\n }\n return 'fng-popover-default';\n }\n\n private createOverlay(): OverlayRef {\n const originEl = this.resolveOriginElement();\n const positions = this.resolvePositions(); \n\n const initialPanelClasses = ['fng-overlay'];\n let initialOffsetX = this.fngOverlayOffsetX || 0;\n let initialOffsetY = this.fngOverlayOffsetY || 0;\n\n // add any user-specified panel classes\n if (this.fngOverlayPanelClass) {\n if (typeof this.fngOverlayPanelClass === 'string') {\n initialPanelClasses.push(this.fngOverlayPanelClass);\n } else {\n initialPanelClasses.push(...this.fngOverlayPanelClass);\n }\n } \n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(originEl)\n .withFlexibleDimensions(true)\n .withPush(true)\n .withViewportMargin(16)\n .withPositions(positions)\n .withDefaultOffsetX(initialOffsetX)\n .withDefaultOffsetY(initialOffsetY);\n\n const scrollStrategy = this.overlay.scrollStrategies.block();\n\n const overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy,\n hasBackdrop: this.fngOverlayHasBackdrop,\n backdropClass: this.fngOverlayBackdropClass,\n panelClass: initialPanelClasses,\n disposeOnNavigation: true\n });\n\n // clean up any existing subscription\n this.positionSubscription?.unsubscribe();\n \n let previousPositionClass: string | undefined;\n \n // create new subscription and store it\n this.positionSubscription = positionStrategy.positionChanges.subscribe(position => {\n // remove all possible position classes first\n ['fng-popover-right', 'fng-popover-left', 'fng-popover-top', 'fng-popover-bottom', 'fng-popover-default'].forEach(cls => {\n overlayRef.removePanelClass(cls);\n });\n \n const newPositionClass = this.getPositionClass(position.connectionPair); \n \n // if this is not the first position change and the position class has changed,\n // use the default class instead\n if (previousPositionClass && previousPositionClass !== newPositionClass) {\n overlayRef.addPanelClass('fng-popover-default');\n } else {\n overlayRef.addPanelClass(newPositionClass || 'fng-popover-default');\n }\n \n previousPositionClass = newPositionClass;\n });\n\n return overlayRef;\n }\n\n private createPortalFromContent(): TemplatePortal | ComponentPortal<unknown> {\n // handle templateref content\n if (this.content instanceof TemplateRef) {\n return new TemplatePortal(this.content, this.vcr, this.fngOverlayContext ?? {});\n }\n // assume it is a component type\n const componentType = this.content as Type<any>;\n return new ComponentPortal(componentType, this.vcr, this.injector);\n }\n\n private bindOverlayLifecycle(): void {\n if (!this.overlayRef) return;\n\n if (this.fngOverlayHasBackdrop && this.fngOverlayCloseOnBackdropClick) {\n this.overlayRef.backdropClick().subscribe(() => this.close());\n }\n\n if (this.fngOverlayCloseOnEscape) {\n this.overlayRef.keydownEvents().subscribe(event => {\n const ev = event as KeyboardEvent & { keyCode: number };\n if (ev.key === 'Escape' || ev.keyCode === ESCAPE) {\n // avoid closing if user holds a modifier (e.g., ctrl+esc) — rare but safe\n if (!hasModifierKey(ev)) {\n this.close();\n }\n }\n });\n }\n }\n\n private resolveOriginElement(): HTMLElement {\n const o = this.fngOverlayOrigin;\n if (!o) return this.host.nativeElement;\n if (o instanceof ElementRef) return o.nativeElement;\n return o;\n }\n\n private resolvePositions(): ConnectedPosition[] {\n if (this.fngOverlayPositions?.length) {\n // convert specified position names to actual positions\n const specifiedPositions = this.fngOverlayPositions.map(name => ({ ...POSITION_MAP[name] }));\n\n // get all remaining positions that weren't specified\n const remainingPositions = ALL_POSITIONS.filter(\n defaultPos => !this.fngOverlayPositions!.some(name => JSON.stringify(POSITION_MAP[name]) === JSON.stringify(defaultPos))\n );\n\n // return specified positions first, followed by remaining positions\n return [...specifiedPositions, ...remainingPositions];\n }\n return ALL_POSITIONS.map(p => ({ ...p }));\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'fng-overlay-content',\n imports: [],\n templateUrl: './overlay-content.component.html',\n styleUrl: './overlay-content.component.scss',\n standalone: true\n})\nexport class FngOverlayContentComponent {}\n","<div class=\"fwe-popover-container\">\n <div class=\"fwe-triangle\"></div>\n <div class=\"fwe-popover\">\n <div class=\"fwe-popover-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FngClickOutsideDirective } from '../directives/click-outside.directive';\nimport {\n FngAccordionComponent,\n FngAccordionHeaderComponent,\n FngAccordionItemBodyComponent,\n FngAccordionItemComponent,\n FngAccordionItemHeaderComponent\n} from './accordion';\nimport { FngBottomSheetComponent } from './bottom-sheet/bottom-sheet.component';\nimport { FngBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { FngButtonComponent } from './buttons/button/button.component';\nimport { FngLinkButtonComponent } from './buttons/link-button/link-button.component';\nimport { FngChipContainerComponent } from './chips/chip-container/chip-container.component';\nimport { FngChipComponent } from './chips/chip/chip.component';\nimport { FngLoadingIndicatorComponent } from './loading-indicator/loading-indicator.component';\nimport { FngMobileFlyoutItemComponent } from './mobile-flyout/mobile-flyout-item/mobile-flyout-item.component';\nimport { FngMobileFlyoutPageComponent } from './mobile-flyout/mobile-flyout-page/mobile-flyout-page.component';\nimport { FngMobileFlyoutComponent } from './mobile-flyout/mobile-flyout.component';\nimport { FngPaginationComponent } from './pagination/pagination.component';\nimport { FngLegendComponent } from './popovers/legend/legend.component';\nimport { FngLegendDirective } from './popovers/legend/legend.directive';\nimport { FngPopoverContentComponent } from './popovers/popover-content/popover-content.component';\nimport { FngPopoverContentDirective } from './popovers/popover-content/popover-content.directive';\nimport { FngPopoverMenuComponent } from './popovers/popover-menu/popover-menu.component';\nimport { FngPopoverComponent } from './popovers/popover/popover.component';\nimport { FngTooltipDirective } from './popovers/tooltip/tooltip.directive';\nimport { FngProgressComponent } from './progress/progress.component';\nimport { FngScrollableDirective } from './scroll';\nimport { FngSearchInputComponent } from './search-input/search-input.component';\nimport { FngSidebarOverlayComponent } from './sidebar-overlay/sidebar-overlay.component';\nimport { FngSnackbarContainerComponent } from './snackbar/snackbar-container.component';\nimport { FngStepHorizontalComponent } from './stepper-horizontal/step-horizontal/step-horizontal.component';\nimport { FngStepperHorizontalComponent } from './stepper-horizontal/stepper-horizontal.component';\nimport { FngStepVerticalComponent } from './stepper-vertical/step-vertical/step-vertical.component';\nimport { FngStepperVerticalComponent } from './stepper-vertical/stepper-vertical.component';\nimport { FngTableHeaderCellDirective } from './table-header-cell/table-header-cell.directive';\nimport { FngTabPaneComponent } from './tabs/tab-pane/tab-pane.component';\nimport { FngTabsComponent } from './tabs/tabs.component';\nimport { FngOverlayOutletDirective } from './overlay/overlay-outlet.directive';\nimport { FngOverlayContentComponent } from './overlay/overlay-content/overlay-content.component'; \n\n@NgModule({\n imports: [\n FngClickOutsideDirective,\n FngPaginationComponent,\n FngMobileFlyoutPageComponent,\n FngMobileFlyoutItemComponent,\n FngMobileFlyoutComponent,\n FngLoadingIndicatorComponent,\n FngChipComponent,\n FngChipContainerComponent,\n FngTabsComponent,\n FngTabPaneComponent,\n FngBreadcrumbComponent,\n FngAccordionComponent,\n FngAccordionHeaderComponent,\n FngAccordionItemComponent,\n FngAccordionItemBodyComponent,\n FngAccordionItemHeaderComponent,\n FngButtonComponent,\n FngLinkButtonComponent,\n FngSearchInputComponent,\n FngSnackbarContainerComponent,\n FngStepHorizontalComponent,\n FngStepperHorizontalComponent,\n FngStepperVerticalComponent,\n FngStepVerticalComponent,\n FngTableHeaderCellDirective,\n FngScrollableDirective,\n FngProgressComponent,\n FngLegendDirective,\n FngPopoverComponent,\n FngPopoverContentDirective,\n FngPopoverContentComponent,\n FngPopoverMenuComponent,\n FngTooltipDirective,\n FngLegendDirective,\n FngLegendComponent,\n FngSidebarOverlayComponent,\n FngBottomSheetComponent,\n FngOverlayOutletDirective,\n FngOverlayContentComponent\n ],\n exports: [\n FngClickOutsideDirective,\n FngBreadcrumbComponent,\n FngAccordionComponent,\n FngAccordionHeaderComponent,\n FngAccordionItemComponent,\n FngAccordionItemBodyComponent,\n FngAccordionItemHeaderComponent,\n FngButtonComponent,\n FngLinkButtonComponent,\n FngChipContainerComponent,\n FngChipComponent,\n FngLoadingIndicatorComponent,\n FngMobileFlyoutComponent,\n FngMobileFlyoutItemComponent,\n FngMobileFlyoutPageComponent,\n FngPaginationComponent,\n FngSearchInputComponent,\n FngSnackbarContainerComponent,\n FngStepHorizontalComponent,\n FngStepperHorizontalComponent,\n FngStepperVerticalComponent,\n FngStepVerticalComponent,\n FngTableHeaderCellDirective,\n FngScrollableDirective,\n FngProgressComponent,\n FngTabsComponent,\n FngTabPaneComponent,\n FngLegendDirective,\n FngPopoverComponent,\n FngPopoverContentDirective,\n FngPopoverContentComponent,\n FngPopoverMenuComponent,\n FngTooltipDirective,\n FngLegendDirective,\n FngLegendComponent,\n FngSidebarOverlayComponent,\n FngBottomSheetComponent,\n FngOverlayOutletDirective,\n FngOverlayContentComponent\n ]\n})\nexport class FestoAngularComponentsModule {}\n","import { NgModule } from '@angular/core';\n\nimport { FngSnackbarComponent } from './snackbar.component';\nimport { FngSnackbarContainerDirective } from './snackbar-container.directive';\nimport { FngSnackbarContainerComponent } 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 imports: [FngSnackbarComponent, FngSnackbarContainerDirective, FngSnackbarContainerComponent],\n exports: [FngSnackbarContainerComponent, FngSnackbarContainerDirective, FngSnackbarContainerComponent],\n providers: []\n // bootstrap: [SnackbarComponent]\n})\nexport class FestoAngularSnackbarModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FngSafeHtmlPipe } from './../../pipes/safe-html.pipe';\nimport { Modal } from '../index';\n\nexport interface FngAlertData {\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 standalone: true,\n imports: [CommonModule, FngSafeHtmlPipe],\n selector: 'fng-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngAlertComponent implements AfterViewInit, Modal<FngAlertData, any> {\n @Input() data: FngAlertData = {} as FngAlertData;\n @Output() close = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n @ViewChild('closeBtn') closeBtn: ElementRef | undefined;\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 <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-modal-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n <div class=\"fwe-modal-header\">\n <h2 *ngIf=\"data.subtitle\" class=\"fwe-modal-h2\">\n {{ data.subtitle }}\n </h2>\n <h1 class=\"fwe-modal-h1\">\n {{ data.title }}\n </h1>\n </div>\n <div class=\"fwe-modal-body\" [innerHTML]=\"data.body | fngSafeHtml\"></div>\n <div class=\"fwe-modal-footer\" *ngIf=\"data.cancel || data.ok\">\n <div class=\"fwe-modal-buttons\">\n <button\n *ngIf=\"data.cancel\"\n type=\"button\"\n aria-label=\"Cancel\"\n class=\"fwe-btn fwe-btn-lg\"\n [class.fwe-btn-link]=\"data.strong\"\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\" [class.fwe-btn-hero]=\"!data.strong\" (click)=\"onOk()\">\n {{ data.ok }}\n </button>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\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';\nimport { FngSafeHtmlPipe } from './../../pipes/safe-html.pipe';\nimport { Modal } from '../index';\n\nexport interface FngConfirmData {\n title: string;\n subtitle?: string;\n body: string;\n cancel?: string;\n ok?: string;\n large?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, FngSafeHtmlPipe],\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 FngConfirmComponent implements AfterViewInit, Modal<FngConfirmData, any> {\n @Input() data: FngConfirmData = {} as FngConfirmData;\n @Output() close = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n @ViewChild('closeBtn') closeBtn: ElementRef | undefined;\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\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 class=\"fwe-modal\" [ngClass]=\"{ 'fwe-modal--large': data.large }\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-modal-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\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\" [innerHTML]=\"data.body | fngSafeHtml\"></div>\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 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 { Component, OnInit, Input, forwardRef, ViewChild, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\n\n/**\n * A custom form element for text inputs.\n */\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\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(() => FngTextInputComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngTextInputComponent 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 | undefined = undefined;\n @Input() min: number | undefined = undefined;\n @Input() max: number | undefined = undefined;\n @Input() tabindex: number | undefined = undefined;\n @Input() placeholder: string | undefined = undefined;\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 | undefined= undefined;\n\n @ViewChild('inputElement') inputElement: ElementRef | undefined;\n\n /**\n * When true the text input has focus.\n */\n focused: boolean = false;\n\n /**\n * Triggered on change.\n */\n onChange: ((value: string) => void) | undefined;\n\n /**\n * Triggered on touch.\n */\n onTouched: (() => void) | undefined;\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 /**\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 || false\"\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 (focus)=\"onFocus()\"\n [(ngModel)]=\"value\"\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 {\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 {\n AbstractControlOptions,\n AsyncValidatorFn,\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n ValidatorFn\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Modal } from '../index';\nimport { CommonModule } from '@angular/common';\nimport { FngTextInputComponent } from '../../forms/text-input/text-input.component';\n\nexport interface FngPromptData {\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 placeholder?: string;\n validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null;\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null;\n}\n\n@Component({\n standalone: true,\n imports: [ReactiveFormsModule, FormsModule, CommonModule, FngTextInputComponent],\n selector: 'fng-prompt',\n templateUrl: './prompt.component.html',\n styleUrls: ['./prompt.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngPromptComponent implements OnInit, AfterViewInit, OnDestroy, Modal<FngPromptData, any> {\n @Input() data: FngPromptData = {} as FngPromptData;\n @Output() close = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n @ViewChild('closeBtn') closeBtn: ElementRef | undefined;\n @ViewChild('inputField') inputField: FngTextInputComponent | undefined;\n\n form: FormGroup = this.formBuilder.group({\n text: this.formBuilder.control('')\n });\n\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 if (event.key === 'Enter') {\n this.onOk();\n }\n }\n\n ngOnInit(): void {\n const text = this.data.value || '';\n\n const textControl = this.formBuilder.control(text, this.data?.validatorOrOpts, this.data?.asyncValidator);\n\n this.form = this.formBuilder.group({\n text: textControl\n });\n\n if (text) {\n textControl.markAsDirty();\n }\n\n textControl.statusChanges.pipe(takeUntil(this.complete)).subscribe(sc => {\n if (sc === 'INVALID') {\n this.handleErrors();\n } else {\n this.error = '';\n }\n });\n this.handleErrors();\n }\n\n ngAfterViewInit() {\n if (this.inputField) {\n (this.inputField.inputElement?.nativeElement as HTMLInputElement).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 if (e) {\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}\n","<div class=\"fwe-modal\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-modal-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\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\n #inputField\n type=\"text\"\n [label]=\"data.label\"\n formControlName=\"text\"\n [error]=\"error\"\n [hint]=\"data.hint\"\n [placeholder]=\"data.placeholder\"\n >\n </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 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-hero fwe-btn-lg\" (click)=\"onOk()\">\n {{ data.ok }}\n </button>\n </div>\n </div>\n</div>\n","import { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SwiperModule } from 'swiper/angular';\n\nimport { CommonModule } from '@angular/common';\nimport SwiperCore, { FreeMode, Keyboard, Navigation, Thumbs, Zoom } from 'swiper';\nimport { FngSafeHtmlPipe } from '../../pipes/safe-html.pipe';\nimport { Modal } from '../modals.module';\n\nSwiperCore.use([FreeMode, Navigation, Keyboard, Thumbs, Zoom]);\n\nexport interface FngImageDescriptiveContent {\n title: string;\n body: string;\n}\n\nexport interface FngImageGalleryData {\n startIndex: number;\n images: { url: string; alt: string; content?: FngImageDescriptiveContent; containMode?: boolean }[];\n thumbnailImages?: { url: string; alt: string; containMode?: boolean }[];\n pagination?: boolean;\n descriptiveContent?: boolean;\n slideChanged?: (index: number) => void;\n showScaleButton: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [SwiperModule, CommonModule, FngSafeHtmlPipe],\n selector: 'fng-image-gallery',\n templateUrl: './image-gallery.component.html',\n styleUrls: ['./image-gallery.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngImageGalleryComponent implements Modal<FngImageGalleryData, any> {\n @Input() data: FngImageGalleryData = {\n startIndex: 0,\n images: [],\n thumbnailImages: [],\n slideChanged: () => null,\n pagination: true,\n descriptiveContent: false,\n showScaleButton: false\n };\n\n\n @Output() close = new EventEmitter<any>();\n @Output() scaleUp = new EventEmitter<any>();\n @Output() scaleDown = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() ok = new EventEmitter<any>();\n\n thumbsSwiper: any;\n currentIndex = this.data.startIndex + 1;\n isScaled = false;\n\n constructor(private cd: ChangeDetectorRef) {}\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 onSlideChange(swiper: { activeIndex: number }[]) {\n this.currentIndex = swiper[0].activeIndex + 1;\n this.cd.markForCheck();\n this.cd.detectChanges();\n if (this.data?.slideChanged) {\n this.data.slideChanged(swiper[0].activeIndex);\n }\n }\n\n onClose() {\n this.close.emit();\n }\n\n onScale() {\n if(!this.isScaled) {\n this.scaleUp.emit();\n this.isScaled = true;\n } else {\n this.scaleDown.emit();\n this.isScaled = false;\n }\n }\n}\n","<div\n class=\"fwe-modal fwe-modal-image-gallery\"\n *ngIf=\"data != null\"\n [class.fwe-modal-image-gallery--with-thumbnails]=\"data.thumbnailImages?.length\"\n [class.fwe-modal-image-gallery--with-container]=\"data.descriptiveContent\"\n>\n <div class=\"fwe-image-gallery-header\">\n <div *ngIf=\"data.pagination\" class=\"fwe-pagination fwe-pagination--on-dark-bg\">\n <button aria-label=\"previous\" type=\"button\" class=\"fwe-navigate-btn-down\"></button>\n <span class=\"fwe-page-current\">{{ currentIndex }}</span>\n <span class=\"fwe-page-max\">{{ data.images.length }}</span>\n <button aria-label=\"next\" type=\"button\" class=\"fwe-navigate-btn-up\"></button>\n </div>\n <button\n *ngIf=\"data?.showScaleButton === true\"\n aria-label=\"scale up\"\n type=\"button\"\n class=\"fwe-btn fwe-btn-link fwe-ml-auto\"\n (click)=\"onScale()\"\n >\n <i\n class=\"fwe-icon fwe-icon-lg fwe-color-white fwe-modal-image-gallery-scale\"\n [ngClass]=\"{ 'fwe-icon-arrows-scale-down': isScaled === true, 'fwe-icon-arrows-scale-up': isScaled === false }\"\n ></i>\n </button>\n <button\n aria-label=\"close\"\n type=\"button\"\n class=\"fwe-btn fwe-btn-link\"\n (click)=\"onClose()\"\n [ngClass]=\"{ 'fwe-ml-auto': !data.showScaleButton, 'fwe-ml-3': data.showScaleButton }\"\n >\n <i class=\"fwe-icon fwe-icon-2x fwe-color-white fwe-icon-menu-close fwe-modal-image-gallery-close\"></i>\n </button>\n </div>\n <ng-container [ngSwitch]=\"data.descriptiveContent\">\n <div class=\"fwe-image-gallery-container\" *ngSwitchCase=\"true\">\n <ng-container *ngTemplateOutlet=\"baseGallery\"></ng-container>\n <div class=\"fwe-image-gallery-content\" *ngIf=\"data.images[currentIndex - 1]?.content as imageContent\">\n <h3>{{ imageContent.title }}</h3>\n <div [innerHTML]=\"imageContent.body | fngSafeHtml\"></div>\n </div>\n </div>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"baseGallery\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #baseGallery>\n <div class=\"fwe-image-gallery-wrapper\">\n <swiper\n [initialSlide]=\"data.startIndex\"\n [keyboard]=\"{\n enabled: true\n }\"\n [spaceBetween]=\"0\"\n [zoom]=\"true\"\n [navigation]=\"{\n nextEl: '.fwe-navigate-btn-up',\n prevEl: '.fwe-navigate-btn-down'\n }\"\n [thumbs]=\"{ swiper: thumbsSwiper }\"\n (slideChange)=\"onSlideChange($event)\"\n class=\"gallery-swiper fwe-image-gallery\"\n >\n <ng-template *ngFor=\"let image of data.images\" swiperSlide>\n <div class=\"swiper-zoom-container\">\n <img [alt]=\"image.alt\" [src]=\"image.url\" [class.fwe-object-fit-contain]=\"image.containMode\" [class.fwe-p-m]=\"image.containMode\" />\n </div>\n </ng-template>\n </swiper>\n <swiper\n *ngIf=\"data.thumbnailImages?.length\"\n (swiper)=\"thumbsSwiper = $event\"\n [slidesPerView]=\"'auto'\"\n [freeMode]=\"true\"\n [threshold]=\"20\"\n [watchSlidesProgress]=\"true\"\n class=\"thumbs-swiper fwe-image-gallery-thumbs\"\n >\n <ng-template *ngFor=\"let thumbnail of data.thumbnailImages\" swiperSlide>\n <img\n [alt]=\"thumbnail.alt\"\n [src]=\"thumbnail.url\"\n [class.fwe-object-fit-contain]=\"thumbnail.containMode\"\n [class.fwe-p-xxxs]=\"thumbnail.containMode\"\n />\n </ng-template>\n </swiper>\n </div>\n</ng-template>\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 { FngAlertComponent, FngAlertData } from './alert/alert.component';\nimport { FngConfirmComponent, FngConfirmData } from './confirm/confirm.component';\nimport { Subject } from 'rxjs';\nimport { FngPromptComponent, FngPromptData } from './prompt/prompt.component';\nimport { FngImageGalleryComponent, FngImageGalleryData } from './image-gallery/image-gallery.component';\n\n@Injectable({ providedIn: 'root' })\nexport class FngModalService {\n constructor(protected overlay: Overlay, private router: Router) {}\n\n alert(data: FngAlertData, options?: ModalOptions) {\n return this.open<FngAlertData, any, FngAlertComponent>(data, FngAlertComponent, {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true,\n ...options\n });\n }\n\n confirm(data: FngConfirmData, options?: ModalOptions) {\n options = options || {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true\n };\n return this.open<FngConfirmData, any, FngConfirmComponent>(data, FngConfirmComponent, options);\n }\n\n prompt(data: FngPromptData, options?: ModalOptions) {\n options = options || {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true\n };\n return this.open<FngPromptData, any, FngPromptComponent>(data, FngPromptComponent, options);\n }\n\n openImageGallery(data: FngImageGalleryData) {\n const options: ModalOptions = {\n backdropClass: 'fwe-modal-backdrop',\n hasBackdrop: true,\n shouldCloseOnBackdrop: true\n };\n return this.open<FngImageGalleryData, any, FngImageGalleryComponent>(data, FngImageGalleryComponent, 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(true);\n complete.complete();\n complete.unsubscribe();\n overlayRef.dispose();\n resolve();\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-custom-modal',\n templateUrl: './custom-modal.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngCustomModalComponent {\n private _visible: boolean = false;\n\n @Input() closeOnBackdrop: boolean = false;\n @Input() large: boolean = false;\n @Input()\n set visible(value: boolean) {\n this._visible = value;\n\n if (!value && this.visibleChange) {\n this.visibleChange.emit(false);\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n /**\n * Emits false on close modal by close, cancel, click outside and close by providing value false to visible\n */\n @Output() visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Input() header: string = '';\n @Input() subheader: string = '';\n\n @Input() acknowledgeLabel: string = 'Ok';\n @Output() acknowledge: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() cancelLabel: string = 'Cancel';\n @Output() cancel: EventEmitter<void> = new EventEmitter<void>();\n\n @Output() close: EventEmitter<void> = new EventEmitter<void>();\n\n closeModal(): void {\n this.visible = false;\n }\n\n onClose(): void {\n if (this.close) {\n this.close.emit();\n }\n this.closeModal();\n }\n\n onCancel(): void {\n this.closeModal();\n if (this.cancel) {\n this.cancel.emit();\n }\n }\n\n onAcknowledge(): void {\n if (this.acknowledge) {\n this.acknowledge.emit();\n }\n }\n\n onClickOutside(): void {\n if (this.closeOnBackdrop) {\n this.onClose();\n }\n }\n\n onClickInside(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","<div class=\"fwe-modal-backdrop\" *ngIf=\"visible\" (mousedown)=\"onClickOutside()\">\n <div class=\"fwe-modal\" [class.fwe-modal--large]=\"large\" (mousedown)=\"onClickInside($event)\">\n <button type=\"button\" aria-label=\"Close\" #closeBtn class=\"fwe-modal-close-btn\" (click)=\"onClose()\">\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n <div class=\"fwe-modal-header\">\n <h2 class=\"fwe-modal-h2\" *ngIf=\"subheader?.length\">{{ subheader }}</h2>\n <h1 class=\"fwe-modal-h1\">{{ header }}</h1>\n </div>\n <div class=\"fwe-modal-body\">\n <ng-content></ng-content>\n </div>\n <div class=\"fwe-modal-footer\">\n <div class=\"fwe-modal-buttons\">\n <button class=\"fwe-btn fwe-btn-lg\" (click)=\"onCancel()\">\n {{ cancelLabel }}\n </button>\n <button class=\"fwe-btn fwe-btn-hero fwe-btn-lg\" (click)=\"onAcknowledge()\">\n {{ acknowledgeLabel }}\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { FngAlertComponent } from './alert/alert.component';\nimport { FngConfirmComponent } from './confirm/confirm.component';\nimport { FngPromptComponent } from './prompt/prompt.component';\nimport { FngCustomModalComponent } from './custom-modal/custom-modal.component';\nimport { FngImageGalleryComponent } from './image-gallery/image-gallery.component';\n\nexport * from './index';\nexport * from './alert/alert.component';\nexport * from './confirm/confirm.component';\nexport * from './prompt/prompt.component';\nexport * from './custom-modal/custom-modal.component';\nexport * from './image-gallery/image-gallery.component';\n\n@NgModule({\n imports: [FngAlertComponent, FngConfirmComponent, FngPromptComponent, FngCustomModalComponent, FngImageGalleryComponent],\n exports: [FngAlertComponent, FngConfirmComponent, FngPromptComponent, FngCustomModalComponent, FngImageGalleryComponent],\n providers: []\n})\nexport class FestoAngularModalsModule {}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\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 standalone: true,\n imports: [CommonModule],\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(() => FngCheckboxComponent),\n multi: true\n }\n ]\n})\nexport class FngCheckboxComponent implements ControlValueAccessor {\n @Input() name: string = '';\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 = 'false';\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 = false;\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 = () => null;\n\n onTouched: () => any = () => null;\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\n 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>\n <input\n 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 />\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 { ConnectionPositionPair, OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A control to display a color.\n */\n@Component({\n standalone: true,\n imports: [OverlayModule, CommonModule],\n selector: 'fng-color-indicator',\n templateUrl: './color-indicator.component.html',\n styleUrls: ['./color-indicator.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngColorIndicatorComponent {\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 = '#ffffff';\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 = false;\n\n @Input() disabled: boolean = false;\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() === '#F0F2F3') {\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.fwe-color-indicator--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=\"#e2e5e8\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e2e5e8\" />\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","export abstract class ColorHelper {\n // based on: https://gist.github.com/mjackson/5311256\n public static rgbToHsv(rgb: Record<'r' | 'g' | 'b', number> | undefined | null): Record<'h' | 's' | 'v', number> {\n if (!rgb) {\n return { h: 0, s: 0, v: 0 };\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> | undefined | null): Record<'r' | 'g' | 'b', number> {\n if (!hsv) {\n return { r: 0, g: 0, b: 0 };\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 = 0;\n let g: number = 0;\n let b: number = 0;\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: number) {\n return Math.round(num <= 0 ? 0 : num >= 255 ? 255 : num);\n }\n\n private static limitToOne(num: number) {\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> | undefined | null) {\n if (!rgb) {\n return '#FFFFFF';\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 | null): Record<'r' | 'g' | 'b', number> {\n if (!hexString) {\n return { r: 0, g: 0, b: 0 };\n }\n const numbersOnly = hexString.substring(1);\n const aRgbHex = numbersOnly.match(/.{1,2}/g);\n if (aRgbHex?.length === 3) {\n return { r: parseInt(aRgbHex[0], 16), g: parseInt(aRgbHex[1], 16), b: parseInt(aRgbHex[2], 16) };\n } else {\n return { r: 0, g: 0, b: 0 };\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CdkDragMove, DragDropModule } from '@angular/cdk/drag-drop';\nimport { Component, forwardRef, Input, ViewEncapsulation, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { ColorHelper } from './color-helper';\nimport { CommonModule } from '@angular/common';\n\nexport const PREDEFINED_COLORS: string[] = [\n '#0091dc',\n '#333333',\n '#ffffff',\n '#f0f2f3',\n '#e2e5e8',\n '#d3d8dd',\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 standalone: true,\n imports: [CommonModule, DragDropModule, FormsModule],\n selector: 'fng-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FngColorPickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngColorPickerComponent 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 | null {\n return this.innerColor;\n }\n @Input()\n set color(value: string | null) {\n if (value && 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 | null = null;\n private innerDisabled: boolean = true;\n private innerAlpha: number = 1;\n\n // input controls\n hexInputColor: string | null = '#ff0000';\n redInput = 255;\n greenInput = 0;\n blueInput = 0;\n alphaInput = 100;\n\n // HSV value\n hue: number = 0;\n saturation: number = 0;\n value: number = 0;\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 = () => null;\n onChange: (color: string | null) => any = () => null;\n\n ngOnChanges(changes: SimpleChanges): void {\n const paletteChanged = changes['palette'];\n if (paletteChanged['currentValue'].length > 0 && paletteChanged['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.hexInputColor && 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.hexInputColor && this.isHexColor(this.hexInputColor)) {\n this.color = this.hexInputColor.toUpperCase();\n }\n }\n\n onRgbBlur() {\n if (this.hexInputColor && 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 as keyof typeof rgb] = 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 | null) {\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=\".fwe-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=\".fwe-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=\"#e2e5e8\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e2e5e8\" />\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=\".fwe-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=\"#e2e5e8\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e2e5e8\" />\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 { ElementRef, Input, Output, EventEmitter, Component, ViewChild, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core';\nimport flatpickr from 'flatpickr';\nimport { BaseOptions } from 'flatpickr/dist/types/options';\n\nexport interface FlatPickerOptions {\n maxDate?: Date | undefined;\n minDate?: Date | undefined;\n mode?: 'single' | 'range';\n}\n\n@Component({\n standalone: true,\n selector: 'fng-flatpickr',\n templateUrl: './flatpickr.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FngFlatpickrComponent implements OnInit, OnDestroy {\n @Input() date: Date | Date[] = new Date();\n @Input() options: FlatPickerOptions | undefined;\n @Output() dateChange = new EventEmitter<Date | Date[]>();\n\n @ViewChild('datePicker', { static: true }) datePickerRef: ElementRef | undefined;\n\n private datePicker: flatpickr.Instance | undefined;\n\n ngOnInit() {\n const options: FlatPickerOptions = {\n minDate: this.options?.minDate || undefined,\n maxDate: this.options?.maxDate || undefined,\n mode: this.options?.mode || 'single'\n };\n const config: Partial<BaseOptions> = {\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 };\n this.datePicker = flatpickr(this.datePickerRef?.nativeElement, config) 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 {\n Component,\n ViewEncapsulation,\n forwardRef,\n Input,\n ElementRef,\n ViewChild,\n ComponentRef,\n HostListener,\n HostBinding, ChangeDetectorRef\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';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CommonModule, formatDate } from '@angular/common';\nimport { LOCALE_ID, Inject } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FngFlatpickrComponent } from '../flatpickr/flatpickr.component';\n\nexport interface FngDatePickerOptions {\n maxDate?: Date;\n minDate?: Date;\n keepOpenOnDateChange?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, FngFlatpickrComponent],\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(() => FngDatePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngDatePickerComponent 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 | undefined;\n @Input() error: string | undefined;\n @Input() options: FngDatePickerOptions = {} as FngDatePickerOptions;\n\n /** A locale code for the locale format rules to use. */\n @Input() locale: string | undefined;\n\n /* The date-time components to include. See `DatePipe` for details. */\n @Input() format: string | undefined;\n\n /** The time zone. A time zone offset from GMT (such as `'+0430'`) */\n @Input() timezone: string | undefined;\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 | undefined;\n\n @Input()\n @HostBinding('style.width')\n width: string | undefined;\n @HostBinding('style.display') display: string = 'block';\n\n get displayValue(): string {\n if (!this.value) {\n return '';\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 | undefined;\n private innerValue: Date = new Date();\n private complete = new Subject<boolean>();\n private datePicker: ComponentRef<FngFlatpickrComponent> | undefined;\n\n constructor(private overlay: Overlay, @Inject(LOCALE_ID) private localeDefault: string, private cd: ChangeDetectorRef) {}\n\n onTouched: (() => any) | undefined;\n onChange: ((date: Date) => any) | undefined;\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 // we need to re-render our view after value changed\n this.cd.markForCheck();\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(FngFlatpickrComponent);\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 | Date[]) => {\n if (c instanceof Date) {\n this.onDateChange(c);\n }\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 = undefined;\n }\n if (this.complete != null) {\n this.complete.next(true);\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\n class=\"fng-icon-svg fng-icon-svg--time-calendar\"\n [class.fwe-color-hero]=\"datePickerRef != null\"\n [class.fwe-color-control-disabled]=\"disabled\"\n ></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, ChangeDetectorRef\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 { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { LOCALE_ID, Inject } from '@angular/core';\nimport { CommonModule, formatDate } from '@angular/common';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FngFlatpickrComponent } from '../flatpickr/flatpickr.component';\n\nexport interface FngDateRangePickerOptions {\n maxDate?: Date;\n minDate?: Date;\n keepOpenOnDateChange?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngDateRangePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngDateRangePickerComponent 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 | undefined;\n @Input() error: string | undefined;\n\n /** A locale code for the locale format rules to use. */\n @Input() locale: string | undefined;\n\n /* The date-time components to include. See `DatePipe` for details. */\n @Input() format: string | undefined;\n\n /** The time zone. A time zone offset from GMT (such as `'+0430'`) */\n @Input() timezone: string | undefined;\n\n @Input() options: FngDateRangePickerOptions = {} as FngDateRangePickerOptions;\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')\n width: string = 'none';\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 | undefined;\n\n get fromDateDisplayValue(): string | null {\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 | null {\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 | undefined;\n\n private innerValue: Date[] = [new Date(), new Date()];\n private complete = new Subject<boolean>();\n private datePicker: ComponentRef<FngFlatpickrComponent> | undefined;\n\n constructor(private overlay: Overlay, @Inject(LOCALE_ID) private localeDefault: string, private cd: ChangeDetectorRef) {}\n\n onTouched: (() => any) | undefined;\n onChange: ((dateRange: Date[]) => any) | undefined;\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 // we need to re-render our view after value changed\n this.cd.markForCheck();\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(FngFlatpickrComponent);\n this.datePicker = this.dateRangePickerRef.attach(datePickerPortal);\n this.datePicker.instance.options = {\n mode: 'range',\n minDate: this.options && this.options.minDate ? this.options.minDate : undefined,\n maxDate: this.options && this.options.maxDate ? this.options.maxDate : undefined\n };\n this.datePicker.instance.date = this.value;\n this.datePicker.instance.dateChange.pipe(takeUntil(this.complete)).subscribe((c: Date | Date[]) => {\n if (Array.isArray(c)) {\n this.onDateChange(c);\n }\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 = undefined;\n }\n if (this.complete != null) {\n this.complete.next(true);\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=\"fng-icon-svg fng-icon-svg--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 { CommonModule } from '@angular/common';\nimport {\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 standalone: true,\n imports: [CommonModule],\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 FngTimePickerDropdownComponent implements AfterViewInit {\n @Input() date: Date = new Date();\n @Input() showSeconds = false;\n @Input() timeFormat: '12' | '24' = '24';\n @Output() dateChange = new EventEmitter<{ reset: boolean; date: Date; close: boolean }>();\n\n @ViewChild('hoursInput') hoursInput: ElementRef | undefined;\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: Event) {\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 this.onDateChange(false, false);\n }\n\n onMinuteChange(event: Event) {\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 this.onDateChange(false, false);\n }\n\n onSecondChange(event: Event) {\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 this.onDateChange(false, false);\n }\n\n onToggleTimeFormat() {\n // Get the current hour in 24-hour format\n let hours = this.date.getHours();\n\n if (hours >= 0 && hours < 12) {\n // Switching from AM to PM\n this.date.setHours(hours + 12);\n } else {\n // Switching from PM to AM\n this.date.setHours(hours - 12);\n }\n this.onDateChange(false, false);\n }\n\n onDateChange(close: boolean, reset: boolean) {\n if (this.date != null) {\n this.date = new Date(this.date);\n this.dateChange.emit({ reset, date: new Date(this.date), close });\n }\n }\n}\n","<div class=\"fwe-timepicker\">\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\n #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 <button *ngIf=\"timeFormat === '12'\" class=\"fwe-btn fwe-ml-m\" (click)=\"onToggleTimeFormat()\">\n {{ date | date : 'a' }}\n </button>\n</div>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation\n} 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 { FngTimePickerDropdownComponent } from './time-picker-dropdown/time-picker-dropdown.component';\nimport { CommonModule } from '@angular/common';\n\nexport interface FngTimePickerOptions {\n timeFormat?: '12' | '24';\n showSeconds?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngTimePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngTimePickerComponent 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 | undefined;\n @Input() error: string | undefined;\n @Input() options: FngTimePickerOptions | undefined;\n\n @Input()\n @HostBinding('style.width')\n width: string = 'none';\n @HostBinding('style.display') display: string = 'block';\n\n @ViewChild('connector', { static: true }) connector: ElementRef | undefined;\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 | null = null;\n\n protected innerValue: Date = new Date();\n protected innerDisabled = false;\n\n private complete = new Subject<boolean>();\n private timePicker: ComponentRef<FngTimePickerDropdownComponent> | undefined;\n\n constructor(private overlay: Overlay, private cd: ChangeDetectorRef) {}\n\n onTouched: (() => void) | undefined;\n onChange: ((date: Date) => void) | undefined;\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 const resetValue = this.value;\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 minWidth: `${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 originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: -12\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: 4\n }\n ])\n .withFlexibleDimensions(false)\n .withPush(false)\n });\n const timePickerPortal = new ComponentPortal(FngTimePickerDropdownComponent);\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.reset) {\n this.value = resetValue;\n } else {\n this.value = ev.date;\n }\n if (ev.close) {\n this.disposeDropdown();\n }\n // we need to re-render our view after value changed\n this.cd.markForCheck();\n });\n this.timePickerRef\n .backdropClick()\n .pipe(takeUntil(this.complete))\n .subscribe(() => this.disposeDropdown());\n } else {\n this.disposeDropdown();\n }\n }\n }\n\n public disposeDropdown() {\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(true);\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=\"fng-icon-svg fng-icon-svg--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 { Injectable, OnDestroy } from '@angular/core';\n\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n\n@Injectable({ providedIn: 'root' })\nexport class FngUniqueSelectionDispatcher 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 if (name) {\n listener(id, name);\n }\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 { FngUniqueSelectionDispatcher } from '../unique-selection-dispatcher';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\n\nexport class FngRadioChange {\n constructor(public source: FngRadioComponent | null, public value: any) {}\n}\n\nlet nextUniqueId = 0;\n\n@Directive({\n standalone: true,\n selector: '[fngRadioGroup]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FngRadioGroupDirective),\n multi: true\n }\n ]\n})\nexport class FngRadioGroupDirective 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<FngRadioChange>();\n\n @ContentChildren(forwardRef(() => FngRadioComponent), { descendants: true })\n radios: QueryList<FngRadioComponent> | undefined;\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: FngRadioComponent | null = null;\n private innerName = `fngRadioGroup-${nextUniqueId++}`;\n private innerLabelPosition: 'before' | 'after' | 'below' = 'after';\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n controlValueAccessorChangeFn: ((value: any) => void) | undefined;\n\n onTouched: (() => void) | undefined;\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 FngRadioChange(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 standalone: true,\n imports: [CommonModule],\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 FngRadioComponent implements OnInit, OnDestroy {\n @Input() name: string | undefined;\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<FngRadioChange>();\n\n radioGroup: FngRadioGroupDirective;\n\n private isLarge = false;\n private isChecked = false;\n private isDisabled: boolean = false;\n private isRequired: boolean = false;\n private innerValue: any = null;\n private innerLabelPosition: 'before' | 'after' | 'below' | undefined;\n private removeUniqueSelectionListener: () => void;\n\n constructor(\n @Optional() radioGroup: FngRadioGroupDirective,\n private changeDetector: ChangeDetectorRef,\n private radioDispatcher: FngUniqueSelectionDispatcher\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 FngRadioChange(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 { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n OnInit,\n SimpleChanges,\n OnChanges,\n ViewChild,\n TemplateRef,\n AfterViewInit,\n ViewRef,\n Output,\n EventEmitter,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-segment-control',\n templateUrl: './segment-control.component.html',\n styleUrls: ['./segment-control.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSegmentControlComponent implements OnInit, OnChanges, AfterViewInit {\n id: string | undefined;\n view: ViewRef | undefined;\n viewMode: 'text' | 'icon' | 'icon-text' = 'text';\n\n @Input() name: string | undefined;\n @Input() value: any;\n @Input() label: string | undefined;\n @Input() icon: string | undefined;\n @Input() iconOnly: boolean | undefined;\n @Input() checked: boolean | undefined;\n @Input() disabled: boolean | undefined;\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('tpl') tpl: TemplateRef<any> | undefined;\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 (changes['icon']?.currentValue) {\n const prefix = 'fwe-icon-';\n let icon: string = changes['icon'].currentValue;\n if (icon.indexOf(prefix) === -1) {\n icon = `${prefix}${icon}`;\n }\n this.icon = icon;\n }\n\n if (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 onInputChange(event: Event) {\n event.stopPropagation();\n this.checked = true;\n const target = (event as unknown as { target: HTMLInputElement }).target;\n this.change.emit(target.value);\n }\n\n onInputClick(event: Event) {\n event.stopPropagation();\n }\n}\n","<ng-template #tpl>\n <input\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($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'\"> <i aria-hidden=\"true\" class=\"fwe-icon\" [ngClass]=\"icon\"></i>{{ label }} </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 Output,\n EventEmitter,\n OnDestroy,\n forwardRef,\n ViewEncapsulation,\n SimpleChange\n} from '@angular/core';\nimport type { QueryList } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FngSegmentControlComponent } from './segment-control/segment-control.component';\nimport { CommonModule } from '@angular/common';\n\nexport interface FngSegmentComponentConfiguration {\n outline: boolean;\n iconOnly: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-segment',\n templateUrl: './segment.component.html',\n styleUrls: ['./segment.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FngSegmentComponent),\n multi: true\n }\n ]\n})\nexport class FngSegmentComponent implements OnChanges, AfterContentInit, AfterViewInit, OnDestroy, ControlValueAccessor {\n protected changed = new Array<(value: string) => void>();\n protected touched = new Array<() => void>();\n\n protected innerValue: any;\n\n writeValue(value: string) {\n this.innerValue = value;\n this.updateCheckState();\n }\n\n updateCheckState() {\n if (this.controls) {\n this.controls.forEach(component => {\n component.checked = component.value === this.value;\n });\n }\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.changed.push(fn);\n }\n\n registerOnTouched(fn: () => void) {\n this.touched.push(fn);\n }\n\n private complete: Subject<boolean> = new Subject();\n\n defaultConfig: FngSegmentComponentConfiguration = {\n outline: true,\n iconOnly: true\n };\n useIcon = false;\n useIconAndText = false;\n id: string;\n\n @Input() legend = '';\n @Input() config: FngSegmentComponentConfiguration = this.defaultConfig;\n @ContentChildren(FngSegmentControlComponent, { descendants: true }) controls: QueryList<FngSegmentControlComponent> | undefined;\n @ViewChild('vc', { read: ViewContainerRef }) vc: ViewContainerRef | undefined;\n\n @Output() fngChange = new EventEmitter<any>();\n @Output() change = new EventEmitter<any>();\n\n @Input()\n set value(value: any) {\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 get value(): any {\n return this.innerValue;\n }\n\n constructor(private cd: ChangeDetectorRef) {\n this.id = (Math.random() * Date.now()).toString().replace('.', '-');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config']?.currentValue) {\n this.config = Object.assign({}, this.defaultConfig, changes['config'].currentValue);\n }\n }\n\n ngAfterContentInit(): void {\n if (this.controls?.length) {\n this.controls.forEach(component => {\n component.change.pipe(takeUntil(this.complete)).subscribe(val => {\n this.value = val;\n this.updateCheckState();\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 if (this.controls) {\n this.controls.forEach(component => {\n if (component.view) {\n if (!component.name) {\n component.name = this.id;\n }\n this.vc?.insert(component.view);\n }\n });\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 class=\"fwe-sr-only fwe-d-inline-block\">{{ legend }}</legend>\n <div class=\"fwe-segment-group\">\n <ng-container #vc></ng-container>\n </div>\n</fieldset>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewChild, ElementRef, AfterViewInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'fng-select-option',\n templateUrl: './select-option.component.html',\n styleUrls: ['./select-option.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSelectOptionComponent implements AfterViewInit {\n @Input() value: any;\n @ViewChild('root') elementRef!: ElementRef;\n\n el: HTMLElement | undefined;\n\n ngAfterViewInit(): void {\n this.el = this.elementRef.nativeElement;\n }\n\n async update(): Promise<HTMLElement | undefined> {\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 | undefined): string | undefined {\n return key === undefined ? 'value' : key;\n}\n\nfunction defaultTextKey(key: string | undefined): string | undefined {\n return key === undefined ? 'text' : key;\n}\n\n@Pipe({\n standalone: true,\n name: 'fngChipText',\n pure: false\n})\nexport class FngChipTextPipe implements PipeTransform {\n transform(value: any, options: any[], optionsValueKey?: string, optionsTextKey?: string): string {\n let chipText = '';\n\n optionsValueKey = defaultValueKey(optionsValueKey);\n optionsTextKey = defaultTextKey(optionsTextKey);\n\n options.forEach((_: any, index: number) => {\n if (optionsValueKey && JSON.stringify(options[index][optionsValueKey]) === JSON.stringify(value[optionsValueKey])) {\n if (optionsTextKey) {\n chipText = options[index][optionsTextKey];\n }\n }\n\n if (optionsValueKey && JSON.stringify(options[index][optionsValueKey]) === JSON.stringify(value)) {\n if (optionsTextKey) {\n chipText = options[index][optionsTextKey];\n }\n }\n });\n\n return chipText;\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FngSelectOptionComponent } from './select-option/select-option.component';\nimport { FngChipTextPipe } from './chip-text.pipe';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport interface FngSelectOption {\n value: any;\n text: string;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, FngChipTextPipe, FngSelectOptionComponent, OverlayModule],\n selector: 'fng-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FngSelectComponent),\n multi: true\n }\n ]\n})\nexport class FngSelectComponent implements ControlValueAccessor, OnInit, AfterViewInit, AfterContentInit {\n static nextId = 0;\n\n protected _disabled = false;\n protected _required = false;\n protected _value: any;\n protected body: HTMLElement;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n if (this.multiple === true) {\n const index = this._value.indexOf(value);\n if (index === -1) {\n this._value.push(value);\n this.checked.set(value, 'checked');\n } else {\n this._value.splice(index, 1);\n this.checked.set(value, null);\n }\n } else {\n this._value = value;\n }\n\n if (this.onChange != null) {\n this.onChange(this.value);\n }\n this.fngChange.emit(this.value);\n }\n\n onChange: (value: any) => void = (): void => {};\n onTouched: () => void = (): void => {};\n\n @HostBinding()\n id = `input-control-${++FngSelectComponent.nextId}`;\n\n @Input() multiple: boolean = false;\n @Input() size: number = 0;\n @Input() options: any[] = [];\n @Input() optionsValueKey: string | undefined;\n @Input() optionsTextKey: string | undefined;\n @Input() optionObjectAsValue: boolean | undefined;\n @Input() error: string | undefined;\n @Input() label = '';\n @Input() hideLabel = false;\n @Input() hint = '';\n @Input() resetOption: string | undefined;\n @ContentChildren(FngSelectOptionComponent) fngSelectOptions: QueryList<FngSelectOptionComponent> | undefined;\n @ViewChild('div') elementRef: ElementRef | undefined;\n @Output() fngChange = new EventEmitter<any>();\n\n selectPanelClasses: string[] = ['fng-select-panel'];\n showOptions = false;\n empty: boolean = false;\n triggerWidth: any;\n checked = new Map();\n hasProjectedOptions = false;\n projectedHtml: any[] = [];\n\n constructor(\n public cd: ChangeDetectorRef,\n @Inject(DOCUMENT) protected document: Document,\n protected renderer: Renderer2,\n protected destroy: DestroyRef\n ) {\n this.body = this.document.body;\n }\n ngAfterContentInit(): void {\n if (!this.fngSelectOptions) {\n return;\n }\n // observe if any of the projected content (fng-select-option) changes\n this.fngSelectOptions.changes.pipe(takeUntilDestroyed(this.destroy)).subscribe(_ => {\n // if content changes init again\n this.options = [];\n this.projectedHtml = [];\n this.initProjectedOptions();\n });\n }\n\n ngOnInit(): void {\n if (this.size != null) {\n this.selectPanelClasses.push('fng-select-panel-options-' + this.size);\n }\n\n if (this.multiple === true) {\n this._value = [];\n this.selectPanelClasses.push('fng-select-panel-multiple');\n }\n }\n\n ngAfterViewInit(): void {\n this.triggerWidth = this.elementRef?.nativeElement?.getBoundingClientRect()?.width;\n this.initProjectedOptions();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(shouldDisable: boolean): void {\n this.disabled = shouldDisable;\n }\n\n writeValue(value: any | null): void {\n if (value === undefined) {\n return;\n }\n\n if (this.multiple === true) {\n this._value = value;\n\n // clear any previous state of overlay panel\n this.checked.clear();\n\n // set checkmarks in overlay panel, so that it is displayed correctly when user opens it\n value?.forEach((v: any) => {\n this.checked.set(v, 'checked');\n });\n } else {\n this._value = value;\n }\n }\n\n getOptionText(index: number) {\n if (this.options[index] && this.optionsTextKey && this.options[index][this.optionsTextKey] != null) {\n return this.options[index][this.optionsTextKey];\n }\n return undefined;\n }\n\n getOptionValue(index: number) {\n // if set to true the complete option object is returned as value\n if (this.optionObjectAsValue === true) {\n return this.options[index];\n }\n\n // try to access standard property 'value'\n const v = this.options[index]['value'];\n\n if (v !== undefined) {\n return v;\n }\n\n // try to map the value to a property of the option by given key\n if (this.options[index] && this.optionsValueKey && this.options[index][this.optionsValueKey] != null) {\n return this.options[index][this.optionsValueKey];\n }\n return undefined;\n }\n\n removeChip(event: any, chip: string) {\n event.stopPropagation();\n if (!this._disabled) {\n this.value = chip;\n }\n }\n\n onOpenedChange(isOpen: boolean) {\n if (isOpen) {\n this.renderer.addClass(this.body, 'fng-select-panel-open');\n } else {\n this.renderer.removeClass(this.body, 'fng-select-panel-open');\n }\n }\n\n close() {\n this.showOptions = false;\n this.isEmpty();\n this.cd.markForCheck();\n }\n\n toggle() {\n if (this.disabled) {\n return;\n }\n\n this.triggerWidth = this.elementRef?.nativeElement?.getBoundingClientRect()?.width;\n this.showOptions = !this.showOptions;\n this.onOpenedChange(this.showOptions);\n this.isEmpty();\n this.cd.markForCheck();\n }\n\n select(value: any, event: Event) {\n if (this.disabled) {\n return;\n }\n\n event.stopPropagation();\n this.value = value;\n\n if (this.multiple !== true) {\n // closes overlay panel\n this.toggle();\n }\n }\n\n @HostListener('blur')\n markAsTouched(): void {\n if (this.disabled) {\n return;\n }\n\n this.onTouched();\n this.cd.markForCheck();\n }\n\n initProjectedOptions() {\n if (this.fngSelectOptions?.length) {\n this.hasProjectedOptions = true;\n this.fngSelectOptions.forEach(component => {\n component.update().then(el => {\n if (el) {\n this.options.push({ value: component.value, text: el.textContent?.trim() });\n this.projectedHtml.push(el.innerHTML);\n this.cd.detectChanges();\n }\n });\n });\n }\n this.cd.detectChanges();\n }\n\n isEmpty() {\n this.empty = !this.showOptions && (!this._value || '' === this._value);\n }\n}\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 (detach)=\"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\">\n <ng-content></ng-content>\n</div>\n","import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, HostListener, Input, OnDestroy, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngSliderComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngSliderComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n @Input() label: string | undefined;\n\n @Input()\n min = 0;\n\n @Input()\n max = 100;\n\n @Input()\n step: number = 0;\n\n @Input()\n digitsInfo: string | undefined;\n\n @Input()\n locale: string | undefined;\n\n @Input()\n hideValue = false;\n\n left: number = 0;\n\n numberoffset: number = 0;\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 = 0;\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 = new Subscription();\n private resizeSubject = new Subject<boolean>();\n\n constructor(private elementRef: ElementRef) {}\n\n onChange: ((value: number) => void) | undefined;\n\n onTouched: (() => void) | undefined;\n\n @HostListener('window:resize') onResize() {\n this.resizeSubject.next(true);\n }\n\n ngAfterViewInit() {\n this.resizeSub.add(this.resizeSubject.pipe(debounceTime(25)).subscribe(() => this.updateValuePosition()));\n }\n\n ngOnDestroy() {\n this.resizeSub.unsubscribe();\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 - 8);\n const decimalPipe = new DecimalPipe(this.locale || 'en-US');\n const stringValue = decimalPipe.transform(this.value, this.digitsInfo);\n this.numberoffset = 8 - (stringValue || '1').length * 6;\n }\n }\n}\n","<label class=\"fwe-slider\" [class.fng-slider-label]=\"label != null\">\n <span *ngIf=\"label\">{{ label }}</span>\n <input\n 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 />\n <span *ngIf=\"left != null && !hideValue\" class=\"fng-slider-value\" [style.left]=\"left + numberoffset + 'px'\">{{\n value | number: digitsInfo : locale\n }}</span>\n <div class=\"fng-slider-indicator\" [class.disabled]=\"disabled\" [style.width]=\"left + 'px'\"></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';\nimport { CommonModule } from '@angular/common';\n\nlet nextUniqueId = 0;\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngSwitchComponent),\n multi: true\n }\n ]\n})\nexport class FngSwitchComponent implements ControlValueAccessor {\n @Input() name: string | undefined;\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 | undefined;\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 = false;\n\n @Output() readonly change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n controlValueAccessorChangeFn: ((value: any) => void) | undefined;\n\n onTouched: (() => any) | undefined;\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 { 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';\nimport { CommonModule } from '@angular/common';\n\n/**\n * A custom form element for text inputs.\n */\n@Component({\n standalone: true,\n imports: [CommonModule],\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(() => FngTextAreaComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class FngTextAreaComponent implements OnInit, ControlValueAccessor {\n /**\n * The text input label.\n */\n @Input() label: string | undefined;\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 | undefined;\n @Input() tabindex: number = 0;\n @Input() name: string | undefined;\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 | undefined;\n\n /**\n * The getter for value.\n */\n get value(): string | undefined {\n return this.innerValue;\n }\n\n /**\n * The setter for value.\n */\n @Input()\n set value(value: string | undefined) {\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 | undefined;\n\n /**\n * Hint description when valid.\n */\n @Input() hint: string | undefined;\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 = 0;\n\n @ViewChild('inputElement') inputElement: ElementRef | undefined;\n\n /**\n * When true the text input has focus.\n */\n focused: boolean = false;\n\n /**\n * Triggered on change.\n */\n onChange: ((value: string | undefined) => void) | undefined;\n\n /**\n * Triggered on touch.\n */\n onTouched: (() => void) | undefined;\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\n #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()\"\n >{{ value }}</textarea\n >\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","import { ControlValueAccessor } from '@angular/forms';\nimport { Input, Directive } from '@angular/core';\n\n@Directive()\nexport class FngValueAccessorBaseDirective<T> implements ControlValueAccessor {\n @Input() disabled = false;\n\n protected innerValue: T | undefined;\n\n protected changed = new Array<(value: T) => void>();\n protected touched = new Array<() => void>();\n\n get value(): T | undefined {\n return this.innerValue;\n }\n\n set value(value: T | undefined) {\n if (value && 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 AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SecurityContext,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport QuillType from 'quill';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport Delta from 'quill-delta';\nimport { FngValueAccessorBaseDirective } from '../value-accessor-base';\n\nexport interface FngTextEditorConfiguration {\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 sanitizing?: {\n skipDefaultSanitizing?: boolean;\n skipWhitespaceHandling?: boolean;\n sanitizingFn?: (ds: DomSanitizer, value: string) => string;\n };\n focusCursorToEndOnWrite?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule],\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(() => FngTextEditorComponent),\n multi: true\n }\n ]\n})\nexport class FngTextEditorComponent\n extends FngValueAccessorBaseDirective<string | null | undefined>\n implements OnInit, AfterViewInit, OnChanges\n{\n id: string | undefined;\n quillEditor!: QuillType;\n editorElem!: HTMLElement;\n defaultConfig: FngTextEditorConfiguration = {\n toolbar: {\n bold: true,\n italic: true,\n underline: true,\n alignCenter: false,\n alignRight: false,\n bulletList: true,\n orderedList: true,\n image: true,\n link: true\n },\n sanitizing: {\n sanitizingFn: undefined,\n skipDefaultSanitizing: false,\n skipWhitespaceHandling: false\n },\n focusCursorToEndOnWrite: true\n };\n\n @ViewChild('btnBold') btnBold: ElementRef | undefined;\n @ViewChild('btnItalic') btnItalic: ElementRef | undefined;\n @ViewChild('btnUnderline') btnUnderline: ElementRef | undefined;\n @ViewChild('btnAlignCenter') btnAlignCenter: ElementRef | undefined;\n @ViewChild('btnAlignRight') btnAlignRight: ElementRef | undefined;\n @ViewChild('btnLink') btnLink: ElementRef | undefined;\n @ViewChild('btnUl') btnUl: ElementRef | undefined;\n @ViewChild('btnOl') btnOl: ElementRef | undefined;\n @ViewChild('btnImage') btnImage: ElementRef | undefined;\n\n @Output() fngChange = new EventEmitter<any>();\n @Output() change = new EventEmitter<any>();\n\n @Input() config: FngTextEditorConfiguration = this.defaultConfig;\n @Input() modules: any;\n @Input() label: string | undefined;\n @Input() readOnly: boolean = false;\n @Input() maxLength: number = 0;\n @Input() error: string | undefined;\n @Input() hint: string | undefined;\n @Input()\n override set value(value: string | null | undefined) {\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 override get value() {\n return this.innerValue;\n }\n\n // needed to access editor content\n valueGetter = (editorElement: HTMLElement): string | any => {\n let html: string | undefined = editorElement?.querySelector('.ql-editor')?.innerHTML;\n if (html === '<p><br></p>' || html === '<div><br></div>') {\n html = undefined;\n }\n return html;\n };\n\n // needed to access editor content\n valueSetter = (quillEditor: QuillType, value: any): any => {\n const sanitizeConfig = this.config?.sanitizing || this.defaultConfig.sanitizing;\n\n if (sanitizeConfig?.sanitizingFn) {\n value = sanitizeConfig.sanitizingFn(this.domSanitizer, value);\n }\n if (sanitizeConfig && !sanitizeConfig.skipDefaultSanitizing) {\n value = this.domSanitizer.sanitize(SecurityContext.HTML, value);\n }\n if (sanitizeConfig && !sanitizeConfig.skipWhitespaceHandling) {\n value = this.handleWhitespace(value);\n }\n\n return quillEditor.clipboard.convert({ html: value });\n };\n\n constructor(\n public elementRef: ElementRef,\n private renderer: Renderer2,\n private domSanitizer: DomSanitizer\n ) {\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 });\n this.setEditorLabel();\n this.addWhitespaceMatcher();\n this.addImageMatcher();\n\n const content = this.valueSetter(this.quillEditor, this.innerValue || '');\n this.quillEditor.setContents(content, 'silent');\n (this.quillEditor.getModule('history') as any).clear();\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 = {\n toolbar: { ...this.defaultConfig.toolbar, ...changes['config'].currentValue?.toolbar },\n sanitizing: { ...this.defaultConfig.sanitizing, ...changes['config'].currentValue?.sanitizing }\n };\n }\n\n if (!this.quillEditor) {\n return;\n }\n\n this.handle();\n }\n\n override writeValue(value: string) {\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 if (this.config?.focusCursorToEndOnWrite) {\n // when new content gets written we always set cursor focus to end of text\n this.quillEditor.setSelection(Number.MAX_SAFE_INTEGER, 0);\n }\n }\n\n override 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 | undefined = undefined;\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 || 0;\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 return false;\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 // not allowed, remove image by setting up a new 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(/&#9;/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 type=\"button\" #btnAlignCenter class=\"ql-align fwe-d-none action-align-center\" aria-hidden=\"true\" value=\"center\"></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=\"fng-icon-svg-text-align-center\" [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=\"fng-icon-svg-text-align-right\" [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=\"fng-icon-svg-list-view\"></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=\"fng-icon-svg-enumeration\"></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=\"fng-icon-svg-image\"></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=\"fng-icon-svg-link\"></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 { NgModule } from '@angular/core';\nimport { FngCheckboxComponent } from './checkbox/checkbox.component';\nimport { FngColorIndicatorComponent } from './color-indicator/color-indicator.component';\nimport { FngColorPickerComponent } from './color-picker/color-picker.component';\nimport { FngTextInputComponent } from './text-input/text-input.component';\nimport { FngTimePickerDropdownComponent } from './time-picker/time-picker-dropdown/time-picker-dropdown.component';\nimport { FngTimePickerComponent } from './time-picker/time-picker.component';\nimport { FngDatePickerComponent } from './date-picker/date-picker.component';\nimport { FngDateRangePickerComponent } from './date-range-picker/date-range-picker.component';\nimport { FngRadioComponent, FngRadioGroupDirective } from './radio/radio.component';\nimport { FngSegmentComponent } from './segment/segment.component';\nimport { FngSegmentControlComponent } from './segment/segment-control/segment-control.component';\nimport { FngSelectOptionComponent } from './select/select-option/select-option.component';\nimport { FngSelectComponent } from './select/select.component';\nimport { FngSliderComponent } from './slider/slider.component';\nimport { FngSwitchComponent } from './switch/switch.component';\nimport { FngTextAreaComponent } from './text-area/text-area.component';\nimport { FngTextEditorComponent } from './text-editor/text-editor.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n ReactiveFormsModule,\n FormsModule,\n FngCheckboxComponent,\n FngColorIndicatorComponent,\n FngColorPickerComponent,\n FngTextInputComponent,\n FngTimePickerDropdownComponent,\n FngTimePickerComponent,\n FngDatePickerComponent,\n FngDateRangePickerComponent,\n FngRadioGroupDirective,\n FngRadioComponent,\n FngSegmentComponent,\n FngSegmentControlComponent,\n FngSelectOptionComponent,\n FngSelectComponent,\n FngSliderComponent,\n FngSwitchComponent,\n FngTextAreaComponent,\n FngTextEditorComponent\n ],\n exports: [\n ReactiveFormsModule,\n FormsModule,\n FngCheckboxComponent,\n FngColorIndicatorComponent,\n FngColorPickerComponent,\n FngTextInputComponent,\n FngTimePickerDropdownComponent,\n FngTimePickerComponent,\n FngDatePickerComponent,\n FngDateRangePickerComponent,\n FngRadioGroupDirective,\n FngRadioComponent,\n FngSegmentComponent,\n FngSegmentControlComponent,\n FngSelectOptionComponent,\n FngSelectComponent,\n FngSliderComponent,\n FngSwitchComponent,\n FngTextAreaComponent,\n FngTextEditorComponent\n ]\n})\nexport class FestoAngularFormsModule {}\n","import { NgModule } from '@angular/core';\nimport { FestoAngularComponentsModule } from './components/components.module';\nimport { FestoAngularFormsModule } from './forms/forms.module';\nimport { FngSafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { FestoAngularModalsModule } from './modals/modals.module';\nimport { FestoAngularSnackbarModule } from './components/snackbar/snackbar.module';\n\n@NgModule({\n declarations: [],\n imports: [FngSafeHtmlPipe, FestoAngularComponentsModule, FestoAngularFormsModule, FestoAngularModalsModule, FestoAngularSnackbarModule],\n exports: [FngSafeHtmlPipe, FestoAngularComponentsModule, FestoAngularFormsModule, FestoAngularModalsModule, FestoAngularSnackbarModule]\n})\nexport class FestoAngularModule {}\n","/*\n * Public API Surface of angular\n */\n\nexport * from './lib/components/accordion/index';\nexport * from './lib/components/breadcrumb/breadcrumb.component';\nexport * from './lib/components/buttons/button/button.component';\nexport * from './lib/components/buttons/link-button/link-button.component';\nexport * from './lib/components/chips/chip-container/chip-container.component';\nexport * from './lib/components/chips/chip/chip.component';\nexport * from './lib/components/components.module';\nexport * from './lib/components/loading-indicator/loading-indicator.component';\nexport * from './lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component';\nexport * from './lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component';\nexport * from './lib/components/mobile-flyout/mobile-flyout.component';\nexport * from './lib/components/pagination/pagination.component';\nexport * from './lib/components/popovers/legend/legend.component';\nexport * from './lib/components/popovers/legend/legend.directive';\nexport * from './lib/components/popovers/popover-content/popover-content.component';\nexport * from './lib/components/popovers/popover-content/popover-content.directive';\nexport * from './lib/components/popovers/popover-menu/popover-menu.component';\nexport * from './lib/components/popovers/popover.models';\nexport * from './lib/components/popovers/popover.service';\nexport * from './lib/components/popovers/popover/popover.component';\nexport * from './lib/components/popovers/tooltip/tooltip.directive';\nexport * from './lib/components/progress/progress.component';\nexport * from './lib/components/scroll/scrollable.directive';\nexport * from './lib/components/search-input/search-input.component';\nexport * from './lib/components/snackbar/snackbar-container.component';\nexport * from './lib/components/snackbar/snackbar-container.directive';\nexport * from './lib/components/snackbar/snackbar.module';\nexport * from './lib/components/snackbar/snackbar.service';\nexport * from './lib/components/stepper-horizontal/step-horizontal/step-horizontal.component';\nexport * from './lib/components/stepper-horizontal/stepper-horizontal.component';\nexport * from './lib/components/stepper-vertical/step-vertical/step-vertical.component';\nexport * from './lib/components/stepper-vertical/stepper-vertical.component';\nexport * from './lib/components/table-header-cell/table-header-cell.directive';\nexport * from './lib/components/tabs/tab-pane/tab-pane.component';\nexport * from './lib/components/tabs/tabs.component';\nexport * from './lib/components/overlay/overlay-outlet.directive';\nexport * from './lib/components/overlay/overlay-content/overlay-content.component';\n\nexport * from './lib/modals/alert/alert.component';\nexport * from './lib/modals/index';\nexport * from './lib/modals/modal.service';\nexport * from './lib/modals/modals.module';\n\nexport * from './lib/components/bottom-sheet/bottom-sheet.component';\nexport * from './lib/components/sidebar-overlay/sidebar-overlay.component';\nexport * from './lib/forms/checkbox/checkbox.component';\nexport * from './lib/forms/color-indicator/color-indicator.component';\nexport * from './lib/forms/color-picker/color-picker.component';\nexport * from './lib/forms/date-picker/date-picker.component';\nexport * from './lib/forms/date-range-picker/date-range-picker.component';\nexport * from './lib/forms/forms.module';\nexport * from './lib/forms/radio/radio.component';\nexport * from './lib/forms/segment/segment-control/segment-control.component';\nexport * from './lib/forms/segment/segment.component';\nexport * from './lib/forms/select/select-option/select-option.component';\nexport * from './lib/forms/select/select.component';\nexport * from './lib/forms/slider/slider.component';\nexport * from './lib/forms/switch/switch.component';\nexport * from './lib/forms/text-area/text-area.component';\nexport * from './lib/forms/text-editor/text-editor.component';\nexport * from './lib/forms/text-input/text-input.component';\nexport * from './lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component';\nexport * from './lib/forms/time-picker/time-picker.component';\n\nexport * from './lib/directives/click-outside.directive';\n\nexport * from './lib/pipes/safe-html.pipe';\n\nexport * from './lib/festo-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i1.PopoverRef","i1.FngPopoverService","i1.FngSnackbarService","nextUniqueId","i1.FngUniqueSelectionDispatcher"],"mappings":"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"}