@acorex/components 18.16.0-next.8 → 19.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (697) hide show
  1. package/color-palette/lib/color-palette-picker.component.d.ts +1 -5
  2. package/comment/lib/comment-tools/comment-like/comment-like.component.d.ts +4 -2
  3. package/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.d.ts +31 -1
  4. package/fesm2022/acorex-components-action-sheet.mjs +11 -11
  5. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  6. package/fesm2022/acorex-components-alert.mjs +8 -8
  7. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  8. package/fesm2022/acorex-components-audio-wave.mjs +8 -8
  9. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  10. package/fesm2022/acorex-components-avatar.mjs +12 -11
  11. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  12. package/fesm2022/acorex-components-badge.mjs +8 -8
  13. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  14. package/fesm2022/acorex-components-bottom-navigation.mjs +12 -12
  15. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  16. package/fesm2022/acorex-components-breadcrumbs.mjs +12 -12
  17. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  18. package/fesm2022/acorex-components-button-group.mjs +12 -11
  19. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  20. package/fesm2022/acorex-components-button.mjs +16 -15
  21. package/fesm2022/acorex-components-button.mjs.map +1 -1
  22. package/fesm2022/acorex-components-calendar.mjs +15 -15
  23. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  24. package/fesm2022/acorex-components-check-box.mjs +8 -8
  25. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  26. package/fesm2022/acorex-components-chips.mjs +8 -8
  27. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  28. package/fesm2022/acorex-components-circular-progress.mjs +8 -8
  29. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  30. package/fesm2022/acorex-components-collapse.mjs +12 -11
  31. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  32. package/fesm2022/acorex-components-color-box.mjs +8 -8
  33. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  34. package/fesm2022/acorex-components-color-palette.mjs +53 -63
  35. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  36. package/fesm2022/acorex-components-comment.mjs +43 -38
  37. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  38. package/fesm2022/acorex-components-common.mjs +100 -89
  39. package/fesm2022/acorex-components-common.mjs.map +1 -1
  40. package/fesm2022/acorex-components-conversation.mjs +104 -77
  41. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  42. package/fesm2022/acorex-components-cron-job.mjs +54 -54
  43. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  44. package/fesm2022/acorex-components-data-pager.mjs +38 -32
  45. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  46. package/fesm2022/acorex-components-data-table.mjs +42 -36
  47. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  48. package/fesm2022/acorex-components-datetime-box.mjs +8 -8
  49. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  50. package/fesm2022/acorex-components-datetime-input.mjs +8 -8
  51. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  52. package/fesm2022/acorex-components-datetime-picker.mjs +8 -8
  53. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  54. package/fesm2022/acorex-components-decorators.mjs +20 -19
  55. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  56. package/fesm2022/acorex-components-dialog.mjs +11 -11
  57. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  58. package/fesm2022/acorex-components-drawer.mjs +16 -16
  59. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  60. package/fesm2022/acorex-components-dropdown-button.mjs +8 -8
  61. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  62. package/fesm2022/acorex-components-dropdown.mjs +15 -15
  63. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  64. package/fesm2022/acorex-components-form.mjs +21 -18
  65. package/fesm2022/acorex-components-form.mjs.map +1 -1
  66. package/fesm2022/acorex-components-image-editor.mjs +46 -43
  67. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  68. package/fesm2022/acorex-components-image.mjs +8 -8
  69. package/fesm2022/acorex-components-image.mjs.map +1 -1
  70. package/fesm2022/acorex-components-json-viewer.mjs +9 -9
  71. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  72. package/fesm2022/acorex-components-label.mjs +8 -8
  73. package/fesm2022/acorex-components-label.mjs.map +1 -1
  74. package/fesm2022/acorex-components-list.mjs +8 -8
  75. package/fesm2022/acorex-components-list.mjs.map +1 -1
  76. package/fesm2022/acorex-components-loading-dialog.mjs +11 -11
  77. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  78. package/fesm2022/acorex-components-loading.mjs +19 -18
  79. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  80. package/fesm2022/acorex-components-map.mjs +268 -11
  81. package/fesm2022/acorex-components-map.mjs.map +1 -1
  82. package/fesm2022/acorex-components-media-viewer.mjs +51 -51
  83. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  84. package/fesm2022/acorex-components-menu.mjs +19 -19
  85. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  86. package/fesm2022/acorex-components-nav.mjs +12 -12
  87. package/fesm2022/acorex-components-nav.mjs.map +1 -1
  88. package/fesm2022/acorex-components-navbar.mjs +8 -8
  89. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  90. package/fesm2022/acorex-components-notification.mjs +11 -11
  91. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  92. package/fesm2022/acorex-components-number-box.mjs +8 -8
  93. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  94. package/fesm2022/acorex-components-otp.mjs +9 -9
  95. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  96. package/fesm2022/acorex-components-page.mjs +10 -10
  97. package/fesm2022/acorex-components-paint.mjs +46 -35
  98. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  99. package/fesm2022/acorex-components-password-box.mjs +12 -12
  100. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  101. package/fesm2022/acorex-components-phone-box.mjs +8 -8
  102. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  103. package/fesm2022/acorex-components-picker.mjs +12 -11
  104. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  105. package/fesm2022/acorex-components-popover.mjs +8 -8
  106. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  107. package/fesm2022/acorex-components-popup.mjs +11 -11
  108. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  109. package/fesm2022/acorex-components-progress-bar.mjs +8 -8
  110. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  111. package/fesm2022/acorex-components-qrcode.mjs +8 -8
  112. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  113. package/fesm2022/acorex-components-radio.mjs +8 -8
  114. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  115. package/fesm2022/acorex-components-range-slider.mjs +18 -11
  116. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  117. package/fesm2022/acorex-components-rate-picker.mjs +8 -8
  118. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  119. package/fesm2022/acorex-components-result.mjs +8 -8
  120. package/fesm2022/acorex-components-result.mjs.map +1 -1
  121. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  122. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  123. package/fesm2022/acorex-components-scheduler.mjs +16 -16
  124. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  125. package/fesm2022/acorex-components-scss.mjs +4 -4
  126. package/fesm2022/acorex-components-search-box.mjs +8 -8
  127. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  128. package/fesm2022/acorex-components-select-box.mjs +8 -8
  129. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  130. package/fesm2022/acorex-components-selection-list.mjs +8 -8
  131. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  132. package/fesm2022/acorex-components-side-menu.mjs +12 -12
  133. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  134. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  135. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  136. package/fesm2022/acorex-components-slider.mjs +8 -8
  137. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  138. package/fesm2022/acorex-components-step-wizard.mjs +16 -15
  139. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  140. package/fesm2022/acorex-components-switch.mjs +12 -11
  141. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  142. package/fesm2022/acorex-components-tabs.mjs +44 -46
  143. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  144. package/fesm2022/acorex-components-tag.mjs +8 -8
  145. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  146. package/fesm2022/acorex-components-text-area.mjs +8 -8
  147. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  148. package/fesm2022/acorex-components-text-box.mjs +12 -11
  149. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  150. package/fesm2022/acorex-components-time-line.mjs +14 -14
  151. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  152. package/fesm2022/acorex-components-toast.mjs +11 -11
  153. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  154. package/fesm2022/acorex-components-tooltip.mjs +12 -11
  155. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  156. package/fesm2022/acorex-components-tree-view.mjs +13 -13
  157. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  158. package/fesm2022/acorex-components-uploader.mjs +27 -25
  159. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  160. package/fesm2022/acorex-components-wysiwyg.mjs +47 -47
  161. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  162. package/image-editor/lib/image-editor-view/image-editor-view.component.d.ts +1 -0
  163. package/map/index.d.ts +2 -1
  164. package/map/lib/map.component.d.ts +1 -1
  165. package/map/lib/map.config.d.ts +13 -0
  166. package/map/lib/map.service.d.ts +37 -0
  167. package/package.json +4 -166
  168. package/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.d.ts +5 -2
  169. package/paint/lib/paint/paint-view/paint-view.component.d.ts +6 -1
  170. package/range-slider/lib/range-slider.component.d.ts +1 -0
  171. package/esm2022/acorex-components.mjs +0 -5
  172. package/esm2022/action-sheet/acorex-components-action-sheet.mjs +0 -5
  173. package/esm2022/action-sheet/index.mjs +0 -5
  174. package/esm2022/action-sheet/lib/action-sheet.class.mjs +0 -2
  175. package/esm2022/action-sheet/lib/action-sheet.component.mjs +0 -109
  176. package/esm2022/action-sheet/lib/action-sheet.module.mjs +0 -54
  177. package/esm2022/action-sheet/lib/action-sheet.service.mjs +0 -60
  178. package/esm2022/alert/acorex-components-alert.mjs +0 -5
  179. package/esm2022/alert/index.mjs +0 -3
  180. package/esm2022/alert/lib/alert.component.mjs +0 -142
  181. package/esm2022/alert/lib/alert.module.mjs +0 -22
  182. package/esm2022/audio-wave/acorex-components-audio-wave.mjs +0 -5
  183. package/esm2022/audio-wave/index.mjs +0 -4
  184. package/esm2022/audio-wave/lib/audio-wave.component.mjs +0 -347
  185. package/esm2022/audio-wave/lib/audio-wave.module.mjs +0 -22
  186. package/esm2022/audio-wave/lib/interfaces/audio-wave.interface.mjs +0 -2
  187. package/esm2022/avatar/acorex-components-avatar.mjs +0 -5
  188. package/esm2022/avatar/index.mjs +0 -4
  189. package/esm2022/avatar/lib/avatar-group.component.mjs +0 -14
  190. package/esm2022/avatar/lib/avatar.component.mjs +0 -54
  191. package/esm2022/avatar/lib/avatar.module.mjs +0 -22
  192. package/esm2022/badge/acorex-components-badge.mjs +0 -5
  193. package/esm2022/badge/index.mjs +0 -3
  194. package/esm2022/badge/lib/badge.component.mjs +0 -30
  195. package/esm2022/badge/lib/badge.module.mjs +0 -19
  196. package/esm2022/bottom-navigation/acorex-components-bottom-navigation.mjs +0 -5
  197. package/esm2022/bottom-navigation/index.mjs +0 -4
  198. package/esm2022/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.mjs +0 -46
  199. package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +0 -67
  200. package/esm2022/bottom-navigation/lib/bottom-navigation.module.mjs +0 -22
  201. package/esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs +0 -5
  202. package/esm2022/breadcrumbs/index.mjs +0 -5
  203. package/esm2022/breadcrumbs/lib/breadcrumbs-item.class.mjs +0 -2
  204. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +0 -41
  205. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +0 -31
  206. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +0 -21
  207. package/esm2022/button/acorex-components-button.mjs +0 -5
  208. package/esm2022/button/index.mjs +0 -7
  209. package/esm2022/button/lib/button-item-list.component.mjs +0 -153
  210. package/esm2022/button/lib/button-item.class.mjs +0 -2
  211. package/esm2022/button/lib/button-item.component.mjs +0 -152
  212. package/esm2022/button/lib/button.class.mjs +0 -2
  213. package/esm2022/button/lib/button.component.mjs +0 -116
  214. package/esm2022/button/lib/button.module.mjs +0 -26
  215. package/esm2022/button-group/acorex-components-button-group.mjs +0 -5
  216. package/esm2022/button-group/index.mjs +0 -4
  217. package/esm2022/button-group/lib/button-group-item.component.mjs +0 -141
  218. package/esm2022/button-group/lib/button-group.component.mjs +0 -170
  219. package/esm2022/button-group/lib/button-group.module.mjs +0 -23
  220. package/esm2022/calendar/acorex-components-calendar.mjs +0 -5
  221. package/esm2022/calendar/index.mjs +0 -5
  222. package/esm2022/calendar/lib/calendar-range.component.mjs +0 -248
  223. package/esm2022/calendar/lib/calendar.class.mjs +0 -163
  224. package/esm2022/calendar/lib/calendar.component.mjs +0 -631
  225. package/esm2022/calendar/lib/calendar.module.mjs +0 -26
  226. package/esm2022/check-box/acorex-components-check-box.mjs +0 -5
  227. package/esm2022/check-box/index.mjs +0 -3
  228. package/esm2022/check-box/lib/check-box.component.mjs +0 -138
  229. package/esm2022/check-box/lib/check-box.module.mjs +0 -21
  230. package/esm2022/chips/acorex-components-chips.mjs +0 -5
  231. package/esm2022/chips/index.mjs +0 -3
  232. package/esm2022/chips/lib/chips.component.mjs +0 -36
  233. package/esm2022/chips/lib/chips.module.mjs +0 -19
  234. package/esm2022/circular-progress/acorex-components-circular-progress.mjs +0 -5
  235. package/esm2022/circular-progress/index.mjs +0 -3
  236. package/esm2022/circular-progress/lib/circular-progress.component.mjs +0 -95
  237. package/esm2022/circular-progress/lib/circular-progress.module.mjs +0 -17
  238. package/esm2022/collapse/acorex-components-collapse.mjs +0 -5
  239. package/esm2022/collapse/index.mjs +0 -4
  240. package/esm2022/collapse/lib/collapse-group.component.mjs +0 -171
  241. package/esm2022/collapse/lib/collapse.component.mjs +0 -198
  242. package/esm2022/collapse/lib/collapse.module.mjs +0 -21
  243. package/esm2022/color-box/acorex-components-color-box.mjs +0 -5
  244. package/esm2022/color-box/index.mjs +0 -3
  245. package/esm2022/color-box/lib/color-box.component.mjs +0 -92
  246. package/esm2022/color-box/lib/color-box.module.mjs +0 -24
  247. package/esm2022/color-palette/acorex-components-color-palette.mjs +0 -5
  248. package/esm2022/color-palette/index.mjs +0 -8
  249. package/esm2022/color-palette/lib/color-palette-input.component.mjs +0 -157
  250. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +0 -277
  251. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +0 -80
  252. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +0 -121
  253. package/esm2022/color-palette/lib/color-palette.class.mjs +0 -238
  254. package/esm2022/color-palette/lib/color-palette.component.mjs +0 -58
  255. package/esm2022/color-palette/lib/color-palette.module.mjs +0 -66
  256. package/esm2022/comment/acorex-components-comment.mjs +0 -5
  257. package/esm2022/comment/index.mjs +0 -10
  258. package/esm2022/comment/lib/comment-container/comment-container.component.mjs +0 -37
  259. package/esm2022/comment/lib/comment-item/comment-item.component.mjs +0 -37
  260. package/esm2022/comment/lib/comment-tools/comment-date/comment-date.component.mjs +0 -16
  261. package/esm2022/comment/lib/comment-tools/comment-like/comment-like.component.mjs +0 -23
  262. package/esm2022/comment/lib/comment-tools/comment-menu-options/comment-menu-options.component.mjs +0 -16
  263. package/esm2022/comment/lib/comment-tools/comment-reply-more/comment-reply-more.component.mjs +0 -12
  264. package/esm2022/comment/lib/comment-tools/comment-reply-text/comment-reply-text.component.mjs +0 -12
  265. package/esm2022/comment/lib/comment-view/comment-view.component.mjs +0 -15
  266. package/esm2022/comment/lib/comment.module.mjs +0 -71
  267. package/esm2022/common/acorex-components-common.mjs +0 -5
  268. package/esm2022/common/index.mjs +0 -31
  269. package/esm2022/common/lib/classes/components.class.mjs +0 -76
  270. package/esm2022/common/lib/classes/datalist.class.mjs +0 -50
  271. package/esm2022/common/lib/classes/datasource.class.mjs +0 -134
  272. package/esm2022/common/lib/classes/events.class.mjs +0 -79
  273. package/esm2022/common/lib/classes/styles.class.mjs +0 -13
  274. package/esm2022/common/lib/common.module.mjs +0 -22
  275. package/esm2022/common/lib/components/base-component.class.mjs +0 -74
  276. package/esm2022/common/lib/components/button-base-component.class.mjs +0 -88
  277. package/esm2022/common/lib/components/color-component.class.mjs +0 -25
  278. package/esm2022/common/lib/components/colorlook-component.class.mjs +0 -6
  279. package/esm2022/common/lib/components/input-base-value-component.class.mjs +0 -54
  280. package/esm2022/common/lib/components/interactive-component.class.mjs +0 -129
  281. package/esm2022/common/lib/components/look-component.class.mjs +0 -33
  282. package/esm2022/common/lib/components/selection-base.component.class.mjs +0 -233
  283. package/esm2022/common/lib/components/value-component.class.mjs +0 -232
  284. package/esm2022/common/lib/directives/auto-focus.directive.mjs +0 -63
  285. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +0 -51
  286. package/esm2022/common/lib/directives/hotkey.directive.mjs +0 -80
  287. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +0 -60
  288. package/esm2022/common/lib/directives/inverted-color.directive.mjs +0 -52
  289. package/esm2022/common/lib/directives/responsive.directive.mjs +0 -37
  290. package/esm2022/common/lib/directives/ripple.directive.mjs +0 -65
  291. package/esm2022/common/lib/services/dom.service.mjs +0 -16
  292. package/esm2022/common/lib/services/hotkey.service.mjs +0 -52
  293. package/esm2022/common/lib/types/base/button.type.mjs +0 -18
  294. package/esm2022/common/lib/types/base/color.type.mjs +0 -16
  295. package/esm2022/common/lib/types/base/component.types.mjs +0 -27
  296. package/esm2022/common/lib/types/base/events.types.mjs +0 -19
  297. package/esm2022/common/lib/types/base/index.mjs +0 -8
  298. package/esm2022/common/lib/types/base/interactive.type.mjs +0 -31
  299. package/esm2022/common/lib/types/base/look.type.mjs +0 -16
  300. package/esm2022/common/lib/types/base/value.type.mjs +0 -19
  301. package/esm2022/common/lib/types/direction.mjs +0 -2
  302. package/esm2022/common/lib/types/orientation.mjs +0 -2
  303. package/esm2022/common/lib/types/placement.mjs +0 -166
  304. package/esm2022/common/lib/types/range.mjs +0 -2
  305. package/esm2022/common/lib/types/selection-mode.mjs +0 -5
  306. package/esm2022/conversation/acorex-components-conversation.mjs +0 -5
  307. package/esm2022/conversation/index.mjs +0 -19
  308. package/esm2022/conversation/lib/classes/events.interface.mjs +0 -4
  309. package/esm2022/conversation/lib/conversation-container/conversation-container.component.mjs +0 -15
  310. package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +0 -193
  311. package/esm2022/conversation/lib/conversation-input/conversation-input.interface.mjs +0 -2
  312. package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +0 -110
  313. package/esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.mjs +0 -120
  314. package/esm2022/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.mjs +0 -79
  315. package/esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.mjs +0 -69
  316. package/esm2022/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.mjs +0 -24
  317. package/esm2022/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.mjs +0 -130
  318. package/esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.mjs +0 -31
  319. package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +0 -190
  320. package/esm2022/conversation/lib/conversation-view/conversation-view.component.mjs +0 -52
  321. package/esm2022/conversation/lib/conversation.module.mjs +0 -200
  322. package/esm2022/conversation/lib/conversation.types.mjs +0 -10
  323. package/esm2022/conversation/lib/services/conversation-message-type-registry.service.mjs +0 -20
  324. package/esm2022/conversation/lib/services/conversation.service.mjs +0 -14
  325. package/esm2022/conversation/lib/services/recording.service.mjs +0 -76
  326. package/esm2022/cron-job/acorex-components-cron-job.mjs +0 -5
  327. package/esm2022/cron-job/index.mjs +0 -9
  328. package/esm2022/cron-job/lib/cron-job-container/cron-job-container.component.mjs +0 -107
  329. package/esm2022/cron-job/lib/cron-job.module.mjs +0 -80
  330. package/esm2022/cron-job/lib/cron-job.service.mjs +0 -60
  331. package/esm2022/cron-job/lib/day/day.component.mjs +0 -66
  332. package/esm2022/cron-job/lib/day/day.model.mjs +0 -88
  333. package/esm2022/cron-job/lib/day/day.service.mjs +0 -196
  334. package/esm2022/cron-job/lib/hours/hours.component.mjs +0 -43
  335. package/esm2022/cron-job/lib/hours/hours.model.mjs +0 -8
  336. package/esm2022/cron-job/lib/hours/hours.service.mjs +0 -82
  337. package/esm2022/cron-job/lib/minutes/minutes.component.mjs +0 -43
  338. package/esm2022/cron-job/lib/minutes/minutes.model.mjs +0 -8
  339. package/esm2022/cron-job/lib/minutes/minutes.service.mjs +0 -82
  340. package/esm2022/cron-job/lib/month/month.component.mjs +0 -52
  341. package/esm2022/cron-job/lib/month/month.model.mjs +0 -8
  342. package/esm2022/cron-job/lib/month/month.service.mjs +0 -96
  343. package/esm2022/cron-job/lib/seconds/seconds.component.mjs +0 -43
  344. package/esm2022/cron-job/lib/seconds/seconds.model.mjs +0 -8
  345. package/esm2022/cron-job/lib/seconds/seconds.service.mjs +0 -82
  346. package/esm2022/cron-job/lib/types/iexpression.mjs +0 -2
  347. package/esm2022/cron-job/lib/types/shared.model.mjs +0 -49
  348. package/esm2022/cron-job/lib/year/year.component.mjs +0 -50
  349. package/esm2022/cron-job/lib/year/year.model.mjs +0 -28
  350. package/esm2022/cron-job/lib/year/year.service.mjs +0 -82
  351. package/esm2022/data-pager/acorex-components-data-pager.mjs +0 -5
  352. package/esm2022/data-pager/index.mjs +0 -10
  353. package/esm2022/data-pager/lib/data-pager-base.component.mjs +0 -52
  354. package/esm2022/data-pager/lib/data-pager-info.component.mjs +0 -50
  355. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +0 -90
  356. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +0 -113
  357. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +0 -166
  358. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +0 -105
  359. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +0 -112
  360. package/esm2022/data-pager/lib/data-pager.component.mjs +0 -298
  361. package/esm2022/data-pager/lib/data-pager.module.mjs +0 -73
  362. package/esm2022/data-table/acorex-components-data-table.mjs +0 -5
  363. package/esm2022/data-table/index.mjs +0 -11
  364. package/esm2022/data-table/lib/base-data-table.class.mjs +0 -46
  365. package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +0 -61
  366. package/esm2022/data-table/lib/columns/data-table-column.mjs +0 -34
  367. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +0 -128
  368. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +0 -343
  369. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +0 -128
  370. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +0 -168
  371. package/esm2022/data-table/lib/data-table/data-table.component.mjs +0 -513
  372. package/esm2022/data-table/lib/data-table.module.mjs +0 -107
  373. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +0 -438
  374. package/esm2022/datetime-box/acorex-components-datetime-box.mjs +0 -5
  375. package/esm2022/datetime-box/index.mjs +0 -3
  376. package/esm2022/datetime-box/lib/datetime-box.component.mjs +0 -186
  377. package/esm2022/datetime-box/lib/datetime-box.module.mjs +0 -26
  378. package/esm2022/datetime-input/acorex-components-datetime-input.mjs +0 -5
  379. package/esm2022/datetime-input/index.mjs +0 -3
  380. package/esm2022/datetime-input/lib/datetime-input.component.mjs +0 -673
  381. package/esm2022/datetime-input/lib/datetime-input.module.mjs +0 -23
  382. package/esm2022/datetime-picker/acorex-components-datetime-picker.mjs +0 -5
  383. package/esm2022/datetime-picker/index.mjs +0 -4
  384. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +0 -389
  385. package/esm2022/datetime-picker/lib/datetime-picker.config.mjs +0 -22
  386. package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +0 -44
  387. package/esm2022/decorators/acorex-components-decorators.mjs +0 -5
  388. package/esm2022/decorators/index.mjs +0 -6
  389. package/esm2022/decorators/lib/components/clear-button.component.mjs +0 -80
  390. package/esm2022/decorators/lib/components/close-button.component.mjs +0 -65
  391. package/esm2022/decorators/lib/components/generic-content.component.mjs +0 -42
  392. package/esm2022/decorators/lib/components/icon.component.mjs +0 -37
  393. package/esm2022/decorators/lib/decorators.module.mjs +0 -24
  394. package/esm2022/dialog/acorex-components-dialog.mjs +0 -5
  395. package/esm2022/dialog/index.mjs +0 -5
  396. package/esm2022/dialog/lib/dialog.class.mjs +0 -2
  397. package/esm2022/dialog/lib/dialog.component.mjs +0 -77
  398. package/esm2022/dialog/lib/dialog.module.mjs +0 -48
  399. package/esm2022/dialog/lib/dialog.service.mjs +0 -168
  400. package/esm2022/drawer/acorex-components-drawer.mjs +0 -5
  401. package/esm2022/drawer/index.mjs +0 -4
  402. package/esm2022/drawer/lib/drawer/drawer-container/drawer-container.component.mjs +0 -32
  403. package/esm2022/drawer/lib/drawer/drawer-item/drawer.component.mjs +0 -157
  404. package/esm2022/drawer/lib/drawer.module.mjs +0 -22
  405. package/esm2022/drawer/lib/drawer.service.mjs +0 -13
  406. package/esm2022/dropdown/acorex-components-dropdown.mjs +0 -5
  407. package/esm2022/dropdown/index.mjs +0 -5
  408. package/esm2022/dropdown/lib/dropdown-box.class.mjs +0 -50
  409. package/esm2022/dropdown/lib/dropdown-box.component.mjs +0 -160
  410. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +0 -221
  411. package/esm2022/dropdown/lib/dropdown.module.mjs +0 -25
  412. package/esm2022/dropdown-button/acorex-components-dropdown-button.mjs +0 -5
  413. package/esm2022/dropdown-button/index.mjs +0 -3
  414. package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +0 -124
  415. package/esm2022/dropdown-button/lib/dropdown-button.module.mjs +0 -26
  416. package/esm2022/form/acorex-components-form.mjs +0 -5
  417. package/esm2022/form/index.mjs +0 -7
  418. package/esm2022/form/lib/form-field.component.mjs +0 -142
  419. package/esm2022/form/lib/form.component.mjs +0 -205
  420. package/esm2022/form/lib/form.config.mjs +0 -16
  421. package/esm2022/form/lib/form.module.mjs +0 -27
  422. package/esm2022/form/lib/validation-rule.directive.mjs +0 -36
  423. package/esm2022/form/lib/validation-summary.component.mjs +0 -157
  424. package/esm2022/image/acorex-components-image.mjs +0 -5
  425. package/esm2022/image/index.mjs +0 -3
  426. package/esm2022/image/lib/image.component.mjs +0 -118
  427. package/esm2022/image/lib/image.module.mjs +0 -19
  428. package/esm2022/image-editor/acorex-components-image-editor.mjs +0 -5
  429. package/esm2022/image-editor/index.mjs +0 -8
  430. package/esm2022/image-editor/lib/image-editor-container/image-editor-container.component.mjs +0 -24
  431. package/esm2022/image-editor/lib/image-editor-toolbar/image-editor-toolbar.component.mjs +0 -69
  432. package/esm2022/image-editor/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.mjs +0 -36
  433. package/esm2022/image-editor/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.mjs +0 -37
  434. package/esm2022/image-editor/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.mjs +0 -57
  435. package/esm2022/image-editor/lib/image-editor-view/image-editor-view.component.mjs +0 -359
  436. package/esm2022/image-editor/lib/image-editor.module.mjs +0 -72
  437. package/esm2022/image-editor/lib/image-editor.service.mjs +0 -23
  438. package/esm2022/index.mjs +0 -2
  439. package/esm2022/json-viewer/acorex-components-json-viewer.mjs +0 -5
  440. package/esm2022/json-viewer/index.mjs +0 -3
  441. package/esm2022/json-viewer/lib/json-viewer/json-viewer.component.mjs +0 -43
  442. package/esm2022/json-viewer/lib/json-viewer.module.mjs +0 -23
  443. package/esm2022/label/acorex-components-label.mjs +0 -5
  444. package/esm2022/label/index.mjs +0 -3
  445. package/esm2022/label/lib/label.component.mjs +0 -78
  446. package/esm2022/label/lib/label.module.mjs +0 -21
  447. package/esm2022/list/acorex-components-list.mjs +0 -5
  448. package/esm2022/list/index.mjs +0 -3
  449. package/esm2022/list/lib/list.component.mjs +0 -295
  450. package/esm2022/list/lib/list.module.mjs +0 -23
  451. package/esm2022/loading/acorex-components-loading.mjs +0 -5
  452. package/esm2022/loading/index.mjs +0 -7
  453. package/esm2022/loading/lib/loading-spinner.component.mjs +0 -62
  454. package/esm2022/loading/lib/loading.component.mjs +0 -80
  455. package/esm2022/loading/lib/loading.config.mjs +0 -17
  456. package/esm2022/loading/lib/loading.directive.mjs +0 -39
  457. package/esm2022/loading/lib/loading.module.mjs +0 -27
  458. package/esm2022/loading/lib/loading.service.mjs +0 -123
  459. package/esm2022/loading-dialog/acorex-components-loading-dialog.mjs +0 -5
  460. package/esm2022/loading-dialog/index.mjs +0 -5
  461. package/esm2022/loading-dialog/lib/loading-dialog.class.mjs +0 -2
  462. package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +0 -98
  463. package/esm2022/loading-dialog/lib/loading-dialog.module.mjs +0 -27
  464. package/esm2022/loading-dialog/lib/loading-dialog.service.mjs +0 -37
  465. package/esm2022/map/acorex-components-map.mjs +0 -5
  466. package/esm2022/map/index.mjs +0 -3
  467. package/esm2022/map/lib/map.component.mjs +0 -182
  468. package/esm2022/map/lib/map.module.mjs +0 -18
  469. package/esm2022/media-viewer/acorex-components-media-viewer.mjs +0 -5
  470. package/esm2022/media-viewer/index.mjs +0 -12
  471. package/esm2022/media-viewer/lib/media-viewer-container/media-viewer-container.component.mjs +0 -52
  472. package/esm2022/media-viewer/lib/media-viewer-slider/media-viewer-slider.component.mjs +0 -37
  473. package/esm2022/media-viewer/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.mjs +0 -24
  474. package/esm2022/media-viewer/lib/media-viewer-tools/audio-player/audio-player.component.mjs +0 -19
  475. package/esm2022/media-viewer/lib/media-viewer-tools/file-info/file-info.component.mjs +0 -21
  476. package/esm2022/media-viewer/lib/media-viewer-tools/full-screen/full-screen.component.mjs +0 -20
  477. package/esm2022/media-viewer/lib/media-viewer-tools/image-viewer/image-viewer.component.mjs +0 -15
  478. package/esm2022/media-viewer/lib/media-viewer-tools/pdf-reader/pdf-reader.component.mjs +0 -17
  479. package/esm2022/media-viewer/lib/media-viewer-tools/video-player/video-player.component.mjs +0 -19
  480. package/esm2022/media-viewer/lib/media-viewer-type-registry.service.mjs +0 -20
  481. package/esm2022/media-viewer/lib/media-viewer-types.mjs +0 -10
  482. package/esm2022/media-viewer/lib/media-viewer.module.mjs +0 -140
  483. package/esm2022/media-viewer/lib/media-viewer.service.mjs +0 -15
  484. package/esm2022/menu/acorex-components-menu.mjs +0 -5
  485. package/esm2022/menu/index.mjs +0 -7
  486. package/esm2022/menu/lib/context-menu.component.mjs +0 -251
  487. package/esm2022/menu/lib/menu-item.component.mjs +0 -310
  488. package/esm2022/menu/lib/menu.component.mjs +0 -58
  489. package/esm2022/menu/lib/menu.module.mjs +0 -28
  490. package/esm2022/menu/lib/menu.service.mjs +0 -19
  491. package/esm2022/menu/lib/menu.types.mjs +0 -14
  492. package/esm2022/nav/acorex-components-nav.mjs +0 -5
  493. package/esm2022/nav/index.mjs +0 -4
  494. package/esm2022/nav/lib/nav-item/nav-item.component.mjs +0 -63
  495. package/esm2022/nav/lib/nav.component.mjs +0 -16
  496. package/esm2022/nav/lib/nav.module.mjs +0 -23
  497. package/esm2022/navbar/acorex-components-navbar.mjs +0 -5
  498. package/esm2022/navbar/index.mjs +0 -3
  499. package/esm2022/navbar/lib/navbar.component.mjs +0 -23
  500. package/esm2022/navbar/lib/navbar.module.mjs +0 -18
  501. package/esm2022/notification/acorex-components-notification.mjs +0 -5
  502. package/esm2022/notification/index.mjs +0 -6
  503. package/esm2022/notification/lib/notification.class.mjs +0 -2
  504. package/esm2022/notification/lib/notification.component.mjs +0 -110
  505. package/esm2022/notification/lib/notification.config.mjs +0 -21
  506. package/esm2022/notification/lib/notification.module.mjs +0 -28
  507. package/esm2022/notification/lib/notification.service.mjs +0 -195
  508. package/esm2022/number-box/acorex-components-number-box.mjs +0 -5
  509. package/esm2022/number-box/index.mjs +0 -3
  510. package/esm2022/number-box/lib/number-box.component.mjs +0 -378
  511. package/esm2022/number-box/lib/number-box.module.mjs +0 -25
  512. package/esm2022/otp/acorex-components-otp.mjs +0 -5
  513. package/esm2022/otp/index.mjs +0 -4
  514. package/esm2022/otp/lib/otp.class.mjs +0 -4
  515. package/esm2022/otp/lib/otp.component.mjs +0 -195
  516. package/esm2022/otp/lib/otp.module.mjs +0 -22
  517. package/esm2022/page/acorex-components-page.mjs +0 -5
  518. package/esm2022/page/index.mjs +0 -4
  519. package/esm2022/page/lib/base-page.class.mjs +0 -62
  520. package/esm2022/page/lib/page.component.mjs +0 -58
  521. package/esm2022/page/lib/page.module.mjs +0 -18
  522. package/esm2022/paint/acorex-components-paint.mjs +0 -5
  523. package/esm2022/paint/index.mjs +0 -7
  524. package/esm2022/paint/lib/paint/paint-container/paint-container.component.mjs +0 -41
  525. package/esm2022/paint/lib/paint/paint-toolbar/paint-toolbar.component.mjs +0 -15
  526. package/esm2022/paint/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.mjs +0 -36
  527. package/esm2022/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.mjs +0 -56
  528. package/esm2022/paint/lib/paint/paint-view/paint-view.component.mjs +0 -158
  529. package/esm2022/paint/lib/paint/paint.service.mjs +0 -16
  530. package/esm2022/paint/lib/paint.module.mjs +0 -62
  531. package/esm2022/password-box/acorex-components-password-box.mjs +0 -5
  532. package/esm2022/password-box/index.mjs +0 -4
  533. package/esm2022/password-box/lib/password-box.component.mjs +0 -93
  534. package/esm2022/password-box/lib/password-box.module.mjs +0 -42
  535. package/esm2022/password-box/lib/password-strength-validation/password-strength-validation.component.mjs +0 -71
  536. package/esm2022/phone-box/acorex-components-phone-box.mjs +0 -5
  537. package/esm2022/phone-box/index.mjs +0 -3
  538. package/esm2022/phone-box/lib/phone-box.component.mjs +0 -207
  539. package/esm2022/phone-box/lib/phone-box.module.mjs +0 -44
  540. package/esm2022/picker/acorex-components-picker.mjs +0 -5
  541. package/esm2022/picker/index.mjs +0 -4
  542. package/esm2022/picker/lib/picker-column.directive.mjs +0 -66
  543. package/esm2022/picker/lib/picker.component.mjs +0 -193
  544. package/esm2022/picker/lib/picker.module.mjs +0 -22
  545. package/esm2022/popover/acorex-components-popover.mjs +0 -5
  546. package/esm2022/popover/index.mjs +0 -3
  547. package/esm2022/popover/lib/popover.component.mjs +0 -525
  548. package/esm2022/popover/lib/popover.module.mjs +0 -19
  549. package/esm2022/popup/acorex-components-popup.mjs +0 -5
  550. package/esm2022/popup/index.mjs +0 -5
  551. package/esm2022/popup/lib/popup.component.mjs +0 -178
  552. package/esm2022/popup/lib/popup.interface.mjs +0 -2
  553. package/esm2022/popup/lib/popup.module.mjs +0 -45
  554. package/esm2022/popup/lib/popup.service.mjs +0 -69
  555. package/esm2022/progress-bar/acorex-components-progress-bar.mjs +0 -5
  556. package/esm2022/progress-bar/index.mjs +0 -3
  557. package/esm2022/progress-bar/lib/progress-bar.component.mjs +0 -86
  558. package/esm2022/progress-bar/lib/progress-bar.module.mjs +0 -19
  559. package/esm2022/qrcode/acorex-components-qrcode.mjs +0 -5
  560. package/esm2022/qrcode/index.mjs +0 -4
  561. package/esm2022/qrcode/lib/qrcode.class.mjs +0 -12
  562. package/esm2022/qrcode/lib/qrcode.component.mjs +0 -93
  563. package/esm2022/qrcode/lib/qrcode.module.mjs +0 -18
  564. package/esm2022/radio/acorex-components-radio.mjs +0 -5
  565. package/esm2022/radio/index.mjs +0 -3
  566. package/esm2022/radio/lib/radio.component.mjs +0 -57
  567. package/esm2022/radio/lib/radio.module.mjs +0 -22
  568. package/esm2022/range-slider/acorex-components-range-slider.mjs +0 -5
  569. package/esm2022/range-slider/index.mjs +0 -4
  570. package/esm2022/range-slider/lib/range-slider.class.mjs +0 -3
  571. package/esm2022/range-slider/lib/range-slider.component.mjs +0 -650
  572. package/esm2022/range-slider/lib/range-slider.module.mjs +0 -18
  573. package/esm2022/rate-picker/acorex-components-rate-picker.mjs +0 -5
  574. package/esm2022/rate-picker/index.mjs +0 -3
  575. package/esm2022/rate-picker/lib/calculatePercentage.mjs +0 -45
  576. package/esm2022/rate-picker/lib/rate-picker.component.mjs +0 -253
  577. package/esm2022/rate-picker/lib/rate-picker.module.mjs +0 -18
  578. package/esm2022/result/acorex-components-result.mjs +0 -5
  579. package/esm2022/result/index.mjs +0 -3
  580. package/esm2022/result/lib/result.component.mjs +0 -41
  581. package/esm2022/result/lib/result.module.mjs +0 -19
  582. package/esm2022/routing-progress/acorex-components-routing-progress.mjs +0 -5
  583. package/esm2022/routing-progress/index.mjs +0 -3
  584. package/esm2022/routing-progress/lib/routing-progress.component.mjs +0 -72
  585. package/esm2022/routing-progress/lib/routing-progress.module.mjs +0 -21
  586. package/esm2022/scheduler/acorex-components-scheduler.mjs +0 -5
  587. package/esm2022/scheduler/index.mjs +0 -5
  588. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +0 -72
  589. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +0 -16
  590. package/esm2022/scheduler/lib/scheduler.component.mjs +0 -54
  591. package/esm2022/scheduler/lib/scheduler.module.mjs +0 -27
  592. package/esm2022/scss/acorex-components-scss.mjs +0 -5
  593. package/esm2022/scss/index.mjs +0 -2
  594. package/esm2022/scss/lib/scss.module.mjs +0 -15
  595. package/esm2022/search-box/acorex-components-search-box.mjs +0 -5
  596. package/esm2022/search-box/index.mjs +0 -3
  597. package/esm2022/search-box/lib/search-box.component.mjs +0 -90
  598. package/esm2022/search-box/lib/search-box.module.mjs +0 -46
  599. package/esm2022/select-box/acorex-components-select-box.mjs +0 -5
  600. package/esm2022/select-box/index.mjs +0 -3
  601. package/esm2022/select-box/lib/select-box.component.mjs +0 -368
  602. package/esm2022/select-box/lib/select-box.module.mjs +0 -69
  603. package/esm2022/selection-list/acorex-components-selection-list.mjs +0 -5
  604. package/esm2022/selection-list/index.mjs +0 -3
  605. package/esm2022/selection-list/lib/selection-list.component.mjs +0 -173
  606. package/esm2022/selection-list/lib/selection-list.module.mjs +0 -24
  607. package/esm2022/side-menu/acorex-components-side-menu.mjs +0 -5
  608. package/esm2022/side-menu/index.mjs +0 -4
  609. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.component.mjs +0 -87
  610. package/esm2022/side-menu/lib/side-menu.component.mjs +0 -16
  611. package/esm2022/side-menu/lib/side-menu.module.mjs +0 -43
  612. package/esm2022/skeleton/acorex-components-skeleton.mjs +0 -5
  613. package/esm2022/skeleton/index.mjs +0 -3
  614. package/esm2022/skeleton/lib/skeleton.component.mjs +0 -34
  615. package/esm2022/skeleton/lib/skeleton.module.mjs +0 -18
  616. package/esm2022/slider/acorex-components-slider.mjs +0 -5
  617. package/esm2022/slider/index.mjs +0 -3
  618. package/esm2022/slider/lib/slider.component.mjs +0 -163
  619. package/esm2022/slider/lib/slider.module.mjs +0 -23
  620. package/esm2022/step-wizard/acorex-components-step-wizard.mjs +0 -5
  621. package/esm2022/step-wizard/index.mjs +0 -6
  622. package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +0 -70
  623. package/esm2022/step-wizard/lib/step-wizard.class.mjs +0 -2
  624. package/esm2022/step-wizard/lib/step-wizard.component.mjs +0 -151
  625. package/esm2022/step-wizard/lib/step-wizard.directive.mjs +0 -28
  626. package/esm2022/step-wizard/lib/step-wizard.module.mjs +0 -25
  627. package/esm2022/switch/acorex-components-switch.mjs +0 -5
  628. package/esm2022/switch/index.mjs +0 -4
  629. package/esm2022/switch/lib/switch-content.component.mjs +0 -19
  630. package/esm2022/switch/lib/switch.component.mjs +0 -54
  631. package/esm2022/switch/lib/switch.module.mjs +0 -21
  632. package/esm2022/tabs/acorex-components-tabs.mjs +0 -5
  633. package/esm2022/tabs/index.mjs +0 -6
  634. package/esm2022/tabs/lib/tab-content.directive.mjs +0 -28
  635. package/esm2022/tabs/lib/tab-item.component.mjs +0 -149
  636. package/esm2022/tabs/lib/tabs.class.mjs +0 -4
  637. package/esm2022/tabs/lib/tabs.component.mjs +0 -183
  638. package/esm2022/tabs/lib/tabs.module.mjs +0 -25
  639. package/esm2022/tag/acorex-components-tag.mjs +0 -5
  640. package/esm2022/tag/index.mjs +0 -3
  641. package/esm2022/tag/lib/tag.component.mjs +0 -25
  642. package/esm2022/tag/lib/tag.module.mjs +0 -19
  643. package/esm2022/text-area/acorex-components-text-area.mjs +0 -5
  644. package/esm2022/text-area/index.mjs +0 -3
  645. package/esm2022/text-area/lib/text-area.component.mjs +0 -76
  646. package/esm2022/text-area/lib/text-area.module.mjs +0 -19
  647. package/esm2022/text-box/acorex-components-text-box.mjs +0 -5
  648. package/esm2022/text-box/index.mjs +0 -4
  649. package/esm2022/text-box/lib/mask-options.directive.mjs +0 -29
  650. package/esm2022/text-box/lib/text-box.component.mjs +0 -153
  651. package/esm2022/text-box/lib/text-box.module.mjs +0 -24
  652. package/esm2022/time-line/acorex-components-time-line.mjs +0 -5
  653. package/esm2022/time-line/index.mjs +0 -4
  654. package/esm2022/time-line/lib/time-line-item.component.mjs +0 -47
  655. package/esm2022/time-line/lib/time-line.component.mjs +0 -28
  656. package/esm2022/time-line/lib/time-line.module.mjs +0 -19
  657. package/esm2022/toast/acorex-components-toast.mjs +0 -5
  658. package/esm2022/toast/index.mjs +0 -6
  659. package/esm2022/toast/lib/toast.class.mjs +0 -2
  660. package/esm2022/toast/lib/toast.component.mjs +0 -86
  661. package/esm2022/toast/lib/toast.config.mjs +0 -26
  662. package/esm2022/toast/lib/toast.module.mjs +0 -27
  663. package/esm2022/toast/lib/toast.service.mjs +0 -235
  664. package/esm2022/tooltip/acorex-components-tooltip.mjs +0 -5
  665. package/esm2022/tooltip/index.mjs +0 -4
  666. package/esm2022/tooltip/lib/tooltip.component.mjs +0 -20
  667. package/esm2022/tooltip/lib/tooltip.directive.mjs +0 -80
  668. package/esm2022/tooltip/lib/tooltip.module.mjs +0 -22
  669. package/esm2022/tree-view/acorex-components-tree-view.mjs +0 -5
  670. package/esm2022/tree-view/index.mjs +0 -4
  671. package/esm2022/tree-view/lib/tree-view-item.component.mjs +0 -86
  672. package/esm2022/tree-view/lib/tree-view.class.mjs +0 -4
  673. package/esm2022/tree-view/lib/tree-view.component.mjs +0 -338
  674. package/esm2022/tree-view/lib/tree-view.component.module.mjs +0 -50
  675. package/esm2022/uploader/acorex-components-uploader.mjs +0 -5
  676. package/esm2022/uploader/index.mjs +0 -9
  677. package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +0 -27
  678. package/esm2022/uploader/lib/uploader-dialog-container/uploader-dialog-container.component.mjs +0 -55
  679. package/esm2022/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.mjs +0 -27
  680. package/esm2022/uploader/lib/uploader-list/uploader-list.component.mjs +0 -24
  681. package/esm2022/uploader/lib/uploader-zone.directive.mjs +0 -121
  682. package/esm2022/uploader/lib/uploader.models.mjs +0 -100
  683. package/esm2022/uploader/lib/uploader.module.mjs +0 -76
  684. package/esm2022/uploader/lib/uploader.service.mjs +0 -125
  685. package/esm2022/wysiwyg/acorex-components-wysiwyg.mjs +0 -5
  686. package/esm2022/wysiwyg/index.mjs +0 -11
  687. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +0 -137
  688. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +0 -21
  689. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.mjs +0 -56
  690. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.mjs +0 -76
  691. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.mjs +0 -129
  692. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.mjs +0 -30
  693. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.mjs +0 -43
  694. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.mjs +0 -64
  695. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.mjs +0 -49
  696. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg.service.mjs +0 -17
  697. package/esm2022/wysiwyg/lib/wysiwyg.module.mjs +0 -75
@@ -1,650 +0,0 @@
1
- import { AXValuableComponent, MXValueComponent, } from '@acorex/components/common';
2
- import { ChangeDetectionStrategy, Component, HostBinding, HostListener, NgZone, ViewEncapsulation, computed, effect, forwardRef, inject, input, model, } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { classes } from 'polytype';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- /**
8
- * @description
9
- * A range slider for selecting a range of values, supporting both single and dual modes.
10
- * The slider offers step, snap, and tooltip configurations.
11
- *
12
- * @example
13
- * <ax-range-slider [min]="0" [max]="100" [step]="1" [mode]="'dual'"></ax-range-slider>
14
- */
15
- export class AXRangeSliderComponent extends classes((MXValueComponent)) {
16
- constructor() {
17
- super();
18
- this.zone = inject(NgZone);
19
- /**
20
- * @description
21
- * The orientation of the slider, either 'horizontal' or 'vertical'.
22
- * @default 'horizontal'
23
- */
24
- this.orientation = input('horizontal');
25
- /**
26
- * @description
27
- * Color theme for the slider, affecting highlight, tooltip, and handler.
28
- * @default 'primary'
29
- */
30
- this.color = input('primary');
31
- /**
32
- * @description
33
- * The value(s) of the slider. Can be a single number for single mode or an array of two numbers for dual mode.
34
- */
35
- this.values = model(this.value);
36
- /**
37
- * @description
38
- * The mode of the slider, either 'single' or 'dual'.
39
- * @default 'single'
40
- */
41
- this.mode = input('single');
42
- /**
43
- * @description
44
- * The minimum value of the slider.
45
- * @default 0
46
- */
47
- this.min = input(0);
48
- /**
49
- * @description
50
- * The maximum value of the slider.
51
- * @default 100
52
- */
53
- this.max = input(100);
54
- /**
55
- * @description
56
- * The step increment for value changes.
57
- * @default 1
58
- */
59
- this.step = input(1);
60
- /**
61
- * @description
62
- * The snapping increment for the slider.
63
- * @default 1
64
- */
65
- this.snap = input(1);
66
- /**
67
- * @description
68
- * Mode for displaying tooltips, can be at the start, end, or both.
69
- * @default 'end'
70
- */
71
- this.tooltipMode = input('end');
72
- /**
73
- * @description
74
- * Mode for snapping, can snap at the start, end, or both.
75
- * @default 'start'
76
- */
77
- this.snapMode = input('start');
78
- /**
79
- * @description
80
- * Whether the slider should have steps.
81
- * @default true
82
- */
83
- this.hasStep = input(true);
84
- /**
85
- * @description
86
- * Whether the slider should display snapping.
87
- * @default false
88
- */
89
- this.hasSnap = input(false);
90
- /**
91
- * @description
92
- * Whether the slider should display labels for snapping points.
93
- * @default Value derived from `hasSnap()`
94
- */
95
- this.hasLable = input(this.hasSnap());
96
- /**
97
- * @description
98
- * Whether the slider should display tooltips.
99
- * @default false
100
- */
101
- this.hasTooltip = input(false);
102
- /**
103
- * @ignore
104
- */
105
- this.height = 0.25;
106
- /**
107
- * @ignore
108
- */
109
- this.newHeight = 'var(--ax-range-slider-base-thickness)';
110
- /**
111
- * @ignore
112
- */
113
- this.range = computed(() => this.max() - this.min());
114
- /**
115
- * @ignore
116
- */
117
- this.isHorizontal = computed(() => this.orientation() === 'horizontal');
118
- /**
119
- * @ignore
120
- */
121
- this.isDual = computed(() => this.mode() === 'dual');
122
- /**
123
- * @ignore
124
- */
125
- this.correctMinMax = computed(() => this.max() - this.min() > 0);
126
- /**
127
- * @ignore
128
- */
129
- this.calculateSnapBar = computed(() => {
130
- if (this.hasSnap()) {
131
- if (this.snap() <= 0) {
132
- console.error('Wrong Snap!');
133
- return null;
134
- }
135
- let array = [];
136
- for (let i = this.min(); i < this.max(); i += this.snap()) {
137
- array.push(i);
138
- }
139
- array = [...array, this.max()];
140
- if (array[0] < 0) {
141
- array = array.map((i) => i + -array[0]).sort((a, b) => a - b);
142
- }
143
- if (array[0] > 0) {
144
- array = array.map((i) => i - array[0]).sort((a, b) => a - b);
145
- }
146
- return array;
147
- }
148
- return null;
149
- });
150
- /**
151
- * @ignore
152
- */
153
- this.calculatePos = computed(() => {
154
- if (this.isDual() && this.values()) {
155
- return [
156
- ((this.values()[0] - this.min()) / this.range()) * 100,
157
- ((this.values()[1] - this.min()) / this.range()) * 100,
158
- ];
159
- }
160
- else {
161
- return ((this.values() - this.min()) / this.range()) * 100;
162
- }
163
- });
164
- /**
165
- * @ignore
166
- */
167
- this.choosenHandler = undefined;
168
- /**
169
- * @ignore
170
- */
171
- this.sliderElement = null;
172
- /**
173
- * @ignore
174
- */
175
- this.AXRangeSliderHighlight = computed(() => this.isHorizontal()
176
- ? {
177
- left: this.isDual() ? this.calculatePos()[0] + '%' : '0%',
178
- width: this.isDual()
179
- ? this.calculatePos()[1] - this.calculatePos()[0] + '%'
180
- : this.calculatePos() + '%',
181
- }
182
- : {
183
- height: this.isDual()
184
- ? this.calculatePos()[1] - this.calculatePos()[0] + '%'
185
- : this.calculatePos() + '%',
186
- bottom: this.mode() === 'dual' ? this.calculatePos()[0] + '%' : '0%',
187
- });
188
- /**
189
- * @ignore
190
- */
191
- this.AXRangeSliderHandler1 = computed(() => this.isHorizontal()
192
- ? {
193
- left: this.isDual() ? this.calculatePos()[0] + '%' : this.calculatePos() + '%',
194
- }
195
- : {
196
- bottom: this.isDual()
197
- ? 'calc(' + this.calculatePos()[0] + '% - ' + 6 * this.height + 'rem)'
198
- : 'calc(' + this.calculatePos() + '% - ' + 6 * this.height + 'rem)',
199
- });
200
- /**
201
- * @ignore
202
- */
203
- this.AXRangeSliderHandler2 = computed(() => this.isHorizontal()
204
- ? {
205
- left: this.calculatePos()[1] + '%',
206
- }
207
- : {
208
- bottom: 'calc(' + this.calculatePos()[1] + '% - ' + 6 * this.height + 'rem)',
209
- });
210
- /**
211
- * @ignore
212
- */
213
- this.AXRangeSliderStep = computed(() => {
214
- if (this.isHorizontal()) {
215
- switch (this.snapMode()) {
216
- case 'both':
217
- return { top: '0', height: 8 * this.height + 'rem' };
218
- case 'start':
219
- return { top: 4 * this.height + 'rem', height: 4 * this.height + 'rem' };
220
- case 'end':
221
- return { top: -2 * this.height + 'rem', height: 4 * this.height + 'rem' };
222
- }
223
- }
224
- else {
225
- switch (this.snapMode()) {
226
- case 'both':
227
- return { top: '0', width: 8 * this.height + 'rem' };
228
- case 'start':
229
- return { left: 4 * this.height + 'rem', width: 4 * this.height + 'rem' };
230
- case 'end':
231
- return { left: -2 * this.height + 'rem', width: 4 * this.height + 'rem' };
232
- }
233
- }
234
- });
235
- /**
236
- * @ignore
237
- */
238
- this.AXRangeLabel = computed(() => {
239
- if (this.isHorizontal()) {
240
- switch (this.snapMode()) {
241
- case 'both':
242
- return { top: 6 * this.height + 'rem' };
243
- case 'start':
244
- return { top: 4 * this.height + 'rem' };
245
- case 'end':
246
- return { top: -6 * this.height + 'rem' };
247
- }
248
- }
249
- else {
250
- switch (this.snapMode()) {
251
- case 'both':
252
- return { left: 8 * this.height + 'rem' };
253
- case 'start':
254
- return { left: 4 * this.height + 'rem' };
255
- case 'end':
256
- return { left: -8 * this.height + 'rem' };
257
- }
258
- }
259
- });
260
- effect(() => this.commitValue(this.values()));
261
- effect(() => {
262
- if (this.correctMinMax()) {
263
- this.fixInitializeValues();
264
- this.fixChangingMode();
265
- }
266
- else {
267
- console.error(`Min = ${this.min()} And Max = ${this.max()} is not correct inputs.`);
268
- }
269
- }, { allowSignalWrites: true });
270
- this.onValueChanged.subscribe((value) => {
271
- if (value?.value != undefined && value?.value != null && this.values() !== value.value)
272
- this.values.set(value.value);
273
- });
274
- }
275
- /**
276
- * @ignore
277
- */
278
- ngOnInit() {
279
- super.ngOnInit();
280
- //(window as any).rangeSlider = this; //for debugging purpose only
281
- if (!this.correctMinMax()) {
282
- console.error(`Min = ${this.min()} And Max = ${this.max()} is not correct inputs.`);
283
- }
284
- else {
285
- this.initializeValues();
286
- }
287
- }
288
- /**
289
- * @ignore
290
- */
291
- onStartHandler(event, circle) {
292
- this.zone.runOutsideAngular(() => {
293
- if (this.disabled || this.readonly || !this.correctMinMax())
294
- return;
295
- event.preventDefault();
296
- this.sliderElement = event.target.closest('.ax-range-slider');
297
- if (this.sliderElement) {
298
- this.choosenHandler = circle;
299
- const moveListener = (moveEvent) => this.onMove(moveEvent, circle);
300
- const endListener = () => this.onEnd(moveListener, endListener);
301
- window.addEventListener('mousemove', moveListener);
302
- window.addEventListener('mouseup', endListener);
303
- window.addEventListener('touchmove', moveListener, { passive: true });
304
- window.addEventListener('touchend', endListener);
305
- }
306
- });
307
- }
308
- /**
309
- * @ignore
310
- */
311
- onStartBar(event) {
312
- let circle = 'first';
313
- this.sliderElement = event.target.closest('.ax-range-slider');
314
- this.zone.runOutsideAngular(() => {
315
- if (!this.sliderElement || this.disabled || this.readonly)
316
- return;
317
- const calculatePercent = this.calculatePercentOnMove(event);
318
- const exactValue = this.getValueFromPercent(calculatePercent);
319
- let value = Number.parseFloat(exactValue.toFixed(2));
320
- if (this.hasStep()) {
321
- value = this.roundToStep(value);
322
- }
323
- if (this.isDual()) {
324
- if (Math.abs(exactValue - this.values()[0]) > Math.abs(exactValue - this.values()[1])) {
325
- this.values.set([this.values()[0], value]);
326
- circle = 'second';
327
- }
328
- else {
329
- if (this.values()[1] === this.min()) {
330
- this.values.set([this.values()[0], value]);
331
- circle = 'second';
332
- }
333
- else {
334
- this.values.set([value, this.values()[1]]);
335
- circle = 'first';
336
- }
337
- }
338
- }
339
- else {
340
- this.values.set(value);
341
- }
342
- });
343
- this.onStartHandler(event, circle);
344
- }
345
- /**
346
- * @ignore
347
- */
348
- onMove(event, circle) {
349
- if (!this.sliderElement)
350
- return;
351
- const calculatePercent = this.calculatePercentOnMove(event);
352
- let value = this.getValueFromPercent(calculatePercent);
353
- value = Number.parseFloat(value.toFixed(2));
354
- if (this.hasStep()) {
355
- value = this.roundToStep(value);
356
- }
357
- if (this.isDual()) {
358
- if (circle === 'first' && value <= this.values()[1]) {
359
- if (this.checkValues(value, 'first', this.values()[1]) && this.values()[0] !== value) {
360
- this.values.set([value, this.values()[1]]);
361
- }
362
- }
363
- else if (circle === 'second' && value >= this.values()[0] && this.values()[1] !== value) {
364
- if (this.checkValues(value, 'second', this.values()[0])) {
365
- this.values.set([this.values()[0], value]);
366
- }
367
- }
368
- }
369
- else {
370
- if (this.checkValue(value) && this.values() !== value) {
371
- this.values.set(value);
372
- }
373
- }
374
- }
375
- /**
376
- * @ignore
377
- */
378
- onEnd(moveListener, endListener) {
379
- window.removeEventListener('mousemove', moveListener);
380
- window.removeEventListener('mouseup', endListener);
381
- window.removeEventListener('touchmove', moveListener);
382
- window.removeEventListener('touchend', endListener);
383
- this.sliderElement = null;
384
- }
385
- /**
386
- * @ignore
387
- */
388
- initializeValues() {
389
- this.fixInitializeUndefined();
390
- this.fixInitializeValues();
391
- this.fixInitializeStep();
392
- }
393
- /**
394
- * @ignore
395
- */
396
- fixInitializeUndefined() {
397
- if (typeof this.values() === 'undefined') {
398
- if (this.isDual()) {
399
- this.values.set([this.min(), this.max()]);
400
- }
401
- else {
402
- this.values.set(this.min());
403
- }
404
- }
405
- }
406
- /**
407
- * @ignore
408
- */
409
- fixInitializeValues() {
410
- if (this.isDual() && this.values()[0] > this.values()[1]) {
411
- this.values.set([this.values()[1], this.values()[0]]);
412
- }
413
- if (typeof this.values() === 'number' && !this.checkValue(this.values())) {
414
- this.values.set(this.min());
415
- }
416
- else if (typeof this.values() !== 'number' &&
417
- !this.checkValues(this.values()[0], 'first', this.values()[1])) {
418
- this.values.set([this.min(), this.max()]);
419
- }
420
- }
421
- /**
422
- * @ignore
423
- */
424
- fixInitializeStep() {
425
- if (this.step() !== 1) {
426
- if (this.isDual()) {
427
- this.values.update((old) => [this.roundToStep(old[0]), this.roundToStep(old[1])]);
428
- if (this.values()[0] === this.values()[1]) {
429
- this.values.update((old) => [this.roundToStep(old[0]), this.roundToStep(old[1]) + this.step()]);
430
- }
431
- }
432
- else {
433
- this.values.update((old) => this.roundToStep(old));
434
- }
435
- }
436
- }
437
- /**
438
- * @ignore
439
- */
440
- fixChangingMode() {
441
- if (typeof this.values() === 'number' && this.isDual()) {
442
- this.values.set([this.min(), this.max()]);
443
- }
444
- else if (typeof this.values() !== 'number' && !this.isDual()) {
445
- this.values.set(this.min());
446
- }
447
- }
448
- /**
449
- * @ignore
450
- */
451
- calculatePercentOnMove(event) {
452
- const sliderRect = this.sliderElement.getBoundingClientRect();
453
- let percent;
454
- if (this.isHorizontal()) {
455
- const clientX = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;
456
- const x = clientX - sliderRect.left;
457
- percent = (x / sliderRect.width) * 100;
458
- }
459
- else {
460
- const clientY = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;
461
- const y = -(clientY - sliderRect.bottom); //reverce slider from bottom to top
462
- percent = (y / sliderRect.height) * 100;
463
- }
464
- if (percent < 0) {
465
- percent = 0;
466
- }
467
- else if (percent > 100) {
468
- percent = 100;
469
- }
470
- return percent;
471
- }
472
- /**
473
- * @ignore
474
- */
475
- roundToStep(value) {
476
- const lower = Math.max(this.min(), Math.floor((value - this.min()) / this.step()) * this.step() + this.min());
477
- const upper = Math.min(this.max(), lower + this.step());
478
- if (value - lower < upper - value) {
479
- return lower;
480
- }
481
- else {
482
- return upper;
483
- }
484
- }
485
- /**
486
- * @ignore
487
- */
488
- checkValue(x) {
489
- if (x >= this.min() && x <= this.max())
490
- return true;
491
- else
492
- return false;
493
- }
494
- /**
495
- * @ignore
496
- */
497
- checkValues(value1, y, value2) {
498
- if (value1 >= this.min() && value1 <= this.max()) {
499
- if (y === 'first') {
500
- if (value1 <= value2 && value2 <= this.max())
501
- return true;
502
- else
503
- return false;
504
- }
505
- else {
506
- if (value1 >= value2 && value2 >= this.min())
507
- return true;
508
- else
509
- return false;
510
- }
511
- }
512
- else
513
- return false;
514
- }
515
- /**
516
- * @ignore
517
- */
518
- getValueFromPercent(value) {
519
- return this.min() + (value * (this.max() - this.min())) / 100;
520
- }
521
- /**
522
- * @ignore
523
- */
524
- getPercantage(value) {
525
- return this.range() !== 0 ? (value / this.range()) * 100 : 0;
526
- }
527
- /**
528
- * Increase a step to value if slider in single mode
529
- * and increase a step the second value if slider in dual mode
530
- * @method increaseStep
531
- */
532
- increaseStep() {
533
- if (this.isDual()) {
534
- const newValue = this.roundToStep(this.values()[1] + this.step());
535
- this.values.set([this.values()[0], newValue]);
536
- }
537
- else {
538
- const newValue = this.roundToStep(this.values() + this.step());
539
- this.values.set(newValue);
540
- }
541
- }
542
- /**
543
- * Decrease a step to value if slider in single mode
544
- * and decrease a step the second value if slider in dual mode
545
- * @method decreaseStep
546
- */
547
- decreaseStep() {
548
- if (this.isDual()) {
549
- const newValue = this.roundToStep(this.values()[0] - this.step());
550
- this.values.set([newValue, this.values()[1]]);
551
- }
552
- else {
553
- const newValue = this.roundToStep(this.values() - this.step());
554
- this.values.set(newValue);
555
- }
556
- }
557
- /**
558
- * @ignore
559
- */
560
- onWheel(event) {
561
- this.zone.runOutsideAngular(() => {
562
- event.preventDefault();
563
- if (!this.choosenHandler || this.readonly || this.disabled || !this.correctMinMax())
564
- return;
565
- let newValue;
566
- if (this.isDual()) {
567
- if (event.deltaY < 0) {
568
- if (this.choosenHandler === 'first') {
569
- newValue = this.roundToStep(this.values()[0] + this.step());
570
- if (this.checkValues(newValue, this.choosenHandler, this.values()[1]) &&
571
- this.values()[0] !== newValue) {
572
- this.values.update((old) => [this.roundToStep(old[0] + this.step()), old[1]]);
573
- }
574
- }
575
- else {
576
- newValue = this.roundToStep(this.values()[1] + this.step());
577
- if (newValue <= this.max() && this.values()[1] !== newValue) {
578
- this.values.update((old) => [old[0], this.roundToStep(old[1] + this.step())]);
579
- }
580
- }
581
- }
582
- else {
583
- if (this.choosenHandler === 'first') {
584
- newValue = this.roundToStep(this.values()[0] - this.step());
585
- if (this.checkValues(newValue, this.choosenHandler, this.values()[1]) &&
586
- this.values() !== newValue) {
587
- this.values.update((old) => [this.roundToStep(old[0] - this.step()), old[1]]);
588
- }
589
- }
590
- else {
591
- newValue = this.roundToStep(this.values()[1] - this.step());
592
- if (this.checkValues(newValue, this.choosenHandler, this.values()[0]) &&
593
- this.values()[1] !== newValue) {
594
- this.values.update((old) => [old[0], this.roundToStep(old[1] - this.step())]);
595
- }
596
- }
597
- }
598
- }
599
- else {
600
- if (event.deltaY < 0) {
601
- if (this.checkValue(this.roundToStep(this.values() + this.step()))) {
602
- this.values.update((old) => this.roundToStep(old + this.step()));
603
- }
604
- }
605
- else {
606
- if (this.checkValue(this.roundToStep(this.values() - this.step()))) {
607
- this.values.update((old) => this.roundToStep(old - this.step()));
608
- }
609
- }
610
- }
611
- });
612
- }
613
- /**
614
- * @ignore
615
- */
616
- get __hostClass() {
617
- return [
618
- `ax-${this.color()}-solid`,
619
- `${this.disabled ? 'ax-state-disabled' : ''}`,
620
- `${this.readonly ? 'ax-state-readonly' : ''}`,
621
- ];
622
- }
623
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXRangeSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
624
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXRangeSliderComponent, selector: "ax-range-slider", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", 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 }, snap: { classPropertyName: "snap", publicName: "snap", isSignal: true, isRequired: false, transformFunction: null }, tooltipMode: { classPropertyName: "tooltipMode", publicName: "tooltipMode", isSignal: true, isRequired: false, transformFunction: null }, snapMode: { classPropertyName: "snapMode", publicName: "snapMode", isSignal: true, isRequired: false, transformFunction: null }, hasStep: { classPropertyName: "hasStep", publicName: "hasStep", isSignal: true, isRequired: false, transformFunction: null }, hasSnap: { classPropertyName: "hasSnap", publicName: "hasSnap", isSignal: true, isRequired: false, transformFunction: null }, hasLable: { classPropertyName: "hasLable", publicName: "hasLable", isSignal: true, isRequired: false, transformFunction: null }, hasTooltip: { classPropertyName: "hasTooltip", publicName: "hasTooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { values: "valuesChange" }, host: { listeners: { "wheel": "onWheel($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
625
- { provide: AXValuableComponent, useExisting: AXRangeSliderComponent },
626
- {
627
- provide: NG_VALUE_ACCESSOR,
628
- useExisting: forwardRef(() => AXRangeSliderComponent),
629
- multi: true,
630
- },
631
- ], usesInheritance: true, ngImport: i0, template: "@if (correctMinMax()) {\n <div class=\"ax-range-slider\" [class]=\"'ax-orientation-' + orientation()\">\n <div class=\"ax-range-slider-bar\" (mousedown)=\"onStartBar($event)\" (touchstart)=\"onStartBar($event)\"></div>\n <div\n class=\"ax-range-slider-highlight\"\n [ngStyle]=\"AXRangeSliderHighlight()\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n ></div>\n\n <div\n class=\"ax-range-slider-handler\"\n [ngStyle]=\"AXRangeSliderHandler1()\"\n name=\"first\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n >\n @if (hasTooltip()) {\n <div class=\"ax-range-slider-tooltip\">{{ isDual() ? values()[0] : values() }}</div>\n }\n </div>\n\n @if (isDual()) {\n <div\n class=\"ax-range-slider-handler\"\n [ngStyle]=\"AXRangeSliderHandler2()\"\n name=\"second\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n >\n @if (hasTooltip()) {\n <div class=\"ax-range-slider-tooltip\">{{ values()[1] }}</div>\n }\n </div>\n }\n @if (hasSnap()) {\n <div class=\"ax-range-slider-step\" [ngStyle]=\"AXRangeSliderStep()\">\n @for (item of calculateSnapBar(); track $index) {\n <div\n class=\"ax-range-slider-steps\"\n [ngStyle]=\"\n isHorizontal() ? { left: getPercantage(item) + '%' } : { bottom: getPercantage(item) + '%' }\n \"\n >\n @if (hasLable()) {\n <div class=\"ax-range-slider-label\" [ngStyle]=\"AXRangeLabel()\">\n {{ item + min() }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":root{--ax-range-slider-base-thickness: .25rem}ax-range-slider{display:flex;align-items:center;justify-content:center;padding:1rem;font-size:small}ax-range-slider .ax-range-slider.ax-orientation-horizontal{position:relative;width:100%;height:calc(var(--ax-range-slider-base-thickness) * 4)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-bar{position:absolute;top:50%;left:0;width:100.1%;height:var(--ax-range-slider-base-thickness);transform:translateY(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-bg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-highlight{position:absolute;top:50%;height:calc(var(--ax-range-slider-base-thickness) * 3 / 2);transform:translateY(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-fg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler{position:absolute;top:50%;width:calc(var(--ax-range-slider-base-thickness) * 6);height:calc(var(--ax-range-slider-base-thickness) * 6);z-index:20;background-color:rgb(var(--ax-range-slider-fg));border-radius:50%;cursor:pointer;transform:translate(-45%,-50%);transition:box-shadow .1s linear}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:hover{box-shadow:var(--tw-ring-inset) 0 0 0 calc(.6rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:active{box-shadow:var(--tw-ring-inset) 0 0 0 calc(.6rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip{position:absolute;left:calc(var(--ax-range-slider-base-thickness) * 2.8);top:calc(var(--ax-range-slider-base-thickness) * -2);background-color:rgb(var(--ax-range-slider-fg));color:rgb(var(--ax-range-tooltip-fore));padding:5px 10px;border-radius:3px;white-space:nowrap;font-weight:600;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:calc(var(--ax-range-slider-base-thickness) * 7);left:50%;transform:translate(-50%);border-width:.5rem;border-style:solid;border-color:rgb(var(--ax-range-slider-fg)) transparent transparent transparent}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step{position:absolute;display:flex;flex-direction:row;width:100%;z-index:10}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps{position:absolute;border-left:calc(var(--ax-range-slider-base-thickness) / 2) solid rgb(var(--ax-color-border-default));height:50%}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:relative;text-align:center;top:calc(var(--ax-range-slider-base-thickness) * 2);left:-50%}ax-range-slider .ax-range-slider.ax-orientation-vertical{position:relative;width:calc(var(--ax-range-slider-base-thickness) * 4);height:100%}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-bar{position:absolute;top:0;left:50%;width:var(--ax-range-slider-base-thickness);height:100.1%;transform:translate(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-bg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-highlight{position:absolute;left:50%;width:calc(var(--ax-range-slider-base-thickness) * 3 / 2);transform:translate(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-fg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler{position:absolute;left:50%;width:calc(var(--ax-range-slider-base-thickness) * 6);height:calc(var(--ax-range-slider-base-thickness) * 6);z-index:20;background-color:rgb(var(--ax-range-slider-fg));border-radius:50%;cursor:pointer;transform:translate(-50%,-55%);transition:background-color .2s ease}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler:active{border:1px solid transparent;box-shadow:var(--tw-ring-inset) 0 0 0 calc(.5rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip{position:absolute;top:calc(var(--ax-range-slider-base-thickness) * 8.5);left:calc(var(--ax-range-slider-base-thickness) * -8);background-color:rgb(var(--ax-range-slider-fg));color:rgb(var(--ax-range-tooltip-fore));padding:5px 10px;border-radius:3px;font-weight:600;white-space:nowrap;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:50%;left:97%;transform:translateY(-50%);border-width:.5rem;border-style:solid;border-color:transparent transparent transparent rgb(var(--ax-range-slider-fg))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step{position:absolute;display:flex;flex-direction:column;height:100%;z-index:10}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps{position:absolute;width:50%;border-top:calc(var(--ax-range-slider-base-thickness) / 2) solid rgb(var(--ax-color-border-default))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:absolute;left:150%;top:calc(var(--ax-range-slider-base-thickness) * -3)}ax-range-slider.ax-primary-solid{--ax-range-slider-bg: var(--ax-color-primary-200);--ax-range-slider-fg: var(--ax-color-primary-500);--ax-range-tooltip-fore: var(--ax-color-primary-fore)}ax-range-slider.ax-secondary-solid{--ax-range-slider-bg: var(--ax-color-secondary-200);--ax-range-slider-fg: var(--ax-color-secondary-500);--ax-range-tooltip-fore: var(--ax-color-secondary-fore)}ax-range-slider.ax-success-solid{--ax-range-slider-bg: var(--ax-color-success-200);--ax-range-slider-fg: var(--ax-color-success-500);--ax-range-tooltip-fore: var(--ax-color-success-fore)}ax-range-slider.ax-warning-solid{--ax-range-slider-bg: var(--ax-color-warning-200);--ax-range-slider-fg: var(--ax-color-warning-500);--ax-range-tooltip-fore: var(--ax-color-warning-fore)}ax-range-slider.ax-danger-solid{--ax-range-slider-bg: var(--ax-color-danger-200);--ax-range-slider-fg: var(--ax-color-danger-500);--ax-range-tooltip-fore: var(--ax-color-danger-fore)}ax-range-slider.ax-info-solid{--ax-range-slider-bg: var(--ax-color-info-200);--ax-range-slider-fg: var(--ax-color-info-500);--ax-range-tooltip-fore: var(--ax-color-info-fore)}ax-range-slider.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-range-slider.ax-state-readonly{opacity:.75}.ax-dark ax-range-slider.ax-primary-solid{--ax-range-slider-bg: var(--ax-color-primary-700);--ax-range-slider-fg: var(--ax-color-primary-200);--ax-range-tooltip-fore: var(--ax-color-primary-fore-tint)}.ax-dark ax-range-slider.ax-secondary-solid{--ax-range-slider-bg: var(--ax-color-secondary-700);--ax-range-slider-fg: var(--ax-color-secondary-200);--ax-range-tooltip-fore: var(--ax-color-secondary-fore-tint)}.ax-dark ax-range-slider.ax-success-solid{--ax-range-slider-bg: var(--ax-color-success-700);--ax-range-slider-fg: var(--ax-color-success-200);--ax-range-tooltip-fore: var(--ax-color-success-fore-tint)}.ax-dark ax-range-slider.ax-warning-solid{--ax-range-slider-bg: var(--ax-color-warning-700);--ax-range-slider-fg: var(--ax-color-warning-200);--ax-range-tooltip-fore: var(--ax-color-warning-fore-tint)}.ax-dark ax-range-slider.ax-danger-solid{--ax-range-slider-bg: var(--ax-color-danger-700);--ax-range-slider-fg: var(--ax-color-danger-200);--ax-range-tooltip-fore: var(--ax-color-danger-fore-tint)}.ax-dark ax-range-slider.ax-info-solid{--ax-range-slider-bg: var(--ax-color-info-700);--ax-range-slider-fg: var(--ax-color-info-200);--ax-range-tooltip-fore: var(--ax-color-info-fore-tint)}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
632
- }
633
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXRangeSliderComponent, decorators: [{
634
- type: Component,
635
- args: [{ selector: 'ax-range-slider', inputs: ['disabled', 'readonly'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
636
- { provide: AXValuableComponent, useExisting: AXRangeSliderComponent },
637
- {
638
- provide: NG_VALUE_ACCESSOR,
639
- useExisting: forwardRef(() => AXRangeSliderComponent),
640
- multi: true,
641
- },
642
- ], template: "@if (correctMinMax()) {\n <div class=\"ax-range-slider\" [class]=\"'ax-orientation-' + orientation()\">\n <div class=\"ax-range-slider-bar\" (mousedown)=\"onStartBar($event)\" (touchstart)=\"onStartBar($event)\"></div>\n <div\n class=\"ax-range-slider-highlight\"\n [ngStyle]=\"AXRangeSliderHighlight()\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n ></div>\n\n <div\n class=\"ax-range-slider-handler\"\n [ngStyle]=\"AXRangeSliderHandler1()\"\n name=\"first\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n >\n @if (hasTooltip()) {\n <div class=\"ax-range-slider-tooltip\">{{ isDual() ? values()[0] : values() }}</div>\n }\n </div>\n\n @if (isDual()) {\n <div\n class=\"ax-range-slider-handler\"\n [ngStyle]=\"AXRangeSliderHandler2()\"\n name=\"second\"\n (mousedown)=\"onStartBar($event)\"\n (touchstart)=\"onStartBar($event)\"\n >\n @if (hasTooltip()) {\n <div class=\"ax-range-slider-tooltip\">{{ values()[1] }}</div>\n }\n </div>\n }\n @if (hasSnap()) {\n <div class=\"ax-range-slider-step\" [ngStyle]=\"AXRangeSliderStep()\">\n @for (item of calculateSnapBar(); track $index) {\n <div\n class=\"ax-range-slider-steps\"\n [ngStyle]=\"\n isHorizontal() ? { left: getPercantage(item) + '%' } : { bottom: getPercantage(item) + '%' }\n \"\n >\n @if (hasLable()) {\n <div class=\"ax-range-slider-label\" [ngStyle]=\"AXRangeLabel()\">\n {{ item + min() }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":root{--ax-range-slider-base-thickness: .25rem}ax-range-slider{display:flex;align-items:center;justify-content:center;padding:1rem;font-size:small}ax-range-slider .ax-range-slider.ax-orientation-horizontal{position:relative;width:100%;height:calc(var(--ax-range-slider-base-thickness) * 4)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-bar{position:absolute;top:50%;left:0;width:100.1%;height:var(--ax-range-slider-base-thickness);transform:translateY(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-bg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-highlight{position:absolute;top:50%;height:calc(var(--ax-range-slider-base-thickness) * 3 / 2);transform:translateY(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-fg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler{position:absolute;top:50%;width:calc(var(--ax-range-slider-base-thickness) * 6);height:calc(var(--ax-range-slider-base-thickness) * 6);z-index:20;background-color:rgb(var(--ax-range-slider-fg));border-radius:50%;cursor:pointer;transform:translate(-45%,-50%);transition:box-shadow .1s linear}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:hover{box-shadow:var(--tw-ring-inset) 0 0 0 calc(.6rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-handler:active{box-shadow:var(--tw-ring-inset) 0 0 0 calc(.6rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip{position:absolute;left:calc(var(--ax-range-slider-base-thickness) * 2.8);top:calc(var(--ax-range-slider-base-thickness) * -2);background-color:rgb(var(--ax-range-slider-fg));color:rgb(var(--ax-range-tooltip-fore));padding:5px 10px;border-radius:3px;white-space:nowrap;font-weight:600;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:calc(var(--ax-range-slider-base-thickness) * 7);left:50%;transform:translate(-50%);border-width:.5rem;border-style:solid;border-color:rgb(var(--ax-range-slider-fg)) transparent transparent transparent}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step{position:absolute;display:flex;flex-direction:row;width:100%;z-index:10}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps{position:absolute;border-left:calc(var(--ax-range-slider-base-thickness) / 2) solid rgb(var(--ax-color-border-default));height:50%}ax-range-slider .ax-range-slider.ax-orientation-horizontal .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:relative;text-align:center;top:calc(var(--ax-range-slider-base-thickness) * 2);left:-50%}ax-range-slider .ax-range-slider.ax-orientation-vertical{position:relative;width:calc(var(--ax-range-slider-base-thickness) * 4);height:100%}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-bar{position:absolute;top:0;left:50%;width:var(--ax-range-slider-base-thickness);height:100.1%;transform:translate(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-bg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-highlight{position:absolute;left:50%;width:calc(var(--ax-range-slider-base-thickness) * 3 / 2);transform:translate(-50%);z-index:20;border-radius:9999rem;background-color:rgb(var(--ax-range-slider-fg));cursor:pointer}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler{position:absolute;left:50%;width:calc(var(--ax-range-slider-base-thickness) * 6);height:calc(var(--ax-range-slider-base-thickness) * 6);z-index:20;background-color:rgb(var(--ax-range-slider-fg));border-radius:50%;cursor:pointer;transform:translate(-50%,-55%);transition:background-color .2s ease}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-handler:active{border:1px solid transparent;box-shadow:var(--tw-ring-inset) 0 0 0 calc(.5rem + var(--tw-ring-offset-width)) rgba(var(--ax-range-slider-fg),.25)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip{position:absolute;top:calc(var(--ax-range-slider-base-thickness) * 8.5);left:calc(var(--ax-range-slider-base-thickness) * -8);background-color:rgb(var(--ax-range-slider-fg));color:rgb(var(--ax-range-tooltip-fore));padding:5px 10px;border-radius:3px;font-weight:600;white-space:nowrap;transform:translate(-50%,-125%)}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-tooltip:after{content:\"\";position:absolute;top:50%;left:97%;transform:translateY(-50%);border-width:.5rem;border-style:solid;border-color:transparent transparent transparent rgb(var(--ax-range-slider-fg))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step{position:absolute;display:flex;flex-direction:column;height:100%;z-index:10}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps{position:absolute;width:50%;border-top:calc(var(--ax-range-slider-base-thickness) / 2) solid rgb(var(--ax-color-border-default))}ax-range-slider .ax-range-slider.ax-orientation-vertical .ax-range-slider-step .ax-range-slider-steps .ax-range-slider-label{position:absolute;left:150%;top:calc(var(--ax-range-slider-base-thickness) * -3)}ax-range-slider.ax-primary-solid{--ax-range-slider-bg: var(--ax-color-primary-200);--ax-range-slider-fg: var(--ax-color-primary-500);--ax-range-tooltip-fore: var(--ax-color-primary-fore)}ax-range-slider.ax-secondary-solid{--ax-range-slider-bg: var(--ax-color-secondary-200);--ax-range-slider-fg: var(--ax-color-secondary-500);--ax-range-tooltip-fore: var(--ax-color-secondary-fore)}ax-range-slider.ax-success-solid{--ax-range-slider-bg: var(--ax-color-success-200);--ax-range-slider-fg: var(--ax-color-success-500);--ax-range-tooltip-fore: var(--ax-color-success-fore)}ax-range-slider.ax-warning-solid{--ax-range-slider-bg: var(--ax-color-warning-200);--ax-range-slider-fg: var(--ax-color-warning-500);--ax-range-tooltip-fore: var(--ax-color-warning-fore)}ax-range-slider.ax-danger-solid{--ax-range-slider-bg: var(--ax-color-danger-200);--ax-range-slider-fg: var(--ax-color-danger-500);--ax-range-tooltip-fore: var(--ax-color-danger-fore)}ax-range-slider.ax-info-solid{--ax-range-slider-bg: var(--ax-color-info-200);--ax-range-slider-fg: var(--ax-color-info-500);--ax-range-tooltip-fore: var(--ax-color-info-fore)}ax-range-slider.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-range-slider.ax-state-readonly{opacity:.75}.ax-dark ax-range-slider.ax-primary-solid{--ax-range-slider-bg: var(--ax-color-primary-700);--ax-range-slider-fg: var(--ax-color-primary-200);--ax-range-tooltip-fore: var(--ax-color-primary-fore-tint)}.ax-dark ax-range-slider.ax-secondary-solid{--ax-range-slider-bg: var(--ax-color-secondary-700);--ax-range-slider-fg: var(--ax-color-secondary-200);--ax-range-tooltip-fore: var(--ax-color-secondary-fore-tint)}.ax-dark ax-range-slider.ax-success-solid{--ax-range-slider-bg: var(--ax-color-success-700);--ax-range-slider-fg: var(--ax-color-success-200);--ax-range-tooltip-fore: var(--ax-color-success-fore-tint)}.ax-dark ax-range-slider.ax-warning-solid{--ax-range-slider-bg: var(--ax-color-warning-700);--ax-range-slider-fg: var(--ax-color-warning-200);--ax-range-tooltip-fore: var(--ax-color-warning-fore-tint)}.ax-dark ax-range-slider.ax-danger-solid{--ax-range-slider-bg: var(--ax-color-danger-700);--ax-range-slider-fg: var(--ax-color-danger-200);--ax-range-tooltip-fore: var(--ax-color-danger-fore-tint)}.ax-dark ax-range-slider.ax-info-solid{--ax-range-slider-bg: var(--ax-color-info-700);--ax-range-slider-fg: var(--ax-color-info-200);--ax-range-tooltip-fore: var(--ax-color-info-fore-tint)}\n"] }]
643
- }], ctorParameters: () => [], propDecorators: { onWheel: [{
644
- type: HostListener,
645
- args: ['wheel', ['$event']]
646
- }], __hostClass: [{
647
- type: HostBinding,
648
- args: ['class']
649
- }] } });
650
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9yYW5nZS1zbGlkZXIvc3JjL2xpYi9yYW5nZS1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3JhbmdlLXNsaWRlci9zcmMvbGliL3JhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFRbkM7Ozs7Ozs7R0FPRztBQWlCSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsT0FBTyxDQUFDLENBQUEsZ0JBQW9DLENBQUEsQ0FBQztJQXNRdkY7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQXRRRixTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlCOzs7O1dBSUc7UUFDSCxnQkFBVyxHQUFHLEtBQUssQ0FBZ0IsWUFBWSxDQUFDLENBQUM7UUFFakQ7Ozs7V0FJRztRQUNILFVBQUssR0FBRyxLQUFLLENBQXFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdEOzs7V0FHRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQzs7OztX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SixDQUFDOzhHQWxtQlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsZ3BFQVR0QjtZQUNULEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTtZQUNyRTtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDbkRILHF3REF1REE7OzJGREZhLHNCQUFzQjtrQkFoQmxDLFNBQVM7K0JBQ0UsaUJBQWlCLFVBR25CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxpQkFDakIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHdCQUF3QixFQUFFO3dCQUNyRTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBcWlCRCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTBEckIsV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhPcmllbnRhdGlvbixcbiAgQVhTdHlsZUNvbG9yVHlwZSxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhWYWx1ZUNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBOZ1pvbmUsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQge1xuICBBWFJhbmdlU2xpZGVyTW9kZSxcbiAgQVhSYW5nZVNsaWRlclNuYXBNb2RlLFxuICBBWFJhbmdlU2xpZGVyVG9vbHRpcE1vZGUsXG4gIEFYUmFuZ2VTbGlkZXJWYWx1ZSxcbn0gZnJvbSAnLi9yYW5nZS1zbGlkZXIuY2xhc3MnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQSByYW5nZSBzbGlkZXIgZm9yIHNlbGVjdGluZyBhIHJhbmdlIG9mIHZhbHVlcywgc3VwcG9ydGluZyBib3RoIHNpbmdsZSBhbmQgZHVhbCBtb2Rlcy5cbiAqIFRoZSBzbGlkZXIgb2ZmZXJzIHN0ZXAsIHNuYXAsIGFuZCB0b29sdGlwIGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8YXgtcmFuZ2Utc2xpZGVyIFttaW5dPVwiMFwiIFttYXhdPVwiMTAwXCIgW3N0ZXBdPVwiMVwiIFttb2RlXT1cIidkdWFsJ1wiPjwvYXgtcmFuZ2Utc2xpZGVyPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1yYW5nZS1zbGlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdyZWFkb25seSddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhSYW5nZVNsaWRlckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhSYW5nZVNsaWRlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFJhbmdlU2xpZGVyQ29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWFZhbHVlQ29tcG9uZW50PEFYUmFuZ2VTbGlkZXJWYWx1ZT4pIHtcbiAgcHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgb3JpZW50YXRpb24gb2YgdGhlIHNsaWRlciwgZWl0aGVyICdob3Jpem9udGFsJyBvciAndmVydGljYWwnLlxuICAgKiBAZGVmYXVsdCAnaG9yaXpvbnRhbCdcbiAgICovXG4gIG9yaWVudGF0aW9uID0gaW5wdXQ8QVhPcmllbnRhdGlvbj4oJ2hvcml6b250YWwnKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENvbG9yIHRoZW1lIGZvciB0aGUgc2xpZGVyLCBhZmZlY3RpbmcgaGlnaGxpZ2h0LCB0b29sdGlwLCBhbmQgaGFuZGxlci5cbiAgICogQGRlZmF1bHQgJ3ByaW1hcnknXG4gICAqL1xuICBjb2xvciA9IGlucHV0PEV4Y2x1ZGU8QVhTdHlsZUNvbG9yVHlwZSwgJ2dob3N0Jz4+KCdwcmltYXJ5Jyk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdmFsdWUocykgb2YgdGhlIHNsaWRlci4gQ2FuIGJlIGEgc2luZ2xlIG51bWJlciBmb3Igc2luZ2xlIG1vZGUgb3IgYW4gYXJyYXkgb2YgdHdvIG51bWJlcnMgZm9yIGR1YWwgbW9kZS5cbiAgICovXG4gIHZhbHVlcyA9IG1vZGVsPEFYUmFuZ2VTbGlkZXJWYWx1ZT4odGhpcy52YWx1ZSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgbW9kZSBvZiB0aGUgc2xpZGVyLCBlaXRoZXIgJ3NpbmdsZScgb3IgJ2R1YWwnLlxuICAgKiBAZGVmYXVsdCAnc2luZ2xlJ1xuICAgKi9cbiAgbW9kZSA9IGlucHV0PEFYUmFuZ2VTbGlkZXJNb2RlPignc2luZ2xlJyk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgc2xpZGVyLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBtaW4gPSBpbnB1dDxudW1iZXI+KDApO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIHNsaWRlci5cbiAgICogQGRlZmF1bHQgMTAwXG4gICAqL1xuICBtYXggPSBpbnB1dDxudW1iZXI+KDEwMCk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgc3RlcCBpbmNyZW1lbnQgZm9yIHZhbHVlIGNoYW5nZXMuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHN0ZXAgPSBpbnB1dDxudW1iZXI+KDEpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIHNuYXBwaW5nIGluY3JlbWVudCBmb3IgdGhlIHNsaWRlci5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgc25hcCA9IGlucHV0PG51bWJlcj4oMSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBNb2RlIGZvciBkaXNwbGF5aW5nIHRvb2x0aXBzLCBjYW4gYmUgYXQgdGhlIHN0YXJ0LCBlbmQsIG9yIGJvdGguXG4gICAqIEBkZWZhdWx0ICdlbmQnXG4gICAqL1xuICB0b29sdGlwTW9kZSA9IGlucHV0PEFYUmFuZ2VTbGlkZXJUb29sdGlwTW9kZT4oJ2VuZCcpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTW9kZSBmb3Igc25hcHBpbmcsIGNhbiBzbmFwIGF0IHRoZSBzdGFydCwgZW5kLCBvciBib3RoLlxuICAgKiBAZGVmYXVsdCAnc3RhcnQnXG4gICAqL1xuICBzbmFwTW9kZSA9IGlucHV0PEFYUmFuZ2VTbGlkZXJTbmFwTW9kZT4oJ3N0YXJ0Jyk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBzbGlkZXIgc2hvdWxkIGhhdmUgc3RlcHMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGhhc1N0ZXAgPSBpbnB1dCh0cnVlKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZXRoZXIgdGhlIHNsaWRlciBzaG91bGQgZGlzcGxheSBzbmFwcGluZy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGhhc1NuYXAgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBzbGlkZXIgc2hvdWxkIGRpc3BsYXkgbGFiZWxzIGZvciBzbmFwcGluZyBwb2ludHMuXG4gICAqIEBkZWZhdWx0IFZhbHVlIGRlcml2ZWQgZnJvbSBgaGFzU25hcCgpYFxuICAgKi9cbiAgaGFzTGFibGUgPSBpbnB1dCh0aGlzLmhhc1NuYXAoKSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBzbGlkZXIgc2hvdWxkIGRpc3BsYXkgdG9vbHRpcHMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBoYXNUb29sdGlwID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBoZWlnaHQgPSAwLjI1O1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmV3SGVpZ2h0ID0gJ3ZhcigtLWF4LXJhbmdlLXNsaWRlci1iYXNlLXRoaWNrbmVzcyknO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcmFuZ2UgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1heCgpIC0gdGhpcy5taW4oKSk7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBpc0hvcml6b250YWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yaWVudGF0aW9uKCkgPT09ICdob3Jpem9udGFsJyk7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBpc0R1YWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1vZGUoKSA9PT0gJ2R1YWwnKTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvcnJlY3RNaW5NYXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1heCgpIC0gdGhpcy5taW4oKSA+IDApO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cblxuICBwcm90ZWN0ZWQgY2FsY3VsYXRlU25hcEJhciA9IGNvbXB1dGVkPG51bWJlcltdIHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmICh0aGlzLmhhc1NuYXAoKSkge1xuICAgICAgaWYgKHRoaXMuc25hcCgpIDw9IDApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignV3JvbmcgU25hcCEnKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBsZXQgYXJyYXkgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLm1pbigpOyBpIDwgdGhpcy5tYXgoKTsgaSArPSB0aGlzLnNuYXAoKSkge1xuICAgICAgICBhcnJheS5wdXNoKGkpO1xuICAgICAgfVxuICAgICAgYXJyYXkgPSBbLi4uYXJyYXksIHRoaXMubWF4KCldO1xuICAgICAgaWYgKGFycmF5WzBdIDwgMCkge1xuICAgICAgICBhcnJheSA9IGFycmF5Lm1hcCgoaSkgPT4gaSArIC1hcnJheVswXSkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgICAgfVxuICAgICAgaWYgKGFycmF5WzBdID4gMCkge1xuICAgICAgICBhcnJheSA9IGFycmF5Lm1hcCgoaSkgPT4gaSAtIGFycmF5WzBdKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9KTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBjYWxjdWxhdGVQb3MgPSBjb21wdXRlZDxBWFJhbmdlU2xpZGVyVmFsdWU+KCgpID0+IHtcbiAgICBpZiAodGhpcy5pc0R1YWwoKSAmJiB0aGlzLnZhbHVlcygpKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAoKHRoaXMudmFsdWVzKClbMF0gLSB0aGlzLm1pbigpKSAvIHRoaXMucmFuZ2UoKSkgKiAxMDAsXG4gICAgICAgICgodGhpcy52YWx1ZXMoKVsxXSAtIHRoaXMubWluKCkpIC8gdGhpcy5yYW5nZSgpKSAqIDEwMCxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoKCh0aGlzLnZhbHVlcygpIGFzIG51bWJlcikgLSB0aGlzLm1pbigpKSAvIHRoaXMucmFuZ2UoKSkgKiAxMDA7XG4gICAgfVxuICB9KTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgY2hvb3NlbkhhbmRsZXI6ICdmaXJzdCcgfCAnc2Vjb25kJyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgc2xpZGVyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBBWFJhbmdlU2xpZGVySGlnaGxpZ2h0ID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmlzSG9yaXpvbnRhbCgpXG4gICAgICA/IHtcbiAgICAgICAgICBsZWZ0OiB0aGlzLmlzRHVhbCgpID8gdGhpcy5jYWxjdWxhdGVQb3MoKVswXSArICclJyA6ICcwJScsXG4gICAgICAgICAgd2lkdGg6IHRoaXMuaXNEdWFsKClcbiAgICAgICAgICAgID8gdGhpcy5jYWxjdWxhdGVQb3MoKVsxXSAtIHRoaXMuY2FsY3VsYXRlUG9zKClbMF0gKyAnJSdcbiAgICAgICAgICAgIDogdGhpcy5jYWxjdWxhdGVQb3MoKSArICclJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmlzRHVhbCgpXG4gICAgICAgICAgICA/IHRoaXMuY2FsY3VsYXRlUG9zKClbMV0gLSB0aGlzLmNhbGN1bGF0ZVBvcygpWzBdICsgJyUnXG4gICAgICAgICAgICA6IHRoaXMuY2FsY3VsYXRlUG9zKCkgKyAnJScsXG4gICAgICAgICAgYm90dG9tOiB0aGlzLm1vZGUoKSA9PT0gJ2R1YWwnID8gdGhpcy5jYWxjdWxhdGVQb3MoKVswXSArICclJyA6ICcwJScsXG4gICAgICAgIH0sXG4gICk7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgQVhSYW5nZVNsaWRlckhhbmRsZXIxID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmlzSG9yaXpvbnRhbCgpXG4gICAgICA/IHtcbiAgICAgICAgICBsZWZ0OiB0aGlzLmlzRHVhbCgpID8gdGhpcy5jYWxjdWxhdGVQb3MoKVswXSArICclJyA6ICh0aGlzLmNhbGN1bGF0ZVBvcygpIGFzIG51bWJlcikgKyAnJScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGJvdHRvbTogdGhpcy5pc0R1YWwoKVxuICAgICAgICAgICAgPyAnY2FsYygnICsgdGhpcy5jYWxjdWxhdGVQb3MoKVswXSArICclIC0gJyArIDYgKiB0aGlzLmhlaWdodCArICdyZW0pJ1xuICAgICAgICAgICAgOiAnY2FsYygnICsgdGhpcy5jYWxjdWxhdGVQb3MoKSArICclIC0gJyArIDYgKiB0aGlzLmhlaWdodCArICdyZW0pJyxcbiAgICAgICAgfSxcbiAgKTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBBWFJhbmdlU2xpZGVySGFuZGxlcjIgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuaXNIb3Jpem9udGFsKClcbiAgICAgID8ge1xuICAgICAgICAgIGxlZnQ6IHRoaXMuY2FsY3VsYXRlUG9zKClbMV0gKyAnJScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGJvdHRvbTogJ2NhbGMoJyArIHRoaXMuY2FsY3VsYXRlUG9zKClbMV0gKyAnJSAtICcgKyA2ICogdGhpcy5oZWlnaHQgKyAncmVtKScsXG4gICAgICAgIH0sXG4gICk7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgQVhSYW5nZVNsaWRlclN0ZXAgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuaXNIb3Jpem9udGFsKCkpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zbmFwTW9kZSgpKSB7XG4gICAgICAgIGNhc2UgJ2JvdGgnOlxuICAgICAgICAgIHJldHVybiB7IHRvcDogJzAnLCBoZWlnaHQ6IDggKiB0aGlzLmhlaWdodCArICdyZW0nIH07XG4gICAgICAgIGNhc2UgJ3N0YXJ0JzpcbiAgICAgICAgICByZXR1cm4geyB0b3A6IDQgKiB0aGlzLmhlaWdodCArICdyZW0nLCBoZWlnaHQ6IDQgKiB0aGlzLmhlaWdodCArICdyZW0nIH07XG4gICAgICAgIGNhc2UgJ2VuZCc6XG4gICAgICAgICAgcmV0dXJuIHsgdG9wOiAtMiAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScsIGhlaWdodDogNCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLnNuYXBNb2RlKCkpIHtcbiAgICAgICAgY2FzZSAnYm90aCc6XG4gICAgICAgICAgcmV0dXJuIHsgdG9wOiAnMCcsIHdpZHRoOiA4ICogdGhpcy5oZWlnaHQgKyAncmVtJyB9O1xuICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgcmV0dXJuIHsgbGVmdDogNCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScsIHdpZHRoOiA0ICogdGhpcy5oZWlnaHQgKyAncmVtJyB9O1xuICAgICAgICBjYXNlICdlbmQnOlxuICAgICAgICAgIHJldHVybiB7IGxlZnQ6IC0yICogdGhpcy5oZWlnaHQgKyAncmVtJywgd2lkdGg6IDQgKiB0aGlzLmhlaWdodCArICdyZW0nIH07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBBWFJhbmdlTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuaXNIb3Jpem9udGFsKCkpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zbmFwTW9kZSgpKSB7XG4gICAgICAgIGNhc2UgJ2JvdGgnOlxuICAgICAgICAgIHJldHVybiB7IHRvcDogNiAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgICAgY2FzZSAnc3RhcnQnOlxuICAgICAgICAgIHJldHVybiB7IHRvcDogNCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICByZXR1cm4geyB0b3A6IC02ICogdGhpcy5oZWlnaHQgKyAncmVtJyB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuc25hcE1vZGUoKSkge1xuICAgICAgICBjYXNlICdib3RoJzpcbiAgICAgICAgICByZXR1cm4geyBsZWZ0OiA4ICogdGhpcy5oZWlnaHQgKyAncmVtJyB9O1xuICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgcmV0dXJuIHsgbGVmdDogNCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICByZXR1cm4geyBsZWZ0OiAtOCAqIHRoaXMuaGVpZ2h0ICsgJ3JlbScgfTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGVmZmVjdCgoKSA9PiB0aGlzLmNvbW1pdFZhbHVlKHRoaXMudmFsdWVzKCkpKTtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvcnJlY3RNaW5NYXgoKSkge1xuICAgICAgICAgIHRoaXMuZml4SW5pdGlhbGl6ZVZhbHVlcygpO1xuICAgICAgICAgIHRoaXMuZml4Q2hhbmdpbmdNb2RlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgTWluID0gJHt0aGlzLm1pbigpfSBBbmQgTWF4ID0gJHt0aGlzLm1heCgpfSBpcyBub3QgY29ycmVjdCBpbnB1dHMuYCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZT8udmFsdWUgIT0gdW5kZWZpbmVkICYmIHZhbHVlPy52YWx1ZSAhPSBudWxsICYmIHRoaXMudmFsdWVzKCkgIT09IHZhbHVlLnZhbHVlKVxuICAgICAgICB0aGlzLnZhbHVlcy5zZXQodmFsdWUudmFsdWUpO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvLyh3aW5kb3cgYXMgYW55KS5yYW5nZVNsaWRlciA9IHRoaXM7IC8vZm9yIGRlYnVnZ2luZyBwdXJwb3NlIG9ubHlcbiAgICBpZiAoIXRoaXMuY29ycmVjdE1pbk1heCgpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNaW4gPSAke3RoaXMubWluKCl9IEFuZCBNYXggPSAke3RoaXMubWF4KCl9IGlzIG5vdCBjb3JyZWN0IGlucHV0cy5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsaXplVmFsdWVzKCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb25TdGFydEhhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBjaXJjbGU6ICdmaXJzdCcgfCAnc2Vjb25kJyk6IHZvaWQge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5IHx8ICF0aGlzLmNvcnJlY3RNaW5NYXgoKSkgcmV0dXJuO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2xpZGVyRWxlbWVudCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5heC1yYW5nZS1zbGlkZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmICh0aGlzLnNsaWRlckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5jaG9vc2VuSGFuZGxlciA9IGNpcmNsZTtcbiAgICAgICAgY29uc3QgbW92ZUxpc3RlbmVyID0gKG1vdmVFdmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHRoaXMub25Nb3ZlKG1vdmVFdmVudCwgY2lyY2xlKTtcbiAgICAgICAgY29uc3QgZW5kTGlzdGVuZXIgPSAoKSA9PiB0aGlzLm9uRW5kKG1vdmVMaXN0ZW5lciwgZW5kTGlzdGVuZXIpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW92ZUxpc3RlbmVyKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBlbmRMaXN0ZW5lcik7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBtb3ZlTGlzdGVuZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZW5kTGlzdGVuZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb25TdGFydEJhcihldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcbiAgICBsZXQgY2lyY2xlOiAnZmlyc3QnIHwgJ3NlY29uZCcgPSAnZmlyc3QnO1xuICAgIHRoaXMuc2xpZGVyRWxlbWVudCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5heC1yYW5nZS1zbGlkZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnNsaWRlckVsZW1lbnQgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgICBjb25zdCBjYWxjdWxhdGVQZXJjZW50ID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50T25Nb3ZlKGV2ZW50KTtcbiAgICAgIGNvbnN0IGV4YWN0VmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbVBlcmNlbnQoY2FsY3VsYXRlUGVyY2VudCk7XG4gICAgICBsZXQgdmFsdWUgPSBOdW1iZXIucGFyc2VGbG9hdChleGFjdFZhbHVlLnRvRml4ZWQoMikpO1xuICAgICAgaWYgKHRoaXMuaGFzU3RlcCgpKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5yb3VuZFRvU3RlcCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc0R1YWwoKSkge1xuICAgICAgICBpZiAoTWF0aC5hYnMoZXhhY3RWYWx1ZSAtIHRoaXMudmFsdWVzKClbMF0pID4gTWF0aC5hYnMoZXhhY3RWYWx1ZSAtIHRoaXMudmFsdWVzKClbMV0pKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt0aGlzLnZhbHVlcygpWzBdLCB2YWx1ZV0pO1xuICAgICAgICAgIGNpcmNsZSA9ICdzZWNvbmQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlcygpWzFdID09PSB0aGlzLm1pbigpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoW3RoaXMudmFsdWVzKClbMF0sIHZhbHVlXSk7XG4gICAgICAgICAgICBjaXJjbGUgPSAnc2Vjb25kJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt2YWx1ZSwgdGhpcy52YWx1ZXMoKVsxXV0pO1xuICAgICAgICAgICAgY2lyY2xlID0gJ2ZpcnN0JztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWVzLnNldCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5vblN0YXJ0SGFuZGxlcihldmVudCwgY2lyY2xlKTtcbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIG9uTW92ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGNpcmNsZTogJ2ZpcnN0JyB8ICdzZWNvbmQnKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNsaWRlckVsZW1lbnQpIHJldHVybjtcbiAgICBjb25zdCBjYWxjdWxhdGVQZXJjZW50ID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50T25Nb3ZlKGV2ZW50KTtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbVBlcmNlbnQoY2FsY3VsYXRlUGVyY2VudCk7XG4gICAgdmFsdWUgPSBOdW1iZXIucGFyc2VGbG9hdCh2YWx1ZS50b0ZpeGVkKDIpKTtcbiAgICBpZiAodGhpcy5oYXNTdGVwKCkpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5yb3VuZFRvU3RlcCh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRHVhbCgpKSB7XG4gICAgICBpZiAoY2lyY2xlID09PSAnZmlyc3QnICYmIHZhbHVlIDw9IHRoaXMudmFsdWVzKClbMV0pIHtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tWYWx1ZXModmFsdWUsICdmaXJzdCcsIHRoaXMudmFsdWVzKClbMV0pICYmIHRoaXMudmFsdWVzKClbMF0gIT09IHZhbHVlKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt2YWx1ZSwgdGhpcy52YWx1ZXMoKVsxXV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNpcmNsZSA9PT0gJ3NlY29uZCcgJiYgdmFsdWUgPj0gdGhpcy52YWx1ZXMoKVswXSAmJiB0aGlzLnZhbHVlcygpWzFdICE9PSB2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5jaGVja1ZhbHVlcyh2YWx1ZSwgJ3NlY29uZCcsIHRoaXMudmFsdWVzKClbMF0pKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt0aGlzLnZhbHVlcygpWzBdLCB2YWx1ZV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrVmFsdWUodmFsdWUpICYmIHRoaXMudmFsdWVzKCkgIT09IHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWVzLnNldCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb25FbmQobW92ZUxpc3RlbmVyOiAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB2b2lkLCBlbmRMaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3ZlTGlzdGVuZXIpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZW5kTGlzdGVuZXIpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBtb3ZlTGlzdGVuZXIpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGVuZExpc3RlbmVyKTtcbiAgICB0aGlzLnNsaWRlckVsZW1lbnQgPSBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVWYWx1ZXMoKSB7XG4gICAgdGhpcy5maXhJbml0aWFsaXplVW5kZWZpbmVkKCk7XG4gICAgdGhpcy5maXhJbml0aWFsaXplVmFsdWVzKCk7XG4gICAgdGhpcy5maXhJbml0aWFsaXplU3RlcCgpO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGZpeEluaXRpYWxpemVVbmRlZmluZWQoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlcygpID09PSAndW5kZWZpbmVkJykge1xuICAgICAgaWYgKHRoaXMuaXNEdWFsKCkpIHtcbiAgICAgICAgdGhpcy52YWx1ZXMuc2V0KFt0aGlzLm1pbigpLCB0aGlzLm1heCgpXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZhbHVlcy5zZXQodGhpcy5taW4oKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGZpeEluaXRpYWxpemVWYWx1ZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNEdWFsKCkgJiYgdGhpcy52YWx1ZXMoKVswXSA+IHRoaXMudmFsdWVzKClbMV0pIHtcbiAgICAgIHRoaXMudmFsdWVzLnNldChbdGhpcy52YWx1ZXMoKVsxXSwgdGhpcy52YWx1ZXMoKVswXV0pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWVzKCkgPT09ICdudW1iZXInICYmICF0aGlzLmNoZWNrVmFsdWUodGhpcy52YWx1ZXMoKSBhcyBudW1iZXIpKSB7XG4gICAgICB0aGlzLnZhbHVlcy5zZXQodGhpcy5taW4oKSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHR5cGVvZiB0aGlzLnZhbHVlcygpICE9PSAnbnVtYmVyJyAmJlxuICAgICAgIXRoaXMuY2hlY2tWYWx1ZXModGhpcy52YWx1ZXMoKVswXSwgJ2ZpcnN0JywgdGhpcy52YWx1ZXMoKVsxXSlcbiAgICApIHtcbiAgICAgIHRoaXMudmFsdWVzLnNldChbdGhpcy5taW4oKSwgdGhpcy5tYXgoKV0pO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBmaXhJbml0aWFsaXplU3RlcCgpIHtcbiAgICBpZiAodGhpcy5zdGVwKCkgIT09IDEpIHtcbiAgICAgIGlmICh0aGlzLmlzRHVhbCgpKSB7XG4gICAgICAgIHRoaXMudmFsdWVzLnVwZGF0ZSgob2xkKSA9PiBbdGhpcy5yb3VuZFRvU3RlcChvbGRbMF0pLCB0aGlzLnJvdW5kVG9TdGVwKG9sZFsxXSldKTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVzKClbMF0gPT09IHRoaXMudmFsdWVzKClbMV0pIHtcbiAgICAgICAgICB0aGlzLnZhbHVlcy51cGRhdGUoKG9sZCkgPT4gW3RoaXMucm91bmRUb1N0ZXAob2xkWzBdKSwgdGhpcy5yb3VuZFRvU3RlcChvbGRbMV0pICsgdGhpcy5zdGVwKCldKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IHRoaXMucm91bmRUb1N0ZXAob2xkIGFzIG51bWJlcikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBmaXhDaGFuZ2luZ01vZGUoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlcygpID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzRHVhbCgpKSB7XG4gICAgICB0aGlzLnZhbHVlcy5zZXQoW3RoaXMubWluKCksIHRoaXMubWF4KCldKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnZhbHVlcygpICE9PSAnbnVtYmVyJyAmJiAhdGhpcy5pc0R1YWwoKSkge1xuICAgICAgdGhpcy52YWx1ZXMuc2V0KHRoaXMubWluKCkpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxhdGVQZXJjZW50T25Nb3ZlKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2xpZGVyUmVjdCA9IHRoaXMuc2xpZGVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBsZXQgcGVyY2VudDogbnVtYmVyO1xuICAgIGlmICh0aGlzLmlzSG9yaXpvbnRhbCgpKSB7XG4gICAgICBjb25zdCBjbGllbnRYID0gZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQuY2xpZW50WCA6IChldmVudCBhcyBUb3VjaEV2ZW50KS50b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICBjb25zdCB4ID0gY2xpZW50WCAtIHNsaWRlclJlY3QubGVmdDtcbiAgICAgIHBlcmNlbnQgPSAoeCAvIHNsaWRlclJlY3Qud2lkdGgpICogMTAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRZID0gZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQuY2xpZW50WSA6IChldmVudCBhcyBUb3VjaEV2ZW50KS50b3VjaGVzWzBdLmNsaWVudFk7XG4gICAgICBjb25zdCB5ID0gLShjbGllbnRZIC0gc2xpZGVyUmVjdC5ib3R0b20pOyAvL3JldmVyY2Ugc2xpZGVyIGZyb20gYm90dG9tIHRvIHRvcFxuICAgICAgcGVyY2VudCA9ICh5IC8gc2xpZGVyUmVjdC5oZWlnaHQpICogMTAwO1xuICAgIH1cbiAgICBpZiAocGVyY2VudCA8IDApIHtcbiAgICAgIHBlcmNlbnQgPSAwO1xuICAgIH0gZWxzZSBpZiAocGVyY2VudCA+IDEwMCkge1xuICAgICAgcGVyY2VudCA9IDEwMDtcbiAgICB9XG4gICAgcmV0dXJuIHBlcmNlbnQ7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSByb3VuZFRvU3RlcCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBsb3dlciA9IE1hdGgubWF4KFxuICAgICAgdGhpcy5taW4oKSxcbiAgICAgIE1hdGguZmxvb3IoKHZhbHVlIC0gdGhpcy5taW4oKSkgLyB0aGlzLnN0ZXAoKSkgKiB0aGlzLnN0ZXAoKSArIHRoaXMubWluKCksXG4gICAgKTtcbiAgICBjb25zdCB1cHBlciA9IE1hdGgubWluKHRoaXMubWF4KCksIGxvd2VyICsgdGhpcy5zdGVwKCkpO1xuICAgIGlmICh2YWx1ZSAtIGxvd2VyIDwgdXBwZXIgLSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGxvd2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdXBwZXI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgY2hlY2tWYWx1ZSh4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAoeCA+PSB0aGlzLm1pbigpICYmIHggPD0gdGhpcy5tYXgoKSkgcmV0dXJuIHRydWU7XG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgY2hlY2tWYWx1ZXModmFsdWUxOiBudW1iZXIsIHk6ICdmaXJzdCcgfCAnc2Vjb25kJywgdmFsdWUyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUxID49IHRoaXMubWluKCkgJiYgdmFsdWUxIDw9IHRoaXMubWF4KCkpIHtcbiAgICAgIGlmICh5ID09PSAnZmlyc3QnKSB7XG4gICAgICAgIGlmICh2YWx1ZTEgPD0gdmFsdWUyICYmIHZhbHVlMiA8PSB0aGlzLm1heCgpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodmFsdWUxID49IHZhbHVlMiAmJiB2YWx1ZTIgPj0gdGhpcy5taW4oKSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBnZXRWYWx1ZUZyb21QZXJjZW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5taW4oKSArICh2YWx1ZSAqICh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkpIC8gMTAwO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0UGVyY2FudGFnZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZSgpICE9PSAwID8gKHZhbHVlIC8gdGhpcy5yYW5nZSgpKSAqIDEwMCA6IDA7XG4gIH1cbiAgLyoqXG4gICAqIEluY3JlYXNlIGEgc3RlcCB0byB2YWx1ZSBpZiBzbGlkZXIgaW4gc2luZ2xlIG1vZGVcbiAgICogYW5kIGluY3JlYXNlIGEgc3RlcCB0aGUgc2Vjb25kIHZhbHVlIGlmIHNsaWRlciBpbiBkdWFsIG1vZGVcbiAgICogQG1ldGhvZCBpbmNyZWFzZVN0ZXBcbiAgICovXG4gIHB1YmxpYyBpbmNyZWFzZVN0ZXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEdWFsKCkpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5yb3VuZFRvU3RlcCh0aGlzLnZhbHVlcygpWzFdICsgdGhpcy5zdGVwKCkpO1xuICAgICAgdGhpcy52YWx1ZXMuc2V0KFt0aGlzLnZhbHVlcygpWzBdLCBuZXdWYWx1ZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMucm91bmRUb1N0ZXAoKHRoaXMudmFsdWVzKCkgYXMgbnVtYmVyKSArIHRoaXMuc3RlcCgpKTtcbiAgICAgIHRoaXMudmFsdWVzLnNldChuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBEZWNyZWFzZSBhIHN0ZXAgdG8gdmFsdWUgaWYgc2xpZGVyIGluIHNpbmdsZSBtb2RlXG4gICAqIGFuZCBkZWNyZWFzZSBhIHN0ZXAgdGhlIHNlY29uZCB2YWx1ZSBpZiBzbGlkZXIgaW4gZHVhbCBtb2RlXG4gICAqIEBtZXRob2QgZGVjcmVhc2VTdGVwXG4gICAqL1xuICBwdWJsaWMgZGVjcmVhc2VTdGVwKCkge1xuICAgIGlmICh0aGlzLmlzRHVhbCgpKSB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMucm91bmRUb1N0ZXAodGhpcy52YWx1ZXMoKVswXSAtIHRoaXMuc3RlcCgpKTtcbiAgICAgIHRoaXMudmFsdWVzLnNldChbbmV3VmFsdWUsIHRoaXMudmFsdWVzKClbMV1dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnJvdW5kVG9TdGVwKCh0aGlzLnZhbHVlcygpIGFzIG51bWJlcikgLSB0aGlzLnN0ZXAoKSk7XG4gICAgICB0aGlzLnZhbHVlcy5zZXQobmV3VmFsdWUpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxuICBvbldoZWVsKGV2ZW50OiBXaGVlbEV2ZW50KSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAoIXRoaXMuY2hvb3NlbkhhbmRsZXIgfHwgdGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmNvcnJlY3RNaW5NYXgoKSkgcmV0dXJuO1xuICAgICAgbGV0IG5ld1ZhbHVlO1xuICAgICAgaWYgKHRoaXMuaXNEdWFsKCkpIHtcbiAgICAgICAgaWYgKGV2ZW50LmRlbHRhWSA8IDApIHtcbiAgICAgICAgICBpZiAodGhpcy5jaG9vc2VuSGFuZGxlciA9PT0gJ2ZpcnN0Jykge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLnJvdW5kVG9TdGVwKCh0aGlzLnZhbHVlcygpWzBdIGFzIG51bWJlcikgKyB0aGlzLnN0ZXAoKSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tWYWx1ZXMobmV3VmFsdWUsIHRoaXMuY2hvb3NlbkhhbmRsZXIsIHRoaXMudmFsdWVzKClbMV0pICYmXG4gICAgICAgICAgICAgIHRoaXMudmFsdWVzKClbMF0gIT09IG5ld1ZhbHVlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IFt0aGlzLnJvdW5kVG9TdGVwKChvbGRbMF0gYXMgbnVtYmVyKSArIHRoaXMuc3RlcCgpKSwgb2xkWzFdXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5yb3VuZFRvU3RlcCgodGhpcy52YWx1ZXMoKVsxXSBhcyBudW1iZXIpICsgdGhpcy5zdGVwKCkpO1xuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlIDw9IHRoaXMubWF4KCkgJiYgdGhpcy52YWx1ZXMoKVsxXSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IFtvbGRbMF0sIHRoaXMucm91bmRUb1N0ZXAoKG9sZFsxXSBhcyBudW1iZXIpICsgdGhpcy5zdGVwKCkpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLmNob29zZW5IYW5kbGVyID09PSAnZmlyc3QnKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHRoaXMucm91bmRUb1N0ZXAoKHRoaXMudmFsdWVzKClbMF0gYXMgbnVtYmVyKSAtIHRoaXMuc3RlcCgpKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy5jaGVja1ZhbHVlcyhuZXdWYWx1ZSwgdGhpcy5jaG9vc2VuSGFuZGxlciwgdGhpcy52YWx1ZXMoKVsxXSkgJiZcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZXMoKSAhPT0gbmV3VmFsdWVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlcy51cGRhdGUoKG9sZCkgPT4gW3RoaXMucm91bmRUb1N0ZXAoKG9sZFswXSBhcyBudW1iZXIpIC0gdGhpcy5zdGVwKCkpLCBvbGRbMV1dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLnJvdW5kVG9TdGVwKCh0aGlzLnZhbHVlcygpWzFdIGFzIG51bWJlcikgLSB0aGlzLnN0ZXAoKSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tWYWx1ZXMobmV3VmFsdWUsIHRoaXMuY2hvb3NlbkhhbmRsZXIsIHRoaXMudmFsdWVzKClbMF0pICYmXG4gICAgICAgICAgICAgIHRoaXMudmFsdWVzKClbMV0gIT09IG5ld1ZhbHVlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IFtvbGRbMF0sIHRoaXMucm91bmRUb1N0ZXAoKG9sZFsxXSBhcyBudW1iZXIpIC0gdGhpcy5zdGVwKCkpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXZlbnQuZGVsdGFZIDwgMCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoZWNrVmFsdWUodGhpcy5yb3VuZFRvU3RlcCgodGhpcy52YWx1ZXMoKSBhcyBudW1iZXIpICsgdGhpcy5zdGVwKCkpKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKChvbGQpID0+IHRoaXMucm91bmRUb1N0ZXAoKG9sZCBhcyBudW1iZXIpICsgdGhpcy5zdGVwKCkpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hlY2tWYWx1ZSh0aGlzLnJvdW5kVG9TdGVwKCh0aGlzLnZhbHVlcygpIGFzIG51bWJlcikgLSB0aGlzLnN0ZXAoKSkpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlcy51cGRhdGUoKG9sZCkgPT4gdGhpcy5yb3VuZFRvU3RlcCgob2xkIGFzIG51bWJlcikgLSB0aGlzLnN0ZXAoKSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICBgYXgtJHt0aGlzLmNvbG9yKCl9LXNvbGlkYCxcbiAgICAgIGAke3RoaXMuZGlzYWJsZWQgPyAnYXgtc3RhdGUtZGlzYWJsZWQnIDogJyd9YCxcbiAgICAgIGAke3RoaXMucmVhZG9ubHkgPyAnYXgtc3RhdGUtcmVhZG9ubHknIDogJyd9YCxcbiAgICBdO1xuICB9XG59XG4iLCJAaWYgKGNvcnJlY3RNaW5NYXgoKSkge1xuICA8ZGl2IGNsYXNzPVwiYXgtcmFuZ2Utc2xpZGVyXCIgW2NsYXNzXT1cIidheC1vcmllbnRhdGlvbi0nICsgb3JpZW50YXRpb24oKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1yYW5nZS1zbGlkZXItYmFyXCIgKG1vdXNlZG93bik9XCJvblN0YXJ0QmFyKCRldmVudClcIiAodG91Y2hzdGFydCk9XCJvblN0YXJ0QmFyKCRldmVudClcIj48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImF4LXJhbmdlLXNsaWRlci1oaWdobGlnaHRcIlxuICAgICAgW25nU3R5bGVdPVwiQVhSYW5nZVNsaWRlckhpZ2hsaWdodCgpXCJcbiAgICAgIChtb3VzZWRvd24pPVwib25TdGFydEJhcigkZXZlbnQpXCJcbiAgICAgICh0b3VjaHN0YXJ0KT1cIm9uU3RhcnRCYXIoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJheC1yYW5nZS1zbGlkZXItaGFuZGxlclwiXG4gICAgICBbbmdTdHlsZV09XCJBWFJhbmdlU2xpZGVySGFuZGxlcjEoKVwiXG4gICAgICBuYW1lPVwiZmlyc3RcIlxuICAgICAgKG1vdXNlZG93bik9XCJvblN0YXJ0QmFyKCRldmVudClcIlxuICAgICAgKHRvdWNoc3RhcnQpPVwib25TdGFydEJhcigkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAaWYgKGhhc1Rvb2x0aXAoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcmFuZ2Utc2xpZGVyLXRvb2x0aXBcIj57eyBpc0R1YWwoKSA/IHZhbHVlcygpWzBdIDogdmFsdWVzKCkgfX08L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoaXNEdWFsKCkpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJheC1yYW5nZS1zbGlkZXItaGFuZGxlclwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIkFYUmFuZ2VTbGlkZXJIYW5kbGVyMigpXCJcbiAgICAgICAgbmFtZT1cInNlY29uZFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwib25TdGFydEJhcigkZXZlbnQpXCJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwib25TdGFydEJhcigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGlmIChoYXNUb29sdGlwKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcmFuZ2Utc2xpZGVyLXRvb2x0aXBcIj57eyB2YWx1ZXMoKVsxXSB9fTwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChoYXNTbmFwKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1yYW5nZS1zbGlkZXItc3RlcFwiIFtuZ1N0eWxlXT1cIkFYUmFuZ2VTbGlkZXJTdGVwKClcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBjYWxjdWxhdGVTbmFwQmFyKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYXgtcmFuZ2Utc2xpZGVyLXN0ZXBzXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBpc0hvcml6b250YWwoKSA/IHsgbGVmdDogZ2V0UGVyY2FudGFnZShpdGVtKSArICclJyB9IDogeyBib3R0b206IGdldFBlcmNhbnRhZ2UoaXRlbSkgKyAnJScgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGhhc0xhYmxlKCkpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXJhbmdlLXNsaWRlci1sYWJlbFwiIFtuZ1N0eWxlXT1cIkFYUmFuZ2VMYWJlbCgpXCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbSArIG1pbigpIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxufVxuIl19