@fundamental-ngx/cdk 0.54.2-rc.9 → 0.55.0-rc.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 (256) hide show
  1. package/fesm2022/fundamental-ngx-cdk-data-source.mjs +7 -7
  2. package/fesm2022/fundamental-ngx-cdk-forms.mjs +21 -14
  3. package/fesm2022/fundamental-ngx-cdk-forms.mjs.map +1 -1
  4. package/fesm2022/fundamental-ngx-cdk-utils.mjs +361 -312
  5. package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -1
  6. package/fesm2022/fundamental-ngx-cdk.mjs +4 -4
  7. package/forms/cva/cva.directive.d.ts +7 -3
  8. package/package.json +8 -16
  9. package/utils/abstract-fd-ngx-class.d.ts +1 -1
  10. package/utils/directives/overflow-list/overflow-list.directive.d.ts +7 -0
  11. package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +1 -1
  12. package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +1 -1
  13. package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +1 -1
  14. package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +1 -1
  15. package/utils/drag-and-drop/drag-and-drop.module.d.ts +7 -7
  16. package/utils/toast/base-toast-positions.d.ts +16 -16
  17. package/utils/toast/classes/base-toast-animated-container.component.d.ts +1 -1
  18. package/utils/toast/classes/base-toast-container.component.d.ts +1 -1
  19. package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.d.ts +1 -1
  20. package/esm2022/data-source/base/abstract-data-provider.class.mjs +0 -142
  21. package/esm2022/data-source/base/base-data-source.class.mjs +0 -112
  22. package/esm2022/data-source/data-source.directive.mjs +0 -95
  23. package/esm2022/data-source/data-source.module.mjs +0 -16
  24. package/esm2022/data-source/fundamental-ngx-cdk-data-source.mjs +0 -5
  25. package/esm2022/data-source/helpers/apply-datasource-directive.mjs +0 -7
  26. package/esm2022/data-source/helpers/common.mjs +0 -17
  27. package/esm2022/data-source/helpers/is-datasource.mjs +0 -7
  28. package/esm2022/data-source/index.mjs +0 -9
  29. package/esm2022/data-source/models/data-source-provider.mjs +0 -2
  30. package/esm2022/data-source/models/data-source.mjs +0 -2
  31. package/esm2022/data-source/models/index.mjs +0 -4
  32. package/esm2022/data-source/models/matching-strategy.mjs +0 -7
  33. package/esm2022/data-source/tokens.mjs +0 -6
  34. package/esm2022/forms/cva/cva-control.class.mjs +0 -42
  35. package/esm2022/forms/cva/cva.directive.mjs +0 -321
  36. package/esm2022/forms/forms.module.mjs +0 -16
  37. package/esm2022/forms/fundamental-ngx-cdk-forms.mjs +0 -5
  38. package/esm2022/forms/helpers/state.mjs +0 -7
  39. package/esm2022/forms/index.mjs +0 -13
  40. package/esm2022/forms/models/control-type.model.mjs +0 -2
  41. package/esm2022/forms/models/cva.mjs +0 -2
  42. package/esm2022/forms/models/form-error.mjs +0 -2
  43. package/esm2022/forms/models/form-field.mjs +0 -9
  44. package/esm2022/forms/models/form-state.mjs +0 -2
  45. package/esm2022/forms/models/select-item.mjs +0 -14
  46. package/esm2022/forms/tokens/form-field-control.token.mjs +0 -3
  47. package/esm2022/forms/tokens/form-field.token.mjs +0 -3
  48. package/esm2022/fundamental-ngx-cdk.mjs +0 -5
  49. package/esm2022/fundamental-ngx.module.mjs +0 -19
  50. package/esm2022/index.mjs +0 -5
  51. package/esm2022/utils/abstract-fd-ngx-class.mjs +0 -61
  52. package/esm2022/utils/async-strategy/function-strategy.class.mjs +0 -12
  53. package/esm2022/utils/async-strategy/index.mjs +0 -7
  54. package/esm2022/utils/async-strategy/observable-strategy.class.mjs +0 -13
  55. package/esm2022/utils/async-strategy/promise-strategy.class.mjs +0 -12
  56. package/esm2022/utils/async-strategy/select-strategy.class.mjs +0 -23
  57. package/esm2022/utils/async-strategy/subscription-strategy.interface.mjs +0 -2
  58. package/esm2022/utils/async-strategy/value-strategy.class.mjs +0 -10
  59. package/esm2022/utils/coercion/array.mjs +0 -7
  60. package/esm2022/utils/components/dynamic-portal/dynamic-portal.component.mjs +0 -98
  61. package/esm2022/utils/components/index.mjs +0 -2
  62. package/esm2022/utils/consts/error-messages.mjs +0 -6
  63. package/esm2022/utils/consts/index.mjs +0 -5
  64. package/esm2022/utils/consts/overflow-priority-score.mjs +0 -8
  65. package/esm2022/utils/consts/unicode-letters.regex.mjs +0 -11
  66. package/esm2022/utils/consts/unicode-numbers.regex.mjs +0 -8
  67. package/esm2022/utils/datatypes/color-accent.datatype.mjs +0 -2
  68. package/esm2022/utils/datatypes/hash.datatype.mjs +0 -2
  69. package/esm2022/utils/datatypes/index.mjs +0 -5
  70. package/esm2022/utils/datatypes/object-nesting.types.mjs +0 -2
  71. package/esm2022/utils/datatypes/size.datatype.mjs +0 -2
  72. package/esm2022/utils/decorators/apply-css-class.decorator.mjs +0 -61
  73. package/esm2022/utils/decorators/apply-css-style.decorator.mjs +0 -26
  74. package/esm2022/utils/decorators/coerce-boolean.mjs +0 -7
  75. package/esm2022/utils/decorators/coerce-css-pixel.mjs +0 -4
  76. package/esm2022/utils/decorators/index.mjs +0 -6
  77. package/esm2022/utils/decorators/setter-alternator.mjs +0 -18
  78. package/esm2022/utils/deprecated-selector.class.mjs +0 -35
  79. package/esm2022/utils/directives/auto-complete/auto-complete.directive.mjs +0 -135
  80. package/esm2022/utils/directives/auto-complete/auto-complete.module.mjs +0 -17
  81. package/esm2022/utils/directives/breakpoints/breakpoint.directive.mjs +0 -156
  82. package/esm2022/utils/directives/breakpoints/responsive-breakpoints.mjs +0 -19
  83. package/esm2022/utils/directives/clicked/clicked-behavior.module.mjs +0 -35
  84. package/esm2022/utils/directives/clicked/clicked-event.plugin.mjs +0 -79
  85. package/esm2022/utils/directives/clicked/clicked.directive.mjs +0 -36
  86. package/esm2022/utils/directives/clicked/element-click.observable.mjs +0 -21
  87. package/esm2022/utils/directives/clicked/fdk-clicked-provider.service.mjs +0 -48
  88. package/esm2022/utils/directives/clicked/index.mjs +0 -6
  89. package/esm2022/utils/directives/clicked/provide-fdk-clicked.mjs +0 -29
  90. package/esm2022/utils/directives/disabled/default-disabled-view-modifier.mjs +0 -12
  91. package/esm2022/utils/directives/disabled/disabled-behavior.directive.mjs +0 -84
  92. package/esm2022/utils/directives/disabled/disabled-behavior.interface.mjs +0 -2
  93. package/esm2022/utils/directives/disabled/disabled-behavior.module.mjs +0 -16
  94. package/esm2022/utils/directives/disabled/disabled-view-modifier.interface.mjs +0 -2
  95. package/esm2022/utils/directives/disabled/disabled.observer.mjs +0 -35
  96. package/esm2022/utils/directives/disabled/fdk-disabled-provider.service.mjs +0 -101
  97. package/esm2022/utils/directives/disabled/fdk-disabled.token.mjs +0 -3
  98. package/esm2022/utils/directives/disabled/index.mjs +0 -9
  99. package/esm2022/utils/directives/disabled/set-disabled-state.mjs +0 -18
  100. package/esm2022/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +0 -17
  101. package/esm2022/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +0 -67
  102. package/esm2022/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +0 -88
  103. package/esm2022/utils/directives/focus-key-manager/focus-key-manager.tokens.mjs +0 -3
  104. package/esm2022/utils/directives/focus-key-manager/index.mjs +0 -5
  105. package/esm2022/utils/directives/focusable-grid/focusable-grid.directive.mjs +0 -164
  106. package/esm2022/utils/directives/focusable-grid/focusable-grid.module.mjs +0 -17
  107. package/esm2022/utils/directives/focusable-grid/focusable-grid.tokens.mjs +0 -3
  108. package/esm2022/utils/directives/focusable-grid/index.mjs +0 -4
  109. package/esm2022/utils/directives/focusable-item/focusable-item.directive.mjs +0 -198
  110. package/esm2022/utils/directives/focusable-item/focusable-item.module.mjs +0 -16
  111. package/esm2022/utils/directives/focusable-item/focusable-item.tokens.mjs +0 -3
  112. package/esm2022/utils/directives/focusable-item/focusable-list.position.mjs +0 -2
  113. package/esm2022/utils/directives/focusable-item/focusable.item.mjs +0 -2
  114. package/esm2022/utils/directives/focusable-item/focusable.observer.mjs +0 -46
  115. package/esm2022/utils/directives/focusable-item/get-item-element.mjs +0 -14
  116. package/esm2022/utils/directives/focusable-item/index.mjs +0 -9
  117. package/esm2022/utils/directives/focusable-item/indirect-focusable-item.directive.mjs +0 -44
  118. package/esm2022/utils/directives/focusable-item/is-element-focusable-by-default.mjs +0 -32
  119. package/esm2022/utils/directives/focusable-item/is-item-focusable.mjs +0 -8
  120. package/esm2022/utils/directives/focusable-list/focusable-list.directive.mjs +0 -300
  121. package/esm2022/utils/directives/focusable-list/focusable-list.module.mjs +0 -17
  122. package/esm2022/utils/directives/focusable-list/focusable-list.tokens.mjs +0 -3
  123. package/esm2022/utils/directives/focusable-list/index.mjs +0 -6
  124. package/esm2022/utils/directives/focusable-list/indirect-focusable-list.directive.mjs +0 -59
  125. package/esm2022/utils/directives/focusable-list/scroll.mjs +0 -43
  126. package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +0 -55
  127. package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +0 -16
  128. package/esm2022/utils/directives/ignore-click-on-selection/tokens.mjs +0 -3
  129. package/esm2022/utils/directives/index.mjs +0 -35
  130. package/esm2022/utils/directives/initial-focus/initial-focus.directive.mjs +0 -99
  131. package/esm2022/utils/directives/initial-focus/initial-focus.module.mjs +0 -16
  132. package/esm2022/utils/directives/intersection-spy/intersection-spy.directive.mjs +0 -42
  133. package/esm2022/utils/directives/line-clamp/line-clamp.directive.mjs +0 -213
  134. package/esm2022/utils/directives/line-clamp/line-clamp.module.mjs +0 -16
  135. package/esm2022/utils/directives/only-digits/only-digits.directive.mjs +0 -206
  136. package/esm2022/utils/directives/only-digits/only-digits.module.mjs +0 -16
  137. package/esm2022/utils/directives/overflow-list/overflow-list-item.directive.mjs +0 -18
  138. package/esm2022/utils/directives/overflow-list/overflow-list.directive.mjs +0 -114
  139. package/esm2022/utils/directives/overflow-list/overflow-list.module.mjs +0 -17
  140. package/esm2022/utils/directives/readonly/default-readonly-view-modifier.mjs +0 -12
  141. package/esm2022/utils/directives/readonly/fdk-readonly-provider.service.mjs +0 -101
  142. package/esm2022/utils/directives/readonly/fdk-readonly.token.mjs +0 -3
  143. package/esm2022/utils/directives/readonly/index.mjs +0 -10
  144. package/esm2022/utils/directives/readonly/readonly-behavior.directive.mjs +0 -67
  145. package/esm2022/utils/directives/readonly/readonly-behavior.interface.mjs +0 -2
  146. package/esm2022/utils/directives/readonly/readonly-behavior.module.mjs +0 -16
  147. package/esm2022/utils/directives/readonly/readonly-view-modifier.interface.mjs +0 -2
  148. package/esm2022/utils/directives/readonly/readonly.observer.mjs +0 -33
  149. package/esm2022/utils/directives/readonly/set-readonly-state.mjs +0 -14
  150. package/esm2022/utils/directives/repeat/repeat.directive.mjs +0 -34
  151. package/esm2022/utils/directives/repeat/repeat.module.mjs +0 -16
  152. package/esm2022/utils/directives/resize/resize-handle.directive.mjs +0 -18
  153. package/esm2022/utils/directives/resize/resize.directive.mjs +0 -241
  154. package/esm2022/utils/directives/resize/resize.module.mjs +0 -17
  155. package/esm2022/utils/directives/resize-observer/index.mjs +0 -2
  156. package/esm2022/utils/directives/resize-observer/resize-observer.directive.mjs +0 -29
  157. package/esm2022/utils/directives/selectable-list/index.mjs +0 -8
  158. package/esm2022/utils/directives/selectable-list/select-component-root.token.mjs +0 -3
  159. package/esm2022/utils/directives/selectable-list/selectable-item.directive.mjs +0 -147
  160. package/esm2022/utils/directives/selectable-list/selectable-item.token.mjs +0 -3
  161. package/esm2022/utils/directives/selectable-list/selectable-list.directive.mjs +0 -85
  162. package/esm2022/utils/directives/selectable-list/selectable-list.module.mjs +0 -17
  163. package/esm2022/utils/directives/selectable-list/selectable-list.tokens.mjs +0 -3
  164. package/esm2022/utils/directives/selectable-list/selection.service.mjs +0 -138
  165. package/esm2022/utils/directives/template/template.directive.mjs +0 -25
  166. package/esm2022/utils/directives/template/template.module.mjs +0 -16
  167. package/esm2022/utils/directives/truncate/truncate.directive.mjs +0 -94
  168. package/esm2022/utils/directives/truncate/truncate.module.mjs +0 -16
  169. package/esm2022/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +0 -274
  170. package/esm2022/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +0 -88
  171. package/esm2022/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +0 -83
  172. package/esm2022/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +0 -378
  173. package/esm2022/utils/drag-and-drop/dnd.interfaces.mjs +0 -2
  174. package/esm2022/utils/drag-and-drop/drag-and-drop.module.mjs +0 -22
  175. package/esm2022/utils/drag-and-drop/index.mjs +0 -8
  176. package/esm2022/utils/drag-and-drop/tokens.mjs +0 -4
  177. package/esm2022/utils/dynamic-component/dynamic-component-config.mjs +0 -2
  178. package/esm2022/utils/dynamic-component/dynamic-component-container.mjs +0 -32
  179. package/esm2022/utils/dynamic-component/dynamic-component-injector.mjs +0 -20
  180. package/esm2022/utils/dynamic-component/dynamic-component.service.mjs +0 -100
  181. package/esm2022/utils/dynamic-component/index.mjs +0 -5
  182. package/esm2022/utils/functions/consumer-provider-factory.mjs +0 -12
  183. package/esm2022/utils/functions/element-size.mjs +0 -23
  184. package/esm2022/utils/functions/get-document-font-size.mjs +0 -9
  185. package/esm2022/utils/functions/index.mjs +0 -14
  186. package/esm2022/utils/functions/intersection-observable.mjs +0 -26
  187. package/esm2022/utils/functions/is-compact-density.mjs +0 -11
  188. package/esm2022/utils/functions/is-odd.mjs +0 -9
  189. package/esm2022/utils/functions/key-util.mjs +0 -90
  190. package/esm2022/utils/functions/module-deprecations-provider.mjs +0 -18
  191. package/esm2022/utils/functions/parser-file-size.mjs +0 -37
  192. package/esm2022/utils/functions/random-color-accent.mjs +0 -5
  193. package/esm2022/utils/functions/resize-observable.mjs +0 -33
  194. package/esm2022/utils/functions/scroll.mjs +0 -19
  195. package/esm2022/utils/functions/uuidv4-generator.mjs +0 -12
  196. package/esm2022/utils/fundamental-ngx-cdk-utils.mjs +0 -5
  197. package/esm2022/utils/helpers/destroy-observable.mjs +0 -12
  198. package/esm2022/utils/helpers/dfs.mjs +0 -47
  199. package/esm2022/utils/helpers/get-native-element.mjs +0 -19
  200. package/esm2022/utils/helpers/index.mjs +0 -6
  201. package/esm2022/utils/helpers/range-selector.mjs +0 -117
  202. package/esm2022/utils/helpers/warn-once.mjs +0 -9
  203. package/esm2022/utils/index.mjs +0 -25
  204. package/esm2022/utils/interfaces/content-density.mjs +0 -2
  205. package/esm2022/utils/interfaces/css-class-builder.interface.mjs +0 -2
  206. package/esm2022/utils/interfaces/css-style-builder.interface.mjs +0 -2
  207. package/esm2022/utils/interfaces/has-element-ref.interface.mjs +0 -2
  208. package/esm2022/utils/interfaces/index.mjs +0 -8
  209. package/esm2022/utils/interfaces/keyboard-support-item.interface.mjs +0 -2
  210. package/esm2022/utils/interfaces/module-deprecation.interface.mjs +0 -2
  211. package/esm2022/utils/interfaces/require.interface.mjs +0 -2
  212. package/esm2022/utils/list-item/list-item-utils.mjs +0 -3
  213. package/esm2022/utils/models/nullable.mjs +0 -2
  214. package/esm2022/utils/pipes/async-or-sync.pipe.mjs +0 -35
  215. package/esm2022/utils/pipes/displayFn.pipe.mjs +0 -18
  216. package/esm2022/utils/pipes/filter-strings.pipe.mjs +0 -31
  217. package/esm2022/utils/pipes/index.mjs +0 -12
  218. package/esm2022/utils/pipes/is-compact.pipe.mjs +0 -16
  219. package/esm2022/utils/pipes/make-async.pipe.mjs +0 -24
  220. package/esm2022/utils/pipes/pipe.module.mjs +0 -65
  221. package/esm2022/utils/pipes/safe.pipe.mjs +0 -37
  222. package/esm2022/utils/pipes/search-highlight.pipe.mjs +0 -40
  223. package/esm2022/utils/pipes/truncate.pipe.mjs +0 -18
  224. package/esm2022/utils/pipes/two-digits.pipe.mjs +0 -23
  225. package/esm2022/utils/pipes/value-by-path.pipe.mjs +0 -16
  226. package/esm2022/utils/services/content-density.service.mjs +0 -35
  227. package/esm2022/utils/services/destroyed.service.mjs +0 -26
  228. package/esm2022/utils/services/focus-trap.service.mjs +0 -92
  229. package/esm2022/utils/services/index.mjs +0 -10
  230. package/esm2022/utils/services/keyboard-support/keyboard-support.service.mjs +0 -73
  231. package/esm2022/utils/services/local-storage.service.mjs +0 -38
  232. package/esm2022/utils/services/observers/attribute.observer.mjs +0 -81
  233. package/esm2022/utils/services/resize-observer.service.mjs +0 -92
  234. package/esm2022/utils/services/rtl.service.mjs +0 -32
  235. package/esm2022/utils/services/tabbable-element.service.mjs +0 -43
  236. package/esm2022/utils/toast/base-toast-animations.mjs +0 -22
  237. package/esm2022/utils/toast/base-toast-positions.mjs +0 -108
  238. package/esm2022/utils/toast/base-toast.service.mjs +0 -261
  239. package/esm2022/utils/toast/classes/action-dismissible/base-toast-action-dismissible-ref.mjs +0 -36
  240. package/esm2022/utils/toast/classes/base-toast-animated-container.component.mjs +0 -87
  241. package/esm2022/utils/toast/classes/base-toast-config.mjs +0 -23
  242. package/esm2022/utils/toast/classes/base-toast-container.component.mjs +0 -72
  243. package/esm2022/utils/toast/classes/base-toast-overlay-container.mjs +0 -25
  244. package/esm2022/utils/toast/classes/base-toast-ref.mjs +0 -45
  245. package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-config.mjs +0 -19
  246. package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.mjs +0 -39
  247. package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-ref.mjs +0 -23
  248. package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible.service.mjs +0 -25
  249. package/esm2022/utils/toast/index.mjs +0 -16
  250. package/esm2022/utils/toast/interfaces/toast-container-component.interface.mjs +0 -2
  251. package/esm2022/utils/toast/interfaces/toast-duration-dismissible-container-component.interface.mjs +0 -2
  252. package/esm2022/utils/toast/interfaces/toast-text-component.interface.mjs +0 -2
  253. package/esm2022/utils/tokens/module-deprecations.token.mjs +0 -3
  254. package/esm2022/utils/tokens/viewport-size.observable.mjs +0 -20
  255. package/esm2022/utils/typecheck.mjs +0 -75
  256. package/esm2022/utils/utils.module.mjs +0 -131
@@ -1,147 +0,0 @@
1
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
- import { Directive, ElementRef, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';
3
- import { Observable, merge } from 'rxjs';
4
- import { FdkClickedProvider } from '../clicked';
5
- import { FdkDisabledProvider } from '../disabled';
6
- import { FdkReadonlyProvider } from '../readonly';
7
- import { SelectableItemToken } from './selectable-item.token';
8
- import { FDK_SELECTABLE_ITEM_PROVIDER } from './selectable-list.tokens';
9
- import { SelectionService } from './selection.service';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "../disabled";
12
- import * as i2 from "../readonly";
13
- import * as i3 from "./selection.service";
14
- import * as i4 from "../clicked";
15
- export class SelectableItemDirective {
16
- /** @hidden */
17
- set value(val) {
18
- this._value = val;
19
- }
20
- get value() {
21
- if (this.provider && this.provider.value) {
22
- return this.provider.value;
23
- }
24
- return this._value;
25
- }
26
- /** @hidden */
27
- set fdkSelectableItem(value) {
28
- const isSelectable = coerceBooleanProperty(value);
29
- if (isSelectable !== this._selectable) {
30
- this._selectable = isSelectable;
31
- }
32
- }
33
- get fdkSelectableItem() {
34
- let selectable = this._selectable;
35
- if (typeof this.provider?.fdkSelectableItem !== 'undefined') {
36
- selectable = this.provider.fdkSelectableItem;
37
- }
38
- return (selectable &&
39
- (!this.disabled$ || !this.disabled$?.fdkDisabled) &&
40
- (!this.readonly$ || !this.readonly$?.fdkReadonly));
41
- }
42
- /** @hidden */
43
- constructor(provider, disabled$, readonly$, selectionService, elementRef, _clicked) {
44
- this.provider = provider;
45
- this.disabled$ = disabled$;
46
- this.readonly$ = readonly$;
47
- this.selectionService = selectionService;
48
- this.elementRef = elementRef;
49
- /** Event emitted when selection state being changed for selectable item. */
50
- this.selected = new EventEmitter();
51
- /** @hidden */
52
- this._selected = false;
53
- /** @hidden */
54
- this._selectable = true;
55
- this.clicked = this.provider?.clicked || _clicked.asObservable();
56
- this._listenToDisablingEvents();
57
- }
58
- /** @hidden */
59
- getSelected() {
60
- if (this.provider?.getSelected) {
61
- return this.provider.getSelected();
62
- }
63
- return this._selected;
64
- }
65
- /** @hidden */
66
- setSelected(isSelected) {
67
- if (this.provider?.setSelected) {
68
- this.provider.setSelected(isSelected);
69
- }
70
- else {
71
- this._selected = isSelected;
72
- const htmlElement = this.elementRef.nativeElement;
73
- const { classList } = htmlElement;
74
- if (isSelected) {
75
- classList.add('is-selected');
76
- }
77
- else {
78
- classList.remove('is-selected');
79
- }
80
- htmlElement.setAttribute('aria-selected', `${isSelected}`);
81
- }
82
- this.selected.emit(isSelected);
83
- }
84
- /** @hidden */
85
- _listenToDisablingEvents() {
86
- const disablingEvents$ = [];
87
- if (this.disabled$) {
88
- disablingEvents$.push(this.disabled$);
89
- }
90
- if (this.readonly$) {
91
- disablingEvents$.push(this.readonly$);
92
- }
93
- merge(...disablingEvents$).subscribe(() => this._updateSelectionAndSelectableWatcher());
94
- }
95
- /** @hidden */
96
- _updateSelectionAndSelectableWatcher() {
97
- if (this.disabled$?.fdkDisabled) {
98
- this.selectionService.deselectItem(this);
99
- }
100
- this._updateSelectableWatcher();
101
- }
102
- /** @hidden */
103
- _updateSelectableWatcher() {
104
- this.selectionService.listenToItemInteractions();
105
- }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableItemDirective, deps: [{ token: FDK_SELECTABLE_ITEM_PROVIDER, optional: true }, { token: i1.FdkDisabledProvider }, { token: i2.FdkReadonlyProvider }, { token: i3.SelectionService }, { token: i0.ElementRef }, { token: i4.FdkClickedProvider }], target: i0.ɵɵFactoryTarget.Directive }); }
107
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: SelectableItemDirective, isStandalone: true, selector: "[fdkSelectableItem]", inputs: { value: "value", fdkSelectableItem: "fdkSelectableItem" }, outputs: { clicked: "clicked", selected: "selected" }, providers: [
108
- {
109
- provide: SelectableItemToken,
110
- useExisting: SelectableItemDirective
111
- },
112
- FdkReadonlyProvider,
113
- FdkDisabledProvider,
114
- FdkClickedProvider
115
- ], exportAs: ["fdkSelectableItem"], ngImport: i0 }); }
116
- }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableItemDirective, decorators: [{
118
- type: Directive,
119
- args: [{
120
- selector: '[fdkSelectableItem]',
121
- exportAs: 'fdkSelectableItem',
122
- standalone: true,
123
- providers: [
124
- {
125
- provide: SelectableItemToken,
126
- useExisting: SelectableItemDirective
127
- },
128
- FdkReadonlyProvider,
129
- FdkDisabledProvider,
130
- FdkClickedProvider
131
- ]
132
- }]
133
- }], ctorParameters: () => [{ type: undefined, decorators: [{
134
- type: Optional
135
- }, {
136
- type: Inject,
137
- args: [FDK_SELECTABLE_ITEM_PROVIDER]
138
- }] }, { type: i1.FdkDisabledProvider }, { type: i2.FdkReadonlyProvider }, { type: i3.SelectionService }, { type: i0.ElementRef }, { type: i4.FdkClickedProvider }], propDecorators: { value: [{
139
- type: Input
140
- }], fdkSelectableItem: [{
141
- type: Input
142
- }], clicked: [{
143
- type: Output
144
- }], selected: [{
145
- type: Output
146
- }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1saXN0L3NlbGVjdGFibGUtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQWdCdkQsTUFBTSxPQUFPLHVCQUF1QjtJQUdoQyxjQUFjO0lBQ2QsSUFDSSxLQUFLLENBQUMsR0FBYztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUMvQixDQUFD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LFdBQVcseUJBQXlCO3lCQUN2Qzt3QkFDRCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNyQjtpQkFDSjs7MEJBc0RRLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsNEJBQTRCO3NNQWpEcEMsS0FBSztzQkFEUixLQUFLO2dCQWFGLGlCQUFpQjtzQkFEcEIsS0FBSztnQkFzQk4sT0FBTztzQkFETixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmRrQ2xpY2tlZFByb3ZpZGVyIH0gZnJvbSAnLi4vY2xpY2tlZCc7XG5pbXBvcnQgeyBGZGtEaXNhYmxlZFByb3ZpZGVyIH0gZnJvbSAnLi4vZGlzYWJsZWQnO1xuaW1wb3J0IHsgRmRrUmVhZG9ubHlQcm92aWRlciB9IGZyb20gJy4uL3JlYWRvbmx5JztcbmltcG9ydCB7IFNlbGVjdGFibGVJdGVtVG9rZW4gfSBmcm9tICcuL3NlbGVjdGFibGUtaXRlbS50b2tlbic7XG5pbXBvcnQgeyBGREtfU0VMRUNUQUJMRV9JVEVNX1BST1ZJREVSIH0gZnJvbSAnLi9zZWxlY3RhYmxlLWxpc3QudG9rZW5zJztcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdGlvbi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrU2VsZWN0YWJsZUl0ZW1dJyxcbiAgICBleHBvcnRBczogJ2Zka1NlbGVjdGFibGVJdGVtJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTZWxlY3RhYmxlSXRlbVRva2VuLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlXG4gICAgICAgIH0sXG4gICAgICAgIEZka1JlYWRvbmx5UHJvdmlkZXIsXG4gICAgICAgIEZka0Rpc2FibGVkUHJvdmlkZXIsXG4gICAgICAgIEZka0NsaWNrZWRQcm92aWRlclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmU8RWxlbWVudFR5cGUgZXh0ZW5kcyBFbGVtZW50ID0gSFRNTEVsZW1lbnQsIFZhbHVlVHlwZSA9IGFueT5cbiAgICBpbXBsZW1lbnRzIFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUsIFZhbHVlVHlwZT5cbntcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbDogVmFsdWVUeXBlKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogVmFsdWVUeXBlIHtcbiAgICAgICAgaWYgKHRoaXMucHJvdmlkZXIgJiYgdGhpcy5wcm92aWRlci52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZmRrU2VsZWN0YWJsZUl0ZW0odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICBjb25zdCBpc1NlbGVjdGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAoaXNTZWxlY3RhYmxlICE9PSB0aGlzLl9zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RhYmxlID0gaXNTZWxlY3RhYmxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGZka1NlbGVjdGFibGVJdGVtKCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgc2VsZWN0YWJsZSA9IHRoaXMuX3NlbGVjdGFibGU7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm92aWRlcj8uZmRrU2VsZWN0YWJsZUl0ZW0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBzZWxlY3RhYmxlID0gdGhpcy5wcm92aWRlci5mZGtTZWxlY3RhYmxlSXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgc2VsZWN0YWJsZSAmJlxuICAgICAgICAgICAgKCF0aGlzLmRpc2FibGVkJCB8fCAhdGhpcy5kaXNhYmxlZCQ/LmZka0Rpc2FibGVkKSAmJlxuICAgICAgICAgICAgKCF0aGlzLnJlYWRvbmx5JCB8fCAhdGhpcy5yZWFkb25seSQ/LmZka1JlYWRvbmx5KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xpY2tlZDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD47XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHNlbGVjdGlvbiBzdGF0ZSBiZWluZyBjaGFuZ2VkIGZvciBzZWxlY3RhYmxlIGl0ZW0uICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3ZhbHVlITogVmFsdWVUeXBlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGFibGUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChGREtfU0VMRUNUQUJMRV9JVEVNX1BST1ZJREVSKVxuICAgICAgICBwcml2YXRlIHByb3ZpZGVyOiBQYXJ0aWFsPFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUsIFZhbHVlVHlwZT4+LFxuICAgICAgICBwcml2YXRlIGRpc2FibGVkJDogRmRrRGlzYWJsZWRQcm92aWRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSQ6IEZka1JlYWRvbmx5UHJvdmlkZXIsXG4gICAgICAgIHByaXZhdGUgc2VsZWN0aW9uU2VydmljZTogU2VsZWN0aW9uU2VydmljZTxFbGVtZW50VHlwZSwgVmFsdWVUeXBlPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudFR5cGU+LFxuICAgICAgICBfY2xpY2tlZDogRmRrQ2xpY2tlZFByb3ZpZGVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY2xpY2tlZCA9IHRoaXMucHJvdmlkZXI/LmNsaWNrZWQgfHwgX2NsaWNrZWQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvRGlzYWJsaW5nRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXRTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMucHJvdmlkZXI/LmdldFNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5nZXRTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldFNlbGVjdGVkKGlzU2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucHJvdmlkZXI/LnNldFNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnByb3ZpZGVyLnNldFNlbGVjdGVkKGlzU2VsZWN0ZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBpc1NlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IHsgY2xhc3NMaXN0IH0gPSBodG1sRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgY2xhc3NMaXN0LmFkZCgnaXMtc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2xhc3NMaXN0LnJlbW92ZSgnaXMtc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGh0bWxFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGAke2lzU2VsZWN0ZWR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoaXNTZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0Rpc2FibGluZ0V2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlzYWJsaW5nRXZlbnRzJDogT2JzZXJ2YWJsZTxib29sZWFuPltdID0gW107XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkJCkge1xuICAgICAgICAgICAgZGlzYWJsaW5nRXZlbnRzJC5wdXNoKHRoaXMuZGlzYWJsZWQkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZWFkb25seSQpIHtcbiAgICAgICAgICAgIGRpc2FibGluZ0V2ZW50cyQucHVzaCh0aGlzLnJlYWRvbmx5JCk7XG4gICAgICAgIH1cbiAgICAgICAgbWVyZ2UoLi4uZGlzYWJsaW5nRXZlbnRzJCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3VwZGF0ZVNlbGVjdGlvbkFuZFNlbGVjdGFibGVXYXRjaGVyKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlU2VsZWN0aW9uQW5kU2VsZWN0YWJsZVdhdGNoZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkJD8uZmRrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdEl0ZW0odGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0YWJsZVdhdGNoZXIoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVNlbGVjdGFibGVXYXRjaGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2UubGlzdGVuVG9JdGVtSW50ZXJhY3Rpb25zKCk7XG4gICAgfVxufVxuIl19
@@ -1,3 +0,0 @@
1
- export class SelectableItemToken {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1pdGVtLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9zZWxlY3RhYmxlLWxpc3Qvc2VsZWN0YWJsZS1pdGVtLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBZ0IsbUJBQW1CO0NBYXhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaGFzLWVsZW1lbnQtcmVmLmludGVyZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlIGV4dGVuZHMgRWxlbWVudCA9IEhUTUxFbGVtZW50LCBUVmFsdWUgPSBFbGVtZW50VHlwZT5cbiAgICBpbXBsZW1lbnRzIEhhc0VsZW1lbnRSZWY8RWxlbWVudFR5cGU+XG57XG4gICAgYWJzdHJhY3QgdmFsdWU6IFRWYWx1ZTtcbiAgICBhYnN0cmFjdCBmZGtTZWxlY3RhYmxlSXRlbT86IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEVsZW1lbnRUeXBlPjtcblxuICAgIGFic3RyYWN0IGNsaWNrZWQ6IE9ic2VydmFibGU8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+O1xuXG4gICAgYWJzdHJhY3Qgc2V0U2VsZWN0ZWQoaXNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBnZXRTZWxlY3RlZCgpOiBib29sZWFuO1xufVxuIl19
@@ -1,85 +0,0 @@
1
- import { ContentChildren, Directive, EventEmitter, Input, Output, QueryList, booleanAttribute } from '@angular/core';
2
- import { SelectComponentRootToken } from './select-component-root.token';
3
- import { SelectableItemToken } from './selectable-item.token';
4
- import { SelectionService } from './selection.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./selection.service";
7
- export class SelectableListDirective {
8
- /** @hidden */
9
- set selected(value) {
10
- this._selectionService.setValue(value);
11
- }
12
- /** @hidden */
13
- constructor(_selectionService) {
14
- this._selectionService = _selectionService;
15
- /** @hidden */
16
- this.selectedChange = new EventEmitter();
17
- /** @hidden */
18
- this.toggle = false;
19
- /** @hidden */
20
- this.multiple = false;
21
- this._selectionService.registerRootComponent(this);
22
- }
23
- /** @hidden */
24
- select(item) {
25
- this._selectionService.selectItem(item);
26
- }
27
- /** @hidden */
28
- deselect(item) {
29
- this._selectionService.deselectItem(item);
30
- }
31
- /** @hidden */
32
- toggleSelect(item) {
33
- if (item.getSelected()) {
34
- this.deselect(item);
35
- }
36
- else {
37
- this.select(item);
38
- }
39
- }
40
- /** @hidden */
41
- onChange(value) {
42
- this.selectedChange.emit(value);
43
- }
44
- /** @hidden */
45
- ngAfterViewInit() {
46
- this._selectionService.initialize(this.selectableItems);
47
- }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListDirective, deps: [{ token: i1.SelectionService }], target: i0.ɵɵFactoryTarget.Directive }); }
49
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.3", type: SelectableListDirective, isStandalone: true, selector: "[fdkSelectableList]", inputs: { toggle: ["toggle", "toggle", booleanAttribute], multiple: ["multiple", "multiple", booleanAttribute], selected: "selected" }, outputs: { selectedChange: "selectedChange" }, providers: [
50
- {
51
- provide: SelectComponentRootToken,
52
- useExisting: SelectableListDirective
53
- },
54
- SelectionService
55
- ], queries: [{ propertyName: "selectableItems", predicate: SelectableItemToken }], exportAs: ["fdkSelectableList"], ngImport: i0 }); }
56
- }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListDirective, decorators: [{
58
- type: Directive,
59
- args: [{
60
- selector: '[fdkSelectableList]',
61
- exportAs: 'fdkSelectableList',
62
- standalone: true,
63
- providers: [
64
- {
65
- provide: SelectComponentRootToken,
66
- useExisting: SelectableListDirective
67
- },
68
- SelectionService
69
- ]
70
- }]
71
- }], ctorParameters: () => [{ type: i1.SelectionService }], propDecorators: { selectedChange: [{
72
- type: Output
73
- }], toggle: [{
74
- type: Input,
75
- args: [{ transform: booleanAttribute }]
76
- }], multiple: [{
77
- type: Input,
78
- args: [{ transform: booleanAttribute }]
79
- }], selected: [{
80
- type: Input
81
- }], selectableItems: [{
82
- type: ContentChildren,
83
- args: [SelectableItemToken]
84
- }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1saXN0L3NlbGVjdGFibGUtbGlzdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQTJCLE1BQU0sK0JBQStCLENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQWN2RCxNQUFNLE9BQU8sdUJBQXVCO0lBZWhDLGNBQWM7SUFDZCxJQUNJLFFBQVEsQ0FBQyxLQUFpQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFLRCxjQUFjO0lBQ2QsWUFBb0IsaUJBQXlDO1FBQXpDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBd0I7UUF0QjdELGNBQWM7UUFFZCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUE4QixDQUFDO1FBRWhFLGNBQWM7UUFFZCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsY0FBYztRQUVkLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFhYixJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWM7SUFDZCxNQUFNLENBQUMsSUFBK0I7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVEsQ0FBQyxJQUErQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjO0lBQ2QsWUFBWSxDQUFDLElBQStCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsUUFBUSxDQUFDLEtBQWlDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBeERRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDhGQVFaLGdCQUFnQixzQ0FJaEIsZ0JBQWdCLHFGQXBCekI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsd0JBQXdCO2dCQUNqQyxXQUFXLEVBQUUsdUJBQXVCO2FBQ3ZDO1lBQ0QsZ0JBQWdCO1NBQ25CLDBEQXdCZ0IsbUJBQW1COzsyRkF0QjNCLHVCQUF1QjtrQkFabkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSx3QkFBd0I7NEJBQ2pDLFdBQVcseUJBQXlCO3lCQUN2Qzt3QkFDRCxnQkFBZ0I7cUJBQ25CO2lCQUNKO3FGQU1HLGNBQWM7c0JBRGIsTUFBTTtnQkFLUCxNQUFNO3NCQURMLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS3RDLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLbEMsUUFBUTtzQkFEWCxLQUFLO2dCQU1nQyxlQUFlO3NCQUFwRCxlQUFlO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnRSb290VG9rZW4sIFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlIH0gZnJvbSAnLi9zZWxlY3QtY29tcG9uZW50LXJvb3QudG9rZW4nO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUl0ZW1Ub2tlbiB9IGZyb20gJy4vc2VsZWN0YWJsZS1pdGVtLnRva2VuJztcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdGlvbi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrU2VsZWN0YWJsZUxpc3RdJyxcbiAgICBleHBvcnRBczogJ2Zka1NlbGVjdGFibGVMaXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTZWxlY3RDb21wb25lbnRSb290VG9rZW4sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogU2VsZWN0YWJsZUxpc3REaXJlY3RpdmVcbiAgICAgICAgfSxcbiAgICAgICAgU2VsZWN0aW9uU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0YWJsZUxpc3REaXJlY3RpdmU8VCBleHRlbmRzIEVsZW1lbnQgPSBIVE1MRWxlbWVudCwgViA9IGFueT5cbiAgICBpbXBsZW1lbnRzIFNlbGVjdENvbXBvbmVudFJvb3RUb2tlbjxUPiwgQWZ0ZXJWaWV3SW5pdFxue1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPFQ+PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB0b2dnbGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2VsZWN0ZWQodmFsdWU6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPFQ+KSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2Uuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTZWxlY3RhYmxlSXRlbVRva2VuKSBzZWxlY3RhYmxlSXRlbXMhOiBRdWVyeUxpc3Q8U2VsZWN0YWJsZUl0ZW1Ub2tlbjxULCBWPj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlbGVjdGlvblNlcnZpY2U6IFNlbGVjdGlvblNlcnZpY2U8VCwgVj4pIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZWdpc3RlclJvb3RDb21wb25lbnQodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZWxlY3QoaXRlbTogU2VsZWN0YWJsZUl0ZW1Ub2tlbjxULCBWPik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBkZXNlbGVjdChpdGVtOiBTZWxlY3RhYmxlSXRlbVRva2VuPFQsIFY+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuZGVzZWxlY3RJdGVtKGl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdG9nZ2xlU2VsZWN0KGl0ZW06IFNlbGVjdGFibGVJdGVtVG9rZW48VCwgVj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGl0ZW0uZ2V0U2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdChpdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KGl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZSh2YWx1ZTogU2VsZWN0YWJsZUxpc3RWYWx1ZVR5cGU8VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5pbml0aWFsaXplKHRoaXMuc2VsZWN0YWJsZUl0ZW1zKTtcbiAgICB9XG59XG4iXX0=
@@ -1,17 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { SelectableItemDirective } from './selectable-item.directive';
3
- import { SelectableListDirective } from './selectable-list.directive';
4
- import * as i0 from "@angular/core";
5
- export class SelectableListModule {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: SelectableListModule, imports: [SelectableListDirective, SelectableItemDirective], exports: [SelectableListDirective, SelectableItemDirective] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListModule }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- imports: [SelectableListDirective, SelectableItemDirective],
14
- exports: [SelectableListDirective, SelectableItemDirective]
15
- }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1saXN0L3NlbGVjdGFibGUtbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFNdEUsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsWUFIbkIsdUJBQXVCLEVBQUUsdUJBQXVCLGFBQ2hELHVCQUF1QixFQUFFLHVCQUF1QjsrR0FFakQsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDO29CQUMzRCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdGFibGUtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUxpc3REaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdGFibGUtbGlzdC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtTZWxlY3RhYmxlTGlzdERpcmVjdGl2ZSwgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtTZWxlY3RhYmxlTGlzdERpcmVjdGl2ZSwgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGFibGVMaXN0TW9kdWxlIHt9XG4iXX0=
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const FDK_SELECTABLE_ITEM_PROVIDER = new InjectionToken('Token for providing custom behaviors to the SelectableListItem');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LnRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1saXN0L3NlbGVjdGFibGUtbGlzdC50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDMUQsZ0VBQWdFLENBQ25FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRkRLX1NFTEVDVEFCTEVfSVRFTV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbihcbiAgICAnVG9rZW4gZm9yIHByb3ZpZGluZyBjdXN0b20gYmVoYXZpb3JzIHRvIHRoZSBTZWxlY3RhYmxlTGlzdEl0ZW0nXG4pO1xuIl19
@@ -1,138 +0,0 @@
1
- import { coerceArray } from '@angular/cdk/coercion';
2
- import { ChangeDetectorRef, DestroyRef, Injectable, QueryList, inject } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import equal from 'fast-deep-equal';
5
- import { ReplaySubject, Subject, combineLatest, isObservable, merge, of, switchMap } from 'rxjs';
6
- import { distinctUntilChanged, map, shareReplay, startWith, takeUntil, tap } from 'rxjs/operators';
7
- import { destroyObservable } from '../../helpers/destroy-observable';
8
- import * as i0 from "@angular/core";
9
- export class SelectionService {
10
- /** @hidden */
11
- constructor(_cd) {
12
- this._cd = _cd;
13
- /** @hidden */
14
- this._value$ = new ReplaySubject(1);
15
- /** @hidden */
16
- this._destroyRef = inject(DestroyRef);
17
- /** @hidden */
18
- this._clear$ = new Subject();
19
- /** @hidden */
20
- this._value = [];
21
- this._normalizedValue$ = this._value$.pipe(distinctUntilChanged(equal), map((v) => coerceArray(v)), map((value) => (this._isMultipleMode ? value : [value[0]])), map((coerced) => coerced.filter(Boolean)));
22
- this._normalizedValue$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((val) => (this._value = val));
23
- this.value$ = this._normalizedValue$.pipe(map((v) => this._getProperValues(v)), shareReplay(1));
24
- }
25
- /**
26
- * Register main select component, which holds config
27
- * */
28
- registerRootComponent(rootComponent) {
29
- this._rootComponent = rootComponent;
30
- }
31
- /**
32
- * Clear listeners
33
- */
34
- clear() {
35
- this._clear$.next();
36
- }
37
- /**
38
- * Initialize watcher for selection changes and user interactions
39
- * */
40
- initialize(list) {
41
- if (list instanceof QueryList) {
42
- this._items$ = list.changes.pipe(startWith(list), map((items) => items.toArray()), shareReplay(1));
43
- }
44
- else {
45
- this._items$ = isObservable(list) ? list : of(list);
46
- }
47
- this.listenToItemInteractions();
48
- }
49
- /**
50
- * Sets Value, on which service looks at and updates UI accordingly
51
- * */
52
- setValue(v) {
53
- this._value$.next(v);
54
- }
55
- /** @hidden */
56
- getValue() {
57
- return this._getProperValues(this._value);
58
- }
59
- /**
60
- * Start listening for item interactions. Will destroy() first.
61
- * Will silently continue if service was not initialized first.
62
- * */
63
- listenToItemInteractions() {
64
- this.clear();
65
- const unsubscribe$ = merge(destroyObservable(this._destroyRef), this._clear$);
66
- if (this._items$) {
67
- this._items$
68
- .pipe(map((items) => items.filter((itm) => itm.fdkSelectableItem !== false)), switchMap((items) => {
69
- const clickedEvents$ = items.map((item) => item.clicked.pipe(map(() => item)));
70
- return merge(...clickedEvents$);
71
- }), tap((clickedItem) => this._itemClicked(clickedItem)), takeUntil(unsubscribe$))
72
- .subscribe();
73
- combineLatest([this._normalizedValue$, this._items$])
74
- .pipe(tap(([value, items]) => {
75
- if (value.length === 0 &&
76
- items.some((itm) => itm.getSelected()) &&
77
- !this._rootComponent.toggle) {
78
- const selectedValues = this._getSelectedValues(items);
79
- this._rootComponent.onChange(selectedValues);
80
- return this._value$.next(selectedValues);
81
- }
82
- items.forEach((item) => {
83
- item.setSelected(value.includes(item.value));
84
- });
85
- this._cd.detectChanges();
86
- }), takeUntil(unsubscribe$))
87
- .subscribe();
88
- }
89
- }
90
- /** @hidden */
91
- selectItem(item) {
92
- if (item.fdkSelectableItem !== false) {
93
- const val = [item.value, ...this._value];
94
- const properValues = this._getProperValues(val);
95
- this._value$.next(properValues);
96
- this._rootComponent.onChange(properValues);
97
- }
98
- }
99
- /** @hidden */
100
- deselectItem(item) {
101
- const canBeDeselected = this._rootComponent.toggle || (this._isMultipleMode && this._value.length > 1);
102
- if (canBeDeselected) {
103
- const val = this._value.filter((v) => v !== item.value);
104
- const properValues = this._getProperValues(val);
105
- this._value$.next(properValues);
106
- this._rootComponent.onChange(properValues);
107
- }
108
- }
109
- /** @hidden */
110
- get _isMultipleMode() {
111
- return this._rootComponent.multiple === true;
112
- }
113
- /** @hidden */
114
- _itemClicked(item) {
115
- const wasSelected = this._value.includes(item.value);
116
- if (wasSelected) {
117
- this.deselectItem(item);
118
- }
119
- else {
120
- this.selectItem(item);
121
- }
122
- }
123
- /** @hidden */
124
- _getSelectedValues(items) {
125
- const selectedValues = items.filter((itm) => itm.getSelected()).map((itm) => itm.value);
126
- return this._getProperValues(selectedValues);
127
- }
128
- /** @hidden */
129
- _getProperValues(values) {
130
- return this._isMultipleMode ? values : values[0];
131
- }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectionService, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
133
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectionService }); }
134
- }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectionService, decorators: [{
136
- type: Injectable
137
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL3NlbGVjdGFibGUtbGlzdC9zZWxlY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEtBQUssTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBVXJFLE1BQU0sT0FBTyxnQkFBZ0I7SUFtQnpCLGNBQWM7SUFDZCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWQxQyxjQUFjO1FBQ04sWUFBTyxHQUFHLElBQUksYUFBYSxDQUFxQyxDQUFDLENBQUMsQ0FBQztRQUszRSxjQUFjO1FBQ04sZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsY0FBYztRQUNOLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3RDLGNBQWM7UUFDTixXQUFNLEdBQWdCLEVBQUUsQ0FBQztRQUk3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUMzQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBWSxDQUFDLENBQUMsQ0FBQyxFQUNyQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDM0QsR0FBRyxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUN6RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBeUMsQ0FBQyxDQUFDLEVBQzVFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztJQUNOLENBQUM7SUFFRDs7U0FFSztJQUNMLHFCQUFxQixDQUFDLGFBQW9EO1FBQ3RFLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7U0FFSztJQUNMLFVBQVUsQ0FBQyxJQUFnRDtRQUN2RCxJQUFJLElBQUksWUFBWSxTQUFTLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsR0FBRyxDQUFDLENBQUMsS0FBNkQsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQ3ZGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O1NBRUs7SUFDTCxRQUFRLENBQUMsQ0FBdUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELGNBQWM7SUFDZCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQThDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQ7OztTQUdLO0lBQ0wsd0JBQXdCO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU87aUJBQ1AsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGlCQUFpQixLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQ3RFLFNBQVMsQ0FBQyxDQUFDLEtBQW9ELEVBQUUsRUFBRTtnQkFDL0QsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0UsT0FBTyxLQUFLLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQztZQUNwQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDcEQsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLEVBQUUsQ0FBQztZQUNqQixhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUNoRCxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtnQkFDbkIsSUFDSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7b0JBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDdEMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFDN0IsQ0FBQztvQkFDQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGNBQXNELENBQUMsQ0FBQztvQkFDckYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFzRCxDQUFDLENBQUM7Z0JBQ3JGLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxVQUFVLENBQUMsSUFBaUQ7UUFDeEQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxHQUFHLEdBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBMkMsQ0FBQyxDQUFDO1lBQ3hGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLFlBQVksQ0FBQyxJQUFpRDtRQUMxRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNsQixNQUFNLEdBQUcsR0FBeUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ2hFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FDYyxDQUFDO1lBQzFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUFZLGVBQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWM7SUFDTixZQUFZLENBQUMsSUFBaUQ7UUFDbEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksV0FBVyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTixrQkFBa0IsQ0FBQyxLQUFvRDtRQUMzRSxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFzRCxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELGNBQWM7SUFDTixnQkFBZ0IsQ0FBQyxNQUE0QztRQUNqRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBcktRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERlc3Ryb3lSZWYsIEluamVjdGFibGUsIFF1ZXJ5TGlzdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGlzT2JzZXJ2YWJsZSwgbWVyZ2UsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZGVzdHJveU9ic2VydmFibGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2Rlc3Ryb3ktb2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnRSb290VG9rZW4sIFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlIH0gZnJvbSAnLi9zZWxlY3QtY29tcG9uZW50LXJvb3QudG9rZW4nO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUl0ZW1Ub2tlbiB9IGZyb20gJy4vc2VsZWN0YWJsZS1pdGVtLnRva2VuJztcblxuZXhwb3J0IHR5cGUgU2VsZWN0aW9uSXRlbXNMaXN0PEVsZW1lbnRUeXBlIGV4dGVuZHMgRWxlbWVudCwgVmFsdWVUeXBlID0gRWxlbWVudFR5cGU+ID1cbiAgICB8IFF1ZXJ5TGlzdDxTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+PlxuICAgIHwgT2JzZXJ2YWJsZTxTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+W10+XG4gICAgfCBTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+W107XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25TZXJ2aWNlPEVsZW1lbnRUeXBlIGV4dGVuZHMgRWxlbWVudCwgVmFsdWVUeXBlID0gRWxlbWVudFR5cGU+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHZhbHVlJDogT2JzZXJ2YWJsZTxTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxWYWx1ZVR5cGU+PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXRlbXMkITogT2JzZXJ2YWJsZTxTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+W10+O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8U2VsZWN0YWJsZUxpc3RWYWx1ZVR5cGU8VmFsdWVUeXBlPj4oMSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ub3JtYWxpemVkVmFsdWUkOiBPYnNlcnZhYmxlPFZhbHVlVHlwZVtdPjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jvb3RDb21wb25lbnQhOiBTZWxlY3RDb21wb25lbnRSb290VG9rZW48RWxlbWVudFR5cGU+O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NsZWFyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92YWx1ZTogVmFsdWVUeXBlW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHRoaXMuX25vcm1hbGl6ZWRWYWx1ZSQgPSB0aGlzLl92YWx1ZSQucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGVxdWFsKSxcbiAgICAgICAgICAgIG1hcCgodikgPT4gY29lcmNlQXJyYXk8VmFsdWVUeXBlPih2KSksXG4gICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiAodGhpcy5faXNNdWx0aXBsZU1vZGUgPyB2YWx1ZSA6IFt2YWx1ZVswXV0pKSxcbiAgICAgICAgICAgIG1hcCgoY29lcmNlZDogVmFsdWVUeXBlW10pID0+IGNvZXJjZWQuZmlsdGVyKEJvb2xlYW4pKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9ub3JtYWxpemVkVmFsdWUkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbCkgPT4gKHRoaXMuX3ZhbHVlID0gdmFsKSk7XG4gICAgICAgIHRoaXMudmFsdWUkID0gdGhpcy5fbm9ybWFsaXplZFZhbHVlJC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2KSA9PiB0aGlzLl9nZXRQcm9wZXJWYWx1ZXModiBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT4pKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgbWFpbiBzZWxlY3QgY29tcG9uZW50LCB3aGljaCBob2xkcyBjb25maWdcbiAgICAgKiAqL1xuICAgIHJlZ2lzdGVyUm9vdENvbXBvbmVudChyb290Q29tcG9uZW50OiBTZWxlY3RDb21wb25lbnRSb290VG9rZW48RWxlbWVudFR5cGU+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jvb3RDb21wb25lbnQgPSByb290Q29tcG9uZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFyIGxpc3RlbmVyc1xuICAgICAqL1xuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGVhciQubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgd2F0Y2hlciBmb3Igc2VsZWN0aW9uIGNoYW5nZXMgYW5kIHVzZXIgaW50ZXJhY3Rpb25zXG4gICAgICogKi9cbiAgICBpbml0aWFsaXplKGxpc3Q6IFNlbGVjdGlvbkl0ZW1zTGlzdDxFbGVtZW50VHlwZSwgVmFsdWVUeXBlPik6IHZvaWQge1xuICAgICAgICBpZiAobGlzdCBpbnN0YW5jZW9mIFF1ZXJ5TGlzdCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbXMkID0gbGlzdC5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKGxpc3QpLFxuICAgICAgICAgICAgICAgIG1hcCgoaXRlbXM6IFF1ZXJ5TGlzdDxTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+PikgPT4gaXRlbXMudG9BcnJheSgpKSxcbiAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zJCA9IGlzT2JzZXJ2YWJsZShsaXN0KSA/IGxpc3QgOiBvZihsaXN0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpc3RlblRvSXRlbUludGVyYWN0aW9ucygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgVmFsdWUsIG9uIHdoaWNoIHNlcnZpY2UgbG9va3MgYXQgYW5kIHVwZGF0ZXMgVUkgYWNjb3JkaW5nbHlcbiAgICAgKiAqL1xuICAgIHNldFZhbHVlKHY6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPik6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSQubmV4dCh2KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldFZhbHVlKCk6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRQcm9wZXJWYWx1ZXModGhpcy5fdmFsdWUgYXMgU2VsZWN0YWJsZUxpc3RWYWx1ZVR5cGU8RWxlbWVudFR5cGU+KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGFydCBsaXN0ZW5pbmcgZm9yIGl0ZW0gaW50ZXJhY3Rpb25zLiBXaWxsIGRlc3Ryb3koKSBmaXJzdC5cbiAgICAgKiBXaWxsIHNpbGVudGx5IGNvbnRpbnVlIGlmIHNlcnZpY2Ugd2FzIG5vdCBpbml0aWFsaXplZCBmaXJzdC5cbiAgICAgKiAqL1xuICAgIGxpc3RlblRvSXRlbUludGVyYWN0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICBjb25zdCB1bnN1YnNjcmliZSQgPSBtZXJnZShkZXN0cm95T2JzZXJ2YWJsZSh0aGlzLl9kZXN0cm95UmVmKSwgdGhpcy5fY2xlYXIkKTtcbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zJCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbXMkXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcigoaXRtKSA9PiBpdG0uZmRrU2VsZWN0YWJsZUl0ZW0gIT09IGZhbHNlKSksXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoaXRlbXM6IFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUsIFZhbHVlVHlwZT5bXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xpY2tlZEV2ZW50cyQgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uY2xpY2tlZC5waXBlKG1hcCgoKSA9PiBpdGVtKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKC4uLmNsaWNrZWRFdmVudHMkKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoY2xpY2tlZEl0ZW0pID0+IHRoaXMuX2l0ZW1DbGlja2VkKGNsaWNrZWRJdGVtKSksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh1bnN1YnNjcmliZSQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX25vcm1hbGl6ZWRWYWx1ZSQsIHRoaXMuX2l0ZW1zJF0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoW3ZhbHVlLCBpdGVtc10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5zb21lKChpdG0pID0+IGl0bS5nZXRTZWxlY3RlZCgpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLl9yb290Q29tcG9uZW50LnRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLl9nZXRTZWxlY3RlZFZhbHVlcyhpdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcm9vdENvbXBvbmVudC5vbkNoYW5nZShzZWxlY3RlZFZhbHVlcyBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZSQubmV4dChzZWxlY3RlZFZhbHVlcyBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc2V0U2VsZWN0ZWQodmFsdWUuaW5jbHVkZXMoaXRlbS52YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodW5zdWJzY3JpYmUkKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlbGVjdEl0ZW0oaXRlbTogU2VsZWN0YWJsZUl0ZW1Ub2tlbjxFbGVtZW50VHlwZSwgVmFsdWVUeXBlPik6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbS5mZGtTZWxlY3RhYmxlSXRlbSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbDogVmFsdWVUeXBlW10gPSBbaXRlbS52YWx1ZSwgLi4udGhpcy5fdmFsdWVdO1xuICAgICAgICAgICAgY29uc3QgcHJvcGVyVmFsdWVzID0gdGhpcy5fZ2V0UHJvcGVyVmFsdWVzKHZhbCBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT4pO1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUkLm5leHQocHJvcGVyVmFsdWVzKTtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3RDb21wb25lbnQub25DaGFuZ2UocHJvcGVyVmFsdWVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGVzZWxlY3RJdGVtKGl0ZW06IFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUsIFZhbHVlVHlwZT4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FuQmVEZXNlbGVjdGVkID0gdGhpcy5fcm9vdENvbXBvbmVudC50b2dnbGUgfHwgKHRoaXMuX2lzTXVsdGlwbGVNb2RlICYmIHRoaXMuX3ZhbHVlLmxlbmd0aCA+IDEpO1xuICAgICAgICBpZiAoY2FuQmVEZXNlbGVjdGVkKSB7XG4gICAgICAgICAgICBjb25zdCB2YWw6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPiA9IHRoaXMuX3ZhbHVlLmZpbHRlcihcbiAgICAgICAgICAgICAgICAodikgPT4gdiAhPT0gaXRlbS52YWx1ZVxuICAgICAgICAgICAgKSBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT47XG4gICAgICAgICAgICBjb25zdCBwcm9wZXJWYWx1ZXMgPSB0aGlzLl9nZXRQcm9wZXJWYWx1ZXModmFsKTtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlJC5uZXh0KHByb3BlclZhbHVlcyk7XG4gICAgICAgICAgICB0aGlzLl9yb290Q29tcG9uZW50Lm9uQ2hhbmdlKHByb3BlclZhbHVlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9pc011bHRpcGxlTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3RDb21wb25lbnQubXVsdGlwbGUgPT09IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pdGVtQ2xpY2tlZChpdGVtOiBTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdhc1NlbGVjdGVkID0gdGhpcy5fdmFsdWUuaW5jbHVkZXMoaXRlbS52YWx1ZSk7XG4gICAgICAgIGlmICh3YXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFNlbGVjdGVkVmFsdWVzKGl0ZW1zOiBTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+W10pOiBFbGVtZW50VHlwZSB8IEVsZW1lbnRUeXBlW10ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IGl0ZW1zLmZpbHRlcigoaXRtKSA9PiBpdG0uZ2V0U2VsZWN0ZWQoKSkubWFwKChpdG0pID0+IGl0bS52YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRQcm9wZXJWYWx1ZXMoc2VsZWN0ZWRWYWx1ZXMgYXMgU2VsZWN0YWJsZUxpc3RWYWx1ZVR5cGU8RWxlbWVudFR5cGU+KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFByb3BlclZhbHVlcyh2YWx1ZXM6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPik6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc011bHRpcGxlTW9kZSA/IHZhbHVlcyA6IHZhbHVlc1swXTtcbiAgICB9XG59XG4iXX0=
@@ -1,25 +0,0 @@
1
- import { Directive, Input, TemplateRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class TemplateDirective {
4
- /** @hidden */
5
- constructor(templateRef) {
6
- this.templateRef = templateRef;
7
- }
8
- /** @hidden */
9
- getName() {
10
- return this.name;
11
- }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: TemplateDirective, isStandalone: true, selector: "[fdkTemplate]", inputs: { name: ["fdkTemplate", "name"] }, ngImport: i0 }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateDirective, decorators: [{
16
- type: Directive,
17
- args: [{
18
- selector: '[fdkTemplate]',
19
- standalone: true
20
- }]
21
- }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { name: [{
22
- type: Input,
23
- args: ['fdkTemplate']
24
- }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU05RCxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLGNBQWM7SUFDZCxZQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7SUFBRyxDQUFDO0lBRXBELGNBQWM7SUFDZCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7OEdBWFEsaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtnRkFJRyxJQUFJO3NCQURILEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka1RlbXBsYXRlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgLyoqIE5hbWUgb2YgdGhlIHRlbXBsYXRlICovXG4gICAgQElucHV0KCdmZGtUZW1wbGF0ZScpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgICB9XG59XG4iXX0=
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { TemplateDirective } from './template.directive';
3
- import * as i0 from "@angular/core";
4
- export class TemplateModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: TemplateModule, imports: [TemplateDirective], exports: [TemplateDirective] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateModule }); }
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- imports: [TemplateDirective],
13
- exports: [TemplateDirective]
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy90ZW1wbGF0ZS90ZW1wbGF0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNekQsTUFBTSxPQUFPLGNBQWM7OEdBQWQsY0FBYzsrR0FBZCxjQUFjLFlBSGIsaUJBQWlCLGFBQ2pCLGlCQUFpQjsrR0FFbEIsY0FBYzs7MkZBQWQsY0FBYztrQkFKMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtUZW1wbGF0ZURpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW1RlbXBsYXRlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZU1vZHVsZSB7fVxuIl19
@@ -1,94 +0,0 @@
1
- import { coerceNumberProperty } from '@angular/cdk/coercion';
2
- import { Directive, ElementRef, Input } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class TruncateDirective {
5
- /**
6
- * Width in pixel for truncation of an element , by default
7
- */
8
- set fdkTruncateWidth(value) {
9
- this._customWidthCount = coerceNumberProperty(value);
10
- }
11
- /** @hidden */
12
- constructor(_elementRef) {
13
- this._elementRef = _elementRef;
14
- /**
15
- * Truncating state
16
- */
17
- this.fdkTruncateState = false;
18
- /** @hidden */
19
- this._customWidthCount = 200;
20
- /** @hidden */
21
- this.takeDefaultStyleOnce = true;
22
- }
23
- /**
24
- * Root native element
25
- */
26
- get rootElement() {
27
- return this._elementRef.nativeElement;
28
- }
29
- /**
30
- * Method saves default style of target element before first truncate.
31
- */
32
- setDefaultStyle() {
33
- if (this.takeDefaultStyleOnce) {
34
- this._defaultStyle = this._truncateTarget.style.cssText;
35
- this.takeDefaultStyleOnce = false;
36
- }
37
- }
38
- /** @hidden */
39
- ngAfterViewInit() {
40
- if (this.rootElement) {
41
- this._truncate();
42
- }
43
- }
44
- /** @hidden */
45
- ngOnChanges() {
46
- this._truncate();
47
- }
48
- /** @hidden */
49
- _truncate() {
50
- this._truncateTarget = this.rootElement;
51
- if (!this._truncateTarget) {
52
- return;
53
- }
54
- this.setDefaultStyle();
55
- this._truncationStyle = `${this._defaultStyle} max-width: ${this._customWidthCount}px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`;
56
- this._truncateTarget.style.cssText = this.fdkTruncateState ? this._truncationStyle : this._defaultStyle;
57
- }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TruncateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
59
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: TruncateDirective, isStandalone: true, selector: "[fdkTruncate]", inputs: { fdkTruncateWidth: "fdkTruncateWidth", fdkTruncateState: "fdkTruncateState" }, usesOnChanges: true, ngImport: i0 }); }
60
- }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TruncateDirective, decorators: [{
62
- type: Directive,
63
- args: [{
64
- selector: '[fdkTruncate]',
65
- standalone: true
66
- }]
67
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { fdkTruncateWidth: [{
68
- type: Input
69
- }], fdkTruncateState: [{
70
- type: Input
71
- }] } });
72
- export class TruncatedTitleDirective {
73
- /** @hidden */
74
- constructor(_elRef) {
75
- this._elRef = _elRef;
76
- }
77
- /** @hidden */
78
- ngAfterContentChecked() {
79
- const el = this._elRef.nativeElement;
80
- if (el.scrollWidth > el.offsetWidth) {
81
- el.title = el.innerText;
82
- }
83
- }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TruncatedTitleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
85
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: TruncatedTitleDirective, isStandalone: true, selector: "[fdkTruncatedTitle], [fdTruncatedTitle], [fd-truncate-title]", ngImport: i0 }); }
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TruncatedTitleDirective, decorators: [{
88
- type: Directive,
89
- args: [{
90
- selector: '[fdkTruncatedTitle], [fdTruncatedTitle], [fd-truncate-title]',
91
- standalone: true
92
- }]
93
- }], ctorParameters: () => [{ type: i0.ElementRef }] });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy90cnVuY2F0ZS90cnVuY2F0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFzQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQzs7QUFPNUcsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQjs7T0FFRztJQUNILElBQ0ksZ0JBQWdCLENBQUMsS0FBdUI7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUEyQkQsY0FBYztJQUNkLFlBQTZCLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBMUJwRDs7V0FFRztRQUVILHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6QixjQUFjO1FBQ04sc0JBQWlCLEdBQUcsR0FBRyxDQUFDO1FBVWhDLGNBQWM7UUFDTix5QkFBb0IsR0FBRyxJQUFJLENBQUM7SUFRbUIsQ0FBQztJQUV4RDs7T0FFRztJQUNILElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDeEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUN0QyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGNBQWM7SUFDTixTQUFTO1FBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRXhDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsZUFBZSxJQUFJLENBQUMsaUJBQWlCLHFFQUFxRSxDQUFDO1FBQ3hKLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1RyxDQUFDOzhHQTNFUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ25COytFQU1PLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFTTixnQkFBZ0I7c0JBRGYsS0FBSzs7QUFzRVYsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxjQUFjO0lBQ2QsWUFBb0IsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtJQUFHLENBQUM7SUFFMUMsY0FBYztJQUNkLHFCQUFxQjtRQUNqQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNyQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzs4R0FWUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOERBQThEO29CQUN4RSxVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL251bGxhYmxlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrVHJ1bmNhdGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRydW5jYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBXaWR0aCBpbiBwaXhlbCBmb3IgdHJ1bmNhdGlvbiBvZiBhbiBlbGVtZW50ICwgYnkgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZka1RydW5jYXRlV2lkdGgodmFsdWU6IE51bGxhYmxlPG51bWJlcj4pIHtcbiAgICAgICAgdGhpcy5fY3VzdG9tV2lkdGhDb3VudCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcnVuY2F0aW5nIHN0YXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmZGtUcnVuY2F0ZVN0YXRlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2N1c3RvbVdpZHRoQ291bnQgPSAyMDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RydW5jYXRlVGFyZ2V0OiBIVE1MRWxlbWVudDtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogc2F2ZXMgZGVmYXVsdCBzdHlsZSBvZiBlbGVtZW50IGJlZm9yZSB0cnVuY2F0aW5nXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdFN0eWxlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgdGFrZURlZmF1bHRTdHlsZU9uY2UgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiB0cnVuY2F0aW9uIHN0eWxlIGZvciB0cnVuY2F0aW5nIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIF90cnVuY2F0aW9uU3R5bGU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8qKlxuICAgICAqIFJvb3QgbmF0aXZlIGVsZW1lbnRcbiAgICAgKi9cbiAgICBnZXQgcm9vdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBzYXZlcyBkZWZhdWx0IHN0eWxlIG9mIHRhcmdldCBlbGVtZW50IGJlZm9yZSBmaXJzdCB0cnVuY2F0ZS5cbiAgICAgKi9cbiAgICBzZXREZWZhdWx0U3R5bGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRha2VEZWZhdWx0U3R5bGVPbmNlKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWZhdWx0U3R5bGUgPSB0aGlzLl90cnVuY2F0ZVRhcmdldC5zdHlsZS5jc3NUZXh0O1xuICAgICAgICAgICAgdGhpcy50YWtlRGVmYXVsdFN0eWxlT25jZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yb290RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5fdHJ1bmNhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RydW5jYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cnVuY2F0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJ1bmNhdGVUYXJnZXQgPSB0aGlzLnJvb3RFbGVtZW50O1xuXG4gICAgICAgIGlmICghdGhpcy5fdHJ1bmNhdGVUYXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldERlZmF1bHRTdHlsZSgpO1xuICAgICAgICB0aGlzLl90cnVuY2F0aW9uU3R5bGUgPSBgJHt0aGlzLl9kZWZhdWx0U3R5bGV9IG1heC13aWR0aDogJHt0aGlzLl9jdXN0b21XaWR0aENvdW50fXB4OyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDtgO1xuICAgICAgICB0aGlzLl90cnVuY2F0ZVRhcmdldC5zdHlsZS5jc3NUZXh0ID0gdGhpcy5mZGtUcnVuY2F0ZVN0YXRlID8gdGhpcy5fdHJ1bmNhdGlvblN0eWxlIDogdGhpcy5fZGVmYXVsdFN0eWxlO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrVHJ1bmNhdGVkVGl0bGVdLCBbZmRUcnVuY2F0ZWRUaXRsZV0sIFtmZC10cnVuY2F0ZS10aXRsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVkVGl0bGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGVsLnNjcm9sbFdpZHRoID4gZWwub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgIGVsLnRpdGxlID0gZWwuaW5uZXJUZXh0O1xuICAgICAgICB9XG4gICAgfVxufVxuIl19