@acorex/components 16.18.50 → 16.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/fesm2022/acorex-components.mjs +723 -687
  2. package/fesm2022/acorex-components.mjs.map +1 -1
  3. package/index.d.ts +1 -0
  4. package/lib/base/base-page.class.d.ts +2 -2
  5. package/lib/base/element.class.d.ts +5 -5
  6. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +1 -1
  7. package/lib/data-filter/filter.class.d.ts +1 -1
  8. package/lib/data-list/core/data-list.component.d.ts +1 -1
  9. package/lib/property-editor/property-editor.class.d.ts +1 -1
  10. package/package.json +4 -6
  11. package/esm2022/acorex-components.mjs +0 -5
  12. package/esm2022/index.mjs +0 -159
  13. package/esm2022/lib/accordion/accordion.component.mjs +0 -45
  14. package/esm2022/lib/accordion/accordion.module.mjs +0 -20
  15. package/esm2022/lib/base/base-page.class.mjs +0 -97
  16. package/esm2022/lib/base/components.class.mjs +0 -17
  17. package/esm2022/lib/base/element.class.mjs +0 -307
  18. package/esm2022/lib/base/events.class.mjs +0 -17
  19. package/esm2022/lib/button/button.component.mjs +0 -74
  20. package/esm2022/lib/button/button.module.mjs +0 -21
  21. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +0 -469
  22. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
  23. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +0 -59
  24. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +0 -16
  25. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +0 -226
  26. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +0 -68
  27. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -136
  28. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
  29. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -49
  30. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -102
  31. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -214
  32. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
  33. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -85
  34. package/esm2022/lib/checkbox/checkbox.component.mjs +0 -112
  35. package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
  36. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +0 -423
  37. package/esm2022/lib/color-picker/color-picker.component.mjs +0 -89
  38. package/esm2022/lib/color-picker/color-picker.module.mjs +0 -24
  39. package/esm2022/lib/context-menu/context-menu.component.mjs +0 -68
  40. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -146
  41. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -20
  42. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +0 -140
  43. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +0 -119
  44. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +0 -75
  45. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +0 -119
  46. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -267
  47. package/esm2022/lib/data-filter/filter.class.mjs +0 -46
  48. package/esm2022/lib/data-filter/filter.module.mjs +0 -88
  49. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -168
  50. package/esm2022/lib/data-list/core/data-list.component.mjs +0 -37
  51. package/esm2022/lib/data-list/list/list.component.mjs +0 -134
  52. package/esm2022/lib/data-list/list/list.module.mjs +0 -22
  53. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +0 -84
  54. package/esm2022/lib/data-source/datasource.component.mjs +0 -47
  55. package/esm2022/lib/data-source/datasource.module.mjs +0 -18
  56. package/esm2022/lib/data-source/read-param.mjs +0 -7
  57. package/esm2022/lib/date-picker/date-picker.component.mjs +0 -1102
  58. package/esm2022/lib/date-picker/date-picker.module.mjs +0 -50
  59. package/esm2022/lib/dialog/dialog.component.mjs +0 -26
  60. package/esm2022/lib/dialog/dialog.module.mjs +0 -21
  61. package/esm2022/lib/dialog/dialog.service.mjs +0 -160
  62. package/esm2022/lib/drawer/content.component.mjs +0 -18
  63. package/esm2022/lib/drawer/drawer-container.component.mjs +0 -38
  64. package/esm2022/lib/drawer/drawer.component.mjs +0 -146
  65. package/esm2022/lib/drawer/drawer.module.mjs +0 -23
  66. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -186
  67. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -26
  68. package/esm2022/lib/fieldset/fieldset.component.mjs +0 -57
  69. package/esm2022/lib/fieldset/fieldset.module.mjs +0 -19
  70. package/esm2022/lib/form-group/form-group.component.mjs +0 -108
  71. package/esm2022/lib/form-group/form-group.module.mjs +0 -22
  72. package/esm2022/lib/form-group/form-lable.directive.mjs +0 -23
  73. package/esm2022/lib/label/label.component.mjs +0 -22
  74. package/esm2022/lib/label/label.module.mjs +0 -21
  75. package/esm2022/lib/loading/loading-indicator.component.mjs +0 -18
  76. package/esm2022/lib/loading/loading-panel.component.mjs +0 -45
  77. package/esm2022/lib/loading/loading.module.mjs +0 -21
  78. package/esm2022/lib/loading/loading.service.mjs +0 -47
  79. package/esm2022/lib/menu/menu-item.component.mjs +0 -50
  80. package/esm2022/lib/menu/menu.component.mjs +0 -114
  81. package/esm2022/lib/menu/menu.module.mjs +0 -22
  82. package/esm2022/lib/menu/menu2.component.mjs +0 -100
  83. package/esm2022/lib/number-box/number-box.component.mjs +0 -715
  84. package/esm2022/lib/number-box/number-box.module.mjs +0 -21
  85. package/esm2022/lib/page/content.component.mjs +0 -27
  86. package/esm2022/lib/page/footer.component.mjs +0 -19
  87. package/esm2022/lib/page/page.component.mjs +0 -57
  88. package/esm2022/lib/page/page.module.mjs +0 -22
  89. package/esm2022/lib/panel-box/panel-box.component.mjs +0 -87
  90. package/esm2022/lib/panel-box/panel-box.module.mjs +0 -19
  91. package/esm2022/lib/password-box/password-box.component.mjs +0 -36
  92. package/esm2022/lib/password-box/password-box.module.mjs +0 -23
  93. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +0 -50
  94. package/esm2022/lib/popover/overlay.service.mjs +0 -94
  95. package/esm2022/lib/popover/popover.component.mjs +0 -145
  96. package/esm2022/lib/popover/popover.module.mjs +0 -19
  97. package/esm2022/lib/popup/popup.component.mjs +0 -160
  98. package/esm2022/lib/popup/popup.module.mjs +0 -25
  99. package/esm2022/lib/popup/popup.service.mjs +0 -94
  100. package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -16
  101. package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
  102. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +0 -65
  103. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
  104. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +0 -41
  105. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
  106. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +0 -118
  107. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
  108. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -216
  109. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -76
  110. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +0 -87
  111. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
  112. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +0 -72
  113. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
  114. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +0 -145
  115. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +0 -59
  116. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -76
  117. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -75
  118. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
  119. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -73
  120. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
  121. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -30
  122. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
  123. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +0 -36
  124. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
  125. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -35
  126. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
  127. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +0 -55
  128. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
  129. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +0 -167
  130. package/esm2022/lib/property-editor/property-editor.class.mjs +0 -108
  131. package/esm2022/lib/property-editor/property-editor.module.mjs +0 -194
  132. package/esm2022/lib/query-builder/query-builder-group.component.mjs +0 -129
  133. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -177
  134. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +0 -428
  135. package/esm2022/lib/query-builder/query-builder.class.mjs +0 -42
  136. package/esm2022/lib/query-builder/query-builder.component.mjs +0 -92
  137. package/esm2022/lib/query-builder/query-builder.module.mjs +0 -62
  138. package/esm2022/lib/query-builder/query-builder.service.mjs +0 -199
  139. package/esm2022/lib/search-bar/search-bar.component.mjs +0 -293
  140. package/esm2022/lib/search-bar/search-bar.module.mjs +0 -61
  141. package/esm2022/lib/searchbox/searchbox.component.mjs +0 -138
  142. package/esm2022/lib/searchbox/searchbox.module.mjs +0 -24
  143. package/esm2022/lib/selectbox/selectbox.component.mjs +0 -1137
  144. package/esm2022/lib/selectbox/selectbox.module.mjs +0 -45
  145. package/esm2022/lib/selectbox/selectbox2.component.mjs +0 -617
  146. package/esm2022/lib/selection-list/selection-list.component.mjs +0 -120
  147. package/esm2022/lib/selection-list/selection-list.module.mjs +0 -21
  148. package/esm2022/lib/switch/switch.component.mjs +0 -55
  149. package/esm2022/lib/switch/switch.module.mjs +0 -20
  150. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +0 -75
  151. package/esm2022/lib/tab-page/tab-page-host.component.mjs +0 -124
  152. package/esm2022/lib/tab-page/tab-page.module.mjs +0 -21
  153. package/esm2022/lib/tab-page/tab-page.service.mjs +0 -159
  154. package/esm2022/lib/tab-strip/tab-strip.component.mjs +0 -48
  155. package/esm2022/lib/tab-strip/tab-strip.module.mjs +0 -19
  156. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +0 -25
  157. package/esm2022/lib/tab-view/tab-view.component.mjs +0 -110
  158. package/esm2022/lib/tab-view/tab-view.module.mjs +0 -21
  159. package/esm2022/lib/tab-view/tab.component.mjs +0 -33
  160. package/esm2022/lib/textarea/textarea.component.mjs +0 -44
  161. package/esm2022/lib/textarea/textarea.module.mjs +0 -21
  162. package/esm2022/lib/textbox/textbox.component.mjs +0 -46
  163. package/esm2022/lib/textbox/textbox.module.mjs +0 -36
  164. package/esm2022/lib/time-picker/time-picker.component.mjs +0 -1107
  165. package/esm2022/lib/time-picker/time-picker.module.mjs +0 -34
  166. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +0 -76
  167. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
  168. package/esm2022/lib/toast/toast.module.mjs +0 -21
  169. package/esm2022/lib/toast/toast.service.mjs +0 -45
  170. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -77
  171. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +0 -65
  172. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +0 -56
  173. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +0 -37
  174. package/esm2022/lib/toolbar/toolbar-item.mjs +0 -4
  175. package/esm2022/lib/toolbar/toolbar.component.mjs +0 -13
  176. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -40
  177. package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -115
  178. package/esm2022/lib/tooltip/tooltip.module.mjs +0 -19
  179. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +0 -697
  180. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +0 -33
  181. package/esm2022/lib/tree-view/tree-view.component.mjs +0 -854
  182. package/esm2022/lib/tree-view/tree-view.module.mjs +0 -22
  183. package/esm2022/lib/upload-file/upload-file.component.mjs +0 -299
  184. package/esm2022/lib/upload-file/upload-file.events.mjs +0 -2
  185. package/esm2022/lib/upload-file/upload-file.module.mjs +0 -24
  186. package/esm2022/lib/validation/validation-form.component.mjs +0 -68
  187. package/esm2022/lib/validation/validation-rule.widget.mjs +0 -133
  188. package/esm2022/lib/validation/validation.class.mjs +0 -2
  189. package/esm2022/lib/validation/validation.component.mjs +0 -89
  190. package/esm2022/lib/validation/validation.module.mjs +0 -34
@@ -1,92 +0,0 @@
1
- import { AXBaseComponent } from '../base/element.class';
2
- import { Component, Input, Output, EventEmitter, ElementRef, ViewEncapsulation, ViewChild } from '@angular/core';
3
- import { AXQueryBuilderGroup } from './query-builder.class';
4
- import { AXQueryBuilderGroupComponent } from './query-builder-group.component';
5
- import { AXToastService } from '../toast/toast.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../toast/toast.service";
8
- import * as i2 from "./query-builder-group.component";
9
- export class AXQueryBuilderComponent extends AXBaseComponent {
10
- ref;
11
- toast;
12
- queryGroup;
13
- query;
14
- mode = 'new';
15
- rootGroup = new AXQueryBuilderGroup();
16
- ngOnInit() {
17
- this.rootGroup.condition = this.query.condition ? this.query.condition : 'AND';
18
- this.rootGroup.items = this.query.items ? this.query.items : [];
19
- }
20
- constructor(ref, toast) {
21
- super();
22
- this.ref = ref;
23
- this.toast = toast;
24
- }
25
- _fields;
26
- get fields() {
27
- return this._fields;
28
- }
29
- set fields(v) {
30
- this._fields = v;
31
- }
32
- // @Input()
33
- // mode: 'immediate' | 'click' = 'click';
34
- onRuleChanged = new EventEmitter();
35
- saved = false;
36
- getQueryBuilder() {
37
- return { groups: this.rootGroup };
38
- }
39
- ruleChanged(e) {
40
- this.onRuleChanged.emit({ component: this, groups: this.rootGroup });
41
- }
42
- saveRule() {
43
- /// return this.queryGroup.saveRule();
44
- return new Promise((resolve, reject) => {
45
- this.saved = true;
46
- for (let i = 0; i < this.rootGroup.items.length; i++) {
47
- if (this.saved == true) {
48
- this.findNullValue(this.rootGroup.items[i]);
49
- }
50
- }
51
- if (this.saved == true) {
52
- resolve(this.rootGroup);
53
- }
54
- else {
55
- reject();
56
- }
57
- });
58
- }
59
- findNullValue(gr) {
60
- if (this.saved == true) {
61
- if (gr.condition) {
62
- for (let i = 0; i < gr.items.length; i++) {
63
- this.findNullValue(gr.items[i]);
64
- }
65
- }
66
- else {
67
- if (gr.onDemandLabel == '????|') {
68
- this.saved = false;
69
- this.toast.error('لطفا نام متغیر های مورد نیاز را کامل کنید');
70
- }
71
- }
72
- }
73
- }
74
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXQueryBuilderComponent, deps: [{ token: i0.ElementRef }, { token: i1.AXToastService }], target: i0.ɵɵFactoryTarget.Component });
75
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXQueryBuilderComponent, selector: "ax-query-builder", inputs: { query: "query", mode: "mode", fields: "fields" }, outputs: { onRuleChanged: "onRuleChanged" }, viewQueries: [{ propertyName: "queryGroup", first: true, predicate: ["queryGroup"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-query-group #queryGroup [mode]=\"mode\" [group]=\"rootGroup\" [fields]=\"fields\"\n (groupRuleChanged)=\"ruleChanged($event)\">\n</ax-query-group>", styles: [".ax-query-group{display:flex;flex-direction:column;margin:5px;padding-inline-start:0px}.ax-query-group .add-buttons{display:flex;margin:5px;flex-direction:row}.ax-query-group .add-buttons .handler{display:flex;align-items:center;background-color:var(--ax-primary-trans-light-color);color:var(--ax-primary-color);padding:5px;cursor:move;border:1px solid var(--ax-primary-trans-light-color);border-start-start-radius:4px;border-end-start-radius:4px}.ax-query-group .buttons-list{margin-inline-start:10px;display:flex;align-items:center}.ax-query-group .buttons-list .button{cursor:pointer;margin-inline-end:.5em;width:2.3em;height:2.3em;display:flex;align-items:center;justify-content:center;border-radius:50px;position:relative}.ax-query-group .buttons-list .button ax-check-box{opacity:0;width:100%;height:100%;position:absolute;z-index:1;left:0;top:0}.ax-query-group .buttons-list .variable{color:var(--ax-warning-color);background:var(--ax-warning-trans-light-color)}.ax-query-group .buttons-list .variable.active-button{background:var(--ax-warning-light-color);color:var(--ax-white-color);opacity:.7}.ax-query-group .buttons-list .commit{color:var(--ax-success-color);background:var(--ax-success-trans-light-color)}.ax-query-group .buttons-list .remove{color:var(--ax-danger-color);background:var(--ax-danger-trans-light-color)}.ax-query-group .buttons-list .edit{color:var(--ax-primary-color);background:var(--ax-primary-trans-light-color)}.ax-query-group .group-item{transition:all .5s}.ax-query-group .group-item .condition{width:40px;display:flex;align-items:center;background:linear-gradient(180deg,rgba(2,0,36,0) 49%,var(--ax-gray-light-color) 49%,var(--ax-gray-light-color) 55%,rgba(0,212,255,0) 50%)}.ax-query-group .group-item .condition .text{margin-inline-start:-50%;border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center}.ax-query-group .group-item .condition .text.OR{background:var(--ax-warning-color);color:var(--ax-warning-fore-color)}.ax-query-group .group-item .condition .text.AND{background:var(--ax-success-color);color:var(--ax-success-fore-color)}.ax-query-group .header{display:flex;flex-direction:row}.ax-query-group .header .handler{display:flex;align-items:center;background-color:var(--ax-light-light-color);color:var(--ax-light-fore-color);padding:5px;cursor:move;border:1px solid var(--ax-light-light-color);border-start-start-radius:4px;border-end-start-radius:4px}.ax-query-group .header .caption{padding:.5rem;background-color:var(--ax-gray-trans-light-color);color:var(--ax-gray-dark-color);font-weight:700;cursor:pointer}.ax-query-group .header .detail{padding:.5rem;background-color:var(--ax-gray-trans-light-color);border-right:none;border-start-end-radius:4px;border-end-end-radius:4px;cursor:pointer}.ax-query-group .header .detail.OR{background-color:var(--ax-warning-trans-light-color)}.ax-query-group .header .detail.AND{background-color:var(--ax-success-trans-light-color)}.ax-query-group .rules{margin-inline-start:10px;border-inline-start:2px solid var(--ax-gray-light-color)}.ax-query-group .rules .rules{margin-inline-start:48px}.ax-query-group .ax-query-rule{display:flex;margin:5px;flex-direction:row;transition:all .5s}.ax-query-group .ax-query-rule .handler{display:flex;align-items:center;background-color:var(--ax-light-light-color);color:var(--ax-light-fore-color);padding:.5em;cursor:move;border:1px solid var(--ax-light-light-color);border-start-start-radius:4px;border-end-start-radius:4px}.ax-query-group .ax-query-rule .caption{padding:.5rem;background-color:var(--ax-gray-trans-light-color);border:1px solid var(--ax-gray-light-color);color:#333;font-weight:700;cursor:pointer}.ax-query-group .ax-query-rule .caption.editable{width:200px}.ax-query-group .ax-query-rule .operator{border-top:1px solid var(--ax-gray-light-color);border-bottom:1px solid var(--ax-gray-light-color);background-color:var(--ax-gray-trans-light-color);padding:.5rem}.ax-query-group .ax-query-rule .operator.editable{width:200px}.ax-query-group .ax-query-rule .operator .text{color:var(--ax-primary-color);font-weight:700;text-decoration:underline dashed;cursor:pointer}.ax-query-group .ax-query-rule .operator.radius{border-top-left-radius:4px;border-bottom-left-radius:4px;border:1px solid var(--ax-gray-light-color);border-right:none}.ax-query-group .ax-query-rule .value{padding:.5rem;background-color:var(--ax-light-light-color);color:#000;border:1px solid var(--ax-gray-light-color);border-right:none;border-start-end-radius:4px;border-end-end-radius:4px;cursor:pointer}.ax-query-group .ax-query-rule .value.editable{width:200px}.ax-query-group .ax-query-rule .add-rule{border-top:1px dashed var(--ax-gray-light-color);border-bottom:1px dashed var(--ax-gray-light-color);color:var(--ax-gray-dark-color);padding:.5rem;font-weight:700;cursor:pointer}.ax-query-group .ax-query-rule .add-rule:hover,.ax-query-group .ax-query-rule .add-group:hover{background-color:var(--ax-gray-light-color)}.ax-query-group .ax-query-rule .add-group,.ax-query-group .ax-query-rule .add-condition{border-top:1px dashed var(--ax-gray-light-color);border-bottom:1px dashed var(--ax-gray-light-color);color:var(--ax-gray-dark-color);padding:.5rem;border:1px dashed var(--ax-gray-light-color);border-top-left-radius:4px;border-bottom-left-radius:4px;cursor:pointer}.ax-query-group .ax-query-rule .add-condition.OR{background-color:var(--ax-warning-trans-light-color);color:var(--ax-warning-dark-color)}.ax-query-group .ax-query-rule .add-condition.AND{background-color:var(--ax-success-trans-light-color);color:var(--ax-success-dark-color)}.ax-query-group .ax-query-rule .add-condition:hover.OR{background-color:var(--ax-warning-trans-light-color);color:var(--ax-warning-dark-color)}.ax-query-group .ax-query-rule .add-condition:hover.AND{background-color:var(--ax-success-trans-light-color);color:var(--ax-success-dark-color)}\n"], dependencies: [{ kind: "component", type: i2.AXQueryBuilderGroupComponent, selector: "ax-query-group", inputs: ["group", "parent", "fields", "mode"], outputs: ["groupRuleChanged"] }], encapsulation: i0.ViewEncapsulation.None });
76
- }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXQueryBuilderComponent, decorators: [{
78
- type: Component,
79
- args: [{ selector: 'ax-query-builder', encapsulation: ViewEncapsulation.None, template: "<ax-query-group #queryGroup [mode]=\"mode\" [group]=\"rootGroup\" [fields]=\"fields\"\n (groupRuleChanged)=\"ruleChanged($event)\">\n</ax-query-group>", styles: [".ax-query-group{display:flex;flex-direction:column;margin:5px;padding-inline-start:0px}.ax-query-group .add-buttons{display:flex;margin:5px;flex-direction:row}.ax-query-group .add-buttons .handler{display:flex;align-items:center;background-color:var(--ax-primary-trans-light-color);color:var(--ax-primary-color);padding:5px;cursor:move;border:1px solid var(--ax-primary-trans-light-color);border-start-start-radius:4px;border-end-start-radius:4px}.ax-query-group .buttons-list{margin-inline-start:10px;display:flex;align-items:center}.ax-query-group .buttons-list .button{cursor:pointer;margin-inline-end:.5em;width:2.3em;height:2.3em;display:flex;align-items:center;justify-content:center;border-radius:50px;position:relative}.ax-query-group .buttons-list .button ax-check-box{opacity:0;width:100%;height:100%;position:absolute;z-index:1;left:0;top:0}.ax-query-group .buttons-list .variable{color:var(--ax-warning-color);background:var(--ax-warning-trans-light-color)}.ax-query-group .buttons-list .variable.active-button{background:var(--ax-warning-light-color);color:var(--ax-white-color);opacity:.7}.ax-query-group .buttons-list .commit{color:var(--ax-success-color);background:var(--ax-success-trans-light-color)}.ax-query-group .buttons-list .remove{color:var(--ax-danger-color);background:var(--ax-danger-trans-light-color)}.ax-query-group .buttons-list .edit{color:var(--ax-primary-color);background:var(--ax-primary-trans-light-color)}.ax-query-group .group-item{transition:all .5s}.ax-query-group .group-item .condition{width:40px;display:flex;align-items:center;background:linear-gradient(180deg,rgba(2,0,36,0) 49%,var(--ax-gray-light-color) 49%,var(--ax-gray-light-color) 55%,rgba(0,212,255,0) 50%)}.ax-query-group .group-item .condition .text{margin-inline-start:-50%;border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center}.ax-query-group .group-item .condition .text.OR{background:var(--ax-warning-color);color:var(--ax-warning-fore-color)}.ax-query-group .group-item .condition .text.AND{background:var(--ax-success-color);color:var(--ax-success-fore-color)}.ax-query-group .header{display:flex;flex-direction:row}.ax-query-group .header .handler{display:flex;align-items:center;background-color:var(--ax-light-light-color);color:var(--ax-light-fore-color);padding:5px;cursor:move;border:1px solid var(--ax-light-light-color);border-start-start-radius:4px;border-end-start-radius:4px}.ax-query-group .header .caption{padding:.5rem;background-color:var(--ax-gray-trans-light-color);color:var(--ax-gray-dark-color);font-weight:700;cursor:pointer}.ax-query-group .header .detail{padding:.5rem;background-color:var(--ax-gray-trans-light-color);border-right:none;border-start-end-radius:4px;border-end-end-radius:4px;cursor:pointer}.ax-query-group .header .detail.OR{background-color:var(--ax-warning-trans-light-color)}.ax-query-group .header .detail.AND{background-color:var(--ax-success-trans-light-color)}.ax-query-group .rules{margin-inline-start:10px;border-inline-start:2px solid var(--ax-gray-light-color)}.ax-query-group .rules .rules{margin-inline-start:48px}.ax-query-group .ax-query-rule{display:flex;margin:5px;flex-direction:row;transition:all .5s}.ax-query-group .ax-query-rule .handler{display:flex;align-items:center;background-color:var(--ax-light-light-color);color:var(--ax-light-fore-color);padding:.5em;cursor:move;border:1px solid var(--ax-light-light-color);border-start-start-radius:4px;border-end-start-radius:4px}.ax-query-group .ax-query-rule .caption{padding:.5rem;background-color:var(--ax-gray-trans-light-color);border:1px solid var(--ax-gray-light-color);color:#333;font-weight:700;cursor:pointer}.ax-query-group .ax-query-rule .caption.editable{width:200px}.ax-query-group .ax-query-rule .operator{border-top:1px solid var(--ax-gray-light-color);border-bottom:1px solid var(--ax-gray-light-color);background-color:var(--ax-gray-trans-light-color);padding:.5rem}.ax-query-group .ax-query-rule .operator.editable{width:200px}.ax-query-group .ax-query-rule .operator .text{color:var(--ax-primary-color);font-weight:700;text-decoration:underline dashed;cursor:pointer}.ax-query-group .ax-query-rule .operator.radius{border-top-left-radius:4px;border-bottom-left-radius:4px;border:1px solid var(--ax-gray-light-color);border-right:none}.ax-query-group .ax-query-rule .value{padding:.5rem;background-color:var(--ax-light-light-color);color:#000;border:1px solid var(--ax-gray-light-color);border-right:none;border-start-end-radius:4px;border-end-end-radius:4px;cursor:pointer}.ax-query-group .ax-query-rule .value.editable{width:200px}.ax-query-group .ax-query-rule .add-rule{border-top:1px dashed var(--ax-gray-light-color);border-bottom:1px dashed var(--ax-gray-light-color);color:var(--ax-gray-dark-color);padding:.5rem;font-weight:700;cursor:pointer}.ax-query-group .ax-query-rule .add-rule:hover,.ax-query-group .ax-query-rule .add-group:hover{background-color:var(--ax-gray-light-color)}.ax-query-group .ax-query-rule .add-group,.ax-query-group .ax-query-rule .add-condition{border-top:1px dashed var(--ax-gray-light-color);border-bottom:1px dashed var(--ax-gray-light-color);color:var(--ax-gray-dark-color);padding:.5rem;border:1px dashed var(--ax-gray-light-color);border-top-left-radius:4px;border-bottom-left-radius:4px;cursor:pointer}.ax-query-group .ax-query-rule .add-condition.OR{background-color:var(--ax-warning-trans-light-color);color:var(--ax-warning-dark-color)}.ax-query-group .ax-query-rule .add-condition.AND{background-color:var(--ax-success-trans-light-color);color:var(--ax-success-dark-color)}.ax-query-group .ax-query-rule .add-condition:hover.OR{background-color:var(--ax-warning-trans-light-color);color:var(--ax-warning-dark-color)}.ax-query-group .ax-query-rule .add-condition:hover.AND{background-color:var(--ax-success-trans-light-color);color:var(--ax-success-dark-color)}\n"] }]
80
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.AXToastService }], propDecorators: { queryGroup: [{
81
- type: ViewChild,
82
- args: ['queryGroup']
83
- }], query: [{
84
- type: Input
85
- }], mode: [{
86
- type: Input
87
- }], fields: [{
88
- type: Input
89
- }], onRuleChanged: [{
90
- type: Output
91
- }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakgsT0FBTyxFQUFFLG1CQUFtQixFQUFxRCxNQUFNLHVCQUF1QixDQUFDO0FBQy9HLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVF4RCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZUFBZTtJQWdCdEM7SUFBeUI7SUFmcEIsVUFBVSxDQUErQjtJQUdsRSxLQUFLLENBQXNCO0lBRzNCLElBQUksR0FBbUIsS0FBSyxDQUFDO0lBRTdCLFNBQVMsR0FBd0IsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBRTNELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMvRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FB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STtzQkFESCxLQUFLO2dCQWdCSyxNQUFNO3NCQURoQixLQUFLO2dCQVlOLGFBQWE7c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yLCBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYUXVlcnlCdWlsZGVyR3JvdXAsIEFYUXVlcnlCdWlsZGVyR3JvdXBFdmVudCwgQVhRdWVyeUJ1aWxkZXJHcm91cEl0ZW0gfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXIuY2xhc3MnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtcXVlcnktYnVpbGRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlcnktYnVpbGRlci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgncXVlcnlHcm91cCcpIHF1ZXJ5R3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXBDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgcXVlcnk6IEFYUXVlcnlCdWlsZGVyR3JvdXA7XG5cbiAgQElucHV0KClcbiAgbW9kZTogJ25ldycgfCAnZWRpdCcgPSAnbmV3JztcblxuICByb290R3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXAgPSBuZXcgQVhRdWVyeUJ1aWxkZXJHcm91cCgpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucm9vdEdyb3VwLmNvbmRpdGlvbiA9IHRoaXMucXVlcnkuY29uZGl0aW9uID8gdGhpcy5xdWVyeS5jb25kaXRpb24gOiAnQU5EJztcbiAgICB0aGlzLnJvb3RHcm91cC5pdGVtcyA9IHRoaXMucXVlcnkuaXRlbXMgPyB0aGlzLnF1ZXJ5Lml0ZW1zIDogW107XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSB0b2FzdDogQVhUb2FzdFNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmllbGRzIDogYW55W107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZmllbGRzKCkgOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkcztcbiAgfVxuICBwdWJsaWMgc2V0IGZpZWxkcyh2IDogYW55W10pIHtcbiAgICB0aGlzLl9maWVsZHMgPSB2O1xuICB9XG5cbiAgLy8gQElucHV0KClcbiAgLy8gbW9kZTogJ2ltbWVkaWF0ZScgfCAnY2xpY2snID0gJ2NsaWNrJztcblxuICBAT3V0cHV0KClcbiAgb25SdWxlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyR3JvdXBFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyR3JvdXBFdmVudD4oKTtcblxuICBzYXZlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXRRdWVyeUJ1aWxkZXIoKSB7XG4gICAgcmV0dXJuIHsgZ3JvdXBzOiB0aGlzLnJvb3RHcm91cCB9O1xuICB9XG5cbiAgcnVsZUNoYW5nZWQoZSkge1xuICAgIHRoaXMub25SdWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBncm91cHM6IHRoaXMucm9vdEdyb3VwIH0pO1xuICB9XG5cbiAgcHVibGljIHNhdmVSdWxlKCkge1xuICAgIC8vLyByZXR1cm4gdGhpcy5xdWVyeUdyb3VwLnNhdmVSdWxlKCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuc2F2ZWQgPSB0cnVlO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvb3RHcm91cC5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAodGhpcy5zYXZlZCA9PSB0cnVlKSB7XG4gICAgICAgICAgdGhpcy5maW5kTnVsbFZhbHVlKHRoaXMucm9vdEdyb3VwLml0ZW1zW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2F2ZWQgPT0gdHJ1ZSkge1xuICAgICAgICByZXNvbHZlKHRoaXMucm9vdEdyb3VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZmluZE51bGxWYWx1ZShncikge1xuICAgIGlmICh0aGlzLnNhdmVkID09IHRydWUpIHtcbiAgICAgIGlmIChnci5jb25kaXRpb24pIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMuZmluZE51bGxWYWx1ZShnci5pdGVtc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChnci5vbkRlbWFuZExhYmVsID09ICc/Pz8/fCcpIHtcbiAgICAgICAgICB0aGlzLnNhdmVkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdC5lcnJvcign2YTYt9mB2Kcg2YbYp9mFINmF2KrYutuM2LEg2YfYp9uMINmF2YjYsdivINmG24zYp9iyINix2Kcg2qnYp9mF2YQg2qnZhtuM2K8nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHNlbGVjdGlvbkZpZWxkc0NoYW5nZWQoZSwgcnVsZXM6IEFYUXVlcnlCdWlsZGVyUnVsZSkge1xuICAvL1xuICAvLyAgICAgcnVsZXMuZGF0YUZpZWxkID0gZS5zZWxlY3RlZEl0ZW1zWzBdLmRhdGFGaWVsZDtcbiAgLy8gICAgIHJ1bGVzLmNhcHRpb24gPSBlLnNlbGVjdGVkSXRlbXNbMF0uY2FwdGlvbjtcbiAgLy8gICAgIHJ1bGVzLmRhdGFUeXBlID0gZS5zZWxlY3RlZEl0ZW1zWzBdLmRhdGFUeXBlO1xuXG4gIC8vICAgICAvLyBUTyBETyBjaGFjayBkYXRhVHlwZSBGb3IgRGVmIG9wZXJhdG9yIGFuZCBWYWx1ZVxuICAvLyAgICAgaWYgKHJ1bGVzLmRhdGFUeXBlID09ICdzdHJpbmcnKSB7XG4gIC8vICAgICAgICAgcnVsZXMub3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9yU3RyaW5nSXRlbVswXS5pZDtcbiAgLy8gICAgICAgICBydWxlcy52YWx1ZSA9ICdudWxsJztcbiAgLy8gICAgIH1cbiAgLy8gICAgIGlmIChydWxlcy5kYXRhVHlwZSA9PSAnbnVtYmVyJykge1xuICAvLyAgICAgICAgIHJ1bGVzLm9wZXJhdG9yID0gdGhpcy5vcGVyYXRvck51bWJlckl0ZW1bMF0uaWQ7XG4gIC8vICAgICAgICAgcnVsZXMudmFsdWUgPSAnMCc7XG4gIC8vICAgICB9XG5cbiAgLy8gICAgIHRoaXMub25SdWxlQ2hhbmdlZC5lbWl0KHsgZ3JvdXBzOiB0aGlzLnJvb3RHcm91cCwgcXVlcnlTdHJpbmc6IHRoaXMuZ2V0UXVlcnlEaXNwbGF5KCksIGNvbXBvbmVudDogdGhpcywgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQgfSlcbiAgLy8gfVxuXG4gIC8vIHNlbGVjdGlvbk9wYXJhdG9yQ2hhbmdlZChlLCBydWxlczogQVhRdWVyeUJ1aWxkZXJSdWxlKSB7XG4gIC8vICAgICBydWxlcy5vcGVyYXRvciA9IGUuc2VsZWN0ZWRJdGVtc1swXS5pZDtcbiAgLy8gfVxuXG4gIC8vIHByb3ZpZGVEYXRhRmllbGRzID0gKGUpID0+IHtcbiAgLy8gICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAvLyAgICAgICAgIHJlc29sdmUodGhpcy5maWVsZHMpO1xuICAvLyAgICAgfSk7XG4gIC8vIH1cblxuICAvLyBwcm92aWRlRGF0YU9wZXJhdG9yU3RyaW5nID0gKGUpID0+IHtcbiAgLy8gICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAvLyAgICAgICAgIHJlc29sdmUodGhpcy5vcGVyYXRvclN0cmluZ0l0ZW0pO1xuICAvLyAgICAgfSk7XG4gIC8vIH1cbiAgLy8gcHJvdmlkZURhdGFPcGVyYXRvck51bWJlciA9IChlKSA9PiB7XG4gIC8vICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgLy8gICAgICAgICByZXNvbHZlKHRoaXMub3BlcmF0b3JOdW1iZXJJdGVtKTtcbiAgLy8gICAgIH0pO1xuICAvLyB9XG5cbiAgLy8gcHJpdmF0ZSBnZXRRdWVyeURpc3BsYXkoZ3IgPSB0aGlzLmxpc3QsIF9jb25kaXRpb24gPSB0aGlzLmxpc3RbMF0uY29uZGl0aW9uKSB7XG4gIC8vICAgICB2YXIgY2FwOiBzdHJpbmcgPSAnKCc7XG5cbiAgLy8gICAgIGZvciAobGV0IGogPSAwOyBqIDwgZ3IubGVuZ3RoOyBqKyspIHtcbiAgLy8gICAgICAgICBpZiAoaiA+IDApIHtcbiAgLy8gICAgICAgICAgICAgY2FwID0gY2FwICsgX2NvbmRpdGlvbjtcbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgICAgY2FwID0gY2FwICsgXCIgKCBcIjtcbiAgLy8gICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyW2pdLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gIC8vICAgICAgICAgICAgIGlmIChncltqXS5pdGVtc1tpXS52YWx1ZSAmJiBncltqXS5pdGVtc1tpXS5vcGVyYXRvciAmJiBncltqXS5pdGVtc1tpXS5jYXB0aW9uIHx8ICgoZ3Jbal0uaXRlbXNbaV0ub3BlcmF0b3IgPT0gXCJpcy1lbXB0eVwiIHx8IGdyW2pdLml0ZW1zW2ldLm9wZXJhdG9yID09IFwiaXMtbm90LWVtcHR5XCIpICYmIGdyW2pdLml0ZW1zW2ldLmNhcHRpb24pKSB7XG4gIC8vICAgICAgICAgICAgICAgICB2YXIgb3ByOiBzdHJpbmc7XG4gIC8vICAgICAgICAgICAgICAgICBpZiAoZ3Jbal0uaXRlbXNbaV0uZGF0YVR5cGUgPT0gXCJudW1iZXJcIiB8fCBncltqXS5pdGVtc1tpXS5kYXRhVHlwZSA9PSBcImRhdGVcIiB8fCBncltqXS5pdGVtc1tpXS5kYXRhVHlwZSA9PSBcImRhdGVUaW1lXCIpIHtcbiAgLy8gICAgICAgICAgICAgICAgICAgICBsZXQgZCA9IHRoaXMub3BlcmF0b3JOdW1iZXJJdGVtLmZpbHRlcihjID0+IGMuaWQgPT0gZ3Jbal0uaXRlbXNbaV0ub3BlcmF0b3IpO1xuICAvLyAgICAgICAgICAgICAgICAgICAgIG9wciA9IGRbMF0udGV4dDtcbiAgLy8gICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgICAgICAgICAgICAgbGV0IGQgPSB0aGlzLm9wZXJhdG9yU3RyaW5nSXRlbS5maWx0ZXIoYyA9PiBjLmlkID09IGdyW2pdLml0ZW1zW2ldLm9wZXJhdG9yKTtcbiAgLy8gICAgICAgICAgICAgICAgICAgICBvcHIgPSBkWzBdLnRleHQ7XG4gIC8vICAgICAgICAgICAgICAgICB9XG4gIC8vICAgICAgICAgICAgICAgICBpZiAoKGdyW2pdLml0ZW1zW2ldLm9wZXJhdG9yID09IFwiaXMtZW1wdHlcIiB8fCBncltqXS5pdGVtc1tpXS5vcGVyYXRvciA9PSBcImlzLW5vdC1lbXB0eVwiKSkge1xuXG4gIC8vICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IGdyW2pdLml0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgY2FwID0gY2FwICsgXCIgXCIgKyBcIltcIiArIGdyW2pdLml0ZW1zW2ldLmNhcHRpb24gKyBcIl1cIjtcbiAgLy8gICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBjYXAgPSBjYXAgKyBcIiBcIiArIFwiW1wiICsgZ3Jbal0uaXRlbXNbaV0uY2FwdGlvbiArIFwiXVwiICsgXCIgXCIgKyBvcHIgKyBcIiBcIiArIGdyW2pdLmNvbmRpdGlvbjtcbiAgLy8gICAgICAgICAgICAgICAgICAgICB9XG4gIC8vICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgICAgICAgICAgICAgIHZhciB2YWw6IHN0cmluZztcblxuICAvLyAgICAgICAgICAgICAgICAgICAgIGlmIChncltqXS5pdGVtc1tpXS5kYXRhVHlwZSA9PSAnZGF0ZScpIHtcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsID0gbW9tZW50KGl0ZW0udmFsdWUpLmxvY2FsZSgnZmEnKS5mb3JtYXQoJ1lZWVkvTU0vREQnKTtcbiAgLy8gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGdyW2pdLml0ZW1zW2ldLmRhdGFUeXBlID09ICdkYXRlVGltZScpIHtcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsID0gbW9tZW50KGl0ZW0udmFsdWUpLmxvY2FsZSgnZmEnKS5mb3JtYXQoJ0hIOm1tIFlZWVkvTU0vREQnKTtcbiAgLy8gICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBncltqXS5pdGVtc1tpXS52YWx1ZTtcbiAgLy8gICAgICAgICAgICAgICAgICAgICB9XG4gIC8vICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IGdyW2pdLml0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgY2FwID0gY2FwICsgXCIgXCIgKyBcIltcIiArIGdyW2pdLml0ZW1zW2ldLmNhcHRpb24gKyBcIl1cIiArIFwiIFwiICsgb3ByICsgXCIgXCIgKyB2YWxcbiAgLy8gICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBjYXAgPSBjYXAgKyBcIiBcIiArIFwiW1wiICsgZ3Jbal0uaXRlbXNbaV0uY2FwdGlvbiArIFwiXVwiICsgXCIgXCIgKyBvcHIgKyBcIiBcIiArIHZhbCArIFwiIFwiICsgZ3Jbal0uY29uZGl0aW9uXG4gIC8vICAgICAgICAgICAgICAgICAgICAgfVxuXG4gIC8vICAgICAgICAgICAgICAgICB9XG4gIC8vICAgICAgICAgICAgIH1cbiAgLy8gICAgICAgICB9XG5cbiAgLy8gICAgICAgICBpZiAoZ3Jbal0uZ3JvdXBzICYmIGdyW2pdLmdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gIC8vICAgICAgICAgICAgIGxldCBjID0gdGhpcy5nZXRRdWVyeURpc3BsYXkoZ3Jbal0uZ3JvdXBzLCBncltqXS5jb25kaXRpb24pO1xuICAvLyAgICAgICAgICAgICBpZiAoYyAhPSBcIiggKSBcIikge1xuICAvLyAgICAgICAgICAgICAgICAgaWYgKGdyW2pdLml0ZW1zLmxlbmd0aCA+IDAgfHwgaiA+IDApIHtcbiAgLy8gICAgICAgICAgICAgICAgICAgICBjYXAgPSBjYXAgKyBcIiBcIiArIGdyW2pdLmNvbmRpdGlvbiArIFwiIFwiICsgYyArIFwiIFwiO1xuICAvLyAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgLy8gICAgICAgICAgICAgICAgICAgICBjYXAgPSBjYXAgKyBcIiBcIiArIGMgKyBcIiBcIjtcbiAgLy8gICAgICAgICAgICAgICAgIH1cblxuICAvLyAgICAgICAgICAgICB9XG4gIC8vICAgICAgICAgfVxuXG4gIC8vICAgICAgICAgY2FwID0gY2FwICsgXCIgKSBcIjtcbiAgLy8gICAgIH07XG5cbiAgLy8gICAgIGNhcCA9IGNhcCArIFwiICkgXCI7XG4gIC8vICAgICByZXR1cm4gY2FwO1xuICAvLyB9XG5cbiAgLy8gZGVsZXRlR3JvdXAoZ3JvdXBPdXQ6IEFYUXVlcnlCdWlsZGVyR3JvdXAsIGdyb3VwSW46IEFYUXVlcnlCdWlsZGVyR3JvdXApIHtcbiAgLy8gICAgIGdyb3VwT3V0Lml0ZW1zID0gZ3JvdXBPdXQuaXRlbXMuZmlsdGVyKGMgPT4gYy5pZCAhPSBncm91cEluLmlkKTtcbiAgLy8gfVxuXG4gIC8vIGRlbGV0ZVJ1bGUxKGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwLCBydWxlOiBBWFF1ZXJ5QnVpbGRlclJ1bGUpIHtcbiAgLy8gICAgIGdyb3VwLml0ZW1zID0gZ3JvdXAuaXRlbXMuZmlsdGVyKGMgPT4gYy5pZCAhPSBydWxlLmlkKTtcbiAgLy8gfVxuXG4gIC8vIGFkZFJ1bGUoZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXApIHtcbiAgLy8gICAgIGNvbnN0IGl0ZW06IEFYUXVlcnlCdWlsZGVyUnVsZSA9IG5ldyBBWFF1ZXJ5QnVpbGRlclJ1bGUoKTtcbiAgLy8gICAgIGdyb3VwLml0ZW1zLnB1c2goaXRlbSk7XG4gIC8vIH1cblxuICAvLyBhZGRHcm91cEFORChncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xuICAvLyAgICAgdGhpcy5hZGRHcm91cE9uQ2xpY2soZ3JvdXApO1xuICAvLyAgICAgZ3JvdXAuY29uZGl0aW9uID0gXCJBTkRcIjtcbiAgLy8gfVxuICAvLyBhZGRHcm91cE9SKGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XG4gIC8vICAgICB0aGlzLmFkZEdyb3VwT25DbGljayhncm91cCk7XG4gIC8vICAgICBncm91cC5jb25kaXRpb24gPSBcIk9SXCI7XG4gIC8vIH1cblxuICAvLyBhZGRHcm91cE9uQ2xpY2soZ3JvdXBzOiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XG4gIC8vICAgICBsZXQgcjogQVhRdWVyeUJ1aWxkZXJHcm91cCA9IG5ldyBBWFF1ZXJ5QnVpbGRlckdyb3VwKCk7XG4gIC8vICAgICByLmNvbmRpdGlvbiA9IFwiXCI7XG4gIC8vICAgICByLml0ZW1zID0gW107XG4gIC8vICAgICBpZiAoZ3JvdXBzLml0ZW1zID09IHVuZGVmaW5lZCkge1xuICAvLyAgICAgICAgIGdyb3Vwcy5pdGVtcyA9IFtdO1xuICAvLyAgICAgfVxuICAvLyAgICAgZ3JvdXBzLml0ZW1zLnB1c2gocik7XG4gIC8vIH1cbn1cbiIsIjxheC1xdWVyeS1ncm91cCAjcXVlcnlHcm91cCBbbW9kZV09XCJtb2RlXCIgW2dyb3VwXT1cInJvb3RHcm91cFwiIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAoZ3JvdXBSdWxlQ2hhbmdlZCk9XCJydWxlQ2hhbmdlZCgkZXZlbnQpXCI+XG48L2F4LXF1ZXJ5LWdyb3VwPiJdfQ==
@@ -1,62 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { AXQueryBuilderComponent } from './query-builder.component';
3
- import { AXButtonModule } from '../button/button.module';
4
- import { CommonModule } from '@angular/common';
5
- import { AXPanelBoxModule } from '../panel-box/panel-box.module';
6
- import { AXSelectBoxModule } from '../selectbox/selectbox.module';
7
- import { AXTextBoxModule } from '../textbox/textbox.module';
8
- import { AXQueryBuilderRuleComponent } from './query-builder-rule.component';
9
- import { AXQueryBuilderGroupComponent } from './query-builder-group.component';
10
- import { AXTranslatorModule } from '@acorex/core';
11
- import { AXNumberBoxModule } from '../number-box/number-box.module';
12
- import { AXDataSourceModule } from '../data-source/datasource.module';
13
- import { AXFormGroupModule } from '../form-group/form-group.module';
14
- import { AXQueryBuilderPopupComponent } from './query-builder-popup/query-builder-popup.component';
15
- import { AXLabelModule } from '../label/label.module';
16
- import { AXCheckBoxModule } from '../checkbox/checkbox.module';
17
- import { AXValidationModule } from '../validation/validation.module';
18
- import { AXQueryBuilderService } from './query-builder.service';
19
- import { AXDatePickerModule } from '../date-picker/date-picker.module';
20
- import * as i0 from "@angular/core";
21
- const MODUELS = [
22
- CommonModule,
23
- AXButtonModule,
24
- AXPanelBoxModule,
25
- AXSelectBoxModule,
26
- AXDataSourceModule,
27
- AXTextBoxModule,
28
- AXNumberBoxModule,
29
- AXFormGroupModule,
30
- AXTranslatorModule,
31
- AXLabelModule,
32
- AXCheckBoxModule,
33
- AXValidationModule,
34
- AXDatePickerModule
35
- ];
36
- export class AXQueryBuilderModule {
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXQueryBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
38
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.7", ngImport: i0, type: AXQueryBuilderModule, declarations: [AXQueryBuilderComponent, AXQueryBuilderGroupComponent, AXQueryBuilderRuleComponent, AXQueryBuilderPopupComponent], imports: [CommonModule,
39
- AXButtonModule,
40
- AXPanelBoxModule,
41
- AXSelectBoxModule,
42
- AXDataSourceModule,
43
- AXTextBoxModule,
44
- AXNumberBoxModule,
45
- AXFormGroupModule,
46
- AXTranslatorModule,
47
- AXLabelModule,
48
- AXCheckBoxModule,
49
- AXValidationModule,
50
- AXDatePickerModule], exports: [AXQueryBuilderComponent] });
51
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXQueryBuilderModule, providers: [AXQueryBuilderService], imports: [MODUELS] });
52
- }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXQueryBuilderModule, decorators: [{
54
- type: NgModule,
55
- args: [{
56
- declarations: [AXQueryBuilderComponent, AXQueryBuilderGroupComponent, AXQueryBuilderRuleComponent, AXQueryBuilderPopupComponent],
57
- imports: [MODUELS],
58
- exports: [AXQueryBuilderComponent],
59
- providers: [AXQueryBuilderService]
60
- }]
61
- }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFFdkUsTUFBTSxPQUFPLEdBQUc7SUFDWixZQUFZO0lBQ1osY0FBYztJQUNkLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixrQkFBa0I7Q0FDckIsQ0FBQTtBQVNELE1BQU0sT0FBTyxvQkFBb0I7dUdBQXBCLG9CQUFvQjt3R0FBcEIsb0JBQW9CLGlCQU5kLHVCQUF1QixFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLDRCQUE0QixhQWhCL0gsWUFBWTtZQUNaLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsa0JBQWtCLGFBTVIsdUJBQXVCO3dHQUl4QixvQkFBb0IsYUFIbEIsQ0FBQyxxQkFBcUIsQ0FBQyxZQUZ4QixPQUFPOzsyRkFLUixvQkFBb0I7a0JBUGhDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsNEJBQTRCLEVBQUUsMkJBQTJCLEVBQUUsNEJBQTRCLENBQUM7b0JBQ2hJLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ2xDLFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhQYW5lbEJveE1vZHVsZSB9IGZyb20gJy4uL3BhbmVsLWJveC9wYW5lbC1ib3gubW9kdWxlJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnLi4vc2VsZWN0Ym94L3NlbGVjdGJveC5tb2R1bGUnO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnLi4vdGV4dGJveC90ZXh0Ym94Lm1vZHVsZSc7XG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlclJ1bGVDb21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXItcnVsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYTnVtYmVyQm94TW9kdWxlIH0gZnJvbSAnLi4vbnVtYmVyLWJveC9udW1iZXItYm94Lm1vZHVsZSc7XG5pbXBvcnQgeyBBWERhdGFTb3VyY2VNb2R1bGUgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS9kYXRhc291cmNlLm1vZHVsZSc7XG5pbXBvcnQgeyBBWEZvcm1Hcm91cE1vZHVsZSB9IGZyb20gJy4uL2Zvcm0tZ3JvdXAvZm9ybS1ncm91cC5tb2R1bGUnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJQb3B1cENvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1wb3B1cC9xdWVyeS1idWlsZGVyLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnLi4vbGFiZWwvbGFiZWwubW9kdWxlJztcbmltcG9ydCB7IEFYQ2hlY2tCb3hNb2R1bGUgfSBmcm9tICcuLi9jaGVja2JveC9jaGVja2JveC5tb2R1bGUnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWERhdGVQaWNrZXJNb2R1bGUgfSBmcm9tICcuLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5tb2R1bGUnO1xuXG5jb25zdCBNT0RVRUxTID0gW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFBhbmVsQm94TW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYRGF0YVNvdXJjZU1vZHVsZSxcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgQVhOdW1iZXJCb3hNb2R1bGUsXG4gICAgQVhGb3JtR3JvdXBNb2R1bGUsXG4gICAgQVhUcmFuc2xhdG9yTW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhDaGVja0JveE1vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhEYXRlUGlja2VyTW9kdWxlXG5dXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbQVhRdWVyeUJ1aWxkZXJDb21wb25lbnQsIEFYUXVlcnlCdWlsZGVyR3JvdXBDb21wb25lbnQsIEFYUXVlcnlCdWlsZGVyUnVsZUNvbXBvbmVudCwgQVhRdWVyeUJ1aWxkZXJQb3B1cENvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW01PRFVFTFNdLFxuICAgIGV4cG9ydHM6IFtBWFF1ZXJ5QnVpbGRlckNvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbQVhRdWVyeUJ1aWxkZXJTZXJ2aWNlXVxufSlcblxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyTW9kdWxlIHsgfSJdfQ==
@@ -1,199 +0,0 @@
1
- import { AXQueryBuilderGroup } from './query-builder.class';
2
- import { Injectable } from '@angular/core';
3
- import { AXPopupService } from '../popup/popup.service';
4
- import { AXQueryBuilderPopupComponent } from './query-builder-popup/query-builder-popup.component';
5
- import { AXToastService } from '../toast/toast.service';
6
- import { AXDateTime } from '@acorex/core';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../popup/popup.service";
9
- import * as i2 from "../toast/toast.service";
10
- export class AXQueryBuilderService {
11
- popup;
12
- toast;
13
- constructor(popup, toast) {
14
- this.popup = popup;
15
- this.toast = toast;
16
- }
17
- canOpen = false;
18
- canRun = false;
19
- runQuery(group, provideData) {
20
- return new Promise((resolve) => {
21
- this.canOpen = false;
22
- for (let i = 0; i < group.items.length; i++) {
23
- this.getNoValueRule(group.items[i]);
24
- }
25
- if (this.canOpen) {
26
- this.canRun = true;
27
- for (let i = 0; i < group.items.length; i++) {
28
- if (this.canRun == true) {
29
- this.findNullValue(group.items[i]);
30
- }
31
- }
32
- if (this.canRun) {
33
- this.popup.open(AXQueryBuilderPopupComponent, { data: { group: group, provideData: provideData }, title: 'دریافت مقادیر' }).then((c) => {
34
- resolve(c);
35
- });
36
- }
37
- }
38
- else {
39
- resolve(group);
40
- }
41
- });
42
- }
43
- findNullValue(gr) {
44
- if (this.canRun == true) {
45
- if (gr.condition) {
46
- for (let i = 0; i < gr.items.length; i++) {
47
- this.findNullValue(gr.items[i]);
48
- }
49
- }
50
- else {
51
- if (gr.onDemandLabel == '????|') {
52
- this.canRun = false;
53
- this.toast.error('لطفا نام متغیر های مورد نیاز را کامل کنید');
54
- }
55
- }
56
- }
57
- }
58
- getNoValueRule(gr) {
59
- // for (let i = 0; i < gr.items.length; i++) {
60
- if (gr.condition) {
61
- for (let i = 0; i < gr.items.length; i++) {
62
- this.getNoValueRule(gr.items[i]);
63
- }
64
- }
65
- else {
66
- if (gr.onDemandLabel?.indexOf('????') == 0) {
67
- this.canOpen = true;
68
- }
69
- }
70
- // }
71
- }
72
- async getQueryStringSimple(group) {
73
- return new Promise(async (resolve, reject) => {
74
- var query;
75
- if (group.items.length > 0) {
76
- query = ' ( ';
77
- }
78
- var id = 0;
79
- for await (const iterator of group.items) {
80
- const item = group.items[id];
81
- if (item.condition) {
82
- await this.getQueryStringSimple(item).then((c) => {
83
- query = query + c;
84
- });
85
- }
86
- else {
87
- let codeOperator = null;
88
- switch (item.operator) {
89
- case 'equal':
90
- codeOperator = '==';
91
- break;
92
- case 'not-equal':
93
- codeOperator = '!=';
94
- break;
95
- case 'not-null':
96
- codeOperator = '!= null';
97
- break;
98
- case 'null':
99
- codeOperator = '== null';
100
- break;
101
- case 'gt':
102
- codeOperator = '>';
103
- break;
104
- case 'gte':
105
- codeOperator = '>=';
106
- break;
107
- case 'lt':
108
- codeOperator = '<';
109
- break;
110
- case 'lte':
111
- codeOperator = '<=';
112
- break;
113
- case 'contains':
114
- codeOperator = item.operator;
115
- break;
116
- case 'start-with':
117
- codeOperator = item.operator;
118
- break;
119
- case 'end-with':
120
- codeOperator = item.operator;
121
- break;
122
- default:
123
- codeOperator = item.operator;
124
- break;
125
- }
126
- if (item.dataType == 'datetime' && item.text && item.text != '' && item.text != null || item.dataType == 'date' && item.text && item.text != '' && item.text != null) {
127
- query = query + ' ' + item.caption + ' ' + codeOperator + ' (' + AXDateTime.convert(item.text, 'jalali') + ')';
128
- }
129
- else if (item.dataType != 'datetime' || item.dataType != 'date') {
130
- query = query + ' ' + item.caption + ' ' + codeOperator + ' ' + item.text;
131
- }
132
- }
133
- if (id !== group.items.length - 1 && query != ' ( ') {
134
- query = query + ' ' + group.condition;
135
- }
136
- id += 1;
137
- }
138
- if (group.items.length > 0) {
139
- query = query + ' ) ';
140
- }
141
- resolve(query);
142
- });
143
- }
144
- getQueryString(group, type) {
145
- let query = '';
146
- switch (type) {
147
- case 'simple':
148
- if (group.items.length > 0) {
149
- query = ' ( ';
150
- }
151
- for (let i = 0; i < group.items.length; i++) {
152
- const item = group.items[i];
153
- if (item instanceof AXQueryBuilderGroup) {
154
- query = query + item.queryString;
155
- }
156
- else {
157
- query = query + ' ' + item.caption + ' ' + item.operator + ' ' + item.value;
158
- }
159
- if (i !== group.items.length - 1 && query != ' ( ') {
160
- query = query + ' ' + group.condition;
161
- }
162
- }
163
- if (group.items.length > 0) {
164
- query = query + ' ) ';
165
- }
166
- break;
167
- case 'elastic':
168
- if (group.items.length > 0) {
169
- query = ' ( ';
170
- }
171
- for (let i = 0; i < group.items.length; i++) {
172
- const item = group.items[i];
173
- if (item instanceof AXQueryBuilderGroup) {
174
- query = query + item.queryStringElastic;
175
- }
176
- else {
177
- query = query + ' ' + item.dataField + ' ' + item.operator + ' ' + item.value;
178
- }
179
- if (i !== group.items.length - 1 && query != ' ( ') {
180
- query = query + ' ' + group.condition;
181
- }
182
- }
183
- if (group.items.length > 0) {
184
- query = query + ' ) ';
185
- }
186
- break;
187
- case 'sql':
188
- break;
189
- }
190
- return query;
191
- }
192
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXQueryBuilderService, deps: [{ token: i1.AXPopupService }, { token: i2.AXToastService }], target: i0.ɵɵFactoryTarget.Injectable });
193
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXQueryBuilderService, providedIn: 'root' });
194
- }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXQueryBuilderService, decorators: [{
196
- type: Injectable,
197
- args: [{ providedIn: 'root' }]
198
- }], ctorParameters: () => [{ type: i1.AXPopupService }, { type: i2.AXToastService }] });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUE0QixNQUFNLHVCQUF1QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBRTFDLE1BQU0sT0FBTyxxQkFBcUI7SUFDWjtJQUErQjtJQUFuRCxZQUFvQixLQUFxQixFQUFVLEtBQXFCO1FBQXBELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFBSSxDQUFDO0lBQzdFLE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDekIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUNqQixRQUFRLENBQUMsS0FBMEIsRUFBRSxXQUFXO1FBQ3JELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFD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S0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLENBQUM7Z0JBRUQsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixNQUFNO1FBQ1YsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0FuTFUscUJBQXFCOzJHQUFyQixxQkFBcUIsY0FEUixNQUFNOzsyRkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUXVlcnlCdWlsZGVyR3JvdXAsIEFYUXVlcnlCdWlsZGVyU3RyaW5nVHlwZSB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5jbGFzcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJQb3B1cENvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1wb3B1cC9xdWVyeS1idWlsZGVyLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhEYXRlVGltZSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9wdXA6IEFYUG9wdXBTZXJ2aWNlLCBwcml2YXRlIHRvYXN0OiBBWFRvYXN0U2VydmljZSkgeyB9XG4gIGNhbk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2FuUnVuOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBydW5RdWVyeShncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cCwgcHJvdmlkZURhdGEpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuY2FuT3BlbiA9IGZhbHNlO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyb3VwLml0ZW1zW2ldKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNhbk9wZW4pIHtcbiAgICAgICAgdGhpcy5jYW5SdW4gPSB0cnVlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2FuUnVuID09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuZmluZE51bGxWYWx1ZShncm91cC5pdGVtc1tpXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNhblJ1bikge1xuICAgICAgICAgIHRoaXMucG9wdXAub3BlbihBWFF1ZXJ5QnVpbGRlclBvcHVwQ29tcG9uZW50LCB7IGRhdGE6IHsgZ3JvdXA6IGdyb3VwLCBwcm92aWRlRGF0YTogcHJvdmlkZURhdGEgfSwgdGl0bGU6ICfYr9ix24zYp9mB2Kog2YXZgtin2K/bjNixJyB9KS50aGVuKChjKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKGdyb3VwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGZpbmROdWxsVmFsdWUoZ3IpIHtcbiAgICBpZiAodGhpcy5jYW5SdW4gPT0gdHJ1ZSkge1xuICAgICAgaWYgKGdyLmNvbmRpdGlvbikge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5maW5kTnVsbFZhbHVlKGdyLml0ZW1zW2ldKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWwgPT0gJz8/Pz98Jykge1xuICAgICAgICAgIHRoaXMuY2FuUnVuID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdC5lcnJvcign2YTYt9mB2Kcg2YbYp9mFINmF2KrYutuM2LEg2YfYp9uMINmF2YjYsdivINmG24zYp9iyINix2Kcg2qnYp9mF2YQg2qnZhtuM2K8nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9WYWx1ZVJ1bGUoZ3IpIHtcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGdyLmNvbmRpdGlvbikge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyLml0ZW1zW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWw/LmluZGV4T2YoJz8/Pz8nKSA9PSAwKSB7XG4gICAgICAgIHRoaXMuY2FuT3BlbiA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gIH1cbiAgfVxuXG4gIGFzeW5jIGdldFF1ZXJ5U3RyaW5nU2ltcGxlKGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdmFyIHF1ZXJ5OiBzdHJpbmc7XG4gICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBxdWVyeSA9ICcgKCAnO1xuICAgICAgfVxuICAgICAgdmFyIGlkID0gMDtcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgaXRlcmF0b3Igb2YgZ3JvdXAuaXRlbXMpIHtcbiAgICAgICAgY29uc3QgaXRlbTogYW55ID0gZ3JvdXAuaXRlbXNbaWRdO1xuXG4gICAgICAgIGlmIChpdGVtLmNvbmRpdGlvbikge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UXVlcnlTdHJpbmdTaW1wbGUoaXRlbSkudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArIGM7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGNvZGVPcGVyYXRvcjogc3RyaW5nID0gbnVsbDtcbiAgICAgICAgICBzd2l0Y2ggKGl0ZW0ub3BlcmF0b3IpIHtcbiAgICAgICAgICAgIGNhc2UgJ2VxdWFsJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJz09JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdub3QtZXF1YWwnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnIT0nO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ25vdC1udWxsJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJyE9IG51bGwnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ251bGwnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPT0gbnVsbCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZ3QnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPic7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZ3RlJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJz49JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsdCc6XG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc8JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsdGUnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPD0nO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdGFydC13aXRoJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlbmQtd2l0aCc6XG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9IGl0ZW0ub3BlcmF0b3I7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVtLmRhdGFUeXBlID09ICdkYXRldGltZScgJiYgaXRlbS50ZXh0ICYmIGl0ZW0udGV4dCAhPSAnJyAmJiBpdGVtLnRleHQgIT0gbnVsbCB8fCBpdGVtLmRhdGFUeXBlID09ICdkYXRlJyAmJiBpdGVtLnRleHQgJiYgaXRlbS50ZXh0ICE9ICcnICYmIGl0ZW0udGV4dCAhPSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyAnICsgaXRlbS5jYXB0aW9uICsgJyAnICsgY29kZU9wZXJhdG9yICsgJyAoJyArIEFYRGF0ZVRpbWUuY29udmVydChpdGVtLnRleHQsICdqYWxhbGknKSArICcpJztcbiAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uZGF0YVR5cGUgIT0gJ2RhdGV0aW1lJyB8fCBpdGVtLmRhdGFUeXBlICE9ICdkYXRlJykge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGl0ZW0uY2FwdGlvbiArICcgJyArIGNvZGVPcGVyYXRvciArICcgJyArIGl0ZW0udGV4dDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICBpZiAoaWQgIT09IGdyb3VwLml0ZW1zLmxlbmd0aCAtIDEgJiYgcXVlcnkgIT0gJyAoICcpIHtcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyAnICsgZ3JvdXAuY29uZGl0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlkICs9IDE7XG4gICAgICB9XG4gICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyApICc7XG4gICAgICB9XG4gICAgICByZXNvbHZlKHF1ZXJ5KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRRdWVyeVN0cmluZyhncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cCwgdHlwZTogQVhRdWVyeUJ1aWxkZXJTdHJpbmdUeXBlKTogc3RyaW5nIHtcbiAgICBsZXQgcXVlcnkgPSAnJztcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3NpbXBsZSc6XG4gICAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcXVlcnkgPSAnICggJztcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IGdyb3VwLml0ZW1zW2ldO1xuICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArIGl0ZW0ucXVlcnlTdHJpbmc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmNhcHRpb24gKyAnICcgKyBpdGVtLm9wZXJhdG9yICsgJyAnICsgaXRlbS52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGkgIT09IGdyb3VwLml0ZW1zLmxlbmd0aCAtIDEgJiYgcXVlcnkgIT0gJyAoICcpIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBncm91cC5jb25kaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgKSAnO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdlbGFzdGljJzpcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBxdWVyeSA9ICcgKCAnO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBpdGVtID0gZ3JvdXAuaXRlbXNbaV07XG4gICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgaXRlbS5xdWVyeVN0cmluZ0VsYXN0aWM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmRhdGFGaWVsZCArICcgJyArIGl0ZW0ub3BlcmF0b3IgKyAnICcgKyBpdGVtLnZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaSAhPT0gZ3JvdXAuaXRlbXMubGVuZ3RoIC0gMSAmJiBxdWVyeSAhPSAnICggJykge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyApICc7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NxbCc6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBxdWVyeTtcbiAgfVxufVxuIl19