@acorex/components 5.2.1 → 5.2.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (867) hide show
  1. package/README.md +2 -23
  2. package/esm2020/lib/accordion/accordion.component.mjs +44 -0
  3. package/esm2020/lib/accordion/accordion.module.mjs +20 -0
  4. package/esm2020/lib/base/base-page.class.mjs +94 -0
  5. package/esm2020/lib/base/components.class.mjs +17 -0
  6. package/esm2020/lib/base/element.class.mjs +294 -0
  7. package/esm2020/lib/base/events.class.mjs +6 -53
  8. package/esm2020/lib/button/button.component.mjs +58 -50
  9. package/esm2020/lib/button/button.module.mjs +11 -23
  10. package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +413 -0
  11. package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +22 -0
  12. package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +54 -0
  13. package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +18 -0
  14. package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +213 -0
  15. package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +68 -0
  16. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +132 -0
  17. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -0
  18. package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +47 -0
  19. package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +95 -0
  20. package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +204 -0
  21. package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -0
  22. package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +77 -0
  23. package/esm2020/lib/checkbox/checkbox.component.mjs +88 -31
  24. package/esm2020/lib/checkbox/checkbox.module.mjs +7 -8
  25. package/esm2020/lib/color-picker/color-box/color-box.component.mjs +422 -0
  26. package/esm2020/lib/color-picker/color-picker.component.mjs +82 -0
  27. package/esm2020/lib/color-picker/color-picker.module.mjs +24 -0
  28. package/esm2020/lib/context-menu/context-menu.component.mjs +65 -0
  29. package/esm2020/lib/context-menu/context-menu.directive.mjs +135 -0
  30. package/esm2020/lib/context-menu/context-menu.module.mjs +20 -0
  31. package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +138 -0
  32. package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +117 -0
  33. package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +74 -0
  34. package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +117 -0
  35. package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +258 -0
  36. package/esm2020/lib/data-filter/filter.class.mjs +44 -0
  37. package/esm2020/lib/data-filter/filter.module.mjs +90 -0
  38. package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +166 -0
  39. package/esm2020/lib/data-list/core/data-list.component.mjs +40 -0
  40. package/esm2020/lib/data-list/list/list.component.mjs +124 -0
  41. package/esm2020/lib/data-list/list/list.module.mjs +22 -0
  42. package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +85 -0
  43. package/esm2020/lib/data-source/datasource.component.mjs +47 -0
  44. package/esm2020/lib/data-source/datasource.module.mjs +18 -0
  45. package/esm2020/lib/data-source/read-param.mjs +5 -0
  46. package/esm2020/lib/date-picker/date-picker.component.mjs +705 -0
  47. package/esm2020/lib/date-picker/date-picker.module.mjs +25 -0
  48. package/esm2020/lib/dialog/dialog.component.mjs +17 -33
  49. package/esm2020/lib/dialog/dialog.module.mjs +10 -15
  50. package/esm2020/lib/dialog/dialog.service.mjs +129 -123
  51. package/esm2020/lib/drawer/content.component.mjs +18 -0
  52. package/esm2020/lib/drawer/drawer-container.component.mjs +25 -72
  53. package/esm2020/lib/drawer/drawer.component.mjs +100 -130
  54. package/esm2020/lib/drawer/drawer.module.mjs +7 -7
  55. package/esm2020/lib/dropdown/dropdown.component.mjs +177 -0
  56. package/esm2020/lib/dropdown/dropdown.module.mjs +17 -15
  57. package/esm2020/lib/fieldset/fieldset.component.mjs +59 -0
  58. package/esm2020/lib/fieldset/fieldset.module.mjs +19 -0
  59. package/esm2020/lib/form-group/form-group.component.mjs +34 -0
  60. package/esm2020/lib/form-group/form-group.module.mjs +21 -0
  61. package/esm2020/lib/label/label.component.mjs +13 -19
  62. package/esm2020/lib/label/label.module.mjs +5 -5
  63. package/esm2020/lib/loading/loading-indicator.component.mjs +17 -0
  64. package/esm2020/lib/loading/loading-panel.component.mjs +44 -0
  65. package/esm2020/lib/loading/loading.module.mjs +12 -26
  66. package/esm2020/lib/loading/loading.service.mjs +14 -123
  67. package/esm2020/lib/menu/menu-item.component.mjs +47 -0
  68. package/esm2020/lib/menu/menu.component.mjs +71 -69
  69. package/esm2020/lib/menu/menu.module.mjs +12 -30
  70. package/esm2020/lib/menu/menu2.component.mjs +96 -0
  71. package/esm2020/lib/number-box/number-box.component.mjs +586 -185
  72. package/esm2020/lib/number-box/number-box.module.mjs +10 -27
  73. package/esm2020/lib/page/content.component.mjs +32 -0
  74. package/esm2020/lib/page/footer.component.mjs +19 -0
  75. package/esm2020/lib/page/page.component.mjs +44 -49
  76. package/esm2020/lib/page/page.module.mjs +13 -10
  77. package/esm2020/lib/panel-box/panel-box.component.mjs +88 -0
  78. package/esm2020/lib/panel-box/panel-box.module.mjs +19 -0
  79. package/esm2020/lib/password-box/password-box.component.mjs +22 -50
  80. package/esm2020/lib/password-box/password-box.module.mjs +9 -21
  81. package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +48 -0
  82. package/esm2020/lib/popover/overlay.service.mjs +87 -0
  83. package/esm2020/lib/popover/popover.component.mjs +83 -218
  84. package/esm2020/lib/popover/popover.module.mjs +5 -5
  85. package/esm2020/lib/popup/popup.component.mjs +112 -88
  86. package/esm2020/lib/popup/popup.module.mjs +14 -14
  87. package/esm2020/lib/popup/popup.service.mjs +20 -22
  88. package/esm2020/lib/progress-bar/progress-bar.component.mjs +12 -27
  89. package/esm2020/lib/progress-bar/progress-bar.module.mjs +6 -6
  90. package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +61 -0
  91. package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +22 -0
  92. package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +38 -0
  93. package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +24 -0
  94. package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +115 -0
  95. package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +32 -0
  96. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +211 -0
  97. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +78 -0
  98. package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +51 -0
  99. package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +24 -0
  100. package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +63 -0
  101. package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +24 -0
  102. package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +140 -0
  103. package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +61 -0
  104. package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +72 -0
  105. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +78 -0
  106. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -0
  107. package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +69 -0
  108. package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -0
  109. package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +29 -0
  110. package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +25 -0
  111. package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +32 -0
  112. package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +24 -0
  113. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +32 -0
  114. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -0
  115. package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +43 -0
  116. package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +24 -0
  117. package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +152 -0
  118. package/esm2020/lib/property-editor/property-editor.class.mjs +101 -0
  119. package/esm2020/lib/property-editor/property-editor.module.mjs +196 -0
  120. package/esm2020/lib/query-builder/query-builder-group.component.mjs +124 -0
  121. package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +171 -0
  122. package/esm2020/lib/query-builder/query-builder-rule.component.mjs +357 -0
  123. package/esm2020/lib/query-builder/query-builder.class.mjs +20 -0
  124. package/esm2020/lib/query-builder/query-builder.component.mjs +82 -0
  125. package/esm2020/lib/query-builder/query-builder.module.mjs +59 -0
  126. package/esm2020/lib/query-builder/query-builder.service.mjs +191 -0
  127. package/esm2020/lib/search-bar/search-bar.component.mjs +235 -0
  128. package/esm2020/lib/search-bar/search-bar.module.mjs +28 -0
  129. package/esm2020/lib/searchbox/searchbox.component.mjs +79 -0
  130. package/esm2020/lib/searchbox/searchbox.module.mjs +24 -0
  131. package/esm2020/lib/selectbox/selectbox.component.mjs +886 -261
  132. package/esm2020/lib/selectbox/selectbox.module.mjs +33 -58
  133. package/esm2020/lib/selectbox/selectbox2.component.mjs +574 -0
  134. package/esm2020/lib/selection-list/selection-list.component.mjs +91 -40
  135. package/esm2020/lib/selection-list/selection-list.module.mjs +7 -10
  136. package/esm2020/lib/switch/switch.component.mjs +41 -23
  137. package/esm2020/lib/switch/switch.module.mjs +6 -7
  138. package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +71 -0
  139. package/esm2020/lib/tab-page/tab-page-host.component.mjs +116 -0
  140. package/esm2020/lib/tab-page/tab-page.module.mjs +21 -0
  141. package/esm2020/lib/tab-page/tab-page.service.mjs +156 -0
  142. package/esm2020/lib/tab-strip/tab-strip.component.mjs +36 -0
  143. package/esm2020/lib/tab-strip/tab-strip.module.mjs +19 -0
  144. package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +24 -0
  145. package/esm2020/lib/tab-view/tab-view.component.mjs +105 -0
  146. package/esm2020/lib/tab-view/tab-view.module.mjs +21 -0
  147. package/esm2020/lib/tab-view/tab.component.mjs +30 -0
  148. package/esm2020/lib/textarea/textarea.component.mjs +19 -18
  149. package/esm2020/lib/textarea/textarea.module.mjs +13 -18
  150. package/esm2020/lib/textbox/textbox.component.mjs +35 -23
  151. package/esm2020/lib/textbox/textbox.module.mjs +15 -34
  152. package/esm2020/lib/time-picker/time-picker.component.mjs +943 -0
  153. package/esm2020/lib/time-picker/time-picker.module.mjs +22 -0
  154. package/esm2020/lib/toast/toast-message/toast-message.component.mjs +74 -0
  155. package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -0
  156. package/esm2020/lib/toast/toast.module.mjs +12 -13
  157. package/esm2020/lib/toast/toast.service.mjs +27 -97
  158. package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +78 -0
  159. package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +57 -0
  160. package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +54 -0
  161. package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +47 -0
  162. package/esm2020/lib/toolbar/toolbar-item.mjs +6 -0
  163. package/esm2020/lib/toolbar/toolbar.component.mjs +13 -0
  164. package/esm2020/lib/toolbar/toolbar.module.mjs +40 -0
  165. package/esm2020/lib/tooltip/tooltip.directive.mjs +84 -70
  166. package/esm2020/lib/tooltip/tooltip.module.mjs +8 -12
  167. package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +646 -0
  168. package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +35 -0
  169. package/esm2020/lib/tree-view/tree-view.component.mjs +726 -0
  170. package/esm2020/lib/tree-view/tree-view.module.mjs +22 -0
  171. package/esm2020/lib/upload-file/upload-file.component.mjs +170 -0
  172. package/esm2020/lib/upload-file/upload-file.events.mjs +2 -0
  173. package/esm2020/lib/upload-file/upload-file.module.mjs +24 -0
  174. package/esm2020/lib/validation/validation-form.component.mjs +65 -0
  175. package/esm2020/lib/validation/validation-rule.widget.mjs +25 -27
  176. package/esm2020/lib/validation/validation.class.mjs +1 -1
  177. package/esm2020/lib/validation/validation.component.mjs +89 -0
  178. package/esm2020/lib/validation/validation.module.mjs +12 -10
  179. package/esm2020/public-api.mjs +158 -51
  180. package/fesm2015/acorex-components.mjs +14664 -7127
  181. package/fesm2015/acorex-components.mjs.map +1 -1
  182. package/fesm2020/acorex-components.mjs +14623 -7115
  183. package/fesm2020/acorex-components.mjs.map +1 -1
  184. package/lib/accordion/accordion.component.d.ts +13 -0
  185. package/lib/accordion/accordion.module.d.ts +9 -0
  186. package/lib/base/base-page.class.d.ts +46 -0
  187. package/lib/base/components.class.d.ts +10 -0
  188. package/lib/base/element.class.d.ts +106 -0
  189. package/lib/base/events.class.d.ts +8 -75
  190. package/lib/button/button.component.d.ts +18 -18
  191. package/lib/button/button.module.d.ts +2 -6
  192. package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -0
  193. package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -0
  194. package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -0
  195. package/lib/calendar/scheduler/scheduler.class.d.ts +36 -0
  196. package/lib/calendar/scheduler/scheduler.component.d.ts +39 -0
  197. package/lib/calendar/scheduler/scheduler.module.d.ts +21 -0
  198. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -0
  199. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -0
  200. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -0
  201. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -0
  202. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -0
  203. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -0
  204. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -0
  205. package/lib/checkbox/checkbox.component.d.ts +27 -8
  206. package/lib/checkbox/checkbox.module.d.ts +1 -2
  207. package/lib/color-picker/color-box/color-box.component.d.ts +25 -0
  208. package/lib/color-picker/color-picker.component.d.ts +30 -0
  209. package/lib/color-picker/color-picker.module.d.ts +13 -0
  210. package/lib/context-menu/context-menu.component.d.ts +22 -0
  211. package/lib/context-menu/context-menu.directive.d.ts +38 -0
  212. package/lib/context-menu/context-menu.module.d.ts +9 -0
  213. package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -0
  214. package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -0
  215. package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -0
  216. package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -0
  217. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -0
  218. package/lib/data-filter/filter.class.d.ts +40 -0
  219. package/lib/data-filter/filter.module.d.ts +24 -0
  220. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -0
  221. package/lib/data-list/core/data-list.component.d.ts +15 -0
  222. package/lib/data-list/list/list.component.d.ts +40 -0
  223. package/lib/data-list/list/list.module.d.ts +11 -0
  224. package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -0
  225. package/lib/data-source/datasource.component.d.ts +16 -0
  226. package/lib/data-source/datasource.module.d.ts +7 -0
  227. package/lib/data-source/read-param.d.ts +40 -0
  228. package/lib/date-picker/date-picker.component.d.ts +81 -0
  229. package/lib/date-picker/date-picker.module.d.ts +14 -0
  230. package/lib/dialog/dialog.component.d.ts +10 -11
  231. package/lib/dialog/dialog.module.d.ts +3 -6
  232. package/lib/dialog/dialog.service.d.ts +31 -31
  233. package/lib/{decorators → drawer}/content.component.d.ts +1 -2
  234. package/lib/drawer/drawer-container.component.d.ts +7 -10
  235. package/lib/drawer/drawer.component.d.ts +22 -21
  236. package/lib/drawer/drawer.module.d.ts +2 -2
  237. package/lib/dropdown/dropdown.component.d.ts +38 -0
  238. package/lib/dropdown/dropdown.module.d.ts +7 -7
  239. package/lib/fieldset/fieldset.component.d.ts +11 -0
  240. package/lib/fieldset/fieldset.module.d.ts +8 -0
  241. package/lib/form-group/form-group.component.d.ts +14 -0
  242. package/lib/form-group/form-group.module.d.ts +8 -0
  243. package/lib/label/label.component.d.ts +6 -9
  244. package/lib/loading/loading-indicator.component.d.ts +9 -0
  245. package/lib/loading/loading-panel.component.d.ts +13 -0
  246. package/lib/loading/loading.module.d.ts +5 -8
  247. package/lib/loading/loading.service.d.ts +4 -39
  248. package/lib/menu/menu-item.component.d.ts +18 -0
  249. package/lib/menu/menu.component.d.ts +30 -34
  250. package/lib/menu/menu.module.d.ts +5 -6
  251. package/lib/menu/menu2.component.d.ts +21 -0
  252. package/lib/number-box/number-box.component.d.ts +49 -72
  253. package/lib/number-box/number-box.module.d.ts +3 -6
  254. package/lib/page/content.component.d.ts +8 -0
  255. package/lib/page/{page-footer.component.d.ts → footer.component.d.ts} +1 -3
  256. package/lib/page/page.component.d.ts +9 -7
  257. package/lib/page/page.module.d.ts +6 -3
  258. package/lib/panel-box/panel-box.component.d.ts +19 -0
  259. package/lib/panel-box/panel-box.module.d.ts +8 -0
  260. package/lib/password-box/password-box.component.d.ts +8 -19
  261. package/lib/password-box/password-box.module.d.ts +3 -5
  262. package/lib/{base → popover}/custom-cdk-overlay.service.d.ts +0 -0
  263. package/lib/{base → popover}/overlay.service.d.ts +2 -3
  264. package/lib/popover/popover.component.d.ts +23 -42
  265. package/lib/popup/popup.component.d.ts +26 -32
  266. package/lib/popup/popup.module.d.ts +3 -2
  267. package/lib/popup/popup.service.d.ts +9 -25
  268. package/lib/progress-bar/progress-bar.component.d.ts +4 -15
  269. package/lib/property-editor/editors/check-editor/check-editor.d.ts +19 -0
  270. package/lib/property-editor/editors/check-editor/check.module.d.ts +11 -0
  271. package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -0
  272. package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -0
  273. package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -0
  274. package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -0
  275. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -0
  276. package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -0
  277. package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -0
  278. package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -0
  279. package/lib/property-editor/editors/number-editor/number.editor.d.ts +20 -0
  280. package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -0
  281. package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -0
  282. package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -0
  283. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -0
  284. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +29 -0
  285. package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +14 -0
  286. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +25 -0
  287. package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -0
  288. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -0
  289. package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -0
  290. package/lib/property-editor/editors/text-editor/text.editor.d.ts +18 -0
  291. package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -0
  292. package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +17 -0
  293. package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +12 -0
  294. package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -0
  295. package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -0
  296. package/lib/property-editor/property-editor-renderer.directive.d.ts +30 -0
  297. package/lib/property-editor/property-editor.class.d.ts +92 -0
  298. package/lib/property-editor/property-editor.module.d.ts +21 -0
  299. package/lib/query-builder/query-builder-group.component.d.ts +33 -0
  300. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -0
  301. package/lib/query-builder/query-builder-rule.component.d.ts +45 -0
  302. package/lib/query-builder/query-builder.class.d.ts +45 -0
  303. package/lib/query-builder/query-builder.component.d.ts +27 -0
  304. package/lib/query-builder/query-builder.module.d.ts +22 -0
  305. package/lib/query-builder/query-builder.service.d.ts +18 -0
  306. package/lib/search-bar/search-bar.component.d.ts +50 -0
  307. package/lib/search-bar/search-bar.module.d.ts +17 -0
  308. package/lib/searchbox/searchbox.component.d.ts +22 -0
  309. package/lib/searchbox/searchbox.module.d.ts +13 -0
  310. package/lib/selectbox/selectbox.component.d.ts +112 -70
  311. package/lib/selectbox/selectbox.module.d.ts +9 -14
  312. package/lib/selectbox/selectbox2.component.d.ts +103 -0
  313. package/lib/selection-list/selection-list.component.d.ts +27 -18
  314. package/lib/selection-list/selection-list.module.d.ts +1 -4
  315. package/lib/switch/switch.component.d.ts +17 -9
  316. package/lib/switch/switch.module.d.ts +1 -2
  317. package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -0
  318. package/lib/tab-page/tab-page-host.component.d.ts +25 -0
  319. package/lib/tab-page/tab-page.module.d.ts +10 -0
  320. package/lib/tab-page/tab-page.service.d.ts +30 -0
  321. package/lib/tab-strip/tab-strip.component.d.ts +28 -0
  322. package/lib/tab-strip/tab-strip.module.d.ts +8 -0
  323. package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -0
  324. package/lib/tab-view/tab-view.component.d.ts +26 -0
  325. package/lib/tab-view/tab-view.module.d.ts +10 -0
  326. package/lib/tab-view/tab.component.d.ts +12 -0
  327. package/lib/textarea/textarea.component.d.ts +8 -8
  328. package/lib/textarea/textarea.module.d.ts +4 -5
  329. package/lib/textbox/textbox.component.d.ts +12 -12
  330. package/lib/textbox/textbox.module.d.ts +4 -6
  331. package/lib/time-picker/time-picker.component.d.ts +52 -0
  332. package/lib/time-picker/time-picker.module.d.ts +11 -0
  333. package/lib/toast/toast-message/toast-message.component.d.ts +18 -0
  334. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -0
  335. package/lib/toast/toast.module.d.ts +4 -4
  336. package/lib/toast/toast.service.d.ts +13 -13
  337. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -0
  338. package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -0
  339. package/lib/toolbar/search/toolbar-search.component.d.ts +16 -0
  340. package/lib/toolbar/title/toolbar-title.component.d.ts +9 -0
  341. package/lib/toolbar/toolbar-item.d.ts +3 -0
  342. package/lib/toolbar/toolbar.component.d.ts +8 -0
  343. package/lib/toolbar/toolbar.module.d.ts +14 -0
  344. package/lib/tooltip/tooltip.directive.d.ts +16 -13
  345. package/lib/tooltip/tooltip.module.d.ts +3 -5
  346. package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -0
  347. package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -0
  348. package/lib/tree-view/tree-view.component.d.ts +117 -0
  349. package/lib/tree-view/tree-view.module.d.ts +11 -0
  350. package/lib/upload-file/upload-file.component.d.ts +38 -0
  351. package/lib/upload-file/upload-file.events.d.ts +10 -0
  352. package/lib/upload-file/upload-file.module.d.ts +13 -0
  353. package/lib/validation/validation-form.component.d.ts +19 -0
  354. package/lib/validation/validation-rule.widget.d.ts +8 -10
  355. package/lib/validation/validation.class.d.ts +1 -2
  356. package/lib/validation/validation.component.d.ts +25 -0
  357. package/lib/validation/validation.module.d.ts +5 -3
  358. package/package.json +6 -8
  359. package/public-api.d.ts +155 -49
  360. package/acorex-components.d.ts.map +0 -1
  361. package/esm2020/lib/action-sheet/action-sheet-item.component.mjs +0 -37
  362. package/esm2020/lib/action-sheet/action-sheet.component.mjs +0 -87
  363. package/esm2020/lib/action-sheet/action-sheet.module.mjs +0 -22
  364. package/esm2020/lib/action-sheet/index.mjs +0 -4
  365. package/esm2020/lib/alert/alert-button.component.mjs +0 -51
  366. package/esm2020/lib/alert/alert-content.component.mjs +0 -21
  367. package/esm2020/lib/alert/alert-footer.component.mjs +0 -27
  368. package/esm2020/lib/alert/alert-suffix.component.mjs +0 -27
  369. package/esm2020/lib/alert/alert-title.component.mjs +0 -23
  370. package/esm2020/lib/alert/alert.component.mjs +0 -123
  371. package/esm2020/lib/alert/alert.module.mjs +0 -44
  372. package/esm2020/lib/alert/index.mjs +0 -8
  373. package/esm2020/lib/avatar/avatar-group.component.mjs +0 -17
  374. package/esm2020/lib/avatar/avatar.component.mjs +0 -42
  375. package/esm2020/lib/avatar/avatar.module.mjs +0 -22
  376. package/esm2020/lib/avatar/index.mjs +0 -4
  377. package/esm2020/lib/badge/badge.component.mjs +0 -28
  378. package/esm2020/lib/badge/badge.module.mjs +0 -21
  379. package/esm2020/lib/badge/index.mjs +0 -3
  380. package/esm2020/lib/base/common.module.mjs +0 -19
  381. package/esm2020/lib/base/custom-cdk-overlay.service.mjs +0 -47
  382. package/esm2020/lib/base/drawing.class.mjs +0 -11
  383. package/esm2020/lib/base/index.mjs +0 -9
  384. package/esm2020/lib/base/infinite-scroll.directive.mjs +0 -63
  385. package/esm2020/lib/base/mixin/base-components.class.mjs +0 -100
  386. package/esm2020/lib/base/mixin/base-menu-mixin.class.mjs +0 -135
  387. package/esm2020/lib/base/mixin/button-mixin.class.mjs +0 -91
  388. package/esm2020/lib/base/mixin/clickable-mixin.class.mjs +0 -24
  389. package/esm2020/lib/base/mixin/color-look-mixing.class.mjs +0 -48
  390. package/esm2020/lib/base/mixin/constratctor.mjs +0 -2
  391. package/esm2020/lib/base/mixin/datalist-component.class.mjs +0 -148
  392. package/esm2020/lib/base/mixin/datalist.class.mjs +0 -3
  393. package/esm2020/lib/base/mixin/dropdown-mixin.class.mjs +0 -99
  394. package/esm2020/lib/base/mixin/index.mjs +0 -3
  395. package/esm2020/lib/base/mixin/interactive-mixin.class.mjs +0 -84
  396. package/esm2020/lib/base/mixin/loading-mixin.class.mjs +0 -18
  397. package/esm2020/lib/base/mixin/mixin.class.mjs +0 -27
  398. package/esm2020/lib/base/mixin/selection-component.class.mjs +0 -181
  399. package/esm2020/lib/base/mixin/sizable-mixin.class.mjs +0 -18
  400. package/esm2020/lib/base/mixin/textbox-mixin.class.mjs +0 -34
  401. package/esm2020/lib/base/mixin/value-mixin.class.mjs +0 -209
  402. package/esm2020/lib/base/overlay.service.mjs +0 -91
  403. package/esm2020/lib/base/responsive.directive.mjs +0 -34
  404. package/esm2020/lib/base/styles.class.mjs +0 -4
  405. package/esm2020/lib/breadcrumbs/breadcrumbs-item.class.mjs +0 -2
  406. package/esm2020/lib/breadcrumbs/breadcrumbs-item.component.mjs +0 -20
  407. package/esm2020/lib/breadcrumbs/breadcrumbs.component.mjs +0 -18
  408. package/esm2020/lib/breadcrumbs/breadcrumbs.module.mjs +0 -20
  409. package/esm2020/lib/breadcrumbs/index.mjs +0 -5
  410. package/esm2020/lib/button/button-group.component.mjs +0 -124
  411. package/esm2020/lib/button/button-item.class.mjs +0 -2
  412. package/esm2020/lib/button/button-item.component.mjs +0 -80
  413. package/esm2020/lib/button/index.mjs +0 -6
  414. package/esm2020/lib/calendar/calendar.class.mjs +0 -126
  415. package/esm2020/lib/calendar/calendar.component.mjs +0 -279
  416. package/esm2020/lib/calendar/calendar.module.mjs +0 -27
  417. package/esm2020/lib/calendar/index.mjs +0 -4
  418. package/esm2020/lib/calendar/inline-calendar.component.mjs +0 -39
  419. package/esm2020/lib/carousel/carousel-arrows.component.mjs +0 -56
  420. package/esm2020/lib/carousel/carousel-item.component.mjs +0 -21
  421. package/esm2020/lib/carousel/carousel-pager.component.mjs +0 -74
  422. package/esm2020/lib/carousel/carousel-splidejs.class.mjs +0 -91
  423. package/esm2020/lib/carousel/carousel.class.mjs +0 -10
  424. package/esm2020/lib/carousel/carousel.component.mjs +0 -438
  425. package/esm2020/lib/carousel/carousel.module.mjs +0 -24
  426. package/esm2020/lib/carousel/index.mjs +0 -7
  427. package/esm2020/lib/checkbox/index.mjs +0 -3
  428. package/esm2020/lib/collapse/collapse-group.component.mjs +0 -50
  429. package/esm2020/lib/collapse/collapse.component.mjs +0 -42
  430. package/esm2020/lib/collapse/collapse.module.mjs +0 -20
  431. package/esm2020/lib/collapse/index.mjs +0 -4
  432. package/esm2020/lib/datalist/datalist.component.mjs +0 -75
  433. package/esm2020/lib/datalist/datalist.module.mjs +0 -24
  434. package/esm2020/lib/datalist/index.mjs +0 -3
  435. package/esm2020/lib/datepicker/datepicker.component.mjs +0 -185
  436. package/esm2020/lib/datepicker/datepicker.module.mjs +0 -47
  437. package/esm2020/lib/datepicker/index.mjs +0 -3
  438. package/esm2020/lib/decorators/addon.component.mjs +0 -20
  439. package/esm2020/lib/decorators/content.component.mjs +0 -26
  440. package/esm2020/lib/decorators/decorators.module.mjs +0 -25
  441. package/esm2020/lib/decorators/header.component.mjs +0 -26
  442. package/esm2020/lib/decorators/index.mjs +0 -8
  443. package/esm2020/lib/decorators/prefix.component.mjs +0 -26
  444. package/esm2020/lib/decorators/suffix.component.mjs +0 -26
  445. package/esm2020/lib/dialog/dialog.class.mjs +0 -2
  446. package/esm2020/lib/dialog/index.mjs +0 -5
  447. package/esm2020/lib/drawer/drawer-content.component.mjs +0 -27
  448. package/esm2020/lib/drawer/index.mjs +0 -5
  449. package/esm2020/lib/dropdown/dropdown-panel.component.mjs +0 -80
  450. package/esm2020/lib/dropdown/index.mjs +0 -3
  451. package/esm2020/lib/form/form-field.component.mjs +0 -20
  452. package/esm2020/lib/form/form-field.module.mjs +0 -21
  453. package/esm2020/lib/form/form-hint.component.mjs +0 -20
  454. package/esm2020/lib/form/form.component.mjs +0 -59
  455. package/esm2020/lib/form/index.mjs +0 -5
  456. package/esm2020/lib/icon/icon.component.mjs +0 -28
  457. package/esm2020/lib/icon/icon.module.mjs +0 -21
  458. package/esm2020/lib/icon/index.mjs +0 -3
  459. package/esm2020/lib/input-mask/index.mjs +0 -3
  460. package/esm2020/lib/input-mask/input-mask.component.mjs +0 -56
  461. package/esm2020/lib/input-mask/input-mask.module.mjs +0 -24
  462. package/esm2020/lib/label/index.mjs +0 -3
  463. package/esm2020/lib/loading/index.mjs +0 -6
  464. package/esm2020/lib/loading/loading-spinner.component.mjs +0 -35
  465. package/esm2020/lib/loading/loading.component.mjs +0 -62
  466. package/esm2020/lib/loading/loading.directive.mjs +0 -67
  467. package/esm2020/lib/menu/index.mjs +0 -3
  468. package/esm2020/lib/number-box/index.mjs +0 -3
  469. package/esm2020/lib/page/base-page.class.mjs +0 -86
  470. package/esm2020/lib/page/index.mjs +0 -6
  471. package/esm2020/lib/page/page-footer.component.mjs +0 -28
  472. package/esm2020/lib/page/page-header.component.mjs +0 -28
  473. package/esm2020/lib/password-box/index.mjs +0 -3
  474. package/esm2020/lib/picker/index.mjs +0 -3
  475. package/esm2020/lib/picker/picker.component.mjs +0 -45
  476. package/esm2020/lib/picker/picker.module.mjs +0 -20
  477. package/esm2020/lib/popover/index.mjs +0 -3
  478. package/esm2020/lib/popup/index.mjs +0 -4
  479. package/esm2020/lib/progress-bar/index.mjs +0 -3
  480. package/esm2020/lib/radio/index.mjs +0 -3
  481. package/esm2020/lib/radio/radio.component.mjs +0 -34
  482. package/esm2020/lib/radio/radio.module.mjs +0 -22
  483. package/esm2020/lib/range-slider/index.mjs +0 -3
  484. package/esm2020/lib/range-slider/range-slider.component.mjs +0 -16
  485. package/esm2020/lib/range-slider/range-slider.module.mjs +0 -21
  486. package/esm2020/lib/rating/index.mjs +0 -3
  487. package/esm2020/lib/rating/rating.component.mjs +0 -41
  488. package/esm2020/lib/rating/rating.component.module.mjs +0 -19
  489. package/esm2020/lib/result/index.mjs +0 -3
  490. package/esm2020/lib/result/result.component.mjs +0 -23
  491. package/esm2020/lib/result/result.module.mjs +0 -19
  492. package/esm2020/lib/selectbox/index.mjs +0 -3
  493. package/esm2020/lib/selection-list/index.mjs +0 -3
  494. package/esm2020/lib/switch/index.mjs +0 -3
  495. package/esm2020/lib/tabs/index.mjs +0 -6
  496. package/esm2020/lib/tabs/tab-content.directive.mjs +0 -29
  497. package/esm2020/lib/tabs/tab-item.component.mjs +0 -121
  498. package/esm2020/lib/tabs/tabs.class.mjs +0 -4
  499. package/esm2020/lib/tabs/tabs.component.mjs +0 -95
  500. package/esm2020/lib/tabs/tabs.module.mjs +0 -25
  501. package/esm2020/lib/textarea/index.mjs +0 -3
  502. package/esm2020/lib/textbox/index.mjs +0 -3
  503. package/esm2020/lib/time-box/index.mjs +0 -3
  504. package/esm2020/lib/time-box/time-box.component.mjs +0 -262
  505. package/esm2020/lib/time-box/time-box.module.mjs +0 -32
  506. package/esm2020/lib/toast/index.mjs +0 -5
  507. package/esm2020/lib/toast/toast.class.mjs +0 -2
  508. package/esm2020/lib/toast/toast.component.mjs +0 -52
  509. package/esm2020/lib/tooltip/index.mjs +0 -4
  510. package/esm2020/lib/tooltip/tooltip.component.mjs +0 -38
  511. package/esm2020/lib/treeview/index.mjs +0 -3
  512. package/esm2020/lib/treeview/tree-view.component.mjs +0 -108
  513. package/esm2020/lib/treeview/tree-view.module.mjs +0 -20
  514. package/esm2020/lib/validation/index.mjs +0 -3
  515. package/lib/action-sheet/action-sheet-item.component.d.ts +0 -15
  516. package/lib/action-sheet/action-sheet-item.component.d.ts.map +0 -1
  517. package/lib/action-sheet/action-sheet.component.d.ts +0 -19
  518. package/lib/action-sheet/action-sheet.component.d.ts.map +0 -1
  519. package/lib/action-sheet/action-sheet.module.d.ts +0 -11
  520. package/lib/action-sheet/action-sheet.module.d.ts.map +0 -1
  521. package/lib/action-sheet/index.d.ts +0 -3
  522. package/lib/action-sheet/index.d.ts.map +0 -1
  523. package/lib/alert/alert-button.component.d.ts +0 -13
  524. package/lib/alert/alert-button.component.d.ts.map +0 -1
  525. package/lib/alert/alert-content.component.d.ts +0 -5
  526. package/lib/alert/alert-content.component.d.ts.map +0 -1
  527. package/lib/alert/alert-footer.component.d.ts +0 -5
  528. package/lib/alert/alert-footer.component.d.ts.map +0 -1
  529. package/lib/alert/alert-suffix.component.d.ts +0 -5
  530. package/lib/alert/alert-suffix.component.d.ts.map +0 -1
  531. package/lib/alert/alert-title.component.d.ts +0 -5
  532. package/lib/alert/alert-title.component.d.ts.map +0 -1
  533. package/lib/alert/alert.component.d.ts +0 -75
  534. package/lib/alert/alert.component.d.ts.map +0 -1
  535. package/lib/alert/alert.module.d.ts +0 -14
  536. package/lib/alert/alert.module.d.ts.map +0 -1
  537. package/lib/alert/index.d.ts +0 -7
  538. package/lib/alert/index.d.ts.map +0 -1
  539. package/lib/avatar/avatar-group.component.d.ts +0 -8
  540. package/lib/avatar/avatar-group.component.d.ts.map +0 -1
  541. package/lib/avatar/avatar.component.d.ts +0 -22
  542. package/lib/avatar/avatar.component.d.ts.map +0 -1
  543. package/lib/avatar/avatar.module.d.ts +0 -9
  544. package/lib/avatar/avatar.module.d.ts.map +0 -1
  545. package/lib/avatar/index.d.ts +0 -3
  546. package/lib/avatar/index.d.ts.map +0 -1
  547. package/lib/badge/badge.component.d.ts +0 -41
  548. package/lib/badge/badge.component.d.ts.map +0 -1
  549. package/lib/badge/badge.module.d.ts +0 -8
  550. package/lib/badge/badge.module.d.ts.map +0 -1
  551. package/lib/badge/index.d.ts +0 -2
  552. package/lib/badge/index.d.ts.map +0 -1
  553. package/lib/base/common.module.d.ts +0 -8
  554. package/lib/base/common.module.d.ts.map +0 -1
  555. package/lib/base/custom-cdk-overlay.service.d.ts.map +0 -1
  556. package/lib/base/drawing.class.d.ts +0 -9
  557. package/lib/base/drawing.class.d.ts.map +0 -1
  558. package/lib/base/events.class.d.ts.map +0 -1
  559. package/lib/base/index.d.ts +0 -8
  560. package/lib/base/index.d.ts.map +0 -1
  561. package/lib/base/infinite-scroll.directive.d.ts +0 -25
  562. package/lib/base/infinite-scroll.directive.d.ts.map +0 -1
  563. package/lib/base/mixin/base-components.class.d.ts +0 -85
  564. package/lib/base/mixin/base-components.class.d.ts.map +0 -1
  565. package/lib/base/mixin/base-menu-mixin.class.d.ts +0 -51
  566. package/lib/base/mixin/base-menu-mixin.class.d.ts.map +0 -1
  567. package/lib/base/mixin/button-mixin.class.d.ts +0 -63
  568. package/lib/base/mixin/button-mixin.class.d.ts.map +0 -1
  569. package/lib/base/mixin/clickable-mixin.class.d.ts +0 -35
  570. package/lib/base/mixin/clickable-mixin.class.d.ts.map +0 -1
  571. package/lib/base/mixin/color-look-mixing.class.d.ts +0 -43
  572. package/lib/base/mixin/color-look-mixing.class.d.ts.map +0 -1
  573. package/lib/base/mixin/constratctor.d.ts +0 -4
  574. package/lib/base/mixin/constratctor.d.ts.map +0 -1
  575. package/lib/base/mixin/datalist-component.class.d.ts +0 -58
  576. package/lib/base/mixin/datalist-component.class.d.ts.map +0 -1
  577. package/lib/base/mixin/datalist.class.d.ts +0 -11
  578. package/lib/base/mixin/datalist.class.d.ts.map +0 -1
  579. package/lib/base/mixin/dropdown-mixin.class.d.ts +0 -48
  580. package/lib/base/mixin/dropdown-mixin.class.d.ts.map +0 -1
  581. package/lib/base/mixin/index.d.ts +0 -2
  582. package/lib/base/mixin/index.d.ts.map +0 -1
  583. package/lib/base/mixin/interactive-mixin.class.d.ts +0 -59
  584. package/lib/base/mixin/interactive-mixin.class.d.ts.map +0 -1
  585. package/lib/base/mixin/loading-mixin.class.d.ts +0 -39
  586. package/lib/base/mixin/loading-mixin.class.d.ts.map +0 -1
  587. package/lib/base/mixin/mixin.class.d.ts +0 -686
  588. package/lib/base/mixin/mixin.class.d.ts.map +0 -1
  589. package/lib/base/mixin/selection-component.class.d.ts +0 -60
  590. package/lib/base/mixin/selection-component.class.d.ts.map +0 -1
  591. package/lib/base/mixin/sizable-mixin.class.d.ts +0 -33
  592. package/lib/base/mixin/sizable-mixin.class.d.ts.map +0 -1
  593. package/lib/base/mixin/textbox-mixin.class.d.ts +0 -56
  594. package/lib/base/mixin/textbox-mixin.class.d.ts.map +0 -1
  595. package/lib/base/mixin/value-mixin.class.d.ts +0 -64
  596. package/lib/base/mixin/value-mixin.class.d.ts.map +0 -1
  597. package/lib/base/overlay.service.d.ts.map +0 -1
  598. package/lib/base/responsive.directive.d.ts +0 -10
  599. package/lib/base/responsive.directive.d.ts.map +0 -1
  600. package/lib/base/styles.class.d.ts +0 -17
  601. package/lib/base/styles.class.d.ts.map +0 -1
  602. package/lib/breadcrumbs/breadcrumbs-item.class.d.ts +0 -9
  603. package/lib/breadcrumbs/breadcrumbs-item.class.d.ts.map +0 -1
  604. package/lib/breadcrumbs/breadcrumbs-item.component.d.ts +0 -12
  605. package/lib/breadcrumbs/breadcrumbs-item.component.d.ts.map +0 -1
  606. package/lib/breadcrumbs/breadcrumbs.component.d.ts +0 -11
  607. package/lib/breadcrumbs/breadcrumbs.component.d.ts.map +0 -1
  608. package/lib/breadcrumbs/breadcrumbs.module.d.ts +0 -9
  609. package/lib/breadcrumbs/breadcrumbs.module.d.ts.map +0 -1
  610. package/lib/breadcrumbs/index.d.ts +0 -4
  611. package/lib/breadcrumbs/index.d.ts.map +0 -1
  612. package/lib/button/button-group.component.d.ts +0 -36
  613. package/lib/button/button-group.component.d.ts.map +0 -1
  614. package/lib/button/button-item.class.d.ts +0 -22
  615. package/lib/button/button-item.class.d.ts.map +0 -1
  616. package/lib/button/button-item.component.d.ts +0 -79
  617. package/lib/button/button-item.component.d.ts.map +0 -1
  618. package/lib/button/button.component.d.ts.map +0 -1
  619. package/lib/button/button.module.d.ts.map +0 -1
  620. package/lib/button/index.d.ts +0 -5
  621. package/lib/button/index.d.ts.map +0 -1
  622. package/lib/calendar/calendar.class.d.ts +0 -50
  623. package/lib/calendar/calendar.class.d.ts.map +0 -1
  624. package/lib/calendar/calendar.component.d.ts +0 -41
  625. package/lib/calendar/calendar.component.d.ts.map +0 -1
  626. package/lib/calendar/calendar.module.d.ts +0 -14
  627. package/lib/calendar/calendar.module.d.ts.map +0 -1
  628. package/lib/calendar/index.d.ts +0 -3
  629. package/lib/calendar/index.d.ts.map +0 -1
  630. package/lib/calendar/inline-calendar.component.d.ts +0 -14
  631. package/lib/calendar/inline-calendar.component.d.ts.map +0 -1
  632. package/lib/carousel/carousel-arrows.component.d.ts +0 -15
  633. package/lib/carousel/carousel-arrows.component.d.ts.map +0 -1
  634. package/lib/carousel/carousel-item.component.d.ts +0 -8
  635. package/lib/carousel/carousel-item.component.d.ts.map +0 -1
  636. package/lib/carousel/carousel-pager.component.d.ts +0 -22
  637. package/lib/carousel/carousel-pager.component.d.ts.map +0 -1
  638. package/lib/carousel/carousel-splidejs.class.d.ts +0 -18
  639. package/lib/carousel/carousel-splidejs.class.d.ts.map +0 -1
  640. package/lib/carousel/carousel.class.d.ts +0 -71
  641. package/lib/carousel/carousel.class.d.ts.map +0 -1
  642. package/lib/carousel/carousel.component.d.ts +0 -110
  643. package/lib/carousel/carousel.component.d.ts.map +0 -1
  644. package/lib/carousel/carousel.module.d.ts +0 -11
  645. package/lib/carousel/carousel.module.d.ts.map +0 -1
  646. package/lib/carousel/index.d.ts +0 -6
  647. package/lib/carousel/index.d.ts.map +0 -1
  648. package/lib/checkbox/checkbox.component.d.ts.map +0 -1
  649. package/lib/checkbox/checkbox.module.d.ts.map +0 -1
  650. package/lib/checkbox/index.d.ts +0 -2
  651. package/lib/checkbox/index.d.ts.map +0 -1
  652. package/lib/collapse/collapse-group.component.d.ts +0 -15
  653. package/lib/collapse/collapse-group.component.d.ts.map +0 -1
  654. package/lib/collapse/collapse.component.d.ts +0 -16
  655. package/lib/collapse/collapse.component.d.ts.map +0 -1
  656. package/lib/collapse/collapse.module.d.ts +0 -9
  657. package/lib/collapse/collapse.module.d.ts.map +0 -1
  658. package/lib/collapse/index.d.ts +0 -3
  659. package/lib/collapse/index.d.ts.map +0 -1
  660. package/lib/datalist/datalist.component.d.ts +0 -25
  661. package/lib/datalist/datalist.component.d.ts.map +0 -1
  662. package/lib/datalist/datalist.module.d.ts +0 -11
  663. package/lib/datalist/datalist.module.d.ts.map +0 -1
  664. package/lib/datalist/index.d.ts +0 -2
  665. package/lib/datalist/index.d.ts.map +0 -1
  666. package/lib/datepicker/datepicker.component.d.ts +0 -151
  667. package/lib/datepicker/datepicker.component.d.ts.map +0 -1
  668. package/lib/datepicker/datepicker.module.d.ts +0 -16
  669. package/lib/datepicker/datepicker.module.d.ts.map +0 -1
  670. package/lib/datepicker/index.d.ts +0 -2
  671. package/lib/datepicker/index.d.ts.map +0 -1
  672. package/lib/decorators/addon.component.d.ts +0 -8
  673. package/lib/decorators/addon.component.d.ts.map +0 -1
  674. package/lib/decorators/content.component.d.ts.map +0 -1
  675. package/lib/decorators/decorators.module.d.ts +0 -12
  676. package/lib/decorators/decorators.module.d.ts.map +0 -1
  677. package/lib/decorators/header.component.d.ts +0 -8
  678. package/lib/decorators/header.component.d.ts.map +0 -1
  679. package/lib/decorators/index.d.ts +0 -7
  680. package/lib/decorators/index.d.ts.map +0 -1
  681. package/lib/decorators/prefix.component.d.ts +0 -8
  682. package/lib/decorators/prefix.component.d.ts.map +0 -1
  683. package/lib/decorators/suffix.component.d.ts +0 -8
  684. package/lib/decorators/suffix.component.d.ts.map +0 -1
  685. package/lib/dialog/dialog.class.d.ts +0 -12
  686. package/lib/dialog/dialog.class.d.ts.map +0 -1
  687. package/lib/dialog/dialog.component.d.ts.map +0 -1
  688. package/lib/dialog/dialog.module.d.ts.map +0 -1
  689. package/lib/dialog/dialog.service.d.ts.map +0 -1
  690. package/lib/dialog/index.d.ts +0 -4
  691. package/lib/dialog/index.d.ts.map +0 -1
  692. package/lib/drawer/drawer-container.component.d.ts.map +0 -1
  693. package/lib/drawer/drawer-content.component.d.ts +0 -8
  694. package/lib/drawer/drawer-content.component.d.ts.map +0 -1
  695. package/lib/drawer/drawer.component.d.ts.map +0 -1
  696. package/lib/drawer/drawer.module.d.ts.map +0 -1
  697. package/lib/drawer/index.d.ts +0 -4
  698. package/lib/drawer/index.d.ts.map +0 -1
  699. package/lib/dropdown/dropdown-panel.component.d.ts +0 -27
  700. package/lib/dropdown/dropdown-panel.component.d.ts.map +0 -1
  701. package/lib/dropdown/dropdown.module.d.ts.map +0 -1
  702. package/lib/dropdown/index.d.ts +0 -2
  703. package/lib/dropdown/index.d.ts.map +0 -1
  704. package/lib/form/form-field.component.d.ts +0 -8
  705. package/lib/form/form-field.component.d.ts.map +0 -1
  706. package/lib/form/form-field.module.d.ts +0 -10
  707. package/lib/form/form-field.module.d.ts.map +0 -1
  708. package/lib/form/form-hint.component.d.ts +0 -8
  709. package/lib/form/form-hint.component.d.ts.map +0 -1
  710. package/lib/form/form.component.d.ts +0 -21
  711. package/lib/form/form.component.d.ts.map +0 -1
  712. package/lib/form/index.d.ts +0 -4
  713. package/lib/form/index.d.ts.map +0 -1
  714. package/lib/icon/icon.component.d.ts +0 -10
  715. package/lib/icon/icon.component.d.ts.map +0 -1
  716. package/lib/icon/icon.module.d.ts +0 -8
  717. package/lib/icon/icon.module.d.ts.map +0 -1
  718. package/lib/icon/index.d.ts +0 -2
  719. package/lib/icon/index.d.ts.map +0 -1
  720. package/lib/input-mask/index.d.ts +0 -2
  721. package/lib/input-mask/index.d.ts.map +0 -1
  722. package/lib/input-mask/input-mask.component.d.ts +0 -25
  723. package/lib/input-mask/input-mask.component.d.ts.map +0 -1
  724. package/lib/input-mask/input-mask.module.d.ts +0 -10
  725. package/lib/input-mask/input-mask.module.d.ts.map +0 -1
  726. package/lib/label/index.d.ts +0 -2
  727. package/lib/label/index.d.ts.map +0 -1
  728. package/lib/label/label.component.d.ts.map +0 -1
  729. package/lib/label/label.module.d.ts.map +0 -1
  730. package/lib/loading/index.d.ts +0 -5
  731. package/lib/loading/index.d.ts.map +0 -1
  732. package/lib/loading/loading-spinner.component.d.ts +0 -6
  733. package/lib/loading/loading-spinner.component.d.ts.map +0 -1
  734. package/lib/loading/loading.component.d.ts +0 -21
  735. package/lib/loading/loading.component.d.ts.map +0 -1
  736. package/lib/loading/loading.directive.d.ts +0 -22
  737. package/lib/loading/loading.directive.d.ts.map +0 -1
  738. package/lib/loading/loading.module.d.ts.map +0 -1
  739. package/lib/loading/loading.service.d.ts.map +0 -1
  740. package/lib/menu/index.d.ts +0 -2
  741. package/lib/menu/index.d.ts.map +0 -1
  742. package/lib/menu/menu.component.d.ts.map +0 -1
  743. package/lib/menu/menu.module.d.ts.map +0 -1
  744. package/lib/number-box/index.d.ts +0 -2
  745. package/lib/number-box/index.d.ts.map +0 -1
  746. package/lib/number-box/number-box.component.d.ts.map +0 -1
  747. package/lib/number-box/number-box.module.d.ts.map +0 -1
  748. package/lib/page/base-page.class.d.ts +0 -45
  749. package/lib/page/base-page.class.d.ts.map +0 -1
  750. package/lib/page/index.d.ts +0 -5
  751. package/lib/page/index.d.ts.map +0 -1
  752. package/lib/page/page-footer.component.d.ts.map +0 -1
  753. package/lib/page/page-header.component.d.ts +0 -7
  754. package/lib/page/page-header.component.d.ts.map +0 -1
  755. package/lib/page/page.component.d.ts.map +0 -1
  756. package/lib/page/page.module.d.ts.map +0 -1
  757. package/lib/password-box/index.d.ts +0 -2
  758. package/lib/password-box/index.d.ts.map +0 -1
  759. package/lib/password-box/password-box.component.d.ts.map +0 -1
  760. package/lib/password-box/password-box.module.d.ts.map +0 -1
  761. package/lib/picker/index.d.ts +0 -2
  762. package/lib/picker/index.d.ts.map +0 -1
  763. package/lib/picker/picker.component.d.ts +0 -25
  764. package/lib/picker/picker.component.d.ts.map +0 -1
  765. package/lib/picker/picker.module.d.ts +0 -9
  766. package/lib/picker/picker.module.d.ts.map +0 -1
  767. package/lib/popover/index.d.ts +0 -2
  768. package/lib/popover/index.d.ts.map +0 -1
  769. package/lib/popover/popover.component.d.ts.map +0 -1
  770. package/lib/popover/popover.module.d.ts.map +0 -1
  771. package/lib/popup/index.d.ts +0 -3
  772. package/lib/popup/index.d.ts.map +0 -1
  773. package/lib/popup/popup.component.d.ts.map +0 -1
  774. package/lib/popup/popup.module.d.ts.map +0 -1
  775. package/lib/popup/popup.service.d.ts.map +0 -1
  776. package/lib/progress-bar/index.d.ts +0 -2
  777. package/lib/progress-bar/index.d.ts.map +0 -1
  778. package/lib/progress-bar/progress-bar.component.d.ts.map +0 -1
  779. package/lib/progress-bar/progress-bar.module.d.ts.map +0 -1
  780. package/lib/radio/index.d.ts +0 -2
  781. package/lib/radio/index.d.ts.map +0 -1
  782. package/lib/radio/radio.component.d.ts +0 -17
  783. package/lib/radio/radio.component.d.ts.map +0 -1
  784. package/lib/radio/radio.module.d.ts +0 -9
  785. package/lib/radio/radio.module.d.ts.map +0 -1
  786. package/lib/range-slider/index.d.ts +0 -2
  787. package/lib/range-slider/index.d.ts.map +0 -1
  788. package/lib/range-slider/range-slider.component.d.ts +0 -8
  789. package/lib/range-slider/range-slider.component.d.ts.map +0 -1
  790. package/lib/range-slider/range-slider.module.d.ts +0 -8
  791. package/lib/range-slider/range-slider.module.d.ts.map +0 -1
  792. package/lib/rating/index.d.ts +0 -2
  793. package/lib/rating/index.d.ts.map +0 -1
  794. package/lib/rating/rating.component.d.ts +0 -21
  795. package/lib/rating/rating.component.d.ts.map +0 -1
  796. package/lib/rating/rating.component.module.d.ts +0 -8
  797. package/lib/rating/rating.component.module.d.ts.map +0 -1
  798. package/lib/result/index.d.ts +0 -2
  799. package/lib/result/index.d.ts.map +0 -1
  800. package/lib/result/result.component.d.ts +0 -12
  801. package/lib/result/result.component.d.ts.map +0 -1
  802. package/lib/result/result.module.d.ts +0 -8
  803. package/lib/result/result.module.d.ts.map +0 -1
  804. package/lib/selectbox/index.d.ts +0 -2
  805. package/lib/selectbox/index.d.ts.map +0 -1
  806. package/lib/selectbox/selectbox.component.d.ts.map +0 -1
  807. package/lib/selectbox/selectbox.module.d.ts.map +0 -1
  808. package/lib/selection-list/index.d.ts +0 -2
  809. package/lib/selection-list/index.d.ts.map +0 -1
  810. package/lib/selection-list/selection-list.component.d.ts.map +0 -1
  811. package/lib/selection-list/selection-list.module.d.ts.map +0 -1
  812. package/lib/switch/index.d.ts +0 -2
  813. package/lib/switch/index.d.ts.map +0 -1
  814. package/lib/switch/switch.component.d.ts.map +0 -1
  815. package/lib/switch/switch.module.d.ts.map +0 -1
  816. package/lib/tabs/index.d.ts +0 -5
  817. package/lib/tabs/index.d.ts.map +0 -1
  818. package/lib/tabs/tab-content.directive.d.ts +0 -11
  819. package/lib/tabs/tab-content.directive.d.ts.map +0 -1
  820. package/lib/tabs/tab-item.component.d.ts +0 -49
  821. package/lib/tabs/tab-item.component.d.ts.map +0 -1
  822. package/lib/tabs/tabs.class.d.ts +0 -6
  823. package/lib/tabs/tabs.class.d.ts.map +0 -1
  824. package/lib/tabs/tabs.component.d.ts +0 -24
  825. package/lib/tabs/tabs.component.d.ts.map +0 -1
  826. package/lib/tabs/tabs.module.d.ts +0 -12
  827. package/lib/tabs/tabs.module.d.ts.map +0 -1
  828. package/lib/textarea/index.d.ts +0 -2
  829. package/lib/textarea/index.d.ts.map +0 -1
  830. package/lib/textarea/textarea.component.d.ts.map +0 -1
  831. package/lib/textarea/textarea.module.d.ts.map +0 -1
  832. package/lib/textbox/index.d.ts +0 -2
  833. package/lib/textbox/index.d.ts.map +0 -1
  834. package/lib/textbox/textbox.component.d.ts.map +0 -1
  835. package/lib/textbox/textbox.module.d.ts.map +0 -1
  836. package/lib/time-box/index.d.ts +0 -2
  837. package/lib/time-box/index.d.ts.map +0 -1
  838. package/lib/time-box/time-box.component.d.ts +0 -48
  839. package/lib/time-box/time-box.component.d.ts.map +0 -1
  840. package/lib/time-box/time-box.module.d.ts +0 -11
  841. package/lib/time-box/time-box.module.d.ts.map +0 -1
  842. package/lib/toast/index.d.ts +0 -4
  843. package/lib/toast/index.d.ts.map +0 -1
  844. package/lib/toast/toast.class.d.ts +0 -14
  845. package/lib/toast/toast.class.d.ts.map +0 -1
  846. package/lib/toast/toast.component.d.ts +0 -24
  847. package/lib/toast/toast.component.d.ts.map +0 -1
  848. package/lib/toast/toast.module.d.ts.map +0 -1
  849. package/lib/toast/toast.service.d.ts.map +0 -1
  850. package/lib/tooltip/index.d.ts +0 -3
  851. package/lib/tooltip/index.d.ts.map +0 -1
  852. package/lib/tooltip/tooltip.component.d.ts +0 -10
  853. package/lib/tooltip/tooltip.component.d.ts.map +0 -1
  854. package/lib/tooltip/tooltip.directive.d.ts.map +0 -1
  855. package/lib/tooltip/tooltip.module.d.ts.map +0 -1
  856. package/lib/treeview/index.d.ts +0 -2
  857. package/lib/treeview/index.d.ts.map +0 -1
  858. package/lib/treeview/tree-view.component.d.ts +0 -33
  859. package/lib/treeview/tree-view.component.d.ts.map +0 -1
  860. package/lib/treeview/tree-view.module.d.ts +0 -9
  861. package/lib/treeview/tree-view.module.d.ts.map +0 -1
  862. package/lib/validation/index.d.ts +0 -2
  863. package/lib/validation/index.d.ts.map +0 -1
  864. package/lib/validation/validation-rule.widget.d.ts.map +0 -1
  865. package/lib/validation/validation.class.d.ts.map +0 -1
  866. package/lib/validation/validation.module.d.ts.map +0 -1
  867. package/public-api.d.ts.map +0 -1
@@ -0,0 +1,705 @@
1
+ import { Input, ViewChild, Output, EventEmitter, ViewEncapsulation, Component, ElementRef, ContentChild, ChangeDetectorRef } from '@angular/core';
2
+ import { AXDropdownComponent } from '../dropdown/dropdown.component';
3
+ import { AXTextBoxComponent } from '../textbox/textbox.component';
4
+ import { AXValidatableComponent } from '../base/element.class';
5
+ import { AXDateTime, AXConfig } from '@acorex/core';
6
+ import { AXValueEvent } from '../base/events.class';
7
+ import { AXValidation } from '../validation/validation.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../dropdown/dropdown.component";
10
+ import * as i2 from "../textbox/textbox.component";
11
+ import * as i3 from "../calendar/calendar-box/calendar-box.component";
12
+ import * as i4 from "../button/button.component";
13
+ import * as i5 from "angular2-text-mask";
14
+ import * as i6 from "@angular/common";
15
+ export class AXDataPickerChangeEvent extends AXValueEvent {
16
+ }
17
+ export class AXDatePickerComponent extends AXValidatableComponent {
18
+ constructor(ref, cdr) {
19
+ super();
20
+ this.ref = ref;
21
+ this.cdr = cdr;
22
+ this.dayStyle = [];
23
+ this.dayMinMaxResoan = '';
24
+ // mmddyyyy: any = [/[0-1]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];
25
+ this.yyyyMMdd = [/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-3]/, /[0-9]/];
26
+ this.ddMMyyyy = [/[0-3]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[1-9]/, /[0-9]/, /[0-9]/, /[0-9]/];
27
+ this.yyyyddMM = [/[1-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '-', /[0-3]/, /[0-9]/, '-', /[0-1]/, /[0-9]/];
28
+ this.placeholder = '';
29
+ this.allowClear = false;
30
+ this.textAlign = null;
31
+ this.showToday = false;
32
+ this.selectableHoliday = true;
33
+ this.showTodayButton = true;
34
+ this.openByClick = false;
35
+ this.cursorPosition = 0;
36
+ this.model = null;
37
+ this._renderPicker = false;
38
+ this.size = 'md';
39
+ this.typeChange = new EventEmitter();
40
+ this._type = 'gregorian';
41
+ this.userChange = false;
42
+ this.onValueChanged = new EventEmitter();
43
+ this.valueChange = new EventEmitter();
44
+ // set defaults
45
+ if (AXConfig.get('dateTime.type')) {
46
+ this.type = AXConfig.get('dateTime.type');
47
+ }
48
+ }
49
+ get validation() {
50
+ return this._validation ? this._validation : this._contentValidation;
51
+ }
52
+ set validation(v) {
53
+ this._validation = v;
54
+ }
55
+ get type() {
56
+ return this._type;
57
+ }
58
+ set type(v) {
59
+ if (v != this._type) {
60
+ this._type = v;
61
+ if (this._value) {
62
+ this.value = this._value.date;
63
+ }
64
+ this._setDateType();
65
+ this.typeChange.emit(v);
66
+ }
67
+ }
68
+ selectToday() {
69
+ this.value = new Date();
70
+ }
71
+ focus() {
72
+ // this.dropdown.focus();
73
+ this.input.focus();
74
+ }
75
+ convertMaskToDate(text) {
76
+ if (this.type == 'jalali') {
77
+ var d = new AXDateTime().convertStringToGregorian(text, 'YYYY/M/D');
78
+ }
79
+ else {
80
+ var d = new Date(new AXDateTime(text, 'gregorian').toISOString());
81
+ }
82
+ return d;
83
+ }
84
+ convertMask(date) {
85
+ let y;
86
+ let m;
87
+ let d;
88
+ switch (this.dateType.mask) {
89
+ case this.yyyyMMdd:
90
+ y = date.slice(0, 4);
91
+ m = date.slice(5, 7);
92
+ d = date.slice(8, 10);
93
+ break;
94
+ case this.ddMMyyyy:
95
+ y = date.slice(6, 10);
96
+ m = date.slice(3, 5);
97
+ d = date.slice(0, 2);
98
+ break;
99
+ case this.yyyyddMM:
100
+ y = date.slice(0, 4);
101
+ m = date.slice(8, 10);
102
+ d = date.slice(5, 7);
103
+ break;
104
+ }
105
+ return { year: y, monnth: m, day: d };
106
+ }
107
+ textChange(e) {
108
+ this.text = e.value;
109
+ const date = this.convertMask(this.text);
110
+ if (this.text && this.text.indexOf('_') === -1 && this.text.length == 10 && this.type == 'jalali') {
111
+ this.userChange = e.isUserChange;
112
+ this.value = this.convertMaskToDate(date.year + '-' + date.monnth + '-' + date.day);
113
+ }
114
+ else if (this.text && this.text.indexOf('_') === -1 && this.text.length == 10 && this.type == 'gregorian') {
115
+ this.userChange = e.isUserChange;
116
+ this.value = this.convertMaskToDate(date.year + '-' + date.monnth + '-' + date.day);
117
+ }
118
+ }
119
+ ngOnInit() {
120
+ this._setDateType();
121
+ }
122
+ ngAfterViewInit() {
123
+ setTimeout(() => {
124
+ this.text = this._value?.toString();
125
+ if (this.showToday && !this.value) {
126
+ this.selectToday();
127
+ }
128
+ if (this.dropdown.dropdownWidth > 200 || this.dropdown.dropdownWidth < 200) {
129
+ this.dropdown.dropdownWidth = 320;
130
+ }
131
+ this.cdr.markForCheck();
132
+ });
133
+ }
134
+ ngAfterContentInit() {
135
+ this.initValidation(this.ref, 'value', this.validation);
136
+ }
137
+ clear() {
138
+ this.userChange = true;
139
+ this.value = null;
140
+ }
141
+ get value() {
142
+ return this._value?.date;
143
+ }
144
+ set value(v) {
145
+ this.validate();
146
+ const oldValue = this._value;
147
+ const old = this.value;
148
+ if (v) {
149
+ this._value = new AXDateTime(v, this.type);
150
+ }
151
+ else {
152
+ this._value = null;
153
+ }
154
+ let unValidDate = false;
155
+ if (this.max || this.min) {
156
+ unValidDate = this.isInMInMaxRange(AXDateTime.convert(v));
157
+ }
158
+ if (!unValidDate) {
159
+ if ((!v && oldValue) || (this._value && !this._value.equal(oldValue, 'day'))) {
160
+ this.text = this._value?.toString();
161
+ setTimeout(() => {
162
+ this.valueChange.emit(v);
163
+ this.onValueChanged.emit({
164
+ component: this,
165
+ oldValue: old,
166
+ value: v,
167
+ isUserChange: this.userChange
168
+ });
169
+ }, 100);
170
+ }
171
+ }
172
+ else {
173
+ this.text = '';
174
+ }
175
+ this.userChange = false;
176
+ }
177
+ _setDateType() {
178
+ switch (this.dateType) {
179
+ case 'yyyyMMdd':
180
+ this.dateType = {
181
+ guide: true,
182
+ showMask: true,
183
+ mask: this.yyyyMMdd,
184
+ keepCharPositions: true
185
+ };
186
+ break;
187
+ case 'ddMMyyyy':
188
+ this.dateType = {
189
+ guide: true,
190
+ showMask: true,
191
+ mask: this.ddMMyyyy,
192
+ keepCharPositions: true
193
+ };
194
+ break;
195
+ case 'yyyyddMM':
196
+ this.dateType = {
197
+ guide: true,
198
+ showMask: true,
199
+ mask: this.yyyyddMM,
200
+ keepCharPositions: true
201
+ };
202
+ break;
203
+ default:
204
+ if (this.type == 'gregorian') {
205
+ this.dateType = {
206
+ guide: true,
207
+ showMask: true,
208
+ mask: this.ddMMyyyy,
209
+ keepCharPositions: true
210
+ };
211
+ }
212
+ else if (this.type == 'jalali') {
213
+ this.dateType = {
214
+ guide: true,
215
+ showMask: true,
216
+ mask: this.yyyyMMdd,
217
+ keepCharPositions: true
218
+ };
219
+ }
220
+ break;
221
+ }
222
+ }
223
+ isInMInMaxRange(d) {
224
+ let r = false;
225
+ if (d !== undefined) {
226
+ if (this.min && !this.max) {
227
+ r = d.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1;
228
+ }
229
+ if (this.max && !this.min) {
230
+ r = d.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1;
231
+ }
232
+ if (this.min && this.max) {
233
+ r =
234
+ d.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1 ||
235
+ d.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1;
236
+ }
237
+ }
238
+ return r;
239
+ }
240
+ onDateChange(e) {
241
+ this.userChange = true;
242
+ this.dropdown.close();
243
+ //this.clearValidationStyle(this.ref.nativeElement);
244
+ }
245
+ onClick(e) {
246
+ this.userChange = true;
247
+ this.dropdown.close();
248
+ }
249
+ onStartfocus() {
250
+ if (this.text == undefined || this.text == null || this.text == '') {
251
+ this.input.input.nativeElement.style.caretColor = 'transparent';
252
+ setTimeout(() => {
253
+ this.setCaretPosition(this.input.input.nativeElement, 0);
254
+ this.cursorPosition = 0;
255
+ this.input.input.nativeElement.style.caretColor = 'auto';
256
+ }, 0);
257
+ }
258
+ }
259
+ handleInputFocus() {
260
+ if (this.openByClick) {
261
+ this._renderPicker = true;
262
+ this.dropdown.open();
263
+ }
264
+ else {
265
+ this.onStartfocus();
266
+ }
267
+ // this.input.input.nativeElement.focus();
268
+ }
269
+ handleInputBlur() {
270
+ if (this.text && this.text.indexOf('_') != -1) {
271
+ this.text = '';
272
+ this.value = null;
273
+ }
274
+ }
275
+ handleButtonClick() {
276
+ this._renderPicker = true;
277
+ setTimeout(() => {
278
+ this.dropdown.toggle();
279
+ });
280
+ }
281
+ handleKeyPress(e) {
282
+ if (e.type == 'keydown' || e.type == 'keypress' || e.type == 'keyup') {
283
+ if (e.key === 'Delete') {
284
+ e.preventDefault();
285
+ }
286
+ if (e.key === 'Backspace') {
287
+ }
288
+ if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {
289
+ if (this.input.input.nativeElement.selectionStart || this.input.input.nativeElement.selectionStart === 0) {
290
+ this.cursorPosition = this.input.input.nativeElement.selectionStart;
291
+ }
292
+ }
293
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
294
+ e.preventDefault();
295
+ e.stopPropagation();
296
+ }
297
+ }
298
+ const inputChar = String.fromCharCode(e.charCode);
299
+ if (this.text != undefined) {
300
+ const ind1 = this.text.charAt(0);
301
+ const ind2 = this.text.charAt(1);
302
+ const ind3 = this.text.charAt(2);
303
+ const ind4 = this.text.charAt(3);
304
+ const ind5 = this.text.charAt(4);
305
+ const ind6 = this.text.charAt(5);
306
+ const ind7 = this.text.charAt(6);
307
+ const ind8 = this.text.charAt(7);
308
+ const ind9 = this.text.charAt(8);
309
+ const ind10 = this.text.charAt(9);
310
+ switch (this.dateType.mask) {
311
+ case this.yyyyMMdd:
312
+ if (e.type == 'keypress') {
313
+ this.handleClick();
314
+ if ((ind6 == '1' && ind7 == '_' && inputChar >= '3') ||
315
+ (((ind6 == '0' && ind7 == '_') || (ind9 == '0' && ind10 == '_')) && inputChar == '0')) {
316
+ e.preventDefault();
317
+ }
318
+ else if (ind9 == '3' && ind10 == '_') {
319
+ if (ind6 + ind7 <= '06' && inputChar >= '2') {
320
+ e.preventDefault();
321
+ }
322
+ else if (ind6 + ind7 > '06' && inputChar >= '1') {
323
+ e.preventDefault();
324
+ }
325
+ }
326
+ }
327
+ if (this.text.indexOf('_') === -1 && this.text !== '') {
328
+ if (e.type === 'keydown') {
329
+ if (e.key === 'ArrowUp') {
330
+ if (this.cursorPosition <= 4) {
331
+ this.text = String(Number(ind1 + ind2 + ind3 + ind4) + 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
332
+ }
333
+ if (this.cursorPosition >= 5 && this.cursorPosition <= 7) {
334
+ if (Number(ind6 + ind7) < 12) {
335
+ if (Number(ind6 + ind7) < 9) {
336
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;
337
+ }
338
+ else {
339
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;
340
+ }
341
+ }
342
+ else {
343
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '01' + ind8 + ind9 + ind10;
344
+ }
345
+ }
346
+ if (this.cursorPosition >= 8) {
347
+ if (Number(ind9 + ind10) < 31) {
348
+ if (Number(ind9 + ind10) < 9) {
349
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) + 1);
350
+ }
351
+ else {
352
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) + 1);
353
+ }
354
+ }
355
+ else {
356
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '01';
357
+ }
358
+ }
359
+ // this.input.input.nativeElement.style.caretColor = 'transparent';
360
+ // setTimeout(() => {
361
+ // this.setCaret();
362
+ // e.preventDefault();
363
+ // this.input.input.nativeElement.style.caretColor = 'auto';
364
+ // }, 0);
365
+ // e.preventDefault();
366
+ }
367
+ else if (e.key === 'ArrowDown') {
368
+ if (this.cursorPosition <= 4) {
369
+ this.text = String(Number(ind1 + ind2 + ind3 + ind4) - 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
370
+ }
371
+ else if (this.cursorPosition > 4 && this.cursorPosition <= 7) {
372
+ if (Number(ind6 + ind7) > 1) {
373
+ if (Number(ind6 + ind7) < 11) {
374
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;
375
+ }
376
+ else {
377
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;
378
+ }
379
+ }
380
+ else {
381
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '12' + ind8 + ind9 + ind10;
382
+ }
383
+ }
384
+ else if (this.cursorPosition >= 8) {
385
+ if (Number(ind9 + ind10) > 1) {
386
+ if (Number(ind9 + ind10) < 11) {
387
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) - 1);
388
+ }
389
+ else {
390
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) - 1);
391
+ }
392
+ }
393
+ else {
394
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '31';
395
+ }
396
+ }
397
+ // this.input.input.nativeElement.style.caretColor = 'transparent';
398
+ // setTimeout(() => {
399
+ // this.setCaret();
400
+ // this.input.input.nativeElement.style.caretColor = 'auto';
401
+ // }, 0);
402
+ }
403
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
404
+ this.input.input.nativeElement.style.caretColor = 'transparent';
405
+ e.preventDefault();
406
+ e.stopPropagation();
407
+ return false;
408
+ }
409
+ }
410
+ }
411
+ if (e.type === 'keyup') {
412
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
413
+ this.setCaret();
414
+ this.input.input.nativeElement.style.caretColor = 'auto';
415
+ e.preventDefault();
416
+ e.stopPropagation();
417
+ }
418
+ }
419
+ break;
420
+ case this.ddMMyyyy:
421
+ if (e.type === 'keypress') {
422
+ this.handleClick();
423
+ if ((ind4 == '1' && ind5 == '_' && inputChar >= '3') ||
424
+ (((ind1 == '0' && ind2 == '_') || (ind4 == '0' && ind5 == '_')) && inputChar == '0')) {
425
+ e.preventDefault();
426
+ }
427
+ else {
428
+ if (ind1 == '3' && ind2 == '_' && inputChar >= '2') {
429
+ e.preventDefault();
430
+ }
431
+ }
432
+ }
433
+ if (this.text.indexOf('_') === -1 && this.text !== '') {
434
+ if (e.type === 'keydown') {
435
+ if (e.key === 'ArrowUp') {
436
+ if (this.cursorPosition >= 6) {
437
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + String(Number(ind7 + ind8 + ind9 + ind10) + 1);
438
+ }
439
+ if (this.cursorPosition > 2 && this.cursorPosition <= 5) {
440
+ if (Number(ind4 + ind5) < 12) {
441
+ if (Number(ind4 + ind5) < 9) {
442
+ this.text = ind1 + ind2 + ind3 + '0' + String(Number(ind4 + ind5) + 1) + ind6 + ind7 + ind8 + ind9 + ind10;
443
+ }
444
+ else {
445
+ this.text = ind1 + ind2 + ind3 + String(Number(ind4 + ind5) + 1) + ind6 + ind7 + ind8 + ind9 + ind10;
446
+ }
447
+ }
448
+ else {
449
+ this.text = ind1 + ind2 + ind3 + '01' + ind6 + ind7 + ind8 + ind9 + ind10;
450
+ }
451
+ }
452
+ if (this.cursorPosition <= 2) {
453
+ if (Number(ind1 + ind2) < 31) {
454
+ if (Number(ind1 + ind2) < 9) {
455
+ this.text = '0' + String(Number(ind1 + ind2) + 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
456
+ }
457
+ else {
458
+ this.text = String(Number(ind1 + ind2) + 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
459
+ }
460
+ }
461
+ else {
462
+ this.text = '01' + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
463
+ }
464
+ }
465
+ // this.input.input.nativeElement.style.caretColor = 'transparent';
466
+ // setTimeout(() => {
467
+ // this.setCaret();
468
+ // this.input.input.nativeElement.style.caretColor = 'auto';
469
+ // }, 0);
470
+ }
471
+ else if (e.key === 'ArrowDown') {
472
+ if (this.cursorPosition >= 6) {
473
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + String(Number(ind7 + ind8 + ind9 + ind10) - 1);
474
+ }
475
+ else if (this.cursorPosition > 2 && this.cursorPosition <= 5) {
476
+ if (Number(ind4 + ind5) > 1) {
477
+ if (Number(ind4 + ind5) < 11) {
478
+ this.text = ind1 + ind2 + ind3 + '0' + String(Number(ind4 + ind5) - 1) + ind6 + ind7 + ind8 + ind9 + ind10;
479
+ }
480
+ else {
481
+ this.text = ind1 + ind2 + ind3 + String(Number(ind4 + ind5) - 1) + ind6 + ind7 + ind8 + ind9 + ind10;
482
+ }
483
+ }
484
+ else {
485
+ this.text = ind1 + ind2 + ind3 + '12' + ind6 + ind7 + ind8 + ind9 + ind10;
486
+ }
487
+ }
488
+ else if (this.cursorPosition <= 2) {
489
+ if (Number(ind1 + ind2) > 1) {
490
+ if (Number(ind1 + ind2) < 11) {
491
+ this.text = '0' + String(Number(ind1 + ind2) - 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
492
+ }
493
+ else {
494
+ this.text = String(Number(ind1 + ind2) - 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
495
+ }
496
+ }
497
+ else {
498
+ this.text = '31' + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
499
+ }
500
+ }
501
+ // this.input.input.nativeElement.style.caretColor = 'transparent';
502
+ // setTimeout(() => {
503
+ // this.setCaret();
504
+ // this.input.input.nativeElement.style.caretColor = 'auto';
505
+ // }, 0);
506
+ }
507
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
508
+ this.input.input.nativeElement.style.caretColor = 'transparent';
509
+ e.preventDefault();
510
+ e.stopPropagation();
511
+ return false;
512
+ }
513
+ }
514
+ }
515
+ if (e.type === 'keyup') {
516
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
517
+ this.setCaret();
518
+ this.input.input.nativeElement.style.caretColor = 'auto';
519
+ e.preventDefault();
520
+ e.stopPropagation();
521
+ }
522
+ }
523
+ break;
524
+ case this.yyyyddMM:
525
+ if (e.type === 'keypress') {
526
+ if ((ind9 === '1' && ind10 == '_' && inputChar >= '3') ||
527
+ (((ind6 == '0' && ind7 == '_') || (ind9 == '0' && ind10)) && inputChar == '0')) {
528
+ e.preventDefault();
529
+ }
530
+ else if (ind6 == '3' && ind7 == '_' && inputChar >= '2') {
531
+ e.preventDefault();
532
+ }
533
+ setTimeout(() => {
534
+ this.handleClick();
535
+ }, 0);
536
+ }
537
+ if (this.text.indexOf('_') === -1 && this.text !== '') {
538
+ if (e.type === 'keydown') {
539
+ if (e.key === 'ArrowUp') {
540
+ if (this.cursorPosition <= 4) {
541
+ this.text = String(Number(ind1 + ind2 + ind3 + ind4) + 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
542
+ }
543
+ if (this.cursorPosition > 4 && this.cursorPosition <= 7) {
544
+ if (Number(ind6 + ind7) < 31) {
545
+ if (Number(ind6 + ind7) < 9) {
546
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;
547
+ }
548
+ else {
549
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;
550
+ }
551
+ }
552
+ else {
553
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '01' + ind8 + ind9 + ind10;
554
+ }
555
+ }
556
+ if (this.cursorPosition >= 8) {
557
+ if (Number(ind9 + ind10) < 12) {
558
+ if (Number(ind9 + ind10) < 9) {
559
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) + 1);
560
+ }
561
+ else {
562
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) + 1);
563
+ }
564
+ }
565
+ else {
566
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '01';
567
+ }
568
+ }
569
+ // this.input.input.nativeElement.style.caretColor = 'transparent';
570
+ // setTimeout(() => {
571
+ // this.setCaret();
572
+ // this.input.input.nativeElement.style.caretColor = 'auto';
573
+ // }, 0);
574
+ }
575
+ else if (e.key === 'ArrowDown') {
576
+ if (this.cursorPosition <= 4) {
577
+ this.text = String(Number(ind1 + ind2 + ind3 + ind4) - 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;
578
+ }
579
+ else if (this.cursorPosition > 4 && this.cursorPosition <= 7) {
580
+ if (Number(ind6 + ind7) > 1) {
581
+ if (Number(ind6 + ind7) < 11) {
582
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;
583
+ }
584
+ else {
585
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;
586
+ }
587
+ }
588
+ else {
589
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '31' + ind8 + ind9 + ind10;
590
+ }
591
+ }
592
+ else if (this.cursorPosition >= 8) {
593
+ if (Number(ind9 + ind10) > 1) {
594
+ if (Number(ind9 + ind10) < 11) {
595
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) - 1);
596
+ }
597
+ else {
598
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) - 1);
599
+ }
600
+ }
601
+ else {
602
+ this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '12';
603
+ }
604
+ }
605
+ // this.input.input.nativeElement.style.caretColor = 'transparent';
606
+ // setTimeout(() => {
607
+ // this.setCaret();
608
+ // this.input.input.nativeElement.style.caretColor = 'auto';
609
+ // }, 0);
610
+ }
611
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
612
+ this.input.input.nativeElement.style.caretColor = 'transparent';
613
+ e.preventDefault();
614
+ e.stopPropagation();
615
+ return false;
616
+ }
617
+ }
618
+ }
619
+ if (e.type === 'keyup') {
620
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
621
+ this.setCaret();
622
+ this.input.input.nativeElement.style.caretColor = 'auto';
623
+ e.preventDefault();
624
+ e.stopPropagation();
625
+ }
626
+ }
627
+ break;
628
+ default:
629
+ break;
630
+ }
631
+ }
632
+ }
633
+ handleClick() {
634
+ if (this.input.input.nativeElement.selectionStart || this.input.input.nativeElement.selectionStart === 0) {
635
+ this.cursorPosition = this.input.input.nativeElement.selectionStart;
636
+ }
637
+ }
638
+ setCaretPosition(ctrl, pos) {
639
+ if (ctrl.setSelectionRange) {
640
+ ctrl.focus();
641
+ ctrl.setSelectionRange(pos, pos);
642
+ }
643
+ }
644
+ setCaret() {
645
+ this.setCaretPosition(this.input.input.nativeElement, this.cursorPosition);
646
+ }
647
+ }
648
+ AXDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXDatePickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
649
+ AXDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXDatePickerComponent, selector: "ax-date-picker", inputs: { dayStyle: "dayStyle", dayMinMaxResoan: "dayMinMaxResoan", validation: "validation", placeholder: "placeholder", min: "min", max: "max", readonly: "readonly", disabled: "disabled", allowClear: "allowClear", textAlign: "textAlign", showToday: "showToday", selectableHoliday: "selectableHoliday", dateType: "dateType", showTodayButton: "showTodayButton", openByClick: "openByClick", size: "size", type: "type", value: "value" }, outputs: { typeChange: "typeChange", onValueChanged: "onValueChanged", valueChange: "valueChange" }, host: { styleAttribute: "width: 100%" }, providers: [{ provide: AXValidatableComponent, useExisting: AXDatePickerComponent }], queries: [{ propertyName: "_contentValidation", first: true, predicate: AXValidation, descendants: true, static: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-drop-down [readonly]=\"readonly\" [fitParent]=\"true\" [size]=\"size\" [showDropDownButton]=\"false\"\r\n icon=\"far fa-calendar-alt\" #dropdown maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <ax-text-box #input [textAlign]=\"textAlign\" [(value)]=\"text\" [readonly]=\"false\" [textMask]=\"dateType\"\r\n [disabled]=\"disabled\" [placeholder]=\"placeholder\" [size]=\"size\" (onkey)=\"handleKeyPress($event)\"\r\n (onFocus)=\"handleInputFocus()\" (click)=\"handleClick()\" (onBlur)=\"handleInputBlur()\"\r\n (onValueChanged)=\"textChange($event)\"></ax-text-box>\r\n </ng-container>\r\n <ng-container panel>\r\n <ax-calendar-box *ngIf=\"_renderPicker\" [showTodayButton]=\"showTodayButton\"\r\n [selectableHoliday]=\"selectableHoliday\" [min]=\"min\" [max]=\"max\" [size]=\"size\" (onClick)=\"onClick($event)\"\r\n (onValueChanged)=\"onDateChange($event)\" [type]=\"type\" [(value)]=\"value\" [dayStyle]=\"dayStyle\"\r\n [dayMinMaxResoan]=\"dayMinMaxResoan\">\r\n </ax-calendar-box>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end *ngIf=\"allowClear && value\" [disabled]=\"disabled\" icon=\"far fa-times icon\" type=\"blank danger\"\r\n (click)=\"clear()\" [size]=\"size\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ax-button end icon=\"far fa-calendar-alt icon\" type=\"light blank\" (click)=\"handleButtonClick()\"\r\n [disabled]=\"disabled\" [size]=\"size\" [tabIndex]=\"-1\"></ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n\r\n</ax-drop-down>", styles: [".ax-dropdown-container-bordered .ax-calendar-container{border:none!important}\n"], components: [{ type: i1.AXDropdownComponent, selector: "ax-drop-down", inputs: ["rtl", "readonly", "loading"], outputs: ["dropdownToggle", "onButtonClick"] }, { type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { type: i3.AXCalendarBoxComponent, selector: "ax-calendar-box", inputs: ["size", "type", "locale", "dir", "min", "max", "selectableHoliday", "dayStyle", "dayMinMaxResoan", "showTodayButton", "view", "depth", "value"], outputs: ["onValueChanged", "onClick", "valueChange"] }, { type: i4.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }], directives: [{ type: i5.MaskedInputDirective, selector: "[textMask]", inputs: ["textMask"], exportAs: ["textMask"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXDatePickerComponent, decorators: [{
651
+ type: Component,
652
+ args: [{ selector: 'ax-date-picker', encapsulation: ViewEncapsulation.None, providers: [{ provide: AXValidatableComponent, useExisting: AXDatePickerComponent }], host: { style: 'width: 100%' }, template: "<ax-drop-down [readonly]=\"readonly\" [fitParent]=\"true\" [size]=\"size\" [showDropDownButton]=\"false\"\r\n icon=\"far fa-calendar-alt\" #dropdown maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <ax-text-box #input [textAlign]=\"textAlign\" [(value)]=\"text\" [readonly]=\"false\" [textMask]=\"dateType\"\r\n [disabled]=\"disabled\" [placeholder]=\"placeholder\" [size]=\"size\" (onkey)=\"handleKeyPress($event)\"\r\n (onFocus)=\"handleInputFocus()\" (click)=\"handleClick()\" (onBlur)=\"handleInputBlur()\"\r\n (onValueChanged)=\"textChange($event)\"></ax-text-box>\r\n </ng-container>\r\n <ng-container panel>\r\n <ax-calendar-box *ngIf=\"_renderPicker\" [showTodayButton]=\"showTodayButton\"\r\n [selectableHoliday]=\"selectableHoliday\" [min]=\"min\" [max]=\"max\" [size]=\"size\" (onClick)=\"onClick($event)\"\r\n (onValueChanged)=\"onDateChange($event)\" [type]=\"type\" [(value)]=\"value\" [dayStyle]=\"dayStyle\"\r\n [dayMinMaxResoan]=\"dayMinMaxResoan\">\r\n </ax-calendar-box>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end *ngIf=\"allowClear && value\" [disabled]=\"disabled\" icon=\"far fa-times icon\" type=\"blank danger\"\r\n (click)=\"clear()\" [size]=\"size\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ax-button end icon=\"far fa-calendar-alt icon\" type=\"light blank\" (click)=\"handleButtonClick()\"\r\n [disabled]=\"disabled\" [size]=\"size\" [tabIndex]=\"-1\"></ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n\r\n</ax-drop-down>", styles: [".ax-dropdown-container-bordered .ax-calendar-container{border:none!important}\n"] }]
653
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { dropdown: [{
654
+ type: ViewChild,
655
+ args: ['dropdown', { static: true }]
656
+ }], input: [{
657
+ type: ViewChild,
658
+ args: ['input', { static: true }]
659
+ }], dayStyle: [{
660
+ type: Input
661
+ }], dayMinMaxResoan: [{
662
+ type: Input
663
+ }], _contentValidation: [{
664
+ type: ContentChild,
665
+ args: [AXValidation, { static: true }]
666
+ }], validation: [{
667
+ type: Input
668
+ }], placeholder: [{
669
+ type: Input
670
+ }], min: [{
671
+ type: Input
672
+ }], max: [{
673
+ type: Input
674
+ }], readonly: [{
675
+ type: Input
676
+ }], disabled: [{
677
+ type: Input
678
+ }], allowClear: [{
679
+ type: Input
680
+ }], textAlign: [{
681
+ type: Input
682
+ }], showToday: [{
683
+ type: Input
684
+ }], selectableHoliday: [{
685
+ type: Input
686
+ }], dateType: [{
687
+ type: Input
688
+ }], showTodayButton: [{
689
+ type: Input
690
+ }], openByClick: [{
691
+ type: Input
692
+ }], size: [{
693
+ type: Input
694
+ }], typeChange: [{
695
+ type: Output
696
+ }], type: [{
697
+ type: Input
698
+ }], onValueChanged: [{
699
+ type: Output
700
+ }], valueChange: [{
701
+ type: Output
702
+ }], value: [{
703
+ type: Input
704
+ }] } });
705
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUVaLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQStELE1BQU0sdUJBQXVCLENBQUM7QUFDNUgsT0FBTyxFQUFrQixVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7O0FBRWxFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFrQjtDQUU5RDtBQVVELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7SUE0RS9ELFlBQW9CLEdBQWUsRUFBVSxHQUFzQjtRQUNqRSxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXBFbkUsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUdkLG9C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dkIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQ0FDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lDQUN0RztnQ0FDRCxJQUFJLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxFQUFFO29DQUN2RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO3dDQUM1QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRDQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDO3lDQUM1Rzs2Q0FBTTs0Q0FDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7eUNBQ3RHO3FDQUNGO3lDQUFNO3dDQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7cUNBQzNFO2lDQUNG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UCxXQUFXO3NCQURWLE1BQU07Z0JBS0ksS0FBSztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYRWxlbWVudFNpemUsIEFYQmFzZVZhbHVlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcclxuaW1wb3J0IHsgQVhDYWxlbmRhclR5cGUsIEFYRGF0ZVRpbWUsIEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHsgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnLi4vYmFzZS9ldmVudHMuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24uY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBBWERhdGFQaWNrZXJDaGFuZ2VFdmVudCBleHRlbmRzIEFYVmFsdWVFdmVudDxEYXRlPiB7XHJcbiAgaXNVc2VyQ2hhbmdlOiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWRhdGUtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVQaWNrZXJDb21wb25lbnQgfV0sXHJcbiAgaG9zdDogeyBzdHlsZTogJ3dpZHRoOiAxMDAlJyB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWERhdGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGRyb3Bkb3duOiBBWERyb3Bkb3duQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgaW5wdXQ6IEFYVGV4dEJveENvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBkYXlTdHlsZSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRheU1pbk1heFJlc29hbiA9ICcnO1xyXG5cclxuICAvLyBtbWRkeXl5eTogYW55ID0gWy9bMC0xXS8sIC9bMC05XS8sICctJywgL1swLTFdLywgL1swLTldLywgJy0nLCAvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vXTtcclxuICB5eXl5TU1kZDogYW55ID0gWy9bMS0yXS8sIC9bMC05XS8sIC9bMC05XS8sIC9bMC05XS8sICctJywgL1swLTFdLywgL1swLTldLywgJy0nLCAvWzAtM10vLCAvWzAtOV0vXTtcclxuICBkZE1NeXl5eTogYW55ID0gWy9bMC0zXS8sIC9bMC05XS8sICctJywgL1swLTFdLywgL1swLTldLywgJy0nLCAvWzEtOV0vLCAvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vXTtcclxuICB5eXl5ZGRNTTogYW55ID0gWy9bMS05XS8sIC9bMC05XS8sIC9bMC05XS8sIC9bMC05XS8sICctJywgL1swLTNdLywgL1swLTldLywgJy0nLCAvWzAtMV0vLCAvWzAtOV0vXTtcclxuICAvLyB5eXl5TU1kZDE6IGFueSA9IFsvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vLCAnLycsIC9bMC0xXS8sIC9bMC05XS8sICcvJywgL1swLTNdLywgL1swLTldL107XHJcbiAgLy8gZGRNTXl5eXkyOiBhbnkgPSBbL1swLTNdLywgL1swLTldLywgJy8nLCAvWzAtMV0vLCAvWzAtOV0vLCAnLycsIC9bMC05XS8sIC9bMC05XS8sIC9bMC05XS8sIC9bMC05XS9dO1xyXG4gIC8vIHl5eXlkZE1NMzogYW55ID0gWy9bMC05XS8sIC9bMC05XS8sIC9bMC05XS8sIC9bMC05XS8sICcvJywgL1swLTNdLywgL1swLTldLywgJy8nLCAvWzAtMV0vLCAvWzAtOV0vXTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBWFZhbGlkYXRpb24sIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHJpdmF0ZSBfY29udGVudFZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcclxuICBwcml2YXRlIF92YWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uKCk6IEFYVmFsaWRhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGlvbiA/IHRoaXMuX3ZhbGlkYXRpb24gOiB0aGlzLl9jb250ZW50VmFsaWRhdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvbih2OiBBWFZhbGlkYXRpb24pIHtcclxuICAgIHRoaXMuX3ZhbGlkYXRpb24gPSB2O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1pbjogRGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBtYXg6IERhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmVhZG9ubHk6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWxsb3dDbGVhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRleHRBbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dUb2RheTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGFibGVIb2xpZGF5OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBkYXRlVHlwZTogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dUb2RheUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgb3BlbkJ5Q2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY3Vyc29yUG9zaXRpb246IG51bWJlciA9IDA7XHJcblxyXG4gIG1vZGVsOiBhbnkgPSBudWxsO1xyXG4gIHRleHQ6IHN0cmluZztcclxuXHJcbiAgX3JlbmRlclBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgLy8gc2V0IGRlZmF1bHRzXHJcbiAgICBpZiAoQVhDb25maWcuZ2V0KCdkYXRlVGltZS50eXBlJykpIHtcclxuICAgICAgdGhpcy50eXBlID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS50eXBlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB0eXBlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhclR5cGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENhbGVuZGFyVHlwZT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfdHlwZTogQVhDYWxlbmRhclR5cGUgPSAnZ3JlZ29yaWFuJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogQVhDYWxlbmRhclR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHR5cGUodjogQVhDYWxlbmRhclR5cGUpIHtcclxuICAgIGlmICh2ICE9IHRoaXMuX3R5cGUpIHtcclxuICAgICAgdGhpcy5fdHlwZSA9IHY7XHJcbiAgICAgIGlmICh0aGlzLl92YWx1ZSkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl92YWx1ZS5kYXRlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX3NldERhdGVUeXBlKCk7XHJcbiAgICAgIHRoaXMudHlwZUNoYW5nZS5lbWl0KHYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0VG9kYXkoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzKCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5kcm9wZG93bi5mb2N1cygpO1xyXG4gICAgdGhpcy5pbnB1dC5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgY29udmVydE1hc2tUb0RhdGUodGV4dDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09ICdqYWxhbGknKSB7XHJcbiAgICAgIHZhciBkID0gbmV3IEFYRGF0ZVRpbWUoKS5jb252ZXJ0U3RyaW5nVG9HcmVnb3JpYW4odGV4dCwgJ1lZWVkvTS9EJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgZCA9IG5ldyBEYXRlKG5ldyBBWERhdGVUaW1lKHRleHQsICdncmVnb3JpYW4nKS50b0lTT1N0cmluZygpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRNYXNrKGRhdGU6IHN0cmluZykge1xyXG4gICAgbGV0IHk7XHJcbiAgICBsZXQgbTtcclxuICAgIGxldCBkO1xyXG4gICAgc3dpdGNoICh0aGlzLmRhdGVUeXBlLm1hc2spIHtcclxuICAgICAgY2FzZSB0aGlzLnl5eXlNTWRkOlxyXG4gICAgICAgIHkgPSBkYXRlLnNsaWNlKDAsIDQpO1xyXG4gICAgICAgIG0gPSBkYXRlLnNsaWNlKDUsIDcpO1xyXG4gICAgICAgIGQgPSBkYXRlLnNsaWNlKDgsIDEwKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLmRkTU15eXl5OlxyXG4gICAgICAgIHkgPSBkYXRlLnNsaWNlKDYsIDEwKTtcclxuICAgICAgICBtID0gZGF0ZS5zbGljZSgzLCA1KTtcclxuICAgICAgICBkID0gZGF0ZS5zbGljZSgwLCAyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLnl5eXlkZE1NOlxyXG4gICAgICAgIHkgPSBkYXRlLnNsaWNlKDAsIDQpO1xyXG4gICAgICAgIG0gPSBkYXRlLnNsaWNlKDgsIDEwKTtcclxuICAgICAgICBkID0gZGF0ZS5zbGljZSg1LCA3KTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyB5ZWFyOiB5LCBtb25udGg6IG0sIGRheTogZCB9O1xyXG4gIH1cclxuXHJcbiAgdGV4dENoYW5nZShlKSB7XHJcbiAgICB0aGlzLnRleHQgPSBlLnZhbHVlO1xyXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuY29udmVydE1hc2sodGhpcy50ZXh0KTtcclxuXHJcbiAgICBpZiAodGhpcy50ZXh0ICYmIHRoaXMudGV4dC5pbmRleE9mKCdfJykgPT09IC0xICYmIHRoaXMudGV4dC5sZW5ndGggPT0gMTAgJiYgdGhpcy50eXBlID09ICdqYWxhbGknKSB7XHJcbiAgICAgIHRoaXMudXNlckNoYW5nZSA9IGUuaXNVc2VyQ2hhbmdlO1xyXG5cclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY29udmVydE1hc2tUb0RhdGUoZGF0ZS55ZWFyICsgJy0nICsgZGF0ZS5tb25udGggKyAnLScgKyBkYXRlLmRheSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGV4dCAmJiB0aGlzLnRleHQuaW5kZXhPZignXycpID09PSAtMSAmJiB0aGlzLnRleHQubGVuZ3RoID09IDEwICYmIHRoaXMudHlwZSA9PSAnZ3JlZ29yaWFuJykge1xyXG4gICAgICB0aGlzLnVzZXJDaGFuZ2UgPSBlLmlzVXNlckNoYW5nZTtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY29udmVydE1hc2tUb0RhdGUoZGF0ZS55ZWFyICsgJy0nICsgZGF0ZS5tb25udGggKyAnLScgKyBkYXRlLmRheSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NldERhdGVUeXBlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy50ZXh0ID0gdGhpcy5fdmFsdWU/LnRvU3RyaW5nKCk7XHJcbiAgICAgIGlmICh0aGlzLnNob3dUb2RheSAmJiAhdGhpcy52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0VG9kYXkoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kcm9wZG93bi5kcm9wZG93bldpZHRoID4gMjAwIHx8IHRoaXMuZHJvcGRvd24uZHJvcGRvd25XaWR0aCA8IDIwMCkge1xyXG4gICAgICAgIHRoaXMuZHJvcGRvd24uZHJvcGRvd25XaWR0aCA9IDMyMDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0VmFsaWRhdGlvbih0aGlzLnJlZiwgJ3ZhbHVlJywgdGhpcy52YWxpZGF0aW9uKTtcclxuICB9XHJcblxyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcclxuICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgdXNlckNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYRGF0YVBpY2tlckNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhEYXRhUGlja2VyQ2hhbmdlRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlOiBBWERhdGVUaW1lO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZT8uZGF0ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCB2YWx1ZSh2OiBEYXRlKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xyXG4gICAgY29uc3Qgb2xkID0gdGhpcy52YWx1ZTtcclxuXHJcbiAgICBpZiAodikge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IG5ldyBBWERhdGVUaW1lKHYsIHRoaXMudHlwZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBsZXQgdW5WYWxpZERhdGUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLm1heCB8fCB0aGlzLm1pbikge1xyXG4gICAgICB1blZhbGlkRGF0ZSA9IHRoaXMuaXNJbk1Jbk1heFJhbmdlKEFYRGF0ZVRpbWUuY29udmVydCh2KSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF1blZhbGlkRGF0ZSkge1xyXG4gICAgICBpZiAoKCF2ICYmIG9sZFZhbHVlKSB8fCAodGhpcy5fdmFsdWUgJiYgIXRoaXMuX3ZhbHVlLmVxdWFsKG9sZFZhbHVlLCAnZGF5JykpKSB7XHJcbiAgICAgICAgdGhpcy50ZXh0ID0gdGhpcy5fdmFsdWU/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIG9sZFZhbHVlOiBvbGQsXHJcbiAgICAgICAgICAgIHZhbHVlOiB2LFxyXG4gICAgICAgICAgICBpc1VzZXJDaGFuZ2U6IHRoaXMudXNlckNoYW5nZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZXh0ID0gJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVzZXJDaGFuZ2UgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldERhdGVUeXBlKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLmRhdGVUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ3l5eXlNTWRkJzpcclxuICAgICAgICB0aGlzLmRhdGVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMueXl5eU1NZGQsXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2RkTU15eXl5JzpcclxuICAgICAgICB0aGlzLmRhdGVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMuZGRNTXl5eXksXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3l5eXlkZE1NJzpcclxuICAgICAgICB0aGlzLmRhdGVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMueXl5eWRkTU0sXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ2dyZWdvcmlhbicpIHtcclxuICAgICAgICAgIHRoaXMuZGF0ZVR5cGUgPSB7XHJcbiAgICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgICAgbWFzazogdGhpcy5kZE1NeXl5eSxcclxuICAgICAgICAgICAga2VlcENoYXJQb3NpdGlvbnM6IHRydWVcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gJ2phbGFsaScpIHtcclxuICAgICAgICAgIHRoaXMuZGF0ZVR5cGUgPSB7XHJcbiAgICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgICAgbWFzazogdGhpcy55eXl5TU1kZCxcclxuICAgICAgICAgICAga2VlcENoYXJQb3NpdGlvbnM6IHRydWVcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNJbk1Jbk1heFJhbmdlKGQpIHtcclxuICAgIGxldCByID0gZmFsc2U7XHJcbiAgICBpZiAoZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLm1pbiAmJiAhdGhpcy5tYXgpIHtcclxuICAgICAgICByID0gZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZSh0aGlzLm1pbiwgdGhpcy50eXBlKSwgJ1lNRCcsIHRoaXMudHlwZSkgPT09IC0xO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1heCAmJiAhdGhpcy5taW4pIHtcclxuICAgICAgICByID0gZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZSh0aGlzLm1heCwgdGhpcy50eXBlKSwgJ1lNRCcsIHRoaXMudHlwZSkgPT09IDE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubWluICYmIHRoaXMubWF4KSB7XHJcbiAgICAgICAgciA9XHJcbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KG5ldyBBWERhdGVUaW1lKHRoaXMubWluLCB0aGlzLnR5cGUpLCAnWU1EJywgdGhpcy50eXBlKSA9PT0gLTEgfHxcclxuICAgICAgICAgIGQuY29tcGFpcmVOZXcobmV3IEFYRGF0ZVRpbWUodGhpcy5tYXgsIHRoaXMudHlwZSksICdZTUQnLCB0aGlzLnR5cGUpID09PSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcblxyXG4gIG9uRGF0ZUNoYW5nZShlKSB7XHJcbiAgICB0aGlzLnVzZXJDaGFuZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy5kcm9wZG93bi5jbG9zZSgpO1xyXG5cclxuICAgIC8vdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2soZSkge1xyXG4gICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcclxuICAgIHRoaXMuZHJvcGRvd24uY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIG9uU3RhcnRmb2N1cygpIHtcclxuICAgIGlmICh0aGlzLnRleHQgPT0gdW5kZWZpbmVkIHx8IHRoaXMudGV4dCA9PSBudWxsIHx8IHRoaXMudGV4dCA9PSAnJykge1xyXG4gICAgICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xyXG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xyXG4gICAgICAgIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0Rm9jdXMoKSB7XHJcbiAgICBpZiAodGhpcy5vcGVuQnlDbGljaykge1xyXG4gICAgICB0aGlzLl9yZW5kZXJQaWNrZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duLm9wZW4oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25TdGFydGZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG4gIGhhbmRsZUlucHV0Qmx1cigpIHtcclxuICAgIGlmICh0aGlzLnRleHQgJiYgdGhpcy50ZXh0LmluZGV4T2YoJ18nKSAhPSAtMSkge1xyXG4gICAgICB0aGlzLnRleHQgPSAnJztcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVCdXR0b25DbGljaygpIHtcclxuICAgIHRoaXMuX3JlbmRlclBpY2tlciA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kcm9wZG93bi50b2dnbGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5UHJlc3MoZTogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGUudHlwZSA9PSAna2V5ZG93bicgfHwgZS50eXBlID09ICdrZXlwcmVzcycgfHwgZS50eXBlID09ICdrZXl1cCcpIHtcclxuICAgICAgaWYgKGUua2V5ID09PSAnRGVsZXRlJykge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZS5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBlLmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcclxuICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5wdXRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShlLmNoYXJDb2RlKTtcclxuICAgIGlmICh0aGlzLnRleHQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IGluZDEgPSB0aGlzLnRleHQuY2hhckF0KDApO1xyXG4gICAgICBjb25zdCBpbmQyID0gdGhpcy50ZXh0LmNoYXJBdCgxKTtcclxuICAgICAgY29uc3QgaW5kMyA9IHRoaXMudGV4dC5jaGFyQXQoMik7XHJcbiAgICAgIGNvbnN0IGluZDQgPSB0aGlzLnRleHQuY2hhckF0KDMpO1xyXG4gICAgICBjb25zdCBpbmQ1ID0gdGhpcy50ZXh0LmNoYXJBdCg0KTtcclxuICAgICAgY29uc3QgaW5kNiA9IHRoaXMudGV4dC5jaGFyQXQoNSk7XHJcbiAgICAgIGNvbnN0IGluZDcgPSB0aGlzLnRleHQuY2hhckF0KDYpO1xyXG4gICAgICBjb25zdCBpbmQ4ID0gdGhpcy50ZXh0LmNoYXJBdCg3KTtcclxuICAgICAgY29uc3QgaW5kOSA9IHRoaXMudGV4dC5jaGFyQXQoOCk7XHJcbiAgICAgIGNvbnN0IGluZDEwID0gdGhpcy50ZXh0LmNoYXJBdCg5KTtcclxuICAgICAgc3dpdGNoICh0aGlzLmRhdGVUeXBlLm1hc2spIHtcclxuICAgICAgICBjYXNlIHRoaXMueXl5eU1NZGQ6XHJcbiAgICAgICAgICBpZiAoZS50eXBlID09ICdrZXlwcmVzcycpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVDbGljaygpO1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgKGluZDYgPT0gJzEnICYmIGluZDcgPT0gJ18nICYmIGlucHV0Q2hhciA+PSAnMycpIHx8XHJcbiAgICAgICAgICAgICAgKCgoaW5kNiA9PSAnMCcgJiYgaW5kNyA9PSAnXycpIHx8IChpbmQ5ID09ICcwJyAmJiBpbmQxMCA9PSAnXycpKSAmJiBpbnB1dENoYXIgPT0gJzAnKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kOSA9PSAnMycgJiYgaW5kMTAgPT0gJ18nKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGluZDYgKyBpbmQ3IDw9ICcwNicgJiYgaW5wdXRDaGFyID49ICcyJykge1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kNiArIGluZDcgPiAnMDYnICYmIGlucHV0Q2hhciA+PSAnMScpIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnRleHQuaW5kZXhPZignXycpID09PSAtMSAmJiB0aGlzLnRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXlkb3duJykge1xyXG4gICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IFN0cmluZyhOdW1iZXIoaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCkgKyAxKSArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5ICsgaW5kMTA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA1ICYmIHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gNykge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDYgKyBpbmQ3KSA8IDEyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ2ICsgaW5kNykgPCA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArICcwJyArIFN0cmluZyhOdW1iZXIoaW5kNiArIGluZDcpICsgMSkgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIFN0cmluZyhOdW1iZXIoaW5kNiArIGluZDcpICsgMSkgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArICcwMScgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA4KSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kOSArIGluZDEwKSA8IDMxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ5ICsgaW5kMTApIDwgOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyAnMCcgKyBTdHJpbmcoTnVtYmVyKGluZDkgKyBpbmQxMCkgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBTdHJpbmcoTnVtYmVyKGluZDkgKyBpbmQxMCkgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyAnMDEnO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgICAgICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5zZXRDYXJldCgpO1xyXG4gICAgICAgICAgICAgICAgLy8gICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAvLyAgIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xyXG4gICAgICAgICAgICAgICAgLy8gfSwgMCk7XHJcbiAgICAgICAgICAgICAgICAvLyBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDQpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gU3RyaW5nKE51bWJlcihpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0KSAtIDEpICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+IDQgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA3KSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kNiArIGluZDcpID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kNiArIGluZDcpIDwgMTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgJzAnICsgU3RyaW5nKE51bWJlcihpbmQ2ICsgaW5kNykgLSAxKSArIGluZDggKyBpbmQ5ICsgaW5kMTA7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgU3RyaW5nKE51bWJlcihpbmQ2ICsgaW5kNykgLSAxKSArIGluZDggKyBpbmQ5ICsgaW5kMTA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgJzEyJyArIGluZDggKyBpbmQ5ICsgaW5kMTA7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA4KSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kOSArIGluZDEwKSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDkgKyBpbmQxMCkgPCAxMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyAnMCcgKyBTdHJpbmcoTnVtYmVyKGluZDkgKyBpbmQxMCkgLSAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBTdHJpbmcoTnVtYmVyKGluZDkgKyBpbmQxMCkgLSAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyAnMzEnO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyAgIHRoaXMuc2V0Q2FyZXQoKTtcclxuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgICAgICAgICAgICAvLyB9LCAwKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2tleXVwJykge1xyXG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNldENhcmV0KCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgdGhpcy5kZE1NeXl5eTpcclxuICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXlwcmVzcycpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVDbGljaygpO1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgKGluZDQgPT0gJzEnICYmIGluZDUgPT0gJ18nICYmIGlucHV0Q2hhciA+PSAnMycpIHx8XHJcbiAgICAgICAgICAgICAgKCgoaW5kMSA9PSAnMCcgJiYgaW5kMiA9PSAnXycpIHx8IChpbmQ0ID09ICcwJyAmJiBpbmQ1ID09ICdfJykpICYmIGlucHV0Q2hhciA9PSAnMCcpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoaW5kMSA9PSAnMycgJiYgaW5kMiA9PSAnXycgJiYgaW5wdXRDaGFyID49ICcyJykge1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMudGV4dC5pbmRleE9mKCdfJykgPT09IC0xICYmIHRoaXMudGV4dCAhPT0gJycpIHtcclxuICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2tleWRvd24nKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDYpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgU3RyaW5nKE51bWJlcihpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCkgKyAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID4gMiAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDUpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ0ICsgaW5kNSkgPCAxMikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kNCArIGluZDUpIDwgOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgJzAnICsgU3RyaW5nKE51bWJlcihpbmQ0ICsgaW5kNSkgKyAxKSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMDtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgU3RyaW5nKE51bWJlcihpbmQ0ICsgaW5kNSkgKyAxKSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgJzAxJyArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gMikge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDEgKyBpbmQyKSA8IDMxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQxICsgaW5kMikgPCA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSAnMCcgKyBTdHJpbmcoTnVtYmVyKGluZDEgKyBpbmQyKSArIDEpICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBTdHJpbmcoTnVtYmVyKGluZDEgKyBpbmQyKSArIDEpICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSAnMDEnICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgICAgICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5zZXRDYXJldCgpO1xyXG4gICAgICAgICAgICAgICAgLy8gICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgICAgICAgICAgIC8vIH0sIDApO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA2KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIFN0cmluZyhOdW1iZXIoaW5kNyArIGluZDggKyBpbmQ5ICsgaW5kMTApIC0gMSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPiAyICYmIHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gNSkge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDQgKyBpbmQ1KSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDQgKyBpbmQ1KSA8IDExKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyAnMCcgKyBTdHJpbmcoTnVtYmVyKGluZDQgKyBpbmQ1KSAtIDEpICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBTdHJpbmcoTnVtYmVyKGluZDQgKyBpbmQ1KSAtIDEpICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyAnMTInICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gMikge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDEgKyBpbmQyKSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDEgKyBpbmQyKSA8IDExKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSAnMCcgKyBTdHJpbmcoTnVtYmVyKGluZDEgKyBpbmQyKSAtIDEpICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBTdHJpbmcoTnVtYmVyKGluZDEgKyBpbmQyKSAtIDEpICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSAnMzEnICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgICAgICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5zZXRDYXJldCgpO1xyXG4gICAgICAgICAgICAgICAgLy8gICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgICAgICAgICAgIC8vIH0sIDApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZS50eXBlID09PSAna2V5dXAnKSB7XHJcbiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcclxuICAgICAgICAgICAgICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgdGhpcy55eXl5ZGRNTTpcclxuICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXlwcmVzcycpIHtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIChpbmQ5ID09PSAnMScgJiYgaW5kMTAgPT0gJ18nICYmIGlucHV0Q2hhciA+PSAnMycpIHx8XHJcbiAgICAgICAgICAgICAgKCgoaW5kNiA9PSAnMCcgJiYgaW5kNyA9PSAnXycpIHx8IChpbmQ5ID09ICcwJyAmJiBpbmQxMCkpICYmIGlucHV0Q2hhciA9PSAnMCcpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmQ2ID09ICczJyAmJiBpbmQ3ID09ICdfJyAmJiBpbnB1dENoYXIgPj0gJzInKSB7XHJcbiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xpY2soKTtcclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy50ZXh0LmluZGV4T2YoJ18nKSA9PT0gLTEgJiYgdGhpcy50ZXh0ICE9PSAnJykge1xyXG4gICAgICAgICAgICBpZiAoZS50eXBlID09PSAna2V5ZG93bicpIHtcclxuICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gNCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBTdHJpbmcoTnVtYmVyKGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQpICsgMSkgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPiA0ICYmIHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gNykge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDYgKyBpbmQ3KSA8IDMxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ2ICsgaW5kNykgPCA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArICcwJyArIFN0cmluZyhOdW1iZXIoaW5kNiArIGluZDcpICsgMSkgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIFN0cmluZyhOdW1iZXIoaW5kNiArIGluZDcpICsgMSkgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArICcwMScgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA4KSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kOSArIGluZDEwKSA8IDEyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ5ICsgaW5kMTApIDwgOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyAnMCcgKyBTdHJpbmcoTnVtYmVyKGluZDkgKyBpbmQxMCkgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBTdHJpbmcoTnVtYmVyKGluZDkgKyBpbmQxMCkgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyAnMDEnO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgICAgICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5zZXRDYXJldCgpO1xyXG4gICAgICAgICAgICAgICAgLy8gICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgICAgICAgICAgIC8vIH0sIDApO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IFN0cmluZyhOdW1iZXIoaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCkgLSAxKSArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5ICsgaW5kMTA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPiA0ICYmIHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gNykge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDYgKyBpbmQ3KSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDYgKyBpbmQ3KSA8IDExKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArICcwJyArIFN0cmluZyhOdW1iZXIoaW5kNiArIGluZDcpIC0gMSkgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIFN0cmluZyhOdW1iZXIoaW5kNiArIGluZDcpIC0gMSkgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArICczMScgKyBpbmQ4ICsgaW5kOSArIGluZDEwO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gOCkge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDkgKyBpbmQxMCkgPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ5ICsgaW5kMTApIDwgMTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgJzAnICsgU3RyaW5nKE51bWJlcihpbmQ5ICsgaW5kMTApIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgU3RyaW5nKE51bWJlcihpbmQ5ICsgaW5kMTApIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgJzEyJztcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgICAgICAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyAgIHRoaXMuc2V0Q2FyZXQoKTtcclxuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgICAgICAgICAgICAvLyB9LCAwKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2tleXVwJykge1xyXG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNldENhcmV0KCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBoYW5kbGVDbGljaygpIHtcclxuICAgIGlmICh0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XHJcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYXJldFBvc2l0aW9uKGN0cmwsIHBvcykge1xyXG4gICAgaWYgKGN0cmwuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcclxuICAgICAgY3RybC5mb2N1cygpO1xyXG4gICAgICBjdHJsLnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENhcmV0KCkge1xyXG4gICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJzb3JQb3NpdGlvbik7XHJcbiAgfVxyXG59XHJcbiIsIjxheC1kcm9wLWRvd24gW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW2ZpdFBhcmVudF09XCJ0cnVlXCIgW3NpemVdPVwic2l6ZVwiIFtzaG93RHJvcERvd25CdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgaWNvbj1cImZhciBmYS1jYWxlbmRhci1hbHRcIiAjZHJvcGRvd24gbWF4SGVpZ2h0PVwidW5zZXRcIj5cclxuICAgIDxuZy1jb250YWluZXIgc3RhcnQ+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXJ0XVwiPlxyXG4gICAgICAgIDwvbmctY29udGVudD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+XHJcbiAgICAgICAgPGF4LXRleHQtYm94ICNpbnB1dCBbdGV4dEFsaWduXT1cInRleHRBbGlnblwiIFsodmFsdWUpXT1cInRleHRcIiBbcmVhZG9ubHldPVwiZmFsc2VcIiBbdGV4dE1hc2tdPVwiZGF0ZVR5cGVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbc2l6ZV09XCJzaXplXCIgKG9ua2V5KT1cImhhbmRsZUtleVByZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJoYW5kbGVJbnB1dEZvY3VzKClcIiAoY2xpY2spPVwiaGFuZGxlQ2xpY2soKVwiIChvbkJsdXIpPVwiaGFuZGxlSW5wdXRCbHVyKClcIlxyXG4gICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwidGV4dENoYW5nZSgkZXZlbnQpXCI+PC9heC10ZXh0LWJveD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciBwYW5lbD5cclxuICAgICAgICA8YXgtY2FsZW5kYXItYm94ICpuZ0lmPVwiX3JlbmRlclBpY2tlclwiIFtzaG93VG9kYXlCdXR0b25dPVwic2hvd1RvZGF5QnV0dG9uXCJcclxuICAgICAgICAgICAgW3NlbGVjdGFibGVIb2xpZGF5XT1cInNlbGVjdGFibGVIb2xpZGF5XCIgW21pbl09XCJtaW5cIiBbbWF4XT1cIm1heFwiIFtzaXplXT1cInNpemVcIiAob25DbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIiBbdHlwZV09XCJ0eXBlXCIgWyh2YWx1ZSldPVwidmFsdWVcIiBbZGF5U3R5bGVdPVwiZGF5U3R5bGVcIlxyXG4gICAgICAgICAgICBbZGF5TWluTWF4UmVzb2FuXT1cImRheU1pbk1heFJlc29hblwiPlxyXG4gICAgICAgIDwvYXgtY2FsZW5kYXItYm94PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyIGVuZD5cclxuICAgICAgICA8YXgtYnV0dG9uIGVuZCAqbmdJZj1cImFsbG93Q2xlYXIgJiYgdmFsdWVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBpY29uPVwiZmFyIGZhLXRpbWVzIGljb25cIiB0eXBlPVwiYmxhbmsgZGFuZ2VyXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIiBbc2l6ZV09XCJzaXplXCIgW3RhYkluZGV4XT1cIi0xXCI+XHJcbiAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgPGF4LWJ1dHRvbiBlbmQgaWNvbj1cImZhciBmYS1jYWxlbmRhci1hbHQgaWNvblwiIHR5cGU9XCJsaWdodCBibGFua1wiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3NpemVdPVwic2l6ZVwiIFt0YWJJbmRleF09XCItMVwiPjwvYXgtYnV0dG9uPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbmRdXCI+XHJcbiAgICAgICAgPC9uZy1jb250ZW50PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG48L2F4LWRyb3AtZG93bj4iXX0=