@acorex/components 6.5.70 → 6.5.90

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 (475) hide show
  1. package/README.md +7 -3
  2. package/esm2022/acorex-components.mjs +5 -0
  3. package/esm2022/index.mjs +158 -0
  4. package/esm2022/lib/accordion/accordion.component.mjs +45 -0
  5. package/esm2022/lib/accordion/accordion.module.mjs +20 -0
  6. package/esm2022/lib/base/base-page.class.mjs +95 -0
  7. package/esm2022/lib/base/components.class.mjs +17 -0
  8. package/esm2022/lib/base/element.class.mjs +301 -0
  9. package/esm2022/lib/base/events.class.mjs +17 -0
  10. package/esm2022/lib/button/button.component.mjs +74 -0
  11. package/esm2022/lib/button/button.module.mjs +21 -0
  12. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +426 -0
  13. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +22 -0
  14. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +59 -0
  15. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +16 -0
  16. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +226 -0
  17. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +68 -0
  18. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +136 -0
  19. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -0
  20. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +49 -0
  21. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +102 -0
  22. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +214 -0
  23. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -0
  24. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +85 -0
  25. package/esm2022/lib/checkbox/checkbox.component.mjs +102 -0
  26. package/esm2022/lib/checkbox/checkbox.module.mjs +20 -0
  27. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +423 -0
  28. package/esm2022/lib/color-picker/color-picker.component.mjs +89 -0
  29. package/esm2022/lib/color-picker/color-picker.module.mjs +24 -0
  30. package/esm2022/lib/context-menu/context-menu.component.mjs +68 -0
  31. package/esm2022/lib/context-menu/context-menu.directive.mjs +146 -0
  32. package/esm2022/lib/context-menu/context-menu.module.mjs +20 -0
  33. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +140 -0
  34. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +119 -0
  35. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +75 -0
  36. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +119 -0
  37. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +267 -0
  38. package/esm2022/lib/data-filter/filter.class.mjs +46 -0
  39. package/esm2022/lib/data-filter/filter.module.mjs +88 -0
  40. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +168 -0
  41. package/esm2022/lib/data-list/core/data-list.component.mjs +37 -0
  42. package/esm2022/lib/data-list/list/list.component.mjs +134 -0
  43. package/esm2022/lib/data-list/list/list.module.mjs +22 -0
  44. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +84 -0
  45. package/esm2022/lib/data-source/datasource.component.mjs +47 -0
  46. package/esm2022/lib/data-source/datasource.module.mjs +18 -0
  47. package/esm2022/lib/data-source/read-param.mjs +7 -0
  48. package/esm2022/lib/date-picker/date-picker.component.mjs +718 -0
  49. package/esm2022/lib/date-picker/date-picker.module.mjs +49 -0
  50. package/esm2022/lib/dialog/dialog.component.mjs +26 -0
  51. package/esm2022/lib/dialog/dialog.module.mjs +21 -0
  52. package/esm2022/lib/dialog/dialog.service.mjs +160 -0
  53. package/esm2022/lib/drawer/content.component.mjs +18 -0
  54. package/esm2022/lib/drawer/drawer-container.component.mjs +38 -0
  55. package/esm2022/lib/drawer/drawer.component.mjs +146 -0
  56. package/esm2022/lib/drawer/drawer.module.mjs +23 -0
  57. package/esm2022/lib/dropdown/dropdown.component.mjs +186 -0
  58. package/esm2022/lib/dropdown/dropdown.module.mjs +26 -0
  59. package/esm2022/lib/fieldset/fieldset.component.mjs +57 -0
  60. package/esm2022/lib/fieldset/fieldset.module.mjs +19 -0
  61. package/esm2022/lib/form-group/form-group.component.mjs +37 -0
  62. package/esm2022/lib/form-group/form-group.module.mjs +21 -0
  63. package/esm2022/lib/label/label.component.mjs +19 -0
  64. package/esm2022/lib/label/label.module.mjs +21 -0
  65. package/esm2022/lib/loading/loading-indicator.component.mjs +18 -0
  66. package/esm2022/lib/loading/loading-panel.component.mjs +45 -0
  67. package/esm2022/lib/loading/loading.module.mjs +21 -0
  68. package/esm2022/lib/loading/loading.service.mjs +47 -0
  69. package/esm2022/lib/menu/menu-item.component.mjs +50 -0
  70. package/esm2022/lib/menu/menu.component.mjs +98 -0
  71. package/esm2022/lib/menu/menu.module.mjs +22 -0
  72. package/esm2022/lib/menu/menu2.component.mjs +100 -0
  73. package/esm2022/lib/number-box/number-box.component.mjs +628 -0
  74. package/esm2022/lib/number-box/number-box.module.mjs +21 -0
  75. package/esm2022/lib/page/content.component.mjs +27 -0
  76. package/esm2022/lib/page/footer.component.mjs +19 -0
  77. package/esm2022/lib/page/page.component.mjs +57 -0
  78. package/esm2022/lib/page/page.module.mjs +22 -0
  79. package/esm2022/lib/panel-box/panel-box.component.mjs +87 -0
  80. package/esm2022/lib/panel-box/panel-box.module.mjs +19 -0
  81. package/esm2022/lib/password-box/password-box.component.mjs +32 -0
  82. package/esm2022/lib/password-box/password-box.module.mjs +23 -0
  83. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +50 -0
  84. package/esm2022/lib/popover/overlay.service.mjs +94 -0
  85. package/esm2022/lib/popover/popover.component.mjs +145 -0
  86. package/esm2022/lib/popover/popover.module.mjs +19 -0
  87. package/esm2022/lib/popup/popup.component.mjs +159 -0
  88. package/esm2022/lib/popup/popup.module.mjs +25 -0
  89. package/esm2022/lib/popup/popup.service.mjs +94 -0
  90. package/esm2022/lib/progress-bar/progress-bar.component.mjs +16 -0
  91. package/esm2022/lib/progress-bar/progress-bar.module.mjs +19 -0
  92. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +65 -0
  93. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +22 -0
  94. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +41 -0
  95. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +24 -0
  96. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +118 -0
  97. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +32 -0
  98. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +216 -0
  99. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +76 -0
  100. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +87 -0
  101. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +24 -0
  102. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +66 -0
  103. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +24 -0
  104. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +145 -0
  105. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +59 -0
  106. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +76 -0
  107. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +75 -0
  108. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -0
  109. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +73 -0
  110. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -0
  111. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +30 -0
  112. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +25 -0
  113. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +36 -0
  114. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +24 -0
  115. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +35 -0
  116. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -0
  117. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +47 -0
  118. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +24 -0
  119. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +167 -0
  120. package/esm2022/lib/property-editor/property-editor.class.mjs +108 -0
  121. package/esm2022/lib/property-editor/property-editor.module.mjs +194 -0
  122. package/esm2022/lib/query-builder/query-builder-group.component.mjs +129 -0
  123. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +177 -0
  124. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +428 -0
  125. package/esm2022/lib/query-builder/query-builder.class.mjs +42 -0
  126. package/esm2022/lib/query-builder/query-builder.component.mjs +92 -0
  127. package/esm2022/lib/query-builder/query-builder.module.mjs +62 -0
  128. package/esm2022/lib/query-builder/query-builder.service.mjs +199 -0
  129. package/esm2022/lib/search-bar/search-bar.component.mjs +293 -0
  130. package/esm2022/lib/search-bar/search-bar.module.mjs +61 -0
  131. package/esm2022/lib/searchbox/searchbox.component.mjs +82 -0
  132. package/esm2022/lib/searchbox/searchbox.module.mjs +24 -0
  133. package/esm2022/lib/selectbox/selectbox.component.mjs +1025 -0
  134. package/esm2022/lib/selectbox/selectbox.module.mjs +44 -0
  135. package/esm2022/lib/selectbox/selectbox2.component.mjs +617 -0
  136. package/esm2022/lib/selection-list/selection-list.component.mjs +113 -0
  137. package/esm2022/lib/selection-list/selection-list.module.mjs +21 -0
  138. package/esm2022/lib/switch/switch.component.mjs +55 -0
  139. package/esm2022/lib/switch/switch.module.mjs +20 -0
  140. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +75 -0
  141. package/esm2022/lib/tab-page/tab-page-host.component.mjs +124 -0
  142. package/esm2022/lib/tab-page/tab-page.module.mjs +21 -0
  143. package/esm2022/lib/tab-page/tab-page.service.mjs +158 -0
  144. package/esm2022/lib/tab-strip/tab-strip.component.mjs +38 -0
  145. package/esm2022/lib/tab-strip/tab-strip.module.mjs +19 -0
  146. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +25 -0
  147. package/esm2022/lib/tab-view/tab-view.component.mjs +110 -0
  148. package/esm2022/lib/tab-view/tab-view.module.mjs +21 -0
  149. package/esm2022/lib/tab-view/tab.component.mjs +33 -0
  150. package/esm2022/lib/textarea/textarea.component.mjs +27 -0
  151. package/esm2022/lib/textarea/textarea.module.mjs +21 -0
  152. package/esm2022/lib/textbox/textbox.component.mjs +42 -0
  153. package/esm2022/lib/textbox/textbox.module.mjs +36 -0
  154. package/esm2022/lib/time-picker/time-picker.component.mjs +1104 -0
  155. package/esm2022/lib/time-picker/time-picker.module.mjs +34 -0
  156. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +76 -0
  157. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -0
  158. package/esm2022/lib/toast/toast.module.mjs +21 -0
  159. package/esm2022/lib/toast/toast.service.mjs +45 -0
  160. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +77 -0
  161. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +62 -0
  162. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +56 -0
  163. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +37 -0
  164. package/esm2022/lib/toolbar/toolbar-item.mjs +4 -0
  165. package/esm2022/lib/toolbar/toolbar.component.mjs +13 -0
  166. package/esm2022/lib/toolbar/toolbar.module.mjs +40 -0
  167. package/esm2022/lib/tooltip/tooltip.directive.mjs +104 -0
  168. package/esm2022/lib/tooltip/tooltip.module.mjs +19 -0
  169. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +697 -0
  170. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +33 -0
  171. package/esm2022/lib/tree-view/tree-view.component.mjs +854 -0
  172. package/esm2022/lib/tree-view/tree-view.module.mjs +22 -0
  173. package/esm2022/lib/upload-file/upload-file.component.mjs +218 -0
  174. package/esm2022/lib/upload-file/upload-file.events.mjs +2 -0
  175. package/esm2022/lib/upload-file/upload-file.module.mjs +24 -0
  176. package/esm2022/lib/validation/validation-form.component.mjs +68 -0
  177. package/esm2022/lib/validation/validation-rule.widget.mjs +114 -0
  178. package/esm2022/lib/validation/validation.class.mjs +2 -0
  179. package/esm2022/lib/validation/validation.component.mjs +89 -0
  180. package/esm2022/lib/validation/validation.module.mjs +34 -0
  181. package/{fesm2020 → fesm2022}/acorex-components.mjs +3987 -3087
  182. package/fesm2022/acorex-components.mjs.map +1 -0
  183. package/lib/accordion/accordion.component.d.ts +1 -1
  184. package/lib/base/base-page.class.d.ts +2 -2
  185. package/lib/base/element.class.d.ts +6 -6
  186. package/lib/button/button.component.d.ts +1 -1
  187. package/lib/calendar/calendar-box/calendar-box.component.d.ts +6 -6
  188. package/lib/calendar/scheduler/scheduler-views.property.d.ts +2 -2
  189. package/lib/calendar/scheduler/scheduler.class.d.ts +1 -1
  190. package/lib/calendar/scheduler/scheduler.component.d.ts +1 -1
  191. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +1 -1
  192. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +1 -1
  193. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +1 -1
  194. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +1 -1
  195. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +1 -1
  196. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +1 -1
  197. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +1 -1
  198. package/lib/checkbox/checkbox.component.d.ts +1 -1
  199. package/lib/color-picker/color-box/color-box.component.d.ts +1 -1
  200. package/lib/color-picker/color-picker.component.d.ts +1 -1
  201. package/lib/context-menu/context-menu.component.d.ts +1 -1
  202. package/lib/context-menu/context-menu.directive.d.ts +3 -3
  203. package/lib/data-filter/columns/filter-column-date.component.d.ts +1 -1
  204. package/lib/data-filter/columns/filter-column-number.component.d.ts +1 -1
  205. package/lib/data-filter/columns/filter-column-selection.component.d.ts +1 -1
  206. package/lib/data-filter/columns/filter-column-string.component.d.ts +1 -1
  207. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +1 -1
  208. package/lib/data-filter/filter.class.d.ts +1 -1
  209. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +1 -1
  210. package/lib/data-list/core/data-list.component.d.ts +1 -1
  211. package/lib/data-list/list/list.component.d.ts +1 -1
  212. package/lib/data-list/list/toolbar-list-view.component.d.ts +2 -2
  213. package/lib/data-source/datasource.component.d.ts +1 -1
  214. package/lib/date-picker/date-picker.component.d.ts +1 -1
  215. package/lib/date-picker/date-picker.module.d.ts +2 -2
  216. package/lib/dialog/dialog.component.d.ts +1 -1
  217. package/lib/drawer/content.component.d.ts +1 -1
  218. package/lib/drawer/drawer-container.component.d.ts +1 -1
  219. package/lib/drawer/drawer.component.d.ts +3 -3
  220. package/lib/dropdown/dropdown.component.d.ts +1 -1
  221. package/lib/fieldset/fieldset.component.d.ts +1 -1
  222. package/lib/form-group/form-group.component.d.ts +1 -1
  223. package/lib/label/label.component.d.ts +1 -1
  224. package/lib/loading/loading-indicator.component.d.ts +1 -1
  225. package/lib/loading/loading-panel.component.d.ts +1 -1
  226. package/lib/menu/menu-item.component.d.ts +1 -1
  227. package/lib/menu/menu.component.d.ts +1 -1
  228. package/lib/menu/menu2.component.d.ts +1 -1
  229. package/lib/number-box/number-box.component.d.ts +1 -1
  230. package/lib/page/content.component.d.ts +1 -1
  231. package/lib/page/footer.component.d.ts +1 -1
  232. package/lib/page/page.component.d.ts +1 -1
  233. package/lib/panel-box/panel-box.component.d.ts +1 -1
  234. package/lib/password-box/password-box.component.d.ts +1 -1
  235. package/lib/popover/popover.component.d.ts +1 -1
  236. package/lib/popup/popup.component.d.ts +1 -1
  237. package/lib/progress-bar/progress-bar.component.d.ts +1 -1
  238. package/lib/property-editor/editors/check-editor/check-editor.d.ts +1 -1
  239. package/lib/property-editor/editors/color-editor/color.editor.d.ts +1 -1
  240. package/lib/property-editor/editors/column-editor/column.editor.d.ts +1 -1
  241. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +1 -1
  242. package/lib/property-editor/editors/date-editor/date.editor.d.ts +1 -1
  243. package/lib/property-editor/editors/number-editor/number.editor.d.ts +1 -1
  244. package/lib/property-editor/editors/range-editor/range.editor.d.ts +1 -1
  245. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +1 -1
  246. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +1 -1
  247. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +1 -1
  248. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +1 -1
  249. package/lib/property-editor/editors/text-editor/text.editor.d.ts +1 -1
  250. package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +1 -1
  251. package/lib/property-editor/editors/time-editor/time.editor.d.ts +1 -1
  252. package/lib/property-editor/property-editor-renderer.directive.d.ts +1 -1
  253. package/lib/property-editor/property-editor.class.d.ts +3 -3
  254. package/lib/query-builder/query-builder-group.component.d.ts +1 -1
  255. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +1 -1
  256. package/lib/query-builder/query-builder-rule.component.d.ts +3 -3
  257. package/lib/query-builder/query-builder.class.d.ts +4 -4
  258. package/lib/query-builder/query-builder.component.d.ts +1 -1
  259. package/lib/search-bar/search-bar.component.d.ts +1 -1
  260. package/lib/searchbox/searchbox.component.d.ts +1 -1
  261. package/lib/selectbox/selectbox.component.d.ts +1 -1
  262. package/lib/selectbox/selectbox2.component.d.ts +1 -1
  263. package/lib/selection-list/selection-list.component.d.ts +2 -2
  264. package/lib/switch/switch.component.d.ts +1 -1
  265. package/lib/tab-page/tab-page-Renderer.component.d.ts +1 -1
  266. package/lib/tab-page/tab-page-host.component.d.ts +1 -1
  267. package/lib/tab-strip/tab-strip.component.d.ts +1 -1
  268. package/lib/tab-view/dynamic-tabs.directive.d.ts +1 -1
  269. package/lib/tab-view/tab-view.component.d.ts +1 -1
  270. package/lib/tab-view/tab.component.d.ts +1 -1
  271. package/lib/textarea/textarea.component.d.ts +1 -1
  272. package/lib/textbox/textbox.component.d.ts +1 -1
  273. package/lib/textbox/textbox.module.d.ts +2 -2
  274. package/lib/time-picker/time-picker.component.d.ts +1 -1
  275. package/lib/time-picker/time-picker.module.d.ts +2 -2
  276. package/lib/toast/toast-message/toast-message.component.d.ts +1 -1
  277. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +1 -1
  278. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +1 -1
  279. package/lib/toolbar/menu/toolbar-menu.component.d.ts +1 -1
  280. package/lib/toolbar/search/toolbar-search.component.d.ts +1 -1
  281. package/lib/toolbar/title/toolbar-title.component.d.ts +1 -1
  282. package/lib/toolbar/toolbar.component.d.ts +1 -1
  283. package/lib/tooltip/tooltip.directive.d.ts +1 -1
  284. package/lib/tree-side-menu/tree-side-menu.component.d.ts +1 -1
  285. package/lib/tree-view/tree-view.component.d.ts +1 -1
  286. package/lib/upload-file/upload-file.component.d.ts +1 -1
  287. package/lib/validation/validation-form.component.d.ts +1 -1
  288. package/lib/validation/validation-rule.widget.d.ts +1 -1
  289. package/lib/validation/validation.class.d.ts +1 -1
  290. package/lib/validation/validation.component.d.ts +1 -1
  291. package/package.json +15 -20
  292. package/acorex-components.d.ts +0 -5
  293. package/esm2020/acorex-components.mjs +0 -5
  294. package/esm2020/lib/accordion/accordion.component.mjs +0 -44
  295. package/esm2020/lib/accordion/accordion.module.mjs +0 -20
  296. package/esm2020/lib/base/base-page.class.mjs +0 -94
  297. package/esm2020/lib/base/components.class.mjs +0 -17
  298. package/esm2020/lib/base/element.class.mjs +0 -294
  299. package/esm2020/lib/base/events.class.mjs +0 -11
  300. package/esm2020/lib/button/button.component.mjs +0 -71
  301. package/esm2020/lib/button/button.module.mjs +0 -21
  302. package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +0 -413
  303. package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
  304. package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +0 -54
  305. package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +0 -18
  306. package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +0 -213
  307. package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +0 -68
  308. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -132
  309. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
  310. package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -47
  311. package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -95
  312. package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -204
  313. package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
  314. package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -77
  315. package/esm2020/lib/checkbox/checkbox.component.mjs +0 -98
  316. package/esm2020/lib/checkbox/checkbox.module.mjs +0 -20
  317. package/esm2020/lib/color-picker/color-box/color-box.component.mjs +0 -422
  318. package/esm2020/lib/color-picker/color-picker.component.mjs +0 -82
  319. package/esm2020/lib/color-picker/color-picker.module.mjs +0 -24
  320. package/esm2020/lib/context-menu/context-menu.component.mjs +0 -65
  321. package/esm2020/lib/context-menu/context-menu.directive.mjs +0 -135
  322. package/esm2020/lib/context-menu/context-menu.module.mjs +0 -20
  323. package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +0 -138
  324. package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +0 -117
  325. package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +0 -74
  326. package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +0 -117
  327. package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -258
  328. package/esm2020/lib/data-filter/filter.class.mjs +0 -44
  329. package/esm2020/lib/data-filter/filter.module.mjs +0 -90
  330. package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -166
  331. package/esm2020/lib/data-list/core/data-list.component.mjs +0 -40
  332. package/esm2020/lib/data-list/list/list.component.mjs +0 -124
  333. package/esm2020/lib/data-list/list/list.module.mjs +0 -22
  334. package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +0 -85
  335. package/esm2020/lib/data-source/datasource.component.mjs +0 -47
  336. package/esm2020/lib/data-source/datasource.module.mjs +0 -18
  337. package/esm2020/lib/data-source/read-param.mjs +0 -5
  338. package/esm2020/lib/date-picker/date-picker.component.mjs +0 -702
  339. package/esm2020/lib/date-picker/date-picker.module.mjs +0 -25
  340. package/esm2020/lib/dialog/dialog.component.mjs +0 -24
  341. package/esm2020/lib/dialog/dialog.module.mjs +0 -21
  342. package/esm2020/lib/dialog/dialog.service.mjs +0 -150
  343. package/esm2020/lib/drawer/content.component.mjs +0 -18
  344. package/esm2020/lib/drawer/drawer-container.component.mjs +0 -36
  345. package/esm2020/lib/drawer/drawer.component.mjs +0 -142
  346. package/esm2020/lib/drawer/drawer.module.mjs +0 -23
  347. package/esm2020/lib/dropdown/dropdown.component.mjs +0 -176
  348. package/esm2020/lib/dropdown/dropdown.module.mjs +0 -26
  349. package/esm2020/lib/fieldset/fieldset.component.mjs +0 -59
  350. package/esm2020/lib/fieldset/fieldset.module.mjs +0 -19
  351. package/esm2020/lib/form-group/form-group.component.mjs +0 -34
  352. package/esm2020/lib/form-group/form-group.module.mjs +0 -21
  353. package/esm2020/lib/label/label.component.mjs +0 -19
  354. package/esm2020/lib/label/label.module.mjs +0 -21
  355. package/esm2020/lib/loading/loading-indicator.component.mjs +0 -17
  356. package/esm2020/lib/loading/loading-panel.component.mjs +0 -44
  357. package/esm2020/lib/loading/loading.module.mjs +0 -21
  358. package/esm2020/lib/loading/loading.service.mjs +0 -45
  359. package/esm2020/lib/menu/menu-item.component.mjs +0 -47
  360. package/esm2020/lib/menu/menu.component.mjs +0 -86
  361. package/esm2020/lib/menu/menu.module.mjs +0 -22
  362. package/esm2020/lib/menu/menu2.component.mjs +0 -96
  363. package/esm2020/lib/number-box/number-box.component.mjs +0 -622
  364. package/esm2020/lib/number-box/number-box.module.mjs +0 -21
  365. package/esm2020/lib/page/content.component.mjs +0 -32
  366. package/esm2020/lib/page/footer.component.mjs +0 -19
  367. package/esm2020/lib/page/page.component.mjs +0 -53
  368. package/esm2020/lib/page/page.module.mjs +0 -22
  369. package/esm2020/lib/panel-box/panel-box.component.mjs +0 -88
  370. package/esm2020/lib/panel-box/panel-box.module.mjs +0 -19
  371. package/esm2020/lib/password-box/password-box.component.mjs +0 -31
  372. package/esm2020/lib/password-box/password-box.module.mjs +0 -23
  373. package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +0 -48
  374. package/esm2020/lib/popover/overlay.service.mjs +0 -91
  375. package/esm2020/lib/popover/popover.component.mjs +0 -133
  376. package/esm2020/lib/popover/popover.module.mjs +0 -19
  377. package/esm2020/lib/popup/popup.component.mjs +0 -147
  378. package/esm2020/lib/popup/popup.module.mjs +0 -25
  379. package/esm2020/lib/popup/popup.service.mjs +0 -93
  380. package/esm2020/lib/progress-bar/progress-bar.component.mjs +0 -19
  381. package/esm2020/lib/progress-bar/progress-bar.module.mjs +0 -19
  382. package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +0 -61
  383. package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
  384. package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +0 -38
  385. package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
  386. package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +0 -115
  387. package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
  388. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -211
  389. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -78
  390. package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +0 -51
  391. package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
  392. package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +0 -63
  393. package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
  394. package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +0 -140
  395. package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +0 -61
  396. package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -72
  397. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -71
  398. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
  399. package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -69
  400. package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
  401. package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -29
  402. package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
  403. package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +0 -32
  404. package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
  405. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -32
  406. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
  407. package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +0 -43
  408. package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
  409. package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +0 -157
  410. package/esm2020/lib/property-editor/property-editor.class.mjs +0 -102
  411. package/esm2020/lib/property-editor/property-editor.module.mjs +0 -196
  412. package/esm2020/lib/query-builder/query-builder-group.component.mjs +0 -124
  413. package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -172
  414. package/esm2020/lib/query-builder/query-builder-rule.component.mjs +0 -399
  415. package/esm2020/lib/query-builder/query-builder.class.mjs +0 -20
  416. package/esm2020/lib/query-builder/query-builder.component.mjs +0 -87
  417. package/esm2020/lib/query-builder/query-builder.module.mjs +0 -62
  418. package/esm2020/lib/query-builder/query-builder.service.mjs +0 -197
  419. package/esm2020/lib/search-bar/search-bar.component.mjs +0 -286
  420. package/esm2020/lib/search-bar/search-bar.module.mjs +0 -63
  421. package/esm2020/lib/searchbox/searchbox.component.mjs +0 -79
  422. package/esm2020/lib/searchbox/searchbox.module.mjs +0 -24
  423. package/esm2020/lib/selectbox/selectbox.component.mjs +0 -961
  424. package/esm2020/lib/selectbox/selectbox.module.mjs +0 -44
  425. package/esm2020/lib/selectbox/selectbox2.component.mjs +0 -574
  426. package/esm2020/lib/selection-list/selection-list.component.mjs +0 -108
  427. package/esm2020/lib/selection-list/selection-list.module.mjs +0 -21
  428. package/esm2020/lib/switch/switch.component.mjs +0 -51
  429. package/esm2020/lib/switch/switch.module.mjs +0 -20
  430. package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +0 -71
  431. package/esm2020/lib/tab-page/tab-page-host.component.mjs +0 -114
  432. package/esm2020/lib/tab-page/tab-page.module.mjs +0 -21
  433. package/esm2020/lib/tab-page/tab-page.service.mjs +0 -160
  434. package/esm2020/lib/tab-strip/tab-strip.component.mjs +0 -36
  435. package/esm2020/lib/tab-strip/tab-strip.module.mjs +0 -19
  436. package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +0 -24
  437. package/esm2020/lib/tab-view/tab-view.component.mjs +0 -105
  438. package/esm2020/lib/tab-view/tab-view.module.mjs +0 -21
  439. package/esm2020/lib/tab-view/tab.component.mjs +0 -30
  440. package/esm2020/lib/textarea/textarea.component.mjs +0 -26
  441. package/esm2020/lib/textarea/textarea.module.mjs +0 -21
  442. package/esm2020/lib/textbox/textbox.component.mjs +0 -39
  443. package/esm2020/lib/textbox/textbox.module.mjs +0 -24
  444. package/esm2020/lib/time-picker/time-picker.component.mjs +0 -943
  445. package/esm2020/lib/time-picker/time-picker.module.mjs +0 -22
  446. package/esm2020/lib/toast/toast-message/toast-message.component.mjs +0 -74
  447. package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
  448. package/esm2020/lib/toast/toast.module.mjs +0 -21
  449. package/esm2020/lib/toast/toast.service.mjs +0 -44
  450. package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -78
  451. package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +0 -57
  452. package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +0 -54
  453. package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +0 -47
  454. package/esm2020/lib/toolbar/toolbar-item.mjs +0 -6
  455. package/esm2020/lib/toolbar/toolbar.component.mjs +0 -13
  456. package/esm2020/lib/toolbar/toolbar.module.mjs +0 -40
  457. package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -100
  458. package/esm2020/lib/tooltip/tooltip.module.mjs +0 -19
  459. package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +0 -646
  460. package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +0 -35
  461. package/esm2020/lib/tree-view/tree-view.component.mjs +0 -775
  462. package/esm2020/lib/tree-view/tree-view.module.mjs +0 -22
  463. package/esm2020/lib/upload-file/upload-file.component.mjs +0 -208
  464. package/esm2020/lib/upload-file/upload-file.events.mjs +0 -2
  465. package/esm2020/lib/upload-file/upload-file.module.mjs +0 -24
  466. package/esm2020/lib/validation/validation-form.component.mjs +0 -65
  467. package/esm2020/lib/validation/validation-rule.widget.mjs +0 -111
  468. package/esm2020/lib/validation/validation.class.mjs +0 -2
  469. package/esm2020/lib/validation/validation.component.mjs +0 -89
  470. package/esm2020/lib/validation/validation.module.mjs +0 -34
  471. package/esm2020/public-api.mjs +0 -158
  472. package/fesm2015/acorex-components.mjs +0 -16012
  473. package/fesm2015/acorex-components.mjs.map +0 -1
  474. package/fesm2020/acorex-components.mjs.map +0 -1
  475. /package/{public-api.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { AXTreeViewComponent } from './tree-view.component';
3
+ import { CommonModule } from '@angular/common';
4
+ import { AXDataSourceModule } from '../data-source/datasource.module';
5
+ import { AXCheckBoxModule } from '../checkbox/checkbox.module';
6
+ import { AXContextMenuModule } from '../context-menu/context-menu.module';
7
+ import * as i0 from "@angular/core";
8
+ export class AXTreeViewModule {
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXTreeViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: AXTreeViewModule, declarations: [AXTreeViewComponent], imports: [AXDataSourceModule, CommonModule, AXCheckBoxModule, AXContextMenuModule], exports: [AXTreeViewComponent] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXTreeViewModule, imports: [AXDataSourceModule, CommonModule, AXCheckBoxModule, AXContextMenuModule] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXTreeViewModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ declarations: [AXTreeViewComponent],
17
+ imports: [AXDataSourceModule, CommonModule, AXCheckBoxModule, AXContextMenuModule],
18
+ exports: [AXTreeViewComponent],
19
+ providers: []
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RyZWUtdmlldy90cmVlLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQVUxRSxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7d0dBQWhCLGdCQUFnQixpQkFOVixtQkFBbUIsYUFDeEIsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixhQUN2RSxtQkFBbUI7d0dBSXBCLGdCQUFnQixZQUxmLGtCQUFrQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUI7OzJGQUt4RSxnQkFBZ0I7a0JBUDVCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQztvQkFDbEYsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLFNBQVMsRUFBRSxFQUFFO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWERhdGFTb3VyY2VNb2R1bGUgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS9kYXRhc291cmNlLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYQ2hlY2tCb3hNb2R1bGUgfSBmcm9tICcuLi9jaGVja2JveC9jaGVja2JveC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWENvbnRleHRNZW51TW9kdWxlIH0gZnJvbSAnLi4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5tb2R1bGUnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtBWFRyZWVWaWV3Q29tcG9uZW50XSxcclxuICAgIGltcG9ydHM6IFtBWERhdGFTb3VyY2VNb2R1bGUsIENvbW1vbk1vZHVsZSwgQVhDaGVja0JveE1vZHVsZSwgQVhDb250ZXh0TWVudU1vZHVsZV0sXHJcbiAgICBleHBvcnRzOiBbQVhUcmVlVmlld0NvbXBvbmVudF0sXHJcbiAgICBwcm92aWRlcnM6IFtdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld01vZHVsZSB7IH0iXX0=
@@ -0,0 +1,218 @@
1
+ import { Component, ViewChild, Input, ElementRef, ViewEncapsulation, TemplateRef, Renderer2, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';
2
+ import { AXProgressBarComponent } from '../progress-bar/progress-bar.component';
3
+ import { AXBaseComponent } from '../base/element.class';
4
+ import { AXRenderService } from '@acorex/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@acorex/core";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "../button/button.component";
9
+ import * as i4 from "../textbox/textbox.component";
10
+ import * as i5 from "../form-group/form-group.component";
11
+ export class AXUploadFileComponent extends AXBaseComponent {
12
+ el;
13
+ injectionService;
14
+ rendrer;
15
+ cdr;
16
+ overlayDiv;
17
+ contentType = 'image';
18
+ dropRef;
19
+ progressRef;
20
+ label;
21
+ size = "md";
22
+ fileInput;
23
+ type = 'inline';
24
+ template;
25
+ disabled = false;
26
+ onLoad = new EventEmitter();
27
+ onProgress = new EventEmitter();
28
+ onRemove = new EventEmitter();
29
+ fileTypes = [
30
+ {
31
+ type: 'image',
32
+ accept: ['image/gif', 'image/jpeg', 'image/png'],
33
+ },
34
+ {
35
+ type: 'audio',
36
+ accept: ['audio/mp3'],
37
+ },
38
+ {
39
+ type: 'ebook',
40
+ accept: ['application/pdf'],
41
+ },
42
+ {
43
+ type: 'excel',
44
+ accept: ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
45
+ },
46
+ {
47
+ type: 'video',
48
+ accept: ['video/*'],
49
+ },
50
+ {
51
+ type: 'video/image',
52
+ accept: ['image/gif', 'image/jpeg', 'image/png', 'video/*'],
53
+ },
54
+ ];
55
+ files = [];
56
+ focus() { }
57
+ fileName = '';
58
+ constructor(el, injectionService, rendrer, cdr) {
59
+ super();
60
+ this.el = el;
61
+ this.injectionService = injectionService;
62
+ this.rendrer = rendrer;
63
+ this.cdr = cdr;
64
+ }
65
+ onDeleteClick(e) {
66
+ e.stopPropagation();
67
+ }
68
+ onFileChange(e) {
69
+ const files = e.target.files;
70
+ this.addFile(files[0]);
71
+ this.fileInput.nativeElement.value = null;
72
+ }
73
+ open() {
74
+ this.fileInput.nativeElement.click({ accept: this.accessTypes });
75
+ }
76
+ remove() {
77
+ this.fileInput.nativeElement.value = '';
78
+ this.files = [];
79
+ this.fileName = null;
80
+ this.onRemove.emit();
81
+ }
82
+ ngAfterViewInit() {
83
+ if (this.dropRef != null) {
84
+ }
85
+ else {
86
+ this.dropRef = this.el.nativeElement;
87
+ }
88
+ //
89
+ if (this.progressRef != null) {
90
+ }
91
+ else {
92
+ this.progressRef = this.el.nativeElement;
93
+ }
94
+ //
95
+ if (this.type === 'hidden' || this.type === 'box') {
96
+ this.overlayDiv = this.rendrer.createElement('div');
97
+ this.overlayDiv.classList.add('overlay');
98
+ this.overlayDiv.innerHTML = `
99
+ <div class="icon-wrapper">
100
+ <i class="far fa-cloud-upload-alt fa-3x"></i>
101
+ <span>Drop File(s) Here</span>
102
+ </div>
103
+ `;
104
+ this.overlayDiv.addEventListener('drag', this.handleOverlayDragOver);
105
+ this.overlayDiv.addEventListener('dragover', this.handleOverlayDragOver);
106
+ this.overlayDiv.addEventListener('dragleave', this.handleOverlayDragOver);
107
+ this.rendrer.appendChild(this.dropRef, this.overlayDiv);
108
+ }
109
+ //
110
+ this.dropRef.classList.add('ax-upload-drop-over');
111
+ this.dropRef.addEventListener('dragover', this.handleDragOver.bind(this));
112
+ this.dropRef.addEventListener('dragleave', this.handleDragLeave.bind(this));
113
+ this.dropRef.addEventListener('drop', this.handleDrop.bind(this));
114
+ }
115
+ handleOverlayDragOver(e) {
116
+ e.preventDefault();
117
+ e.stopPropagation();
118
+ return false;
119
+ }
120
+ handleDragOver(e) {
121
+ e.preventDefault();
122
+ e.stopPropagation();
123
+ this.overlayDiv.classList.add('show');
124
+ return false;
125
+ }
126
+ handleDragLeave(e) {
127
+ e.preventDefault();
128
+ e.stopPropagation();
129
+ this.overlayDiv.classList.remove('show');
130
+ return false;
131
+ }
132
+ handleDrop(e) {
133
+ this.handleDragLeave(e);
134
+ for (let i = 0; i < e.dataTransfer.files.length; i++) {
135
+ const file = e.dataTransfer.files[i];
136
+ this.addFile(file);
137
+ }
138
+ }
139
+ addFile(file) {
140
+ const progressDiv = this.rendrer.createElement('div');
141
+ progressDiv.classList.add('ax-upload-progress-panel');
142
+ const progressLabel = this.rendrer.createElement('small');
143
+ progressLabel.innerText = file.name;
144
+ this.fileName = file.name;
145
+ this.rendrer.appendChild(this.progressRef, progressDiv);
146
+ const com = this.injectionService.appendComponent(AXProgressBarComponent, { progress: 0 }, progressDiv).instance;
147
+ this.rendrer.appendChild(progressDiv, progressLabel);
148
+ const reader = new FileReader();
149
+ reader.addEventListener('load', (e) => {
150
+ this.onLoad.emit({
151
+ file,
152
+ data: e.target.result
153
+ });
154
+ //
155
+ // Fake Upload
156
+ let pv = 0;
157
+ let uploaded = 0;
158
+ const intv = setInterval(() => {
159
+ uploaded += 1024 * 1000;
160
+ if (uploaded > e.total) {
161
+ uploaded = e.total;
162
+ }
163
+ pv = Math.ceil((uploaded / e.total) * 100);
164
+ com.progress = pv;
165
+ this.onProgress.emit({
166
+ file,
167
+ total: e.total,
168
+ uploaded,
169
+ value: pv
170
+ });
171
+ //
172
+ if (com.progress >= 100) {
173
+ clearInterval(intv);
174
+ setTimeout(() => {
175
+ this.rendrer.removeChild(this.progressRef, progressDiv);
176
+ }, 1000);
177
+ }
178
+ }, 100);
179
+ });
180
+ reader.readAsDataURL(file);
181
+ this.files.push(file);
182
+ }
183
+ get accessTypes() {
184
+ return this.fileTypes.find((item) => item.type == this.contentType).accept;
185
+ }
186
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXUploadFileComponent, deps: [{ token: i0.ElementRef }, { token: i1.AXRenderService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
187
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXUploadFileComponent, selector: "ax-upload-file", inputs: { contentType: "contentType", dropRef: "dropRef", progressRef: "progressRef", label: "label", size: "size", type: "type", template: "template", disabled: "disabled" }, outputs: { onLoad: "onLoad", onProgress: "onProgress", onRemove: "onRemove" }, host: { styleAttribute: "display: block; width:100%; position: relative" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input #fileInput type=\"file\" [accept]=\"accessTypes.join(',')\" style=\"display: none;\" (change)=\"onFileChange($event)\" />\r\n\r\n<ng-container *ngIf=\"type == 'inline'; else elseTemplate\">\r\n <ax-form-group size=\"{{size}}\">\r\n <ax-text-box [value]=\"fileName\" readonly=\"true\" [disabled]=\"disabled\"></ax-text-box>\r\n <ax-button type=\"blank light\" icon=\"far fa-times\" (click)=\"remove()\" *ngIf=\"fileName\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ax-button type=\"primary blank\" icon=\"far fa-upload\" (click)=\"open()\" [disabled]=\"disabled\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n </ax-form-group>\r\n</ng-container>\r\n\r\n<ng-template #elseTemplate>\r\n <div class=\"ax upload-file-box\" (click)=\"open()\" #dropRef>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i4.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { kind: "component", type: i5.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }], encapsulation: i0.ViewEncapsulation.None });
188
+ }
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXUploadFileComponent, decorators: [{
190
+ type: Component,
191
+ args: [{ selector: 'ax-upload-file', encapsulation: ViewEncapsulation.None, host: { style: 'display: block; width:100%; position: relative' }, template: "<input #fileInput type=\"file\" [accept]=\"accessTypes.join(',')\" style=\"display: none;\" (change)=\"onFileChange($event)\" />\r\n\r\n<ng-container *ngIf=\"type == 'inline'; else elseTemplate\">\r\n <ax-form-group size=\"{{size}}\">\r\n <ax-text-box [value]=\"fileName\" readonly=\"true\" [disabled]=\"disabled\"></ax-text-box>\r\n <ax-button type=\"blank light\" icon=\"far fa-times\" (click)=\"remove()\" *ngIf=\"fileName\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ax-button type=\"primary blank\" icon=\"far fa-upload\" (click)=\"open()\" [disabled]=\"disabled\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n </ax-form-group>\r\n</ng-container>\r\n\r\n<ng-template #elseTemplate>\r\n <div class=\"ax upload-file-box\" (click)=\"open()\" #dropRef>\r\n </div>\r\n</ng-template>\r\n" }]
192
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.AXRenderService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { contentType: [{
193
+ type: Input
194
+ }], dropRef: [{
195
+ type: Input
196
+ }], progressRef: [{
197
+ type: Input
198
+ }], label: [{
199
+ type: Input
200
+ }], size: [{
201
+ type: Input
202
+ }], fileInput: [{
203
+ type: ViewChild,
204
+ args: ['fileInput']
205
+ }], type: [{
206
+ type: Input
207
+ }], template: [{
208
+ type: Input
209
+ }], disabled: [{
210
+ type: Input
211
+ }], onLoad: [{
212
+ type: Output
213
+ }], onProgress: [{
214
+ type: Output
215
+ }], onRemove: [{
216
+ type: Output
217
+ }] } });
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQThELGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFRL0MsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQWU7SUFxRTlDO0lBQ0E7SUFDQTtJQUNFO0lBdkVKLFVBQVUsQ0FBYztJQUdoQyxXQUFXLEdBQTBELE9BQU8sQ0FBQztJQUc3RSxPQUFPLENBQWM7SUFHckIsV0FBVyxDQUFjO0lBR3pCLEtBQUssQ0FBUztJQUdkLElBQUksR0FBa0IsSUFBSSxDQUFDO0lBRUgsU0FBUyxDQUFhO0lBRzlDLElBQUksR0FBZ0MsUUFBUSxDQUFDO0lBR3RDLFFBQVEsQ0FBbUI7SUFFekIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUVuQyxNQUFNLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO0lBR3hGLFVBQVUsR0FBNEMsSUFBSSxZQUFZLEVBQTZCLENBQUM7SUFHcEcsUUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxD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TTtnQkFJUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBUZW1wbGF0ZVJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE91dHB1dCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFVwbG9hZEZpbGVMb2FkRXZlbnQsIEFYVXBsb2FkRmlsZVByb2dyZXNzRXZlbnQgfSBmcm9tICcuL3VwbG9hZC1maWxlLmV2ZW50cyc7XHJcbmltcG9ydCB7IEFYUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICcuLi9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYQmFzZVRleHRDb21wb25lbnQsIEFYRWxlbWVudFNpemUsIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYUmVuZGVyU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXVwbG9hZC1maWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLWZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDogeyBzdHlsZTogJ2Rpc3BsYXk6IGJsb2NrOyB3aWR0aDoxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmUnIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYVXBsb2FkRmlsZUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xyXG4gIHByaXZhdGUgb3ZlcmxheURpdjogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGVudFR5cGU6ICdpbWFnZScgfCAnZXhjZWwnIHwgJ2F1ZGlvJyB8ICd2aWRlbycgfCAndmlkZW8vaW1hZ2UnID0gJ2ltYWdlJztcclxuXHJcbiAgQElucHV0KClcclxuICBkcm9wUmVmOiBIVE1MRWxlbWVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwcm9ncmVzc1JlZjogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gXCJtZFwiO1xyXG5cclxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdHlwZTogJ2JveCcgfCAnaW5saW5lJyB8ICdoaWRkZW4nID0gJ2lubGluZSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uTG9hZDogRXZlbnRFbWl0dGVyPEFYVXBsb2FkRmlsZUxvYWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVXBsb2FkRmlsZUxvYWRFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25Qcm9ncmVzczogRXZlbnRFbWl0dGVyPEFYVXBsb2FkRmlsZVByb2dyZXNzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFVwbG9hZEZpbGVQcm9ncmVzc0V2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvblJlbW92ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGZpbGVUeXBlczphbnlbXSA9IFtcclxuICAgIHtcclxuICAgICAgdHlwZTogJ2ltYWdlJyxcclxuICAgICAgYWNjZXB0OiBbJ2ltYWdlL2dpZicsICdpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogJ2F1ZGlvJyxcclxuICAgICAgYWNjZXB0OiBbJ2F1ZGlvL21wMyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogJ2Vib29rJyxcclxuICAgICAgYWNjZXB0OiBbJ2FwcGxpY2F0aW9uL3BkZiddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogJ2V4Y2VsJyxcclxuICAgICAgYWNjZXB0OiBbJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogJ3ZpZGVvJyxcclxuICAgICAgYWNjZXB0OiBbJ3ZpZGVvLyonXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6ICd2aWRlby9pbWFnZScsXHJcbiAgICAgIGFjY2VwdDogWydpbWFnZS9naWYnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9wbmcnLCAndmlkZW8vKiddLFxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuXHJcbiAgZmlsZXM6IEZpbGVbXSA9IFtdO1xyXG4gIGZvY3VzKCkgeyB9XHJcblxyXG4gIGZpbGVOYW1lOiBzdHJpbmcgPSAnJztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSBpbmplY3Rpb25TZXJ2aWNlOiBBWFJlbmRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRyZXI6IFJlbmRlcmVyMixcclxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcblxyXG4gIG9uRGVsZXRlQ2xpY2soZSkge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uRmlsZUNoYW5nZShlKSB7XHJcbiAgICBjb25zdCBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzO1xyXG4gICAgdGhpcy5hZGRGaWxlKGZpbGVzWzBdKTtcclxuICAgICh0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gbnVsbDtcclxuICB9XHJcblxyXG4gIG9wZW4oKSB7XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKHthY2NlcHQ6dGhpcy5hY2Nlc3NUeXBlc30pO1xyXG4gIH1cclxuICByZW1vdmUoKSB7XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJydcclxuICAgIHRoaXMuZmlsZXMgPSBbXTtcclxuICAgIHRoaXMuZmlsZU5hbWUgPSBudWxsXHJcbiAgICB0aGlzLm9uUmVtb3ZlLmVtaXQoKVxyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kcm9wUmVmICE9IG51bGwpIHtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHJvcFJlZiA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuICAgIC8vXHJcbiAgICBpZiAodGhpcy5wcm9ncmVzc1JlZiAhPSBudWxsKSB7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnByb2dyZXNzUmVmID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG4gICAgLy9cclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdoaWRkZW4nIHx8IHRoaXMudHlwZSA9PT0gJ2JveCcpIHtcclxuICAgICAgdGhpcy5vdmVybGF5RGl2ID0gdGhpcy5yZW5kcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICB0aGlzLm92ZXJsYXlEaXYuY2xhc3NMaXN0LmFkZCgnb3ZlcmxheScpO1xyXG4gICAgICB0aGlzLm92ZXJsYXlEaXYuaW5uZXJIVE1MID0gYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtY2xvdWQtdXBsb2FkLWFsdCBmYS0zeFwiPjwvaT5cclxuICAgICAgICA8c3Bhbj5Ecm9wIEZpbGUocykgSGVyZTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgO1xyXG4gICAgICB0aGlzLm92ZXJsYXlEaXYuYWRkRXZlbnRMaXN0ZW5lcignZHJhZycsIHRoaXMuaGFuZGxlT3ZlcmxheURyYWdPdmVyKTtcclxuICAgICAgdGhpcy5vdmVybGF5RGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVPdmVybGF5RHJhZ092ZXIpO1xyXG4gICAgICB0aGlzLm92ZXJsYXlEaXYuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgdGhpcy5oYW5kbGVPdmVybGF5RHJhZ092ZXIpO1xyXG4gICAgICB0aGlzLnJlbmRyZXIuYXBwZW5kQ2hpbGQodGhpcy5kcm9wUmVmLCB0aGlzLm92ZXJsYXlEaXYpO1xyXG4gICAgfVxyXG4gICAgLy9cclxuICAgIHRoaXMuZHJvcFJlZi5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWQtZHJvcC1vdmVyJyk7XHJcbiAgICB0aGlzLmRyb3BSZWYuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmhhbmRsZURyYWdPdmVyLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy5kcm9wUmVmLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIHRoaXMuaGFuZGxlRHJhZ0xlYXZlLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy5kcm9wUmVmLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLmhhbmRsZURyb3AuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZU92ZXJsYXlEcmFnT3ZlcihlOiBEcmFnRXZlbnQpIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZURyYWdPdmVyKGU6IERyYWdFdmVudCkge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZURyYWdMZWF2ZShlOiBEcmFnRXZlbnQpIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLm92ZXJsYXlEaXYuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRHJvcChlOiBEcmFnRXZlbnQpIHtcclxuICAgIHRoaXMuaGFuZGxlRHJhZ0xlYXZlKGUpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlLmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBmaWxlID0gZS5kYXRhVHJhbnNmZXIuZmlsZXNbaV07XHJcbiAgICAgIHRoaXMuYWRkRmlsZShmaWxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkRmlsZShmaWxlOiBGaWxlKSB7XHJcbiAgICBjb25zdCBwcm9ncmVzc0RpdiA9IHRoaXMucmVuZHJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIHByb2dyZXNzRGl2LmNsYXNzTGlzdC5hZGQoJ2F4LXVwbG9hZC1wcm9ncmVzcy1wYW5lbCcpO1xyXG4gICAgY29uc3QgcHJvZ3Jlc3NMYWJlbCA9IHRoaXMucmVuZHJlci5jcmVhdGVFbGVtZW50KCdzbWFsbCcpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgcHJvZ3Jlc3NMYWJlbC5pbm5lclRleHQgPSBmaWxlLm5hbWU7XHJcbiAgICB0aGlzLmZpbGVOYW1lID0gZmlsZS5uYW1lO1xyXG4gICAgdGhpcy5yZW5kcmVyLmFwcGVuZENoaWxkKHRoaXMucHJvZ3Jlc3NSZWYsIHByb2dyZXNzRGl2KTtcclxuICAgIGNvbnN0IGNvbSA9IHRoaXMuaW5qZWN0aW9uU2VydmljZS5hcHBlbmRDb21wb25lbnQoQVhQcm9ncmVzc0JhckNvbXBvbmVudCwgeyBwcm9ncmVzczogMCB9LCBwcm9ncmVzc0RpdikuaW5zdGFuY2UgYXMgQVhQcm9ncmVzc0JhckNvbXBvbmVudDtcclxuICAgIHRoaXMucmVuZHJlci5hcHBlbmRDaGlsZChwcm9ncmVzc0RpdiwgcHJvZ3Jlc3NMYWJlbCk7XHJcblxyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGUpID0+IHtcclxuICAgICAgdGhpcy5vbkxvYWQuZW1pdCh7XHJcbiAgICAgICAgZmlsZSxcclxuICAgICAgICBkYXRhOiAoZSBhcyBhbnkpLnRhcmdldC5yZXN1bHRcclxuICAgICAgfSk7XHJcbiAgICAgIC8vXHJcbiAgICAgIC8vIEZha2UgVXBsb2FkXHJcbiAgICAgIGxldCBwdiA9IDA7XHJcbiAgICAgIGxldCB1cGxvYWRlZCA9IDA7XHJcbiAgICAgIGNvbnN0IGludHYgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgdXBsb2FkZWQgKz0gMTAyNCAqIDEwMDA7XHJcbiAgICAgICAgaWYgKHVwbG9hZGVkID4gZS50b3RhbCkge1xyXG4gICAgICAgICAgdXBsb2FkZWQgPSBlLnRvdGFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwdiA9IE1hdGguY2VpbCgodXBsb2FkZWQgLyBlLnRvdGFsKSAqIDEwMCk7XHJcbiAgICAgICAgY29tLnByb2dyZXNzID0gcHY7XHJcbiAgICAgICAgdGhpcy5vblByb2dyZXNzLmVtaXQoe1xyXG4gICAgICAgICAgZmlsZSxcclxuICAgICAgICAgIHRvdGFsOiBlLnRvdGFsLFxyXG4gICAgICAgICAgdXBsb2FkZWQsXHJcbiAgICAgICAgICB2YWx1ZTogcHZcclxuICAgICAgICB9KTtcclxuICAgICAgICAvL1xyXG4gICAgICAgIGlmIChjb20ucHJvZ3Jlc3MgPj0gMTAwKSB7XHJcbiAgICAgICAgICBjbGVhckludGVydmFsKGludHYpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZHJlci5yZW1vdmVDaGlsZCh0aGlzLnByb2dyZXNzUmVmLCBwcm9ncmVzc0Rpdik7XHJcbiAgICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9KTtcclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgdGhpcy5maWxlcy5wdXNoKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjY2Vzc1R5cGVzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLmZpbGVUeXBlcy5maW5kKChpdGVtKSA9PiBpdGVtLnR5cGUgPT0gdGhpcy5jb250ZW50VHlwZSkuYWNjZXB0O1xyXG4gIH1cclxufVxyXG4iLCI8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiIFthY2NlcHRdPVwiYWNjZXNzVHlwZXMuam9pbignLCcpXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIiAvPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT0gJ2lubGluZSc7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XHJcbiAgPGF4LWZvcm0tZ3JvdXAgc2l6ZT1cInt7c2l6ZX19XCI+XHJcbiAgICA8YXgtdGV4dC1ib3ggW3ZhbHVlXT1cImZpbGVOYW1lXCIgcmVhZG9ubHk9XCJ0cnVlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PC9heC10ZXh0LWJveD5cclxuICAgIDxheC1idXR0b24gdHlwZT1cImJsYW5rIGxpZ2h0XCIgaWNvbj1cImZhciBmYS10aW1lc1wiIChjbGljayk9XCJyZW1vdmUoKVwiICpuZ0lmPVwiZmlsZU5hbWVcIiBbdGFiSW5kZXhdPVwiLTFcIj5cclxuICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgPGF4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeSBibGFua1wiIGljb249XCJmYXIgZmEtdXBsb2FkXCIgKGNsaWNrKT1cIm9wZW4oKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0YWJJbmRleF09XCItMVwiPlxyXG4gICAgPC9heC1idXR0b24+XHJcbiAgPC9heC1mb3JtLWdyb3VwPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJheCB1cGxvYWQtZmlsZS1ib3hcIiAoY2xpY2spPVwib3BlbigpXCIgI2Ryb3BSZWY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFYVXBsb2FkRmlsZVByb2dyZXNzRXZlbnQge1xyXG4gIHJlYWRvbmx5IGZpbGU6IEZpbGU7XHJcbiAgcmVhZG9ubHkgdXBsb2FkZWQ6IG51bWJlcjtcclxuICByZWFkb25seSB0b3RhbDogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhVcGxvYWRGaWxlTG9hZEV2ZW50IHtcclxuICByZWFkb25seSBmaWxlOiBGaWxlO1xyXG4gIHJlYWRvbmx5IGRhdGE6IEFycmF5QnVmZmVyO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AXUploadFileComponent } from './upload-file.component';
4
+ import { AXButtonModule } from '../button/button.module';
5
+ import { AXTextBoxModule } from '../textbox/textbox.module';
6
+ import { AXProgressBarModule } from '../progress-bar/progress-bar.module';
7
+ import { AXLabelModule } from '../label/label.module';
8
+ import { AXFormGroupModule } from '../form-group/form-group.module';
9
+ import * as i0 from "@angular/core";
10
+ export class AXUploadFileModule {
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXUploadFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: AXUploadFileModule, declarations: [AXUploadFileComponent], imports: [CommonModule, AXButtonModule, AXTextBoxModule, AXProgressBarModule, AXLabelModule, AXFormGroupModule], exports: [AXUploadFileComponent] });
13
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXUploadFileModule, imports: [CommonModule, AXButtonModule, AXTextBoxModule, AXProgressBarModule, AXLabelModule, AXFormGroupModule] });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXUploadFileModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [AXUploadFileComponent],
19
+ imports: [CommonModule, AXButtonModule, AXTextBoxModule, AXProgressBarModule, AXLabelModule, AXFormGroupModule],
20
+ exports: [AXUploadFileComponent],
21
+ providers: []
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQVFwRSxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixpQkFMZCxxQkFBcUIsYUFDMUIsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixhQUNwRyxxQkFBcUI7d0dBR3BCLGtCQUFrQixZQUpuQixZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCOzsyRkFJbkcsa0JBQWtCO2tCQU45QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLENBQUM7b0JBQy9HLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYVXBsb2FkRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLWZpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJy4uL3RleHRib3gvdGV4dGJveC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnLi4vcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnLi4vbGFiZWwvbGFiZWwubW9kdWxlJztcclxuaW1wb3J0IHsgQVhGb3JtR3JvdXBNb2R1bGUgfSBmcm9tICcuLi9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbQVhVcGxvYWRGaWxlQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWEJ1dHRvbk1vZHVsZSwgQVhUZXh0Qm94TW9kdWxlLCBBWFByb2dyZXNzQmFyTW9kdWxlLCBBWExhYmVsTW9kdWxlLCBBWEZvcm1Hcm91cE1vZHVsZV0sXHJcbiAgZXhwb3J0czogW0FYVXBsb2FkRmlsZUNvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhVcGxvYWRGaWxlTW9kdWxlIHt9XHJcbiJdfQ==
@@ -0,0 +1,68 @@
1
+ import { Component, QueryList, ContentChildren, Input, Output, EventEmitter, ElementRef, ChangeDetectorRef } from '@angular/core';
2
+ import { AXValidatableComponent } from '../base/element.class';
3
+ import * as i0 from "@angular/core";
4
+ export class AXValidationFormComponent {
5
+ ref;
6
+ cdr;
7
+ constructor(ref, cdr) {
8
+ this.ref = ref;
9
+ this.cdr = cdr;
10
+ }
11
+ widgets = [];
12
+ widgetsQuery;
13
+ validateOn = 'submit';
14
+ onInit = new EventEmitter();
15
+ ngAfterViewInit() {
16
+ this.onInit.emit({
17
+ component: this,
18
+ htmlElement: this.ref.nativeElement
19
+ });
20
+ }
21
+ validate() {
22
+ this.widgets.push(...this.widgetsQuery.toArray().filter(c => !this.widgets.includes(c)));
23
+ //
24
+ this.widgets.forEach(w => {
25
+ if (w.validation && w.validation.validateOn == null) {
26
+ w.validation.validateOn = this.validateOn;
27
+ }
28
+ });
29
+ return new Promise(resolve => {
30
+ if (!this.widgets || this.widgets.length === 0) {
31
+ return Promise.resolve({ result: true });
32
+ }
33
+ Promise.all(this.widgets.map((c) => c.validate())).then((rules) => {
34
+ const failed = rules.filter((c) => !c.result);
35
+ if (failed.length) {
36
+ resolve({
37
+ result: false,
38
+ items: failed
39
+ });
40
+ }
41
+ else {
42
+ resolve({ result: true });
43
+ }
44
+ });
45
+ });
46
+ }
47
+ addWidget(widget) {
48
+ if (widget)
49
+ this.widgets.push(widget);
50
+ }
51
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXValidationFormComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
52
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXValidationFormComponent, selector: "ax-validation-form", inputs: { validateOn: "validateOn" }, outputs: { onInit: "onInit" }, queries: [{ propertyName: "widgetsQuery", predicate: AXValidatableComponent, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXValidationFormComponent, decorators: [{
55
+ type: Component,
56
+ args: [{
57
+ selector: 'ax-validation-form',
58
+ template: '<ng-content></ng-content>'
59
+ }]
60
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { widgetsQuery: [{
61
+ type: ContentChildren,
62
+ args: [AXValidatableComponent, { descendants: true }]
63
+ }], validateOn: [{
64
+ type: Input
65
+ }], onInit: [{
66
+ type: Output
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osVUFBVSxFQUNWLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLHlCQUF5QjtJQUVoQjtJQUF5QjtJQUE3QyxZQUFvQixHQUFlLEVBQVUsR0FBc0I7UUFBL0MsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUksQ0FBQztJQUdoRSxPQUFPLEdBQTZCLEVBQUUsQ0FBQztJQUl2QyxZQUFZLENBQW9DO0lBR3hELFVBQVUsR0FBaUMsUUFBUSxDQUFDO0lBR3BELE1BQU0sR0FBOEIsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUdwRSxlQUFlO1FBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekYsRUFBRTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUU7Z0JBQ25ELENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDM0M7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxPQUFPLENBQXFCLE9BQU8sQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDOUMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDMUM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNyRSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUNqQixPQUFPLENBQUM7d0JBQ04sTUFBTSxFQUFFLEtBQUs7d0JBQ2IsS0FBSyxFQUFFLE1BQU07cUJBQ2QsQ0FBQyxDQUFDO2lCQUNKO3FCQUNJO29CQUNILE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUMzQjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsU0FBUyxDQUFDLE1BQThCO1FBQ3RDLElBQUcsTUFBTTtZQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7dUdBekRVLHlCQUF5QjsyRkFBekIseUJBQXlCLDRKQVFuQixzQkFBc0IsZ0RBVjdCLDJCQUEyQjs7MkZBRTFCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0QztpSUFVUyxZQUFZO3NCQURuQixlQUFlO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJOUQsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLE1BQU07c0JBREwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBRdWVyeUxpc3QsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICcuL3ZhbGlkYXRpb24uY2xhc3MnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcclxuaW1wb3J0IHsgQVhCYXNlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtdmFsaWRhdGlvbi1mb3JtJyxcclxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG5cclxuICBwcml2YXRlIHdpZGdldHM6IEFYVmFsaWRhdGFibGVDb21wb25lbnRbXSA9IFtdO1xyXG5cclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXHJcbiAgcHJpdmF0ZSB3aWRnZXRzUXVlcnk6IFF1ZXJ5TGlzdDxBWFZhbGlkYXRhYmxlQ29tcG9uZW50PjtcclxuXHJcbiAgQElucHV0KClcclxuICB2YWxpZGF0ZU9uOiAnYmx1cicgfCAnY2hhbmdlJyB8ICdzdWJtaXQnID0gJ3N1Ym1pdCc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSW5pdDogRXZlbnRFbWl0dGVyPEFYQmFzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhCYXNlRXZlbnQ+KCk7XHJcblxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLm9uSW5pdC5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZSgpOiBQcm9taXNlPEFYVmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgdGhpcy53aWRnZXRzLnB1c2goLi4udGhpcy53aWRnZXRzUXVlcnkudG9BcnJheSgpLmZpbHRlcihjID0+ICF0aGlzLndpZGdldHMuaW5jbHVkZXMoYykpKTtcclxuICAgIC8vXHJcbiAgICB0aGlzLndpZGdldHMuZm9yRWFjaCh3ID0+IHtcclxuICAgICAgaWYgKHcudmFsaWRhdGlvbiAmJiB3LnZhbGlkYXRpb24udmFsaWRhdGVPbiA9PSBudWxsKSB7XHJcbiAgICAgICAgdy52YWxpZGF0aW9uLnZhbGlkYXRlT24gPSB0aGlzLnZhbGlkYXRlT247XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxBWFZhbGlkYXRpb25SZXN1bHQ+KHJlc29sdmUgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMud2lkZ2V0cyB8fCB0aGlzLndpZGdldHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgICBQcm9taXNlLmFsbCh0aGlzLndpZGdldHMubWFwKChjKSA9PiBjLnZhbGlkYXRlKCkpKS50aGVuKChydWxlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZmFpbGVkID0gcnVsZXMuZmlsdGVyKChjOiBhbnkpID0+ICFjLnJlc3VsdCk7XHJcbiAgICAgICAgaWYgKGZhaWxlZC5sZW5ndGgpIHtcclxuICAgICAgICAgIHJlc29sdmUoe1xyXG4gICAgICAgICAgICByZXN1bHQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBpdGVtczogZmFpbGVkXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBhZGRXaWRnZXQod2lkZ2V0OiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50KSB7XHJcbiAgICBpZih3aWRnZXQpXHJcbiAgICAgIHRoaXMud2lkZ2V0cy5wdXNoKHdpZGdldCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,114 @@
1
+ import { Component, ElementRef, Inject, Input, Optional } from '@angular/core';
2
+ import { AXTranslator } from '@acorex/core';
3
+ import * as i0 from "@angular/core";
4
+ // @dynamic
5
+ export class AXValidationRules {
6
+ static registredRules = [];
7
+ static addRule(name, rule) {
8
+ const exists = AXValidationRules.get(name);
9
+ if (exists) {
10
+ exists.rule = rule;
11
+ }
12
+ else {
13
+ AXValidationRules.registredRules.push({
14
+ name,
15
+ rule
16
+ });
17
+ }
18
+ }
19
+ static get(name) {
20
+ return this.registredRules.find(c => c.name === name);
21
+ }
22
+ }
23
+ export class AXValidationRuleComponent {
24
+ ref;
25
+ type = 'required';
26
+ message;
27
+ value;
28
+ enabled = true;
29
+ constructor(ref) {
30
+ this.ref = ref;
31
+ if (ref)
32
+ ref.nativeElement["__axContext__"] = this;
33
+ }
34
+ validate(value) {
35
+ if (this.enabled === false) {
36
+ return Promise.resolve({ result: true });
37
+ }
38
+ const regRule = AXValidationRules.get(this.type);
39
+ if (regRule) {
40
+ return this.internalValidate(regRule.rule.type, value, this.message || regRule.rule.message, regRule.rule.value);
41
+ }
42
+ else {
43
+ return this.internalValidate(this.type, value, this.message, this.value);
44
+ }
45
+ }
46
+ internalValidate(type, value, message, ruleValue) {
47
+ return new Promise(resolve => {
48
+ switch (type) {
49
+ case 'required':
50
+ resolve({
51
+ message: message || AXTranslator.get('validation.messages.required'),
52
+ result: value != null && value != '' && (!Array.isArray(value) || (Array.isArray(value) && value.length > 0))
53
+ });
54
+ break;
55
+ case 'regex':
56
+ const ex = new RegExp(ruleValue);
57
+ resolve({
58
+ message: message || AXTranslator.get('validation.messages.regex'),
59
+ result: ex.test(value)
60
+ });
61
+ break;
62
+ case 'custom':
63
+ case 'callback':
64
+ if (typeof ruleValue === 'function') {
65
+ const res = {};
66
+ res.message = message;
67
+ const val = ruleValue({ value, message });
68
+ if (val instanceof Promise) {
69
+ val.then(c => {
70
+ res.result = c;
71
+ }).catch(c => {
72
+ res.result = false;
73
+ }).finally(() => {
74
+ resolve(res);
75
+ });
76
+ }
77
+ else {
78
+ res.result = val;
79
+ resolve(res);
80
+ }
81
+ }
82
+ else {
83
+ resolve({ result: true });
84
+ }
85
+ break;
86
+ default:
87
+ resolve({ result: true });
88
+ }
89
+ });
90
+ }
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXValidationRuleComponent, deps: [{ token: ElementRef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
92
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXValidationRuleComponent, selector: "ax-validation-rule", inputs: { type: "type", message: "message", value: "value", enabled: "enabled" }, ngImport: i0, template: '', isInline: true });
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXValidationRuleComponent, decorators: [{
95
+ type: Component,
96
+ args: [{
97
+ selector: 'ax-validation-rule',
98
+ template: ''
99
+ }]
100
+ }], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
101
+ type: Inject,
102
+ args: [ElementRef]
103
+ }, {
104
+ type: Optional
105
+ }] }]; }, propDecorators: { type: [{
106
+ type: Input
107
+ }], message: [{
108
+ type: Input
109
+ }], value: [{
110
+ type: Input
111
+ }], enabled: [{
112
+ type: Input
113
+ }] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1ydWxlLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1ydWxlLndpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUc1QyxXQUFXO0FBQ1gsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixNQUFNLENBQUMsY0FBYyxHQUErQyxFQUFFLENBQUM7SUFFeEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFZLEVBQUUsSUFBc0I7UUFDeEQsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDcEI7YUFDSTtZQUNILGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BDLElBQUk7Z0JBQ0osSUFBSTthQUNMLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDOztBQVFILE1BQU0sT0FBTyx5QkFBeUI7SUFlMUI7SUFiVixJQUFJLEdBQTBCLFVBQVUsQ0FBQztJQUV6QyxPQUFPLENBQVM7SUFFaEIsS0FBSyxDQUFNO0lBR1gsT0FBTyxHQUFZLElBQUksQ0FBQztJQUd4QixZQUdVLEdBQWdCO1FBQWhC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QUFHLENBQUMsQ0FBQzt5QkFDZDtxQkFDRjt5QkFDSTt3QkFDSCxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztxQkFDM0I7b0JBQ0QsTUFBTTtnQkFDUjtvQkFDRSxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0E5RVUseUJBQXlCLGtCQWExQixVQUFVOzJGQWJULHlCQUF5Qiw0SUFGMUIsRUFBRTs7MkZBRUQseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxFQUFFO2lCQUNiOzswQkFjSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixRQUFROzRDQVpYLElBQUk7c0JBREgsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBpbmplY3QsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlUmVzdWx0LCBBWFZhbGlkYXRpb25SdWxlLCBBWFZhbGlkYXRpb25SdWxlVHlwZXMgfSBmcm9tICcuL3ZhbGlkYXRpb24uY2xhc3MnO1xyXG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5cclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBBWFZhbGlkYXRpb25SdWxlcyB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgcmVnaXN0cmVkUnVsZXM6IHsgbmFtZTogc3RyaW5nLCBydWxlOiBBWFZhbGlkYXRpb25SdWxlIH1bXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGFkZFJ1bGUobmFtZTogc3RyaW5nLCBydWxlOiBBWFZhbGlkYXRpb25SdWxlKSB7XHJcbiAgICBjb25zdCBleGlzdHMgPSBBWFZhbGlkYXRpb25SdWxlcy5nZXQobmFtZSk7XHJcbiAgICBpZiAoZXhpc3RzKSB7XHJcbiAgICAgIGV4aXN0cy5ydWxlID0gcnVsZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBBWFZhbGlkYXRpb25SdWxlcy5yZWdpc3RyZWRSdWxlcy5wdXNoKHtcclxuICAgICAgICBuYW1lLFxyXG4gICAgICAgIHJ1bGVcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldChuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJlZFJ1bGVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IG5hbWUpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtdmFsaWRhdGlvbi1ydWxlJyxcclxuICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYVmFsaWRhdGlvblJ1bGVDb21wb25lbnQgaW1wbGVtZW50cyBBWFZhbGlkYXRpb25SdWxlIHtcclxuICBASW5wdXQoKVxyXG4gIHR5cGU6IEFYVmFsaWRhdGlvblJ1bGVUeXBlcyA9ICdyZXF1aXJlZCc7XHJcbiAgQElucHV0KClcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICB2YWx1ZTogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEVsZW1lbnRSZWYpXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgcHJpdmF0ZSByZWY/OiBFbGVtZW50UmVmKSB7XHJcbiAgICBpZiAocmVmKVxyXG4gICAgICByZWYubmF0aXZlRWxlbWVudFtcIl9fYXhDb250ZXh0X19cIl0gPSB0aGlzO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUodmFsdWU6IGFueSk6IFByb21pc2U8QVhWYWxpZGF0aW9uUnVsZVJlc3VsdD4ge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlZ1J1bGUgPSBBWFZhbGlkYXRpb25SdWxlcy5nZXQodGhpcy50eXBlKTtcclxuICAgIGlmIChyZWdSdWxlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFsVmFsaWRhdGUocmVnUnVsZS5ydWxlLnR5cGUsIHZhbHVlLCB0aGlzLm1lc3NhZ2UgfHwgcmVnUnVsZS5ydWxlLm1lc3NhZ2UsIHJlZ1J1bGUucnVsZS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxWYWxpZGF0ZSh0aGlzLnR5cGUsIHZhbHVlLCB0aGlzLm1lc3NhZ2UsIHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgaW50ZXJuYWxWYWxpZGF0ZSh0eXBlOiBzdHJpbmcsIHZhbHVlPzogYW55LCBtZXNzYWdlPzogc3RyaW5nLCBydWxlVmFsdWU/OiBhbnkpOiBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PihyZXNvbHZlID0+IHtcclxuICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgY2FzZSAncmVxdWlyZWQnOlxyXG4gICAgICAgICAgcmVzb2x2ZSh7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UgfHwgQVhUcmFuc2xhdG9yLmdldCgndmFsaWRhdGlvbi5tZXNzYWdlcy5yZXF1aXJlZCcpLFxyXG4gICAgICAgICAgICByZXN1bHQ6IHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT0gJycgJiYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JlZ2V4JzpcclxuICAgICAgICAgIGNvbnN0IGV4ID0gbmV3IFJlZ0V4cChydWxlVmFsdWUpO1xyXG4gICAgICAgICAgcmVzb2x2ZSh7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UgfHwgQVhUcmFuc2xhdG9yLmdldCgndmFsaWRhdGlvbi5tZXNzYWdlcy5yZWdleCcpLFxyXG4gICAgICAgICAgICByZXN1bHQ6IGV4LnRlc3QodmFsdWUpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2N1c3RvbSc6XHJcbiAgICAgICAgY2FzZSAnY2FsbGJhY2snOlxyXG4gICAgICAgICAgaWYgKHR5cGVvZiBydWxlVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgcmVzLm1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSBydWxlVmFsdWUoeyB2YWx1ZSwgbWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICB2YWwudGhlbihjID0+IHtcclxuICAgICAgICAgICAgICAgIHJlcy5yZXN1bHQgPSBjO1xyXG4gICAgICAgICAgICAgIH0pLmNhdGNoKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzLnJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXMpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJlcy5yZXN1bHQgPSB2YWw7XHJcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCB0eXBlIEFYVmFsaWRhdGlvblJ1bGVUeXBlcyA9ICdyZXF1aXJlZCcgfCAncmVnZXgnIHwgJ2NhbGxiYWNrJyB8ICdjdXN0b20nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlIHtcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIHR5cGU6IEFYVmFsaWRhdGlvblJ1bGVUeXBlcztcclxuICB2YWx1ZT86IGFueTtcclxuICBlbmFibGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IHtcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIHJlc3VsdDogYm9vbGVhbjtcclxuICB0YXJnZXQ/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhWYWxpZGF0aW9uUmVzdWx0IHtcclxuICByZXN1bHQ6IGJvb2xlYW47XHJcbiAgaXRlbXM/OiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0W107XHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,89 @@
1
+ import { Component, Input, Output, EventEmitter, Injectable, ElementRef, Optional, Inject } from '@angular/core';
2
+ import { AXValidationRuleComponent } from './validation-rule.widget';
3
+ import * as i0 from "@angular/core";
4
+ export class AXValidation {
5
+ validateOn = 'submit';
6
+ showMessage;
7
+ validate(value) {
8
+ if (!this.rules || this.rules.length === 0) {
9
+ return Promise.resolve({ result: true });
10
+ }
11
+ return new Promise(resolve => {
12
+ Promise.all(this.rules.map(c => {
13
+ if (c instanceof AXValidationRuleComponent) {
14
+ return c.validate(value);
15
+ }
16
+ else {
17
+ const v = new AXValidationRuleComponent();
18
+ Object.assign(v, c);
19
+ return v.validate(value);
20
+ }
21
+ })).then(d => {
22
+ const error = d.find(c => c.result === false);
23
+ if (error) {
24
+ resolve(error);
25
+ }
26
+ else {
27
+ resolve({ result: true });
28
+ }
29
+ });
30
+ });
31
+ }
32
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXValidation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
33
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXValidation });
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXValidation, decorators: [{
36
+ type: Injectable
37
+ }] });
38
+ export class AXValidationComponent extends AXValidation {
39
+ ref;
40
+ _getComponenets() {
41
+ return Array.from(this.ref?.nativeElement.querySelectorAll('ax-validation-rule')).map(c => c["__axContext__"]);
42
+ }
43
+ constructor(ref) {
44
+ super();
45
+ this.ref = ref;
46
+ }
47
+ rulesChange = new EventEmitter();
48
+ showMessage = true;
49
+ _rules = [];
50
+ get rules() {
51
+ return this._rules;
52
+ }
53
+ set rules(v) {
54
+ this._rules = v;
55
+ if (this.rulesChange) {
56
+ this.rulesChange.emit(v);
57
+ }
58
+ }
59
+ validateOn = null;
60
+ ngAfterContentInit() {
61
+ if (this.rules && this.rules.length === 0) {
62
+ this.rules.push(...this._getComponenets());
63
+ }
64
+ }
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXValidationComponent, deps: [{ token: ElementRef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
66
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXValidationComponent, selector: "ax-validation", inputs: { rules: "rules", validateOn: "validateOn" }, outputs: { rulesChange: "rulesChange", showMessage: "showMessage" }, providers: [{ provide: AXValidation, useExisting: AXValidationComponent }], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXValidationComponent, decorators: [{
69
+ type: Component,
70
+ args: [{
71
+ selector: 'ax-validation',
72
+ template: '<ng-content></ng-content>',
73
+ providers: [{ provide: AXValidation, useExisting: AXValidationComponent }]
74
+ }]
75
+ }], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
76
+ type: Inject,
77
+ args: [ElementRef]
78
+ }, {
79
+ type: Optional
80
+ }] }]; }, propDecorators: { rulesChange: [{
81
+ type: Output
82
+ }], showMessage: [{
83
+ type: Output
84
+ }], rules: [{
85
+ type: Input
86
+ }], validateOn: [{
87
+ type: Input
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi92YWxpZGF0aW9uL3ZhbGlkYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQThCLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3SSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLckUsTUFBTSxPQUFnQixZQUFZO0lBR2hDLFVBQVUsR0FBaUMsUUFBUSxDQUFDO0lBQ3BELFdBQVcsQ0FBVTtJQUVyQixRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLElBQUksT0FBTyxDQUF5QixPQUFPLENBQUMsRUFBRTtZQUNuRCxPQUFPLENBQUMsR0FBRyxDQUNULElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsWUFBWSx5QkFBeUIsRUFBRTtvQkFDMUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMxQjtxQkFDSTtvQkFDSCxNQUFNLENBQUMsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7b0JBQzFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNwQixPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzFCO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUM7Z0JBQzlDLElBQUksS0FBSyxFQUFFO29CQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDaEI7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzNCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBL0JtQixZQUFZOzJHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRGpDLFVBQVU7O0FBMENYLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxZQUFZO0lBUzNDO0lBUFYsZUFBZTtRQUNiLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBcUIsQ0FBQyxDQUFDO0lBQ3JJLENBQUM7SUFFRCxZQUdVLEdBQWdCO1FBRXhCLEtBQUssRUFBRSxDQUFDO1FBRkEsUUFBRyxHQUFILEdBQUcsQ0FBYTtJQUcxQixDQUFDO0lBSUQsV0FBVyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztJQUd2RixXQUFXLEdBQVksSUFBSSxDQUFDO0lBRXBCLE1BQU0sR0FBdUIsRUFBRSxDQUFDO0lBRXhDLElBQ1csS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsQ0FBcUI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUdELFVBQVUsR0FBaUMsSUFBSSxDQUFDO0lBR2hELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO3VHQTFDVSxxQkFBcUIsa0JBT3RCLFVBQVU7MkZBUFQscUJBQXFCLG1LQUZyQixDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxpREFEaEUsMkJBQTJCOzsyRkFHMUIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyx1QkFBdUIsRUFBRSxDQUFDO2lCQUMzRTs7MEJBUUksTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsUUFBUTs0Q0FRWCxXQUFXO3NCQURWLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQU1JLEtBQUs7c0JBRGYsS0FBSztnQkFZTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIEVsZW1lbnRSZWYsIE9wdGlvbmFsLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGVDb21wb25lbnQgfSBmcm9tICcuL3ZhbGlkYXRpb24tcnVsZS53aWRnZXQnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlLCBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSAnLi92YWxpZGF0aW9uLmNsYXNzJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFZhbGlkYXRpb24ge1xyXG5cclxuICBhYnN0cmFjdCBydWxlczogQVhWYWxpZGF0aW9uUnVsZVtdO1xyXG4gIHZhbGlkYXRlT246ICdibHVyJyB8ICdjaGFuZ2UnIHwgJ3N1Ym1pdCcgPSAnc3VibWl0JztcclxuICBzaG93TWVzc2FnZTogYm9vbGVhbjtcclxuXHJcbiAgdmFsaWRhdGUodmFsdWU6IGFueSk6IFByb21pc2U8QVhWYWxpZGF0aW9uUnVsZVJlc3VsdD4ge1xyXG4gICAgaWYgKCF0aGlzLnJ1bGVzIHx8IHRoaXMucnVsZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8QVhWYWxpZGF0aW9uUnVsZVJlc3VsdD4ocmVzb2x2ZSA9PiB7XHJcbiAgICAgIFByb21pc2UuYWxsKFxyXG4gICAgICAgIHRoaXMucnVsZXMubWFwKGMgPT4ge1xyXG4gICAgICAgICAgaWYgKGMgaW5zdGFuY2VvZiBBWFZhbGlkYXRpb25SdWxlQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjLnZhbGlkYXRlKHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCB2ID0gbmV3IEFYVmFsaWRhdGlvblJ1bGVDb21wb25lbnQoKTtcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih2LCBjKTtcclxuICAgICAgICAgICAgcmV0dXJuIHYudmFsaWRhdGUodmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICkudGhlbihkID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IGQuZmluZChjID0+IGMucmVzdWx0ID09PSBmYWxzZSk7XHJcbiAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICByZXNvbHZlKGVycm9yKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtdmFsaWRhdGlvbicsXHJcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYVmFsaWRhdGlvbiwgdXNlRXhpc3Rpbmc6IEFYVmFsaWRhdGlvbkNvbXBvbmVudCB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhWYWxpZGF0aW9uQ29tcG9uZW50IGV4dGVuZHMgQVhWYWxpZGF0aW9uIHtcclxuXHJcbiAgX2dldENvbXBvbmVuZXRzKCk6IEFYVmFsaWRhdGlvblJ1bGVbXSB7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZj8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdheC12YWxpZGF0aW9uLXJ1bGUnKSkubWFwKGMgPT4gY1tcIl9fYXhDb250ZXh0X19cIl0gYXMgQVhWYWxpZGF0aW9uUnVsZSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoRWxlbWVudFJlZilcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBwcml2YXRlIHJlZj86IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcnVsZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWFZhbGlkYXRpb25SdWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFZhbGlkYXRpb25SdWxlW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHNob3dNZXNzYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfcnVsZXM6IEFYVmFsaWRhdGlvblJ1bGVbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgcnVsZXMoKTogQVhWYWxpZGF0aW9uUnVsZVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9ydWxlcztcclxuICB9XHJcbiAgcHVibGljIHNldCBydWxlcyh2OiBBWFZhbGlkYXRpb25SdWxlW10pIHtcclxuICAgIHRoaXMuX3J1bGVzID0gdjtcclxuICAgIGlmICh0aGlzLnJ1bGVzQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMucnVsZXNDaGFuZ2UuZW1pdCh2KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdmFsaWRhdGVPbjogJ2JsdXInIHwgJ2NoYW5nZScgfCAnc3VibWl0JyA9IG51bGw7XHJcblxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5ydWxlcyAmJiB0aGlzLnJ1bGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnJ1bGVzLnB1c2goLi4udGhpcy5fZ2V0Q29tcG9uZW5ldHMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==