@fundamental-ngx/cdk 0.54.2 → 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,35 +0,0 @@
1
- export * from './auto-complete/auto-complete.directive';
2
- export * from './auto-complete/auto-complete.module';
3
- export * from './breakpoints/breakpoint.directive';
4
- export * from './clicked';
5
- export * from './disabled';
6
- export * from './focus-key-manager';
7
- export * from './focusable-grid';
8
- export * from './focusable-item';
9
- export * from './focusable-list';
10
- export * from './ignore-click-on-selection/ignore-click-on-selection.directive';
11
- export * from './ignore-click-on-selection/ignore-click-on-selection.module';
12
- export * from './ignore-click-on-selection/tokens';
13
- export * from './initial-focus/initial-focus.directive';
14
- export * from './initial-focus/initial-focus.module';
15
- export * from './intersection-spy/intersection-spy.directive';
16
- export * from './line-clamp/line-clamp.directive';
17
- export * from './line-clamp/line-clamp.module';
18
- export * from './only-digits/only-digits.directive';
19
- export * from './only-digits/only-digits.module';
20
- export * from './overflow-list/overflow-list-item.directive';
21
- export * from './overflow-list/overflow-list.directive';
22
- export * from './overflow-list/overflow-list.module';
23
- export * from './readonly';
24
- export * from './repeat/repeat.directive';
25
- export * from './repeat/repeat.module';
26
- export * from './resize-observer';
27
- export * from './resize/resize-handle.directive';
28
- export * from './resize/resize.directive';
29
- export * from './resize/resize.module';
30
- export * from './selectable-list';
31
- export * from './template/template.directive';
32
- export * from './template/template.module';
33
- export * from './truncate/truncate.directive';
34
- export * from './truncate/truncate.module';
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWtwb2ludHMvYnJlYWtwb2ludC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGlja2VkJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzYWJsZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1cy1rZXktbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2ZvY3VzYWJsZS1ncmlkJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtbGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2lnbm9yZS1jbGljay1vbi1zZWxlY3Rpb24vaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9pZ25vcmUtY2xpY2stb24tc2VsZWN0aW9uL2lnbm9yZS1jbGljay1vbi1zZWxlY3Rpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbml0aWFsLWZvY3VzL2luaXRpYWwtZm9jdXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vaW5pdGlhbC1mb2N1cy9pbml0aWFsLWZvY3VzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyc2VjdGlvbi1zcHkvaW50ZXJzZWN0aW9uLXNweS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLWNsYW1wL2xpbmUtY2xhbXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGluZS1jbGFtcC9saW5lLWNsYW1wLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL29ubHktZGlnaXRzL29ubHktZGlnaXRzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL29ubHktZGlnaXRzL29ubHktZGlnaXRzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJmbG93LWxpc3Qvb3ZlcmZsb3ctbGlzdC1pdGVtLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJmbG93LWxpc3Qvb3ZlcmZsb3ctbGlzdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9vdmVyZmxvdy1saXN0L292ZXJmbG93LWxpc3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhZG9ubHknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBlYXQvcmVwZWF0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlcGVhdC9yZXBlYXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzaXplLW9ic2VydmVyJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzaXplL3Jlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzaXplL3Jlc2l6ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNpemUvcmVzaXplLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGFibGUtbGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlL3RlbXBsYXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3RydW5jYXRlL3RydW5jYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RydW5jYXRlL3RydW5jYXRlLm1vZHVsZSc7XG4iXX0=
@@ -1,99 +0,0 @@
1
- import { DestroyRef, Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { BehaviorSubject } from 'rxjs';
4
- import { distinctUntilChanged, filter, take } from 'rxjs/operators';
5
- import { TabbableElementService } from '../../services/tabbable-element.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../services/tabbable-element.service";
8
- export class InitialFocusDirective {
9
- /**
10
- * Whether initial focus enabled for a current element.
11
- */
12
- set enabled(value) {
13
- if (value === this.enabled) {
14
- return;
15
- }
16
- this._enabled$.next(value);
17
- }
18
- get enabled() {
19
- return this._enabled$.getValue();
20
- }
21
- /** @hidden */
22
- constructor(_elmRef, _ngZone, _tabbableService) {
23
- this._elmRef = _elmRef;
24
- this._ngZone = _ngZone;
25
- this._tabbableService = _tabbableService;
26
- /**
27
- * CSS selector of an element that should be focused.
28
- */
29
- this.fdkInitialFocus = '.fd-initial-focus-item';
30
- /**
31
- * Whether to focus last element in a found array of elements.
32
- */
33
- this.focusLastElement = false;
34
- /** @hidden */
35
- this._destroyRef = inject(DestroyRef);
36
- /** @hidden */
37
- this._enabled$ = new BehaviorSubject(true);
38
- }
39
- /** @hidden */
40
- ngAfterViewInit() {
41
- this._enabled$
42
- .pipe(distinctUntilChanged(), filter((enabled) => enabled), takeUntilDestroyed(this._destroyRef))
43
- .subscribe(() => {
44
- this._executeOnEmpty(() => this._focus());
45
- });
46
- }
47
- /**
48
- * @hidden
49
- * Executes a function when the zone is stable.
50
- */
51
- _executeOnEmpty(fn) {
52
- if (!this._ngZone.hasPendingMicrotasks) {
53
- fn();
54
- }
55
- else {
56
- this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(fn);
57
- }
58
- }
59
- /**
60
- * @hidden
61
- * Searches for an appropriate focusable element
62
- */
63
- _getFocusableElement() {
64
- if (!this.fdkInitialFocus) {
65
- return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);
66
- }
67
- const autoFocusableItems = this._elmRef.nativeElement.querySelectorAll(this.fdkInitialFocus);
68
- if (autoFocusableItems.length > 0) {
69
- return !this.focusLastElement ? autoFocusableItems[0] : autoFocusableItems[autoFocusableItems.length - 1];
70
- }
71
- // If no elements found, fallback to a first tabbable element.
72
- return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);
73
- }
74
- /** @hidden */
75
- _focus() {
76
- if (!this.enabled) {
77
- return;
78
- }
79
- const elm = this._getFocusableElement();
80
- elm?.focus();
81
- }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: InitialFocusDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.TabbableElementService }], target: i0.ɵɵFactoryTarget.Directive }); }
83
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: InitialFocusDirective, isStandalone: true, selector: "[fdkInitialFocus]", inputs: { fdkInitialFocus: "fdkInitialFocus", enabled: "enabled", focusLastElement: "focusLastElement" }, providers: [TabbableElementService], ngImport: i0 }); }
84
- }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: InitialFocusDirective, decorators: [{
86
- type: Directive,
87
- args: [{
88
- selector: '[fdkInitialFocus]',
89
- standalone: true,
90
- providers: [TabbableElementService]
91
- }]
92
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.TabbableElementService }], propDecorators: { fdkInitialFocus: [{
93
- type: Input
94
- }], enabled: [{
95
- type: Input
96
- }], focusLastElement: [{
97
- type: Input
98
- }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1mb2N1cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2luaXRpYWwtZm9jdXMvaW5pdGlhbC1mb2N1cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQU9qRixNQUFNLE9BQU8scUJBQXFCO0lBTzlCOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN0QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFjRCxjQUFjO0lBQ2QsWUFDWSxPQUFnQyxFQUNoQyxPQUFlLEVBQ04sZ0JBQXdDO1FBRmpELFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDTixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO1FBckM3RDs7V0FFRztRQUVILG9CQUFlLEdBQUcsd0JBQXdCLENBQUM7UUFpQjNDOztXQUVHO1FBRUgscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLGNBQWM7UUFDRyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRCxjQUFjO1FBQ0csY0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO0lBTzdELENBQUM7SUFFSixjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxTQUFTO2FBQ1QsSUFBSSxDQUNELG9CQUFvQixFQUFFLEVBQ3RCLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQzVCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDdkM7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7O09BR0c7SUFDSyxlQUFlLENBQUMsRUFBYTtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3JDLEVBQUUsRUFBRSxDQUFDO1FBQ1QsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxvQkFBb0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RyxDQUFDO1FBRUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDbEUsSUFBSSxDQUFDLGVBQWUsQ0FDSSxDQUFDO1FBRTdCLElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUcsQ0FBQztRQUVELDhEQUE4RDtRQUM5RCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsY0FBYztJQUNOLE1BQU07UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDeEMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7OEdBOUZRLHFCQUFxQjtrR0FBckIscUJBQXFCLDBLQUZuQixDQUFDLHNCQUFzQixDQUFDOzsyRkFFMUIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDdEM7eUlBTUcsZUFBZTtzQkFEZCxLQUFLO2dCQU9GLE9BQU87c0JBRFYsS0FBSztnQkFnQk4sZ0JBQWdCO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFiYmFibGVFbGVtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYmJhYmxlLWVsZW1lbnQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0luaXRpYWxGb2N1c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbVGFiYmFibGVFbGVtZW50U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgSW5pdGlhbEZvY3VzRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICogQ1NTIHNlbGVjdG9yIG9mIGFuIGVsZW1lbnQgdGhhdCBzaG91bGQgYmUgZm9jdXNlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZka0luaXRpYWxGb2N1cyA9ICcuZmQtaW5pdGlhbC1mb2N1cy1pdGVtJztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgaW5pdGlhbCBmb2N1cyBlbmFibGVkIGZvciBhIGN1cnJlbnQgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBlbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5lbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZW5hYmxlZCQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbmFibGVkJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZm9jdXMgbGFzdCBlbGVtZW50IGluIGEgZm91bmQgYXJyYXkgb2YgZWxlbWVudHMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmb2N1c0xhc3RFbGVtZW50ID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VuYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsbVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJiYWJsZVNlcnZpY2U6IFRhYmJhYmxlRWxlbWVudFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZW5hYmxlZCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChlbmFibGVkKSA9PiBlbmFibGVkKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGVPbkVtcHR5KCgpID0+IHRoaXMuX2ZvY3VzKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEV4ZWN1dGVzIGEgZnVuY3Rpb24gd2hlbiB0aGUgem9uZSBpcyBzdGFibGUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZXhlY3V0ZU9uRW1wdHkoZm46ICgpID0+IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX25nWm9uZS5oYXNQZW5kaW5nTWljcm90YXNrcykge1xuICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX25nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBTZWFyY2hlcyBmb3IgYW4gYXBwcm9wcmlhdGUgZm9jdXNhYmxlIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5mZGtJbml0aWFsRm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90YWJiYWJsZVNlcnZpY2UuZ2V0VGFiYmFibGVFbGVtZW50KHRoaXMuX2VsbVJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmZvY3VzTGFzdEVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXV0b0ZvY3VzYWJsZUl0ZW1zID0gdGhpcy5fZWxtUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgIHRoaXMuZmRrSW5pdGlhbEZvY3VzXG4gICAgICAgICkgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD47XG5cbiAgICAgICAgaWYgKGF1dG9Gb2N1c2FibGVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuZm9jdXNMYXN0RWxlbWVudCA/IGF1dG9Gb2N1c2FibGVJdGVtc1swXSA6IGF1dG9Gb2N1c2FibGVJdGVtc1thdXRvRm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBubyBlbGVtZW50cyBmb3VuZCwgZmFsbGJhY2sgdG8gYSBmaXJzdCB0YWJiYWJsZSBlbGVtZW50LlxuICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmFibGVTZXJ2aWNlLmdldFRhYmJhYmxlRWxlbWVudCh0aGlzLl9lbG1SZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c0xhc3RFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVsbSA9IHRoaXMuX2dldEZvY3VzYWJsZUVsZW1lbnQoKTtcbiAgICAgICAgZWxtPy5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { InitialFocusDirective } from './initial-focus.directive';
3
- import * as i0 from "@angular/core";
4
- export class InitialFocusModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: InitialFocusModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: InitialFocusModule, imports: [InitialFocusDirective], exports: [InitialFocusDirective] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: InitialFocusModule }); }
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: InitialFocusModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- imports: [InitialFocusDirective],
13
- exports: [InitialFocusDirective]
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1mb2N1cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2luaXRpYWwtZm9jdXMvaW5pdGlhbC1mb2N1cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFNbEUsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsWUFIakIscUJBQXFCLGFBQ3JCLHFCQUFxQjsrR0FFdEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5pdGlhbEZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9pbml0aWFsLWZvY3VzLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0luaXRpYWxGb2N1c0RpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0luaXRpYWxGb2N1c0RpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgSW5pdGlhbEZvY3VzTW9kdWxlIHt9XG4iXX0=
@@ -1,42 +0,0 @@
1
- import { DestroyRef, Directive, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { map } from 'rxjs';
4
- import { intersectionObservable } from '../../functions';
5
- import * as i0 from "@angular/core";
6
- export class IntersectionSpyDirective {
7
- constructor() {
8
- /** Intersection offset in px. */
9
- this.offset = 20;
10
- /** Event emitted when intersection observer emits with the current element. */
11
- this.intersected = new EventEmitter();
12
- /** @hidden */
13
- this._destroyRef = inject(DestroyRef);
14
- /** @hidden */
15
- this._elementRef = inject(ElementRef);
16
- }
17
- /** @hidden */
18
- ngOnInit() {
19
- intersectionObservable(this._elementRef.nativeElement, this.viewportOptions)
20
- .pipe(map((entries) => entries[0]), takeUntilDestroyed(this._destroyRef))
21
- .subscribe((entry) => {
22
- this.intersected.emit(entry.isIntersecting);
23
- });
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IntersectionSpyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: IntersectionSpyDirective, isStandalone: true, selector: "[fdkIntersectionSpy]", inputs: { offset: ["fdkIntersectionSpy", "offset"], viewportOptions: "viewportOptions" }, outputs: { intersected: "intersected" }, ngImport: i0 }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IntersectionSpyDirective, decorators: [{
29
- type: Directive,
30
- args: [{
31
- selector: '[fdkIntersectionSpy]',
32
- standalone: true
33
- }]
34
- }], propDecorators: { offset: [{
35
- type: Input,
36
- args: ['fdkIntersectionSpy']
37
- }], viewportOptions: [{
38
- type: Input
39
- }], intersected: [{
40
- type: Output
41
- }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJzZWN0aW9uLXNweS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2ludGVyc2VjdGlvbi1zcHkvaW50ZXJzZWN0aW9uLXNweS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU16RCxNQUFNLE9BQU8sd0JBQXdCO0lBSnJDO1FBS0ksaUNBQWlDO1FBRWpDLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFLWiwrRUFBK0U7UUFFL0UsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTFDLGNBQWM7UUFDRyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRCxjQUFjO1FBQ0csZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FhckQ7SUFYRyxjQUFjO0lBQ2QsUUFBUTtRQUNKLHNCQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDdkUsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDdkM7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQTVCUSx3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBSUcsTUFBTTtzQkFETCxLQUFLO3VCQUFDLG9CQUFvQjtnQkFJM0IsZUFBZTtzQkFEZCxLQUFLO2dCQUtOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbnRlcnNlY3Rpb25PYnNlcnZhYmxlIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrSW50ZXJzZWN0aW9uU3B5XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcnNlY3Rpb25TcHlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKiBJbnRlcnNlY3Rpb24gb2Zmc2V0IGluIHB4LiAqL1xuICAgIEBJbnB1dCgnZmRrSW50ZXJzZWN0aW9uU3B5JylcbiAgICBvZmZzZXQgPSAyMDtcbiAgICAvKiogSW50ZXJzZWN0aW9uIG9ic2VydmVyIG9wdGlvbnMuICovXG4gICAgQElucHV0KClcbiAgICB2aWV3cG9ydE9wdGlvbnM6IEludGVyc2VjdGlvbk9ic2VydmVySW5pdDtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gaW50ZXJzZWN0aW9uIG9ic2VydmVyIGVtaXRzIHdpdGggdGhlIGN1cnJlbnQgZWxlbWVudC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBpbnRlcnNlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGludGVyc2VjdGlvbk9ic2VydmFibGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnZpZXdwb3J0T3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoZW50cmllcykgPT4gZW50cmllc1swXSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJzZWN0ZWQuZW1pdChlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,213 +0,0 @@
1
- import { coerceNumberProperty } from '@angular/cdk/coercion';
2
- import { DestroyRef, Directive, ElementRef, EventEmitter, inject, Input, Output, Renderer2 } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
- import { ViewportSizeObservable } from '../../tokens/viewport-size.observable';
6
- import * as i0 from "@angular/core";
7
- export class LineClampTargetDirective {
8
- /** @hidden */
9
- constructor(_elementRef) {
10
- this._elementRef = _elementRef;
11
- /**
12
- * Event with target instance for clamping
13
- */
14
- this.update = new EventEmitter();
15
- }
16
- /**
17
- * Native element of clamping target
18
- */
19
- get targetElement() {
20
- return this._elementRef.nativeElement;
21
- }
22
- /** @hidden */
23
- ngOnChanges() {
24
- this.update.emit(this);
25
- }
26
- /** @hidden */
27
- ngAfterViewInit() {
28
- this.update.emit(this);
29
- }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LineClampTargetDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: LineClampTargetDirective, isStandalone: true, selector: "[fdkLineClampTarget], [fdLineClampTarget], [fd-lineclamp-target]", inputs: { fdLineClampTargetText: "fdLineClampTargetText" }, outputs: { update: "update" }, exportAs: ["fdLineClampTarget"], usesOnChanges: true, ngImport: i0 }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LineClampTargetDirective, decorators: [{
34
- type: Directive,
35
- args: [{
36
- selector: '[fdkLineClampTarget], [fdLineClampTarget], [fd-lineclamp-target]',
37
- exportAs: 'fdLineClampTarget',
38
- standalone: true
39
- }]
40
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { fdLineClampTargetText: [{
41
- type: Input
42
- }], update: [{
43
- type: Output
44
- }] } });
45
- export class LineClampDirective {
46
- /**
47
- * Count lines for clamping
48
- */
49
- set fdLineClampLines(value) {
50
- this._lineCount = coerceNumberProperty(value);
51
- }
52
- /** @hidden */
53
- /**
54
- * Root native element of clamping box
55
- */
56
- get rootElement() {
57
- return this._elementRef.nativeElement;
58
- }
59
- /** @hidden */
60
- constructor(_elementRef, _renderer) {
61
- this._elementRef = _elementRef;
62
- this._renderer = _renderer;
63
- /**
64
- * Clamping state
65
- */
66
- this.fdLineclampState = false;
67
- /**
68
- * Event return count of lines from the target
69
- */
70
- this.lineCountUpdate = new EventEmitter();
71
- /** @hidden */
72
- this._isNativeSupport = true;
73
- /** @hidden */
74
- this.viewportSize$ = inject(ViewportSizeObservable);
75
- /** @hidden */
76
- this._destroyRef = inject(DestroyRef);
77
- }
78
- /** @hidden */
79
- ngAfterViewInit() {
80
- this._isNativeSupport = typeof this.rootElement.style.webkitLineClamp !== 'undefined';
81
- // need to use setTimeout to force recheck of parent elements
82
- setTimeout(() => {
83
- this._checkLineCount();
84
- });
85
- this.viewportSize$
86
- .pipe(distinctUntilChanged(), debounceTime(200), takeUntilDestroyed(this._destroyRef))
87
- .subscribe({
88
- next: () => this._checkLineCount()
89
- });
90
- }
91
- /** @hidden */
92
- ngOnChanges() {
93
- this.reset();
94
- this.refreshClamp();
95
- }
96
- /** @hidden */
97
- reset() {
98
- if (this._lineClampTarget) {
99
- this._lineClampTarget.textContent = this._originalText;
100
- }
101
- if (this._isNativeSupport) {
102
- this._resetNative();
103
- }
104
- }
105
- /** @hidden */
106
- refreshTarget(event) {
107
- this._lineClampTarget = event.targetElement;
108
- this._originalText = event.fdLineClampTargetText;
109
- this._checkLineCount();
110
- }
111
- /** @hidden */
112
- refreshClamp() {
113
- if (this.fdLineclampState && this._lineCount) {
114
- this.native();
115
- if (!this._isNativeSupport) {
116
- this._truncate();
117
- }
118
- }
119
- }
120
- /** @hidden
121
- * Truncate text in the target box, if browser not support lineclamp style
122
- */
123
- _truncate() {
124
- if (!this._lineClampTarget) {
125
- return;
126
- }
127
- const lineClampHeight = Math.ceil(this.getLineHeight() * this._lineCount);
128
- const ellipsisTextArray = this._originalText.split(' ');
129
- const ellipsisText = () => {
130
- if (this.rootElement.scrollHeight > lineClampHeight) {
131
- ellipsisTextArray.pop();
132
- this._lineClampTarget.textContent = ellipsisTextArray.join(' ') + '...';
133
- ellipsisText.call(this);
134
- }
135
- };
136
- ellipsisText();
137
- }
138
- /** @hidden
139
- * Get lineheight for rootelement, if browser not support lineclamp style
140
- */
141
- getLineHeight() {
142
- const lineHeight = window.getComputedStyle(this.rootElement, null).getPropertyValue('line-height');
143
- if (lineHeight === 'normal') {
144
- return parseInt(window.getComputedStyle(this.rootElement, null).getPropertyValue('font-size'), 10) * 1.25;
145
- }
146
- return parseFloat(lineHeight);
147
- }
148
- /** @hidden
149
- * Setup native styles for lineclamp text
150
- */
151
- native() {
152
- if (this._isNativeSupport) {
153
- this._renderer.setStyle(this.rootElement, 'display', '-webkit-box');
154
- this._renderer.setStyle(this.rootElement, 'overflow', 'hidden');
155
- this._renderer.setStyle(this.rootElement, 'text-overflow', 'ellipsis');
156
- this._renderer.setStyle(this.rootElement, '-webkit-box-orient', 'vertical');
157
- this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', `${this._lineCount}`);
158
- }
159
- }
160
- /** @hidden
161
- * Reset native styles for lineclamp text
162
- */
163
- _resetNative() {
164
- if (this._isNativeSupport) {
165
- this._renderer.setStyle(this.rootElement, 'display', '');
166
- this._renderer.setStyle(this.rootElement, 'overflow', '');
167
- this._renderer.setStyle(this.rootElement, 'text-overflow', '');
168
- this._renderer.setStyle(this.rootElement, '-webkit-box-orient', '');
169
- this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', '');
170
- }
171
- }
172
- /** @hidden */
173
- _checkLineCount() {
174
- if (!this.rootElement) {
175
- return;
176
- }
177
- const style = window.getComputedStyle(this.rootElement, null);
178
- this.reset();
179
- const fontSize = parseInt(style.getPropertyValue('font-size'), 10);
180
- const boxSizing = style.getPropertyValue('box-sizing');
181
- let height = parseInt(style.getPropertyValue('height'), 10);
182
- let lineHeight = parseFloat(style.getPropertyValue('line-height'));
183
- if (isNaN(lineHeight)) {
184
- lineHeight = fontSize * 1.2;
185
- }
186
- if (boxSizing === 'border-box') {
187
- const padding_top = parseInt(style.getPropertyValue('padding-top'), 10);
188
- const padding_bottom = parseInt(style.getPropertyValue('padding-bottom'), 10);
189
- const border_top = parseInt(style.getPropertyValue('border-top-width'), 10);
190
- const border_bottom = parseInt(style.getPropertyValue('border-bottom-width'), 10);
191
- height = height - padding_top - padding_bottom - border_top - border_bottom;
192
- }
193
- this.refreshClamp();
194
- this.lineCountUpdate.emit(Math.ceil(height / lineHeight));
195
- }
196
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LineClampDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
197
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: LineClampDirective, isStandalone: true, selector: "[fdkLineClamp]", inputs: { fdLineClampLines: "fdLineClampLines", fdLineclampState: "fdLineclampState" }, outputs: { lineCountUpdate: "lineCountUpdate" }, exportAs: ["fdLineClamp"], usesOnChanges: true, ngImport: i0 }); }
198
- }
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LineClampDirective, decorators: [{
200
- type: Directive,
201
- args: [{
202
- selector: '[fdkLineClamp]',
203
- exportAs: 'fdLineClamp',
204
- standalone: true
205
- }]
206
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { fdLineClampLines: [{
207
- type: Input
208
- }], fdLineclampState: [{
209
- type: Input
210
- }], lineCountUpdate: [{
211
- type: Output
212
- }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2xpbmUtY2xhbXAvbGluZS1jbGFtcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUVILFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQU8vRSxNQUFNLE9BQU8sd0JBQXdCO0lBWWpDLGNBQWM7SUFDZCxZQUE2QixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQU5wRDs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztJQUdULENBQUM7SUFFeEQ7O09BRUc7SUFDSCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQzFDLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBOUJRLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdC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QUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RSxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEYsTUFBTSxHQUFHLE1BQU0sR0FBRyxXQUFXLEdBQUcsY0FBYyxHQUFHLFVBQVUsR0FBRyxhQUFhLENBQUM7UUFDaEYsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7OEdBdkxRLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7dUdBTU8sZ0JBQWdCO3NCQURuQixLQUFLO2dCQVNOLGdCQUFnQjtzQkFEZixLQUFLO2dCQU9OLGVBQWU7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHsgVmlld3BvcnRTaXplT2JzZXJ2YWJsZSB9IGZyb20gJy4uLy4uL3Rva2Vucy92aWV3cG9ydC1zaXplLm9ic2VydmFibGUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtMaW5lQ2xhbXBUYXJnZXRdLCBbZmRMaW5lQ2xhbXBUYXJnZXRdLCBbZmQtbGluZWNsYW1wLXRhcmdldF0nLFxuICAgIGV4cG9ydEFzOiAnZmRMaW5lQ2xhbXBUYXJnZXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTGluZUNsYW1wVGFyZ2V0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBUYXJnZXQgdGV4dCBmb3IgY2xhbXBpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZkTGluZUNsYW1wVGFyZ2V0VGV4dDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2l0aCB0YXJnZXQgaW5zdGFuY2UgZm9yIGNsYW1waW5nXG4gICAgICovXG4gICAgQE91dHB1dCgpIHVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8TGluZUNsYW1wVGFyZ2V0RGlyZWN0aXZlPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqXG4gICAgICogTmF0aXZlIGVsZW1lbnQgb2YgY2xhbXBpbmcgdGFyZ2V0XG4gICAgICovXG4gICAgZ2V0IHRhcmdldEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlLmVtaXQodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlLmVtaXQodGhpcyk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtMaW5lQ2xhbXBdJyxcbiAgICBleHBvcnRBczogJ2ZkTGluZUNsYW1wJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExpbmVDbGFtcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICogQ291bnQgbGluZXMgZm9yIGNsYW1waW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZmRMaW5lQ2xhbXBMaW5lcyh2YWx1ZTogTnVsbGFibGU8bnVtYmVyPikge1xuICAgICAgICB0aGlzLl9saW5lQ291bnQgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xhbXBpbmcgc3RhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZkTGluZWNsYW1wU3RhdGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IHJldHVybiBjb3VudCBvZiBsaW5lcyBmcm9tIHRoZSB0YXJnZXRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBsaW5lQ291bnRVcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGluZUNsYW1wVGFyZ2V0OiBIVE1MRWxlbWVudDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29yaWdpbmFsVGV4dDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc05hdGl2ZVN1cHBvcnQgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saW5lQ291bnQ6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSB2aWV3cG9ydFNpemUkID0gaW5qZWN0KFZpZXdwb3J0U2l6ZU9ic2VydmFibGUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICAvKipcbiAgICAgKiBSb290IG5hdGl2ZSBlbGVtZW50IG9mIGNsYW1waW5nIGJveFxuICAgICAqL1xuICAgIGdldCByb290RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc05hdGl2ZVN1cHBvcnQgPSB0eXBlb2YgdGhpcy5yb290RWxlbWVudC5zdHlsZS53ZWJraXRMaW5lQ2xhbXAgIT09ICd1bmRlZmluZWQnO1xuXG4gICAgICAgIC8vIG5lZWQgdG8gdXNlIHNldFRpbWVvdXQgdG8gZm9yY2UgcmVjaGVjayBvZiBwYXJlbnQgZWxlbWVudHNcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja0xpbmVDb3VudCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnZpZXdwb3J0U2l6ZSRcbiAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIGRlYm91bmNlVGltZSgyMDApLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLl9jaGVja0xpbmVDb3VudCgpXG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIHRoaXMucmVmcmVzaENsYW1wKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2xpbmVDbGFtcFRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5fbGluZUNsYW1wVGFyZ2V0LnRleHRDb250ZW50ID0gdGhpcy5fb3JpZ2luYWxUZXh0O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pc05hdGl2ZVN1cHBvcnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0TmF0aXZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZnJlc2hUYXJnZXQoZXZlbnQ6IExpbmVDbGFtcFRhcmdldERpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saW5lQ2xhbXBUYXJnZXQgPSBldmVudC50YXJnZXRFbGVtZW50O1xuICAgICAgICB0aGlzLl9vcmlnaW5hbFRleHQgPSBldmVudC5mZExpbmVDbGFtcFRhcmdldFRleHQ7XG4gICAgICAgIHRoaXMuX2NoZWNrTGluZUNvdW50KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWZyZXNoQ2xhbXAoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZkTGluZWNsYW1wU3RhdGUgJiYgdGhpcy5fbGluZUNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pc05hdGl2ZVN1cHBvcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90cnVuY2F0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBUcnVuY2F0ZSB0ZXh0IGluIHRoZSB0YXJnZXQgYm94LCBpZiBicm93c2VyIG5vdCBzdXBwb3J0IGxpbmVjbGFtcCBzdHlsZVxuICAgICAqL1xuICAgIHByaXZhdGUgX3RydW5jYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2xpbmVDbGFtcFRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpbmVDbGFtcEhlaWdodCA9IE1hdGguY2VpbCh0aGlzLmdldExpbmVIZWlnaHQoKSAqIHRoaXMuX2xpbmVDb3VudCk7XG4gICAgICAgIGNvbnN0IGVsbGlwc2lzVGV4dEFycmF5ID0gdGhpcy5fb3JpZ2luYWxUZXh0LnNwbGl0KCcgJyk7XG4gICAgICAgIGNvbnN0IGVsbGlwc2lzVGV4dCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvb3RFbGVtZW50LnNjcm9sbEhlaWdodCA+IGxpbmVDbGFtcEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGVsbGlwc2lzVGV4dEFycmF5LnBvcCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpbmVDbGFtcFRhcmdldC50ZXh0Q29udGVudCA9IGVsbGlwc2lzVGV4dEFycmF5LmpvaW4oJyAnKSArICcuLi4nO1xuICAgICAgICAgICAgICAgIGVsbGlwc2lzVGV4dC5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBlbGxpcHNpc1RleHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIEdldCBsaW5laGVpZ2h0IGZvciByb290ZWxlbWVudCwgaWYgYnJvd3NlciBub3Qgc3VwcG9ydCBsaW5lY2xhbXAgc3R5bGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldExpbmVIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0Jyk7XG4gICAgICAgIGlmIChsaW5lSGVpZ2h0ID09PSAnbm9ybWFsJykge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtc2l6ZScpLCAxMCkgKiAxLjI1O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQobGluZUhlaWdodCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBTZXR1cCBuYXRpdmUgc3R5bGVzIGZvciBsaW5lY2xhbXAgdGV4dFxuICAgICAqL1xuICAgIHByaXZhdGUgbmF0aXZlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNOYXRpdmVTdXBwb3J0KSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJvb3RFbGVtZW50LCAnZGlzcGxheScsICctd2Via2l0LWJveCcpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJ3RleHQtb3ZlcmZsb3cnLCAnZWxsaXBzaXMnKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsICctd2Via2l0LWJveC1vcmllbnQnLCAndmVydGljYWwnKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsICctd2Via2l0LWxpbmUtY2xhbXAnLCBgJHt0aGlzLl9saW5lQ291bnR9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFJlc2V0IG5hdGl2ZSBzdHlsZXMgZm9yIGxpbmVjbGFtcCB0ZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVzZXROYXRpdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc05hdGl2ZVN1cHBvcnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsICdkaXNwbGF5JywgJycpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJ292ZXJmbG93JywgJycpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJ3RleHQtb3ZlcmZsb3cnLCAnJyk7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJvb3RFbGVtZW50LCAnLXdlYmtpdC1ib3gtb3JpZW50JywgJycpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJy13ZWJraXQtbGluZS1jbGFtcCcsICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tMaW5lQ291bnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5yb290RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yb290RWxlbWVudCwgbnVsbCk7XG5cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuXG4gICAgICAgIGNvbnN0IGZvbnRTaXplID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJyksIDEwKTtcbiAgICAgICAgY29uc3QgYm94U2l6aW5nID0gc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm94LXNpemluZycpO1xuICAgICAgICBsZXQgaGVpZ2h0ID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnaGVpZ2h0JyksIDEwKTtcbiAgICAgICAgbGV0IGxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0JykpO1xuICAgICAgICBpZiAoaXNOYU4obGluZUhlaWdodCkpIHtcbiAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBmb250U2l6ZSAqIDEuMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYm94U2l6aW5nID09PSAnYm9yZGVyLWJveCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZGRpbmdfdG9wID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy10b3AnKSwgMTApO1xuICAgICAgICAgICAgY29uc3QgcGFkZGluZ19ib3R0b20gPSBwYXJzZUludChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpLCAxMCk7XG4gICAgICAgICAgICBjb25zdCBib3JkZXJfdG9wID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcC13aWR0aCcpLCAxMCk7XG4gICAgICAgICAgICBjb25zdCBib3JkZXJfYm90dG9tID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLWJvdHRvbS13aWR0aCcpLCAxMCk7XG4gICAgICAgICAgICBoZWlnaHQgPSBoZWlnaHQgLSBwYWRkaW5nX3RvcCAtIHBhZGRpbmdfYm90dG9tIC0gYm9yZGVyX3RvcCAtIGJvcmRlcl9ib3R0b207XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWZyZXNoQ2xhbXAoKTtcbiAgICAgICAgdGhpcy5saW5lQ291bnRVcGRhdGUuZW1pdChNYXRoLmNlaWwoaGVpZ2h0IC8gbGluZUhlaWdodCkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { LineClampDirective, LineClampTargetDirective } from './line-clamp.directive';
3
- import * as i0 from "@angular/core";
4
- export class LineClampModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LineClampModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: LineClampModule, imports: [LineClampTargetDirective, LineClampDirective], exports: [LineClampTargetDirective, LineClampDirective] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LineClampModule }); }
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LineClampModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- imports: [LineClampTargetDirective, LineClampDirective],
13
- exports: [LineClampTargetDirective, LineClampDirective]
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2xpbmUtY2xhbXAvbGluZS1jbGFtcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFNdEYsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLFlBSGQsd0JBQXdCLEVBQUUsa0JBQWtCLGFBQzVDLHdCQUF3QixFQUFFLGtCQUFrQjsrR0FFN0MsZUFBZTs7MkZBQWYsZUFBZTtrQkFKM0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxrQkFBa0IsQ0FBQztvQkFDdkQsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsa0JBQWtCLENBQUM7aUJBQzFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGluZUNsYW1wRGlyZWN0aXZlLCBMaW5lQ2xhbXBUYXJnZXREaXJlY3RpdmUgfSBmcm9tICcuL2xpbmUtY2xhbXAuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbTGluZUNsYW1wVGFyZ2V0RGlyZWN0aXZlLCBMaW5lQ2xhbXBEaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtMaW5lQ2xhbXBUYXJnZXREaXJlY3RpdmUsIExpbmVDbGFtcERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgTGluZUNsYW1wTW9kdWxlIHt9XG4iXX0=