@wix/bex-core 2.270.0 → 2.271.0
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/dist/cjs/state/OperatorFilterState/OperatorFilterState.js +23 -8
- package/dist/cjs/state/OperatorFilterState/OperatorFilterState.js.map +1 -1
- package/dist/esm/state/OperatorFilterState/OperatorFilterState.js +31 -7
- package/dist/esm/state/OperatorFilterState/OperatorFilterState.js.map +1 -1
- package/dist/types/state/OperatorFilterState/OperatorFilterState.d.ts +9 -4
- package/dist/types/state/OperatorFilterState/OperatorFilterState.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -13,13 +13,23 @@ var _operatorLabels = require("../../util/operatorLabels");
|
|
|
13
13
|
* Check if an operator requires a value input
|
|
14
14
|
*/
|
|
15
15
|
const operatorNeedsValue = operator => operator !== _model.FilterOperator.IS_EMPTY && operator !== _model.FilterOperator.EXISTS && operator !== _model.FilterOperator.NOT_EXISTS;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Standard operator ordering for UI display
|
|
19
|
+
*/
|
|
16
20
|
exports.operatorNeedsValue = operatorNeedsValue;
|
|
21
|
+
const OPERATOR_ORDER = [_model.FilterOperator.EQUALS, _model.FilterOperator.NOT_EQUALS, _model.FilterOperator.IN, _model.FilterOperator.NOT_IN, _model.FilterOperator.CONTAINS, _model.FilterOperator.NOT_CONTAINS, _model.FilterOperator.STARTS_WITH, _model.FilterOperator.GREATER_THAN, _model.FilterOperator.GREATER_THAN_OR_EQUAL, _model.FilterOperator.LESS_THAN, _model.FilterOperator.LESS_THAN_OR_EQUAL, _model.FilterOperator.IS_EMPTY, _model.FilterOperator.EXISTS, _model.FilterOperator.NOT_EXISTS];
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Sort operators according to the standard UI order
|
|
25
|
+
*/
|
|
26
|
+
const reorderOperators = operators => OPERATOR_ORDER.filter(op => operators.includes(op));
|
|
17
27
|
class OperatorFilterState {
|
|
18
28
|
constructor(params) {
|
|
19
29
|
(0, _defineProperty2.default)(this, "name", void 0);
|
|
20
30
|
(0, _defineProperty2.default)(this, "persistent", void 0);
|
|
21
31
|
(0, _defineProperty2.default)(this, "_value", undefined);
|
|
22
|
-
(0, _defineProperty2.default)(this, "
|
|
32
|
+
(0, _defineProperty2.default)(this, "allowedOperators", void 0);
|
|
23
33
|
(0, _defineProperty2.default)(this, "itemKey", void 0);
|
|
24
34
|
(0, _defineProperty2.default)(this, "itemName", void 0);
|
|
25
35
|
(0, _defineProperty2.default)(this, "equals", void 0);
|
|
@@ -29,13 +39,17 @@ class OperatorFilterState {
|
|
|
29
39
|
(0, _defineProperty2.default)(this, "events", new _events.EventEmitter());
|
|
30
40
|
this.name = params.name ?? '';
|
|
31
41
|
this.persistent = params.persistent;
|
|
32
|
-
this.
|
|
42
|
+
this.allowedOperators = reorderOperators(params.allowedOperators);
|
|
43
|
+
this._value = {
|
|
44
|
+
operator: this.allowedOperators[0],
|
|
45
|
+
value: null
|
|
46
|
+
};
|
|
33
47
|
this.itemKey = params.itemKey ?? (item => {
|
|
34
48
|
return `${item.operator}:${item.value}`;
|
|
35
49
|
});
|
|
36
50
|
this.itemName = params.itemName ?? (item => {
|
|
37
51
|
const operatorLabel = (0, _operatorLabels.getOperatorLabel)(item.operator);
|
|
38
|
-
return `${operatorLabel}${item.value
|
|
52
|
+
return `${operatorLabel}${item.value != null && item.value !== '' ? ` ${item.value}` : ''}`;
|
|
39
53
|
});
|
|
40
54
|
this.matches = params.matches ?? ((item, filterValue) => {
|
|
41
55
|
const operator = filterValue.operator;
|
|
@@ -132,6 +146,11 @@ class OperatorFilterState {
|
|
|
132
146
|
}
|
|
133
147
|
return this._value.value === null || this._value.value === '';
|
|
134
148
|
}
|
|
149
|
+
|
|
150
|
+
/** Computed default operator - first in allowedOperators */
|
|
151
|
+
get defaultOperator() {
|
|
152
|
+
return this.allowedOperators[0];
|
|
153
|
+
}
|
|
135
154
|
get size() {
|
|
136
155
|
return this.isEmpty ? 0 : 1;
|
|
137
156
|
}
|
|
@@ -139,10 +158,6 @@ class OperatorFilterState {
|
|
|
139
158
|
emitEvents,
|
|
140
159
|
...options
|
|
141
160
|
} = {}) {
|
|
142
|
-
// Capture the first operator as default for reset behavior
|
|
143
|
-
if (this.defaultOperator === undefined && (value == null ? void 0 : value.operator) !== undefined) {
|
|
144
|
-
this.defaultOperator = value.operator;
|
|
145
|
-
}
|
|
146
161
|
this._value = value;
|
|
147
162
|
if (emitEvents) {
|
|
148
163
|
for (const event of emitEvents) {
|
|
@@ -227,7 +242,7 @@ class OperatorFilterState {
|
|
|
227
242
|
encode: this.encode,
|
|
228
243
|
decode: this.decode,
|
|
229
244
|
matches: this.matches,
|
|
230
|
-
|
|
245
|
+
allowedOperators: this.allowedOperators,
|
|
231
246
|
...params
|
|
232
247
|
});
|
|
233
248
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_mobx","_model","_refreshFilter","_operatorLabels","operatorNeedsValue","operator","FilterOperator","IS_EMPTY","EXISTS","NOT_EXISTS","exports","OperatorFilterState","constructor","params","_defineProperty2","default","undefined","EventEmitter","name","persistent","defaultOperator","itemKey","item","value","itemName","operatorLabel","getOperatorLabel","matches","filterValue","itemValue","itemStr","toLowerCase","valueStr","EQUALS","NOT_EQUALS","STARTS_WITH","startsWith","CONTAINS","includes","NOT_CONTAINS","equals","item1","item2","encode","decode","_this$_value","_value","makeObservable","observable","ref","isEmpty","computed","size","reset","action","setValue","changeValue","scheduleRefresh","setOperator","setFilterValue","clone","toArray","_toArray","emitEvents","options","event","events","emit","refresh","refreshFilter","_this$_value2","toQueryString","JSON","stringify","applyFromQueryString","str","raw","parse","e","remove","_items","hasDiff","data","operatorFilter","stringOperatorFilter"],"sources":["../../../../src/state/OperatorFilterState/OperatorFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterItem,\n FilterStateBaseParams,\n FilterOperator,\n} from '../../model';\nimport { refreshFilter } from '../Filter/refreshFilter';\nimport { getOperatorLabel } from '../../util/operatorLabels';\n\n/**\n * Check if an operator requires a value input\n */\nexport const operatorNeedsValue = (operator: FilterOperator): boolean =>\n operator !== FilterOperator.IS_EMPTY &&\n operator !== FilterOperator.EXISTS &&\n operator !== FilterOperator.NOT_EXISTS;\n\nexport interface OperatorFilterValue<T> {\n operator: FilterOperator;\n value: T | null;\n}\n\nexport interface OperatorFilterStateParams<T>\n extends Omit<\n FilterStateBaseParams<OperatorFilterValue<T>>,\n 'itemKey' | 'itemName' | 'equals' | 'initialValue'\n > {\n /**\n * Function to get the key of an item (for value dropdown)\n */\n itemKey?: (item: FilterItem<OperatorFilterValue<T>>) => string;\n\n /**\n * Function to get the display name of an item (for value dropdown)\n */\n itemName?: (item: FilterItem<OperatorFilterValue<T>>) => string;\n\n /**\n * Function to check if two items are equal\n */\n equals?: (\n item1: FilterItem<OperatorFilterValue<T>>,\n item2: FilterItem<OperatorFilterValue<T>>,\n ) => boolean;\n\n /**\n * Function to encode the value for serialization\n */\n encode?: (value: OperatorFilterValue<T>) => unknown;\n\n /**\n * Function to decode a value from serialization\n */\n decode?: (value: unknown) => OperatorFilterValue<T>;\n\n /**\n * Function to check if an item matches the filter value\n */\n matches?: (\n item: FilterItem<OperatorFilterValue<T>>,\n value: OperatorFilterValue<T>,\n ) => boolean;\n\n /**\n * Default operator to use when resetting the filter\n */\n defaultOperator?: FilterOperator;\n}\n\nexport class OperatorFilterState<T = string>\n implements Filter<OperatorFilterValue<T>>\n{\n name: string;\n persistent;\n _value: OperatorFilterValue<T> | undefined = undefined;\n defaultOperator: FilterOperator | undefined;\n\n readonly itemKey: (item: FilterItem<OperatorFilterValue<T>>) => string;\n readonly itemName: (item: FilterItem<OperatorFilterValue<T>>) => string;\n readonly equals: (\n item1: FilterItem<OperatorFilterValue<T>>,\n item2: FilterItem<OperatorFilterValue<T>>,\n ) => boolean;\n readonly matches: (\n item: FilterItem<OperatorFilterValue<T>>,\n value: OperatorFilterValue<T>,\n ) => boolean;\n\n readonly decode: (value: unknown) => OperatorFilterValue<T>;\n readonly encode: (value: OperatorFilterValue<T>) => unknown;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: Readonly<OperatorFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultOperator = params.defaultOperator;\n\n this.itemKey =\n params.itemKey ??\n ((item) => {\n return `${item.operator}:${item.value}`;\n });\n\n this.itemName =\n params.itemName ??\n ((item) => {\n const operatorLabel = getOperatorLabel(item.operator);\n return `${operatorLabel}${\n item.value !== null && item.value !== '' ? ` ${item.value}` : ''\n }`;\n });\n\n this.matches =\n params.matches ??\n ((item, filterValue) => {\n const operator = filterValue.operator;\n const value = filterValue.value;\n const itemValue = item.value;\n\n if (operator === FilterOperator.IS_EMPTY) {\n return (\n itemValue === null || itemValue === '' || itemValue === undefined\n );\n }\n if (value === null) {\n return false;\n }\n if (operator === FilterOperator.EXISTS) {\n return itemValue !== null && itemValue !== undefined;\n }\n if (operator === FilterOperator.NOT_EXISTS) {\n return itemValue === null || itemValue === undefined;\n }\n if (typeof itemValue === 'string' && typeof value === 'string') {\n const itemStr = itemValue.toLowerCase();\n const valueStr = value.toLowerCase();\n\n switch (operator) {\n case FilterOperator.EQUALS:\n return itemStr === valueStr;\n case FilterOperator.NOT_EQUALS:\n return itemStr !== valueStr;\n case FilterOperator.STARTS_WITH:\n return itemStr.startsWith(valueStr);\n case FilterOperator.CONTAINS:\n return itemStr.includes(valueStr);\n case FilterOperator.NOT_CONTAINS:\n return !itemStr.includes(valueStr);\n }\n }\n\n return itemValue === value;\n });\n\n this.equals =\n params.equals ??\n ((item1, item2) => {\n if (item1.operator !== item2.operator) {\n return false;\n }\n return item1.value === item2.value;\n });\n\n this.encode =\n params.encode ??\n ((value) => ({\n operator: value.operator,\n value: value.value,\n }));\n\n this.decode =\n params.decode ??\n ((value) => {\n if (value) {\n return {\n operator: (value as OperatorFilterValue<T>).operator,\n value: (value as OperatorFilterValue<T>).value,\n };\n }\n return {\n operator: this._value?.operator,\n value: null,\n } as OperatorFilterValue<T>;\n });\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n setOperator: action,\n setFilterValue: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value!;\n }\n\n get toArray() {\n return this._toArray(this._value!);\n }\n\n get _toArray() {\n return (value: OperatorFilterValue<T>) => {\n if (this.isEmpty) {\n return [];\n }\n return [value];\n };\n }\n\n get isEmpty() {\n if (!this._value) {\n return true;\n }\n if (!operatorNeedsValue(this._value.operator)) {\n return false;\n }\n return this._value.value === null || this._value.value === '';\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n setValue(\n value: OperatorFilterValue<T>,\n { emitEvents, ...options }: ChangeValueOptions = {},\n ) {\n // Capture the first operator as default for reset behavior\n if (this.defaultOperator === undefined && value?.operator !== undefined) {\n this.defaultOperator = value.operator;\n }\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: OperatorFilterValue<T>,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: OperatorFilterValue<T>, options?: ChangeValueOptions) {\n refreshFilter(this, value, options);\n }\n\n scheduleRefresh(value: OperatorFilterValue<T>) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n /**\n * Set only the operator, keeping the current value\n */\n setOperator(operator: FilterOperator, options?: ChangeValueOptions) {\n this.changeValue(\n {\n operator,\n value: this._value?.value ?? null,\n },\n options,\n );\n }\n\n /**\n * Set only the filter value, keeping the current operator\n */\n setFilterValue(value: T | null, options?: ChangeValueOptions) {\n this.changeValue(\n {\n operator: this._value!.operator,\n value,\n },\n options,\n );\n }\n\n get toQueryString() {\n return JSON.stringify(this.encode(this.value));\n }\n\n applyFromQueryString(str: string) {\n try {\n const raw = JSON.parse(str) as unknown;\n this.setValue(this.decode(raw));\n } catch (e) {\n // Invalid JSON, reset to default\n this.reset();\n }\n }\n\n reset(options: ChangeValueOptions = {}) {\n this._value = {\n operator: this.defaultOperator,\n value: null,\n } as OperatorFilterValue<T>;\n if (options.emitEvents) {\n for (const event of options.emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n remove(\n _items: FilterItem<OperatorFilterValue<T>>[],\n options: ChangeValueOptions = {},\n ) {\n this.reset(options);\n }\n\n hasDiff(data: OperatorFilterValue<T>) {\n return (\n data.operator !== this.value.operator || data.value !== this.value.value\n );\n }\n\n clone(params: Partial<OperatorFilterStateParams<T>> = {}) {\n return new OperatorFilterState<T>({\n name: this.name,\n persistent: this.persistent,\n itemKey: this.itemKey,\n itemName: this.itemName,\n equals: this.equals,\n encode: this.encode,\n decode: this.decode,\n matches: this.matches,\n defaultOperator: this.defaultOperator,\n ...params,\n });\n }\n}\n\nexport const operatorFilter = <T>(params: OperatorFilterStateParams<T>) =>\n new OperatorFilterState<T>(params);\n\nexport const stringOperatorFilter = (\n params: Partial<OperatorFilterStateParams<string>>,\n) =>\n new OperatorFilterState<string>(params as OperatorFilterStateParams<string>);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_events","require","_mobx","_model","_refreshFilter","_operatorLabels","operatorNeedsValue","operator","FilterOperator","IS_EMPTY","EXISTS","NOT_EXISTS","exports","OPERATOR_ORDER","EQUALS","NOT_EQUALS","IN","NOT_IN","CONTAINS","NOT_CONTAINS","STARTS_WITH","GREATER_THAN","GREATER_THAN_OR_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL","reorderOperators","operators","filter","op","includes","OperatorFilterState","constructor","params","_defineProperty2","default","undefined","EventEmitter","name","persistent","allowedOperators","_value","value","itemKey","item","itemName","operatorLabel","getOperatorLabel","matches","filterValue","itemValue","itemStr","toLowerCase","valueStr","startsWith","equals","item1","item2","encode","decode","_this$_value","makeObservable","observable","ref","isEmpty","computed","size","reset","action","setValue","changeValue","scheduleRefresh","setOperator","setFilterValue","clone","toArray","_toArray","defaultOperator","emitEvents","options","event","events","emit","refresh","refreshFilter","_this$_value2","toQueryString","JSON","stringify","applyFromQueryString","str","raw","parse","e","remove","_items","hasDiff","data","operatorFilter","stringOperatorFilter"],"sources":["../../../../src/state/OperatorFilterState/OperatorFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterItem,\n FilterStateBaseParams,\n FilterOperator,\n} from '../../model';\nimport { refreshFilter } from '../Filter/refreshFilter';\nimport { getOperatorLabel } from '../../util/operatorLabels';\n\n/**\n * Check if an operator requires a value input\n */\nexport const operatorNeedsValue = (operator: FilterOperator): boolean =>\n operator !== FilterOperator.IS_EMPTY &&\n operator !== FilterOperator.EXISTS &&\n operator !== FilterOperator.NOT_EXISTS;\n\n/**\n * Standard operator ordering for UI display\n */\nconst OPERATOR_ORDER: FilterOperator[] = [\n FilterOperator.EQUALS,\n FilterOperator.NOT_EQUALS,\n FilterOperator.IN,\n FilterOperator.NOT_IN,\n FilterOperator.CONTAINS,\n FilterOperator.NOT_CONTAINS,\n FilterOperator.STARTS_WITH,\n FilterOperator.GREATER_THAN,\n FilterOperator.GREATER_THAN_OR_EQUAL,\n FilterOperator.LESS_THAN,\n FilterOperator.LESS_THAN_OR_EQUAL,\n FilterOperator.IS_EMPTY,\n FilterOperator.EXISTS,\n FilterOperator.NOT_EXISTS,\n];\n\n/**\n * Sort operators according to the standard UI order\n */\nconst reorderOperators = (operators: FilterOperator[]): FilterOperator[] =>\n OPERATOR_ORDER.filter((op) => operators.includes(op));\n\nexport interface OperatorFilterValue<T> {\n operator: FilterOperator;\n value: T | null;\n}\n\nexport interface OperatorFilterStateParams<T>\n extends Omit<\n FilterStateBaseParams<OperatorFilterValue<T>>,\n 'itemKey' | 'itemName' | 'equals' | 'initialValue'\n > {\n /**\n * Function to get the key of an item (for value dropdown)\n */\n itemKey?: (item: FilterItem<OperatorFilterValue<T>>) => string;\n\n /**\n * Function to get the display name of an item (for value dropdown)\n */\n itemName?: (item: FilterItem<OperatorFilterValue<T>>) => string;\n\n /**\n * Function to check if two items are equal\n */\n equals?: (\n item1: FilterItem<OperatorFilterValue<T>>,\n item2: FilterItem<OperatorFilterValue<T>>,\n ) => boolean;\n\n /**\n * Function to encode the value for serialization\n */\n encode?: (value: OperatorFilterValue<T>) => unknown;\n\n /**\n * Function to decode a value from serialization\n */\n decode?: (value: unknown) => OperatorFilterValue<T>;\n\n /**\n * Function to check if an item matches the filter value\n */\n matches?: (\n item: FilterItem<OperatorFilterValue<T>>,\n value: OperatorFilterValue<T>,\n ) => boolean;\n\n /**\n * List of allowed operators for this filter.\n * The first operator will be used as the default.\n */\n allowedOperators: FilterOperator[];\n}\n\nexport class OperatorFilterState<T = string>\n implements Filter<OperatorFilterValue<T>>\n{\n name: string;\n persistent;\n _value: OperatorFilterValue<T> | undefined = undefined;\n readonly allowedOperators: FilterOperator[];\n\n readonly itemKey: (item: FilterItem<OperatorFilterValue<T>>) => string;\n readonly itemName: (item: FilterItem<OperatorFilterValue<T>>) => string;\n readonly equals: (\n item1: FilterItem<OperatorFilterValue<T>>,\n item2: FilterItem<OperatorFilterValue<T>>,\n ) => boolean;\n readonly matches: (\n item: FilterItem<OperatorFilterValue<T>>,\n value: OperatorFilterValue<T>,\n ) => boolean;\n\n readonly decode: (value: unknown) => OperatorFilterValue<T>;\n readonly encode: (value: OperatorFilterValue<T>) => unknown;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: Readonly<OperatorFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n\n this.allowedOperators = reorderOperators(params.allowedOperators);\n\n this._value = { operator: this.allowedOperators[0], value: null };\n\n this.itemKey =\n params.itemKey ??\n ((item) => {\n return `${item.operator}:${item.value}`;\n });\n\n this.itemName =\n params.itemName ??\n ((item) => {\n const operatorLabel = getOperatorLabel(item.operator);\n return `${operatorLabel}${\n item.value != null && item.value !== '' ? ` ${item.value}` : ''\n }`;\n });\n\n this.matches =\n params.matches ??\n ((item, filterValue) => {\n const operator = filterValue.operator;\n const value = filterValue.value;\n const itemValue = item.value;\n\n if (operator === FilterOperator.IS_EMPTY) {\n return (\n itemValue === null || itemValue === '' || itemValue === undefined\n );\n }\n if (value === null) {\n return false;\n }\n if (operator === FilterOperator.EXISTS) {\n return itemValue !== null && itemValue !== undefined;\n }\n if (operator === FilterOperator.NOT_EXISTS) {\n return itemValue === null || itemValue === undefined;\n }\n if (typeof itemValue === 'string' && typeof value === 'string') {\n const itemStr = itemValue.toLowerCase();\n const valueStr = value.toLowerCase();\n\n switch (operator) {\n case FilterOperator.EQUALS:\n return itemStr === valueStr;\n case FilterOperator.NOT_EQUALS:\n return itemStr !== valueStr;\n case FilterOperator.STARTS_WITH:\n return itemStr.startsWith(valueStr);\n case FilterOperator.CONTAINS:\n return itemStr.includes(valueStr);\n case FilterOperator.NOT_CONTAINS:\n return !itemStr.includes(valueStr);\n }\n }\n\n return itemValue === value;\n });\n\n this.equals =\n params.equals ??\n ((item1, item2) => {\n if (item1.operator !== item2.operator) {\n return false;\n }\n return item1.value === item2.value;\n });\n\n this.encode =\n params.encode ??\n ((value) => ({\n operator: value.operator,\n value: value.value,\n }));\n\n this.decode =\n params.decode ??\n ((value) => {\n if (value) {\n return {\n operator: (value as OperatorFilterValue<T>).operator,\n value: (value as OperatorFilterValue<T>).value,\n };\n }\n return {\n operator: this._value?.operator,\n value: null,\n } as OperatorFilterValue<T>;\n });\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n setOperator: action,\n setFilterValue: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value!;\n }\n\n get toArray() {\n return this._toArray(this._value!);\n }\n\n get _toArray() {\n return (value: OperatorFilterValue<T>) => {\n if (this.isEmpty) {\n return [];\n }\n return [value];\n };\n }\n\n get isEmpty() {\n if (!this._value) {\n return true;\n }\n if (!operatorNeedsValue(this._value.operator)) {\n return false;\n }\n return this._value.value === null || this._value.value === '';\n }\n\n /** Computed default operator - first in allowedOperators */\n get defaultOperator() {\n return this.allowedOperators[0];\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n setValue(\n value: OperatorFilterValue<T>,\n { emitEvents, ...options }: ChangeValueOptions = {},\n ) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: OperatorFilterValue<T>,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: OperatorFilterValue<T>, options?: ChangeValueOptions) {\n refreshFilter(this, value, options);\n }\n\n scheduleRefresh(value: OperatorFilterValue<T>) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n /**\n * Set only the operator, keeping the current value\n */\n setOperator(operator: FilterOperator, options?: ChangeValueOptions) {\n this.changeValue(\n {\n operator,\n value: this._value?.value ?? null,\n },\n options,\n );\n }\n\n /**\n * Set only the filter value, keeping the current operator\n */\n setFilterValue(value: T | null, options?: ChangeValueOptions) {\n this.changeValue(\n {\n operator: this._value!.operator,\n value,\n },\n options,\n );\n }\n\n get toQueryString() {\n return JSON.stringify(this.encode(this.value));\n }\n\n applyFromQueryString(str: string) {\n try {\n const raw = JSON.parse(str) as unknown;\n this.setValue(this.decode(raw));\n } catch (e) {\n // Invalid JSON, reset to default\n this.reset();\n }\n }\n\n reset(options: ChangeValueOptions = {}) {\n this._value = {\n operator: this.defaultOperator,\n value: null,\n } as OperatorFilterValue<T>;\n if (options.emitEvents) {\n for (const event of options.emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n remove(\n _items: FilterItem<OperatorFilterValue<T>>[],\n options: ChangeValueOptions = {},\n ) {\n this.reset(options);\n }\n\n hasDiff(data: OperatorFilterValue<T>) {\n return (\n data.operator !== this.value.operator || data.value !== this.value.value\n );\n }\n\n clone(params: Partial<OperatorFilterStateParams<T>> = {}) {\n return new OperatorFilterState<T>({\n name: this.name,\n persistent: this.persistent,\n itemKey: this.itemKey,\n itemName: this.itemName,\n equals: this.equals,\n encode: this.encode,\n decode: this.decode,\n matches: this.matches,\n allowedOperators: this.allowedOperators,\n ...params,\n });\n }\n}\n\nexport const operatorFilter = <T>(params: OperatorFilterStateParams<T>) =>\n new OperatorFilterState<T>(params);\n\nexport const stringOperatorFilter = (\n params: Omit<\n Partial<OperatorFilterStateParams<string>>,\n 'allowedOperators'\n > & {\n allowedOperators: FilterOperator[];\n },\n) =>\n new OperatorFilterState<string>(params as OperatorFilterStateParams<string>);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,13 +9,37 @@ import { getOperatorLabel } from '../../util/operatorLabels';
|
|
|
9
9
|
export const operatorNeedsValue = (operator) => operator !== FilterOperator.IS_EMPTY &&
|
|
10
10
|
operator !== FilterOperator.EXISTS &&
|
|
11
11
|
operator !== FilterOperator.NOT_EXISTS;
|
|
12
|
+
/**
|
|
13
|
+
* Standard operator ordering for UI display
|
|
14
|
+
*/
|
|
15
|
+
const OPERATOR_ORDER = [
|
|
16
|
+
FilterOperator.EQUALS,
|
|
17
|
+
FilterOperator.NOT_EQUALS,
|
|
18
|
+
FilterOperator.IN,
|
|
19
|
+
FilterOperator.NOT_IN,
|
|
20
|
+
FilterOperator.CONTAINS,
|
|
21
|
+
FilterOperator.NOT_CONTAINS,
|
|
22
|
+
FilterOperator.STARTS_WITH,
|
|
23
|
+
FilterOperator.GREATER_THAN,
|
|
24
|
+
FilterOperator.GREATER_THAN_OR_EQUAL,
|
|
25
|
+
FilterOperator.LESS_THAN,
|
|
26
|
+
FilterOperator.LESS_THAN_OR_EQUAL,
|
|
27
|
+
FilterOperator.IS_EMPTY,
|
|
28
|
+
FilterOperator.EXISTS,
|
|
29
|
+
FilterOperator.NOT_EXISTS,
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* Sort operators according to the standard UI order
|
|
33
|
+
*/
|
|
34
|
+
const reorderOperators = (operators) => OPERATOR_ORDER.filter((op) => operators.includes(op));
|
|
12
35
|
export class OperatorFilterState {
|
|
13
36
|
constructor(params) {
|
|
14
37
|
this._value = undefined;
|
|
15
38
|
this.events = new EventEmitter();
|
|
16
39
|
this.name = params.name ?? '';
|
|
17
40
|
this.persistent = params.persistent;
|
|
18
|
-
this.
|
|
41
|
+
this.allowedOperators = reorderOperators(params.allowedOperators);
|
|
42
|
+
this._value = { operator: this.allowedOperators[0], value: null };
|
|
19
43
|
this.itemKey =
|
|
20
44
|
params.itemKey ??
|
|
21
45
|
((item) => {
|
|
@@ -25,7 +49,7 @@ export class OperatorFilterState {
|
|
|
25
49
|
params.itemName ??
|
|
26
50
|
((item) => {
|
|
27
51
|
const operatorLabel = getOperatorLabel(item.operator);
|
|
28
|
-
return `${operatorLabel}${item.value
|
|
52
|
+
return `${operatorLabel}${item.value != null && item.value !== '' ? ` ${item.value}` : ''}`;
|
|
29
53
|
});
|
|
30
54
|
this.matches =
|
|
31
55
|
params.matches ??
|
|
@@ -129,14 +153,14 @@ export class OperatorFilterState {
|
|
|
129
153
|
}
|
|
130
154
|
return this._value.value === null || this._value.value === '';
|
|
131
155
|
}
|
|
156
|
+
/** Computed default operator - first in allowedOperators */
|
|
157
|
+
get defaultOperator() {
|
|
158
|
+
return this.allowedOperators[0];
|
|
159
|
+
}
|
|
132
160
|
get size() {
|
|
133
161
|
return this.isEmpty ? 0 : 1;
|
|
134
162
|
}
|
|
135
163
|
setValue(value, { emitEvents, ...options } = {}) {
|
|
136
|
-
// Capture the first operator as default for reset behavior
|
|
137
|
-
if (this.defaultOperator === undefined && value?.operator !== undefined) {
|
|
138
|
-
this.defaultOperator = value.operator;
|
|
139
|
-
}
|
|
140
164
|
this._value = value;
|
|
141
165
|
if (emitEvents) {
|
|
142
166
|
for (const event of emitEvents) {
|
|
@@ -211,7 +235,7 @@ export class OperatorFilterState {
|
|
|
211
235
|
encode: this.encode,
|
|
212
236
|
decode: this.decode,
|
|
213
237
|
matches: this.matches,
|
|
214
|
-
|
|
238
|
+
allowedOperators: this.allowedOperators,
|
|
215
239
|
...params,
|
|
216
240
|
});
|
|
217
241
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperatorFilterState.js","sourceRoot":"","sources":["../../../../src/state/OperatorFilterState/OperatorFilterState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAML,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAwB,EAAW,EAAE,CACtE,QAAQ,KAAK,cAAc,CAAC,QAAQ;IACpC,QAAQ,KAAK,cAAc,CAAC,MAAM;IAClC,QAAQ,KAAK,cAAc,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"OperatorFilterState.js","sourceRoot":"","sources":["../../../../src/state/OperatorFilterState/OperatorFilterState.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,15 +33,16 @@ export interface OperatorFilterStateParams<T> extends Omit<FilterStateBaseParams
|
|
|
33
33
|
*/
|
|
34
34
|
matches?: (item: FilterItem<OperatorFilterValue<T>>, value: OperatorFilterValue<T>) => boolean;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* List of allowed operators for this filter.
|
|
37
|
+
* The first operator will be used as the default.
|
|
37
38
|
*/
|
|
38
|
-
|
|
39
|
+
allowedOperators: FilterOperator[];
|
|
39
40
|
}
|
|
40
41
|
export declare class OperatorFilterState<T = string> implements Filter<OperatorFilterValue<T>> {
|
|
41
42
|
name: string;
|
|
42
43
|
persistent: boolean | undefined;
|
|
43
44
|
_value: OperatorFilterValue<T> | undefined;
|
|
44
|
-
|
|
45
|
+
readonly allowedOperators: FilterOperator[];
|
|
45
46
|
readonly itemKey: (item: FilterItem<OperatorFilterValue<T>>) => string;
|
|
46
47
|
readonly itemName: (item: FilterItem<OperatorFilterValue<T>>) => string;
|
|
47
48
|
readonly equals: (item1: FilterItem<OperatorFilterValue<T>>, item2: FilterItem<OperatorFilterValue<T>>) => boolean;
|
|
@@ -54,6 +55,8 @@ export declare class OperatorFilterState<T = string> implements Filter<OperatorF
|
|
|
54
55
|
get toArray(): OperatorFilterValue<T>[];
|
|
55
56
|
get _toArray(): (value: OperatorFilterValue<T>) => OperatorFilterValue<T>[];
|
|
56
57
|
get isEmpty(): boolean;
|
|
58
|
+
/** Computed default operator - first in allowedOperators */
|
|
59
|
+
get defaultOperator(): FilterOperator;
|
|
57
60
|
get size(): 0 | 1;
|
|
58
61
|
setValue(value: OperatorFilterValue<T>, { emitEvents, ...options }?: ChangeValueOptions): void;
|
|
59
62
|
changeValue(value: OperatorFilterValue<T>, { emitEvents, ...options }?: ChangeValueOptions): void;
|
|
@@ -75,5 +78,7 @@ export declare class OperatorFilterState<T = string> implements Filter<OperatorF
|
|
|
75
78
|
clone(params?: Partial<OperatorFilterStateParams<T>>): OperatorFilterState<T>;
|
|
76
79
|
}
|
|
77
80
|
export declare const operatorFilter: <T>(params: OperatorFilterStateParams<T>) => OperatorFilterState<T>;
|
|
78
|
-
export declare const stringOperatorFilter: (params: Partial<OperatorFilterStateParams<string
|
|
81
|
+
export declare const stringOperatorFilter: (params: Omit<Partial<OperatorFilterStateParams<string>>, 'allowedOperators'> & {
|
|
82
|
+
allowedOperators: FilterOperator[];
|
|
83
|
+
}) => OperatorFilterState<string>;
|
|
79
84
|
//# sourceMappingURL=OperatorFilterState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperatorFilterState.d.ts","sourceRoot":"","sources":["../../../../src/state/OperatorFilterState/OperatorFilterState.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,eAAO,MAAM,kBAAkB,aAAc,cAAc,KAAG,OAGtB,CAAC;
|
|
1
|
+
{"version":3,"file":"OperatorFilterState.d.ts","sourceRoot":"","sources":["../../../../src/state/OperatorFilterState/OperatorFilterState.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/bex-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.271.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kobi",
|
|
@@ -166,5 +166,5 @@
|
|
|
166
166
|
"wallaby": {
|
|
167
167
|
"autoDetect": true
|
|
168
168
|
},
|
|
169
|
-
"falconPackageHash": "
|
|
169
|
+
"falconPackageHash": "7ee5bd6b6f30131834e7927922853d0d14f6766fdf7a81c8b36edab7"
|
|
170
170
|
}
|