@acorex/components 3.0.31 → 3.0.35

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 (29) hide show
  1. package/acorex-components.metadata.json +1 -1
  2. package/bundles/acorex-components.umd.js +180 -27
  3. package/bundles/acorex-components.umd.js.map +1 -1
  4. package/bundles/acorex-components.umd.min.js +1 -1
  5. package/bundles/acorex-components.umd.min.js.map +1 -1
  6. package/esm2015/lib/number-box/number-box.component.js +1 -2
  7. package/esm2015/lib/query-builder/query-builder-group.component.js +14 -5
  8. package/esm2015/lib/query-builder/query-builder-rule.component.js +7 -3
  9. package/esm2015/lib/query-builder/query-builder.component.js +10 -5
  10. package/esm2015/lib/query-builder/query-builder.service.js +84 -4
  11. package/esm2015/lib/tab-page/tab-page.module.js +2 -3
  12. package/esm2015/lib/tree-view/tree-view.component.js +40 -15
  13. package/esm5/lib/number-box/number-box.component.js +1 -2
  14. package/esm5/lib/query-builder/query-builder-group.component.js +15 -5
  15. package/esm5/lib/query-builder/query-builder-rule.component.js +7 -3
  16. package/esm5/lib/query-builder/query-builder.component.js +10 -5
  17. package/esm5/lib/query-builder/query-builder.service.js +113 -4
  18. package/esm5/lib/tab-page/tab-page.module.js +2 -3
  19. package/esm5/lib/tree-view/tree-view.component.js +41 -15
  20. package/fesm2015/acorex-components.js +150 -28
  21. package/fesm2015/acorex-components.js.map +1 -1
  22. package/fesm5/acorex-components.js +181 -28
  23. package/fesm5/acorex-components.js.map +1 -1
  24. package/lib/query-builder/query-builder-group.component.d.ts +1 -0
  25. package/lib/query-builder/query-builder-rule.component.d.ts +1 -0
  26. package/lib/query-builder/query-builder.component.d.ts +1 -0
  27. package/lib/query-builder/query-builder.service.d.ts +2 -1
  28. package/lib/tree-view/tree-view.component.d.ts +3 -1
  29. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { __decorate, __metadata, __param, __awaiter } from 'tslib';
1
+ import { __decorate, __metadata, __param, __awaiter, __asyncValues } from 'tslib';
2
2
  import { Input, Component, EventEmitter, ContentChildren, QueryList, Output, ViewChild, ContentChild, ElementRef, ɵɵdefineInjectable, ɵɵinject, Injectable, ComponentFactoryResolver, Injector, NgZone, Inject, RendererFactory2, INJECTOR, TemplateRef, ApplicationRef, ChangeDetectorRef, HostListener, ViewEncapsulation, NgModule, ChangeDetectionStrategy, Attribute, Directive, ViewContainerRef, Renderer2, ViewChildren } from '@angular/core';
3
3
  import { AXTranslator, AXHtmlUtil, AXRenderService, AXConfig, AXDateTime, AXDateTimeRange, AXCoreModule, AXMenuItem, AXTranslatorModule, AXObjectUtil, AXScrollModule, getPropByPath, AXColorUtil } from '@acorex/core';
4
4
  import { OverlayContainer, Overlay, ScrollStrategyOptions, OverlayPositionBuilder, OverlayKeyboardDispatcher, OverlayModule } from '@angular/cdk/overlay';
@@ -7124,7 +7124,6 @@ let AXNumberBoxComponent = AXNumberBoxComponent_1 = class AXNumberBoxComponent e
7124
7124
  }
7125
7125
  }
7126
7126
  calcSeparator(num) {
7127
- debugger;
7128
7127
  if (this.showSeparator) {
7129
7128
  return num + (+(num / 3));
7130
7129
  }
@@ -8875,6 +8874,7 @@ AXSelectBoxComponent = AXSelectBoxComponent_1 = __decorate([
8875
8874
  let AXQueryBuilderRuleComponent = class AXQueryBuilderRuleComponent {
8876
8875
  constructor() {
8877
8876
  this.isEditing = true;
8877
+ this.mode = 'new';
8878
8878
  this.fields = [];
8879
8879
  this.onRuleDelete = new EventEmitter();
8880
8880
  this.ruleChanged = new EventEmitter();
@@ -9057,7 +9057,6 @@ let AXQueryBuilderRuleComponent = class AXQueryBuilderRuleComponent {
9057
9057
  this.onRuleDelete.emit({ items: this.rule, component: this });
9058
9058
  }
9059
9059
  captionChange(e) {
9060
- debugger;
9061
9060
  if (e.selectedItems[0]) {
9062
9061
  this.rule.caption = e.selectedItems[0].caption;
9063
9062
  this.rule.dataField = e.selectedItems[0].dataField;
@@ -9206,6 +9205,10 @@ __decorate([
9206
9205
  Input(),
9207
9206
  __metadata("design:type", AXQueryBuilderGroup)
9208
9207
  ], AXQueryBuilderRuleComponent.prototype, "parent", void 0);
9208
+ __decorate([
9209
+ Input(),
9210
+ __metadata("design:type", String)
9211
+ ], AXQueryBuilderRuleComponent.prototype, "mode", void 0);
9209
9212
  __decorate([
9210
9213
  Input(),
9211
9214
  __metadata("design:type", Array)
@@ -9221,7 +9224,7 @@ __decorate([
9221
9224
  AXQueryBuilderRuleComponent = __decorate([
9222
9225
  Component({
9223
9226
  selector: 'ax-query-rule',
9224
- template: "<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=\"caption\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else fieldsTemplate\">\r\n <ax-form-group>\r\n <ax-select-box (selectionChanged)=\"captionChange($event)\" allowNull=\"false\"\r\n [(selectedItems)]=\"rule.dataFieldItem\" textField=\"caption\" valueField=\"dataField\" [items]=\"fields\"\r\n size=\"sm\" mode=\"single\">\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #fieldsTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n {{rule.caption}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"operator\" [ngClass]=\"{'editable': isEditing,'radius':!showValue}\">\r\n <ng-container *ngIf=\"isEditing;else operatorTemplate\">\r\n <ax-form-group>\r\n <ax-select-box *ngIf=\"showOperatorSelectBox\" [(selectedValues)]=\"rule.operator\" #selectBox\r\n (selectedItemsChange)=\"operatorChange($event)\" allowNull=\"false\" size=\"sm\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataOperator\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #operatorTemplate>\r\n <div class=\"text\" (click)=\"handleEditClick()\">\r\n {{('queryBuilder.'+rule.operator) | trans}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div *ngIf=\"showValue\" class=\"value\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else valueTemplate\">\r\n\r\n <div *ngIf=\" rule.control && !isOnDemandLabel\" [ngSwitch]=\"rule.control.type\">\r\n <div *ngSwitchCase=\"'textBox'\">\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\" size=\"sm\">\r\n </ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'selectBox'\">\r\n <ax-form-group>\r\n <ax-select-box *ngIf=\"showSelectBox\" [mode]=\"getOption('mode')\"\r\n [remoteOperation]=\"getOption('remoteOperation')\" [valueField]=\"getOption('valueField')\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" [textField]=\"getOption('textField')\"\r\n [(selectedItems)]=\"rule.valueItem\" (selectedItemsChange)=\"selectedItemsChange($event)\" size=\"sm\"\r\n #selectBoxValue>\r\n <ax-data-source [provideData]=\"getProvideData\"></ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </div>\r\n\r\n <div *ngSwitchCase=\"'numberBox'\">\r\n <ax-form-group>\r\n <ax-number-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\" size=\"sm\">\r\n </ax-number-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'datePicker'\">\r\n\r\n\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n\r\n <ax-form-group>\r\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event)\"\r\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataBoolean\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\" size=\"sm\">\r\n </ax-text-box>\r\n\r\n </ax-form-group>\r\n\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isOnDemandLabel\">\r\n\r\n <ax-text-box #textBoxNameValue [value]=\"getOnDemandName(rule.onDemandLabel)\"\r\n (onValueChanged)=\"onDemandLabelChange($event)\" placeholder=\"\u0646\u0627\u0645 \u0645\u062A\u063A\u06CC\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\r\n <!-- <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation> -->\r\n </ax-text-box>\r\n\r\n\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #valueTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n\r\n {{rule.text}}\r\n\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"buttons-list\">\r\n <div *ngIf=\"showValue && isEditing\" class=\"button variable\" [ngClass]=\"{'active-button': isOnDemandLabel}\">\r\n <i class=\"far fa-dollar-sign\"></i>\r\n <ax-check-box [value]=\"isOnDemandLabel\" (onClick)=\"onDemandLabel($event)\">\r\n </ax-check-box>\r\n </div>\r\n\r\n <div class=\"button commit\" (click)=\"handleCommitClick()\" *ngIf=\"isEditing\">\r\n <i class=\"far fa-check\"></i>\r\n </div>\r\n <div class=\"button remove\" (click)=\"handleRemoveClick()\">\r\n <i class=\"far fa-times\"></i>\r\n </div>\r\n</div>",
9227
+ template: "<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=\"caption\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else fieldsTemplate\">\r\n <ax-form-group>\r\n <ax-select-box [readonly]=\"mode == 'edit'\" (selectionChanged)=\"captionChange($event)\" allowNull=\"false\"\r\n [(selectedItems)]=\"rule.dataFieldItem\" textField=\"caption\" valueField=\"dataField\" [items]=\"fields\"\r\n mode=\"single\">\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #fieldsTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n {{rule.caption}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"operator\" [ngClass]=\"{'editable': isEditing,'radius':!showValue}\">\r\n <ng-container *ngIf=\"isEditing;else operatorTemplate\">\r\n <ax-form-group>\r\n <ax-select-box [readonly]=\"mode == 'edit'\" *ngIf=\"showOperatorSelectBox\" [(selectedValues)]=\"rule.operator\"\r\n #selectBox (selectedItemsChange)=\"operatorChange($event)\" allowNull=\"false\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataOperator\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </ng-container>\r\n <ng-template #operatorTemplate>\r\n <div class=\"text\" (click)=\"handleEditClick()\">\r\n {{('queryBuilder.'+rule.operator) | trans}}\r\n </div>\r\n </ng-template>\r\n</div>\r\n<div *ngIf=\"showValue\" class=\"value\" [ngClass]=\"{'editable': isEditing}\">\r\n <ng-container *ngIf=\"isEditing;else valueTemplate\">\r\n\r\n <div *ngIf=\" rule.control && !isOnDemandLabel\" [ngSwitch]=\"rule.control.type\">\r\n <div *ngSwitchCase=\"'textBox'\">\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'selectBox'\">\r\n <ax-form-group>\r\n <ax-select-box *ngIf=\"showSelectBox\" [mode]=\"getOption('mode')\"\r\n [remoteOperation]=\"getOption('remoteOperation')\" [valueField]=\"getOption('valueField')\"\r\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" [textField]=\"getOption('textField')\"\r\n [(selectedItems)]=\"rule.valueItem\" (selectedItemsChange)=\"selectedItemsChange($event)\"\r\n #selectBoxValue>\r\n <ax-data-source [provideData]=\"getProvideData\"></ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n </div>\r\n\r\n <div *ngSwitchCase=\"'numberBox'\">\r\n <ax-form-group>\r\n <ax-number-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-number-box>\r\n </ax-form-group>\r\n </div>\r\n <div *ngSwitchCase=\"'datePicker'\">\r\n\r\n\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n\r\n <ax-form-group>\r\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event)\"\r\n allowNull=\"false\" [selectedValues]=\"rule.value\" mode=\"single\">\r\n <ax-data-source [provideData]=\"provideDataBoolean\">\r\n </ax-data-source>\r\n </ax-select-box>\r\n </ax-form-group>\r\n\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ax-form-group>\r\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\r\n [(value)]=\"rule.value\">\r\n </ax-text-box>\r\n\r\n </ax-form-group>\r\n\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isOnDemandLabel\">\r\n\r\n <ax-text-box #textBoxNameValue [value]=\"getOnDemandName(rule.onDemandLabel)\"\r\n (onValueChanged)=\"onDemandLabelChange($event)\" placeholder=\"\u0646\u0627\u0645 \u0645\u062A\u063A\u06CC\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\">\r\n <!-- <ax-validation>\r\n <ax-validation-rule type=\"required\"></ax-validation-rule>\r\n </ax-validation> -->\r\n </ax-text-box>\r\n\r\n\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #valueTemplate>\r\n <div (click)=\"handleEditClick()\">\r\n\r\n {{rule.text}}\r\n\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div class=\"buttons-list\">\r\n <div *ngIf=\"showValue && isEditing && mode == 'new'\" class=\"button variable\"\r\n [ngClass]=\"{'active-button': isOnDemandLabel}\">\r\n <i class=\"far fa-dollar-sign\"></i>\r\n <ax-check-box [value]=\"isOnDemandLabel\" (onClick)=\"onDemandLabel($event)\">\r\n </ax-check-box>\r\n </div>\r\n\r\n <div class=\"button commit\" (click)=\"handleCommitClick()\" *ngIf=\"isEditing\">\r\n <i class=\"far fa-check\"></i>\r\n </div>\r\n <div class=\"button remove\" (click)=\"handleRemoveClick()\" *ngIf=\"mode == 'new'\">\r\n <i class=\"far fa-times\"></i>\r\n </div>\r\n</div>",
9225
9228
  host: { class: 'ax ax-query-rule' },
9226
9229
  encapsulation: ViewEncapsulation.None
9227
9230
  }),
@@ -9408,7 +9411,7 @@ let AXQueryBuilderService = class AXQueryBuilderService {
9408
9411
  }
9409
9412
  }
9410
9413
  if (this.canRun) {
9411
- this.popup.open(AXQueryBuilderPopupComponent, { data: { group: group, provideData: provideData }, title: "دریافت مقادیر" }).then(c => {
9414
+ this.popup.open(AXQueryBuilderPopupComponent, { data: { group: group, provideData: provideData }, title: 'دریافت مقادیر' }).then((c) => {
9412
9415
  resolve(c);
9413
9416
  });
9414
9417
  }
@@ -9448,10 +9451,90 @@ let AXQueryBuilderService = class AXQueryBuilderService {
9448
9451
  }
9449
9452
  // }
9450
9453
  }
9454
+ getQueryStringSimple(group) {
9455
+ return __awaiter(this, void 0, void 0, function* () {
9456
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
9457
+ var e_1, _a;
9458
+ debugger;
9459
+ var query;
9460
+ if (group.items.length > 0) {
9461
+ query = ' ( ';
9462
+ }
9463
+ var id = 0;
9464
+ try {
9465
+ for (var _b = __asyncValues(group.items), _c; _c = yield _b.next(), !_c.done;) {
9466
+ const iterator = _c.value;
9467
+ const item = group.items[id];
9468
+ if (item.condition) {
9469
+ yield this.getQueryStringSimple(item).then((c) => {
9470
+ query = query + c;
9471
+ });
9472
+ }
9473
+ else {
9474
+ let codeOperator = null;
9475
+ switch (item.operator) {
9476
+ case 'equal':
9477
+ codeOperator = '==';
9478
+ break;
9479
+ case 'not-equal':
9480
+ codeOperator = '!=';
9481
+ break;
9482
+ case 'not-null':
9483
+ codeOperator = '!= null';
9484
+ break;
9485
+ case 'null':
9486
+ codeOperator = '== null';
9487
+ break;
9488
+ case 'gt':
9489
+ codeOperator = '>';
9490
+ break;
9491
+ case 'gte':
9492
+ codeOperator = '>=';
9493
+ break;
9494
+ case 'lt':
9495
+ codeOperator = '<';
9496
+ break;
9497
+ case 'lte':
9498
+ codeOperator = '<=';
9499
+ break;
9500
+ case 'contains':
9501
+ codeOperator = item.operator;
9502
+ break;
9503
+ case 'start-with':
9504
+ codeOperator = item.operator;
9505
+ break;
9506
+ case 'end-with':
9507
+ codeOperator = item.operator;
9508
+ break;
9509
+ }
9510
+ debugger;
9511
+ query = query + ' ' + item.caption + ' ' + codeOperator + ' ' + item.text;
9512
+ }
9513
+ if (id !== group.items.length - 1 && query != ' ( ') {
9514
+ query = query + ' ' + group.condition;
9515
+ }
9516
+ id += 1;
9517
+ }
9518
+ }
9519
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
9520
+ finally {
9521
+ try {
9522
+ if (_c && !_c.done && (_a = _b.return)) yield _a.call(_b);
9523
+ }
9524
+ finally { if (e_1) throw e_1.error; }
9525
+ }
9526
+ if (group.items.length > 0) {
9527
+ query = query + ' ) ';
9528
+ }
9529
+ resolve(query);
9530
+ }));
9531
+ });
9532
+ }
9451
9533
  getQueryString(group, type) {
9452
9534
  let query = '';
9453
9535
  switch (type) {
9454
9536
  case 'simple':
9537
+ debugger;
9455
9538
  if (group.items.length > 0) {
9456
9539
  query = ' ( ';
9457
9540
  }
@@ -9512,6 +9595,7 @@ let AXQueryBuilderGroupComponent = class AXQueryBuilderGroupComponent {
9512
9595
  this.qs = qs;
9513
9596
  this.collapsed = false;
9514
9597
  this.fields = [];
9598
+ this.mode = 'new';
9515
9599
  //ruleIsEditing: boolean = true;
9516
9600
  this.groupRuleChanged = new EventEmitter();
9517
9601
  this.showGroupCondition = false;
@@ -9589,9 +9673,13 @@ let AXQueryBuilderGroupComponent = class AXQueryBuilderGroupComponent {
9589
9673
  this.ruleChanged(null);
9590
9674
  }
9591
9675
  ruleChanged(e) {
9592
- this.group.queryString = this.qs.getQueryString(this.group, 'simple');
9593
- this.group.queryStringElastic = this.qs.getQueryString(this.group, 'elastic');
9594
- this.groupRuleChanged.emit({ groups: this.group, component: this });
9676
+ debugger;
9677
+ // this.group.queryString = this.qs.getQueryString(this.group, 'simple');
9678
+ this.qs.getQueryStringSimple(this.group).then((c) => {
9679
+ this.group.queryString = c;
9680
+ this.group.queryStringElastic = this.qs.getQueryString(this.group, 'elastic');
9681
+ this.groupRuleChanged.emit({ groups: this.group, component: this });
9682
+ });
9595
9683
  }
9596
9684
  };
9597
9685
  AXQueryBuilderGroupComponent.ctorParameters = () => [
@@ -9617,6 +9705,10 @@ __decorate([
9617
9705
  Input(),
9618
9706
  __metadata("design:type", Array)
9619
9707
  ], AXQueryBuilderGroupComponent.prototype, "fields", void 0);
9708
+ __decorate([
9709
+ Input(),
9710
+ __metadata("design:type", String)
9711
+ ], AXQueryBuilderGroupComponent.prototype, "mode", void 0);
9620
9712
  __decorate([
9621
9713
  Output(),
9622
9714
  __metadata("design:type", EventEmitter)
@@ -9624,7 +9716,7 @@ __decorate([
9624
9716
  AXQueryBuilderGroupComponent = __decorate([
9625
9717
  Component({
9626
9718
  selector: 'ax-query-group',
9627
- 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\" (click)=\"handleRemoveClick()\">\r\n <i class=\"far fa-times ax-danger-color\"></i>\r\n </div>\r\n <div class=\"button edit\" (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)\" [group]=\"item\" [fields]=\"fields\" [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)\" (onRuleDelete)=\"ruleDelete($event)\"\r\n [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\">\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()\">\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\">\r\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>\u06AF\u0631\u0648\u0647</span>\r\n </div>\r\n <div *ngIf=\"showGroupCondition\" 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\" 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>",
9719
+ 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>",
9628
9720
  host: { class: 'ax ax-query-group' },
9629
9721
  encapsulation: ViewEncapsulation.None
9630
9722
  }),
@@ -9636,6 +9728,7 @@ let AXQueryBuilderComponent = class AXQueryBuilderComponent extends AXBaseCompon
9636
9728
  super();
9637
9729
  this.ref = ref;
9638
9730
  this.toast = toast;
9731
+ this.mode = 'new';
9639
9732
  this.rootGroup = new AXQueryBuilderGroup();
9640
9733
  this.fields = [];
9641
9734
  // @Input()
@@ -9644,11 +9737,11 @@ let AXQueryBuilderComponent = class AXQueryBuilderComponent extends AXBaseCompon
9644
9737
  this.saved = false;
9645
9738
  }
9646
9739
  ngOnInit() {
9647
- this.rootGroup.condition = this.query.condition ? this.query.condition : "AND";
9740
+ this.rootGroup.condition = this.query.condition ? this.query.condition : 'AND';
9648
9741
  this.rootGroup.items = this.query.items ? this.query.items : [];
9649
9742
  }
9650
9743
  getQueryBuilder() {
9651
- return ({ groups: this.rootGroup });
9744
+ return { groups: this.rootGroup };
9652
9745
  }
9653
9746
  ruleChanged(e) {
9654
9747
  this.onRuleChanged.emit({ component: this, groups: this.rootGroup });
@@ -9698,6 +9791,10 @@ __decorate([
9698
9791
  Input(),
9699
9792
  __metadata("design:type", AXQueryBuilderGroup)
9700
9793
  ], AXQueryBuilderComponent.prototype, "query", void 0);
9794
+ __decorate([
9795
+ Input(),
9796
+ __metadata("design:type", String)
9797
+ ], AXQueryBuilderComponent.prototype, "mode", void 0);
9701
9798
  __decorate([
9702
9799
  Input(),
9703
9800
  __metadata("design:type", Array)
@@ -9709,9 +9806,9 @@ __decorate([
9709
9806
  AXQueryBuilderComponent = __decorate([
9710
9807
  Component({
9711
9808
  selector: 'ax-query-builder',
9712
- template: "<ax-query-group #queryGroup [group]=\"rootGroup\" [fields]=\"fields\" (groupRuleChanged)=\"ruleChanged($event)\">\r\n</ax-query-group>",
9809
+ template: "<ax-query-group #queryGroup [mode]=\"mode\" [group]=\"rootGroup\" [fields]=\"fields\"\r\n (groupRuleChanged)=\"ruleChanged($event)\">\r\n</ax-query-group>",
9713
9810
  encapsulation: ViewEncapsulation.None,
9714
- styles: [".ax-query-group{display:flex;flex-direction:column;margin:5px;-webkit-padding-start:0;padding-inline-start:0}.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-top-right-radius:4px;border-bottom-right-radius:4px}.ax-query-group .buttons-list{-webkit-margin-start:10px;margin-inline-start:10px;display:flex;align-items:center}.ax-query-group .buttons-list .button{cursor:pointer;-webkit-margin-end:.5em;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:.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{-webkit-margin-start:-50%;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-top-right-radius:4px;border-bottom-right-radius:4px}.ax-query-group .header .caption{padding:10px;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:10px;background-color:var(--ax-gray-trans-light-color);border-right:none;border-top-left-radius:50px;border-bottom-left-radius:50px;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{-webkit-margin-start:10px;margin-inline-start:10px;-webkit-border-start:2px solid var(--ax-gray-light-color);border-inline-start:2px solid var(--ax-gray-light-color)}.ax-query-group .rules .rules{-webkit-margin-start:48px;margin-inline-start:48px}.ax-query-group .ax-query-rule{display:flex;margin:5px;flex-direction:row;transition:.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-top-right-radius:4px;border-bottom-right-radius:4px}.ax-query-group .ax-query-rule .caption{padding:10px;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:10px}.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;-webkit-text-decoration:underline dashed;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:10px;background-color:var(--ax-light-light-color);color:#000;border:1px solid var(--ax-gray-light-color);border-right:none;border-top-left-radius:4px;border-bottom-left-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:10px;font-weight:700;cursor:pointer}.ax-query-group .ax-query-rule .add-group:hover,.ax-query-group .ax-query-rule .add-rule:hover{background-color:var(--ax-gray-light-color)}.ax-query-group .ax-query-rule .add-condition,.ax-query-group .ax-query-rule .add-group{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:10px;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)}"]
9811
+ styles: [".ax-query-group{display:flex;flex-direction:column;margin:5px;-webkit-padding-start:0;padding-inline-start:0}.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{-webkit-margin-start:10px;margin-inline-start:10px;display:flex;align-items:center}.ax-query-group .buttons-list .button{cursor:pointer;-webkit-margin-end:.5em;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:.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{-webkit-margin-start:-50%;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{-webkit-margin-start:10px;margin-inline-start:10px;-webkit-border-start:2px solid var(--ax-gray-light-color);border-inline-start:2px solid var(--ax-gray-light-color)}.ax-query-group .rules .rules{-webkit-margin-start:48px;margin-inline-start:48px}.ax-query-group .ax-query-rule{display:flex;margin:5px;flex-direction:row;transition:.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;-webkit-text-decoration:underline dashed;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-group:hover,.ax-query-group .ax-query-rule .add-rule:hover{background-color:var(--ax-gray-light-color)}.ax-query-group .ax-query-rule .add-condition,.ax-query-group .ax-query-rule .add-group{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)}"]
9715
9812
  }),
9716
9813
  __metadata("design:paramtypes", [ElementRef, AXToastService])
9717
9814
  ], AXQueryBuilderComponent);
@@ -10824,7 +10921,7 @@ AXTabPageModule = __decorate([
10824
10921
  imports: [CommonModule, AXLoadingModule],
10825
10922
  exports: [AXTabPageRendererComponent],
10826
10923
  entryComponents: [AXTabPageRendererComponent, AXTabPageHostComponent],
10827
- providers: [AXTabPageService],
10924
+ providers: [],
10828
10925
  })
10829
10926
  ], AXTabPageModule);
10830
10927
 
@@ -12811,7 +12908,10 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
12811
12908
  //seletedKeyFields set id of nodes and parents
12812
12909
  //selectedFieldName set name of fields that set selectes
12813
12910
  this.selectedFieldName = null;
12814
- this.selectNodesRecursive = 'all';
12911
+ // @Input()
12912
+ // selectNodesRecursive: 'all' | 'parents' | 'childs' | 'none' = 'all'; //leaf
12913
+ this.checkParents = true;
12914
+ this.checkChilds = true;
12815
12915
  this.seletedKeyFields = [];
12816
12916
  this.keyField = 'id';
12817
12917
  this.hasChildField = 'child';
@@ -12880,6 +12980,7 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
12880
12980
  }
12881
12981
  if (item.select == true) {
12882
12982
  if (this.selectionMode === 'multiple') {
12983
+ this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== item[this.keyField]);
12883
12984
  this.selectedParents.push(item);
12884
12985
  }
12885
12986
  else {
@@ -12932,12 +13033,14 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
12932
13033
  }
12933
13034
  node.itemData.item = c; //TO DO
12934
13035
  node.itemData.selected = item.select === true ? item.select : false;
13036
+ node.itemData.indeterminate = item.select === null ? true : false;
12935
13037
  node.itemData.hasChild = item[this.hasChildField];
12936
13038
  node.parent = item.parentNode === undefined ? null : this.makeNode(item.parentNode, false);
12937
13039
  return node;
12938
13040
  }
12939
13041
  changeChildSelect(item, s) {
12940
- if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs') {
13042
+ // if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs') {
13043
+ if (this.checkChilds == true) {
12941
13044
  item.select = s;
12942
13045
  if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {
12943
13046
  item[this.childField].forEach((elm) => {
@@ -12970,7 +13073,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
12970
13073
  }
12971
13074
  }
12972
13075
  changeParentSelect(item) {
12973
- if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'parents') {
13076
+ //if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'parents') {
13077
+ if (this.checkParents) {
12974
13078
  let allselect = true;
12975
13079
  let alldeselect = true;
12976
13080
  let oneselect = false;
@@ -12994,9 +13098,13 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
12994
13098
  }
12995
13099
  if (oneselect || (isindeterminate && !allselect)) {
12996
13100
  item.select = null;
13101
+ this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== item[this.keyField]);
13102
+ this.selectedParents.push(item);
12997
13103
  }
12998
13104
  if (allselect === true) {
12999
13105
  item.select = true;
13106
+ this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== item[this.keyField]);
13107
+ this.selectedParents.push(item);
13000
13108
  }
13001
13109
  if (alldeselect === true) {
13002
13110
  item.select = false;
@@ -13082,9 +13190,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13082
13190
  this.seletedKeyFields.forEach((n) => {
13083
13191
  if (n.includes(el[this.keyField])) {
13084
13192
  if (el[this.hasChildField] == true) {
13085
- // if (this.selectNodesRecursive) {
13193
+ if (this.checkParents == false && this.checkChilds == false) {
13194
+ //select parent when check child and check parent is false TODO check this Action
13195
+ this.selectItem(el);
13196
+ }
13086
13197
  this.open(el);
13087
- // }
13088
13198
  }
13089
13199
  else {
13090
13200
  this.selectItem(el);
@@ -13095,9 +13205,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13095
13205
  }
13096
13206
  else if (this.selectedFieldName != null) {
13097
13207
  if (el[this.hasChildField] == true && el[this.selectedFieldName] == true) {
13098
- // if (this.selectNodesRecursive) {
13208
+ if (this.checkParents == false && this.checkChilds == false) {
13209
+ //select parent when check child and check parent is false TODO check this Action
13210
+ this.selectItem(el);
13211
+ }
13099
13212
  this.open(el);
13100
- // }
13101
13213
  }
13102
13214
  else if (el[this.selectedFieldName] == true) {
13103
13215
  this.selectItem(el);
@@ -13109,6 +13221,7 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13109
13221
  else {
13110
13222
  this.itemRow = this.listLoad.filter((c) => c.requestId === _data.data.requestId)[0];
13111
13223
  this.listLoad = this.listLoad.filter((c) => c.requestId !== _data.data.requestId);
13224
+ this.itemRow.loaded = true;
13112
13225
  if (this.itemRow !== undefined) {
13113
13226
  this.hideLoading(this.itemRow);
13114
13227
  const result = _data.data.result;
@@ -13129,7 +13242,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13129
13242
  if (this.selectionLevel == 'parents' && result[i][this.hasChildField] == false) {
13130
13243
  result[i].disabledCheckBox = true;
13131
13244
  }
13132
- if (this.selectionMode !== 'single' && (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs')) {
13245
+ // if (this.selectionMode !== 'single' && (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs')) {
13246
+ if (this.selectionMode !== 'single' && this.checkChilds == true) {
13133
13247
  result[i].select = this.itemRow.select === (undefined || null) ? false : this.itemRow.select;
13134
13248
  if (this.itemRow.select === true && this.selectionMode == 'multiple' && result[i][this.hasChildField] === false) {
13135
13249
  this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== result[i][this.keyField]);
@@ -13144,9 +13258,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13144
13258
  this.seletedKeyFields.forEach((n) => {
13145
13259
  if (n.includes(result[i][this.keyField])) {
13146
13260
  if (result[i][this.hasChildField] == true) {
13147
- // if (this.selectNodesRecursive) {
13261
+ if (this.checkParents == false && this.checkChilds == false) {
13262
+ //select parent when check child and check parent is false TODO check this Action
13263
+ this.selectItem(result[i]);
13264
+ }
13148
13265
  this.open(result[i]);
13149
- // }
13150
13266
  }
13151
13267
  else {
13152
13268
  this.selectItem(result[i]);
@@ -13157,9 +13273,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13157
13273
  }
13158
13274
  else if (this.selectedFieldName != null) {
13159
13275
  if (result[i][this.hasChildField] == true && result[i][this.selectedFieldName] == true) {
13160
- // if (this.selectNodesRecursive) {
13276
+ if (this.checkParents == false && this.checkChilds == false) {
13277
+ //select parent when check child and check parent is false TODO check this Action
13278
+ this.selectItem(result[i]);
13279
+ }
13161
13280
  this.open(result[i]);
13162
- // }
13163
13281
  }
13164
13282
  else if (result[i][this.selectedFieldName] == true) {
13165
13283
  this.selectItem(result[i]);
@@ -13405,8 +13523,12 @@ __decorate([
13405
13523
  ], AXTreeViewComponent.prototype, "selectedFieldName", void 0);
13406
13524
  __decorate([
13407
13525
  Input(),
13408
- __metadata("design:type", String)
13409
- ], AXTreeViewComponent.prototype, "selectNodesRecursive", void 0);
13526
+ __metadata("design:type", Boolean)
13527
+ ], AXTreeViewComponent.prototype, "checkParents", void 0);
13528
+ __decorate([
13529
+ Input(),
13530
+ __metadata("design:type", Boolean)
13531
+ ], AXTreeViewComponent.prototype, "checkChilds", void 0);
13410
13532
  __decorate([
13411
13533
  Input(),
13412
13534
  __metadata("design:type", Array)