@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,218 +0,0 @@
1
- import { A, BACKSPACE, C, DASH, DELETE, END, ENTER, ESCAPE, HOME, LEFT_ARROW, NUMPAD_MINUS, RIGHT_ARROW, TAB, V, X } from '@angular/cdk/keycodes';
2
- import { Directive, ElementRef, HostListener, Input } from '@angular/core';
3
- import { KeyUtil } from '../../functions';
4
- import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
5
- import * as i0 from "@angular/core";
6
- export class DeprecatedOnlyDigitsDirective extends DeprecatedSelector {
7
- }
8
- DeprecatedOnlyDigitsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedOnlyDigitsDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
9
- DeprecatedOnlyDigitsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedOnlyDigitsDirective, isStandalone: true, selector: "[fdOnlyDigits], [fd-only-digits]", providers: [
10
- {
11
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
12
- useValue: getDeprecatedModel('[fdkOnlyDigits]', '[fdOnlyDigits], [fd-only-digits]')
13
- }
14
- ], usesInheritance: true, ngImport: i0 });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedOnlyDigitsDirective, decorators: [{
16
- type: Directive,
17
- args: [{
18
- // eslint-disable-next-line @angular-eslint/directive-selector
19
- selector: '[fdOnlyDigits], [fd-only-digits]',
20
- standalone: true,
21
- providers: [
22
- {
23
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
24
- useValue: getDeprecatedModel('[fdkOnlyDigits]', '[fdOnlyDigits], [fd-only-digits]')
25
- }
26
- ]
27
- }]
28
- }] });
29
- export class OnlyDigitsDirective {
30
- /** @hidden */
31
- constructor(_el) {
32
- this._el = _el;
33
- /** Allow using decimal */
34
- this.decimal = false;
35
- /** Define decimal separator
36
- * Default: .(dot)
37
- */
38
- this.decimalSeparator = '.';
39
- /** @hidden */
40
- this._hasDecimalPoint = false;
41
- this._inputElement = this._el.nativeElement;
42
- }
43
- /** @hidden */
44
- onKeyDown(e) {
45
- if (
46
- // Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right
47
- KeyUtil.isKeyCode(e, [DELETE, BACKSPACE, TAB, ESCAPE, ENTER, END, HOME, LEFT_ARROW, RIGHT_ARROW]) ||
48
- // Allow: Ctrl+(A/C/V/X) and Cmd+(A/C/V/X) (Mac)
49
- (KeyUtil.isKeyCode(e, [A, C, V, X]) && (e.ctrlKey || e.metaKey))) {
50
- return; // let it happen, don't do anything
51
- }
52
- if (KeyUtil.isKeyCode(e, [DASH, NUMPAD_MINUS])) {
53
- const newValue = this._forecastValue(e.key);
54
- if (this._inputElement.value[0] === '-' || newValue[0] !== '-') {
55
- e.preventDefault();
56
- return; // has DASH point
57
- }
58
- else {
59
- return; // Allow: only one DASH point
60
- }
61
- }
62
- if (this.decimal && e.key === this.decimalSeparator) {
63
- const newValue = this._forecastValue(e.key);
64
- if (newValue.split(this.decimalSeparator).length > 2) {
65
- // has two or more decimal points
66
- e.preventDefault();
67
- return;
68
- }
69
- else {
70
- this._hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;
71
- return; // Allow: only one decimal point
72
- }
73
- }
74
- // Ensure that it is a number and stop the keypress
75
- if (e.key === ' ' || isNaN(Number(e.key))) {
76
- e.preventDefault();
77
- return;
78
- }
79
- }
80
- /** @hidden */
81
- onPaste(event) {
82
- if (window['clipboardData']) {
83
- // Browser is IE
84
- this._pasteData(window['clipboardData'].getData('text'));
85
- }
86
- else if (event.clipboardData && event.clipboardData.getData) {
87
- // Other browsers
88
- this._pasteData(event.clipboardData.getData('text/plain'));
89
- }
90
- event.preventDefault();
91
- }
92
- /** @hidden */
93
- onDrop(event) {
94
- const textData = event.dataTransfer?.getData('text') ?? '';
95
- this._inputElement.focus();
96
- this._pasteData(textData);
97
- event.preventDefault();
98
- }
99
- /** @hidden */
100
- _pasteData(pastedContent) {
101
- const sanitizedContent = this._sanitizeInput(pastedContent);
102
- const pasted = document.execCommand('insertText', false, sanitizedContent);
103
- if (!pasted) {
104
- if (this._inputElement.setRangeText) {
105
- const { selectionStart: start, selectionEnd: end } = this._inputElement;
106
- this._inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, 'end');
107
- // Angular's Reactive Form relies on "input" event, but on Firefox, the setRangeText method doesn't trigger it
108
- // so we have to trigger it ourself.
109
- if (typeof window['InstallTrigger'] !== 'undefined') {
110
- this._inputElement.dispatchEvent(new Event('input', { cancelable: true }));
111
- }
112
- }
113
- else {
114
- // Browser does not support setRangeText, e.g. IE
115
- this._insertAtCursor(this._inputElement, sanitizedContent);
116
- }
117
- }
118
- if (this.decimal) {
119
- this._hasDecimalPoint = this._inputElement.value.indexOf(this.decimalSeparator) > -1;
120
- }
121
- }
122
- // The following 2 methods were added from the below article for browsers that do not support setRangeText
123
- // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position
124
- /** @hidden */
125
- _insertAtCursor(myField, myValue) {
126
- const startPos = myField.selectionStart ?? 0;
127
- const endPos = myField.selectionEnd ?? 0;
128
- myField.value =
129
- myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
130
- const pos = startPos + myValue.length;
131
- myField.focus();
132
- myField.setSelectionRange(pos, pos);
133
- this._triggerEvent(myField, 'input');
134
- }
135
- /** @hidden */
136
- _triggerEvent(el, type) {
137
- if ('createEvent' in document) {
138
- // modern browsers, IE9+
139
- const e = document.createEvent('HTMLEvents');
140
- e.initEvent(type, false, true);
141
- el.dispatchEvent(e);
142
- }
143
- }
144
- // end stack overflow code
145
- /** @hidden */
146
- _sanitizeInput(input) {
147
- let result = '';
148
- if (this.decimal && this._isValidDecimal(input)) {
149
- const regex = new RegExp(`[^0-9${this.decimalSeparator}]`, 'g');
150
- result = input.replace(regex, '');
151
- }
152
- else {
153
- result = input.replace(/[^0-9]/g, '');
154
- }
155
- if (input[0] === '-') {
156
- result = `-${result}`;
157
- }
158
- const maxLength = this._inputElement.maxLength;
159
- if (maxLength > 0) {
160
- // the input element has maxLength limit
161
- const allowedLength = maxLength - this._inputElement.value.length;
162
- result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
163
- }
164
- return result;
165
- }
166
- /** @hidden */
167
- _isValidDecimal(string) {
168
- if (!this._hasDecimalPoint) {
169
- return string.split(this.decimalSeparator).length <= 2;
170
- }
171
- else {
172
- // the input element already has a decimal separator
173
- const selectedText = this._getSelection;
174
- if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {
175
- return string.split(this.decimalSeparator).length <= 2;
176
- }
177
- else {
178
- return string.indexOf(this.decimalSeparator) < 0;
179
- }
180
- }
181
- }
182
- /** @hidden */
183
- get _getSelection() {
184
- const { selectionStart, selectionEnd } = this._inputElement;
185
- return this._inputElement.value.substring(selectionStart ?? 0, selectionEnd ?? 0);
186
- }
187
- /** @hidden */
188
- _forecastValue(key) {
189
- const { selectionStart, selectionEnd, value: oldValue } = this._inputElement;
190
- const selection = oldValue.substring(selectionStart ?? 0, selectionEnd ?? 0);
191
- return selection
192
- ? oldValue.replace(selection, key)
193
- : oldValue.substring(0, selectionStart ?? 0) + key + oldValue.substring(selectionStart ?? 0);
194
- }
195
- }
196
- OnlyDigitsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OnlyDigitsDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
197
- OnlyDigitsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: OnlyDigitsDirective, isStandalone: true, selector: "[fdkOnlyDigits], [fdOnlyDigits], [fd-only-digits]", inputs: { decimal: "decimal", decimalSeparator: "decimalSeparator" }, host: { listeners: { "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, ngImport: i0 });
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OnlyDigitsDirective, decorators: [{
199
- type: Directive,
200
- args: [{
201
- selector: '[fdkOnlyDigits], [fdOnlyDigits], [fd-only-digits]',
202
- standalone: true
203
- }]
204
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { decimal: [{
205
- type: Input
206
- }], decimalSeparator: [{
207
- type: Input
208
- }], onKeyDown: [{
209
- type: HostListener,
210
- args: ['keydown', ['$event']]
211
- }], onPaste: [{
212
- type: HostListener,
213
- args: ['paste', ['$event']]
214
- }], onDrop: [{
215
- type: HostListener,
216
- args: ['drop', ['$event']]
217
- }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25seS1kaWdpdHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL29ubHktZGlnaXRzL29ubHktZGlnaXRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsQ0FBQyxFQUNELFNBQVMsRUFDVCxDQUFDLEVBQ0QsSUFBSSxFQUNKLE1BQU0sRUFDTixHQUFHLEVBQ0gsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEVBQ0osVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsR0FBRyxFQUNILENBQUMsRUFDRCxDQUFDLEVBQ0osTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxrQkFBa0IsRUFDckIsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFhekMsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGtCQUFrQjs7MEhBQXhELDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtFQVAzQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsa0NBQWtDLENBQUM7U0FDdEY7S0FDSjsyRkFFUSw2QkFBNkI7a0JBWHpDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxr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Q0FBQyxjQUFjLElBQUksQ0FBQyxFQUFFLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU3RSxPQUFPLFNBQVM7WUFDWixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7O2dIQS9MUSxtQkFBbUI7b0dBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtREFBbUQ7b0JBQzdELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtpR0FHWSxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQWNOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNENuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWVqQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBLFxuICAgIEJBQ0tTUEFDRSxcbiAgICBDLFxuICAgIERBU0gsXG4gICAgREVMRVRFLFxuICAgIEVORCxcbiAgICBFTlRFUixcbiAgICBFU0NBUEUsXG4gICAgSE9NRSxcbiAgICBMRUZUX0FSUk9XLFxuICAgIE5VTVBBRF9NSU5VUyxcbiAgICBSSUdIVF9BUlJPVyxcbiAgICBUQUIsXG4gICAgVixcbiAgICBYXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkT25seURpZ2l0c10sIFtmZC1vbmx5LWRpZ2l0c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka09ubHlEaWdpdHNdJywgJ1tmZE9ubHlEaWdpdHNdLCBbZmQtb25seS1kaWdpdHNdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZE9ubHlEaWdpdHNEaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrT25seURpZ2l0c10sIFtmZE9ubHlEaWdpdHNdLCBbZmQtb25seS1kaWdpdHNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE9ubHlEaWdpdHNEaXJlY3RpdmUge1xuICAgIC8qKiBBbGxvdyB1c2luZyBkZWNpbWFsICovXG4gICAgQElucHV0KCkgZGVjaW1hbCA9IGZhbHNlO1xuICAgIC8qKiBEZWZpbmUgZGVjaW1hbCBzZXBhcmF0b3JcbiAgICAgKiBEZWZhdWx0OiAuKGRvdClcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkZWNpbWFsU2VwYXJhdG9yID0gJy4nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50ID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIEFsbG93OiBEZWxldGUsIEJhY2tzcGFjZSwgVGFiLCBFc2NhcGUsIEVudGVyLCBFbmQsIEhvbWUsIEFycm93IExlZnQsIEFycm93IFJpZ2h0XG4gICAgICAgICAgICBLZXlVdGlsLmlzS2V5Q29kZShlLCBbREVMRVRFLCBCQUNLU1BBQ0UsIFRBQiwgRVNDQVBFLCBFTlRFUiwgRU5ELCBIT01FLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPV10pIHx8XG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCsoQS9DL1YvWCkgYW5kIENtZCsoQS9DL1YvWCkgKE1hYylcbiAgICAgICAgICAgIChLZXlVdGlsLmlzS2V5Q29kZShlLCBbQSwgQywgViwgWF0pICYmIChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47IC8vIGxldCBpdCBoYXBwZW4sIGRvbid0IGRvIGFueXRoaW5nXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZSwgW0RBU0gsIE5VTVBBRF9NSU5VU10pKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuX2ZvcmVjYXN0VmFsdWUoZS5rZXkpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50LnZhbHVlWzBdID09PSAnLScgfHwgbmV3VmFsdWVbMF0gIT09ICctJykge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gaGFzIERBU0ggcG9pbnRcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBBbGxvdzogb25seSBvbmUgREFTSCBwb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuX2ZvcmVjYXN0VmFsdWUoZS5rZXkpO1xuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICAgIC8vIGhhcyB0d28gb3IgbW9yZSBkZWNpbWFsIHBvaW50c1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hhc0RlY2ltYWxQb2ludCA9IG5ld1ZhbHVlLmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKSA+IC0xO1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gQWxsb3c6IG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xuICAgICAgICBpZiAoZS5rZXkgPT09ICcgJyB8fCBpc05hTihOdW1iZXIoZS5rZXkpKSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXG4gICAgb25QYXN0ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh3aW5kb3dbJ2NsaXBib2FyZERhdGEnXSkge1xuICAgICAgICAgICAgLy8gQnJvd3NlciBpcyBJRVxuICAgICAgICAgICAgdGhpcy5fcGFzdGVEYXRhKHdpbmRvd1snY2xpcGJvYXJkRGF0YSddLmdldERhdGEoJ3RleHQnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY2xpcGJvYXJkRGF0YSAmJiBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEpIHtcbiAgICAgICAgICAgIC8vIE90aGVyIGJyb3dzZXJzXG4gICAgICAgICAgICB0aGlzLl9wYXN0ZURhdGEoZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0JykgPz8gJyc7XG4gICAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLl9wYXN0ZURhdGEodGV4dERhdGEpO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYXN0ZURhdGEocGFzdGVkQ29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZENvbnRlbnQgPSB0aGlzLl9zYW5pdGl6ZUlucHV0KHBhc3RlZENvbnRlbnQpO1xuICAgICAgICBjb25zdCBwYXN0ZWQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCBzYW5pdGl6ZWRDb250ZW50KTtcbiAgICAgICAgaWYgKCFwYXN0ZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQuc2V0UmFuZ2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydDogc3RhcnQsIHNlbGVjdGlvbkVuZDogZW5kIH0gPSB0aGlzLl9pbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChzYW5pdGl6ZWRDb250ZW50LCBzdGFydCA/PyAwLCBlbmQgPz8gMCwgJ2VuZCcpO1xuICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIncyBSZWFjdGl2ZSBGb3JtIHJlbGllcyBvbiBcImlucHV0XCIgZXZlbnQsIGJ1dCBvbiBGaXJlZm94LCB0aGUgc2V0UmFuZ2VUZXh0IG1ldGhvZCBkb2Vzbid0IHRyaWdnZXIgaXRcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIHRyaWdnZXIgaXQgb3Vyc2VsZi5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvd1snSW5zdGFsbFRyaWdnZXInXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgc2V0UmFuZ2VUZXh0LCBlLmcuIElFXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0QXRDdXJzb3IodGhpcy5faW5wdXRFbGVtZW50LCBzYW5pdGl6ZWRDb250ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhc0RlY2ltYWxQb2ludCA9IHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgPiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgMiBtZXRob2RzIHdlcmUgYWRkZWQgZnJvbSB0aGUgYmVsb3cgYXJ0aWNsZSBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBzZXRSYW5nZVRleHRcbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTA3Njk3NS9ob3ctdG8taW5zZXJ0LXRleHQtaW50by10aGUtdGV4dGFyZWEtYXQtdGhlLWN1cnJlbnQtY3Vyc29yLXBvc2l0aW9uXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnNlcnRBdEN1cnNvcihteUZpZWxkOiBIVE1MSW5wdXRFbGVtZW50LCBteVZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhcnRQb3MgPSBteUZpZWxkLnNlbGVjdGlvblN0YXJ0ID8/IDA7XG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IG15RmllbGQuc2VsZWN0aW9uRW5kID8/IDA7XG5cbiAgICAgICAgbXlGaWVsZC52YWx1ZSA9XG4gICAgICAgICAgICBteUZpZWxkLnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcykgKyBteVZhbHVlICsgbXlGaWVsZC52YWx1ZS5zdWJzdHJpbmcoZW5kUG9zLCBteUZpZWxkLnZhbHVlLmxlbmd0aCk7XG5cbiAgICAgICAgY29uc3QgcG9zID0gc3RhcnRQb3MgKyBteVZhbHVlLmxlbmd0aDtcbiAgICAgICAgbXlGaWVsZC5mb2N1cygpO1xuICAgICAgICBteUZpZWxkLnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcblxuICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnQobXlGaWVsZCwgJ2lucHV0Jyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmlnZ2VyRXZlbnQoZWw6IEhUTUxJbnB1dEVsZW1lbnQsIHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2NyZWF0ZUV2ZW50JyBpbiBkb2N1bWVudCkge1xuICAgICAgICAgICAgLy8gbW9kZXJuIGJyb3dzZXJzLCBJRTkrXG4gICAgICAgICAgICBjb25zdCBlID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcbiAgICAgICAgICAgIGUuaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQoZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gZW5kIHN0YWNrIG92ZXJmbG93IGNvZGVcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICBpZiAodGhpcy5kZWNpbWFsICYmIHRoaXMuX2lzVmFsaWREZWNpbWFsKGlucHV0KSkge1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBbXjAtOSR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfV1gLCAnZycpO1xuICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZSgvW14wLTldL2csICcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbnB1dFswXSA9PT0gJy0nKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBgLSR7cmVzdWx0fWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLl9pbnB1dEVsZW1lbnQubWF4TGVuZ3RoO1xuICAgICAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgaGFzIG1heExlbmd0aCBsaW1pdFxuICAgICAgICAgICAgY29uc3QgYWxsb3dlZExlbmd0aCA9IG1heExlbmd0aCAtIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1ZhbGlkRGVjaW1hbChzdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX2hhc0RlY2ltYWxQb2ludCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCA8PSAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgYWxyZWFkeSBoYXMgYSBkZWNpbWFsIHNlcGFyYXRvclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZXh0ID0gdGhpcy5fZ2V0U2VsZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkVGV4dCAmJiBzZWxlY3RlZFRleHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpID4gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoIDw9IDI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJpbmcuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIDwgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2dldFNlbGVjdGlvbigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgfSA9IHRoaXMuX2lucHV0RWxlbWVudDtcblxuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCA/PyAwLCBzZWxlY3Rpb25FbmQgPz8gMCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JlY2FzdFZhbHVlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kLCB2YWx1ZTogb2xkVmFsdWUgfSA9IHRoaXMuX2lucHV0RWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gb2xkVmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0ID8/IDAsIHNlbGVjdGlvbkVuZCA/PyAwKTtcblxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uXG4gICAgICAgICAgICA/IG9sZFZhbHVlLnJlcGxhY2Uoc2VsZWN0aW9uLCBrZXkpXG4gICAgICAgICAgICA6IG9sZFZhbHVlLnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCA/PyAwKSArIGtleSArIG9sZFZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCA/PyAwKTtcbiAgICB9XG59XG4iXX0=
@@ -1,42 +0,0 @@
1
- import { Directive, ElementRef } from '@angular/core';
2
- import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
3
- import * as i0 from "@angular/core";
4
- export class DeprecatedOverflowListItemDirective extends DeprecatedSelector {
5
- }
6
- DeprecatedOverflowListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedOverflowListItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7
- DeprecatedOverflowListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedOverflowListItemDirective, isStandalone: true, selector: "[fdOverflowListItem], [fd-overflow-list-item]", providers: [
8
- {
9
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
10
- useValue: getDeprecatedModel('[fdkOverflowListItem]', '[fdOverflowListItem], [fd-overflow-list-item]')
11
- }
12
- ], usesInheritance: true, ngImport: i0 });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedOverflowListItemDirective, decorators: [{
14
- type: Directive,
15
- args: [{
16
- // eslint-disable-next-line @angular-eslint/directive-selector
17
- selector: '[fdOverflowListItem], [fd-overflow-list-item]',
18
- standalone: true,
19
- providers: [
20
- {
21
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
22
- useValue: getDeprecatedModel('[fdkOverflowListItem]', '[fdOverflowListItem], [fd-overflow-list-item]')
23
- }
24
- ]
25
- }]
26
- }] });
27
- export class OverflowListItemDirective {
28
- /** @hidden */
29
- constructor(el) {
30
- this.el = el;
31
- }
32
- }
33
- OverflowListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverflowListItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
34
- OverflowListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: OverflowListItemDirective, isStandalone: true, selector: "[fdkOverflowListItem], [fdOverflowListItem], [fd-overflow-list-item]", ngImport: i0 });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverflowListItemDirective, decorators: [{
36
- type: Directive,
37
- args: [{
38
- selector: '[fdkOverflowListItem], [fdOverflowListItem], [fd-overflow-list-item]',
39
- standalone: true
40
- }]
41
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGlzdC1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9vdmVyZmxvdy1saXN0L292ZXJmbG93LWxpc3QtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7O0FBYXpDLE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSxrQkFBa0I7O2dJQUE5RCxtQ0FBbUM7b0hBQW5DLG1DQUFtQyw0RkFQakM7UUFDUDtZQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLHVCQUF1QixFQUFFLCtDQUErQyxDQUFDO1NBQ3pHO0tBQ0o7MkZBRVEsbUNBQW1DO2tCQVgvQyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLCtDQUErQztvQkFDekQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsdUJBQXVCLEVBQUUsK0NBQStDLENBQUM7eUJBQ3pHO3FCQUNKO2lCQUNKOztBQU9ELE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsY0FBYztJQUNkLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQzs7c0hBRjVCLHlCQUF5QjswR0FBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNFQUFzRTtvQkFDaEYsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRPdmVyZmxvd0xpc3RJdGVtXSwgW2ZkLW92ZXJmbG93LWxpc3QtaXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka092ZXJmbG93TGlzdEl0ZW1dJywgJ1tmZE92ZXJmbG93TGlzdEl0ZW1dLCBbZmQtb3ZlcmZsb3ctbGlzdC1pdGVtXScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka092ZXJmbG93TGlzdEl0ZW1dLCBbZmRPdmVyZmxvd0xpc3RJdGVtXSwgW2ZkLW92ZXJmbG93LWxpc3QtaXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmZsb3dMaXN0SXRlbURpcmVjdGl2ZSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHt9XG59XG4iXX0=
@@ -1,142 +0,0 @@
1
- import { ContentChildren, Directive, ElementRef, EventEmitter, Input, NgZone, Output, QueryList } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { takeUntil } from 'rxjs/operators';
4
- import { OverflowListItemDirective } from './overflow-list-item.directive';
5
- import { ViewportRuler } from '@angular/cdk/overlay';
6
- import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/cdk/overlay";
9
- export class DeprecatedOverflowListDirective extends DeprecatedSelector {
10
- }
11
- DeprecatedOverflowListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedOverflowListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
12
- DeprecatedOverflowListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedOverflowListDirective, isStandalone: true, selector: "[fdOverflowList], [fd-overflow-list]", providers: [
13
- {
14
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
15
- useValue: getDeprecatedModel('[fdkOverflowList]', '[fdOverflowList], [fd-overflow-list]')
16
- }
17
- ], usesInheritance: true, ngImport: i0 });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedOverflowListDirective, decorators: [{
19
- type: Directive,
20
- args: [{
21
- // eslint-disable-next-line @angular-eslint/directive-selector
22
- selector: '[fdOverflowList], [fd-overflow-list]',
23
- standalone: true,
24
- providers: [
25
- {
26
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
27
- useValue: getDeprecatedModel('[fdkOverflowList]', '[fdOverflowList], [fd-overflow-list]')
28
- }
29
- ]
30
- }]
31
- }] });
32
- export class OverflowListDirective {
33
- /** @hidden */
34
- constructor(_el, _viewportRuler, _ngZone) {
35
- this._el = _el;
36
- this._viewportRuler = _viewportRuler;
37
- this._ngZone = _ngZone;
38
- /**
39
- * @description Offset to calculate correct position
40
- */
41
- this.overflowOffset = 0;
42
- /**
43
- * @description value of display property of existed list items
44
- */
45
- this.itemCssBlockValue = 'flex';
46
- /**
47
- * @description Emits when changed amount of extra items
48
- */
49
- this.overflowChanged = new EventEmitter();
50
- /** @hidden */
51
- this._onDestroy$ = new Subject();
52
- }
53
- /** @hidden */
54
- ngAfterViewInit() {
55
- this._viewportRuler
56
- .change(50)
57
- .pipe(takeUntil(this._onDestroy$))
58
- // ViewportRuler invoked out of zone, that is why I need to invoke function in zone
59
- .subscribe(() => this._ngZone.run(() => this._calculateAmountOfOverflowedItems()));
60
- this._calculateAmountOfOverflowedItems();
61
- }
62
- /** @hidden */
63
- ngOnDestroy() {
64
- this._onDestroy$.next();
65
- this._onDestroy$.complete();
66
- }
67
- /**
68
- * @description Get amount of extra items in current list
69
- * */
70
- getAmountOfExtraItems() {
71
- const elements = this.overflowItems.toArray().map((item) => item.el.nativeElement);
72
- const computed = getComputedStyle(this._el.nativeElement);
73
- const contentWidth = this._el.nativeElement.clientWidth -
74
- parseFloat(computed.paddingLeft || '0') -
75
- parseFloat(computed.paddingRight || '0');
76
- return this._checkWidthWithOffset(elements, contentWidth);
77
- }
78
- /** @hidden */
79
- _calculateAmountOfOverflowedItems() {
80
- const extra = this.getAmountOfExtraItems();
81
- this.overflowChanged.emit(extra);
82
- }
83
- /**
84
- * @hidden
85
- * @param arrItems
86
- * @param containerWidth
87
- * @param checkWithOffset
88
- * */
89
- _checkWidthWithOffset(arrItems, containerWidth, checkWithOffset = false) {
90
- let itemsTotalWidth = 0;
91
- const parentWidth = checkWithOffset ? containerWidth - this.overflowOffset : containerWidth;
92
- arrItems.forEach((item) => {
93
- item.hidden = true;
94
- item.style.display = this.itemCssBlockValue;
95
- });
96
- for (let i = 0; i < arrItems.length; i++) {
97
- const item = arrItems[i];
98
- itemsTotalWidth += this.isRtl
99
- ? containerWidth - item.offsetLeft - itemsTotalWidth
100
- : item.offsetWidth + item.offsetLeft - itemsTotalWidth;
101
- if (parentWidth < itemsTotalWidth) {
102
- this._clearTempStyles(arrItems);
103
- return checkWithOffset
104
- ? arrItems.length - i
105
- : this._checkWidthWithOffset(arrItems, containerWidth, true);
106
- }
107
- }
108
- this._clearTempStyles(arrItems);
109
- return 0;
110
- }
111
- /**
112
- * @param arrItems
113
- * @hidden
114
- * */
115
- _clearTempStyles(arrItems) {
116
- arrItems.forEach((item) => {
117
- item.hidden = false;
118
- item.style.removeProperty('display');
119
- });
120
- }
121
- }
122
- OverflowListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverflowListDirective, deps: [{ token: i0.ElementRef }, { token: i1.ViewportRuler }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
123
- OverflowListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: OverflowListDirective, isStandalone: true, selector: "[fdkOverflowList], [fdOverflowList], [fd-overflow-list]", inputs: { overflowOffset: "overflowOffset", isRtl: "isRtl", itemCssBlockValue: "itemCssBlockValue" }, outputs: { overflowChanged: "overflowChanged" }, queries: [{ propertyName: "overflowItems", predicate: OverflowListItemDirective }], ngImport: i0 });
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverflowListDirective, decorators: [{
125
- type: Directive,
126
- args: [{
127
- selector: '[fdkOverflowList], [fdOverflowList], [fd-overflow-list]',
128
- standalone: true
129
- }]
130
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ViewportRuler }, { type: i0.NgZone }]; }, propDecorators: { overflowOffset: [{
131
- type: Input
132
- }], isRtl: [{
133
- type: Input
134
- }], itemCssBlockValue: [{
135
- type: Input
136
- }], overflowChanged: [{
137
- type: Output
138
- }], overflowItems: [{
139
- type: ContentChildren,
140
- args: [OverflowListItemDirective]
141
- }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGlzdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvb3ZlcmZsb3ctbGlzdC9vdmVyZmxvdy1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7OztBQWF6QyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsa0JBQWtCOzs0SEFBMUQsK0JBQStCO2dIQUEvQiwrQkFBK0IsbUZBUDdCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxzQ0FBc0MsQ0FBQztTQUM1RjtLQUNKOzJGQUVRLCtCQUErQjtrQkFYM0MsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLHNDQUFzQyxD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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT3ZlcmZsb3dMaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vb3ZlcmZsb3ctbGlzdC1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkT3ZlcmZsb3dMaXN0XSwgW2ZkLW92ZXJmbG93LWxpc3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtPdmVyZmxvd0xpc3RdJywgJ1tmZE92ZXJmbG93TGlzdF0sIFtmZC1vdmVyZmxvdy1saXN0XScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRPdmVyZmxvd0xpc3REaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrT3ZlcmZsb3dMaXN0XSwgW2ZkT3ZlcmZsb3dMaXN0XSwgW2ZkLW92ZXJmbG93LWxpc3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE92ZXJmbG93TGlzdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE9mZnNldCB0byBjYWxjdWxhdGUgY29ycmVjdCBwb3NpdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgb3ZlcmZsb3dPZmZzZXQgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZsYWcgcmVwcmVzZW50aW5nIHJ0bCBtb2RlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1J0bDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiB2YWx1ZSBvZiBkaXNwbGF5IHByb3BlcnR5IG9mIGV4aXN0ZWQgbGlzdCBpdGVtc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXRlbUNzc0Jsb2NrVmFsdWUgPSAnZmxleCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBjaGFuZ2VkIGFtb3VudCBvZiBleHRyYSBpdGVtc1xuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG92ZXJmbG93Q2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2VzIHRvIFF1ZXJ5TGlzdCBvZiBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlKVxuICAgIG92ZXJmbG93SXRlbXM6IFF1ZXJ5TGlzdDxPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLCBwcml2YXRlIF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLCBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92aWV3cG9ydFJ1bGVyXG4gICAgICAgICAgICAuY2hhbmdlKDUwKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLy8gVmlld3BvcnRSdWxlciBpbnZva2VkIG91dCBvZiB6b25lLCB0aGF0IGlzIHdoeSBJIG5lZWQgdG8gaW52b2tlIGZ1bmN0aW9uIGluIHpvbmVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLl9jYWxjdWxhdGVBbW91bnRPZk92ZXJmbG93ZWRJdGVtcygpKSk7XG5cbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlQW1vdW50T2ZPdmVyZmxvd2VkSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgYW1vdW50IG9mIGV4dHJhIGl0ZW1zIGluIGN1cnJlbnQgbGlzdFxuICAgICAqICovXG4gICAgZ2V0QW1vdW50T2ZFeHRyYUl0ZW1zKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5vdmVyZmxvd0l0ZW1zLnRvQXJyYXkoKS5tYXAoKGl0ZW0pID0+IGl0ZW0uZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29udGVudFdpZHRoID1cbiAgICAgICAgICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLVxuICAgICAgICAgICAgcGFyc2VGbG9hdChjb21wdXRlZC5wYWRkaW5nTGVmdCB8fCAnMCcpIC1cbiAgICAgICAgICAgIHBhcnNlRmxvYXQoY29tcHV0ZWQucGFkZGluZ1JpZ2h0IHx8ICcwJyk7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja1dpZHRoV2l0aE9mZnNldChlbGVtZW50cywgY29udGVudFdpZHRoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NhbGN1bGF0ZUFtb3VudE9mT3ZlcmZsb3dlZEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBleHRyYSA9IHRoaXMuZ2V0QW1vdW50T2ZFeHRyYUl0ZW1zKCk7XG4gICAgICAgIHRoaXMub3ZlcmZsb3dDaGFuZ2VkLmVtaXQoZXh0cmEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gYXJySXRlbXNcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyV2lkdGhcbiAgICAgKiBAcGFyYW0gY2hlY2tXaXRoT2Zmc2V0XG4gICAgICogKi9cbiAgICBwcml2YXRlIF9jaGVja1dpZHRoV2l0aE9mZnNldChcbiAgICAgICAgYXJySXRlbXM6IEhUTUxFbGVtZW50W10sXG4gICAgICAgIGNvbnRhaW5lcldpZHRoOiBudW1iZXIsXG4gICAgICAgIGNoZWNrV2l0aE9mZnNldDogYm9vbGVhbiA9IGZhbHNlXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGl0ZW1zVG90YWxXaWR0aCA9IDA7XG4gICAgICAgIGNvbnN0IHBhcmVudFdpZHRoID0gY2hlY2tXaXRoT2Zmc2V0ID8gY29udGFpbmVyV2lkdGggLSB0aGlzLm92ZXJmbG93T2Zmc2V0IDogY29udGFpbmVyV2lkdGg7XG5cbiAgICAgICAgYXJySXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgaXRlbS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5pdGVtQ3NzQmxvY2tWYWx1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGFyckl0ZW1zW2ldO1xuXG4gICAgICAgICAgICBpdGVtc1RvdGFsV2lkdGggKz0gdGhpcy5pc1J0bFxuICAgICAgICAgICAgICAgID8gY29udGFpbmVyV2lkdGggLSBpdGVtLm9mZnNldExlZnQgLSBpdGVtc1RvdGFsV2lkdGhcbiAgICAgICAgICAgICAgICA6IGl0ZW0ub2Zmc2V0V2lkdGggKyBpdGVtLm9mZnNldExlZnQgLSBpdGVtc1RvdGFsV2lkdGg7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRXaWR0aCA8IGl0ZW1zVG90YWxXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFyVGVtcFN0eWxlcyhhcnJJdGVtcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoZWNrV2l0aE9mZnNldFxuICAgICAgICAgICAgICAgICAgICA/IGFyckl0ZW1zLmxlbmd0aCAtIGlcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9jaGVja1dpZHRoV2l0aE9mZnNldChhcnJJdGVtcywgY29udGFpbmVyV2lkdGgsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2xlYXJUZW1wU3R5bGVzKGFyckl0ZW1zKTtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGFyckl0ZW1zXG4gICAgICogQGhpZGRlblxuICAgICAqICovXG4gICAgcHJpdmF0ZSBfY2xlYXJUZW1wU3R5bGVzKGFyckl0ZW1zOiBIVE1MRWxlbWVudFtdKTogdm9pZCB7XG4gICAgICAgIGFyckl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,97 +0,0 @@
1
- import { Directive, ElementRef, Input } from '@angular/core';
2
- import { BehaviorSubject, ReplaySubject } from 'rxjs';
3
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import { takeUntil, tap } from 'rxjs/operators';
5
- import { FDK_READONLY_DIRECTIVE } from './fdk-readonly.token';
6
- import { setReadonlyState } from './set-readonly-state';
7
- import { DestroyedService } from '../../services/destroyed.service';
8
- import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../../services/destroyed.service";
11
- export class DeprecatedReadonlyBehaviorDirective extends DeprecatedSelector {
12
- }
13
- DeprecatedReadonlyBehaviorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedReadonlyBehaviorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
- DeprecatedReadonlyBehaviorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedReadonlyBehaviorDirective, isStandalone: true, selector: "[fnReadonly]", providers: [
15
- {
16
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
17
- useValue: getDeprecatedModel('[fdkReadonly]', '[fnReadonly]')
18
- }
19
- ], usesInheritance: true, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedReadonlyBehaviorDirective, decorators: [{
21
- type: Directive,
22
- args: [{
23
- // eslint-disable-next-line @angular-eslint/directive-selector
24
- selector: '[fnReadonly]',
25
- standalone: true,
26
- providers: [
27
- {
28
- provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
29
- useValue: getDeprecatedModel('[fdkReadonly]', '[fnReadonly]')
30
- }
31
- ]
32
- }]
33
- }] });
34
- export class ReadonlyBehaviorDirective extends ReplaySubject {
35
- /** @Hidden */
36
- set fdkReadonly(value) {
37
- this._readonlyInput$.next(coerceBooleanProperty(value));
38
- }
39
- get fdkReadonly() {
40
- return this._readonly;
41
- }
42
- /** @hidden */
43
- constructor(_elementRef, _destroy$) {
44
- super(1);
45
- this._elementRef = _elementRef;
46
- this._destroy$ = _destroy$;
47
- /** @Hidden */
48
- this._readonly = false;
49
- /** @hidden */
50
- this._readonlyInput$ = new BehaviorSubject(false);
51
- /** @Hidden */
52
- this.setReadonlyState = (isReadonly) => {
53
- setReadonlyState(this._elementRef, isReadonly);
54
- };
55
- }
56
- /** @hidden */
57
- ngAfterViewInit() {
58
- this._readonlyInput$
59
- .pipe(tap((isReadonly) => {
60
- if (isReadonly !== this._readonly) {
61
- this.setReadonlyState(isReadonly);
62
- this._readonly = isReadonly;
63
- this.next(isReadonly);
64
- }
65
- }), takeUntil(this._destroy$))
66
- .subscribe();
67
- }
68
- /** @hidden */
69
- ngOnDestroy() {
70
- this.complete();
71
- }
72
- }
73
- ReadonlyBehaviorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReadonlyBehaviorDirective, deps: [{ token: i0.ElementRef }, { token: i1.DestroyedService }], target: i0.ɵɵFactoryTarget.Directive });
74
- ReadonlyBehaviorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ReadonlyBehaviorDirective, isStandalone: true, selector: "[fdkReadonly], [fnReadonly]", inputs: { fdkReadonly: "fdkReadonly" }, providers: [
75
- {
76
- provide: FDK_READONLY_DIRECTIVE,
77
- useExisting: ReadonlyBehaviorDirective
78
- },
79
- DestroyedService
80
- ], usesInheritance: true, ngImport: i0 });
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReadonlyBehaviorDirective, decorators: [{
82
- type: Directive,
83
- args: [{
84
- selector: '[fdkReadonly], [fnReadonly]',
85
- standalone: true,
86
- providers: [
87
- {
88
- provide: FDK_READONLY_DIRECTIVE,
89
- useExisting: ReadonlyBehaviorDirective
90
- },
91
- DestroyedService
92
- ]
93
- }]
94
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DestroyedService }]; }, propDecorators: { fdkReadonly: [{
95
- type: Input
96
- }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktYmVoYXZpb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL3JlYWRvbmx5L3JlYWRvbmx5LWJlaGF2aW9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOzs7QUFhekMsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLGtCQUFrQjs7Z0lBQTlELG1DQUFtQztvSEFBbkMsbUNBQW1DLDJEQVBqQztRQUNQO1lBQ0ksT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQztTQUNoRTtLQUNKOzJGQUVRLG1DQUFtQztrQkFYL0MsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDO3lCQUNoRTtxQkFDSjtpQkFDSjs7QUFjRCxNQUFNLE9BQU8seUJBQ1QsU0FBUSxhQUFzQjtJQUc5QixjQUFjO0lBQ2QsSUFDSSxXQUFXLENBQUMsS0FBbUI7UUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFPRCxjQUFjO0lBQ2QsWUFBb0IsV0FBb0MsRUFBVSxTQUEyQjtRQUN6RixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFETyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQU43RixjQUFjO1FBQ2QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFjO1FBQ0csb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU85RCxjQUFjO1FBQ2QscUJBQWdCLEdBQUcsQ0FBQyxVQUFtQixFQUFRLEVBQUU7WUFDN0MsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUM7SUFMRixDQUFDO0lBT0QsY0FBYztJQUNkLGVBQWU7UUFDWCxJQUFJLENBQUMsZUFBZTthQUNmLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNmLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekI7UUFDTCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUM1QjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDOztzSEFoRFEseUJBQXlCOzBHQUF6Qix5QkFBeUIsa0hBUnZCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFdBQVcsRUFBRSx5QkFBeUI7U0FDekM7UUFDRCxnQkFBZ0I7S0FDbkI7MkZBRVEseUJBQXlCO2tCQVhyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHNCQUFzQjs0QkFDL0IsV0FBVywyQkFBMkI7eUJBQ3pDO3dCQUNELGdCQUFnQjtxQkFDbkI7aUJBQ0o7Z0lBT08sV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRkRLX1JFQURPTkxZX0RJUkVDVElWRSB9IGZyb20gJy4vZmRrLXJlYWRvbmx5LnRva2VuJztcbmltcG9ydCB7IFJlYWRvbmx5QmVoYXZpb3IgfSBmcm9tICcuL3JlYWRvbmx5LWJlaGF2aW9yLmludGVyZmFjZSc7XG5pbXBvcnQgeyBzZXRSZWFkb25seVN0YXRlIH0gZnJvbSAnLi9zZXQtcmVhZG9ubHktc3RhdGUnO1xuaW1wb3J0IHsgRGVzdHJveWVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Rlc3Ryb3llZC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRGVwcmVjYXRlZFNlbGVjdG9yLFxuICAgIEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgIGdldERlcHJlY2F0ZWRNb2RlbFxufSBmcm9tICcuLi8uLi9kZXByZWNhdGVkLXNlbGVjdG9yLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmblJlYWRvbmx5XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgICAgICAgICB1c2VWYWx1ZTogZ2V0RGVwcmVjYXRlZE1vZGVsKCdbZmRrUmVhZG9ubHldJywgJ1tmblJlYWRvbmx5XScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRSZWFkb25seUJlaGF2aW9yRGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka1JlYWRvbmx5XSwgW2ZuUmVhZG9ubHldJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGREtfUkVBRE9OTFlfRElSRUNUSVZFLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFJlYWRvbmx5QmVoYXZpb3JEaXJlY3RpdmVcbiAgICAgICAgfSxcbiAgICAgICAgRGVzdHJveWVkU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVhZG9ubHlCZWhhdmlvckRpcmVjdGl2ZVxuICAgIGV4dGVuZHMgUmVwbGF5U3ViamVjdDxib29sZWFuPlxuICAgIGltcGxlbWVudHMgUmVhZG9ubHlCZWhhdmlvciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmZGtSZWFkb25seSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX3JlYWRvbmx5SW5wdXQkLm5leHQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgZ2V0IGZka1JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBfcmVhZG9ubHkgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlYWRvbmx5SW5wdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIF9kZXN0cm95JDogRGVzdHJveWVkU2VydmljZSkge1xuICAgICAgICBzdXBlcigxKTtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHNldFJlYWRvbmx5U3RhdGUgPSAoaXNSZWFkb25seTogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgICBzZXRSZWFkb25seVN0YXRlKHRoaXMuX2VsZW1lbnRSZWYsIGlzUmVhZG9ubHkpO1xuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVhZG9ubHlJbnB1dCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoaXNSZWFkb25seSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNSZWFkb25seSAhPT0gdGhpcy5fcmVhZG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVhZG9ubHlTdGF0ZShpc1JlYWRvbmx5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlYWRvbmx5ID0gaXNSZWFkb25seTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmV4dChpc1JlYWRvbmx5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19