@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.
@@ -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
  }