@fundamental-ngx/cdk 0.43.2 → 0.44.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/data-source/data-source.directive.d.ts +1 -1
  2. package/esm2022/data-source/base/base-data-source.class.mjs +112 -0
  3. package/{esm2020 → esm2022}/data-source/data-source.directive.mjs +4 -4
  4. package/{esm2020 → esm2022}/data-source/data-source.module.mjs +5 -5
  5. package/{esm2020 → esm2022}/forms/cva/cva-control.class.mjs +4 -4
  6. package/{esm2020 → esm2022}/forms/cva/cva.directive.mjs +4 -4
  7. package/{esm2020 → esm2022}/forms/forms.module.mjs +5 -5
  8. package/{esm2020 → esm2022}/fundamental-ngx.module.mjs +5 -5
  9. package/{esm2020 → esm2022}/utils/abstract-fd-ngx-class.mjs +4 -4
  10. package/{esm2020 → esm2022}/utils/components/dynamic-portal/dynamic-portal.component.mjs +4 -4
  11. package/esm2022/utils/directives/auto-complete/auto-complete.directive.mjs +136 -0
  12. package/{esm2020 → esm2022}/utils/directives/auto-complete/auto-complete.module.mjs +5 -5
  13. package/{esm2020 → esm2022}/utils/directives/breakpoints/breakpoint.directive.mjs +8 -8
  14. package/{esm2020 → esm2022}/utils/directives/clicked/clicked-behavior.module.mjs +5 -5
  15. package/{esm2020 → esm2022}/utils/directives/clicked/clicked-event.plugin.mjs +4 -4
  16. package/esm2022/utils/directives/clicked/clicked.directive.mjs +51 -0
  17. package/{esm2020 → esm2022}/utils/directives/clicked/fdk-clicked-provider.service.mjs +4 -4
  18. package/esm2022/utils/directives/disabled/disabled-behavior.directive.mjs +114 -0
  19. package/{esm2020 → esm2022}/utils/directives/disabled/disabled-behavior.module.mjs +5 -5
  20. package/{esm2020 → esm2022}/utils/directives/disabled/disabled.observer.mjs +4 -4
  21. package/{esm2020 → esm2022}/utils/directives/disabled/fdk-disabled-provider.service.mjs +4 -4
  22. package/{esm2020 → esm2022}/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +11 -11
  23. package/esm2022/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +98 -0
  24. package/esm2022/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +114 -0
  25. package/{esm2020 → esm2022}/utils/directives/focusable-grid/focusable-grid.directive.mjs +10 -10
  26. package/{esm2020 → esm2022}/utils/directives/focusable-grid/focusable-grid.module.mjs +5 -5
  27. package/esm2022/utils/directives/focusable-item/focusable-item.directive.mjs +217 -0
  28. package/{esm2020 → esm2022}/utils/directives/focusable-item/focusable-item.module.mjs +5 -5
  29. package/{esm2020 → esm2022}/utils/directives/focusable-item/focusable.observer.mjs +4 -4
  30. package/esm2022/utils/directives/focusable-list/focusable-list.directive.mjs +330 -0
  31. package/{esm2020 → esm2022}/utils/directives/focusable-list/focusable-list.module.mjs +5 -5
  32. package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +79 -0
  33. package/{esm2020 → esm2022}/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +5 -5
  34. package/esm2022/utils/directives/initial-focus/initial-focus.directive.mjs +152 -0
  35. package/{esm2020 → esm2022}/utils/directives/initial-focus/initial-focus.module.mjs +5 -5
  36. package/{esm2020 → esm2022}/utils/directives/intersection-spy/intersection-spy.directive.mjs +4 -4
  37. package/esm2022/utils/directives/line-clamp/line-clamp.directive.mjs +262 -0
  38. package/{esm2020 → esm2022}/utils/directives/line-clamp/line-clamp.module.mjs +11 -11
  39. package/esm2022/utils/directives/only-digits/only-digits.directive.mjs +218 -0
  40. package/{esm2020 → esm2022}/utils/directives/only-digits/only-digits.module.mjs +5 -5
  41. package/esm2022/utils/directives/overflow-list/overflow-list-item.directive.mjs +42 -0
  42. package/esm2022/utils/directives/overflow-list/overflow-list.directive.mjs +142 -0
  43. package/{esm2020 → esm2022}/utils/directives/overflow-list/overflow-list.module.mjs +11 -11
  44. package/{esm2020 → esm2022}/utils/directives/readonly/fdk-readonly-provider.service.mjs +4 -4
  45. package/esm2022/utils/directives/readonly/readonly-behavior.directive.mjs +97 -0
  46. package/{esm2020 → esm2022}/utils/directives/readonly/readonly-behavior.module.mjs +5 -5
  47. package/{esm2020 → esm2022}/utils/directives/readonly/readonly.observer.mjs +4 -4
  48. package/esm2022/utils/directives/repeat/repeat.directive.mjs +65 -0
  49. package/{esm2020 → esm2022}/utils/directives/repeat/repeat.module.mjs +5 -5
  50. package/esm2022/utils/directives/resize/resize-handle.directive.mjs +42 -0
  51. package/esm2022/utils/directives/resize/resize.directive.mjs +231 -0
  52. package/{esm2020 → esm2022}/utils/directives/resize/resize.module.mjs +5 -5
  53. package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-item.directive.mjs +12 -12
  54. package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-list.directive.mjs +10 -10
  55. package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-list.module.mjs +5 -5
  56. package/{esm2020 → esm2022}/utils/directives/selectable-list/selection.service.mjs +4 -4
  57. package/esm2022/utils/directives/template/template.directive.mjs +49 -0
  58. package/{esm2020 → esm2022}/utils/directives/template/template.module.mjs +5 -5
  59. package/esm2022/utils/directives/truncate/truncate.directive.mjs +96 -0
  60. package/{esm2020 → esm2022}/utils/directives/truncate/truncate.module.mjs +5 -5
  61. package/esm2022/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +274 -0
  62. package/{esm2020 → esm2022}/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +4 -4
  63. package/{esm2020 → esm2022}/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +4 -4
  64. package/{esm2020 → esm2022}/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +4 -4
  65. package/{esm2020 → esm2022}/utils/drag-and-drop/drag-and-drop.module.mjs +5 -5
  66. package/{esm2020 → esm2022}/utils/dynamic-component/dynamic-component.service.mjs +4 -4
  67. package/esm2022/utils/functions/get-document-font-size.mjs +9 -0
  68. package/{esm2020 → esm2022}/utils/pipes/async-or-sync.pipe.mjs +4 -4
  69. package/{esm2020 → esm2022}/utils/pipes/displayFn.pipe.mjs +4 -4
  70. package/{esm2020 → esm2022}/utils/pipes/filter-strings.pipe.mjs +4 -4
  71. package/{esm2020 → esm2022}/utils/pipes/is-compact.pipe.mjs +4 -4
  72. package/{esm2020 → esm2022}/utils/pipes/make-async.pipe.mjs +4 -4
  73. package/{esm2020 → esm2022}/utils/pipes/pipe.module.mjs +23 -23
  74. package/{esm2020 → esm2022}/utils/pipes/safe.pipe.mjs +4 -4
  75. package/esm2022/utils/pipes/search-highlight.pipe.mjs +32 -0
  76. package/{esm2020 → esm2022}/utils/pipes/truncate.pipe.mjs +4 -4
  77. package/{esm2020 → esm2022}/utils/pipes/two-digits.pipe.mjs +4 -4
  78. package/{esm2020 → esm2022}/utils/pipes/value-by-path.pipe.mjs +4 -4
  79. package/{esm2020 → esm2022}/utils/services/content-density.service.mjs +4 -4
  80. package/{esm2020 → esm2022}/utils/services/destroyed.service.mjs +4 -4
  81. package/{esm2020 → esm2022}/utils/services/focus-trap.service.mjs +4 -4
  82. package/{esm2020 → esm2022}/utils/services/keyboard-support/keyboard-support.service.mjs +4 -4
  83. package/{esm2020 → esm2022}/utils/services/local-storage.service.mjs +4 -4
  84. package/{esm2020 → esm2022}/utils/services/observers/attribute.observer.mjs +4 -4
  85. package/{esm2020 → esm2022}/utils/services/resize-observer.service.mjs +7 -7
  86. package/{esm2020 → esm2022}/utils/services/rtl.service.mjs +4 -4
  87. package/{esm2020 → esm2022}/utils/services/tabbable-element.service.mjs +4 -4
  88. package/{esm2020 → esm2022}/utils/services/themes.service.mjs +4 -4
  89. package/esm2022/utils/toast/base-toast-positions.mjs +108 -0
  90. package/{esm2020 → esm2022}/utils/toast/base-toast.service.mjs +4 -4
  91. package/{esm2020 → esm2022}/utils/toast/classes/base-toast-animated-container.component.mjs +4 -4
  92. package/{esm2020 → esm2022}/utils/toast/classes/base-toast-container.component.mjs +4 -4
  93. package/{esm2020 → esm2022}/utils/toast/classes/base-toast-overlay-container.mjs +4 -4
  94. package/{esm2020 → esm2022}/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.mjs +4 -4
  95. package/{esm2020 → esm2022}/utils/utils.module.mjs +77 -77
  96. package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-data-source.mjs +11 -11
  97. package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-data-source.mjs.map +1 -1
  98. package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-forms.mjs +10 -10
  99. package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-forms.mjs.map +1 -1
  100. package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-utils.mjs +662 -657
  101. package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -0
  102. package/{fesm2015 → fesm2022}/fundamental-ngx-cdk.mjs +4 -4
  103. package/fesm2022/fundamental-ngx-cdk.mjs.map +1 -0
  104. package/forms/cva/cva.directive.d.ts +1 -1
  105. package/fundamental-ngx-cdk-v0.44.0-rc.1.tgz +0 -0
  106. package/package.json +23 -35
  107. package/utils/abstract-fd-ngx-class.d.ts +1 -1
  108. package/utils/components/dynamic-portal/dynamic-portal.component.d.ts +1 -1
  109. package/utils/directives/auto-complete/auto-complete.directive.d.ts +2 -2
  110. package/utils/directives/breakpoints/breakpoint.directive.d.ts +1 -1
  111. package/utils/directives/clicked/clicked.directive.d.ts +2 -2
  112. package/utils/directives/disabled/disabled-behavior.directive.d.ts +2 -2
  113. package/utils/directives/focus-key-manager/focus-key-manager-item.directive.d.ts +2 -2
  114. package/utils/directives/focus-key-manager/focus-key-manager-list.directive.d.ts +2 -2
  115. package/utils/directives/focusable-grid/focusable-grid.directive.d.ts +1 -1
  116. package/utils/directives/focusable-item/focusable-item.directive.d.ts +2 -2
  117. package/utils/directives/focusable-list/focusable-list.directive.d.ts +2 -2
  118. package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.d.ts +2 -2
  119. package/utils/directives/initial-focus/initial-focus.directive.d.ts +2 -2
  120. package/utils/directives/intersection-spy/intersection-spy.directive.d.ts +1 -1
  121. package/utils/directives/line-clamp/line-clamp.directive.d.ts +4 -4
  122. package/utils/directives/only-digits/only-digits.directive.d.ts +2 -2
  123. package/utils/directives/overflow-list/overflow-list-item.directive.d.ts +2 -2
  124. package/utils/directives/overflow-list/overflow-list.directive.d.ts +2 -2
  125. package/utils/directives/readonly/readonly-behavior.directive.d.ts +2 -2
  126. package/utils/directives/repeat/repeat.directive.d.ts +2 -2
  127. package/utils/directives/resize/resize-handle.directive.d.ts +2 -2
  128. package/utils/directives/resize/resize.directive.d.ts +2 -2
  129. package/utils/directives/selectable-list/selectable-item.directive.d.ts +1 -1
  130. package/utils/directives/selectable-list/selectable-list.directive.d.ts +1 -1
  131. package/utils/directives/template/template.directive.d.ts +2 -2
  132. package/utils/directives/truncate/truncate.directive.d.ts +2 -2
  133. package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +1 -1
  134. package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +1 -1
  135. package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +1 -1
  136. package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +1 -1
  137. package/utils/toast/classes/base-toast-animated-container.component.d.ts +1 -1
  138. package/utils/toast/classes/base-toast-container.component.d.ts +1 -1
  139. package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.d.ts +1 -1
  140. package/esm2020/data-source/base/base-data-source.class.mjs +0 -112
  141. package/esm2020/utils/directives/auto-complete/auto-complete.directive.mjs +0 -136
  142. package/esm2020/utils/directives/clicked/clicked.directive.mjs +0 -51
  143. package/esm2020/utils/directives/disabled/disabled-behavior.directive.mjs +0 -114
  144. package/esm2020/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +0 -98
  145. package/esm2020/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +0 -114
  146. package/esm2020/utils/directives/focusable-item/focusable-item.directive.mjs +0 -217
  147. package/esm2020/utils/directives/focusable-list/focusable-list.directive.mjs +0 -330
  148. package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +0 -79
  149. package/esm2020/utils/directives/initial-focus/initial-focus.directive.mjs +0 -152
  150. package/esm2020/utils/directives/line-clamp/line-clamp.directive.mjs +0 -262
  151. package/esm2020/utils/directives/only-digits/only-digits.directive.mjs +0 -218
  152. package/esm2020/utils/directives/overflow-list/overflow-list-item.directive.mjs +0 -42
  153. package/esm2020/utils/directives/overflow-list/overflow-list.directive.mjs +0 -142
  154. package/esm2020/utils/directives/readonly/readonly-behavior.directive.mjs +0 -97
  155. package/esm2020/utils/directives/repeat/repeat.directive.mjs +0 -65
  156. package/esm2020/utils/directives/resize/resize-handle.directive.mjs +0 -42
  157. package/esm2020/utils/directives/resize/resize.directive.mjs +0 -231
  158. package/esm2020/utils/directives/template/template.directive.mjs +0 -49
  159. package/esm2020/utils/directives/truncate/truncate.directive.mjs +0 -96
  160. package/esm2020/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +0 -272
  161. package/esm2020/utils/functions/get-document-font-size.mjs +0 -5
  162. package/esm2020/utils/pipes/search-highlight.pipe.mjs +0 -32
  163. package/esm2020/utils/toast/base-toast-positions.mjs +0 -108
  164. package/fesm2015/fundamental-ngx-cdk-data-source.mjs +0 -405
  165. package/fesm2015/fundamental-ngx-cdk-data-source.mjs.map +0 -1
  166. package/fesm2015/fundamental-ngx-cdk-forms.mjs +0 -398
  167. package/fesm2015/fundamental-ngx-cdk-forms.mjs.map +0 -1
  168. package/fesm2015/fundamental-ngx-cdk-utils.mjs +0 -7611
  169. package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +0 -1
  170. package/fesm2015/fundamental-ngx-cdk.mjs.map +0 -1
  171. package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +0 -1
  172. package/fesm2020/fundamental-ngx-cdk.mjs +0 -29
  173. package/fesm2020/fundamental-ngx-cdk.mjs.map +0 -1
  174. package/fundamental-ngx-cdk-v0.43.2.tgz +0 -0
  175. /package/{esm2020 → esm2022}/data-source/base/abstract-data-provider.class.mjs +0 -0
  176. /package/{esm2020 → esm2022}/data-source/fundamental-ngx-cdk-data-source.mjs +0 -0
  177. /package/{esm2020 → esm2022}/data-source/helpers/apply-datasource-directive.mjs +0 -0
  178. /package/{esm2020 → esm2022}/data-source/helpers/common.mjs +0 -0
  179. /package/{esm2020 → esm2022}/data-source/helpers/is-datasource.mjs +0 -0
  180. /package/{esm2020 → esm2022}/data-source/index.mjs +0 -0
  181. /package/{esm2020 → esm2022}/data-source/models/data-source-provider.mjs +0 -0
  182. /package/{esm2020 → esm2022}/data-source/models/data-source.mjs +0 -0
  183. /package/{esm2020 → esm2022}/data-source/models/index.mjs +0 -0
  184. /package/{esm2020 → esm2022}/data-source/models/matching-strategy.mjs +0 -0
  185. /package/{esm2020 → esm2022}/data-source/tokens.mjs +0 -0
  186. /package/{esm2020 → esm2022}/forms/fundamental-ngx-cdk-forms.mjs +0 -0
  187. /package/{esm2020 → esm2022}/forms/helpers/state.mjs +0 -0
  188. /package/{esm2020 → esm2022}/forms/index.mjs +0 -0
  189. /package/{esm2020 → esm2022}/forms/models/cva.mjs +0 -0
  190. /package/{esm2020 → esm2022}/forms/models/form-error.mjs +0 -0
  191. /package/{esm2020 → esm2022}/forms/models/form-field.mjs +0 -0
  192. /package/{esm2020 → esm2022}/forms/models/form-state.mjs +0 -0
  193. /package/{esm2020 → esm2022}/forms/models/select-item.mjs +0 -0
  194. /package/{esm2020 → esm2022}/forms/tokens/form-field-control.token.mjs +0 -0
  195. /package/{esm2020 → esm2022}/forms/tokens/form-field.token.mjs +0 -0
  196. /package/{esm2020 → esm2022}/fundamental-ngx-cdk.mjs +0 -0
  197. /package/{esm2020 → esm2022}/index.mjs +0 -0
  198. /package/{esm2020 → esm2022}/utils/async-strategy/function-strategy.class.mjs +0 -0
  199. /package/{esm2020 → esm2022}/utils/async-strategy/index.mjs +0 -0
  200. /package/{esm2020 → esm2022}/utils/async-strategy/observable-strategy.class.mjs +0 -0
  201. /package/{esm2020 → esm2022}/utils/async-strategy/promise-strategy.class.mjs +0 -0
  202. /package/{esm2020 → esm2022}/utils/async-strategy/select-strategy.class.mjs +0 -0
  203. /package/{esm2020 → esm2022}/utils/async-strategy/subscription-strategy.interface.mjs +0 -0
  204. /package/{esm2020 → esm2022}/utils/async-strategy/value-strategy.class.mjs +0 -0
  205. /package/{esm2020 → esm2022}/utils/coercion/array.mjs +0 -0
  206. /package/{esm2020 → esm2022}/utils/components/index.mjs +0 -0
  207. /package/{esm2020 → esm2022}/utils/consts/error-messages.mjs +0 -0
  208. /package/{esm2020 → esm2022}/utils/consts/index.mjs +0 -0
  209. /package/{esm2020 → esm2022}/utils/consts/overflow-priority-score.mjs +0 -0
  210. /package/{esm2020 → esm2022}/utils/consts/unicode-letters.regex.mjs +0 -0
  211. /package/{esm2020 → esm2022}/utils/consts/unicode-numbers.regex.mjs +0 -0
  212. /package/{esm2020 → esm2022}/utils/datatypes/color-accent.datatype.mjs +0 -0
  213. /package/{esm2020 → esm2022}/utils/datatypes/hash.datatype.mjs +0 -0
  214. /package/{esm2020 → esm2022}/utils/datatypes/index.mjs +0 -0
  215. /package/{esm2020 → esm2022}/utils/datatypes/size.datatype.mjs +0 -0
  216. /package/{esm2020 → esm2022}/utils/decorators/apply-css-class.decorator.mjs +0 -0
  217. /package/{esm2020 → esm2022}/utils/decorators/apply-css-style.decorator.mjs +0 -0
  218. /package/{esm2020 → esm2022}/utils/decorators/coerce-boolean.mjs +0 -0
  219. /package/{esm2020 → esm2022}/utils/decorators/coerce-css-pixel.mjs +0 -0
  220. /package/{esm2020 → esm2022}/utils/decorators/index.mjs +0 -0
  221. /package/{esm2020 → esm2022}/utils/decorators/setter-alternator.mjs +0 -0
  222. /package/{esm2020 → esm2022}/utils/deprecated-selector.class.mjs +0 -0
  223. /package/{esm2020 → esm2022}/utils/directives/breakpoints/responsive-breakpoints.mjs +0 -0
  224. /package/{esm2020 → esm2022}/utils/directives/clicked/index.mjs +0 -0
  225. /package/{esm2020 → esm2022}/utils/directives/disabled/default-disabled-view-modifier.mjs +0 -0
  226. /package/{esm2020 → esm2022}/utils/directives/disabled/disabled-behavior.interface.mjs +0 -0
  227. /package/{esm2020 → esm2022}/utils/directives/disabled/disabled-view-modifier.interface.mjs +0 -0
  228. /package/{esm2020 → esm2022}/utils/directives/disabled/fdk-disabled.token.mjs +0 -0
  229. /package/{esm2020 → esm2022}/utils/directives/disabled/index.mjs +0 -0
  230. /package/{esm2020 → esm2022}/utils/directives/disabled/set-disabled-state.mjs +0 -0
  231. /package/{esm2020 → esm2022}/utils/directives/focus-key-manager/focus-key-manager.tokens.mjs +0 -0
  232. /package/{esm2020 → esm2022}/utils/directives/focus-key-manager/index.mjs +0 -0
  233. /package/{esm2020 → esm2022}/utils/directives/focusable-grid/focusable-grid.tokens.mjs +0 -0
  234. /package/{esm2020 → esm2022}/utils/directives/focusable-grid/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/utils/directives/focusable-item/focusable-item.tokens.mjs +0 -0
  236. /package/{esm2020 → esm2022}/utils/directives/focusable-item/index.mjs +0 -0
  237. /package/{esm2020 → esm2022}/utils/directives/focusable-item/is-element-focusable-by-default.mjs +0 -0
  238. /package/{esm2020 → esm2022}/utils/directives/focusable-list/focusable-list.tokens.mjs +0 -0
  239. /package/{esm2020 → esm2022}/utils/directives/focusable-list/index.mjs +0 -0
  240. /package/{esm2020 → esm2022}/utils/directives/focusable-list/scroll.mjs +0 -0
  241. /package/{esm2020 → esm2022}/utils/directives/ignore-click-on-selection/tokens.mjs +0 -0
  242. /package/{esm2020 → esm2022}/utils/directives/index.mjs +0 -0
  243. /package/{esm2020 → esm2022}/utils/directives/readonly/default-readonly-view-modifier.mjs +0 -0
  244. /package/{esm2020 → esm2022}/utils/directives/readonly/fdk-readonly.token.mjs +0 -0
  245. /package/{esm2020 → esm2022}/utils/directives/readonly/index.mjs +0 -0
  246. /package/{esm2020 → esm2022}/utils/directives/readonly/readonly-behavior.interface.mjs +0 -0
  247. /package/{esm2020 → esm2022}/utils/directives/readonly/readonly-view-modifier.interface.mjs +0 -0
  248. /package/{esm2020 → esm2022}/utils/directives/readonly/set-readonly-state.mjs +0 -0
  249. /package/{esm2020 → esm2022}/utils/directives/selectable-list/index.mjs +0 -0
  250. /package/{esm2020 → esm2022}/utils/directives/selectable-list/select-component-root.token.mjs +0 -0
  251. /package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-item.token.mjs +0 -0
  252. /package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-list.tokens.mjs +0 -0
  253. /package/{esm2020 → esm2022}/utils/drag-and-drop/dnd.interfaces.mjs +0 -0
  254. /package/{esm2020 → esm2022}/utils/drag-and-drop/index.mjs +0 -0
  255. /package/{esm2020 → esm2022}/utils/drag-and-drop/tokens.mjs +0 -0
  256. /package/{esm2020 → esm2022}/utils/dynamic-component/dynamic-component-config.mjs +0 -0
  257. /package/{esm2020 → esm2022}/utils/dynamic-component/dynamic-component-container.mjs +0 -0
  258. /package/{esm2020 → esm2022}/utils/dynamic-component/dynamic-component-injector.mjs +0 -0
  259. /package/{esm2020 → esm2022}/utils/dynamic-component/index.mjs +0 -0
  260. /package/{esm2020 → esm2022}/utils/functions/consumer-provider-factory.mjs +0 -0
  261. /package/{esm2020 → esm2022}/utils/functions/element-size.mjs +0 -0
  262. /package/{esm2020 → esm2022}/utils/functions/index.mjs +0 -0
  263. /package/{esm2020 → esm2022}/utils/functions/intersection-observable.mjs +0 -0
  264. /package/{esm2020 → esm2022}/utils/functions/is-compact-density.mjs +0 -0
  265. /package/{esm2020 → esm2022}/utils/functions/is-odd.mjs +0 -0
  266. /package/{esm2020 → esm2022}/utils/functions/key-util.mjs +0 -0
  267. /package/{esm2020 → esm2022}/utils/functions/module-deprecations-provider.mjs +0 -0
  268. /package/{esm2020 → esm2022}/utils/functions/parser-file-size.mjs +0 -0
  269. /package/{esm2020 → esm2022}/utils/functions/random-color-accent.mjs +0 -0
  270. /package/{esm2020 → esm2022}/utils/functions/resize-observable.mjs +0 -0
  271. /package/{esm2020 → esm2022}/utils/functions/scroll.mjs +0 -0
  272. /package/{esm2020 → esm2022}/utils/functions/uuidv4-generator.mjs +0 -0
  273. /package/{esm2020 → esm2022}/utils/fundamental-ngx-cdk-utils.mjs +0 -0
  274. /package/{esm2020 → esm2022}/utils/helpers/get-native-element.mjs +0 -0
  275. /package/{esm2020 → esm2022}/utils/helpers/index.mjs +0 -0
  276. /package/{esm2020 → esm2022}/utils/helpers/range-selector.mjs +0 -0
  277. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
  278. /package/{esm2020 → esm2022}/utils/interfaces/content-density.mjs +0 -0
  279. /package/{esm2020 → esm2022}/utils/interfaces/css-class-builder.interface.mjs +0 -0
  280. /package/{esm2020 → esm2022}/utils/interfaces/css-style-builder.interface.mjs +0 -0
  281. /package/{esm2020 → esm2022}/utils/interfaces/has-element-ref.interface.mjs +0 -0
  282. /package/{esm2020 → esm2022}/utils/interfaces/index.mjs +0 -0
  283. /package/{esm2020 → esm2022}/utils/interfaces/keyboard-support-item.interface.mjs +0 -0
  284. /package/{esm2020 → esm2022}/utils/interfaces/module-deprecation.interface.mjs +0 -0
  285. /package/{esm2020 → esm2022}/utils/interfaces/require.interface.mjs +0 -0
  286. /package/{esm2020 → esm2022}/utils/list-item/list-item-utils.mjs +0 -0
  287. /package/{esm2020 → esm2022}/utils/models/nullable.mjs +0 -0
  288. /package/{esm2020 → esm2022}/utils/pipes/index.mjs +0 -0
  289. /package/{esm2020 → esm2022}/utils/services/index.mjs +0 -0
  290. /package/{esm2020 → esm2022}/utils/toast/base-toast-animations.mjs +0 -0
  291. /package/{esm2020 → esm2022}/utils/toast/classes/action-dismissible/base-toast-action-dismissible-ref.mjs +0 -0
  292. /package/{esm2020 → esm2022}/utils/toast/classes/base-toast-config.mjs +0 -0
  293. /package/{esm2020 → esm2022}/utils/toast/classes/base-toast-ref.mjs +0 -0
  294. /package/{esm2020 → esm2022}/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-config.mjs +0 -0
  295. /package/{esm2020 → esm2022}/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-ref.mjs +0 -0
  296. /package/{esm2020 → esm2022}/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible.service.mjs +0 -0
  297. /package/{esm2020 → esm2022}/utils/toast/index.mjs +0 -0
  298. /package/{esm2020 → esm2022}/utils/toast/interfaces/toast-container-component.interface.mjs +0 -0
  299. /package/{esm2020 → esm2022}/utils/toast/interfaces/toast-duration-dismissible-container-component.interface.mjs +0 -0
  300. /package/{esm2020 → esm2022}/utils/toast/interfaces/toast-text-component.interface.mjs +0 -0
  301. /package/{esm2020 → esm2022}/utils/tokens/module-deprecations.token.mjs +0 -0
  302. /package/{esm2020 → esm2022}/utils/tokens/viewport-size.observable.mjs +0 -0
  303. /package/{esm2020 → esm2022}/utils/typecheck.mjs +0 -0
@@ -1,114 +0,0 @@
1
- import { FocusKeyManager } from '@angular/cdk/a11y';
2
- import { ChangeDetectorRef, ContentChildren, Directive, Input, Optional, QueryList } from '@angular/core';
3
- import { filter, takeUntil } from 'rxjs/operators';
4
- import { Subject } from 'rxjs';
5
- import { RtlService } from '../../services/rtl.service';
6
- import { FOCUSABLE_ITEM } from './focus-key-manager.tokens';
7
- import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../../services/rtl.service";
10
- export class DeprecatedFocusKeyManagerListDirective extends DeprecatedSelector {
11
- }
12
- DeprecatedFocusKeyManagerListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedFocusKeyManagerListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
13
- DeprecatedFocusKeyManagerListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedFocusKeyManagerListDirective, isStandalone: true, selector: "[fd-focus-key-manager-list], [fdFocusKeyManagerList]", providers: [
14
- {
15
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
16
- useValue: getDeprecatedModel('[fdkFocusKeyManagerList]', '[fd-focus-key-manager-list], [fdFocusKeyManagerList]')
17
- }
18
- ], usesInheritance: true, ngImport: i0 });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedFocusKeyManagerListDirective, decorators: [{
20
- type: Directive,
21
- args: [{
22
- // eslint-disable-next-line @angular-eslint/directive-selector
23
- selector: '[fd-focus-key-manager-list], [fdFocusKeyManagerList]',
24
- standalone: true,
25
- providers: [
26
- {
27
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
28
- useValue: getDeprecatedModel('[fdkFocusKeyManagerList]', '[fd-focus-key-manager-list], [fdFocusKeyManagerList]')
29
- }
30
- ]
31
- }]
32
- }] });
33
- /** Directive to apply Angular Material FocusKeyManager to lists.
34
- * To be used with FocusKeyManagerItemDirective
35
- */
36
- export class FocusKeyManagerListDirective {
37
- /** @hidden */
38
- get focusKeyManager() {
39
- return this._focusKeyManager;
40
- }
41
- /** @hidden */
42
- constructor(_rtlService, _cdr) {
43
- this._rtlService = _rtlService;
44
- this._cdr = _cdr;
45
- /** @hidden */
46
- this._onDestroy$ = new Subject();
47
- }
48
- /** @hidden */
49
- ngOnChanges(changes) {
50
- if (!this._focusKeyManager) {
51
- return;
52
- }
53
- if ('orientation' in changes) {
54
- this._applyOrientation();
55
- }
56
- if ('skiPredicate' in changes) {
57
- this._focusKeyManager.skipPredicate(this.skipPredicate);
58
- }
59
- }
60
- /** @hidden */
61
- ngAfterContentInit() {
62
- this._focusKeyManager = new FocusKeyManager(this._items).skipPredicate(this.skipPredicate);
63
- this._applyOrientation();
64
- this._cdr.detectChanges();
65
- this._rtlService?.rtl
66
- .pipe(filter(() => this.orientation === 'horizontal'), takeUntil(this._onDestroy$))
67
- .subscribe(() => this._applyOrientation());
68
- }
69
- /** @hidden */
70
- ngOnDestroy() {
71
- this._onDestroy$.next();
72
- this._onDestroy$.complete();
73
- this._focusKeyManager.destroy();
74
- }
75
- /** Focus certain list's item */
76
- focusItem(item) {
77
- if (typeof item === 'number') {
78
- this._focusKeyManager.setActiveItem(item);
79
- }
80
- else {
81
- this._focusKeyManager.setActiveItem(item);
82
- }
83
- }
84
- /** @hidden */
85
- _applyOrientation() {
86
- switch (this.orientation) {
87
- case 'horizontal':
88
- this._focusKeyManager.withHorizontalOrientation(this._rtlService?.rtl.value ? 'rtl' : 'ltr');
89
- break;
90
- case 'vertical':
91
- this._focusKeyManager.withVerticalOrientation(true);
92
- break;
93
- }
94
- }
95
- }
96
- FocusKeyManagerListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FocusKeyManagerListDirective, deps: [{ token: i1.RtlService, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
97
- FocusKeyManagerListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: FocusKeyManagerListDirective, isStandalone: true, selector: "[fdkFocusKeyManagerList], [fd-focus-key-manager-list], [fdFocusKeyManagerList]", inputs: { orientation: "orientation", skipPredicate: "skipPredicate" }, queries: [{ propertyName: "_items", predicate: FOCUSABLE_ITEM }], usesOnChanges: true, ngImport: i0 });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FocusKeyManagerListDirective, decorators: [{
99
- type: Directive,
100
- args: [{
101
- selector: `[fdkFocusKeyManagerList], [fd-focus-key-manager-list], [fdFocusKeyManagerList]`,
102
- standalone: true
103
- }]
104
- }], ctorParameters: function () { return [{ type: i1.RtlService, decorators: [{
105
- type: Optional
106
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { orientation: [{
107
- type: Input
108
- }], skipPredicate: [{
109
- type: Input
110
- }], _items: [{
111
- type: ContentChildren,
112
- args: [FOCUSABLE_ITEM]
113
- }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMta2V5LW1hbmFnZXItbGlzdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXMta2V5LW1hbmFnZXIvZm9jdXMta2V5LW1hbmFnZXItbGlzdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFDUixTQUFTLEVBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7OztBQWdCekMsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLGtCQUFrQjs7bUlBQWpFLHNDQUFzQzt1SEFBdEMsc0NBQXNDLG1HQVZwQztRQUNQO1lBQ0ksT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQ3hCLDBCQUEwQixFQUMxQixzREFBc0QsQ0FDekQ7U0FDSjtLQUNKOzJGQUVRLHNDQUFzQztrQkFkbEQsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxzREFBc0Q7b0JBQ2hFLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxF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Q25COzswQkEwQmdCLFFBQVE7NEVBdEJyQixXQUFXO3NCQURWLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtHLE1BQU07c0JBRGQsZUFBZTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uLCBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ydGwuc2VydmljZSc7XG5pbXBvcnQgeyBGT0NVU0FCTEVfSVRFTSB9IGZyb20gJy4vZm9jdXMta2V5LW1hbmFnZXIudG9rZW5zJztcbmltcG9ydCB7XG4gICAgRGVwcmVjYXRlZFNlbGVjdG9yLFxuICAgIEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgIGdldERlcHJlY2F0ZWRNb2RlbFxufSBmcm9tICcuLi8uLi9kZXByZWNhdGVkLXNlbGVjdG9yLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZC1mb2N1cy1rZXktbWFuYWdlci1saXN0XSwgW2ZkRm9jdXNLZXlNYW5hZ2VyTGlzdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbChcbiAgICAgICAgICAgICAgICAnW2Zka0ZvY3VzS2V5TWFuYWdlckxpc3RdJyxcbiAgICAgICAgICAgICAgICAnW2ZkLWZvY3VzLWtleS1tYW5hZ2VyLWxpc3RdLCBbZmRGb2N1c0tleU1hbmFnZXJMaXN0XSdcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZEZvY3VzS2V5TWFuYWdlckxpc3REaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuLyoqIERpcmVjdGl2ZSB0byBhcHBseSBBbmd1bGFyIE1hdGVyaWFsIEZvY3VzS2V5TWFuYWdlciB0byBsaXN0cy5cbiAqIFRvIGJlIHVzZWQgd2l0aCBGb2N1c0tleU1hbmFnZXJJdGVtRGlyZWN0aXZlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBgW2Zka0ZvY3VzS2V5TWFuYWdlckxpc3RdLCBbZmQtZm9jdXMta2V5LW1hbmFnZXItbGlzdF0sIFtmZEZvY3VzS2V5TWFuYWdlckxpc3RdYCxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzS2V5TWFuYWdlckxpc3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIE9yaWVudGF0aW9uIGZvciB0aGUgRm9jdXNLZXlNYW5hZ2VyICovXG4gICAgQElucHV0KClcbiAgICBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcblxuICAgIC8qKiBTa2lwIHByZWRpY2F0ZSBmb3IgdGhlIEZvY3VzS2V5TWFuYWdlciAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2tpcFByZWRpY2F0ZTogKGl0ZW06IFJlY29yZDxhbnksIGFueT4gJiBGb2N1c2FibGVPcHRpb24pID0+IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRk9DVVNBQkxFX0lURU0pXG4gICAgcmVhZG9ubHkgX2l0ZW1zOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlT3B0aW9uPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGZvY3VzS2V5TWFuYWdlcigpOiBGb2N1c0tleU1hbmFnZXI8Rm9jdXNhYmxlT3B0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c0tleU1hbmFnZXI7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c0tleU1hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxGb2N1c2FibGVPcHRpb24+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZTogUnRsU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2ZvY3VzS2V5TWFuYWdlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdvcmllbnRhdGlvbicgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fYXBwbHlPcmllbnRhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdza2lQcmVkaWNhdGUnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzS2V5TWFuYWdlci5za2lwUHJlZGljYXRlKHRoaXMuc2tpcFByZWRpY2F0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNLZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcjxGb2N1c2FibGVPcHRpb24+KHRoaXMuX2l0ZW1zKS5za2lwUHJlZGljYXRlKHRoaXMuc2tpcFByZWRpY2F0ZSk7XG5cbiAgICAgICAgdGhpcy5fYXBwbHlPcmllbnRhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5fcnRsU2VydmljZT8ucnRsXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fYXBwbHlPcmllbnRhdGlvbigpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9mb2N1c0tleU1hbmFnZXIuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8qKiBGb2N1cyBjZXJ0YWluIGxpc3QncyBpdGVtICovXG4gICAgZm9jdXNJdGVtKGl0ZW06IG51bWJlciB8IEZvY3VzYWJsZU9wdGlvbik6IGFueSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNLZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5T3JpZW50YXRpb24oKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5vcmllbnRhdGlvbikge1xuICAgICAgICAgICAgY2FzZSAnaG9yaXpvbnRhbCc6XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNLZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fcnRsU2VydmljZT8ucnRsLnZhbHVlID8gJ3J0bCcgOiAnbHRyJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2ZXJ0aWNhbCc6XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNLZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,217 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Directive, ElementRef, EventEmitter, HostBinding, inject, Input, NgZone, Output } from '@angular/core';
3
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import { ENTER, ESCAPE, F2, MAC_ENTER } from '@angular/cdk/keycodes';
5
- import { FDK_FOCUSABLE_ITEM_DIRECTIVE } from './focusable-item.tokens';
6
- import { DestroyedService, TabbableElementService } from '../../services';
7
- import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
8
- import { LiveAnnouncer } from '@angular/cdk/a11y';
9
- import { FocusableObserver } from './focusable.observer';
10
- import { fromEvent, Subject, takeUntil } from 'rxjs';
11
- import { KeyUtil } from '../../functions';
12
- import * as i0 from "@angular/core";
13
- export class DeprecatedFocusableItemDirective extends DeprecatedSelector {
14
- }
15
- DeprecatedFocusableItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedFocusableItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
16
- DeprecatedFocusableItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", 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.2.9", 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 {
37
- /** Whether the item is focusable. Default is true. */
38
- set fdkFocusableItem(val) {
39
- this._focusable = coerceBooleanProperty(val);
40
- this.setTabbable(this._focusable);
41
- }
42
- get fdkFocusableItem() {
43
- return this._focusable;
44
- }
45
- /** @hidden */
46
- get _tabindex() {
47
- return this._tabbable ? 0 : -1;
48
- }
49
- /** @hidden */
50
- constructor() {
51
- /** Function, which returns a string to be announced by screen-reader whenever an item which is in grid receives focus. */
52
- this.cellFocusedEventAnnouncer = this._defaultItemFocusedEventAnnouncer;
53
- /** Event emitted when the cell receives focus, not being emitted when focus moves between item's children. */
54
- this.cellFocused = new EventEmitter();
55
- /** @hidden */
56
- this._keydown$ = new Subject();
57
- /** @hidden */
58
- this._focusable = true;
59
- /** @hidden */
60
- this._tabbableElements = new Map();
61
- /** @hidden */
62
- this._tabbable = true;
63
- /** Element reference. */
64
- this.elementRef = inject(ElementRef);
65
- /** @hidden */
66
- this._focusableObserver = inject(FocusableObserver);
67
- /** @hidden */
68
- this._destroy$ = inject(DestroyedService);
69
- /** @hidden */
70
- this._tabbableElementService = inject(TabbableElementService);
71
- /** @hidden */
72
- this._liveAnnouncer = inject(LiveAnnouncer);
73
- /** @hidden */
74
- this._zone = inject(NgZone);
75
- /** @hidden */
76
- this._document = inject(DOCUMENT);
77
- this._focusableObserver
78
- .observe(this.elementRef, false)
79
- .pipe(takeUntil(this._destroy$))
80
- .subscribe((isFocusable) => {
81
- if (!isFocusable && isFocusable !== this.fdkFocusableItem) {
82
- this.fdkFocusableItem = isFocusable;
83
- }
84
- });
85
- this._zone.runOutsideAngular(() => {
86
- fromEvent(this.elementRef.nativeElement, 'focusin')
87
- .pipe(takeUntil(this._destroy$))
88
- .subscribe(async () => {
89
- await this._onFocusin();
90
- });
91
- fromEvent(this.elementRef.nativeElement, 'focusout')
92
- .pipe(takeUntil(this._destroy$))
93
- .subscribe(() => {
94
- this._onFocusout();
95
- });
96
- fromEvent(this.elementRef.nativeElement, 'keydown')
97
- .pipe(takeUntil(this._destroy$))
98
- .subscribe((event) => {
99
- this._onKeydown(event);
100
- });
101
- });
102
- }
103
- /** Set tabbable state */
104
- setTabbable(state) {
105
- this._tabbable = state;
106
- if (state) {
107
- this._enableTabbableElements();
108
- }
109
- else {
110
- this._disableTabbableElements();
111
- }
112
- }
113
- /** @hidden */
114
- async _onFocusin() {
115
- if (!this.fdkFocusableItem) {
116
- return;
117
- }
118
- if (this._timerId != null) {
119
- clearTimeout(this._timerId);
120
- this._timerId = null;
121
- return;
122
- }
123
- if (this._position) {
124
- this.cellFocused.next(this._position);
125
- if (this.cellFocusedEventAnnouncer) {
126
- this._liveAnnouncer.clear();
127
- await this._liveAnnouncer.announce(this.cellFocusedEventAnnouncer(this._position));
128
- }
129
- }
130
- }
131
- /** @hidden */
132
- _onFocusout() {
133
- if (!this.fdkFocusableItem) {
134
- return;
135
- }
136
- // Timeout is needed to prevent focusout event from being emitted when focus moves between item's children.
137
- this._timerId = setTimeout(() => (this._timerId = null));
138
- }
139
- /** @hidden */
140
- _onKeydown(event) {
141
- if (!this.fdkFocusableItem) {
142
- return;
143
- }
144
- const isFocused = this._document.activeElement === this.elementRef.nativeElement;
145
- const shouldFocusChild = KeyUtil.isKeyCode(event, [ENTER, MAC_ENTER, F2]) && !event.shiftKey && isFocused;
146
- const shouldFocusCell = ((KeyUtil.isKeyCode(event, F2) && event.shiftKey) || KeyUtil.isKeyCode(event, ESCAPE)) && !isFocused;
147
- if (shouldFocusChild) {
148
- event.stopPropagation();
149
- const tabbableElement = this._tabbableElementService.getTabbableElement(this.elementRef.nativeElement, false, true);
150
- tabbableElement?.focus();
151
- return;
152
- }
153
- else if (shouldFocusCell) {
154
- event.stopPropagation();
155
- this.elementRef.nativeElement.focus();
156
- return;
157
- }
158
- if (isFocused) {
159
- this._keydown$.next(event);
160
- }
161
- }
162
- /** @hidden */
163
- _enableTabbableElements() {
164
- if (this._tabbableElements.size === 0) {
165
- return;
166
- }
167
- this._tabbableElements.forEach((tabIndex, element) => (element.tabIndex = tabIndex));
168
- this._tabbable = false;
169
- }
170
- /** @hidden */
171
- _disableTabbableElements() {
172
- // Since we cannot select by tabindex attribute (links, inputs, buttons might not have one but still can be focusable),
173
- // Select all elements from the cell and filter by tabIndex property.
174
- Array.from(this.elementRef.nativeElement.querySelectorAll('*'))
175
- .filter((elm) => elm.tabIndex >= 0)
176
- .forEach((elm) => {
177
- this._tabbableElements.set(elm, elm.tabIndex);
178
- elm.tabIndex = -1;
179
- });
180
- }
181
- /** @hidden */
182
- _defaultItemFocusedEventAnnouncer(position) {
183
- return `Column ${position.colIndex + 1} of ${position.totalCols}, row: ${position.rowIndex + 1} of ${position.totalRows}`;
184
- }
185
- }
186
- FocusableItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FocusableItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
187
- FocusableItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: FocusableItemDirective, isStandalone: true, selector: "[fdkFocusableItem]", inputs: { fdkFocusableItem: "fdkFocusableItem", cellFocusedEventAnnouncer: "cellFocusedEventAnnouncer" }, outputs: { cellFocused: "cellFocused" }, host: { properties: { "attr.tabindex": "this._tabindex" } }, providers: [
188
- {
189
- provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,
190
- useExisting: FocusableItemDirective
191
- },
192
- DestroyedService
193
- ], ngImport: i0 });
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FocusableItemDirective, decorators: [{
195
- type: Directive,
196
- args: [{
197
- selector: '[fdkFocusableItem]',
198
- standalone: true,
199
- providers: [
200
- {
201
- provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,
202
- useExisting: FocusableItemDirective
203
- },
204
- DestroyedService
205
- ]
206
- }]
207
- }], ctorParameters: function () { return []; }, propDecorators: { fdkFocusableItem: [{
208
- type: Input
209
- }], cellFocusedEventAnnouncer: [{
210
- type: Input
211
- }], cellFocused: [{
212
- type: Output
213
- }], _tabindex: [{
214
- type: HostBinding,
215
- args: ['attr.tabindex']
216
- }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxrQkFBa0IsRUFDckIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFzQjFDLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxrQkFBa0I7OzZIQUEzRCxnQ0FBZ0M7aUhBQWhDLGdD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QUFHLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGNBQWM7SUFDTixpQ0FBaUMsQ0FBQyxRQUErQjtRQUNyRSxPQUFPLFVBQVUsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQU8sUUFBUSxDQUFDLFNBQVMsVUFBVSxRQUFRLENBQUMsUUFBUSxHQUFHLENBQUMsT0FDMUYsUUFBUSxDQUFDLFNBQ2IsRUFBRSxDQUFDO0lBQ1AsQ0FBQzs7bUhBck1RLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGlSQVJwQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxXQUFXLEVBQUUsc0JBQXNCO1NBQ3RDO1FBQ0QsZ0JBQWdCO0tBQ25COzJGQUVRLHNCQUFzQjtrQkFYbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsd0JBQXdCO3lCQUN0Qzt3QkFDRCxnQkFBZ0I7cUJBQ25CO2lCQUNKOzBFQUlPLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFZTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBS0csV0FBVztzQkFEbkIsTUFBTTtnQkF1QkgsU0FBUztzQkFEWixXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQsIE5nWm9uZSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFTlRFUiwgRVNDQVBFLCBGMiwgTUFDX0VOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUgfSBmcm9tICcuL2ZvY3VzYWJsZS1pdGVtLnRva2Vucyc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlLCBUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEZvY3VzYWJsZU9ic2VydmVyIH0gZnJvbSAnLi9mb2N1c2FibGUub2JzZXJ2ZXInO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL251bGxhYmxlJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBDZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyID0gTnVsbGFibGU8KHBvc2l0aW9uOiBGb2N1c2FibGVJdGVtUG9zaXRpb24pID0+IHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlSXRlbVBvc2l0aW9uIHtcbiAgICByb3dJbmRleDogbnVtYmVyO1xuICAgIGNvbEluZGV4OiBudW1iZXI7XG4gICAgdG90YWxSb3dzOiBudW1iZXI7XG4gICAgdG90YWxDb2xzOiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZm5Gb2N1c2FibGVJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgICAgICAgICB1c2VWYWx1ZTogZ2V0RGVwcmVjYXRlZE1vZGVsKCdbZmRrRm9jdXNhYmxlSXRlbV0nLCAnW2ZuRm9jdXNhYmxlSXRlbV0nKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSBleHRlbmRzIERlcHJlY2F0ZWRTZWxlY3RvciB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtGb2N1c2FibGVJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBGb2N1c2FibGVJdGVtRGlyZWN0aXZlXG4gICAgICAgIH0sXG4gICAgICAgIERlc3Ryb3llZFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBIYXNFbGVtZW50UmVmIHtcbiAgICAvKiogV2hldGhlciB0aGUgaXRlbSBpcyBmb2N1c2FibGUuIERlZmF1bHQgaXMgdHJ1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmZGtGb2N1c2FibGVJdGVtKHZhbDogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWwpO1xuICAgICAgICB0aGlzLnNldFRhYmJhYmxlKHRoaXMuX2ZvY3VzYWJsZSk7XG4gICAgfVxuXG4gICAgZ2V0IGZka0ZvY3VzYWJsZUl0ZW0oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c2FibGU7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uLCB3aGljaCByZXR1cm5zIGEgc3RyaW5nIHRvIGJlIGFubm91bmNlZCBieSBzY3JlZW4tcmVhZGVyIHdoZW5ldmVyIGFuIGl0ZW0gd2hpY2ggaXMgaW4gZ3JpZCByZWNlaXZlcyBmb2N1cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXI6IENlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIgPSB0aGlzLl9kZWZhdWx0SXRlbUZvY3VzZWRFdmVudEFubm91bmNlcjtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNlbGwgcmVjZWl2ZXMgZm9jdXMsIG5vdCBiZWluZyBlbWl0dGVkIHdoZW4gZm9jdXMgbW92ZXMgYmV0d2VlbiBpdGVtJ3MgY2hpbGRyZW4uICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgY2VsbEZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIHJlYWRvbmx5IF9rZXlkb3duJCA9IG5ldyBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3NpdGlvbjogRm9jdXNhYmxlSXRlbVBvc2l0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c2FibGUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJiYWJsZUVsZW1lbnRzID0gbmV3IE1hcDxIVE1MRWxlbWVudCwgbnVtYmVyPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJiYWJsZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RpbWVySWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBnZXQgX3RhYmluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJiYWJsZSA/IDAgOiAtMTtcbiAgICB9XG5cbiAgICAvKiogRWxlbWVudCByZWZlcmVuY2UuICovXG4gICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlT2JzZXJ2ZXIgPSBpbmplY3QoRm9jdXNhYmxlT2JzZXJ2ZXIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95JCA9IGluamVjdChEZXN0cm95ZWRTZXJ2aWNlKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmJhYmxlRWxlbWVudFNlcnZpY2UgPSBpbmplY3QoVGFiYmFibGVFbGVtZW50U2VydmljZSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saXZlQW5ub3VuY2VyID0gaW5qZWN0KExpdmVBbm5vdW5jZXIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl9mb2N1c2FibGVPYnNlcnZlclxuICAgICAgICAgICAgLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLCBmYWxzZSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpc0ZvY3VzYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNGb2N1c2FibGUgJiYgaXNGb2N1c2FibGUgIT09IHRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZka0ZvY3VzYWJsZUl0ZW0gPSBpc0ZvY3VzYWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZvY3VzaW4nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX29uRm9jdXNpbigpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmb2N1c291dCcpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25Gb2N1c291dCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBTZXQgdGFiYmFibGUgc3RhdGUgKi9cbiAgICBzZXRUYWJiYWJsZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJiYWJsZSA9IHN0YXRlO1xuXG4gICAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fZW5hYmxlVGFiYmFibGVFbGVtZW50cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZVRhYmJhYmxlRWxlbWVudHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfb25Gb2N1c2luKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3RpbWVySWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVySWQpO1xuICAgICAgICAgICAgdGhpcy5fdGltZXJJZCA9IG51bGw7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fcG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY2VsbEZvY3VzZWQubmV4dCh0aGlzLl9wb3NpdGlvbik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXZlQW5ub3VuY2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0aGlzLmNlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIodGhpcy5fcG9zaXRpb24pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25Gb2N1c291dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZka0ZvY3VzYWJsZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRpbWVvdXQgaXMgbmVlZGVkIHRvIHByZXZlbnQgZm9jdXNvdXQgZXZlbnQgZnJvbSBiZWluZyBlbWl0dGVkIHdoZW4gZm9jdXMgbW92ZXMgYmV0d2VlbiBpdGVtJ3MgY2hpbGRyZW4uXG4gICAgICAgIHRoaXMuX3RpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLl90aW1lcklkID0gbnVsbCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mZGtGb2N1c2FibGVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0ZvY3VzZWQgPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNDaGlsZCA9IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIE1BQ19FTlRFUiwgRjJdKSAmJiAhZXZlbnQuc2hpZnRLZXkgJiYgaXNGb2N1c2VkO1xuICAgICAgICBjb25zdCBzaG91bGRGb2N1c0NlbGwgPVxuICAgICAgICAgICAgKChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRjIpICYmIGV2ZW50LnNoaWZ0S2V5KSB8fCBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRVNDQVBFKSkgJiYgIWlzRm9jdXNlZDtcblxuICAgICAgICBpZiAoc2hvdWxkRm9jdXNDaGlsZCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHRhYmJhYmxlRWxlbWVudCA9IHRoaXMuX3RhYmJhYmxlRWxlbWVudFNlcnZpY2UuZ2V0VGFiYmFibGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRhYmJhYmxlRWxlbWVudD8uZm9jdXMoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHNob3VsZEZvY3VzQ2VsbCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleWRvd24kLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9lbmFibGVUYWJiYWJsZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGFiYmFibGVFbGVtZW50cy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl90YWJiYWJsZUVsZW1lbnRzLmZvckVhY2goKHRhYkluZGV4LCBlbGVtZW50KSA9PiAoZWxlbWVudC50YWJJbmRleCA9IHRhYkluZGV4KSk7XG4gICAgICAgIHRoaXMuX3RhYmJhYmxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kaXNhYmxlVGFiYmFibGVFbGVtZW50cygpOiB2b2lkIHtcbiAgICAgICAgLy8gU2luY2Ugd2UgY2Fubm90IHNlbGVjdCBieSB0YWJpbmRleCBhdHRyaWJ1dGUgKGxpbmtzLCBpbnB1dHMsIGJ1dHRvbnMgbWlnaHQgbm90IGhhdmUgb25lIGJ1dCBzdGlsbCBjYW4gYmUgZm9jdXNhYmxlKSxcbiAgICAgICAgLy8gU2VsZWN0IGFsbCBlbGVtZW50cyBmcm9tIHRoZSBjZWxsIGFuZCBmaWx0ZXIgYnkgdGFiSW5kZXggcHJvcGVydHkuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJyonKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGVsbSkgPT4gZWxtLnRhYkluZGV4ID49IDApXG4gICAgICAgICAgICAuZm9yRWFjaCgoZWxtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFiYmFibGVFbGVtZW50cy5zZXQoZWxtLCBlbG0udGFiSW5kZXgpO1xuICAgICAgICAgICAgICAgIGVsbS50YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZWZhdWx0SXRlbUZvY3VzZWRFdmVudEFubm91bmNlcihwb3NpdGlvbjogRm9jdXNhYmxlSXRlbVBvc2l0aW9uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBDb2x1bW4gJHtwb3NpdGlvbi5jb2xJbmRleCArIDF9IG9mICR7cG9zaXRpb24udG90YWxDb2xzfSwgcm93OiAke3Bvc2l0aW9uLnJvd0luZGV4ICsgMX0gb2YgJHtcbiAgICAgICAgICAgIHBvc2l0aW9uLnRvdGFsUm93c1xuICAgICAgICB9YDtcbiAgICB9XG59XG4iXX0=