@acorex/components 3.0.32 → 3.0.36

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 (27) hide show
  1. package/acorex-components.metadata.json +1 -1
  2. package/bundles/acorex-components.umd.js +177 -25
  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/query-builder/query-builder-group.component.js +14 -5
  7. package/esm2015/lib/query-builder/query-builder-rule.component.js +7 -2
  8. package/esm2015/lib/query-builder/query-builder.component.js +10 -5
  9. package/esm2015/lib/query-builder/query-builder.service.js +84 -4
  10. package/esm2015/lib/tab-page/tab-page.module.js +2 -3
  11. package/esm2015/lib/tree-view/tree-view.component.js +38 -15
  12. package/esm5/lib/query-builder/query-builder-group.component.js +15 -5
  13. package/esm5/lib/query-builder/query-builder-rule.component.js +7 -2
  14. package/esm5/lib/query-builder/query-builder.component.js +10 -5
  15. package/esm5/lib/query-builder/query-builder.service.js +113 -4
  16. package/esm5/lib/tab-page/tab-page.module.js +2 -3
  17. package/esm5/lib/tree-view/tree-view.component.js +38 -15
  18. package/fesm2015/acorex-components.js +148 -26
  19. package/fesm2015/acorex-components.js.map +1 -1
  20. package/fesm5/acorex-components.js +178 -26
  21. package/fesm5/acorex-components.js.map +1 -1
  22. package/lib/query-builder/query-builder-group.component.d.ts +1 -0
  23. package/lib/query-builder/query-builder-rule.component.d.ts +1 -0
  24. package/lib/query-builder/query-builder.component.d.ts +1 -0
  25. package/lib/query-builder/query-builder.service.d.ts +2 -1
  26. package/lib/tree-view/tree-view.component.d.ts +3 -1
  27. 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';
@@ -8874,6 +8874,7 @@ AXSelectBoxComponent = AXSelectBoxComponent_1 = __decorate([
8874
8874
  let AXQueryBuilderRuleComponent = class AXQueryBuilderRuleComponent {
8875
8875
  constructor() {
8876
8876
  this.isEditing = true;
8877
+ this.mode = 'new';
8877
8878
  this.fields = [];
8878
8879
  this.onRuleDelete = new EventEmitter();
8879
8880
  this.ruleChanged = new EventEmitter();
@@ -9204,6 +9205,10 @@ __decorate([
9204
9205
  Input(),
9205
9206
  __metadata("design:type", AXQueryBuilderGroup)
9206
9207
  ], AXQueryBuilderRuleComponent.prototype, "parent", void 0);
9208
+ __decorate([
9209
+ Input(),
9210
+ __metadata("design:type", String)
9211
+ ], AXQueryBuilderRuleComponent.prototype, "mode", void 0);
9207
9212
  __decorate([
9208
9213
  Input(),
9209
9214
  __metadata("design:type", Array)
@@ -9219,7 +9224,7 @@ __decorate([
9219
9224
  AXQueryBuilderRuleComponent = __decorate([
9220
9225
  Component({
9221
9226
  selector: 'ax-query-rule',
9222
- 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>",
9223
9228
  host: { class: 'ax ax-query-rule' },
9224
9229
  encapsulation: ViewEncapsulation.None
9225
9230
  }),
@@ -9406,7 +9411,7 @@ let AXQueryBuilderService = class AXQueryBuilderService {
9406
9411
  }
9407
9412
  }
9408
9413
  if (this.canRun) {
9409
- 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) => {
9410
9415
  resolve(c);
9411
9416
  });
9412
9417
  }
@@ -9446,10 +9451,90 @@ let AXQueryBuilderService = class AXQueryBuilderService {
9446
9451
  }
9447
9452
  // }
9448
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
+ }
9449
9533
  getQueryString(group, type) {
9450
9534
  let query = '';
9451
9535
  switch (type) {
9452
9536
  case 'simple':
9537
+ debugger;
9453
9538
  if (group.items.length > 0) {
9454
9539
  query = ' ( ';
9455
9540
  }
@@ -9510,6 +9595,7 @@ let AXQueryBuilderGroupComponent = class AXQueryBuilderGroupComponent {
9510
9595
  this.qs = qs;
9511
9596
  this.collapsed = false;
9512
9597
  this.fields = [];
9598
+ this.mode = 'new';
9513
9599
  //ruleIsEditing: boolean = true;
9514
9600
  this.groupRuleChanged = new EventEmitter();
9515
9601
  this.showGroupCondition = false;
@@ -9587,9 +9673,13 @@ let AXQueryBuilderGroupComponent = class AXQueryBuilderGroupComponent {
9587
9673
  this.ruleChanged(null);
9588
9674
  }
9589
9675
  ruleChanged(e) {
9590
- this.group.queryString = this.qs.getQueryString(this.group, 'simple');
9591
- this.group.queryStringElastic = this.qs.getQueryString(this.group, 'elastic');
9592
- 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
+ });
9593
9683
  }
9594
9684
  };
9595
9685
  AXQueryBuilderGroupComponent.ctorParameters = () => [
@@ -9615,6 +9705,10 @@ __decorate([
9615
9705
  Input(),
9616
9706
  __metadata("design:type", Array)
9617
9707
  ], AXQueryBuilderGroupComponent.prototype, "fields", void 0);
9708
+ __decorate([
9709
+ Input(),
9710
+ __metadata("design:type", String)
9711
+ ], AXQueryBuilderGroupComponent.prototype, "mode", void 0);
9618
9712
  __decorate([
9619
9713
  Output(),
9620
9714
  __metadata("design:type", EventEmitter)
@@ -9622,7 +9716,7 @@ __decorate([
9622
9716
  AXQueryBuilderGroupComponent = __decorate([
9623
9717
  Component({
9624
9718
  selector: 'ax-query-group',
9625
- 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>",
9626
9720
  host: { class: 'ax ax-query-group' },
9627
9721
  encapsulation: ViewEncapsulation.None
9628
9722
  }),
@@ -9634,6 +9728,7 @@ let AXQueryBuilderComponent = class AXQueryBuilderComponent extends AXBaseCompon
9634
9728
  super();
9635
9729
  this.ref = ref;
9636
9730
  this.toast = toast;
9731
+ this.mode = 'new';
9637
9732
  this.rootGroup = new AXQueryBuilderGroup();
9638
9733
  this.fields = [];
9639
9734
  // @Input()
@@ -9642,11 +9737,11 @@ let AXQueryBuilderComponent = class AXQueryBuilderComponent extends AXBaseCompon
9642
9737
  this.saved = false;
9643
9738
  }
9644
9739
  ngOnInit() {
9645
- this.rootGroup.condition = this.query.condition ? this.query.condition : "AND";
9740
+ this.rootGroup.condition = this.query.condition ? this.query.condition : 'AND';
9646
9741
  this.rootGroup.items = this.query.items ? this.query.items : [];
9647
9742
  }
9648
9743
  getQueryBuilder() {
9649
- return ({ groups: this.rootGroup });
9744
+ return { groups: this.rootGroup };
9650
9745
  }
9651
9746
  ruleChanged(e) {
9652
9747
  this.onRuleChanged.emit({ component: this, groups: this.rootGroup });
@@ -9696,6 +9791,10 @@ __decorate([
9696
9791
  Input(),
9697
9792
  __metadata("design:type", AXQueryBuilderGroup)
9698
9793
  ], AXQueryBuilderComponent.prototype, "query", void 0);
9794
+ __decorate([
9795
+ Input(),
9796
+ __metadata("design:type", String)
9797
+ ], AXQueryBuilderComponent.prototype, "mode", void 0);
9699
9798
  __decorate([
9700
9799
  Input(),
9701
9800
  __metadata("design:type", Array)
@@ -9707,9 +9806,9 @@ __decorate([
9707
9806
  AXQueryBuilderComponent = __decorate([
9708
9807
  Component({
9709
9808
  selector: 'ax-query-builder',
9710
- 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>",
9711
9810
  encapsulation: ViewEncapsulation.None,
9712
- 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)}"]
9713
9812
  }),
9714
9813
  __metadata("design:paramtypes", [ElementRef, AXToastService])
9715
9814
  ], AXQueryBuilderComponent);
@@ -10822,7 +10921,7 @@ AXTabPageModule = __decorate([
10822
10921
  imports: [CommonModule, AXLoadingModule],
10823
10922
  exports: [AXTabPageRendererComponent],
10824
10923
  entryComponents: [AXTabPageRendererComponent, AXTabPageHostComponent],
10825
- providers: [AXTabPageService],
10924
+ providers: [],
10826
10925
  })
10827
10926
  ], AXTabPageModule);
10828
10927
 
@@ -12809,7 +12908,10 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
12809
12908
  //seletedKeyFields set id of nodes and parents
12810
12909
  //selectedFieldName set name of fields that set selectes
12811
12910
  this.selectedFieldName = null;
12812
- this.selectNodesRecursive = 'all';
12911
+ // @Input()
12912
+ // selectNodesRecursive: 'all' | 'parents' | 'childs' | 'none' = 'all'; //leaf
12913
+ this.checkParents = true;
12914
+ this.checkChilds = true;
12813
12915
  this.seletedKeyFields = [];
12814
12916
  this.keyField = 'id';
12815
12917
  this.hasChildField = 'child';
@@ -12937,7 +13039,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
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;
@@ -13086,9 +13190,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13086
13190
  this.seletedKeyFields.forEach((n) => {
13087
13191
  if (n.includes(el[this.keyField])) {
13088
13192
  if (el[this.hasChildField] == true) {
13089
- // 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
+ }
13090
13197
  this.open(el);
13091
- // }
13092
13198
  }
13093
13199
  else {
13094
13200
  this.selectItem(el);
@@ -13099,9 +13205,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13099
13205
  }
13100
13206
  else if (this.selectedFieldName != null) {
13101
13207
  if (el[this.hasChildField] == true && el[this.selectedFieldName] == true) {
13102
- // 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
+ }
13103
13212
  this.open(el);
13104
- // }
13105
13213
  }
13106
13214
  else if (el[this.selectedFieldName] == true) {
13107
13215
  this.selectItem(el);
@@ -13134,7 +13242,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13134
13242
  if (this.selectionLevel == 'parents' && result[i][this.hasChildField] == false) {
13135
13243
  result[i].disabledCheckBox = true;
13136
13244
  }
13137
- 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) {
13138
13247
  result[i].select = this.itemRow.select === (undefined || null) ? false : this.itemRow.select;
13139
13248
  if (this.itemRow.select === true && this.selectionMode == 'multiple' && result[i][this.hasChildField] === false) {
13140
13249
  this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== result[i][this.keyField]);
@@ -13149,9 +13258,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13149
13258
  this.seletedKeyFields.forEach((n) => {
13150
13259
  if (n.includes(result[i][this.keyField])) {
13151
13260
  if (result[i][this.hasChildField] == true) {
13152
- // 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
+ }
13153
13265
  this.open(result[i]);
13154
- // }
13155
13266
  }
13156
13267
  else {
13157
13268
  this.selectItem(result[i]);
@@ -13162,9 +13273,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13162
13273
  }
13163
13274
  else if (this.selectedFieldName != null) {
13164
13275
  if (result[i][this.hasChildField] == true && result[i][this.selectedFieldName] == true) {
13165
- // 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
+ }
13166
13280
  this.open(result[i]);
13167
- // }
13168
13281
  }
13169
13282
  else if (result[i][this.selectedFieldName] == true) {
13170
13283
  this.selectItem(result[i]);
@@ -13329,6 +13442,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
13329
13442
  this.internalSelectItem(item, false);
13330
13443
  }
13331
13444
  }
13445
+ unSelectItem(item) {
13446
+ if (item['select'] == true) {
13447
+ this.internalSelectItem(item, false);
13448
+ }
13449
+ }
13332
13450
  open(item) {
13333
13451
  if (item['toggle'] !== true) {
13334
13452
  this.toggleNode(item, true);
@@ -13410,8 +13528,12 @@ __decorate([
13410
13528
  ], AXTreeViewComponent.prototype, "selectedFieldName", void 0);
13411
13529
  __decorate([
13412
13530
  Input(),
13413
- __metadata("design:type", String)
13414
- ], AXTreeViewComponent.prototype, "selectNodesRecursive", void 0);
13531
+ __metadata("design:type", Boolean)
13532
+ ], AXTreeViewComponent.prototype, "checkParents", void 0);
13533
+ __decorate([
13534
+ Input(),
13535
+ __metadata("design:type", Boolean)
13536
+ ], AXTreeViewComponent.prototype, "checkChilds", void 0);
13415
13537
  __decorate([
13416
13538
  Input(),
13417
13539
  __metadata("design:type", Array)