@ardium-ui/ui 4.4.2 → 5.0.0-alpha.0

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 (350) hide show
  1. package/fesm2022/ardium-ui-ui.mjs +2482 -2400
  2. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  3. package/lib/_internal/boolean-component.d.ts +1 -1
  4. package/lib/_internal/disablable-component.d.ts +1 -1
  5. package/lib/_internal/focusable-component.d.ts +1 -1
  6. package/lib/_internal/form-field-component.d.ts +1 -1
  7. package/lib/_internal/ngmodel-component.d.ts +1 -1
  8. package/lib/_internal/selectable-list-component.d.ts +1 -1
  9. package/lib/_internal/utils/date.utils.d.ts +3 -0
  10. package/lib/buttons/_button-base.d.ts +1 -1
  11. package/lib/calendar/calendar.component.d.ts +8 -2
  12. package/lib/file-inputs/file-input-base.d.ts +1 -1
  13. package/lib/form-field/form-field-base.d.ts +1 -1
  14. package/lib/inputs/_simple-input-base.d.ts +3 -3
  15. package/lib/inputs/autocomplete-input/autocomplete-input.component.d.ts +66 -0
  16. package/lib/inputs/autocomplete-input/autocomplete-input.defaults.d.ts +15 -0
  17. package/lib/inputs/autocomplete-input/autocomplete-input.directives.d.ts +33 -0
  18. package/lib/inputs/autocomplete-input/autocomplete-input.module.d.ts +13 -0
  19. package/lib/inputs/autocomplete-input/index.d.ts +3 -0
  20. package/lib/inputs/date-input/date-input.component.d.ts +5 -2
  21. package/lib/inputs/input/index.d.ts +2 -1
  22. package/lib/inputs/input/input.component.d.ts +3 -56
  23. package/lib/inputs/input/input.defaults.d.ts +1 -10
  24. package/lib/inputs/input/input.directives.d.ts +0 -13
  25. package/lib/inputs/input/input.module.d.ts +3 -5
  26. package/lib/inputs/input-utils.d.ts +8 -8
  27. package/lib/option/option.component.d.ts +1 -1
  28. package/lib/slider/abstract-slider.d.ts +1 -1
  29. package/package.json +1 -3
  30. package/prebuilt-themes/default/inputs/{simple-input.css → autocomplete-input.css} +40 -15
  31. package/prebuilt-themes/default/inputs/autocomplete-input.css.map +1 -0
  32. package/prebuilt-themes/default/inputs/input.css +0 -25
  33. package/prebuilt-themes/default/inputs/input.css.map +1 -1
  34. package/public-api.d.ts +1 -1
  35. package/themes/default/inputs/autocomplete-input.scss +46 -0
  36. package/themes/default/inputs/input.scss +0 -34
  37. package/esm2022/ardium-ui-ui.mjs +0 -5
  38. package/esm2022/lib/_internal/boolean-component.mjs +0 -95
  39. package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +0 -15
  40. package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +0 -18
  41. package/esm2022/lib/_internal/disablable-component.mjs +0 -51
  42. package/esm2022/lib/_internal/focusable-component.mjs +0 -85
  43. package/esm2022/lib/_internal/form-field-component.mjs +0 -33
  44. package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +0 -453
  45. package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +0 -370
  46. package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +0 -157
  47. package/esm2022/lib/_internal/models/pagination.model.mjs +0 -90
  48. package/esm2022/lib/_internal/models/queue.mjs +0 -59
  49. package/esm2022/lib/_internal/ngmodel-component.mjs +0 -101
  50. package/esm2022/lib/_internal/public-api.mjs +0 -2
  51. package/esm2022/lib/_internal/selectable-list-component.mjs +0 -271
  52. package/esm2022/lib/badge/badge.defaults.mjs +0 -20
  53. package/esm2022/lib/badge/badge.directive.mjs +0 -97
  54. package/esm2022/lib/badge/badge.module.mjs +0 -18
  55. package/esm2022/lib/badge/badge.types.mjs +0 -16
  56. package/esm2022/lib/badge/index.mjs +0 -5
  57. package/esm2022/lib/buttons/_button-base.defaults.mjs +0 -17
  58. package/esm2022/lib/buttons/_button-base.mjs +0 -26
  59. package/esm2022/lib/buttons/button/button.component.mjs +0 -38
  60. package/esm2022/lib/buttons/button/button.defaults.mjs +0 -17
  61. package/esm2022/lib/buttons/button/button.module.mjs +0 -18
  62. package/esm2022/lib/buttons/button/index.mjs +0 -4
  63. package/esm2022/lib/buttons/fab/fab.component.mjs +0 -33
  64. package/esm2022/lib/buttons/fab/fab.defaults.mjs +0 -17
  65. package/esm2022/lib/buttons/fab/fab.module.mjs +0 -18
  66. package/esm2022/lib/buttons/fab/index.mjs +0 -4
  67. package/esm2022/lib/buttons/general-button.types.mjs +0 -55
  68. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +0 -39
  69. package/esm2022/lib/buttons/icon-button/icon-button.defaults.mjs +0 -9
  70. package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +0 -18
  71. package/esm2022/lib/buttons/icon-button/index.mjs +0 -4
  72. package/esm2022/lib/calendar/calendar.component.mjs +0 -466
  73. package/esm2022/lib/calendar/calendar.defaults.mjs +0 -26
  74. package/esm2022/lib/calendar/calendar.directives.mjs +0 -107
  75. package/esm2022/lib/calendar/calendar.internal-directives.mjs +0 -22
  76. package/esm2022/lib/calendar/calendar.internal-types.mjs +0 -2
  77. package/esm2022/lib/calendar/calendar.module.mjs +0 -71
  78. package/esm2022/lib/calendar/calendar.types.mjs +0 -6
  79. package/esm2022/lib/calendar/index.mjs +0 -6
  80. package/esm2022/lib/calendar/views/days-view/days-view.component.mjs +0 -282
  81. package/esm2022/lib/calendar/views/days-view/days-view.helpers.mjs +0 -65
  82. package/esm2022/lib/calendar/views/months-view/months-view.component.mjs +0 -245
  83. package/esm2022/lib/calendar/views/months-view/months-view.helpers.mjs +0 -22
  84. package/esm2022/lib/calendar/views/years-view/years-view.component.mjs +0 -244
  85. package/esm2022/lib/calendar/views/years-view/years-view.helpers.mjs +0 -14
  86. package/esm2022/lib/card/card.children.mjs +0 -96
  87. package/esm2022/lib/card/card.component.mjs +0 -38
  88. package/esm2022/lib/card/card.defaults.mjs +0 -17
  89. package/esm2022/lib/card/card.module.mjs +0 -59
  90. package/esm2022/lib/card/card.types.mjs +0 -9
  91. package/esm2022/lib/card/index.mjs +0 -6
  92. package/esm2022/lib/checkbox/checkbox.component.mjs +0 -68
  93. package/esm2022/lib/checkbox/checkbox.defaults.mjs +0 -17
  94. package/esm2022/lib/checkbox/checkbox.directives.mjs +0 -14
  95. package/esm2022/lib/checkbox/checkbox.internal-directives.mjs +0 -15
  96. package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
  97. package/esm2022/lib/checkbox/checkbox.types.mjs +0 -6
  98. package/esm2022/lib/checkbox/index.mjs +0 -6
  99. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +0 -116
  100. package/esm2022/lib/checkbox-list/checkbox-list.defaults.mjs +0 -25
  101. package/esm2022/lib/checkbox-list/checkbox-list.directives.mjs +0 -14
  102. package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +0 -21
  103. package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +0 -7
  104. package/esm2022/lib/checkbox-list/index.mjs +0 -6
  105. package/esm2022/lib/chip/chip.component.mjs +0 -36
  106. package/esm2022/lib/chip/chip.defaults.mjs +0 -20
  107. package/esm2022/lib/chip/chip.module.mjs +0 -21
  108. package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +0 -53
  109. package/esm2022/lib/chip/deletable-chip/deletable-chip.defaults.mjs +0 -17
  110. package/esm2022/lib/chip/index.mjs +0 -8
  111. package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +0 -53
  112. package/esm2022/lib/chip/selectable-chip/selectable-chip.defaults.mjs +0 -18
  113. package/esm2022/lib/dialog/dialog.component.mjs +0 -109
  114. package/esm2022/lib/dialog/dialog.defaults.mjs +0 -26
  115. package/esm2022/lib/dialog/dialog.directives.mjs +0 -25
  116. package/esm2022/lib/dialog/dialog.module.mjs +0 -21
  117. package/esm2022/lib/dialog/dialog.types.mjs +0 -10
  118. package/esm2022/lib/dialog/index.mjs +0 -6
  119. package/esm2022/lib/divider/divider.component.mjs +0 -19
  120. package/esm2022/lib/divider/divider.defaults.mjs +0 -13
  121. package/esm2022/lib/divider/divider.module.mjs +0 -18
  122. package/esm2022/lib/divider/index.mjs +0 -4
  123. package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +0 -112
  124. package/esm2022/lib/dropdown-panel/dropdown-panel.defaults.mjs +0 -17
  125. package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +0 -18
  126. package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +0 -10
  127. package/esm2022/lib/dropdown-panel/index.mjs +0 -5
  128. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +0 -70
  129. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.defaults.mjs +0 -18
  130. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +0 -42
  131. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +0 -52
  132. package/esm2022/lib/file-inputs/file-drop-area/index.mjs +0 -5
  133. package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +0 -120
  134. package/esm2022/lib/file-inputs/file-input/file-input.defaults.mjs +0 -23
  135. package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +0 -86
  136. package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +0 -55
  137. package/esm2022/lib/file-inputs/file-input/index.mjs +0 -5
  138. package/esm2022/lib/file-inputs/file-input-base.defaults.mjs +0 -8
  139. package/esm2022/lib/file-inputs/file-input-base.mjs +0 -356
  140. package/esm2022/lib/file-inputs/file-input-types.mjs +0 -8
  141. package/esm2022/lib/form-field/error/error.component.mjs +0 -17
  142. package/esm2022/lib/form-field/error/error.directive.mjs +0 -17
  143. package/esm2022/lib/form-field/form-field-base.mjs +0 -53
  144. package/esm2022/lib/form-field/form-field-child.token.mjs +0 -3
  145. package/esm2022/lib/form-field/form-field-native-inputs.mjs +0 -80
  146. package/esm2022/lib/form-field/form-field.component.mjs +0 -12
  147. package/esm2022/lib/form-field/form-field.defaults.mjs +0 -17
  148. package/esm2022/lib/form-field/form-field.module.mjs +0 -49
  149. package/esm2022/lib/form-field/hint/hint.component.mjs +0 -17
  150. package/esm2022/lib/form-field/hint/hint.directive.mjs +0 -30
  151. package/esm2022/lib/form-field/horizontal-form-field.component.mjs +0 -12
  152. package/esm2022/lib/form-field/index.mjs +0 -10
  153. package/esm2022/lib/form-field/label/label.component.mjs +0 -27
  154. package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +0 -58
  155. package/esm2022/lib/form-field-frame/form-field-frame.defaults.mjs +0 -18
  156. package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +0 -25
  157. package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +0 -19
  158. package/esm2022/lib/form-field-frame/index.mjs +0 -5
  159. package/esm2022/lib/icon/icon.component.mjs +0 -52
  160. package/esm2022/lib/icon/icon.defaults.mjs +0 -17
  161. package/esm2022/lib/icon/icon.module.mjs +0 -19
  162. package/esm2022/lib/icon/icon.pipe.mjs +0 -18
  163. package/esm2022/lib/icon/index.mjs +0 -5
  164. package/esm2022/lib/inputs/_simple-input-base.mjs +0 -153
  165. package/esm2022/lib/inputs/date-input/date-input.component.mjs +0 -375
  166. package/esm2022/lib/inputs/date-input/date-input.defaults.mjs +0 -38
  167. package/esm2022/lib/inputs/date-input/date-input.directive.mjs +0 -163
  168. package/esm2022/lib/inputs/date-input/date-input.module.mjs +0 -108
  169. package/esm2022/lib/inputs/date-input/date-input.serializers.mjs +0 -49
  170. package/esm2022/lib/inputs/date-input/date-input.types.mjs +0 -5
  171. package/esm2022/lib/inputs/date-input/index.mjs +0 -6
  172. package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +0 -265
  173. package/esm2022/lib/inputs/digit-input/digit-input.defaults.mjs +0 -24
  174. package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +0 -267
  175. package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +0 -19
  176. package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +0 -15
  177. package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +0 -8
  178. package/esm2022/lib/inputs/digit-input/index.mjs +0 -5
  179. package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +0 -180
  180. package/esm2022/lib/inputs/hex-input/hex-input.defaults.mjs +0 -26
  181. package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +0 -36
  182. package/esm2022/lib/inputs/hex-input/hex-input.model.mjs +0 -97
  183. package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +0 -37
  184. package/esm2022/lib/inputs/hex-input/index.mjs +0 -5
  185. package/esm2022/lib/inputs/input/index.mjs +0 -4
  186. package/esm2022/lib/inputs/input/input.component.mjs +0 -278
  187. package/esm2022/lib/inputs/input/input.defaults.mjs +0 -21
  188. package/esm2022/lib/inputs/input/input.directives.mjs +0 -58
  189. package/esm2022/lib/inputs/input/input.module.mjs +0 -61
  190. package/esm2022/lib/inputs/input-transformers.mjs +0 -66
  191. package/esm2022/lib/inputs/input-types.mjs +0 -6
  192. package/esm2022/lib/inputs/input-utils.mjs +0 -186
  193. package/esm2022/lib/inputs/number-input/index.mjs +0 -5
  194. package/esm2022/lib/inputs/number-input/number-input.component.mjs +0 -250
  195. package/esm2022/lib/inputs/number-input/number-input.defaults.mjs +0 -27
  196. package/esm2022/lib/inputs/number-input/number-input.directives.mjs +0 -14
  197. package/esm2022/lib/inputs/number-input/number-input.module.mjs +0 -21
  198. package/esm2022/lib/inputs/password-input/index.mjs +0 -6
  199. package/esm2022/lib/inputs/password-input/password-input.component.mjs +0 -167
  200. package/esm2022/lib/inputs/password-input/password-input.defaults.mjs +0 -24
  201. package/esm2022/lib/inputs/password-input/password-input.directives.mjs +0 -49
  202. package/esm2022/lib/inputs/password-input/password-input.module.mjs +0 -41
  203. package/esm2022/lib/inputs/password-input/password-input.types.mjs +0 -2
  204. package/esm2022/lib/inputs/simple-input/index.mjs +0 -5
  205. package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +0 -50
  206. package/esm2022/lib/inputs/simple-input/simple-input.defaults.mjs +0 -25
  207. package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +0 -36
  208. package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +0 -37
  209. package/esm2022/lib/kbd/index.mjs +0 -6
  210. package/esm2022/lib/kbd/kbd.component.mjs +0 -30
  211. package/esm2022/lib/kbd/kbd.defaults.mjs +0 -15
  212. package/esm2022/lib/kbd/kbd.directive.mjs +0 -33
  213. package/esm2022/lib/kbd/kbd.module.mjs +0 -20
  214. package/esm2022/lib/kbd/kbd.pipe.mjs +0 -21
  215. package/esm2022/lib/kbd-shortcut/index.mjs +0 -4
  216. package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +0 -36
  217. package/esm2022/lib/kbd-shortcut/kbd-shortcut.defaults.mjs +0 -8
  218. package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +0 -19
  219. package/esm2022/lib/modal/index.mjs +0 -5
  220. package/esm2022/lib/modal/modal.component.mjs +0 -95
  221. package/esm2022/lib/modal/modal.defaults.mjs +0 -20
  222. package/esm2022/lib/modal/modal.directives.mjs +0 -14
  223. package/esm2022/lib/modal/modal.module.mjs +0 -22
  224. package/esm2022/lib/option/index.mjs +0 -3
  225. package/esm2022/lib/option/option.component.mjs +0 -55
  226. package/esm2022/lib/option/option.module.mjs +0 -18
  227. package/esm2022/lib/progress-bar/index.mjs +0 -6
  228. package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -58
  229. package/esm2022/lib/progress-bar/progress-bar.defaults.mjs +0 -21
  230. package/esm2022/lib/progress-bar/progress-bar.directive.mjs +0 -14
  231. package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
  232. package/esm2022/lib/progress-bar/progress-bar.types.mjs +0 -19
  233. package/esm2022/lib/progress-circle/index.mjs +0 -6
  234. package/esm2022/lib/progress-circle/progress-circle.component.mjs +0 -45
  235. package/esm2022/lib/progress-circle/progress-circle.defaults.mjs +0 -21
  236. package/esm2022/lib/progress-circle/progress-circle.directive.mjs +0 -14
  237. package/esm2022/lib/progress-circle/progress-circle.module.mjs +0 -19
  238. package/esm2022/lib/progress-circle/progress-circle.types.mjs +0 -10
  239. package/esm2022/lib/radio/index.mjs +0 -5
  240. package/esm2022/lib/radio/radio/radio.component.mjs +0 -119
  241. package/esm2022/lib/radio/radio/radio.defaults.mjs +0 -16
  242. package/esm2022/lib/radio/radio-group.component.mjs +0 -203
  243. package/esm2022/lib/radio/radio.module.mjs +0 -19
  244. package/esm2022/lib/search-functions.mjs +0 -64
  245. package/esm2022/lib/segment/index.mjs +0 -6
  246. package/esm2022/lib/segment/segment.component.mjs +0 -125
  247. package/esm2022/lib/segment/segment.defaults.mjs +0 -26
  248. package/esm2022/lib/segment/segment.directives.mjs +0 -14
  249. package/esm2022/lib/segment/segment.module.mjs +0 -19
  250. package/esm2022/lib/segment/segment.types.mjs +0 -13
  251. package/esm2022/lib/select/index.mjs +0 -6
  252. package/esm2022/lib/select/select.component.mjs +0 -836
  253. package/esm2022/lib/select/select.defaults.mjs +0 -53
  254. package/esm2022/lib/select/select.directive.mjs +0 -171
  255. package/esm2022/lib/select/select.module.mjs +0 -112
  256. package/esm2022/lib/select/select.types.mjs +0 -2
  257. package/esm2022/lib/slide-toggle/index.mjs +0 -5
  258. package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +0 -43
  259. package/esm2022/lib/slide-toggle/slide-toggle.defaults.mjs +0 -21
  260. package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +0 -18
  261. package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +0 -5
  262. package/esm2022/lib/slider/abstract-slider.mjs +0 -251
  263. package/esm2022/lib/slider/index.mjs +0 -8
  264. package/esm2022/lib/slider/range-slider/range-slider.component.mjs +0 -151
  265. package/esm2022/lib/slider/range-slider/range-slider.module.mjs +0 -18
  266. package/esm2022/lib/slider/slider.component.mjs +0 -100
  267. package/esm2022/lib/slider/slider.defaults.mjs +0 -14
  268. package/esm2022/lib/slider/slider.directive.mjs +0 -16
  269. package/esm2022/lib/slider/slider.module.mjs +0 -20
  270. package/esm2022/lib/slider/slider.types.mjs +0 -10
  271. package/esm2022/lib/snackbar/index.mjs +0 -5
  272. package/esm2022/lib/snackbar/snackbar-ref.mjs +0 -51
  273. package/esm2022/lib/snackbar/snackbar.component.mjs +0 -48
  274. package/esm2022/lib/snackbar/snackbar.service.mjs +0 -224
  275. package/esm2022/lib/snackbar/snackbar.token.mjs +0 -26
  276. package/esm2022/lib/snackbar/snackbar.types.mjs +0 -25
  277. package/esm2022/lib/spinner/index.mjs +0 -4
  278. package/esm2022/lib/spinner/spinner.component.mjs +0 -19
  279. package/esm2022/lib/spinner/spinner.defaults.mjs +0 -14
  280. package/esm2022/lib/spinner/spinner.module.mjs +0 -18
  281. package/esm2022/lib/star/index.mjs +0 -6
  282. package/esm2022/lib/star/rating-display/index.mjs +0 -6
  283. package/esm2022/lib/star/rating-display/rating-display.component.mjs +0 -71
  284. package/esm2022/lib/star/rating-display/rating-display.defaults.mjs +0 -16
  285. package/esm2022/lib/star/rating-display/rating-display.directives.mjs +0 -16
  286. package/esm2022/lib/star/rating-display/rating-display.module.mjs +0 -20
  287. package/esm2022/lib/star/rating-display/rating-display.types.mjs +0 -2
  288. package/esm2022/lib/star/rating-input/index.mjs +0 -6
  289. package/esm2022/lib/star/rating-input/rating-input.component.mjs +0 -191
  290. package/esm2022/lib/star/rating-input/rating-input.defaults.mjs +0 -17
  291. package/esm2022/lib/star/rating-input/rating-input.directives.mjs +0 -16
  292. package/esm2022/lib/star/rating-input/rating-input.module.mjs +0 -20
  293. package/esm2022/lib/star/rating-input/rating-input.types.mjs +0 -2
  294. package/esm2022/lib/star/star-button/index.mjs +0 -6
  295. package/esm2022/lib/star/star-button/star-button.component.mjs +0 -55
  296. package/esm2022/lib/star/star-button/star-button.defaults.mjs +0 -18
  297. package/esm2022/lib/star/star-button/star-button.directives.mjs +0 -16
  298. package/esm2022/lib/star/star-button/star-button.module.mjs +0 -20
  299. package/esm2022/lib/star/star-button/star-button.types.mjs +0 -2
  300. package/esm2022/lib/star/star.component.mjs +0 -36
  301. package/esm2022/lib/star/star.defaults.mjs +0 -15
  302. package/esm2022/lib/star/star.directives.mjs +0 -16
  303. package/esm2022/lib/star/star.module.mjs +0 -20
  304. package/esm2022/lib/star/star.types.mjs +0 -23
  305. package/esm2022/lib/statebox/index.mjs +0 -4
  306. package/esm2022/lib/statebox/statebox.component.mjs +0 -114
  307. package/esm2022/lib/statebox/statebox.defaults.mjs +0 -20
  308. package/esm2022/lib/statebox/statebox.module.mjs +0 -18
  309. package/esm2022/lib/statebox/statebox.types.mjs +0 -2
  310. package/esm2022/lib/tabber/index.mjs +0 -6
  311. package/esm2022/lib/tabber/tab/tab.component.mjs +0 -44
  312. package/esm2022/lib/tabber/tab/tab.defaults.mjs +0 -13
  313. package/esm2022/lib/tabber/tabber.component.mjs +0 -90
  314. package/esm2022/lib/tabber/tabber.defaults.mjs +0 -19
  315. package/esm2022/lib/tabber/tabber.module.mjs +0 -19
  316. package/esm2022/lib/table/index.mjs +0 -6
  317. package/esm2022/lib/table/table-item-storage.mjs +0 -564
  318. package/esm2022/lib/table/table.component.mjs +0 -367
  319. package/esm2022/lib/table/table.defaults.mjs +0 -53
  320. package/esm2022/lib/table/table.directives.mjs +0 -62
  321. package/esm2022/lib/table/table.module.mjs +0 -47
  322. package/esm2022/lib/table/table.types.mjs +0 -30
  323. package/esm2022/lib/table/utils.mjs +0 -18
  324. package/esm2022/lib/table-from-csv/index.mjs +0 -4
  325. package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +0 -120
  326. package/esm2022/lib/table-from-csv/table-from-csv.defaults.mjs +0 -15
  327. package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +0 -19
  328. package/esm2022/lib/table-pagination/index.mjs +0 -5
  329. package/esm2022/lib/table-pagination/table-pagination.component.mjs +0 -108
  330. package/esm2022/lib/table-pagination/table-pagination.defaults.mjs +0 -25
  331. package/esm2022/lib/table-pagination/table-pagination.module.mjs +0 -21
  332. package/esm2022/lib/table-pagination/table-pagination.types.mjs +0 -7
  333. package/esm2022/lib/text-list/index.mjs +0 -4
  334. package/esm2022/lib/text-list/text-list.component.mjs +0 -18
  335. package/esm2022/lib/text-list/text-list.module.mjs +0 -19
  336. package/esm2022/lib/text-list/text-list.pipe.mjs +0 -16
  337. package/esm2022/lib/types/alignment.types.mjs +0 -10
  338. package/esm2022/lib/types/button.types.mjs +0 -6
  339. package/esm2022/lib/types/colors.types.mjs +0 -43
  340. package/esm2022/lib/types/item-storage.types.mjs +0 -6
  341. package/esm2022/lib/types/theming.types.mjs +0 -48
  342. package/esm2022/lib/types/utility.types.mjs +0 -5
  343. package/esm2022/public-api.mjs +0 -74
  344. package/lib/inputs/simple-input/index.d.ts +0 -4
  345. package/lib/inputs/simple-input/simple-input.component.d.ts +0 -13
  346. package/lib/inputs/simple-input/simple-input.defaults.d.ts +0 -6
  347. package/lib/inputs/simple-input/simple-input.directives.d.ts +0 -20
  348. package/lib/inputs/simple-input/simple-input.module.d.ts +0 -11
  349. package/prebuilt-themes/default/inputs/simple-input.css.map +0 -1
  350. package/themes/default/inputs/simple-input.scss +0 -12
@@ -1,251 +0,0 @@
1
- import { Overlay, ScrollStrategyOptions } from '@angular/cdk/overlay';
2
- import { DOCUMENT } from '@angular/common';
3
- import { Directive, HostListener, Input, Renderer2, ViewContainerRef, computed, contentChild, inject, input, output, signal, viewChild, } from '@angular/core';
4
- import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
5
- import { roundToMultiple, roundToPrecision } from 'more-rounding';
6
- import { isDefined, isObject } from 'simple-bool';
7
- import { _NgModelComponentBase, _ngModelComponentDefaults } from '../_internal/ngmodel-component';
8
- import { SimpleComponentColor } from '../types/colors.types';
9
- import { ArdSliderTooltipDirective } from './slider.directive';
10
- import { SliderDecorationPosition, SliderTooltipBehavior, } from './slider.types';
11
- import * as i0 from "@angular/core";
12
- export const _asbtractSliderDefaults = {
13
- ..._ngModelComponentDefaults,
14
- noTooltip: false,
15
- showValueTicks: false,
16
- formatTooltipFn: undefined,
17
- min: 0,
18
- max: 100,
19
- step: 1,
20
- shiftMultiplier: 5,
21
- labelPosition: SliderDecorationPosition.Bottom,
22
- labels: [],
23
- color: SimpleComponentColor.Primary,
24
- compact: false,
25
- tooltipPosition: SliderDecorationPosition.Top,
26
- tooltipBehavior: SliderTooltipBehavior.Auto,
27
- };
28
- export class _AbstractSlider extends _NgModelComponentBase {
29
- constructor() {
30
- super(...arguments);
31
- this.elementRef = viewChild('track');
32
- this.document = inject(DOCUMENT);
33
- this.renderer = inject(Renderer2);
34
- this.overlay = inject(Overlay);
35
- this.scrollStrategyOpts = inject(ScrollStrategyOptions);
36
- this.viewContainerRef = inject(ViewContainerRef);
37
- this.noTooltip = input(this._DEFAULTS.noTooltip, { transform: v => coerceBooleanProperty(v) });
38
- this.tooltipFormatFn = input(this._DEFAULTS.formatTooltipFn);
39
- //! min, max, step sizes
40
- this.min = input(this._DEFAULTS.min, { transform: v => coerceNumberProperty(v, this._DEFAULTS.min) });
41
- this.max = input(this._DEFAULTS.max, { transform: v => coerceNumberProperty(v, this._DEFAULTS.max) });
42
- this.step = input(this._DEFAULTS.step, {
43
- transform: v => {
44
- const step = coerceNumberProperty(v, this._DEFAULTS.step);
45
- if (step === 0) {
46
- throw new Error(`ARD-FT${this.componentId}0a: Cannot set <ard-${this.componentName}>'s [step] to 0.`);
47
- }
48
- if (step < 0) {
49
- throw new Error(`ARD-FT${this.componentId}0b: Cannot set <ard-${this.componentName}>'s [step] to a negative value, got ${step}.`);
50
- }
51
- return step;
52
- },
53
- });
54
- this.shiftMultiplier = input(this._DEFAULTS.shiftMultiplier, {
55
- transform: v => coerceNumberProperty(v, this._DEFAULTS.shiftMultiplier),
56
- });
57
- this._stepSizeComputed = computed(() => this.step() / Math.abs(this.min() - this.max()));
58
- //! value ticks
59
- this.showValueTicks = input(this._DEFAULTS.showValueTicks, { transform: v => coerceBooleanProperty(v) });
60
- this.percentStepSize = computed(() => this._stepSizeComputed() * 100);
61
- this._tickArray = computed(() => {
62
- const newArr = [];
63
- let positionPercentCumulative = 0;
64
- while (positionPercentCumulative < 100) {
65
- newArr.push(positionPercentCumulative);
66
- positionPercentCumulative += this._stepSizeComputed() * 100;
67
- positionPercentCumulative = roundToPrecision(positionPercentCumulative, 6);
68
- }
69
- newArr.push(100);
70
- return newArr.map(v => `${v}%`);
71
- });
72
- //! labels
73
- this.labelPosition = input(this._DEFAULTS.labelPosition);
74
- this.labels = input(this._DEFAULTS.labels);
75
- this.labelObjects = computed(() => {
76
- const v = this.labels();
77
- if (!isDefined(v) || v.length === 0) {
78
- return [];
79
- }
80
- return v.map(label => {
81
- const obj = isObject(label) ? label : { label, for: label };
82
- const v = this._clampValue(obj.for);
83
- return {
84
- label: String(obj.label),
85
- positionPercent: `${this._valueToPercent(v) * 100}%`,
86
- };
87
- });
88
- });
89
- //! appearance
90
- this.color = input(SimpleComponentColor.Primary);
91
- this.compact = input(false, { transform: v => coerceBooleanProperty(v) });
92
- this.ngClasses = computed(() => [
93
- `ard-color-${this.color()}`,
94
- `ard-labels-${this.labelPosition()}`,
95
- `ard-tooltip-${this.tooltipPosition()}`,
96
- this.compact() ? 'ard-compact' : '',
97
- ].join(' '));
98
- //! determining transition
99
- this.sliderTransition = computed(() => {
100
- const x = this._totalSteps();
101
- //this is determined using this graph: https://www.geogebra.org/calculator/nqgnhpap
102
- //capped at y=80
103
- //this specific graph is chosen because it looks the best in my opinion
104
- const formulaResult = (20 * (x + 200)) / (x + 20) - 80;
105
- const formulaResultRounded = roundToPrecision(formulaResult, 3);
106
- if (formulaResultRounded < 0)
107
- return '0';
108
- const transitionDuration = Math.min(80, formulaResultRounded);
109
- return transitionDuration + 'ms';
110
- });
111
- this._totalSteps = computed(() => (this.max() - this.min()) / this.step());
112
- this.valueChange = output();
113
- //! tooltip
114
- this.tooltipTemplate = contentChild(ArdSliderTooltipDirective);
115
- this.tooltipPosition = input(SliderDecorationPosition.Top);
116
- this.tooltipBehavior = input(SliderTooltipBehavior.Auto);
117
- //! event handlers
118
- this._grabbedHandleId = signal(null);
119
- this._shouldCheckForMovement = false;
120
- this._bodyHasClass = false;
121
- this.isSliderHandleGrabbed = computed(() => !!this._grabbedHandleId());
122
- //! position calculators
123
- this._positionPercent = [0];
124
- }
125
- set value(newValue) {
126
- this.writeValue(newValue);
127
- }
128
- get value() {
129
- return this._value;
130
- }
131
- _offset(offset, hasShift, handleId = 1) {
132
- const stepSize = this._stepSizeComputed() * (hasShift ? this.shiftMultiplier() : 1);
133
- let newPercent = this._positionPercent[handleId - 1] + stepSize * offset;
134
- newPercent = this._clampPercentValue(newPercent);
135
- this._setValueFromPercent(newPercent);
136
- }
137
- //! helper methods
138
- _clampValue(v) {
139
- //clamp between min and max
140
- v = Math.min(v, this.max());
141
- v = Math.max(v, this.min());
142
- //round to the nearest step
143
- v -= this.min();
144
- v = roundToMultiple(v, this.step());
145
- v += this.min();
146
- return v;
147
- }
148
- _valueToPercent(v) {
149
- const minMaxDifference = Math.abs(this.min() - this.max());
150
- return (v - this.min()) / minMaxDifference;
151
- }
152
- _emitChange() {
153
- const v = this.value;
154
- this._onChangeRegistered?.(v);
155
- this.valueChange.emit(v);
156
- }
157
- onPointerDownOnHandle(event, handleId = 1) {
158
- this._grabbedHandleId.set(handleId);
159
- this._shouldCheckForMovement = true;
160
- if (!this._bodyHasClass) {
161
- this._bodyHasClass = true;
162
- this.renderer.addClass(this.document.body, 'ard-prevent-touch-actions');
163
- }
164
- }
165
- onPointerUp() {
166
- if (!this._shouldCheckForMovement)
167
- return;
168
- this._grabbedHandleId.set(null);
169
- this._shouldCheckForMovement = false;
170
- if (this._bodyHasClass) {
171
- this._bodyHasClass = false;
172
- this.renderer.removeClass(this.document.body, 'ard-prevent-touch-actions');
173
- }
174
- }
175
- getHandlePosition(handleId = 1) {
176
- return this._positionPercent[handleId - 1] * 100 + '%';
177
- }
178
- _setValueFromPercent(percent, handleId = 1) {
179
- if (!handleId)
180
- return;
181
- if (this._positionPercent[handleId - 1] === percent)
182
- return;
183
- this._positionPercent[handleId - 1] = percent;
184
- this._value = this._percentValueToValue(percent, handleId);
185
- this._updateTooltipValue();
186
- this._emitChange();
187
- }
188
- _writeValueFromEvent(event, handleId) {
189
- const percent = this._getPercentValueFromEvent(event);
190
- this._setValueFromPercent(percent, handleId);
191
- }
192
- _getElementRect() {
193
- return this.elementRef().nativeElement.getBoundingClientRect();
194
- }
195
- _clampPercentValue(percent) {
196
- //clamp between 0 and 1
197
- percent = Math.min(percent, 1);
198
- percent = Math.max(percent, 0);
199
- //round to the nearest step
200
- percent = roundToMultiple(percent, this._stepSizeComputed());
201
- return percent;
202
- }
203
- _getPercentValueFromEvent(event) {
204
- const rect = this._getElementRect();
205
- let position;
206
- if (event instanceof MouseEvent) {
207
- position = event.clientX;
208
- }
209
- else {
210
- position = event.targetTouches[0].clientX;
211
- }
212
- const percent = (position - rect.left) / rect.width;
213
- return this._clampPercentValue(percent);
214
- }
215
- //! key press handlers
216
- onKeyPress(event) {
217
- switch (event.code) {
218
- case 'ArrowLeft': {
219
- this._decrement(event);
220
- return;
221
- }
222
- case 'ArrowRight': {
223
- this._increment(event);
224
- return;
225
- }
226
- }
227
- }
228
- _decrement(event, steps = 1) {
229
- this._offset(-steps, event.shiftKey);
230
- }
231
- _increment(event, steps = 1) {
232
- this._offset(+steps, event.shiftKey);
233
- }
234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _AbstractSlider, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
235
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: _AbstractSlider, inputs: { noTooltip: { classPropertyName: "noTooltip", publicName: "noTooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipFormatFn: { classPropertyName: "tooltipFormatFn", publicName: "tooltipFormatFn", isSignal: true, 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 }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, shiftMultiplier: { classPropertyName: "shiftMultiplier", publicName: "shiftMultiplier", isSignal: true, isRequired: false, transformFunction: null }, showValueTicks: { classPropertyName: "showValueTicks", publicName: "showValueTicks", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, tooltipBehavior: { classPropertyName: "tooltipBehavior", publicName: "tooltipBehavior", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:pointerup": "onPointerUp($event)", "document:touchend": "onPointerUp($event)", "keydown": "onKeyPress($event)" } }, queries: [{ propertyName: "tooltipTemplate", first: true, predicate: ArdSliderTooltipDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["track"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
236
- }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _AbstractSlider, decorators: [{
238
- type: Directive
239
- }], propDecorators: { value: [{
240
- type: Input
241
- }], onPointerUp: [{
242
- type: HostListener,
243
- args: ['document:pointerup', ['$event']]
244
- }, {
245
- type: HostListener,
246
- args: ['document:touchend', ['$event']]
247
- }], onKeyPress: [{
248
- type: HostListener,
249
- args: ['keydown', ['$event']]
250
- }] } });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9zbGlkZXIvYWJzdHJhY3Qtc2xpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUE2Qix5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9ELE9BQU8sRUFDTCx3QkFBd0IsRUFFeEIscUJBQXFCLEdBR3RCLE1BQU0sZ0JBQWdCLENBQUM7O0FBa0J4QixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBNEI7SUFDOUQsR0FBRyx5QkFBeUI7SUFDNUIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsY0FBYyxFQUFFLEtBQUs7SUFDckIsZUFBZSxFQUFFLFNBQVM7SUFDMUIsR0FB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QVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU87WUFDVCxDQUFDO1lBQ0QsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixPQUFPO1lBQ1QsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ1MsVUFBVSxDQUFDLEtBQW9CLEVBQUUsS0FBSyxHQUFHLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNTLFVBQVUsQ0FBQyxLQUFvQixFQUFFLEtBQUssR0FBRyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBcFFtQixlQUFlO21HQUFmLGVBQWUsaWxFQWlLSyx5QkFBeUI7OzRGQWpLN0MsZUFBZTtrQkFEcEMsU0FBUzs4QkF1SEosS0FBSztzQkFEUixLQUFLO2dCQXVFTixXQUFXO3NCQUZWLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUM3QyxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXdEN0MsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBjb21wdXRlZCxcclxuICBjb250ZW50Q2hpbGQsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIG91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgdmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyByb3VuZFRvTXVsdGlwbGUsIHJvdW5kVG9QcmVjaXNpb24gfSBmcm9tICdtb3JlLXJvdW5kaW5nJztcclxuaW1wb3J0IHsgaXNEZWZpbmVkLCBpc09iamVjdCB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHsgX05nTW9kZWxDb21wb25lbnRCYXNlLCBfTmdNb2RlbENvbXBvbmVudERlZmF1bHRzLCBfbmdNb2RlbENvbXBvbmVudERlZmF1bHRzIH0gZnJvbSAnLi4vX2ludGVybmFsL25nbW9kZWwtY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ltcGxlQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBBcmRTbGlkZXJUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9zbGlkZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtcclxuICBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24sXHJcbiAgU2xpZGVyTGFiZWxPYmplY3QsXHJcbiAgU2xpZGVyVG9vbHRpcEJlaGF2aW9yLFxyXG4gIFNsaWRlclRvb2x0aXBGb3JtYXRGbixcclxuICBfSW50ZXJuYWxTbGlkZXJMYWJlbE9iamVjdCxcclxufSBmcm9tICcuL3NsaWRlci50eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIF9Bc2J0cmFjdFNsaWRlckRlZmF1bHRzIGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnREZWZhdWx0cyB7XHJcbiAgbm9Ub29sdGlwOiBib29sZWFuO1xyXG4gIHNob3dWYWx1ZVRpY2tzOiBib29sZWFuO1xyXG4gIGZvcm1hdFRvb2x0aXBGbjogTnVsbGFibGU8U2xpZGVyVG9vbHRpcEZvcm1hdEZuPjtcclxuICBtaW46IG51bWJlcjtcclxuICBtYXg6IG51bWJlcjtcclxuICBzdGVwOiBudW1iZXI7XHJcbiAgc2hpZnRNdWx0aXBsaWVyOiBudW1iZXI7XHJcbiAgbGFiZWxQb3NpdGlvbjogU2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uO1xyXG4gIGxhYmVsczogU2xpZGVyTGFiZWxPYmplY3RbXSB8IG51bWJlcltdIHwgbnVsbDtcclxuICBjb2xvcjogU2ltcGxlQ29tcG9uZW50Q29sb3I7XHJcbiAgY29tcGFjdDogYm9vbGVhbjtcclxuICB0b29sdGlwUG9zaXRpb246IFNsaWRlckRlY29yYXRpb25Qb3NpdGlvbjtcclxuICB0b29sdGlwQmVoYXZpb3I6IFNsaWRlclRvb2x0aXBCZWhhdmlvcjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IF9hc2J0cmFjdFNsaWRlckRlZmF1bHRzOiBfQXNidHJhY3RTbGlkZXJEZWZhdWx0cyA9IHtcclxuICAuLi5fbmdNb2RlbENvbXBvbmVudERlZmF1bHRzLFxyXG4gIG5vVG9vbHRpcDogZmFsc2UsXHJcbiAgc2hvd1ZhbHVlVGlja3M6IGZhbHNlLFxyXG4gIGZvcm1hdFRvb2x0aXBGbjogdW5kZWZpbmVkLFxyXG4gIG1pbjogMCxcclxuICBtYXg6IDEwMCxcclxuICBzdGVwOiAxLFxyXG4gIHNoaWZ0TXVsdGlwbGllcjogNSxcclxuICBsYWJlbFBvc2l0aW9uOiBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24uQm90dG9tLFxyXG4gIGxhYmVsczogW10sXHJcbiAgY29sb3I6IFNpbXBsZUNvbXBvbmVudENvbG9yLlByaW1hcnksXHJcbiAgY29tcGFjdDogZmFsc2UsXHJcbiAgdG9vbHRpcFBvc2l0aW9uOiBTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24uVG9wLFxyXG4gIHRvb2x0aXBCZWhhdmlvcjogU2xpZGVyVG9vbHRpcEJlaGF2aW9yLkF1dG8sXHJcbn07XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9BYnN0cmFjdFNsaWRlcjxUPiBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSB7XHJcbiAgYWJzdHJhY3QgcmVhZG9ubHkgY29tcG9uZW50SWQ6IHN0cmluZztcclxuICBhYnN0cmFjdCByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBfQXNidHJhY3RTbGlkZXJEZWZhdWx0cztcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCd0cmFjaycpO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxTdHJhdGVneU9wdHMgPSBpbmplY3QoU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuXHJcbiAgcmVhZG9ubHkgbm9Ub29sdGlwID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5ub1Rvb2x0aXAsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgdG9vbHRpcEZvcm1hdEZuID0gaW5wdXQ8TnVsbGFibGU8U2xpZGVyVG9vbHRpcEZvcm1hdEZuPj4odGhpcy5fREVGQVVMVFMuZm9ybWF0VG9vbHRpcEZuKTtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF91cGRhdGVUb29sdGlwVmFsdWUoKTogdm9pZDtcclxuXHJcbiAgLy8hIG1pbiwgbWF4LCBzdGVwIHNpemVzXHJcbiAgcmVhZG9ubHkgbWluID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLm1pbiwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMubWluKSB9KTtcclxuICByZWFkb25seSBtYXggPSBpbnB1dDxudW1iZXIsIGFueT4odGhpcy5fREVGQVVMVFMubWF4LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5tYXgpIH0pO1xyXG5cclxuICByZWFkb25seSBzdGVwID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnN0ZXAsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiB7XHJcbiAgICAgIGNvbnN0IHN0ZXAgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5zdGVwKTtcclxuICAgICAgaWYgKHN0ZXAgPT09IDApIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVCR7dGhpcy5jb21wb25lbnRJZH0wYTogQ2Fubm90IHNldCA8YXJkLSR7dGhpcy5jb21wb25lbnROYW1lfT4ncyBbc3RlcF0gdG8gMC5gKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoc3RlcCA8IDApIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICBgQVJELUZUJHt0aGlzLmNvbXBvbmVudElkfTBiOiBDYW5ub3Qgc2V0IDxhcmQtJHt0aGlzLmNvbXBvbmVudE5hbWV9PidzIFtzdGVwXSB0byBhIG5lZ2F0aXZlIHZhbHVlLCBnb3QgJHtzdGVwfS5gXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc3RlcDtcclxuICAgIH0sXHJcbiAgfSk7XHJcblxyXG4gIHJlYWRvbmx5IHNoaWZ0TXVsdGlwbGllciA9IGlucHV0PG51bWJlciwgYW55Pih0aGlzLl9ERUZBVUxUUy5zaGlmdE11bHRpcGxpZXIsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5zaGlmdE11bHRpcGxpZXIpLFxyXG4gIH0pO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0ZXBTaXplQ29tcHV0ZWQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHRoaXMuc3RlcCgpIC8gTWF0aC5hYnModGhpcy5taW4oKSAtIHRoaXMubWF4KCkpKTtcclxuXHJcbiAgLy8hIHZhbHVlIHRpY2tzXHJcbiAgcmVhZG9ubHkgc2hvd1ZhbHVlVGlja3MgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnNob3dWYWx1ZVRpY2tzLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IHBlcmNlbnRTdGVwU2l6ZSA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4gdGhpcy5fc3RlcFNpemVDb21wdXRlZCgpICogMTAwKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF90aWNrQXJyYXkgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4ge1xyXG4gICAgY29uc3QgbmV3QXJyOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAgIGxldCBwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlID0gMDtcclxuICAgIHdoaWxlIChwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlIDwgMTAwKSB7XHJcbiAgICAgIG5ld0Fyci5wdXNoKHBvc2l0aW9uUGVyY2VudEN1bXVsYXRpdmUpO1xyXG4gICAgICBwb3NpdGlvblBlcmNlbnRDdW11bGF0aXZlICs9IHRoaXMuX3N0ZXBTaXplQ29tcHV0ZWQoKSAqIDEwMDtcclxuICAgICAgcG9zaXRpb25QZXJjZW50Q3VtdWxhdGl2ZSA9IHJvdW5kVG9QcmVjaXNpb24ocG9zaXRpb25QZXJjZW50Q3VtdWxhdGl2ZSwgNik7XHJcbiAgICB9XHJcbiAgICBuZXdBcnIucHVzaCgxMDApO1xyXG5cclxuICAgIHJldHVybiBuZXdBcnIubWFwKHYgPT4gYCR7dn0lYCk7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBsYWJlbHNcclxuICByZWFkb25seSBsYWJlbFBvc2l0aW9uID0gaW5wdXQ8U2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uPih0aGlzLl9ERUZBVUxUUy5sYWJlbFBvc2l0aW9uKTtcclxuXHJcbiAgcmVhZG9ubHkgbGFiZWxzID0gaW5wdXQ8U2xpZGVyTGFiZWxPYmplY3RbXSB8IG51bWJlcltdIHwgbnVsbD4odGhpcy5fREVGQVVMVFMubGFiZWxzKTtcclxuXHJcbiAgcmVhZG9ubHkgbGFiZWxPYmplY3RzID0gY29tcHV0ZWQ8X0ludGVybmFsU2xpZGVyTGFiZWxPYmplY3RbXT4oKCkgPT4ge1xyXG4gICAgY29uc3QgdiA9IHRoaXMubGFiZWxzKCk7XHJcbiAgICBpZiAoIWlzRGVmaW5lZCh2KSB8fCB2Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdi5tYXAobGFiZWwgPT4ge1xyXG4gICAgICBjb25zdCBvYmogPSBpc09iamVjdChsYWJlbCkgPyBsYWJlbCA6IHsgbGFiZWwsIGZvcjogbGFiZWwgfTtcclxuICAgICAgY29uc3QgdiA9IHRoaXMuX2NsYW1wVmFsdWUob2JqLmZvcik7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGFiZWw6IFN0cmluZyhvYmoubGFiZWwpLFxyXG4gICAgICAgIHBvc2l0aW9uUGVyY2VudDogYCR7dGhpcy5fdmFsdWVUb1BlcmNlbnQodikgKiAxMDB9JWAsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PFNpbXBsZUNvbXBvbmVudENvbG9yPihTaW1wbGVDb21wb25lbnRDb2xvci5QcmltYXJ5KTtcclxuXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PlxyXG4gICAgW1xyXG4gICAgICBgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsXHJcbiAgICAgIGBhcmQtbGFiZWxzLSR7dGhpcy5sYWJlbFBvc2l0aW9uKCl9YCxcclxuICAgICAgYGFyZC10b29sdGlwLSR7dGhpcy50b29sdGlwUG9zaXRpb24oKX1gLFxyXG4gICAgICB0aGlzLmNvbXBhY3QoKSA/ICdhcmQtY29tcGFjdCcgOiAnJyxcclxuICAgIF0uam9pbignICcpXHJcbiAgKTtcclxuXHJcbiAgLy8hIGRldGVybWluaW5nIHRyYW5zaXRpb25cclxuICByZWFkb25seSBzbGlkZXJUcmFuc2l0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3QgeCA9IHRoaXMuX3RvdGFsU3RlcHMoKTtcclxuICAgIC8vdGhpcyBpcyBkZXRlcm1pbmVkIHVzaW5nIHRoaXMgZ3JhcGg6IGh0dHBzOi8vd3d3Lmdlb2dlYnJhLm9yZy9jYWxjdWxhdG9yL25xZ25ocGFwXHJcbiAgICAvL2NhcHBlZCBhdCB5PTgwXHJcbiAgICAvL3RoaXMgc3BlY2lmaWMgZ3JhcGggaXMgY2hvc2VuIGJlY2F1c2UgaXQgbG9va3MgdGhlIGJlc3QgaW4gbXkgb3BpbmlvblxyXG4gICAgY29uc3QgZm9ybXVsYVJlc3VsdCA9ICgyMCAqICh4ICsgMjAwKSkgLyAoeCArIDIwKSAtIDgwO1xyXG4gICAgY29uc3QgZm9ybXVsYVJlc3VsdFJvdW5kZWQgPSByb3VuZFRvUHJlY2lzaW9uKGZvcm11bGFSZXN1bHQsIDMpO1xyXG5cclxuICAgIGlmIChmb3JtdWxhUmVzdWx0Um91bmRlZCA8IDApIHJldHVybiAnMCc7XHJcblxyXG4gICAgY29uc3QgdHJhbnNpdGlvbkR1cmF0aW9uID0gTWF0aC5taW4oODAsIGZvcm11bGFSZXN1bHRSb3VuZGVkKTtcclxuICAgIHJldHVybiB0cmFuc2l0aW9uRHVyYXRpb24gKyAnbXMnO1xyXG4gIH0pO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvdGFsU3RlcHMgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+ICh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkgLyB0aGlzLnN0ZXAoKSk7XHJcblxyXG4gIC8vISB2YWx1ZSBpbnB1dCAmIG91dHB1dFxyXG4gIC8vISBhYnN0cmFjdCBoZXJlXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF92YWx1ZTogVDtcclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZShuZXdWYWx1ZTogVCkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IHZhbHVlKCk6IFQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxUPigpO1xyXG5cclxuICAvLyEgd3JpdGVWYWx1ZVxyXG4gIC8vISBhYnN0cmFjdCBoZXJlXHJcbiAgYWJzdHJhY3Qgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkOyAvLyogYWJzdGFjdFxyXG4gIC8vISBtZXRob2RzIGZvciBwcm9ncmFtbWF0aWMgbWFuaXB1bGF0aW9uXHJcbiAgYWJzdHJhY3QgcmVzZXQoKTogdm9pZDtcclxuXHJcbiAgcHJvdGVjdGVkIF9vZmZzZXQob2Zmc2V0OiBudW1iZXIsIGhhc1NoaWZ0OiBib29sZWFuLCBoYW5kbGVJZCA9IDEpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0ZXBTaXplID0gdGhpcy5fc3RlcFNpemVDb21wdXRlZCgpICogKGhhc1NoaWZ0ID8gdGhpcy5zaGlmdE11bHRpcGxpZXIoKSA6IDEpO1xyXG4gICAgbGV0IG5ld1BlcmNlbnQgPSB0aGlzLl9wb3NpdGlvblBlcmNlbnRbaGFuZGxlSWQgLSAxXSArIHN0ZXBTaXplICogb2Zmc2V0O1xyXG4gICAgbmV3UGVyY2VudCA9IHRoaXMuX2NsYW1wUGVyY2VudFZhbHVlKG5ld1BlcmNlbnQpO1xyXG4gICAgdGhpcy5fc2V0VmFsdWVGcm9tUGVyY2VudChuZXdQZXJjZW50KTtcclxuICB9XHJcblxyXG4gIC8vISBoZWxwZXIgbWV0aG9kc1xyXG4gIHByb3RlY3RlZCBfY2xhbXBWYWx1ZSh2OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgLy9jbGFtcCBiZXR3ZWVuIG1pbiBhbmQgbWF4XHJcbiAgICB2ID0gTWF0aC5taW4odiwgdGhpcy5tYXgoKSk7XHJcbiAgICB2ID0gTWF0aC5tYXgodiwgdGhpcy5taW4oKSk7XHJcbiAgICAvL3JvdW5kIHRvIHRoZSBuZWFyZXN0IHN0ZXBcclxuICAgIHYgLT0gdGhpcy5taW4oKTtcclxuICAgIHYgPSByb3VuZFRvTXVsdGlwbGUodiwgdGhpcy5zdGVwKCkpO1xyXG4gICAgdiArPSB0aGlzLm1pbigpO1xyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfdmFsdWVUb1BlcmNlbnQodjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG1pbk1heERpZmZlcmVuY2UgPSBNYXRoLmFicyh0aGlzLm1pbigpIC0gdGhpcy5tYXgoKSk7XHJcbiAgICByZXR1cm4gKHYgLSB0aGlzLm1pbigpKSAvIG1pbk1heERpZmZlcmVuY2U7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlO1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgfVxyXG5cclxuICAvLyEgdG9vbHRpcFxyXG4gIHJlYWRvbmx5IHRvb2x0aXBUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTbGlkZXJUb29sdGlwRGlyZWN0aXZlKTtcclxuXHJcbiAgcmVhZG9ubHkgdG9vbHRpcFBvc2l0aW9uID0gaW5wdXQ8U2xpZGVyRGVjb3JhdGlvblBvc2l0aW9uPihTbGlkZXJEZWNvcmF0aW9uUG9zaXRpb24uVG9wKTtcclxuICByZWFkb25seSB0b29sdGlwQmVoYXZpb3IgPSBpbnB1dDxTbGlkZXJUb29sdGlwQmVoYXZpb3I+KFNsaWRlclRvb2x0aXBCZWhhdmlvci5BdXRvKTtcclxuXHJcbiAgLy8hIGV2ZW50IGhhbmRsZXJzXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9ncmFiYmVkSGFuZGxlSWQgPSBzaWduYWw8bnVsbCB8IG51bWJlcj4obnVsbCk7XHJcbiAgcHJvdGVjdGVkIF9zaG91bGRDaGVja0Zvck1vdmVtZW50ID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIF9ib2R5SGFzQ2xhc3MgPSBmYWxzZTtcclxuXHJcbiAgcmVhZG9ubHkgaXNTbGlkZXJIYW5kbGVHcmFiYmVkID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLl9ncmFiYmVkSGFuZGxlSWQoKSk7XHJcblxyXG4gIGFic3RyYWN0IG9uVHJhY2tIaXRib3hQb2ludGVyRG93bihldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkOyAvLyogYWJzdGFjdFxyXG5cclxuICBvblBvaW50ZXJEb3duT25IYW5kbGUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBoYW5kbGVJZCA9IDEpOiB2b2lkIHtcclxuICAgIHRoaXMuX2dyYWJiZWRIYW5kbGVJZC5zZXQoaGFuZGxlSWQpO1xyXG4gICAgdGhpcy5fc2hvdWxkQ2hlY2tGb3JNb3ZlbWVudCA9IHRydWU7XHJcbiAgICBpZiAoIXRoaXMuX2JvZHlIYXNDbGFzcykge1xyXG4gICAgICB0aGlzLl9ib2R5SGFzQ2xhc3MgPSB0cnVlO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2FyZC1wcmV2ZW50LXRvdWNoLWFjdGlvbnMnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFic3RyYWN0IG9uUG9pbnRlck1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZDsgLy8qIGFic3RhY3RcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6cG9pbnRlcnVwJywgWyckZXZlbnQnXSlcclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaGVuZCcsIFsnJGV2ZW50J10pXHJcbiAgb25Qb2ludGVyVXAoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3Nob3VsZENoZWNrRm9yTW92ZW1lbnQpIHJldHVybjtcclxuICAgIHRoaXMuX2dyYWJiZWRIYW5kbGVJZC5zZXQobnVsbCk7XHJcbiAgICB0aGlzLl9zaG91bGRDaGVja0Zvck1vdmVtZW50ID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5fYm9keUhhc0NsYXNzKSB7XHJcbiAgICAgIHRoaXMuX2JvZHlIYXNDbGFzcyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2FyZC1wcmV2ZW50LXRvdWNoLWFjdGlvbnMnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISBwb3NpdGlvbiBjYWxjdWxhdG9yc1xyXG4gIHByb3RlY3RlZCBfcG9zaXRpb25QZXJjZW50OiBbbnVtYmVyXSB8IFtudW1iZXIsIG51bWJlcl0gPSBbMF07XHJcbiAgZ2V0SGFuZGxlUG9zaXRpb24oaGFuZGxlSWQgPSAxKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvblBlcmNlbnRbaGFuZGxlSWQgLSAxXSAqIDEwMCArICclJztcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9zZXRWYWx1ZUZyb21QZXJjZW50KHBlcmNlbnQ6IG51bWJlciwgaGFuZGxlSWQ6IG51bWJlciB8IG51bGwgPSAxKTogdm9pZCB7XHJcbiAgICBpZiAoIWhhbmRsZUlkKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5fcG9zaXRpb25QZXJjZW50W2hhbmRsZUlkIC0gMV0gPT09IHBlcmNlbnQpIHJldHVybjtcclxuICAgIHRoaXMuX3Bvc2l0aW9uUGVyY2VudFtoYW5kbGVJZCAtIDFdID0gcGVyY2VudDtcclxuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fcGVyY2VudFZhbHVlVG9WYWx1ZShwZXJjZW50LCBoYW5kbGVJZCk7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlVG9vbHRpcFZhbHVlKCk7XHJcblxyXG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX3dyaXRlVmFsdWVGcm9tRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBoYW5kbGVJZD86IG51bWJlciB8IG51bGwpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBlcmNlbnQgPSB0aGlzLl9nZXRQZXJjZW50VmFsdWVGcm9tRXZlbnQoZXZlbnQpO1xyXG4gICAgdGhpcy5fc2V0VmFsdWVGcm9tUGVyY2VudChwZXJjZW50LCBoYW5kbGVJZCk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfcGVyY2VudFZhbHVlVG9WYWx1ZShwZXJjZW50OiBudW1iZXIsIGhhbmRsZUlkPzogbnVtYmVyKTogVDsgLy8qIGFic3RhY3RcclxuXHJcbiAgcHJvdGVjdGVkIF9nZXRFbGVtZW50UmVjdCgpOiBET01SZWN0IHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYoKSEubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9jbGFtcFBlcmNlbnRWYWx1ZShwZXJjZW50OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgLy9jbGFtcCBiZXR3ZWVuIDAgYW5kIDFcclxuICAgIHBlcmNlbnQgPSBNYXRoLm1pbihwZXJjZW50LCAxKTtcclxuICAgIHBlcmNlbnQgPSBNYXRoLm1heChwZXJjZW50LCAwKTtcclxuICAgIC8vcm91bmQgdG8gdGhlIG5lYXJlc3Qgc3RlcFxyXG4gICAgcGVyY2VudCA9IHJvdW5kVG9NdWx0aXBsZShwZXJjZW50LCB0aGlzLl9zdGVwU2l6ZUNvbXB1dGVkKCkpO1xyXG4gICAgcmV0dXJuIHBlcmNlbnQ7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfZ2V0UGVyY2VudFZhbHVlRnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IG51bWJlciB7XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5fZ2V0RWxlbWVudFJlY3QoKTtcclxuICAgIGxldCBwb3NpdGlvbjogbnVtYmVyO1xyXG4gICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xyXG4gICAgICBwb3NpdGlvbiA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwb3NpdGlvbiA9IGV2ZW50LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WDtcclxuICAgIH1cclxuICAgIGNvbnN0IHBlcmNlbnQgPSAocG9zaXRpb24gLSByZWN0LmxlZnQpIC8gcmVjdC53aWR0aDtcclxuICAgIHJldHVybiB0aGlzLl9jbGFtcFBlcmNlbnRWYWx1ZShwZXJjZW50KTtcclxuICB9XHJcbiAgLy8hIGtleSBwcmVzcyBoYW5kbGVyc1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICBjYXNlICdBcnJvd0xlZnQnOiB7XHJcbiAgICAgICAgdGhpcy5fZGVjcmVtZW50KGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcclxuICAgICAgICB0aGlzLl9pbmNyZW1lbnQoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwcm90ZWN0ZWQgX2RlY3JlbWVudChldmVudDogS2V5Ym9hcmRFdmVudCwgc3RlcHMgPSAxKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vZmZzZXQoLXN0ZXBzLCBldmVudC5zaGlmdEtleSk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfaW5jcmVtZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBzdGVwcyA9IDEpOiB2b2lkIHtcclxuICAgIHRoaXMuX29mZnNldCgrc3RlcHMsIGV2ZW50LnNoaWZ0S2V5KTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,8 +0,0 @@
1
- export * from './range-slider/range-slider.component';
2
- export * from './range-slider/range-slider.module';
3
- export * from './slider.component';
4
- export * from './slider.defaults';
5
- export * from './slider.directive';
6
- export * from './slider.module';
7
- export * from './slider.types';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NsaWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yYW5nZS1zbGlkZXIvcmFuZ2Utc2xpZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NsaWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NsaWRlci5kZWZhdWx0cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGVyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGVyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGVyLnR5cGVzJztcclxuIl19
@@ -1,151 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostListener, Inject, ViewEncapsulation, signal } from '@angular/core';
2
- import { roundToPrecision } from 'more-rounding';
3
- import { isNumber, isObject } from 'simple-bool';
4
- import { _AbstractSlider } from '../abstract-slider';
5
- import { ARD_SLIDER_DEFAULTS } from '../slider.defaults';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- export class ArdiumRangeSliderComponent extends _AbstractSlider {
9
- constructor(defaults) {
10
- super(defaults);
11
- this.componentId = '106';
12
- this.componentName = 'range-slider';
13
- this._value = { low: -Infinity, high: Infinity };
14
- //! tooltip updater
15
- this._tooltipValue = this.value;
16
- //! handle focus monitors
17
- this.currentHandle = signal(null);
18
- }
19
- ngOnInit() {
20
- super.ngOnInit();
21
- if (this._value.low !== -Infinity && this._value.high !== Infinity)
22
- return;
23
- this.writeValue({ low: this.min(), high: this.max() });
24
- }
25
- //! writeValue
26
- _isValidObject(v) {
27
- return isObject(v) && isNumber(v['low']) && isNumber(v['high']);
28
- }
29
- _isValidTuple(v) {
30
- return Array.isArray(v) && isNumber(v[0]) && isNumber(v[1]) && v.length === 2;
31
- }
32
- _arrayValueToObjectValue(v) {
33
- return { low: v[0], high: v[1] };
34
- }
35
- _normalizeSliderRange(v) {
36
- if (v.low <= v.high)
37
- return v;
38
- return { low: v.high, high: v.low };
39
- }
40
- writeValue(v) {
41
- if (!this._isValidObject(v) && !this._isValidTuple(v)) {
42
- this.reset();
43
- return;
44
- }
45
- let low = -Infinity;
46
- let high = Infinity;
47
- if (this._isValidObject(v)) {
48
- low = v.low;
49
- high = v.high;
50
- }
51
- else if (this._isValidTuple(v)) {
52
- low = v[0];
53
- high = v[1];
54
- }
55
- const lowClamped = this._clampValue(low);
56
- const highClamped = this._clampValue(high);
57
- const value = this._arrayValueToObjectValue([lowClamped, highClamped]);
58
- this._value = value;
59
- this._positionPercent[0] = this._valueToPercent(lowClamped);
60
- this._positionPercent[1] = this._valueToPercent(highClamped);
61
- this._updateTooltipValue();
62
- }
63
- get value() {
64
- return this._normalizeSliderRange(this._value);
65
- }
66
- set value(v) {
67
- this.writeValue(v);
68
- }
69
- _updateTooltipValue() {
70
- const v = Object.create(this._value);
71
- const formatFn = this.tooltipFormatFn();
72
- if (formatFn) {
73
- v.low = formatFn(v.low);
74
- v.high = formatFn(v.high);
75
- }
76
- this._tooltipValue = v;
77
- }
78
- getTooltipContext(type) {
79
- return {
80
- value: this._tooltipValue[type],
81
- $implicit: this._tooltipValue[type],
82
- };
83
- }
84
- //! methods for programmatic manipulation
85
- reset() {
86
- this._value = { low: -Infinity, high: Infinity };
87
- this._positionPercent[0] = 0;
88
- this._positionPercent[1] = 1;
89
- }
90
- //! track overlay getters
91
- get trackOverlayLeft() {
92
- return Math.min(...this._positionPercent) * 100 + '%';
93
- }
94
- get trackOverlayWidth() {
95
- return Math.abs(this._positionPercent[0] - this._positionPercent[1]) * 100 + '%';
96
- }
97
- //! event handlers
98
- onTrackHitboxPointerDown(event) {
99
- this._writeValueFromEvent(event);
100
- this.onPointerDownOnHandle(event);
101
- }
102
- onPointerMove(event) {
103
- if (!this._shouldCheckForMovement)
104
- return;
105
- if (!this._bodyHasClass) {
106
- this._bodyHasClass = true;
107
- this.renderer.addClass(this.document.body, 'ard-prevent-touch-actions');
108
- }
109
- this._writeValueFromEvent(event, this._grabbedHandleId());
110
- }
111
- //! position calculators
112
- _percentValueToValue(percent, handleId) {
113
- const minMaxDifference = Math.abs(this.min() - this.max());
114
- let newVal = percent * minMaxDifference + this.min();
115
- //round to 9 decimal places to avoid floating point arithmetic errors
116
- //9 is an arbitrary number that just works well. ¯\_(ツ)_/¯
117
- newVal = roundToPrecision(newVal, 9);
118
- const newValObj = { low: this._value.low, high: this._value.high };
119
- if (handleId === 1) {
120
- newValObj.low = newVal;
121
- }
122
- else {
123
- newValObj.high = newVal;
124
- }
125
- return newValObj;
126
- }
127
- onHandleFocus(event, handleId) {
128
- this.onFocus(event);
129
- this.currentHandle.set(handleId);
130
- }
131
- onBlur(event) {
132
- super.onBlur(event);
133
- this.currentHandle.set(null);
134
- }
135
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderComponent, deps: [{ token: ARD_SLIDER_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumRangeSliderComponent, selector: "ard-range-slider", host: { listeners: { "document:mousemove": "onPointerMove($event)", "document:touchmove": "onPointerMove($event)" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-range-slider-container-master\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-slider-handle-grabbed]=\"isSliderHandleGrabbed()\"\r\n [style]=\"{ '--_ard-slider-transition': sliderTransition() }\"\r\n>\r\n <div class=\"ard-slider-container\">\r\n <div\r\n #track\r\n class=\"ard-slider-track\"\r\n (pointerdown)=\"onTrackHitboxPointerDown($event)\"\r\n >\r\n <div class=\"ard-hitbox\"></div>\r\n <div class=\"ard-slider-track-overlay ard-slider-track-inactive\"></div>\r\n <div\r\n class=\"ard-slider-track-overlay ard-slider-track-active\"\r\n [style]=\"{\r\n left: trackOverlayLeft,\r\n width: trackOverlayWidth\r\n }\"\r\n ></div>\r\n @if (showValueTicks()) {\r\n <div class=\"ard-value-tick-container\">\r\n @for (tick of _tickArray(); track tick) {\r\n <div\r\n class=\"ard-value-tick\"\r\n [style]=\"{ left: tick }\"\r\n ></div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-slider-handle\"\r\n [tabindex]=\"tabIndex()\"\r\n [class.ard-grabbed]=\"isSliderHandleGrabbed() && currentHandle() === 1\"\r\n (pointerdown)=\"onPointerDownOnHandle($event, 1)\"\r\n (focus)=\"onHandleFocus($event, 1)\"\r\n (blur)=\"onBlur($event)\"\r\n [style]=\"{ left: getHandlePosition(1) }\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n @if (tooltipBehavior() !== 'never') {\r\n <div\r\n class=\"ard-slider-tooltip-wrapper\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior() === 'always'\"\r\n [style]=\"{ left: getHandlePosition(1) }\"\r\n >\r\n <ng-template\r\n #defaultTooltipTemplate\r\n let-value\r\n >\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"tooltipTemplate()?.template || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('low')\"\r\n >\r\n </ng-template>\r\n </div>\r\n }\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-slider-handle\"\r\n [tabindex]=\"tabIndex()\"\r\n [class.ard-grabbed]=\"isSliderHandleGrabbed() && currentHandle() === 2\"\r\n (pointerdown)=\"onPointerDownOnHandle($event, 2)\"\r\n (focus)=\"onHandleFocus($event, 2)\"\r\n (blur)=\"onBlur($event)\"\r\n [style]=\"{ left: getHandlePosition(2) }\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n @if (tooltipBehavior() !== 'never') {\r\n <div\r\n class=\"ard-slider-tooltip-wrapper\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior() === 'always'\"\r\n [style]=\"{ left: getHandlePosition(2) }\"\r\n >\r\n <ng-template\r\n #defaultTooltipTemplate\r\n let-value\r\n >\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"tooltipTemplate()?.template || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('high')\"\r\n >\r\n </ng-template>\r\n </div>\r\n }\r\n </div>\r\n @if (labelObjects().length) {\r\n <div\r\n class=\"ard-slider-label-container\"\r\n *ngIf=\"labelObjects.length\"\r\n >\r\n @for (label of labelObjects(); track $index) {\r\n <div\r\n class=\"ard-slider-label\"\r\n [style]=\"{ left: label.positionPercent }\"\r\n >\r\n {{ label.label }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #handleThumbBase>\r\n <div class=\"ard-slide-thumb\"></div>\r\n</ng-template>\r\n", styles: ["body.ard-prevent-touch-actions,body.ard-prevent-touch-actions *{touch-action:none}.ard-range-slider-container-master{display:flex;flex-direction:column}.ard-range-slider-container-master.ard-labels-top{flex-direction:column-reverse}.ard-range-slider-container-master .ard-slider-tooltip-wrapper{position:absolute;transform:translate(-50%);pointer-events:none}.ard-range-slider-container-master.ard-tooltip-top .ard-slider-tooltip-wrapper{bottom:100%}.ard-range-slider-container-master.ard-tooltip-bottom .ard-slider-tooltip-wrapper{top:100%}.ard-range-slider-container-master .ard-slider-handle{position:absolute;left:0;transform:translate(-50%)}.ard-range-slider-container-master .ard-slider-tooltip,.ard-range-slider-container-master .ard-slider-track,.ard-range-slider-container-master .ard-value-tick-container{position:relative}.ard-range-slider-container-master .ard-value-tick{position:absolute}.ard-range-slider-container-master .ard-slider-label-container{position:relative;width:100%;height:1em}.ard-range-slider-container-master .ard-slider-label{position:absolute;line-height:1em}\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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
137
- }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderComponent, decorators: [{
139
- type: Component,
140
- args: [{ selector: 'ard-range-slider', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-range-slider-container-master\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-slider-handle-grabbed]=\"isSliderHandleGrabbed()\"\r\n [style]=\"{ '--_ard-slider-transition': sliderTransition() }\"\r\n>\r\n <div class=\"ard-slider-container\">\r\n <div\r\n #track\r\n class=\"ard-slider-track\"\r\n (pointerdown)=\"onTrackHitboxPointerDown($event)\"\r\n >\r\n <div class=\"ard-hitbox\"></div>\r\n <div class=\"ard-slider-track-overlay ard-slider-track-inactive\"></div>\r\n <div\r\n class=\"ard-slider-track-overlay ard-slider-track-active\"\r\n [style]=\"{\r\n left: trackOverlayLeft,\r\n width: trackOverlayWidth\r\n }\"\r\n ></div>\r\n @if (showValueTicks()) {\r\n <div class=\"ard-value-tick-container\">\r\n @for (tick of _tickArray(); track tick) {\r\n <div\r\n class=\"ard-value-tick\"\r\n [style]=\"{ left: tick }\"\r\n ></div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-slider-handle\"\r\n [tabindex]=\"tabIndex()\"\r\n [class.ard-grabbed]=\"isSliderHandleGrabbed() && currentHandle() === 1\"\r\n (pointerdown)=\"onPointerDownOnHandle($event, 1)\"\r\n (focus)=\"onHandleFocus($event, 1)\"\r\n (blur)=\"onBlur($event)\"\r\n [style]=\"{ left: getHandlePosition(1) }\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n @if (tooltipBehavior() !== 'never') {\r\n <div\r\n class=\"ard-slider-tooltip-wrapper\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior() === 'always'\"\r\n [style]=\"{ left: getHandlePosition(1) }\"\r\n >\r\n <ng-template\r\n #defaultTooltipTemplate\r\n let-value\r\n >\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"tooltipTemplate()?.template || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('low')\"\r\n >\r\n </ng-template>\r\n </div>\r\n }\r\n <button\r\n #focusableElement\r\n type=\"button\"\r\n class=\"ard-slider-handle\"\r\n [tabindex]=\"tabIndex()\"\r\n [class.ard-grabbed]=\"isSliderHandleGrabbed() && currentHandle() === 2\"\r\n (pointerdown)=\"onPointerDownOnHandle($event, 2)\"\r\n (focus)=\"onHandleFocus($event, 2)\"\r\n (blur)=\"onBlur($event)\"\r\n [style]=\"{ left: getHandlePosition(2) }\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-hitbox\"></div>\r\n </button>\r\n @if (tooltipBehavior() !== 'never') {\r\n <div\r\n class=\"ard-slider-tooltip-wrapper\"\r\n [class.ard-tooltip-always]=\"tooltipBehavior() === 'always'\"\r\n [style]=\"{ left: getHandlePosition(2) }\"\r\n >\r\n <ng-template\r\n #defaultTooltipTemplate\r\n let-value\r\n >\r\n <div class=\"ard-slider-tooltip\">{{ value }}</div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"tooltipTemplate()?.template || defaultTooltipTemplate\"\r\n [ngTemplateOutletContext]=\"getTooltipContext('high')\"\r\n >\r\n </ng-template>\r\n </div>\r\n }\r\n </div>\r\n @if (labelObjects().length) {\r\n <div\r\n class=\"ard-slider-label-container\"\r\n *ngIf=\"labelObjects.length\"\r\n >\r\n @for (label of labelObjects(); track $index) {\r\n <div\r\n class=\"ard-slider-label\"\r\n [style]=\"{ left: label.positionPercent }\"\r\n >\r\n {{ label.label }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #handleThumbBase>\r\n <div class=\"ard-slide-thumb\"></div>\r\n</ng-template>\r\n", styles: ["body.ard-prevent-touch-actions,body.ard-prevent-touch-actions *{touch-action:none}.ard-range-slider-container-master{display:flex;flex-direction:column}.ard-range-slider-container-master.ard-labels-top{flex-direction:column-reverse}.ard-range-slider-container-master .ard-slider-tooltip-wrapper{position:absolute;transform:translate(-50%);pointer-events:none}.ard-range-slider-container-master.ard-tooltip-top .ard-slider-tooltip-wrapper{bottom:100%}.ard-range-slider-container-master.ard-tooltip-bottom .ard-slider-tooltip-wrapper{top:100%}.ard-range-slider-container-master .ard-slider-handle{position:absolute;left:0;transform:translate(-50%)}.ard-range-slider-container-master .ard-slider-tooltip,.ard-range-slider-container-master .ard-slider-track,.ard-range-slider-container-master .ard-value-tick-container{position:relative}.ard-range-slider-container-master .ard-value-tick{position:absolute}.ard-range-slider-container-master .ard-slider-label-container{position:relative;width:100%;height:1em}.ard-range-slider-container-master .ard-slider-label{position:absolute;line-height:1em}\n"] }]
141
- }], ctorParameters: () => [{ type: undefined, decorators: [{
142
- type: Inject,
143
- args: [ARD_SLIDER_DEFAULTS]
144
- }] }], propDecorators: { onPointerMove: [{
145
- type: HostListener,
146
- args: ['document:mousemove', ['$event']]
147
- }, {
148
- type: HostListener,
149
- args: ['document:touchmove', ['$event']]
150
- }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2xpZGVyL3JhbmdlLXNsaWRlci9yYW5nZS1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9zbGlkZXIvcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLG9CQUFvQixDQUFDOzs7QUFVNUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQTRCO0lBSzFFLFlBQXlDLFFBQTJCO1FBQ2xFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUxULGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsY0FBYyxDQUFDO1FBTzlCLFdBQU0sR0FBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBb0RuRSxtQkFBbUI7UUFDbkIsa0JBQWEsR0FBaUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQW1FekQseUJBQXlCO1FBQ2hCLGtCQUFhLEdBQUcsTUFBTSxDQUFlLElBQUksQ0FBQyxDQUFDO0lBM0hwRCxDQUFDO0lBSVEsUUFBUTtRQUNmLEtBQUss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QyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJvdW5kVG9QcmVjaXNpb24gfSBmcm9tICdtb3JlLXJvdW5kaW5nJztcclxuaW1wb3J0IHsgaXNOdW1iZXIsIGlzT2JqZWN0IH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5pbXBvcnQgeyBfQWJzdHJhY3RTbGlkZXIgfSBmcm9tICcuLi9hYnN0cmFjdC1zbGlkZXInO1xyXG5pbXBvcnQgeyBBUkRfU0xJREVSX0RFRkFVTFRTLCBBcmRTbGlkZXJEZWZhdWx0cyB9IGZyb20gJy4uL3NsaWRlci5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IFNsaWRlclJhbmdlLCBTbGlkZXJUb29sdGlwQ29udGV4dCB9IGZyb20gJy4uL3NsaWRlci50eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1yYW5nZS1zbGlkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhbmdlLXNsaWRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1SYW5nZVNsaWRlckNvbXBvbmVudCBleHRlbmRzIF9BYnN0cmFjdFNsaWRlcjxTbGlkZXJSYW5nZT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IGNvbXBvbmVudElkID0gJzEwNic7XHJcbiAgcmVhZG9ubHkgY29tcG9uZW50TmFtZSA9ICdyYW5nZS1zbGlkZXInO1xyXG5cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogQXJkU2xpZGVyRGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfU0xJREVSX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkU2xpZGVyRGVmYXVsdHMpIHtcclxuICAgIHN1cGVyKGRlZmF1bHRzKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfdmFsdWU6IFNsaWRlclJhbmdlID0geyBsb3c6IC1JbmZpbml0eSwgaGlnaDogSW5maW5pdHkgfTtcclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgaWYgKHRoaXMuX3ZhbHVlLmxvdyAhPT0gLUluZmluaXR5ICYmIHRoaXMuX3ZhbHVlLmhpZ2ggIT09IEluZmluaXR5KSByZXR1cm47XHJcblxyXG4gICAgdGhpcy53cml0ZVZhbHVlKHsgbG93OiB0aGlzLm1pbigpLCBoaWdoOiB0aGlzLm1heCgpIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8hIHdyaXRlVmFsdWVcclxuICBwcml2YXRlIF9pc1ZhbGlkT2JqZWN0KHY6IGFueSk6IHYgaXMgU2xpZGVyUmFuZ2Uge1xyXG4gICAgcmV0dXJuIGlzT2JqZWN0KHYpICYmIGlzTnVtYmVyKHZbJ2xvdyddKSAmJiBpc051bWJlcih2WydoaWdoJ10pO1xyXG4gIH1cclxuICBwcml2YXRlIF9pc1ZhbGlkVHVwbGUodjogYW55KTogdiBpcyBbbnVtYmVyLCBudW1iZXJdIHtcclxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHYpICYmIGlzTnVtYmVyKHZbMF0pICYmIGlzTnVtYmVyKHZbMV0pICYmIHYubGVuZ3RoID09PSAyO1xyXG4gIH1cclxuICBwcml2YXRlIF9hcnJheVZhbHVlVG9PYmplY3RWYWx1ZSh2OiBbbnVtYmVyLCBudW1iZXJdKTogU2xpZGVyUmFuZ2Uge1xyXG4gICAgcmV0dXJuIHsgbG93OiB2WzBdLCBoaWdoOiB2WzFdIH07XHJcbiAgfVxyXG4gIHByaXZhdGUgX25vcm1hbGl6ZVNsaWRlclJhbmdlKHY6IFNsaWRlclJhbmdlKTogU2xpZGVyUmFuZ2Uge1xyXG4gICAgaWYgKHYubG93IDw9IHYuaGlnaCkgcmV0dXJuIHY7XHJcbiAgICByZXR1cm4geyBsb3c6IHYuaGlnaCwgaGlnaDogdi5sb3cgfTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5faXNWYWxpZE9iamVjdCh2KSAmJiAhdGhpcy5faXNWYWxpZFR1cGxlKHYpKSB7XHJcbiAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGxvdyA9IC1JbmZpbml0eTtcclxuICAgIGxldCBoaWdoID0gSW5maW5pdHk7XHJcbiAgICBpZiAodGhpcy5faXNWYWxpZE9iamVjdCh2KSkge1xyXG4gICAgICBsb3cgPSB2LmxvdztcclxuICAgICAgaGlnaCA9IHYuaGlnaDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5faXNWYWxpZFR1cGxlKHYpKSB7XHJcbiAgICAgIGxvdyA9IHZbMF07XHJcbiAgICAgIGhpZ2ggPSB2WzFdO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbG93Q2xhbXBlZCA9IHRoaXMuX2NsYW1wVmFsdWUobG93KTtcclxuICAgIGNvbnN0IGhpZ2hDbGFtcGVkID0gdGhpcy5fY2xhbXBWYWx1ZShoaWdoKTtcclxuICAgIGNvbnN0IHZhbHVlOiBTbGlkZXJSYW5nZSA9IHRoaXMuX2FycmF5VmFsdWVUb09iamVjdFZhbHVlKFtsb3dDbGFtcGVkLCBoaWdoQ2xhbXBlZF0pO1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3Bvc2l0aW9uUGVyY2VudFswXSA9IHRoaXMuX3ZhbHVlVG9QZXJjZW50KGxvd0NsYW1wZWQpO1xyXG4gICAgdGhpcy5fcG9zaXRpb25QZXJjZW50WzFdID0gdGhpcy5fdmFsdWVUb1BlcmNlbnQoaGlnaENsYW1wZWQpO1xyXG4gICAgdGhpcy5fdXBkYXRlVG9vbHRpcFZhbHVlKCk7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBTbGlkZXJSYW5nZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplU2xpZGVyUmFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gIH1cclxuICBvdmVycmlkZSBzZXQgdmFsdWUodjogYW55KSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG5cclxuICAvLyEgdG9vbHRpcCB1cGRhdGVyXHJcbiAgX3Rvb2x0aXBWYWx1ZTogU2xpZGVyUmFuZ2U8c3RyaW5nIHwgbnVtYmVyPiA9IHRoaXMudmFsdWU7XHJcblxyXG4gIHByb3RlY3RlZCBfdXBkYXRlVG9vbHRpcFZhbHVlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdjogU2xpZGVyUmFuZ2U8c3RyaW5nIHwgbnVtYmVyPiA9IE9iamVjdC5jcmVhdGUodGhpcy5fdmFsdWUpO1xyXG4gICAgY29uc3QgZm9ybWF0Rm4gPSB0aGlzLnRvb2x0aXBGb3JtYXRGbigpO1xyXG4gICAgaWYgKGZvcm1hdEZuKSB7XHJcbiAgICAgIHYubG93ID0gZm9ybWF0Rm4odi5sb3cgYXMgbnVtYmVyKTtcclxuICAgICAgdi5oaWdoID0gZm9ybWF0Rm4odi5oaWdoIGFzIG51bWJlcik7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90b29sdGlwVmFsdWUgPSB2O1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9vbHRpcENvbnRleHQodHlwZTogJ2xvdycgfCAnaGlnaCcpOiBTbGlkZXJUb29sdGlwQ29udGV4dCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogdGhpcy5fdG9vbHRpcFZhbHVlW3R5cGVdLFxyXG4gICAgICAkaW1wbGljaXQ6IHRoaXMuX3Rvb2x0aXBWYWx1ZVt0eXBlXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyEgbWV0aG9kcyBmb3IgcHJvZ3JhbW1hdGljIG1hbmlwdWxhdGlvblxyXG4gIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB7IGxvdzogLUluZmluaXR5LCBoaWdoOiBJbmZpbml0eSB9O1xyXG4gICAgdGhpcy5fcG9zaXRpb25QZXJjZW50WzBdID0gMDtcclxuICAgIHRoaXMuX3Bvc2l0aW9uUGVyY2VudFsxXSA9IDE7XHJcbiAgfVxyXG5cclxuICAvLyEgdHJhY2sgb3ZlcmxheSBnZXR0ZXJzXHJcbiAgZ2V0IHRyYWNrT3ZlcmxheUxlZnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBNYXRoLm1pbiguLi50aGlzLl9wb3NpdGlvblBlcmNlbnQpICogMTAwICsgJyUnO1xyXG4gIH1cclxuICBnZXQgdHJhY2tPdmVybGF5V2lkdGgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBNYXRoLmFicyh0aGlzLl9wb3NpdGlvblBlcmNlbnRbMF0gLSB0aGlzLl9wb3NpdGlvblBlcmNlbnRbMV0hKSAqIDEwMCArICclJztcclxuICB9XHJcblxyXG4gIC8vISBldmVudCBoYW5kbGVyc1xyXG4gIG9uVHJhY2tIaXRib3hQb2ludGVyRG93bihldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dyaXRlVmFsdWVGcm9tRXZlbnQoZXZlbnQpO1xyXG4gICAgdGhpcy5vblBvaW50ZXJEb3duT25IYW5kbGUoZXZlbnQpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNobW92ZScsIFsnJGV2ZW50J10pXHJcbiAgb25Qb2ludGVyTW92ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fc2hvdWxkQ2hlY2tGb3JNb3ZlbWVudCkgcmV0dXJuO1xyXG4gICAgaWYgKCF0aGlzLl9ib2R5SGFzQ2xhc3MpIHtcclxuICAgICAgdGhpcy5fYm9keUhhc0NsYXNzID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdhcmQtcHJldmVudC10b3VjaC1hY3Rpb25zJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl93cml0ZVZhbHVlRnJvbUV2ZW50KGV2ZW50LCB0aGlzLl9ncmFiYmVkSGFuZGxlSWQoKSk7XHJcbiAgfVxyXG5cclxuICAvLyEgcG9zaXRpb24gY2FsY3VsYXRvcnNcclxuICBwcm90ZWN0ZWQgX3BlcmNlbnRWYWx1ZVRvVmFsdWUocGVyY2VudDogbnVtYmVyLCBoYW5kbGVJZDogbnVtYmVyKTogU2xpZGVyUmFuZ2Uge1xyXG4gICAgY29uc3QgbWluTWF4RGlmZmVyZW5jZSA9IE1hdGguYWJzKHRoaXMubWluKCkgLSB0aGlzLm1heCgpKTtcclxuICAgIGxldCBuZXdWYWwgPSBwZXJjZW50ICogbWluTWF4RGlmZmVyZW5jZSArIHRoaXMubWluKCk7XHJcbiAgICAvL3JvdW5kIHRvIDkgZGVjaW1hbCBwbGFjZXMgdG8gYXZvaWQgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBlcnJvcnNcclxuICAgIC8vOSBpcyBhbiBhcmJpdHJhcnkgbnVtYmVyIHRoYXQganVzdCB3b3JrcyB3ZWxsLiDCr1xcXyjjg4QpXy/Cr1xyXG4gICAgbmV3VmFsID0gcm91bmRUb1ByZWNpc2lvbihuZXdWYWwsIDkpO1xyXG5cclxuICAgIGNvbnN0IG5ld1ZhbE9iaiA9IHsgbG93OiB0aGlzLl92YWx1ZS5sb3csIGhpZ2g6IHRoaXMuX3ZhbHVlLmhpZ2ggfTtcclxuICAgIGlmIChoYW5kbGVJZCA9PT0gMSkge1xyXG4gICAgICBuZXdWYWxPYmoubG93ID0gbmV3VmFsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3VmFsT2JqLmhpZ2ggPSBuZXdWYWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VmFsT2JqO1xyXG4gIH1cclxuXHJcbiAgLy8hIGhhbmRsZSBmb2N1cyBtb25pdG9yc1xyXG4gIHJlYWRvbmx5IGN1cnJlbnRIYW5kbGUgPSBzaWduYWw8MSB8IDIgfCBudWxsPihudWxsKTtcclxuICBvbkhhbmRsZUZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50LCBoYW5kbGVJZDogMSB8IDIpIHtcclxuICAgIHRoaXMub25Gb2N1cyhldmVudCk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50SGFuZGxlLnNldChoYW5kbGVJZCk7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCkge1xyXG4gICAgc3VwZXIub25CbHVyKGV2ZW50KTtcclxuICAgIHRoaXMuY3VycmVudEhhbmRsZS5zZXQobnVsbCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImFyZC1yYW5nZS1zbGlkZXItY29udGFpbmVyLW1hc3RlclwiXHJcbiAgW25nQ2xhc3NdPVwibmdDbGFzc2VzKClcIlxyXG4gIFtjbGFzcy5hcmQtc2xpZGVyLWhhbmRsZS1ncmFiYmVkXT1cImlzU2xpZGVySGFuZGxlR3JhYmJlZCgpXCJcclxuICBbc3R5bGVdPVwieyAnLS1fYXJkLXNsaWRlci10cmFuc2l0aW9uJzogc2xpZGVyVHJhbnNpdGlvbigpIH1cIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1zbGlkZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICN0cmFja1xyXG4gICAgICBjbGFzcz1cImFyZC1zbGlkZXItdHJhY2tcIlxyXG4gICAgICAocG9pbnRlcmRvd24pPVwib25UcmFja0hpdGJveFBvaW50ZXJEb3duKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWhpdGJveFwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLXNsaWRlci10cmFjay1vdmVybGF5IGFyZC1zbGlkZXItdHJhY2staW5hY3RpdmVcIj48L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiYXJkLXNsaWRlci10cmFjay1vdmVybGF5IGFyZC1zbGlkZXItdHJhY2stYWN0aXZlXCJcclxuICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgbGVmdDogdHJhY2tPdmVybGF5TGVmdCxcclxuICAgICAgICAgIHdpZHRoOiB0cmFja092ZXJsYXlXaWR0aFxyXG4gICAgICAgIH1cIlxyXG4gICAgICA+PC9kaXY+XHJcbiAgICAgIEBpZiAoc2hvd1ZhbHVlVGlja3MoKSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdmFsdWUtdGljay1jb250YWluZXJcIj5cclxuICAgICAgICAgIEBmb3IgKHRpY2sgb2YgX3RpY2tBcnJheSgpOyB0cmFjayB0aWNrKSB7XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImFyZC12YWx1ZS10aWNrXCJcclxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBsZWZ0OiB0aWNrIH1cIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJhcmQtc2xpZGVyLWhhbmRsZVwiXHJcbiAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgW2NsYXNzLmFyZC1ncmFiYmVkXT1cImlzU2xpZGVySGFuZGxlR3JhYmJlZCgpICYmIGN1cnJlbnRIYW5kbGUoKSA9PT0gMVwiXHJcbiAgICAgIChwb2ludGVyZG93bik9XCJvblBvaW50ZXJEb3duT25IYW5kbGUoJGV2ZW50LCAxKVwiXHJcbiAgICAgIChmb2N1cyk9XCJvbkhhbmRsZUZvY3VzKCRldmVudCwgMSlcIlxyXG4gICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIFtzdHlsZV09XCJ7IGxlZnQ6IGdldEhhbmRsZVBvc2l0aW9uKDEpIH1cIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1oaXRib3hcIj48L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgQGlmICh0b29sdGlwQmVoYXZpb3IoKSAhPT0gJ25ldmVyJykge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJhcmQtc2xpZGVyLXRvb2x0aXAtd3JhcHBlclwiXHJcbiAgICAgICAgW2NsYXNzLmFyZC10b29sdGlwLWFsd2F5c109XCJ0b29sdGlwQmVoYXZpb3IoKSA9PT0gJ2Fsd2F5cydcIlxyXG4gICAgICAgIFtzdHlsZV09XCJ7IGxlZnQ6IGdldEhhbmRsZVBvc2l0aW9uKDEpIH1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAjZGVmYXVsdFRvb2x0aXBUZW1wbGF0ZVxyXG4gICAgICAgICAgbGV0LXZhbHVlXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1zbGlkZXItdG9vbHRpcFwiPnt7IHZhbHVlIH19PC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sdGlwVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdFRvb2x0aXBUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0VG9vbHRpcENvbnRleHQoJ2xvdycpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImFyZC1zbGlkZXItaGFuZGxlXCJcclxuICAgICAgW3RhYmluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICBbY2xhc3MuYXJkLWdyYWJiZWRdPVwiaXNTbGlkZXJIYW5kbGVHcmFiYmVkKCkgJiYgY3VycmVudEhhbmRsZSgpID09PSAyXCJcclxuICAgICAgKHBvaW50ZXJkb3duKT1cIm9uUG9pbnRlckRvd25PbkhhbmRsZSgkZXZlbnQsIDIpXCJcclxuICAgICAgKGZvY3VzKT1cIm9uSGFuZGxlRm9jdXMoJGV2ZW50LCAyKVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgW3N0eWxlXT1cInsgbGVmdDogZ2V0SGFuZGxlUG9zaXRpb24oMikgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9jdXMtb3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWhpdGJveFwiPjwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgICBAaWYgKHRvb2x0aXBCZWhhdmlvcigpICE9PSAnbmV2ZXInKSB7XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImFyZC1zbGlkZXItdG9vbHRpcC13cmFwcGVyXCJcclxuICAgICAgICBbY2xhc3MuYXJkLXRvb2x0aXAtYWx3YXlzXT1cInRvb2x0aXBCZWhhdmlvcigpID09PSAnYWx3YXlzJ1wiXHJcbiAgICAgICAgW3N0eWxlXT1cInsgbGVmdDogZ2V0SGFuZGxlUG9zaXRpb24oMikgfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICNkZWZhdWx0VG9vbHRpcFRlbXBsYXRlXHJcbiAgICAgICAgICBsZXQtdmFsdWVcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXNsaWRlci10b29sdGlwXCI+e3sgdmFsdWUgfX08L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2x0aXBUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0VG9vbHRpcFRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRUb29sdGlwQ29udGV4dCgnaGlnaCcpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgQGlmIChsYWJlbE9iamVjdHMoKS5sZW5ndGgpIHtcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJhcmQtc2xpZGVyLWxhYmVsLWNvbnRhaW5lclwiXHJcbiAgICAgICpuZ0lmPVwibGFiZWxPYmplY3RzLmxlbmd0aFwiXHJcbiAgICA+XHJcbiAgICAgIEBmb3IgKGxhYmVsIG9mIGxhYmVsT2JqZWN0cygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImFyZC1zbGlkZXItbGFiZWxcIlxyXG4gICAgICAgICAgW3N0eWxlXT1cInsgbGVmdDogbGFiZWwucG9zaXRpb25QZXJjZW50IH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGxhYmVsLmxhYmVsIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2hhbmRsZVRodW1iQmFzZT5cclxuICA8ZGl2IGNsYXNzPVwiYXJkLXNsaWRlLXRodW1iXCI+PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { ArdiumRangeSliderComponent } from './range-slider.component';
4
- import * as i0 from "@angular/core";
5
- export class ArdiumRangeSliderModule {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderModule, declarations: [ArdiumRangeSliderComponent], imports: [CommonModule], exports: [ArdiumRangeSliderComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderModule, imports: [CommonModule] }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumRangeSliderModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [ArdiumRangeSliderComponent],
14
- imports: [CommonModule],
15
- exports: [ArdiumRangeSliderComponent],
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2xpZGVyL3JhbmdlLXNsaWRlci9yYW5nZS1zbGlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU90RSxNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7Z0hBQXZCLHVCQUF1QixpQkFKbkIsMEJBQTBCLGFBQy9CLFlBQVksYUFDWiwwQkFBMEI7Z0hBRXpCLHVCQUF1QixZQUh4QixZQUFZOzs0RkFHWCx1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXJkaXVtUmFuZ2VTbGlkZXJDb21wb25lbnQgfSBmcm9tICcuL3JhbmdlLXNsaWRlci5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1SYW5nZVNsaWRlckNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW0FyZGl1bVJhbmdlU2xpZGVyQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bVJhbmdlU2xpZGVyTW9kdWxlIHt9XHJcbiJdfQ==