@design-factory/design-factory 18.1.1 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +4 -4
  2. package/design-factory-initial-branding.css +1 -1
  3. package/design-factory.css +1 -1
  4. package/fesm2022/design-factory.mjs +748 -921
  5. package/fesm2022/design-factory.mjs.map +1 -1
  6. package/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.d.ts +3 -9
  7. package/lib/angular/accessibility/directives/skip-link.directive.d.ts +3 -9
  8. package/lib/angular/card/manage-card-selection.directive.d.ts +5 -5
  9. package/lib/angular/datepicker/datepicker-range.directive.d.ts +5 -6
  10. package/lib/angular/datepicker/datepicker.module.d.ts +3 -5
  11. package/lib/angular/inputs/icon/inputicon.directive.d.ts +5 -6
  12. package/lib/angular/mediaqueries/ifMedia.directive.d.ts +8 -9
  13. package/lib/angular/modal/modal.service.d.ts +4 -0
  14. package/lib/angular/progressbar/progressbar.component.d.ts +18 -28
  15. package/lib/angular/progressindicator/default/default-spinner.component.d.ts +4 -4
  16. package/lib/angular/progressindicator/progressindicator-backdrop.component.d.ts +4 -4
  17. package/lib/angular/progressindicator/progressindicator-container.component.d.ts +5 -7
  18. package/lib/angular/progressindicator/progressindicator.directive.d.ts +9 -11
  19. package/lib/angular/selects/events/manage-badge-events.directive.d.ts +4 -5
  20. package/lib/angular/selects/option-highlight.directive.d.ts +7 -12
  21. package/lib/angular/sidenav/dfSideNavCollapse.d.ts +16 -18
  22. package/lib/angular/sidenav/excludeTrap.directive.d.ts +9 -10
  23. package/lib/angular/sidenav/sidenav.component.d.ts +7 -8
  24. package/lib/angular/sidenav/sidenavlist.component.d.ts +8 -8
  25. package/lib/angular/slider/direction/sliderdirection.directive.d.ts +5 -7
  26. package/lib/angular/slider/lib/slider-element.directive.d.ts +2 -1
  27. package/lib/angular/slider/lib/slider-handle.directive.d.ts +1 -1
  28. package/lib/angular/slider/lib/slider-label.directive.d.ts +1 -1
  29. package/lib/angular/slider/lib/slider.component.d.ts +1 -1
  30. package/lib/angular/slider/lib/tooltip-wrapper.component.d.ts +1 -1
  31. package/lib/angular/slider/slider.module.d.ts +1 -1
  32. package/lib/angular/stepper/stepper.component.d.ts +7 -8
  33. package/lib/angular/utils/titleTruncate.directive.d.ts +2 -3
  34. package/lib/angular/waves-of-progress/waves.directive.d.ts +4 -3
  35. package/lib/index.d.ts +0 -1
  36. package/package.json +14 -16
  37. package/schematics/ng-add/index.js +1 -1
  38. package/styles/scss/agnosui/_variables.scss +9 -3
  39. package/styles/scss/bootstrap/_variables.scss +54 -12
  40. package/styles/scss/components/accordion/_accordion.scss +67 -6
  41. package/styles/scss/components/accordion/_accordion.variables.scss +2 -0
  42. package/styles/scss/components/alert/_alert.scss +3 -2
  43. package/styles/scss/components/badge/_badge.scss +13 -3
  44. package/styles/scss/components/badge/_badge.variables.scss +1 -0
  45. package/styles/scss/components/button/_button.scss +5 -0
  46. package/styles/scss/components/form/_form.scss +4 -0
  47. package/styles/scss/components/sidenav/_sidenav.scss +5 -2
  48. package/styles/scss/df-styles-namespace.scss +3 -1
  49. package/styles/scss/df-styles.scss +3 -1
  50. package/styles/scss/themes/brand2023/_variables.scss +80 -28
  51. package/esm2022/design-factory.mjs +0 -5
  52. package/esm2022/environment.mjs +0 -5
  53. package/esm2022/index.mjs +0 -5
  54. package/esm2022/lib/angular/accessibility/accessibility.module.mjs +0 -19
  55. package/esm2022/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.mjs +0 -32
  56. package/esm2022/lib/angular/accessibility/directives/skip-link.directive.mjs +0 -64
  57. package/esm2022/lib/angular/alert/alert.module.mjs +0 -17
  58. package/esm2022/lib/angular/animation/ngbTransition.mjs +0 -76
  59. package/esm2022/lib/angular/animation/util.mjs +0 -30
  60. package/esm2022/lib/angular/card/card-advanced.module.mjs +0 -17
  61. package/esm2022/lib/angular/card/manage-card-selection.directive.mjs +0 -47
  62. package/esm2022/lib/angular/datepicker/closedatepicker.directive.mjs +0 -38
  63. package/esm2022/lib/angular/datepicker/datepicker-keyboard-nav.service.mjs +0 -39
  64. package/esm2022/lib/angular/datepicker/datepicker-range.directive.mjs +0 -101
  65. package/esm2022/lib/angular/datepicker/datepicker-range.service.mjs +0 -97
  66. package/esm2022/lib/angular/datepicker/datepicker.module.mjs +0 -42
  67. package/esm2022/lib/angular/df.module.mjs +0 -102
  68. package/esm2022/lib/angular/footer/footer.module.mjs +0 -17
  69. package/esm2022/lib/angular/icon/amadeus-icon.mjs +0 -79
  70. package/esm2022/lib/angular/icon/icon.module.mjs +0 -17
  71. package/esm2022/lib/angular/icon/insert/insert-icon.directive.mjs +0 -47
  72. package/esm2022/lib/angular/icon/insert/insert-icon.module.mjs +0 -17
  73. package/esm2022/lib/angular/inputs/click/trigger-click.directive.mjs +0 -28
  74. package/esm2022/lib/angular/inputs/icon/inputicon.directive.mjs +0 -95
  75. package/esm2022/lib/angular/inputs/input-advanced.module.mjs +0 -19
  76. package/esm2022/lib/angular/mediaqueries/ifMedia.directive.mjs +0 -52
  77. package/esm2022/lib/angular/mediaqueries/media.module.mjs +0 -17
  78. package/esm2022/lib/angular/mediaqueries/media.service.mjs +0 -46
  79. package/esm2022/lib/angular/mediaqueries/mediaUtils.service.mjs +0 -185
  80. package/esm2022/lib/angular/modal/modal.service.mjs +0 -36
  81. package/esm2022/lib/angular/popover/config/popover.config.mjs +0 -15
  82. package/esm2022/lib/angular/popover/popover.module.mjs +0 -17
  83. package/esm2022/lib/angular/progressbar/progressbar.component.mjs +0 -156
  84. package/esm2022/lib/angular/progressbar/progressbar.module.mjs +0 -18
  85. package/esm2022/lib/angular/progressindicator/default/default-spinner.component.mjs +0 -23
  86. package/esm2022/lib/angular/progressindicator/progressindicator-backdrop.component.mjs +0 -29
  87. package/esm2022/lib/angular/progressindicator/progressindicator-config.mjs +0 -25
  88. package/esm2022/lib/angular/progressindicator/progressindicator-container.component.mjs +0 -52
  89. package/esm2022/lib/angular/progressindicator/progressindicator-ref.mjs +0 -8
  90. package/esm2022/lib/angular/progressindicator/progressindicator.directive.mjs +0 -39
  91. package/esm2022/lib/angular/progressindicator/progressindicator.module.mjs +0 -45
  92. package/esm2022/lib/angular/progressindicator/progressindicator.service.mjs +0 -170
  93. package/esm2022/lib/angular/right-to-left/directionDetection.service.mjs +0 -32
  94. package/esm2022/lib/angular/selects/events/manage-badge-events.directive.mjs +0 -65
  95. package/esm2022/lib/angular/selects/nav/manage-nav-select.directive.mjs +0 -108
  96. package/esm2022/lib/angular/selects/option-highlight.directive.mjs +0 -59
  97. package/esm2022/lib/angular/selects/select.model.mjs +0 -2
  98. package/esm2022/lib/angular/selects/select.module.mjs +0 -22
  99. package/esm2022/lib/angular/sidenav/dfSideNavAnimation.mjs +0 -73
  100. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.mjs +0 -94
  101. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.module.mjs +0 -18
  102. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.service.mjs +0 -37
  103. package/esm2022/lib/angular/sidenav/dfSideNavCollapseConfig.mjs +0 -27
  104. package/esm2022/lib/angular/sidenav/excludeTrap.directive.mjs +0 -55
  105. package/esm2022/lib/angular/sidenav/manage-sidenav.directive.mjs +0 -26
  106. package/esm2022/lib/angular/sidenav/sidenav-config.mjs +0 -25
  107. package/esm2022/lib/angular/sidenav/sidenav.component.mjs +0 -86
  108. package/esm2022/lib/angular/sidenav/sidenav.module.mjs +0 -52
  109. package/esm2022/lib/angular/sidenav/sidenav.service.mjs +0 -316
  110. package/esm2022/lib/angular/sidenav/sidenavlist.component.mjs +0 -59
  111. package/esm2022/lib/angular/slider/direction/sliderdirection.directive.mjs +0 -36
  112. package/esm2022/lib/angular/slider/lib/change-context.mjs +0 -3
  113. package/esm2022/lib/angular/slider/lib/compatibility-helper.mjs +0 -15
  114. package/esm2022/lib/angular/slider/lib/event-listener-helper.mjs +0 -77
  115. package/esm2022/lib/angular/slider/lib/event-listener.mjs +0 -3
  116. package/esm2022/lib/angular/slider/lib/math-helper.mjs +0 -15
  117. package/esm2022/lib/angular/slider/lib/options.mjs +0 -123
  118. package/esm2022/lib/angular/slider/lib/pointer-type.mjs +0 -9
  119. package/esm2022/lib/angular/slider/lib/slider-element.directive.mjs +0 -190
  120. package/esm2022/lib/angular/slider/lib/slider-handle.directive.mjs +0 -65
  121. package/esm2022/lib/angular/slider/lib/slider-label.directive.mjs +0 -41
  122. package/esm2022/lib/angular/slider/lib/slider.component.mjs +0 -1998
  123. package/esm2022/lib/angular/slider/lib/tooltip-wrapper.component.mjs +0 -23
  124. package/esm2022/lib/angular/slider/lib/value-helper.mjs +0 -50
  125. package/esm2022/lib/angular/slider/slider.module.mjs +0 -37
  126. package/esm2022/lib/angular/stepper/stepper.component.mjs +0 -65
  127. package/esm2022/lib/angular/stepper/stepper.directive.mjs +0 -174
  128. package/esm2022/lib/angular/stepper/stepper.module.mjs +0 -17
  129. package/esm2022/lib/angular/stepper/stepper.service.mjs +0 -213
  130. package/esm2022/lib/angular/toast/toast.module.mjs +0 -17
  131. package/esm2022/lib/angular/tooltip/tooltip.module.mjs +0 -18
  132. package/esm2022/lib/angular/tooltip/truncate/tooltipTruncate.directive.mjs +0 -31
  133. package/esm2022/lib/angular/utils/html-element-helper.mjs +0 -8
  134. package/esm2022/lib/angular/utils/scrollbar.service.mjs +0 -79
  135. package/esm2022/lib/angular/utils/titleTruncate.directive.mjs +0 -39
  136. package/esm2022/lib/angular/waves-of-progress/waves.directive.mjs +0 -86
  137. package/esm2022/lib/angular/waves-of-progress/waves.module.mjs +0 -16
  138. package/esm2022/lib/index.mjs +0 -93
  139. package/lib/angular/datepicker/closedatepicker.directive.d.ts +0 -10
@@ -1,52 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { DfSideNavComponent, DfSideNavHeaderDirective, DfSideNavIconDirective, DfSideNavItemDirective } from './sidenav.component';
3
- import { DfManageSideNavDirective } from './manage-sidenav.directive';
4
- import { DfMediaModule } from '../mediaqueries/media.module';
5
- import { DfSideNavCollapseModule } from './dfSideNavCollapse.module';
6
- import { DfExcludeTrapDirective } from '../sidenav/excludeTrap.directive';
7
- import * as i0 from "@angular/core";
8
- export { DfSideNavComponent, DfSideNavHeaderDirective, DfSideNavIconDirective, DfSideNavItemDirective } from './sidenav.component';
9
- export { DfManageSideNavDirective } from './manage-sidenav.directive';
10
- export { DfExcludeTrapDirective } from '../sidenav/excludeTrap.directive';
11
- export class DfSideNavModule {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavModule, imports: [DfManageSideNavDirective,
14
- DfSideNavComponent,
15
- DfSideNavHeaderDirective,
16
- DfExcludeTrapDirective,
17
- DfSideNavIconDirective,
18
- DfSideNavItemDirective], exports: [DfManageSideNavDirective,
19
- DfSideNavComponent,
20
- DfSideNavHeaderDirective,
21
- DfExcludeTrapDirective,
22
- DfSideNavIconDirective,
23
- DfSideNavItemDirective,
24
- DfSideNavCollapseModule,
25
- DfMediaModule] }); }
26
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavModule, imports: [DfSideNavComponent, DfSideNavCollapseModule,
27
- DfMediaModule] }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavModule, decorators: [{
30
- type: NgModule,
31
- args: [{
32
- imports: [
33
- DfManageSideNavDirective,
34
- DfSideNavComponent,
35
- DfSideNavHeaderDirective,
36
- DfExcludeTrapDirective,
37
- DfSideNavIconDirective,
38
- DfSideNavItemDirective
39
- ],
40
- exports: [
41
- DfManageSideNavDirective,
42
- DfSideNavComponent,
43
- DfSideNavHeaderDirective,
44
- DfExcludeTrapDirective,
45
- DfSideNavIconDirective,
46
- DfSideNavItemDirective,
47
- DfSideNavCollapseModule,
48
- DfMediaModule
49
- ]
50
- }]
51
- }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2lkZW5hdi9zaWRlbmF2Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRTFFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQXNCMUUsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLFlBbEJ4Qix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLHNCQUFzQixhQUd0Qix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsYUFBYTsrR0FHSixlQUFlLFlBakJ4QixrQkFBa0IsRUFhbEIsdUJBQXVCO1lBQ3ZCLGFBQWE7OzJGQUdKLGVBQWU7a0JBcEIzQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCx3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixhQUFhO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERmU2lkZU5hdkNvbXBvbmVudCxcbiAgRGZTaWRlTmF2SGVhZGVyRGlyZWN0aXZlLFxuICBEZlNpZGVOYXZJY29uRGlyZWN0aXZlLFxuICBEZlNpZGVOYXZJdGVtRGlyZWN0aXZlXG59IGZyb20gJy4vc2lkZW5hdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZNYW5hZ2VTaWRlTmF2RGlyZWN0aXZlIH0gZnJvbSAnLi9tYW5hZ2Utc2lkZW5hdi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGZNZWRpYU1vZHVsZSB9IGZyb20gJy4uL21lZGlhcXVlcmllcy9tZWRpYS5tb2R1bGUnO1xuaW1wb3J0IHsgRGZTaWRlTmF2Q29sbGFwc2VNb2R1bGUgfSBmcm9tICcuL2RmU2lkZU5hdkNvbGxhcHNlLm1vZHVsZSc7XG5pbXBvcnQgeyBEZkV4Y2x1ZGVUcmFwRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2lkZW5hdi9leGNsdWRlVHJhcC5kaXJlY3RpdmUnO1xuXG5leHBvcnQge1xuICBEZlNpZGVOYXZDb21wb25lbnQsXG4gIERmU2lkZU5hdkhlYWRlckRpcmVjdGl2ZSxcbiAgRGZTaWRlTmF2SWNvbkRpcmVjdGl2ZSxcbiAgRGZTaWRlTmF2SXRlbURpcmVjdGl2ZVxufSBmcm9tICcuL3NpZGVuYXYuY29tcG9uZW50JztcbmV4cG9ydCB7IERmTWFuYWdlU2lkZU5hdkRpcmVjdGl2ZSB9IGZyb20gJy4vbWFuYWdlLXNpZGVuYXYuZGlyZWN0aXZlJztcbmV4cG9ydCB7IERmRXhjbHVkZVRyYXBEaXJlY3RpdmUgfSBmcm9tICcuLi9zaWRlbmF2L2V4Y2x1ZGVUcmFwLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBEZk1hbmFnZVNpZGVOYXZEaXJlY3RpdmUsXG4gICAgRGZTaWRlTmF2Q29tcG9uZW50LFxuICAgIERmU2lkZU5hdkhlYWRlckRpcmVjdGl2ZSxcbiAgICBEZkV4Y2x1ZGVUcmFwRGlyZWN0aXZlLFxuICAgIERmU2lkZU5hdkljb25EaXJlY3RpdmUsXG4gICAgRGZTaWRlTmF2SXRlbURpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRGZNYW5hZ2VTaWRlTmF2RGlyZWN0aXZlLFxuICAgIERmU2lkZU5hdkNvbXBvbmVudCxcbiAgICBEZlNpZGVOYXZIZWFkZXJEaXJlY3RpdmUsXG4gICAgRGZFeGNsdWRlVHJhcERpcmVjdGl2ZSxcbiAgICBEZlNpZGVOYXZJY29uRGlyZWN0aXZlLFxuICAgIERmU2lkZU5hdkl0ZW1EaXJlY3RpdmUsXG4gICAgRGZTaWRlTmF2Q29sbGFwc2VNb2R1bGUsXG4gICAgRGZNZWRpYU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERmU2lkZU5hdk1vZHVsZSB7fVxuIl19
@@ -1,316 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, Subscription } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./sidenav-config";
5
- export var DfNavItemType;
6
- (function (DfNavItemType) {
7
- DfNavItemType[DfNavItemType["subMenus"] = 0] = "subMenus";
8
- DfNavItemType[DfNavItemType["actionButton"] = 1] = "actionButton";
9
- DfNavItemType[DfNavItemType["routerLink"] = 2] = "routerLink";
10
- DfNavItemType[DfNavItemType["link"] = 3] = "link";
11
- DfNavItemType[DfNavItemType["externalLink"] = 4] = "externalLink";
12
- DfNavItemType[DfNavItemType["separator"] = 5] = "separator";
13
- DfNavItemType[DfNavItemType["template"] = 6] = "template";
14
- DfNavItemType[DfNavItemType["title"] = 7] = "title";
15
- })(DfNavItemType || (DfNavItemType = {}));
16
- /**
17
- * A service for managing the sidenav panel.
18
- * This service is included at root level
19
- *
20
- * Creating a sidenav is straightforward: use [DfSideNavComponent](#/components/sidenav/api#DfSideNavComponent) component
21
- */
22
- export class DfSideNavService {
23
- constructor(config) {
24
- this.config = config;
25
- this.type = DfNavItemType;
26
- this._items = [];
27
- this.subscription = new Subscription();
28
- this._sideNavItems$ = new BehaviorSubject([]);
29
- this._isMinmized$ = new BehaviorSubject(config.isMinmized);
30
- this._isCollapsed$ = new BehaviorSubject(config.isCollapsed);
31
- this._isPresent$ = new BehaviorSubject(config.isPresent);
32
- this._isInMenuOverlay$ = new BehaviorSubject(config.isInMenuOverlay);
33
- this._isAppOverlay$ = new BehaviorSubject(config.isAppOverlay);
34
- this._activeItem$ = new BehaviorSubject(null);
35
- this._isAppOverlayMode = config.isAppOverlayMode;
36
- this.subscription.add(this._isCollapsed$.subscribe(() => {
37
- this.updateOverLay();
38
- }));
39
- }
40
- ngOnDestroy() {
41
- this.subscription.unsubscribe();
42
- }
43
- /**
44
- * Use this to init the list of Elements from your sidenav
45
- *
46
- *
47
- * Second option withRouter is to be set to false if you are not passing link string for the angular Router
48
- * Here we are not deep copying the array --> the function will change it
49
- */
50
- initItems(items, withRouter = true) {
51
- this._items = items;
52
- this.addNavItemType(withRouter);
53
- this.setActiveItem(this._items);
54
- this.dispatchSideNavItems();
55
- }
56
- /**
57
- * Use this to inactivate the list of Elements from your sidenav
58
- * isActive properties of all items will be set to false recursively
59
- *
60
- */
61
- inactiveItems(list) {
62
- list.forEach((item) => {
63
- item.isActive = false;
64
- if (item.subMenus) {
65
- this.inactiveItems(item.subMenus);
66
- }
67
- });
68
- this.dispatchSideNavItems();
69
- }
70
- /**
71
- * Use this to active the item pass as input
72
- * This function inactivate all the other items of the service
73
- * It will then dispatch the list of items of the sideNav to activeItem$
74
- *
75
- */
76
- activeItem(item) {
77
- this.inactiveItems(this._items);
78
- item.isActive = true;
79
- this._activeItem$.next(item);
80
- this.dispatchSideNavItems();
81
- }
82
- /**
83
- * Getter to know when to put/remove the overlay.
84
- * `True` in case of overlay needed
85
- *
86
- */
87
- get isAppOverlay$() {
88
- return this._isAppOverlay$.asObservable();
89
- }
90
- /**
91
- * Getter to know if the sidenav is in an overlay panel or not
92
- * `True` in case of overlay panel
93
- *
94
- */
95
- get isInMenuOverlay$() {
96
- return this._isInMenuOverlay$.asObservable();
97
- }
98
- /**
99
- * Getter to know the current activeItem a user clicked on
100
- *
101
- */
102
- get activeItem$() {
103
- return this._activeItem$.asObservable();
104
- }
105
- /**
106
- * Getter to know if the sideNav is present in the page
107
- * SideNav may be collapsed here or not
108
- *
109
- */
110
- get isPresent$() {
111
- return this._isPresent$.asObservable();
112
- }
113
- /**
114
- * Future Options
115
- */
116
- get isMinimized$() {
117
- return this._isMinmized$.asObservable();
118
- }
119
- /**
120
- * Getter to know if the SideNav is collapsed or not
121
- * If `true` the SideNav is collapsed
122
- *
123
- */
124
- get isCollapsed$() {
125
- return this._isCollapsed$.asObservable();
126
- }
127
- /**
128
- * Getter of the SideNav Items after they have beens changed
129
- *
130
- */
131
- get sideNavItems$() {
132
- return this._sideNavItems$.asObservable();
133
- }
134
- /**
135
- * Getter to know the mode Apply for the SideNav
136
- * If `true` the SideNav can be in overlay (but not necessary is).
137
- *
138
- */
139
- get isAppOverlayMode() {
140
- return this._isAppOverlayMode;
141
- }
142
- // initItems must be used to push new items to the service
143
- get items() {
144
- return this._items;
145
- }
146
- /**
147
- * Use this to toggle a SideNav Item (either from expand to collapse or the other way around).
148
- * isCollapsed attribute of the input item is changed.
149
- * All items are push again to the stream of items.
150
- * This is used internally by the SideNav in case of click and Enter on an Item with subMenus
151
- */
152
- toggle(itemInput) {
153
- itemInput.isCollapsed = !itemInput.isCollapsed;
154
- this.dispatchSideNavItems();
155
- }
156
- /**
157
- *
158
- * @param itemInput
159
- */
160
- collapseItem(itemInput) {
161
- this.collapse(itemInput, this._items);
162
- this.dispatchSideNavItems();
163
- }
164
- /**
165
- * Use this to collapseAll items
166
- */
167
- collapseAllItems() {
168
- this.collapseAll(this._items);
169
- this.dispatchSideNavItems();
170
- }
171
- /**
172
- * Use this to set/unset the SideNav in an Overlay Menu
173
- * If input is `True` then the SideNav will be in an Overlay Menu
174
- * (when not collapsed)
175
- *
176
- */
177
- setInMenuSideNav(on) {
178
- this._isInMenuOverlay$.next(on);
179
- }
180
- /**
181
- * Use this to collapse the SideNav
182
- *
183
- */
184
- hideSideNav() {
185
- this._isCollapsed$.next(true);
186
- }
187
- /**
188
- * Use this to make the SideNav visible (uncollapse)
189
- *
190
- */
191
- showSideNav() {
192
- this._isCollapsed$.next(false);
193
- }
194
- /**
195
- * Use this to toggle the SideNav status collapse/visible
196
- *
197
- */
198
- toggleSideNav() {
199
- this._isCollapsed$.next(!this._isCollapsed$.value);
200
- }
201
- // internal usage from the SideNav. Call when component is destroy
202
- removeSideBar() {
203
- this._isCollapsed$.next(this.config.isCollapsed);
204
- this._isPresent$.next(false);
205
- }
206
- /**
207
- * Use this to set the App Overlay Mode
208
- * Input `True` if you want to set the AppOverlay
209
- * An event is send to isAppOverlay$ depending on your status
210
- * if Input = `True` and isCollapsed = `False` then isAppOverlay$
211
- * will be `True`
212
- *
213
- */
214
- setAppOverlayMode(on) {
215
- this._isAppOverlayMode = on;
216
- this.updateOverLay();
217
- }
218
- // Internal usage to the sidenav component
219
- // Do not use
220
- setSideNav() {
221
- this._isPresent$.next(true);
222
- }
223
- /**
224
- *
225
- * @param itemInput
226
- * @param itemsList
227
- */
228
- collapse(itemInput, itemsList) {
229
- for (const item of itemsList) {
230
- if (item === itemInput && item.subMenus) {
231
- item.isCollapsed = true;
232
- return true; // propagate the collapse up
233
- }
234
- else if (item === itemInput) {
235
- return true;
236
- }
237
- else if (item.subMenus) {
238
- const needcol = this.collapse(itemInput, item.subMenus);
239
- if (needcol) {
240
- item.isCollapsed = true; // collapse it
241
- return true; // propagate the collapse up
242
- }
243
- }
244
- }
245
- return false;
246
- }
247
- /**
248
- *
249
- * @param itemsList
250
- */
251
- collapseAll(itemsList) {
252
- itemsList.forEach((item) => {
253
- if (item.subMenus) {
254
- item.isCollapsed = true;
255
- this.collapseAll(item.subMenus);
256
- }
257
- });
258
- }
259
- // Only one item at the time must be active
260
- // Active flag in item is only valid for action button and link
261
- // Router link does not use this active flag to work
262
- // It is up to you to inactivateItems when needed when you mix actionButton and router link
263
- // To avoid more than one active state visible
264
- setActiveItem(items, foundAnActive = false) {
265
- let foundActive = foundAnActive;
266
- items.forEach((item) => {
267
- if (item.isActive && foundAnActive) {
268
- throw Error('DfSideNavService must be init with only one isActive item');
269
- }
270
- else if (item.isActive) {
271
- this._activeItem$.next(item);
272
- foundActive = true;
273
- }
274
- if (item.subMenus) {
275
- foundActive = this.setActiveItem(item.subMenus, foundActive);
276
- }
277
- });
278
- return foundActive;
279
- }
280
- addNavItemType(withRouter, items = this._items) {
281
- items.forEach((item) => {
282
- if (!item.type) {
283
- if (item.subMenus) {
284
- item.type = DfNavItemType.subMenus;
285
- }
286
- else if (item.isExternal) {
287
- item.type = DfNavItemType.externalLink;
288
- }
289
- else if (withRouter) {
290
- item.type = DfNavItemType.routerLink;
291
- }
292
- else {
293
- item.type = DfNavItemType.actionButton;
294
- }
295
- }
296
- if (item.subMenus) {
297
- this.addNavItemType(withRouter, item.subMenus);
298
- }
299
- });
300
- }
301
- dispatchSideNavItems() {
302
- this._sideNavItems$.next(this._items);
303
- }
304
- updateOverLay() {
305
- this._isAppOverlay$.next(this.isAppOverlayMode && this._isCollapsed$.value === false);
306
- }
307
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavService, deps: [{ token: i1.DfSideNavConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
308
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavService, providedIn: 'root' }); }
309
- }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavService, decorators: [{
311
- type: Injectable,
312
- args: [{
313
- providedIn: 'root'
314
- }]
315
- }], ctorParameters: () => [{ type: i1.DfSideNavConfig }] });
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NpZGVuYXYvc2lkZW5hdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFlakUsTUFBTSxDQUFOLElBQVksYUFTWDtBQVRELFdBQVksYUFBYTtJQUN2Qix5REFBUSxDQUFBO0lBQ1IsaUVBQVksQ0FBQTtJQUNaLDZEQUFVLENBQUE7SUFDVixpREFBSSxDQUFBO0lBQ0osaUVBQVksQ0FBQTtJQUNaLDJEQUFTLENBQUE7SUFDVCx5REFBUSxDQUFBO0lBQ1IsbURBQUssQ0FBQTtBQUNQLENBQUMsRUFUVyxhQUFhLEtBQWIsYUFBYSxRQVN4QjtBQUVEOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQWEzQixZQUE2QixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQVo3QyxTQUFJLEdBQUcsYUFBYSxDQUFDO1FBU3BCLFdBQU0sR0FBb0IsRUFBRSxDQUFDO1FBQ3BCLGlCQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxNQUFNLENBQUMsU0FBUyxDQUFD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bkRlc3Ryb3ksIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGZTaWRlTmF2Q29uZmlnIH0gZnJvbSAnLi9zaWRlbmF2LWNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGZTaWRlTmF2SXRlbSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgaXNFeHRlcm5hbD86IGJvb2xlYW47XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNDb2xsYXBzZWQ/OiBib29sZWFuO1xuICBicmVha3BvaW50cz86IHN0cmluZ1tdO1xuICBzdWJNZW51cz86IERmU2lkZU5hdkl0ZW1bXTtcbiAgdHlwZT86IERmTmF2SXRlbVR5cGU7XG59XG5cbmV4cG9ydCBlbnVtIERmTmF2SXRlbVR5cGUge1xuICBzdWJNZW51cyxcbiAgYWN0aW9uQnV0dG9uLFxuICByb3V0ZXJMaW5rLFxuICBsaW5rLFxuICBleHRlcm5hbExpbmssXG4gIHNlcGFyYXRvcixcbiAgdGVtcGxhdGUsXG4gIHRpdGxlXG59XG5cbi8qKlxuICogQSBzZXJ2aWNlIGZvciBtYW5hZ2luZyB0aGUgc2lkZW5hdiBwYW5lbC5cbiAqIFRoaXMgc2VydmljZSBpcyBpbmNsdWRlZCBhdCByb290IGxldmVsXG4gKlxuICogQ3JlYXRpbmcgYSBzaWRlbmF2IGlzIHN0cmFpZ2h0Zm9yd2FyZDogdXNlIFtEZlNpZGVOYXZDb21wb25lbnRdKCMvY29tcG9uZW50cy9zaWRlbmF2L2FwaSNEZlNpZGVOYXZDb21wb25lbnQpIGNvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZlNpZGVOYXZTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHR5cGUgPSBEZk5hdkl0ZW1UeXBlO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zaWRlTmF2SXRlbXMkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc01pbm1pemVkJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNDb2xsYXBzZWQkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc1ByZXNlbnQkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVJdGVtJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNJbk1lbnVPdmVybGF5JDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNBcHBPdmVybGF5JDtcbiAgcHJpdmF0ZSBfaXNBcHBPdmVybGF5TW9kZTtcbiAgcHJpdmF0ZSBfaXRlbXM6IERmU2lkZU5hdkl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBEZlNpZGVOYXZDb25maWcpIHtcbiAgICB0aGlzLl9zaWRlTmF2SXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEZlNpZGVOYXZJdGVtW10+KFtdKTtcbiAgICB0aGlzLl9pc01pbm1pemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzTWlubWl6ZWQpO1xuICAgIHRoaXMuX2lzQ29sbGFwc2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzQ29sbGFwc2VkKTtcbiAgICB0aGlzLl9pc1ByZXNlbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb25maWcuaXNQcmVzZW50KTtcbiAgICB0aGlzLl9pc0luTWVudU92ZXJsYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb25maWcuaXNJbk1lbnVPdmVybGF5KTtcbiAgICB0aGlzLl9pc0FwcE92ZXJsYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb25maWcuaXNBcHBPdmVybGF5KTtcbiAgICB0aGlzLl9hY3RpdmVJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGZTaWRlTmF2SXRlbSB8IG51bGw+KG51bGwpO1xuICAgIHRoaXMuX2lzQXBwT3ZlcmxheU1vZGUgPSBjb25maWcuaXNBcHBPdmVybGF5TW9kZTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLl9pc0NvbGxhcHNlZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVPdmVyTGF5KCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGluaXQgdGhlIGxpc3Qgb2YgRWxlbWVudHMgZnJvbSB5b3VyIHNpZGVuYXZcbiAgICpcbiAgICpcbiAgICogU2Vjb25kIG9wdGlvbiB3aXRoUm91dGVyIGlzIHRvIGJlIHNldCB0byBmYWxzZSBpZiB5b3UgYXJlIG5vdCBwYXNzaW5nIGxpbmsgc3RyaW5nIGZvciB0aGUgYW5ndWxhciBSb3V0ZXJcbiAgICogSGVyZSB3ZSBhcmUgbm90IGRlZXAgY29weWluZyB0aGUgYXJyYXkgLS0+IHRoZSBmdW5jdGlvbiB3aWxsIGNoYW5nZSBpdFxuICAgKi9cbiAgaW5pdEl0ZW1zKGl0ZW1zOiBEZlNpZGVOYXZJdGVtW10sIHdpdGhSb3V0ZXIgPSB0cnVlKSB7XG4gICAgdGhpcy5faXRlbXMgPSBpdGVtcztcbiAgICB0aGlzLmFkZE5hdkl0ZW1UeXBlKHdpdGhSb3V0ZXIpO1xuICAgIHRoaXMuc2V0QWN0aXZlSXRlbSh0aGlzLl9pdGVtcyk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGluYWN0aXZhdGUgdGhlIGxpc3Qgb2YgRWxlbWVudHMgZnJvbSB5b3VyIHNpZGVuYXZcbiAgICogaXNBY3RpdmUgcHJvcGVydGllcyBvZiBhbGwgaXRlbXMgd2lsbCBiZSBzZXQgdG8gZmFsc2UgcmVjdXJzaXZlbHlcbiAgICpcbiAgICovXG4gIGluYWN0aXZlSXRlbXMobGlzdDogRGZTaWRlTmF2SXRlbVtdKSB7XG4gICAgbGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICBpZiAoaXRlbS5zdWJNZW51cykge1xuICAgICAgICB0aGlzLmluYWN0aXZlSXRlbXMoaXRlbS5zdWJNZW51cyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGFjdGl2ZSB0aGUgaXRlbSBwYXNzIGFzIGlucHV0XG4gICAqIFRoaXMgZnVuY3Rpb24gaW5hY3RpdmF0ZSBhbGwgdGhlIG90aGVyIGl0ZW1zIG9mIHRoZSBzZXJ2aWNlXG4gICAqIEl0IHdpbGwgdGhlbiBkaXNwYXRjaCB0aGUgbGlzdCBvZiBpdGVtcyBvZiB0aGUgc2lkZU5hdiB0byBhY3RpdmVJdGVtJFxuICAgKlxuICAgKi9cbiAgYWN0aXZlSXRlbShpdGVtOiBEZlNpZGVOYXZJdGVtKSB7XG4gICAgdGhpcy5pbmFjdGl2ZUl0ZW1zKHRoaXMuX2l0ZW1zKTtcbiAgICBpdGVtLmlzQWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLl9hY3RpdmVJdGVtJC5uZXh0KGl0ZW0pO1xuICAgIHRoaXMuZGlzcGF0Y2hTaWRlTmF2SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyB3aGVuIHRvIHB1dC9yZW1vdmUgdGhlIG92ZXJsYXkuXG4gICAqIGBUcnVlYCBpbiBjYXNlIG9mIG92ZXJsYXkgbmVlZGVkXG4gICAqXG4gICAqL1xuICBnZXQgaXNBcHBPdmVybGF5JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNBcHBPdmVybGF5JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyBpZiB0aGUgc2lkZW5hdiBpcyBpbiBhbiBvdmVybGF5IHBhbmVsIG9yIG5vdFxuICAgKiBgVHJ1ZWAgaW4gY2FzZSBvZiBvdmVybGF5IHBhbmVsXG4gICAqXG4gICAqL1xuICBnZXQgaXNJbk1lbnVPdmVybGF5JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNJbk1lbnVPdmVybGF5JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyB0aGUgY3VycmVudCBhY3RpdmVJdGVtIGEgdXNlciBjbGlja2VkIG9uXG4gICAqXG4gICAqL1xuICBnZXQgYWN0aXZlSXRlbSQoKTogT2JzZXJ2YWJsZTxEZlNpZGVOYXZJdGVtIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVJdGVtJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyBpZiB0aGUgc2lkZU5hdiBpcyBwcmVzZW50IGluIHRoZSBwYWdlXG4gICAqIFNpZGVOYXYgbWF5IGJlIGNvbGxhcHNlZCBoZXJlIG9yIG5vdFxuICAgKlxuICAgKi9cbiAgZ2V0IGlzUHJlc2VudCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzUHJlc2VudCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogRnV0dXJlIE9wdGlvbnNcbiAgICovXG4gIGdldCBpc01pbmltaXplZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTWlubWl6ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IGlmIHRoZSBTaWRlTmF2IGlzIGNvbGxhcHNlZCBvciBub3RcbiAgICogSWYgYHRydWVgIHRoZSBTaWRlTmF2IGlzIGNvbGxhcHNlZFxuICAgKlxuICAgKi9cbiAgZ2V0IGlzQ29sbGFwc2VkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNDb2xsYXBzZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBvZiB0aGUgU2lkZU5hdiBJdGVtcyBhZnRlciB0aGV5IGhhdmUgYmVlbnMgY2hhbmdlZFxuICAgKlxuICAgKi9cbiAgZ2V0IHNpZGVOYXZJdGVtcyQoKTogT2JzZXJ2YWJsZTxEZlNpZGVOYXZJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5fc2lkZU5hdkl0ZW1zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgdG8ga25vdyB0aGUgbW9kZSBBcHBseSBmb3IgdGhlIFNpZGVOYXZcbiAgICogSWYgYHRydWVgIHRoZSBTaWRlTmF2IGNhbiBiZSBpbiBvdmVybGF5IChidXQgbm90IG5lY2Vzc2FyeSBpcykuXG4gICAqXG4gICAqL1xuICBnZXQgaXNBcHBPdmVybGF5TW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNBcHBPdmVybGF5TW9kZTtcbiAgfVxuXG4gIC8vIGluaXRJdGVtcyBtdXN0IGJlIHVzZWQgdG8gcHVzaCBuZXcgaXRlbXMgdG8gdGhlIHNlcnZpY2VcbiAgZ2V0IGl0ZW1zKCk6IERmU2lkZU5hdkl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIHRvZ2dsZSBhIFNpZGVOYXYgSXRlbSAoZWl0aGVyIGZyb20gZXhwYW5kIHRvIGNvbGxhcHNlIG9yIHRoZSBvdGhlciB3YXkgYXJvdW5kKS5cbiAgICogaXNDb2xsYXBzZWQgYXR0cmlidXRlIG9mIHRoZSBpbnB1dCBpdGVtIGlzIGNoYW5nZWQuXG4gICAqIEFsbCBpdGVtcyBhcmUgcHVzaCBhZ2FpbiB0byB0aGUgc3RyZWFtIG9mIGl0ZW1zLlxuICAgKiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgU2lkZU5hdiBpbiBjYXNlIG9mIGNsaWNrIGFuZCBFbnRlciBvbiBhbiBJdGVtIHdpdGggc3ViTWVudXNcbiAgICovXG4gIHRvZ2dsZShpdGVtSW5wdXQ6IERmU2lkZU5hdkl0ZW0pIHtcbiAgICBpdGVtSW5wdXQuaXNDb2xsYXBzZWQgPSAhaXRlbUlucHV0LmlzQ29sbGFwc2VkO1xuICAgIHRoaXMuZGlzcGF0Y2hTaWRlTmF2SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbUlucHV0XG4gICAqL1xuICBjb2xsYXBzZUl0ZW0oaXRlbUlucHV0OiBEZlNpZGVOYXZJdGVtKSB7XG4gICAgdGhpcy5jb2xsYXBzZShpdGVtSW5wdXQsIHRoaXMuX2l0ZW1zKTtcbiAgICB0aGlzLmRpc3BhdGNoU2lkZU5hdkl0ZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gY29sbGFwc2VBbGwgaXRlbXNcbiAgICovXG4gIGNvbGxhcHNlQWxsSXRlbXMoKSB7XG4gICAgdGhpcy5jb2xsYXBzZUFsbCh0aGlzLl9pdGVtcyk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIHNldC91bnNldCB0aGUgU2lkZU5hdiBpbiBhbiBPdmVybGF5IE1lbnVcbiAgICogSWYgaW5wdXQgaXMgYFRydWVgIHRoZW4gdGhlIFNpZGVOYXYgd2lsbCBiZSBpbiBhbiBPdmVybGF5IE1lbnVcbiAgICogKHdoZW4gbm90IGNvbGxhcHNlZClcbiAgICpcbiAgICovXG4gIHNldEluTWVudVNpZGVOYXYob246IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0luTWVudU92ZXJsYXkkLm5leHQob24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGNvbGxhcHNlIHRoZSBTaWRlTmF2XG4gICAqXG4gICAqL1xuICBoaWRlU2lkZU5hdigpIHtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBtYWtlIHRoZSBTaWRlTmF2IHZpc2libGUgKHVuY29sbGFwc2UpXG4gICAqXG4gICAqL1xuICBzaG93U2lkZU5hdigpIHtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gdG9nZ2xlIHRoZSBTaWRlTmF2IHN0YXR1cyBjb2xsYXBzZS92aXNpYmxlXG4gICAqXG4gICAqL1xuICB0b2dnbGVTaWRlTmF2KCkge1xuICAgIHRoaXMuX2lzQ29sbGFwc2VkJC5uZXh0KCF0aGlzLl9pc0NvbGxhcHNlZCQudmFsdWUpO1xuICB9XG5cbiAgLy8gaW50ZXJuYWwgdXNhZ2UgZnJvbSB0aGUgU2lkZU5hdi4gQ2FsbCB3aGVuIGNvbXBvbmVudCBpcyBkZXN0cm95XG4gIHJlbW92ZVNpZGVCYXIoKSB7XG4gICAgdGhpcy5faXNDb2xsYXBzZWQkLm5leHQodGhpcy5jb25maWcuaXNDb2xsYXBzZWQpO1xuICAgIHRoaXMuX2lzUHJlc2VudCQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gc2V0IHRoZSBBcHAgT3ZlcmxheSBNb2RlXG4gICAqIElucHV0IGBUcnVlYCBpZiB5b3Ugd2FudCB0byBzZXQgdGhlIEFwcE92ZXJsYXlcbiAgICogQW4gZXZlbnQgaXMgc2VuZCB0byBpc0FwcE92ZXJsYXkkIGRlcGVuZGluZyBvbiB5b3VyIHN0YXR1c1xuICAgKiBpZiBJbnB1dCA9IGBUcnVlYCBhbmQgaXNDb2xsYXBzZWQgPSBgRmFsc2VgIHRoZW4gaXNBcHBPdmVybGF5JFxuICAgKiB3aWxsIGJlIGBUcnVlYFxuICAgKlxuICAgKi9cbiAgc2V0QXBwT3ZlcmxheU1vZGUob246IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0FwcE92ZXJsYXlNb2RlID0gb247XG4gICAgdGhpcy51cGRhdGVPdmVyTGF5KCk7XG4gIH1cblxuICAvLyBJbnRlcm5hbCB1c2FnZSB0byB0aGUgc2lkZW5hdiBjb21wb25lbnRcbiAgLy8gRG8gbm90IHVzZVxuICBzZXRTaWRlTmF2KCkge1xuICAgIHRoaXMuX2lzUHJlc2VudCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbUlucHV0XG4gICAqIEBwYXJhbSBpdGVtc0xpc3RcbiAgICovXG4gIHByaXZhdGUgY29sbGFwc2UoaXRlbUlucHV0OiBEZlNpZGVOYXZJdGVtLCBpdGVtc0xpc3Q6IERmU2lkZU5hdkl0ZW1bXSk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtc0xpc3QpIHtcbiAgICAgIGlmIChpdGVtID09PSBpdGVtSW5wdXQgJiYgaXRlbS5zdWJNZW51cykge1xuICAgICAgICBpdGVtLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIHByb3BhZ2F0ZSB0aGUgY29sbGFwc2UgdXBcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSA9PT0gaXRlbUlucHV0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGNvbnN0IG5lZWRjb2wgPSB0aGlzLmNvbGxhcHNlKGl0ZW1JbnB1dCwgaXRlbS5zdWJNZW51cyk7XG4gICAgICAgIGlmIChuZWVkY29sKSB7XG4gICAgICAgICAgaXRlbS5pc0NvbGxhcHNlZCA9IHRydWU7IC8vIGNvbGxhcHNlIGl0XG4gICAgICAgICAgcmV0dXJuIHRydWU7IC8vIHByb3BhZ2F0ZSB0aGUgY29sbGFwc2UgdXBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGl0ZW1zTGlzdFxuICAgKi9cbiAgcHJpdmF0ZSBjb2xsYXBzZUFsbChpdGVtc0xpc3Q6IERmU2lkZU5hdkl0ZW1bXSkge1xuICAgIGl0ZW1zTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5zdWJNZW51cykge1xuICAgICAgICBpdGVtLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb2xsYXBzZUFsbChpdGVtLnN1Yk1lbnVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIE9ubHkgb25lIGl0ZW0gYXQgdGhlIHRpbWUgbXVzdCBiZSBhY3RpdmVcbiAgLy8gQWN0aXZlIGZsYWcgaW4gaXRlbSBpcyBvbmx5IHZhbGlkIGZvciBhY3Rpb24gYnV0dG9uIGFuZCBsaW5rXG4gIC8vIFJvdXRlciBsaW5rIGRvZXMgbm90IHVzZSB0aGlzIGFjdGl2ZSBmbGFnIHRvIHdvcmtcbiAgLy8gSXQgaXMgdXAgdG8geW91IHRvIGluYWN0aXZhdGVJdGVtcyB3aGVuIG5lZWRlZCB3aGVuIHlvdSBtaXggYWN0aW9uQnV0dG9uIGFuZCByb3V0ZXIgbGlua1xuICAvLyBUbyBhdm9pZCBtb3JlIHRoYW4gb25lIGFjdGl2ZSBzdGF0ZSB2aXNpYmxlXG4gIHByaXZhdGUgc2V0QWN0aXZlSXRlbShpdGVtczogRGZTaWRlTmF2SXRlbVtdLCBmb3VuZEFuQWN0aXZlID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBsZXQgZm91bmRBY3RpdmUgPSBmb3VuZEFuQWN0aXZlO1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLmlzQWN0aXZlICYmIGZvdW5kQW5BY3RpdmUpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0RmU2lkZU5hdlNlcnZpY2UgbXVzdCBiZSBpbml0IHdpdGggb25seSBvbmUgaXNBY3RpdmUgaXRlbScpO1xuICAgICAgfSBlbHNlIGlmIChpdGVtLmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICAgIGZvdW5kQWN0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGZvdW5kQWN0aXZlID0gdGhpcy5zZXRBY3RpdmVJdGVtKGl0ZW0uc3ViTWVudXMsIGZvdW5kQWN0aXZlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZm91bmRBY3RpdmU7XG4gIH1cblxuICBwcml2YXRlIGFkZE5hdkl0ZW1UeXBlKHdpdGhSb3V0ZXI6IGJvb2xlYW4sIGl0ZW1zOiBEZlNpZGVOYXZJdGVtW10gPSB0aGlzLl9pdGVtcykge1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmICghaXRlbS50eXBlKSB7XG4gICAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgICAgaXRlbS50eXBlID0gRGZOYXZJdGVtVHlwZS5zdWJNZW51cztcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLmlzRXh0ZXJuYWwpIHtcbiAgICAgICAgICBpdGVtLnR5cGUgPSBEZk5hdkl0ZW1UeXBlLmV4dGVybmFsTGluaztcbiAgICAgICAgfSBlbHNlIGlmICh3aXRoUm91dGVyKSB7XG4gICAgICAgICAgaXRlbS50eXBlID0gRGZOYXZJdGVtVHlwZS5yb3V0ZXJMaW5rO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW0udHlwZSA9IERmTmF2SXRlbVR5cGUuYWN0aW9uQnV0dG9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXRlbS5zdWJNZW51cykge1xuICAgICAgICB0aGlzLmFkZE5hdkl0ZW1UeXBlKHdpdGhSb3V0ZXIsIGl0ZW0uc3ViTWVudXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaFNpZGVOYXZJdGVtcygpIHtcbiAgICB0aGlzLl9zaWRlTmF2SXRlbXMkLm5leHQodGhpcy5faXRlbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVPdmVyTGF5KCkge1xuICAgIHRoaXMuX2lzQXBwT3ZlcmxheSQubmV4dCh0aGlzLmlzQXBwT3ZlcmxheU1vZGUgJiYgdGhpcy5faXNDb2xsYXBzZWQkLnZhbHVlID09PSBmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,59 +0,0 @@
1
- import { Component, Input, inject } from '@angular/core';
2
- import { DfSideNavService } from './sidenav.service';
3
- import { CommonModule } from '@angular/common';
4
- import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
5
- import { RouterModule } from '@angular/router';
6
- import { DfMediaModule } from '../mediaqueries/media.module';
7
- import { DfSideNavCollapseModule } from './dfSideNavCollapse.module';
8
- import { DfManageSideNavDirective } from './manage-sidenav.directive';
9
- import { DfTitleTruncateDirective } from '../utils/titleTruncate.directive';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
- import * as i2 from "@ng-bootstrap/ng-bootstrap";
13
- import * as i3 from "@angular/router";
14
- import * as i4 from "../mediaqueries/ifMedia.directive";
15
- let uniqueId = 0;
16
- /**
17
- * SideNav is a component to provide navigation feature with a panel on the side of your page
18
- *
19
- * It supports several options as:
20
- * - Being in an overlay menu or not
21
- * - Being collapsed or not
22
- * - Can be used with or without Angular Router
23
- * - Can be used with media queries to adjust behavior to different breakpoints (see media section)
24
- */
25
- export class DfSideNavListComponent {
26
- constructor() {
27
- this.controlledUniqueId = this.getControlledUniqueId();
28
- this.sideNavService = inject(DfSideNavService);
29
- }
30
- getControlledUniqueId() {
31
- uniqueId++;
32
- return `df-sidenav-id-${uniqueId};`;
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: DfSideNavListComponent, isStandalone: true, selector: "df-sidenavlist", inputs: { items: "items", tplIcon: "tplIcon", tplItem: "tplItem", currentItem: "currentItem", id: "id" }, ngImport: i0, template: "<ul class=\"df-sidenav-list\" [ngbCollapse]=\"currentItem?.isCollapsed ?? false\" [attr.id]=\"id\">\n @for (item of items; track item; let i = $index) {\n <li dfManageSideNav>\n <ng-template #dfSideNavItemContent>\n @if (tplIcon && item.icon) {\n <ng-template\n [ngTemplateOutlet]=\"tplIcon.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n } @else if (item.icon) {\n <span aria-hidden=\"true\" class=\"{{ item.icon }} df-sidenav-icon me-3\"></span>\n }\n <span class=\"flex-grow-1 text-nowrap\" dfTitleTruncate>{{ item.title }}</span>\n </ng-template>\n @switch (item.type) {\n @case (sideNavService.type.subMenus) {\n <ng-template #subMenus>\n <button\n class=\"df-sidenav-item d-flex align-items-center\"\n (click)=\"sideNavService.toggle(item)\"\n type=\"button\"\n [attr.aria-expanded]=\"!item.isCollapsed\"\n [attr.aria-controls]=\"'sidenavControl' + controlledUniqueId.toString() + '-' + i\"\n [class.df-sidenav-item-withicon]=\"item.icon\"\n >\n @if (tplIcon && item.icon) {\n <ng-template\n [ngTemplateOutlet]=\"tplIcon.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n } @else if (item.icon) {\n <span aria-hidden=\"true\" class=\"{{ item.icon }} df-sidenav-icon me-3\"></span>\n }\n <span class=\"flex-grow-1 text-nowrap\" dfTitleTruncate>{{ item.title }}</span>\n <span\n class=\"ms-3 df-sidenav-collapse-icon fa-light\"\n [class.fa-chevron-down]=\"item.isCollapsed\"\n [class.fa-chevron-up]=\"!item.isCollapsed\"\n ></span>\n <!-- put the chevron as icon directly in the menu -->\n <!-- todo the icon and the minimized -->\n </button>\n <!-- we don't pass the icons as they are not suppose to have ones ??-->\n <df-sidenavlist\n [items]=\"item.subMenus ?? []\"\n [tplItem]=\"tplItem\"\n [currentItem]=\"item\"\n [id]=\"'sidenavControl' + controlledUniqueId.toString() + '-' + i\"\n ></df-sidenavlist>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"subMenus\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"subMenus\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.actionButton) {\n <ng-template #dfSideNavItemButton>\n <button\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n (click)=\"sideNavService.activeItem(item)\"\n [class.active]=\"item.isActive\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </button>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfSideNavItemButton\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfSideNavItemButton\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.routerLink) {\n <ng-template #dfRouterTemplate>\n <a\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n routerLinkActive=\"active\"\n routerLink=\"{{ item.value }}\"\n ariaCurrentWhenActive=\"page\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </a>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfRouterTemplate\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfRouterTemplate\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.separator) {\n <ng-template #dfSeparatorTmp>\n <hr class=\"spacing-01\" />\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfSeparatorTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfSeparatorTmp\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.template) {\n @if (tplItem) {\n <ng-template\n [ngTemplateOutlet]=\"tplItem.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n }\n }\n @case (sideNavService.type.title) {\n <ng-template #dfTitleTmp>\n <div class=\"df-sidenav-item df-sidenav-title d-flex align-items-center flex-grow-1\">\n <span class=\"text-nowrap text-uppercase text-muted\" dfTitleTruncate>{{ item.title }}</span>\n </div>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfTitleTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfTitleTmp\"></ng-container>\n </ng-container>\n }\n }\n @default {\n <ng-template #dfLinkDefaultTmp>\n <a\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n href=\"{{ item.value }}\"\n [class.active]=\"item.isActive && item.type === sideNavService.type.link\"\n [attr.target]=\"item.type === sideNavService.type.externalLink ? '_blank' : ''\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </a>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfLinkDefaultTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfLinkDefaultTmp\"></ng-container>\n </ng-container>\n }\n }\n }\n </li>\n }\n</ul>\n", dependencies: [{ kind: "component", type: DfSideNavListComponent, selector: "df-sidenavlist", inputs: ["items", "tplIcon", "tplItem", "currentItem", "id"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NgbCollapseModule }, { kind: "directive", type: i2.NgbCollapse, selector: "[ngbCollapse]", inputs: ["animation", "ngbCollapse", "horizontal"], outputs: ["ngbCollapseChange", "shown", "hidden"], exportAs: ["ngbCollapse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: DfMediaModule }, { kind: "directive", type: i4.DfIfMediaDirective, selector: "[dfIfMedia]", inputs: ["dfIfMedia"] }, { kind: "ngmodule", type: DfSideNavCollapseModule }, { kind: "directive", type: DfManageSideNavDirective, selector: "[dfManageSideNav]" }, { kind: "directive", type: DfTitleTruncateDirective, selector: "[dfTitleTruncate]", exportAs: ["dfTitleTruncate"] }] }); }
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSideNavListComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'df-sidenavlist', standalone: true, imports: [
40
- CommonModule,
41
- NgbCollapseModule,
42
- RouterModule,
43
- DfMediaModule,
44
- DfSideNavCollapseModule,
45
- DfManageSideNavDirective,
46
- DfTitleTruncateDirective
47
- ], template: "<ul class=\"df-sidenav-list\" [ngbCollapse]=\"currentItem?.isCollapsed ?? false\" [attr.id]=\"id\">\n @for (item of items; track item; let i = $index) {\n <li dfManageSideNav>\n <ng-template #dfSideNavItemContent>\n @if (tplIcon && item.icon) {\n <ng-template\n [ngTemplateOutlet]=\"tplIcon.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n } @else if (item.icon) {\n <span aria-hidden=\"true\" class=\"{{ item.icon }} df-sidenav-icon me-3\"></span>\n }\n <span class=\"flex-grow-1 text-nowrap\" dfTitleTruncate>{{ item.title }}</span>\n </ng-template>\n @switch (item.type) {\n @case (sideNavService.type.subMenus) {\n <ng-template #subMenus>\n <button\n class=\"df-sidenav-item d-flex align-items-center\"\n (click)=\"sideNavService.toggle(item)\"\n type=\"button\"\n [attr.aria-expanded]=\"!item.isCollapsed\"\n [attr.aria-controls]=\"'sidenavControl' + controlledUniqueId.toString() + '-' + i\"\n [class.df-sidenav-item-withicon]=\"item.icon\"\n >\n @if (tplIcon && item.icon) {\n <ng-template\n [ngTemplateOutlet]=\"tplIcon.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n } @else if (item.icon) {\n <span aria-hidden=\"true\" class=\"{{ item.icon }} df-sidenav-icon me-3\"></span>\n }\n <span class=\"flex-grow-1 text-nowrap\" dfTitleTruncate>{{ item.title }}</span>\n <span\n class=\"ms-3 df-sidenav-collapse-icon fa-light\"\n [class.fa-chevron-down]=\"item.isCollapsed\"\n [class.fa-chevron-up]=\"!item.isCollapsed\"\n ></span>\n <!-- put the chevron as icon directly in the menu -->\n <!-- todo the icon and the minimized -->\n </button>\n <!-- we don't pass the icons as they are not suppose to have ones ??-->\n <df-sidenavlist\n [items]=\"item.subMenus ?? []\"\n [tplItem]=\"tplItem\"\n [currentItem]=\"item\"\n [id]=\"'sidenavControl' + controlledUniqueId.toString() + '-' + i\"\n ></df-sidenavlist>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"subMenus\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"subMenus\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.actionButton) {\n <ng-template #dfSideNavItemButton>\n <button\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n (click)=\"sideNavService.activeItem(item)\"\n [class.active]=\"item.isActive\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </button>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfSideNavItemButton\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfSideNavItemButton\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.routerLink) {\n <ng-template #dfRouterTemplate>\n <a\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n routerLinkActive=\"active\"\n routerLink=\"{{ item.value }}\"\n ariaCurrentWhenActive=\"page\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </a>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfRouterTemplate\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfRouterTemplate\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.separator) {\n <ng-template #dfSeparatorTmp>\n <hr class=\"spacing-01\" />\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfSeparatorTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfSeparatorTmp\"></ng-container>\n </ng-container>\n }\n }\n @case (sideNavService.type.template) {\n @if (tplItem) {\n <ng-template\n [ngTemplateOutlet]=\"tplItem.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n }\n }\n @case (sideNavService.type.title) {\n <ng-template #dfTitleTmp>\n <div class=\"df-sidenav-item df-sidenav-title d-flex align-items-center flex-grow-1\">\n <span class=\"text-nowrap text-uppercase text-muted\" dfTitleTruncate>{{ item.title }}</span>\n </div>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfTitleTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfTitleTmp\"></ng-container>\n </ng-container>\n }\n }\n @default {\n <ng-template #dfLinkDefaultTmp>\n <a\n class=\"df-sidenav-item d-flex align-items-center flex-nowrap\"\n href=\"{{ item.value }}\"\n [class.active]=\"item.isActive && item.type === sideNavService.type.link\"\n [attr.target]=\"item.type === sideNavService.type.externalLink ? '_blank' : ''\"\n >\n <ng-container *ngTemplateOutlet=\"dfSideNavItemContent\"></ng-container>\n </a>\n </ng-template>\n @if (!item.breakpoints) {\n <ng-container *ngTemplateOutlet=\"dfLinkDefaultTmp\"></ng-container>\n } @else {\n <ng-container *dfIfMedia=\"item.breakpoints!\">\n <ng-container *ngTemplateOutlet=\"dfLinkDefaultTmp\"></ng-container>\n </ng-container>\n }\n }\n }\n </li>\n }\n</ul>\n" }]
48
- }], propDecorators: { items: [{
49
- type: Input
50
- }], tplIcon: [{
51
- type: Input
52
- }], tplItem: [{
53
- type: Input
54
- }], currentItem: [{
55
- type: Input
56
- }], id: [{
57
- type: Input
58
- }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdmxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NpZGVuYXYvc2lkZW5hdmxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NpZGVuYXYvc2lkZW5hdmxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFFNUUsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCOzs7Ozs7OztHQVFHO0FBZUgsTUFBTSxPQUFPLHNCQUFzQjtJQWRuQztRQW9CRSx1QkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsRCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBTTNDO0lBSkMscUJBQXFCO1FBQ25CLFFBQVEsRUFBRSxDQUFDO1FBQ1gsT0FBTyxpQkFBaUIsUUFBUSxHQUFHLENBQUM7SUFDdEMsQ0FBQzs4R0FaVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixvTENyQ25DLDRqTkF3SkEsNENEbkhhLHNCQUFzQix3SEFUL0IsWUFBWSxxTUFDWixpQkFBaUIsd09BQ2pCLFlBQVksZ2ZBQ1osYUFBYSxrSUFDYix1QkFBdUIsK0JBQ3ZCLHdCQUF3Qiw4REFDeEIsd0JBQXdCOzsyRkFHZixzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBRWQsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLHdCQUF3QjtxQkFDekI7OEJBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERmU2lkZU5hdlNlcnZpY2UgfSBmcm9tICcuL3NpZGVuYXYuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdiQ29sbGFwc2VNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRGZNZWRpYU1vZHVsZSB9IGZyb20gJy4uL21lZGlhcXVlcmllcy9tZWRpYS5tb2R1bGUnO1xuaW1wb3J0IHsgRGZTaWRlTmF2Q29sbGFwc2VNb2R1bGUgfSBmcm9tICcuL2RmU2lkZU5hdkNvbGxhcHNlLm1vZHVsZSc7XG5pbXBvcnQgdHlwZSB7IERmU2lkZU5hdkl0ZW0gfSBmcm9tICcuL3NpZGVuYXYuc2VydmljZSc7XG5pbXBvcnQgeyBEZlNpZGVOYXZJY29uRGlyZWN0aXZlLCBEZlNpZGVOYXZJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9zaWRlbmF2LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZk1hbmFnZVNpZGVOYXZEaXJlY3RpdmUgfSBmcm9tICcuL21hbmFnZS1zaWRlbmF2LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEZlRpdGxlVHJ1bmNhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi91dGlscy90aXRsZVRydW5jYXRlLmRpcmVjdGl2ZSc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbi8qKlxuICogU2lkZU5hdiBpcyBhIGNvbXBvbmVudCB0byBwcm92aWRlIG5hdmlnYXRpb24gZmVhdHVyZSB3aXRoIGEgcGFuZWwgb24gdGhlIHNpZGUgb2YgeW91ciBwYWdlXG4gKlxuICogSXQgc3VwcG9ydHMgc2V2ZXJhbCBvcHRpb25zIGFzOlxuICogIC0gQmVpbmcgaW4gYW4gb3ZlcmxheSBtZW51IG9yIG5vdFxuICogIC0gQmVpbmcgY29sbGFwc2VkIG9yIG5vdFxuICogIC0gQ2FuIGJlIHVzZWQgd2l0aCBvciB3aXRob3V0IEFuZ3VsYXIgUm91dGVyXG4gKiAgLSBDYW4gYmUgdXNlZCB3aXRoIG1lZGlhIHF1ZXJpZXMgdG8gYWRqdXN0IGJlaGF2aW9yIHRvIGRpZmZlcmVudCBicmVha3BvaW50cyAoc2VlIG1lZGlhIHNlY3Rpb24pXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLXNpZGVuYXZsaXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXZsaXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgRGZNZWRpYU1vZHVsZSxcbiAgICBEZlNpZGVOYXZDb2xsYXBzZU1vZHVsZSxcbiAgICBEZk1hbmFnZVNpZGVOYXZEaXJlY3RpdmUsXG4gICAgRGZUaXRsZVRydW5jYXRlRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGZTaWRlTmF2TGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zITogRGZTaWRlTmF2SXRlbVtdO1xuICBASW5wdXQoKSB0cGxJY29uITogRGZTaWRlTmF2SWNvbkRpcmVjdGl2ZTtcbiAgQElucHV0KCkgdHBsSXRlbSE6IERmU2lkZU5hdkl0ZW1EaXJlY3RpdmU7XG4gIEBJbnB1dCgpIGN1cnJlbnRJdGVtOiBEZlNpZGVOYXZJdGVtIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBpZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjb250cm9sbGVkVW5pcXVlSWQgPSB0aGlzLmdldENvbnRyb2xsZWRVbmlxdWVJZCgpO1xuICBzaWRlTmF2U2VydmljZSA9IGluamVjdChEZlNpZGVOYXZTZXJ2aWNlKTtcblxuICBnZXRDb250cm9sbGVkVW5pcXVlSWQoKTogc3RyaW5nIHtcbiAgICB1bmlxdWVJZCsrO1xuICAgIHJldHVybiBgZGYtc2lkZW5hdi1pZC0ke3VuaXF1ZUlkfTtgO1xuICB9XG59XG4iLCI8dWwgY2xhc3M9XCJkZi1zaWRlbmF2LWxpc3RcIiBbbmdiQ29sbGFwc2VdPVwiY3VycmVudEl0ZW0/LmlzQ29sbGFwc2VkID8/IGZhbHNlXCIgW2F0dHIuaWRdPVwiaWRcIj5cbiAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICA8bGkgZGZNYW5hZ2VTaWRlTmF2PlxuICAgICAgPG5nLXRlbXBsYXRlICNkZlNpZGVOYXZJdGVtQ29udGVudD5cbiAgICAgICAgQGlmICh0cGxJY29uICYmIGl0ZW0uaWNvbikge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidHBsSWNvbi50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwie3sgaXRlbS5pY29uIH19IGRmLXNpZGVuYXYtaWNvbiBtZS0zXCI+PC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleC1ncm93LTEgdGV4dC1ub3dyYXBcIiBkZlRpdGxlVHJ1bmNhdGU+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICBAc3dpdGNoIChpdGVtLnR5cGUpIHtcbiAgICAgICAgQGNhc2UgKHNpZGVOYXZTZXJ2aWNlLnR5cGUuc3ViTWVudXMpIHtcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3N1Yk1lbnVzPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImRmLXNpZGVuYXYtaXRlbSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNpZGVOYXZTZXJ2aWNlLnRvZ2dsZShpdGVtKVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiFpdGVtLmlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCInc2lkZW5hdkNvbnRyb2wnICsgY29udHJvbGxlZFVuaXF1ZUlkLnRvU3RyaW5nKCkgKyAnLScgKyBpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRmLXNpZGVuYXYtaXRlbS13aXRoaWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKHRwbEljb24gJiYgaXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cGxJY29uLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJ7eyBpdGVtLmljb24gfX0gZGYtc2lkZW5hdi1pY29uIG1lLTNcIj48L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4LWdyb3ctMSB0ZXh0LW5vd3JhcFwiIGRmVGl0bGVUcnVuY2F0ZT57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtMyBkZi1zaWRlbmF2LWNvbGxhcHNlLWljb24gZmEtbGlnaHRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5mYS1jaGV2cm9uLWRvd25dPVwiaXRlbS5pc0NvbGxhcHNlZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmZhLWNoZXZyb24tdXBdPVwiIWl0ZW0uaXNDb2xsYXBzZWRcIlxuICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICA8IS0tIHB1dCB0aGUgY2hldnJvbiBhcyBpY29uIGRpcmVjdGx5IGluIHRoZSBtZW51IC0tPlxuICAgICAgICAgICAgICA8IS0tIHRvZG8gdGhlIGljb24gYW5kIHRoZSBtaW5pbWl6ZWQgLS0+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwhLS0gd2UgZG9uJ3QgcGFzcyB0aGUgaWNvbnMgYXMgdGhleSBhcmUgbm90IHN1cHBvc2UgdG8gaGF2ZSBvbmVzID8/LS0+XG4gICAgICAgICAgICA8ZGYtc2lkZW5hdmxpc3RcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW0uc3ViTWVudXMgPz8gW11cIlxuICAgICAgICAgICAgICBbdHBsSXRlbV09XCJ0cGxJdGVtXCJcbiAgICAgICAgICAgICAgW2N1cnJlbnRJdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICBbaWRdPVwiJ3NpZGVuYXZDb250cm9sJyArIGNvbnRyb2xsZWRVbmlxdWVJZC50b1N0cmluZygpICsgJy0nICsgaVwiXG4gICAgICAgICAgICA+PC9kZi1zaWRlbmF2bGlzdD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIEBpZiAoIWl0ZW0uYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWJNZW51c1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGZJZk1lZGlhPVwiaXRlbS5icmVha3BvaW50cyFcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1Yk1lbnVzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKHNpZGVOYXZTZXJ2aWNlLnR5cGUuYWN0aW9uQnV0dG9uKSB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZlNpZGVOYXZJdGVtQnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImRmLXNpZGVuYXYtaXRlbSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtbm93cmFwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNpZGVOYXZTZXJ2aWNlLmFjdGl2ZUl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uaXNBY3RpdmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZTaWRlTmF2SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgQGlmICghaXRlbS5icmVha3BvaW50cykge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmU2lkZU5hdkl0ZW1CdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRmSWZNZWRpYT1cIml0ZW0uYnJlYWtwb2ludHMhXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZlNpZGVOYXZJdGVtQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKHNpZGVOYXZTZXJ2aWNlLnR5cGUucm91dGVyTGluaykge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGZSb3V0ZXJUZW1wbGF0ZT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGYtc2lkZW5hdi1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ub3dyYXBcIlxuICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCJcbiAgICAgICAgICAgICAgcm91dGVyTGluaz1cInt7IGl0ZW0udmFsdWUgfX1cIlxuICAgICAgICAgICAgICBhcmlhQ3VycmVudFdoZW5BY3RpdmU9XCJwYWdlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmU2lkZU5hdkl0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICBAaWYgKCFpdGVtLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZSb3V0ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGZJZk1lZGlhPVwiaXRlbS5icmVha3BvaW50cyFcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmUm91dGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoc2lkZU5hdlNlcnZpY2UudHlwZS5zZXBhcmF0b3IpIHtcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2RmU2VwYXJhdG9yVG1wPlxuICAgICAgICAgICAgPGhyIGNsYXNzPVwic3BhY2luZy0wMVwiIC8+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICBAaWYgKCFpdGVtLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZTZXBhcmF0b3JUbXBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRmSWZNZWRpYT1cIml0ZW0uYnJlYWtwb2ludHMhXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZlNlcGFyYXRvclRtcFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBjYXNlIChzaWRlTmF2U2VydmljZS50eXBlLnRlbXBsYXRlKSB7XG4gICAgICAgICAgQGlmICh0cGxJdGVtKSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidHBsSXRlbS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoc2lkZU5hdlNlcnZpY2UudHlwZS50aXRsZSkge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGZUaXRsZVRtcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZi1zaWRlbmF2LWl0ZW0gZGYtc2lkZW5hdi10aXRsZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ub3dyYXAgdGV4dC11cHBlcmNhc2UgdGV4dC1tdXRlZFwiIGRmVGl0bGVUcnVuY2F0ZT57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICBAaWYgKCFpdGVtLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZUaXRsZVRtcFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGZJZk1lZGlhPVwiaXRlbS5icmVha3BvaW50cyFcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmVGl0bGVUbXBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZkxpbmtEZWZhdWx0VG1wPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZi1zaWRlbmF2LWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LW5vd3JhcFwiXG4gICAgICAgICAgICAgIGhyZWY9XCJ7eyBpdGVtLnZhbHVlIH19XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLmlzQWN0aXZlICYmIGl0ZW0udHlwZSA9PT0gc2lkZU5hdlNlcnZpY2UudHlwZS5saW5rXCJcbiAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIml0ZW0udHlwZSA9PT0gc2lkZU5hdlNlcnZpY2UudHlwZS5leHRlcm5hbExpbmsgPyAnX2JsYW5rJyA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmU2lkZU5hdkl0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICBAaWYgKCFpdGVtLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGZMaW5rRGVmYXVsdFRtcFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGZJZk1lZGlhPVwiaXRlbS5icmVha3BvaW50cyFcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRmTGlua0RlZmF1bHRUbXBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvbGk+XG4gIH1cbjwvdWw+XG4iXX0=
@@ -1,36 +0,0 @@
1
- import { Directive, Input, Optional } from '@angular/core';
2
- import { RightToLeftDirectionEnum } from '../../right-to-left/directionDetection.service';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../right-to-left/directionDetection.service";
5
- /**
6
- * @deprecated DfSliderDirectionDirective is deprecated. Use {@link https://design-factory-int.app.net6.paas.westeurope.rnd.az.amadeus.net/#/components/slider/agnosui AgnosUI Slider} instead.
7
- */
8
- export class DfSliderDirectionDirective {
9
- constructor(elementRef, rtlDirectionService) {
10
- this.elementRef = elementRef;
11
- this.rtlDirectionService = rtlDirectionService;
12
- }
13
- ngOnInit() {
14
- if (this.rtlDirectionService) {
15
- const direction = this.rtlDirectionService.getPageDirection(this.elementRef);
16
- if (direction === RightToLeftDirectionEnum.RightToLeft) {
17
- this.host.options.rightToLeft = true;
18
- }
19
- }
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSliderDirectionDirective, deps: [{ token: i0.ElementRef }, { token: i1.DfDirectionDetectionService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
22
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: DfSliderDirectionDirective, isStandalone: true, selector: "[dfSliderDirection]", inputs: { host: ["dfSliderDirection", "host"] }, ngImport: i0 }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfSliderDirectionDirective, decorators: [{
25
- type: Directive,
26
- args: [{
27
- selector: '[dfSliderDirection]',
28
- standalone: true
29
- }]
30
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DfDirectionDetectionService, decorators: [{
31
- type: Optional
32
- }] }], propDecorators: { host: [{
33
- type: Input,
34
- args: ['dfSliderDirection']
35
- }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyZGlyZWN0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9zbGlkZXIvZGlyZWN0aW9uL3NsaWRlcmRpcmVjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQStCLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7OztBQUV2SDs7R0FFRztBQUtILE1BQU0sT0FBTywwQkFBMEI7SUFLckMsWUFDbUIsVUFBc0IsRUFDVixtQkFBZ0Q7UUFENUQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNWLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNkI7SUFDNUUsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFN0UsSUFBSSxTQUFTLEtBQUssd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQWxCVSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQVFJLFFBQVE7eUNBSkosSUFBSTtzQkFEVixLQUFLO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0LCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERmRGlyZWN0aW9uRGV0ZWN0aW9uU2VydmljZSwgUmlnaHRUb0xlZnREaXJlY3Rpb25FbnVtIH0gZnJvbSAnLi4vLi4vcmlnaHQtdG8tbGVmdC9kaXJlY3Rpb25EZXRlY3Rpb24uc2VydmljZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgRGZTbGlkZXJEaXJlY3Rpb25EaXJlY3RpdmUgaXMgZGVwcmVjYXRlZC4gVXNlIHtAbGluayBodHRwczovL2Rlc2lnbi1mYWN0b3J5LWludC5hcHAubmV0Ni5wYWFzLndlc3RldXJvcGUucm5kLmF6LmFtYWRldXMubmV0LyMvY29tcG9uZW50cy9zbGlkZXIvYWdub3N1aSAgQWdub3NVSSBTbGlkZXJ9IGluc3RlYWQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZlNsaWRlckRpcmVjdGlvbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERmU2xpZGVyRGlyZWN0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gV29ya2Fyb3VuZCBkdWUgdG8gYmFkIGV4cG9ydCBvbiBAYW5ndWxhci1zbGlkZXIvbmd4LXNsaWRlciBhbmQgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvODI3N1xuICBASW5wdXQoJ2RmU2xpZGVyRGlyZWN0aW9uJylcbiAgcHVibGljIGhvc3Q6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBydGxEaXJlY3Rpb25TZXJ2aWNlOiBEZkRpcmVjdGlvbkRldGVjdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJ0bERpcmVjdGlvblNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMucnRsRGlyZWN0aW9uU2VydmljZS5nZXRQYWdlRGlyZWN0aW9uKHRoaXMuZWxlbWVudFJlZik7XG5cbiAgICAgIGlmIChkaXJlY3Rpb24gPT09IFJpZ2h0VG9MZWZ0RGlyZWN0aW9uRW51bS5SaWdodFRvTGVmdCkge1xuICAgICAgICB0aGlzLmhvc3Qub3B0aW9ucy5yaWdodFRvTGVmdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export class ChangeContext {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2xpZGVyL2xpYi9jaGFuZ2UtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sYUFBYTtDQUl6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50ZXJUeXBlIH0gZnJvbSAnLi9wb2ludGVyLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgQ2hhbmdlQ29udGV4dCB7XG4gIHZhbHVlPzogbnVtYmVyO1xuICBoaWdoVmFsdWU/OiBudW1iZXI7XG4gIHBvaW50ZXJUeXBlPzogUG9pbnRlclR5cGU7XG59Il19
@@ -1,15 +0,0 @@
1
- /** Helper with compatibility functions to support different browsers */
2
- export class CompatibilityHelper {
3
- /** Workaround for TouchEvent constructor sadly not being available on all browsers (e.g. Firefox, Safari) */
4
- static isTouchEvent(event) {
5
- if (window.TouchEvent !== undefined) {
6
- return event instanceof TouchEvent;
7
- }
8
- return event.touches !== undefined;
9
- }
10
- /** Detect presence of ResizeObserver API */
11
- static isResizeObserverAvailable() {
12
- return window.ResizeObserver !== undefined;
13
- }
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGF0aWJpbGl0eS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2xpZGVyL2xpYi9jb21wYXRpYmlsaXR5LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSx3RUFBd0U7QUFDeEUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qiw2R0FBNkc7SUFDdEcsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFVO1FBQ25DLElBQUssTUFBYyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QyxPQUFPLEtBQUssWUFBWSxVQUFVLENBQUM7UUFDckMsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELDRDQUE0QztJQUNyQyxNQUFNLENBQUMseUJBQXlCO1FBQ3JDLE9BQVEsTUFBYyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUM7SUFDdEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBEZWNsYXJhdGlvbiBmb3IgUmVzaXplT2JzZXJ2ZXIgYSBuZXcgQVBJIGF2YWlsYWJsZSBpbiBzb21lIG9mIG5ld2VzdCBicm93c2Vyczpcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9SZXNpemVPYnNlcnZlclxuZGVjbGFyZSBjbGFzcyBSZXNpemVPYnNlcnZlciB7XG59XG5cbi8qKiBIZWxwZXIgd2l0aCBjb21wYXRpYmlsaXR5IGZ1bmN0aW9ucyB0byBzdXBwb3J0IGRpZmZlcmVudCBicm93c2VycyAqL1xuZXhwb3J0IGNsYXNzIENvbXBhdGliaWxpdHlIZWxwZXIge1xuICAvKiogV29ya2Fyb3VuZCBmb3IgVG91Y2hFdmVudCBjb25zdHJ1Y3RvciBzYWRseSBub3QgYmVpbmcgYXZhaWxhYmxlIG9uIGFsbCBicm93c2VycyAoZS5nLiBGaXJlZm94LCBTYWZhcmkpICovXG4gIHB1YmxpYyBzdGF0aWMgaXNUb3VjaEV2ZW50KGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLlRvdWNoRXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gZXZlbnQudG91Y2hlcyAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqIERldGVjdCBwcmVzZW5jZSBvZiBSZXNpemVPYnNlcnZlciBBUEkgKi9cbiAgcHVibGljIHN0YXRpYyBpc1Jlc2l6ZU9ic2VydmVyQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAod2luZG93IGFzIGFueSkuUmVzaXplT2JzZXJ2ZXIgIT09IHVuZGVmaW5lZDtcbiAgfVxufSJdfQ==