@wix/bex-core 2.233.0 → 2.235.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 (87) hide show
  1. package/dist/cjs/assets/locale/messages_cs.json +27 -21
  2. package/dist/cjs/assets/locale/messages_da.json +27 -21
  3. package/dist/cjs/assets/locale/messages_de.json +28 -22
  4. package/dist/cjs/assets/locale/messages_en.json +7 -1
  5. package/dist/cjs/assets/locale/messages_es.json +27 -21
  6. package/dist/cjs/assets/locale/messages_fr.json +27 -21
  7. package/dist/cjs/assets/locale/messages_hi.json +6 -0
  8. package/dist/cjs/assets/locale/messages_id.json +27 -21
  9. package/dist/cjs/assets/locale/messages_it.json +27 -21
  10. package/dist/cjs/assets/locale/messages_ja.json +27 -21
  11. package/dist/cjs/assets/locale/messages_ko.json +28 -22
  12. package/dist/cjs/assets/locale/messages_nl.json +27 -21
  13. package/dist/cjs/assets/locale/messages_no.json +27 -21
  14. package/dist/cjs/assets/locale/messages_pl.json +27 -21
  15. package/dist/cjs/assets/locale/messages_pt.json +27 -21
  16. package/dist/cjs/assets/locale/messages_ru.json +27 -21
  17. package/dist/cjs/assets/locale/messages_sv.json +27 -21
  18. package/dist/cjs/assets/locale/messages_th.json +27 -21
  19. package/dist/cjs/assets/locale/messages_tr.json +27 -21
  20. package/dist/cjs/assets/locale/messages_uk.json +27 -21
  21. package/dist/cjs/assets/locale/messages_vi.json +27 -21
  22. package/dist/cjs/assets/locale/messages_zh.json +27 -21
  23. package/dist/cjs/index.js +5 -2
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/services/DataExtensionService/dataExtensionService.js +1 -2
  26. package/dist/cjs/services/DataExtensionService/dataExtensionService.js.map +1 -1
  27. package/dist/cjs/services/translations.js.map +1 -1
  28. package/dist/cjs/state/CollectionOptimisticActions.js +4 -2
  29. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  30. package/dist/cjs/state/DataExtensionState.js +36 -3
  31. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  32. package/dist/cjs/state/OptimisticActions.js.map +1 -1
  33. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js +13 -38
  34. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -1
  35. package/dist/cjs/types/DeepPartial.js +4 -0
  36. package/dist/cjs/types/DeepPartial.js.map +1 -0
  37. package/dist/esm/assets/locale/messages_cs.json +27 -21
  38. package/dist/esm/assets/locale/messages_da.json +27 -21
  39. package/dist/esm/assets/locale/messages_de.json +28 -22
  40. package/dist/esm/assets/locale/messages_en.json +7 -1
  41. package/dist/esm/assets/locale/messages_es.json +27 -21
  42. package/dist/esm/assets/locale/messages_fr.json +27 -21
  43. package/dist/esm/assets/locale/messages_hi.json +6 -0
  44. package/dist/esm/assets/locale/messages_id.json +27 -21
  45. package/dist/esm/assets/locale/messages_it.json +27 -21
  46. package/dist/esm/assets/locale/messages_ja.json +27 -21
  47. package/dist/esm/assets/locale/messages_ko.json +28 -22
  48. package/dist/esm/assets/locale/messages_nl.json +27 -21
  49. package/dist/esm/assets/locale/messages_no.json +27 -21
  50. package/dist/esm/assets/locale/messages_pl.json +27 -21
  51. package/dist/esm/assets/locale/messages_pt.json +27 -21
  52. package/dist/esm/assets/locale/messages_ru.json +27 -21
  53. package/dist/esm/assets/locale/messages_sv.json +27 -21
  54. package/dist/esm/assets/locale/messages_th.json +27 -21
  55. package/dist/esm/assets/locale/messages_tr.json +27 -21
  56. package/dist/esm/assets/locale/messages_uk.json +27 -21
  57. package/dist/esm/assets/locale/messages_vi.json +27 -21
  58. package/dist/esm/assets/locale/messages_zh.json +27 -21
  59. package/dist/esm/index.js +0 -2
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/esm/services/DataExtensionService/dataExtensionService.js +1 -2
  62. package/dist/esm/services/DataExtensionService/dataExtensionService.js.map +1 -1
  63. package/dist/esm/state/CollectionOptimisticActions.js +6 -2
  64. package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
  65. package/dist/esm/state/DataExtensionState.js +33 -2
  66. package/dist/esm/state/DataExtensionState.js.map +1 -1
  67. package/dist/esm/state/RangeFilterState/dateRangeUtils.js +12 -30
  68. package/dist/esm/state/RangeFilterState/dateRangeUtils.js.map +1 -1
  69. package/dist/esm/types/DeepPartial.js +2 -0
  70. package/dist/esm/types/DeepPartial.js.map +1 -0
  71. package/dist/types/index.d.ts +1 -0
  72. package/dist/types/index.d.ts.map +1 -1
  73. package/dist/types/services/DataExtensionService/dataExtensionService.d.ts +1 -1
  74. package/dist/types/services/DataExtensionService/dataExtensionService.d.ts.map +1 -1
  75. package/dist/types/services/translations.d.ts +10 -1
  76. package/dist/types/services/translations.d.ts.map +1 -1
  77. package/dist/types/state/CollectionOptimisticActions.d.ts +2 -2
  78. package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
  79. package/dist/types/state/DataExtensionState.d.ts +14 -0
  80. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  81. package/dist/types/state/OptimisticActions.d.ts +5 -0
  82. package/dist/types/state/OptimisticActions.d.ts.map +1 -1
  83. package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts +4 -14
  84. package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts.map +1 -1
  85. package/dist/types/types/DeepPartial.d.ts +4 -0
  86. package/dist/types/types/DeepPartial.d.ts.map +1 -0
  87. package/package.json +2 -2
@@ -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","_extensionPoint","extensionPoint","dataExtensionService","DataExtensionSchemaService","containsPii","defaultPermissions","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","_dataExtensionSchemasBase","observable","ref","_dataExtensionSchemas","userSchema","appSchemas","_upsertSchema","action","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","archiveField","id","origin","reportBi","biReporter","DataExtensionStateBIReporter","_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$xWixPi","customField","toCustomField","title","read","write","isPiiField","enabled","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","Boolean","_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","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","getSchemaAndFieldsByNamespace","_schema$jsonSchema","userFieldsNamespace","find","s","fields","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 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 { CustomFieldForm } from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { DataExtensionStateBIReporter } from './DataExtensionStateBIReporter';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\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 /**\n * When set to true, will disable \"Manage custom fields\" action in the page actions menu.\n */\n disableDefaultPageAction?: boolean;\n extensionPoint?: string;\n defaultPermissions?: DefaultPermissionsConfig;\n}\n\nexport const MAX_CUSTOM_FIELDS = 50;\n\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n _hasWritePermissions?: boolean;\n readonly closeSidePanel;\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 _dataExtensionSchemasBase: DataExtensionSchema[] = [];\n containsPii?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n readonly disableUserDefinedWriting;\n readonly filterable;\n\n _extensionPoint;\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.fqdn = params.fqdn;\n this._extensionPoint = params.extensionPoint;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\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 _dataExtensionSchemasBase: observable.ref,\n _dataExtensionSchemas: computed,\n userSchema: computed,\n appSchemas: computed,\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({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const biReporter = new DataExtensionStateBIReporter({\n reportBi,\n });\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 biReporter.reportArchiveTryAgain();\n this.archiveField({ id, origin, reportBi });\n },\n removeToastOnClick: true,\n },\n type: 'ERROR',\n biName: 'cairo-archive-custom-field-error-toast',\n });\n 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']?.enabled;\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 _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 || key,\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 permissions: schema['x-wix-permissions'],\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 return this.getAvailableCustomFieldsInSchema(properties, {\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n });\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: false,\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 { _dataExtensionSchemasBase } = this;\n\n const index = _dataExtensionSchemasBase.findIndex(\n (schema) => schema.namespace === newSchema?.namespace,\n );\n\n if (index === -1) {\n this._dataExtensionSchemasBase = [\n ..._dataExtensionSchemasBase,\n newSchema,\n ];\n } else {\n this._dataExtensionSchemasBase = _dataExtensionSchemasBase.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 _dataExtensionSchemas() {\n const { _extensionPoint, _dataExtensionSchemasBase } = this;\n return _dataExtensionSchemasBase.filter((s: DataExtensionSchema) =>\n _extensionPoint\n ? s.extensionPoint === _extensionPoint\n : s.extensionPoint == null || s.extensionPoint === 'ROOT',\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._dataExtensionSchemasBase = dataExtensionSchemas ?? [];\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","enableArchive","closeSidePanel","_extensionPoint","extensionPoint","dataExtensionService","DataExtensionSchemaService","containsPii","defaultPermissions","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","_dataExtensionSchemasBase","observable","ref","_dataExtensionSchemas","userSchema","appSchemas","_upsertSchema","action","isArchivedPanelOpen","openArchivedPanel","closeArchivedPanel","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","getArchiveSuccessToastMessage","fieldName","selectedField","getArchiveSuccessToastAction","text","uiType","onClick","_this$openArchivedPan","call","archiveField","id","origin","reportBi","biReporter","DataExtensionStateBIReporter","fieldValues","extractFieldValuesFromSchema","_this$container$showT","_this$container","dataExtensionSchema","archiveCustomField","schema","toastMessage","name","toastAction","showToast","message","type","biName","e","_this$container$showT2","_this$container2","reportArchiveTryAgain","removeToastOnClick","reportArchiveFieldFailed","formValues","fieldId","_customField$xWixPi","customField","toCustomField","title","read","write","isPiiField","enabled","readApps","readUsers","writeApps","writeUsers","toCustomType","key","Boolean","_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","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","getSchemaAndFieldsByNamespace","_schema$jsonSchema","userFieldsNamespace","find","s","fields","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 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 { CustomFieldForm } from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { DataExtensionStateBIReporter } from './DataExtensionStateBIReporter';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\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 /**\n * When set to true, will disable \"Manage custom fields\" action in the page actions menu.\n */\n disableDefaultPageAction?: boolean;\n extensionPoint?: string;\n defaultPermissions?: DefaultPermissionsConfig;\n /**\n * When set to true, will enable the \"Archived Fields\" button in the custom columns panel.\n */\n enableArchive?: boolean;\n}\n\nexport const MAX_CUSTOM_FIELDS = 50;\n\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n _hasWritePermissions?: boolean;\n readonly closeSidePanel;\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 _dataExtensionSchemasBase: DataExtensionSchema[] = [];\n containsPii?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n readonly disableUserDefinedWriting;\n readonly filterable;\n readonly enableArchive?: boolean;\n isArchivedPanelOpen: boolean = false;\n\n _extensionPoint;\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.enableArchive = params.enableArchive;\n this.closeSidePanel = params.closeSidePanel;\n this.fqdn = params.fqdn;\n this._extensionPoint = params.extensionPoint;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\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 _dataExtensionSchemasBase: observable.ref,\n _dataExtensionSchemas: computed,\n userSchema: computed,\n appSchemas: computed,\n _upsertSchema: action,\n containsPii: observable,\n defaultPermissions: observable,\n isArchivedPanelOpen: observable,\n openArchivedPanel: action,\n closeArchivedPanel: action,\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 getArchiveSuccessToastMessage(fieldName?: string): string {\n return this.enableArchive && fieldName\n ? this.container.translate(\n 'cairo.customFields.archive.success.toast.enabled',\n { selectedField: fieldName },\n )\n : this.container.translate('cairo.customFields.archive.success.toast');\n }\n\n getArchiveSuccessToastAction() {\n return this.enableArchive\n ? {\n text: this.container.translate(\n 'cairo.customFields.archive.success.toast.CTA',\n ),\n uiType: 'LINK' as const,\n onClick: () => this.openArchivedPanel?.(),\n }\n : undefined;\n }\n\n async archiveField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const biReporter = new DataExtensionStateBIReporter({\n reportBi,\n });\n if (id == null) {\n return;\n }\n const fieldValues = this.extractFieldValuesFromSchema(id);\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 const toastMessage = this.getArchiveSuccessToastMessage(\n fieldValues?.name,\n );\n const toastAction = this.getArchiveSuccessToastAction();\n\n this.container.showToast?.({\n message: toastMessage,\n action: toastAction,\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 biReporter.reportArchiveTryAgain();\n this.archiveField({ id, origin, reportBi });\n },\n removeToastOnClick: true,\n },\n type: 'ERROR',\n biName: 'cairo-archive-custom-field-error-toast',\n });\n biReporter.reportArchiveFieldFailed({\n formValues: fieldValues,\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']?.enabled;\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 _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 || key,\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 permissions: schema['x-wix-permissions'],\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 return this.getAvailableCustomFieldsInSchema(properties, {\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n });\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: false,\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 { _dataExtensionSchemasBase } = this;\n\n const index = _dataExtensionSchemasBase.findIndex(\n (schema) => schema.namespace === newSchema?.namespace,\n );\n\n if (index === -1) {\n this._dataExtensionSchemasBase = [\n ..._dataExtensionSchemasBase,\n newSchema,\n ];\n } else {\n this._dataExtensionSchemasBase = _dataExtensionSchemasBase.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 _dataExtensionSchemas() {\n const { _extensionPoint, _dataExtensionSchemasBase } = this;\n return _dataExtensionSchemasBase.filter((s: DataExtensionSchema) =>\n _extensionPoint\n ? s.extensionPoint === _extensionPoint\n : s.extensionPoint == null || s.extensionPoint === 'ROOT',\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._dataExtensionSchemasBase = dataExtensionSchemas ?? [];\n });\n }\n }\n\n openArchivedPanel() {\n if (this.enableArchive) {\n this.isArchivedPanelOpen = true;\n }\n }\n\n closeArchivedPanel() {\n this.isArchivedPanelOpen = false;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/state/OptimisticActions.ts"],"sourcesContent":["import { ToastConfig } from '../model';\nimport { EventuallyUpdated } from './CollectionOptimisticExecutor';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @deprecated Use the prop `errorToast={(err, {retry}) => { action:{onClick: () {retry();} }}}` instead.\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n updateServerAfter?: EventuallyUpdated;\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[] | null | undefined | void>;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface OptimisticActions<T> {\n createOne(item: T, params: CreateManyParams<T>): void;\n createMany(items: T[], params: CreateManyParams<T>): void;\n\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>): void;\n updateOne<R>(item: T, params: UpdateManyParams<T, R>): void;\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>): void;\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>): void;\n deleteAll<R>(params: UpdateAllParams<R>): void;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/state/OptimisticActions.ts"],"sourcesContent":["import { ToastConfig } from '../model';\nimport { EventuallyUpdated } from './CollectionOptimisticExecutor';\nimport { DeepPartial } from '../types/DeepPartial';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @deprecated Use the prop `errorToast={(err, {retry}) => { action:{onClick: () {retry();} }}}` instead.\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n updateServerAfter?: EventuallyUpdated;\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[] | null | undefined | void>;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n\n /**\n * Partial data to patch the items with.\n */\n patch?: DeepPartial<T>;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface OptimisticActions<T> {\n createOne(item: T, params: CreateManyParams<T>): void;\n createMany(items: T[], params: CreateManyParams<T>): void;\n\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>): void;\n updateOne<R>(item: T, params: UpdateManyParams<T, R>): void;\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>): void;\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>): void;\n deleteAll<R>(params: UpdateAllParams<R>): void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
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;
4
+ exports.shouldRenderPresetTag = exports.presetToDaysAmount = exports.getDatesFromPreset = exports.MAP_DATE_PRESET_TO_KEY = exports.DefaultDateRangePreset = exports.DateRangePreset = void 0;
5
5
  const DateRangePreset = exports.DateRangePreset = {
6
6
  NONE: 'NONE',
7
7
  SEVEN_DAYS: 'SEVEN_DAYS',
@@ -14,6 +14,18 @@ const DateRangePreset = exports.DateRangePreset = {
14
14
  NEXT_THIRTY_DAYS: 'NEXT_THIRTY_DAYS',
15
15
  CUSTOM: 'CUSTOM'
16
16
  };
17
+ const MAP_DATE_PRESET_TO_KEY = exports.MAP_DATE_PRESET_TO_KEY = {
18
+ [DateRangePreset.NONE]: 'cairo.filtersPanel.date.none',
19
+ [DateRangePreset.SEVEN_DAYS]: 'cairo.filtersPanel.date.7days',
20
+ [DateRangePreset.FOURTEEN_DAYS]: 'cairo.filtersPanel.date.14days',
21
+ [DateRangePreset.MONTH]: 'cairo.filtersPanel.date.lastMonth',
22
+ [DateRangePreset.CUSTOM]: 'cairo.filtersPanel.date.custom',
23
+ [DateRangePreset.TODAY]: 'cairo.filtersPanel.date.today',
24
+ [DateRangePreset.TOMORROW]: 'cairo.filtersPanel.date.tomorrow',
25
+ [DateRangePreset.NEXT_THREE_DAYS]: 'cairo.filtersPanel.date.next3Days',
26
+ [DateRangePreset.NEXT_SEVEN_DAYS]: 'cairo.filtersPanel.date.next7Days',
27
+ [DateRangePreset.NEXT_THIRTY_DAYS]: 'cairo.filtersPanel.date.next30Days'
28
+ };
17
29
  const DefaultDateRangePreset = exports.DefaultDateRangePreset = {
18
30
  NONE: 'NONE',
19
31
  SEVEN_DAYS: 'SEVEN_DAYS',
@@ -21,31 +33,6 @@ const DefaultDateRangePreset = exports.DefaultDateRangePreset = {
21
33
  MONTH: 'MONTH',
22
34
  CUSTOM: 'CUSTOM'
23
35
  };
24
- const getDateRangeLabel = (item, {
25
- dateFormatters
26
- }) => {
27
- return [item.from, item.to].filter(Boolean).map(date => dateFormatters.mediumTime.format(date)).join(' - ');
28
- };
29
- const renderPresetToolbarTag = container => filter => {
30
- const {
31
- translate: t,
32
- dateFormatters
33
- } = container;
34
- const {
35
- preset
36
- } = filter;
37
- if (!preset || !presetToDaysAmount[preset]) {
38
- return {
39
- children: getDateRangeLabel(filter, {
40
- dateFormatters
41
- })
42
- };
43
- }
44
- return {
45
- children: t(MAP_DATE_PRESET_TO_KEY[preset])
46
- };
47
- };
48
- exports.renderPresetToolbarTag = renderPresetToolbarTag;
49
36
  const shouldRenderPresetTag = preset => preset && Object.values(DateRangePreset).includes(preset) && preset !== DateRangePreset.NONE && preset !== DateRangePreset.CUSTOM;
50
37
  exports.shouldRenderPresetTag = shouldRenderPresetTag;
51
38
  const presetToDaysAmount = exports.presetToDaysAmount = {
@@ -121,16 +108,4 @@ const getDatesFromPreset = preset => {
121
108
  };
122
109
  };
123
110
  exports.getDatesFromPreset = getDatesFromPreset;
124
- const MAP_DATE_PRESET_TO_KEY = exports.MAP_DATE_PRESET_TO_KEY = {
125
- [DateRangePreset.NONE]: 'cairo.filtersPanel.date.none',
126
- [DateRangePreset.SEVEN_DAYS]: 'cairo.filtersPanel.date.7days',
127
- [DateRangePreset.FOURTEEN_DAYS]: 'cairo.filtersPanel.date.14days',
128
- [DateRangePreset.MONTH]: 'cairo.filtersPanel.date.lastMonth',
129
- [DateRangePreset.CUSTOM]: 'cairo.filtersPanel.date.custom',
130
- [DateRangePreset.TODAY]: 'cairo.filtersPanel.date.today',
131
- [DateRangePreset.TOMORROW]: 'cairo.filtersPanel.date.tomorrow',
132
- [DateRangePreset.NEXT_THREE_DAYS]: 'cairo.filtersPanel.date.next3Days',
133
- [DateRangePreset.NEXT_SEVEN_DAYS]: 'cairo.filtersPanel.date.next7Days',
134
- [DateRangePreset.NEXT_THIRTY_DAYS]: 'cairo.filtersPanel.date.next30Days'
135
- };
136
111
  //# sourceMappingURL=dateRangeUtils.js.map
@@ -1 +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","getDateRangeLabel","item","dateFormatters","from","to","filter","Boolean","map","date","mediumTime","format","join","renderPresetToolbarTag","container","translate","t","preset","presetToDaysAmount","children","MAP_DATE_PRESET_TO_KEY","shouldRenderPresetTag","Object","values","includes","days","months","getDatesFromPreset","today","Date","presetDiff","undefined","fromDate","getTime","years","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","setHours"],"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 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) => dateFormatters.mediumTime.format(date))\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]: {\n months?: number;\n days?: number;\n years?: number;\n };\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 // tomorrow preset is the ony preset which does not include today\n if (preset === DateRangePreset.TOMORROW) {\n today.setDate(today.getDate() + days);\n }\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 today.setHours(0, 0, 0, 0);\n fromDate.setHours(23, 59, 59, 999);\n return { from: today, to: fromDate, preset };\n }\n\n fromDate.setHours(0, 0, 0, 0);\n today.setHours(23, 59, 59, 999);\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 DateRangeOptions = DateRangePredefinedPresetOptions[];\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DateRangePreset","exports","NONE","SEVEN_DAYS","FOURTEEN_DAYS","MONTH","TODAY","TOMORROW","NEXT_THREE_DAYS","NEXT_SEVEN_DAYS","NEXT_THIRTY_DAYS","CUSTOM","MAP_DATE_PRESET_TO_KEY","DefaultDateRangePreset","shouldRenderPresetTag","preset","Object","values","includes","presetToDaysAmount","days","months","getDatesFromPreset","today","Date","presetDiff","undefined","from","to","fromDate","getTime","years","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","setHours"],"sources":["../../../../src/state/RangeFilterState/dateRangeUtils.ts"],"sourcesContent":["import { RangeItem } from './RangeFilterState';\nimport { 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 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 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\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]: {\n months?: number;\n days?: number;\n years?: number;\n };\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 // tomorrow preset is the ony preset which does not include today\n if (preset === DateRangePreset.TOMORROW) {\n today.setDate(today.getDate() + days);\n }\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 today.setHours(0, 0, 0, 0);\n fromDate.setHours(23, 59, 59, 999);\n return { from: today, to: fromDate, preset };\n }\n\n fromDate.setHours(0, 0, 0, 0);\n today.setHours(23, 59, 59, 999);\n return { from: fromDate, to: today, preset };\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 DateRangeOptions = DateRangePredefinedPresetOptions[];\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=DeepPartial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/types/DeepPartial.ts"],"sourcesContent":["export type DeepPartial<T> = T extends object\n ? T extends (infer U)[]\n ? DeepPartial<U>[]\n : { [P in keyof T]?: DeepPartial<T[P]> }\n : T;\n"],"mappings":"","ignoreList":[]}
@@ -19,7 +19,7 @@
19
19
  "cairo.emptyState.filters.nothingFound.title": "Nebyly nalezeny žádné položky",
20
20
  "cairo.connection.error.text": "Zkontrolujte připojení a zkuste to znovu.",
21
21
  "cairo.table.summaryBar.loadError.cta": "Reload",
22
- "cairo.customFields.archive.modal.description.enabled": "This field and its collected information will be archived and can be restored anytime.",
22
+ "cairo.customFields.archive.modal.description.enabled": "Toto pole a jeho shromážděné informace budou archivovány a bude možné je kdykoli obnovit.",
23
23
  "cairo.filtersPanel.numRange.maxRange.consumer.error": "{maxAmount, plural, one {Hodnota musí být 1 nebo méně.} few {Hodnota musí být {maxAmount,number} nebo méně.} many {Hodnota musí být {maxAmount,number} nebo méně.} other {Hodnota musí být {maxAmount,number} nebo méně.}}",
24
24
  "cairo.tags.tagsWidget.emptyState.body.asLabels": "Štítky vám pomáhají filtrovat výsledky hledání a organizovat položky.",
25
25
  "cairo.table.saveView.button": "Uložit zobrazení",
@@ -67,7 +67,7 @@
67
67
  "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "Nastavení PII nelze později změnit.",
68
68
  "cairo.tags.popover.assignFolder.tooltip": "Tagy nelze přiřadit ke složkám.",
69
69
  "cairo.customFields.fieldType.date.invalid.value": "Zadejte datum v tomto formátu: {dateFormat}",
70
- "cairo.archivedFields.more-actions.tooltip": "More actions",
70
+ "cairo.archivedFields.more-actions.tooltip": "Další akce",
71
71
  "cairo.customFields.fieldType.dropdownList.placeholder": "Např. Itálie",
72
72
  "cairo.filtersPanel.numRange.maxRange.error": "Hodnota „Do“ musí být větší než hodnota „Od“.",
73
73
  "cairo.errorHandler.requestID.tooltip.cta": "Kopírovat ID",
@@ -86,11 +86,12 @@
86
86
  "cairo.emptyState.additem.text": "Až budete mít nějaké položky, zobrazí se zde.",
87
87
  "cairo.customFields.maxFields.tooltip": "Můžete mít max. {max} vlastních polí.",
88
88
  "cairo.bulkActions.max.selection": "{total, plural, one {Vybráno 1 (max {max})} few {Vybráno {total,number} (max {max})} many {Vybráno {total,number} (max {max})} other {Vybráno {total,number} (max {max})}}",
89
- "cairo.customFields.delete.modal.title": "Delete {selectedField}",
89
+ "cairo.customFields.delete.modal.title": "Odstranit {selectedField}",
90
90
  "cairo.filtersPanel.time.title": "Čas",
91
91
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Tento tag již existuje.",
92
+ "cairo.customFields.restore.error.toast.CTA": "Zkusit znovu",
92
93
  "cairo.filtersPanel.date.next7Days": "Příštích 7 dní",
93
- "cairo.customFields.deleted.success.toast": "{selectedField} was deleted.",
94
+ "cairo.customFields.deleted.success.toast": "Pole {selectedField} bylo odstraněno.",
94
95
  "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, one {Nemůžete mít více než 1 dílčí úroveň.} few {Nemůžete mít více než {subCatsAmount,number} dílčí úrovně.} many {Nemůžete mít více než {subCatsAmount,number} dílčích úrovní.} other {Nemůžete mít více než {subCatsAmount,number} dílčích úrovní.}}",
95
96
  "cairo.sortableColumns.notification.undo": "Zpět",
96
97
  "cairo.filtersPanel.saveView.button": "Uložit zobrazení",
@@ -109,7 +110,7 @@
109
110
  "cairo.customFields.updateDataExtension.removing-fields-not-allowed.error": "Tuto položku nelze odstranit.",
110
111
  "cairo.customFields.showAll.button": "Vše",
111
112
  "cairo.customFields.successToast": "Vlastní pole bylo přidáno.",
112
- "cairo.customFields.archive.modal.title.enabled": "Archive {selectedField}?",
113
+ "cairo.customFields.archive.modal.title.enabled": "Archivovat {selectedField}?",
113
114
  "cairo.customFields.addCustomField.modal.subtitle.note": "Upozorňujeme, že toto pole bude přidáno do všech vašich položek.",
114
115
  "cairo.entityPage.widgetError.TPAconnectionFail.CTA": "Obnovit oddíl",
115
116
  "cairo.dragAndDrop.error.toast": "Změny, které jste v pořadí položek provedli, se nepodařilo kvůli technickým potížím uložit.",
@@ -146,13 +147,14 @@
146
147
  "cairo.dragAndDrop.reorder-cancelled.sr": "Přetáhnutí bylo zrušeno",
147
148
  "cairo.appliedFilters.discardChanges.description": "Vybrané filtry nebudou na toto zobrazení použity.",
148
149
  "cairo.customFields.addCustomField.modal.advancedSettings.write": "Zápis",
149
- "cairo.archivedFields.more-actions.delete": "Delete",
150
+ "cairo.archivedFields.more-actions.delete": "Odstranit",
150
151
  "cairo.pickerModal.back.button": "Zpět",
151
- "cairo.customFields.deleted.undo.CTA": "Undo",
152
+ "cairo.customFields.deleted.undo.CTA": "Vrátit zpět",
152
153
  "cairo.manageView.Delete.disabled.predefinedView.tooltip": "Toto zobrazení nelze odstranit.",
153
154
  "cairo.tags.manageTags.modal.toast.delete.success": "Tag byl odstraněn.",
154
155
  "cairo.noViewName.validationTooltip": "Pokud chcete uložit zobrazení, musíte zadat jeho název.",
155
156
  "cairo.emptyState.subtitle.nothingMatches": "Vámi hledaný termín „{term}“ se nám nepodařilo najít.",
157
+ "cairo.customFields.restore.error.toast": "Pole {selectedField} nebylo obnoveno.",
156
158
  "cairo.filtersPanel.date.lastMonth": "Poslední měsíc",
157
159
  "cairo.dragAndDrop.reorderMode.toolbar.cancel.cta": "Zpět",
158
160
  "cairo.table.advanced-sorting.disabled.cta.tooltip": "Přidali jste všechny sloupce.",
@@ -185,7 +187,7 @@
185
187
  "cairo.export.tryAgain": "Zkusit znovu",
186
188
  "cairo.sortableColumns.modal.title": "Třídit seznam podle {columnTitle}?",
187
189
  "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Osobní údaje (PII)",
188
- "cairo.customFields.delete.modal.cancel.CTA": "Cancel",
190
+ "cairo.customFields.delete.modal.cancel.CTA": "Zpět",
189
191
  "cairo.dragAndDrop.leaveSite.modal.description": "Změny v pořadí položek nemusí být uloženy.",
190
192
  "cairo.table.deleteViewModal.deleteBody": "Jakmile odstraníte zobrazení „{viewName}“, nebudete jej moct obnovit.",
191
193
  "cairo.export.allItems": "Vše",
@@ -193,7 +195,7 @@
193
195
  "cairo.tags.bulkItemUpdate.updatingTags.toast.asLabels": "Aktualizace štítků…",
194
196
  "cairo.search.noresults.title": "Nebyly nalezeny žádné výsledky",
195
197
  "cairo.table.summaryBar.list.item": "{title}: <value>{value}</value>",
196
- "cairo.customFields.delete.modal.description": "{selectedField} and its information will be permanently deleted and can’t be restored. ",
198
+ "cairo.customFields.delete.modal.description": "Pole {selectedField} a související informace budou trvale odstraněny a nebude možné je obnovit. ",
197
199
  "cairo.tags.applyChanges.toast.success": "Tagy byly aktualizovány.",
198
200
  "cairo.bulkSelected": "{num, plural, one {Vybráno {num,number}} few {Vybrány {num,number}} many {Vybráno {num,number}} other {Vybráno {num,number}}}",
199
201
  "cairo.customFields.fieldType.numberInteger.Name.placeholder": "např. Věk",
@@ -250,6 +252,7 @@
250
252
  "cairo.filtersPanel.numRange.minRange.error": "Hodnota „Od“ musí být menší než hodnota „Do“.",
251
253
  "cairo.tags.collectionPage.tagsColumn.emptyState.body.asLabels": "Štítky vám pomáhají filtrovat a organizovat položky.",
252
254
  "cairo.customFields.addCustomField.modal.advancedSettings.key.placeholder": "Klíč pole",
255
+ "cairo.customFields.archive.error.toast.CTA": "Zkusit znovu",
253
256
  "cairo.tags.manageTags.modal.toast.delete.error.asLabels": "Nelze odstranit štítek.",
254
257
  "cairo.manageView.Rename.modal.cancel.CTA": "Zpět",
255
258
  "cairo.filtersPanel.default.All": "Vše",
@@ -260,7 +263,7 @@
260
263
  "cairo.tags.applyChanges.toast.undo.CTA": "Vrátit zpět",
261
264
  "cairo.manageView.Rename.modal.field.title": "Název",
262
265
  "cairo.dragAndDrop.discardChanges.title": "Zahodit změny?",
263
- "cairo.archivedFields.subtitle": "Restore or delete archived fields and their information.",
266
+ "cairo.archivedFields.subtitle": "Obnovte nebo odstraňte archivovaná pole a jejich informace.",
264
267
  "cairo.customFields.fieldType.checkbox": "Zaškrtávací políčko",
265
268
  "cairo.fieldValidation.minCharacter": "{charMin, plural, one {Zadejte minimálně 1 znak včetně mezer.} few {Zadejte minimálně {charMin,number} znaky včetně mezer.} many {Zadejte minimálně {charMin,number} znaků včetně mezer.} other {Zadejte minimálně {charMin,number} znaků včetně mezer.}}",
266
269
  "cairo.tags.tagsWidget.input.placeholder.asLabels": "Zadejte nový název štítku",
@@ -310,7 +313,7 @@
310
313
  "cairo.page.loadError.failedState.title": "Stránku se nepodařilo načíst",
311
314
  "cairo.bulkSelected.selectUpTo": "Vyberte až {max} položek.",
312
315
  "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Chraňte osobní údaje umožňující identifikaci (PII), jako jsou například adresy nebo údaje o pasu pomocí dodatečné vrstvy ochrany. <linkVal>Proč je to důležité?</linkVal>",
313
- "cairo.table.custom-columns.section-divider": "Archived fields",
316
+ "cairo.table.custom-columns.section-divider": "Archivovaná pole",
314
317
  "cairo.manageView.saveChanges.CTA": "Uložit změny",
315
318
  "cairo.customFields.archive.CTA": "Archivovat",
316
319
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -336,6 +339,7 @@
336
339
  "cairo.tags.tagsWidget.subtitle": "Tagy vám pomáhají filtrovat a zachovávat pořádek.",
337
340
  "cairo.customFields.archive.modal.CTA": "Archivovat",
338
341
  "cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.tooltip": "Umožněte návštěvníkům webu zobrazovat nebo upravovat vstup tohoto pole. ",
342
+ "cairo.customFields.delete.error.toast.CTA": "Zkusit znovu",
339
343
  "cairo.export.exportFailed": "Export se nezdařil",
340
344
  "cairo.export.filteredItems": "Filtrováno",
341
345
  "cairo.customFields.addCustomField.modal.subtitle": "Shromažďujte a ukládejte další informace pomocí vlastních polí.",
@@ -345,7 +349,7 @@
345
349
  "cairo.dragAndDrop.leaveSite.modal.leave.CTA": "Odejít",
346
350
  "cairo.dragAndDrop.reorderMode.discardChanges.cancel.CTA": "Zpět",
347
351
  "cairo.customFields.maxLimit.modal.cta": "Ok",
348
- "cairo.archivedFields.back.manage-custom-fields.tooltip": "Back to Manage Custom Fields",
352
+ "cairo.archivedFields.back.manage-custom-fields.tooltip": "Zpět na správu vlastních polí",
349
353
  "cairo.table.deleteViewModal.cancelButton": "Zpět",
350
354
  "cairo.clear": "Vymazat",
351
355
  "cairo.emptyState.subtitle.nothingMatchesCriteria": "Podle zadaných kritérií se nám nepodařilo nic najít.",
@@ -360,7 +364,7 @@
360
364
  "cairo.dragAndDrop.reorderMode.discardChanges.applyAndClose.CTA": "Discard",
361
365
  "cairo.tags.collectionPage.popover.emptyState.search.placeholder.asLabels": "Zadejte nový název štítku",
362
366
  "cairo.search.nothingMatches.title": "Žádné výsledky pro „{term}“",
363
- "cairo.custom-columns.more-actions.tooltip": "More actions",
367
+ "cairo.custom-columns.more-actions.tooltip": "Další akce",
364
368
  "cairo.customFields.editCustomField.fieldKey.tooltip": "Tento klíč se použije ve vašem kódu. Nelze jej změnit.",
365
369
  "cairo.tags.manageTags.modal.toast.create.success.asLabels": "Štítek byl vytvořen.",
366
370
  "cairo.table.advanced-sorting.dragAndDrop.tooltip": "Změní pořadí třídění sloupců. Pořadí sloupců v tabulce nebude ovlivněno.",
@@ -393,7 +397,7 @@
393
397
  "cairo.table.summaryBar.loadError": "Couldn't load summary row.",
394
398
  "cairo.tags.tagsWidget.title": "Tagy",
395
399
  "cairo.customFields.entityPage.emptyState.subtitle": "Zde se zobrazí uživatelská pole, pokud jej uživatelé vyplní.",
396
- "cairo.archivedFields.title": "Archived fields",
400
+ "cairo.archivedFields.title": "Archivovaná pole",
397
401
  "cairo.searchPlaceholder": "Hledat...",
398
402
  "cairo.tags.manageTags.modal.deleteModal.title": "Odstranit tento tag?",
399
403
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps.tooltip": "Umožněte aplikacím z App Marketu čtení nebo zápis vstupu tohoto pole.",
@@ -456,9 +460,9 @@
456
460
  "cairo.customFields.archive.modal.description": "Toto pole a informace, které v něm byly shromážděny, budou archivovány a nelze je obnovit.",
457
461
  "cairo.emptyState.premium.title": "Upgradujte pomocí plánu",
458
462
  "cairo.fieldValidation.maxNumber": "{maxAmount, plural, one {Zadejte hodnotu 1 nebo méně.} few {Zadejte hodnotu {maxAmount,number} nebo méně.} many {Zadejte hodnotu {maxAmount,number} nebo méně.} other {Zadejte hodnotu {maxAmount,number} nebo méně.}}",
459
- "cairo.customFields.delete.modal.delete.CTA": "Delete",
463
+ "cairo.customFields.delete.modal.delete.CTA": "Odstranit",
460
464
  "cairo.customFields.fieldType.numberDecimal": "Číslo (desetinné)",
461
- "cairo.customFields.archive.success.toast.enabled": "{selectedField} was archived.\n",
465
+ "cairo.customFields.archive.success.toast.enabled": "Pole „{selectedField} bylo archivováno.\n",
462
466
  "cairo.manageView.saveView.error.toast": "Vaše zobrazení nebylo kvůli technickým potížím uloženo.",
463
467
  "cairo.table.noFiltersApplied.label": "Není použit žádný filtr",
464
468
  "cairo.manageView.saveNewView.CTA": "Uložit jako nové zobrazení",
@@ -472,7 +476,7 @@
472
476
  "cairo.folders.showLess.button": "Méně",
473
477
  "cairo.connection.error.title": "Vypadá to, že jste offline",
474
478
  "cairo.filtersPanel.date.tomorrow": "Zítra",
475
- "cairo.customFields.restored.success.toast": "{selectedField} was restored.",
479
+ "cairo.customFields.restored.success.toast": "Pole „{selectedField} bylo obnoveno.",
476
480
  "cairo.appliedFilters.selected": "{num, plural, =0 {Nebyly vybrány žádné filtry} one {Byl vybrán jeden filtr} few {Byly vybrány {num,number} filtry} many {Bylo vybráno {num,number} filtrů} other {Bylo vybráno {num,number} filtrů}}",
477
481
  "cairo.filtersPanel.date.none": "Vše",
478
482
  "cairo.saveViewModal.cancelButton": "Zpět",
@@ -492,6 +496,7 @@
492
496
  "cairo.customFields.updateDataExtension.changing-fields-not-allowed.error": "Některé informace mají nesprávný nebo neplatný formát.",
493
497
  "cairo.export.cancelMessage": "Export nebyl dokončen a vaše data nebudou stažena.",
494
498
  "cairo.customFields.archive.success.toast": "Vaše vlastní pole bylo archivováno.",
499
+ "cairo.customFields.delete.error.toast": "Pole {selectedField} nebylo odstraněno.",
495
500
  "cairo.tags.collectionPage.popover.create.CTA": "Vytvořit „{tagName}“",
496
501
  "cairo.entityPage.header.save.CTA": "Uložit",
497
502
  "cairo.search.filter.nothingMatches.text": "Zkuste nové hledání nebo změňte filtry.",
@@ -500,7 +505,7 @@
500
505
  "cairo.customFields.fieldType.url": "URL",
501
506
  "cairo.filtersPanel.numRange.min-from": "Od",
502
507
  "cairo.tags.bulkItemUpdate.toast.success": "Tagy byly aktualizovány.",
503
- "cairo.customFields.archive.success.toast.CTA": "View Archived Fields",
508
+ "cairo.customFields.archive.success.toast.CTA": "Zobrazit archivovaná pole",
504
509
  "cairo.customFields.maxFields": "Můžete přidat až 10 vlastních polí.",
505
510
  "cairo.offline": "Momentálně jste offline.",
506
511
  "cairo.table.custom-columns.dragAndDrop.search-placeholder": "Hledat sloupce...",
@@ -521,7 +526,7 @@
521
526
  "cairo.tags.collectionPage.toast.update.error": "Tagy nelze aktualizovat kvůli technickým potížím na naší straně.",
522
527
  "cairo.tags.bulkItemUpdate.toast.error": "{total, plural, one {1 tag nebylo možné aktualizovat kvůli technickým potížím.} few {{total,number} tagy nebylo možné aktualizovat kvůli technickým potížím.} many {{total,number} tagů nebylo možné aktualizovat kvůli technickým potížím.} other {{total,number} tagů nebylo možné aktualizovat kvůli technickým potížím.}}",
523
528
  "cairo.tags.bulkItemUpdate.updatingModal.body": "To může chvíli trvat. Ponechte tuto záložku otevřenou, dokud nebude aktualizace dokončena. ",
524
- "cairo.archivedFields.more-actions.restore": "Restore",
529
+ "cairo.archivedFields.more-actions.restore": "Obnovit",
525
530
  "cairo.tags.tagsWidget.add.CTA": "Přiřadit tagy",
526
531
  "cairo.table.clearFilters.button": "Vymazat vše",
527
532
  "cairo.table.gridView": "Mřížka",
@@ -549,10 +554,11 @@
549
554
  "cairo.add-image.tooltip": "Přidat obrázek",
550
555
  "cairo.customFields.maxLimit.modal.title": "Dosáhli jste limitu vlastních polí",
551
556
  "cairo.manageView.setAsDefault.tooltip": "Chcete-li toto zobrazení nastavit jako výchozí, uložte změny nebo jej uložte jako nové zobrazení.",
552
- "cairo.archivedFields.back.custom-columns.tooltip": "Back to Customize Columns",
557
+ "cairo.archivedFields.back.custom-columns.tooltip": "Zpět na přizpůsobení sloupců",
553
558
  "cairo.tags.collectionPage.popover.search.placeholder": "Vyhledat tagy…",
554
559
  "cairo.export.sessionExpiredMessage": "Vaše relace vypršela. Obnovte stránku a přihlaste se znovu.",
555
560
  "cairo.tags.collectionPage.applyChanges.CTA": "Použít",
561
+ "cairo.customFields.archive.error.toast": "Pole {selectedField} nebylo archivováno.",
556
562
  "cairo.customFields.addCustomField.modal.fieldName.placeholder": "Zadejte název",
557
563
  "cairo.a11y.liveRegion.resultsFound": "{num, plural, =0 {Nebyly nalezeny žádné výsledky} one {Byl nalezen 1 výsledek} few {Byly nalezeny {num,number} výsledky} many {Bylo nalezeno {num,number} výsledků} other {Bylo nalezeno {num,number} výsledků}}",
558
564
  "cairo.customFields.entityPage.sectionTitle": "Vaše vlastní pole",
@@ -579,7 +585,7 @@
579
585
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Instalované aplikace",
580
586
  "cairo.export.successMessage": "Váš soubor se právě stahuje. Nefunguje to?",
581
587
  "cairo.downloadable-url.error.generic": "Při stahování souboru se vyskytly potíže.",
582
- "cairo.table.mobile.more.button": "More",
588
+ "cairo.table.mobile.more.button": "Akce",
583
589
  "cairo.customFields.entityPage.subtitle": "Použijte vlastní pole k ukládání a shromažďování více informací.",
584
590
  "cairo.manageView.setAsDefault.success.toast": "Zobrazení „{viewName}“ bylo nastaveno jako výchozí.",
585
591
  "cairo.dropdownSearch.filters.emptyState": "Pro tento filtr nebyly nalezeny žádné položky.",