@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,97 @@
1
+ import { ElementRef, Inject, Injectable, NgZone, Optional, Self, SkipSelf } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest, filter, firstValueFrom, ReplaySubject, Subject } from 'rxjs';
3
+ import { FDK_FOCUSABLE_ITEM_DIRECTIVE } from './focusable.tokens';
4
+ import { FocusableItemDirective } from './focusable-item.directive';
5
+ import { FocusableObserver } from './focusable.observer';
6
+ import { DefaultFocusableItemViewModifier } from './default-focusable-item-view-modifier';
7
+ import { map, startWith, takeUntil, tap } from 'rxjs/operators';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./focusable.observer";
10
+ import * as i2 from "./focusable-item.directive";
11
+ export class FdkFocusableItemProvider extends ReplaySubject {
12
+ /** @hidden */
13
+ constructor(ngZone, elementRef, focusableObserver, selfFocusable$, parentFocusable$) {
14
+ super(1);
15
+ this.ngZone = ngZone;
16
+ this.elementRef = elementRef;
17
+ this.focusableObserver = focusableObserver;
18
+ this.selfFocusable$ = selfFocusable$;
19
+ this.parentFocusable$ = parentFocusable$;
20
+ /** @hidden */
21
+ this.focusable = true;
22
+ /** @hidden */
23
+ this._viewModifiers$ = new BehaviorSubject(this._getInitialViewModifiers());
24
+ /** @hidden */
25
+ this._focusableChange$ = this._getFocusableChange$();
26
+ /** @hidden */
27
+ this._destroy$ = new Subject();
28
+ combineLatest([this._focusableChange$, this._viewModifiers$])
29
+ .pipe(tap(([isFocusable]) => this.setFocusable(isFocusable)), takeUntil(this._destroy$))
30
+ .subscribe();
31
+ this._focusableChange$
32
+ .pipe(tap((isFocusable) => (this.focusable = isFocusable)), tap((isFocusable) => this.next(isFocusable)), takeUntil(this._destroy$))
33
+ .subscribe();
34
+ }
35
+ /** @hidden */
36
+ ngOnDestroy() {
37
+ this._destroy$.next();
38
+ this._destroy$.complete();
39
+ this.complete();
40
+ if (this._focusableObserver$) {
41
+ this.focusableObserver.unobserve(this.elementRef);
42
+ }
43
+ }
44
+ /**
45
+ * Adds view modifier
46
+ * @param modifier
47
+ */
48
+ addViewModifier(modifier) {
49
+ const viewModifiers = [...new Set([...this._viewModifiers$.value, modifier]).values()];
50
+ this._viewModifiers$.next(viewModifiers);
51
+ }
52
+ /**
53
+ * Sets focusable state of the element.
54
+ * @param isReadonly
55
+ */
56
+ setFocusable(isReadonly) {
57
+ firstValueFrom(this.ngZone.onStable).then(() => {
58
+ this._viewModifiers$.value.forEach((viewModifier) => viewModifier.setFocusable(isReadonly));
59
+ });
60
+ }
61
+ /** @hidden */
62
+ _getInitialViewModifiers() {
63
+ return !this.selfFocusable$ ? [new DefaultFocusableItemViewModifier(this.elementRef)] : [this.selfFocusable$];
64
+ }
65
+ /** @hidden */
66
+ _getFocusableChange$() {
67
+ if (!this.selfFocusable$) {
68
+ this._focusableObserver$ = this.focusableObserver.observe(this.elementRef);
69
+ }
70
+ const self$ = (this.selfFocusable$ || this._focusableObserver$).pipe(startWith(this.focusable));
71
+ const disablingEvents = [self$];
72
+ if (this.parentFocusable$) {
73
+ disablingEvents.push(this.parentFocusable$);
74
+ }
75
+ return combineLatest(disablingEvents).pipe(map((focusableStates) => focusableStates.some(Boolean)), filter((isFocusable) => isFocusable !== this.focusable));
76
+ }
77
+ }
78
+ FdkFocusableItemProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FdkFocusableItemProvider, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i1.FocusableObserver }, { token: FDK_FOCUSABLE_ITEM_DIRECTIVE, optional: true, self: true }, { token: FDK_FOCUSABLE_ITEM_DIRECTIVE, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable });
79
+ FdkFocusableItemProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FdkFocusableItemProvider });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FdkFocusableItemProvider, decorators: [{
81
+ type: Injectable
82
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i1.FocusableObserver }, { type: i2.FocusableItemDirective, decorators: [{
83
+ type: Optional
84
+ }, {
85
+ type: Self
86
+ }, {
87
+ type: Inject,
88
+ args: [FDK_FOCUSABLE_ITEM_DIRECTIVE]
89
+ }] }, { type: i2.FocusableItemDirective, decorators: [{
90
+ type: Optional
91
+ }, {
92
+ type: SkipSelf
93
+ }, {
94
+ type: Inject,
95
+ args: [FDK_FOCUSABLE_ITEM_DIRECTIVE]
96
+ }] }]; } });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmRrLWZvY3VzYWJsZS1pdGVtLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWl0ZW0vZmRrLWZvY3VzYWJsZS1pdGVtLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR2hFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFzQjtJQWdCaEUsY0FBYztJQUNkLFlBQ1ksTUFBYyxFQUNkLFVBQW1DLEVBQ25DLGlCQUFvQyxFQUNzQixjQUF1QyxFQUNuQyxnQkFBeUM7UUFFL0csS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBTkQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDc0IsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBQ25DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFyQm5ILGNBQWM7UUFDZCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGNBQWM7UUFDRyxvQkFBZSxHQUFpRCxJQUFJLGVBQWUsQ0FFbEcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQztRQUNuQyxjQUFjO1FBQ0csc0JBQWlCLEdBQXdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBS3RGLGNBQWM7UUFDRyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVc3QyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3hELElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ3RELFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzVCO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQjthQUNqQixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsRUFDcEQsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQzVDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzVCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNyRDtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsUUFBbUM7UUFDL0MsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxVQUFtQjtRQUM1QixjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7SUFDTix3QkFBd0I7UUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEgsQ0FBQztJQUVELGNBQWM7SUFDTixvQkFBb0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlFO1FBQ0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEcsTUFBTSxlQUFlLEdBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMvQztRQUNELE9BQU8sYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLENBQUMsZUFBMEIsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUNsRSxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFELENBQUM7SUFDTixDQUFDOztxSEF4RlEsd0JBQXdCLG1HQXFCRCw0QkFBNEIseUNBQ3hCLDRCQUE0Qjt5SEF0QnZELHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVOzswQkFzQkYsUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyw0QkFBNEI7OzBCQUN2RCxRQUFROzswQkFBSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBTZWxmLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtVmlld01vZGlmaWVyIH0gZnJvbSAnLi9mb2N1c2FibGUtaXRlbS12aWV3LW1vZGlmaWVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFIH0gZnJvbSAnLi9mb2N1c2FibGUudG9rZW5zJztcbmltcG9ydCB7IEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVPYnNlcnZlciB9IGZyb20gJy4vZm9jdXNhYmxlLm9ic2VydmVyJztcbmltcG9ydCB7IERlZmF1bHRGb2N1c2FibGVJdGVtVmlld01vZGlmaWVyIH0gZnJvbSAnLi9kZWZhdWx0LWZvY3VzYWJsZS1pdGVtLXZpZXctbW9kaWZpZXInO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmRrRm9jdXNhYmxlSXRlbVByb3ZpZGVyIGV4dGVuZHMgUmVwbGF5U3ViamVjdDxib29sZWFuPiBpbXBsZW1lbnRzIEZvY3VzYWJsZUl0ZW1WaWV3TW9kaWZpZXIsIE9uRGVzdHJveSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb2N1c2FibGUgPSB0cnVlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdmlld01vZGlmaWVycyQ6IEJlaGF2aW9yU3ViamVjdDxGb2N1c2FibGVJdGVtVmlld01vZGlmaWVyW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAgICAgRm9jdXNhYmxlSXRlbVZpZXdNb2RpZmllcltdXG4gICAgPih0aGlzLl9nZXRJbml0aWFsVmlld01vZGlmaWVycygpKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzYWJsZUNoYW5nZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9nZXRGb2N1c2FibGVDaGFuZ2UkKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzYWJsZU9ic2VydmVyJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgZm9jdXNhYmxlT2JzZXJ2ZXI6IEZvY3VzYWJsZU9ic2VydmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIEBJbmplY3QoRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSkgcHJpdmF0ZSBzZWxmRm9jdXNhYmxlJD86IEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBJbmplY3QoRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSkgcHJpdmF0ZSBwYXJlbnRGb2N1c2FibGUkPzogRm9jdXNhYmxlSXRlbURpcmVjdGl2ZVxuICAgICkge1xuICAgICAgICBzdXBlcigxKTtcbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5fZm9jdXNhYmxlQ2hhbmdlJCwgdGhpcy5fdmlld01vZGlmaWVycyRdKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChbaXNGb2N1c2FibGVdKSA9PiB0aGlzLnNldEZvY3VzYWJsZShpc0ZvY3VzYWJsZSkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlQ2hhbmdlJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChpc0ZvY3VzYWJsZSkgPT4gKHRoaXMuZm9jdXNhYmxlID0gaXNGb2N1c2FibGUpKSxcbiAgICAgICAgICAgICAgICB0YXAoKGlzRm9jdXNhYmxlKSA9PiB0aGlzLm5leHQoaXNGb2N1c2FibGUpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbXBsZXRlKCk7XG4gICAgICAgIGlmICh0aGlzLl9mb2N1c2FibGVPYnNlcnZlciQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlT2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHZpZXcgbW9kaWZpZXJcbiAgICAgKiBAcGFyYW0gbW9kaWZpZXJcbiAgICAgKi9cbiAgICBhZGRWaWV3TW9kaWZpZXIobW9kaWZpZXI6IEZvY3VzYWJsZUl0ZW1WaWV3TW9kaWZpZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld01vZGlmaWVycyA9IFsuLi5uZXcgU2V0KFsuLi50aGlzLl92aWV3TW9kaWZpZXJzJC52YWx1ZSwgbW9kaWZpZXJdKS52YWx1ZXMoKV07XG4gICAgICAgIHRoaXMuX3ZpZXdNb2RpZmllcnMkLm5leHQodmlld01vZGlmaWVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBmb2N1c2FibGUgc3RhdGUgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIGlzUmVhZG9ubHlcbiAgICAgKi9cbiAgICBzZXRGb2N1c2FibGUoaXNSZWFkb25seTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBmaXJzdFZhbHVlRnJvbSh0aGlzLm5nWm9uZS5vblN0YWJsZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl92aWV3TW9kaWZpZXJzJC52YWx1ZS5mb3JFYWNoKCh2aWV3TW9kaWZpZXIpID0+IHZpZXdNb2RpZmllci5zZXRGb2N1c2FibGUoaXNSZWFkb25seSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEluaXRpYWxWaWV3TW9kaWZpZXJzKCk6IEZvY3VzYWJsZUl0ZW1WaWV3TW9kaWZpZXJbXSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5zZWxmRm9jdXNhYmxlJCA/IFtuZXcgRGVmYXVsdEZvY3VzYWJsZUl0ZW1WaWV3TW9kaWZpZXIodGhpcy5lbGVtZW50UmVmKV0gOiBbdGhpcy5zZWxmRm9jdXNhYmxlJF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRGb2N1c2FibGVDaGFuZ2UkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZkZvY3VzYWJsZSQpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzYWJsZU9ic2VydmVyJCA9IHRoaXMuZm9jdXNhYmxlT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGYkID0gKHRoaXMuc2VsZkZvY3VzYWJsZSQgfHwgdGhpcy5fZm9jdXNhYmxlT2JzZXJ2ZXIkKS5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvY3VzYWJsZSkpO1xuICAgICAgICBjb25zdCBkaXNhYmxpbmdFdmVudHM6IE9ic2VydmFibGU8Ym9vbGVhbj5bXSA9IFtzZWxmJF07XG4gICAgICAgIGlmICh0aGlzLnBhcmVudEZvY3VzYWJsZSQpIHtcbiAgICAgICAgICAgIGRpc2FibGluZ0V2ZW50cy5wdXNoKHRoaXMucGFyZW50Rm9jdXNhYmxlJCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoZGlzYWJsaW5nRXZlbnRzKS5waXBlKFxuICAgICAgICAgICAgbWFwKChmb2N1c2FibGVTdGF0ZXM6IGJvb2xlYW5bXSkgPT4gZm9jdXNhYmxlU3RhdGVzLnNvbWUoQm9vbGVhbikpLFxuICAgICAgICAgICAgZmlsdGVyKChpc0ZvY3VzYWJsZSkgPT4gaXNGb2N1c2FibGUgIT09IHRoaXMuZm9jdXNhYmxlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0tdmlldy1tb2RpZmllci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWl0ZW0vZm9jdXNhYmxlLWl0ZW0tdmlldy1tb2RpZmllci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlSXRlbVZpZXdNb2RpZmllciB7XG4gICAgc2V0Rm9jdXNhYmxlOiAoaXNGb2N1c2FibGU6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,106 @@
1
+ import { Directive, ElementRef, Input } from '@angular/core';
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { BehaviorSubject, filter, first, ReplaySubject } from 'rxjs';
4
+ import { FDK_FOCUSABLE_ITEM_DIRECTIVE } from './focusable.tokens';
5
+ import { setFocusable } from './set-focusable';
6
+ import { FocusableObserver } from './focusable.observer';
7
+ import { takeUntil, tap } from 'rxjs/operators';
8
+ import { DestroyedService } from '../../services/destroyed.service';
9
+ import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "./focusable.observer";
12
+ import * as i2 from "../../services/destroyed.service";
13
+ export class DeprecatedFocusableItemDirective extends DeprecatedSelector {
14
+ }
15
+ DeprecatedFocusableItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedFocusableItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
16
+ DeprecatedFocusableItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: DeprecatedFocusableItemDirective, isStandalone: true, selector: "[fnFocusableItem]", providers: [
17
+ {
18
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
19
+ useValue: getDeprecatedModel('[fdkFocusableItem]', '[fnFocusableItem]')
20
+ }
21
+ ], usesInheritance: true, ngImport: i0 });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedFocusableItemDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ // eslint-disable-next-line @angular-eslint/directive-selector
26
+ selector: '[fnFocusableItem]',
27
+ standalone: true,
28
+ providers: [
29
+ {
30
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
31
+ useValue: getDeprecatedModel('[fdkFocusableItem]', '[fnFocusableItem]')
32
+ }
33
+ ]
34
+ }]
35
+ }] });
36
+ export class FocusableItemDirective extends ReplaySubject {
37
+ /** @hidden */
38
+ constructor(_elementRef, _focusableObserver, _destroy$) {
39
+ super(1);
40
+ this._elementRef = _elementRef;
41
+ this._focusableObserver = _focusableObserver;
42
+ this._destroy$ = _destroy$;
43
+ /** @hidden */
44
+ this._focusable = true;
45
+ /** @hidden */
46
+ this._viewInit$ = new BehaviorSubject(false);
47
+ /** Sets focusable state of the element. */
48
+ this.setFocusable = (isFocusable) => {
49
+ setFocusable(this, isFocusable);
50
+ };
51
+ this._focusableObserver
52
+ .observe(this._elementRef)
53
+ .pipe(tap((isFocusable) => {
54
+ if (isFocusable !== this._focusable) {
55
+ this.setFocusable(isFocusable);
56
+ this._focusable = isFocusable;
57
+ this.next(isFocusable);
58
+ }
59
+ }), takeUntil(this._destroy$))
60
+ .subscribe();
61
+ }
62
+ /** Whether the item is focusable. */
63
+ set fdkFocusableItem(val) {
64
+ this._viewInit$.pipe(filter(Boolean), first()).subscribe(() => this.setFocusable(coerceBooleanProperty(val)));
65
+ }
66
+ get fdkFocusableItem() {
67
+ return this._focusable;
68
+ }
69
+ /** @hidden */
70
+ ngAfterViewInit() {
71
+ this._viewInit$.next(true);
72
+ }
73
+ /** Element reference. */
74
+ elementRef() {
75
+ return this._elementRef;
76
+ }
77
+ /** @hidden */
78
+ ngOnDestroy() {
79
+ this.complete();
80
+ }
81
+ }
82
+ FocusableItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableItemDirective, deps: [{ token: i0.ElementRef }, { token: i1.FocusableObserver }, { token: i2.DestroyedService }], target: i0.ɵɵFactoryTarget.Directive });
83
+ FocusableItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: FocusableItemDirective, isStandalone: true, selector: "[fdkFocusableItem]", inputs: { fdkFocusableItem: "fdkFocusableItem" }, providers: [
84
+ {
85
+ provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,
86
+ useExisting: FocusableItemDirective
87
+ },
88
+ DestroyedService
89
+ ], usesInheritance: true, ngImport: i0 });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableItemDirective, decorators: [{
91
+ type: Directive,
92
+ args: [{
93
+ selector: '[fdkFocusableItem]',
94
+ standalone: true,
95
+ providers: [
96
+ {
97
+ provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,
98
+ useExisting: FocusableItemDirective
99
+ },
100
+ DestroyedService
101
+ ]
102
+ }]
103
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FocusableObserver }, { type: i2.DestroyedService }]; }, propDecorators: { fdkFocusableItem: [{
104
+ type: Input
105
+ }] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOzs7O0FBYXpDLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxrQkFBa0I7OzZIQUEzRCxnQ0FBZ0M7aUhBQWhDLGdDQUFnQyxnRUFQOUI7UUFDUDtZQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDO1NBQzFFO0tBQ0o7MkZBRVEsZ0NBQWdDO2tCQVg1QyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUM7eUJBQzFFO3FCQUNKO2lCQUNKOztBQWNELE1BQU0sT0FBTyxzQkFDVCxTQUFRLGFBQXNCO0lBa0I5QixjQUFjO0lBQ2QsWUFDWSxXQUFvQyxFQUNwQyxrQkFBcUMsRUFDckMsU0FBMkI7UUFFbkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBSkQsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFUdkMsY0FBYztRQUNOLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDMUIsY0FBYztRQUNHLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQTZCekQsMkNBQTJDO1FBQzNDLGlCQUFZLEdBQUcsQ0FBQyxXQUFvQixFQUFRLEVBQUU7WUFDMUMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUM7UUF2QkUsSUFBSSxDQUFDLGtCQUFrQjthQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUN6QixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxXQUFXLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUI7UUFDTCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUM1QjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFuQ0QscUNBQXFDO0lBQ3JDLElBQ0ksZ0JBQWdCLENBQUMsR0FBaUI7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQTZCRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFPRCx5QkFBeUI7SUFDekIsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7bUhBM0RRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLG1IQVJwQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxXQUFXLEVBQUUsc0JBQXNCO1NBQ3RDO1FBQ0QsZ0JBQWdCO0tBQ25COzJGQUVRLHNCQUFzQjtrQkFYbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsd0JBQXdCO3lCQUN0Qzt3QkFDRCxnQkFBZ0I7cUJBQ25CO2lCQUNKO2dLQU9PLGdCQUFnQjtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIsIGZpcnN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFIH0gZnJvbSAnLi9mb2N1c2FibGUudG9rZW5zJztcbmltcG9ydCB7IEZvY3VzYWJsZUl0ZW1WaWV3TW9kaWZpZXIgfSBmcm9tICcuL2ZvY3VzYWJsZS1pdGVtLXZpZXctbW9kaWZpZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IHNldEZvY3VzYWJsZSB9IGZyb20gJy4vc2V0LWZvY3VzYWJsZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVPYnNlcnZlciB9IGZyb20gJy4vZm9jdXNhYmxlLm9ic2VydmVyJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGVzdHJveWVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Rlc3Ryb3llZC5zZXJ2aWNlJztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2hhcy1lbGVtZW50LXJlZi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZuRm9jdXNhYmxlSXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka0ZvY3VzYWJsZUl0ZW1dJywgJ1tmbkZvY3VzYWJsZUl0ZW1dJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrRm9jdXNhYmxlSXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRm9jdXNhYmxlSXRlbURpcmVjdGl2ZVxuICAgICAgICB9LFxuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c2FibGVJdGVtRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+XG4gICAgaW1wbGVtZW50cyBIYXNFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIEZvY3VzYWJsZUl0ZW1WaWV3TW9kaWZpZXJcbntcbiAgICAvKiogV2hldGhlciB0aGUgaXRlbSBpcyBmb2N1c2FibGUuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZmRrRm9jdXNhYmxlSXRlbSh2YWw6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl92aWV3SW5pdCQucGlwZShmaWx0ZXIoQm9vbGVhbiksIGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldEZvY3VzYWJsZShjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKSkpO1xuICAgIH1cblxuICAgIGdldCBmZGtGb2N1c2FibGVJdGVtKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNhYmxlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNhYmxlID0gdHJ1ZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdJbml0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgX2ZvY3VzYWJsZU9ic2VydmVyOiBGb2N1c2FibGVPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSBfZGVzdHJveSQ6IERlc3Ryb3llZFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoMSk7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZU9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChpc0ZvY3VzYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGb2N1c2FibGUgIT09IHRoaXMuX2ZvY3VzYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRGb2N1c2FibGUoaXNGb2N1c2FibGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNhYmxlID0gaXNGb2N1c2FibGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHQoaXNGb2N1c2FibGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92aWV3SW5pdCQubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogU2V0cyBmb2N1c2FibGUgc3RhdGUgb2YgdGhlIGVsZW1lbnQuICovXG4gICAgc2V0Rm9jdXNhYmxlID0gKGlzRm9jdXNhYmxlOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgIHNldEZvY3VzYWJsZSh0aGlzLCBpc0ZvY3VzYWJsZSk7XG4gICAgfTtcblxuICAgIC8qKiBFbGVtZW50IHJlZmVyZW5jZS4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FocusableItemDirective, DeprecatedFocusableItemDirective } from './focusable-item.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class FocusableItemModule {
5
+ }
6
+ FocusableItemModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableItemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ FocusableItemModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: FocusableItemModule, imports: [FocusableItemDirective, DeprecatedFocusableItemDirective], exports: [FocusableItemDirective, DeprecatedFocusableItemDirective] });
8
+ FocusableItemModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableItemModule });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableItemModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [FocusableItemDirective, DeprecatedFocusableItemDirective],
13
+ exports: [FocusableItemDirective, DeprecatedFocusableItemDirective]
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU10RyxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsWUFIbEIsc0JBQXNCLEVBQUUsZ0NBQWdDLGFBQ3hELHNCQUFzQixFQUFFLGdDQUFnQztpSEFFekQsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBSi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0NBQWdDLENBQUM7b0JBQ25FLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLGdDQUFnQyxDQUFDO2lCQUN0RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtRGlyZWN0aXZlLCBEZXByZWNhdGVkRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSwgRGVwcmVjYXRlZEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtGb2N1c2FibGVJdGVtRGlyZWN0aXZlLCBEZXByZWNhdGVkRm9jdXNhYmxlSXRlbURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlSXRlbU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,47 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { distinctUntilChanged, map } from 'rxjs/operators';
3
+ import { isElementFocusableByDefault } from './is-element-focusable-by-default';
4
+ import { getNativeElement } from '../../helpers/get-native-element';
5
+ import { AttributeObserver } from '../../services/observers/attribute.observer';
6
+ import { ReadonlyObserver } from '../readonly/readonly.observer';
7
+ import { DisabledObserver } from '../disabled/disabled.observer';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../services/observers/attribute.observer";
10
+ export class FocusableObserver {
11
+ /** @hidden */
12
+ constructor(_attributeObserver) {
13
+ this._attributeObserver = _attributeObserver;
14
+ }
15
+ /** @Hidden */
16
+ static isFocusable(element) {
17
+ if (ReadonlyObserver.isReadonly(element)) {
18
+ return false;
19
+ }
20
+ if (DisabledObserver.isDisabled(element)) {
21
+ return false;
22
+ }
23
+ const tabIndex = parseInt(element.getAttribute('tabindex') + '', 10);
24
+ if (isNaN(tabIndex)) {
25
+ return isElementFocusableByDefault(element);
26
+ }
27
+ return tabIndex > -1;
28
+ }
29
+ /** @hidden */
30
+ observe(element) {
31
+ const nativeElement = getNativeElement(element);
32
+ return this._attributeObserver.observe(nativeElement).pipe(map(() => FocusableObserver.isFocusable(nativeElement)), distinctUntilChanged());
33
+ }
34
+ /** @hidden */
35
+ unobserve(element) {
36
+ this._attributeObserver.unobserve(element);
37
+ }
38
+ }
39
+ FocusableObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableObserver, deps: [{ token: i1.AttributeObserver }], target: i0.ɵɵFactoryTarget.Injectable });
40
+ FocusableObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableObserver, providedIn: 'root' });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableObserver, decorators: [{
42
+ type: Injectable,
43
+ args: [{
44
+ providedIn: 'root'
45
+ }]
46
+ }], ctorParameters: function () { return [{ type: i1.AttributeObserver }]; } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLm9ic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS5vYnNlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBS2pFLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsY0FBYztJQUNkLFlBQW9CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO0lBQUcsQ0FBQztJQUU3RCxjQUFjO0lBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFnQjtRQUMvQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0QyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7UUFDRCxPQUFPLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsY0FBYztJQUNkLE9BQU8sQ0FBQyxPQUErRDtRQUNuRSxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUN0RCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQ3ZELG9CQUFvQixFQUFFLENBQ3pCLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNkLFNBQVMsQ0FBQyxPQUErRDtRQUNyRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7OzhHQS9CUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0VsZW1lbnRGb2N1c2FibGVCeURlZmF1bHQgfSBmcm9tICcuL2lzLWVsZW1lbnQtZm9jdXNhYmxlLWJ5LWRlZmF1bHQnO1xuaW1wb3J0IHsgZ2V0TmF0aXZlRWxlbWVudCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW5hdGl2ZS1lbGVtZW50JztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2hhcy1lbGVtZW50LXJlZi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlT2JzZXJ2ZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYnNlcnZlcnMvYXR0cmlidXRlLm9ic2VydmVyJztcbmltcG9ydCB7IFJlYWRvbmx5T2JzZXJ2ZXIgfSBmcm9tICcuLi9yZWFkb25seS9yZWFkb25seS5vYnNlcnZlcic7XG5pbXBvcnQgeyBEaXNhYmxlZE9ic2VydmVyIH0gZnJvbSAnLi4vZGlzYWJsZWQvZGlzYWJsZWQub2JzZXJ2ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzYWJsZU9ic2VydmVyIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2F0dHJpYnV0ZU9ic2VydmVyOiBBdHRyaWJ1dGVPYnNlcnZlcikge31cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgc3RhdGljIGlzRm9jdXNhYmxlKGVsZW1lbnQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFJlYWRvbmx5T2JzZXJ2ZXIuaXNSZWFkb25seShlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChEaXNhYmxlZE9ic2VydmVyLmlzRGlzYWJsZWQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YWJJbmRleCA9IHBhcnNlSW50KGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpICsgJycsIDEwKTtcbiAgICAgICAgaWYgKGlzTmFOKHRhYkluZGV4KSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzRWxlbWVudEZvY3VzYWJsZUJ5RGVmYXVsdChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFiSW5kZXggPiAtMTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9ic2VydmUoZWxlbWVudDogSGFzRWxlbWVudFJlZjxFbGVtZW50PiB8IEVsZW1lbnQgfCBFbGVtZW50UmVmPEVsZW1lbnQ+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSBnZXROYXRpdmVFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlT2JzZXJ2ZXIub2JzZXJ2ZShuYXRpdmVFbGVtZW50KS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IEZvY3VzYWJsZU9ic2VydmVyLmlzRm9jdXNhYmxlKG5hdGl2ZUVsZW1lbnQpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHVub2JzZXJ2ZShlbGVtZW50OiBIYXNFbGVtZW50UmVmPEVsZW1lbnQ+IHwgRWxlbWVudCB8IEVsZW1lbnRSZWY8RWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlT2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const FDK_FOCUSABLE_ITEM_DIRECTIVE = new InjectionToken('Focusable directive token');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLnRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtaXRlbS9mb2N1c2FibGUudG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQUMsMkJBQTJCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFID0gbmV3IEluamVjdGlvblRva2VuKCdGb2N1c2FibGUgZGlyZWN0aXZlIHRva2VuJyk7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export * from './focusable-item.module';
2
+ export * from './focusable-item.directive';
3
+ export * from './focusable.tokens';
4
+ export * from './set-focusable';
5
+ export * from './focusable-item-view-modifier.interface';
6
+ export * from './focusable.observer';
7
+ export * from './default-focusable-item-view-modifier';
8
+ export * from './fdk-focusable-item-provider.service';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWl0ZW0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtaXRlbS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUudG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vc2V0LWZvY3VzYWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZvY3VzYWJsZS1pdGVtLXZpZXctbW9kaWZpZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLm9ic2VydmVyJztcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1mb2N1c2FibGUtaXRlbS12aWV3LW1vZGlmaWVyJztcbmV4cG9ydCAqIGZyb20gJy4vZmRrLWZvY3VzYWJsZS1pdGVtLXByb3ZpZGVyLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,32 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import { getNativeElement } from '../../helpers/get-native-element';
3
+ const focusableTagnamesByDefault = new Set(['select', 'textarea', 'input', 'button', 'audio', 'video']);
4
+ const focusableTagOptions = [
5
+ {
6
+ tag: 'div',
7
+ attributes: [
8
+ {
9
+ name: 'contenteditable',
10
+ valueMatcher: (value) => coerceBooleanProperty(value)
11
+ }
12
+ ]
13
+ }
14
+ ];
15
+ /** @hidden */
16
+ export function isElementFocusableByDefault(el) {
17
+ const element = getNativeElement(el);
18
+ const tagName = element.tagName.toLowerCase();
19
+ if (focusableTagnamesByDefault.has(tagName)) {
20
+ return true;
21
+ }
22
+ return focusableTagOptions.some((tagOptions) => {
23
+ if (tagOptions.tag === tagName) {
24
+ return tagOptions.attributes.some((attribute) => {
25
+ const attrVal = element.getAttribute(attribute.name);
26
+ return attrVal && attribute.valueMatcher(attrVal);
27
+ });
28
+ }
29
+ return false;
30
+ });
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC1mb2N1c2FibGUtYnktZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtaXRlbS9pcy1lbGVtZW50LWZvY3VzYWJsZS1ieS1kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFFeEcsTUFBTSxtQkFBbUIsR0FBRztJQUN4QjtRQUNJLEdBQUcsRUFBRSxLQUFLO1FBQ1YsVUFBVSxFQUFFO1lBQ1I7Z0JBQ0ksSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsWUFBWSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7YUFDaEU7U0FDSjtLQUNKO0NBQ0osQ0FBQztBQUVGLGNBQWM7QUFDZCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsRUFBMEQ7SUFDbEcsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxJQUFJLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN6QyxPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUMzQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQzVCLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDNUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JELE9BQU8sT0FBTyxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXROYXRpdmVFbGVtZW50IH0gZnJvbSAnLi4vLi4vaGVscGVycy9nZXQtbmF0aXZlLWVsZW1lbnQnO1xuXG5jb25zdCBmb2N1c2FibGVUYWduYW1lc0J5RGVmYXVsdCA9IG5ldyBTZXQoWydzZWxlY3QnLCAndGV4dGFyZWEnLCAnaW5wdXQnLCAnYnV0dG9uJywgJ2F1ZGlvJywgJ3ZpZGVvJ10pO1xuXG5jb25zdCBmb2N1c2FibGVUYWdPcHRpb25zID0gW1xuICAgIHtcbiAgICAgICAgdGFnOiAnZGl2JyxcbiAgICAgICAgYXR0cmlidXRlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjb250ZW50ZWRpdGFibGUnLFxuICAgICAgICAgICAgICAgIHZhbHVlTWF0Y2hlcjogKHZhbHVlOiBzdHJpbmcpID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH1cbl07XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50Rm9jdXNhYmxlQnlEZWZhdWx0KGVsOiBIYXNFbGVtZW50UmVmPEVsZW1lbnQ+IHwgRWxlbWVudCB8IEVsZW1lbnRSZWY8RWxlbWVudD4pOiBib29sZWFuIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZ2V0TmF0aXZlRWxlbWVudChlbCk7XG4gICAgY29uc3QgdGFnTmFtZSA9IGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChmb2N1c2FibGVUYWduYW1lc0J5RGVmYXVsdC5oYXModGFnTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvY3VzYWJsZVRhZ09wdGlvbnMuc29tZSgodGFnT3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAodGFnT3B0aW9ucy50YWcgPT09IHRhZ05hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0YWdPcHRpb25zLmF0dHJpYnV0ZXMuc29tZSgoYXR0cmlidXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0clZhbCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZS5uYW1lKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXR0clZhbCAmJiBhdHRyaWJ1dGUudmFsdWVNYXRjaGVyKGF0dHJWYWwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xufVxuIl19
@@ -0,0 +1,12 @@
1
+ import { getNativeElement } from '../../helpers/get-native-element';
2
+ /** @Hidden */
3
+ export function setFocusable(element, isFocusable) {
4
+ const htmlElement = getNativeElement(element);
5
+ if (isFocusable) {
6
+ htmlElement.setAttribute('tabindex', '0');
7
+ }
8
+ else {
9
+ htmlElement.setAttribute('tabindex', '-1');
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWZvY3VzYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtaXRlbS9zZXQtZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3BFLGNBQWM7QUFDZCxNQUFNLFVBQVUsWUFBWSxDQUN4QixPQUErRCxFQUMvRCxXQUFvQjtJQUVwQixNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxJQUFJLFdBQVcsRUFBRTtRQUNiLFdBQVcsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQzdDO1NBQU07UUFDSCxXQUFXLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM5QztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXROYXRpdmVFbGVtZW50IH0gZnJvbSAnLi4vLi4vaGVscGVycy9nZXQtbmF0aXZlLWVsZW1lbnQnO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaGFzLWVsZW1lbnQtcmVmLmludGVyZmFjZSc7XG5cbi8qKiBASGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0Rm9jdXNhYmxlKFxuICAgIGVsZW1lbnQ6IEhhc0VsZW1lbnRSZWY8RWxlbWVudD4gfCBFbGVtZW50IHwgRWxlbWVudFJlZjxFbGVtZW50PixcbiAgICBpc0ZvY3VzYWJsZTogYm9vbGVhblxuKTogdm9pZCB7XG4gICAgY29uc3QgaHRtbEVsZW1lbnQgPSBnZXROYXRpdmVFbGVtZW50KGVsZW1lbnQpO1xuICAgIGlmIChpc0ZvY3VzYWJsZSkge1xuICAgICAgICBodG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBodG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJyk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,79 @@
1
+ import { ContentChildren, Directive, Input, QueryList } from '@angular/core';
2
+ import { map, startWith, takeUntil, tap } from 'rxjs/operators';
3
+ import { FocusableListService } from './focusable-list.service';
4
+ import { FocusableItemDirective } from '../focusable-item/focusable-item.directive';
5
+ import { DestroyedService } from '../../services/destroyed.service';
6
+ import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./focusable-list.service";
9
+ import * as i2 from "../../services/destroyed.service";
10
+ export class DeprecatedFocusableListDirective extends DeprecatedSelector {
11
+ }
12
+ DeprecatedFocusableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedFocusableListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
13
+ DeprecatedFocusableListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: DeprecatedFocusableListDirective, isStandalone: true, selector: "[fnFocusableList]", providers: [
14
+ {
15
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
16
+ useValue: getDeprecatedModel('[fdkFocusableList]', '[fnFocusableList]')
17
+ }
18
+ ], usesInheritance: true, ngImport: i0 });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedFocusableListDirective, decorators: [{
20
+ type: Directive,
21
+ args: [{
22
+ // eslint-disable-next-line @angular-eslint/directive-selector
23
+ selector: '[fnFocusableList]',
24
+ standalone: true,
25
+ providers: [
26
+ {
27
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
28
+ useValue: getDeprecatedModel('[fdkFocusableList]', '[fnFocusableList]')
29
+ }
30
+ ]
31
+ }]
32
+ }] });
33
+ export class FocusableListDirective {
34
+ /** @hidden */
35
+ constructor(_focusableListService, _destroy$) {
36
+ this._focusableListService = _focusableListService;
37
+ this._destroy$ = _destroy$;
38
+ /** Direction of navigation. */
39
+ this.navigationDirection = 'vertical';
40
+ /** Direction of the content. */
41
+ this.contentDirection = 'ltr';
42
+ }
43
+ /** @hidden */
44
+ ngAfterViewInit() {
45
+ this._focusableItems.changes
46
+ .pipe(startWith(this._focusableItems), map((queryList) => queryList.toArray()), tap((items) => {
47
+ const focusableItems = items.map((item, index) => ({
48
+ index,
49
+ focusable: () => item.fdkFocusableItem,
50
+ elementRef: () => item.elementRef(),
51
+ focus: () => item.elementRef().nativeElement.focus()
52
+ }));
53
+ this._focusableListService.initialize(focusableItems, {
54
+ direction: this.navigationDirection,
55
+ contentDirection: this.contentDirection
56
+ });
57
+ }), takeUntil(this._destroy$))
58
+ .subscribe();
59
+ }
60
+ }
61
+ FocusableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableListDirective, deps: [{ token: i1.FocusableListService }, { token: i2.DestroyedService }], target: i0.ɵɵFactoryTarget.Directive });
62
+ FocusableListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: FocusableListDirective, isStandalone: true, selector: "[fdkFocusableList]", inputs: { navigationDirection: "navigationDirection", contentDirection: "contentDirection" }, providers: [FocusableListService, DestroyedService], queries: [{ propertyName: "_focusableItems", predicate: FocusableItemDirective }], exportAs: ["fdkFocusableList"], ngImport: i0 });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableListDirective, decorators: [{
64
+ type: Directive,
65
+ args: [{
66
+ selector: '[fdkFocusableList]',
67
+ exportAs: 'fdkFocusableList',
68
+ standalone: true,
69
+ providers: [FocusableListService, DestroyedService]
70
+ }]
71
+ }], ctorParameters: function () { return [{ type: i1.FocusableListService }, { type: i2.DestroyedService }]; }, propDecorators: { navigationDirection: [{
72
+ type: Input
73
+ }], contentDirection: [{
74
+ type: Input
75
+ }], _focusableItems: [{
76
+ type: ContentChildren,
77
+ args: [FocusableItemDirective]
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L2ZvY3VzYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLGVBQWUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOzs7O0FBYXpDLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxrQkFBa0I7OzZIQUEzRCxnQ0FBZ0M7aUhBQWhDLGdDQUFnQyxnRUFQOUI7UUFDUDtZQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDO1NBQzFFO0tBQ0o7MkZBRVEsZ0NBQWdDO2tCQVg1QyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUM7eUJBQzFFO3FCQUNKO2lCQUNKOztBQVNELE1BQU0sT0FBTyxzQkFBc0I7SUFZL0IsY0FBYztJQUNkLFlBQW9CLHFCQUEyQyxFQUFVLFNBQTJCO1FBQWhGLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVpwRywrQkFBK0I7UUFFL0Isd0JBQW1CLEdBQThCLFVBQVUsQ0FBQztRQUU1RCxnQ0FBZ0M7UUFFaEMscUJBQWdCLEdBQXlCLEtBQUssQ0FBQztJQU13RCxDQUFDO0lBRXhHLGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO2FBQ3ZCLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUMvQixHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUN2QyxHQUFHLENBQUMsQ0FBQyxLQUErQixFQUFRLEVBQUU7WUFDMUMsTUFBTSxjQUFjLEdBQW9CLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRSxLQUFLO2dCQUNMLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO2dCQUN0QyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO2FBQ3ZELENBQUMsQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUU7Z0JBQ2xELFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2dCQUNuQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2FBQzFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzVCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQzs7bUhBcENRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLCtKQUZwQixDQUFDLG9CQUFvQixFQUFFLGdCQUFnQixDQUFDLDBEQVlsQyxzQkFBc0I7MkZBVjlCLHNCQUFzQjtrQkFObEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3REOzBJQUlHLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJMkMsZUFBZTtzQkFBL0QsZUFBZTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgSW5wdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbSwgRm9jdXNhYmxlTGlzdFNlcnZpY2UgfSBmcm9tICcuL2ZvY3VzYWJsZS1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGVzdHJveWVkLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZuRm9jdXNhYmxlTGlzdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka0ZvY3VzYWJsZUxpc3RdJywgJ1tmbkZvY3VzYWJsZUxpc3RdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZEZvY3VzYWJsZUxpc3REaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrRm9jdXNhYmxlTGlzdF0nLFxuICAgIGV4cG9ydEFzOiAnZmRrRm9jdXNhYmxlTGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtGb2N1c2FibGVMaXN0U2VydmljZSwgRGVzdHJveWVkU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlTGlzdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBEaXJlY3Rpb24gb2YgbmF2aWdhdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hdmlnYXRpb25EaXJlY3Rpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAndmVydGljYWwnO1xuXG4gICAgLyoqIERpcmVjdGlvbiBvZiB0aGUgY29udGVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRlbnREaXJlY3Rpb246ICdsdHInIHwgJ3J0bCcgfCBudWxsID0gJ2x0cic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSkgcHJpdmF0ZSBfZm9jdXNhYmxlSXRlbXM6IFF1ZXJ5TGlzdDxGb2N1c2FibGVJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9jdXNhYmxlTGlzdFNlcnZpY2U6IEZvY3VzYWJsZUxpc3RTZXJ2aWNlLCBwcml2YXRlIF9kZXN0cm95JDogRGVzdHJveWVkU2VydmljZSkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fZm9jdXNhYmxlSXRlbXMpLFxuICAgICAgICAgICAgICAgIG1hcCgocXVlcnlMaXN0KSA9PiBxdWVyeUxpc3QudG9BcnJheSgpKSxcbiAgICAgICAgICAgICAgICB0YXAoKGl0ZW1zOiBGb2N1c2FibGVJdGVtRGlyZWN0aXZlW10pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9jdXNhYmxlSXRlbXM6IEZvY3VzYWJsZUl0ZW1bXSA9IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogKCkgPT4gaXRlbS5mZGtGb2N1c2FibGVJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFJlZjogKCkgPT4gaXRlbS5lbGVtZW50UmVmKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb2N1czogKCkgPT4gaXRlbS5lbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdFNlcnZpY2UuaW5pdGlhbGl6ZShmb2N1c2FibGVJdGVtcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50RGlyZWN0aW9uOiB0aGlzLmNvbnRlbnREaXJlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FocusableListDirective, DeprecatedFocusableListDirective } from './focusable-list.directive';
3
+ import { FocusableItemModule } from '../focusable-item';
4
+ import * as i0 from "@angular/core";
5
+ export class FocusableListModule {
6
+ }
7
+ FocusableListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ FocusableListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: FocusableListModule, imports: [FocusableItemModule, FocusableListDirective, DeprecatedFocusableListDirective], exports: [FocusableListDirective, FocusableItemModule, DeprecatedFocusableListDirective] });
9
+ FocusableListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableListModule, imports: [FocusableItemModule, FocusableItemModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableListModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [FocusableItemModule, FocusableListDirective, DeprecatedFocusableListDirective],
14
+ exports: [FocusableListDirective, FocusableItemModule, DeprecatedFocusableListDirective]
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L2ZvY3VzYWJsZS1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU14RCxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsWUFIbEIsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsZ0NBQWdDLGFBQzdFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLGdDQUFnQztpSEFFOUUsbUJBQW1CLFlBSGxCLG1CQUFtQixFQUNLLG1CQUFtQjsyRkFFNUMsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGdDQUFnQyxDQUFDO29CQUN4RixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxnQ0FBZ0MsQ0FBQztpQkFDM0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNhYmxlTGlzdERpcmVjdGl2ZSwgRGVwcmVjYXRlZEZvY3VzYWJsZUxpc3REaXJlY3RpdmUgfSBmcm9tICcuL2ZvY3VzYWJsZS1saXN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtTW9kdWxlIH0gZnJvbSAnLi4vZm9jdXNhYmxlLWl0ZW0nO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtGb2N1c2FibGVJdGVtTW9kdWxlLCBGb2N1c2FibGVMaXN0RGlyZWN0aXZlLCBEZXByZWNhdGVkRm9jdXNhYmxlTGlzdERpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0ZvY3VzYWJsZUxpc3REaXJlY3RpdmUsIEZvY3VzYWJsZUl0ZW1Nb2R1bGUsIERlcHJlY2F0ZWRGb2N1c2FibGVMaXN0RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c2FibGVMaXN0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,54 @@
1
+ import { Injectable, Renderer2 } from '@angular/core';
2
+ import { FocusKeyManager } from '@angular/cdk/a11y';
3
+ import { finalize, fromEvent, merge, Subject } from 'rxjs';
4
+ import { takeUntil, tap } from 'rxjs/operators';
5
+ import { getNativeElement } from '../../helpers/get-native-element';
6
+ import * as i0 from "@angular/core";
7
+ export class FocusableListService {
8
+ /** @hidden */
9
+ constructor(_renderer) {
10
+ this._renderer = _renderer;
11
+ /** @hidden */
12
+ this._refresh$ = new Subject();
13
+ /** @hidden */
14
+ this._destroy$ = new Subject();
15
+ }
16
+ /**
17
+ * Initializes the focusable list service with items and configuration.
18
+ * @param items Focusable list items.
19
+ * @param config Initialization configuration.
20
+ */
21
+ initialize(items, config = {}) {
22
+ this._refresh$.next();
23
+ let keyManager = new FocusKeyManager(items);
24
+ if (config.wrap !== false) {
25
+ keyManager = keyManager.withWrap();
26
+ }
27
+ if (config.direction === 'horizontal') {
28
+ keyManager = keyManager.withHorizontalOrientation(config.contentDirection || 'ltr'); // should be replaced
29
+ }
30
+ keyManager.skipPredicate((item) => {
31
+ const focusable = typeof item.focusable === 'boolean' ? item.focusable : item.focusable();
32
+ return !focusable;
33
+ });
34
+ this.keyManager = keyManager;
35
+ const events$ = items.map((item) => fromEvent(getNativeElement(item), 'keydown'));
36
+ const focusListenerDestroyers = items.map((item) => this._renderer.listen(getNativeElement(item), 'focus', () => this.keyManager?.setActiveItem(item.index)));
37
+ merge(...events$)
38
+ .pipe(tap((keydownEvent) => this.keyManager?.onKeydown(keydownEvent)), takeUntil(merge(this._refresh$, this._destroy$)), finalize(() => {
39
+ focusListenerDestroyers.forEach((d) => d());
40
+ }))
41
+ .subscribe();
42
+ }
43
+ /** @hidden */
44
+ ngOnDestroy() {
45
+ this._destroy$.next();
46
+ this._destroy$.complete();
47
+ }
48
+ }
49
+ FocusableListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableListService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ FocusableListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableListService });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusableListService, decorators: [{
52
+ type: Injectable
53
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtbGlzdC9mb2N1c2FibGUtbGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQVlwRSxNQUFNLE9BQU8sb0JBQW9CO0lBUzdCLGNBQWM7SUFDZCxZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBUHhDLGNBQWM7UUFDRyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVqRCxjQUFjO1FBQ0csY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFHTixDQUFDO0lBRTVDOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsS0FBc0IsRUFBRSxTQUE4QixFQUFFO1FBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQU0sS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtZQUN2QixVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLFlBQVksRUFBRTtZQUNuQyxVQUFVLEdBQUcsVUFBVSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtTQUM3RztRQUNELFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixNQUFNLFNBQVMsR0FBRyxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUYsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBZ0IsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNqRyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzNHLENBQUM7UUFDRixLQUFLLENBQUMsR0FBRyxPQUFPLENBQUM7YUFDWixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsWUFBMkIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsRUFDOUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUNoRCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1YsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7O2lIQWxEUSxvQkFBb0I7cUhBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiwgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgZmluYWxpemUsIGZyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZ2V0TmF0aXZlRWxlbWVudCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW5hdGl2ZS1lbGVtZW50JztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2hhcy1lbGVtZW50LXJlZi5pbnRlcmZhY2UnO1xuXG5pbnRlcmZhY2UgRm9jdXNhYmxlTGlzdENvbmZpZyB7XG4gICAgd3JhcD86IGJvb2xlYW47XG4gICAgZGlyZWN0aW9uPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJztcbiAgICBjb250ZW50RGlyZWN0aW9uPzogJ2x0cicgfCAncnRsJyB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIEZvY3VzYWJsZUl0ZW0gPSBGb2N1c2FibGVPcHRpb24gJiBIYXNFbGVtZW50UmVmICYgeyBmb2N1c2FibGU6ICgoKSA9PiBib29sZWFuKSB8IGJvb2xlYW47IGluZGV4OiBudW1iZXIgfTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZvY3VzYWJsZUxpc3RTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUga2V5TWFuYWdlcj86IEZvY3VzS2V5TWFuYWdlcjxGb2N1c2FibGVJdGVtPjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgdGhlIGZvY3VzYWJsZSBsaXN0IHNlcnZpY2Ugd2l0aCBpdGVtcyBhbmQgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gaXRlbXMgRm9jdXNhYmxlIGxpc3QgaXRlbXMuXG4gICAgICogQHBhcmFtIGNvbmZpZyBJbml0aWFsaXphdGlvbiBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIGluaXRpYWxpemUoaXRlbXM6IEZvY3VzYWJsZUl0ZW1bXSwgY29uZmlnOiBGb2N1c2FibGVMaXN0Q29uZmlnID0ge30pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaCQubmV4dCgpO1xuICAgICAgICBsZXQga2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXI8YW55PihpdGVtcyk7XG4gICAgICAgIGlmIChjb25maWcud3JhcCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGtleU1hbmFnZXIgPSBrZXlNYW5hZ2VyLndpdGhXcmFwKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAga2V5TWFuYWdlciA9IGtleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihjb25maWcuY29udGVudERpcmVjdGlvbiB8fCAnbHRyJyk7IC8vIHNob3VsZCBiZSByZXBsYWNlZFxuICAgICAgICB9XG4gICAgICAgIGtleU1hbmFnZXIuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9jdXNhYmxlID0gdHlwZW9mIGl0ZW0uZm9jdXNhYmxlID09PSAnYm9vbGVhbicgPyBpdGVtLmZvY3VzYWJsZSA6IGl0ZW0uZm9jdXNhYmxlKCk7XG4gICAgICAgICAgICByZXR1cm4gIWZvY3VzYWJsZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMua2V5TWFuYWdlciA9IGtleU1hbmFnZXI7XG4gICAgICAgIGNvbnN0IGV2ZW50cyQgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGZyb21FdmVudDxLZXlib2FyZEV2ZW50PihnZXROYXRpdmVFbGVtZW50KGl0ZW0pLCAna2V5ZG93bicpKTtcbiAgICAgICAgY29uc3QgZm9jdXNMaXN0ZW5lckRlc3Ryb3llcnMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5saXN0ZW4oZ2V0TmF0aXZlRWxlbWVudChpdGVtKSwgJ2ZvY3VzJywgKCkgPT4gdGhpcy5rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGl0ZW0uaW5kZXgpKVxuICAgICAgICApO1xuICAgICAgICBtZXJnZSguLi5ldmVudHMkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChrZXlkb3duRXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMua2V5TWFuYWdlcj8ub25LZXlkb3duKGtleWRvd25FdmVudCkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChtZXJnZSh0aGlzLl9yZWZyZXNoJCwgdGhpcy5fZGVzdHJveSQpKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzTGlzdGVuZXJEZXN0cm95ZXJzLmZvckVhY2goKGQpID0+IGQoKSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './focusable-list.service';
2
+ export * from './focusable-list.module';
3
+ export * from './focusable-list.directive';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWxpc3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZvY3VzYWJsZS1saXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtbGlzdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtbGlzdC5kaXJlY3RpdmUnO1xuIl19