@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.
- package/acorex-components.metadata.json +1 -1
- package/bundles/acorex-components.umd.js +180 -27
- package/bundles/acorex-components.umd.js.map +1 -1
- package/bundles/acorex-components.umd.min.js +1 -1
- package/bundles/acorex-components.umd.min.js.map +1 -1
- package/esm2015/lib/number-box/number-box.component.js +1 -2
- package/esm2015/lib/query-builder/query-builder-group.component.js +14 -5
- package/esm2015/lib/query-builder/query-builder-rule.component.js +7 -3
- package/esm2015/lib/query-builder/query-builder.component.js +10 -5
- package/esm2015/lib/query-builder/query-builder.service.js +84 -4
- package/esm2015/lib/tab-page/tab-page.module.js +2 -3
- package/esm2015/lib/tree-view/tree-view.component.js +40 -15
- package/esm5/lib/number-box/number-box.component.js +1 -2
- package/esm5/lib/query-builder/query-builder-group.component.js +15 -5
- package/esm5/lib/query-builder/query-builder-rule.component.js +7 -3
- package/esm5/lib/query-builder/query-builder.component.js +10 -5
- package/esm5/lib/query-builder/query-builder.service.js +113 -4
- package/esm5/lib/tab-page/tab-page.module.js +2 -3
- package/esm5/lib/tree-view/tree-view.component.js +41 -15
- package/fesm2015/acorex-components.js +150 -28
- package/fesm2015/acorex-components.js.map +1 -1
- package/fesm5/acorex-components.js +181 -28
- package/fesm5/acorex-components.js.map +1 -1
- package/lib/query-builder/query-builder-group.component.d.ts +1 -0
- package/lib/query-builder/query-builder-rule.component.d.ts +1 -0
- package/lib/query-builder/query-builder.component.d.ts +1 -0
- package/lib/query-builder/query-builder.service.d.ts +2 -1
- package/lib/tree-view/tree-view.component.d.ts +3 -1
- 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
|
|
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:
|
|
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
|
-
|
|
9593
|
-
this.group.
|
|
9594
|
-
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\"
|
|
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> <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> <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> <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> <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 :
|
|
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
|
|
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\"
|
|
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-
|
|
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: [
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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",
|
|
13409
|
-
], AXTreeViewComponent.prototype, "
|
|
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)
|