@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
@@ -0,0 +1,97 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedReadonlyBehaviorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: DeprecatedReadonlyBehaviorDirective, isStandalone: true, selector: "[fnReadonly]", providers: [
14
+ {
15
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
16
+ useValue: getDeprecatedModel('[fdkReadonly]', '[fnReadonly]')
17
+ }
18
+ ], usesInheritance: true, ngImport: i0 }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", 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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ReadonlyBehaviorDirective, deps: [{ token: i0.ElementRef }, { token: i1.DestroyedService }], target: i0.ɵɵFactoryTarget.Directive }); }
73
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: ReadonlyBehaviorDirective, isStandalone: true, selector: "[fdkReadonly], [fnReadonly]", inputs: { fdkReadonly: "fdkReadonly" }, providers: [
74
+ {
75
+ provide: FDK_READONLY_DIRECTIVE,
76
+ useExisting: ReadonlyBehaviorDirective
77
+ },
78
+ DestroyedService
79
+ ], usesInheritance: true, ngImport: i0 }); }
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktYmVoYXZpb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL3JlYWRvbmx5L3JlYWRvbmx5LWJlaGF2aW9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOzs7QUFhekMsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLGtCQUFrQjs4R0FBOUQsbUNBQW1DO2tHQUFuQyxtQ0FBbUMsMkRBUGpDO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGdDQUFnQztnQkFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUM7YUFDaEU7U0FDSjs7MkZBRVEsbUNBQW1DO2tCQVgvQyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUM7eUJBQ2hFO3FCQUNKO2lCQUNKOztBQWNELE1BQU0sT0FBTyx5QkFDVCxTQUFRLGFBQXNCO0lBRzlCLGNBQWM7SUFDZCxJQUNJLFdBQVcsQ0FBQyxLQUFtQjtRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQU9ELGNBQWM7SUFDZCxZQUFvQixXQUFvQyxFQUFVLFNBQTJCO1FBQ3pGLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQURPLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBTjdGLGNBQWM7UUFDZCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQWM7UUFDRyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBTzlELGNBQWM7UUFDZCxxQkFBZ0IsR0FBRyxDQUFDLFVBQW1CLEVBQVEsRUFBRTtZQUM3QyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQztJQUxGLENBQUM7SUFPRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxlQUFlO2FBQ2YsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QjtRQUNMLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzVCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7OEdBaERRLHlCQUF5QjtrR0FBekIseUJBQXlCLGtIQVJ2QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLFdBQVcsRUFBRSx5QkFBeUI7YUFDekM7WUFDRCxnQkFBZ0I7U0FDbkI7OzJGQUVRLHlCQUF5QjtrQkFYckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcsMkJBQTJCO3lCQUN6Qzt3QkFDRCxnQkFBZ0I7cUJBQ25CO2lCQUNKO2dJQU9PLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZES19SRUFET05MWV9ESVJFQ1RJVkUgfSBmcm9tICcuL2Zkay1yZWFkb25seS50b2tlbic7XG5pbXBvcnQgeyBSZWFkb25seUJlaGF2aW9yIH0gZnJvbSAnLi9yZWFkb25seS1iZWhhdmlvci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgc2V0UmVhZG9ubHlTdGF0ZSB9IGZyb20gJy4vc2V0LXJlYWRvbmx5LXN0YXRlJztcbmltcG9ydCB7IERlc3Ryb3llZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kZXN0cm95ZWQuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZm5SZWFkb25seV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka1JlYWRvbmx5XScsICdbZm5SZWFkb25seV0nKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkUmVhZG9ubHlCZWhhdmlvckRpcmVjdGl2ZSBleHRlbmRzIERlcHJlY2F0ZWRTZWxlY3RvciB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtSZWFkb25seV0sIFtmblJlYWRvbmx5XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX1JFQURPTkxZX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBSZWFkb25seUJlaGF2aW9yRGlyZWN0aXZlXG4gICAgICAgIH0sXG4gICAgICAgIERlc3Ryb3llZFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRvbmx5QmVoYXZpb3JEaXJlY3RpdmVcbiAgICBleHRlbmRzIFJlcGxheVN1YmplY3Q8Ym9vbGVhbj5cbiAgICBpbXBsZW1lbnRzIFJlYWRvbmx5QmVoYXZpb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIC8qKiBASGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZmRrUmVhZG9ubHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9yZWFkb25seUlucHV0JC5uZXh0KGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIGdldCBmZGtSZWFkb25seSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICAgIH1cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgX3JlYWRvbmx5ID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZWFkb25seUlucHV0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBfZGVzdHJveSQ6IERlc3Ryb3llZFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoMSk7XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBzZXRSZWFkb25seVN0YXRlID0gKGlzUmVhZG9ubHk6IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgc2V0UmVhZG9ubHlTdGF0ZSh0aGlzLl9lbGVtZW50UmVmLCBpc1JlYWRvbmx5KTtcbiAgICB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlYWRvbmx5SW5wdXQkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKGlzUmVhZG9ubHkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUmVhZG9ubHkgIT09IHRoaXMuX3JlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFJlYWRvbmx5U3RhdGUoaXNSZWFkb25seSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWFkb25seSA9IGlzUmVhZG9ubHk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHQoaXNSZWFkb25seSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,15 +2,15 @@ import { NgModule } from '@angular/core';
2
2
  import { ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective } from './readonly-behavior.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  export class ReadonlyBehaviorModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ReadonlyBehaviorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: ReadonlyBehaviorModule, imports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective], exports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ReadonlyBehaviorModule }); }
5
8
  }
6
- ReadonlyBehaviorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReadonlyBehaviorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- ReadonlyBehaviorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ReadonlyBehaviorModule, imports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective], exports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective] });
8
- ReadonlyBehaviorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReadonlyBehaviorModule });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReadonlyBehaviorModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ReadonlyBehaviorModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective],
13
13
  exports: [ReadonlyBehaviorDirective, DeprecatedReadonlyBehaviorDirective]
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktYmVoYXZpb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL3JlYWRvbmx5L3JlYWRvbmx5LWJlaGF2aW9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQU0vRyxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsWUFIckIseUJBQXlCLEVBQUUsbUNBQW1DLGFBQzlELHlCQUF5QixFQUFFLG1DQUFtQztvSEFFL0Qsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSmxDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMseUJBQXlCLEVBQUUsbUNBQW1DLENBQUM7b0JBQ3pFLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixFQUFFLG1DQUFtQyxDQUFDO2lCQUM1RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFkb25seUJlaGF2aW9yRGlyZWN0aXZlLCBEZXByZWNhdGVkUmVhZG9ubHlCZWhhdmlvckRpcmVjdGl2ZSB9IGZyb20gJy4vcmVhZG9ubHktYmVoYXZpb3IuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbUmVhZG9ubHlCZWhhdmlvckRpcmVjdGl2ZSwgRGVwcmVjYXRlZFJlYWRvbmx5QmVoYXZpb3JEaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtSZWFkb25seUJlaGF2aW9yRGlyZWN0aXZlLCBEZXByZWNhdGVkUmVhZG9ubHlCZWhhdmlvckRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgUmVhZG9ubHlCZWhhdmlvck1vZHVsZSB7fVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktYmVoYXZpb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL3JlYWRvbmx5L3JlYWRvbmx5LWJlaGF2aW9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQU0vRyxNQUFNLE9BQU8sc0JBQXNCOzhHQUF0QixzQkFBc0I7K0dBQXRCLHNCQUFzQixZQUhyQix5QkFBeUIsRUFBRSxtQ0FBbUMsYUFDOUQseUJBQXlCLEVBQUUsbUNBQW1DOytHQUUvRCxzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMseUJBQXlCLEVBQUUsbUNBQW1DLENBQUM7b0JBQ3pFLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixFQUFFLG1DQUFtQyxDQUFDO2lCQUM1RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFkb25seUJlaGF2aW9yRGlyZWN0aXZlLCBEZXByZWNhdGVkUmVhZG9ubHlCZWhhdmlvckRpcmVjdGl2ZSB9IGZyb20gJy4vcmVhZG9ubHktYmVoYXZpb3IuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbUmVhZG9ubHlCZWhhdmlvckRpcmVjdGl2ZSwgRGVwcmVjYXRlZFJlYWRvbmx5QmVoYXZpb3JEaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtSZWFkb25seUJlaGF2aW9yRGlyZWN0aXZlLCBEZXByZWNhdGVkUmVhZG9ubHlCZWhhdmlvckRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgUmVhZG9ubHlCZWhhdmlvck1vZHVsZSB7fVxuIl19
@@ -21,13 +21,13 @@ export class ReadonlyObserver {
21
21
  unobserve(element) {
22
22
  this._attributeObserver.unobserve(element);
23
23
  }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ReadonlyObserver, deps: [{ token: i1.AttributeObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ReadonlyObserver, providedIn: 'root' }); }
24
26
  }
25
- ReadonlyObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReadonlyObserver, deps: [{ token: i1.AttributeObserver }], target: i0.ɵɵFactoryTarget.Injectable });
26
- ReadonlyObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReadonlyObserver, providedIn: 'root' });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ReadonlyObserver, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ReadonlyObserver, decorators: [{
28
28
  type: Injectable,
29
29
  args: [{
30
30
  providedIn: 'root'
31
31
  }]
32
32
  }], ctorParameters: function () { return [{ type: i1.AttributeObserver }]; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHkub2JzZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvcmVhZG9ubHkvcmVhZG9ubHkub2JzZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7OztBQUtoRixNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLGNBQWM7SUFDZCxZQUFvQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtJQUFHLENBQUM7SUFFN0QsY0FBYztJQUNkLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZ0I7UUFDOUIsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxjQUFjO0lBQ2QsT0FBTyxDQUFDLE9BQStEO1FBQ25FLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUNqRSxvQkFBb0IsRUFBRSxDQUN6QixDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7SUFDZCxTQUFTLENBQUMsT0FBK0Q7UUFDckUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDOzs2R0FwQlEsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGYixNQUFNOzJGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZ2V0TmF0aXZlRWxlbWVudCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW5hdGl2ZS1lbGVtZW50JztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2hhcy1lbGVtZW50LXJlZi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlT2JzZXJ2ZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYnNlcnZlcnMvYXR0cmlidXRlLm9ic2VydmVyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZWFkb25seU9ic2VydmVyIHtcbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2F0dHJpYnV0ZU9ic2VydmVyOiBBdHRyaWJ1dGVPYnNlcnZlcikge31cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgc3RhdGljIGlzUmVhZG9ubHkoZWxlbWVudDogRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2lzLXJlYWRvbmx5JykgfHwgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5Jyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvYnNlcnZlKGVsZW1lbnQ6IEhhc0VsZW1lbnRSZWY8RWxlbWVudD4gfCBFbGVtZW50IHwgRWxlbWVudFJlZjxFbGVtZW50Pik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IFJlYWRvbmx5T2JzZXJ2ZXIuaXNSZWFkb25seShnZXROYXRpdmVFbGVtZW50KGVsZW1lbnQpKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICB1bm9ic2VydmUoZWxlbWVudDogSGFzRWxlbWVudFJlZjxFbGVtZW50PiB8IEVsZW1lbnQgfCBFbGVtZW50UmVmPEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZU9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9XG59XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHkub2JzZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvcmVhZG9ubHkvcmVhZG9ubHkub2JzZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7OztBQUtoRixNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLGNBQWM7SUFDZCxZQUFvQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtJQUFHLENBQUM7SUFFN0QsY0FBYztJQUNkLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZ0I7UUFDOUIsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxjQUFjO0lBQ2QsT0FBTyxDQUFDLE9BQStEO1FBQ25FLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUNqRSxvQkFBb0IsRUFBRSxDQUN6QixDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7SUFDZCxTQUFTLENBQUMsT0FBK0Q7UUFDckUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDOzhHQXBCUSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZiLE1BQU07OzJGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZ2V0TmF0aXZlRWxlbWVudCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW5hdGl2ZS1lbGVtZW50JztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2hhcy1lbGVtZW50LXJlZi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlT2JzZXJ2ZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYnNlcnZlcnMvYXR0cmlidXRlLm9ic2VydmVyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZWFkb25seU9ic2VydmVyIHtcbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2F0dHJpYnV0ZU9ic2VydmVyOiBBdHRyaWJ1dGVPYnNlcnZlcikge31cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgc3RhdGljIGlzUmVhZG9ubHkoZWxlbWVudDogRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2lzLXJlYWRvbmx5JykgfHwgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5Jyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvYnNlcnZlKGVsZW1lbnQ6IEhhc0VsZW1lbnRSZWY8RWxlbWVudD4gfCBFbGVtZW50IHwgRWxlbWVudFJlZjxFbGVtZW50Pik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IFJlYWRvbmx5T2JzZXJ2ZXIuaXNSZWFkb25seShnZXROYXRpdmVFbGVtZW50KGVsZW1lbnQpKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICB1bm9ic2VydmUoZWxlbWVudDogSGFzRWxlbWVudFJlZjxFbGVtZW50PiB8IEVsZW1lbnQgfCBFbGVtZW50UmVmPEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZU9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,65 @@
1
+ import { Directive, Input, TemplateRef, ViewContainerRef } 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 DeprecatedRepeatDirective extends DeprecatedSelector {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedRepeatDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: DeprecatedRepeatDirective, isStandalone: true, selector: "[fdRepeat]", providers: [
7
+ {
8
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
9
+ useValue: getDeprecatedModel('[fdkRepeat]', '[fdRepeat]')
10
+ }
11
+ ], usesInheritance: true, ngImport: i0 }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedRepeatDirective, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ // eslint-disable-next-line @angular-eslint/directive-selector
17
+ selector: '[fdRepeat]',
18
+ standalone: true,
19
+ providers: [
20
+ {
21
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
22
+ useValue: getDeprecatedModel('[fdkRepeat]', '[fdRepeat]')
23
+ }
24
+ ]
25
+ }]
26
+ }] });
27
+ /**
28
+ * Directive to repeatably render template N times.
29
+ */
30
+ export class RepeatDirective {
31
+ /** @hidden */
32
+ get _repeatCount() {
33
+ return this.count || this.deprecatedCount;
34
+ }
35
+ /** @hidden */
36
+ constructor(_templateRef, _viewContainerRef) {
37
+ this._templateRef = _templateRef;
38
+ this._viewContainerRef = _viewContainerRef;
39
+ }
40
+ /** @hidden */
41
+ ngOnChanges(changes) {
42
+ if ((changes['count'] || changes['deprecatedCount']) && Number.isInteger(this._repeatCount)) {
43
+ this._viewContainerRef.clear();
44
+ for (let index = 0; index < Math.max(0, this._repeatCount); index++) {
45
+ this._viewContainerRef.createEmbeddedView(this._templateRef, { index });
46
+ }
47
+ }
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
50
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: RepeatDirective, isStandalone: true, selector: "[fdkRepeat], [fdRepeat]", inputs: { count: ["fdkRepeat", "count"], deprecatedCount: ["fdRepeat", "deprecatedCount"] }, usesOnChanges: true, ngImport: i0 }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RepeatDirective, decorators: [{
53
+ type: Directive,
54
+ args: [{
55
+ selector: '[fdkRepeat], [fdRepeat]',
56
+ standalone: true
57
+ }]
58
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { count: [{
59
+ type: Input,
60
+ args: ['fdkRepeat']
61
+ }], deprecatedCount: [{
62
+ type: Input,
63
+ args: ['fdRepeat']
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9yZXBlYXQvcmVwZWF0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOztBQWF6QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsa0JBQWtCOzhHQUFwRCx5QkFBeUI7a0dBQXpCLHlCQUF5Qix5REFQdkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsZ0NBQWdDO2dCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQzthQUM1RDtTQUNKOzsyRkFFUSx5QkFBeUI7a0JBWHJDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQzt5QkFDNUQ7cUJBQ0o7aUJBQ0o7O0FBR0Q7O0dBRUc7QUFLSCxNQUFNLE9BQU8sZUFBZTtJQVd4QixjQUFjO0lBQ2QsSUFBWSxZQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjO0lBQ2QsWUFDcUIsWUFBOEIsRUFDOUIsaUJBQW1DO1FBRG5DLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO0lBQ3JELENBQUM7SUFFSixjQUFjO0lBQ2QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN6RixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFL0IsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDakUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQzNFO1NBQ0o7SUFDTCxDQUFDOzhHQS9CUSxlQUFlO2tHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7aUJBQ25CO2lJQUlHLEtBQUs7c0JBREosS0FBSzt1QkFBQyxXQUFXO2dCQU9sQixlQUFlO3NCQURkLEtBQUs7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRGVwcmVjYXRlZFNlbGVjdG9yLFxuICAgIEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgIGdldERlcHJlY2F0ZWRNb2RlbFxufSBmcm9tICcuLi8uLi9kZXByZWNhdGVkLXNlbGVjdG9yLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZFJlcGVhdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka1JlcGVhdF0nLCAnW2ZkUmVwZWF0XScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRSZXBlYXREaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuLyoqXG4gKiBEaXJlY3RpdmUgdG8gcmVwZWF0YWJseSByZW5kZXIgdGVtcGxhdGUgTiB0aW1lcy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrUmVwZWF0XSwgW2ZkUmVwZWF0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBSZXBlYXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8qKiBOdW1iZXIgb2YgdGltZXMgdG8gcmVuZGVyIGEgdGVtcGxhdGUuICovXG4gICAgQElucHV0KCdmZGtSZXBlYXQnKVxuICAgIGNvdW50OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBEZXByZWNhdGVkIGZkUmVwZWF0IGlucHV0IHByb3BlcnR5LiBVc2UgYFtmZGtSZXBlYXRdYC5cbiAgICAgKi9cbiAgICBASW5wdXQoJ2ZkUmVwZWF0JylcbiAgICBkZXByZWNhdGVkQ291bnQ6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX3JlcGVhdENvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvdW50IHx8IHRoaXMuZGVwcmVjYXRlZENvdW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICgoY2hhbmdlc1snY291bnQnXSB8fCBjaGFuZ2VzWydkZXByZWNhdGVkQ291bnQnXSkgJiYgTnVtYmVyLmlzSW50ZWdlcih0aGlzLl9yZXBlYXRDb3VudCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE1hdGgubWF4KDAsIHRoaXMuX3JlcGVhdENvdW50KTsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlUmVmLCB7IGluZGV4IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -2,15 +2,15 @@ import { NgModule } from '@angular/core';
2
2
  import { DeprecatedRepeatDirective, RepeatDirective } from './repeat.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  export class RepeatModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RepeatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: RepeatModule, imports: [RepeatDirective, DeprecatedRepeatDirective], exports: [RepeatDirective, DeprecatedRepeatDirective] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RepeatModule }); }
5
8
  }
6
- RepeatModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RepeatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- RepeatModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: RepeatModule, imports: [RepeatDirective, DeprecatedRepeatDirective], exports: [RepeatDirective, DeprecatedRepeatDirective] });
8
- RepeatModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RepeatModule });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RepeatModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RepeatModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [RepeatDirective, DeprecatedRepeatDirective],
13
13
  exports: [RepeatDirective, DeprecatedRepeatDirective]
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9yZXBlYXQvcmVwZWF0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFNaEYsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxZQUhYLGVBQWUsRUFBRSx5QkFBeUIsYUFDMUMsZUFBZSxFQUFFLHlCQUF5QjswR0FFM0MsWUFBWTsyRkFBWixZQUFZO2tCQUp4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQztvQkFDckQsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLHlCQUF5QixDQUFDO2lCQUN4RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERlcHJlY2F0ZWRSZXBlYXREaXJlY3RpdmUsIFJlcGVhdERpcmVjdGl2ZSB9IGZyb20gJy4vcmVwZWF0LmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1JlcGVhdERpcmVjdGl2ZSwgRGVwcmVjYXRlZFJlcGVhdERpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW1JlcGVhdERpcmVjdGl2ZSwgRGVwcmVjYXRlZFJlcGVhdERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgUmVwZWF0TW9kdWxlIHt9XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9yZXBlYXQvcmVwZWF0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFNaEYsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLFlBSFgsZUFBZSxFQUFFLHlCQUF5QixhQUMxQyxlQUFlLEVBQUUseUJBQXlCOytHQUUzQyxZQUFZOzsyRkFBWixZQUFZO2tCQUp4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQztvQkFDckQsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLHlCQUF5QixDQUFDO2lCQUN4RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERlcHJlY2F0ZWRSZXBlYXREaXJlY3RpdmUsIFJlcGVhdERpcmVjdGl2ZSB9IGZyb20gJy4vcmVwZWF0LmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1JlcGVhdERpcmVjdGl2ZSwgRGVwcmVjYXRlZFJlcGVhdERpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW1JlcGVhdERpcmVjdGl2ZSwgRGVwcmVjYXRlZFJlcGVhdERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgUmVwZWF0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,42 @@
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 DeprecatedResizeHandleDirective extends DeprecatedSelector {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedResizeHandleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: DeprecatedResizeHandleDirective, isStandalone: true, selector: "[fdResizeHandle], [fd-resize-handle]", providers: [
7
+ {
8
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
9
+ useValue: getDeprecatedModel('[fdkResizeHandle]', '[fdResizeHandle], [fd-resize-handle]')
10
+ }
11
+ ], usesInheritance: true, ngImport: i0 }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedResizeHandleDirective, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ // eslint-disable-next-line @angular-eslint/directive-selector
17
+ selector: '[fdResizeHandle], [fd-resize-handle]',
18
+ standalone: true,
19
+ providers: [
20
+ {
21
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
22
+ useValue: getDeprecatedModel('[fdkResizeHandle]', '[fdResizeHandle], [fd-resize-handle]')
23
+ }
24
+ ]
25
+ }]
26
+ }] });
27
+ export class ResizeHandleDirective {
28
+ /** @hidden */
29
+ constructor(elementRef) {
30
+ this.elementRef = elementRef;
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeHandleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
33
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: ResizeHandleDirective, isStandalone: true, selector: "[fdkResizeHandle], [fdResizeHandle], [fd-resize-handle]", ngImport: i0 }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeHandleDirective, decorators: [{
36
+ type: Directive,
37
+ args: [{
38
+ selector: '[fdkResizeHandle], [fdResizeHandle], [fd-resize-handle]',
39
+ standalone: true
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvcmVzaXplL3Jlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOztBQWF6QyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsa0JBQWtCOzhHQUExRCwrQkFBK0I7a0dBQS9CLCtCQUErQixtRkFQN0I7WUFDUDtnQkFDSSxPQUFPLEVBQUUsZ0NBQWdDO2dCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsbUJBQW1CLEVBQUUsc0NBQXNDLENBQUM7YUFDNUY7U0FDSjs7MkZBRVEsK0JBQStCO2tCQVgzQyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsbUJBQW1CLEVBQUUsc0NBQXNDLENBQUM7eUJBQzVGO3FCQUNKO2lCQUNKOztBQU9ELE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsY0FBYztJQUNkLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDOzhHQUZwQyxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseURBQXlEO29CQUNuRSxVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRGVwcmVjYXRlZFNlbGVjdG9yLFxuICAgIEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgIGdldERlcHJlY2F0ZWRNb2RlbFxufSBmcm9tICcuLi8uLi9kZXByZWNhdGVkLXNlbGVjdG9yLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZFJlc2l6ZUhhbmRsZV0sIFtmZC1yZXNpemUtaGFuZGxlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgICAgICAgICB1c2VWYWx1ZTogZ2V0RGVwcmVjYXRlZE1vZGVsKCdbZmRrUmVzaXplSGFuZGxlXScsICdbZmRSZXNpemVIYW5kbGVdLCBbZmQtcmVzaXplLWhhbmRsZV0nKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkUmVzaXplSGFuZGxlRGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka1Jlc2l6ZUhhbmRsZV0sIFtmZFJlc2l6ZUhhbmRsZV0sIFtmZC1yZXNpemUtaGFuZGxlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemVIYW5kbGVEaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG59XG4iXX0=
@@ -0,0 +1,231 @@
1
+ import { ContentChild, Directive, ElementRef, EventEmitter, Input, Optional, Output } from '@angular/core';
2
+ import { ResizeHandleDirective } from './resize-handle.directive';
3
+ import { fromEvent, merge, Subscription } from 'rxjs';
4
+ import { filter, map, mapTo, pairwise, takeUntil, tap } from 'rxjs/operators';
5
+ import { RtlService } from '../../services/rtl.service';
6
+ import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../services/rtl.service";
9
+ export class DeprecatedResizeDirective extends DeprecatedSelector {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedResizeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: DeprecatedResizeDirective, isStandalone: true, selector: "[fdResize], [fd-resize]", providers: [
12
+ {
13
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
14
+ useValue: getDeprecatedModel('[fdkResize]', '[fdResize], [fd-resize]')
15
+ }
16
+ ], usesInheritance: true, ngImport: i0 }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedResizeDirective, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ // eslint-disable-next-line @angular-eslint/directive-selector
22
+ selector: '[fdResize], [fd-resize]',
23
+ standalone: true,
24
+ providers: [
25
+ {
26
+ provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
27
+ useValue: getDeprecatedModel('[fdkResize]', '[fdResize], [fd-resize]')
28
+ }
29
+ ]
30
+ }]
31
+ }] });
32
+ export class ResizeDirective {
33
+ /** Resize handle reference - should be used if Resize handle is not a ContentChild of resizable container */
34
+ // eslint-disable-next-line @angular-eslint/no-input-rename
35
+ set setResizeHandleReference(value) {
36
+ this.resizeHandleReference = value;
37
+ }
38
+ /** @hidden */
39
+ constructor(_elementRef, _rtlService) {
40
+ this._elementRef = _elementRef;
41
+ this._rtlService = _rtlService;
42
+ /** Element limiting resizable container growth */
43
+ // eslint-disable-next-line @angular-eslint/no-input-rename
44
+ this.resizeBoundary = 'body';
45
+ /** Whether resizable behaviour should be disabled */
46
+ // eslint-disable-next-line @angular-eslint/no-input-rename
47
+ this.disabled = false;
48
+ /** Localization of resize handle inside resizable container */
49
+ // eslint-disable-next-line @angular-eslint/no-input-rename
50
+ this.resizeHandleLocation = 'bottom-right';
51
+ /** Emits event when resizing has tarted */
52
+ // eslint-disable-next-line @angular-eslint/no-output-on-prefix
53
+ this.onResizeStart = new EventEmitter();
54
+ /** Emits event when resizing has ended */
55
+ // eslint-disable-next-line @angular-eslint/no-output-on-prefix
56
+ this.onResizeEnd = new EventEmitter();
57
+ /** @hidden */
58
+ this._subscriptions = new Subscription();
59
+ /** @hidden */
60
+ this._isRtl = false;
61
+ }
62
+ /** @hidden */
63
+ ngOnChanges(changes) {
64
+ if (changes['disabled']) {
65
+ if (changes['disabled'].previousValue === false && changes['disabled'].currentValue === true) {
66
+ this._subscriptions.unsubscribe();
67
+ }
68
+ else if (changes['disabled'].previousValue === true && changes['disabled'].currentValue === false) {
69
+ this._setResizeListeners();
70
+ }
71
+ }
72
+ }
73
+ /** @hidden */
74
+ ngAfterContentInit() {
75
+ if (this._rtlService) {
76
+ this._subscriptions.add(this._rtlService.rtl.subscribe((isRtl) => (this._isRtl = isRtl)));
77
+ }
78
+ if (!this.disabled) {
79
+ this._setResizeListeners();
80
+ }
81
+ }
82
+ /** @hidden */
83
+ ngOnDestroy() {
84
+ this._subscriptions.unsubscribe();
85
+ }
86
+ /** @hidden */
87
+ get _direction() {
88
+ return this._isRtl ? -1 : 1;
89
+ }
90
+ /** @hidden Sets Resize listeners */
91
+ _setResizeListeners() {
92
+ const resize = this._getResizeFunction();
93
+ const moveOffset = this._getMoveOffsetFunction();
94
+ const resizeContainer = this._findResizeContainer();
95
+ if (!resizeContainer) {
96
+ return;
97
+ }
98
+ const isBoundaryOverflow = this._getBoundaryOverflowFunction(resizeContainer);
99
+ const mouseUpEvent$ = fromEvent(window, 'mouseup');
100
+ const mouseMoveEvent$ = fromEvent(resizeContainer, 'mousemove');
101
+ const mouseDownEvent$ = fromEvent(this.resizeHandleReference.elementRef.nativeElement, 'mousedown');
102
+ const resizeActive$ = merge(mouseDownEvent$.pipe(mapTo(true)), mouseUpEvent$.pipe(mapTo(false)));
103
+ const emitResizableEvents$ = this._getResizeEventsNotifiers(resizeActive$);
104
+ const preventOtherPointerEvents$ = this._blockOtherPointerEvents(resizeActive$);
105
+ const resizingCursorMovement$ = mouseMoveEvent$.pipe(pairwise(), map(([event1, event2]) => moveOffset(event1, event2)), filter((move) => isBoundaryOverflow(move)));
106
+ const setupResizer = () => {
107
+ resizingCursorMovement$.pipe(takeUntil(mouseUpEvent$)).subscribe((event) => resize(event));
108
+ };
109
+ const setupResize$ = resizeActive$.pipe(filter((isActive) => isActive), tap(() => setupResizer()));
110
+ this._subscriptions.add(setupResize$.subscribe());
111
+ this._subscriptions.add(emitResizableEvents$.subscribe());
112
+ this._subscriptions.add(preventOtherPointerEvents$.subscribe());
113
+ }
114
+ /** @hidden Creates resize function*/
115
+ _getResizeFunction() {
116
+ return (move) => {
117
+ this._elementRef.nativeElement.style.width = `${this._elementRef.nativeElement.offsetWidth + move.x}px`;
118
+ this._elementRef.nativeElement.style.height = `${this._elementRef.nativeElement.offsetHeight + move.y}px`;
119
+ };
120
+ }
121
+ /** @hidden Creates move function */
122
+ _getMoveOffsetFunction() {
123
+ let verticalModifier;
124
+ let horizontalModifier;
125
+ switch (this.resizeHandleLocation) {
126
+ case 'top-left':
127
+ horizontalModifier = -1;
128
+ verticalModifier = -1;
129
+ break;
130
+ case 'top-right':
131
+ horizontalModifier = -1;
132
+ verticalModifier = 1;
133
+ break;
134
+ case 'bottom-left':
135
+ horizontalModifier = 1;
136
+ verticalModifier = -1;
137
+ break;
138
+ case 'bottom-right':
139
+ horizontalModifier = 1;
140
+ verticalModifier = 1;
141
+ break;
142
+ }
143
+ return (event1, event2) => {
144
+ const x = (event2.screenX - event1.screenX) * this._direction;
145
+ const y = event2.screenY - event1.screenY;
146
+ return {
147
+ x: x * verticalModifier,
148
+ y: y * horizontalModifier
149
+ };
150
+ };
151
+ }
152
+ /** @hidden Return boundary container */
153
+ _findResizeContainer() {
154
+ let resizeContainer;
155
+ if (typeof this.resizeBoundary === 'string') {
156
+ resizeContainer = this._elementRef.nativeElement.closest(this.resizeBoundary);
157
+ }
158
+ else {
159
+ resizeContainer = this.resizeBoundary;
160
+ }
161
+ if (resizeContainer) {
162
+ return resizeContainer;
163
+ }
164
+ else {
165
+ console.warn(`fdResize - Cannot find "${this.resizeBoundary}", falling back to "body"`);
166
+ return document.querySelector('body');
167
+ }
168
+ }
169
+ /** @hidden Check whether resizable container is overflowing boundary container */
170
+ _getBoundaryOverflowFunction(resizeContainer) {
171
+ return (move) => {
172
+ const containerPosition = resizeContainer.getBoundingClientRect();
173
+ const elementPosition = this._elementRef.nativeElement.getBoundingClientRect();
174
+ switch (this.resizeHandleLocation) {
175
+ case 'top-left':
176
+ return (containerPosition.top < elementPosition.top + move.y &&
177
+ containerPosition.left < elementPosition.left + move.x);
178
+ case 'top-right':
179
+ return (containerPosition.top < elementPosition.top + move.y &&
180
+ containerPosition.right > elementPosition.right + move.x);
181
+ case 'bottom-left':
182
+ return (containerPosition.bottom > elementPosition.bottom + move.y &&
183
+ containerPosition.left < elementPosition.left + move.x);
184
+ case 'bottom-right':
185
+ return (containerPosition.bottom > elementPosition.bottom + move.y &&
186
+ containerPosition.right > elementPosition.right + move.x);
187
+ }
188
+ };
189
+ }
190
+ /** @hidden Create Observable notifying on resize actions */
191
+ _getResizeEventsNotifiers(trigger$) {
192
+ const emitResizableStart$ = trigger$.pipe(filter((isActive) => isActive), tap(() => this.onResizeStart.emit()));
193
+ const emitResizableEnd$ = trigger$.pipe(filter((isActive) => !isActive), tap(() => this.onResizeEnd.emit()));
194
+ return merge(emitResizableStart$, emitResizableEnd$);
195
+ }
196
+ /** @hidden Block resizable container pointer events when resizing */
197
+ _blockOtherPointerEvents(trigger$) {
198
+ return trigger$.pipe(map((isActive) => (isActive ? 'none' : 'auto')), tap((value) => (this._elementRef.nativeElement.style.pointerEvents = value)));
199
+ }
200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeDirective, deps: [{ token: i0.ElementRef }, { token: i1.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
201
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: ResizeDirective, isStandalone: true, selector: "[fdkResize], [fdResize], [fd-resize]", inputs: { resizeBoundary: ["fdkResizeBoundary", "resizeBoundary"], disabled: ["fdkResizeDisabled", "disabled"], resizeHandleLocation: ["fdkResizeHandleLocation", "resizeHandleLocation"], setResizeHandleReference: ["fdkResizeResizeHandleRef", "setResizeHandleReference"] }, outputs: { onResizeStart: "onResizeStart", onResizeEnd: "onResizeEnd" }, queries: [{ propertyName: "resizeHandleReference", first: true, predicate: ResizeHandleDirective, descendants: true }], usesOnChanges: true, ngImport: i0 }); }
202
+ }
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeDirective, decorators: [{
204
+ type: Directive,
205
+ args: [{
206
+ selector: '[fdkResize], [fdResize], [fd-resize]',
207
+ standalone: true
208
+ }]
209
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.RtlService, decorators: [{
210
+ type: Optional
211
+ }] }]; }, propDecorators: { resizeBoundary: [{
212
+ type: Input,
213
+ args: ['fdkResizeBoundary']
214
+ }], disabled: [{
215
+ type: Input,
216
+ args: ['fdkResizeDisabled']
217
+ }], resizeHandleLocation: [{
218
+ type: Input,
219
+ args: ['fdkResizeHandleLocation']
220
+ }], setResizeHandleReference: [{
221
+ type: Input,
222
+ args: ['fdkResizeResizeHandleRef']
223
+ }], onResizeStart: [{
224
+ type: Output
225
+ }], onResizeEnd: [{
226
+ type: Output
227
+ }], resizeHandleReference: [{
228
+ type: ContentChild,
229
+ args: [ResizeHandleDirective, { static: false }]
230
+ }] } });
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9yZXNpemUvcmVzaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7OztBQWF6QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsa0JBQWtCOzhHQUFwRCx5QkFBeUI7a0dBQXpCLHlCQUF5QixzRUFQdkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsZ0NBQWdDO2dCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsYUFBYSxFQUFFLHlCQUF5QixDQUFDO2FBQ3pFO1NBQ0o7OzJGQUVRLHlCQUF5QjtrQkFYckMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFB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QUMsbUJBQW1CO2dCQUlFLFFBQVE7c0JBQW5DLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUlRLG9CQUFvQjtzQkFBckQsS0FBSzt1QkFBQyx5QkFBeUI7Z0JBS08sd0JBQXdCO3NCQUE5RCxLQUFLO3VCQUFDLDBCQUEwQjtnQkFNdkIsYUFBYTtzQkFBdEIsTUFBTTtnQkFJRyxXQUFXO3NCQUFwQixNQUFNO2dCQUdpRCxxQkFBcUI7c0JBQTVFLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc2l6ZUhhbmRsZURpcmVjdGl2ZSB9IGZyb20gJy4vcmVzaXplLWhhbmRsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgbWFwVG8sIHBhaXJ3aXNlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ydGwuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRSZXNpemVdLCBbZmQtcmVzaXplXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgICAgICAgICB1c2VWYWx1ZTogZ2V0RGVwcmVjYXRlZE1vZGVsKCdbZmRrUmVzaXplXScsICdbZmRSZXNpemVdLCBbZmQtcmVzaXplXScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRSZXNpemVEaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuaW50ZXJmYWNlIFJlc2l6ZU1vdmUge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka1Jlc2l6ZV0sIFtmZFJlc2l6ZV0sIFtmZC1yZXNpemVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFJlc2l6ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogRWxlbWVudCBsaW1pdGluZyByZXNpemFibGUgY29udGFpbmVyIGdyb3d0aCAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdmZGtSZXNpemVCb3VuZGFyeScpIHJlc2l6ZUJvdW5kYXJ5OiBzdHJpbmcgfCBIVE1MRWxlbWVudCA9ICdib2R5JztcblxuICAgIC8qKiBXaGV0aGVyIHJlc2l6YWJsZSBiZWhhdmlvdXIgc2hvdWxkIGJlIGRpc2FibGVkICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgICBASW5wdXQoJ2Zka1Jlc2l6ZURpc2FibGVkJykgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBMb2NhbGl6YXRpb24gb2YgcmVzaXplIGhhbmRsZSBpbnNpZGUgcmVzaXphYmxlIGNvbnRhaW5lciAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdmZGtSZXNpemVIYW5kbGVMb2NhdGlvbicpIHJlc2l6ZUhhbmRsZUxvY2F0aW9uOiAndG9wLXJpZ2h0JyB8ICd0b3AtbGVmdCcgfCAnYm90dG9tLXJpZ2h0JyB8ICdib3R0b20tbGVmdCcgPVxuICAgICAgICAnYm90dG9tLXJpZ2h0JztcblxuICAgIC8qKiBSZXNpemUgaGFuZGxlIHJlZmVyZW5jZSAtIHNob3VsZCBiZSB1c2VkIGlmIFJlc2l6ZSBoYW5kbGUgaXMgbm90IGEgQ29udGVudENoaWxkIG9mIHJlc2l6YWJsZSBjb250YWluZXIgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnZmRrUmVzaXplUmVzaXplSGFuZGxlUmVmJykgc2V0IHNldFJlc2l6ZUhhbmRsZVJlZmVyZW5jZSh2YWx1ZTogUmVzaXplSGFuZGxlRGlyZWN0aXZlKSB7XG4gICAgICAgIHRoaXMucmVzaXplSGFuZGxlUmVmZXJlbmNlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEVtaXRzIGV2ZW50IHdoZW4gcmVzaXppbmcgaGFzIHRhcnRlZCAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIEBPdXRwdXQoKSBvblJlc2l6ZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEVtaXRzIGV2ZW50IHdoZW4gcmVzaXppbmcgaGFzIGVuZGVkICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgQE91dHB1dCgpIG9uUmVzaXplRW5kID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gUmVmZXJlbmNlIHRvIFJlc2l6ZSBoYW5kbGUgKi9cbiAgICBAQ29udGVudENoaWxkKFJlc2l6ZUhhbmRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pIHJlc2l6ZUhhbmRsZVJlZmVyZW5jZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNSdGwgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIEBPcHRpb25hbCgpIHByaXZhdGUgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2UpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10pIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddLnByZXZpb3VzVmFsdWUgPT09IGZhbHNlICYmIGNoYW5nZXNbJ2Rpc2FibGVkJ10uY3VycmVudFZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddLnByZXZpb3VzVmFsdWUgPT09IHRydWUgJiYgY2hhbmdlc1snZGlzYWJsZWQnXS5jdXJyZW50VmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0UmVzaXplTGlzdGVuZXJzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgoaXNSdGwpID0+ICh0aGlzLl9pc1J0bCA9IGlzUnRsKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRSZXNpemVMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9kaXJlY3Rpb24oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUnRsID8gLTEgOiAxO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNldHMgUmVzaXplIGxpc3RlbmVycyAqL1xuICAgIHByaXZhdGUgX3NldFJlc2l6ZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzaXplID0gdGhpcy5fZ2V0UmVzaXplRnVuY3Rpb24oKTtcbiAgICAgICAgY29uc3QgbW92ZU9mZnNldCA9IHRoaXMuX2dldE1vdmVPZmZzZXRGdW5jdGlvbigpO1xuICAgICAgICBjb25zdCByZXNpemVDb250YWluZXIgPSB0aGlzLl9maW5kUmVzaXplQ29udGFpbmVyKCk7XG4gICAgICAgIGlmICghcmVzaXplQ29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNCb3VuZGFyeU92ZXJmbG93ID0gdGhpcy5fZ2V0Qm91bmRhcnlPdmVyZmxvd0Z1bmN0aW9uKHJlc2l6ZUNvbnRhaW5lcik7XG5cbiAgICAgICAgY29uc3QgbW91c2VVcEV2ZW50JCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csICdtb3VzZXVwJyk7XG4gICAgICAgIGNvbnN0IG1vdXNlTW92ZUV2ZW50JCA9IGZyb21FdmVudDxNb3VzZUV2ZW50PihyZXNpemVDb250YWluZXIsICdtb3VzZW1vdmUnKTtcbiAgICAgICAgY29uc3QgbW91c2VEb3duRXZlbnQkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMucmVzaXplSGFuZGxlUmVmZXJlbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpO1xuXG4gICAgICAgIGNvbnN0IHJlc2l6ZUFjdGl2ZSQgPSBtZXJnZShtb3VzZURvd25FdmVudCQucGlwZShtYXBUbyh0cnVlKSksIG1vdXNlVXBFdmVudCQucGlwZShtYXBUbyhmYWxzZSkpKTtcbiAgICAgICAgY29uc3QgZW1pdFJlc2l6YWJsZUV2ZW50cyQgPSB0aGlzLl9nZXRSZXNpemVFdmVudHNOb3RpZmllcnMocmVzaXplQWN0aXZlJCk7XG4gICAgICAgIGNvbnN0IHByZXZlbnRPdGhlclBvaW50ZXJFdmVudHMkID0gdGhpcy5fYmxvY2tPdGhlclBvaW50ZXJFdmVudHMocmVzaXplQWN0aXZlJCk7XG5cbiAgICAgICAgY29uc3QgcmVzaXppbmdDdXJzb3JNb3ZlbWVudCQgPSBtb3VzZU1vdmVFdmVudCQucGlwZShcbiAgICAgICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgICAgICBtYXAoKFtldmVudDEsIGV2ZW50Ml06IFtNb3VzZUV2ZW50LCBNb3VzZUV2ZW50XSkgPT4gbW92ZU9mZnNldChldmVudDEsIGV2ZW50MikpLFxuICAgICAgICAgICAgZmlsdGVyKChtb3ZlKSA9PiBpc0JvdW5kYXJ5T3ZlcmZsb3cobW92ZSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qgc2V0dXBSZXNpemVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgcmVzaXppbmdDdXJzb3JNb3ZlbWVudCQucGlwZSh0YWtlVW50aWwobW91c2VVcEV2ZW50JCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHJlc2l6ZShldmVudCkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzZXR1cFJlc2l6ZSQgPSByZXNpemVBY3RpdmUkLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGlzQWN0aXZlKSA9PiBpc0FjdGl2ZSksXG4gICAgICAgICAgICB0YXAoKCkgPT4gc2V0dXBSZXNpemVyKCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoc2V0dXBSZXNpemUkLnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoZW1pdFJlc2l6YWJsZUV2ZW50cyQuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChwcmV2ZW50T3RoZXJQb2ludGVyRXZlbnRzJC5zdWJzY3JpYmUoKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQ3JlYXRlcyByZXNpemUgZnVuY3Rpb24qL1xuICAgIHByaXZhdGUgX2dldFJlc2l6ZUZ1bmN0aW9uKCk6IChtb3ZlOiBSZXNpemVNb3ZlKSA9PiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIChtb3ZlOiBSZXNpemVNb3ZlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyBtb3ZlLnh9cHhgO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyBtb3ZlLnl9cHhgO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENyZWF0ZXMgbW92ZSBmdW5jdGlvbiAqL1xuICAgIHByaXZhdGUgX2dldE1vdmVPZmZzZXRGdW5jdGlvbigpOiAoZXZlbnQxOiBNb3VzZUV2ZW50LCBldmVudDI6IE1vdXNlRXZlbnQpID0+IFJlc2l6ZU1vdmUge1xuICAgICAgICBsZXQgdmVydGljYWxNb2RpZmllcjogMSB8IC0xO1xuICAgICAgICBsZXQgaG9yaXpvbnRhbE1vZGlmaWVyOiAxIHwgLTE7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLnJlc2l6ZUhhbmRsZUxvY2F0aW9uKSB7XG4gICAgICAgICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgICAgICAgICAgaG9yaXpvbnRhbE1vZGlmaWVyID0gLTE7XG4gICAgICAgICAgICAgICAgdmVydGljYWxNb2RpZmllciA9IC0xO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsTW9kaWZpZXIgPSAtMTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbE1vZGlmaWVyID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgICAgICAgICAgICBob3Jpem9udGFsTW9kaWZpZXIgPSAxO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsTW9kaWZpZXIgPSAtMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XG4gICAgICAgICAgICAgICAgaG9yaXpvbnRhbE1vZGlmaWVyID0gMTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbE1vZGlmaWVyID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoZXZlbnQxOiBNb3VzZUV2ZW50LCBldmVudDI6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHggPSAoZXZlbnQyLnNjcmVlblggLSBldmVudDEuc2NyZWVuWCkgKiB0aGlzLl9kaXJlY3Rpb247XG4gICAgICAgICAgICBjb25zdCB5ID0gZXZlbnQyLnNjcmVlblkgLSBldmVudDEuc2NyZWVuWTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB4OiB4ICogdmVydGljYWxNb2RpZmllcixcbiAgICAgICAgICAgICAgICB5OiB5ICogaG9yaXpvbnRhbE1vZGlmaWVyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFJldHVybiBib3VuZGFyeSBjb250YWluZXIgKi9cbiAgICBwcml2YXRlIF9maW5kUmVzaXplQ29udGFpbmVyKCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgbGV0IHJlc2l6ZUNvbnRhaW5lcjogRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNpemVCb3VuZGFyeSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJlc2l6ZUNvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KHRoaXMucmVzaXplQm91bmRhcnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzaXplQ29udGFpbmVyID0gdGhpcy5yZXNpemVCb3VuZGFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXNpemVDb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNpemVDb250YWluZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYGZkUmVzaXplIC0gQ2Fubm90IGZpbmQgXCIke3RoaXMucmVzaXplQm91bmRhcnl9XCIsIGZhbGxpbmcgYmFjayB0byBcImJvZHlcImApO1xuICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENoZWNrIHdoZXRoZXIgcmVzaXphYmxlIGNvbnRhaW5lciBpcyBvdmVyZmxvd2luZyBib3VuZGFyeSBjb250YWluZXIgKi9cbiAgICBwcml2YXRlIF9nZXRCb3VuZGFyeU92ZXJmbG93RnVuY3Rpb24ocmVzaXplQ29udGFpbmVyOiBFbGVtZW50KTogKG1vdmU6IFJlc2l6ZU1vdmUpID0+IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKG1vdmU6IFJlc2l6ZU1vdmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lclBvc2l0aW9uID0gcmVzaXplQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvc2l0aW9uID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMucmVzaXplSGFuZGxlTG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJQb3NpdGlvbi50b3AgPCBlbGVtZW50UG9zaXRpb24udG9wICsgbW92ZS55ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJQb3NpdGlvbi5sZWZ0IDwgZWxlbWVudFBvc2l0aW9uLmxlZnQgKyBtb3ZlLnhcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjYXNlICd0b3AtcmlnaHQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24udG9wIDwgZWxlbWVudFBvc2l0aW9uLnRvcCArIG1vdmUueSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24ucmlnaHQgPiBlbGVtZW50UG9zaXRpb24ucmlnaHQgKyBtb3ZlLnhcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjYXNlICdib3R0b20tbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gPiBlbGVtZW50UG9zaXRpb24uYm90dG9tICsgbW92ZS55ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJQb3NpdGlvbi5sZWZ0IDwgZWxlbWVudFBvc2l0aW9uLmxlZnQgKyBtb3ZlLnhcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjYXNlICdib3R0b20tcmlnaHQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24uYm90dG9tID4gZWxlbWVudFBvc2l0aW9uLmJvdHRvbSArIG1vdmUueSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24ucmlnaHQgPiBlbGVtZW50UG9zaXRpb24ucmlnaHQgKyBtb3ZlLnhcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDcmVhdGUgT2JzZXJ2YWJsZSBub3RpZnlpbmcgb24gcmVzaXplIGFjdGlvbnMgKi9cbiAgICBwcml2YXRlIF9nZXRSZXNpemVFdmVudHNOb3RpZmllcnModHJpZ2dlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBlbWl0UmVzaXphYmxlU3RhcnQkID0gdHJpZ2dlciQucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoaXNBY3RpdmUpID0+IGlzQWN0aXZlKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLm9uUmVzaXplU3RhcnQuZW1pdCgpKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGVtaXRSZXNpemFibGVFbmQkID0gdHJpZ2dlciQucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoaXNBY3RpdmUpID0+ICFpc0FjdGl2ZSksXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5vblJlc2l6ZUVuZC5lbWl0KCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIG1lcmdlKGVtaXRSZXNpemFibGVTdGFydCQsIGVtaXRSZXNpemFibGVFbmQkKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBCbG9jayByZXNpemFibGUgY29udGFpbmVyIHBvaW50ZXIgZXZlbnRzIHdoZW4gcmVzaXppbmcgICovXG4gICAgcHJpdmF0ZSBfYmxvY2tPdGhlclBvaW50ZXJFdmVudHModHJpZ2dlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdHJpZ2dlciQucGlwZShcbiAgICAgICAgICAgIG1hcCgoaXNBY3RpdmUpID0+IChpc0FjdGl2ZSA/ICdub25lJyA6ICdhdXRvJykpLFxuICAgICAgICAgICAgdGFwKCh2YWx1ZSkgPT4gKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gdmFsdWUpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==