@wix/bex-core 1.411.0 → 1.413.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/locale/messages_da.json +1 -1
- package/dist/cjs/assets/locale/messages_de.json +1 -1
- package/dist/cjs/assets/locale/messages_it.json +14 -14
- package/dist/cjs/assets/locale/messages_no.json +6 -6
- package/dist/cjs/assets/locale/messages_pl.json +1 -1
- package/dist/cjs/assets/locale/messages_pt.json +3 -3
- package/dist/cjs/model/filter.js.map +1 -1
- package/dist/cjs/services/createComponentSettings.js +5 -5
- package/dist/cjs/services/createComponentSettings.js.map +1 -1
- package/dist/cjs/services/dataExtensionService.js.map +1 -1
- package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js +2 -0
- package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
- package/dist/cjs/state/CustomFilterState/CustomFilterState.js +2 -0
- package/dist/cjs/state/CustomFilterState/CustomFilterState.js.map +1 -1
- package/dist/cjs/state/DataExtensionState.js +1 -7
- package/dist/cjs/state/DataExtensionState.js.map +1 -1
- package/dist/cjs/state/RangeFilterState/RangeFilterState.js +51 -14
- package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
- package/dist/cjs/state/RangeFilterState/dateRangeUtils.js +130 -0
- package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -0
- package/dist/cjs/state/RangeFilterState/index.js +6 -0
- package/dist/cjs/state/RangeFilterState/index.js.map +1 -1
- package/dist/cjs/state/StringFilterState/StringFilterState.js +2 -0
- package/dist/cjs/state/StringFilterState/StringFilterState.js.map +1 -1
- package/dist/esm/assets/locale/messages_da.json +1 -1
- package/dist/esm/assets/locale/messages_de.json +1 -1
- package/dist/esm/assets/locale/messages_it.json +14 -14
- package/dist/esm/assets/locale/messages_no.json +6 -6
- package/dist/esm/assets/locale/messages_pl.json +1 -1
- package/dist/esm/assets/locale/messages_pt.json +3 -3
- package/dist/esm/services/createComponentSettings.js +5 -5
- package/dist/esm/services/createComponentSettings.js.map +1 -1
- package/dist/esm/services/dataExtensionService.js.map +1 -1
- package/dist/esm/state/ArrayFilterState/ArrayFilterState.js +1 -0
- package/dist/esm/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
- package/dist/esm/state/CustomFilterState/CustomFilterState.js +1 -0
- package/dist/esm/state/CustomFilterState/CustomFilterState.js.map +1 -1
- package/dist/esm/state/DataExtensionState.js +1 -9
- package/dist/esm/state/DataExtensionState.js.map +1 -1
- package/dist/esm/state/RangeFilterState/RangeFilterState.js +50 -22
- package/dist/esm/state/RangeFilterState/RangeFilterState.js.map +1 -1
- package/dist/esm/state/RangeFilterState/dateRangeUtils.js +107 -0
- package/dist/esm/state/RangeFilterState/dateRangeUtils.js.map +1 -0
- package/dist/esm/state/RangeFilterState/index.js +1 -0
- package/dist/esm/state/RangeFilterState/index.js.map +1 -1
- package/dist/esm/state/StringFilterState/StringFilterState.js +1 -0
- package/dist/esm/state/StringFilterState/StringFilterState.js.map +1 -1
- package/dist/types/model/filter.d.ts +5 -0
- package/dist/types/model/filter.d.ts.map +1 -1
- package/dist/types/services/createComponentSettings.d.ts.map +1 -1
- package/dist/types/services/dataExtensionService.d.ts +1 -2
- package/dist/types/services/dataExtensionService.d.ts.map +1 -1
- package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts +2 -0
- package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts.map +1 -1
- package/dist/types/state/CustomFilterState/CustomFilterState.d.ts +2 -0
- package/dist/types/state/CustomFilterState/CustomFilterState.d.ts.map +1 -1
- package/dist/types/state/DataExtensionState.d.ts +0 -1
- package/dist/types/state/DataExtensionState.d.ts.map +1 -1
- package/dist/types/state/RangeFilterState/RangeFilterState.d.ts +16 -1
- package/dist/types/state/RangeFilterState/RangeFilterState.d.ts.map +1 -1
- package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts +31 -0
- package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts.map +1 -0
- package/dist/types/state/RangeFilterState/index.d.ts +1 -0
- package/dist/types/state/RangeFilterState/index.d.ts.map +1 -1
- package/dist/types/state/StringFilterState/StringFilterState.d.ts +2 -0
- package/dist/types/state/StringFilterState/StringFilterState.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_services","require","_TaskState","_mobx","_DataExtensionStateBIReporter","_util","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","default","TaskState","container","closeSidePanel","reportBi","dataExtensionService","DataExtensionSchemaService","biReporter","DataExtensionStateBIReporter","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","userSchema","observable","ref","appSchemas","openCustomFieldModal","action","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","MAX_CUSTOM_FIELDS","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","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","customFieldModalState","customFieldModalBiReporter","reset","mode","formSnapshot","setFormValues","disablePermissionCheckboxes","modalState","modal","open","_toCustomField","editable","label","maxLength","options","enum","isSupportedFieldType","isSupportedFieldFormat","format","getAvailableCustomFieldsInSchema","properties","Object","keys","filter","field","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","_this$appSchemas","reduce","prev","_schema$jsonSchema","_this$userSchema2","_this$appSchemas2","cur","_cur$jsonSchema","concat","length","init","initTask","runOnce","fetchSchemas","dataExtensionSchemas","forEach","s","namespace","userFieldsNamespace","exports"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOrigin,\n DataExtensionField,\n DataExtensionFormat,\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 { CairoContainer } from './CairoContainer';\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';\n\nexport interface DataExtensionStateParams {\n container: CairoContainer;\n closeSidePanel?: () => unknown;\n reportBi: ReportBI;\n fqdn: Fqdn;\n}\n\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly biReporter: DataExtensionStateBIReporter;\n readonly initTask = new TaskState();\n readonly container: CairoContainer;\n customFieldModalState?: CustomFieldModalState;\n archiveFieldModal?: ConditionalModalState<{\n id: string;\n origin: string;\n }>;\n readonly closeSidePanel;\n readonly reportBi;\n readonly fqdn;\n\n readonly MAX_CUSTOM_FIELDS = 50;\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\n constructor(params: Readonly<DataExtensionStateParams>) {\n this.container = params.container;\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\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: 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 });\n }\n\n _hasWritePermissions?: boolean;\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: this.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 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 };\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 && 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 }\n\n customFieldModalState.modalState.modal.open();\n }\n\n _toCustomField(key: string, schema: DataExtensionField, editable: boolean) {\n return {\n id: key,\n label: schema?.title,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema),\n editable,\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 isSupportedFieldFormat(\n type?: string,\n format?: string,\n ): format is DataExtensionFormat {\n if (!format) {\n return true;\n }\n return (\n ['date-time', 'date', 'single-line'].includes(format) && type === 'string'\n );\n }\n\n private getAvailableCustomFieldsInSchema(\n properties: {\n [key: string]: DataExtensionField;\n },\n editable: boolean,\n ): CustomField[] {\n return Object.keys(properties)\n .filter((key) => {\n const field = properties[key];\n return (\n !field['x-wix-archived'] &&\n this.isSupportedFieldType(field.type) &&\n this.isSupportedFieldFormat(field.type, field.format)\n );\n })\n .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 .map((key) => this._toCustomField(key, properties[key], editable));\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 return this.getAvailableCustomFieldsInSchema(properties, true);\n }\n\n get availableAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, schema) => {\n const properties: { [key: string]: DataExtensionField } =\n schema?.jsonSchema?.properties || {};\n return [\n ...prev,\n ...this.getAvailableCustomFieldsInSchema(properties, false),\n ];\n }, [] as CustomField[]) ?? []\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).map((key) =>\n this._toCustomField(key, properties[key], true),\n );\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, cur) => {\n const properties: { [key: string]: DataExtensionField } =\n cur?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties).map((key) =>\n this._toCustomField(key, properties[key], false),\n ),\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\n }\n\n get isReachedMaxCustomFields() {\n return this.allUserCustomFields.length >= this.MAX_CUSTOM_FIELDS;\n }\n\n init() {\n const { initTask } = this;\n\n initTask.runOnce(async () => {\n await this.fetchSchemas();\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 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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"}
|
|
1
|
+
{"version":3,"names":["_services","require","_TaskState","_mobx","_DataExtensionStateBIReporter","_util","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","default","TaskState","container","closeSidePanel","reportBi","dataExtensionService","DataExtensionSchemaService","biReporter","DataExtensionStateBIReporter","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","userSchema","observable","ref","appSchemas","openCustomFieldModal","action","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","MAX_CUSTOM_FIELDS","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","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","customFieldModalState","customFieldModalBiReporter","reset","mode","formSnapshot","setFormValues","disablePermissionCheckboxes","modalState","modal","open","_toCustomField","editable","label","maxLength","options","enum","isSupportedFieldType","getAvailableCustomFieldsInSchema","properties","Object","keys","filter","field","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","_this$appSchemas","reduce","prev","_schema$jsonSchema","_this$userSchema2","_this$appSchemas2","cur","_cur$jsonSchema","concat","length","init","initTask","runOnce","fetchSchemas","dataExtensionSchemas","forEach","s","namespace","userFieldsNamespace","exports"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOrigin,\n DataExtensionField,\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 { CairoContainer } from './CairoContainer';\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';\n\nexport interface DataExtensionStateParams {\n container: CairoContainer;\n closeSidePanel?: () => unknown;\n reportBi: ReportBI;\n fqdn: Fqdn;\n}\n\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly biReporter: DataExtensionStateBIReporter;\n readonly initTask = new TaskState();\n readonly container: CairoContainer;\n customFieldModalState?: CustomFieldModalState;\n archiveFieldModal?: ConditionalModalState<{\n id: string;\n origin: string;\n }>;\n readonly closeSidePanel;\n readonly reportBi;\n readonly fqdn;\n\n readonly MAX_CUSTOM_FIELDS = 50;\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\n constructor(params: Readonly<DataExtensionStateParams>) {\n this.container = params.container;\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\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: 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 });\n }\n\n _hasWritePermissions?: boolean;\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: this.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 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 };\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 && 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 }\n\n customFieldModalState.modalState.modal.open();\n }\n\n _toCustomField(key: string, schema: DataExtensionField, editable: boolean) {\n return {\n id: key,\n label: schema?.title,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema),\n editable,\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 editable: boolean,\n ): CustomField[] {\n return Object.keys(properties)\n .filter((key) => {\n const field = properties[key];\n return (\n !field['x-wix-archived'] && this.isSupportedFieldType(field.type)\n );\n })\n .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 .map((key) => this._toCustomField(key, properties[key], editable));\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 return this.getAvailableCustomFieldsInSchema(properties, true);\n }\n\n get availableAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, schema) => {\n const properties: { [key: string]: DataExtensionField } =\n schema?.jsonSchema?.properties || {};\n return [\n ...prev,\n ...this.getAvailableCustomFieldsInSchema(properties, false),\n ];\n }, [] as CustomField[]) ?? []\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).map((key) =>\n this._toCustomField(key, properties[key], true),\n );\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, cur) => {\n const properties: { [key: string]: DataExtensionField } =\n cur?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties).map((key) =>\n this._toCustomField(key, properties[key], false),\n ),\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\n }\n\n get isReachedMaxCustomFields() {\n return this.allUserCustomFields.length >= this.MAX_CUSTOM_FIELDS;\n }\n\n init() {\n const { initTask } = this;\n\n initTask.runOnce(async () => {\n await this.fetchSchemas();\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 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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"}
|
|
@@ -6,6 +6,7 @@ exports.toString = exports.rangeFilter = exports.dateRangeFilter = exports.Range
|
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _events = require("events");
|
|
8
8
|
var _mobx = require("mobx");
|
|
9
|
+
var _dateRangeUtils = require("./dateRangeUtils");
|
|
9
10
|
function isRecord(thing) {
|
|
10
11
|
return thing != null;
|
|
11
12
|
}
|
|
@@ -17,6 +18,9 @@ class RangeFilterState {
|
|
|
17
18
|
(0, _defineProperty2.default)(this, "itemKey", void 0);
|
|
18
19
|
(0, _defineProperty2.default)(this, "itemName", void 0);
|
|
19
20
|
(0, _defineProperty2.default)(this, "entityName", void 0);
|
|
21
|
+
(0, _defineProperty2.default)(this, "equals", void 0);
|
|
22
|
+
(0, _defineProperty2.default)(this, "isEmptyPreset", void 0);
|
|
23
|
+
(0, _defineProperty2.default)(this, "parsePreset", void 0);
|
|
20
24
|
(0, _defineProperty2.default)(this, "parse", void 0);
|
|
21
25
|
(0, _defineProperty2.default)(this, "simplify", void 0);
|
|
22
26
|
(0, _defineProperty2.default)(this, "matches", void 0);
|
|
@@ -29,9 +33,12 @@ class RangeFilterState {
|
|
|
29
33
|
this.itemName = params.itemName;
|
|
30
34
|
this.entityName = params.entityName ?? (() => '');
|
|
31
35
|
this.parse = params.parse;
|
|
36
|
+
this.parsePreset = params.parsePreset ?? (() => this.emptyValue);
|
|
37
|
+
this.isEmptyPreset = params.isEmptyPreset ?? (() => true);
|
|
32
38
|
this.simplify = params.simplify ?? (value => value);
|
|
33
39
|
this.matches = params.matches ?? ((item, value) => this.itemName(item) === this.itemName(value));
|
|
34
40
|
this._value = params.initialValue ?? this.emptyValue;
|
|
41
|
+
this.equals = params.equals;
|
|
35
42
|
(0, _mobx.makeObservable)(this, {
|
|
36
43
|
_value: _mobx.observable.ref,
|
|
37
44
|
persistent: _mobx.observable.ref,
|
|
@@ -55,7 +62,7 @@ class RangeFilterState {
|
|
|
55
62
|
return [this._value];
|
|
56
63
|
}
|
|
57
64
|
get isEmpty() {
|
|
58
|
-
return !this._value.from && !this._value.to;
|
|
65
|
+
return !this._value.from && !this._value.to && this.isEmptyPreset(this._value.preset);
|
|
59
66
|
}
|
|
60
67
|
get size() {
|
|
61
68
|
return this.isEmpty ? 0 : 1;
|
|
@@ -64,6 +71,11 @@ class RangeFilterState {
|
|
|
64
71
|
return this.itemKey(this._value);
|
|
65
72
|
}
|
|
66
73
|
encode(value) {
|
|
74
|
+
if (!this.isEmptyPreset(value.preset)) {
|
|
75
|
+
return {
|
|
76
|
+
preset: value.preset
|
|
77
|
+
};
|
|
78
|
+
}
|
|
67
79
|
return {
|
|
68
80
|
...(value.from && {
|
|
69
81
|
from: this.simplify(value.from)
|
|
@@ -75,22 +87,26 @@ class RangeFilterState {
|
|
|
75
87
|
}
|
|
76
88
|
decode(raw) {
|
|
77
89
|
if (typeof raw === 'string') {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return {
|
|
81
|
-
from,
|
|
82
|
-
to
|
|
83
|
-
};
|
|
90
|
+
if (!raw.includes('/') && !this.isEmptyPreset(raw)) {
|
|
91
|
+
return this.parsePreset(raw);
|
|
84
92
|
}
|
|
93
|
+
const [from, to] = raw.split('/').map(this.parse);
|
|
94
|
+
return {
|
|
95
|
+
from,
|
|
96
|
+
to
|
|
97
|
+
};
|
|
85
98
|
}
|
|
86
99
|
if (isRecord(raw)) {
|
|
87
100
|
const [from, to] = [raw.from, raw.to].map(this.parse);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
to
|
|
92
|
-
};
|
|
101
|
+
const preset = typeof raw.preset === 'string' ? raw.preset : undefined;
|
|
102
|
+
if (!this.isEmptyPreset(preset)) {
|
|
103
|
+
return this.parsePreset(preset);
|
|
93
104
|
}
|
|
105
|
+
return {
|
|
106
|
+
from,
|
|
107
|
+
to,
|
|
108
|
+
preset
|
|
109
|
+
};
|
|
94
110
|
}
|
|
95
111
|
return this.emptyValue;
|
|
96
112
|
}
|
|
@@ -152,7 +168,10 @@ class RangeFilterState {
|
|
|
152
168
|
itemName,
|
|
153
169
|
parse,
|
|
154
170
|
name,
|
|
155
|
-
simplify
|
|
171
|
+
simplify,
|
|
172
|
+
isEmptyPreset,
|
|
173
|
+
parsePreset,
|
|
174
|
+
equals
|
|
156
175
|
} = this;
|
|
157
176
|
return new RangeFilterState({
|
|
158
177
|
entityName,
|
|
@@ -164,6 +183,9 @@ class RangeFilterState {
|
|
|
164
183
|
parse,
|
|
165
184
|
name,
|
|
166
185
|
simplify,
|
|
186
|
+
isEmptyPreset,
|
|
187
|
+
parsePreset,
|
|
188
|
+
equals,
|
|
167
189
|
...params
|
|
168
190
|
});
|
|
169
191
|
}
|
|
@@ -171,8 +193,14 @@ class RangeFilterState {
|
|
|
171
193
|
exports.RangeFilterState = RangeFilterState;
|
|
172
194
|
const rangeFilter = params => new RangeFilterState(params);
|
|
173
195
|
exports.rangeFilter = rangeFilter;
|
|
196
|
+
const isEmptyDatePreset = preset => {
|
|
197
|
+
return !preset || _dateRangeUtils.presetToDaysAmount[preset] === undefined;
|
|
198
|
+
};
|
|
174
199
|
const toString = item => {
|
|
175
|
-
|
|
200
|
+
if (!item.preset || isEmptyDatePreset(item.preset)) {
|
|
201
|
+
return [item.from, item.to].map(d => d == null ? void 0 : d.toISOString()).join('/');
|
|
202
|
+
}
|
|
203
|
+
return item.preset;
|
|
176
204
|
};
|
|
177
205
|
exports.toString = toString;
|
|
178
206
|
const dateRangeFilter = (params = {}) => {
|
|
@@ -192,6 +220,15 @@ const dateRangeFilter = (params = {}) => {
|
|
|
192
220
|
}
|
|
193
221
|
return d;
|
|
194
222
|
},
|
|
223
|
+
parsePreset: _dateRangeUtils.getDatesFromPreset,
|
|
224
|
+
isEmptyPreset: isEmptyDatePreset,
|
|
225
|
+
equals: (item1, item2) => {
|
|
226
|
+
if (isEmptyDatePreset(item1.preset) && isEmptyDatePreset(item2.preset)) {
|
|
227
|
+
var _item1$from, _item2$from, _item1$to, _item2$to;
|
|
228
|
+
return ((_item1$from = item1.from) == null ? void 0 : _item1$from.getTime()) === ((_item2$from = item2.from) == null ? void 0 : _item2$from.getTime()) && ((_item1$to = item1.to) == null ? void 0 : _item1$to.getTime()) === ((_item2$to = item2.to) == null ? void 0 : _item2$to.getTime());
|
|
229
|
+
}
|
|
230
|
+
return item1.preset === item2.preset;
|
|
231
|
+
},
|
|
195
232
|
...params
|
|
196
233
|
});
|
|
197
234
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_mobx","isRecord","thing","RangeFilterState","constructor","params","_defineProperty2","default","emptyValue","EventEmitter","name","persistent","itemKey","itemName","entityName","parse","simplify","value","matches","item","_value","initialValue","makeObservable","observable","ref","isEmpty","computed","size","setValue","action","changeValue","from","to","toArray","toQueryString","encode","decode","raw","split","map","emitEvents","options","event","events","emit","remove","items","some","e","applyFromQueryString","str","refresh","scheduleRefresh","reset","hasDiff","rangeItem","clone","exports","rangeFilter","toString","filter","Boolean","d","toISOString","join","dateRangeFilter","Date","isNaN","valueOf"],"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';\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 a unknown object to a T.\n * @param value\n */\n readonly parse: (value: unknown) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n */\n readonly simplify?: (value: T) => Partial<T>;\n /**\n * Indicates whether an item matches the current value of the filter\n */\n readonly matches?: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\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 entityName: (pluralization: number) => string;\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.entityName = params.entityName ?? (() => '');\n this.parse = params.parse;\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\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 return !this._value.from && !this._value.to;\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 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 const [from, to] = raw.split('/').map(this.parse);\n\n if (from) {\n return {\n from,\n to,\n };\n }\n }\n\n if (isRecord(raw)) {\n const [from, to] = [raw.from, raw.to].map(this.parse);\n\n if (from && to) {\n return {\n from,\n to,\n };\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 entityName,\n value: initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n } = this;\n return new RangeFilterState<T>({\n entityName,\n initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n ...params,\n });\n }\n}\n\nexport const rangeFilter = <T>(params: RangeFilterStateParams<T>) =>\n new RangeFilterState(params);\n\nexport const toString = (item: RangeItem<Date>) => {\n return [item.from, item.to]\n .filter(Boolean as unknown as (d: Date | null) => d is Date)\n .map((d) => d.toISOString())\n .join('/');\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 ...params,\n });\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_events","require","_mobx","_dateRangeUtils","isRecord","thing","RangeFilterState","constructor","params","_defineProperty2","default","emptyValue","EventEmitter","name","persistent","itemKey","itemName","entityName","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"],"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 */\n readonly parse: (value: unknown) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n */\n readonly simplify?: (value: T) => Partial<T>;\n /**\n * Indicates whether an item matches the current value of the filter\n */\n readonly matches?: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n /**\n * Indicates whether a preset does not exist or is empty\n */\n readonly isEmptyPreset?: (preset?: string) => boolean;\n /**\n * Converts a preset string to a RangeItem\n * @param preset\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 entityName: (pluralization: number) => 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.entityName = params.entityName ?? (() => '');\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 return (\n !this._value.from &&\n !this._value.to &&\n this.isEmptyPreset(this._value.preset)\n );\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 entityName,\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 entityName,\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"],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.shouldRenderPresetTag = exports.renderPresetToolbarTag = exports.presetToDaysAmount = exports.getDatesFromPreset = exports.MAP_DATE_PRESET_TO_KEY = exports.DefaultDateRangePreset = exports.DateRangePreset = void 0;
|
|
5
|
+
const DateRangePreset = exports.DateRangePreset = {
|
|
6
|
+
NONE: 'NONE',
|
|
7
|
+
SEVEN_DAYS: 'SEVEN_DAYS',
|
|
8
|
+
FOURTEEN_DAYS: 'FOURTEEN_DAYS',
|
|
9
|
+
MONTH: 'MONTH',
|
|
10
|
+
TODAY: 'TODAY',
|
|
11
|
+
TOMORROW: 'TOMORROW',
|
|
12
|
+
NEXT_THREE_DAYS: 'NEXT_THREE_DAYS',
|
|
13
|
+
NEXT_SEVEN_DAYS: 'NEXT_SEVEN_DAYS',
|
|
14
|
+
NEXT_THIRTY_DAYS: 'NEXT_THIRTY_DAYS',
|
|
15
|
+
CUSTOM: 'CUSTOM'
|
|
16
|
+
};
|
|
17
|
+
const DefaultDateRangePreset = exports.DefaultDateRangePreset = {
|
|
18
|
+
NONE: 'NONE',
|
|
19
|
+
SEVEN_DAYS: 'SEVEN_DAYS',
|
|
20
|
+
FOURTEEN_DAYS: 'FOURTEEN_DAYS',
|
|
21
|
+
MONTH: 'MONTH',
|
|
22
|
+
CUSTOM: 'CUSTOM'
|
|
23
|
+
};
|
|
24
|
+
const hasTime = t => {
|
|
25
|
+
return t instanceof Date && (t.getHours() !== 0 || t.getMinutes() !== 0);
|
|
26
|
+
};
|
|
27
|
+
const getDateRangeLabel = (item, {
|
|
28
|
+
dateFormatters
|
|
29
|
+
}) => {
|
|
30
|
+
return [item.from, item.to].filter(Boolean).map(date => hasTime(date) ? dateFormatters.mediumTime.format(date) : dateFormatters.medium.format(date)).join(' - ');
|
|
31
|
+
};
|
|
32
|
+
const renderPresetToolbarTag = container => filter => {
|
|
33
|
+
const {
|
|
34
|
+
translate: t,
|
|
35
|
+
dateFormatters
|
|
36
|
+
} = container;
|
|
37
|
+
const {
|
|
38
|
+
preset
|
|
39
|
+
} = filter;
|
|
40
|
+
if (!preset || !presetToDaysAmount[preset]) {
|
|
41
|
+
return {
|
|
42
|
+
children: getDateRangeLabel(filter, {
|
|
43
|
+
dateFormatters
|
|
44
|
+
})
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
children: t(MAP_DATE_PRESET_TO_KEY[preset])
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
exports.renderPresetToolbarTag = renderPresetToolbarTag;
|
|
52
|
+
const shouldRenderPresetTag = preset => preset && Object.values(DateRangePreset).includes(preset) && preset !== DateRangePreset.NONE && preset !== DateRangePreset.CUSTOM;
|
|
53
|
+
exports.shouldRenderPresetTag = shouldRenderPresetTag;
|
|
54
|
+
const presetToDaysAmount = exports.presetToDaysAmount = {
|
|
55
|
+
[DateRangePreset.SEVEN_DAYS]: {
|
|
56
|
+
days: -7
|
|
57
|
+
},
|
|
58
|
+
[DateRangePreset.FOURTEEN_DAYS]: {
|
|
59
|
+
days: -14
|
|
60
|
+
},
|
|
61
|
+
[DateRangePreset.MONTH]: {
|
|
62
|
+
months: -1
|
|
63
|
+
},
|
|
64
|
+
[DateRangePreset.TODAY]: {
|
|
65
|
+
days: 0
|
|
66
|
+
},
|
|
67
|
+
[DateRangePreset.TOMORROW]: {
|
|
68
|
+
days: 1
|
|
69
|
+
},
|
|
70
|
+
[DateRangePreset.NEXT_THREE_DAYS]: {
|
|
71
|
+
days: 3
|
|
72
|
+
},
|
|
73
|
+
[DateRangePreset.NEXT_SEVEN_DAYS]: {
|
|
74
|
+
days: 7
|
|
75
|
+
},
|
|
76
|
+
[DateRangePreset.NEXT_THIRTY_DAYS]: {
|
|
77
|
+
days: 30
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const getDatesFromPreset = preset => {
|
|
81
|
+
const today = new Date();
|
|
82
|
+
const presetDiff = preset ? presetToDaysAmount[preset] : undefined;
|
|
83
|
+
if (!presetDiff) {
|
|
84
|
+
return {
|
|
85
|
+
from: null,
|
|
86
|
+
to: null
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const fromDate = new Date(today.getTime());
|
|
90
|
+
const {
|
|
91
|
+
days,
|
|
92
|
+
months,
|
|
93
|
+
years
|
|
94
|
+
} = presetDiff;
|
|
95
|
+
if (days) {
|
|
96
|
+
fromDate.setDate(today.getDate() + days);
|
|
97
|
+
}
|
|
98
|
+
if (months) {
|
|
99
|
+
fromDate.setMonth(today.getMonth() + months);
|
|
100
|
+
}
|
|
101
|
+
if (years) {
|
|
102
|
+
fromDate.setFullYear(today.getFullYear() + years);
|
|
103
|
+
}
|
|
104
|
+
if (fromDate.getTime() > today.getTime()) {
|
|
105
|
+
return {
|
|
106
|
+
from: today,
|
|
107
|
+
to: fromDate,
|
|
108
|
+
preset
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
from: fromDate,
|
|
113
|
+
to: today,
|
|
114
|
+
preset
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
exports.getDatesFromPreset = getDatesFromPreset;
|
|
118
|
+
const MAP_DATE_PRESET_TO_KEY = exports.MAP_DATE_PRESET_TO_KEY = {
|
|
119
|
+
[DateRangePreset.NONE]: 'cairo.filtersPanel.date.none',
|
|
120
|
+
[DateRangePreset.SEVEN_DAYS]: 'cairo.filtersPanel.date.7days',
|
|
121
|
+
[DateRangePreset.FOURTEEN_DAYS]: 'cairo.filtersPanel.date.14days',
|
|
122
|
+
[DateRangePreset.MONTH]: 'cairo.filtersPanel.date.lastMonth',
|
|
123
|
+
[DateRangePreset.CUSTOM]: 'cairo.filtersPanel.date.custom',
|
|
124
|
+
[DateRangePreset.TODAY]: 'cairo.filtersPanel.date.today',
|
|
125
|
+
[DateRangePreset.TOMORROW]: 'cairo.filtersPanel.date.tomorrow',
|
|
126
|
+
[DateRangePreset.NEXT_THREE_DAYS]: 'cairo.filtersPanel.date.next3Days',
|
|
127
|
+
[DateRangePreset.NEXT_SEVEN_DAYS]: 'cairo.filtersPanel.date.next7Days',
|
|
128
|
+
[DateRangePreset.NEXT_THIRTY_DAYS]: 'cairo.filtersPanel.date.next30Days'
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=dateRangeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DateRangePreset","exports","NONE","SEVEN_DAYS","FOURTEEN_DAYS","MONTH","TODAY","TOMORROW","NEXT_THREE_DAYS","NEXT_SEVEN_DAYS","NEXT_THIRTY_DAYS","CUSTOM","DefaultDateRangePreset","hasTime","t","Date","getHours","getMinutes","getDateRangeLabel","item","dateFormatters","from","to","filter","Boolean","map","date","mediumTime","format","medium","join","renderPresetToolbarTag","container","translate","preset","presetToDaysAmount","children","MAP_DATE_PRESET_TO_KEY","shouldRenderPresetTag","Object","values","includes","days","months","getDatesFromPreset","today","presetDiff","undefined","fromDate","getTime","years","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear"],"sources":["../../../../src/state/RangeFilterState/dateRangeUtils.ts"],"sourcesContent":["import { FilterItem } from '../../model';\nimport { RangeItem } from './RangeFilterState';\nimport { Translate, TranslationsKeys } from '../../services';\n\nexport const DateRangePreset: Record<DateRangePresetOptions, string> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n TODAY: 'TODAY',\n TOMORROW: 'TOMORROW',\n NEXT_THREE_DAYS: 'NEXT_THREE_DAYS',\n NEXT_SEVEN_DAYS: 'NEXT_SEVEN_DAYS',\n NEXT_THIRTY_DAYS: 'NEXT_THIRTY_DAYS',\n CUSTOM: 'CUSTOM',\n};\n\nexport const DefaultDateRangePreset: Record<\n 'NONE' | 'SEVEN_DAYS' | 'FOURTEEN_DAYS' | 'MONTH' | 'CUSTOM',\n string\n> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n CUSTOM: 'CUSTOM',\n};\n\nconst hasTime = (t: Date | null) => {\n return t instanceof Date && (t.getHours() !== 0 || t.getMinutes() !== 0);\n};\n\nconst getDateRangeLabel = (\n item: RangeItem<Date>,\n {\n dateFormatters,\n }: {\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n },\n) => {\n return [item.from, item.to]\n .filter(Boolean as unknown as (d: Date | null) => d is Date)\n .map((date) =>\n hasTime(date)\n ? dateFormatters.mediumTime.format(date)\n : dateFormatters.medium.format(date),\n )\n .join(' - ');\n};\n\nexport const renderPresetToolbarTag =\n (container: {\n translate: Translate;\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n }) =>\n <V>(filter: FilterItem<V>) => {\n const { translate: t, dateFormatters } = container;\n const { preset } = filter as FilterItem<RangeItem<Date>>;\n if (!preset || !presetToDaysAmount[preset]) {\n return {\n children: getDateRangeLabel(filter as RangeItem<Date>, {\n dateFormatters,\n }),\n };\n }\n return { children: t(MAP_DATE_PRESET_TO_KEY[preset]) };\n };\n\nexport const shouldRenderPresetTag = (preset?: string) =>\n preset &&\n Object.values(DateRangePreset).includes(preset) &&\n preset !== DateRangePreset.NONE &&\n preset !== DateRangePreset.CUSTOM;\n\nexport const presetToDaysAmount: {\n [key: string]: { months?: number; days?: number; years?: number };\n} = {\n [DateRangePreset.SEVEN_DAYS]: {\n days: -7,\n },\n [DateRangePreset.FOURTEEN_DAYS]: {\n days: -14,\n },\n [DateRangePreset.MONTH]: {\n months: -1,\n },\n [DateRangePreset.TODAY]: {\n days: 0,\n },\n [DateRangePreset.TOMORROW]: {\n days: 1,\n },\n [DateRangePreset.NEXT_THREE_DAYS]: {\n days: 3,\n },\n [DateRangePreset.NEXT_SEVEN_DAYS]: {\n days: 7,\n },\n [DateRangePreset.NEXT_THIRTY_DAYS]: {\n days: 30,\n },\n};\n\nexport const getDatesFromPreset = (preset?: string): RangeItem<Date> => {\n const today = new Date();\n const presetDiff = preset ? presetToDaysAmount[preset] : undefined;\n if (!presetDiff) {\n return { from: null, to: null };\n }\n const fromDate = new Date(today.getTime());\n const { days, months, years } = presetDiff;\n if (days) {\n fromDate.setDate(today.getDate() + days);\n }\n if (months) {\n fromDate.setMonth(today.getMonth() + months);\n }\n if (years) {\n fromDate.setFullYear(today.getFullYear() + years);\n }\n\n if (fromDate.getTime() > today.getTime()) {\n return { from: today, to: fromDate, preset };\n }\n\n return { from: fromDate, to: today, preset };\n};\n\nexport const MAP_DATE_PRESET_TO_KEY: { [key: string]: TranslationsKeys } = {\n [DateRangePreset.NONE]: 'cairo.filtersPanel.date.none',\n [DateRangePreset.SEVEN_DAYS]: 'cairo.filtersPanel.date.7days',\n [DateRangePreset.FOURTEEN_DAYS]: 'cairo.filtersPanel.date.14days',\n [DateRangePreset.MONTH]: 'cairo.filtersPanel.date.lastMonth',\n [DateRangePreset.CUSTOM]: 'cairo.filtersPanel.date.custom',\n [DateRangePreset.TODAY]: 'cairo.filtersPanel.date.today',\n [DateRangePreset.TOMORROW]: 'cairo.filtersPanel.date.tomorrow',\n [DateRangePreset.NEXT_THREE_DAYS]: 'cairo.filtersPanel.date.next3Days',\n [DateRangePreset.NEXT_SEVEN_DAYS]: 'cairo.filtersPanel.date.next7Days',\n [DateRangePreset.NEXT_THIRTY_DAYS]: 'cairo.filtersPanel.date.next30Days',\n};\n\nexport type DateRangeFilterMode = 'ONLY_PREDEFINED' | 'ONLY_CUSTOM' | 'COMBINE';\nexport type DateRangePredefinedPresetOptions =\n | 'SEVEN_DAYS'\n | 'FOURTEEN_DAYS'\n | 'MONTH'\n | 'TODAY'\n | 'TOMORROW'\n | 'NEXT_THREE_DAYS'\n | 'NEXT_SEVEN_DAYS'\n | 'NEXT_THIRTY_DAYS';\nexport type DateRangePresetOptions =\n | DateRangePredefinedPresetOptions\n | 'NONE'\n | 'CUSTOM';\nexport type DateRangeFilterPresetsOverrideOptions =\n DateRangePredefinedPresetOptions[];\n"],"mappings":"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"}
|
|
@@ -7,4 +7,10 @@ Object.keys(_RangeFilterState).forEach(function (key) {
|
|
|
7
7
|
if (key in exports && exports[key] === _RangeFilterState[key]) return;
|
|
8
8
|
exports[key] = _RangeFilterState[key];
|
|
9
9
|
});
|
|
10
|
+
var _dateRangeUtils = require("./dateRangeUtils");
|
|
11
|
+
Object.keys(_dateRangeUtils).forEach(function (key) {
|
|
12
|
+
if (key === "default" || key === "__esModule") return;
|
|
13
|
+
if (key in exports && exports[key] === _dateRangeUtils[key]) return;
|
|
14
|
+
exports[key] = _dateRangeUtils[key];
|
|
15
|
+
});
|
|
10
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_RangeFilterState","require","Object","keys","forEach","key","exports"],"sources":["../../../../src/state/RangeFilterState/index.ts"],"sourcesContent":["export * from './RangeFilterState';\n"],"mappings":";;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,iBAAA,CAAAK,GAAA;AAAA"}
|
|
1
|
+
{"version":3,"names":["_RangeFilterState","require","Object","keys","forEach","key","exports","_dateRangeUtils"],"sources":["../../../../src/state/RangeFilterState/index.ts"],"sourcesContent":["export * from './RangeFilterState';\nexport * from './dateRangeUtils';\n"],"mappings":";;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,iBAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,eAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,eAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,eAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,eAAA,CAAAF,GAAA;AAAA"}
|
|
@@ -15,6 +15,7 @@ class StringFilterState {
|
|
|
15
15
|
(0, _defineProperty2.default)(this, "itemName", void 0);
|
|
16
16
|
(0, _defineProperty2.default)(this, "entityName", void 0);
|
|
17
17
|
(0, _defineProperty2.default)(this, "matches", void 0);
|
|
18
|
+
(0, _defineProperty2.default)(this, "equals", void 0);
|
|
18
19
|
(0, _defineProperty2.default)(this, "_value", void 0);
|
|
19
20
|
(0, _defineProperty2.default)(this, "events", new _events.EventEmitter());
|
|
20
21
|
this.name = params.name ?? '';
|
|
@@ -25,6 +26,7 @@ class StringFilterState {
|
|
|
25
26
|
this.entityName = params.entityName ?? (() => '');
|
|
26
27
|
this._value = params.initialValue ?? this.defaultValue;
|
|
27
28
|
this.matches = params.matches ?? ((item, value) => value == null || value === '' || typeof item === 'string' ? value.toLowerCase().includes(item.toLowerCase()) : false);
|
|
29
|
+
this.equals = params.equals;
|
|
28
30
|
(0, _mobx.makeObservable)(this, {
|
|
29
31
|
_value: _mobx.observable.ref,
|
|
30
32
|
persistent: _mobx.observable.ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_mobx","StringFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","itemKey","item","itemName","entityName","_value","initialValue","matches","value","toLowerCase","includes","makeObservable","observable","ref","isEmpty","computed","size","reset","action","clone","setValue","changeValue","scheduleRefresh","toArray","length","toQueryString","applyFromQueryString","str","encode","decode","raw","emitEvents","options","event","events","emit","refresh","remove","_","hasDiff","exports","stringFilter"],"sources":["../../../../src/state/StringFilterState/StringFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { ChangeValueOptions, Filter, FilterEvents } from '../../model';\n\nexport interface StringFilterStateParams {\n readonly name?: string;\n readonly persistent?: boolean;\n readonly initialValue?: string;\n defaultValue: string;\n /**\n * @deprecated No longer required. To customize filters panel accordion item label pass [accordionItemProps.label](/pages/cairo/?path=/story/components-filters--filterprops) prop to the filter component.\n */\n readonly entityName?: (pluralization: number) => string;\n readonly matches?: (item: string, value: string) => boolean;\n}\n\nexport class StringFilterState implements Filter<string> {\n name: string;\n persistent;\n defaultValue: string;\n readonly itemKey: (item: string) => string;\n readonly itemName: (item: string) => string;\n readonly entityName: (pluralization: number) => string;\n readonly matches: (item: string, value: string) => boolean;\n\n _value: string;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: StringFilterStateParams) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue;\n this.itemKey = (item) => item;\n this.itemName = (item) => item;\n this.entityName = params.entityName ?? (() => '');\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) =>\n value == null || value === '' || typeof item === 'string'\n ? value.toLowerCase().includes(item.toLowerCase())\n : false);\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n clone: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n return !this._value.length;\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this._value;\n }\n\n applyFromQueryString(str: string) {\n this.setValue(str);\n }\n\n encode(value: string) {\n return value;\n }\n\n decode(raw: unknown) {\n if (typeof raw === 'string') {\n return raw;\n }\n\n return '';\n }\n\n setValue(value: string, { emitEvents, ...options }: ChangeValueOptions = {}) {\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: string,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: string, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: string) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n remove(_: string[], options: ChangeValueOptions = {}) {\n this.reset(options);\n }\n\n hasDiff(item: string) {\n return this.value !== item;\n }\n\n clone(params: Partial<StringFilterStateParams>): StringFilterState {\n const {\n entityName,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new StringFilterState({\n entityName,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringFilter = (params: Partial<StringFilterStateParams> = {}) =>\n new StringFilterState({\n defaultValue: '',\n ...params,\n });\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_events","require","_mobx","StringFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","itemKey","item","itemName","entityName","_value","initialValue","matches","value","toLowerCase","includes","equals","makeObservable","observable","ref","isEmpty","computed","size","reset","action","clone","setValue","changeValue","scheduleRefresh","toArray","length","toQueryString","applyFromQueryString","str","encode","decode","raw","emitEvents","options","event","events","emit","refresh","remove","_","hasDiff","exports","stringFilter"],"sources":["../../../../src/state/StringFilterState/StringFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { ChangeValueOptions, Filter, FilterEvents } from '../../model';\n\nexport interface StringFilterStateParams {\n readonly name?: string;\n readonly persistent?: boolean;\n readonly initialValue?: string;\n defaultValue: string;\n /**\n * @deprecated No longer required. To customize filters panel accordion item label pass [accordionItemProps.label](/pages/cairo/?path=/story/components-filters--filterprops) prop to the filter component.\n */\n readonly entityName?: (pluralization: number) => string;\n readonly matches?: (item: string, value: string) => boolean;\n readonly equals?: (item1: string, item2: string) => boolean;\n}\n\nexport class StringFilterState implements Filter<string> {\n name: string;\n persistent;\n defaultValue: string;\n readonly itemKey: (item: string) => string;\n readonly itemName: (item: string) => string;\n readonly entityName: (pluralization: number) => string;\n readonly matches: (item: string, value: string) => boolean;\n readonly equals?: (item1: string, item2: string) => boolean;\n\n _value: string;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: StringFilterStateParams) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue;\n this.itemKey = (item) => item;\n this.itemName = (item) => item;\n this.entityName = params.entityName ?? (() => '');\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) =>\n value == null || value === '' || typeof item === 'string'\n ? value.toLowerCase().includes(item.toLowerCase())\n : false);\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 reset: action,\n clone: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n return !this._value.length;\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this._value;\n }\n\n applyFromQueryString(str: string) {\n this.setValue(str);\n }\n\n encode(value: string) {\n return value;\n }\n\n decode(raw: unknown) {\n if (typeof raw === 'string') {\n return raw;\n }\n\n return '';\n }\n\n setValue(value: string, { emitEvents, ...options }: ChangeValueOptions = {}) {\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: string,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: string, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: string) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n remove(_: string[], options: ChangeValueOptions = {}) {\n this.reset(options);\n }\n\n hasDiff(item: string) {\n return this.value !== item;\n }\n\n clone(params: Partial<StringFilterStateParams>): StringFilterState {\n const {\n entityName,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new StringFilterState({\n entityName,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringFilter = (params: Partial<StringFilterStateParams> = {}) =>\n new StringFilterState({\n defaultValue: '',\n ...params,\n });\n"],"mappings":"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"}
|
|
@@ -346,7 +346,7 @@
|
|
|
346
346
|
"cairo.table.custom-columns.hidden.disabled.tooltip": "Denne kolonne kan ikke skjules.",
|
|
347
347
|
"cairo.entityPage.saveError-offline.toast.description": "Du er offline, og dine ændringer blev ikke gemt. Tjek din internetforbindelse.",
|
|
348
348
|
"cairo.customFields.fieldType.Time.placeholder": "Vælg et tidspunkt",
|
|
349
|
-
"cairo.tags.manageTags.modal.list.input.placeholder": "Indtast
|
|
349
|
+
"cairo.tags.manageTags.modal.list.input.placeholder": "Indtast tag-navn",
|
|
350
350
|
"cairo.manageView.Rename.CTA": "Omdøb",
|
|
351
351
|
"cairo.bulkSelected.withMaxNumber": "Du har valgt det maksimale antal.",
|
|
352
352
|
"cairo.export.cancelMessage": "Eksporten er ikke gennemført, og dine data downloades ikke.",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"cairo.sortableColumns.notification.undo": "Rückgängig",
|
|
68
68
|
"cairo.filtersPanel.saveView.button": "Ansicht speichern",
|
|
69
69
|
"cairo.dragAndDrop.leaveSite.modal.title": "Seite wirklich schließen?",
|
|
70
|
-
"cairo.tags.manageTags.modal.search.placeholder": "Tags
|
|
70
|
+
"cairo.tags.manageTags.modal.search.placeholder": "Tags durchsuchen ...",
|
|
71
71
|
"cairo.customFields.fieldType.dateAndTime": "Datum und Uhrzeit",
|
|
72
72
|
"cairo.search.Tab.noresults.text": "Suche in einem anderen Tab oder starte eine neue Suche.",
|
|
73
73
|
"cairo.viewDropdown.unsavedView.status": "Nicht gespeicherte Ansicht",
|