@ardium-ui/ui 1.0.3 → 2.0.2

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 (445) hide show
  1. package/README.md +25 -25
  2. package/esm2022/lib/_internal/boolean-component.mjs +28 -42
  3. package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +5 -5
  4. package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +5 -5
  5. package/esm2022/lib/_internal/disablable-component.mjs +24 -22
  6. package/esm2022/lib/_internal/focusable-component.mjs +12 -25
  7. package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +172 -169
  8. package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +115 -120
  9. package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +56 -53
  10. package/esm2022/lib/_internal/models/pagination.model.mjs +72 -106
  11. package/esm2022/lib/_internal/ngmodel-component.mjs +5 -5
  12. package/esm2022/lib/_internal/queue.mjs +1 -1
  13. package/esm2022/lib/_internal/selectable-list-component.mjs +74 -98
  14. package/esm2022/lib/badge/badge.directive.mjs +70 -99
  15. package/esm2022/lib/badge/badge.module.mjs +5 -5
  16. package/esm2022/lib/badge/badge.types.mjs +1 -1
  17. package/esm2022/lib/badge/index.mjs +4 -0
  18. package/esm2022/lib/buttons/_button-base.mjs +13 -35
  19. package/esm2022/lib/buttons/button/button.component.mjs +22 -37
  20. package/esm2022/lib/buttons/button/button.module.mjs +5 -5
  21. package/esm2022/lib/buttons/button/index.mjs +3 -0
  22. package/esm2022/lib/buttons/fab/fab.component.mjs +16 -28
  23. package/esm2022/lib/buttons/fab/fab.module.mjs +5 -5
  24. package/esm2022/lib/buttons/fab/index.mjs +3 -0
  25. package/esm2022/lib/buttons/general-button.types.mjs +1 -1
  26. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +17 -25
  27. package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +5 -5
  28. package/esm2022/lib/buttons/icon-button/index.mjs +3 -0
  29. package/esm2022/lib/card/card.children.mjs +32 -33
  30. package/esm2022/lib/card/card.component.mjs +14 -17
  31. package/esm2022/lib/card/card.module.mjs +5 -5
  32. package/esm2022/lib/card/card.types.mjs +1 -1
  33. package/esm2022/lib/card/index.mjs +5 -0
  34. package/esm2022/lib/checkbox/checkbox.component.mjs +33 -46
  35. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  36. package/esm2022/lib/checkbox/checkbox.types.mjs +1 -1
  37. package/esm2022/lib/checkbox/index.mjs +4 -0
  38. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +31 -57
  39. package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +5 -5
  40. package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +1 -1
  41. package/esm2022/lib/checkbox-list/index.mjs +4 -0
  42. package/esm2022/lib/chip/chip.component.mjs +22 -42
  43. package/esm2022/lib/chip/chip.module.mjs +5 -5
  44. package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +28 -53
  45. package/esm2022/lib/chip/index.mjs +5 -0
  46. package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +25 -49
  47. package/esm2022/lib/color/color-display/color-display.component.mjs +15 -32
  48. package/esm2022/lib/color/color-display/color-display.module.mjs +5 -5
  49. package/esm2022/lib/color/color-display/color-display.types.mjs +1 -1
  50. package/esm2022/lib/color/color-display/index.mjs +4 -0
  51. package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
  52. package/esm2022/lib/dialog/dialog.component.mjs +54 -130
  53. package/esm2022/lib/dialog/dialog.directives.mjs +4 -4
  54. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  55. package/esm2022/lib/dialog/dialog.types.mjs +1 -1
  56. package/esm2022/lib/dialog/index.mjs +5 -0
  57. package/esm2022/lib/divider/divider.component.mjs +9 -14
  58. package/esm2022/lib/divider/divider.module.mjs +5 -5
  59. package/esm2022/lib/divider/index.mjs +3 -0
  60. package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +40 -59
  61. package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +5 -5
  62. package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +1 -1
  63. package/esm2022/lib/dropdown-panel/index.mjs +4 -0
  64. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +12 -17
  65. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +10 -10
  66. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +6 -6
  67. package/esm2022/lib/file-inputs/file-drop-area/index.mjs +4 -0
  68. package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +24 -50
  69. package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +19 -19
  70. package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +5 -5
  71. package/esm2022/lib/file-inputs/file-input/index.mjs +4 -0
  72. package/esm2022/lib/file-inputs/file-input-base.mjs +38 -72
  73. package/esm2022/lib/file-inputs/file-input-types.mjs +1 -1
  74. package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +20 -47
  75. package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +7 -7
  76. package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +5 -5
  77. package/esm2022/lib/form-field-frame/index.mjs +4 -0
  78. package/esm2022/lib/icon/icon.component.mjs +32 -67
  79. package/esm2022/lib/icon/icon.module.mjs +5 -5
  80. package/esm2022/lib/icon/icon.pipe.mjs +4 -4
  81. package/esm2022/lib/icon/index.mjs +4 -0
  82. package/esm2022/lib/inputs/color-input/color-input.directives.mjs +25 -25
  83. package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
  84. package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +65 -115
  85. package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +83 -92
  86. package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +5 -5
  87. package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
  88. package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
  89. package/esm2022/lib/inputs/digit-input/index.mjs +4 -0
  90. package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +59 -122
  91. package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +10 -10
  92. package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +24 -8
  93. package/esm2022/lib/inputs/hex-input/index.mjs +4 -0
  94. package/esm2022/lib/inputs/hex-input.model.mjs +24 -33
  95. package/esm2022/lib/inputs/input/index.mjs +4 -0
  96. package/esm2022/lib/inputs/input/input.component.mjs +95 -154
  97. package/esm2022/lib/inputs/input/input.directives.mjs +16 -16
  98. package/esm2022/lib/inputs/input/input.module.mjs +21 -7
  99. package/esm2022/lib/inputs/input-transformers.mjs +6 -6
  100. package/esm2022/lib/inputs/input-types.mjs +1 -1
  101. package/esm2022/lib/inputs/input-utils.mjs +75 -94
  102. package/esm2022/lib/inputs/number-input/index.mjs +4 -0
  103. package/esm2022/lib/inputs/number-input/number-input.component.mjs +106 -170
  104. package/esm2022/lib/inputs/number-input/number-input.directives.mjs +4 -4
  105. package/esm2022/lib/inputs/number-input/number-input.module.mjs +5 -5
  106. package/esm2022/lib/inputs/password-input/index.mjs +5 -0
  107. package/esm2022/lib/inputs/password-input/password-input.component.mjs +74 -144
  108. package/esm2022/lib/inputs/password-input/password-input.directives.mjs +13 -13
  109. package/esm2022/lib/inputs/password-input/password-input.module.mjs +5 -5
  110. package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
  111. package/esm2022/lib/inputs/simple-input/index.mjs +4 -0
  112. package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +57 -110
  113. package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +10 -10
  114. package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +5 -5
  115. package/esm2022/lib/kbd/index.mjs +4 -0
  116. package/esm2022/lib/kbd/kbd.component.mjs +15 -29
  117. package/esm2022/lib/kbd/kbd.module.mjs +5 -5
  118. package/esm2022/lib/kbd/kbd.pipe.mjs +4 -4
  119. package/esm2022/lib/kbd-shortcut/index.mjs +3 -0
  120. package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +23 -40
  121. package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +5 -5
  122. package/esm2022/lib/modal/index.mjs +3 -0
  123. package/esm2022/lib/modal/modal.component.mjs +42 -83
  124. package/esm2022/lib/modal/modal.module.mjs +5 -5
  125. package/esm2022/lib/option/index.mjs +3 -0
  126. package/esm2022/lib/option/option.component.mjs +24 -46
  127. package/esm2022/lib/option/option.module.mjs +5 -5
  128. package/esm2022/lib/progress-bar/index.mjs +5 -0
  129. package/esm2022/lib/progress-bar/progress-bar.component.mjs +43 -81
  130. package/esm2022/lib/progress-bar/progress-bar.directive.mjs +4 -4
  131. package/esm2022/lib/progress-bar/progress-bar.module.mjs +5 -5
  132. package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
  133. package/esm2022/lib/progress-circle/index.mjs +5 -0
  134. package/esm2022/lib/progress-circle/progress-circle.component.mjs +33 -78
  135. package/esm2022/lib/progress-circle/progress-circle.directive.mjs +4 -4
  136. package/esm2022/lib/progress-circle/progress-circle.module.mjs +5 -5
  137. package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
  138. package/esm2022/lib/radio/index.mjs +4 -0
  139. package/esm2022/lib/radio/radio/radio.component.mjs +16 -25
  140. package/esm2022/lib/radio/radio-group.component.mjs +71 -85
  141. package/esm2022/lib/radio/radio.module.mjs +5 -5
  142. package/esm2022/lib/search-functions.mjs +7 -7
  143. package/esm2022/lib/segment/index.mjs +5 -0
  144. package/esm2022/lib/segment/segment.component.mjs +70 -137
  145. package/esm2022/lib/segment/segment.directives.mjs +4 -4
  146. package/esm2022/lib/segment/segment.module.mjs +5 -5
  147. package/esm2022/lib/segment/segment.types.mjs +1 -1
  148. package/esm2022/lib/select/index.mjs +5 -0
  149. package/esm2022/lib/select/select.component.mjs +348 -655
  150. package/esm2022/lib/select/select.directive.mjs +46 -46
  151. package/esm2022/lib/select/select.module.mjs +5 -5
  152. package/esm2022/lib/select/select.types.mjs +1 -1
  153. package/esm2022/lib/slide-toggle/index.mjs +4 -0
  154. package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +19 -24
  155. package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +5 -5
  156. package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +5 -0
  157. package/esm2022/lib/slider/abstract-slider.mjs +111 -200
  158. package/esm2022/lib/slider/index.mjs +7 -0
  159. package/esm2022/lib/slider/range-slider/range-slider.component.mjs +26 -23
  160. package/esm2022/lib/slider/range-slider/range-slider.module.mjs +5 -5
  161. package/esm2022/lib/slider/slider.component.mjs +13 -10
  162. package/esm2022/lib/slider/slider.directive.mjs +4 -4
  163. package/esm2022/lib/slider/slider.module.mjs +7 -7
  164. package/esm2022/lib/slider/slider.types.mjs +1 -1
  165. package/esm2022/lib/snackbar/index.mjs +1 -1
  166. package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
  167. package/esm2022/lib/snackbar/snackbar.component.mjs +8 -8
  168. package/esm2022/lib/snackbar/snackbar.service.mjs +13 -12
  169. package/esm2022/lib/snackbar/snackbar.token.mjs +1 -1
  170. package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
  171. package/esm2022/lib/spinner/index.mjs +3 -0
  172. package/esm2022/lib/spinner/spinner.component.mjs +9 -13
  173. package/esm2022/lib/spinner/spinner.module.mjs +5 -5
  174. package/esm2022/lib/star/index.mjs +4 -0
  175. package/esm2022/lib/star/star-button/index.mjs +3 -0
  176. package/esm2022/lib/star/star-button/star-button.component.mjs +17 -26
  177. package/esm2022/lib/star/star-button/star-button.module.mjs +5 -5
  178. package/esm2022/lib/star/star-display/index.mjs +3 -0
  179. package/esm2022/lib/star/star-display/star-display.component.mjs +48 -55
  180. package/esm2022/lib/star/star-display/star-display.module.mjs +5 -5
  181. package/esm2022/lib/star/star-input/index.mjs +3 -0
  182. package/esm2022/lib/star/star-input/star-input.component.mjs +70 -106
  183. package/esm2022/lib/star/star-input/star-input.module.mjs +5 -5
  184. package/esm2022/lib/star/star.component.mjs +12 -20
  185. package/esm2022/lib/star/star.module.mjs +5 -5
  186. package/esm2022/lib/star/star.types.mjs +1 -1
  187. package/esm2022/lib/statebox/index.mjs +3 -0
  188. package/esm2022/lib/statebox/statebox.component.mjs +64 -102
  189. package/esm2022/lib/statebox/statebox.module.mjs +5 -5
  190. package/esm2022/lib/statebox/statebox.types.mjs +1 -1
  191. package/esm2022/lib/tabber/index.mjs +4 -0
  192. package/esm2022/lib/tabber/tab/tab.component.mjs +42 -0
  193. package/esm2022/lib/tabber/tabber.component.mjs +83 -0
  194. package/esm2022/lib/tabber/tabber.module.mjs +19 -0
  195. package/esm2022/lib/table/index.mjs +5 -0
  196. package/esm2022/lib/table/table-item-storage.mjs +204 -200
  197. package/esm2022/lib/table/table.component.mjs +184 -304
  198. package/esm2022/lib/table/table.directives.mjs +19 -21
  199. package/esm2022/lib/table/table.module.mjs +5 -5
  200. package/esm2022/lib/table/table.types.mjs +1 -1
  201. package/esm2022/lib/table/utils.mjs +1 -1
  202. package/esm2022/lib/table-from-csv/index.mjs +3 -0
  203. package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +85 -29
  204. package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +5 -5
  205. package/esm2022/lib/table-pagination/index.mjs +4 -0
  206. package/esm2022/lib/table-pagination/table-pagination.component.mjs +46 -114
  207. package/esm2022/lib/table-pagination/table-pagination.module.mjs +5 -5
  208. package/esm2022/lib/table-pagination/table-pagination.types.mjs +1 -1
  209. package/esm2022/lib/types/alignment.types.mjs +1 -1
  210. package/esm2022/lib/types/colors.types.mjs +1 -1
  211. package/esm2022/lib/types/item-storage.types.mjs +1 -1
  212. package/esm2022/lib/types/theming.types.mjs +1 -1
  213. package/esm2022/lib/types/utility.types.mjs +2 -2
  214. package/esm2022/public-api.mjs +58 -182
  215. package/fesm2022/ardium-ui-ui.mjs +7847 -11692
  216. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  217. package/lib/_internal/boolean-component.d.ts +8 -9
  218. package/lib/_internal/clear-button/clear-button.component.d.ts +1 -1
  219. package/lib/_internal/disablable-component.d.ts +12 -7
  220. package/lib/_internal/focusable-component.d.ts +5 -7
  221. package/lib/_internal/item-storages/dropdown-item-storage.d.ts +43 -41
  222. package/lib/_internal/item-storages/simple-item-storage.d.ts +28 -25
  223. package/lib/_internal/item-storages/simplest-item-storage.d.ts +14 -9
  224. package/lib/_internal/models/pagination.model.d.ts +38 -42
  225. package/lib/_internal/ngmodel-component.d.ts +1 -1
  226. package/lib/_internal/selectable-list-component.d.ts +30 -30
  227. package/lib/badge/badge.directive.d.ts +15 -20
  228. package/lib/badge/index.d.ts +3 -0
  229. package/lib/buttons/_button-base.d.ts +9 -12
  230. package/lib/buttons/button/button.component.d.ts +6 -8
  231. package/lib/buttons/button/index.d.ts +2 -0
  232. package/lib/buttons/fab/fab.component.d.ts +4 -6
  233. package/lib/buttons/fab/index.d.ts +2 -0
  234. package/lib/buttons/icon-button/icon-button.component.d.ts +6 -7
  235. package/lib/buttons/icon-button/index.d.ts +2 -0
  236. package/lib/card/card.children.d.ts +4 -3
  237. package/lib/card/card.component.d.ts +5 -4
  238. package/lib/card/index.d.ts +4 -0
  239. package/lib/checkbox/checkbox.component.d.ts +8 -12
  240. package/lib/checkbox/index.d.ts +3 -0
  241. package/lib/checkbox-list/checkbox-list.component.d.ts +22 -21
  242. package/lib/checkbox-list/index.d.ts +3 -0
  243. package/lib/chip/chip.component.d.ts +8 -10
  244. package/lib/chip/deletable-chip/deletable-chip.component.d.ts +11 -14
  245. package/lib/chip/index.d.ts +4 -0
  246. package/lib/chip/selectable-chip/selectable-chip.component.d.ts +10 -12
  247. package/lib/color/color-display/color-display.component.d.ts +6 -9
  248. package/lib/color/color-display/index.d.ts +3 -0
  249. package/lib/color/color-picker/color-picker.types.d.ts +4 -4
  250. package/lib/dialog/dialog.component.d.ts +25 -35
  251. package/lib/dialog/dialog.types.d.ts +2 -2
  252. package/lib/dialog/index.d.ts +4 -0
  253. package/lib/divider/divider.component.d.ts +3 -4
  254. package/lib/divider/index.d.ts +2 -0
  255. package/lib/dropdown-panel/dropdown-panel.component.d.ts +17 -20
  256. package/lib/dropdown-panel/index.d.ts +3 -0
  257. package/lib/file-inputs/file-drop-area/file-drop-area.component.d.ts +5 -4
  258. package/lib/file-inputs/file-drop-area/index.d.ts +3 -0
  259. package/lib/file-inputs/file-input/file-input.component.d.ts +13 -17
  260. package/lib/file-inputs/file-input/index.d.ts +3 -0
  261. package/lib/file-inputs/file-input-base.d.ts +13 -18
  262. package/lib/form-field-frame/form-field-frame.component.d.ts +12 -16
  263. package/lib/form-field-frame/index.d.ts +3 -0
  264. package/lib/icon/icon.component.d.ts +10 -19
  265. package/lib/icon/index.d.ts +3 -0
  266. package/lib/inputs/color-input/color-input.types.d.ts +2 -2
  267. package/lib/inputs/digit-input/digit-input.component.d.ts +22 -30
  268. package/lib/inputs/digit-input/digit-input.model.d.ts +8 -12
  269. package/lib/inputs/digit-input/digit-input.types.d.ts +4 -4
  270. package/lib/inputs/digit-input/digit-input.utils.d.ts +4 -5
  271. package/lib/inputs/digit-input/index.d.ts +3 -0
  272. package/lib/inputs/hex-input/hex-input.component.d.ts +32 -38
  273. package/lib/inputs/hex-input/index.d.ts +3 -0
  274. package/lib/inputs/hex-input.model.d.ts +10 -11
  275. package/lib/inputs/input/index.d.ts +3 -0
  276. package/lib/inputs/input/input.component.d.ts +34 -40
  277. package/lib/inputs/input/input.directives.d.ts +3 -3
  278. package/lib/inputs/input-utils.d.ts +24 -27
  279. package/lib/inputs/number-input/index.d.ts +3 -0
  280. package/lib/inputs/number-input/number-input.component.d.ts +38 -48
  281. package/lib/inputs/password-input/index.d.ts +4 -0
  282. package/lib/inputs/password-input/password-input.component.d.ts +28 -40
  283. package/lib/inputs/password-input/password-input.types.d.ts +2 -2
  284. package/lib/inputs/simple-input/index.d.ts +3 -0
  285. package/lib/inputs/simple-input/simple-input.component.d.ts +30 -35
  286. package/lib/kbd/index.d.ts +3 -0
  287. package/lib/kbd/kbd.component.d.ts +6 -8
  288. package/lib/kbd-shortcut/index.d.ts +2 -0
  289. package/lib/kbd-shortcut/kbd-shortcut.component.d.ts +7 -10
  290. package/lib/modal/index.d.ts +2 -0
  291. package/lib/modal/modal.component.d.ts +22 -30
  292. package/lib/option/index.d.ts +2 -0
  293. package/lib/option/option.component.d.ts +11 -16
  294. package/lib/progress-bar/index.d.ts +4 -0
  295. package/lib/progress-bar/progress-bar.component.d.ts +14 -20
  296. package/lib/progress-bar/progress-bar.types.d.ts +2 -2
  297. package/lib/progress-circle/index.d.ts +4 -0
  298. package/lib/progress-circle/progress-circle.component.d.ts +12 -20
  299. package/lib/progress-circle/progress-circle.types.d.ts +2 -2
  300. package/lib/radio/index.d.ts +3 -0
  301. package/lib/radio/radio/radio.component.d.ts +7 -8
  302. package/lib/radio/radio-group.component.d.ts +13 -16
  303. package/lib/segment/index.d.ts +4 -0
  304. package/lib/segment/segment.component.d.ts +22 -34
  305. package/lib/segment/segment.directives.d.ts +2 -3
  306. package/lib/select/index.d.ts +4 -0
  307. package/lib/select/select.component.d.ts +114 -160
  308. package/lib/select/select.directive.d.ts +3 -3
  309. package/lib/select/select.types.d.ts +2 -76
  310. package/lib/slide-toggle/index.d.ts +3 -0
  311. package/lib/slide-toggle/slide-toggle.component.d.ts +9 -7
  312. package/lib/slide-toggle/slide-toggle.types.d.ts +5 -0
  313. package/lib/slider/abstract-slider.d.ts +38 -55
  314. package/lib/slider/index.d.ts +6 -0
  315. package/lib/slider/range-slider/range-slider.component.d.ts +3 -1
  316. package/lib/slider/slider.component.d.ts +2 -0
  317. package/lib/slider/slider.types.d.ts +8 -8
  318. package/lib/snackbar/snackbar-ref.d.ts +1 -2
  319. package/lib/snackbar/snackbar.component.d.ts +3 -3
  320. package/lib/snackbar/snackbar.service.d.ts +2 -2
  321. package/lib/snackbar/snackbar.types.d.ts +4 -4
  322. package/lib/spinner/index.d.ts +2 -0
  323. package/lib/spinner/spinner.component.d.ts +3 -3
  324. package/lib/star/index.d.ts +3 -0
  325. package/lib/star/star-button/index.d.ts +2 -0
  326. package/lib/star/star-button/star-button.component.d.ts +7 -7
  327. package/lib/star/star-display/index.d.ts +2 -0
  328. package/lib/star/star-display/star-display.component.d.ts +8 -12
  329. package/lib/star/star-input/index.d.ts +2 -0
  330. package/lib/star/star-input/star-input.component.d.ts +17 -22
  331. package/lib/star/star.component.d.ts +5 -5
  332. package/lib/statebox/index.d.ts +3 -0
  333. package/lib/statebox/statebox.component.d.ts +15 -21
  334. package/lib/statebox/statebox.types.d.ts +12 -8
  335. package/lib/tabber/index.d.ts +3 -0
  336. package/lib/tabber/tab/tab.component.d.ts +18 -0
  337. package/lib/tabber/tabber.component.d.ts +25 -0
  338. package/lib/tabber/tabber.module.d.ts +9 -0
  339. package/lib/table/index.d.ts +4 -0
  340. package/lib/table/table-item-storage.d.ts +70 -58
  341. package/lib/table/table.component.d.ts +59 -78
  342. package/lib/table/table.directives.d.ts +4 -3
  343. package/lib/table-from-csv/index.d.ts +2 -0
  344. package/lib/table-from-csv/table-from-csv.component.d.ts +46 -9
  345. package/lib/table-pagination/index.d.ts +3 -0
  346. package/lib/table-pagination/table-pagination.component.d.ts +21 -30
  347. package/lib/types/item-storage.types.d.ts +19 -18
  348. package/lib/types/utility.types.d.ts +2 -1
  349. package/package.json +8 -9
  350. package/prebuilt-themes/default/badge.css +5 -5
  351. package/prebuilt-themes/default/buttons/fab.css +4 -3
  352. package/prebuilt-themes/default/buttons/fab.css.map +1 -1
  353. package/prebuilt-themes/default/card.css +7 -7
  354. package/prebuilt-themes/default/chips.css +3 -8
  355. package/prebuilt-themes/default/chips.css.map +1 -1
  356. package/prebuilt-themes/default/core.css +6 -3
  357. package/prebuilt-themes/default/core.css.map +1 -1
  358. package/prebuilt-themes/default/inputs/color-input.css +1 -1
  359. package/prebuilt-themes/default/inputs/digit-input.css +1 -1
  360. package/prebuilt-themes/default/inputs/file-input.css +139 -2
  361. package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
  362. package/prebuilt-themes/default/inputs/hex-input.css +2 -2
  363. package/prebuilt-themes/default/inputs/input.css +1 -1
  364. package/prebuilt-themes/default/inputs/search-bar.css +1 -1
  365. package/prebuilt-themes/default/inputs/simple-input.css +1 -1
  366. package/prebuilt-themes/default/modal.css +1 -1
  367. package/prebuilt-themes/default/segment.css +2 -2
  368. package/prebuilt-themes/default/segment.css.map +1 -1
  369. package/prebuilt-themes/default/select.css +5 -3
  370. package/prebuilt-themes/default/select.css.map +1 -1
  371. package/prebuilt-themes/default/snackbar.css +0 -1
  372. package/prebuilt-themes/default/snackbar.css.map +1 -1
  373. package/prebuilt-themes/default/tabber.css +207 -0
  374. package/prebuilt-themes/default/tabber.css.map +1 -0
  375. package/public-api.d.ts +43 -136
  376. package/themes/_variables.scss +121 -121
  377. package/themes/default/_clear-button.scss +73 -73
  378. package/themes/default/_coloring.scss +137 -137
  379. package/themes/default/_dropdown-arrow.scss +12 -12
  380. package/themes/default/_mixins.scss +70 -70
  381. package/themes/default/badge.scss +94 -94
  382. package/themes/default/buttons/_button-mixins.scss +144 -144
  383. package/themes/default/buttons/button.scss +62 -62
  384. package/themes/default/buttons/fab.scss +74 -72
  385. package/themes/default/buttons/icon-button.scss +59 -59
  386. package/themes/default/calendar.scss +182 -182
  387. package/themes/default/card.scss +126 -126
  388. package/themes/default/checkbox-list.scss +83 -83
  389. package/themes/default/checkbox.scss +109 -109
  390. package/themes/default/chips.scss +200 -206
  391. package/themes/default/color-display.scss +41 -41
  392. package/themes/default/color-picker.scss +111 -111
  393. package/themes/default/core.scss +99 -96
  394. package/themes/default/dialog.scss +16 -16
  395. package/themes/default/divider.scss +13 -13
  396. package/themes/default/dropdown-panel.scss +45 -45
  397. package/themes/default/file-drop-area.scss +162 -162
  398. package/themes/default/form-field-frame.scss +78 -78
  399. package/themes/default/inputs/_shared.scss +46 -46
  400. package/themes/default/inputs/color-input.scss +46 -46
  401. package/themes/default/inputs/digit-input.scss +56 -56
  402. package/themes/default/inputs/file-input.scss +85 -78
  403. package/themes/default/inputs/hex-input.scss +27 -27
  404. package/themes/default/inputs/input.scss +52 -52
  405. package/themes/default/inputs/number-input.scss +121 -121
  406. package/themes/default/inputs/password-input.scss +43 -43
  407. package/themes/default/inputs/search-bar.scss +19 -19
  408. package/themes/default/inputs/simple-input.scss +19 -19
  409. package/themes/default/kbd-shortcut.scss +13 -13
  410. package/themes/default/kbd.scss +20 -20
  411. package/themes/default/modal.scss +93 -93
  412. package/themes/default/progress-bar.scss +166 -166
  413. package/themes/default/progress-circle.scss +56 -56
  414. package/themes/default/radio.scss +112 -112
  415. package/themes/default/segment.scss +340 -339
  416. package/themes/default/select.scss +255 -253
  417. package/themes/default/slide-toggle.scss +151 -151
  418. package/themes/default/slider.scss +224 -224
  419. package/themes/default/snackbar.scss +58 -60
  420. package/themes/default/spinner.scss +21 -21
  421. package/themes/default/stars.scss +122 -122
  422. package/themes/default/statebox.scss +109 -109
  423. package/themes/default/tabber.scss +86 -0
  424. package/themes/default/table-pagination.scss +56 -56
  425. package/themes/default/table.scss +403 -403
  426. package/esm2022/lib/calendar/calendar.component.mjs +0 -979
  427. package/esm2022/lib/calendar/calendar.directives.mjs +0 -107
  428. package/esm2022/lib/calendar/calendar.helpers.mjs +0 -47
  429. package/esm2022/lib/calendar/calendar.module.mjs +0 -21
  430. package/esm2022/lib/calendar/calendar.types.mjs +0 -11
  431. package/esm2022/lib/color/color-picker/color-picker.component.mjs +0 -484
  432. package/esm2022/lib/color/color-picker/color-picker.directives.mjs +0 -55
  433. package/esm2022/lib/color/color-picker/color-picker.module.mjs +0 -43
  434. package/esm2022/lib/inputs/color-input/color-input.component.mjs +0 -421
  435. package/esm2022/lib/inputs/color-input/color-input.module.mjs +0 -85
  436. package/lib/calendar/calendar.component.d.ts +0 -155
  437. package/lib/calendar/calendar.directives.d.ts +0 -51
  438. package/lib/calendar/calendar.helpers.d.ts +0 -15
  439. package/lib/calendar/calendar.module.d.ts +0 -11
  440. package/lib/calendar/calendar.types.d.ts +0 -80
  441. package/lib/color/color-picker/color-picker.component.d.ts +0 -125
  442. package/lib/color/color-picker/color-picker.directives.d.ts +0 -27
  443. package/lib/color/color-picker/color-picker.module.d.ts +0 -13
  444. package/lib/inputs/color-input/color-input.component.d.ts +0 -147
  445. package/lib/inputs/color-input/color-input.module.d.ts +0 -16
@@ -1,170 +1,153 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation, ContentChild, TemplateRef, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, computed, contentChild, effect, forwardRef, input, output, viewChild, } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
4
- import { ButtonVariant, ButtonAppearance } from '../../buttons/general-button.types';
4
+ import { roundToPrecision } from 'more-rounding';
5
+ import { isDefined } from 'simple-bool';
6
+ import { _NgModelComponentBase } from '../../_internal/ngmodel-component';
7
+ import { ButtonAppearance, ButtonVariant } from '../../buttons/general-button.types';
5
8
  import { OneAxisAlignment } from '../../types/alignment.types';
6
9
  import { FormElementAppearance, FormElementVariant } from '../../types/theming.types';
7
- import { _NgModelComponentBase } from '../../_internal/ngmodel-component';
8
10
  import { NumberInputModel } from '../input-utils';
9
- import { isDefined, isFloat } from 'simple-bool';
10
11
  import { ArdNumberInputPlaceholderTemplateDirective } from './number-input.directives';
11
- import { roundToPrecision } from 'more-rounding';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "@angular/common";
14
14
  import * as i2 from "@ardium-ui/devkit";
15
15
  import * as i3 from "../../buttons/button/button.component";
16
16
  export class ArdiumNumberInputComponent extends _NgModelComponentBase {
17
- constructor() {
18
- super(...arguments);
19
- //! placeholder
20
- this.placeholder = '';
21
- //! appearance
22
- this.appearance = FormElementAppearance.Outlined;
23
- this.variant = FormElementVariant.Rounded;
24
- this.alignText = OneAxisAlignment.Middle;
25
- this._compact = false;
26
- //! other inputs
27
- this.inputAttrs = {};
28
- //! value two-way binding
29
- this._valueBeforeInit = '0';
30
- this.valueChange = new EventEmitter();
31
- //* event emitters
32
- this.inputEvent = new EventEmitter();
33
- this.changeEvent = new EventEmitter();
34
- this.clearEvent = new EventEmitter();
35
- this.quickChangeEvent = new EventEmitter();
36
- //! min/max and number type
37
- this._min = 0;
38
- this._max = 999;
39
- this._allowFloat = undefined;
40
- //! incerement/decrement buttons
41
- this._allowQuickChange = true;
42
- this._stepSize = 1;
43
- }
44
- ngOnInit() {
45
- this.inputModel = new NumberInputModel(this.textInputEl.nativeElement, this);
17
+ ngAfterViewInit() {
46
18
  this._setInputAttributes();
19
+ this._wasViewInit = true;
47
20
  //set the value
48
21
  if (this._valueBeforeInit) {
49
22
  this.writeValue(this._valueBeforeInit);
50
23
  delete this._valueBeforeInit;
51
24
  }
52
25
  }
53
- get shouldDisplayPlaceholder() {
54
- return Boolean(this.placeholder) && !this.inputModel.stringValue;
55
- }
56
- get compact() {
57
- return this._compact;
58
- }
59
- set compact(v) {
60
- this._compact = coerceBooleanProperty(v);
61
- }
62
- get ngClasses() {
63
- return [
64
- `ard-appearance-${this.appearance}`,
65
- `ard-variant-${this.variant}`,
66
- `ard-text-align-${this.alignText}`,
67
- `ard-quick-change-${this.allowQuickChange}`,
68
- this.compact ? 'ard-compact' : '',
69
- ].join(' ');
70
- }
71
- get buttonVariant() {
72
- if (this.variant == FormElementVariant.Rounded)
73
- return ButtonVariant.Rounded;
74
- if (this.variant == FormElementVariant.Pill)
75
- return ButtonVariant.Pill;
76
- if (this.variant == FormElementVariant.Sharp)
77
- return ButtonVariant.Sharp;
78
- return ButtonVariant.Rounded;
79
- }
80
- get buttonAppearance() {
81
- if (this.appearance == FormElementAppearance.Outlined && this.variant != FormElementVariant.Pill)
82
- return ButtonAppearance.Outlined;
83
- return ButtonAppearance.Transparent;
84
- }
85
26
  //! control value accessor's write value implementation
86
27
  writeValue(v) {
87
28
  this.inputModel.writeValue(v);
88
29
  }
89
30
  set value(v) {
90
- if (typeof v == 'number')
31
+ if (typeof v === 'number')
91
32
  v = v.toString();
92
- if (!this.inputModel) {
33
+ if (!this._wasViewInit) {
93
34
  this._valueBeforeInit = v;
94
35
  return;
95
36
  }
96
37
  this.writeValue(v);
97
38
  }
98
- get min() {
99
- return this._min;
100
- }
101
- set min(v) {
102
- this._min = coerceNumberProperty(v);
103
- }
104
- get max() {
105
- return this._max;
106
- }
107
- set max(v) {
108
- this._max = coerceNumberProperty(v);
109
- }
110
- get allowFloat() {
111
- return this._allowFloat ?? isFloat(this._stepSize);
112
- }
113
- set allowFloat(v) {
114
- this._allowFloat = coerceBooleanProperty(v);
115
- }
116
- get allowQuickChange() {
117
- return this._allowQuickChange;
118
- }
119
- set allowQuickChange(v) {
120
- this._allowQuickChange = coerceBooleanProperty(v);
121
- }
122
- get stepSize() {
123
- return this._stepSize;
124
- }
125
- set stepSize(v) {
126
- this._stepSize = coerceNumberProperty(v);
39
+ constructor() {
40
+ super();
41
+ //! input view
42
+ this.inputEl = viewChild('textInput');
43
+ this.inputModel = new NumberInputModel(this);
44
+ this._wasViewInit = false;
45
+ this.inputId = input();
46
+ //! placeholder
47
+ this.placeholder = input();
48
+ this.placeholderTemplate = contentChild(ArdNumberInputPlaceholderTemplateDirective);
49
+ this.shouldDisplayPlaceholder = computed(() => !!this.placeholder() && !this.inputModel.stringValue());
50
+ //! appearance
51
+ this.appearance = input(FormElementAppearance.Outlined);
52
+ this.variant = input(FormElementVariant.Rounded);
53
+ this.alignText = input(OneAxisAlignment.Middle);
54
+ this.compact = input(false, { transform: v => coerceBooleanProperty(v) });
55
+ this.ngClasses = computed(() => {
56
+ return [
57
+ `ard-appearance-${this.appearance()}`,
58
+ `ard-variant-${this.variant()}`,
59
+ `ard-text-align-${this.alignText()}`,
60
+ `ard-quick-change-${this.noButtons}`,
61
+ this.compact() ? 'ard-compact' : '',
62
+ ].join(' ');
63
+ });
64
+ this.buttonVariant = computed(() => {
65
+ if (this.variant() === FormElementVariant.Rounded)
66
+ return ButtonVariant.Rounded;
67
+ if (this.variant() === FormElementVariant.Pill)
68
+ return ButtonVariant.Pill;
69
+ if (this.variant() === FormElementVariant.Sharp)
70
+ return ButtonVariant.Sharp;
71
+ return ButtonVariant.Rounded;
72
+ });
73
+ this.buttonAppearance = computed(() => {
74
+ if (this.appearance() === FormElementAppearance.Outlined && this.variant() !== FormElementVariant.Pill) {
75
+ return ButtonAppearance.Outlined;
76
+ }
77
+ return ButtonAppearance.Transparent;
78
+ });
79
+ //! other inputs
80
+ this.inputAttrs = input({});
81
+ //! value two-way binding
82
+ this._valueBeforeInit = '0';
83
+ this.valueChange = output();
84
+ //! event emitters
85
+ this.inputEvent = output({ alias: 'input' });
86
+ this.changeEvent = output({ alias: 'change' });
87
+ this.clearEvent = output({ alias: 'clear' });
88
+ this.quickChangeEvent = output({ alias: 'quickChange' });
89
+ //! min/max and number type
90
+ this.min = input(0, { transform: v => coerceNumberProperty(v, 0) });
91
+ this.max = input(Infinity, { transform: v => coerceNumberProperty(v, Infinity) });
92
+ this.allowFloat = input(false, { transform: v => coerceBooleanProperty(v) });
93
+ //! incerement/decrement buttons
94
+ this.noButtons = input(false, { transform: v => coerceBooleanProperty(v) });
95
+ this.stepSize = input(1, {
96
+ transform: v => {
97
+ const newValue = coerceNumberProperty(v, 1);
98
+ if (newValue === 0)
99
+ throw new Error(`ARD-FT0071a: Cannot set <ard-number-input>'s [stepSize] to 0.`);
100
+ if (newValue < 0)
101
+ throw new Error(`ARD-FT0071b: Cannot set <ard-number-input>'s [stepSize] to a negative value, got "${newValue}".`);
102
+ return newValue;
103
+ },
104
+ });
105
+ effect(() => {
106
+ const v = this.inputModel.numberValue();
107
+ this.valueChange.emit(v);
108
+ this._onChangeRegistered?.(v);
109
+ });
127
110
  }
128
111
  onQuickChangeButtonClick(direction, event) {
129
- let num = this.inputModel.numberValue;
112
+ let num = this.inputModel.numberValue();
130
113
  if (!num)
131
114
  num = 0;
132
- if (direction == 1 && num >= this.max)
115
+ if (direction === 1 && num >= this.max())
133
116
  return;
134
- if (direction == -1 && num <= this.min)
117
+ if (direction === -1 && num <= this.min())
135
118
  return;
136
119
  if (event)
137
120
  event.stopPropagation();
138
- const newValue = num + this.stepSize * direction;
121
+ const newValue = num + this.stepSize() * direction;
139
122
  //round to 9 decimal places to avoid floating point arithmetic errors
140
123
  //9 is an arbitrary number that just works well. ¯\_(ツ)_/¯
141
124
  const newValuePrecise = roundToPrecision(newValue, 9);
142
125
  this.writeValue(newValuePrecise);
143
- this.quickChangeEvent.next({ direction, value: newValuePrecise });
126
+ this.quickChangeEvent.emit({ direction, value: newValuePrecise });
144
127
  this._emitChange();
145
- this._checkButtonAvailability();
128
+ this._focusInputIfCantQuickChange();
146
129
  }
147
- _checkButtonAvailability() {
130
+ _focusInputIfCantQuickChange() {
148
131
  if (!this.canDecrement() || !this.canIncrement())
149
132
  this.focus();
150
133
  }
151
134
  canIncrement() {
152
- const num = this.inputModel.numberValue;
153
- return !isDefined(num) || num < this.max;
135
+ const num = this.inputModel.numberValue();
136
+ return !isDefined(num) || num < this.max();
154
137
  }
155
138
  canDecrement() {
156
- const num = this.inputModel.numberValue;
157
- return !isDefined(num) || num > this.min;
139
+ const num = this.inputModel.numberValue();
140
+ return !isDefined(num) || num > this.min();
158
141
  }
159
142
  //! event handlers
160
143
  onInput(newVal) {
161
- let valueHasChanged = this.inputModel.writeValue(newVal);
144
+ const valueHasChanged = this.inputModel.writeValue(newVal);
162
145
  if (!valueHasChanged)
163
146
  return;
164
147
  this._emitInput();
165
148
  }
166
149
  _emitInput() {
167
- this.inputEvent.emit(this.inputModel.numberValue);
150
+ this.inputEvent.emit(this.inputModel.numberValue());
168
151
  this._emitChange();
169
152
  }
170
153
  //focus, blur, change
@@ -180,13 +163,11 @@ export class ArdiumNumberInputComponent extends _NgModelComponentBase {
180
163
  this._emitChange();
181
164
  }
182
165
  _emitChange() {
183
- const v = this.inputModel.numberValue;
184
- this._onChangeRegistered?.(v);
166
+ const v = this.inputModel.numberValue();
185
167
  this.changeEvent.emit(v);
186
- this.valueChange.emit(this.inputModel.numberValue);
187
168
  }
188
169
  //smart focus
189
- onMouseup(event) {
170
+ onMouseup() {
190
171
  const selection = window.getSelection();
191
172
  if (selection && selection.type === 'Range')
192
173
  return;
@@ -196,16 +177,17 @@ export class ArdiumNumberInputComponent extends _NgModelComponentBase {
196
177
  onCopy(event) {
197
178
  if (this.value &&
198
179
  //does the selection cover the entire input
199
- ((this.textInputEl.nativeElement.selectionStart == 0 && this.textInputEl.nativeElement.selectionEnd == this.textInputEl.nativeElement.value.length) ||
180
+ ((this.inputEl()?.nativeElement.selectionStart === 0 &&
181
+ this.inputEl()?.nativeElement.selectionEnd === this.inputEl()?.nativeElement.value.length) ||
200
182
  //or is zero-wide
201
- this.textInputEl.nativeElement.selectionStart == this.textInputEl.nativeElement.selectionEnd)) {
183
+ this.inputEl()?.nativeElement.selectionStart === this.inputEl()?.nativeElement.selectionEnd)) {
202
184
  event.clipboardData?.setData('text/plain', String(this.value));
203
185
  event.preventDefault();
204
186
  }
205
187
  }
206
188
  //! helpers
207
189
  _setInputAttributes() {
208
- const input = this.textInputEl.nativeElement;
190
+ const input = this.inputEl().nativeElement;
209
191
  const attributes = {
210
192
  type: 'text',
211
193
  autocorrect: 'off',
@@ -218,16 +200,16 @@ export class ArdiumNumberInputComponent extends _NgModelComponentBase {
218
200
  input.setAttribute(key, String(attributes[key]));
219
201
  }
220
202
  }
221
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumNumberInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
222
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: ArdiumNumberInputComponent, selector: "ard-number-input", inputs: { inputId: "inputId", placeholder: "placeholder", appearance: "appearance", variant: "variant", alignText: "alignText", compact: "compact", inputAttrs: "inputAttrs", value: "value", min: "min", max: "max", allowFloat: "allowFloat", allowQuickChange: "allowQuickChange", stepSize: "stepSize" }, outputs: { valueChange: "valueChange", inputEvent: "input", changeEvent: "change", clearEvent: "clear", quickChangeEvent: "quickChange" }, providers: [
203
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumNumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ArdiumNumberInputComponent, selector: "ard-number-input", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, alignText: { classPropertyName: "alignText", publicName: "alignText", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, inputAttrs: { classPropertyName: "inputAttrs", publicName: "inputAttrs", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, allowFloat: { classPropertyName: "allowFloat", publicName: "allowFloat", isSignal: true, isRequired: false, transformFunction: null }, noButtons: { classPropertyName: "noButtons", publicName: "noButtons", isSignal: true, isRequired: false, transformFunction: null }, stepSize: { classPropertyName: "stepSize", publicName: "stepSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", inputEvent: "input", changeEvent: "change", clearEvent: "clear", quickChangeEvent: "quickChange" }, providers: [
223
205
  {
224
206
  provide: NG_VALUE_ACCESSOR,
225
207
  useExisting: forwardRef(() => ArdiumNumberInputComponent),
226
208
  multi: true,
227
209
  },
228
- ], queries: [{ propertyName: "placeholderTemplate", first: true, predicate: ArdNumberInputPlaceholderTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ard-number-input\"\r\n [ngClass]=\"ngClasses\"\r\n [class.ard-has-value]=\"value\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (mouseup)=\"onMouseup($event)\"\r\n>\r\n <ard-button *ngIf=\"allowQuickChange\"\r\n class=\"ard-quick-change-button decrement\"\r\n [variant]=\"buttonVariant\"\r\n [appearance]=\"buttonAppearance\"\r\n color=\"none\"\r\n [disabled]=\"!canDecrement()\"\r\n [tabIndex]=\"!canDecrement() ? -1 : tabIndex\"\r\n (click)=\"onQuickChangeButtonClick(-1, $event)\"\r\n (ardHold)=\"onQuickChangeButtonClick(-1)\"\r\n ardHoldSpaceKey\r\n >-</ard-button>\r\n <div class=\"ard-input-container\">\r\n <ng-container *ngIf=\"shouldDisplayPlaceholder\">\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate || defaultPlaceholderTemplate\"></ng-template>\r\n </ng-container>\r\n\r\n <input #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId\"\r\n [attr.tabindex]=\"tabIndex\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocusMaster($event)\"\r\n (blur)=\"onBlurMaster($event)\"\r\n (change)=\"onChange($event)\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n </div>\r\n <ard-button *ngIf=\"allowQuickChange\"\r\n class=\"ard-quick-change-button increment\"\r\n [variant]=\"buttonVariant\"\r\n [appearance]=\"buttonAppearance\"\r\n color=\"none\"\r\n [disabled]=\"!canIncrement()\"\r\n [tabIndex]=\"!canIncrement() ? -1 : tabIndex\"\r\n (click)=\"onQuickChangeButtonClick(1, $event)\"\r\n (ardHold)=\"onQuickChangeButtonClick(1)\"\r\n ardHoldSpaceKey\r\n >+</ard-button>\r\n</div>", styles: [".ard-number-input{display:flex;max-width:100%}.ard-number-input .ard-input-container{position:relative}.ard-number-input .ard-placeholder{position:absolute;left:0;right:0;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-middle input,.ard-text-align-middle .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-quick-change-button{-webkit-user-select:none;user-select:none;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.HoldDirective, selector: "[ardHold]", inputs: ["disabled", "readonly", "ardHoldDelay", "ardHoldRepeat", "ardHoldSpaceKey", "ardHoldEnterKey"], outputs: ["ardHold"] }, { kind: "component", type: i3.ArdiumButtonComponent, selector: "ard-button", inputs: ["variant", "alignIcon", "vertical", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
210
+ ], queries: [{ propertyName: "placeholderTemplate", first: true, predicate: ArdNumberInputPlaceholderTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["textInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ard-number-input\"\n [ngClass]=\"ngClasses()\"\n [class.ard-has-value]=\"value\"\n (mousedown)=\"$event.preventDefault()\"\n (mouseup)=\"onMouseup()\"\n>\n @if (!noButtons()) {\n <ard-button\n class=\"ard-quick-change-button decrement\"\n [variant]=\"buttonVariant()\"\n [appearance]=\"buttonAppearance()\"\n color=\"none\"\n [disabled]=\"!canDecrement()\"\n [tabIndex]=\"!canDecrement() ? -1 : tabIndex()\"\n (click)=\"onQuickChangeButtonClick(-1, $event)\"\n (ardHold)=\"onQuickChangeButtonClick(-1)\"\n ardHoldSpaceKey\n >\n -\n </ard-button>\n }\n <div class=\"ard-input-container\">\n @if (shouldDisplayPlaceholder()) {\n <ng-template\n #defaultPlaceholderTemplate\n let-plchldr\n >\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\n }\n\n <input\n #textInput\n #focusableElement\n type=\"text\"\n [attr.id]=\"inputId()\"\n [attr.tabindex]=\"tabIndex()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(textInput.value)\"\n (focus)=\"onFocusMaster($event)\"\n (blur)=\"onBlurMaster($event)\"\n (change)=\"onChange($event)\"\n (mousedown)=\"$event.stopPropagation()\"\n (mouseup)=\"$event.stopPropagation()\"\n (copy)=\"onCopy($event)\"\n />\n </div>\n @if (!noButtons()) {\n <ard-button\n class=\"ard-quick-change-button increment\"\n [variant]=\"buttonVariant()\"\n [appearance]=\"buttonAppearance()\"\n color=\"none\"\n [disabled]=\"!canIncrement()\"\n [tabIndex]=\"!canIncrement() ? -1 : tabIndex()\"\n (click)=\"onQuickChangeButtonClick(1, $event)\"\n (ardHold)=\"onQuickChangeButtonClick(1)\"\n ardHoldSpaceKey\n >\n +\n </ard-button>\n }\n</div>\n", styles: [".ard-number-input{display:flex;max-width:100%}.ard-number-input .ard-input-container{position:relative}.ard-number-input .ard-placeholder{position:absolute;left:0;right:0;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-middle input,.ard-text-align-middle .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-quick-change-button{-webkit-user-select:none;user-select:none;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.HoldDirective, selector: "[ardHold]", inputs: ["disabled", "readonly", "ardHoldDelay", "ardHoldRepeat", "ardHoldSpaceKey", "ardHoldEnterKey"], outputs: ["ardHold"] }, { kind: "component", type: i3.ArdiumButtonComponent, selector: "ard-button", inputs: ["icon", "variant", "alignIcon", "vertical"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
229
211
  }
230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumNumberInputComponent, decorators: [{
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumNumberInputComponent, decorators: [{
231
213
  type: Component,
232
214
  args: [{ selector: 'ard-number-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
233
215
  {
@@ -235,54 +217,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
235
217
  useExisting: forwardRef(() => ArdiumNumberInputComponent),
236
218
  multi: true,
237
219
  },
238
- ], template: "<div class=\"ard-number-input\"\r\n [ngClass]=\"ngClasses\"\r\n [class.ard-has-value]=\"value\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (mouseup)=\"onMouseup($event)\"\r\n>\r\n <ard-button *ngIf=\"allowQuickChange\"\r\n class=\"ard-quick-change-button decrement\"\r\n [variant]=\"buttonVariant\"\r\n [appearance]=\"buttonAppearance\"\r\n color=\"none\"\r\n [disabled]=\"!canDecrement()\"\r\n [tabIndex]=\"!canDecrement() ? -1 : tabIndex\"\r\n (click)=\"onQuickChangeButtonClick(-1, $event)\"\r\n (ardHold)=\"onQuickChangeButtonClick(-1)\"\r\n ardHoldSpaceKey\r\n >-</ard-button>\r\n <div class=\"ard-input-container\">\r\n <ng-container *ngIf=\"shouldDisplayPlaceholder\">\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate || defaultPlaceholderTemplate\"></ng-template>\r\n </ng-container>\r\n\r\n <input #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId\"\r\n [attr.tabindex]=\"tabIndex\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocusMaster($event)\"\r\n (blur)=\"onBlurMaster($event)\"\r\n (change)=\"onChange($event)\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n >\r\n </div>\r\n <ard-button *ngIf=\"allowQuickChange\"\r\n class=\"ard-quick-change-button increment\"\r\n [variant]=\"buttonVariant\"\r\n [appearance]=\"buttonAppearance\"\r\n color=\"none\"\r\n [disabled]=\"!canIncrement()\"\r\n [tabIndex]=\"!canIncrement() ? -1 : tabIndex\"\r\n (click)=\"onQuickChangeButtonClick(1, $event)\"\r\n (ardHold)=\"onQuickChangeButtonClick(1)\"\r\n ardHoldSpaceKey\r\n >+</ard-button>\r\n</div>", styles: [".ard-number-input{display:flex;max-width:100%}.ard-number-input .ard-input-container{position:relative}.ard-number-input .ard-placeholder{position:absolute;left:0;right:0;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-middle input,.ard-text-align-middle .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-quick-change-button{-webkit-user-select:none;user-select:none;height:100%}\n"] }]
239
- }], propDecorators: { textInputEl: [{
240
- type: ViewChild,
241
- args: ['textInput', { static: true }]
242
- }], inputId: [{
243
- type: Input
244
- }], placeholder: [{
245
- type: Input
246
- }], placeholderTemplate: [{
247
- type: ContentChild,
248
- args: [ArdNumberInputPlaceholderTemplateDirective, {
249
- read: TemplateRef,
250
- }]
251
- }], appearance: [{
252
- type: Input
253
- }], variant: [{
254
- type: Input
255
- }], alignText: [{
256
- type: Input
257
- }], compact: [{
258
- type: Input
259
- }], inputAttrs: [{
260
- type: Input
261
- }], value: [{
262
- type: Input
263
- }], valueChange: [{
264
- type: Output
265
- }], inputEvent: [{
266
- type: Output,
267
- args: ['input']
268
- }], changeEvent: [{
269
- type: Output,
270
- args: ['change']
271
- }], clearEvent: [{
272
- type: Output,
273
- args: ['clear']
274
- }], quickChangeEvent: [{
275
- type: Output,
276
- args: ['quickChange']
277
- }], min: [{
278
- type: Input
279
- }], max: [{
280
- type: Input
281
- }], allowFloat: [{
282
- type: Input
283
- }], allowQuickChange: [{
284
- type: Input
285
- }], stepSize: [{
220
+ ], template: "<div\n class=\"ard-number-input\"\n [ngClass]=\"ngClasses()\"\n [class.ard-has-value]=\"value\"\n (mousedown)=\"$event.preventDefault()\"\n (mouseup)=\"onMouseup()\"\n>\n @if (!noButtons()) {\n <ard-button\n class=\"ard-quick-change-button decrement\"\n [variant]=\"buttonVariant()\"\n [appearance]=\"buttonAppearance()\"\n color=\"none\"\n [disabled]=\"!canDecrement()\"\n [tabIndex]=\"!canDecrement() ? -1 : tabIndex()\"\n (click)=\"onQuickChangeButtonClick(-1, $event)\"\n (ardHold)=\"onQuickChangeButtonClick(-1)\"\n ardHoldSpaceKey\n >\n -\n </ard-button>\n }\n <div class=\"ard-input-container\">\n @if (shouldDisplayPlaceholder()) {\n <ng-template\n #defaultPlaceholderTemplate\n let-plchldr\n >\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\n }\n\n <input\n #textInput\n #focusableElement\n type=\"text\"\n [attr.id]=\"inputId()\"\n [attr.tabindex]=\"tabIndex()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(textInput.value)\"\n (focus)=\"onFocusMaster($event)\"\n (blur)=\"onBlurMaster($event)\"\n (change)=\"onChange($event)\"\n (mousedown)=\"$event.stopPropagation()\"\n (mouseup)=\"$event.stopPropagation()\"\n (copy)=\"onCopy($event)\"\n />\n </div>\n @if (!noButtons()) {\n <ard-button\n class=\"ard-quick-change-button increment\"\n [variant]=\"buttonVariant()\"\n [appearance]=\"buttonAppearance()\"\n color=\"none\"\n [disabled]=\"!canIncrement()\"\n [tabIndex]=\"!canIncrement() ? -1 : tabIndex()\"\n (click)=\"onQuickChangeButtonClick(1, $event)\"\n (ardHold)=\"onQuickChangeButtonClick(1)\"\n ardHoldSpaceKey\n >\n +\n </ard-button>\n }\n</div>\n", styles: [".ard-number-input{display:flex;max-width:100%}.ard-number-input .ard-input-container{position:relative}.ard-number-input .ard-placeholder{position:absolute;left:0;right:0;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-middle input,.ard-text-align-middle .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}.ard-quick-change-button{-webkit-user-select:none;user-select:none;height:100%}\n"] }]
221
+ }], ctorParameters: () => [], propDecorators: { value: [{
286
222
  type: Input
287
223
  }] } });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7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QyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUtELFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWEvQixPQUFPO3NCQUFmLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFLTixtQkFBbUI7c0JBSGxCLFlBQVk7dUJBQUMsMENBQTBDLEVBQUU7d0JBQ3hELElBQUksRUFBRSxXQUFXO3FCQUNsQjtnQkFRUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSztnQkE4QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFVRixLQUFLO3NCQURSLEtBQUs7Z0JBU0ksV0FBVztzQkFBcEIsTUFBTTtnQkFHVSxVQUFVO3NCQUExQixNQUFNO3VCQUFDLE9BQU87Z0JBQ0csV0FBVztzQkFBNUIsTUFBTTt1QkFBQyxRQUFRO2dCQUNDLFVBQVU7c0JBQTFCLE1BQU07dUJBQUMsT0FBTztnQkFDUSxnQkFBZ0I7c0JBQXRDLE1BQU07dUJBQUMsYUFBYTtnQkFRakIsR0FBRztzQkFETixLQUFLO2dCQVVGLEdBQUc7c0JBRE4sS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBV0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IEJ1dHRvblZhcmlhbnQsIEJ1dHRvbkFwcGVhcmFuY2UgfSBmcm9tICcuLi8uLi9idXR0b25zL2dlbmVyYWwtYnV0dG9uLnR5cGVzJztcclxuaW1wb3J0IHsgT25lQXhpc0FsaWdubWVudCB9IGZyb20gJy4uLy4uL3R5cGVzL2FsaWdubWVudC50eXBlcyc7XHJcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XHJcbmltcG9ydCB7IF9OZ01vZGVsQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWJlcklucHV0TW9kZWwsIE51bWJlcklucHV0TW9kZWxIb3N0IH0gZnJvbSAnLi4vaW5wdXQtdXRpbHMnO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQsIGlzRmxvYXQgfSBmcm9tICdzaW1wbGUtYm9vbCc7XHJcbmltcG9ydCB7IEFyZE51bWJlcklucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vbnVtYmVyLWlucHV0LmRpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyByb3VuZFRvUHJlY2lzaW9uIH0gZnJvbSAnbW9yZS1yb3VuZGluZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1udW1iZXItaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL251bWJlci1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1OdW1iZXJJbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtTnVtYmVySW5wdXRDb21wb25lbnQgZXh0ZW5kcyBfTmdNb2RlbENvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTnVtYmVySW5wdXRNb2RlbEhvc3QsIE9uSW5pdCB7XHJcbiAgLy8hIGlucHV0IHZpZXdcclxuICBAVmlld0NoaWxkKCd0ZXh0SW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHRleHRJbnB1dEVsITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBwcm90ZWN0ZWQgaW5wdXRNb2RlbCE6IE51bWJlcklucHV0TW9kZWw7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0TW9kZWwgPSBuZXcgTnVtYmVySW5wdXRNb2RlbCh0aGlzLnRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xyXG4gICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XHJcbiAgICAvL3NldCB0aGUgdmFsdWVcclxuICAgIGlmICh0aGlzLl92YWx1ZUJlZm9yZUluaXQpIHtcclxuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCk7XHJcbiAgICAgIGRlbGV0ZSB0aGlzLl92YWx1ZUJlZm9yZUluaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBpbnB1dElkPzogc3RyaW5nO1xyXG5cclxuICAvLyEgcGxhY2Vob2xkZXJcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLCB7XHJcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcclxuICB9KVxyXG4gIHBsYWNlaG9sZGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBnZXQgc2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5wbGFjZWhvbGRlcikgJiYgIXRoaXMuaW5wdXRNb2RlbC5zdHJpbmdWYWx1ZTtcclxuICB9XHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogRm9ybUVsZW1lbnRBcHBlYXJhbmNlID0gRm9ybUVsZW1lbnRBcHBlYXJhbmNlLk91dGxpbmVkO1xyXG4gIEBJbnB1dCgpIHZhcmlhbnQ6IEZvcm1FbGVtZW50VmFyaWFudCA9IEZvcm1FbGVtZW50VmFyaWFudC5Sb3VuZGVkO1xyXG4gIEBJbnB1dCgpIGFsaWduVGV4dDogT25lQXhpc0FsaWdubWVudCA9IE9uZUF4aXNBbGlnbm1lbnQuTWlkZGxlO1xyXG5cclxuICBwcml2YXRlIF9jb21wYWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBnZXQgY29tcGFjdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jb21wYWN0O1xyXG4gIH1cclxuICBzZXQgY29tcGFjdCh2OiBhbnkpIHtcclxuICAgIHRoaXMuX2NvbXBhY3QgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XHJcbiAgfVxyXG5cclxuICBnZXQgbmdDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2V9YCxcclxuICAgICAgYGFyZC12YXJpYW50LSR7dGhpcy52YXJpYW50fWAsXHJcbiAgICAgIGBhcmQtdGV4dC1hbGlnbi0ke3RoaXMuYWxpZ25UZXh0fWAsXHJcbiAgICAgIGBhcmQtcXVpY2stY2hhbmdlLSR7dGhpcy5hbGxvd1F1aWNrQ2hhbmdlfWAsXHJcbiAgICAgIHRoaXMuY29tcGFjdCA/ICdhcmQtY29tcGFjdCcgOiAnJyxcclxuICAgIF0uam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJ1dHRvblZhcmlhbnQoKTogQnV0dG9uVmFyaWFudCB7XHJcbiAgICBpZiAodGhpcy52YXJpYW50ID09IEZvcm1FbGVtZW50VmFyaWFudC5Sb3VuZGVkKSByZXR1cm4gQnV0dG9uVmFyaWFudC5Sb3VuZGVkO1xyXG4gICAgaWYgKHRoaXMudmFyaWFudCA9PSBGb3JtRWxlbWVudFZhcmlhbnQuUGlsbCkgcmV0dXJuIEJ1dHRvblZhcmlhbnQuUGlsbDtcclxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT0gRm9ybUVsZW1lbnRWYXJpYW50LlNoYXJwKSByZXR1cm4gQnV0dG9uVmFyaWFudC5TaGFycDtcclxuICAgIHJldHVybiBCdXR0b25WYXJpYW50LlJvdW5kZWQ7XHJcbiAgfVxyXG4gIGdldCBidXR0b25BcHBlYXJhbmNlKCk6IEJ1dHRvbkFwcGVhcmFuY2Uge1xyXG4gICAgaWYgKHRoaXMuYXBwZWFyYW5jZSA9PSBGb3JtRWxlbWVudEFwcGVhcmFuY2UuT3V0bGluZWQgJiYgdGhpcy52YXJpYW50ICE9IEZvcm1FbGVtZW50VmFyaWFudC5QaWxsKSByZXR1cm4gQnV0dG9uQXBwZWFyYW5jZS5PdXRsaW5lZDtcclxuICAgIHJldHVybiBCdXR0b25BcHBlYXJhbmNlLlRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgLy8hIG90aGVyIGlucHV0c1xyXG4gIEBJbnB1dCgpIGlucHV0QXR0cnM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuXHJcbiAgLy8hIGNvbnRyb2wgdmFsdWUgYWNjZXNzb3IncyB3cml0ZSB2YWx1ZSBpbXBsZW1lbnRhdGlvblxyXG4gIHdyaXRlVmFsdWUodjogYW55KSB7XHJcbiAgICB0aGlzLmlucHV0TW9kZWwud3JpdGVWYWx1ZSh2KTtcclxuICB9XHJcblxyXG4gIC8vISB2YWx1ZSB0d28td2F5IGJpbmRpbmdcclxuICBwcm90ZWN0ZWQgX3ZhbHVlQmVmb3JlSW5pdD86IHN0cmluZyB8IG51bGwgPSAnMCc7XHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodjogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkge1xyXG4gICAgaWYgKHR5cGVvZiB2ID09ICdudW1iZXInKSB2ID0gdi50b1N0cmluZygpO1xyXG4gICAgaWYgKCF0aGlzLmlucHV0TW9kZWwpIHtcclxuICAgICAgdGhpcy5fdmFsdWVCZWZvcmVJbml0ID0gdjtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy53cml0ZVZhbHVlKHYpO1xyXG4gIH1cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlciB8IG51bGw+KCk7XHJcblxyXG4gIC8vKiBldmVudCBlbWl0dGVyc1xyXG4gIEBPdXRwdXQoJ2lucHV0JykgaW5wdXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgbnVsbD4oKTtcclxuICBAT3V0cHV0KCdjaGFuZ2UnKSBjaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgbnVsbD4oKTtcclxuICBAT3V0cHV0KCdjbGVhcicpIGNsZWFyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgncXVpY2tDaGFuZ2UnKSBxdWlja0NoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBkaXJlY3Rpb246IDEgfCAtMTtcclxuICAgIHZhbHVlOiBudW1iZXI7XHJcbiAgfT4oKTtcclxuXHJcbiAgLy8hIG1pbi9tYXggYW5kIG51bWJlciB0eXBlXHJcbiAgcHJpdmF0ZSBfbWluOiBudW1iZXIgPSAwO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG1pbigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbjtcclxuICB9XHJcbiAgc2V0IG1pbih2OiBhbnkpIHtcclxuICAgIHRoaXMuX21pbiA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbWF4OiBudW1iZXIgPSA5OTk7XHJcbiAgQElucHV0KClcclxuICBnZXQgbWF4KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xyXG4gIH1cclxuICBzZXQgbWF4KHY6IGFueSkge1xyXG4gICAgdGhpcy5fbWF4ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hbGxvd0Zsb2F0PzogYm9vbGVhbiA9IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIGdldCBhbGxvd0Zsb2F0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbG93RmxvYXQgPz8gaXNGbG9hdCh0aGlzLl9zdGVwU2l6ZSk7XHJcbiAgfVxyXG4gIHNldCBhbGxvd0Zsb2F0KHY6IGFueSkge1xyXG4gICAgdGhpcy5fYWxsb3dGbG9hdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICB9XHJcblxyXG4gIC8vISBpbmNlcmVtZW50L2RlY3JlbWVudCBidXR0b25zXHJcbiAgcHJpdmF0ZSBfYWxsb3dRdWlja0NoYW5nZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBnZXQgYWxsb3dRdWlja0NoYW5nZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hbGxvd1F1aWNrQ2hhbmdlO1xyXG4gIH1cclxuICBzZXQgYWxsb3dRdWlja0NoYW5nZSh2OiBhbnkpIHtcclxuICAgIHRoaXMuX2FsbG93UXVpY2tDaGFuZ2UgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdGVwU2l6ZTogbnVtYmVyID0gMTtcclxuICBASW5wdXQoKVxyXG4gIGdldCBzdGVwU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0ZXBTaXplO1xyXG4gIH1cclxuICBzZXQgc3RlcFNpemUodjogYW55KSB7XHJcbiAgICB0aGlzLl9zdGVwU2l6ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYpO1xyXG4gIH1cclxuXHJcbiAgb25RdWlja0NoYW5nZUJ1dHRvbkNsaWNrKGRpcmVjdGlvbjogMSB8IC0xLCBldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGxldCBudW0gPSB0aGlzLmlucHV0TW9kZWwubnVtYmVyVmFsdWU7XHJcbiAgICBpZiAoIW51bSkgbnVtID0gMDtcclxuXHJcbiAgICBpZiAoZGlyZWN0aW9uID09IDEgJiYgbnVtID49IHRoaXMubWF4KSByZXR1cm47XHJcbiAgICBpZiAoZGlyZWN0aW9uID09IC0xICYmIG51bSA8PSB0aGlzLm1pbikgcmV0dXJuO1xyXG5cclxuICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgY29uc3QgbmV3VmFsdWUgPSBudW0gKyB0aGlzLnN0ZXBTaXplICogZGlyZWN0aW9uO1xyXG4gICAgLy9yb3VuZCB0byA5IGRlY2ltYWwgcGxhY2VzIHRvIGF2b2lkIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgZXJyb3JzXHJcbiAgICAvLzkgaXMgYW4gYXJiaXRyYXJ5IG51bWJlciB0aGF0IGp1c3Qgd29ya3Mgd2VsbC4gwq9cXF8o44OEKV8vwq9cclxuICAgIGNvbnN0IG5ld1ZhbHVlUHJlY2lzZSA9IHJvdW5kVG9QcmVjaXNpb24obmV3VmFsdWUsIDkpO1xyXG5cclxuICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZVByZWNpc2UpO1xyXG4gICAgdGhpcy5xdWlja0NoYW5nZUV2ZW50Lm5leHQoeyBkaXJlY3Rpb24sIHZhbHVlOiBuZXdWYWx1ZVByZWNpc2UgfSk7XHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcblxyXG4gICAgdGhpcy5fY2hlY2tCdXR0b25BdmFpbGFiaWxpdHkoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY2hlY2tCdXR0b25BdmFpbGFiaWxpdHkoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2FuRGVjcmVtZW50KCkgfHwgIXRoaXMuY2FuSW5jcmVtZW50KCkpIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIGNhbkluY3JlbWVudCgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG51bSA9IHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZTtcclxuICAgIHJldHVybiAhaXNEZWZpbmVkKG51bSkgfHwgbnVtIDwgdGhpcy5tYXg7XHJcbiAgfVxyXG4gIGNhbkRlY3JlbWVudCgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG51bSA9IHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZTtcclxuICAgIHJldHVybiAhaXNEZWZpbmVkKG51bSkgfHwgbnVtID4gdGhpcy5taW47XHJcbiAgfVxyXG5cclxuICAvLyEgZXZlbnQgaGFuZGxlcnNcclxuICBvbklucHV0KG5ld1ZhbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgdmFsdWVIYXNDaGFuZ2VkID0gdGhpcy5pbnB1dE1vZGVsLndyaXRlVmFsdWUobmV3VmFsKTtcclxuICAgIGlmICghdmFsdWVIYXNDaGFuZ2VkKSByZXR1cm47XHJcbiAgICB0aGlzLl9lbWl0SW5wdXQoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9lbWl0SW5wdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0RXZlbnQuZW1pdCh0aGlzLmlucHV0TW9kZWwubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgLy9mb2N1cywgYmx1ciwgY2hhbmdlXHJcbiAgb25Gb2N1c01hc3RlcihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkZvY3VzKGV2ZW50KTtcclxuICB9XHJcbiAgb25CbHVyTWFzdGVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQmx1cihldmVudCk7XHJcbiAgfVxyXG4gIC8vY2hhbmdlXHJcbiAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZTtcclxuICAgIHRoaXMuX29uQ2hhbmdlUmVnaXN0ZXJlZD8uKHYpO1xyXG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHYpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvL3NtYXJ0IGZvY3VzXHJcbiAgb25Nb3VzZXVwKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi50eXBlID09PSAnUmFuZ2UnKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29weVxyXG4gIG9uQ29weShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy52YWx1ZSAmJlxyXG4gICAgICAvL2RvZXMgdGhlIHNlbGVjdGlvbiBjb3ZlciB0aGUgZW50aXJlIGlucHV0XHJcbiAgICAgICgodGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09IDAgJiYgdGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9PSB0aGlzLnRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB8fFxyXG4gICAgICAgIC8vb3IgaXMgemVyby13aWRlXHJcbiAgICAgICAgdGhpcy50ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09IHRoaXMudGV4dElucHV0RWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQpXHJcbiAgICApIHtcclxuICAgICAgZXZlbnQuY2xpcGJvYXJkRGF0YT8uc2V0RGF0YSgndGV4dC9wbGFpbicsIFN0cmluZyh0aGlzLnZhbHVlKSk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyEgaGVscGVyc1xyXG4gIHByb3RlY3RlZCBfc2V0SW5wdXRBdHRyaWJ1dGVzKCkge1xyXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gICAgICB0eXBlOiAndGV4dCcsXHJcbiAgICAgIGF1dG9jb3JyZWN0OiAnb2ZmJyxcclxuICAgICAgYXV0b2NhcGl0YWxpemU6ICdvZmYnLFxyXG4gICAgICBhdXRvY29tcGxldGU6ICdvZmYnLFxyXG4gICAgICB0YWJpbmRleDogU3RyaW5nKHRoaXMudGFiSW5kZXgpLFxyXG4gICAgICAuLi50aGlzLmlucHV0QXR0cnMsXHJcbiAgICB9O1xyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpKSB7XHJcbiAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShrZXksIFN0cmluZyhhdHRyaWJ1dGVzW2tleV0pKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFyZC1udW1iZXItaW5wdXRcIlxyXG4gICAgW25nQ2xhc3NdPVwibmdDbGFzc2VzXCJcclxuICAgIFtjbGFzcy5hcmQtaGFzLXZhbHVlXT1cInZhbHVlXCJcclxuICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxyXG4gICAgKG1vdXNldXApPVwib25Nb3VzZXVwKCRldmVudClcIlxyXG4+XHJcbiAgICA8YXJkLWJ1dHRvbiAqbmdJZj1cImFsbG93UXVpY2tDaGFuZ2VcIlxyXG4gICAgICAgIGNsYXNzPVwiYXJkLXF1aWNrLWNoYW5nZS1idXR0b24gZGVjcmVtZW50XCJcclxuICAgICAgICBbdmFyaWFudF09XCJidXR0b25WYXJpYW50XCJcclxuICAgICAgICBbYXBwZWFyYW5jZV09XCJidXR0b25BcHBlYXJhbmNlXCJcclxuICAgICAgICBjb2xvcj1cIm5vbmVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuRGVjcmVtZW50KClcIlxyXG4gICAgICAgIFt0YWJJbmRleF09XCIhY2FuRGVjcmVtZW50KCkgPyAtMSA6IHRhYkluZGV4XCJcclxuICAgICAgICAoY2xpY2spPVwib25RdWlja0NoYW5nZUJ1dHRvbkNsaWNrKC0xLCAkZXZlbnQpXCJcclxuICAgICAgICAoYXJkSG9sZCk9XCJvblF1aWNrQ2hhbmdlQnV0dG9uQ2xpY2soLTEpXCJcclxuICAgICAgICBhcmRIb2xkU3BhY2VLZXlcclxuICAgID4tPC9hcmQtYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1pbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwbGFjZWhvbGRlclRlbXBsYXRlIHx8IGRlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPGlucHV0ICN0ZXh0SW5wdXRcclxuICAgICAgICAgICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkXCJcclxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dCh0ZXh0SW5wdXQudmFsdWUpXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXNNYXN0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1ck1hc3RlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAobW91c2V1cCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAoY29weSk9XCJvbkNvcHkoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXJkLWJ1dHRvbiAqbmdJZj1cImFsbG93UXVpY2tDaGFuZ2VcIlxyXG4gICAgICAgIGNsYXNzPVwiYXJkLXF1aWNrLWNoYW5nZS1idXR0b24gaW5jcmVtZW50XCJcclxuICAgICAgICBbdmFyaWFudF09XCJidXR0b25WYXJpYW50XCJcclxuICAgICAgICBbYXBwZWFyYW5jZV09XCJidXR0b25BcHBlYXJhbmNlXCJcclxuICAgICAgICBjb2xvcj1cIm5vbmVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuSW5jcmVtZW50KClcIlxyXG4gICAgICAgIFt0YWJJbmRleF09XCIhY2FuSW5jcmVtZW50KCkgPyAtMSA6IHRhYkluZGV4XCJcclxuICAgICAgICAoY2xpY2spPVwib25RdWlja0NoYW5nZUJ1dHRvbkNsaWNrKDEsICRldmVudClcIlxyXG4gICAgICAgIChhcmRIb2xkKT1cIm9uUXVpY2tDaGFuZ2VCdXR0b25DbGljaygxKVwiXHJcbiAgICAgICAgYXJkSG9sZFNwYWNlS2V5XHJcbiAgICA+KzwvYXJkLWJ1dHRvbj5cclxuPC9kaXY+Il19
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7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LFVBQVU7U0FDbkIsQ0FBQztRQUVGLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDOzhHQXhOVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixpMERBUjFCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztnQkFDekQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDJFQTBCMkMsMENBQTBDLDZNQ2pFeEYsKzhEQW1FQTs7MkZEMUJhLDBCQUEwQjtrQkFkdEMsU0FBUzsrQkFDRSxrQkFBa0IsaUJBR2IsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBdUVHLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgZWZmZWN0LFxuICBmb3J3YXJkUmVmLFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCB7IHJvdW5kVG9QcmVjaXNpb24gfSBmcm9tICdtb3JlLXJvdW5kaW5nJztcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IF9OZ01vZGVsQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25BcHBlYXJhbmNlLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vLi4vYnV0dG9ucy9nZW5lcmFsLWJ1dHRvbi50eXBlcyc7XG5pbXBvcnQgeyBPbmVBeGlzQWxpZ25tZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvYWxpZ25tZW50LnR5cGVzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuaW1wb3J0IHsgTnVtYmVySW5wdXRNb2RlbCwgTnVtYmVySW5wdXRNb2RlbEhvc3QgfSBmcm9tICcuLi9pbnB1dC11dGlscyc7XG5pbXBvcnQgeyBBcmROdW1iZXJJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL251bWJlci1pbnB1dC5kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLW51bWJlci1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9udW1iZXItaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtTnVtYmVySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtTnVtYmVySW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBfTmdNb2RlbENvbXBvbmVudEJhc2VcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTnVtYmVySW5wdXRNb2RlbEhvc3QsIEFmdGVyVmlld0luaXRcbntcbiAgLy8hIGlucHV0IHZpZXdcbiAgcmVhZG9ubHkgaW5wdXRFbCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PigndGV4dElucHV0Jyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0TW9kZWwgPSBuZXcgTnVtYmVySW5wdXRNb2RlbCh0aGlzKTtcbiAgcHJpdmF0ZSBfd2FzVmlld0luaXQgPSBmYWxzZTtcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3NldElucHV0QXR0cmlidXRlcygpO1xuICAgIHRoaXMuX3dhc1ZpZXdJbml0ID0gdHJ1ZTtcbiAgICAvL3NldCB0aGUgdmFsdWVcbiAgICBpZiAodGhpcy5fdmFsdWVCZWZvcmVJbml0KSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5fdmFsdWVCZWZvcmVJbml0KTtcbiAgICAgIGRlbGV0ZSB0aGlzLl92YWx1ZUJlZm9yZUluaXQ7XG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgaW5wdXRJZCA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KCk7XG5cbiAgLy8hIHBsYWNlaG9sZGVyXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8TnVsbGFibGU8c3RyaW5nPj4oKTtcblxuICByZWFkb25seSBwbGFjZWhvbGRlclRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZE51bWJlcklucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSk7XG5cbiAgcmVhZG9ubHkgc2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gISF0aGlzLnBsYWNlaG9sZGVyKCkgJiYgIXRoaXMuaW5wdXRNb2RlbC5zdHJpbmdWYWx1ZSgpKTtcblxuICAvLyEgYXBwZWFyYW5jZVxuICByZWFkb25seSBhcHBlYXJhbmNlID0gaW5wdXQ8Rm9ybUVsZW1lbnRBcHBlYXJhbmNlPihGb3JtRWxlbWVudEFwcGVhcmFuY2UuT3V0bGluZWQpO1xuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8Rm9ybUVsZW1lbnRWYXJpYW50PihGb3JtRWxlbWVudFZhcmlhbnQuUm91bmRlZCk7XG4gIHJlYWRvbmx5IGFsaWduVGV4dCA9IGlucHV0PE9uZUF4aXNBbGlnbm1lbnQ+KE9uZUF4aXNBbGlnbm1lbnQuTWlkZGxlKTtcblxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2UoKX1gLFxuICAgICAgYGFyZC12YXJpYW50LSR7dGhpcy52YXJpYW50KCl9YCxcbiAgICAgIGBhcmQtdGV4dC1hbGlnbi0ke3RoaXMuYWxpZ25UZXh0KCl9YCxcbiAgICAgIGBhcmQtcXVpY2stY2hhbmdlLSR7dGhpcy5ub0J1dHRvbnN9YCxcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxuICAgIF0uam9pbignICcpO1xuICB9KTtcblxuICByZWFkb25seSBidXR0b25WYXJpYW50ID0gY29tcHV0ZWQoKCk6IEJ1dHRvblZhcmlhbnQgPT4ge1xuICAgIGlmICh0aGlzLnZhcmlhbnQoKSA9PT0gRm9ybUVsZW1lbnRWYXJpYW50LlJvdW5kZWQpIHJldHVybiBCdXR0b25WYXJpYW50LlJvdW5kZWQ7XG4gICAgaWYgKHRoaXMudmFyaWFudCgpID09PSBGb3JtRWxlbWVudFZhcmlhbnQuUGlsbCkgcmV0dXJuIEJ1dHRvblZhcmlhbnQuUGlsbDtcbiAgICBpZiAodGhpcy52YXJpYW50KCkgPT09IEZvcm1FbGVtZW50VmFyaWFudC5TaGFycCkgcmV0dXJuIEJ1dHRvblZhcmlhbnQuU2hhcnA7XG4gICAgcmV0dXJuIEJ1dHRvblZhcmlhbnQuUm91bmRlZDtcbiAgfSk7XG4gIHJlYWRvbmx5IGJ1dHRvbkFwcGVhcmFuY2UgPSBjb21wdXRlZDxCdXR0b25BcHBlYXJhbmNlPigoKSA9PiB7XG4gICAgaWYgKHRoaXMuYXBwZWFyYW5jZSgpID09PSBGb3JtRWxlbWVudEFwcGVhcmFuY2UuT3V0bGluZWQgJiYgdGhpcy52YXJpYW50KCkgIT09IEZvcm1FbGVtZW50VmFyaWFudC5QaWxsKSB7XG4gICAgICByZXR1cm4gQnV0dG9uQXBwZWFyYW5jZS5PdXRsaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIEJ1dHRvbkFwcGVhcmFuY2UuVHJhbnNwYXJlbnQ7XG4gIH0pO1xuXG4gIC8vISBvdGhlciBpbnB1dHNcbiAgcmVhZG9ubHkgaW5wdXRBdHRycyA9IGlucHV0PFJlY29yZDxzdHJpbmcsIGFueT4+KHt9KTtcblxuICAvLyEgY29udHJvbCB2YWx1ZSBhY2Nlc3NvcidzIHdyaXRlIHZhbHVlIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodjogYW55KSB7XG4gICAgdGhpcy5pbnB1dE1vZGVsLndyaXRlVmFsdWUodik7XG4gIH1cblxuICAvLyEgdmFsdWUgdHdvLXdheSBiaW5kaW5nXG4gIHByb3RlY3RlZCBfdmFsdWVCZWZvcmVJbml0Pzogc3RyaW5nIHwgbnVsbCA9ICcwJztcbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHY6IHN0cmluZyB8IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB2ID0gdi50b1N0cmluZygpO1xuICAgIGlmICghdGhpcy5fd2FzVmlld0luaXQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCA9IHY7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMud3JpdGVWYWx1ZSh2KTtcbiAgfVxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxudW1iZXIgfCBudWxsPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdiA9IHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZSgpO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xuICAgICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XG4gICAgfSk7XG4gIH1cblxuICAvLyEgZXZlbnQgZW1pdHRlcnNcbiAgcmVhZG9ubHkgaW5wdXRFdmVudCA9IG91dHB1dDxudW1iZXIgfCBudWxsPih7IGFsaWFzOiAnaW5wdXQnIH0pO1xuICByZWFkb25seSBjaGFuZ2VFdmVudCA9IG91dHB1dDxudW1iZXIgfCBudWxsPih7IGFsaWFzOiAnY2hhbmdlJyB9KTtcbiAgcmVhZG9ubHkgY2xlYXJFdmVudCA9IG91dHB1dDxNb3VzZUV2ZW50Pih7IGFsaWFzOiAnY2xlYXInIH0pO1xuICByZWFkb25seSBxdWlja0NoYW5nZUV2ZW50ID0gb3V0cHV0PHtcbiAgICByZWFkb25seSBkaXJlY3Rpb246IDEgfCAtMTtcbiAgICByZWFkb25seSB2YWx1ZTogbnVtYmVyO1xuICB9Pih7IGFsaWFzOiAncXVpY2tDaGFuZ2UnIH0pO1xuXG4gIC8vISBtaW4vbWF4IGFuZCBudW1iZXIgdHlwZVxuICByZWFkb25seSBtaW4gPSBpbnB1dDxudW1iZXIsIGFueT4oMCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgMCkgfSk7XG4gIHJlYWRvbmx5IG1heCA9IGlucHV0PG51bWJlciwgYW55PihJbmZpbml0eSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgSW5maW5pdHkpIH0pO1xuXG4gIHJlYWRvbmx5IGFsbG93RmxvYXQgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgLy8hIGluY2VyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnNcbiAgcmVhZG9ubHkgbm9CdXR0b25zID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IHN0ZXBTaXplID0gaW5wdXQ8bnVtYmVyLCBhbnk+KDEsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4ge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAxKTtcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gMCkgdGhyb3cgbmV3IEVycm9yKGBBUkQtRlQwMDcxYTogQ2Fubm90IHNldCA8YXJkLW51bWJlci1pbnB1dD4ncyBbc3RlcFNpemVdIHRvIDAuYCk7XG4gICAgICBpZiAobmV3VmFsdWUgPCAwKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDAwNzFiOiBDYW5ub3Qgc2V0IDxhcmQtbnVtYmVyLWlucHV0PidzIFtzdGVwU2l6ZV0gdG8gYSBuZWdhdGl2ZSB2YWx1ZSwgZ290IFwiJHtuZXdWYWx1ZX1cIi5gKTtcbiAgICAgIHJldHVybiBuZXdWYWx1ZTtcbiAgICB9LFxuICB9KTtcblxuICBvblF1aWNrQ2hhbmdlQnV0dG9uQ2xpY2soZGlyZWN0aW9uOiAxIHwgLTEsIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGxldCBudW0gPSB0aGlzLmlucHV0TW9kZWwubnVtYmVyVmFsdWUoKTtcbiAgICBpZiAoIW51bSkgbnVtID0gMDtcblxuICAgIGlmIChkaXJlY3Rpb24gPT09IDEgJiYgbnVtID49IHRoaXMubWF4KCkpIHJldHVybjtcbiAgICBpZiAoZGlyZWN0aW9uID09PSAtMSAmJiBudW0gPD0gdGhpcy5taW4oKSkgcmV0dXJuO1xuXG4gICAgaWYgKGV2ZW50KSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IG5ld1ZhbHVlID0gbnVtICsgdGhpcy5zdGVwU2l6ZSgpICogZGlyZWN0aW9uO1xuICAgIC8vcm91bmQgdG8gOSBkZWNpbWFsIHBsYWNlcyB0byBhdm9pZCBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIGVycm9yc1xuICAgIC8vOSBpcyBhbiBhcmJpdHJhcnkgbnVtYmVyIHRoYXQganVzdCB3b3JrcyB3ZWxsLiDCr1xcXyjjg4QpXy/Cr1xuICAgIGNvbnN0IG5ld1ZhbHVlUHJlY2lzZSA9IHJvdW5kVG9QcmVjaXNpb24obmV3VmFsdWUsIDkpO1xuXG4gICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlUHJlY2lzZSk7XG4gICAgdGhpcy5xdWlja0NoYW5nZUV2ZW50LmVtaXQoeyBkaXJlY3Rpb24sIHZhbHVlOiBuZXdWYWx1ZVByZWNpc2UgfSk7XG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xuXG4gICAgdGhpcy5fZm9jdXNJbnB1dElmQ2FudFF1aWNrQ2hhbmdlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfZm9jdXNJbnB1dElmQ2FudFF1aWNrQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jYW5EZWNyZW1lbnQoKSB8fCAhdGhpcy5jYW5JbmNyZW1lbnQoKSkgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgY2FuSW5jcmVtZW50KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG51bSA9IHRoaXMuaW5wdXRNb2RlbC5udW1iZXJWYWx1ZSgpO1xuICAgIHJldHVybiAhaXNEZWZpbmVkKG51bSkgfHwgbnVtIDwgdGhpcy5tYXgoKTtcbiAgfVxuICBjYW5EZWNyZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbnVtID0gdGhpcy5pbnB1dE1vZGVsLm51bWJlclZhbHVlKCk7XG4gICAgcmV0dXJuICFpc0RlZmluZWQobnVtKSB8fCBudW0gPiB0aGlzLm1pbigpO1xuICB9XG5cbiAgLy8hIGV2ZW50IGhhbmRsZXJzXG4gIG9uSW5wdXQobmV3VmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZUhhc0NoYW5nZWQgPSB0aGlzLmlucHV0TW9kZWwud3JpdGVWYWx1ZShuZXdWYWwpO1xuICAgIGlmICghdmFsdWVIYXNDaGFuZ2VkKSByZXR1cm47XG4gICAgdGhpcy5fZW1pdElucHV0KCk7XG4gIH1cbiAgcHJvdGVjdGVkIF9lbWl0SW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEV2ZW50LmVtaXQodGhpcy5pbnB1dE1vZGVsLm51bWJlclZhbHVlKCkpO1xuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIC8vZm9jdXMsIGJsdXIsIGNoYW5nZVxuICBvbkZvY3VzTWFzdGVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vbkZvY3VzKGV2ZW50KTtcbiAgfVxuICBvbkJsdXJNYXN0ZXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmx1cihldmVudCk7XG4gIH1cbiAgLy9jaGFuZ2VcbiAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xuICB9XG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy5pbnB1dE1vZGVsLm51bWJlclZhbHVlKCk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHYpO1xuICB9XG5cbiAgLy9zbWFydCBmb2N1c1xuICBvbk1vdXNldXAoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnR5cGUgPT09ICdSYW5nZScpIHJldHVybjtcblxuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIC8vIGNvcHlcbiAgb25Db3B5KGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMudmFsdWUgJiZcbiAgICAgIC8vZG9lcyB0aGUgc2VsZWN0aW9uIGNvdmVyIHRoZSBlbnRpcmUgaW5wdXRcbiAgICAgICgodGhpcy5pbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDAgJiZcbiAgICAgICAgdGhpcy5pbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID09PSB0aGlzLmlucHV0RWwoKT8ubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGgpIHx8XG4gICAgICAgIC8vb3IgaXMgemVyby13aWRlXG4gICAgICAgIHRoaXMuaW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSB0aGlzLmlucHV0RWwoKT8ubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQpXG4gICAgKSB7XG4gICAgICBldmVudC5jbGlwYm9hcmREYXRhPy5zZXREYXRhKCd0ZXh0L3BsYWluJywgU3RyaW5nKHRoaXMudmFsdWUpKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgLy8hIGhlbHBlcnNcbiAgcHJvdGVjdGVkIF9zZXRJbnB1dEF0dHJpYnV0ZXMoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0RWwoKSEubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgYXV0b2NvcnJlY3Q6ICdvZmYnLFxuICAgICAgYXV0b2NhcGl0YWxpemU6ICdvZmYnLFxuICAgICAgYXV0b2NvbXBsZXRlOiAnb2ZmJyxcbiAgICAgIHRhYmluZGV4OiBTdHJpbmcodGhpcy50YWJJbmRleCksXG4gICAgICAuLi50aGlzLmlucHV0QXR0cnMsXG4gICAgfTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpKSB7XG4gICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoa2V5LCBTdHJpbmcoYXR0cmlidXRlc1trZXldKSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXJkLW51bWJlci1pbnB1dFwiXG4gIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcbiAgW2NsYXNzLmFyZC1oYXMtdmFsdWVdPVwidmFsdWVcIlxuICAobW91c2Vkb3duKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgKG1vdXNldXApPVwib25Nb3VzZXVwKClcIlxuPlxuICBAaWYgKCFub0J1dHRvbnMoKSkge1xuICAgIDxhcmQtYnV0dG9uXG4gICAgICBjbGFzcz1cImFyZC1xdWljay1jaGFuZ2UtYnV0dG9uIGRlY3JlbWVudFwiXG4gICAgICBbdmFyaWFudF09XCJidXR0b25WYXJpYW50KClcIlxuICAgICAgW2FwcGVhcmFuY2VdPVwiYnV0dG9uQXBwZWFyYW5jZSgpXCJcbiAgICAgIGNvbG9yPVwibm9uZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNhbkRlY3JlbWVudCgpXCJcbiAgICAgIFt0YWJJbmRleF09XCIhY2FuRGVjcmVtZW50KCkgPyAtMSA6IHRhYkluZGV4KClcIlxuICAgICAgKGNsaWNrKT1cIm9uUXVpY2tDaGFuZ2VCdXR0b25DbGljaygtMSwgJGV2ZW50KVwiXG4gICAgICAoYXJkSG9sZCk9XCJvblF1aWNrQ2hhbmdlQnV0dG9uQ2xpY2soLTEpXCJcbiAgICAgIGFyZEhvbGRTcGFjZUtleVxuICAgID5cbiAgICAgIC1cbiAgICA8L2FyZC1idXR0b24+XG4gIH1cbiAgPGRpdiBjbGFzcz1cImFyZC1pbnB1dC1jb250YWluZXJcIj5cbiAgICBAaWYgKHNob3VsZERpc3BsYXlQbGFjZWhvbGRlcigpKSB7XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlXG4gICAgICAgIGxldC1wbGNobGRyXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlcigpIH19PC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuXG4gICAgPGlucHV0XG4gICAgICAjdGV4dElucHV0XG4gICAgICAjZm9jdXNhYmxlRWxlbWVudFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZCgpXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQodGV4dElucHV0LnZhbHVlKVwiXG4gICAgICAoZm9jdXMpPVwib25Gb2N1c01hc3RlcigkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cIm9uQmx1ck1hc3RlcigkZXZlbnQpXCJcbiAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAobW91c2Vkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAobW91c2V1cCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxuICAgIC8+XG4gIDwvZGl2PlxuICBAaWYgKCFub0J1dHRvbnMoKSkge1xuICAgIDxhcmQtYnV0dG9uXG4gICAgICBjbGFzcz1cImFyZC1xdWljay1jaGFuZ2UtYnV0dG9uIGluY3JlbWVudFwiXG4gICAgICBbdmFyaWFudF09XCJidXR0b25WYXJpYW50KClcIlxuICAgICAgW2FwcGVhcmFuY2VdPVwiYnV0dG9uQXBwZWFyYW5jZSgpXCJcbiAgICAgIGNvbG9yPVwibm9uZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNhbkluY3JlbWVudCgpXCJcbiAgICAgIFt0YWJJbmRleF09XCIhY2FuSW5jcmVtZW50KCkgPyAtMSA6IHRhYkluZGV4KClcIlxuICAgICAgKGNsaWNrKT1cIm9uUXVpY2tDaGFuZ2VCdXR0b25DbGljaygxLCAkZXZlbnQpXCJcbiAgICAgIChhcmRIb2xkKT1cIm9uUXVpY2tDaGFuZ2VCdXR0b25DbGljaygxKVwiXG4gICAgICBhcmRIb2xkU3BhY2VLZXlcbiAgICA+XG4gICAgICArXG4gICAgPC9hcmQtYnV0dG9uPlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -4,11 +4,11 @@ export class ArdNumberInputPlaceholderTemplateDirective {
4
4
  constructor(template) {
5
5
  this.template = template;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdNumberInputPlaceholderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: ArdNumberInputPlaceholderTemplateDirective, selector: "ard-number-input > ng-template[ard-placeholder-tmp]", ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdNumberInputPlaceholderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: ArdNumberInputPlaceholderTemplateDirective, selector: "ard-number-input > ng-template[ard-placeholder-tmp]", ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdNumberInputPlaceholderTemplateDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdNumberInputPlaceholderTemplateDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{ selector: 'ard-number-input > ng-template[ard-placeholder-tmp]' }]
13
13
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLDBDQUEwQztJQUNyRCxZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtJQUFHLENBQUM7OEdBRDVDLDBDQUEwQztrR0FBMUMsMENBQTBDOzsyRkFBMUMsMENBQTBDO2tCQUR0RCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFEQUFxRCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLW51bWJlci1pbnB1dCA+IG5nLXRlbXBsYXRlW2FyZC1wbGFjZWhvbGRlci10bXBdJyB9KVxyXG5leHBvcnQgY2xhc3MgQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD4pIHt9XHJcbn1cclxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLDBDQUEwQztJQUNyRCxZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtJQUFHLENBQUM7OEdBRDVDLDBDQUEwQztrR0FBMUMsMENBQTBDOzsyRkFBMUMsMENBQTBDO2tCQUR0RCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFEQUFxRCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtbnVtYmVyLWlucHV0ID4gbmctdGVtcGxhdGVbYXJkLXBsYWNlaG9sZGVyLXRtcF0nIH0pXG5leHBvcnQgY2xhc3MgQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmRlZmluZWQ+KSB7fVxufVxuIl19
@@ -6,11 +6,11 @@ import { ArdiumNumberInputComponent } from './number-input.component';
6
6
  import { ArdNumberInputPlaceholderTemplateDirective } from './number-input.directives';
7
7
  import * as i0 from "@angular/core";
8
8
  export class ArdiumNumberInputModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumNumberInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: ArdiumNumberInputModule, declarations: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective], imports: [CommonModule, ArdiumHoldEventModule, ArdiumButtonModule], exports: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumNumberInputModule, imports: [CommonModule, ArdiumHoldEventModule, ArdiumButtonModule] }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumNumberInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: ArdiumNumberInputModule, declarations: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective], imports: [CommonModule, ArdiumHoldEventModule, ArdiumButtonModule], exports: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumNumberInputModule, imports: [CommonModule, ArdiumHoldEventModule, ArdiumButtonModule] }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumNumberInputModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumNumberInputModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  declarations: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective],
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
18
18
  exports: [ArdiumNumberInputComponent, ArdNumberInputPlaceholderTemplateDirective],
19
19
  }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU92RixNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7K0dBQXZCLHVCQUF1QixpQkFKbkIsMEJBQTBCLEVBQUUsMENBQTBDLGFBQzNFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsYUFDdkQsMEJBQTBCLEVBQUUsMENBQTBDOytHQUVyRSx1QkFBdUIsWUFIeEIsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQjs7MkZBR3RELHVCQUF1QjtrQkFMbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSwwQ0FBMEMsQ0FBQztvQkFDdEYsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDO29CQUNsRSxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSwwQ0FBMEMsQ0FBQztpQkFDbEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcmRpdW1Ib2xkRXZlbnRNb2R1bGUgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IEFyZGl1bUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2J1dHRvbnMvYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBcmRpdW1OdW1iZXJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFyZE51bWJlcklucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vbnVtYmVyLWlucHV0LmRpcmVjdGl2ZXMnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1OdW1iZXJJbnB1dENvbXBvbmVudCwgQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBcmRpdW1Ib2xkRXZlbnRNb2R1bGUsIEFyZGl1bUJ1dHRvbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW0FyZGl1bU51bWJlcklucHV0Q29tcG9uZW50LCBBcmROdW1iZXJJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtTnVtYmVySW5wdXRNb2R1bGUge31cclxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU92RixNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7K0dBQXZCLHVCQUF1QixpQkFKbkIsMEJBQTBCLEVBQUUsMENBQTBDLGFBQzNFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsYUFDdkQsMEJBQTBCLEVBQUUsMENBQTBDOytHQUVyRSx1QkFBdUIsWUFIeEIsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQjs7MkZBR3RELHVCQUF1QjtrQkFMbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSwwQ0FBMEMsQ0FBQztvQkFDdEYsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDO29CQUNsRSxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSwwQ0FBMEMsQ0FBQztpQkFDbEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFyZGl1bUhvbGRFdmVudE1vZHVsZSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcbmltcG9ydCB7IEFyZGl1bUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2J1dHRvbnMvYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgQXJkaXVtTnVtYmVySW5wdXRDb21wb25lbnQgfSBmcm9tICcuL251bWJlci1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9udW1iZXItaW5wdXQuZGlyZWN0aXZlcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0FyZGl1bU51bWJlcklucHV0Q29tcG9uZW50LCBBcmROdW1iZXJJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBcmRpdW1Ib2xkRXZlbnRNb2R1bGUsIEFyZGl1bUJ1dHRvbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtBcmRpdW1OdW1iZXJJbnB1dENvbXBvbmVudCwgQXJkTnVtYmVySW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtTnVtYmVySW5wdXRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './password-input.module';
2
+ export * from './password-input.component';
3
+ export * from './password-input.directives';
4
+ export * from './password-input.types';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9wYXNzd29yZC1pbnB1dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZC1pbnB1dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZC1pbnB1dC5kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vcGFzc3dvcmQtaW5wdXQudHlwZXMnO1xuIl19