@pepperi-addons/ngx-lib 0.3.15-beta.15 → 0.3.15-beta.18
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/bundles/pepperi-addons-ngx-lib-dialog.umd.js +1 -0
- package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-link.umd.js +2 -1
- package/bundles/pepperi-addons-ngx-lib-link.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +3 -1
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +102 -5
- package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-remote-loader.umd.js +0 -1
- package/bundles/pepperi-addons-ngx-lib-remote-loader.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +176 -15
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
- package/esm2015/dialog/dialog.component.js +2 -1
- package/esm2015/link/link.component.js +3 -3
- package/esm2015/link/link.pipes.js +3 -2
- package/esm2015/quantity-selector/quantity-selector.component.js +4 -2
- package/esm2015/query-builder/common/model/operator-unit.js +2 -2
- package/esm2015/query-builder/common/model/operator.js +50 -2
- package/esm2015/query-builder/common/model/type-map.js +2 -2
- package/esm2015/query-builder/common/services/output-query.service.js +4 -2
- package/esm2015/query-builder/common/services/query-structure.service.js +31 -1
- package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +4 -2
- package/esm2015/query-builder/query-builder.component.js +6 -1
- package/esm2015/query-builder/query-builder.service.js +7 -5
- package/esm2015/remote-loader/addon-block-loader.component.js +1 -1
- package/esm2015/remote-loader/remote-loader.component.js +2 -3
- package/esm2015/remote-loader/remote-loader.service.js +1 -1
- package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +37 -8
- package/esm2015/smart-filters/common/model/base-filter-component.js +38 -5
- package/esm2015/smart-filters/common/model/operator.js +67 -1
- package/esm2015/smart-filters/common/model/type.js +1 -1
- package/esm2015/smart-filters/date-filter/date-filter.component.js +16 -4
- package/esm2015/smart-filters/number-filter/number-filter.component.js +11 -4
- package/esm2015/smart-filters/text-filter/text-filter.component.js +11 -4
- package/fesm2015/pepperi-addons-ngx-lib-dialog.js +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.js +4 -3
- package/fesm2015/pepperi-addons-ngx-lib-link.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +3 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +94 -6
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.js +1 -2
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +170 -16
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
- package/package.json +1 -1
- package/query-builder/common/model/operator-unit.d.ts +1 -1
- package/query-builder/common/model/type-map.d.ts +1 -1
- package/query-builder/common/services/query-structure.service.d.ts +3 -0
- package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -1
- package/query-builder/query-builder-item/query-builder-item.component.d.ts +1 -0
- package/query-builder/query-builder.component.d.ts +1 -0
- package/remote-loader/package.json +1 -1
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +14 -0
- package/smart-filters/common/model/base-filter-component.d.ts +4 -1
- package/smart-filters/common/model/operator.d.ts +12 -0
- package/smart-filters/common/model/type.d.ts +1 -1
- package/smart-filters/date-filter/date-filter.component.d.ts +13 -0
- package/smart-filters/number-filter/number-filter.component.d.ts +9 -0
- package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
- package/smart-filters/text-filter/text-filter.component.d.ts +9 -0
- package/src/assets/i18n/en.ngx-lib.json +8 -0
|
@@ -31,21 +31,41 @@
|
|
|
31
31
|
smartFilter: smartFilters.PepSmartFilterOperators.Equals,
|
|
32
32
|
type: ['boolean', 'int', 'text']
|
|
33
33
|
};
|
|
34
|
+
var EqualsVariable = {
|
|
35
|
+
legacy: 'IsEqualVariable',
|
|
36
|
+
smartFilter: smartFilters.PepSmartFilterVariableOperators.EqualsToVariable,
|
|
37
|
+
type: ['boolean', 'int', 'text']
|
|
38
|
+
};
|
|
34
39
|
var NotEqual = {
|
|
35
40
|
legacy: 'IsNotEqual',
|
|
36
41
|
smartFilter: smartFilters.PepSmartFilterOperators.NotEqual,
|
|
37
42
|
type: null
|
|
38
43
|
};
|
|
44
|
+
var NotEqualsVariable = {
|
|
45
|
+
legacy: 'IsNotEqualVariable',
|
|
46
|
+
smartFilter: smartFilters.PepSmartFilterVariableOperators.NotEqualsToVariable,
|
|
47
|
+
type: ['boolean', 'int', 'text']
|
|
48
|
+
};
|
|
39
49
|
var LessThan = {
|
|
40
50
|
legacy: '<',
|
|
41
51
|
smartFilter: smartFilters.PepSmartFilterOperators.LessThan,
|
|
42
52
|
type: null
|
|
43
53
|
};
|
|
54
|
+
var LessThanVarible = {
|
|
55
|
+
legacy: 'LessThanVarible',
|
|
56
|
+
smartFilter: smartFilters.PepSmartFilterVariableOperators.LessThanVariable,
|
|
57
|
+
type: null
|
|
58
|
+
};
|
|
44
59
|
var GreaterThan = {
|
|
45
60
|
legacy: '>',
|
|
46
61
|
smartFilter: smartFilters.PepSmartFilterOperators.GreaterThan,
|
|
47
62
|
type: null
|
|
48
63
|
};
|
|
64
|
+
var GreaterThanVarible = {
|
|
65
|
+
legacy: 'GreaterThanVarible',
|
|
66
|
+
smartFilter: smartFilters.PepSmartFilterVariableOperators.GreaterThanVariable,
|
|
67
|
+
type: null
|
|
68
|
+
};
|
|
49
69
|
/*
|
|
50
70
|
const GreaterThanOrEquals: IPepQueryBuilderOperator = {
|
|
51
71
|
legacy: {
|
|
@@ -128,11 +148,26 @@
|
|
|
128
148
|
smartFilter: smartFilters.PepSmartFilterOperators.InTheLast,
|
|
129
149
|
type: null
|
|
130
150
|
};
|
|
151
|
+
var InTheLastCalendar = {
|
|
152
|
+
legacy: 'InTheLastCalendar',
|
|
153
|
+
smartFilter: smartFilters.PepSmartFilterAdditionalOperators.InTheLastCalendar,
|
|
154
|
+
type: null
|
|
155
|
+
};
|
|
156
|
+
var InTheLastVariable = {
|
|
157
|
+
legacy: 'InTheLastVariable',
|
|
158
|
+
smartFilter: smartFilters.PepSmartFilterVariableOperators.InTheLastVariable,
|
|
159
|
+
type: null
|
|
160
|
+
};
|
|
131
161
|
var NotInTheLast = {
|
|
132
162
|
legacy: 'NotInTheLast',
|
|
133
163
|
smartFilter: smartFilters.PepSmartFilterOperators.NotInTheLast,
|
|
134
164
|
type: null
|
|
135
165
|
};
|
|
166
|
+
var NotInTheLastCalendar = {
|
|
167
|
+
legacy: 'NotInTheLastCalendar',
|
|
168
|
+
smartFilter: smartFilters.PepSmartFilterAdditionalOperators.NotInTheLastCalendar,
|
|
169
|
+
type: null
|
|
170
|
+
};
|
|
136
171
|
var Today = {
|
|
137
172
|
legacy: 'Today',
|
|
138
173
|
smartFilter: smartFilters.PepSmartFilterOperators.Today,
|
|
@@ -153,6 +188,11 @@
|
|
|
153
188
|
smartFilter: smartFilters.PepSmartFilterOperators.DateRange,
|
|
154
189
|
type: ['date-time']
|
|
155
190
|
};
|
|
191
|
+
var dateRangeVariable = {
|
|
192
|
+
legacy: 'BetweenVariable',
|
|
193
|
+
smartFilter: smartFilters.PepSmartFilterVariableOperators.DateRangeVariable,
|
|
194
|
+
type: ['date-time']
|
|
195
|
+
};
|
|
156
196
|
var DueIn = {
|
|
157
197
|
legacy: 'DueIn',
|
|
158
198
|
smartFilter: smartFilters.PepSmartFilterOperators.DueIn,
|
|
@@ -185,10 +225,14 @@
|
|
|
185
225
|
};
|
|
186
226
|
var PepQueryBuilderOperators = [
|
|
187
227
|
Equals,
|
|
228
|
+
EqualsVariable,
|
|
188
229
|
NotEqual,
|
|
230
|
+
NotEqualsVariable,
|
|
189
231
|
LessThan,
|
|
232
|
+
LessThanVarible,
|
|
190
233
|
// LessThanOrEquals,
|
|
191
234
|
GreaterThan,
|
|
235
|
+
GreaterThanVarible,
|
|
192
236
|
// GreaterThanOrEquals,
|
|
193
237
|
NumberRange,
|
|
194
238
|
Contains,
|
|
@@ -197,11 +241,15 @@
|
|
|
197
241
|
// After,
|
|
198
242
|
// Before,
|
|
199
243
|
InTheLast,
|
|
244
|
+
InTheLastVariable,
|
|
245
|
+
InTheLastCalendar,
|
|
200
246
|
NotInTheLast,
|
|
247
|
+
NotInTheLastCalendar,
|
|
201
248
|
Today,
|
|
202
249
|
ThisWeek,
|
|
203
250
|
ThisMonth,
|
|
204
251
|
DateRange,
|
|
252
|
+
dateRangeVariable,
|
|
205
253
|
DueIn,
|
|
206
254
|
NotDueIn,
|
|
207
255
|
On,
|
|
@@ -253,7 +301,7 @@
|
|
|
253
301
|
* @param type legacy type
|
|
254
302
|
* @returns smart builder field type
|
|
255
303
|
*/
|
|
256
|
-
PepQueryBuilderTypeMap.prototype.
|
|
304
|
+
PepQueryBuilderTypeMap.prototype.getSmartFilterType = function (key) {
|
|
257
305
|
var item = this.map.get(key);
|
|
258
306
|
return item ? item : null;
|
|
259
307
|
};
|
|
@@ -287,7 +335,7 @@
|
|
|
287
335
|
* @param operationUnit legacy operation unit
|
|
288
336
|
* @returns smart filter operation unit item
|
|
289
337
|
*/
|
|
290
|
-
function
|
|
338
|
+
function getSmartFilterOperationUnit(operationUnit) {
|
|
291
339
|
var smartFilterOperationUnit = PepQueryBuilderOperationUnit.find(function (unit) { return unit.legacy === operationUnit; });
|
|
292
340
|
return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;
|
|
293
341
|
}
|
|
@@ -341,7 +389,7 @@
|
|
|
341
389
|
value: option.Value
|
|
342
390
|
};
|
|
343
391
|
})
|
|
344
|
-
}, typeMapper_1.
|
|
392
|
+
}, typeMapper_1.getSmartFilterType(field.FieldType)),
|
|
345
393
|
query: {
|
|
346
394
|
fieldType: field.FieldType
|
|
347
395
|
}
|
|
@@ -373,12 +421,14 @@
|
|
|
373
421
|
}) : null;
|
|
374
422
|
}
|
|
375
423
|
else if (operator === smartFilters.PepSmartFilterOperators.InTheLast ||
|
|
424
|
+
operator === smartFilters.PepSmartFilterAdditionalOperators.InTheLastCalendar ||
|
|
376
425
|
operator === smartFilters.PepSmartFilterOperators.NotInTheLast ||
|
|
426
|
+
operator === smartFilters.PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||
|
|
377
427
|
operator === smartFilters.PepSmartFilterOperators.DueIn ||
|
|
378
428
|
operator === smartFilters.PepSmartFilterOperators.NotDueIn) { //operation unit
|
|
379
429
|
data.first = ((_b = current === null || current === void 0 ? void 0 : current.Values) === null || _b === void 0 ? void 0 : _b.length) > 0 ? current.Values[0] : null;
|
|
380
430
|
if (((_c = current === null || current === void 0 ? void 0 : current.Values) === null || _c === void 0 ? void 0 : _c.length) === 2) {
|
|
381
|
-
data.operationUnit =
|
|
431
|
+
data.operationUnit = getSmartFilterOperationUnit(current.Values[1]);
|
|
382
432
|
}
|
|
383
433
|
}
|
|
384
434
|
else {
|
|
@@ -482,7 +532,9 @@
|
|
|
482
532
|
values = current.values.first;
|
|
483
533
|
}
|
|
484
534
|
else if (current.operator === smartFilters.PepSmartFilterOperators.InTheLast ||
|
|
535
|
+
current.operator === smartFilters.PepSmartFilterAdditionalOperators.InTheLastCalendar ||
|
|
485
536
|
current.operator === smartFilters.PepSmartFilterOperators.NotInTheLast ||
|
|
537
|
+
current.operator === smartFilters.PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||
|
|
486
538
|
current.operator === smartFilters.PepSmartFilterOperators.DueIn ||
|
|
487
539
|
current.operator === smartFilters.PepSmartFilterOperators.NotDueIn) { //operation unit
|
|
488
540
|
values.push(current.values.first);
|
|
@@ -629,6 +681,7 @@
|
|
|
629
681
|
this._fields = [];
|
|
630
682
|
this._options = [];
|
|
631
683
|
this._selectedField = null;
|
|
684
|
+
this.variableFields = {};
|
|
632
685
|
this.filterChange = new i0.EventEmitter();
|
|
633
686
|
this.remove = new i0.EventEmitter();
|
|
634
687
|
this.setupForm();
|
|
@@ -743,7 +796,7 @@
|
|
|
743
796
|
PepQueryBuilderItemComponent.decorators = [
|
|
744
797
|
{ type: i0.Component, args: [{
|
|
745
798
|
selector: 'pep-query-builder-item',
|
|
746
|
-
template: "<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [
|
|
799
|
+
template: "<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>",
|
|
747
800
|
styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}"]
|
|
748
801
|
},] }
|
|
749
802
|
];
|
|
@@ -757,6 +810,7 @@
|
|
|
757
810
|
selected: [{ type: i0.Input }],
|
|
758
811
|
filter: [{ type: i0.Input }],
|
|
759
812
|
parentForm: [{ type: i0.Input }],
|
|
813
|
+
variableFields: [{ type: i0.Input }],
|
|
760
814
|
filterChange: [{ type: i0.Output }],
|
|
761
815
|
remove: [{ type: i0.Output }]
|
|
762
816
|
};
|
|
@@ -775,6 +829,7 @@
|
|
|
775
829
|
this._outputQueryService = _outputQueryService;
|
|
776
830
|
this._queryBuilderService = _queryBuilderService;
|
|
777
831
|
this._outputQuery$ = new rxjs.BehaviorSubject(null);
|
|
832
|
+
this._variableFields = {};
|
|
778
833
|
this._maxStructureDepth = MAX_STRUCTURE_DEPTH;
|
|
779
834
|
this.outputQuery$ = this._outputQuery$.asObservable();
|
|
780
835
|
}
|
|
@@ -803,6 +858,25 @@
|
|
|
803
858
|
enumerable: false,
|
|
804
859
|
configurable: true
|
|
805
860
|
});
|
|
861
|
+
Object.defineProperty(PepQueryStructureService.prototype, "variableFields", {
|
|
862
|
+
set: function (list) {
|
|
863
|
+
var _this = this;
|
|
864
|
+
if (list === null || list === void 0 ? void 0 : list.length) {
|
|
865
|
+
var typeMapper_1 = new PepQueryBuilderTypeMap();
|
|
866
|
+
list.forEach(function (field) {
|
|
867
|
+
var fieldType = _this.convertSmartFilterComponentType(typeMapper_1.getSmartFilterType(field.FieldType));
|
|
868
|
+
if (_this.hasProperty(_this._variableFields, fieldType)) {
|
|
869
|
+
_this._variableFields[fieldType].push(field.FieldID);
|
|
870
|
+
}
|
|
871
|
+
else {
|
|
872
|
+
_this._variableFields[fieldType] = [field.FieldID];
|
|
873
|
+
}
|
|
874
|
+
});
|
|
875
|
+
}
|
|
876
|
+
},
|
|
877
|
+
enumerable: false,
|
|
878
|
+
configurable: true
|
|
879
|
+
});
|
|
806
880
|
Object.defineProperty(PepQueryStructureService.prototype, "form", {
|
|
807
881
|
get: function () {
|
|
808
882
|
return this._form;
|
|
@@ -928,6 +1002,7 @@
|
|
|
928
1002
|
var formKey = "item" + counter;
|
|
929
1003
|
componentRef.instance.formKey = formKey;
|
|
930
1004
|
componentRef.instance.fields = this._smartFilterFields;
|
|
1005
|
+
componentRef.instance.variableFields = this._variableFields;
|
|
931
1006
|
var selectedField = this.getSelectedField(current);
|
|
932
1007
|
if (selectedField) {
|
|
933
1008
|
componentRef.instance.selected = selectedField;
|
|
@@ -960,6 +1035,19 @@
|
|
|
960
1035
|
return ((_b = this._smartFilterFields) === null || _b === void 0 ? void 0 : _b.length) > 0 ? this._smartFilterFields[0] : null;
|
|
961
1036
|
}
|
|
962
1037
|
};
|
|
1038
|
+
PepQueryStructureService.prototype.convertSmartFilterComponentType = function (type) {
|
|
1039
|
+
switch (type) {
|
|
1040
|
+
case 'int':
|
|
1041
|
+
case 'currency':
|
|
1042
|
+
case 'real':
|
|
1043
|
+
case 'percentage':
|
|
1044
|
+
return 'number';
|
|
1045
|
+
case 'date-time':
|
|
1046
|
+
return 'date';
|
|
1047
|
+
default:
|
|
1048
|
+
return type;
|
|
1049
|
+
}
|
|
1050
|
+
};
|
|
963
1051
|
/**
|
|
964
1052
|
* creates a legacy output query
|
|
965
1053
|
*/
|
|
@@ -1020,6 +1108,14 @@
|
|
|
1020
1108
|
enumerable: false,
|
|
1021
1109
|
configurable: true
|
|
1022
1110
|
});
|
|
1111
|
+
Object.defineProperty(PepQueryBuilderComponent.prototype, "variableFields", {
|
|
1112
|
+
set: function (list) {
|
|
1113
|
+
this.queryStructureService.variableFields = list;
|
|
1114
|
+
},
|
|
1115
|
+
enumerable: false,
|
|
1116
|
+
configurable: true
|
|
1117
|
+
});
|
|
1118
|
+
;
|
|
1023
1119
|
Object.defineProperty(PepQueryBuilderComponent.prototype, "maxDepth", {
|
|
1024
1120
|
set: function (value) {
|
|
1025
1121
|
this.queryStructureService.maxDepth = value;
|
|
@@ -1087,6 +1183,7 @@
|
|
|
1087
1183
|
PepQueryBuilderComponent.propDecorators = {
|
|
1088
1184
|
query: [{ type: i0.Input }],
|
|
1089
1185
|
fields: [{ type: i0.Input }],
|
|
1186
|
+
variableFields: [{ type: i0.Input }],
|
|
1090
1187
|
maxDepth: [{ type: i0.Input }],
|
|
1091
1188
|
queryChange: [{ type: i0.Output }],
|
|
1092
1189
|
formValidationChange: [{ type: i0.Output }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-query-builder.umd.js","sources":["../../../projects/ngx-lib/query-builder/common/model/operator.ts","../../../projects/ngx-lib/query-builder/common/model/type-map.ts","../../../projects/ngx-lib/query-builder/common/model/operator-unit.ts","../../../projects/ngx-lib/query-builder/query-builder.service.ts","../../../projects/ngx-lib/query-builder/common/services/output-query.service.ts","../../../projects/ngx-lib/query-builder/common/services/type-convertor.service.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.ts","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.ts","../../../projects/ngx-lib/query-builder/common/model/type.ts","../../../projects/ngx-lib/query-builder/common/services/query-structure.service.ts","../../../projects/ngx-lib/query-builder/query-builder.component.ts","../../../projects/ngx-lib/query-builder/query-builder.module.ts","../../../projects/ngx-lib/query-builder/public-api.ts","../../../projects/ngx-lib/query-builder/pepperi-addons-ngx-lib-query-builder.ts"],"sourcesContent":["import { PepSmartFilterOperators, IPepSmartFilterOperator } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\nexport interface IPepQueryBuilderOperator {\n legacy: string, //legacy Operator \n smartFilter: IPepSmartFilterOperator, //smart filter operator \n type: PepSmartFilterType[] | null //smart filter type\n}\n\nconst Equals: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.Equals,\n type: ['boolean', 'int', 'text']\n};\n\nconst NotEqual: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n smartFilter: PepSmartFilterOperators.NotEqual,\n type: null\n};\n\nconst LessThan: IPepQueryBuilderOperator = {\n legacy: '<',\n smartFilter: PepSmartFilterOperators.LessThan,\n type: null\n};\n\nconst GreaterThan: IPepQueryBuilderOperator = {\n legacy: '>',\n smartFilter: PepSmartFilterOperators.GreaterThan,\n type: null\n};\n\n/*\nconst GreaterThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '>=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.GreaterThanOrEquals,\n type: 'int'\n }\n};\n\nconst LessThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '<=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.LessThanOrEquals,\n type: 'int',\n type: 'Integer'\n }\n}; */\n\nconst NumberRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.NumberRange,\n type: ['int']\n};\n\nconst Contains: IPepQueryBuilderOperator = {\n legacy: 'Contains',\n smartFilter: PepSmartFilterOperators.Contains,\n type: null\n};\n\n/*\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'BeginsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.BeginsWith,\n type: 'text'\n }\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'EndsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.EndsWith,\n type: 'text'\n }\n};\n\nconst Before: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'Before',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.Before,\n type: 'date'\n }\n};\n\nconst After: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'After',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.After,\n type: 'date'\n }\n}; */\n\nconst InTheLast: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n smartFilter: PepSmartFilterOperators.InTheLast,\n type: null\n};\n\nconst NotInTheLast: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLast',\n smartFilter: PepSmartFilterOperators.NotInTheLast,\n type: null\n};\n\nconst Today: IPepQueryBuilderOperator = {\n legacy: 'Today',\n smartFilter: PepSmartFilterOperators.Today,\n type: null\n};\n\nconst ThisWeek: IPepQueryBuilderOperator = {\n legacy: 'ThisWeek',\n smartFilter: PepSmartFilterOperators.ThisWeek,\n type: null\n};\n\nconst ThisMonth: IPepQueryBuilderOperator = {\n legacy: 'ThisMonth',\n smartFilter: PepSmartFilterOperators.ThisMonth,\n type: null\n};\n\nconst DateRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.DateRange,\n type: ['date-time']\n};\n\nconst DueIn: IPepQueryBuilderOperator = {\n legacy: 'DueIn',\n smartFilter: PepSmartFilterOperators.DueIn,\n type: null\n};\n\nconst NotDueIn: IPepQueryBuilderOperator = {\n legacy: 'NotDueIn',\n smartFilter: PepSmartFilterOperators.NotDueIn,\n type: null\n};\n\nconst On: IPepQueryBuilderOperator = {\n legacy: 'On',\n smartFilter: PepSmartFilterOperators.On,\n type: null\n};\n\nconst IsEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsEmpty',\n smartFilter: PepSmartFilterOperators.IsEmpty,\n type: null\n};\n\nconst IsNotEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsNotEmpty',\n smartFilter: PepSmartFilterOperators.IsNotEmpty,\n type: null\n};\n\nconst In: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.In,\n type: ['multi-select']\n};\n\n\nconst PepQueryBuilderOperators = [\n Equals,\n NotEqual,\n LessThan,\n // LessThanOrEquals,\n GreaterThan,\n // GreaterThanOrEquals,\n NumberRange,\n Contains,\n // BeginsWith,\n // EndsWith,\n // After,\n // Before,\n InTheLast,\n NotInTheLast,\n Today,\n ThisWeek,\n ThisMonth,\n DateRange,\n DueIn,\n NotDueIn,\n On,\n IsEmpty,\n IsNotEmpty,\n In\n]\n\n/**\n * gets a smart filter operator item\n * @param operator legacy operator\n * @param type smart filter's type\n * @returns smart filter operator item\n */\nexport function getSmartFilterOperator(operator: string, type: PepSmartFilterType): IPepSmartFilterOperator | null {\n const smartFilterOperator = PepQueryBuilderOperators.find(item =>\n item.legacy === operator &&\n (item.type === null || item.type.includes(type))\n );\n return smartFilterOperator ? smartFilterOperator.smartFilter : null;\n}\n\n/**\n * gets a legacy operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns legacy operator value\n */\nexport function getLegacyOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): string | null {\n const legacyOperator = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return legacyOperator ? legacyOperator.legacy : null;\n}\n","import { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\n\nexport class PepQueryBuilderTypeMap {\n private map: Map<string, PepSmartFilterType>;\n\n constructor() {\n this.loadTypes();\n }\n\n private loadTypes() {\n this.map = new Map<string, PepSmartFilterType>();\n this.map.set('Bool', 'boolean');\n this.map.set('JsonBool', 'boolean');\n this.map.set('Integer', 'int');\n this.map.set('Double', 'int');\n this.map.set('String', 'text');\n this.map.set('Guid', 'text');\n this.map.set('Date', 'date');\n this.map.set('DateTime', 'date-time');\n this.map.set('MultipleStringValues', 'multi-select');\n }\n\n /**\n * Converts legacy field type to smart builder type\n * @param type legacy type\n * @returns smart builder field type\n */\n getSmartBuilderType(key: string): PepSmartFilterType | null {\n const item = this.map.get(key);\n return item ? item : null;\n }\n\n}\n\n","\nimport { IPepSmartFilterOperatorUnit, PepSmartFilterOperatorUnits } from '@pepperi-addons/ngx-lib/smart-filters';\n\ninterface IPepQueryBuilderOperationUnit {\n legacy: string,\n smartFilter: IPepSmartFilterOperatorUnit,\n}\n\nconst Days: IPepQueryBuilderOperationUnit = {\n legacy: 'Days',\n smartFilter: PepSmartFilterOperatorUnits.Days\n};\n\nconst Weeks: IPepQueryBuilderOperationUnit = {\n legacy: 'Weeks',\n smartFilter: PepSmartFilterOperatorUnits.Weeks\n};\n\nconst Months: IPepQueryBuilderOperationUnit = {\n legacy: 'Months',\n smartFilter: PepSmartFilterOperatorUnits.Months\n};\n\nconst Years: IPepQueryBuilderOperationUnit = {\n legacy: 'Years',\n smartFilter: PepSmartFilterOperatorUnits.Years\n};\n\nconst PepQueryBuilderOperationUnit = [\n Days,\n Weeks,\n Months,\n Years,\n];\n\n/**\n * gets a smart filter operation unit item\n * @param operationUnit legacy operation unit\n * @returns smart filter operation unit item\n */\nexport function getSmartBuilderOperationUnit(operationUnit: string): IPepSmartFilterOperatorUnit | null {\n const smartFilterOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.legacy === operationUnit);\n return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;\n}\n\n/**\n * gets a legacy operation unit value\n * @param operationUnit smart filter operation unit item\n * @returns legacy operation unit value\n */\nexport function getLegacyOperationUnit(operationUnit: IPepSmartFilterOperatorUnit): string | null {\n const legacyOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.smartFilter === operationUnit);\n return legacyOperationUnit ? legacyOperationUnit.legacy : null;\n}\n","import { Injectable } from '@angular/core';\nimport { \n IPepQueryBuilderField, \n IPepQueryItem \n} from './common/model/legacy';\nimport { \n IPepSmartFilterData,\n PepSmartFilterOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { getSmartFilterOperator } from './common/model/operator';\nimport { IPepQueryBuilderFieldContainer } from './common/model/field';\nimport { PepQueryBuilderTypeMap } from './common/model/type-map';\nimport { getSmartBuilderOperationUnit } from './common/model/operator-unit';\nimport { IPepQueryBuilderValues } from './common/model/filter';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PepQueryBuilderService {\n\n constructor() {\n //\n }\n\n /**\n * creates a smart filter object\n * @param current filter legacy element\n * @param field filter's selected field\n * @returns smart filter object\n */\n getFilter(current: IPepQueryItem, field: PepSmartFilterBaseField): IPepSmartFilterData | null { \n const operator: IPepSmartFilterOperator = getSmartFilterOperator(current.Operation, field.type);\n if (operator) {\n const filterValues: IPepQueryBuilderValues = this.getFilterValues(current, operator, field);\n return createSmartFilter(\n current.ApiName,\n operator,\n filterValues.first,\n filterValues.second,\n filterValues.operationUnit\n );\n } else {\n return null;\n }\n }\n \n /**\n * converts legacy fields to smart filter fields\n * @param fields legacy fields array\n * @returns smart filter fields array\n */\n convertToSmartFilterFields(fields: Array<IPepQueryBuilderField>): Array<IPepQueryBuilderFieldContainer> {\n if (fields?.length > 0) {\n const typeMapper = new PepQueryBuilderTypeMap();\n\n return fields.map((field) => {\n return {\n smart: createSmartFilterField(\n {\n id: field.FieldID,\n name: field.Title,\n options: field.OptionalValues?.map(option => {\n return {\n key: option.Key,\n value: option.Value\n }\n })\n }, typeMapper.getSmartBuilderType(field.FieldType) as PepSmartFilterType),\n query: {\n fieldType: field.FieldType\n }\n }\n })\n } else {\n return [];\n }\n }\n \n /**\n * gets smart filter's values data\n * @param current filter legacy element\n * @param operator smart filter operator\n * @param field filter's selected field\n * @returns object contains the filter values data\n */\n private getFilterValues(current: IPepQueryItem, operator: IPepSmartFilterOperator, field: any) {\n const data: IPepQueryBuilderValues = {\n first: null,\n second: null,\n operationUnit: null\n };\n\n if (operator === PepSmartFilterOperators.In) { //multi select \n //filter keys don't exist on field options\n data.first = current?.Values?.length > 0 ? current.Values.filter(item => {\n return field.options.find(option => option.key === item);\n }) : null;\n } else if (\n operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n if (current?.Values?.length === 2) {\n data.operationUnit = getSmartBuilderOperationUnit(current.Values[1]);\n }\n } else {\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n data.second = current?.Values?.length === 2 ? current.Values[1] : null;\n }\n\n return data;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { IPepQuerySection, IPepQueryItem } from '../model/legacy';\nimport { getLegacyOperator } from '../model/operator';\nimport { PepOperatorTypes } from '../model/type';\nimport { getLegacyOperationUnit } from '../model/operator-unit';\nimport { PepSmartFilterOperators } from '@pepperi-addons/ngx-lib/smart-filters';\n\n\n@Injectable()\nexport class PepOutputQueryService {\n private _complexIdCounter: number;\n private _expressionIdCounter: number;\n\n constructor() {\n //\n }\n\n /**\n * generates a legacy query structure \n * @param filters UI smart filters structure \n * @returns legacy query\n */\n generateQuery(filters: any) {\n this.initParams();\n\n return this.sectionWalk(filters);\n }\n\n /**\n * init params\n */\n private initParams() {\n this._complexIdCounter = 1;\n this._expressionIdCounter = 1;\n }\n\n /**\n * a recursive function dynamically builds legacy query structure\n * @param current UI object represents either a section or filter component\n * @returns section query data\n */\n private sectionWalk(current: any) {\n let section: IPepQuerySection | IPepQueryItem = null;\n\n Object.keys(current).forEach(key => {\n if (key.includes('item')) {\n section = this.addToSection(section, {\n ExpressionId: (this._expressionIdCounter++).toString(),\n ApiName: current[key].smart.fieldId,\n FieldType: current[key].query.fieldType,\n Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),\n Values: this.getItemValues(current[key].smart)\n } as IPepQueryItem, current.operator);\n } else if (key.includes('section')) {\n const childSection = this.sectionWalk(current[key]);\n if (childSection) {\n section = this.addToSection(section, childSection, current.operator);\n }\n }\n });\n\n return section;\n }\n\n /**\n * adds a legacy filter object to the current query structure\n * @param section section query data\n * @param item filter item\n * @param operator query operator\n * @returns \n */\n private addToSection(section: any, item: any, operator: string): any {\n return section ? this.createSection(section, item, operator) : item;\n }\n\n /**\n * creates a legacy complex object\n * @param left LeftNode object\n * @param right RightNode object\n * @param operator query operator\n * @returns legacy complex object\n */\n private createSection(left: any, right: any, operator: string): IPepQuerySection {\n return {\n ComplexId: (this._complexIdCounter++).toString(),\n LeftNode: left,\n RightNode: right,\n Operation: <PepOperatorTypes>operator\n }\n }\n\n /**\n * gets legacy filter values object\n * @param current UI filter object's values\n * @returns an array represents legacy values\n */\n private getItemValues(current: any) {\n let values: any[] = [];\n\n if (current?.values?.first) {\n if (current.operator === PepSmartFilterOperators.In) { //multi select \n values = current.values.first;\n } else if (\n current.operator === PepSmartFilterOperators.InTheLast ||\n current.operator === PepSmartFilterOperators.NotInTheLast ||\n current.operator === PepSmartFilterOperators.DueIn ||\n current.operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit \n values.push(current.values.first);\n if (current.operatorUnit) {\n values.push(getLegacyOperationUnit(current.operatorUnit));\n }\n } else {\n values.push(current.values.first);\n if (current.values.second) {\n values.push(current.values.second);\n }\n }\n }\n\n return values;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Injectable()\nexport class PepTypeConvertorService {\n private readonly _operators: IPepOption[] = [];\n private readonly _booleans: IPepOption[] = [];\n\n public get operators(): IPepOption[] {\n return this._operators;\n }\n\n public get booleans(): IPepOption[] {\n return this._booleans;\n }\n\n constructor() {\n this.initOperators();\n this.initBooleans();\n }\n\n private initOperators() {\n this._operators.push({\n key: 'AND',\n value: 'And'\n });\n this._operators.push({\n key: 'OR',\n value: 'Or'\n });\n }\n\n private initBooleans() {\n this._booleans.push({\n key: 'True',\n value: 'True'\n });\n this._booleans.push({\n key: 'False',\n value: 'False'\n });\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n IPepButtonClickEvent,\n PepButton,\n} from '@pepperi-addons/ngx-lib/button';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryDepth } from '../common/model/structure';\n\n@Component({\n selector: 'pep-query-builder-section',\n templateUrl: './query-builder-section.component.html',\n styleUrls: ['./query-builder-section.component.scss', './query-builder-section.component.theme.scss'],\n})\nexport class PepQueryBuilderSectionComponent {\n @Input() form: FormGroup;\n @Input() depth: IPepQueryDepth;\n @Input() hasFields = true;\n\n @Output()\n createSection = new EventEmitter();\n @Output()\n createItem = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n @Output()\n operatorChange = new EventEmitter();\n\n @ViewChild('sectionContainer', { read: ViewContainerRef, static: true }) sectionContainer: ViewContainerRef;\n\n toggleButtons: Array<PepButton>;\n\n constructor(private _typeConvertorService: PepTypeConvertorService) {\n }\n\n ngOnInit() {\n this.initOperators();\n }\n\n get f() {\n return this.form.controls;\n }\n\n initOperators() {\n this.toggleButtons = this._typeConvertorService.operators.map((operator: IPepOption) => {\n return {\n key: operator.key,\n value: operator.value,\n callback: (event: IPepButtonClickEvent) =>\n this.onOperatorChanged(event)\n } as PepButton\n });\n }\n\n onOperatorChanged(event) {\n if (event?.source?.key) {\n this.f.operator.setValue(event.source.key);\n this.operatorChange.emit();\n }\n }\n\n onAddRuleClicked() {\n this.createItem.emit();\n }\n\n onAddRuleSetClicked() {\n this.createSection.emit();\n }\n\n onDeleteSectionClicked() {\n this.remove.emit();\n }\n\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { PepSmartFilterBaseField, IPepSmartFilterField } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepSmartFilterData } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryBuilderFieldContainer } from '../common/model/field';\n\n@Component({\n selector: 'pep-query-builder-item',\n templateUrl: './query-builder-item.component.html',\n styleUrls: ['./query-builder-item.component.scss'],\n})\nexport class PepQueryBuilderItemComponent {\n @Input() formKey: string;\n _fields: Array<IPepQueryBuilderFieldContainer> = [];\n _options: IPepOption[] = [];\n @Input()\n set fields(list: Array<IPepQueryBuilderFieldContainer>) {\n if (list?.length > 0) {\n this._fields = list;\n this._options = list.map(field => {\n return {\n key: field.smart.id,\n value: field.smart.name\n }\n })\n }\n }\n _selectedField: PepSmartFilterBaseField = null;\n @Input()\n set selected(value: IPepQueryBuilderFieldContainer) {\n if (value) {\n this._selectedField = value.smart;\n this.queryForm.fieldType.setValue(value.query.fieldType);\n }\n }\n _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n if (value) {\n this._filter = value;\n }\n }\n _parentForm: FormGroup;\n @Input()\n set parentForm(value: FormGroup) {\n if (value) {\n this._parentForm = value;\n this.addToParentForm();\n }\n }\n\n @Output()\n filterChange = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n\n form: FormGroup;\n\n constructor(\n private _fb: FormBuilder,\n public typeConvertorService: PepTypeConvertorService\n ) {\n this.setupForm();\n }\n\n ngOnInit() {\n //\n }\n\n get f() {\n return this.form.controls;\n }\n\n get queryForm() {\n return (this.f.query as FormGroup).controls;\n }\n\n setupForm() {\n this.form = this._fb.group({\n smart: this._fb.group({\n fieldId: this._fb.control(null),\n fieldType: this._fb.control(null),\n operator: this._fb.control(null),\n operatorUnit: this._fb.control(null),\n values: this._fb.group({\n first: this._fb.control(null),\n second: this._fb.control(null)\n })\n }),\n query: this._fb.group({\n fieldType: this._fb.control(null)\n })\n });\n }\n\n addToParentForm() {\n this._parentForm.setControl(this.formKey, this.form);\n }\n\n onFieldChanged(key) {\n const item = this._fields.find(field => field.smart.id === key);\n\n this.setupForm();\n this.queryForm.fieldType.setValue(item.query.fieldType);\n this.addToParentForm();\n\n /**\n * hack due to angular's change detection bug -\n * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]\n */\n this._selectedField = null;\n setTimeout(() => {\n this._selectedField = item ? item.smart : null;\n }, 0);\n\n this._filter = null;\n }\n\n onFilterChanged() {\n if (this.form.valid) {\n this.filterChange.emit();\n }\n }\n\n onDeleteItemClicked() {\n this.remove.emit();\n }\n\n\n\n}\n","export enum PepOperatorTypes {\n And = 'AND',\n Or = 'OR'\n}\n\n","import { Injectable, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { } from 'lodash';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from '../../common/model/legacy';\nimport { \n IPepSmartFilterData,\n PepSmartFilterOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepQueryBuilderService } from '../../query-builder.service';\nimport { PepOutputQueryService } from '../../common/services/output-query.service';\nimport { getSmartFilterOperator } from '../../common/model/operator';\nimport { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';\nimport { IPepQueryBuilderFieldContainer } from '../../common/model/field';\nimport { PepQueryBuilderTypeMap } from '../../common/model/type-map';\nimport { getSmartBuilderOperationUnit } from '../../common/model/operator-unit';\nimport { IPepQueryBuilderValues } from '../../common/model/filter';\nimport { PepOperatorTypes } from '../../common/model/type';\n\nconst MAX_STRUCTURE_DEPTH = 3;\n\n@Injectable()\nexport class PepQueryStructureService {\n private _outputQuery$ = new BehaviorSubject<IPepQuerySection | IPepQueryItem>(null);\n\n private _smartFilterFields: Array<IPepQueryBuilderFieldContainer>;\n private _form: FormGroup;\n private _maxStructureDepth = MAX_STRUCTURE_DEPTH;\n\n public outputQuery$ = this._outputQuery$.asObservable();\n\n constructor(\n private _fb: FormBuilder, \n private _resolver: ComponentFactoryResolver, \n private _outputQueryService: PepOutputQueryService,\n private _queryBuilderService: PepQueryBuilderService) {\n\n }\n\n set maxDepth(value) {\n this._maxStructureDepth = value;\n }\n\n get maxDepth() {\n return this._maxStructureDepth;\n }\n\n set fields(list: Array<IPepQueryBuilderField>) {\n this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);\n }\n\n get hasFields(): boolean {\n return this._smartFilterFields?.length > 0;\n }\n\n set form(value: FormGroup) {\n this._form = value;\n }\n\n get form() {\n return this._form;\n }\n\n /**\n * builds a dynamic UI query structure\n * might has a different structure than the query's due to parent-child elements merge\n * @param query legacy query \n * @param containerRef reference to root element\n */\n buildQueryStructure(\n query: IPepQuerySection | IPepQueryItem,\n containerRef: ViewContainerRef\n ) {\n //update root operator \n if (this.hasProperty(query, 'ComplexId') &&\n query?.Operation &&\n query.Operation !== this._form.get('operator').value) {\n this._form.get('operator').setValue(query.Operation);\n }\n this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);\n }\n\n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n private hasProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n /**\n * a recursive function dynamically builds UI filters structure\n * @param parentOperator parent legacy complex operator\n * @param current child legacy object (either another complex or expression type)\n * @param containerRef parent element\n * @param parentForm parent form\n */\n private flatten(parentOperator: string, current: IPepQuerySection | IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n if (this.hasProperty(current, 'ComplexId')) {\n const section = current as IPepQuerySection;\n if (parentOperator === current.Operation) {\n this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);\n this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);\n } else {\n const result = this.createSection(section.Operation, containerRef, parentForm, depth);\n this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);\n this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);\n }\n } else if (this.hasProperty(current, 'ExpressionId')) {\n this.createItem(current as IPepQueryItem, containerRef, parentForm);\n }\n }\n\n /**\n * creates a container object of two or more child filter items\n * @param operator AND/OR operator\n * @param containerRef parent element\n * @param parentForm parent form\n * @param depth\n * @returns an object containing the current element and current form\n */\n createSection(operator: PepOperatorTypes, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);\n const componentRef = containerRef.createComponent(factory);\n\n const sectionGroup = this._fb.group({\n operator: this._fb.control(operator)\n });\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) { counter++; } });\n const formKey = `section${counter}`;\n parentForm.addControl(formKey, sectionGroup);\n\n componentRef.instance.form = sectionGroup;\n componentRef.instance.depth = {\n current: depth,\n max: this._maxStructureDepth\n };\n componentRef.instance.createSection.subscribe(() => {\n const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);\n this.createItem(null, section.containerRef, section.parentForm);\n });\n componentRef.instance.createItem.subscribe(() => {\n this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n componentRef.instance.operatorChange.subscribe(() => {\n this.createOutputQuery();\n });\n\n return {\n containerRef: componentRef.instance.sectionContainer,\n parentForm: sectionGroup\n };\n }\n\n /**\n * creates a component represents filter item (leaf element - has no childs)\n * @param current filter legacy element\n * @param containerRef parent element\n * @param parentForm parent form\n */\n createItem(current: IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);\n const componentRef = containerRef.createComponent(factory);\n\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) { counter++; } });\n const formKey = `item${counter}`;\n\n componentRef.instance.formKey = formKey;\n componentRef.instance.fields = this._smartFilterFields;\n const selectedField = this.getSelectedField(current);\n if (selectedField) {\n componentRef.instance.selected = selectedField;\n if (current) {\n componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);\n }\n }\n componentRef.instance.parentForm = parentForm;\n componentRef.instance.filterChange.subscribe(() => {\n this.createOutputQuery();\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n }\n \n /**\n * get smart filter field\n * @param current filter legacy element\n * @returns smart filter field, if not found returns the first field\n */\n private getSelectedField(current: IPepQueryItem): IPepQueryBuilderFieldContainer | null {\n if (current) {\n const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);\n return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n } else {\n return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n }\n } \n\n /**\n * creates a legacy output query \n */\n createOutputQuery() {\n if (this._form.valid) {\n const query = this._outputQueryService.generateQuery(this._form.value);\n this._outputQuery$.next(query);\n }\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnInit,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from './common/model/legacy';\nimport { PepQueryStructureService } from './common/services/query-structure.service';\nimport { PepTypeConvertorService } from './common/services/type-convertor.service';\nimport { PepOutputQueryService } from './common/services/output-query.service';\nimport { IPepQueryDepth } from './common/model/structure';\nimport { PepOperatorTypes } from './common/model/type';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'pep-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n providers: [ PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService]\n})\nexport class PepQueryBuilderComponent implements OnInit, OnDestroy {\n _query: IPepQuerySection | IPepQueryItem = null;\n @Input()\n set query(object: IPepQuerySection | IPepQueryItem) {\n this._query = object;\n this.loadQuery()\n }\n @Input()\n set fields(list: Array<IPepQueryBuilderField>) {\n this.queryStructureService.fields = list;\n this.hasFields = this.queryStructureService.hasFields;\n this.loadQuery();\n }\n @Input()\n set maxDepth(value: number) {\n this.queryStructureService.maxDepth = value;\n }\n\n @Output()\n queryChange: EventEmitter<IPepQuerySection | IPepQueryItem> = new EventEmitter<IPepQuerySection | IPepQueryItem>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('rootContainer', { static: true }) root: PepQueryBuilderSectionComponent;\n\n _formSubscription$: Subscription;\n _outputQuerySubscription$: Subscription;\n _lastFormValidStatus = true;\n depth: IPepQueryDepth;\n hasFields = false;\n\n constructor(\n private _fb: FormBuilder,\n public queryStructureService: PepQueryStructureService\n ) {\n this.setupForm();\n this.initDepth();\n this._formSubscription$ = this.queryStructureService.form.valueChanges.subscribe((val) => {\n if (this.queryStructureService.form.valid !== this._lastFormValidStatus) {\n this._lastFormValidStatus = this.queryStructureService.form.valid;\n this.formValidationChange.emit(this._lastFormValidStatus);\n }\n });\n this._outputQuerySubscription$ = this.queryStructureService.outputQuery$.subscribe((outputQuery) => {\n this.queryChange.emit(outputQuery);\n });\n }\n\n ngOnInit() {\n //\n }\n\n setupForm() {\n this.queryStructureService.form = this._fb.group({\n operator: this._fb.control(PepOperatorTypes.And)\n });\n }\n\n initDepth() {\n this.depth = {\n current: 0,\n max: this.queryStructureService.maxDepth\n }\n }\n\n /**\n * builds UI query structure as soon as both the fields and query loads\n */\n loadQuery() {\n if (\n this._query &&\n this.queryStructureService.hasFields &&\n this.root?.sectionContainer\n ) {\n this.queryStructureService.buildQueryStructure(this._query, this.root.sectionContainer);\n }\n }\n\n onCreateSection() {\n const section = this.queryStructureService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryStructureService.form, 1);\n this.queryStructureService.createItem(null, section.containerRef, section.parentForm);\n }\n\n onCreateItem() {\n this.queryStructureService.createItem(null, this.root.sectionContainer, this.queryStructureService.form);\n }\n\n onOperatorChange() {\n this.queryStructureService.createOutputQuery();\n }\n\n ngOnDestroy() {\n if (this._formSubscription$) {\n this._formSubscription$.unsubscribe();\n }\n if (this._outputQuerySubscription$) {\n this._outputQuerySubscription$.unsubscribe();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\nimport { PepQueryBuilderComponent } from './query-builder.component';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n PepSelectModule,\n PepButtonModule,\n PepGroupButtonsModule,\n PepSmartFiltersModule\n ],\n exports: [\n PepQueryBuilderComponent\n ],\n declarations: [\n PepQueryBuilderComponent,\n PepQueryBuilderSectionComponent,\n PepQueryBuilderItemComponent\n ]\n})\nexport class PepQueryBuilderModule { }\n","/*\n * Public API Surface of ngx-lib/query-builder\n */\nexport * from './query-builder.module';\nexport * from './query-builder.component';\nexport * from './query-builder.service';\nexport * from './common/model/legacy';\nexport * from './query-builder.service';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {PepOutputQueryService as ɵb} from './common/services/output-query.service';\nexport {PepQueryStructureService as ɵa} from './common/services/query-structure.service';\nexport {PepTypeConvertorService as ɵc} from './common/services/type-convertor.service';\nexport {PepQueryBuilderItemComponent as ɵe} from './query-builder-item/query-builder-item.component';\nexport {PepQueryBuilderSectionComponent as ɵd} from './query-builder-section/query-builder-section.component';"],"names":["PepSmartFilterOperators","PepSmartFilterOperatorUnits","createSmartFilter","createSmartFilterField","Injectable","EventEmitter","Component","Input","Output","ViewChild","ViewContainerRef","FormBuilder","BehaviorSubject","ComponentFactoryResolver","NgModule","CommonModule","ReactiveFormsModule","FlexLayoutModule","PepSelectModule","PepButtonModule","PepGroupButtonsModule","PepSmartFiltersModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-query-builder.umd.js","sources":["../../../projects/ngx-lib/query-builder/common/model/operator.ts","../../../projects/ngx-lib/query-builder/common/model/type-map.ts","../../../projects/ngx-lib/query-builder/common/model/operator-unit.ts","../../../projects/ngx-lib/query-builder/query-builder.service.ts","../../../projects/ngx-lib/query-builder/common/services/output-query.service.ts","../../../projects/ngx-lib/query-builder/common/services/type-convertor.service.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.ts","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.ts","../../../projects/ngx-lib/query-builder/common/model/type.ts","../../../projects/ngx-lib/query-builder/common/services/query-structure.service.ts","../../../projects/ngx-lib/query-builder/query-builder.component.ts","../../../projects/ngx-lib/query-builder/query-builder.module.ts","../../../projects/ngx-lib/query-builder/public-api.ts","../../../projects/ngx-lib/query-builder/pepperi-addons-ngx-lib-query-builder.ts"],"sourcesContent":["import { \n PepSmartFilterOperators, \n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n IPepSmartFilterOperator \n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\nexport interface IPepQueryBuilderOperator {\n legacy: string, //legacy Operator \n smartFilter: IPepSmartFilterOperator, //smart filter operator \n type: PepSmartFilterType[] | null //smart filter type\n}\n\nconst Equals: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.Equals,\n type: ['boolean', 'int', 'text']\n};\n\nconst EqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.EqualsToVariable,\n type: ['boolean', 'int', 'text']\n};\n\nconst NotEqual: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n smartFilter: PepSmartFilterOperators.NotEqual,\n type: null\n};\n\nconst NotEqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.NotEqualsToVariable,\n type: ['boolean', 'int', 'text']\n};\n\nconst LessThan: IPepQueryBuilderOperator = {\n legacy: '<',\n smartFilter: PepSmartFilterOperators.LessThan,\n type: null\n};\n\nconst LessThanVarible: IPepQueryBuilderOperator = {\n legacy: 'LessThanVarible',\n smartFilter: PepSmartFilterVariableOperators.LessThanVariable,\n type: null\n};\n\nconst GreaterThan: IPepQueryBuilderOperator = {\n legacy: '>',\n smartFilter: PepSmartFilterOperators.GreaterThan,\n type: null\n};\n\nconst GreaterThanVarible: IPepQueryBuilderOperator = {\n legacy: 'GreaterThanVarible',\n smartFilter: PepSmartFilterVariableOperators.GreaterThanVariable,\n type: null\n};\n\n/*\nconst GreaterThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '>=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.GreaterThanOrEquals,\n type: 'int'\n }\n};\n\nconst LessThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '<=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.LessThanOrEquals,\n type: 'int',\n type: 'Integer'\n }\n}; */\n\nconst NumberRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.NumberRange,\n type: ['int']\n};\n\nconst Contains: IPepQueryBuilderOperator = {\n legacy: 'Contains',\n smartFilter: PepSmartFilterOperators.Contains,\n type: null\n};\n\n/*\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'BeginsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.BeginsWith,\n type: 'text'\n }\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'EndsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.EndsWith,\n type: 'text'\n }\n};\n\nconst Before: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'Before',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.Before,\n type: 'date'\n }\n};\n\nconst After: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'After',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.After,\n type: 'date'\n }\n}; */\n\nconst InTheLast: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n smartFilter: PepSmartFilterOperators.InTheLast,\n type: null\n};\n\nconst InTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'InTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.InTheLastCalendar,\n type: null\n}\n\nconst InTheLastVariable: IPepQueryBuilderOperator = {\n legacy: 'InTheLastVariable',\n smartFilter: PepSmartFilterVariableOperators.InTheLastVariable,\n type: null\n}\n\nconst NotInTheLast: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLast',\n smartFilter: PepSmartFilterOperators.NotInTheLast,\n type: null\n};\n\nconst NotInTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.NotInTheLastCalendar,\n type: null\n}\n\nconst Today: IPepQueryBuilderOperator = {\n legacy: 'Today',\n smartFilter: PepSmartFilterOperators.Today,\n type: null\n};\n\nconst ThisWeek: IPepQueryBuilderOperator = {\n legacy: 'ThisWeek',\n smartFilter: PepSmartFilterOperators.ThisWeek,\n type: null\n};\n\nconst ThisMonth: IPepQueryBuilderOperator = {\n legacy: 'ThisMonth',\n smartFilter: PepSmartFilterOperators.ThisMonth,\n type: null\n};\n\nconst DateRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.DateRange,\n type: ['date-time']\n};\n\nconst dateRangeVariable: IPepQueryBuilderOperator = {\n legacy: 'BetweenVariable',\n smartFilter: PepSmartFilterVariableOperators.DateRangeVariable,\n type: ['date-time']\n};\n\nconst DueIn: IPepQueryBuilderOperator = {\n legacy: 'DueIn',\n smartFilter: PepSmartFilterOperators.DueIn,\n type: null\n};\n\nconst NotDueIn: IPepQueryBuilderOperator = {\n legacy: 'NotDueIn',\n smartFilter: PepSmartFilterOperators.NotDueIn,\n type: null\n};\n\nconst On: IPepQueryBuilderOperator = {\n legacy: 'On',\n smartFilter: PepSmartFilterOperators.On,\n type: null\n};\n\nconst IsEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsEmpty',\n smartFilter: PepSmartFilterOperators.IsEmpty,\n type: null\n};\n\nconst IsNotEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsNotEmpty',\n smartFilter: PepSmartFilterOperators.IsNotEmpty,\n type: null\n};\n\nconst In: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.In,\n type: ['multi-select']\n};\n\n\nconst PepQueryBuilderOperators = [\n Equals,\n EqualsVariable, \n NotEqual,\n NotEqualsVariable,\n LessThan,\n LessThanVarible,\n // LessThanOrEquals,\n GreaterThan,\n GreaterThanVarible,\n // GreaterThanOrEquals,\n NumberRange,\n Contains,\n // BeginsWith,\n // EndsWith,\n // After,\n // Before,\n InTheLast,\n InTheLastVariable,\n InTheLastCalendar,\n NotInTheLast,\n NotInTheLastCalendar,\n Today,\n ThisWeek,\n ThisMonth,\n DateRange,\n dateRangeVariable,\n DueIn,\n NotDueIn,\n On,\n IsEmpty,\n IsNotEmpty,\n In\n]\n\n/**\n * gets a smart filter operator item\n * @param operator legacy operator\n * @param type smart filter's type\n * @returns smart filter operator item\n */\nexport function getSmartFilterOperator(operator: string, type: PepSmartFilterType): IPepSmartFilterOperator | null {\n const smartFilterOperator = PepQueryBuilderOperators.find(item =>\n item.legacy === operator &&\n (item.type === null || item.type.includes(type))\n );\n return smartFilterOperator ? smartFilterOperator.smartFilter : null;\n}\n\n/**\n * gets a legacy operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns legacy operator value\n */\nexport function getLegacyOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): string | null {\n const legacyOperator = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return legacyOperator ? legacyOperator.legacy : null;\n}\n","import { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\n\nexport class PepQueryBuilderTypeMap {\n private map: Map<string, PepSmartFilterType>;\n\n constructor() {\n this.loadTypes();\n }\n\n private loadTypes() {\n this.map = new Map<string, PepSmartFilterType>();\n this.map.set('Bool', 'boolean');\n this.map.set('JsonBool', 'boolean');\n this.map.set('Integer', 'int');\n this.map.set('Double', 'int');\n this.map.set('String', 'text');\n this.map.set('Guid', 'text');\n this.map.set('Date', 'date');\n this.map.set('DateTime', 'date-time');\n this.map.set('MultipleStringValues', 'multi-select');\n }\n\n /**\n * Converts legacy field type to smart builder type\n * @param type legacy type\n * @returns smart builder field type\n */\n getSmartFilterType(key: string): PepSmartFilterType | null {\n const item = this.map.get(key);\n return item ? item : null;\n }\n\n}\n\n","\nimport { IPepSmartFilterOperatorUnit, PepSmartFilterOperatorUnits } from '@pepperi-addons/ngx-lib/smart-filters';\n\ninterface IPepQueryBuilderOperationUnit {\n legacy: string,\n smartFilter: IPepSmartFilterOperatorUnit,\n}\n\nconst Days: IPepQueryBuilderOperationUnit = {\n legacy: 'Days',\n smartFilter: PepSmartFilterOperatorUnits.Days\n};\n\nconst Weeks: IPepQueryBuilderOperationUnit = {\n legacy: 'Weeks',\n smartFilter: PepSmartFilterOperatorUnits.Weeks\n};\n\nconst Months: IPepQueryBuilderOperationUnit = {\n legacy: 'Months',\n smartFilter: PepSmartFilterOperatorUnits.Months\n};\n\nconst Years: IPepQueryBuilderOperationUnit = {\n legacy: 'Years',\n smartFilter: PepSmartFilterOperatorUnits.Years\n};\n\nconst PepQueryBuilderOperationUnit = [\n Days,\n Weeks,\n Months,\n Years,\n];\n\n/**\n * gets a smart filter operation unit item\n * @param operationUnit legacy operation unit\n * @returns smart filter operation unit item\n */\nexport function getSmartFilterOperationUnit(operationUnit: string): IPepSmartFilterOperatorUnit | null {\n const smartFilterOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.legacy === operationUnit);\n return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;\n}\n\n/**\n * gets a legacy operation unit value\n * @param operationUnit smart filter operation unit item\n * @returns legacy operation unit value\n */\nexport function getLegacyOperationUnit(operationUnit: IPepSmartFilterOperatorUnit): string | null {\n const legacyOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.smartFilter === operationUnit);\n return legacyOperationUnit ? legacyOperationUnit.legacy : null;\n}\n","import { Injectable } from '@angular/core';\nimport { \n IPepQueryBuilderField, \n IPepQueryItem \n} from './common/model/legacy';\nimport { \n IPepSmartFilterData,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { getSmartFilterOperator } from './common/model/operator';\nimport { IPepQueryBuilderFieldContainer } from './common/model/field';\nimport { PepQueryBuilderTypeMap } from './common/model/type-map';\nimport { getSmartFilterOperationUnit } from './common/model/operator-unit';\nimport { IPepQueryBuilderValues } from './common/model/filter';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PepQueryBuilderService {\n\n constructor() {\n //\n }\n\n /**\n * creates a smart filter object\n * @param current filter legacy element\n * @param field filter's selected field\n * @returns smart filter object\n */\n getFilter(current: IPepQueryItem, field: PepSmartFilterBaseField): IPepSmartFilterData | null { \n const operator: IPepSmartFilterOperator = getSmartFilterOperator(current.Operation, field.type);\n if (operator) {\n const filterValues: IPepQueryBuilderValues = this.getFilterValues(current, operator, field);\n return createSmartFilter(\n current.ApiName,\n operator,\n filterValues.first,\n filterValues.second,\n filterValues.operationUnit\n );\n } else {\n return null;\n }\n }\n \n /**\n * converts legacy fields to smart filter fields\n * @param fields legacy fields array\n * @returns smart filter fields array\n */\n convertToSmartFilterFields(fields: Array<IPepQueryBuilderField>): Array<IPepQueryBuilderFieldContainer> {\n if (fields?.length > 0) {\n const typeMapper = new PepQueryBuilderTypeMap();\n\n return fields.map((field) => {\n return {\n smart: createSmartFilterField(\n {\n id: field.FieldID,\n name: field.Title,\n options: field.OptionalValues?.map(option => {\n return {\n key: option.Key,\n value: option.Value\n }\n })\n }, typeMapper.getSmartFilterType(field.FieldType) as PepSmartFilterType),\n query: {\n fieldType: field.FieldType\n }\n }\n })\n } else {\n return [];\n }\n }\n \n /**\n * gets smart filter's values data\n * @param current filter legacy element\n * @param operator smart filter operator\n * @param field filter's selected field\n * @returns object contains the filter values data\n */\n private getFilterValues(current: IPepQueryItem, operator: IPepSmartFilterOperator, field: any) {\n const data: IPepQueryBuilderValues = {\n first: null,\n second: null,\n operationUnit: null\n };\n\n if (operator === PepSmartFilterOperators.In) { //multi select \n //filter keys don't exist on field options\n data.first = current?.Values?.length > 0 ? current.Values.filter(item => {\n return field.options.find(option => option.key === item);\n }) : null;\n } else if (\n operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n if (current?.Values?.length === 2) {\n data.operationUnit = getSmartFilterOperationUnit(current.Values[1]);\n }\n } else {\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n data.second = current?.Values?.length === 2 ? current.Values[1] : null;\n }\n\n return data;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { IPepQuerySection, IPepQueryItem } from '../model/legacy';\nimport { getLegacyOperator } from '../model/operator';\nimport { PepOperatorTypes } from '../model/type';\nimport { getLegacyOperationUnit } from '../model/operator-unit';\nimport { \n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators\n} from '@pepperi-addons/ngx-lib/smart-filters';\n\n\n@Injectable()\nexport class PepOutputQueryService {\n private _complexIdCounter: number;\n private _expressionIdCounter: number;\n\n constructor() {\n //\n }\n\n /**\n * generates a legacy query structure \n * @param filters UI smart filters structure \n * @returns legacy query\n */\n generateQuery(filters: any) {\n this.initParams();\n\n return this.sectionWalk(filters);\n }\n\n /**\n * init params\n */\n private initParams() {\n this._complexIdCounter = 1;\n this._expressionIdCounter = 1;\n }\n\n /**\n * a recursive function dynamically builds legacy query structure\n * @param current UI object represents either a section or filter component\n * @returns section query data\n */\n private sectionWalk(current: any) {\n let section: IPepQuerySection | IPepQueryItem = null;\n\n Object.keys(current).forEach(key => {\n if (key.includes('item')) {\n section = this.addToSection(section, {\n ExpressionId: (this._expressionIdCounter++).toString(),\n ApiName: current[key].smart.fieldId,\n FieldType: current[key].query.fieldType,\n Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),\n Values: this.getItemValues(current[key].smart)\n } as IPepQueryItem, current.operator);\n } else if (key.includes('section')) {\n const childSection = this.sectionWalk(current[key]);\n if (childSection) {\n section = this.addToSection(section, childSection, current.operator);\n }\n }\n });\n\n return section;\n }\n\n /**\n * adds a legacy filter object to the current query structure\n * @param section section query data\n * @param item filter item\n * @param operator query operator\n * @returns \n */\n private addToSection(section: any, item: any, operator: string): any {\n return section ? this.createSection(section, item, operator) : item;\n }\n\n /**\n * creates a legacy complex object\n * @param left LeftNode object\n * @param right RightNode object\n * @param operator query operator\n * @returns legacy complex object\n */\n private createSection(left: any, right: any, operator: string): IPepQuerySection {\n return {\n ComplexId: (this._complexIdCounter++).toString(),\n LeftNode: left,\n RightNode: right,\n Operation: <PepOperatorTypes>operator\n }\n }\n\n /**\n * gets legacy filter values object\n * @param current UI filter object's values\n * @returns an array represents legacy values\n */\n private getItemValues(current: any) {\n let values: any[] = [];\n\n if (current?.values?.first) {\n if (current.operator === PepSmartFilterOperators.In) { //multi select \n values = current.values.first;\n } else if (\n current.operator === PepSmartFilterOperators.InTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n current.operator === PepSmartFilterOperators.NotInTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n current.operator === PepSmartFilterOperators.DueIn ||\n current.operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit \n values.push(current.values.first);\n if (current.operatorUnit) {\n values.push(getLegacyOperationUnit(current.operatorUnit));\n }\n } else {\n values.push(current.values.first);\n if (current.values.second) {\n values.push(current.values.second);\n }\n }\n }\n\n return values;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Injectable()\nexport class PepTypeConvertorService {\n private readonly _operators: IPepOption[] = [];\n private readonly _booleans: IPepOption[] = [];\n\n public get operators(): IPepOption[] {\n return this._operators;\n }\n\n public get booleans(): IPepOption[] {\n return this._booleans;\n }\n\n constructor() {\n this.initOperators();\n this.initBooleans();\n }\n\n private initOperators() {\n this._operators.push({\n key: 'AND',\n value: 'And'\n });\n this._operators.push({\n key: 'OR',\n value: 'Or'\n });\n }\n\n private initBooleans() {\n this._booleans.push({\n key: 'True',\n value: 'True'\n });\n this._booleans.push({\n key: 'False',\n value: 'False'\n });\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n IPepButtonClickEvent,\n PepButton,\n} from '@pepperi-addons/ngx-lib/button';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryDepth } from '../common/model/structure';\n\n@Component({\n selector: 'pep-query-builder-section',\n templateUrl: './query-builder-section.component.html',\n styleUrls: ['./query-builder-section.component.scss', './query-builder-section.component.theme.scss'],\n})\nexport class PepQueryBuilderSectionComponent {\n @Input() form: FormGroup;\n @Input() depth: IPepQueryDepth;\n @Input() hasFields = true;\n\n @Output()\n createSection = new EventEmitter();\n @Output()\n createItem = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n @Output()\n operatorChange = new EventEmitter();\n\n @ViewChild('sectionContainer', { read: ViewContainerRef, static: true }) sectionContainer: ViewContainerRef;\n\n toggleButtons: Array<PepButton>;\n\n constructor(private _typeConvertorService: PepTypeConvertorService) {\n }\n\n ngOnInit() {\n this.initOperators();\n }\n\n get f() {\n return this.form.controls;\n }\n\n initOperators() {\n this.toggleButtons = this._typeConvertorService.operators.map((operator: IPepOption) => {\n return {\n key: operator.key,\n value: operator.value,\n callback: (event: IPepButtonClickEvent) =>\n this.onOperatorChanged(event)\n } as PepButton\n });\n }\n\n onOperatorChanged(event) {\n if (event?.source?.key) {\n this.f.operator.setValue(event.source.key);\n this.operatorChange.emit();\n }\n }\n\n onAddRuleClicked() {\n this.createItem.emit();\n }\n\n onAddRuleSetClicked() {\n this.createSection.emit();\n }\n\n onDeleteSectionClicked() {\n this.remove.emit();\n }\n\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { PepSmartFilterBaseField, IPepSmartFilterField } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepSmartFilterData } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryBuilderFieldContainer } from '../common/model/field';\n\n\n@Component({\n selector: 'pep-query-builder-item',\n templateUrl: './query-builder-item.component.html',\n styleUrls: ['./query-builder-item.component.scss'],\n})\nexport class PepQueryBuilderItemComponent {\n @Input() formKey: string;\n _fields: Array<IPepQueryBuilderFieldContainer> = [];\n _options: IPepOption[] = [];\n @Input()\n set fields(list: Array<IPepQueryBuilderFieldContainer>) {\n if (list?.length > 0) {\n this._fields = list;\n this._options = list.map(field => {\n return {\n key: field.smart.id,\n value: field.smart.name\n }\n })\n }\n }\n _selectedField: PepSmartFilterBaseField = null;\n @Input()\n set selected(value: IPepQueryBuilderFieldContainer) {\n if (value) {\n this._selectedField = value.smart;\n this.queryForm.fieldType.setValue(value.query.fieldType);\n }\n }\n _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n if (value) {\n this._filter = value;\n }\n }\n _parentForm: FormGroup;\n @Input()\n set parentForm(value: FormGroup) {\n if (value) {\n this._parentForm = value;\n this.addToParentForm();\n }\n }\n \n @Input() \n variableFields: any = {};\n\n @Output()\n filterChange = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n\n form: FormGroup;\n\n constructor(\n private _fb: FormBuilder,\n public typeConvertorService: PepTypeConvertorService\n ) {\n this.setupForm();\n }\n\n ngOnInit() {\n //\n }\n\n get f() {\n return this.form.controls;\n }\n\n get queryForm() {\n return (this.f.query as FormGroup).controls;\n }\n\n setupForm() {\n this.form = this._fb.group({\n smart: this._fb.group({\n fieldId: this._fb.control(null),\n fieldType: this._fb.control(null),\n operator: this._fb.control(null),\n operatorUnit: this._fb.control(null),\n values: this._fb.group({\n first: this._fb.control(null),\n second: this._fb.control(null)\n })\n }),\n query: this._fb.group({\n fieldType: this._fb.control(null)\n })\n });\n }\n\n addToParentForm() {\n this._parentForm.setControl(this.formKey, this.form);\n }\n\n onFieldChanged(key) {\n const item = this._fields.find(field => field.smart.id === key);\n\n this.setupForm();\n this.queryForm.fieldType.setValue(item.query.fieldType);\n this.addToParentForm();\n\n /**\n * hack due to angular's change detection bug -\n * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]\n */\n this._selectedField = null;\n setTimeout(() => {\n this._selectedField = item ? item.smart : null;\n }, 0);\n\n this._filter = null;\n }\n\n onFilterChanged() {\n if (this.form.valid) {\n this.filterChange.emit();\n }\n }\n\n onDeleteItemClicked() {\n this.remove.emit();\n }\n\n\n\n}\n","export enum PepOperatorTypes {\n And = 'AND',\n Or = 'OR'\n}\n\n","import { Injectable, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { } from 'lodash';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from '../../common/model/legacy';\nimport {\n IPepSmartFilterData,\n PepSmartFilterOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepQueryBuilderService } from '../../query-builder.service';\nimport { PepOutputQueryService } from '../../common/services/output-query.service';\nimport { getSmartFilterOperator } from '../../common/model/operator';\nimport { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';\nimport { IPepQueryBuilderFieldContainer } from '../../common/model/field';\nimport { PepQueryBuilderTypeMap } from '../../common/model/type-map';\nimport { getSmartFilterOperationUnit } from '../../common/model/operator-unit';\nimport { IPepQueryBuilderValues } from '../../common/model/filter';\nimport { PepOperatorTypes } from '../../common/model/type';\n\nconst MAX_STRUCTURE_DEPTH = 3;\n\n@Injectable()\nexport class PepQueryStructureService {\n private _outputQuery$ = new BehaviorSubject<IPepQuerySection | IPepQueryItem>(null);\n\n private _smartFilterFields: Array<IPepQueryBuilderFieldContainer>;\n private _variableFields: any = {};\n private _form: FormGroup;\n private _maxStructureDepth = MAX_STRUCTURE_DEPTH;\n\n public outputQuery$ = this._outputQuery$.asObservable();\n\n constructor(\n private _fb: FormBuilder,\n private _resolver: ComponentFactoryResolver,\n private _outputQueryService: PepOutputQueryService,\n private _queryBuilderService: PepQueryBuilderService) {\n\n }\n\n set maxDepth(value) {\n this._maxStructureDepth = value;\n }\n\n get maxDepth() {\n return this._maxStructureDepth;\n }\n\n set fields(list: Array<IPepQueryBuilderField>) {\n this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);\n }\n\n get hasFields(): boolean {\n return this._smartFilterFields?.length > 0;\n }\n\n set variableFields(list: Array<IPepQueryBuilderField>) {\n if (list?.length) {\n const typeMapper = new PepQueryBuilderTypeMap();\n list.forEach(field => {\n const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));\n if (this.hasProperty(this._variableFields, fieldType)) {\n this._variableFields[fieldType].push(field.FieldID);\n } else {\n this._variableFields[fieldType] = [field.FieldID];\n }\n });\n }\n }\n\n set form(value: FormGroup) {\n this._form = value;\n }\n\n get form() {\n return this._form;\n }\n\n /**\n * builds a dynamic UI query structure\n * might has a different structure than the query's due to parent-child elements merge\n * @param query legacy query \n * @param containerRef reference to root element\n */\n buildQueryStructure(\n query: IPepQuerySection | IPepQueryItem,\n containerRef: ViewContainerRef\n ) {\n //update root operator \n if (this.hasProperty(query, 'ComplexId') &&\n query?.Operation &&\n query.Operation !== this._form.get('operator').value) {\n this._form.get('operator').setValue(query.Operation);\n }\n this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);\n }\n\n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n private hasProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n /**\n * a recursive function dynamically builds UI filters structure\n * @param parentOperator parent legacy complex operator\n * @param current child legacy object (either another complex or expression type)\n * @param containerRef parent element\n * @param parentForm parent form\n */\n private flatten(parentOperator: string, current: IPepQuerySection | IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n if (this.hasProperty(current, 'ComplexId')) {\n const section = current as IPepQuerySection;\n if (parentOperator === current.Operation) {\n this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);\n this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);\n } else {\n const result = this.createSection(section.Operation, containerRef, parentForm, depth);\n this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);\n this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);\n }\n } else if (this.hasProperty(current, 'ExpressionId')) {\n this.createItem(current as IPepQueryItem, containerRef, parentForm);\n }\n }\n\n /**\n * creates a container object of two or more child filter items\n * @param operator AND/OR operator\n * @param containerRef parent element\n * @param parentForm parent form\n * @param depth\n * @returns an object containing the current element and current form\n */\n createSection(operator: PepOperatorTypes, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);\n const componentRef = containerRef.createComponent(factory);\n\n const sectionGroup = this._fb.group({\n operator: this._fb.control(operator)\n });\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) { counter++; } });\n const formKey = `section${counter}`;\n parentForm.addControl(formKey, sectionGroup);\n\n componentRef.instance.form = sectionGroup;\n componentRef.instance.depth = {\n current: depth,\n max: this._maxStructureDepth\n };\n componentRef.instance.createSection.subscribe(() => {\n const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);\n this.createItem(null, section.containerRef, section.parentForm);\n });\n componentRef.instance.createItem.subscribe(() => {\n this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n componentRef.instance.operatorChange.subscribe(() => {\n this.createOutputQuery();\n });\n\n return {\n containerRef: componentRef.instance.sectionContainer,\n parentForm: sectionGroup\n };\n }\n\n /**\n * creates a component represents filter item (leaf element - has no childs)\n * @param current filter legacy element\n * @param containerRef parent element\n * @param parentForm parent form\n */\n createItem(current: IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);\n const componentRef = containerRef.createComponent(factory);\n\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) { counter++; } });\n const formKey = `item${counter}`;\n\n componentRef.instance.formKey = formKey;\n componentRef.instance.fields = this._smartFilterFields;\n componentRef.instance.variableFields = this._variableFields;\n const selectedField = this.getSelectedField(current);\n if (selectedField) {\n componentRef.instance.selected = selectedField;\n if (current) {\n componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);\n }\n }\n componentRef.instance.parentForm = parentForm;\n componentRef.instance.filterChange.subscribe(() => {\n this.createOutputQuery();\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n }\n\n /**\n * get smart filter field\n * @param current filter legacy element\n * @returns smart filter field, if not found returns the first field\n */\n private getSelectedField(current: IPepQueryItem): IPepQueryBuilderFieldContainer | null {\n if (current) {\n const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);\n return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n } else {\n return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n }\n }\n\n private convertSmartFilterComponentType(type: string) {\n switch (type) {\n case 'int':\n case 'currency':\n case 'real':\n case 'percentage':\n return 'number';\n case 'date-time':\n return 'date';\n default:\n return type;\n }\n }\n\n /**\n * creates a legacy output query \n */\n createOutputQuery() {\n if (this._form.valid) {\n const query = this._outputQueryService.generateQuery(this._form.value);\n this._outputQuery$.next(query);\n }\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnInit,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from './common/model/legacy';\nimport { PepQueryStructureService } from './common/services/query-structure.service';\nimport { PepTypeConvertorService } from './common/services/type-convertor.service';\nimport { PepOutputQueryService } from './common/services/output-query.service';\nimport { IPepQueryDepth } from './common/model/structure';\nimport { PepOperatorTypes } from './common/model/type';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'pep-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n providers: [ PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService]\n})\nexport class PepQueryBuilderComponent implements OnInit, OnDestroy {\n _query: IPepQuerySection | IPepQueryItem = null;\n @Input()\n set query(object: IPepQuerySection | IPepQueryItem) {\n this._query = object;\n this.loadQuery()\n }\n @Input()\n set fields(list: Array<IPepQueryBuilderField>) {\n this.queryStructureService.fields = list;\n this.hasFields = this.queryStructureService.hasFields;\n this.loadQuery();\n }\n @Input() \n set variableFields(list : Array<IPepQueryBuilderField>) {\n this.queryStructureService.variableFields = list;\n };\n @Input()\n set maxDepth(value: number) {\n this.queryStructureService.maxDepth = value;\n }\n\n @Output()\n queryChange: EventEmitter<IPepQuerySection | IPepQueryItem> = new EventEmitter<IPepQuerySection | IPepQueryItem>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('rootContainer', { static: true }) root: PepQueryBuilderSectionComponent;\n\n _formSubscription$: Subscription;\n _outputQuerySubscription$: Subscription;\n _lastFormValidStatus = true;\n depth: IPepQueryDepth;\n hasFields = false;\n\n constructor(\n private _fb: FormBuilder,\n public queryStructureService: PepQueryStructureService\n ) {\n this.setupForm();\n this.initDepth();\n this._formSubscription$ = this.queryStructureService.form.valueChanges.subscribe((val) => {\n if (this.queryStructureService.form.valid !== this._lastFormValidStatus) {\n this._lastFormValidStatus = this.queryStructureService.form.valid;\n this.formValidationChange.emit(this._lastFormValidStatus);\n }\n });\n this._outputQuerySubscription$ = this.queryStructureService.outputQuery$.subscribe((outputQuery) => {\n this.queryChange.emit(outputQuery);\n });\n }\n\n ngOnInit() {\n //\n }\n\n setupForm() {\n this.queryStructureService.form = this._fb.group({\n operator: this._fb.control(PepOperatorTypes.And)\n });\n }\n\n initDepth() {\n this.depth = {\n current: 0,\n max: this.queryStructureService.maxDepth\n }\n }\n\n /**\n * builds UI query structure as soon as both the fields and query loads\n */\n loadQuery() {\n if (\n this._query &&\n this.queryStructureService.hasFields &&\n this.root?.sectionContainer\n ) {\n this.queryStructureService.buildQueryStructure(this._query, this.root.sectionContainer);\n }\n }\n\n onCreateSection() {\n const section = this.queryStructureService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryStructureService.form, 1);\n this.queryStructureService.createItem(null, section.containerRef, section.parentForm);\n }\n\n onCreateItem() {\n this.queryStructureService.createItem(null, this.root.sectionContainer, this.queryStructureService.form);\n }\n\n onOperatorChange() {\n this.queryStructureService.createOutputQuery();\n }\n\n ngOnDestroy() {\n if (this._formSubscription$) {\n this._formSubscription$.unsubscribe();\n }\n if (this._outputQuerySubscription$) {\n this._outputQuerySubscription$.unsubscribe();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\nimport { PepQueryBuilderComponent } from './query-builder.component';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n PepSelectModule,\n PepButtonModule,\n PepGroupButtonsModule,\n PepSmartFiltersModule\n ],\n exports: [\n PepQueryBuilderComponent\n ],\n declarations: [\n PepQueryBuilderComponent,\n PepQueryBuilderSectionComponent,\n PepQueryBuilderItemComponent\n ]\n})\nexport class PepQueryBuilderModule { }\n","/*\n * Public API Surface of ngx-lib/query-builder\n */\nexport * from './query-builder.module';\nexport * from './query-builder.component';\nexport * from './query-builder.service';\nexport * from './common/model/legacy';\nexport * from './query-builder.service';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {PepOutputQueryService as ɵb} from './common/services/output-query.service';\nexport {PepQueryStructureService as ɵa} from './common/services/query-structure.service';\nexport {PepTypeConvertorService as ɵc} from './common/services/type-convertor.service';\nexport {PepQueryBuilderItemComponent as ɵe} from './query-builder-item/query-builder-item.component';\nexport {PepQueryBuilderSectionComponent as ɵd} from './query-builder-section/query-builder-section.component';"],"names":["PepSmartFilterOperators","PepSmartFilterVariableOperators","PepSmartFilterAdditionalOperators","PepSmartFilterOperatorUnits","createSmartFilter","createSmartFilterField","Injectable","EventEmitter","Component","Input","Output","ViewChild","ViewContainerRef","FormBuilder","BehaviorSubject","ComponentFactoryResolver","NgModule","CommonModule","ReactiveFormsModule","FlexLayoutModule","PepSelectModule","PepButtonModule","PepGroupButtonsModule","PepSmartFiltersModule"],"mappings":"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"}
|
|
@@ -605,7 +605,6 @@
|
|
|
605
605
|
return [4 /*yield*/, moduleFederation.loadRemoteModule(this.options).then(function (m) { return m; })];
|
|
606
606
|
case 3:
|
|
607
607
|
module = _g.sent();
|
|
608
|
-
moduleFactory = void 0;
|
|
609
608
|
moduleFactory = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./', '')]);
|
|
610
609
|
moduleRef = moduleFactory.create(this.injector);
|
|
611
610
|
componentFactory = (_d = moduleRef === null || moduleRef === void 0 ? void 0 : moduleRef.componentFactoryResolver) === null || _d === void 0 ? void 0 : _d.resolveComponentFactory(module[this.options.componentName]);
|