@acorex/components 18.5.17 → 18.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (476) hide show
  1. package/audio-wave/lib/audio-wave.component.d.ts +5 -0
  2. package/button-group/lib/button-group.component.d.ts +5 -2
  3. package/calendar/lib/calendar-range.component.d.ts +1 -1
  4. package/calendar/lib/calendar.component.d.ts +1 -1
  5. package/circular-progress/lib/circular-progress.component.d.ts +21 -57
  6. package/color-box/lib/color-box.component.d.ts +1 -1
  7. package/conversation/lib/conversation-input/conversation-input.component.d.ts +1 -1
  8. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +28 -0
  9. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +20 -0
  10. package/data-pager/lib/data-pager.component.d.ts +111 -0
  11. package/data-table/lib/columns/data-text-column.component.d.ts +58 -0
  12. package/data-table/lib/columns/row-command-column.component.d.ts +83 -0
  13. package/data-table/lib/columns/row-index-column.component.d.ts +51 -0
  14. package/data-table/lib/columns/row-select-column.component.d.ts +47 -0
  15. package/data-table/lib/data-table/data-table.component.d.ts +200 -0
  16. package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +185 -0
  17. package/datetime-box/lib/datetime-box.component.d.ts +60 -2
  18. package/datetime-input/lib/datetime-input.component.d.ts +133 -0
  19. package/datetime-picker/lib/datetime-picker.component.d.ts +96 -1
  20. package/decorators/lib/components/clear-button.component.d.ts +25 -0
  21. package/decorators/lib/components/close-button.component.d.ts +22 -0
  22. package/decorators/lib/components/generic-content.component.d.ts +4 -0
  23. package/decorators/lib/components/icon.component.d.ts +12 -0
  24. package/dialog/lib/dialog.component.d.ts +20 -0
  25. package/drawer/lib/drawer-container.component.d.ts +7 -0
  26. package/drawer/lib/drawer.component.d.ts +104 -0
  27. package/dropdown/lib/dropdown-box.component.d.ts +66 -0
  28. package/dropdown/lib/dropdown-panel.component.d.ts +85 -0
  29. package/dropdown-button/lib/dropdown-button.component.d.ts +38 -0
  30. package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
  31. package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
  32. package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
  33. package/esm2022/alert/lib/alert.component.mjs +3 -3
  34. package/esm2022/alert/lib/alert.module.mjs +4 -4
  35. package/esm2022/audio-wave/lib/audio-wave.component.mjs +9 -4
  36. package/esm2022/audio-wave/lib/audio-wave.module.mjs +4 -4
  37. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  38. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  39. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  40. package/esm2022/badge/lib/badge.component.mjs +3 -3
  41. package/esm2022/badge/lib/badge.module.mjs +4 -4
  42. package/esm2022/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.mjs +3 -3
  43. package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +3 -3
  44. package/esm2022/bottom-navigation/lib/bottom-navigation.module.mjs +4 -4
  45. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  46. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  47. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  48. package/esm2022/button/lib/button-item-list.component.mjs +3 -3
  49. package/esm2022/button/lib/button-item.component.mjs +3 -3
  50. package/esm2022/button/lib/button.component.mjs +3 -3
  51. package/esm2022/button/lib/button.module.mjs +4 -4
  52. package/esm2022/button-group/lib/button-group.component.mjs +9 -6
  53. package/esm2022/button-group/lib/button-group.module.mjs +4 -4
  54. package/esm2022/calendar/lib/calendar-range.component.mjs +3 -3
  55. package/esm2022/calendar/lib/calendar.class.mjs +3 -3
  56. package/esm2022/calendar/lib/calendar.component.mjs +3 -3
  57. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  58. package/esm2022/check-box/lib/check-box.component.mjs +3 -3
  59. package/esm2022/check-box/lib/check-box.module.mjs +4 -4
  60. package/esm2022/chips/lib/chips.component.mjs +3 -3
  61. package/esm2022/chips/lib/chips.module.mjs +4 -4
  62. package/esm2022/circular-progress/lib/circular-progress.component.mjs +46 -115
  63. package/esm2022/circular-progress/lib/circular-progress.module.mjs +4 -4
  64. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  65. package/esm2022/collapse/lib/collapse.component.mjs +3 -3
  66. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  67. package/esm2022/color-box/lib/color-box.component.mjs +3 -3
  68. package/esm2022/color-box/lib/color-box.module.mjs +4 -4
  69. package/esm2022/color-palette/lib/color-palette-input.component.mjs +3 -3
  70. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +4 -4
  71. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +3 -3
  72. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +3 -3
  73. package/esm2022/color-palette/lib/color-palette.class.mjs +6 -6
  74. package/esm2022/color-palette/lib/color-palette.component.mjs +3 -3
  75. package/esm2022/color-palette/lib/color-palette.module.mjs +4 -4
  76. package/esm2022/comment/lib/comment-container/comment-container.component.mjs +3 -3
  77. package/esm2022/comment/lib/comment-item/comment-item.component.mjs +3 -3
  78. package/esm2022/comment/lib/comment-like/comment-like.component.mjs +3 -3
  79. package/esm2022/comment/lib/comment-reply/comment-reply.component.mjs +3 -3
  80. package/esm2022/comment/lib/comment-reply-text/comment-reply-text.component.mjs +3 -3
  81. package/esm2022/comment/lib/comment-view/comment-view.component.mjs +3 -3
  82. package/esm2022/comment/lib/comment.module.mjs +4 -4
  83. package/esm2022/comment/lib/services/comment.service.mjs +3 -3
  84. package/esm2022/common/lib/classes/components.class.mjs +21 -21
  85. package/esm2022/common/lib/common.module.mjs +4 -4
  86. package/esm2022/common/lib/components/base-component.class.mjs +3 -3
  87. package/esm2022/common/lib/components/input-base-value-component.class.mjs +3 -3
  88. package/esm2022/common/lib/components/look-component.class.mjs +3 -3
  89. package/esm2022/common/lib/components/selection-base.component.class.mjs +6 -6
  90. package/esm2022/common/lib/components/value-component.class.mjs +3 -3
  91. package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
  92. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +3 -3
  93. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  94. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  95. package/esm2022/common/lib/directives/inverted-color.directive.mjs +3 -3
  96. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  97. package/esm2022/common/lib/directives/ripple.directive.mjs +3 -3
  98. package/esm2022/common/lib/services/dom.service.mjs +3 -3
  99. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  100. package/esm2022/conversation/lib/conversation-container/conversation-container.component.mjs +3 -3
  101. package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +3 -3
  102. package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +3 -3
  103. package/esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.mjs +3 -3
  104. package/esm2022/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.mjs +3 -3
  105. package/esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.mjs +3 -3
  106. package/esm2022/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.mjs +3 -3
  107. package/esm2022/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.mjs +3 -3
  108. package/esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.mjs +3 -3
  109. package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +3 -3
  110. package/esm2022/conversation/lib/conversation-view/conversation-view.component.mjs +3 -3
  111. package/esm2022/conversation/lib/conversation.module.mjs +4 -4
  112. package/esm2022/conversation/lib/conversation.types.mjs +3 -3
  113. package/esm2022/conversation/lib/services/conversation-message-type-registry.service.mjs +3 -3
  114. package/esm2022/conversation/lib/services/conversation.service.mjs +3 -3
  115. package/esm2022/conversation/lib/services/recording.service.mjs +3 -3
  116. package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
  117. package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
  118. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
  119. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +3 -3
  120. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +3 -3
  121. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +26 -4
  122. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +21 -4
  123. package/esm2022/data-pager/lib/data-pager.component.mjs +112 -4
  124. package/esm2022/data-pager/lib/data-pager.module.mjs +4 -4
  125. package/esm2022/data-table/lib/base-data-table.class.mjs +3 -3
  126. package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +3 -3
  127. package/esm2022/data-table/lib/columns/data-table-column.mjs +3 -3
  128. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +35 -4
  129. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +69 -7
  130. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +43 -4
  131. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +42 -4
  132. package/esm2022/data-table/lib/data-table/data-table.component.mjs +187 -5
  133. package/esm2022/data-table/lib/data-table.module.mjs +4 -4
  134. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +162 -4
  135. package/esm2022/datetime-box/lib/datetime-box.component.mjs +54 -5
  136. package/esm2022/datetime-box/lib/datetime-box.module.mjs +4 -4
  137. package/esm2022/datetime-input/lib/datetime-input.component.mjs +125 -4
  138. package/esm2022/datetime-input/lib/datetime-input.module.mjs +4 -4
  139. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +93 -4
  140. package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +4 -4
  141. package/esm2022/decorators/lib/components/clear-button.component.mjs +29 -4
  142. package/esm2022/decorators/lib/components/close-button.component.mjs +26 -4
  143. package/esm2022/decorators/lib/components/generic-content.component.mjs +8 -4
  144. package/esm2022/decorators/lib/components/icon.component.mjs +16 -4
  145. package/esm2022/decorators/lib/decorators.module.mjs +4 -4
  146. package/esm2022/dialog/lib/dialog.component.mjs +22 -5
  147. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  148. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  149. package/esm2022/drawer/lib/drawer-container.component.mjs +11 -4
  150. package/esm2022/drawer/lib/drawer.component.mjs +105 -4
  151. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  152. package/esm2022/dropdown/lib/dropdown-box.class.mjs +3 -3
  153. package/esm2022/dropdown/lib/dropdown-box.component.mjs +61 -4
  154. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +80 -4
  155. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  156. package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +39 -4
  157. package/esm2022/dropdown-button/lib/dropdown-button.module.mjs +4 -4
  158. package/esm2022/form/lib/form-field.component.mjs +43 -4
  159. package/esm2022/form/lib/form.component.mjs +62 -4
  160. package/esm2022/form/lib/form.module.mjs +4 -4
  161. package/esm2022/form/lib/validation-rule.directive.mjs +3 -3
  162. package/esm2022/form/lib/validation-summary.component.mjs +44 -4
  163. package/esm2022/image/lib/image.component.mjs +50 -4
  164. package/esm2022/image/lib/image.module.mjs +4 -4
  165. package/esm2022/label/lib/label.component.mjs +35 -4
  166. package/esm2022/label/lib/label.module.mjs +4 -4
  167. package/esm2022/list/lib/list.component.mjs +87 -4
  168. package/esm2022/list/lib/list.module.mjs +4 -4
  169. package/esm2022/loading/lib/loading-spinner.component.mjs +20 -4
  170. package/esm2022/loading/lib/loading.component.mjs +30 -4
  171. package/esm2022/loading/lib/loading.directive.mjs +3 -3
  172. package/esm2022/loading/lib/loading.module.mjs +4 -4
  173. package/esm2022/loading/lib/loading.service.mjs +3 -3
  174. package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +42 -5
  175. package/esm2022/loading-dialog/lib/loading-dialog.module.mjs +4 -4
  176. package/esm2022/loading-dialog/lib/loading-dialog.service.mjs +3 -3
  177. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +50 -4
  178. package/esm2022/menu/lib/menu.component.mjs +10 -4
  179. package/esm2022/menu/lib/menu.module.mjs +4 -4
  180. package/esm2022/menu/lib/menu.service.mjs +3 -3
  181. package/esm2022/nav/lib/nav-item/nav-item.component.mjs +26 -4
  182. package/esm2022/nav/lib/nav.component.mjs +8 -4
  183. package/esm2022/nav/lib/nav.module.mjs +4 -4
  184. package/esm2022/navbar/lib/navbar.component.mjs +9 -4
  185. package/esm2022/navbar/lib/navbar.module.mjs +4 -4
  186. package/esm2022/notification/lib/notification.component.mjs +13 -4
  187. package/esm2022/notification/lib/notification.module.mjs +4 -4
  188. package/esm2022/notification/lib/notification.service.mjs +3 -3
  189. package/esm2022/number-box/lib/number-box.component.mjs +77 -8
  190. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  191. package/esm2022/otp/lib/otp.component.mjs +38 -4
  192. package/esm2022/otp/lib/otp.module.mjs +4 -4
  193. package/esm2022/page/lib/base-page.class.mjs +3 -3
  194. package/esm2022/page/lib/page.component.mjs +18 -4
  195. package/esm2022/page/lib/page.module.mjs +4 -4
  196. package/esm2022/paint/acorex-components-paint.mjs +5 -0
  197. package/esm2022/paint/index.mjs +8 -0
  198. package/esm2022/paint/lib/paint/paint-container/paint-container.component.mjs +38 -0
  199. package/esm2022/paint/lib/paint/paint-toolbar/paint-toolbar.component.mjs +15 -0
  200. package/esm2022/paint/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.mjs +46 -0
  201. package/esm2022/paint/lib/paint/paint-tools/paint-pen-cap/paint-pen-cap.component.mjs +37 -0
  202. package/esm2022/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.mjs +55 -0
  203. package/esm2022/paint/lib/paint/paint-view/paint-view.component.mjs +104 -0
  204. package/esm2022/paint/lib/paint/paint.service.mjs +17 -0
  205. package/esm2022/paint/lib/paint.module.mjs +50 -0
  206. package/esm2022/password-box/lib/password-box.component.mjs +13 -4
  207. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  208. package/esm2022/phone-box/lib/phone-box.component.mjs +38 -4
  209. package/esm2022/phone-box/lib/phone-box.module.mjs +4 -4
  210. package/esm2022/picker/lib/picker-column.directive.mjs +3 -3
  211. package/esm2022/picker/lib/picker.component.mjs +29 -4
  212. package/esm2022/picker/lib/picker.module.mjs +4 -4
  213. package/esm2022/popover/lib/popover.component.mjs +118 -4
  214. package/esm2022/popover/lib/popover.module.mjs +4 -4
  215. package/esm2022/popup/lib/popup.component.mjs +34 -9
  216. package/esm2022/popup/lib/popup.module.mjs +4 -4
  217. package/esm2022/popup/lib/popup.service.mjs +3 -3
  218. package/esm2022/progress-bar/lib/progress-bar.component.mjs +33 -4
  219. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  220. package/esm2022/radio/lib/radio.component.mjs +8 -5
  221. package/esm2022/radio/lib/radio.module.mjs +4 -4
  222. package/esm2022/range-slider/lib/range-slider.component.mjs +8 -4
  223. package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
  224. package/esm2022/result/lib/result.component.mjs +18 -4
  225. package/esm2022/result/lib/result.module.mjs +4 -4
  226. package/esm2022/routing-progress/lib/routing-progress.component.mjs +19 -4
  227. package/esm2022/routing-progress/lib/routing-progress.module.mjs +4 -4
  228. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +3 -3
  229. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +3 -3
  230. package/esm2022/scheduler/lib/scheduler.component.mjs +6 -4
  231. package/esm2022/scheduler/lib/scheduler.module.mjs +4 -4
  232. package/esm2022/scss/lib/scss.module.mjs +4 -4
  233. package/esm2022/search-box/lib/search-box.component.mjs +3 -3
  234. package/esm2022/search-box/lib/search-box.module.mjs +4 -4
  235. package/esm2022/select-box/lib/select-box.component.mjs +5 -5
  236. package/esm2022/select-box/lib/select-box.module.mjs +4 -4
  237. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  238. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
  239. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +3 -3
  240. package/esm2022/side-menu/lib/side-menu.component.mjs +3 -3
  241. package/esm2022/side-menu/lib/side-menu.module.mjs +4 -4
  242. package/esm2022/skeleton/lib/skeleton.component.mjs +3 -3
  243. package/esm2022/skeleton/lib/skeleton.module.mjs +4 -4
  244. package/esm2022/slider/lib/slider.component.mjs +3 -3
  245. package/esm2022/slider/lib/slider.module.mjs +4 -4
  246. package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +3 -3
  247. package/esm2022/step-wizard/lib/step-wizard.component.mjs +17 -4
  248. package/esm2022/step-wizard/lib/step-wizard.directive.mjs +3 -3
  249. package/esm2022/step-wizard/lib/step-wizard.module.mjs +4 -4
  250. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  251. package/esm2022/switch/lib/switch.component.mjs +3 -3
  252. package/esm2022/switch/lib/switch.module.mjs +4 -4
  253. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  254. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  255. package/esm2022/tabs/lib/tabs.component.mjs +3 -3
  256. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  257. package/esm2022/tag/lib/tag.component.mjs +8 -4
  258. package/esm2022/tag/lib/tag.module.mjs +4 -4
  259. package/esm2022/text-area/lib/text-area.component.mjs +8 -4
  260. package/esm2022/text-area/lib/text-area.module.mjs +4 -4
  261. package/esm2022/text-box/lib/mask-options.directive.mjs +3 -3
  262. package/esm2022/text-box/lib/text-box.component.mjs +3 -3
  263. package/esm2022/text-box/lib/text-box.module.mjs +4 -4
  264. package/esm2022/toast/lib/toast.component.mjs +3 -3
  265. package/esm2022/toast/lib/toast.module.mjs +4 -4
  266. package/esm2022/toast/lib/toast.service.mjs +3 -3
  267. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  268. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  269. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  270. package/esm2022/uploader/index.mjs +5 -5
  271. package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +3 -3
  272. package/esm2022/uploader/lib/{uploader-dialog-container.component.mjs → uploader-dialog-container/uploader-dialog-container.component.mjs} +5 -5
  273. package/esm2022/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.mjs +27 -0
  274. package/esm2022/uploader/lib/uploader-list/uploader-list.component.mjs +24 -0
  275. package/esm2022/uploader/lib/uploader-zone.directive.mjs +26 -19
  276. package/esm2022/uploader/lib/uploader.models.mjs +26 -11
  277. package/esm2022/uploader/lib/uploader.module.mjs +22 -17
  278. package/esm2022/uploader/lib/uploader.service.mjs +54 -25
  279. package/esm2022/wysiwyg/index.mjs +7 -1
  280. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +56 -24
  281. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +7 -267
  282. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.mjs +59 -0
  283. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.mjs +53 -0
  284. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.mjs +156 -0
  285. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.mjs +36 -0
  286. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.mjs +49 -0
  287. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.mjs +67 -0
  288. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.mjs +9 -8
  289. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg.service.mjs +4 -5
  290. package/esm2022/wysiwyg/lib/wysiwyg.module.mjs +38 -6
  291. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  292. package/fesm2022/acorex-components-alert.mjs +7 -7
  293. package/fesm2022/acorex-components-audio-wave.mjs +12 -7
  294. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  295. package/fesm2022/acorex-components-avatar.mjs +10 -10
  296. package/fesm2022/acorex-components-badge.mjs +7 -7
  297. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  298. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  299. package/fesm2022/acorex-components-button-group.mjs +12 -9
  300. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  301. package/fesm2022/acorex-components-button.mjs +13 -13
  302. package/fesm2022/acorex-components-calendar.mjs +13 -13
  303. package/fesm2022/acorex-components-check-box.mjs +7 -7
  304. package/fesm2022/acorex-components-chips.mjs +7 -7
  305. package/fesm2022/acorex-components-circular-progress.mjs +49 -118
  306. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  307. package/fesm2022/acorex-components-collapse.mjs +10 -10
  308. package/fesm2022/acorex-components-color-box.mjs +7 -7
  309. package/fesm2022/acorex-components-color-palette.mjs +26 -26
  310. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  311. package/fesm2022/acorex-components-comment.mjs +25 -25
  312. package/fesm2022/acorex-components-common.mjs +70 -70
  313. package/fesm2022/acorex-components-conversation.mjs +49 -49
  314. package/fesm2022/acorex-components-data-pager.mjs +178 -31
  315. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  316. package/fesm2022/acorex-components-data-table.mjs +545 -35
  317. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  318. package/fesm2022/acorex-components-datetime-box.mjs +57 -8
  319. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  320. package/fesm2022/acorex-components-datetime-input.mjs +128 -7
  321. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  322. package/fesm2022/acorex-components-datetime-picker.mjs +96 -7
  323. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  324. package/fesm2022/acorex-components-decorators.mjs +79 -16
  325. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  326. package/fesm2022/acorex-components-dialog.mjs +28 -11
  327. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  328. package/fesm2022/acorex-components-drawer.mjs +118 -10
  329. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  330. package/fesm2022/acorex-components-dropdown-button.mjs +42 -7
  331. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  332. package/fesm2022/acorex-components-dropdown.mjs +146 -13
  333. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  334. package/fesm2022/acorex-components-form.mjs +153 -16
  335. package/fesm2022/acorex-components-form.mjs.map +1 -1
  336. package/fesm2022/acorex-components-image.mjs +53 -7
  337. package/fesm2022/acorex-components-image.mjs.map +1 -1
  338. package/fesm2022/acorex-components-label.mjs +38 -7
  339. package/fesm2022/acorex-components-label.mjs.map +1 -1
  340. package/fesm2022/acorex-components-list.mjs +90 -7
  341. package/fesm2022/acorex-components-list.mjs.map +1 -1
  342. package/fesm2022/acorex-components-loading-dialog.mjs +48 -11
  343. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  344. package/fesm2022/acorex-components-loading.mjs +58 -16
  345. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  346. package/fesm2022/acorex-components-menu.mjs +65 -13
  347. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  348. package/fesm2022/acorex-components-nav.mjs +36 -10
  349. package/fesm2022/acorex-components-nav.mjs.map +1 -1
  350. package/fesm2022/acorex-components-navbar.mjs +12 -7
  351. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  352. package/fesm2022/acorex-components-notification.mjs +19 -10
  353. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  354. package/fesm2022/acorex-components-number-box.mjs +80 -11
  355. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  356. package/fesm2022/acorex-components-otp.mjs +41 -7
  357. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  358. package/fesm2022/acorex-components-page.mjs +24 -10
  359. package/fesm2022/acorex-components-page.mjs.map +1 -1
  360. package/fesm2022/acorex-components-paint.mjs +336 -0
  361. package/fesm2022/acorex-components-paint.mjs.map +1 -0
  362. package/fesm2022/acorex-components-password-box.mjs +16 -7
  363. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  364. package/fesm2022/acorex-components-phone-box.mjs +41 -7
  365. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  366. package/fesm2022/acorex-components-picker.mjs +35 -10
  367. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  368. package/fesm2022/acorex-components-popover.mjs +121 -7
  369. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  370. package/fesm2022/acorex-components-popup.mjs +40 -15
  371. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  372. package/fesm2022/acorex-components-progress-bar.mjs +36 -7
  373. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  374. package/fesm2022/acorex-components-radio.mjs +11 -8
  375. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  376. package/fesm2022/acorex-components-range-slider.mjs +11 -7
  377. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  378. package/fesm2022/acorex-components-result.mjs +21 -7
  379. package/fesm2022/acorex-components-result.mjs.map +1 -1
  380. package/fesm2022/acorex-components-routing-progress.mjs +22 -7
  381. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  382. package/fesm2022/acorex-components-scheduler.mjs +15 -13
  383. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  384. package/fesm2022/acorex-components-scss.mjs +4 -4
  385. package/fesm2022/acorex-components-search-box.mjs +7 -7
  386. package/fesm2022/acorex-components-select-box.mjs +8 -8
  387. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  388. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  389. package/fesm2022/acorex-components-side-menu.mjs +10 -10
  390. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  391. package/fesm2022/acorex-components-slider.mjs +7 -7
  392. package/fesm2022/acorex-components-step-wizard.mjs +26 -13
  393. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  394. package/fesm2022/acorex-components-switch.mjs +10 -10
  395. package/fesm2022/acorex-components-tabs.mjs +13 -13
  396. package/fesm2022/acorex-components-tag.mjs +11 -7
  397. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  398. package/fesm2022/acorex-components-text-area.mjs +11 -7
  399. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  400. package/fesm2022/acorex-components-text-box.mjs +10 -10
  401. package/fesm2022/acorex-components-toast.mjs +10 -10
  402. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  403. package/fesm2022/acorex-components-uploader.mjs +141 -82
  404. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  405. package/fesm2022/acorex-components-wysiwyg.mjs +365 -178
  406. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  407. package/form/lib/form-field.component.d.ts +45 -0
  408. package/form/lib/form.component.d.ts +58 -0
  409. package/form/lib/validation-summary.component.d.ts +49 -0
  410. package/image/lib/image.component.d.ts +61 -0
  411. package/label/lib/label.component.d.ts +34 -0
  412. package/list/lib/list.component.d.ts +98 -0
  413. package/loading/lib/loading-spinner.component.d.ts +20 -0
  414. package/loading/lib/loading.component.d.ts +35 -0
  415. package/loading-dialog/lib/loading-dialog.component.d.ts +39 -1
  416. package/menu/lib/menu-item/menu-item.component.d.ts +52 -0
  417. package/menu/lib/menu.component.d.ts +7 -0
  418. package/nav/lib/nav-item/nav-item.component.d.ts +22 -0
  419. package/nav/lib/nav.component.d.ts +4 -0
  420. package/navbar/lib/navbar.component.d.ts +5 -0
  421. package/notification/lib/notification.component.d.ts +11 -0
  422. package/number-box/lib/number-box.component.d.ts +74 -1
  423. package/otp/lib/otp.component.d.ts +35 -1
  424. package/package.json +74 -68
  425. package/page/lib/page.component.d.ts +15 -0
  426. package/paint/README.md +3 -0
  427. package/paint/index.d.ts +7 -0
  428. package/paint/lib/paint/paint-container/paint-container.component.d.ts +16 -0
  429. package/paint/lib/paint/paint-toolbar/paint-toolbar.component.d.ts +9 -0
  430. package/paint/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.d.ts +27 -0
  431. package/paint/lib/paint/paint-tools/paint-pen-cap/paint-pen-cap.component.d.ts +20 -0
  432. package/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.d.ts +33 -0
  433. package/paint/lib/paint/paint-view/paint-view.component.d.ts +42 -0
  434. package/paint/lib/paint/paint.service.d.ts +10 -0
  435. package/paint/lib/paint.module.d.ts +19 -0
  436. package/password-box/lib/password-box.component.d.ts +14 -1
  437. package/phone-box/lib/phone-box.component.d.ts +39 -1
  438. package/picker/lib/picker.component.d.ts +29 -0
  439. package/popover/lib/popover.component.d.ts +129 -0
  440. package/popup/lib/popup.component.d.ts +39 -4
  441. package/progress-bar/lib/progress-bar.component.d.ts +30 -1
  442. package/radio/lib/radio.component.d.ts +7 -1
  443. package/range-slider/lib/range-slider.component.d.ts +4 -0
  444. package/result/lib/result.component.d.ts +14 -0
  445. package/routing-progress/lib/routing-progress.component.d.ts +16 -0
  446. package/scheduler/lib/scheduler.component.d.ts +2 -0
  447. package/search-box/lib/search-box.component.d.ts +1 -1
  448. package/select-box/lib/select-box.component.d.ts +1 -1
  449. package/slider/lib/slider.component.d.ts +1 -1
  450. package/step-wizard/lib/step-wizard.component.d.ts +13 -0
  451. package/switch/lib/switch.component.d.ts +1 -1
  452. package/tag/lib/tag.component.d.ts +4 -0
  453. package/text-area/lib/text-area.component.d.ts +6 -1
  454. package/text-box/lib/text-box.component.d.ts +1 -1
  455. package/uploader/index.d.ts +4 -4
  456. package/uploader/lib/{uploader-drop-zone.component.d.ts → uploader-drop-zone/uploader-drop-zone.component.d.ts} +3 -1
  457. package/uploader/lib/{uploader-list.component.d.ts → uploader-list/uploader-list.component.d.ts} +2 -3
  458. package/uploader/lib/uploader-zone.directive.d.ts +1 -0
  459. package/uploader/lib/uploader.models.d.ts +14 -4
  460. package/uploader/lib/uploader.module.d.ts +4 -4
  461. package/uploader/lib/uploader.service.d.ts +6 -1
  462. package/wysiwyg/index.d.ts +6 -0
  463. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +20 -15
  464. package/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.d.ts +1 -100
  465. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.d.ts +31 -0
  466. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.d.ts +35 -0
  467. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.d.ts +37 -0
  468. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.d.ts +21 -0
  469. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.d.ts +35 -0
  470. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.d.ts +23 -0
  471. package/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.d.ts +3 -1
  472. package/wysiwyg/lib/wysiwyg/wysiwyg.service.d.ts +0 -1
  473. package/wysiwyg/lib/wysiwyg.module.d.ts +14 -8
  474. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +0 -18
  475. package/esm2022/uploader/lib/uploader-list.component.mjs +0 -26
  476. /package/uploader/lib/{uploader-dialog-container.component.d.ts → uploader-dialog-container/uploader-dialog-container.component.d.ts} +0 -0
@@ -16,11 +16,13 @@ import * as i2 from "angular-imask";
16
16
  export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
17
17
  constructor() {
18
18
  super(...arguments);
19
+ /** @ignore */
19
20
  this._padDecimalZeros = false;
20
21
  /**
21
22
  * Specifies the value that is used to increment or decrement the **Integer** part of number
22
23
  */
23
24
  this.step = 1;
25
+ /** @ignore */
24
26
  this._decimals = 0;
25
27
  /**
26
28
  * Specifies the value that is used to increment or decrement the **Deciaml** part of number
@@ -30,7 +32,9 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
30
32
  * Specifies whether the Up and Down spin buttons will be rendered or not
31
33
  */
32
34
  this.showSpinButtons = true;
35
+ /** @ignore */
33
36
  this._minValue = Number.MIN_SAFE_INTEGER;
37
+ /** @ignore */
34
38
  this._maxValue = Number.MAX_SAFE_INTEGER;
35
39
  }
36
40
  /**
@@ -39,6 +43,10 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
39
43
  get thousandsSeparator() {
40
44
  return this._thousandsSeparator;
41
45
  }
46
+ /**
47
+ * Sets the thousands separator for formatting.
48
+ * @param {string} v
49
+ */
42
50
  set thousandsSeparator(v) {
43
51
  this.setOption({
44
52
  name: 'thousandsSeparator',
@@ -51,6 +59,10 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
51
59
  get padDecimalZeros() {
52
60
  return this._padDecimalZeros;
53
61
  }
62
+ /**
63
+ * Sets whether decimal zeros should be padded.
64
+ * @param {boolean} v
65
+ */
54
66
  set padDecimalZeros(v) {
55
67
  this.setOption({
56
68
  name: 'padDecimalZeros',
@@ -63,6 +75,9 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
63
75
  get decimals() {
64
76
  return this._decimals;
65
77
  }
78
+ /**
79
+ * Sets the decimal places; defaults to 0 if not provided.
80
+ */
66
81
  set decimals(v) {
67
82
  this.setOption({
68
83
  name: 'decimals',
@@ -75,6 +90,11 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
75
90
  get minValue() {
76
91
  return this._minValue;
77
92
  }
93
+ /**
94
+ * Sets the number of decimal places to be used.
95
+ * @param {number} v
96
+ * @defaultvalue 0
97
+ */
78
98
  set minValue(v) {
79
99
  this.setOption({
80
100
  name: 'minValue',
@@ -87,22 +107,37 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
87
107
  get maxValue() {
88
108
  return this._maxValue;
89
109
  }
110
+ /**
111
+ * Sets the maximum allowable value, defaulting to `Number.MAX_SAFE_INTEGER` if null.
112
+ * @param v
113
+ */
90
114
  set maxValue(v) {
91
115
  this.setOption({
92
116
  name: 'maxValue',
93
117
  value: v != null ? Number(v) : Number.MAX_SAFE_INTEGER,
94
118
  });
95
119
  }
120
+ /** @ignore */
96
121
  ngAfterViewInit() {
97
122
  this._updateMask();
98
123
  }
124
+ /**
125
+ * Handles internal option changes and updates the mask accordingly.
126
+ */
99
127
  internalOptionChanged() {
100
128
  this._updateMask();
101
129
  }
130
+ /**
131
+ * Resets the input element to its default state and calls the parent class reset method.
132
+ */
102
133
  reset() {
103
134
  this.input.nativeElement.value = null;
104
135
  super.reset(true);
105
136
  }
137
+ /**
138
+ * Ensures the value is within the min-max range, returning the default if null.
139
+ * @param value
140
+ */
106
141
  internalSetValue(value) {
107
142
  // || (value == 0 && !this._maskObj.value)
108
143
  if (value == null) {
@@ -115,6 +150,7 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
115
150
  return this.maxValue;
116
151
  return v;
117
152
  }
153
+ /** @ignore */
118
154
  _updateMask() {
119
155
  if (!this._maskObj) {
120
156
  this._maskObj = createMask({
@@ -148,12 +184,14 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
148
184
  this._maskDirective?.maskRef?.updateValue();
149
185
  this._maskDirective?.maskRef?.updateControl();
150
186
  }
187
+ /** @ignore */
151
188
  _handleModelChange(value) {
152
189
  if (value == 0 && isEmpty(this.input?.nativeElement?.value)) {
153
190
  value = null;
154
191
  }
155
192
  this.commitValue(value, true);
156
193
  }
194
+ /** @ignore */
157
195
  _handleOnKeydownEvent(e) {
158
196
  if (this.disabled || this.readonly)
159
197
  return;
@@ -179,37 +217,50 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
179
217
  }
180
218
  super.emitOnKeydownEvent(e);
181
219
  }
220
+ /** @ignore */
182
221
  _handleUpDownClick(v) {
183
222
  if (this.disabled || this.readonly)
184
223
  return;
185
224
  v == 1 ? this.stepUp(true) : this.stepDown(true);
186
225
  }
226
+ /**
227
+ * Increases the value by the step amount, ensuring it's at least the minimum value.
228
+ */
187
229
  stepUp(u = false) {
188
230
  if (!this.value) {
189
231
  this.commitValue(Math.max(this.minValue, 0), u);
190
232
  }
191
233
  this.commitValue(this.value + toNumber(this.step), u);
192
234
  }
235
+ /**
236
+ * Decreases the value by the step amount, ensuring it's at least the minimum value.
237
+ */
193
238
  stepDown(u = false) {
194
239
  if (!this.value) {
195
240
  this.commitValue(Math.max(this.minValue, 0), u);
196
241
  }
197
242
  this.commitValue(this.value - toNumber(this.step), u);
198
243
  }
244
+ /**
245
+ * Increases the value by the decimal step amount, using 'auto' or a custom step value.
246
+ */
199
247
  decimalStepUp(u = false) {
200
248
  if (!this.value) {
201
249
  this.commitValue(Math.max(this.minValue, 0), u);
202
250
  }
203
251
  this.commitValue(this.value + toNumber(this.decimalStep == 'auto' ? 1 / Math.pow(10, this.decimals) : this.decimalStep), u);
204
252
  }
253
+ /**
254
+ * Decreases the value by the decimal step amount, using 'auto' or a custom step value.
255
+ */
205
256
  decimalStepDown(u = false) {
206
257
  if (!this.value) {
207
258
  this.commitValue(Math.max(this.minValue, 0), u);
208
259
  }
209
260
  this.commitValue(this.value - toNumber(this.decimalStep == 'auto' ? 1 / Math.pow(10, this.decimals) : this.decimalStep), u);
210
261
  }
211
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXNumberBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
212
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", look: "look", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue", classNames: ["class", "classNames"] }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, providers: [
262
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXNumberBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
263
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", look: "look", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue", classNames: ["class", "classNames"] }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, providers: [
213
264
  { provide: AXComponent, useExisting: AXNumberBoxComponent },
214
265
  { provide: AXFocusableComponent, useExisting: AXNumberBoxComponent },
215
266
  { provide: AXClearableComponent, useExisting: AXNumberBoxComponent },
@@ -221,7 +272,7 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
221
272
  },
222
273
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-editor-container ax-look-{{look}} {{classNames}}\" [class.ax-state-disabled]=\"disabled\">\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input #input class=\"ax-input\" type=\"text\" [id]=\"id\" [name]=\"name\" [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\" [imask]=\"_maskObj\" [unmask]=\"'typed'\" [attr.min]=\"minValue\" [attr.max]=\"maxValue\"\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"value\" (ngModelChange)=\"_handleModelChange($event)\"\n (keydown)=\"_handleOnKeydownEvent($event)\" (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\" (focus)=\"emitOnFocusEvent($event)\" (blur)=\"emitOnBlurEvent($event)\" />\n @if(input.value && !disabled && !readonly){\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if(showSpinButtons){\n <div class=\"ax-number-box-control\">\n <button type=\"button\" class=\"ax-general-button ax-button-icon\" [class.ax-state-disabled]=\"disabled\"\n (click)=\"_handleUpDownClick(1)\" tabindex=\"-1\" [disabled]=\"disabled\"><span\n class=\"ax-icon ax-icon-chevron-up ax-arrow-button \"></span></button>\n <button type=\"button\" class=\"ax-general-button ax-button-icon\" [class.ax-state-disabled]=\"disabled\"\n (click)=\"_handleUpDownClick(-1)\" [disabled]=\"disabled\"><span\n class=\"ax-icon ax-icon-chevron-down ax-arrow-button \"></span></button>\n </div>\n\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>", styles: [".ax-number-box-control{display:flex;flex-direction:column}.ax-number-box-control button,.ax-number-box-control button .ax-icon{height:fit-content!important}\n"], dependencies: [{ kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
223
274
  }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
225
276
  type: Component,
226
277
  args: [{ selector: 'ax-number-box', inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'], outputs: [
227
278
  'valueChange',
@@ -252,23 +303,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
252
303
  type: Input
253
304
  }], padDecimalZeros: [{
254
305
  type: Input
255
- }], step: [{
306
+ }],
307
+ /**
308
+ * Defines the increment step value.
309
+ */
310
+ step: [{
256
311
  type: Input
257
312
  }], decimals: [{
258
313
  type: Input
259
- }], decimalStep: [{
314
+ }],
315
+ /**
316
+ * Defines the step size for decimal values.
317
+ * @defaultvalue 'auto'
318
+ */
319
+ decimalStep: [{
260
320
  type: Input
261
- }], showSpinButtons: [{
321
+ }],
322
+ /**
323
+ * Indicates whether spin buttons are displayed.
324
+ * @defaultvalue true
325
+ */
326
+ showSpinButtons: [{
262
327
  type: Input
263
328
  }], minValue: [{
264
329
  type: Input
265
330
  }], maxValue: [{
266
331
  type: Input
267
- }], classNames: [{
332
+ }],
333
+ /**
334
+ * CSS classes to apply to the component.
335
+ */
336
+ classNames: [{
268
337
  type: Input,
269
338
  args: ['class']
270
339
  }], _maskDirective: [{
271
340
  type: ViewChild,
272
341
  args: [IMaskDirective]
273
342
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbnVtYmVyLWJveC9zcmMvbGliL251bWJlci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL251bWJlci1ib3gvc3JjL2xpYi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQUVuQzs7OztHQUlHO0FBaUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxPQUFPLENBQUMsQ0FBQSx5QkFBaUMsQ0FBQSxFQUFFLGVBQWUsQ0FBQztJQWhDckc7O1FBa0RVLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQWVqQzs7V0FFRztRQUVILFNBQUksR0FBRyxDQUFDLENBQUM7UUFFRCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBZXRCOztXQUVHO1FBRUgsZ0JBQVcsR0FB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LGlCQUFpQixDQUFDLElBQUksYUFFMUI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQzNELEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQ3BFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQ3BFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQ25FOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFHbUIsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQU9QLGtCQUFrQjtzQkFENUIsS0FBSztnQkFnQkssZUFBZTtzQkFEekIsS0FBSztnQkFlTixJQUFJO3NCQURILEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkFlTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZ0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBWU4sVUFBVTtzQkFEVCxLQUFLO3VCQUFDLE9BQU87Z0JBU04sY0FBYztzQkFEckIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hc2tEaXJlY3RpdmUgfSBmcm9tICdhbmd1bGFyLWltYXNrJztcbmltcG9ydCB7IE1hc2tlZE51bWJlciwgY3JlYXRlTWFzayB9IGZyb20gJ2ltYXNrJztcblxuaW1wb3J0IHtcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNFbXB0eSwgdG9OdW1iZXIgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcblxuLyoqXG4gKiBUaGUgTnVtYmVyQm94IGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbnVtYmVyLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtYmVyLWJveC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAncmVhZG9ubHknLCAndGFiSW5kZXgnLCAncGxhY2Vob2xkZXInLCAndmFsdWUnLCAnc3RhdGUnLCAnbmFtZScsICdpZCcsICdsb29rJ10sXG4gIG91dHB1dHM6IFtcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ3JlYWRvbmx5Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWRDaGFuZ2UnLFxuICAgICdvbktleURvd24nLFxuICAgICdvbktleVVwJyxcbiAgICAnb25LZXlQcmVzcycsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTnVtYmVyQm94Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWE51bWJlckJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE51bWJlckJveENvbXBvbmVudCBleHRlbmRzIGNsYXNzZXMoTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudDxudW1iZXI+LCBNWExvb2tDb21wb25lbnQpIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcHJpdmF0ZSBfdGhvdXNhbmRzU2VwYXJhdG9yOiBzdHJpbmc7XG4gIC8qKlxuICAgKiAgQSBjaGFyYWN0ZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHRob3VzYW5kc1NlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90aG91c2FuZHNTZXBhcmF0b3I7XG4gIH1cbiAgcHVibGljIHNldCB0aG91c2FuZHNTZXBhcmF0b3Iodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3Rob3VzYW5kc1NlcGFyYXRvcicsXG4gICAgICB2YWx1ZTogdiA/PyAnJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3BhZERlY2ltYWxaZXJvcyA9IGZhbHNlO1xuICAvKipcbiAgICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwYWREZWNpbWFsWmVyb3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZERlY2ltYWxaZXJvcztcbiAgfVxuICBwdWJsaWMgc2V0IHBhZERlY2ltYWxaZXJvcyh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3BhZERlY2ltYWxaZXJvcycsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipJbnRlZ2VyKiogcGFydCBvZiBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHN0ZXAgPSAxO1xuXG4gIHByaXZhdGUgX2RlY2ltYWxzID0gMDtcbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGF0IHRoZSB1c2VyIGNhbiBlbnRlclxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBkZWNpbWFscygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9kZWNpbWFscztcbiAgfVxuICBwdWJsaWMgc2V0IGRlY2ltYWxzKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdkZWNpbWFscycsXG4gICAgICB2YWx1ZTogdiA/PyAwLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgdGhlIHZhbHVlIHRoYXQgaXMgdXNlZCB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IHRoZSAqKkRlY2lhbWwqKiBwYXJ0IG9mIG51bWJlclxuICAgKi9cbiAgQElucHV0KClcbiAgZGVjaW1hbFN0ZXA6IG51bWJlciB8ICdhdXRvJyA9ICdhdXRvJztcblxuICAvKipcbiAgICogIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBVcCBhbmQgRG93biBzcGluIGJ1dHRvbnMgd2lsbCBiZSByZW5kZXJlZCBvciBub3RcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNob3dTcGluQnV0dG9ucyA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfbWluVmFsdWU6IG51bWJlciA9IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgc21hbGxlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtaW5WYWx1ZScsXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9tYXhWYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSBncmVhdGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgbWF4VmFsdWUodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ21heFZhbHVlJyxcbiAgICAgIHZhbHVlOiB2ICE9IG51bGwgPyBOdW1iZXIodikgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgnY2xhc3MnKVxuICBjbGFzc05hbWVzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBfbWFza09iajogTWFza2VkTnVtYmVyO1xuXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXG4gIHByaXZhdGUgX21hc2tEaXJlY3RpdmU6IElNYXNrRGlyZWN0aXZlPE1hc2tlZE51bWJlcj47XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZU1hc2soKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsT3B0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XG4gIH1cblxuICBvdmVycmlkZSByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICAgIHN1cGVyLnJlc2V0KHRydWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogYW55KTogbnVtYmVyIHtcbiAgICAvLyB8fCAodmFsdWUgPT0gMCAmJiAhdGhpcy5fbWFza09iai52YWx1ZSlcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCB2ID0gdG9OdW1iZXIodmFsdWUpO1xuICAgIGlmICh2IDwgdGhpcy5taW5WYWx1ZSkgcmV0dXJuIHRoaXMubWluVmFsdWU7XG4gICAgaWYgKHYgPiB0aGlzLm1heFZhbHVlKSByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZU1hc2soKSB7XG4gICAgaWYgKCF0aGlzLl9tYXNrT2JqKSB7XG4gICAgICB0aGlzLl9tYXNrT2JqID0gY3JlYXRlTWFzayh7XG4gICAgICAgIG1hc2s6IE51bWJlcixcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxuICAgICAgICByYWRpeDogJy4nLFxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX21hc2tPYmouZm9ybWF0ID0gKHY6IG51bWJlciwgbSkgPT4ge1xuICAgICAgICByZXR1cm4gIWlzTmFOKHYpXG4gICAgICAgICAgPyB2LnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcbiAgICAgICAgICAgICAgdXNlR3JvdXBpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIwLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6ICcnO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxuICAgICAgICByYWRpeDogJy4nLFxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZVZhbHVlKCk7XG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlQ29udHJvbCgpO1xuICB9XG5cbiAgX2hhbmRsZU1vZGVsQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPT0gMCAmJiBpc0VtcHR5KHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LnZhbHVlKSkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuY29tbWl0VmFsdWUodmFsdWUsIHRydWUpO1xuICB9XG5cbiAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9O1xuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCB2YWxTdHIgPSBpbnB1dC52YWx1ZTtcbiAgICBjb25zdCBkZWNpbWFsUG9pbnRJbmRleCA9IHZhbFN0ci5pbmRleE9mKCcuJyk7XG4gICAgY29uc3QgX2N1cnNvclBvcyA9IGlucHV0LnNlbGVjdGlvblN0YXJ0ITtcblxuICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgaWYgKGRlY2ltYWxQb2ludEluZGV4ID4gMCAmJiBfY3Vyc29yUG9zID4gZGVjaW1hbFBvaW50SW5kZXggJiYgdGhpcy5kZWNpbWFscyA+IDApIHtcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5kZWNpbWFsU3RlcERvd24odHJ1ZSkgOiB0aGlzLmRlY2ltYWxTdGVwVXAodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlLmtleSA9PT0gJ0Fycm93RG93bicgPyB0aGlzLnN0ZXBEb3duKHRydWUpIDogdGhpcy5zdGVwVXAodHJ1ZSk7XG4gICAgICB9XG4gICAgICBpZ25vcmUoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShfY3Vyc29yUG9zLCBfY3Vyc29yUG9zKTtcbiAgICAgIH0sIDUpO1xuICAgIH1cbiAgICBzdXBlci5lbWl0T25LZXlkb3duRXZlbnQoZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZVVwRG93bkNsaWNrKHY6IC0xIHwgMSkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHJldHVybjtcbiAgICB2ID09IDEgPyB0aGlzLnN0ZXBVcCh0cnVlKSA6IHRoaXMuc3RlcERvd24odHJ1ZSk7XG4gIH1cblxuICBzdGVwVXAodSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApLCB1KTtcbiAgICB9XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnZhbHVlICsgdG9OdW1iZXIodGhpcy5zdGVwKSwgdSk7XG4gIH1cblxuICBzdGVwRG93bih1ID0gZmFsc2UpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoTWF0aC5tYXgodGhpcy5taW5WYWx1ZSwgMCksIHUpO1xuICAgIH1cbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMudmFsdWUgLSB0b051bWJlcih0aGlzLnN0ZXApLCB1KTtcbiAgfVxuXG4gIGRlY2ltYWxTdGVwVXAodSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApLCB1KTtcbiAgICB9XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnZhbHVlICsgdG9OdW1iZXIodGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bycgPyAxIC8gTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbHMpIDogdGhpcy5kZWNpbWFsU3RlcCksIHUpO1xuICB9XG5cbiAgZGVjaW1hbFN0ZXBEb3duKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSAtIHRvTnVtYmVyKHRoaXMuZGVjaW1hbFN0ZXAgPT0gJ2F1dG8nID8gMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSA6IHRoaXMuZGVjaW1hbFN0ZXApLCB1KTtcbiAgfVxuXG4gIC8vIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAvLyBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgLy8gICByZXR1cm4gYGF4LWVkaXRvci1jb250YWluZXIgYXgtbG9vay0ke3RoaXMubG9va30gJHt0aGlzLmRpc2FibGVkID8gJ2F4LXN0YXRlLWRpc2FibGVkJyA6ICcnfWA7XG4gIC8vIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1lZGl0b3ItY29udGFpbmVyIGF4LWxvb2ste3tsb29rfX0ge3tjbGFzc05hbWVzfX1cIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbiAgPGlucHV0ICNpbnB1dCBjbGFzcz1cImF4LWlucHV0XCIgdHlwZT1cInRleHRcIiBbaWRdPVwiaWRcIiBbbmFtZV09XCJuYW1lXCIgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCInb2ZmJ1wiIFtpbWFza109XCJfbWFza09ialwiIFt1bm1hc2tdPVwiJ3R5cGVkJ1wiIFthdHRyLm1pbl09XCJtaW5WYWx1ZVwiIFthdHRyLm1heF09XCJtYXhWYWx1ZVwiXG4gICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCIgW2NsYXNzLmF4LXN0YXRlLXJlYWRvbmx5XT1cInJlYWRvbmx5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiBbbmdNb2RlbF09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIl9oYW5kbGVNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJfaGFuZGxlT25LZXlkb3duRXZlbnQoJGV2ZW50KVwiIChrZXl1cCk9XCJlbWl0T25LZXl1cEV2ZW50KCRldmVudClcIlxuICAgIChrZXlwcmVzcyk9XCJlbWl0T25LZXlwcmVzc0V2ZW50KCRldmVudClcIiAoZm9jdXMpPVwiZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgKGJsdXIpPVwiZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIiAvPlxuICBAaWYoaW5wdXQudmFsdWUgJiYgIWRpc2FibGVkICYmICFyZWFkb25seSl7XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWNsZWFyLWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgfVxuICBAaWYoc2hvd1NwaW5CdXR0b25zKXtcbiAgPGRpdiBjbGFzcz1cImF4LW51bWJlci1ib3gtY29udHJvbFwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygxKVwiIHRhYmluZGV4PVwiLTFcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48c3BhblxuICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLXVwIGF4LWFycm93LWJ1dHRvbiBcIj48L3NwYW4+PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKC0xKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjxzcGFuXG4gICAgICAgIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tZG93biBheC1hcnJvdy1idXR0b24gXCI+PC9zcGFuPjwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICB9XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+IDwvbmctY29udGVudD5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJheC1lcnJvci1jb250YWluZXJcIj48L2Rpdj4iXX0=
343
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbnVtYmVyLWJveC9zcmMvbGliL251bWJlci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL251bWJlci1ib3gvc3JjL2xpYi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQUVuQzs7OztHQUlHO0FBaUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxPQUFPLENBQUMsQ0FBQSx5QkFBaUMsQ0FBQSxFQUFFLGVBQWUsQ0FBQztJQWhDckc7O1FBZ0VFLGNBQWM7UUFDTixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUF5QmpDOztXQUVHO1FBTUgsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUVULGNBQWM7UUFDTixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBdUJ0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dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgeyBNYXNrZWROdW1iZXIsIGNyZWF0ZU1hc2sgfSBmcm9tICdpbWFzayc7XG5cbmltcG9ydCB7XG4gIEFYQ2xlYXJhYmxlQ29tcG9uZW50LFxuICBBWENvbXBvbmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQsXG4gIE1YTG9va0NvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzRW1wdHksIHRvTnVtYmVyIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5cbi8qKlxuICogVGhlIE51bWJlckJveCBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW51bWJlci1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci1ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ3RhYkluZGV4JywgJ3BsYWNlaG9sZGVyJywgJ3ZhbHVlJywgJ3N0YXRlJywgJ25hbWUnLCAnaWQnLCAnbG9vayddLFxuICBvdXRwdXRzOiBbXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcbiAgICAnc3RhdGVDaGFuZ2UnLFxuICAgICdvblZhbHVlQ2hhbmdlZCcsXG4gICAgJ29uQmx1cicsXG4gICAgJ29uRm9jdXMnLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgICAnb25LZXlEb3duJyxcbiAgICAnb25LZXlVcCcsXG4gICAgJ29uS2V5UHJlc3MnLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcblxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOdW1iZXJCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOdW1iZXJCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYQ2xlYXJhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOdW1iZXJCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhOdW1iZXJCb3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhOdW1iZXJCb3hDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8bnVtYmVyPiwgTVhMb29rQ29tcG9uZW50KSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfdGhvdXNhbmRzU2VwYXJhdG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBBIGNoYXJhY3RlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgc2VwYXJhdG9yIGNoYXJhY3Rlci5cbiAgICovXG4gIEBJbnB1dCgpXG5cbi8qKlxuICogR2V0cyB0aGUgdGhvdXNhbmRzIHNlcGFyYXRvciB1c2VkIGluIHRoZSBmb3JtYXR0aW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKi9cbiAgcHVibGljIGdldCB0aG91c2FuZHNTZXBhcmF0b3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yO1xuICB9XG5cbi8qKlxuICogU2V0cyB0aGUgdGhvdXNhbmRzIHNlcGFyYXRvciBmb3IgZm9ybWF0dGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2XG4gKi9cbiAgcHVibGljIHNldCB0aG91c2FuZHNTZXBhcmF0b3Iodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3Rob3VzYW5kc1NlcGFyYXRvcicsXG4gICAgICB2YWx1ZTogdiA/PyAnJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3BhZERlY2ltYWxaZXJvcyA9IGZhbHNlO1xuICAvKipcbiAgICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxuICAgKi9cbiAgQElucHV0KClcblxuLyoqXG4gKiBHZXRzIHdoZXRoZXIgZGVjaW1hbCB6ZXJvcyBhcmUgcGFkZGVkLlxuICogQHBhcmFtIHtib29sZWFufSB2YWx1ZVxuICovXG4gIHB1YmxpYyBnZXQgcGFkRGVjaW1hbFplcm9zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wYWREZWNpbWFsWmVyb3M7XG4gIH1cblxuLyoqXG4gKiBTZXRzIHdoZXRoZXIgZGVjaW1hbCB6ZXJvcyBzaG91bGQgYmUgcGFkZGVkLlxuICogQHBhcmFtIHtib29sZWFufSB2XG4gKi9cbiAgcHVibGljIHNldCBwYWREZWNpbWFsWmVyb3ModjogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdwYWREZWNpbWFsWmVyb3MnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgdmFsdWUgdGhhdCBpcyB1c2VkIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgdGhlICoqSW50ZWdlcioqIHBhcnQgb2YgbnVtYmVyXG4gICAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogRGVmaW5lcyB0aGUgaW5jcmVtZW50IHN0ZXAgdmFsdWUuXG4gKi9cbiAgc3RlcCA9IDE7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGVjaW1hbHMgPSAwO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoYXQgdGhlIHVzZXIgY2FuIGVudGVyXG4gICAqL1xuICBASW5wdXQoKVxuXG4vKipcbiAqIEdldHMgdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0byBiZSB1c2VkLlxuICovXG4gIHB1YmxpYyBnZXQgZGVjaW1hbHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGVjaW1hbHM7XG4gIH1cblxuLyoqXG4gKiBTZXRzIHRoZSBkZWNpbWFsIHBsYWNlczsgZGVmYXVsdHMgdG8gMCBpZiBub3QgcHJvdmlkZWQuXG4gKi9cbiAgcHVibGljIHNldCBkZWNpbWFscyh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnZGVjaW1hbHMnLFxuICAgICAgdmFsdWU6IHYgPz8gMCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipEZWNpYW1sKiogcGFydCBvZiBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG5cbi8qKlxuICogRGVmaW5lcyB0aGUgc3RlcCBzaXplIGZvciBkZWNpbWFsIHZhbHVlcy5cbiAqIEBkZWZhdWx0dmFsdWUgJ2F1dG8nXG4gKi9cbiAgZGVjaW1hbFN0ZXA6IG51bWJlciB8ICdhdXRvJyA9ICdhdXRvJztcblxuICAvKipcbiAgICogIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBVcCBhbmQgRG93biBzcGluIGJ1dHRvbnMgd2lsbCBiZSByZW5kZXJlZCBvciBub3RcbiAgICovXG4gIEBJbnB1dCgpXG5cbiAvKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHNwaW4gYnV0dG9ucyBhcmUgZGlzcGxheWVkLlxuICogQGRlZmF1bHR2YWx1ZSB0cnVlXG4gKi9cbiAgc2hvd1NwaW5CdXR0b25zID0gdHJ1ZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9taW5WYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXG4gICAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogR2V0cyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIHVzZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqL1xuICBwdWJsaWMgZ2V0IG1pblZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pblZhbHVlO1xuICB9XG5cbiAgLyoqXG4gKiBTZXRzIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gYmUgdXNlZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSB2XG4gKiBAZGVmYXVsdHZhbHVlIDBcbiAqL1xuICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtaW5WYWx1ZScsXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsXG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9tYXhWYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgdGhlIGdyZWF0ZXN0IHZhbHVlIHRoYXQgaXMgdmFsaWRcbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gKiBSZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZS5cbiAqL1xuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xuICB9XG5cbi8qKlxuICogU2V0cyB0aGUgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGRlZmF1bHRpbmcgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYCBpZiBudWxsLlxuICogQHBhcmFtIHZcbiAqL1xuICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtYXhWYWx1ZScsXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAqIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBjb21wb25lbnQuXG4gKiBAcGFyYW0gY2xhc3NOYW1lc1xuICovXG4gIEBJbnB1dCgnY2xhc3MnKVxuXG4gIC8qKlxuICogQ1NTIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIGNvbXBvbmVudC5cbiAqL1xuICBjbGFzc05hbWVzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBfbWFza09iajogTWFza2VkTnVtYmVyO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8TWFza2VkTnVtYmVyPjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xuICB9XG5cbiAgLyoqXG4gKiBIYW5kbGVzIGludGVybmFsIG9wdGlvbiBjaGFuZ2VzIGFuZCB1cGRhdGVzIHRoZSBtYXNrIGFjY29yZGluZ2x5LlxuICovXG4gIG92ZXJyaWRlIGludGVybmFsT3B0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XG4gIH1cblxuICAvKipcbiAqIFJlc2V0cyB0aGUgaW5wdXQgZWxlbWVudCB0byBpdHMgZGVmYXVsdCBzdGF0ZSBhbmQgY2FsbHMgdGhlIHBhcmVudCBjbGFzcyByZXNldCBtZXRob2QuXG4gKi9cbiAgb3ZlcnJpZGUgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICBzdXBlci5yZXNldCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICogRW5zdXJlcyB0aGUgdmFsdWUgaXMgd2l0aGluIHRoZSBtaW4tbWF4IHJhbmdlLCByZXR1cm5pbmcgdGhlIGRlZmF1bHQgaWYgbnVsbC5cbiAqIEBwYXJhbSB2YWx1ZVxuICovXG4gIG92ZXJyaWRlIGludGVybmFsU2V0VmFsdWUodmFsdWU6IGFueSk6IG51bWJlciB7XG4gICAgLy8gfHwgKHZhbHVlID09IDAgJiYgIXRoaXMuX21hc2tPYmoudmFsdWUpXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gICAgY29uc3QgdiA9IHRvTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAodiA8IHRoaXMubWluVmFsdWUpIHJldHVybiB0aGlzLm1pblZhbHVlO1xuICAgIGlmICh2ID4gdGhpcy5tYXhWYWx1ZSkgcmV0dXJuIHRoaXMubWF4VmFsdWU7XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF91cGRhdGVNYXNrKCkge1xuICAgIGlmICghdGhpcy5fbWFza09iaikge1xuICAgICAgdGhpcy5fbWFza09iaiA9IGNyZWF0ZU1hc2soe1xuICAgICAgICBtYXNrOiBOdW1iZXIsXG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcbiAgICAgICAgcmFkaXg6ICcuJyxcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9tYXNrT2JqLmZvcm1hdCA9ICh2OiBudW1iZXIsIG0pID0+IHtcbiAgICAgICAgcmV0dXJuICFpc05hTih2KVxuICAgICAgICAgID8gdi50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XG4gICAgICAgICAgICAgIHVzZUdyb3VwaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyMCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiAnJztcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX21hc2tPYmoudXBkYXRlT3B0aW9ucyh7XG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcbiAgICAgICAgcmFkaXg6ICcuJyxcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIF9oYW5kbGVNb2RlbENoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlID09IDAgJiYgaXNFbXB0eSh0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py52YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLmNvbW1pdFZhbHVlKHZhbHVlLCB0cnVlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xuICAgIGNvbnN0IGlnbm9yZSA9ICgpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfTtcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgdmFsU3RyID0gaW5wdXQudmFsdWU7XG4gICAgY29uc3QgZGVjaW1hbFBvaW50SW5kZXggPSB2YWxTdHIuaW5kZXhPZignLicpO1xuICAgIGNvbnN0IF9jdXJzb3JQb3MgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCE7XG5cbiAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGlmIChkZWNpbWFsUG9pbnRJbmRleCA+IDAgJiYgX2N1cnNvclBvcyA+IGRlY2ltYWxQb2ludEluZGV4ICYmIHRoaXMuZGVjaW1hbHMgPiAwKSB7XG4gICAgICAgIGUua2V5ID09PSAnQXJyb3dEb3duJyA/IHRoaXMuZGVjaW1hbFN0ZXBEb3duKHRydWUpIDogdGhpcy5kZWNpbWFsU3RlcFVwKHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5zdGVwRG93bih0cnVlKSA6IHRoaXMuc3RlcFVwKHRydWUpO1xuICAgICAgfVxuICAgICAgaWdub3JlKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoX2N1cnNvclBvcywgX2N1cnNvclBvcyk7XG4gICAgICB9LCA1KTtcbiAgICB9XG4gICAgc3VwZXIuZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVVcERvd25DbGljayh2OiAtMSB8IDEpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgdiA9PSAxID8gdGhpcy5zdGVwVXAodHJ1ZSkgOiB0aGlzLnN0ZXBEb3duKHRydWUpO1xuICB9XG5cbiAgLyoqXG4gKiBJbmNyZWFzZXMgdGhlIHZhbHVlIGJ5IHRoZSBzdGVwIGFtb3VudCwgZW5zdXJpbmcgaXQncyBhdCBsZWFzdCB0aGUgbWluaW11bSB2YWx1ZS5cbiAqL1xuICBzdGVwVXAodSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApLCB1KTtcbiAgICB9XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnZhbHVlICsgdG9OdW1iZXIodGhpcy5zdGVwKSwgdSk7XG4gIH1cblxuICAvKipcbiAqIERlY3JlYXNlcyB0aGUgdmFsdWUgYnkgdGhlIHN0ZXAgYW1vdW50LCBlbnN1cmluZyBpdCdzIGF0IGxlYXN0IHRoZSBtaW5pbXVtIHZhbHVlLlxuICovXG4gIHN0ZXBEb3duKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSAtIHRvTnVtYmVyKHRoaXMuc3RlcCksIHUpO1xuICB9XG5cbiAgLyoqXG4gKiBJbmNyZWFzZXMgdGhlIHZhbHVlIGJ5IHRoZSBkZWNpbWFsIHN0ZXAgYW1vdW50LCB1c2luZyAnYXV0bycgb3IgYSBjdXN0b20gc3RlcCB2YWx1ZS5cbiAqL1xuICBkZWNpbWFsU3RlcFVwKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSArIHRvTnVtYmVyKHRoaXMuZGVjaW1hbFN0ZXAgPT0gJ2F1dG8nID8gMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSA6IHRoaXMuZGVjaW1hbFN0ZXApLCB1KTtcbiAgfVxuXG4gIC8qKlxuICogRGVjcmVhc2VzIHRoZSB2YWx1ZSBieSB0aGUgZGVjaW1hbCBzdGVwIGFtb3VudCwgdXNpbmcgJ2F1dG8nIG9yIGEgY3VzdG9tIHN0ZXAgdmFsdWUuXG4gKi9cbiAgZGVjaW1hbFN0ZXBEb3duKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSAtIHRvTnVtYmVyKHRoaXMuZGVjaW1hbFN0ZXAgPT0gJ2F1dG8nID8gMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSA6IHRoaXMuZGVjaW1hbFN0ZXApLCB1KTtcbiAgfVxuXG4gIC8vIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAvLyBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgLy8gICByZXR1cm4gYGF4LWVkaXRvci1jb250YWluZXIgYXgtbG9vay0ke3RoaXMubG9va30gJHt0aGlzLmRpc2FibGVkID8gJ2F4LXN0YXRlLWRpc2FibGVkJyA6ICcnfWA7XG4gIC8vIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1lZGl0b3ItY29udGFpbmVyIGF4LWxvb2ste3tsb29rfX0ge3tjbGFzc05hbWVzfX1cIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbiAgPGlucHV0ICNpbnB1dCBjbGFzcz1cImF4LWlucHV0XCIgdHlwZT1cInRleHRcIiBbaWRdPVwiaWRcIiBbbmFtZV09XCJuYW1lXCIgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCInb2ZmJ1wiIFtpbWFza109XCJfbWFza09ialwiIFt1bm1hc2tdPVwiJ3R5cGVkJ1wiIFthdHRyLm1pbl09XCJtaW5WYWx1ZVwiIFthdHRyLm1heF09XCJtYXhWYWx1ZVwiXG4gICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCIgW2NsYXNzLmF4LXN0YXRlLXJlYWRvbmx5XT1cInJlYWRvbmx5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiBbbmdNb2RlbF09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIl9oYW5kbGVNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJfaGFuZGxlT25LZXlkb3duRXZlbnQoJGV2ZW50KVwiIChrZXl1cCk9XCJlbWl0T25LZXl1cEV2ZW50KCRldmVudClcIlxuICAgIChrZXlwcmVzcyk9XCJlbWl0T25LZXlwcmVzc0V2ZW50KCRldmVudClcIiAoZm9jdXMpPVwiZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgKGJsdXIpPVwiZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIiAvPlxuICBAaWYoaW5wdXQudmFsdWUgJiYgIWRpc2FibGVkICYmICFyZWFkb25seSl7XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWNsZWFyLWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgfVxuICBAaWYoc2hvd1NwaW5CdXR0b25zKXtcbiAgPGRpdiBjbGFzcz1cImF4LW51bWJlci1ib3gtY29udHJvbFwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygxKVwiIHRhYmluZGV4PVwiLTFcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48c3BhblxuICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLXVwIGF4LWFycm93LWJ1dHRvbiBcIj48L3NwYW4+PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKC0xKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjxzcGFuXG4gICAgICAgIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tZG93biBheC1hcnJvdy1idXR0b24gXCI+PC9zcGFuPjwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICB9XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+IDwvbmctY29udGVudD5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJheC1lcnJvci1jb250YWluZXJcIj48L2Rpdj4iXX0=
@@ -9,11 +9,11 @@ import * as i0 from "@angular/core";
9
9
  const COMPONENT = [AXNumberBoxComponent];
10
10
  const MODULES = [CommonModule, FormsModule, AXButtonModule, AXDecoratorModule, IMaskModule];
11
11
  export class AXNumberBoxModule {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule, FormsModule, AXButtonModule, AXDecoratorModule, IMaskModule], exports: [AXNumberBoxComponent] }); }
14
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXNumberBoxModule, imports: [MODULES] }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule, FormsModule, AXButtonModule, AXDecoratorModule, IMaskModule], exports: [AXNumberBoxComponent] }); }
14
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXNumberBoxModule, imports: [MODULES] }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXNumberBoxModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXNumberBoxModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  declarations: [...COMPONENT],
@@ -5,25 +5,48 @@ import { classes } from 'polytype';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
7
  import * as i2 from "@angular/forms";
8
+ /**
9
+ * @category
10
+ * A component for OTP input fields with state management and custom styling support.
11
+ */
8
12
  export class AXOtpComponent extends classes((MXValueComponent), MXLookComponent) {
13
+ /** @ignore */
9
14
  constructor() {
10
15
  super();
16
+ /**
17
+ * Holds the length of the OTP input field.
18
+ */
11
19
  this.length = model();
20
+ /**
21
+ * @event
22
+ * Emits an event when the OTP input is completed.
23
+ */
12
24
  this.onCompleted = output();
25
+ /**
26
+ * Stores the values entered in the OTP input fields.
27
+ */
13
28
  this.inputValues = [];
29
+ /**
30
+ * Holds the input values as a signal.
31
+ */
14
32
  this.inputs = signal([]);
15
33
  effect(() => {
16
34
  this._render();
17
35
  }, { allowSignalWrites: true });
18
36
  }
37
+ /** @ignore */
19
38
  ngOnInit() {
20
39
  super.ngOnInit();
21
40
  this._render();
22
41
  }
42
+ /** @ignore */
23
43
  ngAfterViewInit() {
24
44
  this.calcFontSize();
25
45
  this.mapValueToInputs();
26
46
  }
47
+ /**
48
+ * Converts the value string to input values and updates the inputValues array.
49
+ */
27
50
  mapValueToInputs() {
28
51
  this._emitOnComplete();
29
52
  if (!this.value)
@@ -32,14 +55,19 @@ export class AXOtpComponent extends classes((MXValueComponent), MXLookComponent)
32
55
  this.inputValues[i] = +v;
33
56
  });
34
57
  }
58
+ /**
59
+ * Resets the input values to an empty array.
60
+ */
35
61
  reset() {
36
62
  this.inputValues = [];
37
63
  }
64
+ /** @ignore */
38
65
  _render() {
39
66
  this.inputs.set(Array(this.length())
40
67
  .fill(1)
41
68
  .map((x, i) => i));
42
69
  }
70
+ /** @ignore */
43
71
  _handleOnInput(event, i) {
44
72
  const inputs = this.getHostElement().querySelectorAll('.ax-input');
45
73
  const numberRegex = /^\d+$/;
@@ -63,17 +91,20 @@ export class AXOtpComponent extends classes((MXValueComponent), MXLookComponent)
63
91
  // }
64
92
  this._emitOnComplete();
65
93
  }
94
+ /** @ignore */
66
95
  internalSetValue(value) {
67
96
  if (value) {
68
97
  this.inputValues = value?.toString().split('');
69
98
  }
70
99
  return value;
71
100
  }
101
+ /** @ignore */
72
102
  calcFontSize() {
73
103
  const size = this.getHostElement().querySelector('.ax-input')?.clientWidth;
74
104
  const fontSize = Math.min(size, size) * 0.5;
75
105
  this.getHostElement().style.setProperty('--font-size', fontSize + 'px');
76
106
  }
107
+ /** @ignore */
77
108
  _handleOnKeyDown(event, i) {
78
109
  const inputs = this.getHostElement().querySelectorAll('.ax-input');
79
110
  switch (event.key) {
@@ -107,6 +138,7 @@ export class AXOtpComponent extends classes((MXValueComponent), MXLookComponent)
107
138
  break;
108
139
  }
109
140
  }
141
+ /** @ignore */
110
142
  _handleOnPaste(event) {
111
143
  const inputs = this.getHostElement().querySelectorAll('.ax-input');
112
144
  const data = event.clipboardData.getData('text');
@@ -120,10 +152,12 @@ export class AXOtpComponent extends classes((MXValueComponent), MXLookComponent)
120
152
  }
121
153
  event.preventDefault();
122
154
  }
155
+ /** @ignore */
123
156
  _handleOnClick(i) {
124
157
  const inputs = this.getHostElement().querySelectorAll('.ax-input');
125
158
  inputs[i].select();
126
159
  }
160
+ /** @ignore */
127
161
  _emitOnComplete() {
128
162
  // TODO: Check Value delay
129
163
  setTimeout(() => {
@@ -135,8 +169,8 @@ export class AXOtpComponent extends classes((MXValueComponent), MXLookComponent)
135
169
  });
136
170
  });
137
171
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXOtpComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXOtpComponent, selector: "ax-otp", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stateChange: "stateChange", disabledChange: "disabledChange", length: "lengthChange", onCompleted: "onCompleted" }, providers: [
172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXOtpComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
173
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXOtpComponent, selector: "ax-otp", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stateChange: "stateChange", disabledChange: "disabledChange", length: "lengthChange", onCompleted: "onCompleted" }, providers: [
140
174
  {
141
175
  provide: NG_VALUE_ACCESSOR,
142
176
  useExisting: forwardRef(() => AXOtpComponent),
@@ -144,7 +178,7 @@ export class AXOtpComponent extends classes((MXValueComponent), MXLookComponent)
144
178
  },
145
179
  ], usesInheritance: true, ngImport: i0, template: "<div\n dir=\"ltr\"\n class=\"ax-otp-input-container ax-editor-container ax-look-{{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs().length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\"\n>\n @for (input of inputs(); let i = $index; track i) {\n <input\n class=\"ax-input\"\n type=\"number\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-success]=\"state === 'success'\"\n [class.ax-state-error]=\"state === 'error'\"\n maxlength=\"1\"\n [ngModel]=\"inputValues[i]\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (click)=\"_handleOnClick(i)\"\n (input)=\"_handleOnInput($event, i)\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [attr.disabled]=\"disabled\"\n />\n }\n</div>\n", styles: ["ax-otp{display:block}ax-otp .ax-otp-input-container{display:grid;gap:.5rem;position:relative}ax-otp .ax-otp-input-container.ax-editor-container{height:auto;border-style:none;outline-color:transparent;overflow:initial;background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container:focus-within,ax-otp .ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-input-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500));border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error .ax-input::placeholder,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input{border-radius:0;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input:focus-within{border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input{border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error{background-color:rgba(var(--ax-color-danger-50));color:rgba(var(--ax-color-danger-fore-tint))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container .ax-input{aspect-ratio:1/1;overflow:hidden;text-align:center;font-size:var(--font-size, 2rem)}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:read-only{cursor:text;opacity:.75}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:disabled{cursor:not-allowed;opacity:.5}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
146
180
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXOtpComponent, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXOtpComponent, decorators: [{
148
182
  type: Component,
149
183
  args: [{ selector: 'ax-otp', inputs: ['state', 'disabled', 'readonly', 'look'], outputs: ['stateChange', 'disabledChange'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
150
184
  {
@@ -154,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
154
188
  },
155
189
  ], template: "<div\n dir=\"ltr\"\n class=\"ax-otp-input-container ax-editor-container ax-look-{{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs().length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\"\n>\n @for (input of inputs(); let i = $index; track i) {\n <input\n class=\"ax-input\"\n type=\"number\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-success]=\"state === 'success'\"\n [class.ax-state-error]=\"state === 'error'\"\n maxlength=\"1\"\n [ngModel]=\"inputValues[i]\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (click)=\"_handleOnClick(i)\"\n (input)=\"_handleOnInput($event, i)\"\n (keydown)=\"_handleOnKeyDown($event, i)\"\n [attr.disabled]=\"disabled\"\n />\n }\n</div>\n", styles: ["ax-otp{display:block}ax-otp .ax-otp-input-container{display:grid;gap:.5rem;position:relative}ax-otp .ax-otp-input-container.ax-editor-container{height:auto;border-style:none;outline-color:transparent;overflow:initial;background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container:focus-within,ax-otp .ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-input-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500));border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error .ax-input::placeholder,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input{border-radius:0;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input:focus-within{border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input{border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error{background-color:rgba(var(--ax-color-danger-50));color:rgba(var(--ax-color-danger-fore-tint))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container .ax-input{aspect-ratio:1/1;overflow:hidden;text-align:center;font-size:var(--font-size, 2rem)}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:read-only{cursor:text;opacity:.75}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:disabled{cursor:not-allowed;opacity:.5}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"] }]
156
190
  }], ctorParameters: () => [] });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9vdHAvc3JjL2xpYi9vdHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL290cC9zcmMvbGliL290cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQW1CbkMsTUFBTSxPQUFPLGNBQWUsU0FBUSxPQUFPLENBQUMsQ0FBQSxnQkFBd0IsQ0FBQSxFQUFFLGVBQWUsQ0FBQztJQU9wRjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBUFYsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsTUFBTSxFQUF1QixDQUFDO1FBRTVDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBQzNCLFdBQU0sR0FBRyxNQUFNLENBQVcsRUFBRSxDQUFDLENBQUM7UUFJNUIsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJ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QUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixTQUFTLEVBQUUsY0FBYztnQkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTthQUN4RSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdEpVLGNBQWM7a0dBQWQsY0FBYywweEJBUmQ7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDN0MsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQy9CSCw4eUJBd0JBOzsyRkRTYSxjQUFjO2tCQWhCMUIsU0FBUzsrQkFDRSxRQUFRLFVBR1YsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsV0FDeEMsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsbUJBQ3pCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDOzRCQUM3QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1YTG9va0NvbXBvbmVudCwgTVhWYWx1ZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZWZmZWN0LFxuICBmb3J3YXJkUmVmLFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuaW1wb3J0IHsgQVhPdHBDb21wbGV0ZWRFdmVudCB9IGZyb20gJy4vb3RwLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtb3RwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL290cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL290cC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFsnc3RhdGUnLCAnZGlzYWJsZWQnLCAncmVhZG9ubHknLCAnbG9vayddLFxuICBvdXRwdXRzOiBbJ3N0YXRlQ2hhbmdlJywgJ2Rpc2FibGVkQ2hhbmdlJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYT3RwQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYT3RwQ29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWFZhbHVlQ29tcG9uZW50PHN0cmluZz4sIE1YTG9va0NvbXBvbmVudCkgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBsZW5ndGggPSBtb2RlbDxudW1iZXI+KCk7XG4gIG9uQ29tcGxldGVkID0gb3V0cHV0PEFYT3RwQ29tcGxldGVkRXZlbnQ+KCk7XG5cbiAgaW5wdXRWYWx1ZXM6IG51bWJlcltdID0gW107XG4gIGlucHV0cyA9IHNpZ25hbDxudW1iZXJbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLl9yZW5kZXIoKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjRm9udFNpemUoKTtcbiAgICB0aGlzLm1hcFZhbHVlVG9JbnB1dHMoKTtcbiAgfVxuXG4gIG1hcFZhbHVlVG9JbnB1dHMoKSB7XG4gICAgdGhpcy5fZW1pdE9uQ29tcGxldGUoKTtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHJldHVybjtcbiAgICB0aGlzLnZhbHVlLnNwbGl0KCcnKS5tYXAoKHYsIGkpID0+IHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZXNbaV0gPSArdjtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlc2V0KCkge1xuICAgIHRoaXMuaW5wdXRWYWx1ZXMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlcigpIHtcbiAgICB0aGlzLmlucHV0cy5zZXQoXG4gICAgICBBcnJheSh0aGlzLmxlbmd0aCgpKVxuICAgICAgICAuZmlsbCgxKVxuICAgICAgICAubWFwKCh4LCBpKSA9PiBpKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbklucHV0KGV2ZW50OiBhbnksIGk6IG51bWJlcikge1xuICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yQWxsPEhUTUxJbnB1dEVsZW1lbnQ+KCcuYXgtaW5wdXQnKTtcbiAgICBjb25zdCBudW1iZXJSZWdleCA9IC9eXFxkKyQvO1xuICAgIGlmICghbnVtYmVyUmVnZXgudGVzdChldmVudC50YXJnZXQudmFsdWUpKSB7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZS5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZS5zbGljZSgtMSk7XG4gICAgfVxuICAgIGlmIChpbnB1dHNbaSArIDFdKSB7XG4gICAgICBpbnB1dHNbaSArIDFdLnNlbGVjdCgpO1xuICAgIH1cbiAgICB0aGlzLmlucHV0VmFsdWVzW2ldID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIC8vIGlmICh0aGlzLl9udW1iZXJzLmZpbHRlcigoYykgPT4gYykubGVuZ3RoID09PSB0aGlzLmxlbmd0aCkge1xuICAgIC8vICAgdGhpcy5zZXRTdGF0ZSgnc3VjY2VzcycpO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICB0aGlzLnNldFN0YXRlKCdlcnJvcicpO1xuICAgIC8vIH1cbiAgICB0aGlzLl9lbWl0T25Db21wbGV0ZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZXMgPSB2YWx1ZT8udG9TdHJpbmcoKS5zcGxpdCgnJykgYXMgYW55O1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FsY0ZvbnRTaXplKCkge1xuICAgIGNvbnN0IHNpemUgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk/LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGZvbnRTaXplID0gTWF0aC5taW4oc2l6ZSwgc2l6ZSkgKiAwLjU7XG4gICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLnN0eWxlLnNldFByb3BlcnR5KCctLWZvbnQtc2l6ZScsIGZvbnRTaXplICsgJ3B4Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaTogbnVtYmVyKSB7XG4gICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTElucHV0RWxlbWVudD4oJy5heC1pbnB1dCcpO1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICBpbnB1dHNbaV0udmFsdWUgPSAnJztcbiAgICAgICAgaWYgKGlucHV0c1tpIC0gMV0pIHtcbiAgICAgICAgICBpbnB1dHNbaSAtIDFdLnNlbGVjdCgpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlc1tpXSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgIGlmIChpbnB1dHNbaSArIDFdKSB7XG4gICAgICAgICAgaW5wdXRzW2kgKyAxXS5zZWxlY3QoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgaWYgKGlucHV0c1tpIC0gMV0pIHtcbiAgICAgICAgICBpbnB1dHNbaSAtIDFdLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgIGlucHV0c1swXS5mb2N1cygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgIGlucHV0c1t0aGlzLmxlbmd0aCgpIC0gMV0uc2VsZWN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTElucHV0RWxlbWVudD4oJy5heC1pbnB1dCcpO1xuICAgIGNvbnN0IGRhdGEgPSBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQnKTtcbiAgICBjb25zdCBpc051bWJlciA9IC9cXGQrLztcblxuICAgIGlmIChpc051bWJlci50ZXN0KGRhdGEpKSB7XG4gICAgICBpbnB1dHNbaW5wdXRzLmxlbmd0aCAtIDFdLmZvY3VzKCk7XG4gICAgICB0aGlzLmlucHV0VmFsdWVzID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLmlucHV0VmFsdWVzW2ldID0gK2RhdGFbaV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25DbGljayhpKSB7XG4gICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTElucHV0RWxlbWVudD4oJy5heC1pbnB1dCcpO1xuICAgIGlucHV0c1tpXS5zZWxlY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfZW1pdE9uQ29tcGxldGUoKSB7XG4gICAgLy8gVE9ETzogQ2hlY2sgVmFsdWUgZGVsYXlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5pbnB1dFZhbHVlcy5qb2luKCcnKSwgdHJ1ZSk7XG4gICAgICB0aGlzLm9uQ29tcGxldGVkLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IEFYT3RwQ29tcG9uZW50LFxuICAgICAgICB2YWx1ZTogdGhpcy5pbnB1dFZhbHVlcy5qb2luKCcnKSxcbiAgICAgICAgaXNDb21wbGV0ZWQ6IHRoaXMuaW5wdXRWYWx1ZXMuZmlsdGVyKChjKSA9PiBjKS5sZW5ndGggPT09IHRoaXMubGVuZ3RoKCksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICBkaXI9XCJsdHJcIlxuICBjbGFzcz1cImF4LW90cC1pbnB1dC1jb250YWluZXIgYXgtZWRpdG9yLWNvbnRhaW5lciBheC1sb29rLXt7IGxvb2sgfX1cIlxuICBbbmdTdHlsZV09XCJ7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiAncmVwZWF0KCcgKyBpbnB1dHMoKS5sZW5ndGggKyAnLCBtaW5tYXgoMCwgMWZyKSknIH1cIlxuICAocGFzdGUpPVwiX2hhbmRsZU9uUGFzdGUoJGV2ZW50KVwiXG4+XG4gIEBmb3IgKGlucHV0IG9mIGlucHV0cygpOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJheC1pbnB1dFwiXG4gICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbY2xhc3MuYXgtc3RhdGUtc3VjY2Vzc109XCJzdGF0ZSA9PT0gJ3N1Y2Nlc3MnXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1lcnJvcl09XCJzdGF0ZSA9PT0gJ2Vycm9yJ1wiXG4gICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgIFtuZ01vZGVsXT1cImlucHV0VmFsdWVzW2ldXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgKGNsaWNrKT1cIl9oYW5kbGVPbkNsaWNrKGkpXCJcbiAgICAgIChpbnB1dCk9XCJfaGFuZGxlT25JbnB1dCgkZXZlbnQsIGkpXCJcbiAgICAgIChrZXlkb3duKT1cIl9oYW5kbGVPbktleURvd24oJGV2ZW50LCBpKVwiXG4gICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgLz5cbiAgfVxuPC9kaXY+XG4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9vdHAvc3JjL2xpYi9vdHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL290cC9zcmMvbGliL290cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQUduQzs7O0dBR0c7QUFpQkgsTUFBTSxPQUFPLGNBQWUsU0FBUSxPQUFPLENBQUMsQ0FBQSxnQkFBd0IsQ0FBQSxFQUFFLGVBQWUsQ0FBQztJQXVCcEYsY0FBYztJQUNkO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUF2QlY7O1NBRUM7UUFDRCxXQUFNLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFFekI7OztTQUdDO1FBQ0QsZ0JBQVcsR0FBRyxNQUFNLEVBQXVCLENBQUM7UUFFNUM7O1NBRUM7UUFDRCxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUUzQjs7U0FFQztRQUNELFdBQU0sR0FBRyxNQUFNLENBQVcsRUFBRSxDQUFDLENBQUM7UUFLNUIsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFF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aUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7NEJBQzdDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTVhMb29rQ29tcG9uZW50LCBNWFZhbHVlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBlZmZlY3QsXG4gIGZvcndhcmRSZWYsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWE90cENvbXBsZXRlZEV2ZW50IH0gZnJvbSAnLi9vdHAuY2xhc3MnO1xuXG4vKipcbiAqIEBjYXRlZ29yeVxuICogQSBjb21wb25lbnQgZm9yIE9UUCBpbnB1dCBmaWVsZHMgd2l0aCBzdGF0ZSBtYW5hZ2VtZW50IGFuZCBjdXN0b20gc3R5bGluZyBzdXBwb3J0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1vdHAnLFxuICB0ZW1wbGF0ZVVybDogJy4vb3RwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3RwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydzdGF0ZScsICdkaXNhYmxlZCcsICdyZWFkb25seScsICdsb29rJ10sXG4gIG91dHB1dHM6IFsnc3RhdGVDaGFuZ2UnLCAnZGlzYWJsZWRDaGFuZ2UnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhPdHBDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhPdHBDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YVmFsdWVDb21wb25lbnQ8c3RyaW5nPiwgTVhMb29rQ29tcG9uZW50KSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqXG4gKiBIb2xkcyB0aGUgbGVuZ3RoIG9mIHRoZSBPVFAgaW5wdXQgZmllbGQuXG4gKi9cbiAgbGVuZ3RoID0gbW9kZWw8bnVtYmVyPigpO1xuXG4gIC8qKlxuICogQGV2ZW50XG4gKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBPVFAgaW5wdXQgaXMgY29tcGxldGVkLlxuICovXG4gIG9uQ29tcGxldGVkID0gb3V0cHV0PEFYT3RwQ29tcGxldGVkRXZlbnQ+KCk7XG5cbiAgLyoqXG4gKiBTdG9yZXMgdGhlIHZhbHVlcyBlbnRlcmVkIGluIHRoZSBPVFAgaW5wdXQgZmllbGRzLlxuICovXG4gIGlucHV0VmFsdWVzOiBudW1iZXJbXSA9IFtdO1xuXG4gIC8qKlxuICogSG9sZHMgdGhlIGlucHV0IHZhbHVlcyBhcyBhIHNpZ25hbC5cbiAqL1xuICBpbnB1dHMgPSBzaWduYWw8bnVtYmVyW10+KFtdKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVuZGVyKCk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsY0ZvbnRTaXplKCk7XG4gICAgdGhpcy5tYXBWYWx1ZVRvSW5wdXRzKCk7XG4gIH1cblxuICAvKipcbiAqIENvbnZlcnRzIHRoZSB2YWx1ZSBzdHJpbmcgdG8gaW5wdXQgdmFsdWVzIGFuZCB1cGRhdGVzIHRoZSBpbnB1dFZhbHVlcyBhcnJheS5cbiAqL1xuICBtYXBWYWx1ZVRvSW5wdXRzKCkge1xuICAgIHRoaXMuX2VtaXRPbkNvbXBsZXRlKCk7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSByZXR1cm47XG4gICAgdGhpcy52YWx1ZS5zcGxpdCgnJykubWFwKCh2LCBpKSA9PiB7XG4gICAgICB0aGlzLmlucHV0VmFsdWVzW2ldID0gK3Y7XG4gICAgfSk7XG4gIH1cblxuIC8qKlxuICogUmVzZXRzIHRoZSBpbnB1dCB2YWx1ZXMgdG8gYW4gZW1wdHkgYXJyYXkuXG4gKi9cbiAgb3ZlcnJpZGUgcmVzZXQoKSB7XG4gICAgdGhpcy5pbnB1dFZhbHVlcyA9IFtdO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfcmVuZGVyKCkge1xuICAgIHRoaXMuaW5wdXRzLnNldChcbiAgICAgIEFycmF5KHRoaXMubGVuZ3RoKCkpXG4gICAgICAgIC5maWxsKDEpXG4gICAgICAgIC5tYXAoKHgsIGkpID0+IGkpLFxuICAgICk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU9uSW5wdXQoZXZlbnQ6IGFueSwgaTogbnVtYmVyKSB7XG4gICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTElucHV0RWxlbWVudD4oJy5heC1pbnB1dCcpO1xuICAgIGNvbnN0IG51bWJlclJlZ2V4ID0gL15cXGQrJC87XG4gICAgaWYgKCFudW1iZXJSZWdleC50ZXN0KGV2ZW50LnRhcmdldC52YWx1ZSkpIHtcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlLnNsaWNlKC0xKTtcbiAgICB9XG4gICAgaWYgKGlucHV0c1tpICsgMV0pIHtcbiAgICAgIGlucHV0c1tpICsgMV0uc2VsZWN0KCk7XG4gICAgfVxuICAgIHRoaXMuaW5wdXRWYWx1ZXNbaV0gPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgLy8gaWYgKHRoaXMuX251bWJlcnMuZmlsdGVyKChjKSA9PiBjKS5sZW5ndGggPT09IHRoaXMubGVuZ3RoKSB7XG4gICAgLy8gICB0aGlzLnNldFN0YXRlKCdzdWNjZXNzJyk7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgIHRoaXMuc2V0U3RhdGUoJ2Vycm9yJyk7XG4gICAgLy8gfVxuICAgIHRoaXMuX2VtaXRPbkNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvdmVycmlkZSBpbnRlcm5hbFNldFZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlcyA9IHZhbHVlPy50b1N0cmluZygpLnNwbGl0KCcnKSBhcyBhbnk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBjYWxjRm9udFNpemUoKSB7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxJbnB1dEVsZW1lbnQ+KCcuYXgtaW5wdXQnKT8uY2xpZW50V2lkdGg7XG4gICAgY29uc3QgZm9udFNpemUgPSBNYXRoLm1pbihzaXplLCBzaXplKSAqIDAuNTtcbiAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuc3R5bGUuc2V0UHJvcGVydHkoJy0tZm9udC1zaXplJywgZm9udFNpemUgKyAncHgnKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlT25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpOiBudW1iZXIpIHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XG4gICAgICAgIGlucHV0c1tpXS52YWx1ZSA9ICcnO1xuICAgICAgICBpZiAoaW5wdXRzW2kgLSAxXSkge1xuICAgICAgICAgIGlucHV0c1tpIC0gMV0uc2VsZWN0KCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlucHV0VmFsdWVzW2ldID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgaWYgKGlucHV0c1tpICsgMV0pIHtcbiAgICAgICAgICBpbnB1dHNbaSArIDFdLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICBpZiAoaW5wdXRzW2kgLSAxXSkge1xuICAgICAgICAgIGlucHV0c1tpIC0gMV0uc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgaW5wdXRzWzBdLmZvY3VzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgaW5wdXRzW3RoaXMubGVuZ3RoKCkgLSAxXS5zZWxlY3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlT25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk7XG4gICAgY29uc3QgZGF0YSA9IGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dCcpO1xuICAgIGNvbnN0IGlzTnVtYmVyID0gL1xcZCsvO1xuXG4gICAgaWYgKGlzTnVtYmVyLnRlc3QoZGF0YSkpIHtcbiAgICAgIGlucHV0c1tpbnB1dHMubGVuZ3RoIC0gMV0uZm9jdXMoKTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZXMgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZXNbaV0gPSArZGF0YVtpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkNsaWNrKGkpIHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk7XG4gICAgaW5wdXRzW2ldLnNlbGVjdCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9lbWl0T25Db21wbGV0ZSgpIHtcbiAgICAvLyBUT0RPOiBDaGVjayBWYWx1ZSBkZWxheVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmlucHV0VmFsdWVzLmpvaW4oJycpLCB0cnVlKTtcbiAgICAgIHRoaXMub25Db21wbGV0ZWQuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogQVhPdHBDb21wb25lbnQsXG4gICAgICAgIHZhbHVlOiB0aGlzLmlucHV0VmFsdWVzLmpvaW4oJycpLFxuICAgICAgICBpc0NvbXBsZXRlZDogdGhpcy5pbnB1dFZhbHVlcy5maWx0ZXIoKGMpID0+IGMpLmxlbmd0aCA9PT0gdGhpcy5sZW5ndGgoKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGRpcj1cImx0clwiXG4gIGNsYXNzPVwiYXgtb3RwLWlucHV0LWNvbnRhaW5lciBheC1lZGl0b3ItY29udGFpbmVyIGF4LWxvb2ste3sgbG9vayB9fVwiXG4gIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6ICdyZXBlYXQoJyArIGlucHV0cygpLmxlbmd0aCArICcsIG1pbm1heCgwLCAxZnIpKScgfVwiXG4gIChwYXN0ZSk9XCJfaGFuZGxlT25QYXN0ZSgkZXZlbnQpXCJcbj5cbiAgQGZvciAoaW5wdXQgb2YgaW5wdXRzKCk7IGxldCBpID0gJGluZGV4OyB0cmFjayBpKSB7XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImF4LWlucHV0XCJcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1zdWNjZXNzXT1cInN0YXRlID09PSAnc3VjY2VzcydcIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWVycm9yXT1cInN0YXRlID09PSAnZXJyb3InXCJcbiAgICAgIG1heGxlbmd0aD1cIjFcIlxuICAgICAgW25nTW9kZWxdPVwiaW5wdXRWYWx1ZXNbaV1cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAoY2xpY2spPVwiX2hhbmRsZU9uQ2xpY2soaSlcIlxuICAgICAgKGlucHV0KT1cIl9oYW5kbGVPbklucHV0KCRldmVudCwgaSlcIlxuICAgICAgKGtleWRvd24pPVwiX2hhbmRsZU9uS2V5RG93bigkZXZlbnQsIGkpXCJcbiAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAvPlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -6,11 +6,11 @@ import * as i0 from "@angular/core";
6
6
  const COMPONENT = [AXOtpComponent];
7
7
  const MODULES = [CommonModule, FormsModule];
8
8
  export class AXOtpModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXOtpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXOtpModule, declarations: [AXOtpComponent], imports: [CommonModule, FormsModule], exports: [AXOtpComponent] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXOtpModule, imports: [MODULES] }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXOtpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXOtpModule, declarations: [AXOtpComponent], imports: [CommonModule, FormsModule], exports: [AXOtpComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXOtpModule, imports: [MODULES] }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXOtpModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXOtpModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  declarations: [...COMPONENT],