@acorex/components 16.0.2 → 17.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1254) hide show
  1. package/action-sheet/README.md +3 -0
  2. package/action-sheet/index.d.ts +4 -0
  3. package/action-sheet/lib/action-sheet.class.d.ts +31 -0
  4. package/action-sheet/lib/action-sheet.component.d.ts +23 -0
  5. package/action-sheet/lib/action-sheet.module.d.ts +16 -0
  6. package/action-sheet/lib/action-sheet.service.d.ts +13 -0
  7. package/alert/README.md +3 -0
  8. package/alert/index.d.ts +2 -0
  9. package/alert/lib/alert.component.d.ts +55 -0
  10. package/alert/lib/alert.module.d.ts +9 -0
  11. package/avatar/README.md +3 -0
  12. package/avatar/index.d.ts +3 -0
  13. package/avatar/lib/avatar-group.component.d.ts +5 -0
  14. package/avatar/lib/avatar.component.d.ts +17 -0
  15. package/avatar/lib/avatar.module.d.ts +9 -0
  16. package/badge/README.md +3 -0
  17. package/badge/index.d.ts +2 -0
  18. package/badge/lib/badge.component.d.ts +8 -0
  19. package/badge/lib/badge.module.d.ts +8 -0
  20. package/bottom-navigation/README.md +3 -0
  21. package/bottom-navigation/index.d.ts +3 -0
  22. package/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.d.ts +15 -0
  23. package/bottom-navigation/lib/bottom-navigation.component.d.ts +17 -0
  24. package/bottom-navigation/lib/bottom-navigation.module.d.ts +9 -0
  25. package/breadcrumbs/README.md +3 -0
  26. package/breadcrumbs/index.d.ts +4 -0
  27. package/breadcrumbs/lib/breadcrumbs-item.class.d.ts +9 -0
  28. package/breadcrumbs/lib/breadcrumbs-item.component.d.ts +14 -0
  29. package/breadcrumbs/lib/breadcrumbs.component.d.ts +9 -0
  30. package/breadcrumbs/lib/breadcrumbs.module.d.ts +10 -0
  31. package/button/README.md +3 -0
  32. package/button/index.d.ts +5 -0
  33. package/button/lib/button-item-list.component.d.ts +19 -0
  34. package/button/lib/button-item.class.d.ts +24 -0
  35. package/button/lib/button-item.component.d.ts +30 -0
  36. package/button/lib/button.component.d.ts +26 -0
  37. package/button/lib/button.module.d.ts +13 -0
  38. package/button-group/README.md +3 -0
  39. package/button-group/index.d.ts +2 -0
  40. package/button-group/lib/button-group.component.d.ts +24 -0
  41. package/button-group/lib/button-group.module.d.ts +8 -0
  42. package/calendar/README.md +3 -0
  43. package/calendar/index.d.ts +4 -0
  44. package/calendar/lib/calendar-range.component.d.ts +31 -0
  45. package/calendar/lib/calendar.class.d.ts +80 -0
  46. package/calendar/lib/calendar.component.d.ts +51 -0
  47. package/calendar/lib/calendar.module.d.ts +11 -0
  48. package/chat/README.md +3 -0
  49. package/chat/index.d.ts +13 -0
  50. package/chat/lib/chat-input/chat-input.component.d.ts +35 -0
  51. package/chat/lib/chat-input/chat-input.interface.d.ts +10 -0
  52. package/chat/lib/chat-message/chat-message.component.d.ts +12 -0
  53. package/chat/lib/chat-messages/chat-message-audio.component.d.ts +7 -0
  54. package/chat/lib/chat-messages/chat-message-text.component.d.ts +8 -0
  55. package/chat/lib/chat-view/chat-view.component.d.ts +10 -0
  56. package/chat/lib/chat-voice/chat-voice.component.d.ts +6 -0
  57. package/chat/lib/chat.module.d.ts +29 -0
  58. package/chat/lib/chat.types.d.ts +21 -0
  59. package/chat/lib/classes/events.interface.d.ts +4 -0
  60. package/chat/lib/services/chat-message-type-registry.service.d.ts +9 -0
  61. package/chat/lib/services/chat.service.d.ts +5 -0
  62. package/chat/lib/services/recording.service.d.ts +20 -0
  63. package/check-box/README.md +3 -0
  64. package/check-box/index.d.ts +2 -0
  65. package/check-box/lib/check-box.component.d.ts +16 -0
  66. package/check-box/lib/check-box.module.d.ts +10 -0
  67. package/chips/README.md +3 -0
  68. package/chips/index.d.ts +2 -0
  69. package/chips/lib/chips.component.d.ts +11 -0
  70. package/chips/lib/chips.module.d.ts +8 -0
  71. package/circular-progress/README.md +3 -0
  72. package/circular-progress/index.d.ts +2 -0
  73. package/circular-progress/lib/circular-progress.component.d.ts +33 -0
  74. package/circular-progress/lib/circular-progress.module.d.ts +7 -0
  75. package/collapse/README.md +3 -0
  76. package/collapse/index.d.ts +3 -0
  77. package/collapse/lib/collapse-group.component.d.ts +30 -0
  78. package/collapse/lib/collapse.component.d.ts +46 -0
  79. package/collapse/lib/collapse.module.d.ts +10 -0
  80. package/color-box/README.md +3 -0
  81. package/color-box/index.d.ts +2 -0
  82. package/color-box/lib/color-box.component.d.ts +27 -0
  83. package/color-box/lib/color-box.module.d.ts +11 -0
  84. package/color-palette/README.md +3 -0
  85. package/color-palette/index.d.ts +7 -0
  86. package/color-palette/lib/color-palette-input.component.d.ts +25 -0
  87. package/color-palette/lib/color-palette-picker.component.d.ts +35 -0
  88. package/color-palette/lib/color-palette-preview.component.d.ts +16 -0
  89. package/color-palette/lib/color-palette-swatches.component.d.ts +21 -0
  90. package/color-palette/lib/color-palette.class.d.ts +28 -0
  91. package/color-palette/lib/color-palette.component.d.ts +10 -0
  92. package/color-palette/lib/color-palette.module.d.ts +20 -0
  93. package/common/README.md +3 -0
  94. package/common/index.d.ts +28 -0
  95. package/common/lib/classes/components.class.d.ts +83 -0
  96. package/common/lib/classes/datalist.class.d.ts +37 -0
  97. package/common/lib/classes/datasource.class.d.ts +78 -0
  98. package/common/lib/classes/events.class.d.ts +96 -0
  99. package/common/lib/classes/styles.class.d.ts +8 -0
  100. package/common/lib/common.module.d.ts +10 -0
  101. package/common/lib/components/base-component.class.d.ts +38 -0
  102. package/common/lib/components/button-base-component.class.d.ts +35 -0
  103. package/common/lib/components/color-component.class.d.ts +12 -0
  104. package/common/lib/components/colorlook-component.class.d.ts +6 -0
  105. package/common/lib/components/input-base-value-component.class.d.ts +27 -0
  106. package/common/lib/components/interactive-component.class.d.ts +42 -0
  107. package/common/lib/components/look-component.class.d.ts +18 -0
  108. package/common/lib/components/selection-base.component.class.d.ts +48 -0
  109. package/common/lib/components/value-component.class.d.ts +67 -0
  110. package/common/lib/directives/auto-focus.directive.d.ts +15 -0
  111. package/common/lib/directives/delayed-value-changed.directive.d.ts +17 -0
  112. package/common/lib/directives/hotkey.directive.d.ts +22 -0
  113. package/common/lib/directives/infinite-scroll.directive.d.ts +25 -0
  114. package/common/lib/directives/responsive.directive.d.ts +10 -0
  115. package/common/lib/directives/ripple.directive.d.ts +16 -0
  116. package/common/lib/services/dom.service.d.ts +6 -0
  117. package/common/lib/services/hotkey.service.d.ts +31 -0
  118. package/common/lib/types/direction.d.ts +4 -0
  119. package/common/lib/types/orientation.d.ts +4 -0
  120. package/common/lib/types/placement.d.ts +30 -0
  121. package/common/lib/types/range.d.ts +4 -0
  122. package/common/lib/types/selection-mode.d.ts +4 -0
  123. package/data-pager/README.md +3 -0
  124. package/data-pager/index.d.ts +9 -0
  125. package/data-pager/lib/data-pager-base.component.d.ts +54 -0
  126. package/data-pager/lib/data-pager-info.component.d.ts +11 -0
  127. package/data-pager/lib/data-pager-input-selector.component.d.ts +11 -0
  128. package/data-pager/lib/data-pager-next-buttons.components.d.ts +10 -0
  129. package/data-pager/lib/data-pager-numeric-selector.component.d.ts +13 -0
  130. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +14 -0
  131. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +10 -0
  132. package/data-pager/lib/data-pager.component.d.ts +34 -0
  133. package/data-pager/lib/data-pager.module.d.ts +21 -0
  134. package/data-table/README.md +3 -0
  135. package/data-table/index.d.ts +10 -0
  136. package/data-table/lib/base-data-table.class.d.ts +25 -0
  137. package/data-table/lib/columns/data-table-column-resizable.directive.d.ts +22 -0
  138. package/data-table/lib/columns/data-table-column.d.ts +20 -0
  139. package/data-table/lib/columns/data-text-column.component.d.ts +18 -0
  140. package/data-table/lib/columns/row-command-column.component.d.ts +40 -0
  141. package/data-table/lib/columns/row-index-column.component.d.ts +18 -0
  142. package/data-table/lib/columns/row-select-column.component.d.ts +14 -0
  143. package/data-table/lib/data-table/data-table.component.d.ts +52 -0
  144. package/data-table/lib/data-table.module.d.ts +26 -0
  145. package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +66 -0
  146. package/datetime-box/README.md +3 -0
  147. package/datetime-box/index.d.ts +2 -0
  148. package/datetime-box/lib/datetime-box.component.d.ts +36 -0
  149. package/datetime-box/lib/datetime-box.module.d.ts +13 -0
  150. package/datetime-input/README.md +3 -0
  151. package/datetime-input/index.d.ts +2 -0
  152. package/datetime-input/lib/datetime-input.component.d.ts +45 -0
  153. package/datetime-input/lib/datetime-input.module.d.ts +10 -0
  154. package/datetime-picker/README.md +3 -0
  155. package/datetime-picker/index.d.ts +3 -0
  156. package/datetime-picker/lib/datetime-picker.component.d.ts +49 -0
  157. package/datetime-picker/lib/datetime-picker.config.d.ts +8 -0
  158. package/datetime-picker/lib/datetime-picker.module.d.ts +15 -0
  159. package/decorators/README.md +3 -0
  160. package/decorators/index.d.ts +5 -0
  161. package/decorators/lib/components/clear-button.component.d.ts +13 -0
  162. package/decorators/lib/components/close-button.component.d.ts +12 -0
  163. package/decorators/lib/components/generic-content.component.d.ts +6 -0
  164. package/decorators/lib/components/icon.component.d.ts +8 -0
  165. package/decorators/lib/decorators.module.d.ts +11 -0
  166. package/dialog/README.md +3 -0
  167. package/dialog/index.d.ts +4 -0
  168. package/dialog/lib/dialog.class.d.ts +36 -0
  169. package/dialog/lib/dialog.component.d.ts +19 -0
  170. package/dialog/lib/dialog.module.d.ts +16 -0
  171. package/dialog/lib/dialog.service.d.ts +31 -0
  172. package/drawer/README.md +3 -0
  173. package/drawer/index.d.ts +3 -0
  174. package/drawer/lib/drawer-container.component.d.ts +7 -0
  175. package/drawer/lib/drawer.component.d.ts +39 -0
  176. package/drawer/lib/drawer.module.d.ts +9 -0
  177. package/dropdown/README.md +3 -0
  178. package/dropdown/index.d.ts +4 -0
  179. package/dropdown/lib/dropdown-box.class.d.ts +15 -0
  180. package/dropdown/lib/dropdown-box.component.d.ts +30 -0
  181. package/dropdown/lib/dropdown-panel.component.d.ts +33 -0
  182. package/dropdown/lib/dropdown.module.d.ts +14 -0
  183. package/dropdown-button/README.md +3 -0
  184. package/dropdown-button/index.d.ts +2 -0
  185. package/dropdown-button/lib/dropdown-button.component.d.ts +28 -0
  186. package/dropdown-button/lib/dropdown-button.module.d.ts +13 -0
  187. package/esm2022/action-sheet/acorex-components-action-sheet.mjs +5 -0
  188. package/esm2022/action-sheet/index.mjs +5 -0
  189. package/esm2022/action-sheet/lib/action-sheet.class.mjs +2 -0
  190. package/esm2022/action-sheet/lib/action-sheet.component.mjs +98 -0
  191. package/esm2022/action-sheet/lib/action-sheet.module.mjs +54 -0
  192. package/esm2022/action-sheet/lib/action-sheet.service.mjs +57 -0
  193. package/esm2022/alert/acorex-components-alert.mjs +5 -0
  194. package/esm2022/alert/index.mjs +3 -0
  195. package/esm2022/alert/lib/alert.component.mjs +195 -0
  196. package/esm2022/alert/lib/alert.module.mjs +22 -0
  197. package/esm2022/avatar/acorex-components-avatar.mjs +5 -0
  198. package/esm2022/avatar/index.mjs +4 -0
  199. package/esm2022/avatar/lib/avatar-group.component.mjs +14 -0
  200. package/esm2022/avatar/lib/avatar.component.mjs +41 -0
  201. package/esm2022/avatar/lib/avatar.module.mjs +22 -0
  202. package/esm2022/badge/acorex-components-badge.mjs +5 -0
  203. package/esm2022/badge/index.mjs +3 -0
  204. package/esm2022/badge/lib/badge.component.mjs +24 -0
  205. package/esm2022/badge/lib/badge.module.mjs +19 -0
  206. package/esm2022/bottom-navigation/acorex-components-bottom-navigation.mjs +5 -0
  207. package/esm2022/bottom-navigation/index.mjs +4 -0
  208. package/esm2022/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.mjs +46 -0
  209. package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +49 -0
  210. package/esm2022/bottom-navigation/lib/bottom-navigation.module.mjs +27 -0
  211. package/esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs +5 -0
  212. package/esm2022/breadcrumbs/index.mjs +5 -0
  213. package/esm2022/breadcrumbs/lib/breadcrumbs-item.class.mjs +2 -0
  214. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +36 -0
  215. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +19 -0
  216. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +21 -0
  217. package/esm2022/button/acorex-components-button.mjs +5 -0
  218. package/esm2022/button/index.mjs +6 -0
  219. package/esm2022/button/lib/button-item-list.component.mjs +114 -0
  220. package/esm2022/button/lib/button-item.class.mjs +2 -0
  221. package/esm2022/button/lib/button-item.component.mjs +106 -0
  222. package/esm2022/button/lib/button.component.mjs +98 -0
  223. package/esm2022/button/lib/button.module.mjs +47 -0
  224. package/esm2022/button-group/acorex-components-button-group.mjs +5 -0
  225. package/esm2022/button-group/index.mjs +3 -0
  226. package/esm2022/button-group/lib/button-group.component.mjs +118 -0
  227. package/esm2022/button-group/lib/button-group.module.mjs +21 -0
  228. package/esm2022/calendar/acorex-components-calendar.mjs +5 -0
  229. package/esm2022/calendar/index.mjs +5 -0
  230. package/esm2022/calendar/lib/calendar-range.component.mjs +175 -0
  231. package/esm2022/calendar/lib/calendar.class.mjs +176 -0
  232. package/esm2022/calendar/lib/calendar.component.mjs +477 -0
  233. package/esm2022/calendar/lib/calendar.module.mjs +24 -0
  234. package/esm2022/chat/acorex-components-chat.mjs +5 -0
  235. package/esm2022/chat/index.mjs +15 -0
  236. package/esm2022/chat/lib/chat-input/chat-input.component.mjs +125 -0
  237. package/esm2022/chat/lib/chat-input/chat-input.interface.mjs +2 -0
  238. package/esm2022/chat/lib/chat-message/chat-message.component.mjs +30 -0
  239. package/esm2022/chat/lib/chat-messages/chat-message-audio.component.mjs +17 -0
  240. package/esm2022/chat/lib/chat-messages/chat-message-text.component.mjs +23 -0
  241. package/esm2022/chat/lib/chat-view/chat-view.component.mjs +22 -0
  242. package/esm2022/chat/lib/chat-voice/chat-voice.component.mjs +12 -0
  243. package/esm2022/chat/lib/chat.module.mjs +125 -0
  244. package/esm2022/chat/lib/chat.types.mjs +10 -0
  245. package/esm2022/chat/lib/classes/events.interface.mjs +2 -0
  246. package/esm2022/chat/lib/services/chat-message-type-registry.service.mjs +20 -0
  247. package/esm2022/chat/lib/services/chat.service.mjs +10 -0
  248. package/esm2022/chat/lib/services/recording.service.mjs +78 -0
  249. package/esm2022/check-box/acorex-components-check-box.mjs +5 -0
  250. package/esm2022/check-box/index.mjs +3 -0
  251. package/esm2022/check-box/lib/check-box.component.mjs +100 -0
  252. package/esm2022/check-box/lib/check-box.module.mjs +21 -0
  253. package/esm2022/chips/acorex-components-chips.mjs +5 -0
  254. package/esm2022/chips/index.mjs +3 -0
  255. package/esm2022/chips/lib/chips.component.mjs +28 -0
  256. package/esm2022/chips/lib/chips.module.mjs +19 -0
  257. package/esm2022/circular-progress/acorex-components-circular-progress.mjs +5 -0
  258. package/esm2022/circular-progress/index.mjs +3 -0
  259. package/esm2022/circular-progress/lib/circular-progress.component.mjs +96 -0
  260. package/esm2022/circular-progress/lib/circular-progress.module.mjs +17 -0
  261. package/esm2022/collapse/acorex-components-collapse.mjs +5 -0
  262. package/esm2022/collapse/index.mjs +4 -0
  263. package/esm2022/collapse/lib/collapse-group.component.mjs +131 -0
  264. package/esm2022/collapse/lib/collapse.component.mjs +146 -0
  265. package/esm2022/collapse/lib/collapse.module.mjs +21 -0
  266. package/esm2022/color-box/acorex-components-color-box.mjs +5 -0
  267. package/esm2022/color-box/index.mjs +3 -0
  268. package/esm2022/color-box/lib/color-box.component.mjs +71 -0
  269. package/esm2022/color-box/lib/color-box.module.mjs +32 -0
  270. package/esm2022/color-palette/acorex-components-color-palette.mjs +5 -0
  271. package/esm2022/color-palette/index.mjs +8 -0
  272. package/esm2022/color-palette/lib/color-palette-input.component.mjs +127 -0
  273. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +175 -0
  274. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +71 -0
  275. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +95 -0
  276. package/esm2022/color-palette/lib/color-palette.class.mjs +238 -0
  277. package/esm2022/color-palette/lib/color-palette.component.mjs +66 -0
  278. package/esm2022/color-palette/lib/color-palette.module.mjs +63 -0
  279. package/esm2022/common/acorex-components-common.mjs +5 -0
  280. package/esm2022/common/index.mjs +29 -0
  281. package/esm2022/common/lib/classes/components.class.mjs +76 -0
  282. package/esm2022/common/lib/classes/datalist.class.mjs +50 -0
  283. package/esm2022/common/lib/classes/datasource.class.mjs +133 -0
  284. package/esm2022/common/lib/classes/events.class.mjs +79 -0
  285. package/esm2022/common/lib/classes/styles.class.mjs +20 -0
  286. package/esm2022/common/lib/common.module.mjs +38 -0
  287. package/esm2022/common/lib/components/base-component.class.mjs +81 -0
  288. package/esm2022/common/lib/components/button-base-component.class.mjs +67 -0
  289. package/esm2022/common/lib/components/color-component.class.mjs +25 -0
  290. package/esm2022/common/lib/components/colorlook-component.class.mjs +6 -0
  291. package/esm2022/common/lib/components/input-base-value-component.class.mjs +47 -0
  292. package/esm2022/common/lib/components/interactive-component.class.mjs +107 -0
  293. package/esm2022/common/lib/components/look-component.class.mjs +33 -0
  294. package/esm2022/common/lib/components/selection-base.component.class.mjs +196 -0
  295. package/esm2022/common/lib/components/value-component.class.mjs +223 -0
  296. package/esm2022/common/lib/directives/auto-focus.directive.mjs +66 -0
  297. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +51 -0
  298. package/esm2022/common/lib/directives/hotkey.directive.mjs +81 -0
  299. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +61 -0
  300. package/esm2022/common/lib/directives/responsive.directive.mjs +42 -0
  301. package/esm2022/common/lib/directives/ripple.directive.mjs +62 -0
  302. package/esm2022/common/lib/services/dom.service.mjs +16 -0
  303. package/esm2022/common/lib/services/hotkey.service.mjs +53 -0
  304. package/esm2022/common/lib/types/direction.mjs +2 -0
  305. package/esm2022/common/lib/types/orientation.mjs +2 -0
  306. package/esm2022/common/lib/types/placement.mjs +180 -0
  307. package/esm2022/common/lib/types/range.mjs +2 -0
  308. package/esm2022/common/lib/types/selection-mode.mjs +5 -0
  309. package/esm2022/data-pager/acorex-components-data-pager.mjs +5 -0
  310. package/esm2022/data-pager/index.mjs +10 -0
  311. package/esm2022/data-pager/lib/data-pager-base.component.mjs +50 -0
  312. package/esm2022/data-pager/lib/data-pager-info.component.mjs +47 -0
  313. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +73 -0
  314. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +61 -0
  315. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +129 -0
  316. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +109 -0
  317. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +97 -0
  318. package/esm2022/data-pager/lib/data-pager.component.mjs +170 -0
  319. package/esm2022/data-pager/lib/data-pager.module.mjs +70 -0
  320. package/esm2022/data-table/acorex-components-data-table.mjs +5 -0
  321. package/esm2022/data-table/index.mjs +11 -0
  322. package/esm2022/data-table/lib/base-data-table.class.mjs +36 -0
  323. package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +59 -0
  324. package/esm2022/data-table/lib/columns/data-table-column.mjs +38 -0
  325. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +81 -0
  326. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +231 -0
  327. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +71 -0
  328. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +61 -0
  329. package/esm2022/data-table/lib/data-table/data-table.component.mjs +233 -0
  330. package/esm2022/data-table/lib/data-table.module.mjs +107 -0
  331. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +272 -0
  332. package/esm2022/datetime-box/acorex-components-datetime-box.mjs +5 -0
  333. package/esm2022/datetime-box/index.mjs +3 -0
  334. package/esm2022/datetime-box/lib/datetime-box.component.mjs +110 -0
  335. package/esm2022/datetime-box/lib/datetime-box.module.mjs +38 -0
  336. package/esm2022/datetime-input/acorex-components-datetime-input.mjs +5 -0
  337. package/esm2022/datetime-input/index.mjs +3 -0
  338. package/esm2022/datetime-input/lib/datetime-input.component.mjs +553 -0
  339. package/esm2022/datetime-input/lib/datetime-input.module.mjs +23 -0
  340. package/esm2022/datetime-picker/acorex-components-datetime-picker.mjs +5 -0
  341. package/esm2022/datetime-picker/index.mjs +4 -0
  342. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +266 -0
  343. package/esm2022/datetime-picker/lib/datetime-picker.config.mjs +22 -0
  344. package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +44 -0
  345. package/esm2022/decorators/acorex-components-decorators.mjs +5 -0
  346. package/esm2022/decorators/index.mjs +6 -0
  347. package/esm2022/decorators/lib/components/clear-button.component.mjs +70 -0
  348. package/esm2022/decorators/lib/components/close-button.component.mjs +52 -0
  349. package/esm2022/decorators/lib/components/generic-content.component.mjs +38 -0
  350. package/esm2022/decorators/lib/components/icon.component.mjs +25 -0
  351. package/esm2022/decorators/lib/decorators.module.mjs +35 -0
  352. package/esm2022/dialog/acorex-components-dialog.mjs +5 -0
  353. package/esm2022/dialog/index.mjs +5 -0
  354. package/esm2022/dialog/lib/dialog.class.mjs +2 -0
  355. package/esm2022/dialog/lib/dialog.component.mjs +62 -0
  356. package/esm2022/dialog/lib/dialog.module.mjs +48 -0
  357. package/esm2022/dialog/lib/dialog.service.mjs +164 -0
  358. package/esm2022/drawer/acorex-components-drawer.mjs +5 -0
  359. package/esm2022/drawer/index.mjs +4 -0
  360. package/esm2022/drawer/lib/drawer-container.component.mjs +33 -0
  361. package/esm2022/drawer/lib/drawer.component.mjs +151 -0
  362. package/esm2022/drawer/lib/drawer.module.mjs +22 -0
  363. package/esm2022/dropdown/acorex-components-dropdown.mjs +5 -0
  364. package/esm2022/dropdown/index.mjs +5 -0
  365. package/esm2022/dropdown/lib/dropdown-box.class.mjs +38 -0
  366. package/esm2022/dropdown/lib/dropdown-box.component.mjs +103 -0
  367. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +145 -0
  368. package/esm2022/dropdown/lib/dropdown.module.mjs +42 -0
  369. package/esm2022/dropdown-button/acorex-components-dropdown-button.mjs +5 -0
  370. package/esm2022/dropdown-button/index.mjs +3 -0
  371. package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +97 -0
  372. package/esm2022/dropdown-button/lib/dropdown-button.module.mjs +45 -0
  373. package/esm2022/form/acorex-components-form.mjs +5 -0
  374. package/esm2022/form/index.mjs +7 -0
  375. package/esm2022/form/lib/form-field.component.mjs +40 -0
  376. package/esm2022/form/lib/form.component.mjs +122 -0
  377. package/esm2022/form/lib/form.config.mjs +16 -0
  378. package/esm2022/form/lib/form.module.mjs +60 -0
  379. package/esm2022/form/lib/validation-rule.directive.mjs +36 -0
  380. package/esm2022/form/lib/validation-summary.component.mjs +133 -0
  381. package/esm2022/image/acorex-components-image.mjs +5 -0
  382. package/esm2022/image/index.mjs +3 -0
  383. package/esm2022/image/lib/image.component.mjs +72 -0
  384. package/esm2022/image/lib/image.module.mjs +19 -0
  385. package/esm2022/index.mjs +2 -158
  386. package/esm2022/label/acorex-components-label.mjs +5 -0
  387. package/esm2022/label/index.mjs +3 -0
  388. package/esm2022/label/lib/label.component.mjs +47 -0
  389. package/esm2022/label/lib/label.module.mjs +21 -0
  390. package/esm2022/list/acorex-components-list.mjs +5 -0
  391. package/esm2022/list/index.mjs +3 -0
  392. package/esm2022/list/lib/list.component.mjs +184 -0
  393. package/esm2022/list/lib/list.module.mjs +23 -0
  394. package/esm2022/loading/acorex-components-loading.mjs +5 -0
  395. package/esm2022/loading/index.mjs +7 -0
  396. package/esm2022/loading/lib/loading-spinner.component.mjs +44 -0
  397. package/esm2022/loading/lib/loading.component.mjs +62 -0
  398. package/esm2022/loading/lib/loading.config.mjs +17 -0
  399. package/esm2022/loading/lib/loading.directive.mjs +39 -0
  400. package/esm2022/loading/lib/loading.module.mjs +35 -0
  401. package/esm2022/loading/lib/loading.service.mjs +129 -0
  402. package/esm2022/loading-dialog/acorex-components-loading-dialog.mjs +5 -0
  403. package/esm2022/loading-dialog/index.mjs +5 -0
  404. package/esm2022/loading-dialog/lib/loading-dialog.class.mjs +2 -0
  405. package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +63 -0
  406. package/esm2022/loading-dialog/lib/loading-dialog.module.mjs +46 -0
  407. package/esm2022/loading-dialog/lib/loading-dialog.service.mjs +37 -0
  408. package/esm2022/menu/acorex-components-menu.mjs +5 -0
  409. package/esm2022/menu/index.mjs +5 -0
  410. package/esm2022/menu/lib/class/root-menu.class.mjs +3 -0
  411. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +140 -0
  412. package/esm2022/menu/lib/menu.component.mjs +48 -0
  413. package/esm2022/menu/lib/menu.module.mjs +37 -0
  414. package/esm2022/nav/acorex-components-nav.mjs +5 -0
  415. package/esm2022/nav/index.mjs +4 -0
  416. package/esm2022/nav/lib/nav-item/nav-item.component.mjs +41 -0
  417. package/esm2022/nav/lib/nav.component.mjs +12 -0
  418. package/esm2022/nav/lib/nav.module.mjs +23 -0
  419. package/esm2022/navbar/acorex-components-navbar.mjs +5 -0
  420. package/esm2022/navbar/index.mjs +3 -0
  421. package/esm2022/navbar/lib/navbar.component.mjs +18 -0
  422. package/esm2022/navbar/lib/navbar.module.mjs +18 -0
  423. package/esm2022/notification/acorex-components-notification.mjs +5 -0
  424. package/esm2022/notification/index.mjs +6 -0
  425. package/esm2022/notification/lib/notification.class.mjs +2 -0
  426. package/esm2022/notification/lib/notification.component.mjs +105 -0
  427. package/esm2022/notification/lib/notification.config.mjs +20 -0
  428. package/esm2022/notification/lib/notification.module.mjs +42 -0
  429. package/esm2022/notification/lib/notification.service.mjs +102 -0
  430. package/esm2022/number-box/acorex-components-number-box.mjs +5 -0
  431. package/esm2022/number-box/index.mjs +3 -0
  432. package/esm2022/number-box/lib/number-box.component.mjs +294 -0
  433. package/esm2022/number-box/lib/number-box.module.mjs +35 -0
  434. package/esm2022/otp/acorex-components-otp.mjs +5 -0
  435. package/esm2022/otp/index.mjs +4 -0
  436. package/esm2022/otp/lib/otp.class.mjs +4 -0
  437. package/esm2022/otp/lib/otp.component.mjs +158 -0
  438. package/esm2022/otp/lib/otp.module.mjs +22 -0
  439. package/esm2022/page/acorex-components-page.mjs +5 -0
  440. package/esm2022/page/index.mjs +4 -0
  441. package/esm2022/page/lib/base-page.class.mjs +62 -0
  442. package/esm2022/page/lib/page.component.mjs +44 -0
  443. package/esm2022/page/lib/page.module.mjs +18 -0
  444. package/esm2022/password-box/acorex-components-password-box.mjs +5 -0
  445. package/esm2022/password-box/index.mjs +3 -0
  446. package/esm2022/password-box/lib/password-box.component.mjs +94 -0
  447. package/esm2022/password-box/lib/password-box.module.mjs +24 -0
  448. package/esm2022/phone-box/acorex-components-phone-box.mjs +5 -0
  449. package/esm2022/phone-box/index.mjs +3 -0
  450. package/esm2022/phone-box/lib/phone-box.component.mjs +135 -0
  451. package/esm2022/phone-box/lib/phone-box.module.mjs +44 -0
  452. package/esm2022/picker/acorex-components-picker.mjs +5 -0
  453. package/esm2022/picker/index.mjs +4 -0
  454. package/esm2022/picker/lib/picker-column.directive.mjs +66 -0
  455. package/esm2022/picker/lib/picker.component.mjs +164 -0
  456. package/esm2022/picker/lib/picker.module.mjs +22 -0
  457. package/esm2022/popover/acorex-components-popover.mjs +5 -0
  458. package/esm2022/popover/index.mjs +3 -0
  459. package/esm2022/popover/lib/popover.component.mjs +379 -0
  460. package/esm2022/popover/lib/popover.module.mjs +19 -0
  461. package/esm2022/popup/acorex-components-popup.mjs +5 -0
  462. package/esm2022/popup/index.mjs +5 -0
  463. package/esm2022/popup/lib/popup.component.mjs +153 -0
  464. package/esm2022/popup/lib/popup.interface.mjs +2 -0
  465. package/esm2022/popup/lib/popup.module.mjs +45 -0
  466. package/esm2022/popup/lib/popup.service.mjs +65 -0
  467. package/esm2022/progress-bar/acorex-components-progress-bar.mjs +5 -0
  468. package/esm2022/progress-bar/index.mjs +3 -0
  469. package/esm2022/progress-bar/lib/progress-bar.component.mjs +57 -0
  470. package/esm2022/progress-bar/lib/progress-bar.module.mjs +19 -0
  471. package/esm2022/radio/acorex-components-radio.mjs +5 -0
  472. package/esm2022/radio/index.mjs +3 -0
  473. package/esm2022/radio/lib/radio.component.mjs +62 -0
  474. package/esm2022/radio/lib/radio.module.mjs +22 -0
  475. package/esm2022/range-slider/acorex-components-range-slider.mjs +5 -0
  476. package/esm2022/range-slider/index.mjs +3 -0
  477. package/esm2022/range-slider/lib/range-slider.component.mjs +117 -0
  478. package/esm2022/range-slider/lib/range-slider.module.mjs +23 -0
  479. package/esm2022/result/acorex-components-result.mjs +5 -0
  480. package/esm2022/result/index.mjs +3 -0
  481. package/esm2022/result/lib/result.component.mjs +27 -0
  482. package/esm2022/result/lib/result.module.mjs +19 -0
  483. package/esm2022/routing-progress/acorex-components-routing-progress.mjs +5 -0
  484. package/esm2022/routing-progress/index.mjs +3 -0
  485. package/esm2022/routing-progress/lib/routing-progress.component.mjs +57 -0
  486. package/esm2022/routing-progress/lib/routing-progress.module.mjs +21 -0
  487. package/esm2022/scheduler/acorex-components-scheduler.mjs +5 -0
  488. package/esm2022/scheduler/index.mjs +5 -0
  489. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +53 -0
  490. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +12 -0
  491. package/esm2022/scheduler/lib/scheduler.component.mjs +43 -0
  492. package/esm2022/scheduler/lib/scheduler.module.mjs +45 -0
  493. package/esm2022/scss/acorex-components-scss.mjs +5 -0
  494. package/esm2022/scss/index.mjs +2 -0
  495. package/esm2022/scss/lib/scss.module.mjs +15 -0
  496. package/esm2022/search-box/acorex-components-search-box.mjs +5 -0
  497. package/esm2022/search-box/index.mjs +3 -0
  498. package/esm2022/search-box/lib/search-box.component.mjs +87 -0
  499. package/esm2022/search-box/lib/search-box.module.mjs +46 -0
  500. package/esm2022/select-box/acorex-components-select-box.mjs +5 -0
  501. package/esm2022/select-box/index.mjs +3 -0
  502. package/esm2022/select-box/lib/select-box.component.mjs +299 -0
  503. package/esm2022/select-box/lib/select-box.module.mjs +69 -0
  504. package/esm2022/selection-list/acorex-components-selection-list.mjs +5 -0
  505. package/esm2022/selection-list/index.mjs +3 -0
  506. package/esm2022/selection-list/lib/selection-list.component.mjs +135 -0
  507. package/esm2022/selection-list/lib/selection-list.module.mjs +41 -0
  508. package/esm2022/side-menu/acorex-components-side-menu.mjs +5 -0
  509. package/esm2022/side-menu/index.mjs +4 -0
  510. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +147 -0
  511. package/esm2022/side-menu/lib/side-menu.component.mjs +12 -0
  512. package/esm2022/side-menu/lib/side-menu.module.mjs +25 -0
  513. package/esm2022/skeleton/acorex-components-skeleton.mjs +5 -0
  514. package/esm2022/skeleton/index.mjs +3 -0
  515. package/esm2022/skeleton/lib/skeleton.component.mjs +24 -0
  516. package/esm2022/skeleton/lib/skeleton.module.mjs +18 -0
  517. package/esm2022/step-wizard/acorex-components-step-wizard.mjs +5 -0
  518. package/esm2022/step-wizard/index.mjs +6 -0
  519. package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +66 -0
  520. package/esm2022/step-wizard/lib/step-wizard.class.mjs +2 -0
  521. package/esm2022/step-wizard/lib/step-wizard.component.mjs +102 -0
  522. package/esm2022/step-wizard/lib/step-wizard.directive.mjs +28 -0
  523. package/esm2022/step-wizard/lib/step-wizard.module.mjs +33 -0
  524. package/esm2022/switch/acorex-components-switch.mjs +5 -0
  525. package/esm2022/switch/index.mjs +4 -0
  526. package/esm2022/switch/lib/switch-content.component.mjs +15 -0
  527. package/esm2022/switch/lib/switch.component.mjs +51 -0
  528. package/esm2022/switch/lib/switch.module.mjs +21 -0
  529. package/esm2022/tabs/acorex-components-tabs.mjs +5 -0
  530. package/esm2022/tabs/index.mjs +6 -0
  531. package/esm2022/tabs/lib/tab-content.directive.mjs +28 -0
  532. package/esm2022/tabs/lib/tab-item.component.mjs +121 -0
  533. package/esm2022/tabs/lib/tabs.class.mjs +4 -0
  534. package/esm2022/tabs/lib/tabs.component.mjs +99 -0
  535. package/esm2022/tabs/lib/tabs.module.mjs +25 -0
  536. package/esm2022/tag/acorex-components-tag.mjs +5 -0
  537. package/esm2022/tag/index.mjs +3 -0
  538. package/esm2022/tag/lib/tag.component.mjs +20 -0
  539. package/esm2022/tag/lib/tag.module.mjs +19 -0
  540. package/esm2022/text-area/acorex-components-text-area.mjs +5 -0
  541. package/esm2022/text-area/index.mjs +3 -0
  542. package/esm2022/text-area/lib/text-area.component.mjs +65 -0
  543. package/esm2022/text-area/lib/text-area.module.mjs +19 -0
  544. package/esm2022/text-box/acorex-components-text-box.mjs +5 -0
  545. package/esm2022/text-box/index.mjs +4 -0
  546. package/esm2022/text-box/lib/mask-options.directive.mjs +17 -0
  547. package/esm2022/text-box/lib/text-box.component.mjs +131 -0
  548. package/esm2022/text-box/lib/text-box.module.mjs +38 -0
  549. package/esm2022/toast/acorex-components-toast.mjs +5 -0
  550. package/esm2022/toast/index.mjs +6 -0
  551. package/esm2022/toast/lib/toast.class.mjs +2 -0
  552. package/esm2022/toast/lib/toast.component.mjs +81 -0
  553. package/esm2022/toast/lib/toast.config.mjs +25 -0
  554. package/esm2022/toast/lib/toast.module.mjs +39 -0
  555. package/esm2022/toast/lib/toast.service.mjs +139 -0
  556. package/esm2022/tooltip/acorex-components-tooltip.mjs +5 -0
  557. package/esm2022/tooltip/index.mjs +4 -0
  558. package/esm2022/tooltip/lib/tooltip.component.mjs +16 -0
  559. package/esm2022/tooltip/lib/tooltip.directive.mjs +80 -0
  560. package/esm2022/tooltip/lib/tooltip.module.mjs +22 -0
  561. package/esm2022/uploader/acorex-components-uploader.mjs +5 -0
  562. package/esm2022/uploader/index.mjs +8 -0
  563. package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +27 -0
  564. package/esm2022/uploader/lib/uploader-dialog-container.component.mjs +40 -0
  565. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +14 -0
  566. package/esm2022/uploader/lib/uploader-list.component.mjs +21 -0
  567. package/esm2022/uploader/lib/uploader-zone.directive.mjs +79 -0
  568. package/esm2022/uploader/lib/uploader.models.mjs +68 -0
  569. package/esm2022/uploader/lib/uploader.module.mjs +84 -0
  570. package/esm2022/uploader/lib/uploader.service.mjs +86 -0
  571. package/fesm2022/acorex-components-action-sheet.mjs +205 -0
  572. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -0
  573. package/fesm2022/acorex-components-alert.mjs +220 -0
  574. package/fesm2022/acorex-components-alert.mjs.map +1 -0
  575. package/fesm2022/acorex-components-avatar.mjs +78 -0
  576. package/fesm2022/acorex-components-avatar.mjs.map +1 -0
  577. package/fesm2022/acorex-components-badge.mjs +47 -0
  578. package/fesm2022/acorex-components-badge.mjs.map +1 -0
  579. package/fesm2022/acorex-components-bottom-navigation.mjs +120 -0
  580. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -0
  581. package/fesm2022/acorex-components-breadcrumbs.mjs +73 -0
  582. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -0
  583. package/fesm2022/acorex-components-button-group.mjs +143 -0
  584. package/fesm2022/acorex-components-button-group.mjs.map +1 -0
  585. package/fesm2022/acorex-components-button.mjs +356 -0
  586. package/fesm2022/acorex-components-button.mjs.map +1 -0
  587. package/fesm2022/acorex-components-calendar.mjs +840 -0
  588. package/fesm2022/acorex-components-calendar.mjs.map +1 -0
  589. package/fesm2022/acorex-components-chat.mjs +441 -0
  590. package/fesm2022/acorex-components-chat.mjs.map +1 -0
  591. package/fesm2022/acorex-components-check-box.mjs +124 -0
  592. package/fesm2022/acorex-components-check-box.mjs.map +1 -0
  593. package/fesm2022/acorex-components-chips.mjs +51 -0
  594. package/fesm2022/acorex-components-chips.mjs.map +1 -0
  595. package/fesm2022/acorex-components-circular-progress.mjs +117 -0
  596. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -0
  597. package/fesm2022/acorex-components-collapse.mjs +296 -0
  598. package/fesm2022/acorex-components-collapse.mjs.map +1 -0
  599. package/fesm2022/acorex-components-color-box.mjs +104 -0
  600. package/fesm2022/acorex-components-color-box.mjs.map +1 -0
  601. package/fesm2022/acorex-components-color-palette.mjs +800 -0
  602. package/fesm2022/acorex-components-color-palette.mjs.map +1 -0
  603. package/fesm2022/acorex-components-common.mjs +1737 -0
  604. package/fesm2022/acorex-components-common.mjs.map +1 -0
  605. package/fesm2022/acorex-components-data-pager.mjs +758 -0
  606. package/fesm2022/acorex-components-data-pager.mjs.map +1 -0
  607. package/fesm2022/acorex-components-data-table.mjs +1143 -0
  608. package/fesm2022/acorex-components-data-table.mjs.map +1 -0
  609. package/fesm2022/acorex-components-datetime-box.mjs +147 -0
  610. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -0
  611. package/fesm2022/acorex-components-datetime-input.mjs +578 -0
  612. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -0
  613. package/fesm2022/acorex-components-datetime-picker.mjs +328 -0
  614. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -0
  615. package/fesm2022/acorex-components-decorators.mjs +210 -0
  616. package/fesm2022/acorex-components-decorators.mjs.map +1 -0
  617. package/fesm2022/acorex-components-dialog.mjs +271 -0
  618. package/fesm2022/acorex-components-dialog.mjs.map +1 -0
  619. package/fesm2022/acorex-components-drawer.mjs +206 -0
  620. package/fesm2022/acorex-components-drawer.mjs.map +1 -0
  621. package/fesm2022/acorex-components-dropdown-button.mjs +145 -0
  622. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -0
  623. package/fesm2022/acorex-components-dropdown.mjs +319 -0
  624. package/fesm2022/acorex-components-dropdown.mjs.map +1 -0
  625. package/fesm2022/acorex-components-form.mjs +394 -0
  626. package/fesm2022/acorex-components-form.mjs.map +1 -0
  627. package/fesm2022/acorex-components-image.mjs +95 -0
  628. package/fesm2022/acorex-components-image.mjs.map +1 -0
  629. package/fesm2022/acorex-components-label.mjs +72 -0
  630. package/fesm2022/acorex-components-label.mjs.map +1 -0
  631. package/fesm2022/acorex-components-list.mjs +210 -0
  632. package/fesm2022/acorex-components-list.mjs.map +1 -0
  633. package/fesm2022/acorex-components-loading-dialog.mjs +144 -0
  634. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -0
  635. package/fesm2022/acorex-components-loading.mjs +313 -0
  636. package/fesm2022/acorex-components-loading.mjs.map +1 -0
  637. package/fesm2022/acorex-components-menu.mjs +224 -0
  638. package/fesm2022/acorex-components-menu.mjs.map +1 -0
  639. package/fesm2022/acorex-components-nav.mjs +75 -0
  640. package/fesm2022/acorex-components-nav.mjs.map +1 -0
  641. package/fesm2022/acorex-components-navbar.mjs +40 -0
  642. package/fesm2022/acorex-components-navbar.mjs.map +1 -0
  643. package/fesm2022/acorex-components-notification.mjs +264 -0
  644. package/fesm2022/acorex-components-notification.mjs.map +1 -0
  645. package/fesm2022/acorex-components-number-box.mjs +331 -0
  646. package/fesm2022/acorex-components-number-box.mjs.map +1 -0
  647. package/fesm2022/acorex-components-otp.mjs +186 -0
  648. package/fesm2022/acorex-components-otp.mjs.map +1 -0
  649. package/fesm2022/acorex-components-page.mjs +125 -0
  650. package/fesm2022/acorex-components-page.mjs.map +1 -0
  651. package/fesm2022/acorex-components-password-box.mjs +121 -0
  652. package/fesm2022/acorex-components-password-box.mjs.map +1 -0
  653. package/fesm2022/acorex-components-phone-box.mjs +182 -0
  654. package/fesm2022/acorex-components-phone-box.mjs.map +1 -0
  655. package/fesm2022/acorex-components-picker.mjs +251 -0
  656. package/fesm2022/acorex-components-picker.mjs.map +1 -0
  657. package/fesm2022/acorex-components-popover.mjs +402 -0
  658. package/fesm2022/acorex-components-popover.mjs.map +1 -0
  659. package/fesm2022/acorex-components-popup.mjs +256 -0
  660. package/fesm2022/acorex-components-popup.mjs.map +1 -0
  661. package/fesm2022/acorex-components-progress-bar.mjs +80 -0
  662. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -0
  663. package/fesm2022/acorex-components-radio.mjs +87 -0
  664. package/fesm2022/acorex-components-radio.mjs.map +1 -0
  665. package/fesm2022/acorex-components-range-slider.mjs +142 -0
  666. package/fesm2022/acorex-components-range-slider.mjs.map +1 -0
  667. package/fesm2022/acorex-components-result.mjs +50 -0
  668. package/fesm2022/acorex-components-result.mjs.map +1 -0
  669. package/fesm2022/acorex-components-routing-progress.mjs +82 -0
  670. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -0
  671. package/fesm2022/acorex-components-scheduler.mjs +142 -0
  672. package/fesm2022/acorex-components-scheduler.mjs.map +1 -0
  673. package/fesm2022/acorex-components-scss.mjs +22 -0
  674. package/fesm2022/acorex-components-scss.mjs.map +1 -0
  675. package/fesm2022/acorex-components-search-box.mjs +135 -0
  676. package/fesm2022/acorex-components-search-box.mjs.map +1 -0
  677. package/fesm2022/acorex-components-select-box.mjs +368 -0
  678. package/fesm2022/acorex-components-select-box.mjs.map +1 -0
  679. package/fesm2022/acorex-components-selection-list.mjs +179 -0
  680. package/fesm2022/acorex-components-selection-list.mjs.map +1 -0
  681. package/fesm2022/acorex-components-side-menu.mjs +183 -0
  682. package/fesm2022/acorex-components-side-menu.mjs.map +1 -0
  683. package/fesm2022/acorex-components-skeleton.mjs +46 -0
  684. package/fesm2022/acorex-components-skeleton.mjs.map +1 -0
  685. package/fesm2022/acorex-components-step-wizard.mjs +224 -0
  686. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -0
  687. package/fesm2022/acorex-components-switch.mjs +86 -0
  688. package/fesm2022/acorex-components-switch.mjs.map +1 -0
  689. package/fesm2022/acorex-components-tabs.mjs +271 -0
  690. package/fesm2022/acorex-components-tabs.mjs.map +1 -0
  691. package/fesm2022/acorex-components-tag.mjs +43 -0
  692. package/fesm2022/acorex-components-tag.mjs.map +1 -0
  693. package/fesm2022/acorex-components-text-area.mjs +87 -0
  694. package/fesm2022/acorex-components-text-area.mjs.map +1 -0
  695. package/fesm2022/acorex-components-text-box.mjs +184 -0
  696. package/fesm2022/acorex-components-text-box.mjs.map +1 -0
  697. package/fesm2022/acorex-components-toast.mjs +280 -0
  698. package/fesm2022/acorex-components-toast.mjs.map +1 -0
  699. package/fesm2022/acorex-components-tooltip.mjs +117 -0
  700. package/fesm2022/acorex-components-tooltip.mjs.map +1 -0
  701. package/fesm2022/acorex-components-uploader.mjs +399 -0
  702. package/fesm2022/acorex-components-uploader.mjs.map +1 -0
  703. package/fesm2022/acorex-components.mjs +2 -17392
  704. package/fesm2022/acorex-components.mjs.map +1 -1
  705. package/form/README.md +3 -0
  706. package/form/index.d.ts +6 -0
  707. package/form/lib/form-field.component.d.ts +12 -0
  708. package/form/lib/form.component.d.ts +42 -0
  709. package/form/lib/form.config.d.ts +7 -0
  710. package/form/lib/form.module.d.ts +16 -0
  711. package/form/lib/validation-rule.directive.d.ts +16 -0
  712. package/form/lib/validation-summary.component.d.ts +25 -0
  713. package/image/README.md +3 -0
  714. package/image/index.d.ts +2 -0
  715. package/image/lib/image.component.d.ts +21 -0
  716. package/image/lib/image.module.d.ts +8 -0
  717. package/index.d.ts +1 -155
  718. package/label/README.md +3 -0
  719. package/label/index.d.ts +2 -0
  720. package/label/lib/label.component.d.ts +14 -0
  721. package/list/README.md +3 -0
  722. package/list/index.d.ts +2 -0
  723. package/list/lib/list.component.d.ts +39 -0
  724. package/list/lib/list.module.d.ts +10 -0
  725. package/loading/README.md +3 -0
  726. package/loading/index.d.ts +6 -0
  727. package/loading/lib/loading-spinner.component.d.ts +10 -0
  728. package/loading/lib/loading.component.d.ts +18 -0
  729. package/loading/lib/loading.config.d.ts +8 -0
  730. package/loading/lib/loading.directive.d.ts +15 -0
  731. package/loading/lib/loading.module.d.ts +13 -0
  732. package/loading/lib/loading.service.d.ts +29 -0
  733. package/loading-dialog/README.md +3 -0
  734. package/loading-dialog/index.d.ts +4 -0
  735. package/loading-dialog/lib/loading-dialog.class.d.ts +35 -0
  736. package/loading-dialog/lib/loading-dialog.component.d.ts +25 -0
  737. package/loading-dialog/lib/loading-dialog.module.d.ts +14 -0
  738. package/loading-dialog/lib/loading-dialog.service.d.ts +8 -0
  739. package/menu/README.md +3 -0
  740. package/menu/index.d.ts +4 -0
  741. package/menu/lib/class/root-menu.class.d.ts +6 -0
  742. package/menu/lib/menu-item/menu-item.component.d.ts +37 -0
  743. package/menu/lib/menu.component.d.ts +14 -0
  744. package/menu/lib/menu.module.d.ts +14 -0
  745. package/nav/README.md +3 -0
  746. package/nav/index.d.ts +3 -0
  747. package/nav/lib/nav-item/nav-item.component.d.ts +15 -0
  748. package/nav/lib/nav.component.d.ts +6 -0
  749. package/nav/lib/nav.module.d.ts +10 -0
  750. package/navbar/README.md +3 -0
  751. package/navbar/index.d.ts +2 -0
  752. package/navbar/lib/navbar.component.d.ts +7 -0
  753. package/navbar/lib/navbar.module.d.ts +8 -0
  754. package/notification/README.md +3 -0
  755. package/notification/index.d.ts +5 -0
  756. package/notification/lib/notification.class.d.ts +40 -0
  757. package/notification/lib/notification.component.d.ts +29 -0
  758. package/notification/lib/notification.config.d.ts +13 -0
  759. package/notification/lib/notification.module.d.ts +14 -0
  760. package/notification/lib/notification.service.d.ts +12 -0
  761. package/number-box/README.md +3 -0
  762. package/number-box/index.d.ts +2 -0
  763. package/number-box/lib/number-box.component.d.ts +80 -0
  764. package/number-box/lib/number-box.module.d.ts +12 -0
  765. package/otp/README.md +3 -0
  766. package/otp/index.d.ts +3 -0
  767. package/otp/lib/otp.class.d.ts +5 -0
  768. package/otp/lib/otp.component.d.ts +31 -0
  769. package/otp/lib/otp.module.d.ts +9 -0
  770. package/package.json +403 -6
  771. package/page/README.md +3 -0
  772. package/page/index.d.ts +3 -0
  773. package/page/lib/base-page.class.d.ts +22 -0
  774. package/page/lib/page.component.d.ts +14 -0
  775. package/page/lib/page.module.d.ts +6 -0
  776. package/password-box/README.md +3 -0
  777. package/password-box/index.d.ts +2 -0
  778. package/password-box/lib/password-box.component.d.ts +29 -0
  779. package/password-box/lib/password-box.module.d.ts +11 -0
  780. package/phone-box/README.md +3 -0
  781. package/phone-box/index.d.ts +2 -0
  782. package/phone-box/lib/phone-box.component.d.ts +30 -0
  783. package/phone-box/lib/phone-box.module.d.ts +15 -0
  784. package/picker/README.md +3 -0
  785. package/picker/index.d.ts +3 -0
  786. package/picker/lib/picker-column.directive.d.ts +16 -0
  787. package/picker/lib/picker.component.d.ts +31 -0
  788. package/picker/lib/picker.module.d.ts +9 -0
  789. package/popover/README.md +3 -0
  790. package/popover/index.d.ts +2 -0
  791. package/popover/lib/popover.component.d.ts +72 -0
  792. package/popup/README.md +3 -0
  793. package/popup/index.d.ts +4 -0
  794. package/popup/lib/popup.component.d.ts +40 -0
  795. package/popup/lib/popup.interface.d.ts +28 -0
  796. package/popup/lib/popup.module.d.ts +15 -0
  797. package/popup/lib/popup.service.d.ts +21 -0
  798. package/progress-bar/README.md +3 -0
  799. package/progress-bar/index.d.ts +2 -0
  800. package/progress-bar/lib/progress-bar.component.d.ts +25 -0
  801. package/radio/README.md +3 -0
  802. package/radio/index.d.ts +2 -0
  803. package/radio/lib/radio.component.d.ts +16 -0
  804. package/radio/lib/radio.module.d.ts +9 -0
  805. package/range-slider/README.md +3 -0
  806. package/range-slider/index.d.ts +2 -0
  807. package/range-slider/lib/range-slider.component.d.ts +40 -0
  808. package/range-slider/lib/range-slider.module.d.ts +10 -0
  809. package/result/README.md +3 -0
  810. package/result/index.d.ts +2 -0
  811. package/result/lib/result.component.d.ts +10 -0
  812. package/result/lib/result.module.d.ts +8 -0
  813. package/routing-progress/README.md +3 -0
  814. package/routing-progress/index.d.ts +2 -0
  815. package/routing-progress/lib/routing-progress.component.d.ts +14 -0
  816. package/routing-progress/lib/routing-progress.module.d.ts +8 -0
  817. package/scheduler/README.md +3 -0
  818. package/scheduler/index.d.ts +4 -0
  819. package/scheduler/lib/scheduler-month-view.component.d.ts +21 -0
  820. package/scheduler/lib/scheduler-week-view.component.d.ts +6 -0
  821. package/scheduler/lib/scheduler.component.d.ts +17 -0
  822. package/scheduler/lib/scheduler.module.d.ts +14 -0
  823. package/scss/README.md +3 -0
  824. package/scss/index.d.ts +1 -0
  825. package/scss/lib/scss.module.d.ts +7 -0
  826. package/search-box/README.md +3 -0
  827. package/search-box/index.d.ts +2 -0
  828. package/search-box/lib/search-box.component.d.ts +17 -0
  829. package/search-box/lib/search-box.module.d.ts +14 -0
  830. package/select-box/README.md +3 -0
  831. package/select-box/index.d.ts +2 -0
  832. package/select-box/lib/select-box.component.d.ts +60 -0
  833. package/select-box/lib/select-box.module.d.ts +20 -0
  834. package/selection-list/README.md +3 -0
  835. package/selection-list/index.d.ts +2 -0
  836. package/selection-list/lib/selection-list.component.d.ts +30 -0
  837. package/selection-list/lib/selection-list.module.d.ts +13 -0
  838. package/side-menu/README.md +3 -0
  839. package/side-menu/index.d.ts +3 -0
  840. package/side-menu/lib/side-menu-item/side-menu-item.compoent.d.ts +48 -0
  841. package/side-menu/lib/side-menu.component.d.ts +6 -0
  842. package/side-menu/lib/side-menu.module.d.ts +12 -0
  843. package/skeleton/README.md +3 -0
  844. package/skeleton/index.d.ts +2 -0
  845. package/skeleton/lib/skeleton.component.d.ts +8 -0
  846. package/skeleton/lib/skeleton.module.d.ts +8 -0
  847. package/step-wizard/README.md +3 -0
  848. package/step-wizard/index.d.ts +5 -0
  849. package/step-wizard/lib/step-wizard-item/step-wizard-item.component.d.ts +23 -0
  850. package/step-wizard/lib/step-wizard.class.d.ts +5 -0
  851. package/step-wizard/lib/step-wizard.component.d.ts +28 -0
  852. package/step-wizard/lib/step-wizard.directive.d.ts +11 -0
  853. package/step-wizard/lib/step-wizard.module.d.ts +12 -0
  854. package/switch/README.md +3 -0
  855. package/switch/index.d.ts +3 -0
  856. package/switch/lib/switch-content.component.d.ts +6 -0
  857. package/switch/lib/switch.component.d.ts +15 -0
  858. package/switch/lib/switch.module.d.ts +10 -0
  859. package/tabs/README.md +3 -0
  860. package/tabs/index.d.ts +5 -0
  861. package/tabs/lib/tab-content.directive.d.ts +11 -0
  862. package/tabs/lib/tab-item.component.d.ts +18 -0
  863. package/tabs/lib/tabs.class.d.ts +8 -0
  864. package/tabs/lib/tabs.component.d.ts +27 -0
  865. package/tabs/lib/tabs.module.d.ts +12 -0
  866. package/tag/README.md +3 -0
  867. package/tag/index.d.ts +2 -0
  868. package/tag/lib/tag.component.d.ts +8 -0
  869. package/tag/lib/tag.module.d.ts +8 -0
  870. package/text-area/README.md +3 -0
  871. package/text-area/index.d.ts +2 -0
  872. package/text-area/lib/text-area.component.d.ts +19 -0
  873. package/text-area/lib/text-area.module.d.ts +9 -0
  874. package/text-box/README.md +3 -0
  875. package/text-box/index.d.ts +3 -0
  876. package/text-box/lib/mask-options.directive.d.ts +13 -0
  877. package/text-box/lib/text-box.component.d.ts +33 -0
  878. package/text-box/lib/text-box.module.d.ts +13 -0
  879. package/toast/README.md +3 -0
  880. package/toast/index.d.ts +5 -0
  881. package/toast/lib/toast.class.d.ts +24 -0
  882. package/toast/lib/toast.component.d.ts +27 -0
  883. package/toast/lib/toast.config.d.ts +12 -0
  884. package/toast/lib/toast.module.d.ts +13 -0
  885. package/toast/lib/toast.service.d.ts +21 -0
  886. package/tooltip/README.md +3 -0
  887. package/tooltip/index.d.ts +3 -0
  888. package/tooltip/lib/tooltip.component.d.ts +8 -0
  889. package/tooltip/lib/tooltip.directive.d.ts +22 -0
  890. package/tooltip/lib/tooltip.module.d.ts +10 -0
  891. package/uploader/README.md +3 -0
  892. package/uploader/index.d.ts +7 -0
  893. package/uploader/lib/uploader-browse-handle.directive.d.ts +11 -0
  894. package/uploader/lib/uploader-dialog-container.component.d.ts +9 -0
  895. package/uploader/lib/uploader-drop-zone.component.d.ts +6 -0
  896. package/uploader/lib/uploader-list.component.d.ts +8 -0
  897. package/uploader/lib/uploader-zone.directive.d.ts +24 -0
  898. package/uploader/lib/uploader.models.d.ts +19 -0
  899. package/uploader/lib/uploader.module.d.ts +22 -0
  900. package/uploader/lib/uploader.service.d.ts +21 -0
  901. package/esm2022/lib/accordion/accordion.component.mjs +0 -45
  902. package/esm2022/lib/accordion/accordion.module.mjs +0 -20
  903. package/esm2022/lib/base/base-page.class.mjs +0 -97
  904. package/esm2022/lib/base/components.class.mjs +0 -17
  905. package/esm2022/lib/base/element.class.mjs +0 -301
  906. package/esm2022/lib/base/events.class.mjs +0 -17
  907. package/esm2022/lib/button/button.component.mjs +0 -74
  908. package/esm2022/lib/button/button.module.mjs +0 -21
  909. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +0 -426
  910. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
  911. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +0 -59
  912. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +0 -16
  913. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +0 -226
  914. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +0 -68
  915. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -136
  916. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
  917. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -49
  918. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -102
  919. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -214
  920. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
  921. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -85
  922. package/esm2022/lib/checkbox/checkbox.component.mjs +0 -109
  923. package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
  924. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +0 -423
  925. package/esm2022/lib/color-picker/color-picker.component.mjs +0 -89
  926. package/esm2022/lib/color-picker/color-picker.module.mjs +0 -24
  927. package/esm2022/lib/context-menu/context-menu.component.mjs +0 -68
  928. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -146
  929. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -20
  930. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +0 -140
  931. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +0 -119
  932. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +0 -75
  933. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +0 -119
  934. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -267
  935. package/esm2022/lib/data-filter/filter.class.mjs +0 -46
  936. package/esm2022/lib/data-filter/filter.module.mjs +0 -88
  937. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -168
  938. package/esm2022/lib/data-list/core/data-list.component.mjs +0 -37
  939. package/esm2022/lib/data-list/list/list.component.mjs +0 -134
  940. package/esm2022/lib/data-list/list/list.module.mjs +0 -22
  941. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +0 -84
  942. package/esm2022/lib/data-source/datasource.component.mjs +0 -47
  943. package/esm2022/lib/data-source/datasource.module.mjs +0 -18
  944. package/esm2022/lib/data-source/read-param.mjs +0 -7
  945. package/esm2022/lib/date-picker/date-picker.component.mjs +0 -1102
  946. package/esm2022/lib/date-picker/date-picker.module.mjs +0 -49
  947. package/esm2022/lib/dialog/dialog.component.mjs +0 -26
  948. package/esm2022/lib/dialog/dialog.module.mjs +0 -21
  949. package/esm2022/lib/dialog/dialog.service.mjs +0 -160
  950. package/esm2022/lib/drawer/content.component.mjs +0 -18
  951. package/esm2022/lib/drawer/drawer-container.component.mjs +0 -38
  952. package/esm2022/lib/drawer/drawer.component.mjs +0 -146
  953. package/esm2022/lib/drawer/drawer.module.mjs +0 -23
  954. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -186
  955. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -26
  956. package/esm2022/lib/fieldset/fieldset.component.mjs +0 -57
  957. package/esm2022/lib/fieldset/fieldset.module.mjs +0 -19
  958. package/esm2022/lib/form-group/form-group.component.mjs +0 -37
  959. package/esm2022/lib/form-group/form-group.module.mjs +0 -21
  960. package/esm2022/lib/label/label.component.mjs +0 -19
  961. package/esm2022/lib/label/label.module.mjs +0 -21
  962. package/esm2022/lib/loading/loading-indicator.component.mjs +0 -18
  963. package/esm2022/lib/loading/loading-panel.component.mjs +0 -45
  964. package/esm2022/lib/loading/loading.module.mjs +0 -21
  965. package/esm2022/lib/loading/loading.service.mjs +0 -47
  966. package/esm2022/lib/menu/menu-item.component.mjs +0 -50
  967. package/esm2022/lib/menu/menu.component.mjs +0 -98
  968. package/esm2022/lib/menu/menu.module.mjs +0 -22
  969. package/esm2022/lib/menu/menu2.component.mjs +0 -100
  970. package/esm2022/lib/number-box/number-box.component.mjs +0 -628
  971. package/esm2022/lib/number-box/number-box.module.mjs +0 -21
  972. package/esm2022/lib/page/content.component.mjs +0 -27
  973. package/esm2022/lib/page/footer.component.mjs +0 -19
  974. package/esm2022/lib/page/page.component.mjs +0 -57
  975. package/esm2022/lib/page/page.module.mjs +0 -22
  976. package/esm2022/lib/panel-box/panel-box.component.mjs +0 -87
  977. package/esm2022/lib/panel-box/panel-box.module.mjs +0 -19
  978. package/esm2022/lib/password-box/password-box.component.mjs +0 -32
  979. package/esm2022/lib/password-box/password-box.module.mjs +0 -23
  980. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +0 -50
  981. package/esm2022/lib/popover/overlay.service.mjs +0 -94
  982. package/esm2022/lib/popover/popover.component.mjs +0 -145
  983. package/esm2022/lib/popover/popover.module.mjs +0 -19
  984. package/esm2022/lib/popup/popup.component.mjs +0 -160
  985. package/esm2022/lib/popup/popup.module.mjs +0 -25
  986. package/esm2022/lib/popup/popup.service.mjs +0 -94
  987. package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -16
  988. package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
  989. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +0 -65
  990. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
  991. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +0 -41
  992. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
  993. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +0 -118
  994. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
  995. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -216
  996. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -76
  997. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +0 -87
  998. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
  999. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +0 -72
  1000. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
  1001. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +0 -145
  1002. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +0 -59
  1003. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -76
  1004. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -75
  1005. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
  1006. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -73
  1007. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
  1008. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -30
  1009. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
  1010. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +0 -36
  1011. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
  1012. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -35
  1013. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
  1014. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +0 -55
  1015. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
  1016. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +0 -167
  1017. package/esm2022/lib/property-editor/property-editor.class.mjs +0 -108
  1018. package/esm2022/lib/property-editor/property-editor.module.mjs +0 -194
  1019. package/esm2022/lib/query-builder/query-builder-group.component.mjs +0 -129
  1020. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -177
  1021. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +0 -428
  1022. package/esm2022/lib/query-builder/query-builder.class.mjs +0 -42
  1023. package/esm2022/lib/query-builder/query-builder.component.mjs +0 -92
  1024. package/esm2022/lib/query-builder/query-builder.module.mjs +0 -62
  1025. package/esm2022/lib/query-builder/query-builder.service.mjs +0 -199
  1026. package/esm2022/lib/search-bar/search-bar.component.mjs +0 -293
  1027. package/esm2022/lib/search-bar/search-bar.module.mjs +0 -61
  1028. package/esm2022/lib/searchbox/searchbox.component.mjs +0 -106
  1029. package/esm2022/lib/searchbox/searchbox.module.mjs +0 -24
  1030. package/esm2022/lib/selectbox/selectbox.component.mjs +0 -1135
  1031. package/esm2022/lib/selectbox/selectbox.module.mjs +0 -44
  1032. package/esm2022/lib/selectbox/selectbox2.component.mjs +0 -617
  1033. package/esm2022/lib/selection-list/selection-list.component.mjs +0 -113
  1034. package/esm2022/lib/selection-list/selection-list.module.mjs +0 -21
  1035. package/esm2022/lib/switch/switch.component.mjs +0 -55
  1036. package/esm2022/lib/switch/switch.module.mjs +0 -20
  1037. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +0 -75
  1038. package/esm2022/lib/tab-page/tab-page-host.component.mjs +0 -124
  1039. package/esm2022/lib/tab-page/tab-page.module.mjs +0 -21
  1040. package/esm2022/lib/tab-page/tab-page.service.mjs +0 -159
  1041. package/esm2022/lib/tab-strip/tab-strip.component.mjs +0 -38
  1042. package/esm2022/lib/tab-strip/tab-strip.module.mjs +0 -19
  1043. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +0 -25
  1044. package/esm2022/lib/tab-view/tab-view.component.mjs +0 -110
  1045. package/esm2022/lib/tab-view/tab-view.module.mjs +0 -21
  1046. package/esm2022/lib/tab-view/tab.component.mjs +0 -33
  1047. package/esm2022/lib/textarea/textarea.component.mjs +0 -27
  1048. package/esm2022/lib/textarea/textarea.module.mjs +0 -21
  1049. package/esm2022/lib/textbox/textbox.component.mjs +0 -42
  1050. package/esm2022/lib/textbox/textbox.module.mjs +0 -36
  1051. package/esm2022/lib/time-picker/time-picker.component.mjs +0 -1107
  1052. package/esm2022/lib/time-picker/time-picker.module.mjs +0 -34
  1053. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +0 -76
  1054. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
  1055. package/esm2022/lib/toast/toast.module.mjs +0 -21
  1056. package/esm2022/lib/toast/toast.service.mjs +0 -45
  1057. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -77
  1058. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +0 -62
  1059. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +0 -56
  1060. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +0 -37
  1061. package/esm2022/lib/toolbar/toolbar-item.mjs +0 -4
  1062. package/esm2022/lib/toolbar/toolbar.component.mjs +0 -13
  1063. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -40
  1064. package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -104
  1065. package/esm2022/lib/tooltip/tooltip.module.mjs +0 -19
  1066. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +0 -697
  1067. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +0 -33
  1068. package/esm2022/lib/tree-view/tree-view.component.mjs +0 -854
  1069. package/esm2022/lib/tree-view/tree-view.module.mjs +0 -22
  1070. package/esm2022/lib/upload-file/upload-file.component.mjs +0 -226
  1071. package/esm2022/lib/upload-file/upload-file.events.mjs +0 -2
  1072. package/esm2022/lib/upload-file/upload-file.module.mjs +0 -24
  1073. package/esm2022/lib/validation/validation-form.component.mjs +0 -68
  1074. package/esm2022/lib/validation/validation-rule.widget.mjs +0 -114
  1075. package/esm2022/lib/validation/validation.class.mjs +0 -2
  1076. package/esm2022/lib/validation/validation.component.mjs +0 -89
  1077. package/esm2022/lib/validation/validation.module.mjs +0 -34
  1078. package/lib/accordion/accordion.component.d.ts +0 -13
  1079. package/lib/accordion/accordion.module.d.ts +0 -9
  1080. package/lib/base/base-page.class.d.ts +0 -46
  1081. package/lib/base/components.class.d.ts +0 -10
  1082. package/lib/base/element.class.d.ts +0 -106
  1083. package/lib/base/events.class.d.ts +0 -18
  1084. package/lib/button/button.component.d.ts +0 -21
  1085. package/lib/button/button.module.d.ts +0 -8
  1086. package/lib/calendar/calendar-box/calendar-box.component.d.ts +0 -81
  1087. package/lib/calendar/calendar-box/calendar-box.module.d.ts +0 -11
  1088. package/lib/calendar/scheduler/scheduler-views.property.d.ts +0 -19
  1089. package/lib/calendar/scheduler/scheduler.class.d.ts +0 -36
  1090. package/lib/calendar/scheduler/scheduler.component.d.ts +0 -39
  1091. package/lib/calendar/scheduler/scheduler.module.d.ts +0 -21
  1092. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +0 -25
  1093. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +0 -14
  1094. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +0 -16
  1095. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +0 -26
  1096. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +0 -37
  1097. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +0 -28
  1098. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +0 -24
  1099. package/lib/checkbox/checkbox.component.d.ts +0 -30
  1100. package/lib/checkbox/checkbox.module.d.ts +0 -9
  1101. package/lib/color-picker/color-box/color-box.component.d.ts +0 -25
  1102. package/lib/color-picker/color-picker.component.d.ts +0 -30
  1103. package/lib/color-picker/color-picker.module.d.ts +0 -13
  1104. package/lib/context-menu/context-menu.component.d.ts +0 -22
  1105. package/lib/context-menu/context-menu.directive.d.ts +0 -38
  1106. package/lib/context-menu/context-menu.module.d.ts +0 -9
  1107. package/lib/data-filter/columns/filter-column-date.component.d.ts +0 -22
  1108. package/lib/data-filter/columns/filter-column-number.component.d.ts +0 -15
  1109. package/lib/data-filter/columns/filter-column-selection.component.d.ts +0 -18
  1110. package/lib/data-filter/columns/filter-column-string.component.d.ts +0 -15
  1111. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +0 -45
  1112. package/lib/data-filter/filter.class.d.ts +0 -40
  1113. package/lib/data-filter/filter.module.d.ts +0 -24
  1114. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +0 -25
  1115. package/lib/data-list/core/data-list.component.d.ts +0 -15
  1116. package/lib/data-list/list/list.component.d.ts +0 -40
  1117. package/lib/data-list/list/list.module.d.ts +0 -11
  1118. package/lib/data-list/list/toolbar-list-view.component.d.ts +0 -17
  1119. package/lib/data-source/datasource.component.d.ts +0 -16
  1120. package/lib/data-source/datasource.module.d.ts +0 -7
  1121. package/lib/data-source/read-param.d.ts +0 -40
  1122. package/lib/date-picker/date-picker.component.d.ts +0 -84
  1123. package/lib/date-picker/date-picker.module.d.ts +0 -14
  1124. package/lib/dialog/dialog.component.d.ts +0 -14
  1125. package/lib/dialog/dialog.module.d.ts +0 -10
  1126. package/lib/dialog/dialog.service.d.ts +0 -36
  1127. package/lib/drawer/content.component.d.ts +0 -7
  1128. package/lib/drawer/drawer-container.component.d.ts +0 -10
  1129. package/lib/drawer/drawer.component.d.ts +0 -34
  1130. package/lib/drawer/drawer.module.d.ts +0 -10
  1131. package/lib/dropdown/dropdown.component.d.ts +0 -38
  1132. package/lib/dropdown/dropdown.module.d.ts +0 -13
  1133. package/lib/fieldset/fieldset.component.d.ts +0 -11
  1134. package/lib/fieldset/fieldset.module.d.ts +0 -8
  1135. package/lib/form-group/form-group.component.d.ts +0 -14
  1136. package/lib/form-group/form-group.module.d.ts +0 -8
  1137. package/lib/label/label.component.d.ts +0 -9
  1138. package/lib/loading/loading-indicator.component.d.ts +0 -9
  1139. package/lib/loading/loading-panel.component.d.ts +0 -13
  1140. package/lib/loading/loading.module.d.ts +0 -10
  1141. package/lib/loading/loading.service.d.ts +0 -13
  1142. package/lib/menu/menu-item.component.d.ts +0 -18
  1143. package/lib/menu/menu.component.d.ts +0 -35
  1144. package/lib/menu/menu.module.d.ts +0 -11
  1145. package/lib/menu/menu2.component.d.ts +0 -21
  1146. package/lib/number-box/number-box.component.d.ts +0 -52
  1147. package/lib/number-box/number-box.module.d.ts +0 -10
  1148. package/lib/page/content.component.d.ts +0 -8
  1149. package/lib/page/footer.component.d.ts +0 -5
  1150. package/lib/page/page.component.d.ts +0 -16
  1151. package/lib/page/page.module.d.ts +0 -11
  1152. package/lib/panel-box/panel-box.component.d.ts +0 -19
  1153. package/lib/panel-box/panel-box.module.d.ts +0 -8
  1154. package/lib/password-box/password-box.component.d.ts +0 -12
  1155. package/lib/password-box/password-box.module.d.ts +0 -10
  1156. package/lib/popover/custom-cdk-overlay.service.d.ts +0 -19
  1157. package/lib/popover/overlay.service.d.ts +0 -32
  1158. package/lib/popover/popover.component.d.ts +0 -35
  1159. package/lib/popup/popup.component.d.ts +0 -40
  1160. package/lib/popup/popup.module.d.ts +0 -13
  1161. package/lib/popup/popup.service.d.ts +0 -22
  1162. package/lib/progress-bar/progress-bar.component.d.ts +0 -7
  1163. package/lib/property-editor/editors/check-editor/check-editor.d.ts +0 -19
  1164. package/lib/property-editor/editors/check-editor/check.module.d.ts +0 -11
  1165. package/lib/property-editor/editors/color-editor/color.editor.d.ts +0 -13
  1166. package/lib/property-editor/editors/color-editor/color.module.d.ts +0 -12
  1167. package/lib/property-editor/editors/column-editor/column.editor.d.ts +0 -34
  1168. package/lib/property-editor/editors/column-editor/column.module.d.ts +0 -20
  1169. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +0 -44
  1170. package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +0 -19
  1171. package/lib/property-editor/editors/date-editor/date.editor.d.ts +0 -28
  1172. package/lib/property-editor/editors/date-editor/date.module.d.ts +0 -12
  1173. package/lib/property-editor/editors/number-editor/number.editor.d.ts +0 -22
  1174. package/lib/property-editor/editors/number-editor/number.module.d.ts +0 -12
  1175. package/lib/property-editor/editors/range-editor/range.editor.d.ts +0 -29
  1176. package/lib/property-editor/editors/range-editor/range.module.d.ts +0 -18
  1177. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +0 -29
  1178. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +0 -28
  1179. package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +0 -14
  1180. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +0 -25
  1181. package/lib/property-editor/editors/selection-editor/selection.module.d.ts +0 -11
  1182. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +0 -11
  1183. package/lib/property-editor/editors/switch-editor/number.module.d.ts +0 -13
  1184. package/lib/property-editor/editors/text-editor/text.editor.d.ts +0 -18
  1185. package/lib/property-editor/editors/text-editor/text.module.d.ts +0 -12
  1186. package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +0 -17
  1187. package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +0 -12
  1188. package/lib/property-editor/editors/time-editor/time.editor.d.ts +0 -17
  1189. package/lib/property-editor/editors/time-editor/time.module.d.ts +0 -12
  1190. package/lib/property-editor/property-editor-renderer.directive.d.ts +0 -31
  1191. package/lib/property-editor/property-editor.class.d.ts +0 -93
  1192. package/lib/property-editor/property-editor.module.d.ts +0 -21
  1193. package/lib/query-builder/query-builder-group.component.d.ts +0 -33
  1194. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +0 -35
  1195. package/lib/query-builder/query-builder-rule.component.d.ts +0 -45
  1196. package/lib/query-builder/query-builder.class.d.ts +0 -45
  1197. package/lib/query-builder/query-builder.component.d.ts +0 -29
  1198. package/lib/query-builder/query-builder.module.d.ts +0 -23
  1199. package/lib/query-builder/query-builder.service.d.ts +0 -18
  1200. package/lib/search-bar/search-bar.component.d.ts +0 -62
  1201. package/lib/search-bar/search-bar.module.d.ts +0 -18
  1202. package/lib/searchbox/searchbox.component.d.ts +0 -23
  1203. package/lib/searchbox/searchbox.module.d.ts +0 -13
  1204. package/lib/selectbox/selectbox.component.d.ts +0 -149
  1205. package/lib/selectbox/selectbox.module.d.ts +0 -15
  1206. package/lib/selectbox/selectbox2.component.d.ts +0 -103
  1207. package/lib/selection-list/selection-list.component.d.ts +0 -32
  1208. package/lib/selection-list/selection-list.module.d.ts +0 -10
  1209. package/lib/switch/switch.component.d.ts +0 -20
  1210. package/lib/switch/switch.module.d.ts +0 -9
  1211. package/lib/tab-page/tab-page-Renderer.component.d.ts +0 -16
  1212. package/lib/tab-page/tab-page-host.component.d.ts +0 -24
  1213. package/lib/tab-page/tab-page.module.d.ts +0 -10
  1214. package/lib/tab-page/tab-page.service.d.ts +0 -30
  1215. package/lib/tab-strip/tab-strip.component.d.ts +0 -28
  1216. package/lib/tab-strip/tab-strip.module.d.ts +0 -8
  1217. package/lib/tab-view/dynamic-tabs.directive.d.ts +0 -16
  1218. package/lib/tab-view/tab-view.component.d.ts +0 -26
  1219. package/lib/tab-view/tab-view.module.d.ts +0 -10
  1220. package/lib/tab-view/tab.component.d.ts +0 -12
  1221. package/lib/textarea/textarea.component.d.ts +0 -12
  1222. package/lib/textarea/textarea.module.d.ts +0 -8
  1223. package/lib/textbox/textbox.component.d.ts +0 -16
  1224. package/lib/textbox/textbox.module.d.ts +0 -11
  1225. package/lib/time-picker/time-picker.component.d.ts +0 -53
  1226. package/lib/time-picker/time-picker.module.d.ts +0 -11
  1227. package/lib/toast/toast-message/toast-message.component.d.ts +0 -18
  1228. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +0 -8
  1229. package/lib/toast/toast.module.d.ts +0 -9
  1230. package/lib/toast/toast.service.d.ts +0 -18
  1231. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +0 -12
  1232. package/lib/toolbar/menu/toolbar-menu.component.d.ts +0 -24
  1233. package/lib/toolbar/search/toolbar-search.component.d.ts +0 -16
  1234. package/lib/toolbar/title/toolbar-title.component.d.ts +0 -9
  1235. package/lib/toolbar/toolbar-item.d.ts +0 -3
  1236. package/lib/toolbar/toolbar.component.d.ts +0 -8
  1237. package/lib/toolbar/toolbar.module.d.ts +0 -14
  1238. package/lib/tooltip/tooltip.directive.d.ts +0 -21
  1239. package/lib/tooltip/tooltip.module.d.ts +0 -8
  1240. package/lib/tree-side-menu/tree-side-menu.component.d.ts +0 -111
  1241. package/lib/tree-side-menu/tree-side-menu.module.d.ts +0 -11
  1242. package/lib/tree-view/tree-view.component.d.ts +0 -121
  1243. package/lib/tree-view/tree-view.module.d.ts +0 -11
  1244. package/lib/upload-file/upload-file.component.d.ts +0 -42
  1245. package/lib/upload-file/upload-file.events.d.ts +0 -10
  1246. package/lib/upload-file/upload-file.module.d.ts +0 -13
  1247. package/lib/validation/validation-form.component.d.ts +0 -19
  1248. package/lib/validation/validation-rule.widget.d.ts +0 -23
  1249. package/lib/validation/validation.class.d.ts +0 -16
  1250. package/lib/validation/validation.component.d.ts +0 -25
  1251. package/lib/validation/validation.module.d.ts +0 -11
  1252. /package/{lib/label → label/lib}/label.module.d.ts +0 -0
  1253. /package/{lib/popover → popover/lib}/popover.module.d.ts +0 -0
  1254. /package/{lib/progress-bar → progress-bar/lib}/progress-bar.module.d.ts +0 -0
@@ -1,628 +0,0 @@
1
- import { Component, Input, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';
2
- import { Observable, Subject } from 'rxjs';
3
- import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
4
- import { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "../button/button.component";
8
- import * as i3 from "@angular/forms";
9
- export class AXNumberBoxComponent extends AXBaseTextComponent {
10
- cdr;
11
- min = null;
12
- max = null;
13
- showSeparator = false;
14
- showCurrency = false;
15
- showCounter = true;
16
- scrollWeel = true;
17
- showDoubleCounter = false;
18
- maxLength = 18;
19
- userQuestionUpdate = new Subject();
20
- userEdite = false;
21
- tmp;
22
- count;
23
- findDots = false;
24
- findMinus = false;
25
- cursorPosition = 0;
26
- dotPosition;
27
- textValue;
28
- decimalConstant = 0.1;
29
- lastStep = null;
30
- intStep = 1;
31
- decimalNumber = null;
32
- customStep = null;
33
- _values;
34
- get value() {
35
- return this._values;
36
- }
37
- set value(v) {
38
- if (v === '-') {
39
- this.textValue = '-';
40
- this._values = '-';
41
- }
42
- else {
43
- if (v === '' || v == null || v === undefined ? true : isNaN(Number(v.toString().replace(/,/g, ''))) === false) {
44
- if (v === '' || v == null || v === undefined) {
45
- this.textValue = '';
46
- const old = this._values;
47
- this._values = null;
48
- if (this._values !== old) {
49
- this.valueChange.emit(null);
50
- this.onValueChanged.emit({
51
- isUserChange: this.userEdite,
52
- component: this,
53
- value: null,
54
- oldValue: this.showSeparator && old
55
- ? old === '-'
56
- ? null
57
- : Number(old.replace(/,/g, ''))
58
- : old === null || old === undefined
59
- ? null
60
- : old === '-'
61
- ? null
62
- : Number(old),
63
- htmlElement: this.ref.nativeElement
64
- });
65
- this.userEdite = false;
66
- this.cdr.detectChanges();
67
- this.clearValidationStyle(this.input.nativeElement);
68
- }
69
- }
70
- else {
71
- v = v.toString();
72
- // this.addCommas(v.toString());
73
- this.textValue = this.showSeparator && v ? this.addCommas(v.toString()) : v;
74
- // if (this.textValue.indexOf('.') !== -1) {
75
- // // const dottt= (this.textValue.length-1) - this.textValue.indexOf('.')
76
- // if (this.textValue.length - 1 - this.textValue.indexOf('.') < this.decimalNumber) {
77
- // const a = this.decimalNumber - (this.textValue.length - 1 - this.textValue.indexOf('.'));
78
- // const z = '0';
79
- // this.textValue = this.textValue + '0';
80
- // }
81
- // }
82
- if (this._values) {
83
- const old = this._values;
84
- if (old.toString().search(/\./g) !== v.toString().search(/\./g)) {
85
- if (this.cursorPosition <= old.search(/\./g)) {
86
- this.cursorPosition = v.search(/\./g);
87
- }
88
- else {
89
- this.cursorPosition = v.length;
90
- }
91
- }
92
- }
93
- if (v !== this._values) {
94
- const old = this._values;
95
- this._values = v;
96
- this.valueChange.emit(this.showSeparator && v ? Number(v.replace(/,/g, '')) : Number(v));
97
- this.onValueChanged.emit({
98
- isUserChange: this.userEdite,
99
- component: this,
100
- value: this.showSeparator && v ? Number(v.replace(/,/g, '')) : Number(v),
101
- oldValue: this.showSeparator && old
102
- ? old === '-'
103
- ? null
104
- : Number(old.replace(/,/g, ''))
105
- : old === null || old === undefined
106
- ? null
107
- : old === '-'
108
- ? null
109
- : Number(old),
110
- htmlElement: this.ref.nativeElement
111
- });
112
- this.userEdite = false;
113
- this.cdr.detectChanges();
114
- this.clearValidationStyle(this.input.nativeElement);
115
- }
116
- }
117
- }
118
- else {
119
- this.textValue = '';
120
- v = null;
121
- const old = this._values;
122
- this._values = null;
123
- if (this._values !== old) {
124
- this.valueChange.emit(null);
125
- this.onValueChanged.emit({
126
- isUserChange: this.userEdite,
127
- component: this,
128
- value: null,
129
- oldValue: this.showSeparator && old
130
- ? old === '-'
131
- ? null
132
- : Number(old.replace(/,/g, ''))
133
- : old === null || old === undefined
134
- ? null
135
- : old === '-'
136
- ? null
137
- : Number(old),
138
- htmlElement: this.ref.nativeElement
139
- });
140
- this.userEdite = false;
141
- this.cdr.detectChanges();
142
- this.clearValidationStyle(this.input.nativeElement);
143
- }
144
- }
145
- }
146
- }
147
- constructor(cdr, ref) {
148
- super(cdr, ref);
149
- this.cdr = cdr;
150
- this.textAlign = 'left';
151
- }
152
- calcSeparator(num) {
153
- if (this.showSeparator) {
154
- return num + +(num / 3);
155
- }
156
- else {
157
- return num;
158
- }
159
- }
160
- addCommas2(x) {
161
- return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
162
- }
163
- addCommas(nStr) {
164
- nStr += '';
165
- const x = nStr.split('.');
166
- let x1 = x[0];
167
- const x2 = x.length > 1 ? '.' + x[1] : '';
168
- const rgx = /(\d+)(\d{3})/;
169
- while (rgx.test(x1)) {
170
- x1 = x1.replace(rgx, '$1' + ',' + '$2');
171
- }
172
- return x1 + x2;
173
- }
174
- ngOnInit() {
175
- if (this.disabled === false) {
176
- if (this.scrollWeel === true) {
177
- setTimeout(() => {
178
- if (this.readonly === false) {
179
- this.input.nativeElement.addEventListener('wheel', (e) => {
180
- this.handleWheel(e);
181
- });
182
- }
183
- }, 500);
184
- }
185
- }
186
- // this.value = this.min.toString();
187
- }
188
- handleWheel(event) {
189
- if (event.wheelDelta > 0) {
190
- this.input.nativeElement.style.caretColor = 'transparent';
191
- this.upStepHandel();
192
- this.delaySearch();
193
- setTimeout(() => {
194
- this.setCaret();
195
- this.input.nativeElement.style.caretColor = 'auto';
196
- }, 0);
197
- }
198
- if (event.wheelDelta < 0) {
199
- this.input.nativeElement.style.caretColor = 'transparent';
200
- this.downStepHandel();
201
- this.delaySearch();
202
- setTimeout(() => {
203
- this.setCaret();
204
- this.input.nativeElement.style.caretColor = 'auto';
205
- }, 0);
206
- }
207
- event.stopPropagation();
208
- event.preventDefault();
209
- }
210
- handleKeyPress(event) {
211
- this.userEdite = true;
212
- const NumberDotpattern = /[0-9\.]/g;
213
- const NumberMinusPattern = /[0-9\-]/g;
214
- const inputChar = String.fromCharCode(event.charCode);
215
- if (this.value && this.value.toString().match(/\./g) === null) {
216
- this.findDots = false;
217
- }
218
- if (this.value && this.value.toString().search('-') === null) {
219
- this.findMinus = false;
220
- }
221
- // get cursur position when key press
222
- if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {
223
- this.cursorPosition = this.input.nativeElement.selectionStart;
224
- this.cursorPosition += 1;
225
- }
226
- // control cursor when in first Index
227
- if (this.cursorPosition <= 1) {
228
- if (!NumberMinusPattern.test(inputChar)) {
229
- event.preventDefault();
230
- }
231
- if (this.value && this.value.match(/\-/g)) {
232
- event.preventDefault();
233
- }
234
- }
235
- // control cursor when in another index
236
- if (this.cursorPosition !== 1) {
237
- if (event.keyCode !== 8 && !NumberDotpattern.test(inputChar)) {
238
- event.preventDefault();
239
- }
240
- else {
241
- // for contor decimal figur = 0 or null
242
- if (this.decimalNumber === null || this.decimalNumber === 0) {
243
- if (inputChar === '.') {
244
- event.preventDefault();
245
- }
246
- }
247
- // control decimal number (figur of decimal)
248
- if (this.value && this.value.toString().match(/\./g)) {
249
- const figureAfterDot = this.value.length - this.value.indexOf('.');
250
- const dotIndex = this.value.indexOf('.');
251
- if (dotIndex - 1 + dotIndex + figureAfterDot > dotIndex - 1 + dotIndex + this.decimalNumber && this.cursorPosition - 1 > dotIndex) {
252
- event.preventDefault();
253
- }
254
- }
255
- // control '.' input
256
- if (inputChar === '.') {
257
- const lastChar = this.value.toString().charAt(this.value.length - 1);
258
- // control . when last char is -
259
- if (lastChar.toString().match(/\-/g)) {
260
- event.preventDefault();
261
- }
262
- // control . when find first dot
263
- if (this.findDots) {
264
- event.preventDefault();
265
- }
266
- this.findDots = true;
267
- this.findMinus = true;
268
- }
269
- }
270
- }
271
- }
272
- handleKeyUp(event) {
273
- this.userEdite = true;
274
- if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
275
- this.input.nativeElement.style.caretColor = 'auto';
276
- event.preventDefault();
277
- event.stopPropagation();
278
- }
279
- if (event.key === 'ArrowUp') {
280
- this.setCaret();
281
- }
282
- if (event.key === 'ArrowDown') {
283
- this.setCaret();
284
- }
285
- // left & right Button
286
- if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {
287
- if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {
288
- this.cursorPosition = this.input.nativeElement.selectionStart;
289
- }
290
- }
291
- // home button
292
- if (event.key === 'Home') {
293
- this.cursorPosition = 0;
294
- }
295
- // end button
296
- if (event.key === 'End') {
297
- this.cursorPosition = this.value.length;
298
- }
299
- // set delay with rxjs
300
- this.delaySearch();
301
- // backspace Control
302
- if (event.key === 'Backspace') {
303
- if (this.value === null || this.value.length <= 0) {
304
- this.cursorPosition = 0;
305
- }
306
- else {
307
- this.cursorPosition -= 1;
308
- }
309
- }
310
- }
311
- handleKeyDown(event) {
312
- this.userEdite = true;
313
- if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
314
- event.preventDefault();
315
- event.stopPropagation();
316
- }
317
- if (this.readonly === false) {
318
- const countAfterDot = this.value !== null && this.value !== '' && this.value !== undefined
319
- ? this.value.toString().length - 1 - this.value.toString().indexOf('.')
320
- : 0;
321
- const defaultStep = countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);
322
- // step and +- with up key and down key
323
- if (this.value && this.value.toString().match(/\./g)) {
324
- this.dotPosition = this.value.indexOf('.');
325
- if (this.dotPosition >= this.cursorPosition) {
326
- if (event.key === 'ArrowDown') {
327
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
328
- this.count = this.tmp - +this.intStep;
329
- if (this.min === null || Number(this.count) >= Number(this.min)) {
330
- // this.value = this.count.toFixed(this.decimalNumber);
331
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);
332
- }
333
- }
334
- if (event.key === 'ArrowUp') {
335
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
336
- this.count = this.tmp + +this.intStep;
337
- if (this.max === null || Number(this.count) <= Number(this.max)) {
338
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);
339
- }
340
- }
341
- }
342
- else {
343
- if (event.key === 'ArrowDown') {
344
- if (this.min === null || Number(this.value) > Number(this.min)) {
345
- if (this.customStep !== null) {
346
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
347
- this.lastStep =
348
- parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +
349
- parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -
350
- parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));
351
- this.count = parseFloat(this.tmp) - this.lastStep;
352
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);
353
- }
354
- else {
355
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
356
- this.count = parseFloat(this.tmp) - defaultStep;
357
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);
358
- }
359
- }
360
- }
361
- if (event.key === 'ArrowUp') {
362
- if (this.max === null || Number(this.value) < Number(this.max)) {
363
- if (this.customStep !== null) {
364
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
365
- this.lastStep =
366
- parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +
367
- parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -
368
- parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));
369
- this.count = parseFloat(this.tmp) + this.lastStep;
370
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);
371
- }
372
- else {
373
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
374
- this.count = parseFloat(this.tmp) + defaultStep;
375
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);
376
- }
377
- }
378
- }
379
- }
380
- }
381
- else {
382
- if (event.key === 'ArrowDown') {
383
- if (this.min != null && this.value == null) {
384
- this.value = this.min.toString();
385
- }
386
- else {
387
- if (this.min === null || Number(this.value) > parseInt(this.min.toString())) {
388
- if (this.value == null) {
389
- this.value = '0';
390
- }
391
- else {
392
- this.tmp = +this.value.toString().replace(/,/g, '');
393
- this.count = +this.tmp - +this.intStep;
394
- this.value = this.count.toString().replace(/,/g, '');
395
- }
396
- }
397
- }
398
- }
399
- if (event.key === 'ArrowUp') {
400
- if (this.min != null && this.value == null) {
401
- this.value = this.min.toString();
402
- }
403
- else {
404
- if (this.max === null || Number(this.value) < parseInt(this.max.toString())) {
405
- if (this.value == null) {
406
- this.value = '0';
407
- }
408
- else {
409
- this.tmp = this.value.toString().replace(/,/g, '');
410
- this.count = +this.tmp + +this.intStep;
411
- this.value = this.count.toString().replace(/,/g, '');
412
- }
413
- }
414
- }
415
- }
416
- }
417
- }
418
- // stop when keydown
419
- if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
420
- this.input.nativeElement.style.caretColor = 'transparent';
421
- event.preventDefault();
422
- event.stopPropagation();
423
- return false;
424
- }
425
- }
426
- handleClick() {
427
- if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {
428
- this.cursorPosition = this.input.nativeElement.selectionStart;
429
- }
430
- }
431
- delaySearch() {
432
- Observable.create((observer) => {
433
- this.userQuestionUpdate = observer;
434
- });
435
- this.userQuestionUpdate.pipe(debounceTime(1000), distinctUntilChanged()).subscribe((text) => this.checkMinMax(text));
436
- // this.userQuestionUpdate.next((e.target as any).value);
437
- setTimeout(() => {
438
- this.userQuestionUpdate.next(this.input.nativeElement.value);
439
- }, 50);
440
- }
441
- checkMinMax(text) {
442
- let number;
443
- if (text.indexOf(',') > 0) {
444
- number = Number(text.replaceAll(',', ''));
445
- }
446
- else {
447
- number = Number(text);
448
- }
449
- if (!!this.min) {
450
- if (number < this.min) {
451
- this.value = '';
452
- }
453
- }
454
- if (!!this.max) {
455
- if (number > this.max) {
456
- this.value = '';
457
- }
458
- }
459
- }
460
- doGetCaretPosition(ctrl) {
461
- let CaretPos = 0;
462
- if (ctrl.selectionStart || ctrl.selectionStart === 0) {
463
- CaretPos = ctrl.selectionStart;
464
- return CaretPos;
465
- }
466
- }
467
- setCaretPosition(ctrl, pos) {
468
- if (ctrl.setSelectionRange) {
469
- ctrl.focus();
470
- ctrl.setSelectionRange(pos, pos);
471
- }
472
- else if (ctrl.createTextRange) {
473
- const range = ctrl.createTextRange();
474
- range.collapse(true);
475
- range.moveEnd('character', pos);
476
- range.moveStart('character', pos);
477
- range.select();
478
- }
479
- }
480
- setCaret() {
481
- this.setCaretPosition(this.input.nativeElement, this.cursorPosition);
482
- }
483
- upStepHandel() {
484
- this.userEdite = true;
485
- if (this.min != null && this.value == null) {
486
- this.value = this.min.toString();
487
- }
488
- else {
489
- if (this.readonly === false) {
490
- const countAfterDot = this.value !== null && this.value !== '' && this.value !== undefined
491
- ? this.value.toString().length - 1 - this.value.toString().indexOf('.')
492
- : 0;
493
- if (this.value == null) {
494
- this.value = '0';
495
- }
496
- else {
497
- const defaultStep = countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);
498
- this.dotPosition = this.value.toString().indexOf('.') + 1;
499
- if (this.value && this.value.toString().match(/\./g)) {
500
- if (this.dotPosition > this.cursorPosition) {
501
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
502
- this.count = this.tmp + +this.intStep;
503
- if (this.max === null || Number(this.count) <= this.max) {
504
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);
505
- }
506
- }
507
- else {
508
- if (this.max === null || Number(this.value) < Number(this.max)) {
509
- if (this.customStep !== null) {
510
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
511
- this.lastStep =
512
- parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +
513
- parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -
514
- parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));
515
- this.count = parseFloat(this.tmp) + this.lastStep;
516
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');
517
- }
518
- else {
519
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
520
- this.count = parseFloat(this.tmp) + defaultStep;
521
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');
522
- }
523
- }
524
- }
525
- }
526
- else {
527
- if (this.max === null || Number(this.value) < parseInt(this.max.toString())) {
528
- this.tmp = this.value.toString().replace(/,/g, '');
529
- this.count = +this.tmp + +this.intStep;
530
- this.value = this.count.toString().replace(/,/g, '');
531
- }
532
- }
533
- }
534
- }
535
- }
536
- }
537
- downStepHandel() {
538
- this.userEdite = true;
539
- if (this.min != null && this.value == null) {
540
- this.value = this.min.toString();
541
- }
542
- else {
543
- if (this.readonly === false) {
544
- const countAfterDot = this.value !== null && this.value !== '' && this.value !== undefined
545
- ? this.value.toString().length - 1 - this.value.toString().indexOf('.')
546
- : 0;
547
- if (this.value == null) {
548
- this.value = '0';
549
- }
550
- else {
551
- const defaultStep = countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);
552
- this.dotPosition = this.value.toString().indexOf('.') + 1;
553
- if (this.value && this.value.toString().match(/\./g)) {
554
- if (this.dotPosition > this.cursorPosition) {
555
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
556
- this.count = parseFloat(this.value.replace(/,/g, '')) - +this.intStep;
557
- if (this.min === null || Number(this.count) >= this.min) {
558
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');
559
- }
560
- }
561
- else {
562
- if (this.min === null || Number(this.value) > Number(this.min)) {
563
- if (this.customStep !== null) {
564
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
565
- this.lastStep =
566
- parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +
567
- parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -
568
- parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));
569
- this.count = parseFloat(this.tmp) - this.lastStep;
570
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);
571
- }
572
- else {
573
- this.tmp = parseFloat(this.value.replace(/,/g, ''));
574
- this.count = parseFloat(this.tmp) - defaultStep;
575
- this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);
576
- }
577
- }
578
- }
579
- }
580
- else {
581
- if (this.min === null || Number(this.value) > parseInt(this.min.toString())) {
582
- this.tmp = +this.value.toString().replace(/,/g, '');
583
- this.count = +this.tmp - +this.intStep;
584
- this.value = this.count.toString().replace(/,/g, '');
585
- }
586
- }
587
- }
588
- }
589
- }
590
- }
591
- handleInputBlur(e) {
592
- this.checkMinMax(this.textValue);
593
- this.onBlur.emit({
594
- component: this,
595
- htmlElement: this.ref.nativeElement,
596
- htmlEvent: e
597
- });
598
- }
599
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
600
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { min: "min", max: "max", showSeparator: "showSeparator", showCurrency: "showCurrency", showCounter: "showCounter", scrollWeel: "scrollWeel", showDoubleCounter: "showDoubleCounter", maxLength: "maxLength", intStep: "intStep", decimalNumber: "decimalNumber", customStep: "customStep" }, host: { styleAttribute: "width: 100%" }, providers: [{ provide: AXValidatableComponent, useExisting: AXNumberBoxComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\">\n </ng-content>\n <ax-button icon=\"far fa-plus\" type=\"success blank\" (click)=\"upStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input [autocomplete]=\"autocomplete\" [name]=\"name\" #input type=\"text\" class=\"ax {{size}}\" [maxlength]=\"calcSeparator(maxLength)\" [(ngModel)]=\"textValue\" placeholder=\"{{placeholder}}\"\n [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\"\n (keypress)=\"handleKeyPress($event)\" (ngModelChange)=\"this.userQuestionUpdate.next($event)\"\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick()\" (keyup)=\"handleKeyUp($event)\">\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" [disabled]=\"disabled\" icon=\"far fa-times\" type=\"danger blank\"\n (click)=\"clear()\"></ax-button>\n <ax-button icon=\"far fa-minus\" type=\"danger blank\" (click)=\"downStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n <div class=\"arrow-number\" *ngIf=\"showCounter && !showDoubleCounter && !readonly\" >\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-up\" [size]=\"size\"\n (mousedown)=\"upStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-down\" [size]=\"size\"\n (mousedown)=\"downStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n </div>\n </div>\n\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
601
- }
602
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
603
- type: Component,
604
- args: [{ selector: 'ax-number-box', changeDetection: ChangeDetectionStrategy.OnPush, host: { style: 'width: 100%' }, providers: [{ provide: AXValidatableComponent, useExisting: AXNumberBoxComponent }], template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\">\n </ng-content>\n <ax-button icon=\"far fa-plus\" type=\"success blank\" (click)=\"upStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input [autocomplete]=\"autocomplete\" [name]=\"name\" #input type=\"text\" class=\"ax {{size}}\" [maxlength]=\"calcSeparator(maxLength)\" [(ngModel)]=\"textValue\" placeholder=\"{{placeholder}}\"\n [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\"\n (keypress)=\"handleKeyPress($event)\" (ngModelChange)=\"this.userQuestionUpdate.next($event)\"\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick()\" (keyup)=\"handleKeyUp($event)\">\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" [disabled]=\"disabled\" icon=\"far fa-times\" type=\"danger blank\"\n (click)=\"clear()\"></ax-button>\n <ax-button icon=\"far fa-minus\" type=\"danger blank\" (click)=\"downStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n <div class=\"arrow-number\" *ngIf=\"showCounter && !showDoubleCounter && !readonly\" >\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-up\" [size]=\"size\"\n (mousedown)=\"upStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-down\" [size]=\"size\"\n (mousedown)=\"downStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n </div>\n </div>\n\n</div>\n" }]
605
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { min: [{
606
- type: Input
607
- }], max: [{
608
- type: Input
609
- }], showSeparator: [{
610
- type: Input
611
- }], showCurrency: [{
612
- type: Input
613
- }], showCounter: [{
614
- type: Input
615
- }], scrollWeel: [{
616
- type: Input
617
- }], showDoubleCounter: [{
618
- type: Input
619
- }], maxLength: [{
620
- type: Input
621
- }], intStep: [{
622
- type: Input
623
- }], decimalNumber: [{
624
- type: Input
625
- }], customStep: [{
626
- type: Input
627
- }] } });
628
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9udW1iZXItYm94L251bWJlci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvbnVtYmVyLWJveC9udW1iZXItYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBZ0IsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFRcEYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQTZKckM7SUE1SmIsR0FBRyxHQUFXLElBQUksQ0FBQztJQUNuQixHQUFHLEdBQVcsSUFBSSxDQUFDO0lBRzVCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFFL0IsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUc5QixXQUFXLEdBQVksSUFBSSxDQUFDO0lBRzVCLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFHM0IsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBR25DLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFFdkIsa0JBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUUzQyxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTNCLEdBQUcsQ0FBTTtJQUNULEtBQUssQ0FBUztJQUNkLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsU0FBUyxHQUFZLEtB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RSxhQUNuQixDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsc0JBQXNCLEVBQUUsQ0FBQztpSUFHMUUsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFpQkcsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBBZnRlclZpZXdJbml0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBWEJhc2VUZXh0Q29tcG9uZW50LCBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW51bWJlci1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IHN0eWxlOiAnd2lkdGg6IDEwMCUnIH0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTnVtYmVyQm94Q29tcG9uZW50IH1dXG59KVxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1pbjogbnVtYmVyID0gbnVsbDtcbiAgQElucHV0KCkgbWF4OiBudW1iZXIgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dTZXBhcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgc2hvd0N1cnJlbmN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2hvd0NvdW50ZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNjcm9sbFdlZWw6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dEb3VibGVDb3VudGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgbWF4TGVuZ3RoOiBudW1iZXIgPSAxODtcblxuICB1c2VyUXVlc3Rpb25VcGRhdGUgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgdXNlckVkaXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdG1wOiBhbnk7XG4gIGNvdW50OiBudW1iZXI7XG4gIGZpbmREb3RzOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbmRNaW51czogYm9vbGVhbiA9IGZhbHNlO1xuICBjdXJzb3JQb3NpdGlvbjogbnVtYmVyID0gMDtcbiAgZG90UG9zaXRpb246IG51bWJlcjtcbiAgdGV4dFZhbHVlOiBzdHJpbmc7XG4gIGRlY2ltYWxDb25zdGFudDogbnVtYmVyID0gMC4xO1xuICBsYXN0U3RlcDogbnVtYmVyID0gbnVsbDtcblxuICBASW5wdXQoKSBpbnRTdGVwOiBudW1iZXIgPSAxO1xuICBASW5wdXQoKSBkZWNpbWFsTnVtYmVyOiBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBjdXN0b21TdGVwOiBudW1iZXIgPSBudWxsO1xuXG4gIHByaXZhdGUgX3ZhbHVlczogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZykge1xuICAgIGlmICh2ID09PSAnLScpIHtcbiAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0nO1xuICAgICAgdGhpcy5fdmFsdWVzID0gJy0nO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodiA9PT0gJycgfHwgdiA9PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBpc05hTihOdW1iZXIodi50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpKSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmICh2ID09PSAnJyB8fCB2ID09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnJztcbiAgICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgICAgdGhpcy5fdmFsdWVzID0gbnVsbDtcblxuICAgICAgICAgIGlmICh0aGlzLl92YWx1ZXMgIT09IG9sZCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG51bGwpO1xuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgICAgaXNVc2VyQ2hhbmdlOiB0aGlzLnVzZXJFZGl0ZSxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgb2xkVmFsdWU6XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2VwYXJhdG9yICYmIG9sZFxuICAgICAgICAgICAgICAgICAgPyBvbGQgPT09ICctJ1xuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkLnJlcGxhY2UoLywvZywgJycpKVxuICAgICAgICAgICAgICAgICAgOiBvbGQgPT09IG51bGwgfHwgb2xkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgOiBvbGQgPT09ICctJ1xuICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQpLFxuICAgICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnVzZXJFZGl0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2ID0gdi50b1N0cmluZygpO1xuXG4gICAgICAgICAgLy8gdGhpcy5hZGRDb21tYXModi50b1N0cmluZygpKTtcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMuc2hvd1NlcGFyYXRvciAmJiB2ID8gdGhpcy5hZGRDb21tYXModi50b1N0cmluZygpKSA6IHY7XG5cbiAgICAgICAgICAvLyBpZiAodGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLicpICE9PSAtMSkge1xuICAgICAgICAgIC8vICAgLy8gY29uc3QgZG90dHQ9ICh0aGlzLnRleHRWYWx1ZS5sZW5ndGgtMSkgLSB0aGlzLnRleHRWYWx1ZS5pbmRleE9mKCcuJylcbiAgICAgICAgICAvLyAgIGlmICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggLSAxIC0gdGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLicpIDwgdGhpcy5kZWNpbWFsTnVtYmVyKSB7XG4gICAgICAgICAgLy8gICAgIGNvbnN0IGEgPSB0aGlzLmRlY2ltYWxOdW1iZXIgLSAodGhpcy50ZXh0VmFsdWUubGVuZ3RoIC0gMSAtIHRoaXMudGV4dFZhbHVlLmluZGV4T2YoJy4nKSk7XG4gICAgICAgICAgLy8gICAgIGNvbnN0IHogPSAnMCc7XG4gICAgICAgICAgLy8gICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy50ZXh0VmFsdWUgKyAnMCc7XG4gICAgICAgICAgLy8gICB9XG4gICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgaWYgKHRoaXMuX3ZhbHVlcykge1xuICAgICAgICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xuICAgICAgICAgICAgaWYgKG9sZC50b1N0cmluZygpLnNlYXJjaCgvXFwuL2cpICE9PSB2LnRvU3RyaW5nKCkuc2VhcmNoKC9cXC4vZykpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gb2xkLnNlYXJjaCgvXFwuL2cpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHYuc2VhcmNoKC9cXC4vZyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHYubGVuZ3RoO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IHY7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5zaG93U2VwYXJhdG9yICYmIHYgPyBOdW1iZXIodi5yZXBsYWNlKC8sL2csICcnKSkgOiBOdW1iZXIodikpO1xuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgICAgaXNVc2VyQ2hhbmdlOiB0aGlzLnVzZXJFZGl0ZSxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5zaG93U2VwYXJhdG9yICYmIHYgPyBOdW1iZXIodi5yZXBsYWNlKC8sL2csICcnKSkgOiBOdW1iZXIodiksXG4gICAgICAgICAgICAgIG9sZFZhbHVlOlxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NlcGFyYXRvciAmJiBvbGRcbiAgICAgICAgICAgICAgICAgID8gb2xkID09PSAnLSdcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogTnVtYmVyKG9sZC5yZXBsYWNlKC8sL2csICcnKSlcbiAgICAgICAgICAgICAgICAgIDogb2xkID09PSBudWxsIHx8IG9sZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgIDogb2xkID09PSAnLSdcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkKSxcbiAgICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy51c2VyRWRpdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gJyc7XG4gICAgICAgIHYgPSBudWxsO1xuICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlcyAhPT0gb2xkKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG51bGwpO1xuICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBpc1VzZXJDaGFuZ2U6IHRoaXMudXNlckVkaXRlLFxuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICBvbGRWYWx1ZTpcbiAgICAgICAgICAgICAgdGhpcy5zaG93U2VwYXJhdG9yICYmIG9sZFxuICAgICAgICAgICAgICAgID8gb2xkID09PSAnLSdcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkLnJlcGxhY2UoLywvZywgJycpKVxuICAgICAgICAgICAgICAgIDogb2xkID09PSBudWxsIHx8IG9sZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiBvbGQgPT09ICctJ1xuICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgIDogTnVtYmVyKG9sZCksXG4gICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMudXNlckVkaXRlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoY2RyLCByZWYpO1xuICAgIHRoaXMudGV4dEFsaWduID0gJ2xlZnQnO1xuICB9XG5cbiAgY2FsY1NlcGFyYXRvcihudW06IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNob3dTZXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiBudW0gKyArKG51bSAvIDMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVtO1xuICAgIH1cbiAgfVxuXG4gIGFkZENvbW1hczIoeCkge1xuICAgIHJldHVybiB4LnRvU3RyaW5nKCkucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgJywnKTtcbiAgfVxuXG4gIGFkZENvbW1hcyhuU3RyKSB7XG4gICAgblN0ciArPSAnJztcbiAgICBjb25zdCB4ID0gblN0ci5zcGxpdCgnLicpO1xuICAgIGxldCB4MSA9IHhbMF07XG4gICAgY29uc3QgeDIgPSB4Lmxlbmd0aCA+IDEgPyAnLicgKyB4WzFdIDogJyc7XG4gICAgY29uc3Qgcmd4ID0gLyhcXGQrKShcXGR7M30pLztcbiAgICB3aGlsZSAocmd4LnRlc3QoeDEpKSB7XG4gICAgICB4MSA9IHgxLnJlcGxhY2Uocmd4LCAnJDEnICsgJywnICsgJyQyJyk7XG4gICAgfVxuICAgIHJldHVybiB4MSArIHgyO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgPT09IGZhbHNlKSB7XG4gICAgICBpZiAodGhpcy5zY3JvbGxXZWVsID09PSB0cnVlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnJlYWRvbmx5ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgKGUpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVXaGVlbChlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0aGlzLnZhbHVlID0gdGhpcy5taW4udG9TdHJpbmcoKTtcbiAgfVxuXG4gIGhhbmRsZVdoZWVsKGV2ZW50KSB7XG4gICAgaWYgKChldmVudCBhcyBhbnkpLndoZWVsRGVsdGEgPiAwKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XG5cbiAgICAgIHRoaXMudXBTdGVwSGFuZGVsKCk7XG4gICAgICB0aGlzLmRlbGF5U2VhcmNoKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldENhcmV0KCk7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICAgIGlmICgoZXZlbnQgYXMgYW55KS53aGVlbERlbHRhIDwgMCkge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xuXG4gICAgICB0aGlzLmRvd25TdGVwSGFuZGVsKCk7XG4gICAgICB0aGlzLmRlbGF5U2VhcmNoKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldENhcmV0KCk7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBoYW5kbGVLZXlQcmVzcyhldmVudDogYW55KSB7XG4gICAgdGhpcy51c2VyRWRpdGUgPSB0cnVlO1xuICAgIGNvbnN0IE51bWJlckRvdHBhdHRlcm4gPSAvWzAtOVxcLl0vZztcbiAgICBjb25zdCBOdW1iZXJNaW51c1BhdHRlcm4gPSAvWzAtOVxcLV0vZztcblxuICAgIGNvbnN0IGlucHV0Q2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpO1xuXG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9cXC4vZykgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuZmluZERvdHMgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLnNlYXJjaCgnLScpID09PSBudWxsKSB7XG4gICAgICB0aGlzLmZpbmRNaW51cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGdldCBjdXJzdXIgcG9zaXRpb24gd2hlbiBrZXkgcHJlc3NcbiAgICBpZiAodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gKz0gMTtcbiAgICB9XG5cbiAgICAvLyBjb250cm9sIGN1cnNvciB3aGVuIGluIGZpcnN0IEluZGV4XG4gICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gMSkge1xuICAgICAgaWYgKCFOdW1iZXJNaW51c1BhdHRlcm4udGVzdChpbnB1dENoYXIpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLm1hdGNoKC9cXC0vZykpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gY29udHJvbCBjdXJzb3Igd2hlbiBpbiBhbm90aGVyIGluZGV4XG4gICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gIT09IDEpIHtcbiAgICAgIGlmIChldmVudC5rZXlDb2RlICE9PSA4ICYmICFOdW1iZXJEb3RwYXR0ZXJuLnRlc3QoaW5wdXRDaGFyKSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZm9yIGNvbnRvciBkZWNpbWFsIGZpZ3VyID0gMCBvciBudWxsXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWxOdW1iZXIgPT09IG51bGwgfHwgdGhpcy5kZWNpbWFsTnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgaWYgKGlucHV0Q2hhciA9PT0gJy4nKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBjb250cm9sIGRlY2ltYWwgbnVtYmVyIChmaWd1ciBvZiBkZWNpbWFsKVxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL1xcLi9nKSkge1xuICAgICAgICAgIGNvbnN0IGZpZ3VyZUFmdGVyRG90ID0gdGhpcy52YWx1ZS5sZW5ndGggLSB0aGlzLnZhbHVlLmluZGV4T2YoJy4nKTtcbiAgICAgICAgICBjb25zdCBkb3RJbmRleCA9IHRoaXMudmFsdWUuaW5kZXhPZignLicpO1xuICAgICAgICAgIGlmIChkb3RJbmRleCAtIDEgKyBkb3RJbmRleCArIGZpZ3VyZUFmdGVyRG90ID4gZG90SW5kZXggLSAxICsgZG90SW5kZXggKyB0aGlzLmRlY2ltYWxOdW1iZXIgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiAtIDEgPiBkb3RJbmRleCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29udHJvbCAnLicgaW5wdXRcbiAgICAgICAgaWYgKGlucHV0Q2hhciA9PT0gJy4nKSB7XG4gICAgICAgICAgY29uc3QgbGFzdENoYXIgPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuY2hhckF0KHRoaXMudmFsdWUubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgLy8gY29udHJvbCAuIHdoZW4gbGFzdCBjaGFyIGlzIC1cbiAgICAgICAgICBpZiAobGFzdENoYXIudG9TdHJpbmcoKS5tYXRjaCgvXFwtL2cpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBjb250cm9sIC4gd2hlbiBmaW5kIGZpcnN0IGRvdFxuICAgICAgICAgIGlmICh0aGlzLmZpbmREb3RzKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZpbmREb3RzID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmZpbmRNaW51cyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLnNldENhcmV0KCk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcbiAgICB9XG5cbiAgICAvLyBsZWZ0ICYgcmlnaHQgQnV0dG9uXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcpIHtcbiAgICAgIGlmICh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaG9tZSBidXR0b25cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgIH1cblxuICAgIC8vIGVuZCBidXR0b25cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW5kJykge1xuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgIH1cblxuICAgIC8vIHNldCBkZWxheSB3aXRoIHJ4anNcbiAgICB0aGlzLmRlbGF5U2VhcmNoKCk7XG5cbiAgICAvLyBiYWNrc3BhY2UgQ29udHJvbFxuICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLnZhbHVlLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiAtPSAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLnVzZXJFZGl0ZSA9IHRydWU7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgPT09IGZhbHNlKSB7XG4gICAgICBjb25zdCBjb3VudEFmdGVyRG90ID1cbiAgICAgICAgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSAnJyAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHRoaXMudmFsdWUudG9TdHJpbmcoKS5sZW5ndGggLSAxIC0gdGhpcy52YWx1ZS50b1N0cmluZygpLmluZGV4T2YoJy4nKVxuICAgICAgICAgIDogMDtcbiAgICAgIGNvbnN0IGRlZmF1bHRTdGVwOiBudW1iZXIgPVxuICAgICAgICBjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIHRoaXMuZGVjaW1hbE51bWJlcikgOiBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgY291bnRBZnRlckRvdCk7XG4gICAgICAvLyBzdGVwIGFuZCArLSB3aXRoIHVwIGtleSBhbmQgZG93biBrZXlcbiAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpKSB7XG4gICAgICAgIHRoaXMuZG90UG9zaXRpb24gPSB0aGlzLnZhbHVlLmluZGV4T2YoJy4nKTtcbiAgICAgICAgaWYgKHRoaXMuZG90UG9zaXRpb24gPj0gdGhpcy5jdXJzb3JQb3NpdGlvbikge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gdGhpcy50bXAgLSArdGhpcy5pbnRTdGVwO1xuICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLmNvdW50KSA+PSBOdW1iZXIodGhpcy5taW4pKSB7XG4gICAgICAgICAgICAgIC8vIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQodGhpcy5kZWNpbWFsTnVtYmVyKTtcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xuICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLmNvdW50KSA8PSBOdW1iZXIodGhpcy5tYXgpKSB7XG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA+IE51bWJlcih0aGlzLm1pbikpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tU3RlcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RTdGVwID1cbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpICtcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXG4gICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgLSB0aGlzLmxhc3RTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgLSBkZWZhdWx0U3RlcDtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA8IE51bWJlcih0aGlzLm1heCkpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tU3RlcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RTdGVwID1cbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpICtcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXG4gICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyB0aGlzLmxhc3RTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyBkZWZhdWx0U3RlcDtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICBpZiAodGhpcy5taW4gIT0gbnVsbCAmJiB0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpID4gcGFyc2VJbnQodGhpcy5taW4udG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSAnMCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSArdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSArdGhpcy50bXAgLSArdGhpcy5pbnRTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgdGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW4udG9TdHJpbmcoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA8IHBhcnNlSW50KHRoaXMubWF4LnRvU3RyaW5nKCkpKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gJzAnO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSArdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdG9wIHdoZW4ga2V5ZG93blxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgZGVsYXlTZWFyY2goKSB7XG4gICAgT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICB0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZSA9IG9ic2VydmVyO1xuICAgIH0pO1xuICAgIHRoaXMudXNlclF1ZXN0aW9uVXBkYXRlLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKHRleHQ6IHN0cmluZykgPT4gdGhpcy5jaGVja01pbk1heCh0ZXh0KSk7XG4gICAgLy8gdGhpcy51c2VyUXVlc3Rpb25VcGRhdGUubmV4dCgoZS50YXJnZXQgYXMgYW55KS52YWx1ZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZS5uZXh0KHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgY2hlY2tNaW5NYXgodGV4dCkge1xuICAgIGxldCBudW1iZXI6IG51bWJlcjtcbiAgICBpZiAodGV4dC5pbmRleE9mKCcsJykgPiAwKSB7XG4gICAgICBudW1iZXIgPSBOdW1iZXIodGV4dC5yZXBsYWNlQWxsKCcsJywgJycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbnVtYmVyID0gTnVtYmVyKHRleHQpO1xuICAgIH1cblxuICAgIGlmICghIXRoaXMubWluKSB7XG4gICAgICBpZiAobnVtYmVyIDwgdGhpcy5taW4pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoISF0aGlzLm1heCkge1xuICAgICAgaWYgKG51bWJlciA+IHRoaXMubWF4KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkb0dldENhcmV0UG9zaXRpb24oY3RybCkge1xuICAgIGxldCBDYXJldFBvcyA9IDA7XG4gICAgaWYgKGN0cmwuc2VsZWN0aW9uU3RhcnQgfHwgY3RybC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xuICAgICAgQ2FyZXRQb3MgPSBjdHJsLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgcmV0dXJuIENhcmV0UG9zO1xuICAgIH1cbiAgfVxuXG4gIHNldENhcmV0UG9zaXRpb24oY3RybCwgcG9zKSB7XG4gICAgaWYgKGN0cmwuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcbiAgICAgIGN0cmwuZm9jdXMoKTtcbiAgICAgIGN0cmwuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICAgIH0gZWxzZSBpZiAoY3RybC5jcmVhdGVUZXh0UmFuZ2UpIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gY3RybC5jcmVhdGVUZXh0UmFuZ2UoKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgcG9zKTtcbiAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgcG9zKTtcbiAgICAgIHJhbmdlLnNlbGVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHNldENhcmV0KCkge1xuICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3Vyc29yUG9zaXRpb24pO1xuICB9XG5cbiAgdXBTdGVwSGFuZGVsKCkge1xuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5taW4gIT0gbnVsbCAmJiB0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5yZWFkb25seSA9PT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgY291bnRBZnRlckRvdCA9XG4gICAgICAgICAgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSAnJyAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZS50b1N0cmluZygpLmxlbmd0aCAtIDEgLSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuaW5kZXhPZignLicpXG4gICAgICAgICAgICA6IDA7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gJzAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHRTdGVwOiBudW1iZXIgPVxuICAgICAgICAgICAgY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IE1hdGgucG93KHRoaXMuZGVjaW1hbENvbnN0YW50LCB0aGlzLmRlY2ltYWxOdW1iZXIpIDogTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgIHRoaXMuZG90UG9zaXRpb24gPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuaW5kZXhPZignLicpICsgMTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL1xcLi9nKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZG90UG9zaXRpb24gPiB0aGlzLmN1cnNvclBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHRoaXMudG1wICsgK3RoaXMuaW50U3RlcDtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLmNvdW50KSA8PSB0aGlzLm1heCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpIDwgTnVtYmVyKHRoaXMubWF4KSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbVN0ZXAgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFN0ZXAgPVxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSArXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApICsgdGhpcy5sYXN0U3RlcDtcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyBkZWZhdWx0U3RlcDtcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpIDwgcGFyc2VJbnQodGhpcy5tYXgudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgICAgdGhpcy50bXAgPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICAgIHRoaXMuY291bnQgPSArdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xuXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZG93blN0ZXBIYW5kZWwoKSB7XG4gICAgdGhpcy51c2VyRWRpdGUgPSB0cnVlO1xuICAgIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWluLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5ID09PSBmYWxzZSkge1xuICAgICAgICBjb25zdCBjb3VudEFmdGVyRG90ID1cbiAgICAgICAgICB0aGlzLnZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIC0gMSAtIHRoaXMudmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCcuJylcbiAgICAgICAgICAgIDogMDtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMudmFsdWUgPSAnMCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZGVmYXVsdFN0ZXA6IG51bWJlciA9XG4gICAgICAgICAgICBjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIHRoaXMuZGVjaW1hbE51bWJlcikgOiBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgY291bnRBZnRlckRvdCk7XG4gICAgICAgICAgdGhpcy5kb3RQb3NpdGlvbiA9IHRoaXMudmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCcuJykgKyAxO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kb3RQb3NpdGlvbiA+IHRoaXMuY3Vyc29yUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKSAtICt0aGlzLmludFN0ZXA7XG4gICAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy5jb3VudCkgPj0gdGhpcy5taW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA+IE51bWJlcih0aGlzLm1pbikpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXN0b21TdGVwICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxhc3RTdGVwID1cbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChkZWZhdWx0U3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSkgK1xuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuY3VzdG9tU3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSkgLVxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSAtIHRoaXMubGFzdFN0ZXA7XG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApIC0gZGVmYXVsdFN0ZXA7XG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA+IHBhcnNlSW50KHRoaXMubWluLnRvU3RyaW5nKCkpKSB7XG4gICAgICAgICAgICAgIHRoaXMudG1wID0gK3RoaXMudmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICAgICAgdGhpcy5jb3VudCA9ICt0aGlzLnRtcCAtICt0aGlzLmludFN0ZXA7XG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlSW5wdXRCbHVyKGU6IEV2ZW50KSB7XG4gICAgdGhpcy5jaGVja01pbk1heCh0aGlzLnRleHRWYWx1ZSk7XG4gICAgdGhpcy5vbkJsdXIuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIGh0bWxFdmVudDogZVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXggZm9ybS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCIgW2F0dHIuaWRdPVwidWlkXCIgI2ZjPlxuICAgIDxkaXYgY2xhc3M9XCJheCBpdGVtcy13cmFwcGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdGFydF1cIj5cbiAgICAgICAgPC9uZy1jb250ZW50PlxuICAgICAgICA8YXgtYnV0dG9uIGljb249XCJmYXIgZmEtcGx1c1wiIHR5cGU9XCJzdWNjZXNzIGJsYW5rXCIgKGNsaWNrKT1cInVwU3RlcEhhbmRlbCgpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKm5nSWY9XCJzaG93RG91YmxlQ291bnRlclwiPjwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgI2NvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheCBmb3JtLWNvbnRyb2wgaW5wdXQge3tzaXplfX1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgW2NsYXNzLmljb25dPVwiaWNvblwiPlxuICAgICAgICAgICAgPGlucHV0IFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCIgW25hbWVdPVwibmFtZVwiICNpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYXgge3tzaXplfX1cIiBbbWF4bGVuZ3RoXT1cImNhbGNTZXBhcmF0b3IobWF4TGVuZ3RoKVwiIFsobmdNb2RlbCldPVwidGV4dFZhbHVlXCIgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyfX1cIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtuZ0NsYXNzXT1cInNldFRleHRBbGlnbigpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuY2xlYXJdPVwidmFsdWUgJiYgYWxsb3dDbGVhclwiIChmb2N1cyk9XCJoYW5kbGVJbnB1dEZvY3VzKCRldmVudClcIiAoYmx1cik9XCJoYW5kbGVJbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleXByZXNzKT1cImhhbmRsZUtleVByZXNzKCRldmVudClcIiAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZS5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleURvd24oJGV2ZW50KVwiIChjbGljayk9XCJoYW5kbGVDbGljaygpXCIgKGtleXVwKT1cImhhbmRsZUtleVVwKCRldmVudClcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpY29ufX1cIiAqbmdJZj1cImljb25cIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheCBpdGVtcy13cmFwcGVyXCI+XG4gICAgICAgIDxheC1idXR0b24gKm5nSWY9XCJ2YWx1ZSAmJiBhbGxvd0NsZWFyXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgaWNvbj1cImZhciBmYS10aW1lc1wiIHR5cGU9XCJkYW5nZXIgYmxhbmtcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgIDxheC1idXR0b24gaWNvbj1cImZhciBmYS1taW51c1wiIHR5cGU9XCJkYW5nZXIgYmxhbmtcIiAoY2xpY2spPVwiZG93blN0ZXBIYW5kZWwoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiICpuZ0lmPVwic2hvd0RvdWJsZUNvdW50ZXJcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VuZF1cIj5cbiAgICAgICAgPC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJyb3ctbnVtYmVyXCIgKm5nSWY9XCJzaG93Q291bnRlciAmJiAhc2hvd0RvdWJsZUNvdW50ZXIgJiYgIXJlYWRvbmx5XCIgPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0eXBlPVwibGlnaHQgYmxhbmtcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBpY29uPVwiZmFzIGZhLWFuZ2xlLXVwXCIgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJ1cFN0ZXBIYW5kZWwoKVwiIChtb3VzZXVwKT1cImRlbGF5U2VhcmNoKClcIiBbdGFiSW5kZXhdPVwiLTFcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgIDxheC1idXR0b24gdHlwZT1cImxpZ2h0IGJsYW5rXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgaWNvbj1cImZhcyBmYS1hbmdsZS1kb3duXCIgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJkb3duU3RlcEhhbmRlbCgpXCIgKG1vdXNldXApPVwiZGVsYXlTZWFyY2goKVwiIFt0YWJJbmRleF09XCItMVwiPjwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=