@fundamental-ngx/cdk 0.38.3-rc.4

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 (399) hide show
  1. package/README.md +89 -0
  2. package/data-source/README.md +7 -0
  3. package/data-source/base/abstract-data-provider.class.d.ts +43 -0
  4. package/data-source/base/base-data-source.class.d.ts +57 -0
  5. package/data-source/data-source.directive.d.ts +47 -0
  6. package/data-source/data-source.module.d.ts +7 -0
  7. package/data-source/helpers/apply-datasource-directive.d.ts +6 -0
  8. package/data-source/helpers/common.d.ts +7 -0
  9. package/data-source/helpers/is-datasource.d.ts +5 -0
  10. package/data-source/index.d.ts +8 -0
  11. package/data-source/models/data-source-provider.d.ts +23 -0
  12. package/data-source/models/data-source.d.ts +16 -0
  13. package/data-source/models/index.d.ts +3 -0
  14. package/data-source/models/matching-strategy.d.ts +10 -0
  15. package/data-source/tokens.d.ts +6 -0
  16. package/esm2020/data-source/base/abstract-data-provider.class.mjs +126 -0
  17. package/esm2020/data-source/base/base-data-source.class.mjs +99 -0
  18. package/esm2020/data-source/data-source.directive.mjs +96 -0
  19. package/esm2020/data-source/data-source.module.mjs +16 -0
  20. package/esm2020/data-source/fundamental-ngx-cdk-data-source.mjs +5 -0
  21. package/esm2020/data-source/helpers/apply-datasource-directive.mjs +7 -0
  22. package/esm2020/data-source/helpers/common.mjs +17 -0
  23. package/esm2020/data-source/helpers/is-datasource.mjs +7 -0
  24. package/esm2020/data-source/index.mjs +9 -0
  25. package/esm2020/data-source/models/data-source-provider.mjs +2 -0
  26. package/esm2020/data-source/models/data-source.mjs +2 -0
  27. package/esm2020/data-source/models/index.mjs +4 -0
  28. package/esm2020/data-source/models/matching-strategy.mjs +7 -0
  29. package/esm2020/data-source/tokens.mjs +6 -0
  30. package/esm2020/forms/cva/cva-control.class.mjs +43 -0
  31. package/esm2020/forms/cva/cva.directive.mjs +309 -0
  32. package/esm2020/forms/forms.module.mjs +16 -0
  33. package/esm2020/forms/fundamental-ngx-cdk-forms.mjs +5 -0
  34. package/esm2020/forms/helpers/state.mjs +6 -0
  35. package/esm2020/forms/index.mjs +13 -0
  36. package/esm2020/forms/models/cva.mjs +2 -0
  37. package/esm2020/forms/models/form-error.mjs +2 -0
  38. package/esm2020/forms/models/form-field-control.mjs +2 -0
  39. package/esm2020/forms/models/form-field.mjs +9 -0
  40. package/esm2020/forms/models/form-state.mjs +2 -0
  41. package/esm2020/forms/models/select-item.mjs +14 -0
  42. package/esm2020/forms/tokens/form-field-control.token.mjs +3 -0
  43. package/esm2020/forms/tokens/form-field.token.mjs +3 -0
  44. package/esm2020/fundamental-ngx-cdk.mjs +5 -0
  45. package/esm2020/fundamental-ngx.module.mjs +19 -0
  46. package/esm2020/public_api.mjs +5 -0
  47. package/esm2020/utils/abstract-fd-ngx-class.mjs +56 -0
  48. package/esm2020/utils/coercion/array.mjs +7 -0
  49. package/esm2020/utils/consts/error-messages.mjs +6 -0
  50. package/esm2020/utils/consts/index.mjs +5 -0
  51. package/esm2020/utils/consts/overflow-priority-score.mjs +8 -0
  52. package/esm2020/utils/consts/unicode-letters.regex.mjs +11 -0
  53. package/esm2020/utils/consts/unicode-numbers.regex.mjs +8 -0
  54. package/esm2020/utils/datatypes/color-accent.datatype.mjs +2 -0
  55. package/esm2020/utils/datatypes/hash.datatype.mjs +2 -0
  56. package/esm2020/utils/datatypes/index.mjs +4 -0
  57. package/esm2020/utils/datatypes/size.datatype.mjs +2 -0
  58. package/esm2020/utils/decorators/apply-css-class.decorator.mjs +60 -0
  59. package/esm2020/utils/decorators/apply-css-style.decorator.mjs +28 -0
  60. package/esm2020/utils/decorators/coerce-boolean.mjs +7 -0
  61. package/esm2020/utils/decorators/coerce-css-pixel.mjs +4 -0
  62. package/esm2020/utils/decorators/index.mjs +6 -0
  63. package/esm2020/utils/decorators/setter-alternator.mjs +18 -0
  64. package/esm2020/utils/deprecated-selector.class.mjs +20 -0
  65. package/esm2020/utils/directives/auto-complete/auto-complete.directive.mjs +136 -0
  66. package/esm2020/utils/directives/auto-complete/auto-complete.module.mjs +17 -0
  67. package/esm2020/utils/directives/clicked/clicked-behavior.module.mjs +45 -0
  68. package/esm2020/utils/directives/clicked/clicked-event.plugin.mjs +74 -0
  69. package/esm2020/utils/directives/clicked/clicked.directive.mjs +52 -0
  70. package/esm2020/utils/directives/clicked/fdk-clicked-provider.service.mjs +49 -0
  71. package/esm2020/utils/directives/clicked/index.mjs +4 -0
  72. package/esm2020/utils/directives/disabled/default-disabled-view-modifier.mjs +12 -0
  73. package/esm2020/utils/directives/disabled/disabled-behavior.directive.mjs +102 -0
  74. package/esm2020/utils/directives/disabled/disabled-behavior.interface.mjs +2 -0
  75. package/esm2020/utils/directives/disabled/disabled-behavior.module.mjs +16 -0
  76. package/esm2020/utils/directives/disabled/disabled-view-modifier.interface.mjs +2 -0
  77. package/esm2020/utils/directives/disabled/disabled.observer.mjs +35 -0
  78. package/esm2020/utils/directives/disabled/fdk-disabled-provider.service.mjs +101 -0
  79. package/esm2020/utils/directives/disabled/fdk-disabled.token.mjs +3 -0
  80. package/esm2020/utils/directives/disabled/index.mjs +9 -0
  81. package/esm2020/utils/directives/disabled/set-disabled-state.mjs +16 -0
  82. package/esm2020/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +33 -0
  83. package/esm2020/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +98 -0
  84. package/esm2020/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +113 -0
  85. package/esm2020/utils/directives/focus-key-manager/focus-key-manager.tokens.mjs +3 -0
  86. package/esm2020/utils/directives/focus-key-manager/index.mjs +5 -0
  87. package/esm2020/utils/directives/focusable-item/default-focusable-item-view-modifier.mjs +14 -0
  88. package/esm2020/utils/directives/focusable-item/fdk-focusable-item-provider.service.mjs +97 -0
  89. package/esm2020/utils/directives/focusable-item/focusable-item-view-modifier.interface.mjs +2 -0
  90. package/esm2020/utils/directives/focusable-item/focusable-item.directive.mjs +106 -0
  91. package/esm2020/utils/directives/focusable-item/focusable-item.module.mjs +16 -0
  92. package/esm2020/utils/directives/focusable-item/focusable.observer.mjs +47 -0
  93. package/esm2020/utils/directives/focusable-item/focusable.tokens.mjs +3 -0
  94. package/esm2020/utils/directives/focusable-item/index.mjs +9 -0
  95. package/esm2020/utils/directives/focusable-item/is-element-focusable-by-default.mjs +32 -0
  96. package/esm2020/utils/directives/focusable-item/set-focusable.mjs +12 -0
  97. package/esm2020/utils/directives/focusable-list/focusable-list.directive.mjs +79 -0
  98. package/esm2020/utils/directives/focusable-list/focusable-list.module.mjs +17 -0
  99. package/esm2020/utils/directives/focusable-list/focusable-list.service.mjs +54 -0
  100. package/esm2020/utils/directives/focusable-list/index.mjs +4 -0
  101. package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +79 -0
  102. package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +16 -0
  103. package/esm2020/utils/directives/ignore-click-on-selection/tokens.mjs +3 -0
  104. package/esm2020/utils/directives/index.mjs +31 -0
  105. package/esm2020/utils/directives/initial-focus/initial-focus.directive.mjs +117 -0
  106. package/esm2020/utils/directives/initial-focus/initial-focus.module.mjs +16 -0
  107. package/esm2020/utils/directives/line-clamp/line-clamp.directive.mjs +263 -0
  108. package/esm2020/utils/directives/line-clamp/line-clamp.module.mjs +32 -0
  109. package/esm2020/utils/directives/only-digits/only-digits.directive.mjs +218 -0
  110. package/esm2020/utils/directives/only-digits/only-digits.module.mjs +16 -0
  111. package/esm2020/utils/directives/overflow-list/overflow-list-item.directive.mjs +42 -0
  112. package/esm2020/utils/directives/overflow-list/overflow-list.directive.mjs +140 -0
  113. package/esm2020/utils/directives/overflow-list/overflow-list.module.mjs +33 -0
  114. package/esm2020/utils/directives/readonly/default-readonly-view-modifier.mjs +12 -0
  115. package/esm2020/utils/directives/readonly/fdk-readonly-provider.service.mjs +102 -0
  116. package/esm2020/utils/directives/readonly/fdk-readonly.token.mjs +3 -0
  117. package/esm2020/utils/directives/readonly/index.mjs +10 -0
  118. package/esm2020/utils/directives/readonly/readonly-behavior.directive.mjs +97 -0
  119. package/esm2020/utils/directives/readonly/readonly-behavior.interface.mjs +2 -0
  120. package/esm2020/utils/directives/readonly/readonly-behavior.module.mjs +16 -0
  121. package/esm2020/utils/directives/readonly/readonly-view-modifier.interface.mjs +2 -0
  122. package/esm2020/utils/directives/readonly/readonly.observer.mjs +33 -0
  123. package/esm2020/utils/directives/readonly/set-readonly-state.mjs +14 -0
  124. package/esm2020/utils/directives/repeat/repeat.directive.mjs +65 -0
  125. package/esm2020/utils/directives/repeat/repeat.module.mjs +16 -0
  126. package/esm2020/utils/directives/resize/resize-handle.directive.mjs +42 -0
  127. package/esm2020/utils/directives/resize/resize.directive.mjs +231 -0
  128. package/esm2020/utils/directives/resize/resize.module.mjs +17 -0
  129. package/esm2020/utils/directives/selectable-list/index.mjs +8 -0
  130. package/esm2020/utils/directives/selectable-list/select-component-root.token.mjs +3 -0
  131. package/esm2020/utils/directives/selectable-list/selectable-item.directive.mjs +147 -0
  132. package/esm2020/utils/directives/selectable-list/selectable-item.token.mjs +3 -0
  133. package/esm2020/utils/directives/selectable-list/selectable-list.directive.mjs +93 -0
  134. package/esm2020/utils/directives/selectable-list/selectable-list.module.mjs +17 -0
  135. package/esm2020/utils/directives/selectable-list/selectable-list.tokens.mjs +3 -0
  136. package/esm2020/utils/directives/selectable-list/selection.service.mjs +135 -0
  137. package/esm2020/utils/directives/template/template.directive.mjs +49 -0
  138. package/esm2020/utils/directives/template/template.module.mjs +16 -0
  139. package/esm2020/utils/directives/truncate/truncate.directive.mjs +96 -0
  140. package/esm2020/utils/directives/truncate/truncate.module.mjs +16 -0
  141. package/esm2020/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +255 -0
  142. package/esm2020/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +88 -0
  143. package/esm2020/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +83 -0
  144. package/esm2020/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +220 -0
  145. package/esm2020/utils/drag-and-drop/dnd.interfaces.mjs +2 -0
  146. package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +22 -0
  147. package/esm2020/utils/drag-and-drop/index.mjs +8 -0
  148. package/esm2020/utils/drag-and-drop/tokens.mjs +4 -0
  149. package/esm2020/utils/dynamic-component/dynamic-component-config.mjs +2 -0
  150. package/esm2020/utils/dynamic-component/dynamic-component-container.mjs +21 -0
  151. package/esm2020/utils/dynamic-component/dynamic-component-injector.mjs +20 -0
  152. package/esm2020/utils/dynamic-component/dynamic-component.service.mjs +90 -0
  153. package/esm2020/utils/dynamic-component/index.mjs +5 -0
  154. package/esm2020/utils/functions/consumer-provider-factory.mjs +12 -0
  155. package/esm2020/utils/functions/element-size.mjs +23 -0
  156. package/esm2020/utils/functions/get-document-font-size.mjs +5 -0
  157. package/esm2020/utils/functions/index.mjs +13 -0
  158. package/esm2020/utils/functions/intersection-observable.mjs +26 -0
  159. package/esm2020/utils/functions/is-compact-density.mjs +11 -0
  160. package/esm2020/utils/functions/key-util.mjs +77 -0
  161. package/esm2020/utils/functions/module-deprecations-provider.mjs +18 -0
  162. package/esm2020/utils/functions/parser-file-size.mjs +37 -0
  163. package/esm2020/utils/functions/random-color-accent.mjs +5 -0
  164. package/esm2020/utils/functions/resize-observable.mjs +33 -0
  165. package/esm2020/utils/functions/scroll.mjs +19 -0
  166. package/esm2020/utils/functions/uuidv4-generator.mjs +12 -0
  167. package/esm2020/utils/fundamental-ngx-cdk-utils.mjs +5 -0
  168. package/esm2020/utils/helpers/get-native-element.mjs +18 -0
  169. package/esm2020/utils/helpers/index.mjs +3 -0
  170. package/esm2020/utils/helpers/range-selector.mjs +117 -0
  171. package/esm2020/utils/index.mjs +19 -0
  172. package/esm2020/utils/interfaces/content-density.mjs +2 -0
  173. package/esm2020/utils/interfaces/css-class-builder.interface.mjs +2 -0
  174. package/esm2020/utils/interfaces/css-style-builder.interface.mjs +2 -0
  175. package/esm2020/utils/interfaces/has-element-ref.interface.mjs +2 -0
  176. package/esm2020/utils/interfaces/index.mjs +8 -0
  177. package/esm2020/utils/interfaces/keyboard-support-item.interface.mjs +2 -0
  178. package/esm2020/utils/interfaces/module-deprecation.interface.mjs +2 -0
  179. package/esm2020/utils/interfaces/require.interface.mjs +2 -0
  180. package/esm2020/utils/list-item/list-item-utils.mjs +3 -0
  181. package/esm2020/utils/models/nullable.mjs +2 -0
  182. package/esm2020/utils/pipes/displayFn.pipe.mjs +17 -0
  183. package/esm2020/utils/pipes/filter-strings.pipe.mjs +30 -0
  184. package/esm2020/utils/pipes/index.mjs +10 -0
  185. package/esm2020/utils/pipes/is-compact.pipe.mjs +16 -0
  186. package/esm2020/utils/pipes/pipe.module.mjs +55 -0
  187. package/esm2020/utils/pipes/safe.pipe.mjs +36 -0
  188. package/esm2020/utils/pipes/search-highlight.pipe.mjs +31 -0
  189. package/esm2020/utils/pipes/truncate.pipe.mjs +17 -0
  190. package/esm2020/utils/pipes/two-digits.pipe.mjs +22 -0
  191. package/esm2020/utils/pipes/value-by-path.pipe.mjs +16 -0
  192. package/esm2020/utils/services/content-density.service.mjs +34 -0
  193. package/esm2020/utils/services/destroyed.service.mjs +20 -0
  194. package/esm2020/utils/services/focus-trap.service.mjs +92 -0
  195. package/esm2020/utils/services/index.mjs +11 -0
  196. package/esm2020/utils/services/keyboard-support/keyboard-support.service.mjs +73 -0
  197. package/esm2020/utils/services/local-storage.service.mjs +38 -0
  198. package/esm2020/utils/services/observers/attribute.observer.mjs +81 -0
  199. package/esm2020/utils/services/resize-observer.service.mjs +94 -0
  200. package/esm2020/utils/services/rtl.service.mjs +29 -0
  201. package/esm2020/utils/services/tabbable-element.service.mjs +43 -0
  202. package/esm2020/utils/services/themes.service.mjs +133 -0
  203. package/esm2020/utils/tokens/module-deprecations.token.mjs +3 -0
  204. package/esm2020/utils/typecheck.mjs +75 -0
  205. package/esm2020/utils/utils.module.mjs +136 -0
  206. package/fesm2015/fundamental-ngx-cdk-data-source.mjs +378 -0
  207. package/fesm2015/fundamental-ngx-cdk-data-source.mjs.map +1 -0
  208. package/fesm2015/fundamental-ngx-cdk-forms.mjs +404 -0
  209. package/fesm2015/fundamental-ngx-cdk-forms.mjs.map +1 -0
  210. package/fesm2015/fundamental-ngx-cdk-utils.mjs +5767 -0
  211. package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +1 -0
  212. package/fesm2015/fundamental-ngx-cdk.mjs +30 -0
  213. package/fesm2015/fundamental-ngx-cdk.mjs.map +1 -0
  214. package/fesm2020/fundamental-ngx-cdk-data-source.mjs +374 -0
  215. package/fesm2020/fundamental-ngx-cdk-data-source.mjs.map +1 -0
  216. package/fesm2020/fundamental-ngx-cdk-forms.mjs +399 -0
  217. package/fesm2020/fundamental-ngx-cdk-forms.mjs.map +1 -0
  218. package/fesm2020/fundamental-ngx-cdk-utils.mjs +5724 -0
  219. package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +1 -0
  220. package/fesm2020/fundamental-ngx-cdk.mjs +30 -0
  221. package/fesm2020/fundamental-ngx-cdk.mjs.map +1 -0
  222. package/forms/README.md +7 -0
  223. package/forms/cva/cva-control.class.d.ts +26 -0
  224. package/forms/cva/cva.directive.d.ts +178 -0
  225. package/forms/forms.module.d.ts +7 -0
  226. package/forms/helpers/state.d.ts +3 -0
  227. package/forms/index.d.ts +12 -0
  228. package/forms/models/cva.d.ts +4 -0
  229. package/forms/models/form-error.d.ts +31 -0
  230. package/forms/models/form-field-control.d.ts +61 -0
  231. package/forms/models/form-field.d.ts +30 -0
  232. package/forms/models/form-state.d.ts +1 -0
  233. package/forms/models/select-item.d.ts +47 -0
  234. package/forms/tokens/form-field-control.token.d.ts +3 -0
  235. package/forms/tokens/form-field.token.d.ts +3 -0
  236. package/fundamental-ngx-cdk-v0.38.3-rc.4.tgz +0 -0
  237. package/fundamental-ngx.module.d.ts +9 -0
  238. package/index.d.ts +5 -0
  239. package/package.json +80 -0
  240. package/public_api.d.ts +4 -0
  241. package/utils/README.md +7 -0
  242. package/utils/abstract-fd-ngx-class.d.ts +27 -0
  243. package/utils/coercion/array.d.ts +2 -0
  244. package/utils/consts/error-messages.d.ts +3 -0
  245. package/utils/consts/index.d.ts +4 -0
  246. package/utils/consts/overflow-priority-score.d.ts +2 -0
  247. package/utils/consts/unicode-letters.regex.d.ts +7 -0
  248. package/utils/consts/unicode-numbers.regex.d.ts +6 -0
  249. package/utils/datatypes/color-accent.datatype.d.ts +1 -0
  250. package/utils/datatypes/hash.datatype.d.ts +3 -0
  251. package/utils/datatypes/index.d.ts +3 -0
  252. package/utils/datatypes/size.datatype.d.ts +1 -0
  253. package/utils/decorators/apply-css-class.decorator.d.ts +10 -0
  254. package/utils/decorators/apply-css-style.decorator.d.ts +10 -0
  255. package/utils/decorators/coerce-boolean.d.ts +4 -0
  256. package/utils/decorators/coerce-css-pixel.d.ts +1 -0
  257. package/utils/decorators/index.d.ts +5 -0
  258. package/utils/decorators/setter-alternator.d.ts +4 -0
  259. package/utils/deprecated-selector.class.d.ts +14 -0
  260. package/utils/directives/auto-complete/auto-complete.directive.d.ts +58 -0
  261. package/utils/directives/auto-complete/auto-complete.module.d.ts +7 -0
  262. package/utils/directives/clicked/clicked-behavior.module.d.ts +12 -0
  263. package/utils/directives/clicked/clicked-event.plugin.d.ts +22 -0
  264. package/utils/directives/clicked/clicked.directive.d.ts +21 -0
  265. package/utils/directives/clicked/fdk-clicked-provider.service.d.ts +24 -0
  266. package/utils/directives/clicked/index.d.ts +3 -0
  267. package/utils/directives/disabled/default-disabled-view-modifier.d.ts +9 -0
  268. package/utils/directives/disabled/disabled-behavior.directive.d.ts +35 -0
  269. package/utils/directives/disabled/disabled-behavior.interface.d.ts +7 -0
  270. package/utils/directives/disabled/disabled-behavior.module.d.ts +7 -0
  271. package/utils/directives/disabled/disabled-view-modifier.interface.d.ts +3 -0
  272. package/utils/directives/disabled/disabled.observer.d.ts +18 -0
  273. package/utils/directives/disabled/fdk-disabled-provider.service.d.ts +35 -0
  274. package/utils/directives/disabled/fdk-disabled.token.d.ts +3 -0
  275. package/utils/directives/disabled/index.d.ts +8 -0
  276. package/utils/directives/disabled/set-disabled-state.d.ts +4 -0
  277. package/utils/directives/focus-key-manager/focus-key-manager-helpers.module.d.ts +8 -0
  278. package/utils/directives/focus-key-manager/focus-key-manager-item.directive.d.ts +37 -0
  279. package/utils/directives/focus-key-manager/focus-key-manager-list.directive.d.ts +42 -0
  280. package/utils/directives/focus-key-manager/focus-key-manager.tokens.d.ts +3 -0
  281. package/utils/directives/focus-key-manager/index.d.ts +4 -0
  282. package/utils/directives/focusable-item/default-focusable-item-view-modifier.d.ts +11 -0
  283. package/utils/directives/focusable-item/fdk-focusable-item-provider.service.d.ts +43 -0
  284. package/utils/directives/focusable-item/focusable-item-view-modifier.interface.d.ts +3 -0
  285. package/utils/directives/focusable-item/focusable-item.directive.d.ts +37 -0
  286. package/utils/directives/focusable-item/focusable-item.module.d.ts +7 -0
  287. package/utils/directives/focusable-item/focusable.observer.d.ts +18 -0
  288. package/utils/directives/focusable-item/focusable.tokens.d.ts +2 -0
  289. package/utils/directives/focusable-item/index.d.ts +8 -0
  290. package/utils/directives/focusable-item/is-element-focusable-by-default.d.ts +4 -0
  291. package/utils/directives/focusable-item/set-focusable.d.ts +4 -0
  292. package/utils/directives/focusable-list/focusable-list.directive.d.ts +25 -0
  293. package/utils/directives/focusable-list/focusable-list.module.d.ts +8 -0
  294. package/utils/directives/focusable-list/focusable-list.service.d.ts +35 -0
  295. package/utils/directives/focusable-list/index.d.ts +3 -0
  296. package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.d.ts +22 -0
  297. package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.d.ts +7 -0
  298. package/utils/directives/ignore-click-on-selection/tokens.d.ts +2 -0
  299. package/utils/directives/index.d.ts +30 -0
  300. package/utils/directives/initial-focus/initial-focus.directive.d.ts +43 -0
  301. package/utils/directives/initial-focus/initial-focus.module.d.ts +7 -0
  302. package/utils/directives/line-clamp/line-clamp.directive.d.ts +101 -0
  303. package/utils/directives/line-clamp/line-clamp.module.d.ts +7 -0
  304. package/utils/directives/only-digits/only-digits.directive.d.ts +44 -0
  305. package/utils/directives/only-digits/only-digits.module.d.ts +7 -0
  306. package/utils/directives/overflow-list/overflow-list-item.directive.d.ts +14 -0
  307. package/utils/directives/overflow-list/overflow-list.directive.d.ts +62 -0
  308. package/utils/directives/overflow-list/overflow-list.module.d.ts +8 -0
  309. package/utils/directives/readonly/default-readonly-view-modifier.d.ts +9 -0
  310. package/utils/directives/readonly/fdk-readonly-provider.service.d.ts +35 -0
  311. package/utils/directives/readonly/fdk-readonly.token.d.ts +2 -0
  312. package/utils/directives/readonly/index.d.ts +9 -0
  313. package/utils/directives/readonly/readonly-behavior.directive.d.ts +32 -0
  314. package/utils/directives/readonly/readonly-behavior.interface.d.ts +7 -0
  315. package/utils/directives/readonly/readonly-behavior.module.d.ts +7 -0
  316. package/utils/directives/readonly/readonly-view-modifier.interface.d.ts +3 -0
  317. package/utils/directives/readonly/readonly.observer.d.ts +18 -0
  318. package/utils/directives/readonly/set-readonly-state.d.ts +4 -0
  319. package/utils/directives/repeat/repeat.directive.d.ts +28 -0
  320. package/utils/directives/repeat/repeat.module.d.ts +7 -0
  321. package/utils/directives/resize/resize-handle.directive.d.ts +14 -0
  322. package/utils/directives/resize/resize.directive.d.ts +57 -0
  323. package/utils/directives/resize/resize.module.d.ts +8 -0
  324. package/utils/directives/selectable-list/index.d.ts +7 -0
  325. package/utils/directives/selectable-list/select-component-root.token.d.ts +10 -0
  326. package/utils/directives/selectable-list/selectable-item.directive.d.ts +47 -0
  327. package/utils/directives/selectable-list/selectable-item.token.d.ts +11 -0
  328. package/utils/directives/selectable-list/selectable-list.directive.d.ts +33 -0
  329. package/utils/directives/selectable-list/selectable-list.module.d.ts +8 -0
  330. package/utils/directives/selectable-list/selectable-list.tokens.d.ts +2 -0
  331. package/utils/directives/selectable-list/selection.service.d.ts +65 -0
  332. package/utils/directives/template/template.directive.d.ts +18 -0
  333. package/utils/directives/template/template.module.d.ts +7 -0
  334. package/utils/directives/truncate/truncate.directive.d.ts +51 -0
  335. package/utils/directives/truncate/truncate.module.d.ts +7 -0
  336. package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +86 -0
  337. package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +32 -0
  338. package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +61 -0
  339. package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +65 -0
  340. package/utils/drag-and-drop/dnd.interfaces.d.ts +33 -0
  341. package/utils/drag-and-drop/drag-and-drop.module.d.ts +12 -0
  342. package/utils/drag-and-drop/index.d.ts +7 -0
  343. package/utils/drag-and-drop/tokens.d.ts +3 -0
  344. package/utils/dynamic-component/dynamic-component-config.d.ts +6 -0
  345. package/utils/dynamic-component/dynamic-component-container.d.ts +19 -0
  346. package/utils/dynamic-component/dynamic-component-injector.d.ts +13 -0
  347. package/utils/dynamic-component/dynamic-component.service.d.ts +46 -0
  348. package/utils/dynamic-component/index.d.ts +4 -0
  349. package/utils/functions/consumer-provider-factory.d.ts +5 -0
  350. package/utils/functions/element-size.d.ts +12 -0
  351. package/utils/functions/get-document-font-size.d.ts +2 -0
  352. package/utils/functions/index.d.ts +12 -0
  353. package/utils/functions/intersection-observable.d.ts +8 -0
  354. package/utils/functions/is-compact-density.d.ts +7 -0
  355. package/utils/functions/key-util.d.ts +16 -0
  356. package/utils/functions/module-deprecations-provider.d.ts +5 -0
  357. package/utils/functions/parser-file-size.d.ts +2 -0
  358. package/utils/functions/random-color-accent.d.ts +3 -0
  359. package/utils/functions/resize-observable.d.ts +8 -0
  360. package/utils/functions/scroll.d.ts +7 -0
  361. package/utils/functions/uuidv4-generator.d.ts +2 -0
  362. package/utils/helpers/get-native-element.d.ts +13 -0
  363. package/utils/helpers/index.d.ts +2 -0
  364. package/utils/helpers/range-selector.d.ts +84 -0
  365. package/utils/index.d.ts +18 -0
  366. package/utils/interfaces/content-density.d.ts +1 -0
  367. package/utils/interfaces/css-class-builder.interface.d.ts +6 -0
  368. package/utils/interfaces/css-style-builder.interface.d.ts +5 -0
  369. package/utils/interfaces/has-element-ref.interface.d.ts +5 -0
  370. package/utils/interfaces/index.d.ts +7 -0
  371. package/utils/interfaces/keyboard-support-item.interface.d.ts +6 -0
  372. package/utils/interfaces/module-deprecation.interface.d.ts +8 -0
  373. package/utils/interfaces/require.interface.d.ts +6 -0
  374. package/utils/list-item/list-item-utils.d.ts +7 -0
  375. package/utils/models/nullable.d.ts +6 -0
  376. package/utils/pipes/displayFn.pipe.d.ts +8 -0
  377. package/utils/pipes/filter-strings.pipe.d.ts +16 -0
  378. package/utils/pipes/index.d.ts +9 -0
  379. package/utils/pipes/is-compact.pipe.d.ts +9 -0
  380. package/utils/pipes/pipe.module.d.ts +14 -0
  381. package/utils/pipes/safe.pipe.d.ts +12 -0
  382. package/utils/pipes/search-highlight.pipe.d.ts +8 -0
  383. package/utils/pipes/truncate.pipe.d.ts +8 -0
  384. package/utils/pipes/two-digits.pipe.d.ts +8 -0
  385. package/utils/pipes/value-by-path.pipe.d.ts +8 -0
  386. package/utils/services/content-density.service.d.ts +19 -0
  387. package/utils/services/destroyed.service.d.ts +11 -0
  388. package/utils/services/focus-trap.service.d.ts +43 -0
  389. package/utils/services/index.d.ts +10 -0
  390. package/utils/services/keyboard-support/keyboard-support.service.d.ts +34 -0
  391. package/utils/services/local-storage.service.d.ts +13 -0
  392. package/utils/services/observers/attribute.observer.d.ts +26 -0
  393. package/utils/services/resize-observer.service.d.ts +34 -0
  394. package/utils/services/rtl.service.d.ts +12 -0
  395. package/utils/services/tabbable-element.service.d.ts +12 -0
  396. package/utils/services/themes.service.d.ts +43 -0
  397. package/utils/tokens/module-deprecations.token.d.ts +3 -0
  398. package/utils/typecheck.d.ts +47 -0
  399. package/utils/utils.module.d.ts +23 -0
@@ -0,0 +1,55 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { DisplayFnPipe } from './displayFn.pipe';
3
+ import { FilterStringsPipe } from './filter-strings.pipe';
4
+ import { SearchHighlightPipe } from './search-highlight.pipe';
5
+ import { TwoDigitsPipe } from './two-digits.pipe';
6
+ import { SafePipe } from './safe.pipe';
7
+ import { ValueByPathPipe } from './value-by-path.pipe';
8
+ import { IsCompactDensityPipe } from './is-compact.pipe';
9
+ import { TruncatePipe } from './truncate.pipe';
10
+ import * as i0 from "@angular/core";
11
+ export class PipeModule {
12
+ }
13
+ PipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: PipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ PipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: PipeModule, declarations: [DisplayFnPipe,
15
+ SearchHighlightPipe,
16
+ TwoDigitsPipe,
17
+ SafePipe,
18
+ ValueByPathPipe,
19
+ IsCompactDensityPipe,
20
+ TruncatePipe,
21
+ FilterStringsPipe], exports: [DisplayFnPipe,
22
+ SearchHighlightPipe,
23
+ TwoDigitsPipe,
24
+ SafePipe,
25
+ ValueByPathPipe,
26
+ IsCompactDensityPipe,
27
+ TruncatePipe,
28
+ FilterStringsPipe] });
29
+ PipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: PipeModule });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: PipeModule, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ declarations: [
34
+ DisplayFnPipe,
35
+ SearchHighlightPipe,
36
+ TwoDigitsPipe,
37
+ SafePipe,
38
+ ValueByPathPipe,
39
+ IsCompactDensityPipe,
40
+ TruncatePipe,
41
+ FilterStringsPipe
42
+ ],
43
+ exports: [
44
+ DisplayFnPipe,
45
+ SearchHighlightPipe,
46
+ TwoDigitsPipe,
47
+ SafePipe,
48
+ ValueByPathPipe,
49
+ IsCompactDensityPipe,
50
+ TruncatePipe,
51
+ FilterStringsPipe
52
+ ]
53
+ }]
54
+ }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL3BpcGVzL3BpcGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBd0IvQyxNQUFNLE9BQU8sVUFBVTs7dUdBQVYsVUFBVTt3R0FBVixVQUFVLGlCQXBCZixhQUFhO1FBQ2IsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixRQUFRO1FBQ1IsZUFBZTtRQUNmLG9CQUFvQjtRQUNwQixZQUFZO1FBQ1osaUJBQWlCLGFBR2pCLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLFFBQVE7UUFDUixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLFlBQVk7UUFDWixpQkFBaUI7d0dBR1osVUFBVTsyRkFBVixVQUFVO2tCQXRCdEIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixpQkFBaUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixRQUFRO3dCQUNSLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLGlCQUFpQjtxQkFDcEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEaXNwbGF5Rm5QaXBlIH0gZnJvbSAnLi9kaXNwbGF5Rm4ucGlwZSc7XG5pbXBvcnQgeyBGaWx0ZXJTdHJpbmdzUGlwZSB9IGZyb20gJy4vZmlsdGVyLXN0cmluZ3MucGlwZSc7XG5pbXBvcnQgeyBTZWFyY2hIaWdobGlnaHRQaXBlIH0gZnJvbSAnLi9zZWFyY2gtaGlnaGxpZ2h0LnBpcGUnO1xuaW1wb3J0IHsgVHdvRGlnaXRzUGlwZSB9IGZyb20gJy4vdHdvLWRpZ2l0cy5waXBlJztcbmltcG9ydCB7IFNhZmVQaXBlIH0gZnJvbSAnLi9zYWZlLnBpcGUnO1xuaW1wb3J0IHsgVmFsdWVCeVBhdGhQaXBlIH0gZnJvbSAnLi92YWx1ZS1ieS1wYXRoLnBpcGUnO1xuaW1wb3J0IHsgSXNDb21wYWN0RGVuc2l0eVBpcGUgfSBmcm9tICcuL2lzLWNvbXBhY3QucGlwZSc7XG5pbXBvcnQgeyBUcnVuY2F0ZVBpcGUgfSBmcm9tICcuL3RydW5jYXRlLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBEaXNwbGF5Rm5QaXBlLFxuICAgICAgICBTZWFyY2hIaWdobGlnaHRQaXBlLFxuICAgICAgICBUd29EaWdpdHNQaXBlLFxuICAgICAgICBTYWZlUGlwZSxcbiAgICAgICAgVmFsdWVCeVBhdGhQaXBlLFxuICAgICAgICBJc0NvbXBhY3REZW5zaXR5UGlwZSxcbiAgICAgICAgVHJ1bmNhdGVQaXBlLFxuICAgICAgICBGaWx0ZXJTdHJpbmdzUGlwZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBEaXNwbGF5Rm5QaXBlLFxuICAgICAgICBTZWFyY2hIaWdobGlnaHRQaXBlLFxuICAgICAgICBUd29EaWdpdHNQaXBlLFxuICAgICAgICBTYWZlUGlwZSxcbiAgICAgICAgVmFsdWVCeVBhdGhQaXBlLFxuICAgICAgICBJc0NvbXBhY3REZW5zaXR5UGlwZSxcbiAgICAgICAgVHJ1bmNhdGVQaXBlLFxuICAgICAgICBGaWx0ZXJTdHJpbmdzUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGlwZU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,36 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/platform-browser";
5
+ export class SafePipe {
6
+ /** @hidden */
7
+ constructor(sanitizer) {
8
+ this.sanitizer = sanitizer;
9
+ }
10
+ /** Sanitize HTML string. */
11
+ transform(value, type) {
12
+ switch (type) {
13
+ case 'html':
14
+ return this.sanitizer.bypassSecurityTrustHtml(value);
15
+ case 'style':
16
+ return this.sanitizer.bypassSecurityTrustStyle(value);
17
+ case 'script':
18
+ return this.sanitizer.bypassSecurityTrustScript(value);
19
+ case 'url':
20
+ return this.sanitizer.bypassSecurityTrustUrl(value);
21
+ case 'resourceUrl':
22
+ return this.sanitizer.bypassSecurityTrustResourceUrl(value);
23
+ default:
24
+ throw new Error(`Invalid safe type specified: ${type}`);
25
+ }
26
+ }
27
+ }
28
+ SafePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SafePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
29
+ SafePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: SafePipe, name: "safe" });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SafePipe, decorators: [{
31
+ type: Pipe,
32
+ args: [{
33
+ name: 'safe'
34
+ }]
35
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9waXBlcy9zYWZlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBNkQsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBS3BILE1BQU0sT0FBTyxRQUFRO0lBQ2pCLGNBQWM7SUFDZCxZQUFzQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQUcsQ0FBQztJQUVqRCw0QkFBNEI7SUFDckIsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFZO1FBQ3JDLFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV6RCxLQUFLLE9BQU87Z0JBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTFELEtBQUssUUFBUTtnQkFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFM0QsS0FBSyxLQUFLO2dCQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4RCxLQUFLLGFBQWE7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWhFO2dCQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDL0Q7SUFDTCxDQUFDOztxR0F6QlEsUUFBUTttR0FBUixRQUFROzJGQUFSLFFBQVE7a0JBSHBCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLE1BQU07aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sLCBTYWZlU3R5bGUsIFNhZmVTY3JpcHQsIFNhZmVVcmwsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3NhZmUnXG59KVxuZXhwb3J0IGNsYXNzIFNhZmVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgICAvKiogU2FuaXRpemUgSFRNTCBzdHJpbmcuICovXG4gICAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogYW55LCB0eXBlOiBzdHJpbmcpOiBTYWZlSHRtbCB8IFNhZmVTdHlsZSB8IFNhZmVTY3JpcHQgfCBTYWZlVXJsIHwgU2FmZVJlc291cmNlVXJsIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdodG1sJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodmFsdWUpO1xuXG4gICAgICAgICAgICBjYXNlICdzdHlsZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZSh2YWx1ZSk7XG5cbiAgICAgICAgICAgIGNhc2UgJ3NjcmlwdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTY3JpcHQodmFsdWUpO1xuXG4gICAgICAgICAgICBjYXNlICd1cmwnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHZhbHVlKTtcblxuICAgICAgICAgICAgY2FzZSAncmVzb3VyY2VVcmwnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodmFsdWUpO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzYWZlIHR5cGUgc3BlY2lmaWVkOiAke3R5cGV9YCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { Pipe } from '@angular/core';
2
+ import escape from 'lodash-es/escape';
3
+ import * as i0 from "@angular/core";
4
+ export class SearchHighlightPipe {
5
+ /** Highlight search term in string. */
6
+ transform(value, args, active = true, includeSpans = false) {
7
+ value = escape(value);
8
+ let result = value;
9
+ if (args && value && active) {
10
+ const testStr = escape(args.trim().toLowerCase());
11
+ const startIndex = value.toLowerCase().indexOf(testStr);
12
+ if (startIndex !== -1) {
13
+ const matchingString = value.substr(startIndex, testStr.length);
14
+ result = value.replace(matchingString, '<strong>' + matchingString + '</strong>');
15
+ }
16
+ }
17
+ if (includeSpans) {
18
+ result = '<span>' + result + '</span>';
19
+ }
20
+ return result;
21
+ }
22
+ }
23
+ SearchHighlightPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SearchHighlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
24
+ SearchHighlightPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: SearchHighlightPipe, name: "highlight" });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SearchHighlightPipe, decorators: [{
26
+ type: Pipe,
27
+ args: [{
28
+ name: 'highlight'
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhpZ2hsaWdodC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9waXBlcy9zZWFyY2gtaGlnaGxpZ2h0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxNQUFNLE1BQU0sa0JBQWtCLENBQUM7O0FBS3RDLE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsdUNBQXVDO0lBQ3ZDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBWSxFQUFFLFNBQWtCLElBQUksRUFBRSxlQUF3QixLQUFLO1FBQ3hGLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsSUFBSSxNQUFNLEdBQVcsS0FBSyxDQUFDO1FBQzNCLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDekIsTUFBTSxPQUFPLEdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQzFELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEQsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ25CLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEUsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsR0FBRyxjQUFjLEdBQUcsV0FBVyxDQUFDLENBQUM7YUFDckY7U0FDSjtRQUNELElBQUksWUFBWSxFQUFFO1lBQ2QsTUFBTSxHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7Z0hBakJRLG1CQUFtQjs4R0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBSC9CLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLFdBQVc7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGVzY2FwZSBmcm9tICdsb2Rhc2gtZXMvZXNjYXBlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdoaWdobGlnaHQnXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEhpZ2hsaWdodFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvKiogSGlnaGxpZ2h0IHNlYXJjaCB0ZXJtIGluIHN0cmluZy4gKi9cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgYXJnczogc3RyaW5nLCBhY3RpdmU6IGJvb2xlYW4gPSB0cnVlLCBpbmNsdWRlU3BhbnM6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgICAgIHZhbHVlID0gZXNjYXBlKHZhbHVlKTtcbiAgICAgICAgbGV0IHJlc3VsdDogc3RyaW5nID0gdmFsdWU7XG4gICAgICAgIGlmIChhcmdzICYmIHZhbHVlICYmIGFjdGl2ZSkge1xuICAgICAgICAgICAgY29uc3QgdGVzdFN0cjogc3RyaW5nID0gZXNjYXBlKGFyZ3MudHJpbSgpLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IHZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0ZXN0U3RyKTtcbiAgICAgICAgICAgIGlmIChzdGFydEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gdmFsdWUuc3Vic3RyKHN0YXJ0SW5kZXgsIHRlc3RTdHIubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZS5yZXBsYWNlKG1hdGNoaW5nU3RyaW5nLCAnPHN0cm9uZz4nICsgbWF0Y2hpbmdTdHJpbmcgKyAnPC9zdHJvbmc+Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluY2x1ZGVTcGFucykge1xuICAgICAgICAgICAgcmVzdWx0ID0gJzxzcGFuPicgKyByZXN1bHQgKyAnPC9zcGFuPic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TruncatePipe {
4
+ /** Truncate string to given length. */
5
+ transform(value, limit = 500) {
6
+ return value && value.length > limit ? value.substring(0, limit) + '...' : value;
7
+ }
8
+ }
9
+ TruncatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
+ TruncatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: TruncatePipe, name: "truncate" });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TruncatePipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'truncate'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvcGlwZXMvdHJ1bmNhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLFlBQVk7SUFDckIsdUNBQXVDO0lBQ3ZDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsUUFBZ0IsR0FBRztRQUN4QyxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckYsQ0FBQzs7eUdBSlEsWUFBWTt1R0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBSHhCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLFVBQVU7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3RydW5jYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBUcnVuY2F0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvKiogVHJ1bmNhdGUgc3RyaW5nIHRvIGdpdmVuIGxlbmd0aC4gKi9cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDUwMCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiBsaW1pdCA/IHZhbHVlLnN1YnN0cmluZygwLCBsaW1pdCkgKyAnLi4uJyA6IHZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TwoDigitsPipe {
4
+ /** Transform number to two digits. */
5
+ transform(value, enable = true) {
6
+ if ((value || value === 0) && enable) {
7
+ return value < 10 ? '0' + value : value.toString();
8
+ }
9
+ else {
10
+ return String(value);
11
+ }
12
+ }
13
+ }
14
+ TwoDigitsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TwoDigitsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
+ TwoDigitsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: TwoDigitsPipe, name: "twoDigits" });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TwoDigitsPipe, decorators: [{
17
+ type: Pipe,
18
+ args: [{
19
+ name: 'twoDigits'
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWRpZ2l0cy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9waXBlcy90d28tZGlnaXRzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxhQUFhO0lBQ3RCLHNDQUFzQztJQUN0QyxTQUFTLENBQUMsS0FBYSxFQUFFLFNBQWtCLElBQUk7UUFDM0MsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLElBQUksTUFBTSxFQUFFO1lBQ2xDLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3REO2FBQU07WUFDSCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtJQUNMLENBQUM7OzBHQVJRLGFBQWE7d0dBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUh6QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxXQUFXO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICd0d29EaWdpdHMnXG59KVxuZXhwb3J0IGNsYXNzIFR3b0RpZ2l0c1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvKiogVHJhbnNmb3JtIG51bWJlciB0byB0d28gZGlnaXRzLiAqL1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyLCBlbmFibGU6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkgJiYgZW5hYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPCAxMCA/ICcwJyArIHZhbHVlIDogdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { get } from 'lodash-es';
3
+ import * as i0 from "@angular/core";
4
+ export class ValueByPathPipe {
5
+ /** Get value by path. */
6
+ transform(value, key) {
7
+ return get(value, key);
8
+ }
9
+ }
10
+ ValueByPathPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ValueByPathPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
11
+ ValueByPathPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ValueByPathPipe, name: "valueByPath" });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ValueByPathPipe, decorators: [{
13
+ type: Pipe,
14
+ args: [{ name: 'valueByPath' }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYnktcGF0aC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9waXBlcy92YWx1ZS1ieS1wYXRoLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHaEMsTUFBTSxPQUFPLGVBQWU7SUFDeEIseUJBQXlCO0lBQ3pCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBVztRQUM3QixPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7NEdBSlEsZUFBZTswR0FBZixlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQFBpcGUoeyBuYW1lOiAndmFsdWVCeVBhdGgnIH0pXG5leHBvcnQgY2xhc3MgVmFsdWVCeVBhdGhQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgLyoqIEdldCB2YWx1ZSBieSBwYXRoLiAqL1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiBnZXQodmFsdWUsIGtleSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,34 @@
1
+ import { Injectable, isDevMode } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { distinctUntilChanged, map, startWith } from 'rxjs/operators';
4
+ import { isCompactDensity } from '../functions/is-compact-density';
5
+ import * as i0 from "@angular/core";
6
+ export const DEFAULT_CONTENT_DENSITY = 'cozy';
7
+ /**
8
+ * Service taking care of ContentDensity
9
+ */
10
+ export class ContentDensityService {
11
+ /** @hidden */
12
+ constructor() {
13
+ /** Content Density BehaviourSubject */
14
+ this.contentDensity = new BehaviorSubject(DEFAULT_CONTENT_DENSITY);
15
+ if (isDevMode()) {
16
+ console.warn(`[Deprecated] ContentDensityService is deprecated and will be removed in the next major version.
17
+ Please use ContentDensityControllerService instead, or use the ContentDensityModule forRoot method.`);
18
+ }
19
+ }
20
+ /** @hidden */
21
+ get _contentDensityListener() {
22
+ return this.contentDensity.pipe(distinctUntilChanged(), startWith(this.contentDensity.getValue()));
23
+ }
24
+ /** @hidden */
25
+ get _isCompactDensity() {
26
+ return this._contentDensityListener.pipe(map((density) => isCompactDensity(density)));
27
+ }
28
+ }
29
+ ContentDensityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ContentDensityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
30
+ ContentDensityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ContentDensityService });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ContentDensityService, decorators: [{
32
+ type: Injectable
33
+ }], ctorParameters: function () { return []; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1kZW5zaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL3NlcnZpY2VzL2NvbnRlbnQtZGVuc2l0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFHbkUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW1CLE1BQU0sQ0FBQztBQUU5RDs7R0FFRztBQUVILE1BQU0sT0FBTyxxQkFBcUI7SUFJOUIsY0FBYztJQUNkO1FBSkEsdUNBQXVDO1FBQzlCLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUluRSxJQUFJLFNBQVMsRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLElBQUksQ0FDUjtxSEFDcUcsQ0FDeEcsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUFJLHVCQUF1QjtRQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxjQUFjO0lBQ2QsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7O2tIQXRCUSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzQ29tcGFjdERlbnNpdHkgfSBmcm9tICcuLi9mdW5jdGlvbnMvaXMtY29tcGFjdC1kZW5zaXR5JztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb250ZW50LWRlbnNpdHknO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05URU5UX0RFTlNJVFk6IENvbnRlbnREZW5zaXR5ID0gJ2NvenknO1xuXG4vKipcbiAqIFNlcnZpY2UgdGFraW5nIGNhcmUgb2YgQ29udGVudERlbnNpdHlcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbnRlbnREZW5zaXR5U2VydmljZSB7XG4gICAgLyoqIENvbnRlbnQgRGVuc2l0eSBCZWhhdmlvdXJTdWJqZWN0ICovXG4gICAgcmVhZG9ubHkgY29udGVudERlbnNpdHkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KERFRkFVTFRfQ09OVEVOVF9ERU5TSVRZKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBbRGVwcmVjYXRlZF0gQ29udGVudERlbnNpdHlTZXJ2aWNlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uLlxuICAgICAgICAgICAgICAgICBQbGVhc2UgdXNlIENvbnRlbnREZW5zaXR5Q29udHJvbGxlclNlcnZpY2UgaW5zdGVhZCwgb3IgdXNlIHRoZSBDb250ZW50RGVuc2l0eU1vZHVsZSBmb3JSb290IG1ldGhvZC5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2NvbnRlbnREZW5zaXR5TGlzdGVuZXIoKTogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50RGVuc2l0eS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnREZW5zaXR5LmdldFZhbHVlKCkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNDb21wYWN0RGVuc2l0eSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnREZW5zaXR5TGlzdGVuZXIucGlwZShtYXAoKGRlbnNpdHkpID0+IGlzQ29tcGFjdERlbnNpdHkoZGVuc2l0eSkpKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class DestroyedService extends ReplaySubject {
5
+ /** @hidden */
6
+ constructor() {
7
+ super(1);
8
+ }
9
+ /** @hidden */
10
+ ngOnDestroy() {
11
+ this.next();
12
+ this.complete();
13
+ }
14
+ }
15
+ DestroyedService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DestroyedService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ DestroyedService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DestroyedService });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DestroyedService, decorators: [{
18
+ type: Injectable
19
+ }], ctorParameters: function () { return []; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveWVkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL3NlcnZpY2VzL2Rlc3Ryb3llZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHckMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQW1CO0lBQ3JELGNBQWM7SUFDZDtRQUNJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs2R0FWUSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZXN0cm95ZWRTZXJ2aWNlIGV4dGVuZHMgUmVwbGF5U3ViamVjdDx2b2lkPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoMSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,92 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { createFocusTrap } from 'focus-trap';
3
+ import { uuidv4 } from '../functions/uuidv4-generator';
4
+ import * as i0 from "@angular/core";
5
+ export class FocusTrapService {
6
+ constructor() {
7
+ /** @hidden */
8
+ this._focusTrapInstances = new Map();
9
+ }
10
+ /**
11
+ * Creates focus trap instance for defined element
12
+ * @param element Container for which to create focus trap
13
+ * @param userOptions Focus-trap specific configuration
14
+ * @returns {string} Unique ID of focus trap instance
15
+ */
16
+ createFocusTrap(element, userOptions) {
17
+ const uid = uuidv4();
18
+ const trap = createFocusTrap(element, userOptions);
19
+ this._focusTrapInstances.set(uid, trap);
20
+ this.activateFocusTrap(uid);
21
+ return uid;
22
+ }
23
+ /**
24
+ * Activates focus trap for defined ID
25
+ * @param id Unique ID of focus trap instance
26
+ */
27
+ activateFocusTrap(id) {
28
+ if (!this._focusTrapExists(id)) {
29
+ return;
30
+ }
31
+ const trap = this.getFocusTrapInstance(id);
32
+ trap?.activate();
33
+ }
34
+ /**
35
+ * Deactivates focus trap for defined ID
36
+ * @param id Unique ID of focus trap instance
37
+ */
38
+ deactivateFocusTrap(id) {
39
+ if (!this._focusTrapExists(id)) {
40
+ return;
41
+ }
42
+ const trap = this.getFocusTrapInstance(id);
43
+ trap?.deactivate();
44
+ this._focusTrapInstances.delete(id);
45
+ }
46
+ /**
47
+ * Pauses current focus trap.
48
+ */
49
+ pauseCurrentFocusTrap() {
50
+ if (this._focusTrapInstances.size === 0) {
51
+ return;
52
+ }
53
+ const trapItem = this._getLastTrapedItem();
54
+ trapItem?.pause();
55
+ }
56
+ /**
57
+ * Unpauses current focus trap.
58
+ */
59
+ unpauseCurrentFocusTrap() {
60
+ if (this._focusTrapInstances.size === 0) {
61
+ return;
62
+ }
63
+ const trapItem = this._getLastTrapedItem();
64
+ trapItem?.unpause();
65
+ }
66
+ /**
67
+ * Get focus trap instance by ID.
68
+ * @param id ID of the instance.
69
+ * @returns Focus trap instance if exists.
70
+ */
71
+ getFocusTrapInstance(id) {
72
+ return this._focusTrapInstances.get(id);
73
+ }
74
+ /** @hidden */
75
+ _getLastTrapedItem() {
76
+ const lastItem = Array.from(this._focusTrapInstances).pop();
77
+ return lastItem ? lastItem[1] : undefined;
78
+ }
79
+ /** @hidden */
80
+ _focusTrapExists(id) {
81
+ return this._focusTrapInstances.has(id);
82
+ }
83
+ }
84
+ FocusTrapService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
85
+ FocusTrapService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrapService, providedIn: 'root' });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrapService, decorators: [{
87
+ type: Injectable,
88
+ args: [{
89
+ providedIn: 'root'
90
+ }]
91
+ }] });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9zZXJ2aWNlcy9mb2N1cy10cmFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFzQixNQUFNLFlBQVksQ0FBQztBQUNqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBS3ZELE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJSSxjQUFjO1FBQ04sd0JBQW1CLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7S0FtR2hFO0lBakdHOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUNYLE9BQWtGLEVBQ2xGLFdBQXFCO1FBRXJCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBRXJCLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLEVBQVU7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUM1QixPQUFPO1NBQ1Y7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0MsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxFQUFVO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDNUIsT0FBTztTQUNWO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILHFCQUFxQjtRQUNqQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLE9BQU87U0FDVjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTNDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNyQyxPQUFPO1NBQ1Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUzQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxFQUFVO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztJQUNOLGtCQUFrQjtRQUN0QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTVELE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYztJQUNOLGdCQUFnQixDQUFDLEVBQVU7UUFDL0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7OzZHQXBHUSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZiLE1BQU07MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUZvY3VzVHJhcCwgRm9jdXNUcmFwLCBPcHRpb25zIH0gZnJvbSAnZm9jdXMtdHJhcCc7XG5pbXBvcnQgeyB1dWlkdjQgfSBmcm9tICcuLi9mdW5jdGlvbnMvdXVpZHY0LWdlbmVyYXRvcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNUcmFwU2VydmljZSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c1RyYXBJbnN0YW5jZXM6IE1hcDxhbnksIEZvY3VzVHJhcD4gPSBuZXcgTWFwKCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGZvY3VzIHRyYXAgaW5zdGFuY2UgZm9yIGRlZmluZWQgZWxlbWVudFxuICAgICAqIEBwYXJhbSBlbGVtZW50IENvbnRhaW5lciBmb3Igd2hpY2ggdG8gY3JlYXRlIGZvY3VzIHRyYXBcbiAgICAgKiBAcGFyYW0gdXNlck9wdGlvbnMgRm9jdXMtdHJhcCBzcGVjaWZpYyBjb25maWd1cmF0aW9uXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVW5pcXVlIElEIG9mIGZvY3VzIHRyYXAgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBjcmVhdGVGb2N1c1RyYXAoXG4gICAgICAgIGVsZW1lbnQ6IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCB8IChzdHJpbmcgfCBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpW10sXG4gICAgICAgIHVzZXJPcHRpb25zPzogT3B0aW9uc1xuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHVpZCA9IHV1aWR2NCgpO1xuXG4gICAgICAgIGNvbnN0IHRyYXAgPSBjcmVhdGVGb2N1c1RyYXAoZWxlbWVudCwgdXNlck9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzVHJhcEluc3RhbmNlcy5zZXQodWlkLCB0cmFwKTtcblxuICAgICAgICB0aGlzLmFjdGl2YXRlRm9jdXNUcmFwKHVpZCk7XG5cbiAgICAgICAgcmV0dXJuIHVpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZXMgZm9jdXMgdHJhcCBmb3IgZGVmaW5lZCBJRFxuICAgICAqIEBwYXJhbSBpZCBVbmlxdWUgSUQgb2YgZm9jdXMgdHJhcCBpbnN0YW5jZVxuICAgICAqL1xuICAgIGFjdGl2YXRlRm9jdXNUcmFwKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9mb2N1c1RyYXBFeGlzdHMoaWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmFwID0gdGhpcy5nZXRGb2N1c1RyYXBJbnN0YW5jZShpZCk7XG5cbiAgICAgICAgdHJhcD8uYWN0aXZhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWFjdGl2YXRlcyBmb2N1cyB0cmFwIGZvciBkZWZpbmVkIElEXG4gICAgICogQHBhcmFtIGlkIFVuaXF1ZSBJRCBvZiBmb2N1cyB0cmFwIGluc3RhbmNlXG4gICAgICovXG4gICAgZGVhY3RpdmF0ZUZvY3VzVHJhcChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZm9jdXNUcmFwRXhpc3RzKGlkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHJhcCA9IHRoaXMuZ2V0Rm9jdXNUcmFwSW5zdGFuY2UoaWQpO1xuXG4gICAgICAgIHRyYXA/LmRlYWN0aXZhdGUoKTtcblxuICAgICAgICB0aGlzLl9mb2N1c1RyYXBJbnN0YW5jZXMuZGVsZXRlKGlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXVzZXMgY3VycmVudCBmb2N1cyB0cmFwLlxuICAgICAqL1xuICAgIHBhdXNlQ3VycmVudEZvY3VzVHJhcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZvY3VzVHJhcEluc3RhbmNlcy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmFwSXRlbSA9IHRoaXMuX2dldExhc3RUcmFwZWRJdGVtKCk7XG5cbiAgICAgICAgdHJhcEl0ZW0/LnBhdXNlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5wYXVzZXMgY3VycmVudCBmb2N1cyB0cmFwLlxuICAgICAqL1xuICAgIHVucGF1c2VDdXJyZW50Rm9jdXNUcmFwKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZm9jdXNUcmFwSW5zdGFuY2VzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYXBJdGVtID0gdGhpcy5fZ2V0TGFzdFRyYXBlZEl0ZW0oKTtcblxuICAgICAgICB0cmFwSXRlbT8udW5wYXVzZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBmb2N1cyB0cmFwIGluc3RhbmNlIGJ5IElELlxuICAgICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgaW5zdGFuY2UuXG4gICAgICogQHJldHVybnMgRm9jdXMgdHJhcCBpbnN0YW5jZSBpZiBleGlzdHMuXG4gICAgICovXG4gICAgZ2V0Rm9jdXNUcmFwSW5zdGFuY2UoaWQ6IHN0cmluZyk6IEZvY3VzVHJhcCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c1RyYXBJbnN0YW5jZXMuZ2V0KGlkKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldExhc3RUcmFwZWRJdGVtKCk6IEZvY3VzVHJhcCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtID0gQXJyYXkuZnJvbSh0aGlzLl9mb2N1c1RyYXBJbnN0YW5jZXMpLnBvcCgpO1xuXG4gICAgICAgIHJldHVybiBsYXN0SXRlbSA/IGxhc3RJdGVtWzFdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNUcmFwRXhpc3RzKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzVHJhcEluc3RhbmNlcy5oYXMoaWQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ export * from './content-density.service';
2
+ export * from './destroyed.service';
3
+ export * from './focus-trap.service';
4
+ export * from './keyboard-support/keyboard-support.service';
5
+ export * from './local-storage.service';
6
+ export * from './resize-observer.service';
7
+ export * from './rtl.service';
8
+ export * from './tabbable-element.service';
9
+ export * from './themes.service';
10
+ export * from './observers/attribute.observer';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LWRlbnNpdHkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc3Ryb3llZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXMtdHJhcC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4va2V5Ym9hcmQtc3VwcG9ydC9rZXlib2FyZC1zdXBwb3J0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3J0bC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFiYmFibGUtZWxlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGhlbWVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlcnMvYXR0cmlidXRlLm9ic2VydmVyJztcbiJdfQ==
@@ -0,0 +1,73 @@
1
+ import { FocusKeyManager } from '@angular/cdk/a11y';
2
+ import { Injectable } from '@angular/core';
3
+ import { merge, Subject } from 'rxjs';
4
+ import { filter, startWith, takeUntil, tap } from 'rxjs/operators';
5
+ import { KeyUtil } from '../../functions';
6
+ import { DOWN_ARROW, hasModifierKey, TAB, UP_ARROW } from '@angular/cdk/keycodes';
7
+ import * as i0 from "@angular/core";
8
+ export class KeyboardSupportService {
9
+ constructor() {
10
+ /** Subject that is thrown, when focus escapes the list */
11
+ this.focusEscapeList = new Subject();
12
+ /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */
13
+ this._onDestroy$ = new Subject();
14
+ /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */
15
+ this._onRefresh$ = new Subject();
16
+ /** @hidden
17
+ * allow tab key navigation. default is true.
18
+ */
19
+ this._tabKeyNavigation = true;
20
+ }
21
+ /** @hidden */
22
+ get keyManager() {
23
+ return this._keyManager;
24
+ }
25
+ /** @hidden */
26
+ setKeyboardService(queryList, wrap, tabKeyNavigation = true) {
27
+ this._itemList = queryList;
28
+ this._tabKeyNavigation = tabKeyNavigation;
29
+ this._keyManager = new FocusKeyManager(queryList).withWrap(wrap).withHomeAndEnd();
30
+ queryList.changes
31
+ .pipe(takeUntil(this._onDestroy$), startWith(0))
32
+ .subscribe(() => this._refreshEscapeLogic(queryList));
33
+ }
34
+ /** @hidden */
35
+ onKeyDown(event) {
36
+ this._keyManager.onKeydown(event);
37
+ if (KeyUtil.isKeyCode(event, TAB)) {
38
+ if (KeyUtil.isKeyCode(event, TAB) && this._tabKeyNavigation) {
39
+ event.preventDefault();
40
+ hasModifierKey(event, 'shiftKey')
41
+ ? this.keyManager.setPreviousItemActive()
42
+ : this.keyManager.setNextItemActive();
43
+ }
44
+ }
45
+ }
46
+ /** Destroys KeyboardSupportService dependencies */
47
+ onDestroy() {
48
+ this._onDestroy$.next();
49
+ this._onDestroy$.complete();
50
+ }
51
+ /** @hidden */
52
+ _refreshEscapeLogic(queryList) {
53
+ const createEscapeListener = (listItem, onKeyCode, escapeDirection) => {
54
+ listItem.keyDown
55
+ .pipe(takeUntil(unsubscribe$), filter((event) => KeyUtil.isKeyCode(event, onKeyCode)), tap((event) => event.preventDefault()))
56
+ .subscribe(() => this.focusEscapeList.next(escapeDirection));
57
+ };
58
+ /** Finish all of the streams, form before */
59
+ this._onRefresh$.next();
60
+ const unsubscribe$ = merge(this._onRefresh$, this._onDestroy$);
61
+ if (queryList.length) {
62
+ createEscapeListener(queryList.last, DOWN_ARROW, 'down');
63
+ createEscapeListener(queryList.first, UP_ARROW, 'up');
64
+ }
65
+ }
66
+ }
67
+ KeyboardSupportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: KeyboardSupportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
+ KeyboardSupportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: KeyboardSupportService, providedIn: 'root' });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: KeyboardSupportService, decorators: [{
70
+ type: Injectable,
71
+ args: [{ providedIn: 'root' }]
72
+ }] });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc3VwcG9ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9zZXJ2aWNlcy9rZXlib2FyZC1zdXBwb3J0L2tleWJvYXJkLXN1cHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLbEYsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUVJLDBEQUEwRDtRQUMxRCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO1FBRXRELHVHQUF1RztRQUN0RixnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWxFLGlHQUFpRztRQUNoRixnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBYWxFOztXQUVHO1FBQ0ssc0JBQWlCLEdBQUcsSUFBSSxDQUFDO0tBNkRwQztJQXhFRyxjQUFjO0lBQ2QsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFVRCxjQUFjO0lBQ2Qsa0JBQWtCLENBQ2QsU0FBc0QsRUFDdEQsSUFBYyxFQUNkLGdCQUFnQixHQUFHLElBQUk7UUFFdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2xGLFNBQVMsQ0FBQyxPQUFPO2FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9DLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsY0FBYztJQUNkLFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUN6RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLGNBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDO29CQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRTtvQkFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUM3QztTQUNKO0lBQ0wsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjO0lBQ04sbUJBQW1CLENBQUMsU0FBc0Q7UUFDOUUsTUFBTSxvQkFBb0IsR0FBRyxDQUN6QixRQUEwQyxFQUMxQyxTQUFpQixFQUNqQixlQUFxQyxFQUNqQyxFQUFFO1lBQ04sUUFBUSxDQUFDLE9BQU87aUJBQ1gsSUFBSSxDQUNELFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFDdkIsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUN0RCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUN6QztpQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUM7UUFFRiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4QixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFL0QsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ2xCLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pELG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3pEO0lBQ0wsQ0FBQzs7bUhBcEZRLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRFQsTUFBTTsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEluamVjdGFibGUsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMva2V5Ym9hcmQtc3VwcG9ydC1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBoYXNNb2RpZmllcktleSwgVEFCLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbmV4cG9ydCB0eXBlIEZvY3VzRXNjYXBlRGlyZWN0aW9uID0gJ3VwJyB8ICdkb3duJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBLZXlib2FyZFN1cHBvcnRTZXJ2aWNlPFQ+IHtcbiAgICAvKiogU3ViamVjdCB0aGF0IGlzIHRocm93biwgd2hlbiBmb2N1cyBlc2NhcGVzIHRoZSBsaXN0ICovXG4gICAgZm9jdXNFc2NhcGVMaXN0ID0gbmV3IFN1YmplY3Q8Rm9jdXNFc2NhcGVEaXJlY3Rpb24+KCk7XG5cbiAgICAvKiogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gcXVlcnlMaXN0IGNoYW5nZXMgKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vblJlZnJlc2gkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfa2V5TWFuYWdlcjogRm9jdXNLZXlNYW5hZ2VyPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQga2V5TWFuYWdlcigpOiBGb2N1c0tleU1hbmFnZXI8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fa2V5TWFuYWdlcjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2l0ZW1MaXN0OiBRdWVyeUxpc3Q8S2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSAmIFQ+O1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBhbGxvdyB0YWIga2V5IG5hdmlnYXRpb24uIGRlZmF1bHQgaXMgdHJ1ZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF90YWJLZXlOYXZpZ2F0aW9uID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0S2V5Ym9hcmRTZXJ2aWNlKFxuICAgICAgICBxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxLZXlib2FyZFN1cHBvcnRJdGVtSW50ZXJmYWNlICYgVD4sXG4gICAgICAgIHdyYXA/OiBib29sZWFuLFxuICAgICAgICB0YWJLZXlOYXZpZ2F0aW9uID0gdHJ1ZVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pdGVtTGlzdCA9IHF1ZXJ5TGlzdDtcbiAgICAgICAgdGhpcy5fdGFiS2V5TmF2aWdhdGlvbiA9IHRhYktleU5hdmlnYXRpb247XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHF1ZXJ5TGlzdCkud2l0aFdyYXAod3JhcCkud2l0aEhvbWVBbmRFbmQoKTtcbiAgICAgICAgcXVlcnlMaXN0LmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgc3RhcnRXaXRoKDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZWZyZXNoRXNjYXBlTG9naWMocXVlcnlMaXN0KSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFRBQikpIHtcbiAgICAgICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVEFCKSAmJiB0aGlzLl90YWJLZXlOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYXNNb2RpZmllcktleShldmVudCwgJ3NoaWZ0S2V5JylcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmtleU1hbmFnZXIuc2V0UHJldmlvdXNJdGVtQWN0aXZlKClcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmtleU1hbmFnZXIuc2V0TmV4dEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBEZXN0cm95cyBLZXlib2FyZFN1cHBvcnRTZXJ2aWNlIGRlcGVuZGVuY2llcyAqL1xuICAgIG9uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlZnJlc2hFc2NhcGVMb2dpYyhxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxLZXlib2FyZFN1cHBvcnRJdGVtSW50ZXJmYWNlICYgVD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3JlYXRlRXNjYXBlTGlzdGVuZXIgPSAoXG4gICAgICAgICAgICBsaXN0SXRlbTogS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSAmIFQsXG4gICAgICAgICAgICBvbktleUNvZGU6IG51bWJlcixcbiAgICAgICAgICAgIGVzY2FwZURpcmVjdGlvbjogRm9jdXNFc2NhcGVEaXJlY3Rpb25cbiAgICAgICAgKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBsaXN0SXRlbS5rZXlEb3duXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh1bnN1YnNjcmliZSQpLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgb25LZXlDb2RlKSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5mb2N1c0VzY2FwZUxpc3QubmV4dChlc2NhcGVEaXJlY3Rpb24pKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvKiogRmluaXNoIGFsbCBvZiB0aGUgc3RyZWFtcywgZm9ybSBiZWZvcmUgKi9cbiAgICAgICAgdGhpcy5fb25SZWZyZXNoJC5uZXh0KCk7XG5cbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUkID0gbWVyZ2UodGhpcy5fb25SZWZyZXNoJCwgdGhpcy5fb25EZXN0cm95JCk7XG5cbiAgICAgICAgaWYgKHF1ZXJ5TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNyZWF0ZUVzY2FwZUxpc3RlbmVyKHF1ZXJ5TGlzdC5sYXN0LCBET1dOX0FSUk9XLCAnZG93bicpO1xuICAgICAgICAgICAgY3JlYXRlRXNjYXBlTGlzdGVuZXIocXVlcnlMaXN0LmZpcnN0LCBVUF9BUlJPVywgJ3VwJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class MockStorage {
4
+ // eslint-disable-next-line
5
+ key(index) { }
6
+ clear() { }
7
+ // eslint-disable-next-line
8
+ getItem(key) { }
9
+ // eslint-disable-next-line
10
+ removeItem(key) { }
11
+ // eslint-disable-next-line
12
+ setItem(key, value) { }
13
+ }
14
+ export class LocalStorageService {
15
+ /** @hidden */
16
+ constructor() {
17
+ typeof localStorage !== 'undefined' ? (this._storage = localStorage) : (this._storage = new MockStorage());
18
+ }
19
+ /** Get item from local storage. */
20
+ get(key) {
21
+ const value = this._storage.getItem(key);
22
+ if (value) {
23
+ return JSON.parse(value);
24
+ }
25
+ return null;
26
+ }
27
+ /** Set item in local storage. */
28
+ set(key, value) {
29
+ this._storage.setItem(key, JSON.stringify(value));
30
+ }
31
+ }
32
+ LocalStorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
33
+ LocalStorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LocalStorageService, providedIn: 'root' });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LocalStorageService, decorators: [{
35
+ type: Injectable,
36
+ args: [{ providedIn: 'root' }]
37
+ }], ctorParameters: function () { return []; } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxXQUFXO0lBR2IsMkJBQTJCO0lBQzNCLEdBQUcsQ0FBQyxLQUFhLElBQVEsQ0FBQztJQUUxQixLQUFLLEtBQVUsQ0FBQztJQUVoQiwyQkFBMkI7SUFDM0IsT0FBTyxDQUFDLEdBQVcsSUFBUSxDQUFDO0lBRTVCLDJCQUEyQjtJQUMzQixVQUFVLENBQUMsR0FBVyxJQUFTLENBQUM7SUFFaEMsMkJBQTJCO0lBQzNCLE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBYSxJQUFTLENBQUM7Q0FDL0M7QUFHRCxNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLGNBQWM7SUFDZDtRQUNJLE9BQU8sWUFBWSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsR0FBRyxDQUFDLEdBQVc7UUFDWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLEtBQUssRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7Z0hBckJRLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY2xhc3MgTW9ja1N0b3JhZ2Uge1xuICAgIHJlYWRvbmx5IGxlbmd0aDogbnVtYmVyO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAga2V5KGluZGV4OiBudW1iZXIpOiBhbnkge31cblxuICAgIGNsZWFyKCk6IHZvaWQge31cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBhbnkge31cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiB2b2lkIHt9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7fVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2Uge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3RvcmFnZTogU3RvcmFnZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHR5cGVvZiBsb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnID8gKHRoaXMuX3N0b3JhZ2UgPSBsb2NhbFN0b3JhZ2UpIDogKHRoaXMuX3N0b3JhZ2UgPSBuZXcgTW9ja1N0b3JhZ2UoKSk7XG4gICAgfVxuXG4gICAgLyoqIEdldCBpdGVtIGZyb20gbG9jYWwgc3RvcmFnZS4gKi9cbiAgICBnZXQoa2V5OiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX3N0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogU2V0IGl0ZW0gaW4gbG9jYWwgc3RvcmFnZS4gKi9cbiAgICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,81 @@
1
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
+ import { MutationObserverFactory } from '@angular/cdk/observers';
3
+ import { Observable, Subject } from 'rxjs';
4
+ import { Injectable } from '@angular/core';
5
+ import { getNativeElement } from '../../helpers/get-native-element';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/observers";
8
+ export class AttributeObserver {
9
+ /** @hidden */
10
+ constructor(_mutationObserverFactory) {
11
+ this._mutationObserverFactory = _mutationObserverFactory;
12
+ /** @Hidden */
13
+ this._observedElements = new Map();
14
+ }
15
+ /** @hidden */
16
+ ngOnDestroy() {
17
+ this._observedElements.forEach((_, element) => this._cleanupObserver(element));
18
+ }
19
+ /** @Hidden */
20
+ observe(elementOrRef) {
21
+ const element = getNativeElement(elementOrRef);
22
+ return new Observable((observer) => {
23
+ const stream = this._observeElement(element);
24
+ const subscription = stream.subscribe(observer);
25
+ return () => {
26
+ subscription.unsubscribe();
27
+ this._unobserveElement(element);
28
+ };
29
+ });
30
+ }
31
+ /** @Hidden */
32
+ unobserve(element) {
33
+ this._unobserveElement(getNativeElement(element));
34
+ }
35
+ /** @hidden */
36
+ _observeElement(element) {
37
+ if (!this._observedElements.has(element)) {
38
+ const stream = new Subject();
39
+ const observer = this._mutationObserverFactory.create((mutations) => stream.next(mutations));
40
+ if (observer) {
41
+ observer.observe(element, {
42
+ attributes: true
43
+ });
44
+ }
45
+ this._observedElements.set(element, { observer, stream, count: 1 });
46
+ }
47
+ else {
48
+ this._observedElements.get(element).count++;
49
+ }
50
+ return this._observedElements.get(element).stream;
51
+ }
52
+ /** @Hidden */
53
+ _unobserveElement(element) {
54
+ if (this._observedElements.has(element)) {
55
+ this._observedElements.get(element).count--;
56
+ if (!this._observedElements.get(element).count) {
57
+ this._cleanupObserver(element);
58
+ }
59
+ }
60
+ }
61
+ /** @hidden */
62
+ _cleanupObserver(element) {
63
+ if (this._observedElements.has(element)) {
64
+ const { observer, stream } = this._observedElements.get(element);
65
+ if (observer) {
66
+ observer.disconnect();
67
+ }
68
+ stream.complete();
69
+ this._observedElements.delete(element);
70
+ }
71
+ }
72
+ }
73
+ AttributeObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: AttributeObserver, deps: [{ token: i1.MutationObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable });
74
+ AttributeObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: AttributeObserver, providedIn: 'root' });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: AttributeObserver, decorators: [{
76
+ type: Injectable,
77
+ args: [{
78
+ providedIn: 'root'
79
+ }]
80
+ }], ctorParameters: function () { return [{ type: i1.MutationObserverFactory }]; } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLm9ic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9zZXJ2aWNlcy9vYnNlcnZlcnMvYXR0cmlidXRlLm9ic2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFZLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQWMsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFLcEUsTUFBTSxPQUFPLGlCQUFpQjtJQVcxQixjQUFjO0lBQ2QsWUFBb0Isd0JBQWlEO1FBQWpELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUFYckUsY0FBYztRQUNHLHNCQUFpQixHQUFHLElBQUksR0FBRyxFQU96QyxDQUFDO0lBR29FLENBQUM7SUFFekUsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELGNBQWM7SUFDZCxPQUFPLENBQUMsWUFBb0U7UUFDeEUsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQW9DLEVBQUUsRUFBRTtZQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFaEQsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztJQUNkLFNBQVMsQ0FBQyxPQUErRDtRQUNyRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsY0FBYztJQUNOLGVBQWUsQ0FBQyxPQUFnQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztZQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0YsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQixDQUFDLENBQUM7YUFDTjtZQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN2RTthQUFNO1lBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoRDtRQUNELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxNQUFNLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWM7SUFDTixpQkFBaUIsQ0FBQyxPQUFnQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxLQUFLLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNsQztTQUNKO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTixnQkFBZ0IsQ0FBQyxPQUFnQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDckMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRSxDQUFDO1lBQ2xFLElBQUksUUFBUSxFQUFFO2dCQUNWLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUN6QjtZQUNELE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQzs7OEdBM0VRLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmQsTUFBTTsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiAqL1xuaW1wb3J0IHsgTXV0YXRpb25PYnNlcnZlckZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2hhcy1lbGVtZW50LXJlZi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZ2V0TmF0aXZlRWxlbWVudCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW5hdGl2ZS1lbGVtZW50JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdHRyaWJ1dGVPYnNlcnZlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vYnNlcnZlZEVsZW1lbnRzID0gbmV3IE1hcDxcbiAgICAgICAgRWxlbWVudCxcbiAgICAgICAge1xuICAgICAgICAgICAgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsO1xuICAgICAgICAgICAgc3RyZWFtOiBTdWJqZWN0PE11dGF0aW9uUmVjb3JkW10+O1xuICAgICAgICAgICAgY291bnQ6IG51bWJlcjtcbiAgICAgICAgfVxuICAgID4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfbXV0YXRpb25PYnNlcnZlckZhY3Rvcnk6IE11dGF0aW9uT2JzZXJ2ZXJGYWN0b3J5KSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5mb3JFYWNoKChfLCBlbGVtZW50KSA9PiB0aGlzLl9jbGVhbnVwT2JzZXJ2ZXIoZWxlbWVudCkpO1xuICAgIH1cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgb2JzZXJ2ZShlbGVtZW50T3JSZWY6IEVsZW1lbnQgfCBFbGVtZW50UmVmPEVsZW1lbnQ+IHwgSGFzRWxlbWVudFJlZjxFbGVtZW50Pik6IE9ic2VydmFibGU8TXV0YXRpb25SZWNvcmRbXT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZ2V0TmF0aXZlRWxlbWVudChlbGVtZW50T3JSZWYpO1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxNdXRhdGlvblJlY29yZFtdPikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gdGhpcy5fb2JzZXJ2ZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBzdHJlYW0uc3Vic2NyaWJlKG9ic2VydmVyKTtcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91bm9ic2VydmVFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICB1bm9ic2VydmUoZWxlbWVudDogSGFzRWxlbWVudFJlZjxFbGVtZW50PiB8IEVsZW1lbnQgfCBFbGVtZW50UmVmPEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vub2JzZXJ2ZUVsZW1lbnQoZ2V0TmF0aXZlRWxlbWVudChlbGVtZW50KSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vYnNlcnZlRWxlbWVudChlbGVtZW50OiBFbGVtZW50KTogU3ViamVjdDxNdXRhdGlvblJlY29yZFtdPiB7XG4gICAgICAgIGlmICghdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5oYXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBTdWJqZWN0PE11dGF0aW9uUmVjb3JkW10+KCk7XG4gICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IHRoaXMuX211dGF0aW9uT2JzZXJ2ZXJGYWN0b3J5LmNyZWF0ZSgobXV0YXRpb25zKSA9PiBzdHJlYW0ubmV4dChtdXRhdGlvbnMpKTtcbiAgICAgICAgICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLnNldChlbGVtZW50LCB7IG9ic2VydmVyLCBzdHJlYW0sIGNvdW50OiAxIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQoZWxlbWVudCkhLmNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KGVsZW1lbnQpIS5zdHJlYW07XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBwcml2YXRlIF91bm9ic2VydmVFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX29ic2VydmVkRWxlbWVudHMuaGFzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmdldChlbGVtZW50KSEuY291bnQtLTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQoZWxlbWVudCkhLmNvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2xlYW51cE9ic2VydmVyKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jbGVhbnVwT2JzZXJ2ZXIoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5oYXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgb2JzZXJ2ZXIsIHN0cmVhbSB9ID0gdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQoZWxlbWVudCkhO1xuICAgICAgICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RyZWFtLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==