@odx/angular 1.0.4 → 2.1.1

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 (263) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/breakpoints/README.md +3 -0
  3. package/breakpoints/index.d.ts +7 -0
  4. package/breakpoints/lib/breakpoints.config.d.ts +21 -0
  5. package/breakpoints/lib/breakpoints.module.d.ts +7 -0
  6. package/breakpoints/lib/breakpoints.service.d.ts +13 -0
  7. package/breakpoints/lib/breakpoints.typings.d.ts +8 -0
  8. package/breakpoints/lib/directives/index.d.ts +1 -0
  9. package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +16 -0
  10. package/breakpoints/lib/helpers/configure-breakpoint.d.ts +4 -0
  11. package/breakpoints/lib/helpers/index.d.ts +1 -0
  12. package/breakpoints/lib/models/breakpoint.d.ts +5 -0
  13. package/breakpoints/lib/models/index.d.ts +1 -0
  14. package/cdk/autocomplete-control/README.md +3 -0
  15. package/cdk/autocomplete-control/index.d.ts +3 -0
  16. package/cdk/autocomplete-control/lib/abstract/base-search-field.directive.d.ts +13 -0
  17. package/cdk/autocomplete-control/lib/abstract/index.d.ts +1 -0
  18. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +39 -0
  19. package/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.d.ts +11 -0
  20. package/cdk/autocomplete-control/lib/pipes/index.d.ts +1 -0
  21. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +1 -1
  22. package/cdk/option-control/README.md +3 -0
  23. package/cdk/option-control/index.d.ts +1 -0
  24. package/cdk/option-control/lib/option-control.d.ts +17 -0
  25. package/components/autocomplete/README.md +3 -0
  26. package/components/autocomplete/index.d.ts +6 -0
  27. package/components/autocomplete/lib/autocomplete.component.d.ts +30 -0
  28. package/components/autocomplete/lib/autocomplete.module.d.ts +11 -0
  29. package/components/autocomplete/lib/autocomplete.tokens.d.ts +3 -0
  30. package/components/autocomplete/lib/components/index.d.ts +1 -0
  31. package/components/autocomplete/lib/components/option/autocomplete-option.component.d.ts +9 -0
  32. package/components/autocomplete/lib/directives/autocomplete-search-field.directive.d.ts +9 -0
  33. package/components/autocomplete/lib/directives/index.d.ts +1 -0
  34. package/components/autocomplete/lib/pipes/autocomplete-search-filter.pipe.d.ts +12 -0
  35. package/components/autocomplete/lib/pipes/index.d.ts +1 -0
  36. package/components/chip/index.d.ts +1 -1
  37. package/components/chip/lib/{chip.component.d.ts → components/chip/chip.component.d.ts} +1 -1
  38. package/components/chip/lib/components/chip-list/chip-list.component.d.ts +6 -0
  39. package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +6 -0
  40. package/components/chip/lib/components/index.d.ts +3 -0
  41. package/components/dropdown/lib/dropdown.directive.d.ts +2 -1
  42. package/components/form-field/lib/models/form-field-variant.d.ts +1 -0
  43. package/components/main-menu/lib/directives/index.d.ts +1 -0
  44. package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +7 -0
  45. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +3 -4
  46. package/components/main-menu/lib/main-menu.module.d.ts +3 -2
  47. package/components/menu/lib/directives/menu-item.directive.d.ts +1 -1
  48. package/components/menu/lib/menu.module.d.ts +3 -2
  49. package/components/rail-navigation/index.d.ts +2 -1
  50. package/components/rail-navigation/lib/components/index.d.ts +1 -0
  51. package/components/rail-navigation/lib/models/index.d.ts +1 -0
  52. package/components/rail-navigation/lib/models/rail-navigation-variant.d.ts +5 -0
  53. package/components/rail-navigation/lib/rail-navigation.component.d.ts +4 -2
  54. package/components/rail-navigation/lib/rail-navigation.module.d.ts +2 -2
  55. package/components/select/index.d.ts +0 -1
  56. package/components/select/lib/components/index.d.ts +1 -1
  57. package/components/select/lib/components/select-option/select-option.component.d.ts +19 -0
  58. package/components/select/lib/directives/select-search-field.directive.d.ts +3 -7
  59. package/components/select/lib/pipes/select-search-filter.pipe.d.ts +8 -8
  60. package/components/select/lib/select.component.d.ts +15 -30
  61. package/components/select/lib/select.module.d.ts +2 -2
  62. package/components/select/lib/select.tokens.d.ts +2 -2
  63. package/components/table/README.md +3 -0
  64. package/components/table/index.d.ts +5 -0
  65. package/components/table/lib/components/check-cell/check-cell.component.d.ts +11 -0
  66. package/components/table/lib/components/header-title/header-title.component.d.ts +28 -0
  67. package/components/table/lib/components/index.d.ts +2 -0
  68. package/components/table/lib/directives/index.d.ts +2 -0
  69. package/components/table/lib/directives/table-cell.directive.d.ts +6 -0
  70. package/components/table/lib/directives/table-row.directive.d.ts +6 -0
  71. package/components/table/lib/interfaces/index.d.ts +3 -0
  72. package/components/table/lib/models/index.d.ts +2 -0
  73. package/components/table/lib/models/sort-variant.d.ts +6 -0
  74. package/components/table/lib/models/table-variant.d.ts +5 -0
  75. package/components/table/lib/table.component.d.ts +29 -0
  76. package/components/table/lib/table.config.d.ts +4 -0
  77. package/components/table/lib/table.module.d.ts +11 -0
  78. package/components/wizard/README.md +3 -0
  79. package/components/wizard/index.d.ts +3 -0
  80. package/components/wizard/lib/components/index.d.ts +1 -0
  81. package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +17 -0
  82. package/components/wizard/lib/wizard.component.d.ts +31 -0
  83. package/components/wizard/lib/wizard.module.d.ts +9 -0
  84. package/esm2020/breakpoints/index.mjs +8 -0
  85. package/esm2020/breakpoints/lib/breakpoints.config.mjs +13 -0
  86. package/esm2020/breakpoints/lib/breakpoints.module.mjs +17 -0
  87. package/esm2020/breakpoints/lib/breakpoints.service.mjs +34 -0
  88. package/esm2020/breakpoints/lib/breakpoints.typings.mjs +2 -0
  89. package/esm2020/breakpoints/lib/directives/index.mjs +2 -0
  90. package/esm2020/breakpoints/lib/directives/match-breakpoints.directive.mjs +48 -0
  91. package/esm2020/breakpoints/lib/helpers/configure-breakpoint.mjs +8 -0
  92. package/esm2020/breakpoints/lib/helpers/index.mjs +2 -0
  93. package/esm2020/breakpoints/lib/models/breakpoint.mjs +2 -0
  94. package/esm2020/breakpoints/lib/models/index.mjs +2 -0
  95. package/esm2020/breakpoints/odx-angular-breakpoints.mjs +5 -0
  96. package/esm2020/cdk/autocomplete-control/index.mjs +4 -0
  97. package/esm2020/cdk/autocomplete-control/lib/abstract/base-search-field.directive.mjs +38 -0
  98. package/esm2020/cdk/autocomplete-control/lib/abstract/index.mjs +2 -0
  99. package/esm2020/cdk/autocomplete-control/lib/autocomplete-control.mjs +90 -0
  100. package/esm2020/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.mjs +32 -0
  101. package/esm2020/cdk/autocomplete-control/lib/pipes/index.mjs +2 -0
  102. package/esm2020/cdk/autocomplete-control/odx-angular-cdk-autocomplete-control.mjs +5 -0
  103. package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +5 -5
  104. package/esm2020/cdk/option-control/index.mjs +2 -0
  105. package/esm2020/cdk/option-control/lib/option-control.mjs +47 -0
  106. package/esm2020/cdk/option-control/odx-angular-cdk-option-control.mjs +5 -0
  107. package/esm2020/components/autocomplete/index.mjs +7 -0
  108. package/esm2020/components/autocomplete/lib/autocomplete.component.mjs +162 -0
  109. package/esm2020/components/autocomplete/lib/autocomplete.module.mjs +21 -0
  110. package/esm2020/components/autocomplete/lib/autocomplete.tokens.mjs +3 -0
  111. package/esm2020/components/autocomplete/lib/components/index.mjs +2 -0
  112. package/esm2020/components/autocomplete/lib/components/option/autocomplete-option.component.mjs +33 -0
  113. package/esm2020/components/autocomplete/lib/directives/autocomplete-search-field.directive.mjs +26 -0
  114. package/esm2020/components/autocomplete/lib/directives/index.mjs +2 -0
  115. package/esm2020/components/autocomplete/lib/pipes/autocomplete-search-filter.pipe.mjs +30 -0
  116. package/esm2020/components/autocomplete/lib/pipes/index.mjs +2 -0
  117. package/esm2020/components/autocomplete/odx-angular-components-autocomplete.mjs +5 -0
  118. package/esm2020/components/card/lib/card.component.mjs +2 -2
  119. package/esm2020/components/checkbox/lib/checkbox.component.mjs +2 -2
  120. package/esm2020/components/chip/index.mjs +2 -2
  121. package/esm2020/components/chip/lib/{chip.component.mjs → components/chip/chip.component.mjs} +2 -2
  122. package/esm2020/components/chip/lib/components/chip-list/chip-list.component.mjs +21 -0
  123. package/esm2020/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +21 -0
  124. package/esm2020/components/chip/lib/components/index.mjs +4 -0
  125. package/esm2020/components/dropdown/lib/dropdown.component.mjs +3 -3
  126. package/esm2020/components/dropdown/lib/dropdown.directive.mjs +10 -2
  127. package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +3 -3
  128. package/esm2020/components/form-field/lib/form-field.component.mjs +3 -3
  129. package/esm2020/components/form-field/lib/form-field.service.mjs +2 -2
  130. package/esm2020/components/form-field/lib/models/form-field-variant.mjs +2 -1
  131. package/esm2020/components/main-menu/lib/directives/index.mjs +2 -1
  132. package/esm2020/components/main-menu/lib/directives/main-menu-close.directive.mjs +24 -0
  133. package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +6 -12
  134. package/esm2020/components/main-menu/lib/main-menu.module.mjs +4 -4
  135. package/esm2020/components/main-menu/lib/main-menu.service.mjs +2 -11
  136. package/esm2020/components/menu/lib/directives/menu-item.directive.mjs +3 -3
  137. package/esm2020/components/menu/lib/menu.module.mjs +5 -4
  138. package/esm2020/components/rail-navigation/index.mjs +3 -2
  139. package/esm2020/components/rail-navigation/lib/components/index.mjs +2 -0
  140. package/esm2020/components/rail-navigation/lib/components/{rail-navigation-item.component.mjs → rail-navigation-item/rail-navigation-item.component.mjs} +3 -3
  141. package/esm2020/components/rail-navigation/lib/models/index.mjs +2 -0
  142. package/esm2020/components/rail-navigation/lib/models/rail-navigation-variant.mjs +5 -0
  143. package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +19 -11
  144. package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +4 -4
  145. package/esm2020/components/select/index.mjs +1 -2
  146. package/esm2020/components/select/lib/components/index.mjs +2 -2
  147. package/esm2020/components/select/lib/components/select-option/select-option.component.mjs +75 -0
  148. package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +9 -21
  149. package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +12 -33
  150. package/esm2020/components/select/lib/select.component.mjs +44 -86
  151. package/esm2020/components/select/lib/select.module.mjs +5 -5
  152. package/esm2020/components/select/lib/select.tokens.mjs +2 -2
  153. package/esm2020/components/table/index.mjs +6 -0
  154. package/esm2020/components/table/lib/components/check-cell/check-cell.component.mjs +29 -0
  155. package/esm2020/components/table/lib/components/header-title/header-title.component.mjs +86 -0
  156. package/esm2020/components/table/lib/components/index.mjs +3 -0
  157. package/esm2020/components/table/lib/directives/index.mjs +3 -0
  158. package/esm2020/components/table/lib/directives/table-cell.directive.mjs +27 -0
  159. package/esm2020/components/table/lib/directives/table-row.directive.mjs +28 -0
  160. package/esm2020/components/table/lib/interfaces/index.mjs +4 -0
  161. package/esm2020/components/table/lib/models/index.mjs +3 -0
  162. package/esm2020/components/table/lib/models/sort-variant.mjs +6 -0
  163. package/esm2020/components/table/lib/models/table-variant.mjs +5 -0
  164. package/esm2020/components/table/lib/table.component.mjs +86 -0
  165. package/esm2020/components/table/lib/table.config.mjs +3 -0
  166. package/esm2020/components/table/lib/table.module.mjs +21 -0
  167. package/esm2020/components/table/odx-angular-components-table.mjs +5 -0
  168. package/esm2020/components/wizard/index.mjs +4 -0
  169. package/esm2020/components/wizard/lib/components/index.mjs +2 -0
  170. package/esm2020/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +73 -0
  171. package/esm2020/components/wizard/lib/wizard.component.mjs +155 -0
  172. package/esm2020/components/wizard/lib/wizard.module.mjs +19 -0
  173. package/esm2020/components/wizard/odx-angular-components-wizard.mjs +5 -0
  174. package/esm2020/internal/decorators/css-component.mjs +1 -1
  175. package/esm2020/internal/decorators/css-modifier.mjs +16 -21
  176. package/esm2020/internal/helpers/get-css-variables.mjs +12 -19
  177. package/esm2020/lib/services/window-ref.mjs +4 -1
  178. package/fesm2015/odx-angular-breakpoints.mjs +111 -0
  179. package/fesm2015/odx-angular-breakpoints.mjs.map +1 -0
  180. package/fesm2015/odx-angular-cdk-autocomplete-control.mjs +164 -0
  181. package/fesm2015/odx-angular-cdk-autocomplete-control.mjs.map +1 -0
  182. package/fesm2015/odx-angular-cdk-expandable.mjs +4 -4
  183. package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -1
  184. package/fesm2015/odx-angular-cdk-option-control.mjs +55 -0
  185. package/fesm2015/odx-angular-cdk-option-control.mjs.map +1 -0
  186. package/fesm2015/odx-angular-components-autocomplete.mjs +263 -0
  187. package/fesm2015/odx-angular-components-autocomplete.mjs.map +1 -0
  188. package/fesm2015/odx-angular-components-card.mjs +1 -1
  189. package/fesm2015/odx-angular-components-card.mjs.map +1 -1
  190. package/fesm2015/odx-angular-components-checkbox.mjs +1 -1
  191. package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
  192. package/fesm2015/odx-angular-components-chip.mjs +35 -5
  193. package/fesm2015/odx-angular-components-chip.mjs.map +1 -1
  194. package/fesm2015/odx-angular-components-dropdown.mjs +11 -3
  195. package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -1
  196. package/fesm2015/odx-angular-components-form-field.mjs +5 -4
  197. package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
  198. package/fesm2015/odx-angular-components-main-menu.mjs +30 -24
  199. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  200. package/fesm2015/odx-angular-components-menu.mjs +6 -5
  201. package/fesm2015/odx-angular-components-menu.mjs.map +1 -1
  202. package/fesm2015/odx-angular-components-rail-navigation.mjs +23 -11
  203. package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -1
  204. package/fesm2015/odx-angular-components-select.mjs +80 -175
  205. package/fesm2015/odx-angular-components-select.mjs.map +1 -1
  206. package/fesm2015/odx-angular-components-table.mjs +264 -0
  207. package/fesm2015/odx-angular-components-table.mjs.map +1 -0
  208. package/fesm2015/odx-angular-components-wizard.mjs +242 -0
  209. package/fesm2015/odx-angular-components-wizard.mjs.map +1 -0
  210. package/fesm2015/odx-angular-internal.mjs +27 -40
  211. package/fesm2015/odx-angular-internal.mjs.map +1 -1
  212. package/fesm2015/odx-angular.mjs +3 -0
  213. package/fesm2015/odx-angular.mjs.map +1 -1
  214. package/fesm2020/odx-angular-breakpoints.mjs +117 -0
  215. package/fesm2020/odx-angular-breakpoints.mjs.map +1 -0
  216. package/fesm2020/odx-angular-cdk-autocomplete-control.mjs +160 -0
  217. package/fesm2020/odx-angular-cdk-autocomplete-control.mjs.map +1 -0
  218. package/fesm2020/odx-angular-cdk-expandable.mjs +4 -4
  219. package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -1
  220. package/fesm2020/odx-angular-cdk-option-control.mjs +54 -0
  221. package/fesm2020/odx-angular-cdk-option-control.mjs.map +1 -0
  222. package/fesm2020/odx-angular-components-autocomplete.mjs +254 -0
  223. package/fesm2020/odx-angular-components-autocomplete.mjs.map +1 -0
  224. package/fesm2020/odx-angular-components-card.mjs +1 -1
  225. package/fesm2020/odx-angular-components-card.mjs.map +1 -1
  226. package/fesm2020/odx-angular-components-checkbox.mjs +1 -1
  227. package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
  228. package/fesm2020/odx-angular-components-chip.mjs +35 -5
  229. package/fesm2020/odx-angular-components-chip.mjs.map +1 -1
  230. package/fesm2020/odx-angular-components-dropdown.mjs +11 -3
  231. package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -1
  232. package/fesm2020/odx-angular-components-form-field.mjs +5 -4
  233. package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
  234. package/fesm2020/odx-angular-components-main-menu.mjs +30 -24
  235. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  236. package/fesm2020/odx-angular-components-menu.mjs +6 -5
  237. package/fesm2020/odx-angular-components-menu.mjs.map +1 -1
  238. package/fesm2020/odx-angular-components-rail-navigation.mjs +23 -11
  239. package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -1
  240. package/fesm2020/odx-angular-components-select.mjs +77 -170
  241. package/fesm2020/odx-angular-components-select.mjs.map +1 -1
  242. package/fesm2020/odx-angular-components-table.mjs +259 -0
  243. package/fesm2020/odx-angular-components-table.mjs.map +1 -0
  244. package/fesm2020/odx-angular-components-wizard.mjs +239 -0
  245. package/fesm2020/odx-angular-components-wizard.mjs.map +1 -0
  246. package/fesm2020/odx-angular-internal.mjs +26 -38
  247. package/fesm2020/odx-angular-internal.mjs.map +1 -1
  248. package/fesm2020/odx-angular.mjs +3 -0
  249. package/fesm2020/odx-angular.mjs.map +1 -1
  250. package/internal/decorators/css-component.d.ts +1 -1
  251. package/internal/decorators/css-modifier.d.ts +2 -2
  252. package/internal/helpers/get-css-variables.d.ts +2 -3
  253. package/lib/services/window-ref.d.ts +1 -0
  254. package/package.json +52 -4
  255. package/components/select/lib/abstract/index.d.ts +0 -2
  256. package/components/select/lib/abstract/select-control-option.d.ts +0 -9
  257. package/components/select/lib/abstract/select-control.d.ts +0 -12
  258. package/components/select/lib/components/option/option.component.d.ts +0 -26
  259. package/esm2020/components/select/lib/abstract/index.mjs +0 -3
  260. package/esm2020/components/select/lib/abstract/select-control-option.mjs +0 -2
  261. package/esm2020/components/select/lib/abstract/select-control.mjs +0 -2
  262. package/esm2020/components/select/lib/components/option/option.component.mjs +0 -95
  263. /package/components/rail-navigation/lib/components/{rail-navigation-item.component.d.ts → rail-navigation-item/rail-navigation-item.component.d.ts} +0 -0
@@ -0,0 +1,155 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, inject, Input, Output, QueryList, Renderer2, ViewEncapsulation, } from '@angular/core';
4
+ import { WindowRef } from '@odx/angular';
5
+ import { CSSComponent, CSSModifier } from '@odx/angular/internal';
6
+ import { injectElement, Transform, untilDestroyed } from '@odx/angular/utils';
7
+ import { debounceTime, fromEvent, merge, tap } from 'rxjs';
8
+ import { WizardStepComponent } from './components';
9
+ import * as i0 from "@angular/core";
10
+ let WizardComponent = class WizardComponent {
11
+ constructor() {
12
+ this.destroyed = untilDestroyed();
13
+ this.renderer = inject(Renderer2);
14
+ this.visibleStepsSegments = 0;
15
+ this.dottedLineStart = this.renderer.createElement('div');
16
+ this.dottedLineEnd = this.renderer.createElement('div');
17
+ this.windowRef = inject(WindowRef);
18
+ this.activeStep = 0;
19
+ this.element = injectElement();
20
+ this.vertical = false;
21
+ this.activeStepChanged = new EventEmitter();
22
+ }
23
+ ngAfterViewInit() {
24
+ if (!this.steps)
25
+ return;
26
+ [this.dottedLineStart, this.dottedLineEnd].forEach((l) => this.renderer.addClass(l, 'odx-wizard-step__dotted-line'));
27
+ this.visibleStepsSegments = this.calculateVisibleStepsSegments();
28
+ this.setActiveStep();
29
+ merge(fromEvent(this.windowRef.nativeWindow, 'resize'), this.steps.changes)
30
+ .pipe(this.destroyed(), debounceTime(600))
31
+ .subscribe(() => {
32
+ this.visibleStepsSegments = this.calculateVisibleStepsSegments();
33
+ this.setHiddenSteps();
34
+ });
35
+ this.clickStepSubscriber();
36
+ }
37
+ nextStep() {
38
+ this.activeStep < this.steps.length - 1 && this.changeStepHandler(this.steps.get(this.activeStep + 1));
39
+ }
40
+ previousStep() {
41
+ this.activeStep > 0 && this.changeStepHandler(this.steps.get(this.activeStep - 1));
42
+ }
43
+ setActiveStepValid() {
44
+ this.steps.get(this.activeStep)?.setValid(true);
45
+ }
46
+ calculateVisibleStepsSegments() {
47
+ const container = this.element.nativeElement;
48
+ const { width, height } = container.getBoundingClientRect();
49
+ const containerSize = this.vertical ? height : width;
50
+ let visibleSteps = 0;
51
+ let summaryStepsSize = 0;
52
+ const prop = this.vertical ? 'flex-basis' : 'min-width';
53
+ const minStepSize = parseInt(this.getStyleFromCSS(this.steps.first.element.nativeElement, prop));
54
+ this.steps.forEach(() => {
55
+ summaryStepsSize += minStepSize;
56
+ if (summaryStepsSize < containerSize)
57
+ visibleSteps++;
58
+ });
59
+ return visibleSteps;
60
+ }
61
+ getStyleFromCSS(el, prop) {
62
+ return this.windowRef.nativeWindow.getComputedStyle(el).getPropertyValue(prop);
63
+ }
64
+ setActiveStep() {
65
+ const touched = [];
66
+ this.steps.forEach((step, index) => {
67
+ step.active = false;
68
+ step.isLastTouched = false;
69
+ if (this.activeStep === index)
70
+ step.touched = true;
71
+ step.touched && touched.push(step);
72
+ this.activeStep === index && (step.active = true);
73
+ step.passed = index <= this.activeStep;
74
+ });
75
+ const lastTouched = touched.pop();
76
+ lastTouched && (lastTouched.isLastTouched = true);
77
+ this.setHiddenSteps();
78
+ }
79
+ clickStepSubscriber() {
80
+ merge(...this.steps.map((step) => step.stepChosen$))
81
+ .pipe(this.destroyed(), tap((step) => this.changeStepHandler(step)))
82
+ .subscribe();
83
+ }
84
+ changeStepHandler(step) {
85
+ const index = this.steps.toArray().indexOf(step);
86
+ const isPreviousStepValid = this.steps.get(index - 1)?.valid;
87
+ const isFirstStepTarget = index === 0;
88
+ if ((isPreviousStepValid || isFirstStepTarget) && index !== this.activeStep) {
89
+ this.activeStep = index;
90
+ this.activeStepChanged.emit(this.activeStep);
91
+ this.setActiveStep();
92
+ }
93
+ }
94
+ setHiddenSteps() {
95
+ const length = this.steps.length;
96
+ [this.dottedLineStart, this.dottedLineEnd].forEach((l) => this.setDottedLineActive(l, true));
97
+ this.renderer.insertBefore(this.element.nativeElement, this.dottedLineStart, this.steps.get(1)?.element.nativeElement);
98
+ this.renderer.insertBefore(this.element.nativeElement, this.dottedLineEnd, this.steps.get(length - 1)?.element.nativeElement);
99
+ const start = this.activeStep < length / 2;
100
+ const stepsForHide = this.steps.toArray().slice(1, -1);
101
+ const visibleStepsSegments = this.visibleStepsSegments - 2;
102
+ stepsForHide.forEach((step, i) => {
103
+ if (length > this.visibleStepsSegments) {
104
+ step.visible = start
105
+ ? i < visibleStepsSegments - 1 || this.isNeighbors(i, stepsForHide)
106
+ : i > stepsForHide.length - (visibleStepsSegments - 1) || this.isNeighbors(i, stepsForHide);
107
+ }
108
+ else {
109
+ step.visible = true;
110
+ }
111
+ });
112
+ const filteredVisibleSteps = stepsForHide.filter((s) => s.visible);
113
+ if (visibleStepsSegments - 1 < filteredVisibleSteps.length && length > this.visibleStepsSegments) {
114
+ const overflowSize = filteredVisibleSteps.length - visibleStepsSegments + 1;
115
+ const index = start ? overflowSize : filteredVisibleSteps.length - overflowSize - 1;
116
+ filteredVisibleSteps.forEach((s, i) => {
117
+ (start ? i <= index : i >= index) && !this.isNeighbors(i, filteredVisibleSteps) && (s.visible = false);
118
+ });
119
+ }
120
+ this.steps.last.active && (stepsForHide[stepsForHide.length - 1].visible = true);
121
+ this.steps.first.active && (stepsForHide[0].visible = true);
122
+ !this.steps.get(1)?.visible && this.setDottedLineActive(this.dottedLineStart);
123
+ !this.steps.get(length - 2)?.visible && this.setDottedLineActive(this.dottedLineEnd);
124
+ }
125
+ isNeighbors(index, steps) {
126
+ const activeStep = steps.indexOf(steps.find((s) => s.active));
127
+ return activeStep !== -1 && (index === activeStep - 1 || index === activeStep + 1 || index === activeStep);
128
+ }
129
+ setDottedLineActive(line, unset) {
130
+ unset ? this.renderer.removeClass(line, 'odx-wizard-step__dotted-line--active') : this.renderer.addClass(line, 'odx-wizard-step__dotted-line--active');
131
+ }
132
+ };
133
+ WizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
134
+ WizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WizardComponent, isStandalone: true, selector: "odx-wizard", inputs: { vertical: "vertical" }, outputs: { activeStepChanged: "activeStepChanged" }, queries: [{ propertyName: "steps", predicate: WizardStepComponent }], ngImport: i0, template: "<ng-content select=\"odx-wizard-step\"></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
135
+ __decorate([
136
+ CSSModifier(),
137
+ Transform(coerceBooleanProperty),
138
+ __metadata("design:type", Object)
139
+ ], WizardComponent.prototype, "vertical", void 0);
140
+ WizardComponent = __decorate([
141
+ CSSComponent('wizard')
142
+ ], WizardComponent);
143
+ export { WizardComponent };
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardComponent, decorators: [{
145
+ type: Component,
146
+ args: [{ selector: 'odx-wizard', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-content select=\"odx-wizard-step\"></ng-content>\n" }]
147
+ }], propDecorators: { steps: [{
148
+ type: ContentChildren,
149
+ args: [WizardStepComponent]
150
+ }], vertical: [{
151
+ type: Input
152
+ }], activeStepChanged: [{
153
+ type: Output
154
+ }] } });
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3dpemFyZC9zcmMvbGliL3dpemFyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy93aXphcmQvc3JjL2xpYi93aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFVNUMsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUFyQjtRQUtZLGNBQVMsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUNoQixvQkFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtB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QTBKM0I7U0ExSlksZUFBZTsyRkFBZixlQUFlO2tCQVAzQixTQUFTOytCQUNFLFlBQVksY0FFVixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBTXBCLEtBQUs7c0JBRHJCLGVBQWU7dUJBQUMsbUJBQW1CO2dCQWlCN0IsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCBUcmFuc2Zvcm0sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBtZXJnZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXaXphcmRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcblxuQENTU0NvbXBvbmVudCgnd2l6YXJkJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC13aXphcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2l6YXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3ZlcnRpY2FsOiBCb29sZWFuSW5wdXQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihXaXphcmRTdGVwQ29tcG9uZW50KVxuICBwcml2YXRlIHJlYWRvbmx5IHN0ZXBzITogUXVlcnlMaXN0PFdpemFyZFN0ZXBDb21wb25lbnQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICBwcml2YXRlIHZpc2libGVTdGVwc1NlZ21lbnRzID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBkb3R0ZWRMaW5lU3RhcnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvdHRlZExpbmVFbmQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93UmVmID0gaW5qZWN0KFdpbmRvd1JlZik7XG4gIHByaXZhdGUgYWN0aXZlU3RlcCA9IDA7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgQENTU01vZGlmaWVyKClcbiAgQFRyYW5zZm9ybShjb2VyY2VCb29sZWFuUHJvcGVydHkpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2ZXJ0aWNhbCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWN0aXZlU3RlcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN0ZXBzKSByZXR1cm47XG4gICAgW3RoaXMuZG90dGVkTGluZVN0YXJ0LCB0aGlzLmRvdHRlZExpbmVFbmRdLmZvckVhY2goKGwpID0+IHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobCwgJ29keC13aXphcmQtc3RlcF9fZG90dGVkLWxpbmUnKSk7XG4gICAgdGhpcy52aXNpYmxlU3RlcHNTZWdtZW50cyA9IHRoaXMuY2FsY3VsYXRlVmlzaWJsZVN0ZXBzU2VnbWVudHMoKTtcbiAgICB0aGlzLnNldEFjdGl2ZVN0ZXAoKTtcblxuICAgIG1lcmdlKGZyb21FdmVudCh0aGlzLndpbmRvd1JlZi5uYXRpdmVXaW5kb3csICdyZXNpemUnKSwgdGhpcy5zdGVwcy5jaGFuZ2VzKVxuICAgICAgLnBpcGUodGhpcy5kZXN0cm95ZWQoKSwgZGVib3VuY2VUaW1lKDYwMCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy52aXNpYmxlU3RlcHNTZWdtZW50cyA9IHRoaXMuY2FsY3VsYXRlVmlzaWJsZVN0ZXBzU2VnbWVudHMoKTtcbiAgICAgICAgdGhpcy5zZXRIaWRkZW5TdGVwcygpO1xuICAgICAgfSk7XG4gICAgdGhpcy5jbGlja1N0ZXBTdWJzY3JpYmVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmV4dFN0ZXAoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVTdGVwIDwgdGhpcy5zdGVwcy5sZW5ndGggLSAxICYmIHRoaXMuY2hhbmdlU3RlcEhhbmRsZXIodGhpcy5zdGVwcy5nZXQodGhpcy5hY3RpdmVTdGVwICsgMSkgYXMgV2l6YXJkU3RlcENvbXBvbmVudCk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXNTdGVwKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlU3RlcCA+IDAgJiYgdGhpcy5jaGFuZ2VTdGVwSGFuZGxlcih0aGlzLnN0ZXBzLmdldCh0aGlzLmFjdGl2ZVN0ZXAgLSAxKSBhcyBXaXphcmRTdGVwQ29tcG9uZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmVTdGVwVmFsaWQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5nZXQodGhpcy5hY3RpdmVTdGVwKT8uc2V0VmFsaWQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZVZpc2libGVTdGVwc1NlZ21lbnRzKCk6IG51bWJlciB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgY29udGFpbmVyU2l6ZSA9IHRoaXMudmVydGljYWwgPyBoZWlnaHQgOiB3aWR0aDtcblxuICAgIGxldCB2aXNpYmxlU3RlcHMgPSAwO1xuICAgIGxldCBzdW1tYXJ5U3RlcHNTaXplID0gMDtcbiAgICBjb25zdCBwcm9wID0gdGhpcy52ZXJ0aWNhbCA/ICdmbGV4LWJhc2lzJyA6ICdtaW4td2lkdGgnO1xuICAgIGNvbnN0IG1pblN0ZXBTaXplID0gcGFyc2VJbnQodGhpcy5nZXRTdHlsZUZyb21DU1ModGhpcy5zdGVwcy5maXJzdC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHByb3ApKTtcblxuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoKSA9PiB7XG4gICAgICBzdW1tYXJ5U3RlcHNTaXplICs9IG1pblN0ZXBTaXplO1xuICAgICAgaWYgKHN1bW1hcnlTdGVwc1NpemUgPCBjb250YWluZXJTaXplKSB2aXNpYmxlU3RlcHMrKztcbiAgICB9KTtcblxuICAgIHJldHVybiB2aXNpYmxlU3RlcHM7XG4gIH1cblxuICBwcml2YXRlIGdldFN0eWxlRnJvbUNTUyhlbDogSFRNTEVsZW1lbnQsIHByb3A6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3ApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVTdGVwKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvdWNoZWQ6IFdpemFyZFN0ZXBDb21wb25lbnRbXSA9IFtdO1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgIHN0ZXAuYWN0aXZlID0gZmFsc2U7XG4gICAgICBzdGVwLmlzTGFzdFRvdWNoZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVN0ZXAgPT09IGluZGV4KSBzdGVwLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgc3RlcC50b3VjaGVkICYmIHRvdWNoZWQucHVzaChzdGVwKTtcbiAgICAgIHRoaXMuYWN0aXZlU3RlcCA9PT0gaW5kZXggJiYgKHN0ZXAuYWN0aXZlID0gdHJ1ZSk7XG4gICAgICBzdGVwLnBhc3NlZCA9IGluZGV4IDw9IHRoaXMuYWN0aXZlU3RlcDtcbiAgICB9KTtcbiAgICBjb25zdCBsYXN0VG91Y2hlZCA9IHRvdWNoZWQucG9wKCk7XG4gICAgbGFzdFRvdWNoZWQgJiYgKGxhc3RUb3VjaGVkLmlzTGFzdFRvdWNoZWQgPSB0cnVlKTtcbiAgICB0aGlzLnNldEhpZGRlblN0ZXBzKCk7XG4gIH1cblxuICBwcml2YXRlIGNsaWNrU3RlcFN1YnNjcmliZXIoKTogdm9pZCB7XG4gICAgbWVyZ2UoLi4udGhpcy5zdGVwcy5tYXAoKHN0ZXApID0+IHN0ZXAuc3RlcENob3NlbiQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRoaXMuZGVzdHJveWVkKCksXG4gICAgICAgIHRhcCgoc3RlcCkgPT4gdGhpcy5jaGFuZ2VTdGVwSGFuZGxlcihzdGVwKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlU3RlcEhhbmRsZXIoc3RlcDogV2l6YXJkU3RlcENvbXBvbmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGVwcy50b0FycmF5KCkuaW5kZXhPZihzdGVwKTtcbiAgICBjb25zdCBpc1ByZXZpb3VzU3RlcFZhbGlkID0gdGhpcy5zdGVwcy5nZXQoaW5kZXggLSAxKT8udmFsaWQ7XG4gICAgY29uc3QgaXNGaXJzdFN0ZXBUYXJnZXQgPSBpbmRleCA9PT0gMDtcblxuICAgIGlmICgoaXNQcmV2aW91c1N0ZXBWYWxpZCB8fCBpc0ZpcnN0U3RlcFRhcmdldCkgJiYgaW5kZXggIT09IHRoaXMuYWN0aXZlU3RlcCkge1xuICAgICAgdGhpcy5hY3RpdmVTdGVwID0gaW5kZXg7XG4gICAgICB0aGlzLmFjdGl2ZVN0ZXBDaGFuZ2VkLmVtaXQodGhpcy5hY3RpdmVTdGVwKTtcbiAgICAgIHRoaXMuc2V0QWN0aXZlU3RlcCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SGlkZGVuU3RlcHMoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5zdGVwcy5sZW5ndGg7XG5cbiAgICBbdGhpcy5kb3R0ZWRMaW5lU3RhcnQsIHRoaXMuZG90dGVkTGluZUVuZF0uZm9yRWFjaCgobCkgPT4gdGhpcy5zZXREb3R0ZWRMaW5lQWN0aXZlKGwsIHRydWUpKTtcblxuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB0aGlzLmRvdHRlZExpbmVTdGFydCwgdGhpcy5zdGVwcy5nZXQoMSk/LmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG90dGVkTGluZUVuZCwgdGhpcy5zdGVwcy5nZXQobGVuZ3RoIC0gMSk/LmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLmFjdGl2ZVN0ZXAgPCBsZW5ndGggLyAyO1xuICAgIGNvbnN0IHN0ZXBzRm9ySGlkZSA9IHRoaXMuc3RlcHMudG9BcnJheSgpLnNsaWNlKDEsIC0xKTtcbiAgICBjb25zdCB2aXNpYmxlU3RlcHNTZWdtZW50cyA9IHRoaXMudmlzaWJsZVN0ZXBzU2VnbWVudHMgLSAyO1xuICAgIHN0ZXBzRm9ySGlkZS5mb3JFYWNoKChzdGVwLCBpKSA9PiB7XG4gICAgICBpZiAobGVuZ3RoID4gdGhpcy52aXNpYmxlU3RlcHNTZWdtZW50cykge1xuICAgICAgICBzdGVwLnZpc2libGUgPSBzdGFydFxuICAgICAgICAgID8gaSA8IHZpc2libGVTdGVwc1NlZ21lbnRzIC0gMSB8fCB0aGlzLmlzTmVpZ2hib3JzKGksIHN0ZXBzRm9ySGlkZSlcbiAgICAgICAgICA6IGkgPiBzdGVwc0ZvckhpZGUubGVuZ3RoIC0gKHZpc2libGVTdGVwc1NlZ21lbnRzIC0gMSkgfHwgdGhpcy5pc05laWdoYm9ycyhpLCBzdGVwc0ZvckhpZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RlcC52aXNpYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBmaWx0ZXJlZFZpc2libGVTdGVwcyA9IHN0ZXBzRm9ySGlkZS5maWx0ZXIoKHMpID0+IHMudmlzaWJsZSk7XG4gICAgaWYgKHZpc2libGVTdGVwc1NlZ21lbnRzIC0gMSA8IGZpbHRlcmVkVmlzaWJsZVN0ZXBzLmxlbmd0aCAmJiBsZW5ndGggPiB0aGlzLnZpc2libGVTdGVwc1NlZ21lbnRzKSB7XG4gICAgICBjb25zdCBvdmVyZmxvd1NpemUgPSBmaWx0ZXJlZFZpc2libGVTdGVwcy5sZW5ndGggLSB2aXNpYmxlU3RlcHNTZWdtZW50cyArIDE7XG4gICAgICBjb25zdCBpbmRleCA9IHN0YXJ0ID8gb3ZlcmZsb3dTaXplIDogZmlsdGVyZWRWaXNpYmxlU3RlcHMubGVuZ3RoIC0gb3ZlcmZsb3dTaXplIC0gMTtcblxuICAgICAgZmlsdGVyZWRWaXNpYmxlU3RlcHMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICAoc3RhcnQgPyBpIDw9IGluZGV4IDogaSA+PSBpbmRleCkgJiYgIXRoaXMuaXNOZWlnaGJvcnMoaSwgZmlsdGVyZWRWaXNpYmxlU3RlcHMpICYmIChzLnZpc2libGUgPSBmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnN0ZXBzLmxhc3QuYWN0aXZlICYmIChzdGVwc0ZvckhpZGVbc3RlcHNGb3JIaWRlLmxlbmd0aCAtIDFdLnZpc2libGUgPSB0cnVlKTtcbiAgICB0aGlzLnN0ZXBzLmZpcnN0LmFjdGl2ZSAmJiAoc3RlcHNGb3JIaWRlWzBdLnZpc2libGUgPSB0cnVlKTtcblxuICAgICF0aGlzLnN0ZXBzLmdldCgxKT8udmlzaWJsZSAmJiB0aGlzLnNldERvdHRlZExpbmVBY3RpdmUodGhpcy5kb3R0ZWRMaW5lU3RhcnQpO1xuICAgICF0aGlzLnN0ZXBzLmdldChsZW5ndGggLSAyKT8udmlzaWJsZSAmJiB0aGlzLnNldERvdHRlZExpbmVBY3RpdmUodGhpcy5kb3R0ZWRMaW5lRW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNOZWlnaGJvcnMoaW5kZXg6IG51bWJlciwgc3RlcHM6IFdpemFyZFN0ZXBDb21wb25lbnRbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFjdGl2ZVN0ZXAgPSBzdGVwcy5pbmRleE9mKHN0ZXBzLmZpbmQoKHMpID0+IHMuYWN0aXZlKSBhcyBXaXphcmRTdGVwQ29tcG9uZW50KTtcbiAgICByZXR1cm4gYWN0aXZlU3RlcCAhPT0gLTEgJiYgKGluZGV4ID09PSBhY3RpdmVTdGVwIC0gMSB8fCBpbmRleCA9PT0gYWN0aXZlU3RlcCArIDEgfHwgaW5kZXggPT09IGFjdGl2ZVN0ZXApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREb3R0ZWRMaW5lQWN0aXZlKGxpbmU6IEhUTUxFbGVtZW50LCB1bnNldD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB1bnNldCA/IHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobGluZSwgJ29keC13aXphcmQtc3RlcF9fZG90dGVkLWxpbmUtLWFjdGl2ZScpIDogdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhsaW5lLCAnb2R4LXdpemFyZC1zdGVwX19kb3R0ZWQtbGluZS0tYWN0aXZlJyk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIm9keC13aXphcmQtc3RlcFwiPjwvbmctY29udGVudD5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CoreModule } from '@odx/angular';
3
+ import { WizardStepComponent } from './components';
4
+ import { WizardComponent } from './wizard.component';
5
+ import * as i0 from "@angular/core";
6
+ const modules = [WizardComponent, WizardStepComponent];
7
+ export class WizardModule {
8
+ }
9
+ WizardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ WizardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, imports: [WizardComponent, WizardStepComponent], exports: [CoreModule, WizardComponent, WizardStepComponent] });
11
+ WizardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, imports: [modules, CoreModule] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: modules,
16
+ exports: [CoreModule, ...modules],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3dpemFyZC9zcmMvbGliL3dpemFyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXJELE1BQU0sT0FBTyxHQUFHLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFNdkQsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxZQU5SLGVBQWUsRUFBRSxtQkFBbUIsYUFJekMsVUFBVSxFQUpMLGVBQWUsRUFBRSxtQkFBbUI7MEdBTXhDLFlBQVksWUFIZCxPQUFPLEVBQ04sVUFBVTsyRkFFVCxZQUFZO2tCQUp4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgV2l6YXJkU3RlcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBXaXphcmRDb21wb25lbnQgfSBmcm9tICcuL3dpemFyZC5jb21wb25lbnQnO1xuXG5jb25zdCBtb2R1bGVzID0gW1dpemFyZENvbXBvbmVudCwgV2l6YXJkU3RlcENvbXBvbmVudF07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IG1vZHVsZXMsXG4gIGV4cG9ydHM6IFtDb3JlTW9kdWxlLCAuLi5tb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY29tcG9uZW50cy13aXphcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy93aXphcmQvc3JjL29keC1hbmd1bGFyLWNvbXBvbmVudHMtd2l6YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -16,4 +16,4 @@ export function CSSComponent(name, prefix = 'odx') {
16
16
  })(target.prototype.ngOnInit);
17
17
  };
18
18
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9pbnRlcm5hbC9zcmMvZGVjb3JhdG9ycy9jc3MtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFPaEYsZ0JBQWdCO0FBQ2hCLDBCQUEwQjtBQUMxQixNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVksRUFBRSxNQUFNLEdBQUcsS0FBSztJQUN2RCxPQUFPLENBQUMsTUFBMEIsRUFBRSxFQUFFO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLEdBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtZQUMxRCxLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUM7UUFFSCxDQUFDLFVBQXlCLFFBQXFCO1lBQzdDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHO2dCQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlY29yYXRvclByb3BlcnR5TmFtZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3QgQ1NTX0NPTVBPTkVOVF9OQU1FID0gZGVjb3JhdG9yUHJvcGVydHlOYW1lKCdDU1NDb21wb25lbnQnLCAnbmFtZScpO1xuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgaW50ZXJmYWNlIENTU0NvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWY8dW5rbm93bj47XG59XG5cbi8qKiBAaW50ZXJuYWwgKi9cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgZnVuY3Rpb24gQ1NTQ29tcG9uZW50KG5hbWU6IHN0cmluZywgcHJlZml4ID0gJ29keCcpIHtcbiAgcmV0dXJuICh0YXJnZXQ6IFR5cGU8Q1NTQ29tcG9uZW50PikgPT4ge1xuICAgIGNvbnN0IGNzc0NsYXNzID0gYCR7cHJlZml4fS0ke25hbWV9YDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LnByb3RvdHlwZSwgQ1NTX0NPTVBPTkVOVF9OQU1FLCB7XG4gICAgICB2YWx1ZTogY3NzQ2xhc3MsXG4gICAgfSk7XG5cbiAgICAoZnVuY3Rpb24gKHRoaXM6IHVua25vd24sIG5nT25Jbml0PzogKCkgPT4gdm9pZCkge1xuICAgICAgdGFyZ2V0LnByb3RvdHlwZS5uZ09uSW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChjc3NDbGFzcyk7XG4gICAgICAgIG5nT25Jbml0Py5jYWxsKHRoaXMpO1xuICAgICAgfTtcbiAgICB9KSh0YXJnZXQucHJvdG90eXBlLm5nT25Jbml0KTtcbiAgfTtcbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9pbnRlcm5hbC9zcmMvZGVjb3JhdG9ycy9jc3MtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFPaEYsZ0JBQWdCO0FBQ2hCLDBCQUEwQjtBQUMxQixNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVksRUFBRSxNQUFNLEdBQUcsS0FBSztJQUN2RCxPQUFPLENBQUMsTUFBMEIsRUFBRSxFQUFFO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLEdBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtZQUMxRCxLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUM7UUFFSCxDQUFDLFVBQXlCLFFBQXFCO1lBQzdDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHO2dCQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlY29yYXRvclByb3BlcnR5TmFtZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3QgQ1NTX0NPTVBPTkVOVF9OQU1FID0gZGVjb3JhdG9yUHJvcGVydHlOYW1lKCdDU1NDb21wb25lbnQnLCAnbmFtZScpO1xuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgaW50ZXJmYWNlIENTU0NvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xufVxuXG4vKiogQGludGVybmFsICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGZ1bmN0aW9uIENTU0NvbXBvbmVudChuYW1lOiBzdHJpbmcsIHByZWZpeCA9ICdvZHgnKSB7XG4gIHJldHVybiAodGFyZ2V0OiBUeXBlPENTU0NvbXBvbmVudD4pID0+IHtcbiAgICBjb25zdCBjc3NDbGFzcyA9IGAke3ByZWZpeH0tJHtuYW1lfWA7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldC5wcm90b3R5cGUsIENTU19DT01QT05FTlRfTkFNRSwge1xuICAgICAgdmFsdWU6IGNzc0NsYXNzLFxuICAgIH0pO1xuXG4gICAgKGZ1bmN0aW9uICh0aGlzOiB1bmtub3duLCBuZ09uSW5pdD86ICgpID0+IHZvaWQpIHtcbiAgICAgIHRhcmdldC5wcm90b3R5cGUubmdPbkluaXQgPSBmdW5jdGlvbiAodGhpczogQ1NTQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoY3NzQ2xhc3MpO1xuICAgICAgICBuZ09uSW5pdD8uY2FsbCh0aGlzKTtcbiAgICAgIH07XG4gICAgfSkodGFyZ2V0LnByb3RvdHlwZS5uZ09uSW5pdCk7XG4gIH07XG59XG4iXX0=
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  import { camelToKebabCase, decoratorPropertyName, ɵwithMultipleDescriptors } from '../helpers';
3
2
  import { CSS_COMPONENT_NAME } from './css-component';
4
3
  /** @internal */
@@ -23,32 +22,28 @@ export function CSSModifier(options) {
23
22
  }
24
23
  return null;
25
24
  }
25
+ function getter() {
26
+ return this[propertySymbol];
27
+ }
26
28
  function setter(value) {
27
- const values = options?.isArray ? value : [value];
28
- this[propertySymbol] ?? (this[propertySymbol] = []);
29
- this[propertyDefaultValue] ?? (this[propertyDefaultValue] = values);
30
- for (let i = 0; i < values.length; ++i) {
31
- const nextValue = values[i] ?? this[propertyDefaultValue]?.[i] ?? null;
32
- const currentValue = this[propertySymbol][i] ?? null;
33
- if (this[propertySymbol].length < 1 || nextValue !== currentValue) {
34
- const currentModifierClass = createModifierClass.apply(this, [currentValue]);
35
- if (currentModifierClass !== null) {
36
- this.element.nativeElement.classList.remove(currentModifierClass);
37
- }
38
- this[propertySymbol][i] = nextValue;
39
- const newModifierClass = createModifierClass.apply(this, [nextValue]);
40
- if (newModifierClass !== null && (typeof nextValue === 'boolean' ? nextValue : true)) {
41
- this.element.nativeElement.classList.add(newModifierClass);
42
- }
29
+ this[propertyDefaultValue] ?? (this[propertyDefaultValue] = value);
30
+ const currentValue = this[propertySymbol] ?? null;
31
+ const nextValue = value ?? this[propertyDefaultValue] ?? null;
32
+ if (nextValue !== currentValue) {
33
+ const currentModifierClass = createModifierClass.call(this, currentValue);
34
+ if (currentModifierClass !== null) {
35
+ this.element.nativeElement.classList.remove(currentModifierClass);
36
+ }
37
+ const newModifierClass = createModifierClass.call(this, nextValue);
38
+ if (newModifierClass !== null && (typeof nextValue === 'boolean' ? nextValue : true)) {
39
+ this.element.nativeElement.classList.add(newModifierClass);
43
40
  }
44
41
  }
45
- }
46
- function getter() {
47
- return options?.isArray ? this[propertySymbol] : this[propertySymbol]?.[0];
42
+ this[propertySymbol] = nextValue;
48
43
  }
49
44
  descriptors.addSetter(setter);
50
45
  descriptors.addGetter(getter);
51
46
  descriptors.init();
52
47
  };
53
48
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLW1vZGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ludGVybmFsL3NyYy9kZWNvcmF0b3JzL2Nzcy1tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBU3JELGdCQUFnQjtBQUNoQiwwQkFBMEI7QUFDMUIsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxPQUFPLENBQUMsTUFBVyxFQUFFLFdBQXdCLEVBQUUsRUFBRTtRQUMvQyxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0MsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvRCxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDN0UsTUFBTSxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsR0FBRyxlQUFlLFVBQVUsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sV0FBVyxHQUFHLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFbEYsU0FBUyxtQkFBbUIsQ0FBWSxLQUFVO1lBQ2hELElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pGLElBQUksUUFBUSxHQUFHLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDekUsSUFBSSxPQUFPLEVBQUUsVUFBVSxFQUFFO29CQUN2QixRQUFRLEdBQUcsR0FBRyxlQUFlLElBQUksUUFBUSxFQUFFLENBQUM7aUJBQzdDO2dCQUNELElBQUksT0FBTyxFQUFFLG1CQUFtQixJQUFJLElBQUksRUFBRTtvQkFDeEMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2lCQUNuRDtnQkFDRCxPQUFPLFFBQVEsQ0FBQzthQUNqQjtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELFNBQVMsTUFBTSxDQUFZLEtBQVU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxjQUFjLE1BQW5CLElBQUksQ0FBQyxjQUFjLElBQU0sRUFBRSxFQUFDO1lBQzVCLElBQUksQ0FBQyxvQkFBb0IsTUFBekIsSUFBSSxDQUFDLG9CQUFvQixJQUFNLE1BQU0sRUFBQztZQUN0QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUN2RSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUNyRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFNBQVMsS0FBSyxZQUFZLEVBQUU7b0JBQ2pFLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQzdFLElBQUksb0JBQW9CLEtBQUssSUFBSSxFQUFFO3dCQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7cUJBQ25FO29CQUNELElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RFLElBQUksZ0JBQWdCLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNwRixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7cUJBQzVEO2lCQUNGO2FBQ0Y7UUFDSCxDQUFDO1FBRUQsU0FBUyxNQUFNO1lBQ2IsT0FBTyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFFRCxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBjYW1lbFRvS2ViYWJDYXNlLCBkZWNvcmF0b3JQcm9wZXJ0eU5hbWUsIMm1d2l0aE11bHRpcGxlRGVzY3JpcHRvcnMgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IENTU19DT01QT05FTlRfTkFNRSB9IGZyb20gJy4vY3NzLWNvbXBvbmVudCc7XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmludGVyZmFjZSBDU1NNb2RpZmllck9wdGlvbnMge1xuICBpc0FycmF5PzogYm9vbGVhbjtcbiAgd2l0aENvbXBvbmVudFByZWZpeD86IGJvb2xlYW47XG4gIHdpdGhQcmVmaXg/OiBib29sZWFuO1xufVxuXG4vKiogQGludGVybmFsICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGZ1bmN0aW9uIENTU01vZGlmaWVyKG9wdGlvbnM/OiBDU1NNb2RpZmllck9wdGlvbnMpIHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IFByb3BlcnR5S2V5KSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlLZXlOYW1lID0gcHJvcGVydHlLZXkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBwcm9wZXJ0eUtleUtlYmFiQ2FzZSA9IGNhbWVsVG9LZWJhYkNhc2UocHJvcGVydHlLZXlOYW1lKTtcbiAgICBjb25zdCBwcm9wZXJ0eVN5bWJvbCA9IGRlY29yYXRvclByb3BlcnR5TmFtZSgnQ1NTTW9kaWZpZXInLCBwcm9wZXJ0eUtleU5hbWUpO1xuICAgIGNvbnN0IHByb3BlcnR5RGVmYXVsdFZhbHVlID0gZGVjb3JhdG9yUHJvcGVydHlOYW1lKCdDU1NNb2RpZmllcicsIGAke3Byb3BlcnR5S2V5TmFtZX1fZGVmYXVsdGApO1xuICAgIGNvbnN0IGRlc2NyaXB0b3JzID0gybV3aXRoTXVsdGlwbGVEZXNjcmlwdG9ycyh0YXJnZXQsIHByb3BlcnR5S2V5LCBwcm9wZXJ0eVN5bWJvbCk7XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVNb2RpZmllckNsYXNzKHRoaXM6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA+IDApKSB7XG4gICAgICAgIGxldCBtb2RpZmllciA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nID8gcHJvcGVydHlLZXlLZWJhYkNhc2UgOiB2YWx1ZTtcbiAgICAgICAgaWYgKG9wdGlvbnM/LndpdGhQcmVmaXgpIHtcbiAgICAgICAgICBtb2RpZmllciA9IGAke3Byb3BlcnR5S2V5TmFtZX0tJHttb2RpZmllcn1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy53aXRoQ29tcG9uZW50UHJlZml4ID8/IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gYCR7dGhpc1tDU1NfQ09NUE9ORU5UX05BTUVdfS0tJHttb2RpZmllcn1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RpZmllcjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldHRlcih0aGlzOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IG9wdGlvbnM/LmlzQXJyYXkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICB0aGlzW3Byb3BlcnR5U3ltYm9sXSA/Pz0gW107XG4gICAgICB0aGlzW3Byb3BlcnR5RGVmYXVsdFZhbHVlXSA/Pz0gdmFsdWVzO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gdmFsdWVzW2ldID8/IHRoaXNbcHJvcGVydHlEZWZhdWx0VmFsdWVdPy5baV0gPz8gbnVsbDtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpc1twcm9wZXJ0eVN5bWJvbF1baV0gPz8gbnVsbDtcbiAgICAgICAgaWYgKHRoaXNbcHJvcGVydHlTeW1ib2xdLmxlbmd0aCA8IDEgfHwgbmV4dFZhbHVlICE9PSBjdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50TW9kaWZpZXJDbGFzcyA9IGNyZWF0ZU1vZGlmaWVyQ2xhc3MuYXBwbHkodGhpcywgW2N1cnJlbnRWYWx1ZV0pO1xuICAgICAgICAgIGlmIChjdXJyZW50TW9kaWZpZXJDbGFzcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjdXJyZW50TW9kaWZpZXJDbGFzcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXNbcHJvcGVydHlTeW1ib2xdW2ldID0gbmV4dFZhbHVlO1xuICAgICAgICAgIGNvbnN0IG5ld01vZGlmaWVyQ2xhc3MgPSBjcmVhdGVNb2RpZmllckNsYXNzLmFwcGx5KHRoaXMsIFtuZXh0VmFsdWVdKTtcbiAgICAgICAgICBpZiAobmV3TW9kaWZpZXJDbGFzcyAhPT0gbnVsbCAmJiAodHlwZW9mIG5leHRWYWx1ZSA9PT0gJ2Jvb2xlYW4nID8gbmV4dFZhbHVlIDogdHJ1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQobmV3TW9kaWZpZXJDbGFzcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0dGVyKHRoaXM6IGFueSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnM/LmlzQXJyYXkgPyB0aGlzW3Byb3BlcnR5U3ltYm9sXSA6IHRoaXNbcHJvcGVydHlTeW1ib2xdPy5bMF07XG4gICAgfVxuXG4gICAgZGVzY3JpcHRvcnMuYWRkU2V0dGVyKHNldHRlcik7XG4gICAgZGVzY3JpcHRvcnMuYWRkR2V0dGVyKGdldHRlcik7XG4gICAgZGVzY3JpcHRvcnMuaW5pdCgpO1xuICB9O1xufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLW1vZGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ludGVybmFsL3NyYy9kZWNvcmF0b3JzL2Nzcy1tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0YsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBVW5FLGdCQUFnQjtBQUNoQiwwQkFBMEI7QUFDMUIsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxPQUFPLENBQUMsTUFBb0IsRUFBRSxXQUF3QixFQUFFLEVBQUU7UUFDeEQsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9DLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0QsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsYUFBYSxFQUFFLEdBQUcsZUFBZSxVQUFVLENBQUMsQ0FBQztRQUNoRyxNQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRWxGLFNBQVMsbUJBQW1CLENBQTZCLEtBQWM7WUFDckUsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDakYsSUFBSSxRQUFRLEdBQUcsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN6RSxJQUFJLE9BQU8sRUFBRSxVQUFVLEVBQUU7b0JBQ3ZCLFFBQVEsR0FBRyxHQUFHLGVBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQztpQkFDN0M7Z0JBQ0QsSUFBSSxPQUFPLEVBQUUsbUJBQW1CLElBQUksSUFBSSxFQUFFO29CQUN4QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7aUJBQ25EO2dCQUNELE9BQU8sUUFBUSxDQUFDO2FBQ2pCO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsU0FBUyxNQUFNO1lBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELFNBQVMsTUFBTSxDQUE2QixLQUFjO1lBQ3hELElBQUksQ0FBQyxvQkFBb0IsTUFBekIsSUFBSSxDQUFDLG9CQUFvQixJQUFNLEtBQUssRUFBQztZQUNyQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ2xELE1BQU0sU0FBUyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUM7WUFFOUQsSUFBSSxTQUFTLEtBQUssWUFBWSxFQUFFO2dCQUM5QixNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQzFFLElBQUksb0JBQW9CLEtBQUssSUFBSSxFQUFFO29CQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7aUJBQ25FO2dCQUNELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3BGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDNUQ7YUFDRjtZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDbkMsQ0FBQztRQUVELFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9LZWJhYkNhc2UsIGRlY29yYXRvclByb3BlcnR5TmFtZSwgybV3aXRoTXVsdGlwbGVEZXNjcmlwdG9ycyB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NfQ09NUE9ORU5UX05BTUUgfSBmcm9tICcuL2Nzcy1jb21wb25lbnQnO1xuXG4vKiogQGludGVybmFsICovXG5pbnRlcmZhY2UgQ1NTTW9kaWZpZXJPcHRpb25zIHtcbiAgd2l0aENvbXBvbmVudFByZWZpeD86IGJvb2xlYW47XG4gIHdpdGhQcmVmaXg/OiBib29sZWFuO1xufVxuXG50eXBlIENTU0NvbXBvbmVudEluc3RhbmNlID0gQ1NTQ29tcG9uZW50ICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbi8qKiBAaW50ZXJuYWwgKi9cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgZnVuY3Rpb24gQ1NTTW9kaWZpZXIob3B0aW9ucz86IENTU01vZGlmaWVyT3B0aW9ucykge1xuICByZXR1cm4gKHRhcmdldDogQ1NTQ29tcG9uZW50LCBwcm9wZXJ0eUtleTogUHJvcGVydHlLZXkpID0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eUtleU5hbWUgPSBwcm9wZXJ0eUtleS50b1N0cmluZygpO1xuICAgIGNvbnN0IHByb3BlcnR5S2V5S2ViYWJDYXNlID0gY2FtZWxUb0tlYmFiQ2FzZShwcm9wZXJ0eUtleU5hbWUpO1xuICAgIGNvbnN0IHByb3BlcnR5U3ltYm9sID0gZGVjb3JhdG9yUHJvcGVydHlOYW1lKCdDU1NNb2RpZmllcicsIHByb3BlcnR5S2V5TmFtZSk7XG4gICAgY29uc3QgcHJvcGVydHlEZWZhdWx0VmFsdWUgPSBkZWNvcmF0b3JQcm9wZXJ0eU5hbWUoJ0NTU01vZGlmaWVyJywgYCR7cHJvcGVydHlLZXlOYW1lfV9kZWZhdWx0YCk7XG4gICAgY29uc3QgZGVzY3JpcHRvcnMgPSDJtXdpdGhNdWx0aXBsZURlc2NyaXB0b3JzKHRhcmdldCwgcHJvcGVydHlLZXksIHByb3BlcnR5U3ltYm9sKTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZU1vZGlmaWVyQ2xhc3ModGhpczogQ1NTQ29tcG9uZW50SW5zdGFuY2UsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHwgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gMCkpIHtcbiAgICAgICAgbGV0IG1vZGlmaWVyID0gdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgPyBwcm9wZXJ0eUtleUtlYmFiQ2FzZSA6IHZhbHVlO1xuICAgICAgICBpZiAob3B0aW9ucz8ud2l0aFByZWZpeCkge1xuICAgICAgICAgIG1vZGlmaWVyID0gYCR7cHJvcGVydHlLZXlOYW1lfS0ke21vZGlmaWVyfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnM/LndpdGhDb21wb25lbnRQcmVmaXggPz8gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiBgJHt0aGlzW0NTU19DT01QT05FTlRfTkFNRV19LS0ke21vZGlmaWVyfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGlmaWVyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0dGVyKHRoaXM6IENTU0NvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICByZXR1cm4gdGhpc1twcm9wZXJ0eVN5bWJvbF07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0dGVyKHRoaXM6IENTU0NvbXBvbmVudEluc3RhbmNlLCB2YWx1ZTogdW5rbm93bikge1xuICAgICAgdGhpc1twcm9wZXJ0eURlZmF1bHRWYWx1ZV0gPz89IHZhbHVlO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpc1twcm9wZXJ0eVN5bWJvbF0gPz8gbnVsbDtcbiAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHZhbHVlID8/IHRoaXNbcHJvcGVydHlEZWZhdWx0VmFsdWVdID8/IG51bGw7XG5cbiAgICAgIGlmIChuZXh0VmFsdWUgIT09IGN1cnJlbnRWYWx1ZSkge1xuICAgICAgICBjb25zdCBjdXJyZW50TW9kaWZpZXJDbGFzcyA9IGNyZWF0ZU1vZGlmaWVyQ2xhc3MuY2FsbCh0aGlzLCBjdXJyZW50VmFsdWUpO1xuICAgICAgICBpZiAoY3VycmVudE1vZGlmaWVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGN1cnJlbnRNb2RpZmllckNsYXNzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdNb2RpZmllckNsYXNzID0gY3JlYXRlTW9kaWZpZXJDbGFzcy5jYWxsKHRoaXMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGlmIChuZXdNb2RpZmllckNsYXNzICE9PSBudWxsICYmICh0eXBlb2YgbmV4dFZhbHVlID09PSAnYm9vbGVhbicgPyBuZXh0VmFsdWUgOiB0cnVlKSkge1xuICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQobmV3TW9kaWZpZXJDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXNbcHJvcGVydHlTeW1ib2xdID0gbmV4dFZhbHVlO1xuICAgIH1cblxuICAgIGRlc2NyaXB0b3JzLmFkZFNldHRlcihzZXR0ZXIpO1xuICAgIGRlc2NyaXB0b3JzLmFkZEdldHRlcihnZXR0ZXIpO1xuICAgIGRlc2NyaXB0b3JzLmluaXQoKTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,29 +1,22 @@
1
1
  /* istanbul ignore next */
2
- function isSameDomain(styleSheet) {
3
- if (!styleSheet.href) {
4
- return true;
5
- }
6
- return styleSheet.href.indexOf(window.location.origin) === 0;
2
+ function isSameDomain({ href }) {
3
+ return !href || href.startsWith(window.location.origin);
7
4
  }
8
5
  /** @internal */
9
6
  /* istanbul ignore next */
10
- export function getCSSVariables(filter) {
11
- const stylesheets = Array.from(document.styleSheets).filter(isSameDomain);
7
+ export function getCSSVariables(filter, doc) {
8
+ const stylesheets = Array.from((doc ?? document).styleSheets).filter(isSameDomain);
12
9
  return stylesheets.reduce((variables, { cssRules }) => {
13
- for (const { style, type } of Array.from(cssRules)) {
14
- if (type === 1) {
15
- for (const prop of Array.from(style ?? [])) {
16
- const name = prop.trim();
17
- if (name.startsWith('--') && filter.test(name)) {
18
- variables.push({
19
- name: name,
20
- value: style.getPropertyValue(prop).trim(),
21
- });
22
- }
23
- }
10
+ const rules = Array.from(cssRules).filter(({ type }) => type === CSSRule.STYLE_RULE);
11
+ for (const { style } of rules) {
12
+ for (const propName of Array.from(style)) {
13
+ const name = propName.trim();
14
+ if (!name.startsWith('--') || !filter.test(name))
15
+ continue;
16
+ variables.push({ name, value: style.getPropertyValue(propName).trim() });
24
17
  }
25
18
  }
26
19
  return variables;
27
20
  }, []);
28
21
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNzcy12YXJpYWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvc3JjL2hlbHBlcnMvZ2V0LWNzcy12YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsMEJBQTBCO0FBQzFCLFNBQVMsWUFBWSxDQUFDLFVBQXNCO0lBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxnQkFBZ0I7QUFDaEIsMEJBQTBCO0FBQzFCLE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBYztJQUM1QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUUsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUMzRCxLQUFLLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQVUsRUFBRTtZQUMzRCxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ2QsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQWEsRUFBRTtvQkFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUN6QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDOUMsU0FBUyxDQUFDLElBQUksQ0FBQzs0QkFDYixJQUFJLEVBQUUsSUFBSTs0QkFDVixLQUFLLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTt5QkFDM0MsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbnRlcmZhY2UgQ29sb3JEZWZpbml0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YXJpYWJsZU5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIGlzU2FtZURvbWFpbihzdHlsZVNoZWV0OiBTdHlsZVNoZWV0KTogYm9vbGVhbiB7XG4gIGlmICghc3R5bGVTaGVldC5ocmVmKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gc3R5bGVTaGVldC5ocmVmLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLm9yaWdpbikgPT09IDA7XG59XG5cbi8qKiBAaW50ZXJuYWwgKi9cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q1NTVmFyaWFibGVzKGZpbHRlcjogUmVnRXhwKTogQ29sb3JEZWZpbml0aW9uW10ge1xuICBjb25zdCBzdHlsZXNoZWV0cyA9IEFycmF5LmZyb20oZG9jdW1lbnQuc3R5bGVTaGVldHMpLmZpbHRlcihpc1NhbWVEb21haW4pO1xuICByZXR1cm4gc3R5bGVzaGVldHMucmVkdWNlPGFueVtdPigodmFyaWFibGVzLCB7IGNzc1J1bGVzIH0pID0+IHtcbiAgICBmb3IgKGNvbnN0IHsgc3R5bGUsIHR5cGUgfSBvZiBBcnJheS5mcm9tKGNzc1J1bGVzKSBhcyBhbnlbXSkge1xuICAgICAgaWYgKHR5cGUgPT09IDEpIHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIEFycmF5LmZyb20oc3R5bGUgPz8gW10pIGFzIHN0cmluZ1tdKSB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IHByb3AudHJpbSgpO1xuICAgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoJy0tJykgJiYgZmlsdGVyLnRlc3QobmFtZSkpIHtcbiAgICAgICAgICAgIHZhcmlhYmxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgdmFsdWU6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUocHJvcCkudHJpbSgpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH0sIFtdKTtcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNzcy12YXJpYWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvc3JjL2hlbHBlcnMvZ2V0LWNzcy12YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsMEJBQTBCO0FBQzFCLFNBQVMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFjO0lBQ3hDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxnQkFBZ0I7QUFDaEIsMEJBQTBCO0FBQzFCLE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBYyxFQUFFLEdBQWM7SUFDNUQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFbkYsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUEwQixDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7UUFDN0UsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBbUIsQ0FBQztRQUN2RyxLQUFLLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLEVBQUU7WUFDN0IsS0FBSyxNQUFNLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQUUsU0FBUztnQkFDM0QsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzthQUMxRTtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBDU1NWYXJpYWJsZURlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBpc1NhbWVEb21haW4oeyBocmVmIH06IFN0eWxlU2hlZXQpOiBib29sZWFuIHtcbiAgcmV0dXJuICFocmVmIHx8IGhyZWYuc3RhcnRzV2l0aCh3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDU1NWYXJpYWJsZXMoZmlsdGVyOiBSZWdFeHAsIGRvYz86IERvY3VtZW50KTogQ1NTVmFyaWFibGVEZWZpbml0aW9uW10ge1xuICBjb25zdCBzdHlsZXNoZWV0cyA9IEFycmF5LmZyb20oKGRvYyA/PyBkb2N1bWVudCkuc3R5bGVTaGVldHMpLmZpbHRlcihpc1NhbWVEb21haW4pO1xuXG4gIHJldHVybiBzdHlsZXNoZWV0cy5yZWR1Y2U8Q1NTVmFyaWFibGVEZWZpbml0aW9uW10+KCh2YXJpYWJsZXMsIHsgY3NzUnVsZXMgfSkgPT4ge1xuICAgIGNvbnN0IHJ1bGVzID0gQXJyYXkuZnJvbShjc3NSdWxlcykuZmlsdGVyKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gQ1NTUnVsZS5TVFlMRV9SVUxFKSBhcyBDU1NTdHlsZVJ1bGVbXTtcbiAgICBmb3IgKGNvbnN0IHsgc3R5bGUgfSBvZiBydWxlcykge1xuICAgICAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBBcnJheS5mcm9tKHN0eWxlKSkge1xuICAgICAgICBjb25zdCBuYW1lID0gcHJvcE5hbWUudHJpbSgpO1xuICAgICAgICBpZiAoIW5hbWUuc3RhcnRzV2l0aCgnLS0nKSB8fCAhZmlsdGVyLnRlc3QobmFtZSkpIGNvbnRpbnVlO1xuICAgICAgICB2YXJpYWJsZXMucHVzaCh7IG5hbWUsIHZhbHVlOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BOYW1lKS50cmltKCkgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH0sIFtdKTtcbn1cbiJdfQ==
@@ -21,6 +21,9 @@ export class WindowRef {
21
21
  getLanguage() {
22
22
  return this.nativeWindow.navigator.language;
23
23
  }
24
+ getLanguageCode() {
25
+ return this.getLanguage().split(/-|_/)[0].toLowerCase();
26
+ }
24
27
  getOrigin() {
25
28
  return this.location.origin;
26
29
  }
@@ -40,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
40
43
  providedIn: 'root',
41
44
  }]
42
45
  }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RHLE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsaUJBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQztRQUN0RCxjQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakYsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDMUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7UUFDYyxlQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckYsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQ2pELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDaEMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7S0EyQkg7SUF6QkMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLGdCQUFnQixDQUFJLElBQWE7UUFDdEMsTUFBTSxhQUFhLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakQsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRyxDQUFDOztzR0F6Q1UsU0FBUzswR0FBVCxTQUFTLGNBRlIsTUFBTTsyRkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgcmVmbGVjdENvbXBvbmVudFR5cGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZnJvbUV2ZW50cyB9IGZyb20gJ0BvZHgvYW5ndWxhci9yeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIEVNUFRZLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2luZG93UmVmIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZSA9IGluamVjdChUaXRsZSk7XG4gIHB1YmxpYyByZWFkb25seSBuYXRpdmVXaW5kb3cgPSBpbmplY3QoRE9DVU1FTlQpLmRlZmF1bHRWaWV3ID8/IHdpbmRvdztcbiAgcHVibGljIHJlYWRvbmx5IGlzT25saW5lJCA9IGZyb21FdmVudHModGhpcy5uYXRpdmVXaW5kb3csICdvZmZsaW5lJywgJ29ubGluZScpLnBpcGUoXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIG1hcCgoKSA9PiB0aGlzLmlzT25saW5lKCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnZVRpdGxlJCA9IChpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5ldmVudHMgPz8gRU1QVFkpLnBpcGUoXG4gICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgZGVib3VuY2VUaW1lKDApLFxuICAgIG1hcCgoKSA9PiB0aGlzLnRpdGxlLmdldFRpdGxlKCkpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBwdWJsaWMgZ2V0IGxvY2F0aW9uKCk6IExvY2F0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubG9jYXRpb247XG4gIH1cblxuICBwdWJsaWMgaXNPbmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93Lm5hdmlnYXRvci5vbkxpbmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xuICB9XG5cbiAgcHVibGljIGdldE9yaWdpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLm9yaWdpbjtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5QnlDb21wb25lbnQ8VD4odHlwZTogVHlwZTxUPik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHJlZmxlY3RDb21wb25lbnRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFR5cGUgPyB0aGlzLm5hdGl2ZVdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbXBvbmVudFR5cGUuc2VsZWN0b3IpIDogbnVsbDtcbiAgfVxufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RHLE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsaUJBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQztRQUN0RCxjQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakYsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDMUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7UUFDYyxlQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckYsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQ2pELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDaEMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7S0ErQkg7SUE3QkMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBSSxJQUFhO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpELE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakcsQ0FBQzs7c0dBN0NVLFNBQVM7MEdBQVQsU0FBUyxjQUZSLE1BQU07MkZBRVAsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIHJlZmxlY3RDb21wb25lbnRUeXBlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZyb21FdmVudHMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBFTVBUWSwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdpbmRvd1JlZiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICBwdWJsaWMgcmVhZG9ubHkgbmF0aXZlV2luZG93ID0gaW5qZWN0KERPQ1VNRU5UKS5kZWZhdWx0VmlldyA/PyB3aW5kb3c7XG4gIHB1YmxpYyByZWFkb25seSBpc09ubGluZSQgPSBmcm9tRXZlbnRzKHRoaXMubmF0aXZlV2luZG93LCAnb2ZmbGluZScsICdvbmxpbmUnKS5waXBlKFxuICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICBtYXAoKCkgPT4gdGhpcy5pc09ubGluZSgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VUaXRsZSQgPSAoaW5qZWN0KFJvdXRlciwgeyBvcHRpb25hbDogdHJ1ZSB9KT8uZXZlbnRzID8/IEVNUFRZKS5waXBlKFxuICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICBtYXAoKCkgPT4gdGhpcy50aXRsZS5nZXRUaXRsZSgpKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgcHVibGljIGdldCBsb2NhdGlvbigpOiBMb2NhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93LmxvY2F0aW9uO1xuICB9XG5cbiAgcHVibGljIGlzT25saW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO1xuICB9XG5cbiAgcHVibGljIGdldExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYW5ndWFnZUNvZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMYW5ndWFnZSgpLnNwbGl0KC8tfF8vKVswXS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldE9yaWdpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLm9yaWdpbjtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5QnlDb21wb25lbnQ8VD4odHlwZTogVHlwZTxUPik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHJlZmxlY3RDb21wb25lbnRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFR5cGUgPyB0aGlzLm5hdGl2ZVdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbXBvbmVudFR5cGUuc2VsZWN0b3IpIDogbnVsbDtcbiAgfVxufVxuIl19
@@ -0,0 +1,111 @@
1
+ import { createConfigTokens, untilDestroyed } from '@odx/angular/utils';
2
+ import * as i0 from '@angular/core';
3
+ import { inject, Injectable, TemplateRef, ViewContainerRef, Directive, Input, NgModule } from '@angular/core';
4
+ import { coerceArray } from '@angular/cdk/coercion';
5
+ import { of, map, distinctUntilChanged, shareReplay, BehaviorSubject, switchMap, tap } from 'rxjs';
6
+ import { BreakpointObserver } from '@angular/cdk/layout';
7
+
8
+ function configureBreakpoint(name, min, max) {
9
+ return {
10
+ [`<${name}`]: `(max-width: ${min - 1}px)`,
11
+ [`=${name}`]: `(min-width: ${min}px) and (max-width: ${max - 1}px)`,
12
+ [`>${name}`]: `(min-width: ${min}px)`,
13
+ };
14
+ }
15
+
16
+ const DEFAULT_BREAKPOINTS = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, configureBreakpoint('phone-s', 360, 480)), configureBreakpoint('phone', 480, 768)), configureBreakpoint('tablet', 768, 960)), configureBreakpoint('desktop-s', 960, 1200)), configureBreakpoint('desktop', 1200, 9999));
17
+ const { BreakpointsConfig, BreakpointsDefaultConfig, injectBreakpointsConfig, provideBreakpointsConfig } = createConfigTokens('Breakpoints', '@odx/angular/breakpoints', {
18
+ breakpoints: DEFAULT_BREAKPOINTS,
19
+ });
20
+
21
+ class BreakpointsService {
22
+ constructor() {
23
+ this.breakpointObserver = inject(BreakpointObserver);
24
+ this.config = injectBreakpointsConfig();
25
+ }
26
+ observe(breakpoints) {
27
+ const mediaQueries = this.getMediaQueries(breakpoints);
28
+ return this.createBreakpointObserver(mediaQueries);
29
+ }
30
+ matches(breakpoints) {
31
+ const mediaQueries = this.getMediaQueries(breakpoints);
32
+ return this.breakpointObserver.isMatched(mediaQueries);
33
+ }
34
+ getMediaQueries(breakpointNames) {
35
+ return breakpointNames.map((name) => this.config.breakpoints[name]).filter(Boolean);
36
+ }
37
+ createBreakpointObserver(mediaQueries) {
38
+ if (mediaQueries.length < 1)
39
+ return of(false);
40
+ return this.breakpointObserver.observe(mediaQueries).pipe(map(({ matches }) => matches), distinctUntilChanged(), shareReplay({ refCount: true }));
41
+ }
42
+ }
43
+ BreakpointsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
+ BreakpointsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsService, providedIn: 'root' });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsService, decorators: [{
46
+ type: Injectable,
47
+ args: [{ providedIn: 'root' }]
48
+ }] });
49
+
50
+ class MatchBreakpointsDirective {
51
+ constructor() {
52
+ this.breakpoints$$ = new BehaviorSubject([]);
53
+ this.breakpointsService = inject(BreakpointsService);
54
+ this.takeUntilDestroyed = untilDestroyed();
55
+ this.template = inject(TemplateRef);
56
+ this.viewContainer = inject(ViewContainerRef);
57
+ // eslint-disable-next-line @angular-eslint/no-input-rename
58
+ this.elseTemplate = null;
59
+ }
60
+ set breakpoints(value) {
61
+ this.breakpoints$$.next(coerceArray(value !== null && value !== void 0 ? value : []));
62
+ }
63
+ ngOnInit() {
64
+ this.breakpoints$$
65
+ .pipe(switchMap((breakpoints) => this.breakpointsService.observe(breakpoints)), tap((matchesBreakpoints) => this.render(matchesBreakpoints)), this.takeUntilDestroyed())
66
+ .subscribe();
67
+ }
68
+ render(matchesBreakpoints) {
69
+ this.viewContainer.clear();
70
+ const template = matchesBreakpoints ? this.template : this.elseTemplate;
71
+ if (template) {
72
+ this.viewContainer.createEmbeddedView(template);
73
+ }
74
+ }
75
+ }
76
+ MatchBreakpointsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatchBreakpointsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
77
+ MatchBreakpointsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MatchBreakpointsDirective, isStandalone: true, selector: "ng-template[odxMatchBreakpoints]", inputs: { breakpoints: ["odxMatchBreakpoints", "breakpoints"], elseTemplate: ["odxMatchBreakpointsElse", "elseTemplate"] }, ngImport: i0 });
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatchBreakpointsDirective, decorators: [{
79
+ type: Directive,
80
+ args: [{
81
+ standalone: true,
82
+ selector: 'ng-template[odxMatchBreakpoints]',
83
+ }]
84
+ }], propDecorators: { breakpoints: [{
85
+ type: Input,
86
+ args: ['odxMatchBreakpoints']
87
+ }], elseTemplate: [{
88
+ type: Input,
89
+ args: ['odxMatchBreakpointsElse']
90
+ }] } });
91
+
92
+ const modules = [MatchBreakpointsDirective];
93
+ class BreakpointsModule {
94
+ }
95
+ BreakpointsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
96
+ BreakpointsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsModule, imports: [MatchBreakpointsDirective], exports: [MatchBreakpointsDirective] });
97
+ BreakpointsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsModule });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsModule, decorators: [{
99
+ type: NgModule,
100
+ args: [{
101
+ imports: modules,
102
+ exports: modules,
103
+ }]
104
+ }] });
105
+
106
+ /**
107
+ * Generated bundle index. Do not edit.
108
+ */
109
+
110
+ export { BreakpointsConfig, BreakpointsDefaultConfig, BreakpointsModule, BreakpointsService, DEFAULT_BREAKPOINTS, MatchBreakpointsDirective, configureBreakpoint, injectBreakpointsConfig, provideBreakpointsConfig };
111
+ //# sourceMappingURL=odx-angular-breakpoints.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odx-angular-breakpoints.mjs","sources":["../../../../libs/angular/breakpoints/src/lib/helpers/configure-breakpoint.ts","../../../../libs/angular/breakpoints/src/lib/breakpoints.config.ts","../../../../libs/angular/breakpoints/src/lib/breakpoints.service.ts","../../../../libs/angular/breakpoints/src/lib/directives/match-breakpoints.directive.ts","../../../../libs/angular/breakpoints/src/lib/breakpoints.module.ts","../../../../libs/angular/breakpoints/src/odx-angular-breakpoints.ts"],"sourcesContent":["type BreakpointOperators = '<' | '=' | '>';\ntype BreakpointConfig<T extends string> = Record<`${BreakpointOperators}${T}`, string>;\n\nexport function configureBreakpoint<T extends string>(name: T, min: number, max: number): BreakpointConfig<T> {\n return {\n [`<${name}` as const]: `(max-width: ${min - 1}px)`,\n [`=${name}` as const]: `(min-width: ${min}px) and (max-width: ${max - 1}px)`,\n [`>${name}` as const]: `(min-width: ${min}px)`,\n } as BreakpointConfig<T>;\n}\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { configureBreakpoint } from './helpers/configure-breakpoint';\n\nexport const DEFAULT_BREAKPOINTS = {\n ...configureBreakpoint('phone-s', 360, 480),\n ...configureBreakpoint('phone', 480, 768),\n ...configureBreakpoint('tablet', 768, 960),\n ...configureBreakpoint('desktop-s', 960, 1200),\n ...configureBreakpoint('desktop', 1200, 9999),\n} as const;\n\nexport interface BreakpointsConfig {\n breakpoints: Partial<OdxAngular.Breakpoints>;\n}\n\nexport const { BreakpointsConfig, BreakpointsDefaultConfig, injectBreakpointsConfig, provideBreakpointsConfig } = createConfigTokens(\n 'Breakpoints',\n '@odx/angular/breakpoints',\n {\n breakpoints: DEFAULT_BREAKPOINTS,\n } as BreakpointsConfig\n);\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { inject, Injectable } from '@angular/core';\nimport { distinctUntilChanged, map, Observable, of, shareReplay } from 'rxjs';\nimport { injectBreakpointsConfig } from './breakpoints.config';\nimport { BreakpointName } from './models';\n\n@Injectable({ providedIn: 'root' })\nexport class BreakpointsService {\n private readonly breakpointObserver = inject(BreakpointObserver);\n private readonly config = injectBreakpointsConfig();\n\n public observe(breakpoints: BreakpointName[]): Observable<boolean> {\n const mediaQueries = this.getMediaQueries(breakpoints);\n\n return this.createBreakpointObserver(mediaQueries);\n }\n\n public matches(breakpoints: BreakpointName[]): boolean {\n const mediaQueries = this.getMediaQueries(breakpoints);\n\n return this.breakpointObserver.isMatched(mediaQueries);\n }\n\n private getMediaQueries(breakpointNames: BreakpointName[]): string[] {\n return breakpointNames.map((name) => this.config.breakpoints[name] as string).filter(Boolean);\n }\n\n private createBreakpointObserver(mediaQueries: string[]): Observable<boolean> {\n if (mediaQueries.length < 1) return of(false);\n\n return this.breakpointObserver.observe(mediaQueries).pipe(\n map(({ matches }) => matches),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { Directive, inject, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { untilDestroyed } from '@odx/angular/utils';\nimport { BehaviorSubject, switchMap, tap } from 'rxjs';\nimport { BreakpointsService } from '../breakpoints.service';\nimport { BreakpointName } from '../models';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[odxMatchBreakpoints]',\n})\nexport class MatchBreakpointsDirective implements OnInit {\n private readonly breakpoints$$ = new BehaviorSubject<BreakpointName[]>([]);\n private readonly breakpointsService = inject(BreakpointsService);\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly template = inject(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n @Input('odxMatchBreakpoints')\n public set breakpoints(value: BreakpointName | BreakpointName[] | null | undefined) {\n this.breakpoints$$.next(coerceArray(value ?? []));\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxMatchBreakpointsElse')\n public elseTemplate?: TemplateRef<unknown> | null = null;\n\n public ngOnInit(): void {\n this.breakpoints$$\n .pipe(\n switchMap((breakpoints) => this.breakpointsService.observe(breakpoints)),\n tap((matchesBreakpoints) => this.render(matchesBreakpoints)),\n this.takeUntilDestroyed()\n )\n .subscribe();\n }\n\n private render(matchesBreakpoints: boolean): void {\n this.viewContainer.clear();\n const template = matchesBreakpoints ? this.template : this.elseTemplate;\n if (template) {\n this.viewContainer.createEmbeddedView(template);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatchBreakpointsDirective } from './directives';\n\nconst modules = [MatchBreakpointsDirective];\n\n@NgModule({\n imports: modules,\n exports: modules,\n})\nexport class BreakpointsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}