ngx-wapp-components 3.2.11 → 3.2.12-alpha.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.
|
@@ -5531,14 +5531,73 @@ class WFilterPanelComponent {
|
|
|
5531
5531
|
this.hasDefaultValues = new EventEmitter();
|
|
5532
5532
|
this.stateOptions = [{ label: this.translationsObject.advancedSearch.andButtonLabel, value: 'and' }, { label: this.translationsObject.advancedSearch.orButtonLabel, value: 'or' }];
|
|
5533
5533
|
}
|
|
5534
|
-
|
|
5535
|
-
|
|
5536
|
-
|
|
5537
|
-
|
|
5534
|
+
cloneDeep(value) {
|
|
5535
|
+
return JSON.parse(JSON.stringify(value));
|
|
5536
|
+
}
|
|
5537
|
+
hasStoredQueryValues() {
|
|
5538
|
+
return !!(this.storedQuery?.id === this.filterId &&
|
|
5539
|
+
((this.storedQuery?.basicQueryValue?.rules?.length ?? 0) > 0 ||
|
|
5540
|
+
(this.storedQuery?.advancedQueryValue?.rules?.length ?? 0) > 0 ||
|
|
5541
|
+
(this.storedQuery?.groupedQueryValue?.rules?.length ?? 0) > 0));
|
|
5542
|
+
}
|
|
5543
|
+
buildQueryFromStored(source) {
|
|
5544
|
+
return {
|
|
5545
|
+
type: this.getQueryType(),
|
|
5546
|
+
basic: this.storedQuery?.basicQueryValue ? this.cloneDeep(this.storedQuery?.basicQueryValue) : null,
|
|
5547
|
+
advanced: this.storedQuery?.advancedQueryValue ? this.cloneDeep(this.storedQuery?.advancedQueryValue) : null,
|
|
5548
|
+
grouped: this.isAdvancedSearch && this.filterPanelObject.allowGrouped && this.groupedQueryCtrl ? this.cloneDeep(this.groupedQueryCtrl?.value) : null,
|
|
5549
|
+
options: {
|
|
5550
|
+
periodSelectType: this.periodSelectComponent ? this.periodSelectComponent.periodCategorySelected : null,
|
|
5551
|
+
source,
|
|
5552
|
+
}
|
|
5553
|
+
};
|
|
5554
|
+
}
|
|
5555
|
+
buildQueryFromControls(source) {
|
|
5556
|
+
return {
|
|
5557
|
+
type: this.getQueryType(),
|
|
5558
|
+
basic: this.isAdvancedSearch ? null : this.cloneDeep(this.queryCtrl.value),
|
|
5559
|
+
advanced: this.isAdvancedSearch ? this.cloneDeep(this.advancedQueryCtrl.value) : null,
|
|
5560
|
+
grouped: this.isAdvancedSearch && this.filterPanelObject.allowGrouped ? this.cloneDeep(this.groupedQueryCtrl.value) : null,
|
|
5561
|
+
options: {
|
|
5562
|
+
periodSelectType: this.periodSelectComponent ? this.periodSelectComponent.periodCategorySelected : null,
|
|
5563
|
+
source,
|
|
5564
|
+
}
|
|
5565
|
+
};
|
|
5566
|
+
}
|
|
5567
|
+
normalizeQueryForEmit(queries, persistOnStorage) {
|
|
5568
|
+
this.setEntity(queries);
|
|
5569
|
+
queries = this.initializeOperators(queries);
|
|
5570
|
+
queries = this.handleEmptyFieldsQuery(queries);
|
|
5571
|
+
if (queries.type !== QueryResultType.NoFilters) {
|
|
5572
|
+
this.nullableFilterOperationHandle(queries.basic ? queries.basic : queries.advanced);
|
|
5573
|
+
this.setPeriodSelectValue(queries.basic ? queries.basic : queries.advanced);
|
|
5538
5574
|
}
|
|
5539
|
-
|
|
5540
|
-
|
|
5575
|
+
this.setEmtpyArraysToNull(queries.basic ? queries.basic : queries.advanced);
|
|
5576
|
+
if (persistOnStorage) {
|
|
5577
|
+
let storedQuery = {
|
|
5578
|
+
id: this.filterId,
|
|
5579
|
+
basicQueryValue: queries.basic,
|
|
5580
|
+
advancedQueryValue: queries.advanced,
|
|
5581
|
+
groupedQueryValue: queries.grouped
|
|
5582
|
+
};
|
|
5583
|
+
if (!(storedQuery.advancedQueryValue && storedQuery.advancedQueryValue.rules.length === 0)) {
|
|
5584
|
+
this.sessionStorage.setLastFilterPanelQuery(this.tenantId, storedQuery);
|
|
5585
|
+
}
|
|
5586
|
+
}
|
|
5587
|
+
this.keepLocalDateFilterOperationHandle(queries.basic ? queries.basic : queries.advanced);
|
|
5588
|
+
queries = this.deleteFieldsWithoutValue(queries);
|
|
5589
|
+
queries = this.handleEmptyFieldsQuery(queries);
|
|
5590
|
+
if (queries.advanced) {
|
|
5591
|
+
queries.advanced = this.modifyTreeListValueParentToNull(queries.advanced);
|
|
5592
|
+
}
|
|
5593
|
+
else if (queries.basic) {
|
|
5594
|
+
queries.basic = this.modifyTreeListValueParentToNull(queries.basic);
|
|
5541
5595
|
}
|
|
5596
|
+
return queries;
|
|
5597
|
+
}
|
|
5598
|
+
ngOnInit() {
|
|
5599
|
+
this.isAdvancedSearch = this.sessionStorage.getLastFilterPanelQuery(this.tenantId, this.filterId)?.advancedQueryValue ? true : false;
|
|
5600
|
+
this.storedQuery = this.sessionStorage.getLastFilterPanelQuery(this.tenantId, this.filterId);
|
|
5542
5601
|
this.getQueryBuilderFilterPanel();
|
|
5543
5602
|
}
|
|
5544
5603
|
initQueryBuilderControls() {
|
|
@@ -5547,28 +5606,15 @@ class WFilterPanelComponent {
|
|
|
5547
5606
|
if (this.filterPanelObject.allowGrouped) {
|
|
5548
5607
|
this.groupedQueryCtrl = this.formBuilder.control(this.groupedQuery);
|
|
5549
5608
|
}
|
|
5550
|
-
|
|
5551
|
-
|
|
5552
|
-
|
|
5553
|
-
|
|
5554
|
-
|
|
5555
|
-
|
|
5556
|
-
|
|
5557
|
-
advanced: this.storedQuery?.advancedQueryValue ? Object.assign({}, this.storedQuery?.advancedQueryValue) : null,
|
|
5558
|
-
grouped: this.isAdvancedSearch && this.filterPanelObject.allowGrouped && this.groupedQueryCtrl ? Object.assign({}, this.groupedQueryCtrl?.value) : null
|
|
5559
|
-
};
|
|
5560
|
-
this.setNoFiltersQueryType(lastQuery)
|
|
5561
|
-
.then((res) => {
|
|
5562
|
-
lastQuery = this.deleteFieldsWithoutValue(lastQuery);
|
|
5563
|
-
lastQuery = this.handleEmptyFieldsQuery(lastQuery);
|
|
5564
|
-
this.lastQuery.emit(lastQuery);
|
|
5565
|
-
}).then(() => {
|
|
5566
|
-
this.inverseNullableFilterOperationHandle(this.advancedQueryCtrl.value);
|
|
5567
|
-
})
|
|
5568
|
-
.then(() => {
|
|
5569
|
-
this.onSearchClicked();
|
|
5570
|
-
});
|
|
5609
|
+
const hasStoredQuery = this.hasStoredQueryValues();
|
|
5610
|
+
const initSource = hasStoredQuery ? 'init-storage' : 'init-default';
|
|
5611
|
+
if (hasStoredQuery) {
|
|
5612
|
+
let lastQuery = this.normalizeQueryForEmit(this.buildQueryFromStored(initSource), false);
|
|
5613
|
+
this.lastQuery.emit(this.cloneDeep(lastQuery));
|
|
5614
|
+
this.onSearchClicked(initSource, lastQuery);
|
|
5615
|
+
return;
|
|
5571
5616
|
}
|
|
5617
|
+
this.onSearchClicked(initSource);
|
|
5572
5618
|
}
|
|
5573
5619
|
nullableSelectPlaceholder(rule, options) {
|
|
5574
5620
|
if (rule.operator == 'is' && rule.value == 'null') {
|
|
@@ -5582,6 +5628,9 @@ class WFilterPanelComponent {
|
|
|
5582
5628
|
return this.translationsObject.fieldsPlaceholders.list;
|
|
5583
5629
|
}
|
|
5584
5630
|
setEmtpyArraysToNull(query) {
|
|
5631
|
+
if (!query) {
|
|
5632
|
+
return;
|
|
5633
|
+
}
|
|
5585
5634
|
if ("rules" in query) {
|
|
5586
5635
|
query.rules.forEach((rule) => {
|
|
5587
5636
|
this.setEmtpyArraysToNull(rule);
|
|
@@ -5611,54 +5660,18 @@ class WFilterPanelComponent {
|
|
|
5611
5660
|
}
|
|
5612
5661
|
}
|
|
5613
5662
|
}
|
|
5614
|
-
onSearchClicked() {
|
|
5615
|
-
let queries =
|
|
5616
|
-
|
|
5617
|
-
|
|
5618
|
-
|
|
5619
|
-
|
|
5620
|
-
options
|
|
5621
|
-
|
|
5622
|
-
|
|
5623
|
-
};
|
|
5624
|
-
this.setEntity(queries);
|
|
5625
|
-
queries = this.initializeOperators(queries);
|
|
5626
|
-
this.setNoFiltersQueryType(queries).then((resQueries) => {
|
|
5627
|
-
if (resQueries.type != 0) {
|
|
5628
|
-
this.nullableFilterOperationHandle(queries.basic ? queries.basic : queries.advanced);
|
|
5629
|
-
this.setPeriodSelectValue(queries.basic ? queries.basic : queries.advanced);
|
|
5630
|
-
}
|
|
5631
|
-
}).then((resQueries) => {
|
|
5632
|
-
let storedQuery = {
|
|
5633
|
-
id: this.filterId,
|
|
5634
|
-
basicQueryValue: queries.basic,
|
|
5635
|
-
advancedQueryValue: queries.advanced,
|
|
5636
|
-
groupedQueryValue: queries.grouped
|
|
5663
|
+
onSearchClicked(source = 'user-click', preBuiltQuery) {
|
|
5664
|
+
let queries = preBuiltQuery ? this.cloneDeep(preBuiltQuery) : this.buildQueryFromControls(source);
|
|
5665
|
+
if (!preBuiltQuery) {
|
|
5666
|
+
queries = this.normalizeQueryForEmit(queries, true);
|
|
5667
|
+
}
|
|
5668
|
+
else {
|
|
5669
|
+
queries.options = {
|
|
5670
|
+
...(queries.options ?? {}),
|
|
5671
|
+
source,
|
|
5637
5672
|
};
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
//Do nothing
|
|
5641
|
-
}
|
|
5642
|
-
else {
|
|
5643
|
-
this.sessionStorage.setLastFilterPanelQuery(this.tenantId, storedQuery);
|
|
5644
|
-
}
|
|
5645
|
-
this.keepLocalDateFilterOperationHandle(queries.basic ? queries.basic : queries.advanced);
|
|
5646
|
-
}).then((resQueries) => {
|
|
5647
|
-
queries = this.deleteFieldsWithoutValue(queries);
|
|
5648
|
-
queries = this.handleEmptyFieldsQuery(queries);
|
|
5649
|
-
if (queries.advanced) {
|
|
5650
|
-
queries.advanced = this.modifyTreeListValueParentToNull(queries.advanced);
|
|
5651
|
-
}
|
|
5652
|
-
else {
|
|
5653
|
-
queries.basic = this.modifyTreeListValueParentToNull(queries.basic);
|
|
5654
|
-
}
|
|
5655
|
-
this.searchClicked.emit(queries);
|
|
5656
|
-
}).then(() => {
|
|
5657
|
-
this.inverseNullableFilterOperationHandle(this.advancedQueryCtrl.value);
|
|
5658
|
-
})
|
|
5659
|
-
.catch((error) => {
|
|
5660
|
-
console.error("Error en la promesa:", error);
|
|
5661
|
-
});
|
|
5673
|
+
}
|
|
5674
|
+
this.searchClicked.emit(queries);
|
|
5662
5675
|
}
|
|
5663
5676
|
setNoFiltersQueryType(queries) {
|
|
5664
5677
|
return new Promise((resolve, reject) => {
|
|
@@ -5680,14 +5693,23 @@ class WFilterPanelComponent {
|
|
|
5680
5693
|
}
|
|
5681
5694
|
}
|
|
5682
5695
|
handleEmptyFieldsQuery(queries) {
|
|
5683
|
-
|
|
5684
|
-
|
|
5696
|
+
const basicHasRules = !!queries.basic?.rules?.length;
|
|
5697
|
+
const advancedHasRules = !!queries.advanced?.rules?.length;
|
|
5698
|
+
const groupedHasRules = !!queries.grouped?.rules?.length;
|
|
5699
|
+
if (groupedHasRules) {
|
|
5700
|
+
queries.type = QueryResultType.Grouped;
|
|
5701
|
+
}
|
|
5702
|
+
else if (advancedHasRules) {
|
|
5703
|
+
queries.type = QueryResultType.Advanced;
|
|
5685
5704
|
}
|
|
5686
|
-
if (
|
|
5687
|
-
queries.type =
|
|
5705
|
+
else if (basicHasRules) {
|
|
5706
|
+
queries.type = QueryResultType.Basic;
|
|
5707
|
+
}
|
|
5708
|
+
else {
|
|
5709
|
+
queries.type = QueryResultType.NoFilters;
|
|
5688
5710
|
}
|
|
5689
|
-
if (queries.grouped
|
|
5690
|
-
queries.
|
|
5711
|
+
if (queries.grouped && !groupedHasRules) {
|
|
5712
|
+
queries.grouped = null;
|
|
5691
5713
|
}
|
|
5692
5714
|
return queries;
|
|
5693
5715
|
}
|
|
@@ -5744,7 +5766,7 @@ class WFilterPanelComponent {
|
|
|
5744
5766
|
}
|
|
5745
5767
|
}
|
|
5746
5768
|
keepLocalDateFilterOperationHandle(query) {
|
|
5747
|
-
if (this.fieldsToKeepLocalDate.length > 0) {
|
|
5769
|
+
if (this.fieldsToKeepLocalDate.length > 0 && query) {
|
|
5748
5770
|
if ("rules" in query) {
|
|
5749
5771
|
query.rules.forEach((rule) => {
|
|
5750
5772
|
this.keepLocalDateFilterOperationHandle(rule);
|
|
@@ -5879,7 +5901,7 @@ class WFilterPanelComponent {
|
|
|
5879
5901
|
return QueryResultType.Basic;
|
|
5880
5902
|
}
|
|
5881
5903
|
else {
|
|
5882
|
-
if (this.isAdvancedSearch && this.groupedQueryCtrl?.value) {
|
|
5904
|
+
if (this.isAdvancedSearch && this.groupedQueryCtrl?.value?.rules?.length) {
|
|
5883
5905
|
return QueryResultType.Grouped;
|
|
5884
5906
|
}
|
|
5885
5907
|
else {
|