@acorex/components 6.5.29 → 6.5.31

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 (364) hide show
  1. package/README.md +3 -3
  2. package/acorex-components.d.ts +5 -5
  3. package/esm2020/acorex-components.mjs +4 -4
  4. package/esm2020/lib/accordion/accordion.component.mjs +44 -44
  5. package/esm2020/lib/accordion/accordion.module.mjs +20 -20
  6. package/esm2020/lib/base/base-page.class.mjs +94 -94
  7. package/esm2020/lib/base/components.class.mjs +17 -17
  8. package/esm2020/lib/base/element.class.mjs +294 -294
  9. package/esm2020/lib/base/events.class.mjs +11 -11
  10. package/esm2020/lib/button/button.component.mjs +71 -71
  11. package/esm2020/lib/button/button.module.mjs +21 -21
  12. package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +413 -413
  13. package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +22 -22
  14. package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +54 -54
  15. package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +18 -18
  16. package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +213 -213
  17. package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +68 -68
  18. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +132 -132
  19. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -37
  20. package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +47 -47
  21. package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +95 -95
  22. package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +204 -204
  23. package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -99
  24. package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +77 -77
  25. package/esm2020/lib/checkbox/checkbox.component.mjs +98 -98
  26. package/esm2020/lib/checkbox/checkbox.module.mjs +20 -20
  27. package/esm2020/lib/color-picker/color-box/color-box.component.mjs +422 -422
  28. package/esm2020/lib/color-picker/color-picker.component.mjs +82 -82
  29. package/esm2020/lib/color-picker/color-picker.module.mjs +24 -24
  30. package/esm2020/lib/context-menu/context-menu.component.mjs +65 -65
  31. package/esm2020/lib/context-menu/context-menu.directive.mjs +135 -135
  32. package/esm2020/lib/context-menu/context-menu.module.mjs +20 -20
  33. package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +138 -138
  34. package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +117 -117
  35. package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +74 -74
  36. package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +117 -117
  37. package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +258 -258
  38. package/esm2020/lib/data-filter/filter.class.mjs +44 -44
  39. package/esm2020/lib/data-filter/filter.module.mjs +90 -90
  40. package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +166 -166
  41. package/esm2020/lib/data-list/core/data-list.component.mjs +40 -40
  42. package/esm2020/lib/data-list/list/list.component.mjs +124 -124
  43. package/esm2020/lib/data-list/list/list.module.mjs +22 -22
  44. package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +85 -85
  45. package/esm2020/lib/data-source/datasource.component.mjs +47 -47
  46. package/esm2020/lib/data-source/datasource.module.mjs +18 -18
  47. package/esm2020/lib/data-source/read-param.mjs +5 -5
  48. package/esm2020/lib/date-picker/date-picker.component.mjs +702 -702
  49. package/esm2020/lib/date-picker/date-picker.module.mjs +25 -25
  50. package/esm2020/lib/dialog/dialog.component.mjs +24 -24
  51. package/esm2020/lib/dialog/dialog.module.mjs +21 -21
  52. package/esm2020/lib/dialog/dialog.service.mjs +150 -150
  53. package/esm2020/lib/drawer/content.component.mjs +18 -18
  54. package/esm2020/lib/drawer/drawer-container.component.mjs +36 -36
  55. package/esm2020/lib/drawer/drawer.component.mjs +142 -142
  56. package/esm2020/lib/drawer/drawer.module.mjs +23 -23
  57. package/esm2020/lib/dropdown/dropdown.component.mjs +176 -176
  58. package/esm2020/lib/dropdown/dropdown.module.mjs +26 -26
  59. package/esm2020/lib/fieldset/fieldset.component.mjs +59 -59
  60. package/esm2020/lib/fieldset/fieldset.module.mjs +19 -19
  61. package/esm2020/lib/form-group/form-group.component.mjs +34 -34
  62. package/esm2020/lib/form-group/form-group.module.mjs +21 -21
  63. package/esm2020/lib/label/label.component.mjs +19 -19
  64. package/esm2020/lib/label/label.module.mjs +21 -21
  65. package/esm2020/lib/loading/loading-indicator.component.mjs +17 -17
  66. package/esm2020/lib/loading/loading-panel.component.mjs +44 -44
  67. package/esm2020/lib/loading/loading.module.mjs +21 -21
  68. package/esm2020/lib/loading/loading.service.mjs +45 -45
  69. package/esm2020/lib/menu/menu-item.component.mjs +47 -47
  70. package/esm2020/lib/menu/menu.component.mjs +86 -86
  71. package/esm2020/lib/menu/menu.module.mjs +22 -22
  72. package/esm2020/lib/menu/menu2.component.mjs +96 -96
  73. package/esm2020/lib/number-box/number-box.component.mjs +622 -622
  74. package/esm2020/lib/number-box/number-box.module.mjs +21 -21
  75. package/esm2020/lib/page/content.component.mjs +32 -32
  76. package/esm2020/lib/page/footer.component.mjs +19 -19
  77. package/esm2020/lib/page/page.component.mjs +53 -53
  78. package/esm2020/lib/page/page.module.mjs +22 -22
  79. package/esm2020/lib/panel-box/panel-box.component.mjs +88 -88
  80. package/esm2020/lib/panel-box/panel-box.module.mjs +19 -19
  81. package/esm2020/lib/password-box/password-box.component.mjs +31 -31
  82. package/esm2020/lib/password-box/password-box.module.mjs +23 -23
  83. package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +48 -48
  84. package/esm2020/lib/popover/overlay.service.mjs +90 -90
  85. package/esm2020/lib/popover/popover.component.mjs +127 -127
  86. package/esm2020/lib/popover/popover.module.mjs +19 -19
  87. package/esm2020/lib/popup/popup.component.mjs +147 -147
  88. package/esm2020/lib/popup/popup.module.mjs +25 -25
  89. package/esm2020/lib/popup/popup.service.mjs +93 -93
  90. package/esm2020/lib/progress-bar/progress-bar.component.mjs +19 -19
  91. package/esm2020/lib/progress-bar/progress-bar.module.mjs +19 -19
  92. package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +61 -61
  93. package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +22 -22
  94. package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +38 -38
  95. package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +24 -24
  96. package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +115 -115
  97. package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +32 -32
  98. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +211 -211
  99. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +78 -78
  100. package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +51 -51
  101. package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +24 -24
  102. package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +63 -63
  103. package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +24 -24
  104. package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +140 -140
  105. package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +61 -61
  106. package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +72 -72
  107. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +71 -71
  108. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -25
  109. package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +69 -69
  110. package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -22
  111. package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +29 -29
  112. package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +25 -25
  113. package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +32 -32
  114. package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +24 -24
  115. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +32 -32
  116. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -24
  117. package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +43 -43
  118. package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +24 -24
  119. package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +154 -154
  120. package/esm2020/lib/property-editor/property-editor.class.mjs +101 -101
  121. package/esm2020/lib/property-editor/property-editor.module.mjs +196 -196
  122. package/esm2020/lib/query-builder/query-builder-group.component.mjs +124 -124
  123. package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +171 -171
  124. package/esm2020/lib/query-builder/query-builder-rule.component.mjs +395 -395
  125. package/esm2020/lib/query-builder/query-builder.class.mjs +20 -20
  126. package/esm2020/lib/query-builder/query-builder.component.mjs +82 -82
  127. package/esm2020/lib/query-builder/query-builder.module.mjs +62 -62
  128. package/esm2020/lib/query-builder/query-builder.service.mjs +197 -197
  129. package/esm2020/lib/search-bar/search-bar.component.mjs +283 -283
  130. package/esm2020/lib/search-bar/search-bar.module.mjs +63 -63
  131. package/esm2020/lib/searchbox/searchbox.component.mjs +79 -79
  132. package/esm2020/lib/searchbox/searchbox.module.mjs +24 -24
  133. package/esm2020/lib/selectbox/selectbox.component.mjs +961 -961
  134. package/esm2020/lib/selectbox/selectbox.module.mjs +44 -44
  135. package/esm2020/lib/selectbox/selectbox2.component.mjs +574 -574
  136. package/esm2020/lib/selection-list/selection-list.component.mjs +108 -108
  137. package/esm2020/lib/selection-list/selection-list.module.mjs +21 -21
  138. package/esm2020/lib/switch/switch.component.mjs +51 -51
  139. package/esm2020/lib/switch/switch.module.mjs +20 -20
  140. package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +71 -71
  141. package/esm2020/lib/tab-page/tab-page-host.component.mjs +116 -116
  142. package/esm2020/lib/tab-page/tab-page.module.mjs +21 -21
  143. package/esm2020/lib/tab-page/tab-page.service.mjs +156 -156
  144. package/esm2020/lib/tab-strip/tab-strip.component.mjs +36 -36
  145. package/esm2020/lib/tab-strip/tab-strip.module.mjs +19 -19
  146. package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +24 -24
  147. package/esm2020/lib/tab-view/tab-view.component.mjs +105 -105
  148. package/esm2020/lib/tab-view/tab-view.module.mjs +21 -21
  149. package/esm2020/lib/tab-view/tab.component.mjs +30 -30
  150. package/esm2020/lib/textarea/textarea.component.mjs +26 -26
  151. package/esm2020/lib/textarea/textarea.module.mjs +21 -21
  152. package/esm2020/lib/textbox/textbox.component.mjs +39 -39
  153. package/esm2020/lib/textbox/textbox.module.mjs +24 -24
  154. package/esm2020/lib/time-picker/time-picker.component.mjs +943 -943
  155. package/esm2020/lib/time-picker/time-picker.module.mjs +22 -22
  156. package/esm2020/lib/toast/toast-message/toast-message.component.mjs +74 -74
  157. package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -13
  158. package/esm2020/lib/toast/toast.module.mjs +21 -21
  159. package/esm2020/lib/toast/toast.service.mjs +44 -44
  160. package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +78 -78
  161. package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +57 -57
  162. package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +54 -54
  163. package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +47 -47
  164. package/esm2020/lib/toolbar/toolbar-item.mjs +6 -6
  165. package/esm2020/lib/toolbar/toolbar.component.mjs +13 -13
  166. package/esm2020/lib/toolbar/toolbar.module.mjs +40 -40
  167. package/esm2020/lib/tooltip/tooltip.directive.mjs +100 -100
  168. package/esm2020/lib/tooltip/tooltip.module.mjs +19 -19
  169. package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +646 -646
  170. package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +35 -35
  171. package/esm2020/lib/tree-view/tree-view.component.mjs +775 -775
  172. package/esm2020/lib/tree-view/tree-view.module.mjs +22 -22
  173. package/esm2020/lib/upload-file/upload-file.component.mjs +208 -208
  174. package/esm2020/lib/upload-file/upload-file.events.mjs +2 -2
  175. package/esm2020/lib/upload-file/upload-file.module.mjs +24 -24
  176. package/esm2020/lib/validation/validation-form.component.mjs +65 -65
  177. package/esm2020/lib/validation/validation-rule.widget.mjs +111 -111
  178. package/esm2020/lib/validation/validation.class.mjs +2 -2
  179. package/esm2020/lib/validation/validation.component.mjs +89 -89
  180. package/esm2020/lib/validation/validation.module.mjs +34 -34
  181. package/esm2020/public-api.mjs +158 -158
  182. package/fesm2015/acorex-components.mjs +15616 -15616
  183. package/fesm2015/acorex-components.mjs.map +1 -1
  184. package/fesm2020/acorex-components.mjs +15552 -15552
  185. package/fesm2020/acorex-components.mjs.map +1 -1
  186. package/lib/accordion/accordion.component.d.ts +13 -13
  187. package/lib/accordion/accordion.module.d.ts +9 -9
  188. package/lib/base/base-page.class.d.ts +46 -46
  189. package/lib/base/components.class.d.ts +10 -10
  190. package/lib/base/element.class.d.ts +106 -106
  191. package/lib/base/events.class.d.ts +18 -18
  192. package/lib/button/button.component.d.ts +21 -21
  193. package/lib/button/button.module.d.ts +8 -8
  194. package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -81
  195. package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -11
  196. package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -19
  197. package/lib/calendar/scheduler/scheduler.class.d.ts +36 -36
  198. package/lib/calendar/scheduler/scheduler.component.d.ts +39 -39
  199. package/lib/calendar/scheduler/scheduler.module.d.ts +21 -21
  200. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -25
  201. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -14
  202. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -16
  203. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -26
  204. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -37
  205. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -28
  206. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -24
  207. package/lib/checkbox/checkbox.component.d.ts +30 -30
  208. package/lib/checkbox/checkbox.module.d.ts +9 -9
  209. package/lib/color-picker/color-box/color-box.component.d.ts +25 -25
  210. package/lib/color-picker/color-picker.component.d.ts +30 -30
  211. package/lib/color-picker/color-picker.module.d.ts +13 -13
  212. package/lib/context-menu/context-menu.component.d.ts +22 -22
  213. package/lib/context-menu/context-menu.directive.d.ts +38 -38
  214. package/lib/context-menu/context-menu.module.d.ts +9 -9
  215. package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -22
  216. package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -15
  217. package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -18
  218. package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -15
  219. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -45
  220. package/lib/data-filter/filter.class.d.ts +40 -40
  221. package/lib/data-filter/filter.module.d.ts +24 -24
  222. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -25
  223. package/lib/data-list/core/data-list.component.d.ts +15 -15
  224. package/lib/data-list/list/list.component.d.ts +40 -40
  225. package/lib/data-list/list/list.module.d.ts +11 -11
  226. package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -17
  227. package/lib/data-source/datasource.component.d.ts +16 -16
  228. package/lib/data-source/datasource.module.d.ts +7 -7
  229. package/lib/data-source/read-param.d.ts +40 -40
  230. package/lib/date-picker/date-picker.component.d.ts +81 -81
  231. package/lib/date-picker/date-picker.module.d.ts +14 -14
  232. package/lib/dialog/dialog.component.d.ts +14 -14
  233. package/lib/dialog/dialog.module.d.ts +10 -10
  234. package/lib/dialog/dialog.service.d.ts +36 -36
  235. package/lib/drawer/content.component.d.ts +7 -7
  236. package/lib/drawer/drawer-container.component.d.ts +10 -10
  237. package/lib/drawer/drawer.component.d.ts +34 -34
  238. package/lib/drawer/drawer.module.d.ts +10 -10
  239. package/lib/dropdown/dropdown.component.d.ts +38 -38
  240. package/lib/dropdown/dropdown.module.d.ts +13 -13
  241. package/lib/fieldset/fieldset.component.d.ts +11 -11
  242. package/lib/fieldset/fieldset.module.d.ts +8 -8
  243. package/lib/form-group/form-group.component.d.ts +14 -14
  244. package/lib/form-group/form-group.module.d.ts +8 -8
  245. package/lib/label/label.component.d.ts +9 -9
  246. package/lib/label/label.module.d.ts +8 -8
  247. package/lib/loading/loading-indicator.component.d.ts +9 -9
  248. package/lib/loading/loading-panel.component.d.ts +13 -13
  249. package/lib/loading/loading.module.d.ts +10 -10
  250. package/lib/loading/loading.service.d.ts +13 -13
  251. package/lib/menu/menu-item.component.d.ts +18 -18
  252. package/lib/menu/menu.component.d.ts +35 -35
  253. package/lib/menu/menu.module.d.ts +11 -11
  254. package/lib/menu/menu2.component.d.ts +21 -21
  255. package/lib/number-box/number-box.component.d.ts +52 -52
  256. package/lib/number-box/number-box.module.d.ts +10 -10
  257. package/lib/page/content.component.d.ts +8 -8
  258. package/lib/page/footer.component.d.ts +5 -5
  259. package/lib/page/page.component.d.ts +16 -16
  260. package/lib/page/page.module.d.ts +11 -11
  261. package/lib/panel-box/panel-box.component.d.ts +19 -19
  262. package/lib/panel-box/panel-box.module.d.ts +8 -8
  263. package/lib/password-box/password-box.component.d.ts +12 -12
  264. package/lib/password-box/password-box.module.d.ts +10 -10
  265. package/lib/popover/custom-cdk-overlay.service.d.ts +19 -19
  266. package/lib/popover/overlay.service.d.ts +31 -31
  267. package/lib/popover/popover.component.d.ts +34 -34
  268. package/lib/popover/popover.module.d.ts +8 -8
  269. package/lib/popup/popup.component.d.ts +40 -40
  270. package/lib/popup/popup.module.d.ts +13 -13
  271. package/lib/popup/popup.service.d.ts +22 -22
  272. package/lib/progress-bar/progress-bar.component.d.ts +7 -7
  273. package/lib/progress-bar/progress-bar.module.d.ts +8 -8
  274. package/lib/property-editor/editors/check-editor/check-editor.d.ts +19 -19
  275. package/lib/property-editor/editors/check-editor/check.module.d.ts +11 -11
  276. package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -13
  277. package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -12
  278. package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -34
  279. package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -20
  280. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -44
  281. package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -19
  282. package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -28
  283. package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -12
  284. package/lib/property-editor/editors/number-editor/number.editor.d.ts +20 -20
  285. package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -12
  286. package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -29
  287. package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -18
  288. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -29
  289. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +28 -28
  290. package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +14 -14
  291. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +25 -25
  292. package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -11
  293. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -11
  294. package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -13
  295. package/lib/property-editor/editors/text-editor/text.editor.d.ts +18 -18
  296. package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -12
  297. package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +17 -17
  298. package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +12 -12
  299. package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -17
  300. package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -12
  301. package/lib/property-editor/property-editor-renderer.directive.d.ts +30 -30
  302. package/lib/property-editor/property-editor.class.d.ts +92 -92
  303. package/lib/property-editor/property-editor.module.d.ts +21 -21
  304. package/lib/query-builder/query-builder-group.component.d.ts +33 -33
  305. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -35
  306. package/lib/query-builder/query-builder-rule.component.d.ts +45 -45
  307. package/lib/query-builder/query-builder.class.d.ts +45 -45
  308. package/lib/query-builder/query-builder.component.d.ts +27 -27
  309. package/lib/query-builder/query-builder.module.d.ts +23 -23
  310. package/lib/query-builder/query-builder.service.d.ts +18 -18
  311. package/lib/search-bar/search-bar.component.d.ts +61 -61
  312. package/lib/search-bar/search-bar.module.d.ts +18 -18
  313. package/lib/searchbox/searchbox.component.d.ts +22 -22
  314. package/lib/searchbox/searchbox.module.d.ts +13 -13
  315. package/lib/selectbox/selectbox.component.d.ts +118 -118
  316. package/lib/selectbox/selectbox.module.d.ts +15 -15
  317. package/lib/selectbox/selectbox2.component.d.ts +103 -103
  318. package/lib/selection-list/selection-list.component.d.ts +32 -32
  319. package/lib/selection-list/selection-list.module.d.ts +10 -10
  320. package/lib/switch/switch.component.d.ts +20 -20
  321. package/lib/switch/switch.module.d.ts +9 -9
  322. package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -16
  323. package/lib/tab-page/tab-page-host.component.d.ts +25 -25
  324. package/lib/tab-page/tab-page.module.d.ts +10 -10
  325. package/lib/tab-page/tab-page.service.d.ts +30 -30
  326. package/lib/tab-strip/tab-strip.component.d.ts +28 -28
  327. package/lib/tab-strip/tab-strip.module.d.ts +8 -8
  328. package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -16
  329. package/lib/tab-view/tab-view.component.d.ts +26 -26
  330. package/lib/tab-view/tab-view.module.d.ts +10 -10
  331. package/lib/tab-view/tab.component.d.ts +12 -12
  332. package/lib/textarea/textarea.component.d.ts +12 -12
  333. package/lib/textarea/textarea.module.d.ts +8 -8
  334. package/lib/textbox/textbox.component.d.ts +16 -16
  335. package/lib/textbox/textbox.module.d.ts +11 -11
  336. package/lib/time-picker/time-picker.component.d.ts +52 -52
  337. package/lib/time-picker/time-picker.module.d.ts +11 -11
  338. package/lib/toast/toast-message/toast-message.component.d.ts +18 -18
  339. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -8
  340. package/lib/toast/toast.module.d.ts +9 -9
  341. package/lib/toast/toast.service.d.ts +18 -18
  342. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -12
  343. package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -24
  344. package/lib/toolbar/search/toolbar-search.component.d.ts +16 -16
  345. package/lib/toolbar/title/toolbar-title.component.d.ts +9 -9
  346. package/lib/toolbar/toolbar-item.d.ts +3 -3
  347. package/lib/toolbar/toolbar.component.d.ts +8 -8
  348. package/lib/toolbar/toolbar.module.d.ts +14 -14
  349. package/lib/tooltip/tooltip.directive.d.ts +21 -21
  350. package/lib/tooltip/tooltip.module.d.ts +8 -8
  351. package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -111
  352. package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -11
  353. package/lib/tree-view/tree-view.component.d.ts +121 -121
  354. package/lib/tree-view/tree-view.module.d.ts +11 -11
  355. package/lib/upload-file/upload-file.component.d.ts +42 -42
  356. package/lib/upload-file/upload-file.events.d.ts +10 -10
  357. package/lib/upload-file/upload-file.module.d.ts +13 -13
  358. package/lib/validation/validation-form.component.d.ts +19 -19
  359. package/lib/validation/validation-rule.widget.d.ts +23 -23
  360. package/lib/validation/validation.class.d.ts +16 -16
  361. package/lib/validation/validation.component.d.ts +25 -25
  362. package/lib/validation/validation.module.d.ts +11 -11
  363. package/package.json +1 -1
  364. package/public-api.d.ts +155 -155
@@ -1,124 +1,124 @@
1
- import { Component, Input, ViewEncapsulation, Output, EventEmitter, ViewChild } from '@angular/core';
2
- import { AXValidationFormComponent } from '../validation/validation-form.component';
3
- import { AXQueryBuilderRuleComponent } from './query-builder-rule.component';
4
- import { AXQueryBuilderGroup, AXQueryBuilderRule } from './query-builder.class';
5
- import { AXQueryBuilderService } from './query-builder.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./query-builder.service";
8
- import * as i2 from "./query-builder-rule.component";
9
- import * as i3 from "@angular/common";
10
- export class AXQueryBuilderGroupComponent {
11
- constructor(qs) {
12
- this.qs = qs;
13
- this.collapsed = false;
14
- this.fields = [];
15
- this.mode = 'new';
16
- //ruleIsEditing: boolean = true;
17
- this.groupRuleChanged = new EventEmitter();
18
- this.showGroupCondition = false;
19
- }
20
- ngOnInit() { }
21
- ruleDelete(e) {
22
- this.group.items = this.group.items.filter((c) => c !== e.items);
23
- this.ruleChanged(null);
24
- }
25
- handleRemoveClick() {
26
- this.parent.items = this.parent.items.filter((c) => c !== this.group);
27
- this.groupRuleChanged.emit({ groups: this.group, component: this });
28
- }
29
- saveRule() {
30
- // this.form.validate().then(c => {
31
- // });
32
- // return this.queryRule.saveRule();
33
- }
34
- addRule() {
35
- const item = new AXQueryBuilderRule();
36
- if (this.fields.length > 0) {
37
- // item.caption = this.fields[0].caption;
38
- // item.dataType = this.fields[0].dataType;
39
- // item.dataField = this.fields[0].dataField;
40
- }
41
- else {
42
- }
43
- item.operator = 'equal';
44
- if (item.dataType === 'string') {
45
- item.value = '';
46
- }
47
- if (item.dataType === 'number') {
48
- item.value = 0;
49
- }
50
- if (this.group.items == undefined) {
51
- this.group.items = [];
52
- }
53
- this.group.items.push(item);
54
- this.ruleChanged(null);
55
- }
56
- addGroup() {
57
- this.showGroupCondition = true;
58
- }
59
- addGroupOR() {
60
- this.makeGroup('OR');
61
- }
62
- addGroupAND() {
63
- this.makeGroup('AND');
64
- }
65
- makeGroup(_condition) {
66
- let r = new AXQueryBuilderGroup();
67
- r.condition = _condition;
68
- r.items = [];
69
- r.queryString = '';
70
- if (this.group.items == undefined) {
71
- this.group.items = [];
72
- }
73
- this.group.items.push(r);
74
- this.showGroupCondition = false;
75
- this.ruleChanged(null);
76
- }
77
- changeDetailMode() {
78
- //if (this.parent) {
79
- this.collapsed = !this.collapsed;
80
- // this.ruleIsEditing = false;
81
- //}
82
- }
83
- handleChangeClick() {
84
- if (this.group.condition == 'OR') {
85
- this.group.condition = 'AND';
86
- }
87
- else {
88
- this.group.condition = 'OR';
89
- }
90
- this.ruleChanged(null);
91
- }
92
- ruleChanged(e) {
93
- ;
94
- // this.group.queryString = this.qs.getQueryString(this.group, 'simple');
95
- this.qs.getQueryStringSimple(this.group).then((c) => {
96
- this.group.queryString = c;
97
- this.group.queryStringElastic = this.qs.getQueryString(this.group, 'elastic');
98
- this.groupRuleChanged.emit({ groups: this.group, component: this });
99
- });
100
- }
101
- }
102
- AXQueryBuilderGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderGroupComponent, deps: [{ token: i1.AXQueryBuilderService }], target: i0.ɵɵFactoryTarget.Component });
103
- AXQueryBuilderGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXQueryBuilderGroupComponent, selector: "ax-query-group", inputs: { group: "group", parent: "parent", fields: "fields", mode: "mode" }, outputs: { groupRuleChanged: "groupRuleChanged" }, host: { classAttribute: "ax ax-query-group" }, viewQueries: [{ propertyName: "queryRule", first: true, predicate: ["queryRule"], descendants: true }, { propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"header\">\r\n <div class=\"condition\" *ngIf=\"parent\">\r\n <div class=\"text {{parent.condition}}\">\r\n <span>{{parent.condition }}</span>\r\n </div>\r\n </div>\r\n <div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n </div>\r\n\r\n <div class=\"detail {{group.condition}}\" (click)=\"changeDetailMode()\">\r\n <div class=\"collapsed\" *ngIf=\"collapsed;else expandedTemplate\">\r\n {{group.queryString}}\r\n </div>\r\n <ng-template #expandedTemplate>\r\n <div class=\"expanded\">\r\n <strong>{{group.condition == 'OR' ? '\u06CC\u06A9\u06CC \u0627\u0632' : '\u0647\u0645\u0647' }} <span>\u0634\u0631\u0627\u06CC\u0637 \u0632\u06CC\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0628\u0627\u0634\u062F</span> </strong>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"buttons-list\">\r\n <div class=\"button remove\" *ngIf=\"parent && mode=='new'\" (click)=\"handleRemoveClick()\">\r\n <i class=\"far fa-times ax-danger-color\"></i>\r\n </div>\r\n <div class=\"button edit\" *ngIf=\"mode=='new'\" (click)=\"handleChangeClick()\">\r\n <i class=\"far fa-retweet ax-danger-color\"></i>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"rules\" *ngIf=\"!collapsed\">\r\n <!-- <ax-validation-form #form> -->\r\n\r\n <div *ngFor=\"let item of group.items\" class=\"group-item\">\r\n <ng-container *ngIf=\"item.condition;else ruleTemplate\">\r\n <ax-query-group (groupRuleChanged)=\"ruleChanged($event)\" [mode]=\"mode\" [group]=\"item\" [fields]=\"fields\"\r\n [parent]=\"group\">\r\n </ax-query-group>\r\n </ng-container>\r\n <ng-template #ruleTemplate>\r\n <ax-query-rule #queryRule (ruleChanged)=\"ruleChanged($event)\" [mode]=\"mode\"\r\n (onRuleDelete)=\"ruleDelete($event)\" [rule]=\"item\" [fields]=\"fields\" [parent]=\"group\">\r\n </ax-query-rule>\r\n </ng-template>\r\n </div>\r\n <!-- </ax-validation-form> -->\r\n <div class=\"group-item\" *ngIf=\"mode=='new'\">\r\n <div class=\"ax-query-rule\">\r\n <div class=\"condition\">\r\n </div>\r\n <div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n </div>\r\n <div class=\"add-rule\" (click)=\"addRule()\" *ngIf=\"mode=='new'\">\r\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>\u0634\u0631\u0637</span>\r\n </div>\r\n <div class=\"add-group\" (click)=\"addGroup()\" *ngIf=\"!showGroupCondition && mode=='new'\">\r\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>\u06AF\u0631\u0648\u0647</span>\r\n </div>\r\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition OR\" (click)=\"addGroupOR()\">\r\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>OR</span>\r\n </div>\r\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition AND\" (click)=\"addGroupAND()\">\r\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>AND</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>", components: [{ type: AXQueryBuilderGroupComponent, selector: "ax-query-group", inputs: ["group", "parent", "fields", "mode"], outputs: ["groupRuleChanged"] }, { type: i2.AXQueryBuilderRuleComponent, selector: "ax-query-rule", inputs: ["isEditing", "rule", "parent", "mode", "fields"], outputs: ["onRuleDelete", "ruleChanged"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None });
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderGroupComponent, decorators: [{
105
- type: Component,
106
- args: [{ selector: 'ax-query-group', host: { class: 'ax ax-query-group' }, encapsulation: ViewEncapsulation.None, template: "<div class=\"header\">\r\n <div class=\"condition\" *ngIf=\"parent\">\r\n <div class=\"text {{parent.condition}}\">\r\n <span>{{parent.condition }}</span>\r\n </div>\r\n </div>\r\n <div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n </div>\r\n\r\n <div class=\"detail {{group.condition}}\" (click)=\"changeDetailMode()\">\r\n <div class=\"collapsed\" *ngIf=\"collapsed;else expandedTemplate\">\r\n {{group.queryString}}\r\n </div>\r\n <ng-template #expandedTemplate>\r\n <div class=\"expanded\">\r\n <strong>{{group.condition == 'OR' ? '\u06CC\u06A9\u06CC \u0627\u0632' : '\u0647\u0645\u0647' }} <span>\u0634\u0631\u0627\u06CC\u0637 \u0632\u06CC\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0628\u0627\u0634\u062F</span> </strong>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"buttons-list\">\r\n <div class=\"button remove\" *ngIf=\"parent && mode=='new'\" (click)=\"handleRemoveClick()\">\r\n <i class=\"far fa-times ax-danger-color\"></i>\r\n </div>\r\n <div class=\"button edit\" *ngIf=\"mode=='new'\" (click)=\"handleChangeClick()\">\r\n <i class=\"far fa-retweet ax-danger-color\"></i>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"rules\" *ngIf=\"!collapsed\">\r\n <!-- <ax-validation-form #form> -->\r\n\r\n <div *ngFor=\"let item of group.items\" class=\"group-item\">\r\n <ng-container *ngIf=\"item.condition;else ruleTemplate\">\r\n <ax-query-group (groupRuleChanged)=\"ruleChanged($event)\" [mode]=\"mode\" [group]=\"item\" [fields]=\"fields\"\r\n [parent]=\"group\">\r\n </ax-query-group>\r\n </ng-container>\r\n <ng-template #ruleTemplate>\r\n <ax-query-rule #queryRule (ruleChanged)=\"ruleChanged($event)\" [mode]=\"mode\"\r\n (onRuleDelete)=\"ruleDelete($event)\" [rule]=\"item\" [fields]=\"fields\" [parent]=\"group\">\r\n </ax-query-rule>\r\n </ng-template>\r\n </div>\r\n <!-- </ax-validation-form> -->\r\n <div class=\"group-item\" *ngIf=\"mode=='new'\">\r\n <div class=\"ax-query-rule\">\r\n <div class=\"condition\">\r\n </div>\r\n <div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n </div>\r\n <div class=\"add-rule\" (click)=\"addRule()\" *ngIf=\"mode=='new'\">\r\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>\u0634\u0631\u0637</span>\r\n </div>\r\n <div class=\"add-group\" (click)=\"addGroup()\" *ngIf=\"!showGroupCondition && mode=='new'\">\r\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>\u06AF\u0631\u0648\u0647</span>\r\n </div>\r\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition OR\" (click)=\"addGroupOR()\">\r\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>OR</span>\r\n </div>\r\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition AND\" (click)=\"addGroupAND()\">\r\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>AND</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>" }]
107
- }], ctorParameters: function () { return [{ type: i1.AXQueryBuilderService }]; }, propDecorators: { queryRule: [{
108
- type: ViewChild,
109
- args: ['queryRule']
110
- }], form: [{
111
- type: ViewChild,
112
- args: [AXValidationFormComponent]
113
- }], group: [{
114
- type: Input
115
- }], parent: [{
116
- type: Input
117
- }], fields: [{
118
- type: Input
119
- }], mode: [{
120
- type: Input
121
- }], groupRuleChanged: [{
122
- type: Output
123
- }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQXFELGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBT2hFLE1BQU0sT0FBTyw0QkFBNEI7SUF3QnZDLFlBQW9CLEVBQXlCO1FBQXpCLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBbEI3QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBTTNCLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFHbkIsU0FBSSxHQUFtQixLQUFLLENBQUM7UUFFN0IsZ0NBQWdDO1FBR2hDLHFCQUFnQixHQUEyQyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUV4Ryx1QkFBa0IsR0FBWSxLQUFLLENBQUM7SUFFWSxDQUFDO0lBRWpELFFBQVEsS0FBSSxDQUFDO0lBRWIsVUFBVSxDQUFDLENBQTBCO1FBQ25DLElBQUksQ0FBQyxL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SU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFNTixnQkFBZ0I7c0JBRGYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYUXVlcnlCdWlsZGVyUnVsZUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYUXVlcnlCdWlsZGVyR3JvdXAsIEFYUXVlcnlCdWlsZGVyR3JvdXBFdmVudCwgQVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQsIEFYUXVlcnlCdWlsZGVyUnVsZSB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1xdWVyeS1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICdxdWVyeS1idWlsZGVyLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7IGNsYXNzOiAnYXggYXgtcXVlcnktZ3JvdXAnIH0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhRdWVyeUJ1aWxkZXJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgncXVlcnlSdWxlJykgcXVlcnlSdWxlOiBBWFF1ZXJ5QnVpbGRlclJ1bGVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50KSBmb3JtOiBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpXHJcbiAgZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXA7XHJcblxyXG4gIGNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBhcmVudDogQVhRdWVyeUJ1aWxkZXJHcm91cDtcclxuXHJcbiAgQElucHV0KClcclxuICBmaWVsZHM6IGFueVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbW9kZTogJ25ldycgfCAnZWRpdCcgPSAnbmV3JztcclxuXHJcbiAgLy9ydWxlSXNFZGl0aW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZ3JvdXBSdWxlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyR3JvdXBFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyR3JvdXBFdmVudD4oKTtcclxuXHJcbiAgc2hvd0dyb3VwQ29uZGl0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcXM6IEFYUXVlcnlCdWlsZGVyU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBydWxlRGVsZXRlKGU6IEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50KSB7XHJcbiAgICB0aGlzLmdyb3VwLml0ZW1zID0gdGhpcy5ncm91cC5pdGVtcy5maWx0ZXIoKGMpID0+IGMgIT09IGUuaXRlbXMpO1xyXG4gICAgdGhpcy5ydWxlQ2hhbmdlZChudWxsKTtcclxuICB9XHJcbiAgaGFuZGxlUmVtb3ZlQ2xpY2soKSB7XHJcbiAgICB0aGlzLnBhcmVudC5pdGVtcyA9IHRoaXMucGFyZW50Lml0ZW1zLmZpbHRlcigoYykgPT4gYyAhPT0gdGhpcy5ncm91cCk7XHJcbiAgICB0aGlzLmdyb3VwUnVsZUNoYW5nZWQuZW1pdCh7IGdyb3VwczogdGhpcy5ncm91cCwgY29tcG9uZW50OiB0aGlzIH0pO1xyXG4gIH1cclxuICBzYXZlUnVsZSgpIHtcclxuICAgIC8vIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oYyA9PiB7XHJcbiAgICAvLyB9KTtcclxuICAgIC8vIHJldHVybiB0aGlzLnF1ZXJ5UnVsZS5zYXZlUnVsZSgpO1xyXG4gIH1cclxuICBhZGRSdWxlKCkge1xyXG4gICAgY29uc3QgaXRlbTogQVhRdWVyeUJ1aWxkZXJSdWxlID0gbmV3IEFYUXVlcnlCdWlsZGVyUnVsZSgpO1xyXG4gICAgaWYgKHRoaXMuZmllbGRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgLy8gIGl0ZW0uY2FwdGlvbiA9IHRoaXMuZmllbGRzWzBdLmNhcHRpb247XHJcbiAgICAgIC8vIGl0ZW0uZGF0YVR5cGUgPSB0aGlzLmZpZWxkc1swXS5kYXRhVHlwZTtcclxuICAgICAgLy8gIGl0ZW0uZGF0YUZpZWxkID0gdGhpcy5maWVsZHNbMF0uZGF0YUZpZWxkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgIH1cclxuICAgIGl0ZW0ub3BlcmF0b3IgPSAnZXF1YWwnO1xyXG5cclxuICAgIGlmIChpdGVtLmRhdGFUeXBlID09PSAnc3RyaW5nJykge1xyXG4gICAgICBpdGVtLnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5kYXRhVHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgaXRlbS52YWx1ZSA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZ3JvdXAuaXRlbXMgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuaXRlbXMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JvdXAuaXRlbXMucHVzaChpdGVtKTtcclxuICAgIHRoaXMucnVsZUNoYW5nZWQobnVsbCk7XHJcbiAgfVxyXG4gIGFkZEdyb3VwKCkge1xyXG4gICAgdGhpcy5zaG93R3JvdXBDb25kaXRpb24gPSB0cnVlO1xyXG4gIH1cclxuICBhZGRHcm91cE9SKCkge1xyXG4gICAgdGhpcy5tYWtlR3JvdXAoJ09SJyk7XHJcbiAgfVxyXG4gIGFkZEdyb3VwQU5EKCkge1xyXG4gICAgdGhpcy5tYWtlR3JvdXAoJ0FORCcpO1xyXG4gIH1cclxuICBtYWtlR3JvdXAoX2NvbmRpdGlvbikge1xyXG4gICAgbGV0IHI6IEFYUXVlcnlCdWlsZGVyR3JvdXAgPSBuZXcgQVhRdWVyeUJ1aWxkZXJHcm91cCgpO1xyXG4gICAgci5jb25kaXRpb24gPSBfY29uZGl0aW9uO1xyXG4gICAgci5pdGVtcyA9IFtdO1xyXG4gICAgci5xdWVyeVN0cmluZyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuaXRlbXMgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuaXRlbXMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JvdXAuaXRlbXMucHVzaChyKTtcclxuICAgIHRoaXMuc2hvd0dyb3VwQ29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkKG51bGwpO1xyXG4gIH1cclxuICBjaGFuZ2VEZXRhaWxNb2RlKCkge1xyXG4gICAgLy9pZiAodGhpcy5wYXJlbnQpIHtcclxuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xyXG4gICAgLy8gIHRoaXMucnVsZUlzRWRpdGluZyA9IGZhbHNlO1xyXG4gICAgLy99XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFuZ2VDbGljaygpIHtcclxuICAgIGlmICh0aGlzLmdyb3VwLmNvbmRpdGlvbiA9PSAnT1InKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuY29uZGl0aW9uID0gJ0FORCc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdyb3VwLmNvbmRpdGlvbiA9ICdPUic7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcnVsZUNoYW5nZWQoZSkge1xyXG4gICAgO1xyXG4gICAgLy8gdGhpcy5ncm91cC5xdWVyeVN0cmluZyA9IHRoaXMucXMuZ2V0UXVlcnlTdHJpbmcodGhpcy5ncm91cCwgJ3NpbXBsZScpO1xyXG4gICAgdGhpcy5xcy5nZXRRdWVyeVN0cmluZ1NpbXBsZSh0aGlzLmdyb3VwKS50aGVuKChjKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXAucXVlcnlTdHJpbmcgPSBjO1xyXG4gICAgICB0aGlzLmdyb3VwLnF1ZXJ5U3RyaW5nRWxhc3RpYyA9IHRoaXMucXMuZ2V0UXVlcnlTdHJpbmcodGhpcy5ncm91cCwgJ2VsYXN0aWMnKTtcclxuICAgICAgdGhpcy5ncm91cFJ1bGVDaGFuZ2VkLmVtaXQoeyBncm91cHM6IHRoaXMuZ3JvdXAsIGNvbXBvbmVudDogdGhpcyB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29uZGl0aW9uXCIgKm5nSWY9XCJwYXJlbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCB7e3BhcmVudC5jb25kaXRpb259fVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57e3BhcmVudC5jb25kaXRpb24gfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJoYW5kbGVyXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtZ3JpcC1saW5lcy12ZXJ0aWNhbFwiPjwvaT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwge3tncm91cC5jb25kaXRpb259fVwiIChjbGljayk9XCJjaGFuZ2VEZXRhaWxNb2RlKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2VkXCIgKm5nSWY9XCJjb2xsYXBzZWQ7ZWxzZSBleHBhbmRlZFRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgIHt7Z3JvdXAucXVlcnlTdHJpbmd9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZXhwYW5kZWRUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7Z3JvdXAuY29uZGl0aW9uID09ICdPUicgPyAn24zaqduMINin2LInIDogJ9mH2YXZhycgfX0gPHNwYW4+2LTYsdin24zYtyDYstuM2LEg2KjYsdmC2LHYp9ixINio2KfYtNivPC9zcGFuPiA8L3N0cm9uZz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtbGlzdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gcmVtb3ZlXCIgKm5nSWY9XCJwYXJlbnQgJiYgbW9kZT09J25ldydcIiAoY2xpY2spPVwiaGFuZGxlUmVtb3ZlQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS10aW1lcyBheC1kYW5nZXItY29sb3JcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbiBlZGl0XCIgKm5nSWY9XCJtb2RlPT0nbmV3J1wiIChjbGljayk9XCJoYW5kbGVDaGFuZ2VDbGljaygpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXJldHdlZXQgYXgtZGFuZ2VyLWNvbG9yXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicnVsZXNcIiAqbmdJZj1cIiFjb2xsYXBzZWRcIj5cclxuICAgIDwhLS0gPGF4LXZhbGlkYXRpb24tZm9ybSAjZm9ybT4gLS0+XHJcblxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cC5pdGVtc1wiIGNsYXNzPVwiZ3JvdXAtaXRlbVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmNvbmRpdGlvbjtlbHNlIHJ1bGVUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICA8YXgtcXVlcnktZ3JvdXAgKGdyb3VwUnVsZUNoYW5nZWQpPVwicnVsZUNoYW5nZWQoJGV2ZW50KVwiIFttb2RlXT1cIm1vZGVcIiBbZ3JvdXBdPVwiaXRlbVwiIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICAgICAgICAgICAgICAgIFtwYXJlbnRdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgPC9heC1xdWVyeS1ncm91cD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3J1bGVUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGF4LXF1ZXJ5LXJ1bGUgI3F1ZXJ5UnVsZSAocnVsZUNoYW5nZWQpPVwicnVsZUNoYW5nZWQoJGV2ZW50KVwiIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKG9uUnVsZURlbGV0ZSk9XCJydWxlRGVsZXRlKCRldmVudClcIiBbcnVsZV09XCJpdGVtXCIgW2ZpZWxkc109XCJmaWVsZHNcIiBbcGFyZW50XT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgIDwvYXgtcXVlcnktcnVsZT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIDwvYXgtdmFsaWRhdGlvbi1mb3JtPiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJncm91cC1pdGVtXCIgKm5nSWY9XCJtb2RlPT0nbmV3J1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1xdWVyeS1ydWxlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25kaXRpb25cIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYW5kbGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1ncmlwLWxpbmVzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1ydWxlXCIgKGNsaWNrKT1cImFkZFJ1bGUoKVwiICpuZ0lmPVwibW9kZT09J25ldydcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXBsdXNcIj48L2k+Jm5ic3A7Jm5ic3A7PHNwYW4+2LTYsdi3PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1ncm91cFwiIChjbGljayk9XCJhZGRHcm91cCgpXCIgKm5nSWY9XCIhc2hvd0dyb3VwQ29uZGl0aW9uICYmIG1vZGU9PSduZXcnXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1wbHVzXCI+PC9pPiZuYnNwOyZuYnNwOzxzcGFuPtqv2LHZiNmHPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dHcm91cENvbmRpdGlvbiAmJiBtb2RlPT0nbmV3J1wiIGNsYXNzPVwiYWRkLWNvbmRpdGlvbiBPUlwiIChjbGljayk9XCJhZGRHcm91cE9SKClcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXBsdXNcIj48L2k+Jm5ic3A7Jm5ic3A7PHNwYW4+T1I8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0dyb3VwQ29uZGl0aW9uICYmIG1vZGU9PSduZXcnXCIgY2xhc3M9XCJhZGQtY29uZGl0aW9uIEFORFwiIChjbGljayk9XCJhZGRHcm91cEFORCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1wbHVzXCI+PC9pPiZuYnNwOyZuYnNwOzxzcGFuPkFORDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
1
+ import { Component, Input, ViewEncapsulation, Output, EventEmitter, ViewChild } from '@angular/core';
2
+ import { AXValidationFormComponent } from '../validation/validation-form.component';
3
+ import { AXQueryBuilderRuleComponent } from './query-builder-rule.component';
4
+ import { AXQueryBuilderGroup, AXQueryBuilderRule } from './query-builder.class';
5
+ import { AXQueryBuilderService } from './query-builder.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./query-builder.service";
8
+ import * as i2 from "./query-builder-rule.component";
9
+ import * as i3 from "@angular/common";
10
+ export class AXQueryBuilderGroupComponent {
11
+ constructor(qs) {
12
+ this.qs = qs;
13
+ this.collapsed = false;
14
+ this.fields = [];
15
+ this.mode = 'new';
16
+ //ruleIsEditing: boolean = true;
17
+ this.groupRuleChanged = new EventEmitter();
18
+ this.showGroupCondition = false;
19
+ }
20
+ ngOnInit() { }
21
+ ruleDelete(e) {
22
+ this.group.items = this.group.items.filter((c) => c !== e.items);
23
+ this.ruleChanged(null);
24
+ }
25
+ handleRemoveClick() {
26
+ this.parent.items = this.parent.items.filter((c) => c !== this.group);
27
+ this.groupRuleChanged.emit({ groups: this.group, component: this });
28
+ }
29
+ saveRule() {
30
+ // this.form.validate().then(c => {
31
+ // });
32
+ // return this.queryRule.saveRule();
33
+ }
34
+ addRule() {
35
+ const item = new AXQueryBuilderRule();
36
+ if (this.fields.length > 0) {
37
+ // item.caption = this.fields[0].caption;
38
+ // item.dataType = this.fields[0].dataType;
39
+ // item.dataField = this.fields[0].dataField;
40
+ }
41
+ else {
42
+ }
43
+ item.operator = 'equal';
44
+ if (item.dataType === 'string') {
45
+ item.value = '';
46
+ }
47
+ if (item.dataType === 'number') {
48
+ item.value = 0;
49
+ }
50
+ if (this.group.items == undefined) {
51
+ this.group.items = [];
52
+ }
53
+ this.group.items.push(item);
54
+ this.ruleChanged(null);
55
+ }
56
+ addGroup() {
57
+ this.showGroupCondition = true;
58
+ }
59
+ addGroupOR() {
60
+ this.makeGroup('OR');
61
+ }
62
+ addGroupAND() {
63
+ this.makeGroup('AND');
64
+ }
65
+ makeGroup(_condition) {
66
+ let r = new AXQueryBuilderGroup();
67
+ r.condition = _condition;
68
+ r.items = [];
69
+ r.queryString = '';
70
+ if (this.group.items == undefined) {
71
+ this.group.items = [];
72
+ }
73
+ this.group.items.push(r);
74
+ this.showGroupCondition = false;
75
+ this.ruleChanged(null);
76
+ }
77
+ changeDetailMode() {
78
+ //if (this.parent) {
79
+ this.collapsed = !this.collapsed;
80
+ // this.ruleIsEditing = false;
81
+ //}
82
+ }
83
+ handleChangeClick() {
84
+ if (this.group.condition == 'OR') {
85
+ this.group.condition = 'AND';
86
+ }
87
+ else {
88
+ this.group.condition = 'OR';
89
+ }
90
+ this.ruleChanged(null);
91
+ }
92
+ ruleChanged(e) {
93
+ ;
94
+ // this.group.queryString = this.qs.getQueryString(this.group, 'simple');
95
+ this.qs.getQueryStringSimple(this.group).then((c) => {
96
+ this.group.queryString = c;
97
+ this.group.queryStringElastic = this.qs.getQueryString(this.group, 'elastic');
98
+ this.groupRuleChanged.emit({ groups: this.group, component: this });
99
+ });
100
+ }
101
+ }
102
+ AXQueryBuilderGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderGroupComponent, deps: [{ token: i1.AXQueryBuilderService }], target: i0.ɵɵFactoryTarget.Component });
103
+ AXQueryBuilderGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXQueryBuilderGroupComponent, selector: "ax-query-group", inputs: { group: "group", parent: "parent", fields: "fields", mode: "mode" }, outputs: { groupRuleChanged: "groupRuleChanged" }, host: { classAttribute: "ax ax-query-group" }, viewQueries: [{ propertyName: "queryRule", first: true, predicate: ["queryRule"], descendants: true }, { propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"header\">\n <div class=\"condition\" *ngIf=\"parent\">\n <div class=\"text {{parent.condition}}\">\n <span>{{parent.condition }}</span>\n </div>\n </div>\n <div class=\"handler\">\n <i class=\"far fa-grip-lines-vertical\"></i>\n </div>\n\n <div class=\"detail {{group.condition}}\" (click)=\"changeDetailMode()\">\n <div class=\"collapsed\" *ngIf=\"collapsed;else expandedTemplate\">\n {{group.queryString}}\n </div>\n <ng-template #expandedTemplate>\n <div class=\"expanded\">\n <strong>{{group.condition == 'OR' ? '\u06CC\u06A9\u06CC \u0627\u0632' : '\u0647\u0645\u0647' }} <span>\u0634\u0631\u0627\u06CC\u0637 \u0632\u06CC\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0628\u0627\u0634\u062F</span> </strong>\n </div>\n </ng-template>\n </div>\n <div class=\"buttons-list\">\n <div class=\"button remove\" *ngIf=\"parent && mode=='new'\" (click)=\"handleRemoveClick()\">\n <i class=\"far fa-times ax-danger-color\"></i>\n </div>\n <div class=\"button edit\" *ngIf=\"mode=='new'\" (click)=\"handleChangeClick()\">\n <i class=\"far fa-retweet ax-danger-color\"></i>\n </div>\n </div>\n</div>\n<div class=\"rules\" *ngIf=\"!collapsed\">\n <!-- <ax-validation-form #form> -->\n\n <div *ngFor=\"let item of group.items\" class=\"group-item\">\n <ng-container *ngIf=\"item.condition;else ruleTemplate\">\n <ax-query-group (groupRuleChanged)=\"ruleChanged($event)\" [mode]=\"mode\" [group]=\"item\" [fields]=\"fields\"\n [parent]=\"group\">\n </ax-query-group>\n </ng-container>\n <ng-template #ruleTemplate>\n <ax-query-rule #queryRule (ruleChanged)=\"ruleChanged($event)\" [mode]=\"mode\"\n (onRuleDelete)=\"ruleDelete($event)\" [rule]=\"item\" [fields]=\"fields\" [parent]=\"group\">\n </ax-query-rule>\n </ng-template>\n </div>\n <!-- </ax-validation-form> -->\n <div class=\"group-item\" *ngIf=\"mode=='new'\">\n <div class=\"ax-query-rule\">\n <div class=\"condition\">\n </div>\n <div class=\"handler\">\n <i class=\"far fa-grip-lines-vertical\"></i>\n </div>\n <div class=\"add-rule\" (click)=\"addRule()\" *ngIf=\"mode=='new'\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>\u0634\u0631\u0637</span>\n </div>\n <div class=\"add-group\" (click)=\"addGroup()\" *ngIf=\"!showGroupCondition && mode=='new'\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>\u06AF\u0631\u0648\u0647</span>\n </div>\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition OR\" (click)=\"addGroupOR()\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>OR</span>\n </div>\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition AND\" (click)=\"addGroupAND()\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>AND</span>\n </div>\n\n </div>\n </div>\n</div>", components: [{ type: AXQueryBuilderGroupComponent, selector: "ax-query-group", inputs: ["group", "parent", "fields", "mode"], outputs: ["groupRuleChanged"] }, { type: i2.AXQueryBuilderRuleComponent, selector: "ax-query-rule", inputs: ["isEditing", "rule", "parent", "mode", "fields"], outputs: ["onRuleDelete", "ruleChanged"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None });
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderGroupComponent, decorators: [{
105
+ type: Component,
106
+ args: [{ selector: 'ax-query-group', host: { class: 'ax ax-query-group' }, encapsulation: ViewEncapsulation.None, template: "<div class=\"header\">\n <div class=\"condition\" *ngIf=\"parent\">\n <div class=\"text {{parent.condition}}\">\n <span>{{parent.condition }}</span>\n </div>\n </div>\n <div class=\"handler\">\n <i class=\"far fa-grip-lines-vertical\"></i>\n </div>\n\n <div class=\"detail {{group.condition}}\" (click)=\"changeDetailMode()\">\n <div class=\"collapsed\" *ngIf=\"collapsed;else expandedTemplate\">\n {{group.queryString}}\n </div>\n <ng-template #expandedTemplate>\n <div class=\"expanded\">\n <strong>{{group.condition == 'OR' ? '\u06CC\u06A9\u06CC \u0627\u0632' : '\u0647\u0645\u0647' }} <span>\u0634\u0631\u0627\u06CC\u0637 \u0632\u06CC\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0628\u0627\u0634\u062F</span> </strong>\n </div>\n </ng-template>\n </div>\n <div class=\"buttons-list\">\n <div class=\"button remove\" *ngIf=\"parent && mode=='new'\" (click)=\"handleRemoveClick()\">\n <i class=\"far fa-times ax-danger-color\"></i>\n </div>\n <div class=\"button edit\" *ngIf=\"mode=='new'\" (click)=\"handleChangeClick()\">\n <i class=\"far fa-retweet ax-danger-color\"></i>\n </div>\n </div>\n</div>\n<div class=\"rules\" *ngIf=\"!collapsed\">\n <!-- <ax-validation-form #form> -->\n\n <div *ngFor=\"let item of group.items\" class=\"group-item\">\n <ng-container *ngIf=\"item.condition;else ruleTemplate\">\n <ax-query-group (groupRuleChanged)=\"ruleChanged($event)\" [mode]=\"mode\" [group]=\"item\" [fields]=\"fields\"\n [parent]=\"group\">\n </ax-query-group>\n </ng-container>\n <ng-template #ruleTemplate>\n <ax-query-rule #queryRule (ruleChanged)=\"ruleChanged($event)\" [mode]=\"mode\"\n (onRuleDelete)=\"ruleDelete($event)\" [rule]=\"item\" [fields]=\"fields\" [parent]=\"group\">\n </ax-query-rule>\n </ng-template>\n </div>\n <!-- </ax-validation-form> -->\n <div class=\"group-item\" *ngIf=\"mode=='new'\">\n <div class=\"ax-query-rule\">\n <div class=\"condition\">\n </div>\n <div class=\"handler\">\n <i class=\"far fa-grip-lines-vertical\"></i>\n </div>\n <div class=\"add-rule\" (click)=\"addRule()\" *ngIf=\"mode=='new'\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>\u0634\u0631\u0637</span>\n </div>\n <div class=\"add-group\" (click)=\"addGroup()\" *ngIf=\"!showGroupCondition && mode=='new'\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>\u06AF\u0631\u0648\u0647</span>\n </div>\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition OR\" (click)=\"addGroupOR()\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>OR</span>\n </div>\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition AND\" (click)=\"addGroupAND()\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>AND</span>\n </div>\n\n </div>\n </div>\n</div>" }]
107
+ }], ctorParameters: function () { return [{ type: i1.AXQueryBuilderService }]; }, propDecorators: { queryRule: [{
108
+ type: ViewChild,
109
+ args: ['queryRule']
110
+ }], form: [{
111
+ type: ViewChild,
112
+ args: [AXValidationFormComponent]
113
+ }], group: [{
114
+ type: Input
115
+ }], parent: [{
116
+ type: Input
117
+ }], fields: [{
118
+ type: Input
119
+ }], mode: [{
120
+ type: Input
121
+ }], groupRuleChanged: [{
122
+ type: Output
123
+ }] } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQXFELGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBT2hFLE1BQU0sT0FBTyw0QkFBNEI7SUF3QnZDLFlBQW9CLEVBQXlCO1FBQXpCLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBbEI3QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBTTNCLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFHbkIsU0FBSSxHQUFtQixLQUFLLENBQUM7UUFFN0IsZ0NBQWdDO1FBR2hDLHFCQUFnQixHQUEyQyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUV4Ryx1QkFBa0IsR0FBWSxLQUFLLENBQUM7SUFFWSxDQUFDO0lBRWpELFFBQVEsS0FBSSxDQUFDO0lBRWIsVUFBVSxDQUFDLENBQTBCO1FBQ25DLElBQUksQ0FBQyxL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SU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFNTixnQkFBZ0I7c0JBRGYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJSdWxlQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLXJ1bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUXVlcnlCdWlsZGVyR3JvdXAsIEFYUXVlcnlCdWlsZGVyR3JvdXBFdmVudCwgQVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQsIEFYUXVlcnlCdWlsZGVyUnVsZSB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5jbGFzcyc7XG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXIuc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1xdWVyeS1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAncXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdheCBheC1xdWVyeS1ncm91cCcgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBWFF1ZXJ5QnVpbGRlckdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgncXVlcnlSdWxlJykgcXVlcnlSdWxlOiBBWFF1ZXJ5QnVpbGRlclJ1bGVDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCkgZm9ybTogQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudDtcbiAgQElucHV0KClcbiAgZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXA7XG5cbiAgY29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcGFyZW50OiBBWFF1ZXJ5QnVpbGRlckdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIGZpZWxkczogYW55W10gPSBbXTtcblxuICBASW5wdXQoKVxuICBtb2RlOiAnbmV3JyB8ICdlZGl0JyA9ICduZXcnO1xuXG4gIC8vcnVsZUlzRWRpdGluZzogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpXG4gIGdyb3VwUnVsZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlckdyb3VwRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlckdyb3VwRXZlbnQ+KCk7XG5cbiAgc2hvd0dyb3VwQ29uZGl0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBxczogQVhRdWVyeUJ1aWxkZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBydWxlRGVsZXRlKGU6IEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50KSB7XG4gICAgdGhpcy5ncm91cC5pdGVtcyA9IHRoaXMuZ3JvdXAuaXRlbXMuZmlsdGVyKChjKSA9PiBjICE9PSBlLml0ZW1zKTtcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkKG51bGwpO1xuICB9XG4gIGhhbmRsZVJlbW92ZUNsaWNrKCkge1xuICAgIHRoaXMucGFyZW50Lml0ZW1zID0gdGhpcy5wYXJlbnQuaXRlbXMuZmlsdGVyKChjKSA9PiBjICE9PSB0aGlzLmdyb3VwKTtcbiAgICB0aGlzLmdyb3VwUnVsZUNoYW5nZWQuZW1pdCh7IGdyb3VwczogdGhpcy5ncm91cCwgY29tcG9uZW50OiB0aGlzIH0pO1xuICB9XG4gIHNhdmVSdWxlKCkge1xuICAgIC8vIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oYyA9PiB7XG4gICAgLy8gfSk7XG4gICAgLy8gcmV0dXJuIHRoaXMucXVlcnlSdWxlLnNhdmVSdWxlKCk7XG4gIH1cbiAgYWRkUnVsZSgpIHtcbiAgICBjb25zdCBpdGVtOiBBWFF1ZXJ5QnVpbGRlclJ1bGUgPSBuZXcgQVhRdWVyeUJ1aWxkZXJSdWxlKCk7XG4gICAgaWYgKHRoaXMuZmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vICBpdGVtLmNhcHRpb24gPSB0aGlzLmZpZWxkc1swXS5jYXB0aW9uO1xuICAgICAgLy8gaXRlbS5kYXRhVHlwZSA9IHRoaXMuZmllbGRzWzBdLmRhdGFUeXBlO1xuICAgICAgLy8gIGl0ZW0uZGF0YUZpZWxkID0gdGhpcy5maWVsZHNbMF0uZGF0YUZpZWxkO1xuICAgIH0gZWxzZSB7XG4gICAgfVxuICAgIGl0ZW0ub3BlcmF0b3IgPSAnZXF1YWwnO1xuXG4gICAgaWYgKGl0ZW0uZGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpdGVtLnZhbHVlID0gJyc7XG4gICAgfVxuICAgIGlmIChpdGVtLmRhdGFUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgaXRlbS52YWx1ZSA9IDA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ3JvdXAuaXRlbXMgPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmdyb3VwLml0ZW1zID0gW107XG4gICAgfVxuICAgIHRoaXMuZ3JvdXAuaXRlbXMucHVzaChpdGVtKTtcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkKG51bGwpO1xuICB9XG4gIGFkZEdyb3VwKCkge1xuICAgIHRoaXMuc2hvd0dyb3VwQ29uZGl0aW9uID0gdHJ1ZTtcbiAgfVxuICBhZGRHcm91cE9SKCkge1xuICAgIHRoaXMubWFrZUdyb3VwKCdPUicpO1xuICB9XG4gIGFkZEdyb3VwQU5EKCkge1xuICAgIHRoaXMubWFrZUdyb3VwKCdBTkQnKTtcbiAgfVxuICBtYWtlR3JvdXAoX2NvbmRpdGlvbikge1xuICAgIGxldCByOiBBWFF1ZXJ5QnVpbGRlckdyb3VwID0gbmV3IEFYUXVlcnlCdWlsZGVyR3JvdXAoKTtcbiAgICByLmNvbmRpdGlvbiA9IF9jb25kaXRpb247XG4gICAgci5pdGVtcyA9IFtdO1xuICAgIHIucXVlcnlTdHJpbmcgPSAnJztcbiAgICBpZiAodGhpcy5ncm91cC5pdGVtcyA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZ3JvdXAuaXRlbXMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5ncm91cC5pdGVtcy5wdXNoKHIpO1xuICAgIHRoaXMuc2hvd0dyb3VwQ29uZGl0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5ydWxlQ2hhbmdlZChudWxsKTtcbiAgfVxuICBjaGFuZ2VEZXRhaWxNb2RlKCkge1xuICAgIC8vaWYgKHRoaXMucGFyZW50KSB7XG4gICAgdGhpcy5jb2xsYXBzZWQgPSAhdGhpcy5jb2xsYXBzZWQ7XG4gICAgLy8gIHRoaXMucnVsZUlzRWRpdGluZyA9IGZhbHNlO1xuICAgIC8vfVxuICB9XG5cbiAgaGFuZGxlQ2hhbmdlQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuZ3JvdXAuY29uZGl0aW9uID09ICdPUicpIHtcbiAgICAgIHRoaXMuZ3JvdXAuY29uZGl0aW9uID0gJ0FORCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ3JvdXAuY29uZGl0aW9uID0gJ09SJztcbiAgICB9XG4gICAgdGhpcy5ydWxlQ2hhbmdlZChudWxsKTtcbiAgfVxuXG4gIHJ1bGVDaGFuZ2VkKGUpIHtcbiAgICA7XG4gICAgLy8gdGhpcy5ncm91cC5xdWVyeVN0cmluZyA9IHRoaXMucXMuZ2V0UXVlcnlTdHJpbmcodGhpcy5ncm91cCwgJ3NpbXBsZScpO1xuICAgIHRoaXMucXMuZ2V0UXVlcnlTdHJpbmdTaW1wbGUodGhpcy5ncm91cCkudGhlbigoYykgPT4ge1xuICAgICAgdGhpcy5ncm91cC5xdWVyeVN0cmluZyA9IGM7XG4gICAgICB0aGlzLmdyb3VwLnF1ZXJ5U3RyaW5nRWxhc3RpYyA9IHRoaXMucXMuZ2V0UXVlcnlTdHJpbmcodGhpcy5ncm91cCwgJ2VsYXN0aWMnKTtcbiAgICAgIHRoaXMuZ3JvdXBSdWxlQ2hhbmdlZC5lbWl0KHsgZ3JvdXBzOiB0aGlzLmdyb3VwLCBjb21wb25lbnQ6IHRoaXMgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29uZGl0aW9uXCIgKm5nSWY9XCJwYXJlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQge3twYXJlbnQuY29uZGl0aW9ufX1cIj5cbiAgICAgICAgICAgIDxzcGFuPnt7cGFyZW50LmNvbmRpdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhhbmRsZXJcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtZ3JpcC1saW5lcy12ZXJ0aWNhbFwiPjwvaT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwge3tncm91cC5jb25kaXRpb259fVwiIChjbGljayk9XCJjaGFuZ2VEZXRhaWxNb2RlKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlZFwiICpuZ0lmPVwiY29sbGFwc2VkO2Vsc2UgZXhwYW5kZWRUZW1wbGF0ZVwiPlxuICAgICAgICAgICAge3tncm91cC5xdWVyeVN0cmluZ319XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2V4cGFuZGVkVGVtcGxhdGU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5kZWRcIj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7Z3JvdXAuY29uZGl0aW9uID09ICdPUicgPyAn24zaqduMINin2LInIDogJ9mH2YXZhycgfX0gPHNwYW4+2LTYsdin24zYtyDYstuM2LEg2KjYsdmC2LHYp9ixINio2KfYtNivPC9zcGFuPiA8L3N0cm9uZz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b25zLWxpc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbiByZW1vdmVcIiAqbmdJZj1cInBhcmVudCAmJiBtb2RlPT0nbmV3J1wiIChjbGljayk9XCJoYW5kbGVSZW1vdmVDbGljaygpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS10aW1lcyBheC1kYW5nZXItY29sb3JcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uIGVkaXRcIiAqbmdJZj1cIm1vZGU9PSduZXcnXCIgKGNsaWNrKT1cImhhbmRsZUNoYW5nZUNsaWNrKClcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXJldHdlZXQgYXgtZGFuZ2VyLWNvbG9yXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJ1bGVzXCIgKm5nSWY9XCIhY29sbGFwc2VkXCI+XG4gICAgPCEtLSA8YXgtdmFsaWRhdGlvbi1mb3JtICNmb3JtPiAtLT5cblxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXAuaXRlbXNcIiBjbGFzcz1cImdyb3VwLWl0ZW1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uY29uZGl0aW9uO2Vsc2UgcnVsZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8YXgtcXVlcnktZ3JvdXAgKGdyb3VwUnVsZUNoYW5nZWQpPVwicnVsZUNoYW5nZWQoJGV2ZW50KVwiIFttb2RlXT1cIm1vZGVcIiBbZ3JvdXBdPVwiaXRlbVwiIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgICAgICAgICAgICBbcGFyZW50XT1cImdyb3VwXCI+XG4gICAgICAgICAgICA8L2F4LXF1ZXJ5LWdyb3VwPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNydWxlVGVtcGxhdGU+XG4gICAgICAgICAgICA8YXgtcXVlcnktcnVsZSAjcXVlcnlSdWxlIChydWxlQ2hhbmdlZCk9XCJydWxlQ2hhbmdlZCgkZXZlbnQpXCIgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgICAgICAgKG9uUnVsZURlbGV0ZSk9XCJydWxlRGVsZXRlKCRldmVudClcIiBbcnVsZV09XCJpdGVtXCIgW2ZpZWxkc109XCJmaWVsZHNcIiBbcGFyZW50XT1cImdyb3VwXCI+XG4gICAgICAgICAgICA8L2F4LXF1ZXJ5LXJ1bGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPCEtLSA8L2F4LXZhbGlkYXRpb24tZm9ybT4gLS0+XG4gICAgPGRpdiBjbGFzcz1cImdyb3VwLWl0ZW1cIiAqbmdJZj1cIm1vZGU9PSduZXcnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1xdWVyeS1ydWxlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZGl0aW9uXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYW5kbGVyXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtZ3JpcC1saW5lcy12ZXJ0aWNhbFwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1ydWxlXCIgKGNsaWNrKT1cImFkZFJ1bGUoKVwiICpuZ0lmPVwibW9kZT09J25ldydcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1wbHVzXCI+PC9pPiZuYnNwOyZuYnNwOzxzcGFuPti02LHYtzwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1ncm91cFwiIChjbGljayk9XCJhZGRHcm91cCgpXCIgKm5nSWY9XCIhc2hvd0dyb3VwQ29uZGl0aW9uICYmIG1vZGU9PSduZXcnXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtcGx1c1wiPjwvaT4mbmJzcDsmbmJzcDs8c3Bhbj7ar9ix2YjZhzwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dHcm91cENvbmRpdGlvbiAmJiBtb2RlPT0nbmV3J1wiIGNsYXNzPVwiYWRkLWNvbmRpdGlvbiBPUlwiIChjbGljayk9XCJhZGRHcm91cE9SKClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1wbHVzXCI+PC9pPiZuYnNwOyZuYnNwOzxzcGFuPk9SPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0dyb3VwQ29uZGl0aW9uICYmIG1vZGU9PSduZXcnXCIgY2xhc3M9XCJhZGQtY29uZGl0aW9uIEFORFwiIChjbGljayk9XCJhZGRHcm91cEFORCgpXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtcGx1c1wiPjwvaT4mbmJzcDsmbmJzcDs8c3Bhbj5BTkQ8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==