@wix/bex-core 2.115.0 → 2.119.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.
Files changed (75) hide show
  1. package/dist/cjs/assets/locale/messages_da.json +2 -2
  2. package/dist/cjs/assets/locale/messages_id.json +2 -2
  3. package/dist/cjs/assets/locale/messages_ja.json +4 -4
  4. package/dist/cjs/assets/locale/messages_ko.json +2 -2
  5. package/dist/cjs/assets/locale/messages_nl.json +3 -3
  6. package/dist/cjs/assets/locale/messages_no.json +2 -2
  7. package/dist/cjs/assets/locale/messages_pl.json +2 -2
  8. package/dist/cjs/assets/locale/messages_sv.json +2 -2
  9. package/dist/cjs/assets/locale/messages_th.json +2 -2
  10. package/dist/cjs/assets/locale/messages_tr.json +2 -2
  11. package/dist/cjs/assets/locale/messages_vi.json +2 -2
  12. package/dist/cjs/assets/locale/messages_zh.json +2 -2
  13. package/dist/cjs/model/filter.js.map +1 -1
  14. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js +2 -0
  15. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  16. package/dist/cjs/state/BulkSelectState.js +3 -0
  17. package/dist/cjs/state/BulkSelectState.js.map +1 -1
  18. package/dist/cjs/state/CollectionState.js +5 -2
  19. package/dist/cjs/state/CollectionState.js.map +1 -1
  20. package/dist/cjs/state/CustomFieldModalState.js +7 -2
  21. package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
  22. package/dist/cjs/state/DataExtensionState.js +60 -14
  23. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  24. package/dist/cjs/state/MultiCollectionSupport.js +6 -2
  25. package/dist/cjs/state/MultiCollectionSupport.js.map +1 -1
  26. package/dist/cjs/state/QueryState.js +11 -4
  27. package/dist/cjs/state/QueryState.js.map +1 -1
  28. package/dist/cjs/state/RangeFilterState/RangeFilterState.js +2 -0
  29. package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
  30. package/dist/esm/assets/locale/messages_da.json +2 -2
  31. package/dist/esm/assets/locale/messages_id.json +2 -2
  32. package/dist/esm/assets/locale/messages_ja.json +4 -4
  33. package/dist/esm/assets/locale/messages_ko.json +2 -2
  34. package/dist/esm/assets/locale/messages_nl.json +3 -3
  35. package/dist/esm/assets/locale/messages_no.json +2 -2
  36. package/dist/esm/assets/locale/messages_pl.json +2 -2
  37. package/dist/esm/assets/locale/messages_sv.json +2 -2
  38. package/dist/esm/assets/locale/messages_th.json +2 -2
  39. package/dist/esm/assets/locale/messages_tr.json +2 -2
  40. package/dist/esm/assets/locale/messages_vi.json +2 -2
  41. package/dist/esm/assets/locale/messages_zh.json +2 -2
  42. package/dist/esm/state/ArrayFilterState/ArrayFilterState.js +1 -0
  43. package/dist/esm/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  44. package/dist/esm/state/BulkSelectState.js +3 -0
  45. package/dist/esm/state/BulkSelectState.js.map +1 -1
  46. package/dist/esm/state/CollectionState.js +2 -2
  47. package/dist/esm/state/CollectionState.js.map +1 -1
  48. package/dist/esm/state/CustomFieldModalState.js +5 -2
  49. package/dist/esm/state/CustomFieldModalState.js.map +1 -1
  50. package/dist/esm/state/DataExtensionState.js +43 -14
  51. package/dist/esm/state/DataExtensionState.js.map +1 -1
  52. package/dist/esm/state/MultiCollectionSupport.js +4 -2
  53. package/dist/esm/state/MultiCollectionSupport.js.map +1 -1
  54. package/dist/esm/state/QueryState.js +8 -4
  55. package/dist/esm/state/QueryState.js.map +1 -1
  56. package/dist/esm/state/RangeFilterState/RangeFilterState.js +1 -0
  57. package/dist/esm/state/RangeFilterState/RangeFilterState.js.map +1 -1
  58. package/dist/types/model/filter.d.ts +5 -0
  59. package/dist/types/model/filter.d.ts.map +1 -1
  60. package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts +1 -0
  61. package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts.map +1 -1
  62. package/dist/types/state/BulkSelectState.d.ts +1 -0
  63. package/dist/types/state/BulkSelectState.d.ts.map +1 -1
  64. package/dist/types/state/CollectionState.d.ts +2 -1
  65. package/dist/types/state/CollectionState.d.ts.map +1 -1
  66. package/dist/types/state/CustomFieldModalState.d.ts.map +1 -1
  67. package/dist/types/state/DataExtensionState.d.ts +11 -2
  68. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  69. package/dist/types/state/MultiCollectionSupport.d.ts +3 -1
  70. package/dist/types/state/MultiCollectionSupport.d.ts.map +1 -1
  71. package/dist/types/state/QueryState.d.ts +5 -2
  72. package/dist/types/state/QueryState.d.ts.map +1 -1
  73. package/dist/types/state/RangeFilterState/RangeFilterState.d.ts +1 -0
  74. package/dist/types/state/RangeFilterState/RangeFilterState.d.ts.map +1 -1
  75. package/package.json +4 -4
@@ -29,8 +29,7 @@ class DataExtensionState {
29
29
  (0, _defineProperty2.default)(this, "closeSidePanel", void 0);
30
30
  (0, _defineProperty2.default)(this, "reportBi", void 0);
31
31
  (0, _defineProperty2.default)(this, "fqdn", void 0);
32
- (0, _defineProperty2.default)(this, "userSchema", undefined);
33
- (0, _defineProperty2.default)(this, "appSchemas", undefined);
32
+ (0, _defineProperty2.default)(this, "_dataExtensionSchemas", []);
34
33
  (0, _defineProperty2.default)(this, "containsPii", void 0);
35
34
  (0, _defineProperty2.default)(this, "defaultPermissions", void 0);
36
35
  (0, _defineProperty2.default)(this, "disableUserDefinedWriting", void 0);
@@ -58,9 +57,11 @@ class DataExtensionState {
58
57
  isReachedMaxCustomFields: _mobx.computed,
59
58
  disableAddCustomField: _mobx.computed,
60
59
  disableAddCustomFieldContent: _mobx.computed,
61
- userSchema: _mobx.observable.ref,
62
- appSchemas: _mobx.observable.ref,
60
+ _dataExtensionSchemas: _mobx.observable.ref,
61
+ userSchema: _mobx.computed,
62
+ appSchemas: _mobx.computed,
63
63
  openCustomFieldModal: _mobx.action,
64
+ _upsertSchema: _mobx.action,
64
65
  containsPii: _mobx.observable,
65
66
  defaultPermissions: _mobx.observable
66
67
  });
@@ -101,9 +102,9 @@ class DataExtensionState {
101
102
  fqdn: this.fqdnString,
102
103
  id
103
104
  });
104
- (0, _mobx.runInAction)(() => {
105
- this.userSchema = dataExtensionSchema;
106
- });
105
+ if (dataExtensionSchema) {
106
+ this._upsertSchema(dataExtensionSchema);
107
+ }
107
108
  (_this$container$showT = (_this$container = this.container).showToast) == null || _this$container$showT.call(_this$container, {
108
109
  message: this.container.translate('cairo.customFields.archive.success.toast'),
109
110
  type: 'SUCCESS',
@@ -269,6 +270,28 @@ class DataExtensionState {
269
270
  return [...prev, ...this.getAvailableCustomFieldsForApp(schema)];
270
271
  }, [])) ?? [];
271
272
  }
273
+ getSchemaAndFieldsByNamespace(namespace) {
274
+ var _schema$jsonSchema;
275
+ const {
276
+ _dataExtensionSchemas,
277
+ dataExtensionService: {
278
+ userFieldsNamespace
279
+ }
280
+ } = this;
281
+ const schema = _dataExtensionSchemas.find(s => s.namespace === namespace);
282
+ if (!schema) {
283
+ return {};
284
+ }
285
+ const fields = this.getAvailableCustomFieldsInSchema(((_schema$jsonSchema = schema.jsonSchema) == null ? void 0 : _schema$jsonSchema.properties) || {}, {
286
+ editable: namespace === userFieldsNamespace,
287
+ owner: namespace === userFieldsNamespace ? 'user' : 'app',
288
+ namespace
289
+ });
290
+ return {
291
+ schema,
292
+ fields
293
+ };
294
+ }
272
295
  getAvailableCustomFieldsForApp(appSchema) {
273
296
  var _appSchema$jsonSchema;
274
297
  const properties = ((_appSchema$jsonSchema = appSchema.jsonSchema) == null ? void 0 : _appSchema$jsonSchema.properties) || {};
@@ -332,6 +355,35 @@ class DataExtensionState {
332
355
  });
333
356
  return () => {};
334
357
  }
358
+ _upsertSchema(newSchema) {
359
+ const {
360
+ _dataExtensionSchemas
361
+ } = this;
362
+ const index = _dataExtensionSchemas.findIndex(schema => schema.namespace === (newSchema == null ? void 0 : newSchema.namespace));
363
+ if (index === -1) {
364
+ this._dataExtensionSchemas = [..._dataExtensionSchemas, newSchema];
365
+ } else {
366
+ this._dataExtensionSchemas = _dataExtensionSchemas.map(schema => schema.namespace === newSchema.namespace ? newSchema : schema);
367
+ }
368
+ }
369
+ get userSchema() {
370
+ const {
371
+ _dataExtensionSchemas,
372
+ dataExtensionService: {
373
+ userFieldsNamespace
374
+ }
375
+ } = this;
376
+ return _dataExtensionSchemas == null ? void 0 : _dataExtensionSchemas.find(s => s.namespace === userFieldsNamespace);
377
+ }
378
+ get appSchemas() {
379
+ const {
380
+ _dataExtensionSchemas,
381
+ dataExtensionService: {
382
+ userFieldsNamespace
383
+ }
384
+ } = this;
385
+ return _dataExtensionSchemas == null ? void 0 : _dataExtensionSchemas.filter(s => s.namespace !== userFieldsNamespace);
386
+ }
335
387
  async fetchSchemas() {
336
388
  const {
337
389
  dataExtensionService
@@ -341,13 +393,7 @@ class DataExtensionState {
341
393
  dataExtensionSchemas
342
394
  } = await dataExtensionService.fetchSchemas(this.fqdnString);
343
395
  (0, _mobx.runInAction)(() => {
344
- dataExtensionSchemas == null || dataExtensionSchemas.forEach(s => {
345
- if (s.namespace === dataExtensionService.userFieldsNamespace) {
346
- this.userSchema = s;
347
- return;
348
- }
349
- this.appSchemas = this.appSchemas ? [...this.appSchemas, s] : [s];
350
- });
396
+ this._dataExtensionSchemas = dataExtensionSchemas ?? [];
351
397
  });
352
398
  }
353
399
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_services","require","_TaskState","_mobx","_DataExtensionStateBIReporter","_util","_DataExtensionField","MAX_CUSTOM_FIELDS","exports","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","default","TaskState","container","disableUserDefinedWriting","filterable","closeSidePanel","reportBi","dataExtensionService","DataExtensionSchemaService","biReporter","DataExtensionStateBIReporter","containsPii","defaultPermissions","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","userSchema","observable","ref","appSchemas","openCustomFieldModal","action","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","archiveField","id","origin","_this$container$showT","_this$container","dataExtensionSchema","archiveCustomField","schema","runInAction","showToast","call","message","type","biName","e","_this$container$showT2","_this$container2","uiType","text","onClick","reportArchiveTryAgain","removeToastOnClick","reportArchiveFieldFailed","formValues","extractFieldValuesFromSchema","fieldId","customField","toCustomField","title","read","write","isPiiField","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","Boolean","customFieldModalState","customFieldModalBiReporter","reset","mode","formSnapshot","setFormValues","disablePermissionCheckboxes","setDefaultPermissions","modalState","modal","open","_toCustomField","editable","owner","namespace","label","maxLength","options","enum","properties","isSupportedFieldType","getAvailableCustomFieldsInSchema","requiredPermissions","filteredFields","Object","keys","filter","field","isAllowedType","isPermitted","includesAllReadPermissions","sorted","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","fields","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","_appSchema$jsonSchema2","concat","length","allNamespaces","_this$userSchema3","init","initTask","runOnce","fetchSchemas","dataExtensionSchemas","forEach","s","userFieldsNamespace"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOrigin,\n CustomFieldOwner,\n CustomFieldType,\n DataExtensionField,\n DataExtensionPermission,\n DataExtensionSchemaService,\n DataExtensionType,\n ReportBI,\n} from '../services';\nimport { TaskState } from './TaskState';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { Fqdn } from '../model';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport {\n CustomFieldForm,\n CustomFieldModalState,\n} from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { DataExtensionStateBIReporter } from './DataExtensionStateBIReporter';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\n reportBi: ReportBI;\n fqdn: Fqdn;\n}\nexport interface DefaultPermissionsConfig {\n installedApps?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n siteVisitors?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n}\n\nexport interface DataExtensionOverrides {\n disableUserDefinedWriting?: boolean;\n containsPii?: boolean;\n filterable?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n}\n\nexport const MAX_CUSTOM_FIELDS = 25;\n\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly biReporter: DataExtensionStateBIReporter;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n customFieldModalState?: CustomFieldModalState;\n archiveFieldModal?: ConditionalModalState<{\n id: string;\n origin: string;\n }>;\n _hasWritePermissions?: boolean;\n readonly closeSidePanel;\n readonly reportBi;\n readonly fqdn;\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isFqdnValid() {\n return this.fqdn.resource !== undefined;\n }\n\n userSchema?: DataExtensionSchema = undefined;\n appSchemas?: DataExtensionSchema[] = undefined;\n containsPii?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n readonly disableUserDefinedWriting;\n readonly filterable;\n\n constructor(\n params: Readonly<DataExtensionStateParams & DataExtensionOverrides>,\n ) {\n this.container = params.container;\n this.disableUserDefinedWriting = params.disableUserDefinedWriting;\n this.filterable = params.filterable;\n this.closeSidePanel = params.closeSidePanel;\n this.reportBi = params.reportBi;\n this.fqdn = params.fqdn;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\n\n this.biReporter = new DataExtensionStateBIReporter({\n reportBi: this.reportBi,\n });\n this.containsPii = params.containsPii;\n this.defaultPermissions = params.defaultPermissions;\n\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: computed,\n filterableCustomFields: computed,\n availableUserCustomFields: computed,\n availableAppsCustomFields: computed,\n availableCustomFields: computed,\n isReachedMaxCustomFields: computed,\n disableAddCustomField: computed,\n disableAddCustomFieldContent: computed,\n userSchema: observable.ref,\n appSchemas: observable.ref,\n openCustomFieldModal: action,\n containsPii: observable,\n defaultPermissions: observable,\n });\n }\n\n get hasWritePermissions() {\n if (this._hasWritePermissions == null) {\n this._hasWritePermissions = this.container.user.permissions.includes(\n 'DATA_EXTENSION_SCHEMA.WRITE',\n );\n }\n\n return this._hasWritePermissions;\n }\n\n get disableAddCustomField() {\n return !this.hasWritePermissions || this.isReachedMaxCustomFields;\n }\n\n get disableAddCustomFieldContent() {\n if (!this.hasWritePermissions) {\n return this.container.translate(\n 'cairo.customFields.writePermission.tooltip',\n );\n }\n\n if (this.isReachedMaxCustomFields) {\n return this.container.translate('cairo.customFields.maxFields.tooltip', {\n max: MAX_CUSTOM_FIELDS,\n });\n }\n\n return '';\n }\n\n async archiveField({ id, origin }: { id?: string; origin: string }) {\n if (id == null) {\n return;\n }\n try {\n const { dataExtensionSchema } =\n await this.dataExtensionService.archiveCustomField({\n schema: this.userSchema,\n fqdn: this.fqdnString,\n id,\n });\n\n runInAction(() => {\n this.userSchema = dataExtensionSchema;\n });\n\n this.container.showToast?.({\n message: this.container.translate(\n 'cairo.customFields.archive.success.toast',\n ),\n type: 'SUCCESS',\n biName: 'cairo-archive-custom-field-success-toast',\n });\n } catch (e) {\n this.container.showToast?.({\n message: this.container.translate(\n 'cairo.customFields.archive.technicalError',\n ),\n action: {\n uiType: 'LINK',\n text: this.container.translate('cairo.toast.retry'),\n onClick: () => {\n this.biReporter.reportArchiveTryAgain();\n this.archiveField({ id, origin });\n },\n removeToastOnClick: true,\n },\n type: 'ERROR',\n biName: 'cairo-archive-custom-field-error-toast',\n });\n this.biReporter.reportArchiveFieldFailed({\n formValues: this.extractFieldValuesFromSchema(id),\n origin,\n });\n }\n }\n\n extractFieldValuesFromSchema(fieldId: string): CustomFieldForm | undefined {\n if (!this.userSchema) {\n return;\n }\n\n const customField = DataExtensionSchemaService.toCustomField(\n this.userSchema,\n fieldId,\n );\n\n if (!customField || !customField.type || !customField.title) {\n return;\n }\n\n const { read, write } = customField['x-wix-permissions'];\n const isPiiField = customField['x-wix-pii'];\n const readApps = read?.includes('apps');\n const readUsers = read?.includes('users-of-users');\n const writeApps = write?.includes('apps');\n const writeUsers = write?.includes('users-of-users');\n\n return {\n type: DataExtensionSchemaService.toCustomType(customField),\n name: customField.title,\n key: customField.id,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii: Boolean(isPiiField),\n };\n }\n\n openCustomFieldModal(params: {\n fieldId?: string;\n origin: CustomFieldOrigin;\n }) {\n const { customFieldModalState } = this;\n\n if (!customFieldModalState) {\n return;\n }\n\n const { customFieldModalBiReporter } = customFieldModalState;\n\n customFieldModalState.reset();\n customFieldModalState.mode = params.fieldId ? 'edit' : 'new';\n customFieldModalState.origin = params.origin;\n customFieldModalBiReporter.formSnapshot = null;\n\n if (this.userSchema) {\n if (params.fieldId) {\n const formValues = this.extractFieldValuesFromSchema(params.fieldId);\n\n if (!formValues) {\n return;\n }\n\n customFieldModalState.setFormValues(formValues, {\n disablePermissionCheckboxes: true,\n });\n customFieldModalBiReporter.formSnapshot = formValues;\n } else {\n customFieldModalState.setDefaultPermissions();\n }\n }\n\n customFieldModalState.modalState.modal.open();\n }\n\n _toCustomField({\n key,\n schema,\n editable,\n owner,\n namespace,\n }: {\n key: string;\n schema: DataExtensionField;\n editable: boolean;\n owner: CustomFieldOwner;\n namespace: string;\n }): CustomField | undefined {\n if (!DataExtensionSchemaService.toCustomType(schema)) {\n return;\n }\n return {\n id: key,\n label: schema?.title,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema) as CustomFieldType,\n editable,\n filterable: schema['x-wix-filterable'],\n owner,\n properties: schema?.properties ?? {},\n namespace,\n };\n }\n\n private isSupportedFieldType(type?: string): type is DataExtensionType {\n if (!type) {\n return false;\n }\n return ['string', 'number', 'integer', 'boolean', 'array'].includes(type);\n }\n\n private getAvailableCustomFieldsInSchema(\n properties: {\n [key: string]: DataExtensionField;\n },\n {\n editable,\n requiredPermissions,\n owner,\n namespace,\n }: {\n editable: boolean;\n requiredPermissions?: DataExtensionPermission[];\n owner: CustomFieldOwner;\n namespace: string;\n },\n ): CustomField[] {\n const filteredFields = Object.keys(properties).filter((key) => {\n const field = properties[key];\n const isAllowedType =\n this.isSupportedFieldType(field.type) ||\n (field.type === 'object' && field['x-wix-object-type'] === 'FILE/V1');\n\n const isPermitted =\n requiredPermissions == null ||\n includesAllReadPermissions(field, requiredPermissions);\n\n return !field['x-wix-archived'] && isAllowedType && isPermitted;\n });\n\n const sorted = filteredFields.sort((a, b) => {\n const aVal = new Date(properties[a]['x-wix-created-date']);\n const bVal = new Date(properties[b]['x-wix-created-date']);\n\n if (isNaN(bVal.valueOf()) || isNaN(aVal.valueOf())) {\n return 0;\n }\n\n return aVal.valueOf() - bVal.valueOf();\n });\n\n return sorted\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable,\n owner,\n namespace,\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n /**\n * Available custom fields, excluding archived fields\n */\n get availableUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n const fields = this.getAvailableCustomFieldsInSchema(properties, {\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n });\n return fields;\n }\n\n get availableAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, schema) => {\n return [...prev, ...this.getAvailableCustomFieldsForApp(schema)];\n }, [] as CustomField[]) ?? []\n );\n }\n\n getAvailableCustomFieldsForApp(\n appSchema: DataExtensionSchema,\n ): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n appSchema.jsonSchema?.properties || {};\n\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: false,\n requiredPermissions: ['users'],\n owner: 'app',\n namespace: appSchema.namespace as string,\n });\n }\n\n get availableCustomFields(): CustomField[] {\n return [\n ...this.availableUserCustomFields,\n ...this.availableAppsCustomFields,\n ];\n }\n\n get allUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n\n return Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, appSchema) => {\n const properties: { [key: string]: DataExtensionField } =\n appSchema?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: false,\n owner: 'app',\n namespace: appSchema.namespace as string,\n }),\n )\n .filter(Boolean) as CustomField[],\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\n }\n\n get filterableCustomFields(): CustomField[] {\n if (!this.filterable) {\n return [];\n }\n\n return this.availableCustomFields.filter((field) => field.filterable);\n }\n\n get isReachedMaxCustomFields() {\n return this.allUserCustomFields.length >= MAX_CUSTOM_FIELDS;\n }\n\n get allNamespaces() {\n return [\n this.userSchema?.namespace,\n ...(this.appSchemas || []).map((schema) => schema.namespace),\n ].filter(Boolean) as string[];\n }\n\n init() {\n const { initTask } = this;\n\n initTask.runOnce(async () => {\n await this.fetchSchemas();\n });\n\n return () => {};\n }\n\n async fetchSchemas() {\n const { dataExtensionService } = this;\n\n if (this.isFqdnValid) {\n const { dataExtensionSchemas } = await dataExtensionService.fetchSchemas(\n this.fqdnString,\n );\n\n runInAction(() => {\n dataExtensionSchemas?.forEach((s) => {\n if (s.namespace === dataExtensionService.userFieldsNamespace) {\n this.userSchema = s;\n return;\n }\n this.appSchemas = this.appSchemas ? [...this.appSchemas, s] : [s];\n });\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_services","require","_TaskState","_mobx","_DataExtensionStateBIReporter","_util","_DataExtensionField","MAX_CUSTOM_FIELDS","exports","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","default","TaskState","container","disableUserDefinedWriting","filterable","closeSidePanel","reportBi","dataExtensionService","DataExtensionSchemaService","biReporter","DataExtensionStateBIReporter","containsPii","defaultPermissions","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","_dataExtensionSchemas","observable","ref","userSchema","appSchemas","openCustomFieldModal","action","_upsertSchema","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","archiveField","id","origin","_this$container$showT","_this$container","dataExtensionSchema","archiveCustomField","schema","showToast","call","message","type","biName","e","_this$container$showT2","_this$container2","uiType","text","onClick","reportArchiveTryAgain","removeToastOnClick","reportArchiveFieldFailed","formValues","extractFieldValuesFromSchema","fieldId","customField","toCustomField","title","read","write","isPiiField","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","Boolean","customFieldModalState","customFieldModalBiReporter","reset","mode","formSnapshot","setFormValues","disablePermissionCheckboxes","setDefaultPermissions","modalState","modal","open","_toCustomField","editable","owner","namespace","label","maxLength","options","enum","properties","isSupportedFieldType","getAvailableCustomFieldsInSchema","requiredPermissions","filteredFields","Object","keys","filter","field","isAllowedType","isPermitted","includesAllReadPermissions","sorted","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","fields","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","getSchemaAndFieldsByNamespace","_schema$jsonSchema","userFieldsNamespace","find","s","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","_appSchema$jsonSchema2","concat","length","allNamespaces","_this$userSchema3","init","initTask","runOnce","fetchSchemas","newSchema","index","findIndex","dataExtensionSchemas","runInAction"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOrigin,\n CustomFieldOwner,\n CustomFieldType,\n DataExtensionField,\n DataExtensionPermission,\n DataExtensionSchemaService,\n DataExtensionType,\n ReportBI,\n} from '../services';\nimport { TaskState } from './TaskState';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { Fqdn } from '../model';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport {\n CustomFieldForm,\n CustomFieldModalState,\n} from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { DataExtensionStateBIReporter } from './DataExtensionStateBIReporter';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\n reportBi: ReportBI;\n fqdn: Fqdn;\n}\nexport interface DefaultPermissionsConfig {\n installedApps?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n siteVisitors?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n}\n\nexport interface DataExtensionOverrides {\n disableUserDefinedWriting?: boolean;\n containsPii?: boolean;\n filterable?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n}\n\nexport const MAX_CUSTOM_FIELDS = 25;\n\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly biReporter: DataExtensionStateBIReporter;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n customFieldModalState?: CustomFieldModalState;\n archiveFieldModal?: ConditionalModalState<{\n id: string;\n origin: string;\n }>;\n _hasWritePermissions?: boolean;\n readonly closeSidePanel;\n readonly reportBi;\n readonly fqdn;\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isFqdnValid() {\n return this.fqdn.resource !== undefined;\n }\n\n _dataExtensionSchemas: DataExtensionSchema[] = [];\n containsPii?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n readonly disableUserDefinedWriting;\n readonly filterable;\n\n constructor(\n params: Readonly<DataExtensionStateParams & DataExtensionOverrides>,\n ) {\n this.container = params.container;\n this.disableUserDefinedWriting = params.disableUserDefinedWriting;\n this.filterable = params.filterable;\n this.closeSidePanel = params.closeSidePanel;\n this.reportBi = params.reportBi;\n this.fqdn = params.fqdn;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\n\n this.biReporter = new DataExtensionStateBIReporter({\n reportBi: this.reportBi,\n });\n this.containsPii = params.containsPii;\n this.defaultPermissions = params.defaultPermissions;\n\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: computed,\n filterableCustomFields: computed,\n availableUserCustomFields: computed,\n availableAppsCustomFields: computed,\n availableCustomFields: computed,\n isReachedMaxCustomFields: computed,\n disableAddCustomField: computed,\n disableAddCustomFieldContent: computed,\n _dataExtensionSchemas: observable.ref,\n userSchema: computed,\n appSchemas: computed,\n openCustomFieldModal: action,\n _upsertSchema: action,\n containsPii: observable,\n defaultPermissions: observable,\n });\n }\n\n get hasWritePermissions() {\n if (this._hasWritePermissions == null) {\n this._hasWritePermissions = this.container.user.permissions.includes(\n 'DATA_EXTENSION_SCHEMA.WRITE',\n );\n }\n\n return this._hasWritePermissions;\n }\n\n get disableAddCustomField() {\n return !this.hasWritePermissions || this.isReachedMaxCustomFields;\n }\n\n get disableAddCustomFieldContent() {\n if (!this.hasWritePermissions) {\n return this.container.translate(\n 'cairo.customFields.writePermission.tooltip',\n );\n }\n\n if (this.isReachedMaxCustomFields) {\n return this.container.translate('cairo.customFields.maxFields.tooltip', {\n max: MAX_CUSTOM_FIELDS,\n });\n }\n\n return '';\n }\n\n async archiveField({ id, origin }: { id?: string; origin: string }) {\n if (id == null) {\n return;\n }\n try {\n const { dataExtensionSchema } =\n await this.dataExtensionService.archiveCustomField({\n schema: this.userSchema,\n fqdn: this.fqdnString,\n id,\n });\n\n if (dataExtensionSchema) {\n this._upsertSchema(dataExtensionSchema);\n }\n\n this.container.showToast?.({\n message: this.container.translate(\n 'cairo.customFields.archive.success.toast',\n ),\n type: 'SUCCESS',\n biName: 'cairo-archive-custom-field-success-toast',\n });\n } catch (e) {\n this.container.showToast?.({\n message: this.container.translate(\n 'cairo.customFields.archive.technicalError',\n ),\n action: {\n uiType: 'LINK',\n text: this.container.translate('cairo.toast.retry'),\n onClick: () => {\n this.biReporter.reportArchiveTryAgain();\n this.archiveField({ id, origin });\n },\n removeToastOnClick: true,\n },\n type: 'ERROR',\n biName: 'cairo-archive-custom-field-error-toast',\n });\n this.biReporter.reportArchiveFieldFailed({\n formValues: this.extractFieldValuesFromSchema(id),\n origin,\n });\n }\n }\n\n extractFieldValuesFromSchema(fieldId: string): CustomFieldForm | undefined {\n if (!this.userSchema) {\n return;\n }\n\n const customField = DataExtensionSchemaService.toCustomField(\n this.userSchema,\n fieldId,\n );\n\n if (!customField || !customField.type || !customField.title) {\n return;\n }\n\n const { read, write } = customField['x-wix-permissions'];\n const isPiiField = customField['x-wix-pii'];\n const readApps = read?.includes('apps');\n const readUsers = read?.includes('users-of-users');\n const writeApps = write?.includes('apps');\n const writeUsers = write?.includes('users-of-users');\n\n return {\n type: DataExtensionSchemaService.toCustomType(customField),\n name: customField.title,\n key: customField.id,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii: Boolean(isPiiField),\n };\n }\n\n openCustomFieldModal(params: {\n fieldId?: string;\n origin: CustomFieldOrigin;\n }) {\n const { customFieldModalState } = this;\n\n if (!customFieldModalState) {\n return;\n }\n\n const { customFieldModalBiReporter } = customFieldModalState;\n\n customFieldModalState.reset();\n customFieldModalState.mode = params.fieldId ? 'edit' : 'new';\n customFieldModalState.origin = params.origin;\n customFieldModalBiReporter.formSnapshot = null;\n\n if (this.userSchema) {\n if (params.fieldId) {\n const formValues = this.extractFieldValuesFromSchema(params.fieldId);\n\n if (!formValues) {\n return;\n }\n\n customFieldModalState.setFormValues(formValues, {\n disablePermissionCheckboxes: true,\n });\n customFieldModalBiReporter.formSnapshot = formValues;\n } else {\n customFieldModalState.setDefaultPermissions();\n }\n }\n\n customFieldModalState.modalState.modal.open();\n }\n\n _toCustomField({\n key,\n schema,\n editable,\n owner,\n namespace,\n }: {\n key: string;\n schema: DataExtensionField;\n editable: boolean;\n owner: CustomFieldOwner;\n namespace: string;\n }): CustomField | undefined {\n if (!DataExtensionSchemaService.toCustomType(schema)) {\n return;\n }\n return {\n id: key,\n label: schema?.title,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema) as CustomFieldType,\n editable,\n filterable: schema['x-wix-filterable'],\n owner,\n properties: schema?.properties ?? {},\n namespace,\n };\n }\n\n private isSupportedFieldType(type?: string): type is DataExtensionType {\n if (!type) {\n return false;\n }\n return ['string', 'number', 'integer', 'boolean', 'array'].includes(type);\n }\n\n private getAvailableCustomFieldsInSchema(\n properties: {\n [key: string]: DataExtensionField;\n },\n {\n editable,\n requiredPermissions,\n owner,\n namespace,\n }: {\n editable: boolean;\n requiredPermissions?: DataExtensionPermission[];\n owner: CustomFieldOwner;\n namespace: string;\n },\n ): CustomField[] {\n const filteredFields = Object.keys(properties).filter((key) => {\n const field = properties[key];\n const isAllowedType =\n this.isSupportedFieldType(field.type) ||\n (field.type === 'object' && field['x-wix-object-type'] === 'FILE/V1');\n\n const isPermitted =\n requiredPermissions == null ||\n includesAllReadPermissions(field, requiredPermissions);\n\n return !field['x-wix-archived'] && isAllowedType && isPermitted;\n });\n\n const sorted = filteredFields.sort((a, b) => {\n const aVal = new Date(properties[a]['x-wix-created-date']);\n const bVal = new Date(properties[b]['x-wix-created-date']);\n\n if (isNaN(bVal.valueOf()) || isNaN(aVal.valueOf())) {\n return 0;\n }\n\n return aVal.valueOf() - bVal.valueOf();\n });\n\n return sorted\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable,\n owner,\n namespace,\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n /**\n * Available custom fields, excluding archived fields\n */\n get availableUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n const fields = this.getAvailableCustomFieldsInSchema(properties, {\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n });\n return fields;\n }\n\n get availableAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, schema) => {\n return [...prev, ...this.getAvailableCustomFieldsForApp(schema)];\n }, [] as CustomField[]) ?? []\n );\n }\n\n getSchemaAndFieldsByNamespace(namespace: string) {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n\n const schema = _dataExtensionSchemas.find((s) => s.namespace === namespace);\n\n if (!schema) {\n return {};\n }\n\n const fields = this.getAvailableCustomFieldsInSchema(\n schema.jsonSchema?.properties || {},\n {\n editable: namespace === userFieldsNamespace,\n owner: namespace === userFieldsNamespace ? 'user' : 'app',\n namespace,\n },\n );\n\n return {\n schema,\n fields,\n };\n }\n\n getAvailableCustomFieldsForApp(\n appSchema: DataExtensionSchema,\n ): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n appSchema.jsonSchema?.properties || {};\n\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: false,\n requiredPermissions: ['users'],\n owner: 'app',\n namespace: appSchema.namespace as string,\n });\n }\n\n get availableCustomFields(): CustomField[] {\n return [\n ...this.availableUserCustomFields,\n ...this.availableAppsCustomFields,\n ];\n }\n\n get allUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n\n return Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, appSchema) => {\n const properties: { [key: string]: DataExtensionField } =\n appSchema?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: false,\n owner: 'app',\n namespace: appSchema.namespace as string,\n }),\n )\n .filter(Boolean) as CustomField[],\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\n }\n\n get filterableCustomFields(): CustomField[] {\n if (!this.filterable) {\n return [];\n }\n\n return this.availableCustomFields.filter((field) => field.filterable);\n }\n\n get isReachedMaxCustomFields() {\n return this.allUserCustomFields.length >= MAX_CUSTOM_FIELDS;\n }\n\n get allNamespaces() {\n return [\n this.userSchema?.namespace,\n ...(this.appSchemas || []).map((schema) => schema.namespace),\n ].filter(Boolean) as string[];\n }\n\n init() {\n const { initTask } = this;\n\n initTask.runOnce(async () => {\n await this.fetchSchemas();\n });\n\n return () => {};\n }\n\n _upsertSchema(newSchema: DataExtensionSchema) {\n const { _dataExtensionSchemas } = this;\n\n const index = _dataExtensionSchemas.findIndex(\n (schema) => schema.namespace === newSchema?.namespace,\n );\n\n if (index === -1) {\n this._dataExtensionSchemas = [..._dataExtensionSchemas, newSchema];\n } else {\n this._dataExtensionSchemas = _dataExtensionSchemas.map((schema) =>\n schema.namespace === newSchema.namespace ? newSchema : schema,\n );\n }\n }\n\n get userSchema() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas?.find(\n (s) => s.namespace === userFieldsNamespace,\n );\n }\n\n get appSchemas() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas?.filter(\n (s) => s.namespace !== userFieldsNamespace,\n );\n }\n\n async fetchSchemas() {\n const { dataExtensionService } = this;\n\n if (this.isFqdnValid) {\n const { dataExtensionSchemas } = await dataExtensionService.fetchSchemas(\n this.fqdnString,\n );\n\n runInAction(() => {\n this._dataExtensionSchemas = dataExtensionSchemas ?? [];\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -68,12 +68,16 @@ class MultiCollectionSupport {
68
68
  var _this$collections$2;
69
69
  return (_this$collections$2 = this.collections[0]) == null ? void 0 : _this$collections$2.result.originQuery.rawSearch;
70
70
  }
71
- init() {
71
+ init({
72
+ skipFilterListeners = false
73
+ } = {}) {
72
74
  const {
73
75
  collections,
74
76
  initTask
75
77
  } = this;
76
- const disposers = [...collections.map(c => c.init())];
78
+ const disposers = [...collections.map(c => c.init({
79
+ skipFilterListeners
80
+ }))];
77
81
  initTask.runOnce(async () => {
78
82
  collections.forEach(c => c.initTask.runOnce());
79
83
  await Promise.all(collections.map(c => c.initTask.status.promise));
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_TaskState","MultiCollectionSupport","constructor","params","_defineProperty2","default","TaskState","action","initTask","collections","status","isError","runOnce","forEach","c","retryErrorState","makeObservable","showInitialLoader","computed","showEmptyState","showErrorState","showRefreshLoader","errorStatus","hasAvailableItems","hasNonPersistentActiveFilters","hasNonPersistentCustomFilters","some","every","collection","showLoadingState","map","result","find","query","resultOriginQuerySearch","_this$collections$","originQuery","search","resultOriginQueryRawSearch","_this$collections$2","rawSearch","init","disposers","Promise","all","promise","d","exports"],"sources":["../../../src/state/MultiCollectionSupport.ts"],"sourcesContent":["import { action, computed, makeObservable } from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { DataResultKeyed, FiltersMap, QueryResultStatusError } from '../model';\nimport { TaskState } from './TaskState';\n\nexport interface MultiCollectionSupportParams<F extends FiltersMap> {\n readonly collections: CollectionState<any, F>[];\n}\n\nexport class MultiCollectionSupport<F extends FiltersMap> {\n readonly collections: CollectionState<unknown, F>[];\n readonly initTask = new TaskState();\n\n constructor(params: MultiCollectionSupportParams<F>) {\n this.collections = params.collections;\n\n makeObservable(this, {\n showInitialLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n showRefreshLoader: computed,\n errorStatus: computed,\n hasAvailableItems: computed,\n hasNonPersistentActiveFilters: computed,\n hasNonPersistentCustomFilters: computed,\n });\n }\n\n get showInitialLoader() {\n return this.collections.some((c) => c.showInitialLoader);\n }\n\n get showEmptyState() {\n return this.collections.every((collection) => collection.showEmptyState);\n }\n\n get showErrorState() {\n return this.collections.some((collection) => collection.showErrorState);\n }\n\n get showRefreshLoader() {\n return this.collections.some((collection) => collection.showRefreshLoader);\n }\n\n get showLoadingState() {\n return this.showInitialLoader || this.showRefreshLoader;\n }\n\n get errorStatus() {\n return this.collections\n .map((c) => c.result.status)\n .find(\n (\n status,\n ): status is QueryResultStatusError<DataResultKeyed<unknown>, F> =>\n status.isError,\n );\n }\n\n get hasAvailableItems() {\n return this.collections.some((c) => c.result.hasAvailableItems);\n }\n\n get hasNonPersistentActiveFilters() {\n return this.collections.some((c) => c.query.hasNonPersistentActiveFilters);\n }\n\n get hasNonPersistentCustomFilters() {\n return this.collections.some((c) => c.query.hasNonPersistentCustomFilters);\n }\n\n get resultOriginQuerySearch() {\n return this.collections[0]?.result.originQuery.search;\n }\n\n get resultOriginQueryRawSearch() {\n return this.collections[0]?.result.originQuery.rawSearch;\n }\n\n retryErrorState = action(() => {\n const { initTask, collections } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n collections.forEach((c) => c.retryErrorState());\n }\n });\n\n init() {\n const { collections, initTask } = this;\n const disposers = [...collections.map((c) => c.init())];\n\n initTask.runOnce(async () => {\n collections.forEach((c) => c.initTask.runOnce());\n await Promise.all(collections.map((c) => c.initTask.status.promise));\n });\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_TaskState","MultiCollectionSupport","constructor","params","_defineProperty2","default","TaskState","action","initTask","collections","status","isError","runOnce","forEach","c","retryErrorState","makeObservable","showInitialLoader","computed","showEmptyState","showErrorState","showRefreshLoader","errorStatus","hasAvailableItems","hasNonPersistentActiveFilters","hasNonPersistentCustomFilters","some","every","collection","showLoadingState","map","result","find","query","resultOriginQuerySearch","_this$collections$","originQuery","search","resultOriginQueryRawSearch","_this$collections$2","rawSearch","init","skipFilterListeners","disposers","Promise","all","promise","d","exports"],"sources":["../../../src/state/MultiCollectionSupport.ts"],"sourcesContent":["import { action, computed, makeObservable } from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { DataResultKeyed, FiltersMap, QueryResultStatusError } from '../model';\nimport { TaskState } from './TaskState';\n\nexport interface MultiCollectionSupportParams<F extends FiltersMap> {\n readonly collections: CollectionState<any, F>[];\n}\n\nexport class MultiCollectionSupport<F extends FiltersMap> {\n readonly collections: CollectionState<unknown, F>[];\n readonly initTask = new TaskState();\n\n constructor(params: MultiCollectionSupportParams<F>) {\n this.collections = params.collections;\n\n makeObservable(this, {\n showInitialLoader: computed,\n showEmptyState: computed,\n showErrorState: computed,\n showRefreshLoader: computed,\n errorStatus: computed,\n hasAvailableItems: computed,\n hasNonPersistentActiveFilters: computed,\n hasNonPersistentCustomFilters: computed,\n });\n }\n\n get showInitialLoader() {\n return this.collections.some((c) => c.showInitialLoader);\n }\n\n get showEmptyState() {\n return this.collections.every((collection) => collection.showEmptyState);\n }\n\n get showErrorState() {\n return this.collections.some((collection) => collection.showErrorState);\n }\n\n get showRefreshLoader() {\n return this.collections.some((collection) => collection.showRefreshLoader);\n }\n\n get showLoadingState() {\n return this.showInitialLoader || this.showRefreshLoader;\n }\n\n get errorStatus() {\n return this.collections\n .map((c) => c.result.status)\n .find(\n (\n status,\n ): status is QueryResultStatusError<DataResultKeyed<unknown>, F> =>\n status.isError,\n );\n }\n\n get hasAvailableItems() {\n return this.collections.some((c) => c.result.hasAvailableItems);\n }\n\n get hasNonPersistentActiveFilters() {\n return this.collections.some((c) => c.query.hasNonPersistentActiveFilters);\n }\n\n get hasNonPersistentCustomFilters() {\n return this.collections.some((c) => c.query.hasNonPersistentCustomFilters);\n }\n\n get resultOriginQuerySearch() {\n return this.collections[0]?.result.originQuery.search;\n }\n\n get resultOriginQueryRawSearch() {\n return this.collections[0]?.result.originQuery.rawSearch;\n }\n\n retryErrorState = action(() => {\n const { initTask, collections } = this;\n\n if (initTask.status.isError) {\n initTask.runOnce();\n } else {\n collections.forEach((c) => c.retryErrorState());\n }\n });\n\n init({\n skipFilterListeners = false,\n }: { skipFilterListeners?: boolean } = {}) {\n const { collections, initTask } = this;\n const disposers = [\n ...collections.map((c) => c.init({ skipFilterListeners })),\n ];\n\n initTask.runOnce(async () => {\n collections.forEach((c) => c.initTask.runOnce());\n await Promise.all(collections.map((c) => c.initTask.status.promise));\n });\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -31,7 +31,11 @@ class QueryState {
31
31
  deep: false
32
32
  }));
33
33
  (0, _defineProperty2.default)(this, "_initializedFromHistory", void 0);
34
+ (0, _defineProperty2.default)(this, "_skipFilterListeners", void 0);
34
35
  (0, _defineProperty2.default)(this, "addFilterListeners", filter => {
36
+ if (this._skipFilterListeners) {
37
+ return [];
38
+ }
35
39
  return [(0, _util.addEventListener)(filter.events, 'change', () => this.events.emit('change')), (0, _util.addEventListener)(filter.events, 'refresh', () => this.events.emit('refresh')), (0, _util.addEventListener)(filter.events, 'scheduleRefresh', () => this.events.emit('scheduleRefresh'))];
36
40
  });
37
41
  this.refreshOnColumnsChange = params.refreshOnColumnsChange;
@@ -63,7 +67,7 @@ class QueryState {
63
67
  toComputed: _mobx.action,
64
68
  _filters: _mobx.observable.ref,
65
69
  customFilters: _mobx.observable.ref,
66
- addFilter: _mobx.action,
70
+ addFilterIfNeeded: _mobx.action,
67
71
  asComputed: _mobx.computed,
68
72
  activeFilters: _mobx.computed,
69
73
  nonPersistentFilters: _mobx.computed,
@@ -84,8 +88,11 @@ class QueryState {
84
88
  nonPersistentCustomFiltersCount: _mobx.computed
85
89
  });
86
90
  }
87
- init() {
91
+ init({
92
+ skipFilterListeners
93
+ } = {}) {
88
94
  var _this$queryHistory;
95
+ this._skipFilterListeners = skipFilterListeners;
89
96
  const disposers = [...Object.values(this.filtersEntries).flatMap(([_, filter]) => {
90
97
  return this.addFilterListeners(filter);
91
98
  }), (_this$queryHistory = this.queryHistory) == null ? void 0 : _this$queryHistory.init()];
@@ -240,8 +247,8 @@ class QueryState {
240
247
  get hasActiveSort() {
241
248
  return this.sort.value.length > 0;
242
249
  }
243
- addFilter(key, filter) {
244
- if (filter === undefined) {
250
+ addFilterIfNeeded(key, filter) {
251
+ if (filter === undefined || this._filters[key]) {
245
252
  return;
246
253
  }
247
254
  this._filters = {
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_Pagination","_mapValues","_interopRequireDefault","_pickBy","_events","_StringFilterState","_SortState","_util","_core","_QueryHistoryState","QueryState","constructor","params","_defineProperty2","default","EventEmitter","observable","set","deep","filter","addEventListener","events","emit","refreshOnColumnsChange","pagination","Pagination","limit","history","sort","SortState","customFilters","mapValues","filters","name","_filters","search","StringFilterState","defaultValue","queryHistory","QueryHistoryState","query","makeObservable","changeLimit","action","reset","toComputed","ref","addFilter","asComputed","computed","activeFilters","nonPersistentFilters","nonPersistentFiltersEntries","nonPersistentFiltersMap","activeFiltersEntries","activeFiltersCount","hasActiveFilters","hasNonPersistentActiveFilters","resetFilters","bound","resetPage","filtersKey","filtersKeyHash","fields","fieldsKey","fieldsKeyHash","hasNonPersistentCustomFilters","nonPersistentCustomFiltersCount","init","_this$queryHistory","disposers","Object","values","filtersEntries","flatMap","_","addFilterListeners","forEach","d","Array","from","_columns","_fields","join","isEmpty","toArray","map","itemKey","undefined","hashQueryKey","moveToPage","_toComputed","searchFilter","page","offset","cursor","value","rawFilters","nonPersistentFiltersKey","rawSearch","field","fieldName","direction","order","columns","filtersArray","e","persistent","entries","entry","nonPersistentCustomFilters","reduce","size","pickBy","hasActiveSort","length","key","options","resetCustomFilters","resetSorting","initialCursor","exports"],"sources":["../../../src/state/QueryState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport {\n AllFilters,\n ChangeValueOptions,\n ComputedQuery,\n ComputedQueryFull,\n Filter,\n FiltersMap,\n} from '../model';\nimport { initialCursor, Pagination } from './Pagination';\nimport mapValues from 'lodash/mapValues';\nimport pickBy from 'lodash/pickBy';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { StringFilterState } from './StringFilterState';\nimport { SortState } from './SortState';\nimport { addEventListener, TypedEmitter } from '../util';\nimport { hashQueryKey } from 'react-query/core';\nimport { QueryHistoryState } from './QueryHistoryState';\n\nexport interface QueryStateParams<F extends FiltersMap = FiltersMap> {\n history?: History;\n filters: F;\n search?: Filter<string>;\n limit?: number;\n refreshOnColumnsChange?: boolean;\n}\n\nexport type QueryStateEvents = {\n change: () => void;\n refresh: (opts?: { clearResult?: boolean }) => void;\n scheduleRefresh: (opts?: { clearResult?: boolean }) => void;\n persist: () => void;\n};\n\nexport class QueryState<F extends FiltersMap = FiltersMap> {\n readonly history?: History;\n readonly pagination: Pagination;\n customFilters: F;\n sort: SortState;\n _filters: AllFilters<F>;\n readonly events = new EventEmitter() as TypedEmitter<QueryStateEvents>;\n\n readonly queryHistory: QueryHistoryState<F> | null;\n readonly refreshOnColumnsChange;\n\n _columns = observable.set<string>([], { deep: false });\n _fields = observable.set<string>([], { deep: false });\n\n _initializedFromHistory?: boolean;\n\n constructor(params: QueryStateParams<F>) {\n this.refreshOnColumnsChange = params.refreshOnColumnsChange;\n this.pagination = new Pagination({ limit: params.limit });\n\n this.history = params.history;\n this.sort = new SortState({});\n\n this.customFilters = mapValues(params.filters, (filter, name) => {\n if (filter) {\n filter.name = name;\n }\n return filter;\n }) as F;\n\n this._filters = {\n ...this.customFilters,\n search:\n params.search ??\n new StringFilterState({\n name: 'search',\n defaultValue: '',\n }),\n };\n\n this.queryHistory = this.history\n ? new QueryHistoryState({\n query: this,\n history: this.history,\n })\n : null;\n\n makeObservable(this, {\n changeLimit: action,\n reset: action,\n toComputed: action,\n _filters: observable.ref,\n customFilters: observable.ref,\n addFilter: action,\n asComputed: computed,\n activeFilters: computed,\n nonPersistentFilters: computed,\n nonPersistentFiltersEntries: computed,\n nonPersistentFiltersMap: computed,\n activeFiltersEntries: computed,\n activeFiltersCount: computed,\n hasActiveFilters: computed,\n hasNonPersistentActiveFilters: computed,\n resetFilters: action.bound,\n resetPage: action.bound,\n filtersKey: computed,\n filtersKeyHash: computed,\n fields: computed,\n fieldsKey: computed,\n fieldsKeyHash: computed,\n hasNonPersistentCustomFilters: computed,\n nonPersistentCustomFiltersCount: computed,\n });\n }\n\n init() {\n const disposers = [\n ...Object.values(this.filtersEntries).flatMap(([_, filter]) => {\n return this.addFilterListeners(filter);\n }),\n this.queryHistory?.init(),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n get limit() {\n return this.pagination.limit;\n }\n\n get fields() {\n return [\n ...Array.from(this._columns.values()),\n ...Array.from(this._fields.values()),\n ];\n }\n\n get fieldsKey() {\n return this.fields.sort();\n }\n\n get fieldsKeyHash() {\n return this.fieldsKey.join('');\n }\n\n get filtersKey() {\n const { customFilters } = this;\n\n return mapValues(customFilters, (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n }\n\n get filtersKeyHash() {\n return hashQueryKey([this.filtersKey]);\n }\n\n changeLimit(limit: number) {\n this.pagination.changeLimit(limit);\n }\n\n public reset() {\n this.pagination.moveToPage(0);\n }\n\n private _toComputed(): ComputedQueryFull<F> {\n const {\n pagination,\n customFilters,\n nonPersistentFiltersMap,\n search: searchFilter,\n sort,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n fields,\n refreshOnColumnsChange,\n } = this;\n const { page, limit, offset, cursor } = pagination;\n\n const filters: ComputedQuery<F>['filters'] = mapValues(\n customFilters,\n (filter) =>\n filter != null ? (filter.isEmpty ? undefined : filter.value) : filter,\n );\n const rawFilters: ComputedQuery<F>['rawFilters'] = mapValues(\n customFilters,\n (filter) => (filter != null ? filter.value : filter),\n );\n\n const filtersKey = mapValues(customFilters, (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n\n const nonPersistentFiltersKey = mapValues(\n nonPersistentFiltersMap,\n (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n\n const rawSearch = searchFilter.value;\n const search = searchFilter.isEmpty ? undefined : rawSearch;\n\n return {\n page,\n limit,\n sort: sort.value.map(({ field: fieldName, direction: order }) => ({\n fieldName,\n order,\n })),\n offset,\n cursor: cursor == null || typeof cursor === 'string' ? cursor : null,\n rawFilters,\n filtersKey,\n nonPersistentFiltersKey,\n filters,\n rawSearch,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n columns: fields,\n fields: refreshOnColumnsChange\n ? fields\n : Array.from(this._fields.values()),\n };\n }\n\n toComputed(): ComputedQueryFull<F> {\n return this._toComputed();\n }\n\n get asComputed(): ComputedQueryFull<F> {\n return this._toComputed();\n }\n\n get filtersArray() {\n const { _filters } = this;\n return Object.values(_filters).filter(\n (e) => e != null,\n ) as Filter<unknown>[];\n }\n\n get nonPersistentFilters() {\n const { filtersArray } = this;\n return filtersArray.filter((filter) => !filter.persistent);\n }\n\n get filtersEntries() {\n const { _filters } = this;\n return Object.entries(_filters).filter(\n (entry): entry is [string, Filter<unknown>] => entry[1] != null,\n );\n }\n\n get nonPersistentFiltersEntries() {\n const { filtersEntries } = this;\n return filtersEntries.filter(([_, filter]) => !filter.persistent);\n }\n\n get nonPersistentCustomFiltersCount() {\n return Object.values(this.nonPersistentCustomFilters).reduce(\n (size, filter) => size + filter.size,\n 0,\n );\n }\n\n get hasNonPersistentCustomFilters() {\n return this.nonPersistentCustomFiltersCount > 0;\n }\n\n get nonPersistentCustomFilters() {\n const { customFilters } = this;\n return Object.values(customFilters).filter(\n (e) => e != null && !e?.persistent,\n ) as Filter<unknown>[];\n }\n\n get nonPersistentFiltersMap() {\n const { customFilters } = this;\n return pickBy(customFilters, (filter) => !filter?.persistent) as Partial<F>;\n }\n\n get activeFiltersEntries() {\n const { nonPersistentFiltersEntries } = this;\n return nonPersistentFiltersEntries.filter(([_, filter]) => !filter.isEmpty);\n }\n\n get activeFilters() {\n const { nonPersistentFilters } = this;\n return nonPersistentFilters.filter((filter) => !filter.isEmpty);\n }\n\n get activeFiltersCount() {\n return this.activeFilters.reduce((size, filter) => size + filter.size, 0);\n }\n\n get hasActiveFilters() {\n return (\n this.filtersArray.reduce((size, filter) => size + filter.size, 0) > 0\n );\n }\n\n get hasNonPersistentActiveFilters() {\n return this.activeFiltersCount > 0;\n }\n\n get hasActiveSort() {\n return this.sort.value.length > 0;\n }\n\n addFilter<K extends keyof AllFilters<F>>(key: K, filter: AllFilters<F>[K]) {\n if (filter === undefined) {\n return;\n }\n this._filters = {\n ...this._filters,\n [key]: filter,\n };\n this.customFilters = {\n ...this.customFilters,\n [key]: filter,\n };\n const disposers = this.addFilterListeners(filter);\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n resetFilters(options?: ChangeValueOptions) {\n const { nonPersistentFilters } = this;\n nonPersistentFilters.forEach((filter) => {\n filter?.reset(options);\n });\n }\n\n resetCustomFilters(options?: ChangeValueOptions) {\n const { nonPersistentCustomFilters } = this;\n nonPersistentCustomFilters.forEach((filter) => {\n filter?.reset(options);\n });\n }\n\n resetSorting(params: { emitChangeEvent?: boolean } = {}) {\n this.sort.reset(params);\n }\n\n resetPage() {\n const { pagination } = this;\n pagination.page = 1;\n pagination.cursor = initialCursor;\n }\n\n get search() {\n return this._filters.search;\n }\n\n get filters(): AllFilters<F> {\n return this._filters;\n }\n\n addFilterListeners = (filter: Filter<unknown>) => {\n return [\n addEventListener(filter.events, 'change', () =>\n this.events.emit('change'),\n ),\n addEventListener(filter.events, 'refresh', () =>\n this.events.emit('refresh'),\n ),\n addEventListener(filter.events, 'scheduleRefresh', () =>\n this.events.emit('scheduleRefresh'),\n ),\n ];\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_Pagination","_mapValues","_interopRequireDefault","_pickBy","_events","_StringFilterState","_SortState","_util","_core","_QueryHistoryState","QueryState","constructor","params","_defineProperty2","default","EventEmitter","observable","set","deep","filter","_skipFilterListeners","addEventListener","events","emit","refreshOnColumnsChange","pagination","Pagination","limit","history","sort","SortState","customFilters","mapValues","filters","name","_filters","search","StringFilterState","defaultValue","queryHistory","QueryHistoryState","query","makeObservable","changeLimit","action","reset","toComputed","ref","addFilterIfNeeded","asComputed","computed","activeFilters","nonPersistentFilters","nonPersistentFiltersEntries","nonPersistentFiltersMap","activeFiltersEntries","activeFiltersCount","hasActiveFilters","hasNonPersistentActiveFilters","resetFilters","bound","resetPage","filtersKey","filtersKeyHash","fields","fieldsKey","fieldsKeyHash","hasNonPersistentCustomFilters","nonPersistentCustomFiltersCount","init","skipFilterListeners","_this$queryHistory","disposers","Object","values","filtersEntries","flatMap","_","addFilterListeners","forEach","d","Array","from","_columns","_fields","join","isEmpty","toArray","map","itemKey","undefined","hashQueryKey","moveToPage","_toComputed","searchFilter","page","offset","cursor","value","rawFilters","nonPersistentFiltersKey","rawSearch","field","fieldName","direction","order","columns","filtersArray","e","persistent","entries","entry","nonPersistentCustomFilters","reduce","size","pickBy","hasActiveSort","length","key","options","resetCustomFilters","resetSorting","initialCursor","exports"],"sources":["../../../src/state/QueryState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport {\n AllFilters,\n ChangeValueOptions,\n ComputedQuery,\n ComputedQueryFull,\n Filter,\n FiltersMap,\n} from '../model';\nimport { initialCursor, Pagination } from './Pagination';\nimport mapValues from 'lodash/mapValues';\nimport pickBy from 'lodash/pickBy';\nimport { EventEmitter } from 'events';\nimport { History } from 'history';\nimport { StringFilterState } from './StringFilterState';\nimport { SortState } from './SortState';\nimport { addEventListener, TypedEmitter } from '../util';\nimport { hashQueryKey } from 'react-query/core';\nimport { QueryHistoryState } from './QueryHistoryState';\n\nexport interface QueryStateParams<F extends FiltersMap = FiltersMap> {\n history?: History;\n filters: F;\n search?: Filter<string>;\n limit?: number;\n refreshOnColumnsChange?: boolean;\n}\n\nexport type QueryStateEvents = {\n change: () => void;\n refresh: (opts?: { clearResult?: boolean }) => void;\n scheduleRefresh: (opts?: { clearResult?: boolean }) => void;\n persist: () => void;\n};\n\nexport class QueryState<F extends FiltersMap = FiltersMap> {\n readonly history?: History;\n readonly pagination: Pagination;\n customFilters: F;\n sort: SortState;\n _filters: AllFilters<F>;\n readonly events = new EventEmitter() as TypedEmitter<QueryStateEvents>;\n\n readonly queryHistory: QueryHistoryState<F> | null;\n readonly refreshOnColumnsChange;\n\n _columns = observable.set<string>([], { deep: false });\n _fields = observable.set<string>([], { deep: false });\n\n _initializedFromHistory?: boolean;\n\n _skipFilterListeners?: boolean;\n\n constructor(params: QueryStateParams<F>) {\n this.refreshOnColumnsChange = params.refreshOnColumnsChange;\n this.pagination = new Pagination({ limit: params.limit });\n\n this.history = params.history;\n this.sort = new SortState({});\n\n this.customFilters = mapValues(params.filters, (filter, name) => {\n if (filter) {\n filter.name = name;\n }\n return filter;\n }) as F;\n\n this._filters = {\n ...this.customFilters,\n search:\n params.search ??\n new StringFilterState({\n name: 'search',\n defaultValue: '',\n }),\n };\n\n this.queryHistory = this.history\n ? new QueryHistoryState({\n query: this,\n history: this.history,\n })\n : null;\n\n makeObservable(this, {\n changeLimit: action,\n reset: action,\n toComputed: action,\n _filters: observable.ref,\n customFilters: observable.ref,\n addFilterIfNeeded: action,\n asComputed: computed,\n activeFilters: computed,\n nonPersistentFilters: computed,\n nonPersistentFiltersEntries: computed,\n nonPersistentFiltersMap: computed,\n activeFiltersEntries: computed,\n activeFiltersCount: computed,\n hasActiveFilters: computed,\n hasNonPersistentActiveFilters: computed,\n resetFilters: action.bound,\n resetPage: action.bound,\n filtersKey: computed,\n filtersKeyHash: computed,\n fields: computed,\n fieldsKey: computed,\n fieldsKeyHash: computed,\n hasNonPersistentCustomFilters: computed,\n nonPersistentCustomFiltersCount: computed,\n });\n }\n\n init({ skipFilterListeners }: { skipFilterListeners?: boolean } = {}) {\n this._skipFilterListeners = skipFilterListeners;\n const disposers = [\n ...Object.values(this.filtersEntries).flatMap(([_, filter]) => {\n return this.addFilterListeners(filter);\n }),\n this.queryHistory?.init(),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n get limit() {\n return this.pagination.limit;\n }\n\n get fields() {\n return [\n ...Array.from(this._columns.values()),\n ...Array.from(this._fields.values()),\n ];\n }\n\n get fieldsKey() {\n return this.fields.sort();\n }\n\n get fieldsKeyHash() {\n return this.fieldsKey.join('');\n }\n\n get filtersKey() {\n const { customFilters } = this;\n\n return mapValues(customFilters, (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n }\n\n get filtersKeyHash() {\n return hashQueryKey([this.filtersKey]);\n }\n\n changeLimit(limit: number) {\n this.pagination.changeLimit(limit);\n }\n\n public reset() {\n this.pagination.moveToPage(0);\n }\n\n private _toComputed(): ComputedQueryFull<F> {\n const {\n pagination,\n customFilters,\n nonPersistentFiltersMap,\n search: searchFilter,\n sort,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n fields,\n refreshOnColumnsChange,\n } = this;\n const { page, limit, offset, cursor } = pagination;\n\n const filters: ComputedQuery<F>['filters'] = mapValues(\n customFilters,\n (filter) =>\n filter != null ? (filter.isEmpty ? undefined : filter.value) : filter,\n );\n const rawFilters: ComputedQuery<F>['rawFilters'] = mapValues(\n customFilters,\n (filter) => (filter != null ? filter.value : filter),\n );\n\n const filtersKey = mapValues(customFilters, (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n\n const nonPersistentFiltersKey = mapValues(\n nonPersistentFiltersMap,\n (filter) =>\n filter != null\n ? filter.isEmpty\n ? null\n : filter.toArray.map(filter.itemKey)\n : undefined,\n );\n\n const rawSearch = searchFilter.value;\n const search = searchFilter.isEmpty ? undefined : rawSearch;\n\n return {\n page,\n limit,\n sort: sort.value.map(({ field: fieldName, direction: order }) => ({\n fieldName,\n order,\n })),\n offset,\n cursor: cursor == null || typeof cursor === 'string' ? cursor : null,\n rawFilters,\n filtersKey,\n nonPersistentFiltersKey,\n filters,\n rawSearch,\n search,\n hasActiveFilters,\n hasNonPersistentActiveFilters,\n columns: fields,\n fields: refreshOnColumnsChange\n ? fields\n : Array.from(this._fields.values()),\n };\n }\n\n toComputed(): ComputedQueryFull<F> {\n return this._toComputed();\n }\n\n get asComputed(): ComputedQueryFull<F> {\n return this._toComputed();\n }\n\n get filtersArray() {\n const { _filters } = this;\n return Object.values(_filters).filter(\n (e) => e != null,\n ) as Filter<unknown>[];\n }\n\n get nonPersistentFilters() {\n const { filtersArray } = this;\n return filtersArray.filter((filter) => !filter.persistent);\n }\n\n get filtersEntries() {\n const { _filters } = this;\n return Object.entries(_filters).filter(\n (entry): entry is [string, Filter<unknown>] => entry[1] != null,\n );\n }\n\n get nonPersistentFiltersEntries() {\n const { filtersEntries } = this;\n return filtersEntries.filter(([_, filter]) => !filter.persistent);\n }\n\n get nonPersistentCustomFiltersCount() {\n return Object.values(this.nonPersistentCustomFilters).reduce(\n (size, filter) => size + filter.size,\n 0,\n );\n }\n\n get hasNonPersistentCustomFilters() {\n return this.nonPersistentCustomFiltersCount > 0;\n }\n\n get nonPersistentCustomFilters() {\n const { customFilters } = this;\n return Object.values(customFilters).filter(\n (e) => e != null && !e?.persistent,\n ) as Filter<unknown>[];\n }\n\n get nonPersistentFiltersMap() {\n const { customFilters } = this;\n return pickBy(customFilters, (filter) => !filter?.persistent) as Partial<F>;\n }\n\n get activeFiltersEntries() {\n const { nonPersistentFiltersEntries } = this;\n return nonPersistentFiltersEntries.filter(([_, filter]) => !filter.isEmpty);\n }\n\n get activeFilters() {\n const { nonPersistentFilters } = this;\n return nonPersistentFilters.filter((filter) => !filter.isEmpty);\n }\n\n get activeFiltersCount() {\n return this.activeFilters.reduce((size, filter) => size + filter.size, 0);\n }\n\n get hasActiveFilters() {\n return (\n this.filtersArray.reduce((size, filter) => size + filter.size, 0) > 0\n );\n }\n\n get hasNonPersistentActiveFilters() {\n return this.activeFiltersCount > 0;\n }\n\n get hasActiveSort() {\n return this.sort.value.length > 0;\n }\n\n addFilterIfNeeded<K extends keyof AllFilters<F>>(\n key: K,\n filter: AllFilters<F>[K],\n ) {\n if (filter === undefined || this._filters[key]) {\n return;\n }\n this._filters = {\n ...this._filters,\n [key]: filter,\n };\n this.customFilters = {\n ...this.customFilters,\n [key]: filter,\n };\n const disposers = this.addFilterListeners(filter);\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n resetFilters(options?: ChangeValueOptions) {\n const { nonPersistentFilters } = this;\n nonPersistentFilters.forEach((filter) => {\n filter?.reset(options);\n });\n }\n\n resetCustomFilters(options?: ChangeValueOptions) {\n const { nonPersistentCustomFilters } = this;\n nonPersistentCustomFilters.forEach((filter) => {\n filter?.reset(options);\n });\n }\n\n resetSorting(params: { emitChangeEvent?: boolean } = {}) {\n this.sort.reset(params);\n }\n\n resetPage() {\n const { pagination } = this;\n pagination.page = 1;\n pagination.cursor = initialCursor;\n }\n\n get search() {\n return this._filters.search;\n }\n\n get filters(): AllFilters<F> {\n return this._filters;\n }\n\n addFilterListeners = (filter: Filter<unknown>) => {\n if (this._skipFilterListeners) {\n return [];\n }\n\n return [\n addEventListener(filter.events, 'change', () =>\n this.events.emit('change'),\n ),\n addEventListener(filter.events, 'refresh', () =>\n this.events.emit('refresh'),\n ),\n addEventListener(filter.events, 'scheduleRefresh', () =>\n this.events.emit('scheduleRefresh'),\n ),\n ];\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -18,6 +18,7 @@ class RangeFilterState {
18
18
  (0, _defineProperty2.default)(this, "itemKey", void 0);
19
19
  (0, _defineProperty2.default)(this, "itemName", void 0);
20
20
  (0, _defineProperty2.default)(this, "equals", void 0);
21
+ (0, _defineProperty2.default)(this, "isCustomField", void 0);
21
22
  (0, _defineProperty2.default)(this, "isEmptyPreset", void 0);
22
23
  (0, _defineProperty2.default)(this, "parsePreset", void 0);
23
24
  (0, _defineProperty2.default)(this, "parse", void 0);
@@ -37,6 +38,7 @@ class RangeFilterState {
37
38
  this.matches = params.matches ?? ((item, value) => this.itemName(item) === this.itemName(value));
38
39
  this._value = params.initialValue ?? this.emptyValue;
39
40
  this.equals = params.equals;
41
+ this.isCustomField = params.isCustomField;
40
42
  (0, _mobx.makeObservable)(this, {
41
43
  _value: _mobx.observable.ref,
42
44
  persistent: _mobx.observable.ref,
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","_mobx","_dateRangeUtils","isRecord","thing","RangeFilterState","constructor","params","_defineProperty2","default","emptyValue","EventEmitter","name","persistent","itemKey","itemName","parse","parsePreset","isEmptyPreset","simplify","value","matches","item","_value","initialValue","equals","makeObservable","observable","ref","isEmpty","computed","size","setValue","action","changeValue","from","to","toArray","preset","toQueryString","encode","decode","raw","includes","split","map","undefined","emitEvents","options","event","events","emit","remove","items","some","e","applyFromQueryString","str","refresh","scheduleRefresh","reset","hasDiff","rangeItem","clone","exports","rangeFilter","isEmptyDatePreset","presetToDaysAmount","toString","d","toISOString","join","dateRangeFilter","Date","isNaN","valueOf","getDatesFromPreset","item1","item2","_item1$from","_item2$from","_item1$to","_item2$to","getTime","numberRangeFilter","parsed","Number"],"sources":["../../../../src/state/RangeFilterState/RangeFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\nimport { getDatesFromPreset, presetToDaysAmount } from './dateRangeUtils';\n\nexport interface RangeItem<T> {\n from: T | null;\n to: T | null;\n preset?: string;\n}\n\nfunction isRecord(thing: unknown): thing is Record<string, unknown> {\n return thing != null;\n}\n\nexport interface RangeFilterStateParams<T>\n extends FilterStateBaseParams<RangeItem<T>> {\n /**\n * Convert an unknown object to a T.\n * @param value\n * @external\n */\n readonly parse: (value: unknown) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n /**\n * Indicates whether a preset does not exist or is empty\n * @external\n */\n readonly isEmptyPreset?: (preset?: string) => boolean;\n /**\n * Converts a preset string to a RangeItem\n * @param preset\n * @external\n */\n readonly parsePreset?: (preset?: string) => RangeItem<T>;\n}\n\nexport class RangeFilterState<T> implements Filter<RangeItem<T>> {\n name: string;\n persistent;\n // defaultValue: string;\n readonly itemKey: (item: RangeItem<T>) => string;\n readonly itemName: (item: RangeItem<T>) => string;\n readonly equals?: (item1: RangeItem<T>, item2: RangeItem<T>) => boolean;\n\n readonly isEmptyPreset: (preset?: string) => boolean;\n readonly parsePreset: (preset?: string) => RangeItem<T>;\n readonly parse: RangeFilterStateParams<T>['parse'];\n readonly simplify;\n readonly matches: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n\n _value: RangeItem<T> = this.emptyValue;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: RangeFilterStateParams<T>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n // this.defaultValue = params.defaultValue;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.parse = params.parse;\n this.parsePreset = params.parsePreset ?? (() => this.emptyValue);\n this.isEmptyPreset = params.isEmptyPreset ?? (() => true);\n this.simplify = params.simplify ?? ((value) => value);\n this.matches =\n params.matches ??\n ((item, value) => this.itemName(item) === this.itemName(value));\n this._value = params.initialValue ?? this.emptyValue;\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n setValue: action,\n changeValue: action,\n });\n }\n\n get emptyValue() {\n return { from: null, to: null };\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n const { from, to, preset } = this._value;\n return !from && from !== 0 && !to && to !== 0 && this.isEmptyPreset(preset);\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this.itemKey(this._value);\n }\n\n encode(value: RangeItem<T>) {\n if (!this.isEmptyPreset(value.preset)) {\n return {\n preset: value.preset,\n };\n }\n\n return {\n ...(value.from && { from: this.simplify(value.from) }),\n ...(value.to && { to: this.simplify(value.to) }),\n };\n }\n\n decode(raw: unknown): RangeItem<T> {\n if (typeof raw === 'string') {\n if (!raw.includes('/') && !this.isEmptyPreset(raw)) {\n return this.parsePreset(raw);\n }\n\n const [from, to] = raw.split('/').map(this.parse);\n\n return {\n from,\n to,\n };\n }\n\n if (isRecord(raw)) {\n const [from, to] = [raw.from, raw.to].map(this.parse);\n const preset = typeof raw.preset === 'string' ? raw.preset : undefined;\n\n if (!this.isEmptyPreset(preset)) {\n return this.parsePreset(preset);\n }\n\n return {\n from,\n to,\n preset,\n };\n }\n\n return this.emptyValue;\n }\n\n setValue(\n value: RangeItem<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: RangeItem<T>,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n remove(items: RangeItem<T>[], options: ChangeValueOptions = {}) {\n if (items.some((e) => e.from || e.to)) {\n this.setValue(this.emptyValue, options);\n }\n }\n\n applyFromQueryString(str: string) {\n this.setValue(this.decode(str));\n }\n\n refresh(value: RangeItem<T>, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: RangeItem<T>) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.emptyValue, options);\n }\n\n hasDiff(rangeItem: RangeItem<T>) {\n const { value } = this;\n return value.from !== rangeItem.from || value.to !== rangeItem.to;\n }\n\n clone(params: Partial<RangeFilterStateParams<T>>): RangeFilterState<T> {\n const {\n value: initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n } = this;\n return new RangeFilterState<T>({\n initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n ...params,\n });\n }\n}\n\nexport const rangeFilter = <T>(params: RangeFilterStateParams<T>) =>\n new RangeFilterState(params);\n\nconst isEmptyDatePreset = (preset?: string): preset is string => {\n return !preset || presetToDaysAmount[preset] === undefined;\n};\n\nexport const toString = (item: RangeItem<Date>) => {\n if (!item.preset || isEmptyDatePreset(item.preset)) {\n return [item.from, item.to].map((d) => d?.toISOString()).join('/');\n }\n return item.preset;\n};\n\nexport const dateRangeFilter = (\n params: Partial<RangeFilterStateParams<Date>> = {},\n) => {\n return new RangeFilterState({\n itemKey: toString,\n itemName: toString,\n parse: (value) => {\n if (typeof value === 'object' && value instanceof Date) {\n return value;\n }\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n return null;\n }\n\n const d = new Date(value);\n\n if (isNaN(d.valueOf())) {\n return null;\n }\n\n return d;\n },\n parsePreset: getDatesFromPreset,\n isEmptyPreset: isEmptyDatePreset,\n equals: (item1, item2) => {\n if (isEmptyDatePreset(item1.preset) && isEmptyDatePreset(item2.preset)) {\n return (\n item1.from?.getTime() === item2.from?.getTime() &&\n item1.to?.getTime() === item2.to?.getTime()\n );\n }\n return item1.preset === item2.preset;\n },\n ...params,\n });\n};\n\nexport const numberRangeFilter = (\n params: Partial<RangeFilterStateParams<number>> = {},\n) => {\n return new RangeFilterState({\n itemKey: (item) => `${item.from}/${item.to}`,\n itemName: (item) => {\n const from =\n typeof item.from === 'number' ? `from ${item.from.toString()}` : '';\n const to = typeof item.to === 'number' ? `to ${item.to.toString()}` : '';\n return `${from} ${to}`;\n },\n parse: (value) => {\n if (typeof value === 'string') {\n const parsed = Number(value);\n return isNaN(parsed) ? null : parsed;\n }\n if (typeof value === 'number') {\n return value;\n }\n return null;\n },\n equals: (item1, item2) => {\n return item1.from === item2.from && item1.to === item2.to;\n },\n ...params,\n });\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_events","require","_mobx","_dateRangeUtils","isRecord","thing","RangeFilterState","constructor","params","_defineProperty2","default","emptyValue","EventEmitter","name","persistent","itemKey","itemName","parse","parsePreset","isEmptyPreset","simplify","value","matches","item","_value","initialValue","equals","isCustomField","makeObservable","observable","ref","isEmpty","computed","size","setValue","action","changeValue","from","to","toArray","preset","toQueryString","encode","decode","raw","includes","split","map","undefined","emitEvents","options","event","events","emit","remove","items","some","e","applyFromQueryString","str","refresh","scheduleRefresh","reset","hasDiff","rangeItem","clone","exports","rangeFilter","isEmptyDatePreset","presetToDaysAmount","toString","d","toISOString","join","dateRangeFilter","Date","isNaN","valueOf","getDatesFromPreset","item1","item2","_item1$from","_item2$from","_item1$to","_item2$to","getTime","numberRangeFilter","parsed","Number"],"sources":["../../../../src/state/RangeFilterState/RangeFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\nimport { getDatesFromPreset, presetToDaysAmount } from './dateRangeUtils';\n\nexport interface RangeItem<T> {\n from: T | null;\n to: T | null;\n preset?: string;\n}\n\nfunction isRecord(thing: unknown): thing is Record<string, unknown> {\n return thing != null;\n}\n\nexport interface RangeFilterStateParams<T>\n extends FilterStateBaseParams<RangeItem<T>> {\n /**\n * Convert an unknown object to a T.\n * @param value\n * @external\n */\n readonly parse: (value: unknown) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n /**\n * Indicates whether a preset does not exist or is empty\n * @external\n */\n readonly isEmptyPreset?: (preset?: string) => boolean;\n /**\n * Converts a preset string to a RangeItem\n * @param preset\n * @external\n */\n readonly parsePreset?: (preset?: string) => RangeItem<T>;\n}\n\nexport class RangeFilterState<T> implements Filter<RangeItem<T>> {\n name: string;\n persistent;\n // defaultValue: string;\n readonly itemKey: (item: RangeItem<T>) => string;\n readonly itemName: (item: RangeItem<T>) => string;\n readonly equals?: (item1: RangeItem<T>, item2: RangeItem<T>) => boolean;\n readonly isCustomField?: boolean;\n\n readonly isEmptyPreset: (preset?: string) => boolean;\n readonly parsePreset: (preset?: string) => RangeItem<T>;\n readonly parse: RangeFilterStateParams<T>['parse'];\n readonly simplify;\n readonly matches: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n\n _value: RangeItem<T> = this.emptyValue;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: RangeFilterStateParams<T>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n // this.defaultValue = params.defaultValue;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.parse = params.parse;\n this.parsePreset = params.parsePreset ?? (() => this.emptyValue);\n this.isEmptyPreset = params.isEmptyPreset ?? (() => true);\n this.simplify = params.simplify ?? ((value) => value);\n this.matches =\n params.matches ??\n ((item, value) => this.itemName(item) === this.itemName(value));\n this._value = params.initialValue ?? this.emptyValue;\n this.equals = params.equals;\n this.isCustomField = params.isCustomField;\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n setValue: action,\n changeValue: action,\n });\n }\n\n get emptyValue() {\n return { from: null, to: null };\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n const { from, to, preset } = this._value;\n return !from && from !== 0 && !to && to !== 0 && this.isEmptyPreset(preset);\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this.itemKey(this._value);\n }\n\n encode(value: RangeItem<T>) {\n if (!this.isEmptyPreset(value.preset)) {\n return {\n preset: value.preset,\n };\n }\n\n return {\n ...(value.from && { from: this.simplify(value.from) }),\n ...(value.to && { to: this.simplify(value.to) }),\n };\n }\n\n decode(raw: unknown): RangeItem<T> {\n if (typeof raw === 'string') {\n if (!raw.includes('/') && !this.isEmptyPreset(raw)) {\n return this.parsePreset(raw);\n }\n\n const [from, to] = raw.split('/').map(this.parse);\n\n return {\n from,\n to,\n };\n }\n\n if (isRecord(raw)) {\n const [from, to] = [raw.from, raw.to].map(this.parse);\n const preset = typeof raw.preset === 'string' ? raw.preset : undefined;\n\n if (!this.isEmptyPreset(preset)) {\n return this.parsePreset(preset);\n }\n\n return {\n from,\n to,\n preset,\n };\n }\n\n return this.emptyValue;\n }\n\n setValue(\n value: RangeItem<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: RangeItem<T>,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n remove(items: RangeItem<T>[], options: ChangeValueOptions = {}) {\n if (items.some((e) => e.from || e.to)) {\n this.setValue(this.emptyValue, options);\n }\n }\n\n applyFromQueryString(str: string) {\n this.setValue(this.decode(str));\n }\n\n refresh(value: RangeItem<T>, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: RangeItem<T>) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.emptyValue, options);\n }\n\n hasDiff(rangeItem: RangeItem<T>) {\n const { value } = this;\n return value.from !== rangeItem.from || value.to !== rangeItem.to;\n }\n\n clone(params: Partial<RangeFilterStateParams<T>>): RangeFilterState<T> {\n const {\n value: initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n } = this;\n return new RangeFilterState<T>({\n initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n ...params,\n });\n }\n}\n\nexport const rangeFilter = <T>(params: RangeFilterStateParams<T>) =>\n new RangeFilterState(params);\n\nconst isEmptyDatePreset = (preset?: string): preset is string => {\n return !preset || presetToDaysAmount[preset] === undefined;\n};\n\nexport const toString = (item: RangeItem<Date>) => {\n if (!item.preset || isEmptyDatePreset(item.preset)) {\n return [item.from, item.to].map((d) => d?.toISOString()).join('/');\n }\n return item.preset;\n};\n\nexport const dateRangeFilter = (\n params: Partial<RangeFilterStateParams<Date>> = {},\n) => {\n return new RangeFilterState({\n itemKey: toString,\n itemName: toString,\n parse: (value) => {\n if (typeof value === 'object' && value instanceof Date) {\n return value;\n }\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n return null;\n }\n\n const d = new Date(value);\n\n if (isNaN(d.valueOf())) {\n return null;\n }\n\n return d;\n },\n parsePreset: getDatesFromPreset,\n isEmptyPreset: isEmptyDatePreset,\n equals: (item1, item2) => {\n if (isEmptyDatePreset(item1.preset) && isEmptyDatePreset(item2.preset)) {\n return (\n item1.from?.getTime() === item2.from?.getTime() &&\n item1.to?.getTime() === item2.to?.getTime()\n );\n }\n return item1.preset === item2.preset;\n },\n ...params,\n });\n};\n\nexport const numberRangeFilter = (\n params: Partial<RangeFilterStateParams<number>> = {},\n) => {\n return new RangeFilterState({\n itemKey: (item) => `${item.from}/${item.to}`,\n itemName: (item) => {\n const from =\n typeof item.from === 'number' ? `from ${item.from.toString()}` : '';\n const to = typeof item.to === 'number' ? `to ${item.to.toString()}` : '';\n return `${from} ${to}`;\n },\n parse: (value) => {\n if (typeof value === 'string') {\n const parsed = Number(value);\n return isNaN(parsed) ? null : parsed;\n }\n if (typeof value === 'number') {\n return value;\n }\n return null;\n },\n equals: (item1, item2) => {\n return item1.from === item2.from && item1.to === item2.to;\n },\n ...params,\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAOA,IAAAE,eAAA,GAAAF,OAAA;AAQA,SAASG,QAAQA,CAACC,KAAc,EAAoC;EAClE,OAAOA,KAAK,IAAI,IAAI;AACtB;AAkCO,MAAMC,gBAAgB,CAAoC;EAmB/DC,WAAWA,CAACC,MAAiC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAhB/C;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAYuB,IAAI,CAACC,UAAU;IAAA,IAAAF,gBAAA,CAAAC,OAAA,kBAEpB,IAAIE,oBAAY,CAAC,CAAC;IAGlC,IAAI,CAACC,IAAI,GAAGL,MAAM,CAACK,IAAI,IAAI,EAAE;IAC7B,IAAI,CAACC,UAAU,GAAGN,MAAM,CAACM,UAAU;IACnC;IACA,IAAI,CAACC,OAAO,GAAGP,MAAM,CAACO,OAAO;IAC7B,IAAI,CAACC,QAAQ,GAAGR,MAAM,CAACQ,QAAQ;IAC/B,IAAI,CAACC,KAAK,GAAGT,MAAM,CAACS,KAAK;IACzB,IAAI,CAACC,WAAW,GAAGV,MAAM,CAACU,WAAW,KAAK,MAAM,IAAI,CAACP,UAAU,CAAC;IAChE,IAAI,CAACQ,aAAa,GAAGX,MAAM,CAACW,aAAa,KAAK,MAAM,IAAI,CAAC;IACzD,IAAI,CAACC,QAAQ,GAAGZ,MAAM,CAACY,QAAQ,KAAMC,KAAK,IAAKA,KAAK,CAAC;IACrD,IAAI,CAACC,OAAO,GACVd,MAAM,CAACc,OAAO,KACb,CAACC,IAAI,EAAEF,KAAK,KAAK,IAAI,CAACL,QAAQ,CAACO,IAAI,CAAC,KAAK,IAAI,CAACP,QAAQ,CAACK,KAAK,CAAC,CAAC;IACjE,IAAI,CAACG,MAAM,GAAGhB,MAAM,CAACiB,YAAY,IAAI,IAAI,CAACd,UAAU;IACpD,IAAI,CAACe,MAAM,GAAGlB,MAAM,CAACkB,MAAM;IAC3B,IAAI,CAACC,aAAa,GAAGnB,MAAM,CAACmB,aAAa;IAEzC,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBJ,MAAM,EAAEK,gBAAU,CAACC,GAAG;MACtBhB,UAAU,EAAEe,gBAAU,CAACC,GAAG;MAC1BC,OAAO,EAAEC,cAAQ;MACjBC,IAAI,EAAED,cAAQ;MACdX,KAAK,EAAEW,cAAQ;MACfE,QAAQ,EAAEC,YAAM;MAChBC,WAAW,EAAED;IACf,CAAC,CAAC;EACJ;EAEA,IAAIxB,UAAUA,CAAA,EAAG;IACf,OAAO;MAAE0B,IAAI,EAAE,IAAI;MAAEC,EAAE,EAAE;IAAK,CAAC;EACjC;EAEA,IAAIjB,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACG,MAAM;EACpB;EAEA,IAAIe,OAAOA,CAAA,EAAG;IACZ,OAAO,CAAC,IAAI,CAACf,MAAM,CAAC;EACtB;EAEA,IAAIO,OAAOA,CAAA,EAAG;IACZ,MAAM;MAAEM,IAAI;MAAEC,EAAE;MAAEE;IAAO,CAAC,GAAG,IAAI,CAAChB,MAAM;IACxC,OAAO,CAACa,IAAI,IAAIA,IAAI,KAAK,CAAC,IAAI,CAACC,EAAE,IAAIA,EAAE,KAAK,CAAC,IAAI,IAAI,CAACnB,aAAa,CAACqB,MAAM,CAAC;EAC7E;EAEA,IAAIP,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACF,OAAO,GAAG,CAAC,GAAG,CAAC;EAC7B;EAEA,IAAIU,aAAaA,CAAA,EAAG;IAClB,OAAO,IAAI,CAAC1B,OAAO,CAAC,IAAI,CAACS,MAAM,CAAC;EAClC;EAEAkB,MAAMA,CAACrB,KAAmB,EAAE;IAC1B,IAAI,CAAC,IAAI,CAACF,aAAa,CAACE,KAAK,CAACmB,MAAM,CAAC,EAAE;MACrC,OAAO;QACLA,MAAM,EAAEnB,KAAK,CAACmB;MAChB,CAAC;IACH;IAEA,OAAO;MACL,IAAInB,KAAK,CAACgB,IAAI,IAAI;QAAEA,IAAI,EAAE,IAAI,CAACjB,QAAQ,CAACC,KAAK,CAACgB,IAAI;MAAE,CAAC,CAAC;MACtD,IAAIhB,KAAK,CAACiB,EAAE,IAAI;QAAEA,EAAE,EAAE,IAAI,CAAClB,QAAQ,CAACC,KAAK,CAACiB,EAAE;MAAE,CAAC;IACjD,CAAC;EACH;EAEAK,MAAMA,CAACC,GAAY,EAAgB;IACjC,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;MAC3B,IAAI,CAACA,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC1B,aAAa,CAACyB,GAAG,CAAC,EAAE;QAClD,OAAO,IAAI,CAAC1B,WAAW,CAAC0B,GAAG,CAAC;MAC9B;MAEA,MAAM,CAACP,IAAI,EAAEC,EAAE,CAAC,GAAGM,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,IAAI,CAAC9B,KAAK,CAAC;MAEjD,OAAO;QACLoB,IAAI;QACJC;MACF,CAAC;IACH;IAEA,IAAIlC,QAAQ,CAACwC,GAAG,CAAC,EAAE;MACjB,MAAM,CAACP,IAAI,EAAEC,EAAE,CAAC,GAAG,CAACM,GAAG,CAACP,IAAI,EAAEO,GAAG,CAACN,EAAE,CAAC,CAACS,GAAG,CAAC,IAAI,CAAC9B,KAAK,CAAC;MACrD,MAAMuB,MAAM,GAAG,OAAOI,GAAG,CAACJ,MAAM,KAAK,QAAQ,GAAGI,GAAG,CAACJ,MAAM,GAAGQ,SAAS;MAEtE,IAAI,CAAC,IAAI,CAAC7B,aAAa,CAACqB,MAAM,CAAC,EAAE;QAC/B,OAAO,IAAI,CAACtB,WAAW,CAACsB,MAAM,CAAC;MACjC;MAEA,OAAO;QACLH,IAAI;QACJC,EAAE;QACFE;MACF,CAAC;IACH;IAEA,OAAO,IAAI,CAAC7B,UAAU;EACxB;EAEAuB,QAAQA,CACNb,KAAmB,EACnB;IAAE4B,UAAU;IAAE,GAAGC;EAA4B,CAAC,GAAG,CAAC,CAAC,EACnD;IACA,IAAI,CAAC1B,MAAM,GAAGH,KAAK;IACnB,IAAI4B,UAAU,EAAE;MACd,KAAK,MAAME,KAAK,IAAIF,UAAU,EAAE;QAC9B,IAAI,CAACG,MAAM,CAACC,IAAI,CAACF,KAAK,EAAED,OAAO,CAAC;MAClC;IACF;EACF;EAEAd,WAAWA,CACTf,KAAmB,EACnB;IAAE4B,UAAU,GAAG,EAAE;IAAE,GAAGC;EAA4B,CAAC,GAAG,CAAC,CAAC,EACxD;IACA,IAAI,CAAChB,QAAQ,CAACb,KAAK,EAAE;MAAE,GAAG6B,OAAO;MAAED,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAGA,UAAU;IAAE,CAAC,CAAC;EAC7E;EAEAK,MAAMA,CAACC,KAAqB,EAAEL,OAA2B,GAAG,CAAC,CAAC,EAAE;IAC9D,IAAIK,KAAK,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACpB,IAAI,IAAIoB,CAAC,CAACnB,EAAE,CAAC,EAAE;MACrC,IAAI,CAACJ,QAAQ,CAAC,IAAI,CAACvB,UAAU,EAAEuC,OAAO,CAAC;IACzC;EACF;EAEAQ,oBAAoBA,CAACC,GAAW,EAAE;IAChC,IAAI,CAACzB,QAAQ,CAAC,IAAI,CAACS,MAAM,CAACgB,GAAG,CAAC,CAAC;EACjC;EAEAC,OAAOA,CAACvC,KAAmB,EAAE6B,OAA4B,EAAE;IACzD,IAAI,CAACd,WAAW,CAACf,KAAK,EAAE;MAAE,GAAG6B,OAAO;MAAED,UAAU,EAAE,CAAC,SAAS;IAAE,CAAC,CAAC;EAClE;EAEAY,eAAeA,CAACxC,KAAmB,EAAE;IACnC,IAAI,CAACe,WAAW,CAACf,KAAK,EAAE;MAAE4B,UAAU,EAAE,CAAC,iBAAiB;IAAE,CAAC,CAAC;EAC9D;EAEAa,KAAKA,CAACZ,OAA2B,GAAG,CAAC,CAAC,EAAE;IACtC,IAAI,CAAChB,QAAQ,CAAC,IAAI,CAACvB,UAAU,EAAEuC,OAAO,CAAC;EACzC;EAEAa,OAAOA,CAACC,SAAuB,EAAE;IAC/B,MAAM;MAAE3C;IAAM,CAAC,GAAG,IAAI;IACtB,OAAOA,KAAK,CAACgB,IAAI,KAAK2B,SAAS,CAAC3B,IAAI,IAAIhB,KAAK,CAACiB,EAAE,KAAK0B,SAAS,CAAC1B,EAAE;EACnE;EAEA2B,KAAKA,CAACzD,MAA0C,EAAuB;IACrE,MAAM;MACJa,KAAK,EAAEI,YAAY;MACnBH,OAAO;MACPR,UAAU;MACVC,OAAO;MACPC,QAAQ;MACRC,KAAK;MACLJ,IAAI;MACJO,QAAQ;MACRD,aAAa;MACbD,WAAW;MACXQ;IACF,CAAC,GAAG,IAAI;IACR,OAAO,IAAIpB,gBAAgB,CAAI;MAC7BmB,YAAY;MACZH,OAAO;MACPR,UAAU;MACVC,OAAO;MACPC,QAAQ;MACRC,KAAK;MACLJ,IAAI;MACJO,QAAQ;MACRD,aAAa;MACbD,WAAW;MACXQ,MAAM;MACN,GAAGlB;IACL,CAAC,CAAC;EACJ;AACF;AAAC0D,OAAA,CAAA5D,gBAAA,GAAAA,gBAAA;AAEM,MAAM6D,WAAW,GAAO3D,MAAiC,IAC9D,IAAIF,gBAAgB,CAACE,MAAM,CAAC;AAAC0D,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAE/B,MAAMC,iBAAiB,GAAI5B,MAAe,IAAuB;EAC/D,OAAO,CAACA,MAAM,IAAI6B,kCAAkB,CAAC7B,MAAM,CAAC,KAAKQ,SAAS;AAC5D,CAAC;AAEM,MAAMsB,QAAQ,GAAI/C,IAAqB,IAAK;EACjD,IAAI,CAACA,IAAI,CAACiB,MAAM,IAAI4B,iBAAiB,CAAC7C,IAAI,CAACiB,MAAM,CAAC,EAAE;IAClD,OAAO,CAACjB,IAAI,CAACc,IAAI,EAAEd,IAAI,CAACe,EAAE,CAAC,CAACS,GAAG,CAAEwB,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAEC,WAAW,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;EACpE;EACA,OAAOlD,IAAI,CAACiB,MAAM;AACpB,CAAC;AAAC0B,OAAA,CAAAI,QAAA,GAAAA,QAAA;AAEK,MAAMI,eAAe,GAAGA,CAC7BlE,MAA6C,GAAG,CAAC,CAAC,KAC/C;EACH,OAAO,IAAIF,gBAAgB,CAAC;IAC1BS,OAAO,EAAEuD,QAAQ;IACjBtD,QAAQ,EAAEsD,QAAQ;IAClBrD,KAAK,EAAGI,KAAK,IAAK;MAChB,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,YAAYsD,IAAI,EAAE;QACtD,OAAOtD,KAAK;MACd;MAEA,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QAC1D,OAAO,IAAI;MACb;MAEA,MAAMkD,CAAC,GAAG,IAAII,IAAI,CAACtD,KAAK,CAAC;MAEzB,IAAIuD,KAAK,CAACL,CAAC,CAACM,OAAO,CAAC,CAAC,CAAC,EAAE;QACtB,OAAO,IAAI;MACb;MAEA,OAAON,CAAC;IACV,CAAC;IACDrD,WAAW,EAAE4D,kCAAkB;IAC/B3D,aAAa,EAAEiD,iBAAiB;IAChC1C,MAAM,EAAEA,CAACqD,KAAK,EAAEC,KAAK,KAAK;MACxB,IAAIZ,iBAAiB,CAACW,KAAK,CAACvC,MAAM,CAAC,IAAI4B,iBAAiB,CAACY,KAAK,CAACxC,MAAM,CAAC,EAAE;QAAA,IAAAyC,WAAA,EAAAC,WAAA,EAAAC,SAAA,EAAAC,SAAA;QACtE,OACE,EAAAH,WAAA,GAAAF,KAAK,CAAC1C,IAAI,qBAAV4C,WAAA,CAAYI,OAAO,CAAC,CAAC,QAAAH,WAAA,GAAKF,KAAK,CAAC3C,IAAI,qBAAV6C,WAAA,CAAYG,OAAO,CAAC,CAAC,KAC/C,EAAAF,SAAA,GAAAJ,KAAK,CAACzC,EAAE,qBAAR6C,SAAA,CAAUE,OAAO,CAAC,CAAC,QAAAD,SAAA,GAAKJ,KAAK,CAAC1C,EAAE,qBAAR8C,SAAA,CAAUC,OAAO,CAAC,CAAC;MAE/C;MACA,OAAON,KAAK,CAACvC,MAAM,KAAKwC,KAAK,CAACxC,MAAM;IACtC,CAAC;IACD,GAAGhC;EACL,CAAC,CAAC;AACJ,CAAC;AAAC0D,OAAA,CAAAQ,eAAA,GAAAA,eAAA;AAEK,MAAMY,iBAAiB,GAAGA,CAC/B9E,MAA+C,GAAG,CAAC,CAAC,KACjD;EACH,OAAO,IAAIF,gBAAgB,CAAC;IAC1BS,OAAO,EAAGQ,IAAI,IAAK,GAAGA,IAAI,CAACc,IAAI,IAAId,IAAI,CAACe,EAAE,EAAE;IAC5CtB,QAAQ,EAAGO,IAAI,IAAK;MAClB,MAAMc,IAAI,GACR,OAAOd,IAAI,CAACc,IAAI,KAAK,QAAQ,GAAG,QAAQd,IAAI,CAACc,IAAI,CAACiC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE;MACrE,MAAMhC,EAAE,GAAG,OAAOf,IAAI,CAACe,EAAE,KAAK,QAAQ,GAAG,MAAMf,IAAI,CAACe,EAAE,CAACgC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE;MACxE,OAAO,GAAGjC,IAAI,IAAIC,EAAE,EAAE;IACxB,CAAC;IACDrB,KAAK,EAAGI,KAAK,IAAK;MAChB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAMkE,MAAM,GAAGC,MAAM,CAACnE,KAAK,CAAC;QAC5B,OAAOuD,KAAK,CAACW,MAAM,CAAC,GAAG,IAAI,GAAGA,MAAM;MACtC;MACA,IAAI,OAAOlE,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAOA,KAAK;MACd;MACA,OAAO,IAAI;IACb,CAAC;IACDK,MAAM,EAAEA,CAACqD,KAAK,EAAEC,KAAK,KAAK;MACxB,OAAOD,KAAK,CAAC1C,IAAI,KAAK2C,KAAK,CAAC3C,IAAI,IAAI0C,KAAK,CAACzC,EAAE,KAAK0C,KAAK,CAAC1C,EAAE;IAC3D,CAAC;IACD,GAAG9B;EACL,CAAC,CAAC;AACJ,CAAC;AAAC0D,OAAA,CAAAoB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -70,7 +70,7 @@
70
70
  "cairo.customFields.addCustomField.modal.emptyFieldType.error": "Vælg en felttype.",
71
71
  "cairo.filtersPanel.date.today": "I dag",
72
72
  "cairo.tags.manageTags.modal.toast.create.error": "Kunne ikke oprette tag.",
73
- "cairo.tags.tagsField.readOnly.emptyState": "There aren’t any tags assigned yet. ",
73
+ "cairo.tags.tagsField.readOnly.emptyState": "Der er ikke tildelt nogen tags endnu. ",
74
74
  "cairo.customFields.fieldType.longText.Name.placeholder": "fx bemærkninger",
75
75
  "cairo.customFields.fieldType.dropdownList": "Rullemenu",
76
76
  "cairo.customFields.archive.modal.cancel.CTA": "Annuller",
@@ -473,7 +473,7 @@
473
473
  "cairo.table.gridView": "Gittervisning",
474
474
  "cairo.export.selectedItems": "Valgt",
475
475
  "cairo.entityPage.success.toast": "Dine ændringer blev gemt.",
476
- "cairo.tags.tagsField.readOnly.emptyState.asLabels": "There aren’t any labels assigned yet.",
476
+ "cairo.tags.tagsField.readOnly.emptyState.asLabels": "Der er ikke tildelt nogen etiketter endnu.",
477
477
  "cairo.table.custom-columns.button.tooltip": "Tilpas kolonner",
478
478
  "cairo.table.advanced-sorting.button.tooltip": "Avanceret sortering",
479
479
  "cairo.dragAndDrop.button-role-label.sr": "Træk {itemName}.",