diff --git a/source/components/datatable/filter.mjs b/source/components/datatable/filter.mjs index 6896d57debb7ff139597110b677cb1e726efd4fc..48ab894369820ca47a51ca8758f583792535bec7 100644 --- a/source/components/datatable/filter.mjs +++ b/source/components/datatable/filter.mjs @@ -241,6 +241,7 @@ class Filter extends CustomElement { * @property {Object} formatter.marker.close Marker close * @property {Object} features Feature definitions * @property {boolean} features.storedConfig Stored configuration, this replaces the setting `storedConfig.enabled` @since 3.97.0 + * @property {boolean} features.autoFilter Auto filter @since 3.100.0 * @property {Object} storedConfig Stored configuration * @property {boolean} storedConfig.enabled The store has been enabled, this option will no longer have any effect. @deprecated 20250101 * @property {string} storedConfig.selector Selector @@ -275,6 +276,7 @@ class Filter extends CustomElement { features: { storedConfig: false, + autoFilter: true, }, storedConfig: { @@ -317,6 +319,8 @@ class Filter extends CustomElement { * @fires monster-filter-initialized */ [assembleMethodSymbol]() { + const self = this; + this.setOption( "templateMapping.filter-save-label", this.getOption("labels.save"), @@ -329,26 +333,30 @@ class Filter extends CustomElement { super[assembleMethodSymbol](); - initControlReferences.call(this); + initControlReferences.call(self); getWindow().requestAnimationFrame(() => { - initEventHandler.call(this); + initEventHandler.call(self); }); initFromConfig - .call(this) + .call(self) .then(() => {}) .catch((error) => { - addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, error?.message); + addAttributeToken(self, ATTRIBUTE_ERRORMESSAGE, error?.message); }) .finally(() => { - initFilter.call(this); - updateFilterTabs.call(this); - doSearch - .call(this, { showEffect: false }) - .then(() => { - fireCustomEvent(this, "monster-filter-initialized"); - }) - .catch(() => {}); + initFilter.call(self); + updateFilterTabs.call(self); + + if (self.getOption("features.autoFilter")===true) { + doSearch + .call(self, {showEffect: false}) + .then(() => { + fireCustomEvent(self, "monster-filter-initialized"); + }) + .catch(() => { + }); + } }); }