@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.
- package/acorex-components.metadata.json +1 -1
- package/bundles/acorex-components.umd.js +177 -25
- 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/query-builder/query-builder-group.component.js +14 -5
- package/esm2015/lib/query-builder/query-builder-rule.component.js +7 -2
- 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 +38 -15
- package/esm5/lib/query-builder/query-builder-group.component.js +15 -5
- package/esm5/lib/query-builder/query-builder-rule.component.js +7 -2
- 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 +38 -15
- package/fesm2015/acorex-components.js +148 -26
- package/fesm2015/acorex-components.js.map +1 -1
- package/fesm5/acorex-components.js +178 -26
- 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';
|
|
@@ -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
|
|
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:
|
|
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
|
-
|
|
9591
|
-
this.group.
|
|
9592
|
-
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\"
|
|
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>",
|
|
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 :
|
|
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
|
|
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\"
|
|
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-
|
|
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: [
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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",
|
|
13414
|
-
], AXTreeViewComponent.prototype, "
|
|
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)
|