@recursyve/nice-data-filter-kit 15.3.0 → 15.3.2
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/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.mjs +13 -3
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.mjs +2 -4
- package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +3 -3
- package/fesm2015/recursyve-nice-data-filter-kit.mjs +81 -72
- package/fesm2015/recursyve-nice-data-filter-kit.mjs.map +1 -1
- package/fesm2020/recursyve-nice-data-filter-kit.mjs +92 -83
- package/fesm2020/recursyve-nice-data-filter-kit.mjs.map +1 -1
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.d.ts +6 -3
- package/lib/components/nice-filter-view/store/nice-filter-view.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -3066,13 +3066,13 @@ class NiceFilterViewService {
|
|
|
3066
3066
|
}
|
|
3067
3067
|
}
|
|
3068
3068
|
async filter() {
|
|
3069
|
-
const { filterParameters, disabled } = this.store.getValue();
|
|
3069
|
+
const { filterParameters, disabled, queryParams } = this.store.getValue();
|
|
3070
3070
|
if (disabled) {
|
|
3071
3071
|
return;
|
|
3072
3072
|
}
|
|
3073
3073
|
try {
|
|
3074
3074
|
this.store.setLoading(true);
|
|
3075
|
-
const result = await firstValueFrom(this.filterService.filter(this.store.getParameters(filterParameters)));
|
|
3075
|
+
const result = await firstValueFrom(this.filterService.filter(this.store.getParameters(filterParameters), { params: queryParams }));
|
|
3076
3076
|
this.store.setResult(result);
|
|
3077
3077
|
}
|
|
3078
3078
|
catch (e) {
|
|
@@ -3294,83 +3294,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
3294
3294
|
args: [NiceFilterService]
|
|
3295
3295
|
}] }]; }, propDecorators: { resetResult: [] } });
|
|
3296
3296
|
|
|
3297
|
-
class AdvancedFiltersUtils {
|
|
3298
|
-
static isSingleInput(filterOperator) {
|
|
3299
|
-
if (!filterOperator) {
|
|
3300
|
-
return false;
|
|
3301
|
-
}
|
|
3302
|
-
return AdvancedFiltersUtils.singleInputOperators.includes(filterOperator);
|
|
3303
|
-
}
|
|
3304
|
-
static isDoubleInput(filterOperator) {
|
|
3305
|
-
if (!filterOperator) {
|
|
3306
|
-
return false;
|
|
3307
|
-
}
|
|
3308
|
-
return AdvancedFiltersUtils.doubleInputOperators.includes(filterOperator);
|
|
3309
|
-
}
|
|
3310
|
-
static isNoInput(filterOperator) {
|
|
3311
|
-
if (!filterOperator) {
|
|
3312
|
-
return false;
|
|
3313
|
-
}
|
|
3314
|
-
return AdvancedFiltersUtils.noInputOperators.includes(filterOperator);
|
|
3315
|
-
}
|
|
3316
|
-
static createRule(config, operator) {
|
|
3317
|
-
const base = {
|
|
3318
|
-
id: config.id,
|
|
3319
|
-
operation: operator || config.operators[0].id
|
|
3320
|
-
};
|
|
3321
|
-
switch (config.type) {
|
|
3322
|
-
case FilterType.Text:
|
|
3323
|
-
return {
|
|
3324
|
-
...base,
|
|
3325
|
-
value: AdvancedFiltersUtils.isDoubleInput(operator) ? ["", ""] : ""
|
|
3326
|
-
};
|
|
3327
|
-
case FilterType.Number:
|
|
3328
|
-
case FilterType.Select:
|
|
3329
|
-
return {
|
|
3330
|
-
...base,
|
|
3331
|
-
value: AdvancedFiltersUtils.isDoubleInput(operator) ? [null, null] : null
|
|
3332
|
-
};
|
|
3333
|
-
case FilterType.Date:
|
|
3334
|
-
return {
|
|
3335
|
-
...base,
|
|
3336
|
-
value: AdvancedFiltersUtils.isDoubleInput(operator) ? [new Date(), new Date()] : new Date()
|
|
3337
|
-
};
|
|
3338
|
-
case FilterType.Radio:
|
|
3339
|
-
return {
|
|
3340
|
-
...base,
|
|
3341
|
-
value: AdvancedFiltersUtils.isDoubleInput(operator)
|
|
3342
|
-
? [config.options?.[0].key, config.options?.[0].key]
|
|
3343
|
-
: config.options?.[0].key
|
|
3344
|
-
};
|
|
3345
|
-
}
|
|
3346
|
-
}
|
|
3347
|
-
}
|
|
3348
|
-
AdvancedFiltersUtils.noInputOperators = [
|
|
3349
|
-
FilterOperatorTypes.IsEmpty,
|
|
3350
|
-
FilterOperatorTypes.IsNotEmpty,
|
|
3351
|
-
FilterOperatorTypes.IsNull,
|
|
3352
|
-
FilterOperatorTypes.IsNotNull,
|
|
3353
|
-
FilterOperatorTypes.None
|
|
3354
|
-
];
|
|
3355
|
-
AdvancedFiltersUtils.singleInputOperators = [
|
|
3356
|
-
FilterOperatorTypes.Equal,
|
|
3357
|
-
FilterOperatorTypes.NotEqual,
|
|
3358
|
-
FilterOperatorTypes.Less,
|
|
3359
|
-
FilterOperatorTypes.LessOrEqual,
|
|
3360
|
-
FilterOperatorTypes.Greater,
|
|
3361
|
-
FilterOperatorTypes.GreaterOrEqual,
|
|
3362
|
-
FilterOperatorTypes.BeginsWith,
|
|
3363
|
-
FilterOperatorTypes.NotBeginsWith,
|
|
3364
|
-
FilterOperatorTypes.EndsWith,
|
|
3365
|
-
FilterOperatorTypes.NotEndsWith,
|
|
3366
|
-
FilterOperatorTypes.Contains,
|
|
3367
|
-
FilterOperatorTypes.NotContains
|
|
3368
|
-
];
|
|
3369
|
-
AdvancedFiltersUtils.doubleInputOperators = [
|
|
3370
|
-
FilterOperatorTypes.Between,
|
|
3371
|
-
FilterOperatorTypes.NotBetween
|
|
3372
|
-
];
|
|
3373
|
-
|
|
3374
3297
|
const ADVANCED_FILTER_ICONS = new InjectionToken("advanced_filter_icons");
|
|
3375
3298
|
|
|
3376
3299
|
class NiceFilterGroupIconPipe {
|
|
@@ -3523,9 +3446,8 @@ class NiceAdvancedFiltersButtonComponent {
|
|
|
3523
3446
|
this.service.updateSubState("showAdvancedFilters", !this.query.getSubState("showAdvancedFilters"));
|
|
3524
3447
|
}
|
|
3525
3448
|
onSelectedFilter(filter) {
|
|
3526
|
-
const rule = AdvancedFiltersUtils.createRule(filter);
|
|
3527
|
-
this.service.setRules([{ condition: "and", rules: [rule] }]);
|
|
3528
3449
|
this.service.updateSubState("showAdvancedFilters", true);
|
|
3450
|
+
this.service.updateSubState("selectedFilter", filter);
|
|
3529
3451
|
}
|
|
3530
3452
|
}
|
|
3531
3453
|
NiceAdvancedFiltersButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceAdvancedFiltersButtonComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: NiceFilterViewQuery }, { token: NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -3683,6 +3605,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
3683
3605
|
type: Injectable
|
|
3684
3606
|
}], ctorParameters: function () { return [{ type: NiceFilterService }]; } });
|
|
3685
3607
|
|
|
3608
|
+
class AdvancedFiltersUtils {
|
|
3609
|
+
static isSingleInput(filterOperator) {
|
|
3610
|
+
if (!filterOperator) {
|
|
3611
|
+
return false;
|
|
3612
|
+
}
|
|
3613
|
+
return AdvancedFiltersUtils.singleInputOperators.includes(filterOperator);
|
|
3614
|
+
}
|
|
3615
|
+
static isDoubleInput(filterOperator) {
|
|
3616
|
+
if (!filterOperator) {
|
|
3617
|
+
return false;
|
|
3618
|
+
}
|
|
3619
|
+
return AdvancedFiltersUtils.doubleInputOperators.includes(filterOperator);
|
|
3620
|
+
}
|
|
3621
|
+
static isNoInput(filterOperator) {
|
|
3622
|
+
if (!filterOperator) {
|
|
3623
|
+
return false;
|
|
3624
|
+
}
|
|
3625
|
+
return AdvancedFiltersUtils.noInputOperators.includes(filterOperator);
|
|
3626
|
+
}
|
|
3627
|
+
static createRule(config, operator) {
|
|
3628
|
+
const base = {
|
|
3629
|
+
id: config.id,
|
|
3630
|
+
operation: operator || config.operators[0].id
|
|
3631
|
+
};
|
|
3632
|
+
switch (config.type) {
|
|
3633
|
+
case FilterType.Text:
|
|
3634
|
+
return {
|
|
3635
|
+
...base,
|
|
3636
|
+
value: AdvancedFiltersUtils.isDoubleInput(operator) ? ["", ""] : ""
|
|
3637
|
+
};
|
|
3638
|
+
case FilterType.Number:
|
|
3639
|
+
case FilterType.Select:
|
|
3640
|
+
return {
|
|
3641
|
+
...base,
|
|
3642
|
+
value: AdvancedFiltersUtils.isDoubleInput(operator) ? [null, null] : null
|
|
3643
|
+
};
|
|
3644
|
+
case FilterType.Date:
|
|
3645
|
+
return {
|
|
3646
|
+
...base,
|
|
3647
|
+
value: AdvancedFiltersUtils.isDoubleInput(operator) ? [new Date(), new Date()] : new Date()
|
|
3648
|
+
};
|
|
3649
|
+
case FilterType.Radio:
|
|
3650
|
+
return {
|
|
3651
|
+
...base,
|
|
3652
|
+
value: AdvancedFiltersUtils.isDoubleInput(operator)
|
|
3653
|
+
? [config.options?.[0].key, config.options?.[0].key]
|
|
3654
|
+
: config.options?.[0].key
|
|
3655
|
+
};
|
|
3656
|
+
}
|
|
3657
|
+
}
|
|
3658
|
+
}
|
|
3659
|
+
AdvancedFiltersUtils.noInputOperators = [
|
|
3660
|
+
FilterOperatorTypes.IsEmpty,
|
|
3661
|
+
FilterOperatorTypes.IsNotEmpty,
|
|
3662
|
+
FilterOperatorTypes.IsNull,
|
|
3663
|
+
FilterOperatorTypes.IsNotNull,
|
|
3664
|
+
FilterOperatorTypes.None
|
|
3665
|
+
];
|
|
3666
|
+
AdvancedFiltersUtils.singleInputOperators = [
|
|
3667
|
+
FilterOperatorTypes.Equal,
|
|
3668
|
+
FilterOperatorTypes.NotEqual,
|
|
3669
|
+
FilterOperatorTypes.Less,
|
|
3670
|
+
FilterOperatorTypes.LessOrEqual,
|
|
3671
|
+
FilterOperatorTypes.Greater,
|
|
3672
|
+
FilterOperatorTypes.GreaterOrEqual,
|
|
3673
|
+
FilterOperatorTypes.BeginsWith,
|
|
3674
|
+
FilterOperatorTypes.NotBeginsWith,
|
|
3675
|
+
FilterOperatorTypes.EndsWith,
|
|
3676
|
+
FilterOperatorTypes.NotEndsWith,
|
|
3677
|
+
FilterOperatorTypes.Contains,
|
|
3678
|
+
FilterOperatorTypes.NotContains
|
|
3679
|
+
];
|
|
3680
|
+
AdvancedFiltersUtils.doubleInputOperators = [
|
|
3681
|
+
FilterOperatorTypes.Between,
|
|
3682
|
+
FilterOperatorTypes.NotBetween
|
|
3683
|
+
];
|
|
3684
|
+
|
|
3686
3685
|
class FilterComponent {
|
|
3687
3686
|
constructor() {
|
|
3688
3687
|
this.propagateChanges = (_) => { };
|
|
@@ -3915,10 +3914,17 @@ class NiceAdvancedFiltersComponent {
|
|
|
3915
3914
|
this.rules$ = this.rulesFormArray.valueChanges.pipe(startWith(this.rulesFormArray.value));
|
|
3916
3915
|
}
|
|
3917
3916
|
ngOnInit() {
|
|
3918
|
-
const { filterParameters } = this.query.getValue();
|
|
3917
|
+
const { filterParameters, subStates } = this.query.getValue();
|
|
3919
3918
|
if (filterParameters.rules?.length) {
|
|
3920
3919
|
this.formGroup.patchValue(new AdvancedFiltersForm(filterParameters.rules[0]));
|
|
3921
3920
|
}
|
|
3921
|
+
if (subStates.selectedFilter) {
|
|
3922
|
+
this.onClickAddRule(subStates.selectedFilter);
|
|
3923
|
+
return;
|
|
3924
|
+
}
|
|
3925
|
+
}
|
|
3926
|
+
ngOnDestroy() {
|
|
3927
|
+
this.removeEmptyRules({ reload: false });
|
|
3922
3928
|
}
|
|
3923
3929
|
onClickAddRule(filterConfigurationModel) {
|
|
3924
3930
|
this.rulesFormArray.push(new FilterForm(AdvancedFiltersUtils.createRule(filterConfigurationModel)));
|
|
@@ -3941,7 +3947,7 @@ class NiceAdvancedFiltersComponent {
|
|
|
3941
3947
|
this.service.resetResult(true);
|
|
3942
3948
|
this.service.filter();
|
|
3943
3949
|
}
|
|
3944
|
-
removeEmptyRules() {
|
|
3950
|
+
removeEmptyRules({ reload } = { reload: true }) {
|
|
3945
3951
|
if (this.rulesFormArray.length !== 1) {
|
|
3946
3952
|
return;
|
|
3947
3953
|
}
|
|
@@ -3959,6 +3965,9 @@ class NiceAdvancedFiltersComponent {
|
|
|
3959
3965
|
return;
|
|
3960
3966
|
}
|
|
3961
3967
|
this.service.setRules([]);
|
|
3968
|
+
if (!reload) {
|
|
3969
|
+
return;
|
|
3970
|
+
}
|
|
3962
3971
|
if (filterParameters.rules[0].rules[0].value) {
|
|
3963
3972
|
this.service.filter();
|
|
3964
3973
|
}
|