@wix/bex-core 2.329.0 → 2.331.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/visual-e2e-locale/messages_visuale2e.json +1 -0
- package/dist/cjs/hooks/useImport.js +2 -0
- package/dist/cjs/hooks/useImport.js.map +1 -1
- package/dist/cjs/hooks/useImportConfig.js.map +1 -1
- package/dist/cjs/index.js +5 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/DataExtensionFieldOperationsService.js +3 -3
- package/dist/cjs/services/DataExtensionFieldOperationsService.js.map +1 -1
- package/dist/cjs/state/ArchiveFieldModalState.js +5 -8
- package/dist/cjs/state/ArchiveFieldModalState.js.map +1 -1
- package/dist/cjs/state/CustomFieldModalBiReporter.js +5 -9
- package/dist/cjs/state/CustomFieldModalBiReporter.js.map +1 -1
- package/dist/cjs/state/CustomFieldModalState.js +32 -71
- package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
- package/dist/cjs/state/DataExtensionState.js +0 -12
- package/dist/cjs/state/DataExtensionState.js.map +1 -1
- package/dist/cjs/state/DeleteFieldModalState.js +9 -11
- package/dist/cjs/state/DeleteFieldModalState.js.map +1 -1
- package/dist/cjs/state/{DataExtensionStateBIReporter.js → FieldOperationsBIReporter.js} +7 -32
- package/dist/cjs/state/FieldOperationsBIReporter.js.map +1 -0
- package/dist/cjs/state/ImportState/ImportState.js +47 -3
- package/dist/cjs/state/ImportState/ImportState.js.map +1 -1
- package/dist/cjs/state/ImportState/__tests__/ImportState.engine.spec.js +139 -0
- package/dist/cjs/state/ImportState/__tests__/ImportState.engine.spec.js.map +1 -1
- package/dist/cjs/state/formatPermissionsForBi.js +36 -0
- package/dist/cjs/state/formatPermissionsForBi.js.map +1 -0
- package/dist/cjs/types/FieldsSource.js +4 -0
- package/dist/cjs/types/FieldsSource.js.map +1 -0
- package/dist/cjs/types/Schema.js.map +1 -1
- package/dist/cjs/types/SchemaSource.js +81 -0
- package/dist/cjs/types/SchemaSource.js.map +1 -0
- package/dist/esm/assets/visual-e2e-locale/messages_visuale2e.json +1 -0
- package/dist/esm/hooks/useImport.js +2 -1
- package/dist/esm/hooks/useImport.js.map +1 -1
- package/dist/esm/hooks/useImportConfig.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/services/DataExtensionFieldOperationsService.js +3 -3
- package/dist/esm/services/DataExtensionFieldOperationsService.js.map +1 -1
- package/dist/esm/state/ArchiveFieldModalState.js +4 -7
- package/dist/esm/state/ArchiveFieldModalState.js.map +1 -1
- package/dist/esm/state/CustomFieldModalBiReporter.js +5 -8
- package/dist/esm/state/CustomFieldModalBiReporter.js.map +1 -1
- package/dist/esm/state/CustomFieldModalState.js +28 -52
- package/dist/esm/state/CustomFieldModalState.js.map +1 -1
- package/dist/esm/state/DataExtensionState.js +0 -10
- package/dist/esm/state/DataExtensionState.js.map +1 -1
- package/dist/esm/state/DeleteFieldModalState.js +7 -10
- package/dist/esm/state/DeleteFieldModalState.js.map +1 -1
- package/dist/esm/state/{DataExtensionStateBIReporter.js → FieldOperationsBIReporter.js} +5 -25
- package/dist/esm/state/FieldOperationsBIReporter.js.map +1 -0
- package/dist/esm/state/ImportState/ImportState.js +43 -3
- package/dist/esm/state/ImportState/ImportState.js.map +1 -1
- package/dist/esm/state/ImportState/__tests__/ImportState.engine.spec.js +89 -0
- package/dist/esm/state/ImportState/__tests__/ImportState.engine.spec.js.map +1 -1
- package/dist/esm/state/formatPermissionsForBi.js +26 -0
- package/dist/esm/state/formatPermissionsForBi.js.map +1 -0
- package/dist/esm/types/FieldsSource.js +2 -0
- package/dist/esm/types/FieldsSource.js.map +1 -0
- package/dist/esm/types/SchemaSource.js +52 -0
- package/dist/esm/types/SchemaSource.js.map +1 -0
- package/dist/types/hooks/useImport.d.ts +11 -2
- package/dist/types/hooks/useImport.d.ts.map +1 -1
- package/dist/types/hooks/useImportConfig.d.ts +13 -2
- package/dist/types/hooks/useImportConfig.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/state/ArchiveFieldModalState.d.ts +7 -5
- package/dist/types/state/ArchiveFieldModalState.d.ts.map +1 -1
- package/dist/types/state/CustomFieldModalBiReporter.d.ts +4 -3
- package/dist/types/state/CustomFieldModalBiReporter.d.ts.map +1 -1
- package/dist/types/state/CustomFieldModalState.d.ts +12 -6
- package/dist/types/state/CustomFieldModalState.d.ts.map +1 -1
- package/dist/types/state/DataExtensionState.d.ts +0 -2
- package/dist/types/state/DataExtensionState.d.ts.map +1 -1
- package/dist/types/state/DeleteFieldModalState.d.ts +8 -5
- package/dist/types/state/DeleteFieldModalState.d.ts.map +1 -1
- package/dist/types/state/{DataExtensionStateBIReporter.d.ts → FieldOperationsBIReporter.d.ts} +4 -5
- package/dist/types/state/FieldOperationsBIReporter.d.ts.map +1 -0
- package/dist/types/state/ImportState/ImportState.d.ts +32 -4
- package/dist/types/state/ImportState/ImportState.d.ts.map +1 -1
- package/dist/types/state/formatPermissionsForBi.d.ts +7 -0
- package/dist/types/state/formatPermissionsForBi.d.ts.map +1 -0
- package/dist/types/types/FieldsSource.d.ts +116 -0
- package/dist/types/types/FieldsSource.d.ts.map +1 -0
- package/dist/types/types/Schema.d.ts +28 -11
- package/dist/types/types/Schema.d.ts.map +1 -1
- package/dist/types/types/SchemaSource.d.ts +60 -0
- package/dist/types/types/SchemaSource.d.ts.map +1 -0
- package/package.json +4 -4
- package/dist/cjs/state/DataExtensionStateBIReporter.js.map +0 -1
- package/dist/esm/state/DataExtensionStateBIReporter.js.map +0 -1
- package/dist/types/state/DataExtensionStateBIReporter.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_ConditionalModalState","_CustomFieldModalBiReporter","_formstate","_ToggleState","_util","_isHttpError","CustomFieldModalState","constructor","params","_defineProperty2","default","ToggleState","undefined","ConditionalModalState","onConfirm","mode","dataExtensionState","isReachedMaxCustomFields","form","customFieldModalBiReporter","reportModalEndProcess","t","validation","validate","hasError","enableAutoValidation","Error","_this$dataExtensionSt","_this$dataExtensionSt2","dataExtensionSchema","dataExtensionService","addCustomField","getFormValues","schema","userSchema","fqdn","fqdnString","filterable","runInAction","_upsertSchema","container","showToast","call","message","type","biName","endType","e","onConfirmError","FormState","FieldState","validators","value","name","key","allUserCustomFields","some","field","id","test","readUsers","readApps","writeUsers","writeApps","containsPii","permissions","read","apps","users","write","$","dirty","reportBi","CustomFieldModalBiReporter","customFieldModalState","makeObservable","namePlaceholder","computed","isSubmitting","disabledFields","observable","ref","errorToastConfig","reset","action","setFormValues","generateUniqueKey","bound","setKeyFieldIfNotDirty","setDefaultPermissions","_this$errorToastConfi","getResolvedError","errorHandler","_httpError$response","_httpError$response2","_httpError$response3","resolvedError","httpError","isHttpError","isDetailsResponse","response","data","isErrorDetails","details","validationError","fieldViolations","v","ruleName","text","onClick","window","open","requestId","reportSubmitFailure","errorType","settings","setOff","disableAutoValidation","disablePermissionCheckboxes","_defaultPermissions$i","_defaultPermissions$s","defaultPermissions","installedApps","hide","_defaultPermissions$i2","_defaultPermissions$i3","defaultRead","defaultWrite","siteVisitors","_defaultPermissions$s2","_defaultPermissions$s3","containsKey","slug","slugify","length","index","translate","modalState","modal","confirming","isLoading","exports"],"sources":["../../../src/state/CustomFieldModalState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';\nimport { FieldState, FormState } from 'formstate';\nimport { ToggleState } from './ToggleState';\nimport { CustomFieldOrigin, CustomFieldType, ReportBI } from '../services';\nimport { DataExtensionState } from './DataExtensionState';\nimport { isHttpError, slugify } from '../util';\nimport { isDetailsResponse, isErrorDetails } from '../util/isHttpError';\nimport { ToastConfig } from '../model';\n\nexport interface CustomFieldStateParams {\n dataExtensionState: DataExtensionState;\n reportBi: ReportBI;\n}\n\nexport interface CustomFieldForm {\n type?: CustomFieldType;\n key: string;\n name: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n containsPii: boolean;\n}\n\nexport class CustomFieldModalState {\n dataExtensionState: DataExtensionState;\n customFieldModalBiReporter: CustomFieldModalBiReporter;\n settings = new ToggleState();\n errorToastConfig: ToastConfig | undefined = undefined;\n mode: 'new' | 'edit' = 'new';\n origin: CustomFieldOrigin = 'Custom columns panel';\n customOrigin?: string;\n reportBi: ReportBI;\n\n modalState = new ConditionalModalState({\n onConfirm: async () => {\n if (\n this.mode === 'new' &&\n this.dataExtensionState.isReachedMaxCustomFields\n ) {\n return;\n }\n const {\n form,\n mode,\n customFieldModalBiReporter: { reportModalEndProcess },\n t,\n } = this;\n\n const validation = await form.validate();\n\n if (validation.hasError) {\n this.enableAutoValidation();\n throw new Error('validation');\n }\n\n const { dataExtensionState } = this;\n try {\n const { dataExtensionSchema } =\n await dataExtensionState.dataExtensionService.addCustomField({\n form: this.getFormValues(),\n schema: this.dataExtensionState.userSchema,\n fqdn: this.dataExtensionState.fqdnString,\n filterable: this.dataExtensionState.filterable,\n });\n\n runInAction(() => {\n if (dataExtensionSchema) {\n dataExtensionState._upsertSchema(dataExtensionSchema);\n }\n });\n\n this.dataExtensionState.container.showToast?.({\n message:\n mode === 'new'\n ? t('cairo.customFields.successToast')\n : t('cairo.customFields.editCustomField.success.toast'),\n type: 'SUCCESS',\n biName: 'cairo-custom-field-success-toast',\n });\n\n reportModalEndProcess({ endType: 'Add Field' });\n } catch (e: unknown) {\n this.onConfirmError(e);\n }\n },\n });\n\n form = new FormState({\n type: new FieldState<CustomFieldType | undefined>(undefined).validators(\n (value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldType.error',\n );\n }\n\n return undefined;\n },\n ),\n name: new FieldState('').validators((value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n return undefined;\n }),\n key: new FieldState('').validators((value) => {\n const {\n t,\n mode,\n dataExtensionState: { allUserCustomFields },\n } = this;\n\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n if (\n mode === 'new' &&\n allUserCustomFields.some((field) => field.id === value)\n ) {\n return t('cairo.customFields.addCustomField.modal.sameKey.error');\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_]*$/g.test(value)) {\n return t('cairo.customFields.addCustomField.modal.keyFormat.error');\n }\n\n return undefined;\n }),\n readUsers: new FieldState(false),\n readApps: new FieldState(false),\n writeUsers: new FieldState(false),\n writeApps: new FieldState(false),\n containsPii: new FieldState(false),\n });\n\n disabledFields = {\n permissions: {\n read: { apps: true, users: true },\n write: { apps: true, users: true },\n },\n };\n\n constructor(params: CustomFieldStateParams) {\n this.dataExtensionState = params.dataExtensionState;\n this.reportBi = params.reportBi;\n this.customFieldModalBiReporter = new CustomFieldModalBiReporter({\n customFieldModalState: this,\n });\n\n makeObservable(this, {\n namePlaceholder: computed,\n isSubmitting: computed,\n disabledFields: observable.ref,\n errorToastConfig: observable.ref,\n mode: observable.ref,\n reset: action,\n setFormValues: action,\n generateUniqueKey: action.bound,\n setKeyFieldIfNotDirty: action.bound,\n setDefaultPermissions: action,\n });\n }\n\n onConfirmError(e: unknown) {\n const { getResolvedError } = this.dataExtensionState.container.errorHandler;\n\n runInAction(() => {\n const resolvedError = getResolvedError?.(e);\n const httpError = isHttpError(e) ? e : undefined;\n\n if (\n isDetailsResponse(httpError?.response?.data) &&\n isErrorDetails(httpError?.response?.data.details) &&\n httpError?.response?.data?.details?.validationError?.fieldViolations?.some(\n (v) => v.ruleName === 'EXCEEDED_STORED_DATA_SIZE',\n )\n ) {\n this.errorToastConfig = {\n message: this.t('cairo.customFields.modal.maxFieldsError'),\n action: {\n text: this.t('cairo.error.contactSupport.cta'),\n onClick: () => {\n window.open('https://www.wix.com/contact', '_blank');\n },\n },\n };\n } else {\n this.errorToastConfig = {\n message: resolvedError?.message!,\n action: resolvedError?.action,\n details: resolvedError?.requestId\n ? {\n requestId: resolvedError.requestId,\n }\n : undefined,\n };\n }\n });\n\n this.customFieldModalBiReporter.reportSubmitFailure({\n errorType: this.errorToastConfig?.message,\n });\n\n // Prevents modal closing\n throw e;\n }\n reset() {\n const {\n form,\n settings,\n disabledFields: { permissions },\n } = this;\n\n form.reset();\n settings.setOff();\n this.errorToastConfig = undefined;\n this.disableAutoValidation();\n\n permissions.read.apps = false;\n permissions.read.users = false;\n permissions.write.apps = false;\n permissions.write.users = false;\n }\n\n enableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.enableAutoValidation();\n name.enableAutoValidation();\n type.enableAutoValidation();\n }\n\n disableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.disableAutoValidation();\n name.disableAutoValidation();\n type.disableAutoValidation();\n }\n\n getFormValues(): CustomFieldForm {\n const {\n form: {\n $: {\n type,\n key,\n name,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii,\n },\n },\n } = this;\n\n return {\n type: type.value,\n key: key.value,\n name: name.value,\n readApps: readApps.value,\n readUsers: readUsers.value,\n writeApps: writeApps.value,\n writeUsers: writeUsers.value,\n containsPii: containsPii.value,\n };\n }\n\n setFormValues(\n form: CustomFieldForm,\n params?: { disablePermissionCheckboxes: boolean },\n ) {\n const {\n form: { $ },\n } = this;\n\n $.key.value = form.key;\n $.name.value = form.name;\n $.type.value = form.type;\n $.readApps.value = form.readApps;\n $.readUsers.value = form.readUsers;\n $.writeApps.value = form.writeApps;\n $.writeUsers.value = form.writeUsers;\n $.containsPii.value = form.containsPii;\n if (params?.disablePermissionCheckboxes) {\n if (form.readUsers) {\n this.disabledFields.permissions.read.users = true;\n }\n\n if (form.readApps) {\n this.disabledFields.permissions.read.apps = true;\n }\n\n if (form.writeUsers) {\n this.disabledFields.permissions.write.users = true;\n }\n\n if (form.writeApps) {\n this.disabledFields.permissions.write.apps = true;\n }\n }\n }\n\n setDefaultPermissions() {\n const {\n form: { $ },\n dataExtensionState: { defaultPermissions },\n } = this;\n if (!defaultPermissions?.installedApps?.hide) {\n $.readApps.value = !!defaultPermissions?.installedApps?.defaultRead;\n $.writeApps.value = !!defaultPermissions?.installedApps?.defaultWrite;\n }\n\n if (!defaultPermissions?.siteVisitors?.hide) {\n $.readUsers.value = !!defaultPermissions?.siteVisitors?.defaultRead;\n $.writeUsers.value = !!defaultPermissions?.siteVisitors?.defaultWrite;\n }\n }\n\n setKeyFieldIfNotDirty = (value: string) => {\n const {\n form: {\n $: { key },\n },\n mode,\n } = this;\n\n if (mode === 'new' && !key.dirty) {\n // In the formstate library setting a field value using\n // the onChange API sets the dirty state of the field to true.\n // However, since here it's not a manual user input\n // we avoid changing the dirty state by setting a value directly.\n key.value = value;\n }\n };\n\n private containsKey(key: string) {\n return this.dataExtensionState.allUserCustomFields.some(\n (field) => field.id === key,\n );\n }\n\n generateUniqueKey(name: string) {\n const slug = slugify(name);\n const type = this.form.$.type.value;\n\n if (slug && slug.length >= 4 && !this.containsKey(slug)) {\n return slug;\n }\n\n if (!type) {\n return '';\n }\n\n let index = 1;\n\n while (this.containsKey(`${type}_${index}`)) {\n index += 1;\n }\n\n return `${type}_${index}`;\n }\n\n get t() {\n return this.dataExtensionState.container.translate;\n }\n\n get isSubmitting() {\n return this.modalState.modal.confirming.isLoading;\n }\n\n get namePlaceholder() {\n const {\n t,\n form: {\n $: { type },\n },\n } = this;\n\n switch (type.value) {\n case 'dropdown':\n return t('cairo.customFields.fieldType.dropdownList.Name.placeholder');\n case 'checkbox':\n return t('cairo.customFields.fieldType.checkbox.Name.placeholder');\n case 'shortText':\n return t('cairo.customFields.fieldType.shortText.Name.placeholder');\n case 'longText':\n return t('cairo.customFields.fieldType.longText.Name.placeholder');\n case 'url':\n return t('cairo.customFields.placeholder.url');\n case 'date':\n return t('cairo.customFields.fieldType.date.Name.placeholder');\n case 'dateTime':\n return t('cairo.customFields.fieldType.dateAndTime.Name.placeholder');\n case 'integer':\n return t('cairo.customFields.fieldType.numberInteger.Name.placeholder');\n case 'decimal':\n return t('cairo.customFields.fieldType.numberDecimal.Name.placeholder');\n default:\n return t(\n 'cairo.customFields.addCustomField.modal.fieldName.placeholder',\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_ConditionalModalState","_CustomFieldModalBiReporter","_formstate","_ToggleState","_util","_isHttpError","CustomFieldModalState","constructor","params","_defineProperty2","default","ToggleState","undefined","ConditionalModalState","onConfirm","mode","fieldManagement","maxReached","form","customFieldModalBiReporter","reportModalEndProcess","t","validation","validate","hasError","enableAutoValidation","Error","_this$container$showT","_this$container","draft","getFormValues","addField","editField","key","container","showToast","call","message","type","biName","endType","e","onConfirmError","FormState","FieldState","validators","value","name","containsKey","test","readUsers","readApps","writeUsers","writeApps","containsPii","permissions","read","apps","users","write","$","dirty","fieldCount","reportBi","CustomFieldModalBiReporter","customFieldModalState","makeObservable","namePlaceholder","computed","isSubmitting","disabledFields","observable","ref","errorToastConfig","reset","action","setFormValues","generateUniqueKey","bound","setKeyFieldIfNotDirty","setDefaultPermissions","_this$errorToastConfi","getResolvedError","errorHandler","runInAction","_httpError$response","_httpError$response2","_httpError$response3","resolvedError","httpError","isHttpError","isDetailsResponse","response","data","isErrorDetails","details","validationError","fieldViolations","some","v","ruleName","text","onClick","window","open","requestId","reportSubmitFailure","errorType","settings","setOff","disableAutoValidation","disablePermissionCheckboxes","_permissions$installe","_permissions$siteVisi","installedApps","hide","_permissions$installe2","_permissions$installe3","defaultRead","defaultWrite","siteVisitors","_permissions$siteVisi2","_permissions$siteVisi3","existingFieldKeys","includes","slug","slugify","length","index","translate","modalState","modal","confirming","isLoading","selected","creatableFieldTypes","find","option","id","exports"],"sources":["../../../src/state/CustomFieldModalState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';\nimport { FieldState, FormState } from 'formstate';\nimport { ToggleState } from './ToggleState';\nimport { CustomFieldOrigin, CustomFieldType, ReportBI } from '../services';\nimport { FieldDraft, FieldManagement } from '../types/FieldsSource';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport { isHttpError, slugify } from '../util';\nimport { isDetailsResponse, isErrorDetails } from '../util/isHttpError';\nimport { ToastConfig } from '../model';\n\nexport interface CustomFieldStateParams {\n fieldManagement: FieldManagement;\n container: WixPatternsContainer;\n reportBi: ReportBI;\n /** Field count for the \"numAdded\" BI param. */\n fieldCount: () => number;\n}\n\nexport interface CustomFieldForm {\n type?: CustomFieldType;\n key: string;\n name: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n containsPii: boolean;\n}\n\nexport class CustomFieldModalState {\n fieldManagement: FieldManagement;\n container: WixPatternsContainer;\n fieldCount: () => number;\n customFieldModalBiReporter: CustomFieldModalBiReporter;\n settings = new ToggleState();\n errorToastConfig: ToastConfig | undefined = undefined;\n mode: 'new' | 'edit' = 'new';\n origin: CustomFieldOrigin = 'Custom columns panel';\n customOrigin?: string;\n reportBi: ReportBI;\n\n modalState = new ConditionalModalState({\n onConfirm: async () => {\n if (this.mode === 'new' && this.fieldManagement.maxReached) {\n return;\n }\n const {\n form,\n mode,\n customFieldModalBiReporter: { reportModalEndProcess },\n t,\n } = this;\n\n const validation = await form.validate();\n\n if (validation.hasError) {\n this.enableAutoValidation();\n throw new Error('validation');\n }\n\n try {\n const draft = this.getFormValues();\n if (mode === 'new') {\n await this.fieldManagement.addField(draft);\n } else {\n await this.fieldManagement.editField(draft.key, draft);\n }\n\n this.container.showToast?.({\n message:\n mode === 'new'\n ? t('cairo.customFields.successToast')\n : t('cairo.customFields.editCustomField.success.toast'),\n type: 'SUCCESS',\n biName: 'cairo-custom-field-success-toast',\n });\n\n reportModalEndProcess({ endType: 'Add Field' });\n } catch (e: unknown) {\n this.onConfirmError(e);\n }\n },\n });\n\n form = new FormState({\n type: new FieldState<string | undefined>(undefined).validators((value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldType.error',\n );\n }\n\n return undefined;\n }),\n name: new FieldState('').validators((value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n return undefined;\n }),\n key: new FieldState('').validators((value) => {\n const { t, mode } = this;\n\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n if (mode === 'new' && this.containsKey(value)) {\n return t('cairo.customFields.addCustomField.modal.sameKey.error');\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_]*$/g.test(value)) {\n return t('cairo.customFields.addCustomField.modal.keyFormat.error');\n }\n\n return undefined;\n }),\n readUsers: new FieldState(false),\n readApps: new FieldState(false),\n writeUsers: new FieldState(false),\n writeApps: new FieldState(false),\n containsPii: new FieldState(false),\n });\n\n disabledFields = {\n permissions: {\n read: { apps: true, users: true },\n write: { apps: true, users: true },\n },\n };\n\n constructor(params: CustomFieldStateParams) {\n this.fieldManagement = params.fieldManagement;\n this.container = params.container;\n this.fieldCount = params.fieldCount;\n this.reportBi = params.reportBi;\n this.customFieldModalBiReporter = new CustomFieldModalBiReporter({\n customFieldModalState: this,\n });\n\n makeObservable(this, {\n namePlaceholder: computed,\n isSubmitting: computed,\n disabledFields: observable.ref,\n errorToastConfig: observable.ref,\n mode: observable.ref,\n reset: action,\n setFormValues: action,\n generateUniqueKey: action.bound,\n setKeyFieldIfNotDirty: action.bound,\n setDefaultPermissions: action,\n });\n }\n\n onConfirmError(e: unknown) {\n const { getResolvedError } = this.container.errorHandler;\n\n runInAction(() => {\n const resolvedError = getResolvedError?.(e);\n const httpError = isHttpError(e) ? e : undefined;\n\n if (\n isDetailsResponse(httpError?.response?.data) &&\n isErrorDetails(httpError?.response?.data.details) &&\n httpError?.response?.data?.details?.validationError?.fieldViolations?.some(\n (v) => v.ruleName === 'EXCEEDED_STORED_DATA_SIZE',\n )\n ) {\n this.errorToastConfig = {\n message: this.t('cairo.customFields.modal.maxFieldsError'),\n action: {\n text: this.t('cairo.error.contactSupport.cta'),\n onClick: () => {\n window.open('https://www.wix.com/contact', '_blank');\n },\n },\n };\n } else {\n this.errorToastConfig = {\n message: resolvedError?.message!,\n action: resolvedError?.action,\n details: resolvedError?.requestId\n ? {\n requestId: resolvedError.requestId,\n }\n : undefined,\n };\n }\n });\n\n this.customFieldModalBiReporter.reportSubmitFailure({\n errorType: this.errorToastConfig?.message,\n });\n\n // Prevents modal closing\n throw e;\n }\n reset() {\n const {\n form,\n settings,\n disabledFields: { permissions },\n } = this;\n\n form.reset();\n settings.setOff();\n this.errorToastConfig = undefined;\n this.disableAutoValidation();\n\n permissions.read.apps = false;\n permissions.read.users = false;\n permissions.write.apps = false;\n permissions.write.users = false;\n }\n\n enableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.enableAutoValidation();\n name.enableAutoValidation();\n type.enableAutoValidation();\n }\n\n disableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.disableAutoValidation();\n name.disableAutoValidation();\n type.disableAutoValidation();\n }\n\n getFormValues(): FieldDraft {\n const {\n form: {\n $: {\n type,\n key,\n name,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii,\n },\n },\n } = this;\n\n return {\n type: type.value,\n key: key.value,\n name: name.value,\n readApps: readApps.value,\n readUsers: readUsers.value,\n writeApps: writeApps.value,\n writeUsers: writeUsers.value,\n containsPii: containsPii.value,\n };\n }\n\n setFormValues(\n form: FieldDraft,\n params?: { disablePermissionCheckboxes: boolean },\n ) {\n const {\n form: { $ },\n } = this;\n\n $.key.value = form.key;\n $.name.value = form.name;\n $.type.value = form.type;\n $.readApps.value = form.readApps;\n $.readUsers.value = form.readUsers;\n $.writeApps.value = form.writeApps;\n $.writeUsers.value = form.writeUsers;\n $.containsPii.value = form.containsPii;\n if (params?.disablePermissionCheckboxes) {\n if (form.readUsers) {\n this.disabledFields.permissions.read.users = true;\n }\n\n if (form.readApps) {\n this.disabledFields.permissions.read.apps = true;\n }\n\n if (form.writeUsers) {\n this.disabledFields.permissions.write.users = true;\n }\n\n if (form.writeApps) {\n this.disabledFields.permissions.write.apps = true;\n }\n }\n }\n\n setDefaultPermissions() {\n const {\n form: { $ },\n } = this;\n const permissions = this.fieldManagement.permissions;\n if (!permissions?.installedApps?.hide) {\n $.readApps.value = !!permissions?.installedApps?.defaultRead;\n $.writeApps.value = !!permissions?.installedApps?.defaultWrite;\n }\n\n if (!permissions?.siteVisitors?.hide) {\n $.readUsers.value = !!permissions?.siteVisitors?.defaultRead;\n $.writeUsers.value = !!permissions?.siteVisitors?.defaultWrite;\n }\n }\n\n setKeyFieldIfNotDirty = (value: string) => {\n const {\n form: {\n $: { key },\n },\n mode,\n } = this;\n\n if (mode === 'new' && !key.dirty) {\n // In the formstate library setting a field value using\n // the onChange API sets the dirty state of the field to true.\n // However, since here it's not a manual user input\n // we avoid changing the dirty state by setting a value directly.\n key.value = value;\n }\n };\n\n private containsKey(key: string) {\n return this.fieldManagement.existingFieldKeys.includes(key);\n }\n\n generateUniqueKey(name: string) {\n const slug = slugify(name);\n const type = this.form.$.type.value;\n\n if (slug && slug.length >= 4 && !this.containsKey(slug)) {\n return slug;\n }\n\n if (!type) {\n return '';\n }\n\n let index = 1;\n\n while (this.containsKey(`${type}_${index}`)) {\n index += 1;\n }\n\n return `${type}_${index}`;\n }\n\n get t() {\n return this.container.translate;\n }\n\n get isSubmitting() {\n return this.modalState.modal.confirming.isLoading;\n }\n\n get namePlaceholder() {\n const selected = this.fieldManagement.creatableFieldTypes.find(\n (option) => option.id === this.form.$.type.value,\n );\n\n return (\n selected?.namePlaceholder ??\n this.t('cairo.customFields.addCustomField.modal.fieldName.placeholder')\n );\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAOA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAIA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AAsBO,MAAMO,qBAAqB,CAAC;EA2GjCC,WAAWA,CAACC,MAA8B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,oBAtGjC,IAAIC,wBAAW,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,4BACgBE,SAAS;IAAA,IAAAH,gBAAA,CAAAC,OAAA,gBAC9B,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBACA,sBAAsB;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBAIrC,IAAIG,4CAAqB,CAAC;MACrCC,SAAS,EAAE,MAAAA,CAAA,KAAY;QACrB,IAAI,IAAI,CAACC,IAAI,KAAK,KAAK,IAAI,IAAI,CAACC,eAAe,CAACC,UAAU,EAAE;UAC1D;QACF;QACA,MAAM;UACJC,IAAI;UACJH,IAAI;UACJI,0BAA0B,EAAE;YAAEC;UAAsB,CAAC;UACrDC;QACF,CAAC,GAAG,IAAI;QAER,MAAMC,UAAU,GAAG,MAAMJ,IAAI,CAACK,QAAQ,CAAC,CAAC;QAExC,IAAID,UAAU,CAACE,QAAQ,EAAE;UACvB,IAAI,CAACC,oBAAoB,CAAC,CAAC;UAC3B,MAAM,IAAIC,KAAK,CAAC,YAAY,CAAC;QAC/B;QAEA,IAAI;UAAA,IAAAC,qBAAA,EAAAC,eAAA;UACF,MAAMC,KAAK,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC;UAClC,IAAIf,IAAI,KAAK,KAAK,EAAE;YAClB,MAAM,IAAI,CAACC,eAAe,CAACe,QAAQ,CAACF,KAAK,CAAC;UAC5C,CAAC,MAAM;YACL,MAAM,IAAI,CAACb,eAAe,CAACgB,SAAS,CAACH,KAAK,CAACI,GAAG,EAAEJ,KAAK,CAAC;UACxD;UAEA,CAAAF,qBAAA,IAAAC,eAAA,OAAI,CAACM,SAAS,EAACC,SAAS,aAAxBR,qBAAA,CAAAS,IAAA,CAAAR,eAAA,EAA2B;YACzBS,OAAO,EACLtB,IAAI,KAAK,KAAK,GACVM,CAAC,CAAC,iCAAiC,CAAC,GACpCA,CAAC,CAAC,kDAAkD,CAAC;YAC3DiB,IAAI,EAAE,SAAS;YACfC,MAAM,EAAE;UACV,CAAC,CAAC;UAEFnB,qBAAqB,CAAC;YAAEoB,OAAO,EAAE;UAAY,CAAC,CAAC;QACjD,CAAC,CAAC,OAAOC,CAAU,EAAE;UACnB,IAAI,CAACC,cAAc,CAACD,CAAC,CAAC;QACxB;MACF;IACF,CAAC,CAAC;IAAA,IAAAhC,gBAAA,CAAAC,OAAA,gBAEK,IAAIiC,oBAAS,CAAC;MACnBL,IAAI,EAAE,IAAIM,qBAAU,CAAqBhC,SAAS,CAAC,CAACiC,UAAU,CAAEC,KAAK,IAAK;QACxE,IAAI,CAACA,KAAK,EAAE;UACV,OAAO,IAAI,CAACzB,CAAC,CACX,8DACF,CAAC;QACH;QAEA,OAAOT,SAAS;MAClB,CAAC,CAAC;MACFmC,IAAI,EAAE,IAAIH,qBAAU,CAAC,EAAE,CAAC,CAACC,UAAU,CAAEC,KAAK,IAAK;QAC7C,IAAI,CAACA,KAAK,EAAE;UACV,OAAO,IAAI,CAACzB,CAAC,CACX,8DACF,CAAC;QACH;QAEA,OAAOT,SAAS;MAClB,CAAC,CAAC;MACFqB,GAAG,EAAE,IAAIW,qBAAU,CAAC,EAAE,CAAC,CAACC,UAAU,CAAEC,KAAK,IAAK;QAC5C,MAAM;UAAEzB,CAAC;UAAEN;QAAK,CAAC,GAAG,IAAI;QAExB,IAAI,CAAC+B,KAAK,EAAE;UACV,OAAO,IAAI,CAACzB,CAAC,CACX,8DACF,CAAC;QACH;QAEA,IAAIN,IAAI,KAAK,KAAK,IAAI,IAAI,CAACiC,WAAW,CAACF,KAAK,CAAC,EAAE;UAC7C,OAAOzB,CAAC,CAAC,uDAAuD,CAAC;QACnE;QAEA,IAAI,CAAC,0BAA0B,CAAC4B,IAAI,CAACH,KAAK,CAAC,EAAE;UAC3C,OAAOzB,CAAC,CAAC,yDAAyD,CAAC;QACrE;QAEA,OAAOT,SAAS;MAClB,CAAC,CAAC;MACFsC,SAAS,EAAE,IAAIN,qBAAU,CAAC,KAAK,CAAC;MAChCO,QAAQ,EAAE,IAAIP,qBAAU,CAAC,KAAK,CAAC;MAC/BQ,UAAU,EAAE,IAAIR,qBAAU,CAAC,KAAK,CAAC;MACjCS,SAAS,EAAE,IAAIT,qBAAU,CAAC,KAAK,CAAC;MAChCU,WAAW,EAAE,IAAIV,qBAAU,CAAC,KAAK;IACnC,CAAC,CAAC;IAAA,IAAAnC,gBAAA,CAAAC,OAAA,0BAEe;MACf6C,WAAW,EAAE;QACXC,IAAI,EAAE;UAAEC,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAE;QAAK,CAAC;QACjCC,KAAK,EAAE;UAAEF,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAE;QAAK;MACnC;IACF,CAAC;IAAA,IAAAjD,gBAAA,CAAAC,OAAA,iCA6LwBoC,KAAa,IAAK;MACzC,MAAM;QACJ5B,IAAI,EAAE;UACJ0C,CAAC,EAAE;YAAE3B;UAAI;QACX,CAAC;QACDlB;MACF,CAAC,GAAG,IAAI;MAER,IAAIA,IAAI,KAAK,KAAK,IAAI,CAACkB,GAAG,CAAC4B,KAAK,EAAE;QAChC;QACA;QACA;QACA;QACA5B,GAAG,CAACa,KAAK,GAAGA,KAAK;MACnB;IACF,CAAC;IAzMC,IAAI,CAAC9B,eAAe,GAAGR,MAAM,CAACQ,eAAe;IAC7C,IAAI,CAACkB,SAAS,GAAG1B,MAAM,CAAC0B,SAAS;IACjC,IAAI,CAAC4B,UAAU,GAAGtD,MAAM,CAACsD,UAAU;IACnC,IAAI,CAACC,QAAQ,GAAGvD,MAAM,CAACuD,QAAQ;IAC/B,IAAI,CAAC5C,0BAA0B,GAAG,IAAI6C,sDAA0B,CAAC;MAC/DC,qBAAqB,EAAE;IACzB,CAAC,CAAC;IAEF,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,eAAe,EAAEC,cAAQ;MACzBC,YAAY,EAAED,cAAQ;MACtBE,cAAc,EAAEC,gBAAU,CAACC,GAAG;MAC9BC,gBAAgB,EAAEF,gBAAU,CAACC,GAAG;MAChCzD,IAAI,EAAEwD,gBAAU,CAACC,GAAG;MACpBE,KAAK,EAAEC,YAAM;MACbC,aAAa,EAAED,YAAM;MACrBE,iBAAiB,EAAEF,YAAM,CAACG,KAAK;MAC/BC,qBAAqB,EAAEJ,YAAM,CAACG,KAAK;MACnCE,qBAAqB,EAAEL;IACzB,CAAC,CAAC;EACJ;EAEAjC,cAAcA,CAACD,CAAU,EAAE;IAAA,IAAAwC,qBAAA;IACzB,MAAM;MAAEC;IAAiB,CAAC,GAAG,IAAI,CAAChD,SAAS,CAACiD,YAAY;IAExD,IAAAC,iBAAW,EAAC,MAAM;MAAA,IAAAC,mBAAA,EAAAC,oBAAA,EAAAC,oBAAA;MAChB,MAAMC,aAAa,GAAGN,gBAAgB,oBAAhBA,gBAAgB,CAAGzC,CAAC,CAAC;MAC3C,MAAMgD,SAAS,GAAG,IAAAC,iBAAW,EAACjD,CAAC,CAAC,GAAGA,CAAC,GAAG7B,SAAS;MAEhD,IACE,IAAA+E,8BAAiB,EAACF,SAAS,aAAAJ,mBAAA,GAATI,SAAS,CAAEG,QAAQ,qBAAnBP,mBAAA,CAAqBQ,IAAI,CAAC,IAC5C,IAAAC,2BAAc,EAACL,SAAS,aAAAH,oBAAA,GAATG,SAAS,CAAEG,QAAQ,qBAAnBN,oBAAA,CAAqBO,IAAI,CAACE,OAAO,CAAC,IACjDN,SAAS,aAAAF,oBAAA,GAATE,SAAS,CAAEG,QAAQ,cAAAL,oBAAA,GAAnBA,oBAAA,CAAqBM,IAAI,cAAAN,oBAAA,GAAzBA,oBAAA,CAA2BQ,OAAO,cAAAR,oBAAA,GAAlCA,oBAAA,CAAoCS,eAAe,cAAAT,oBAAA,GAAnDA,oBAAA,CAAqDU,eAAe,aAApEV,oBAAA,CAAsEW,IAAI,CACvEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,KAAK,2BACxB,CAAC,EACD;QACA,IAAI,CAAC3B,gBAAgB,GAAG;UACtBpC,OAAO,EAAE,IAAI,CAAChB,CAAC,CAAC,yCAAyC,CAAC;UAC1DsD,MAAM,EAAE;YACN0B,IAAI,EAAE,IAAI,CAAChF,CAAC,CAAC,gCAAgC,CAAC;YAC9CiF,OAAO,EAAEA,CAAA,KAAM;cACbC,MAAM,CAACC,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC;YACtD;UACF;QACF,CAAC;MACH,CAAC,MAAM;QACL,IAAI,CAAC/B,gBAAgB,GAAG;UACtBpC,OAAO,EAAEmD,aAAa,oBAAbA,aAAa,CAAEnD,OAAQ;UAChCsC,MAAM,EAAEa,aAAa,oBAAbA,aAAa,CAAEb,MAAM;UAC7BoB,OAAO,EAAEP,aAAa,YAAbA,aAAa,CAAEiB,SAAS,GAC7B;YACEA,SAAS,EAAEjB,aAAa,CAACiB;UAC3B,CAAC,GACD7F;QACN,CAAC;MACH;IACF,CAAC,CAAC;IAEF,IAAI,CAACO,0BAA0B,CAACuF,mBAAmB,CAAC;MAClDC,SAAS,GAAA1B,qBAAA,GAAE,IAAI,CAACR,gBAAgB,qBAArBQ,qBAAA,CAAuB5C;IACpC,CAAC,CAAC;;IAEF;IACA,MAAMI,CAAC;EACT;EACAiC,KAAKA,CAAA,EAAG;IACN,MAAM;MACJxD,IAAI;MACJ0F,QAAQ;MACRtC,cAAc,EAAE;QAAEf;MAAY;IAChC,CAAC,GAAG,IAAI;IAERrC,IAAI,CAACwD,KAAK,CAAC,CAAC;IACZkC,QAAQ,CAACC,MAAM,CAAC,CAAC;IACjB,IAAI,CAACpC,gBAAgB,GAAG7D,SAAS;IACjC,IAAI,CAACkG,qBAAqB,CAAC,CAAC;IAE5BvD,WAAW,CAACC,IAAI,CAACC,IAAI,GAAG,KAAK;IAC7BF,WAAW,CAACC,IAAI,CAACE,KAAK,GAAG,KAAK;IAC9BH,WAAW,CAACI,KAAK,CAACF,IAAI,GAAG,KAAK;IAC9BF,WAAW,CAACI,KAAK,CAACD,KAAK,GAAG,KAAK;EACjC;EAEAjC,oBAAoBA,CAAA,EAAG;IACrB,MAAM;MACJP,IAAI,EAAE;QACJ0C,CAAC,EAAE;UAAE3B,GAAG;UAAEc,IAAI;UAAET;QAAK;MACvB;IACF,CAAC,GAAG,IAAI;IAERL,GAAG,CAACR,oBAAoB,CAAC,CAAC;IAC1BsB,IAAI,CAACtB,oBAAoB,CAAC,CAAC;IAC3Ba,IAAI,CAACb,oBAAoB,CAAC,CAAC;EAC7B;EAEAqF,qBAAqBA,CAAA,EAAG;IACtB,MAAM;MACJ5F,IAAI,EAAE;QACJ0C,CAAC,EAAE;UAAE3B,GAAG;UAAEc,IAAI;UAAET;QAAK;MACvB;IACF,CAAC,GAAG,IAAI;IAERL,GAAG,CAAC6E,qBAAqB,CAAC,CAAC;IAC3B/D,IAAI,CAAC+D,qBAAqB,CAAC,CAAC;IAC5BxE,IAAI,CAACwE,qBAAqB,CAAC,CAAC;EAC9B;EAEAhF,aAAaA,CAAA,EAAe;IAC1B,MAAM;MACJZ,IAAI,EAAE;QACJ0C,CAAC,EAAE;UACDtB,IAAI;UACJL,GAAG;UACHc,IAAI;UACJI,QAAQ;UACRD,SAAS;UACTG,SAAS;UACTD,UAAU;UACVE;QACF;MACF;IACF,CAAC,GAAG,IAAI;IAER,OAAO;MACLhB,IAAI,EAAEA,IAAI,CAACQ,KAAK;MAChBb,GAAG,EAAEA,GAAG,CAACa,KAAK;MACdC,IAAI,EAAEA,IAAI,CAACD,KAAK;MAChBK,QAAQ,EAAEA,QAAQ,CAACL,KAAK;MACxBI,SAAS,EAAEA,SAAS,CAACJ,KAAK;MAC1BO,SAAS,EAAEA,SAAS,CAACP,KAAK;MAC1BM,UAAU,EAAEA,UAAU,CAACN,KAAK;MAC5BQ,WAAW,EAAEA,WAAW,CAACR;IAC3B,CAAC;EACH;EAEA8B,aAAaA,CACX1D,IAAgB,EAChBV,MAAiD,EACjD;IACA,MAAM;MACJU,IAAI,EAAE;QAAE0C;MAAE;IACZ,CAAC,GAAG,IAAI;IAERA,CAAC,CAAC3B,GAAG,CAACa,KAAK,GAAG5B,IAAI,CAACe,GAAG;IACtB2B,CAAC,CAACb,IAAI,CAACD,KAAK,GAAG5B,IAAI,CAAC6B,IAAI;IACxBa,CAAC,CAACtB,IAAI,CAACQ,KAAK,GAAG5B,IAAI,CAACoB,IAAI;IACxBsB,CAAC,CAACT,QAAQ,CAACL,KAAK,GAAG5B,IAAI,CAACiC,QAAQ;IAChCS,CAAC,CAACV,SAAS,CAACJ,KAAK,GAAG5B,IAAI,CAACgC,SAAS;IAClCU,CAAC,CAACP,SAAS,CAACP,KAAK,GAAG5B,IAAI,CAACmC,SAAS;IAClCO,CAAC,CAACR,UAAU,CAACN,KAAK,GAAG5B,IAAI,CAACkC,UAAU;IACpCQ,CAAC,CAACN,WAAW,CAACR,KAAK,GAAG5B,IAAI,CAACoC,WAAW;IACtC,IAAI9C,MAAM,YAANA,MAAM,CAAEuG,2BAA2B,EAAE;MACvC,IAAI7F,IAAI,CAACgC,SAAS,EAAE;QAClB,IAAI,CAACoB,cAAc,CAACf,WAAW,CAACC,IAAI,CAACE,KAAK,GAAG,IAAI;MACnD;MAEA,IAAIxC,IAAI,CAACiC,QAAQ,EAAE;QACjB,IAAI,CAACmB,cAAc,CAACf,WAAW,CAACC,IAAI,CAACC,IAAI,GAAG,IAAI;MAClD;MAEA,IAAIvC,IAAI,CAACkC,UAAU,EAAE;QACnB,IAAI,CAACkB,cAAc,CAACf,WAAW,CAACI,KAAK,CAACD,KAAK,GAAG,IAAI;MACpD;MAEA,IAAIxC,IAAI,CAACmC,SAAS,EAAE;QAClB,IAAI,CAACiB,cAAc,CAACf,WAAW,CAACI,KAAK,CAACF,IAAI,GAAG,IAAI;MACnD;IACF;EACF;EAEAuB,qBAAqBA,CAAA,EAAG;IAAA,IAAAgC,qBAAA,EAAAC,qBAAA;IACtB,MAAM;MACJ/F,IAAI,EAAE;QAAE0C;MAAE;IACZ,CAAC,GAAG,IAAI;IACR,MAAML,WAAW,GAAG,IAAI,CAACvC,eAAe,CAACuC,WAAW;IACpD,IAAI,EAACA,WAAW,aAAAyD,qBAAA,GAAXzD,WAAW,CAAE2D,aAAa,aAA1BF,qBAAA,CAA4BG,IAAI,GAAE;MAAA,IAAAC,sBAAA,EAAAC,sBAAA;MACrCzD,CAAC,CAACT,QAAQ,CAACL,KAAK,GAAG,CAAC,EAACS,WAAW,aAAA6D,sBAAA,GAAX7D,WAAW,CAAE2D,aAAa,aAA1BE,sBAAA,CAA4BE,WAAW;MAC5D1D,CAAC,CAACP,SAAS,CAACP,KAAK,GAAG,CAAC,EAACS,WAAW,aAAA8D,sBAAA,GAAX9D,WAAW,CAAE2D,aAAa,aAA1BG,sBAAA,CAA4BE,YAAY;IAChE;IAEA,IAAI,EAAChE,WAAW,aAAA0D,qBAAA,GAAX1D,WAAW,CAAEiE,YAAY,aAAzBP,qBAAA,CAA2BE,IAAI,GAAE;MAAA,IAAAM,sBAAA,EAAAC,sBAAA;MACpC9D,CAAC,CAACV,SAAS,CAACJ,KAAK,GAAG,CAAC,EAACS,WAAW,aAAAkE,sBAAA,GAAXlE,WAAW,CAAEiE,YAAY,aAAzBC,sBAAA,CAA2BH,WAAW;MAC5D1D,CAAC,CAACR,UAAU,CAACN,KAAK,GAAG,CAAC,EAACS,WAAW,aAAAmE,sBAAA,GAAXnE,WAAW,CAAEiE,YAAY,aAAzBE,sBAAA,CAA2BH,YAAY;IAChE;EACF;EAmBQvE,WAAWA,CAACf,GAAW,EAAE;IAC/B,OAAO,IAAI,CAACjB,eAAe,CAAC2G,iBAAiB,CAACC,QAAQ,CAAC3F,GAAG,CAAC;EAC7D;EAEA4C,iBAAiBA,CAAC9B,IAAY,EAAE;IAC9B,MAAM8E,IAAI,GAAG,IAAAC,aAAO,EAAC/E,IAAI,CAAC;IAC1B,MAAMT,IAAI,GAAG,IAAI,CAACpB,IAAI,CAAC0C,CAAC,CAACtB,IAAI,CAACQ,KAAK;IAEnC,IAAI+E,IAAI,IAAIA,IAAI,CAACE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC/E,WAAW,CAAC6E,IAAI,CAAC,EAAE;MACvD,OAAOA,IAAI;IACb;IAEA,IAAI,CAACvF,IAAI,EAAE;MACT,OAAO,EAAE;IACX;IAEA,IAAI0F,KAAK,GAAG,CAAC;IAEb,OAAO,IAAI,CAAChF,WAAW,CAAC,GAAGV,IAAI,IAAI0F,KAAK,EAAE,CAAC,EAAE;MAC3CA,KAAK,IAAI,CAAC;IACZ;IAEA,OAAO,GAAG1F,IAAI,IAAI0F,KAAK,EAAE;EAC3B;EAEA,IAAI3G,CAACA,CAAA,EAAG;IACN,OAAO,IAAI,CAACa,SAAS,CAAC+F,SAAS;EACjC;EAEA,IAAI5D,YAAYA,CAAA,EAAG;IACjB,OAAO,IAAI,CAAC6D,UAAU,CAACC,KAAK,CAACC,UAAU,CAACC,SAAS;EACnD;EAEA,IAAIlE,eAAeA,CAAA,EAAG;IACpB,MAAMmE,QAAQ,GAAG,IAAI,CAACtH,eAAe,CAACuH,mBAAmB,CAACC,IAAI,CAC3DC,MAAM,IAAKA,MAAM,CAACC,EAAE,KAAK,IAAI,CAACxH,IAAI,CAAC0C,CAAC,CAACtB,IAAI,CAACQ,KAC7C,CAAC;IAED,OACE,CAAAwF,QAAQ,oBAARA,QAAQ,CAAEnE,eAAe,KACzB,IAAI,CAAC9C,CAAC,CAAC,+DAA+D,CAAC;EAE3E;AACF;AAACsH,OAAA,CAAArI,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -10,7 +10,6 @@ var _mobx = require("mobx");
|
|
|
10
10
|
var _util = require("../util");
|
|
11
11
|
var _DataExtensionField = require("./DataExtension/DataExtensionField");
|
|
12
12
|
var _ConditionalModalState = require("./ConditionalModalState");
|
|
13
|
-
var _DeleteFieldModalState = require("./DeleteFieldModalState");
|
|
14
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
14
|
const MAX_CUSTOM_FIELDS = exports.MAX_CUSTOM_FIELDS = 50;
|
|
16
15
|
|
|
@@ -42,7 +41,6 @@ class DataExtensionState {
|
|
|
42
41
|
(0, _defineProperty2.default)(this, "_fieldOperationsService", void 0);
|
|
43
42
|
(0, _defineProperty2.default)(this, "_fieldOperationsServicePromise", void 0);
|
|
44
43
|
(0, _defineProperty2.default)(this, "deleteConfirmModal", new _ConditionalModalState.ConditionalModalState());
|
|
45
|
-
(0, _defineProperty2.default)(this, "deleteFieldModal", void 0);
|
|
46
44
|
(0, _defineProperty2.default)(this, "_extensionPoint", void 0);
|
|
47
45
|
this.container = params.container;
|
|
48
46
|
this.disableUserDefinedWriting = params.disableUserDefinedWriting;
|
|
@@ -54,15 +52,6 @@ class DataExtensionState {
|
|
|
54
52
|
this.dataExtensionService = new _services.DataExtensionSchemaService(params.container);
|
|
55
53
|
this.containsPii = params.containsPii;
|
|
56
54
|
this.defaultPermissions = params.defaultPermissions;
|
|
57
|
-
|
|
58
|
-
// Initialize deleteFieldModal with proper reportBi
|
|
59
|
-
this.deleteFieldModal = new _DeleteFieldModalState.DeleteFieldModalState({
|
|
60
|
-
dataExtension: this,
|
|
61
|
-
reportBi: params.container.createBILogger({
|
|
62
|
-
componentType: 'DataExtension',
|
|
63
|
-
...params.fqdn
|
|
64
|
-
})
|
|
65
|
-
});
|
|
66
55
|
(0, _mobx.makeObservable)(this, {
|
|
67
56
|
allUserCustomFields: _mobx.computed,
|
|
68
57
|
allAppsCustomFields: _mobx.computed,
|
|
@@ -84,7 +73,6 @@ class DataExtensionState {
|
|
|
84
73
|
containsPii: _mobx.observable,
|
|
85
74
|
defaultPermissions: _mobx.observable,
|
|
86
75
|
isArchivedPanelOpen: _mobx.observable,
|
|
87
|
-
deleteFieldModal: _mobx.observable.ref,
|
|
88
76
|
openArchivedPanel: _mobx.action,
|
|
89
77
|
closeArchivedPanel: _mobx.action,
|
|
90
78
|
openDeleteConfirmModal: _mobx.action
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_services","require","_TaskState","_mobx","_util","_DataExtensionField","_ConditionalModalState","_DeleteFieldModalState","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_CUSTOM_FIELDS","exports","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","TaskState","ConditionalModalState","container","disableUserDefinedWriting","filterable","enableArchive","closeSidePanel","_extensionPoint","extensionPoint","dataExtensionService","DataExtensionSchemaService","containsPii","defaultPermissions","deleteFieldModal","DeleteFieldModalState","dataExtension","reportBi","createBILogger","componentType","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","archivedItems","shouldDisplayArchive","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","_dataExtensionSchemasBase","observable","ref","_dataExtensionSchemas","userSchema","appSchemas","_upsertSchema","action","isArchivedPanelOpen","openArchivedPanel","closeArchivedPanel","openDeleteConfirmModal","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","getArchiveSuccessToastMessage","fieldName","selectedField","getArchiveSuccessToastAction","text","uiType","onClick","_this$openArchivedPan","getFieldOperationsService","_fieldOperationsService","_fieldOperationsServicePromise","Promise","resolve","then","module","self","DataExtensionFieldOperationsService","extractFieldValuesFromSchema","bind","upsertSchema","archiveField","id","origin","service","restoreField","deleteField","fieldId","_customField$xWixPi","customField","toCustomField","type","title","read","write","isPiiField","enabled","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","Boolean","_toCustomField","schema","editable","owner","namespace","_schema$xWixPii","label","maxLength","options","enum","properties","isPii","isSupportedFieldType","getAvailableCustomFieldsInSchema","requiredPermissions","filteredFields","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","isAppNamespace","fields","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","_appSchema$jsonSchema2","concat","_userSchema$jsonSchem","_properties$key","_properties$key2","length","allNamespaces","_this$userSchema3","init","initTask","runOnce","fetchSchemas","newSchema","index","findIndex","dataExtensionSchemas","runInAction","deleteConfirmModal","open"],"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 type { DataExtensionFieldOperationsService } from '../services/DataExtensionFieldOperationsService';\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 { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { DeleteFieldModalState } from './DeleteFieldModalState';\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\n/**\n * Manages data extension schemas and custom fields for a collection\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 // Lazy-loaded service for field operations (archive/restore/delete)\n private _fieldOperationsService?: DataExtensionFieldOperationsService;\n private _fieldOperationsServicePromise?: Promise<DataExtensionFieldOperationsService>;\n\n readonly deleteConfirmModal = new ConditionalModalState<{\n id: string;\n origin: string;\n }>();\n\n deleteFieldModal?: DeleteFieldModalState;\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 ?? true;\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 // Initialize deleteFieldModal with proper reportBi\n this.deleteFieldModal = new DeleteFieldModalState({\n dataExtension: this,\n reportBi: params.container.createBILogger({\n componentType: 'DataExtension',\n ...params.fqdn,\n }),\n });\n\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: computed,\n archivedItems: computed,\n shouldDisplayArchive: 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 deleteFieldModal: observable.ref,\n openArchivedPanel: action,\n closeArchivedPanel: action,\n openDeleteConfirmModal: 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 /**\n * Lazily loads the field operations service to reduce bundle size.\n * Only loads when archive/restore/delete operations are needed.\n */\n private async getFieldOperationsService(): Promise<DataExtensionFieldOperationsService> {\n if (this._fieldOperationsService) {\n return this._fieldOperationsService;\n }\n\n // Reuse the same promise if already loading\n if (this._fieldOperationsServicePromise) {\n return this._fieldOperationsServicePromise;\n }\n\n this._fieldOperationsServicePromise = import(\n '../services/DataExtensionFieldOperationsService'\n ).then((module) => {\n const self = this;\n this._fieldOperationsService =\n new module.DataExtensionFieldOperationsService({\n container: this.container,\n dataExtensionService: this.dataExtensionService,\n get userSchema() {\n return self.userSchema;\n },\n fqdnString: this.fqdnString,\n enableArchive: this.enableArchive,\n extractFieldValuesFromSchema:\n this.extractFieldValuesFromSchema.bind(this),\n upsertSchema: this._upsertSchema.bind(this),\n openArchivedPanel: this.openArchivedPanel.bind(this),\n });\n return this._fieldOperationsService;\n });\n\n return this._fieldOperationsServicePromise;\n }\n\n async archiveField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.archiveField({ id, origin, reportBi });\n }\n\n async restoreField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.restoreField({ id, origin, reportBi });\n }\n\n async deleteField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.deleteField({ id, origin, reportBi });\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 isPii: Boolean(schema['x-wix-pii']?.enabled),\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 isAppNamespace = namespace !== userFieldsNamespace;\n\n const fields = this.getAvailableCustomFieldsInSchema(\n schema.jsonSchema?.properties || {},\n {\n editable: false,\n owner: isAppNamespace ? 'app' : 'user',\n namespace,\n requiredPermissions: isAppNamespace ? ['users'] : undefined,\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 archivedItems() {\n const userSchema = this.userSchema;\n if (!userSchema?.jsonSchema?.properties) {\n return [];\n }\n\n const properties = userSchema.jsonSchema.properties;\n return Object.keys(properties)\n .filter((key) => properties[key]['x-wix-archived'])\n .map((key) => ({\n ...properties[key],\n id: key,\n label: properties[key]?.title || key,\n isPii: Boolean(properties[key]?.['x-wix-pii']?.enabled),\n }));\n }\n\n get shouldDisplayArchive() {\n return this.enableArchive && this.archivedItems.length > 0;\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 openDeleteConfirmModal({ id, origin }: { id: string; origin: string }) {\n this.deleteConfirmModal.open({ id, origin });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_services","require","_TaskState","_mobx","_util","_DataExtensionField","_ConditionalModalState","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_CUSTOM_FIELDS","exports","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","TaskState","ConditionalModalState","container","disableUserDefinedWriting","filterable","enableArchive","closeSidePanel","_extensionPoint","extensionPoint","dataExtensionService","DataExtensionSchemaService","containsPii","defaultPermissions","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","archivedItems","shouldDisplayArchive","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","_dataExtensionSchemasBase","observable","ref","_dataExtensionSchemas","userSchema","appSchemas","_upsertSchema","action","isArchivedPanelOpen","openArchivedPanel","closeArchivedPanel","openDeleteConfirmModal","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","getArchiveSuccessToastMessage","fieldName","selectedField","getArchiveSuccessToastAction","text","uiType","onClick","_this$openArchivedPan","getFieldOperationsService","_fieldOperationsService","_fieldOperationsServicePromise","Promise","resolve","then","module","self","DataExtensionFieldOperationsService","extractFieldValuesFromSchema","bind","upsertSchema","archiveField","id","origin","reportBi","service","restoreField","deleteField","fieldId","_customField$xWixPi","customField","toCustomField","type","title","read","write","isPiiField","enabled","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","Boolean","_toCustomField","schema","editable","owner","namespace","_schema$xWixPii","label","maxLength","options","enum","properties","isPii","isSupportedFieldType","getAvailableCustomFieldsInSchema","requiredPermissions","filteredFields","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","isAppNamespace","fields","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","_appSchema$jsonSchema2","concat","_userSchema$jsonSchem","_properties$key","_properties$key2","length","allNamespaces","_this$userSchema3","init","initTask","runOnce","fetchSchemas","newSchema","index","findIndex","dataExtensionSchemas","runInAction","deleteConfirmModal","open"],"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 type { DataExtensionFieldOperationsService } from '../services/DataExtensionFieldOperationsService';\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 { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\nimport { ConditionalModalState } from './ConditionalModalState';\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\n/**\n * Manages data extension schemas and custom fields for a collection\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 // Lazy-loaded service for field operations (archive/restore/delete)\n private _fieldOperationsService?: DataExtensionFieldOperationsService;\n private _fieldOperationsServicePromise?: Promise<DataExtensionFieldOperationsService>;\n\n readonly deleteConfirmModal = new ConditionalModalState<{\n id: string;\n origin: string;\n }>();\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 ?? true;\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 archivedItems: computed,\n shouldDisplayArchive: 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 openDeleteConfirmModal: 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 /**\n * Lazily loads the field operations service to reduce bundle size.\n * Only loads when archive/restore/delete operations are needed.\n */\n private async getFieldOperationsService(): Promise<DataExtensionFieldOperationsService> {\n if (this._fieldOperationsService) {\n return this._fieldOperationsService;\n }\n\n // Reuse the same promise if already loading\n if (this._fieldOperationsServicePromise) {\n return this._fieldOperationsServicePromise;\n }\n\n this._fieldOperationsServicePromise = import(\n '../services/DataExtensionFieldOperationsService'\n ).then((module) => {\n const self = this;\n this._fieldOperationsService =\n new module.DataExtensionFieldOperationsService({\n container: this.container,\n dataExtensionService: this.dataExtensionService,\n get userSchema() {\n return self.userSchema;\n },\n fqdnString: this.fqdnString,\n enableArchive: this.enableArchive,\n extractFieldValuesFromSchema:\n this.extractFieldValuesFromSchema.bind(this),\n upsertSchema: this._upsertSchema.bind(this),\n openArchivedPanel: this.openArchivedPanel.bind(this),\n });\n return this._fieldOperationsService;\n });\n\n return this._fieldOperationsServicePromise;\n }\n\n async archiveField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.archiveField({ id, origin, reportBi });\n }\n\n async restoreField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.restoreField({ id, origin, reportBi });\n }\n\n async deleteField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.deleteField({ id, origin, reportBi });\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 isPii: Boolean(schema['x-wix-pii']?.enabled),\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 isAppNamespace = namespace !== userFieldsNamespace;\n\n const fields = this.getAvailableCustomFieldsInSchema(\n schema.jsonSchema?.properties || {},\n {\n editable: false,\n owner: isAppNamespace ? 'app' : 'user',\n namespace,\n requiredPermissions: isAppNamespace ? ['users'] : undefined,\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 archivedItems() {\n const userSchema = this.userSchema;\n if (!userSchema?.jsonSchema?.properties) {\n return [];\n }\n\n const properties = userSchema.jsonSchema.properties;\n return Object.keys(properties)\n .filter((key) => properties[key]['x-wix-archived'])\n .map((key) => ({\n ...properties[key],\n id: key,\n label: properties[key]?.title || key,\n isPii: Boolean(properties[key]?.['x-wix-pii']?.enabled),\n }));\n }\n\n get shouldDisplayArchive() {\n return this.enableArchive && this.archivedItems.length > 0;\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 openDeleteConfirmModal({ id, origin }: { id: string; origin: string }) {\n this.deleteConfirmModal.open({ id, origin });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,37 +6,35 @@ exports.DeleteFieldModalState = void 0;
|
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _mobx = require("mobx");
|
|
8
8
|
var _ConditionalModalState = require("./ConditionalModalState");
|
|
9
|
-
var
|
|
9
|
+
var _FieldOperationsBIReporter = require("./FieldOperationsBIReporter");
|
|
10
10
|
class DeleteFieldModalState {
|
|
11
11
|
constructor(params) {
|
|
12
12
|
(0, _defineProperty2.default)(this, "biReporter", void 0);
|
|
13
|
-
(0, _defineProperty2.default)(this, "
|
|
13
|
+
(0, _defineProperty2.default)(this, "fieldManagement", void 0);
|
|
14
|
+
(0, _defineProperty2.default)(this, "archive", void 0);
|
|
14
15
|
(0, _defineProperty2.default)(this, "modal", void 0);
|
|
15
|
-
this.biReporter = new
|
|
16
|
+
this.biReporter = new _FieldOperationsBIReporter.FieldOperationsBIReporter({
|
|
16
17
|
reportBi: params.reportBi
|
|
17
18
|
});
|
|
19
|
+
this.fieldManagement = params.fieldManagement;
|
|
20
|
+
this.archive = params.archive;
|
|
18
21
|
this.modal = new _ConditionalModalState.ConditionalModalState({
|
|
19
22
|
onConfirm: async () => {
|
|
20
23
|
if (!this.modal.value) {
|
|
21
24
|
return;
|
|
22
25
|
}
|
|
23
26
|
this.biReporter.reportDeleteFieldModalCtaClicked('Delete');
|
|
24
|
-
await this.
|
|
25
|
-
...this.modal.value,
|
|
26
|
-
reportBi: this.biReporter.reportBi
|
|
27
|
-
});
|
|
27
|
+
await this.fieldManagement.deleteField(this.modal.value.id, this.modal.value.origin);
|
|
28
28
|
|
|
29
29
|
// Close archived panel if no items left
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
this.dataExtension.closeArchivedPanel();
|
|
30
|
+
if (this.archive.items.length === 0) {
|
|
31
|
+
this.archive.closePanel();
|
|
33
32
|
}
|
|
34
33
|
},
|
|
35
34
|
onClose: () => {
|
|
36
35
|
this.biReporter.reportDeleteFieldModalCtaClicked('Cancel');
|
|
37
36
|
}
|
|
38
37
|
});
|
|
39
|
-
this.dataExtension = params.dataExtension;
|
|
40
38
|
(0, _mobx.makeAutoObservable)(this);
|
|
41
39
|
}
|
|
42
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_ConditionalModalState","
|
|
1
|
+
{"version":3,"names":["_mobx","require","_ConditionalModalState","_FieldOperationsBIReporter","DeleteFieldModalState","constructor","params","_defineProperty2","default","biReporter","FieldOperationsBIReporter","reportBi","fieldManagement","archive","modal","ConditionalModalState","onConfirm","value","reportDeleteFieldModalCtaClicked","deleteField","id","origin","items","length","closePanel","onClose","makeAutoObservable","exports"],"sources":["../../../src/state/DeleteFieldModalState.ts"],"sourcesContent":["import { makeAutoObservable } from 'mobx';\nimport { ReportBI } from '../services';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { FieldOperationsBIReporter } from './FieldOperationsBIReporter';\nimport { FieldArchive, FieldManagement } from '../types/FieldsSource';\n\nexport interface DeleteFieldModalStateParams {\n readonly fieldManagement: Pick<FieldManagement, 'deleteField'>;\n readonly archive: Pick<FieldArchive, 'items' | 'closePanel'>;\n readonly reportBi: ReportBI;\n}\n\nexport class DeleteFieldModalState {\n readonly biReporter;\n readonly fieldManagement;\n readonly archive;\n readonly modal;\n\n constructor(params: DeleteFieldModalStateParams) {\n this.biReporter = new FieldOperationsBIReporter({\n reportBi: params.reportBi,\n });\n this.fieldManagement = params.fieldManagement;\n this.archive = params.archive;\n this.modal = new ConditionalModalState<{\n id: string;\n origin: string;\n fieldName: string;\n }>({\n onConfirm: async () => {\n if (!this.modal.value) {\n return;\n }\n\n this.biReporter.reportDeleteFieldModalCtaClicked('Delete');\n await this.fieldManagement.deleteField(\n this.modal.value.id,\n this.modal.value.origin,\n );\n\n // Close archived panel if no items left\n if (this.archive.items.length === 0) {\n this.archive.closePanel();\n }\n },\n onClose: () => {\n this.biReporter.reportDeleteFieldModalCtaClicked('Cancel');\n },\n });\n makeAutoObservable(this);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AASO,MAAMG,qBAAqB,CAAC;EAMjCC,WAAWA,CAACC,MAAmC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAC/C,IAAI,CAACC,UAAU,GAAG,IAAIC,oDAAyB,CAAC;MAC9CC,QAAQ,EAAEL,MAAM,CAACK;IACnB,CAAC,CAAC;IACF,IAAI,CAACC,eAAe,GAAGN,MAAM,CAACM,eAAe;IAC7C,IAAI,CAACC,OAAO,GAAGP,MAAM,CAACO,OAAO;IAC7B,IAAI,CAACC,KAAK,GAAG,IAAIC,4CAAqB,CAInC;MACDC,SAAS,EAAE,MAAAA,CAAA,KAAY;QACrB,IAAI,CAAC,IAAI,CAACF,KAAK,CAACG,KAAK,EAAE;UACrB;QACF;QAEA,IAAI,CAACR,UAAU,CAACS,gCAAgC,CAAC,QAAQ,CAAC;QAC1D,MAAM,IAAI,CAACN,eAAe,CAACO,WAAW,CACpC,IAAI,CAACL,KAAK,CAACG,KAAK,CAACG,EAAE,EACnB,IAAI,CAACN,KAAK,CAACG,KAAK,CAACI,MACnB,CAAC;;QAED;QACA,IAAI,IAAI,CAACR,OAAO,CAACS,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;UACnC,IAAI,CAACV,OAAO,CAACW,UAAU,CAAC,CAAC;QAC3B;MACF,CAAC;MACDC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAAChB,UAAU,CAACS,gCAAgC,CAAC,QAAQ,CAAC;MAC5D;IACF,CAAC,CAAC;IACF,IAAAQ,wBAAkB,EAAC,IAAI,CAAC;EAC1B;AACF;AAACC,OAAA,CAAAvB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.
|
|
5
|
+
exports.FieldOperationsBIReporter = void 0;
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _util = require("../util");
|
|
8
8
|
var _v = require("@wix/bex-utils/@wix/bi-logger-os-data/v2");
|
|
9
|
-
|
|
9
|
+
var _formatPermissionsForBi = require("./formatPermissionsForBi");
|
|
10
|
+
class FieldOperationsBIReporter {
|
|
10
11
|
constructor(params) {
|
|
11
12
|
(0, _defineProperty2.default)(this, "reportBi", void 0);
|
|
12
13
|
(0, _defineProperty2.default)(this, "reportArchiveFieldModalCtaClicked", ctaName => {
|
|
@@ -32,7 +33,7 @@ class DataExtensionStateBIReporter {
|
|
|
32
33
|
actionName: 'Archive',
|
|
33
34
|
errorType: 'Technical issue',
|
|
34
35
|
origin,
|
|
35
|
-
permissions:
|
|
36
|
+
permissions: (0, _formatPermissionsForBi.formatPermissionsForBi)(formValues),
|
|
36
37
|
fieldType: formValues.type,
|
|
37
38
|
fieldName: formValues.name,
|
|
38
39
|
key: formValues.key
|
|
@@ -55,7 +56,7 @@ class DataExtensionStateBIReporter {
|
|
|
55
56
|
actionName: 'Restore',
|
|
56
57
|
errorType: 'Technical issue',
|
|
57
58
|
origin,
|
|
58
|
-
permissions:
|
|
59
|
+
permissions: (0, _formatPermissionsForBi.formatPermissionsForBi)(formValues),
|
|
59
60
|
fieldType: formValues.type,
|
|
60
61
|
fieldName: formValues.name,
|
|
61
62
|
key: formValues.key
|
|
@@ -72,32 +73,6 @@ class DataExtensionStateBIReporter {
|
|
|
72
73
|
} = params;
|
|
73
74
|
this.reportBi = reportBi;
|
|
74
75
|
}
|
|
75
|
-
getBiPermissions(formValues) {
|
|
76
|
-
const {
|
|
77
|
-
readApps,
|
|
78
|
-
readUsers,
|
|
79
|
-
writeApps,
|
|
80
|
-
writeUsers
|
|
81
|
-
} = formValues;
|
|
82
|
-
const apps = [];
|
|
83
|
-
const users = [];
|
|
84
|
-
if (readApps) {
|
|
85
|
-
apps.push('Read');
|
|
86
|
-
}
|
|
87
|
-
if (writeApps) {
|
|
88
|
-
apps.push('Write');
|
|
89
|
-
}
|
|
90
|
-
if (readUsers) {
|
|
91
|
-
users.push('Read');
|
|
92
|
-
}
|
|
93
|
-
if (writeUsers) {
|
|
94
|
-
users.push('Write');
|
|
95
|
-
}
|
|
96
|
-
return JSON.stringify({
|
|
97
|
-
'Installed apps': apps.length !== 0 ? apps.join(' and ') : null,
|
|
98
|
-
'Site visitors': users.length !== 0 ? users.join(' and ') : null
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
76
|
}
|
|
102
|
-
exports.
|
|
103
|
-
//# sourceMappingURL=
|
|
77
|
+
exports.FieldOperationsBIReporter = FieldOperationsBIReporter;
|
|
78
|
+
//# sourceMappingURL=FieldOperationsBIReporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_util","require","_v","_formatPermissionsForBi","FieldOperationsBIReporter","constructor","params","_defineProperty2","default","ctaName","reportBi","withoutDefaults","cairoModalCtaClicked","modalName","origin","formValues","cairoDataExtensionUnsuccessfulUpdateInServer","actionName","errorType","permissions","formatPermissionsForBi","fieldType","type","fieldName","name","key","cairoTryAgainClicked","loaction","exports"],"sources":["../../../src/state/FieldOperationsBIReporter.ts"],"sourcesContent":["import { ReportBI } from '../services';\nimport { withoutDefaults } from '../util';\nimport {\n cairoDataExtensionUnsuccessfulUpdateInServer,\n cairoModalCtaClicked,\n cairoTryAgainClicked,\n} from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { CustomFieldForm } from './CustomFieldModalState';\nimport { formatPermissionsForBi } from './formatPermissionsForBi';\n\nexport interface FieldOperationsBIReporterParams {\n reportBi: ReportBI;\n}\n\nexport class FieldOperationsBIReporter {\n readonly reportBi: ReportBI;\n\n constructor(params: Readonly<FieldOperationsBIReporterParams>) {\n const { reportBi } = params;\n\n this.reportBi = reportBi;\n }\n\n reportArchiveFieldModalCtaClicked = (ctaName: string) => {\n this.reportBi(\n withoutDefaults(cairoModalCtaClicked)({\n ctaName,\n modalName: 'Archive custom field',\n }),\n );\n };\n\n reportDeleteFieldModalCtaClicked = (ctaName: string) => {\n this.reportBi(\n withoutDefaults(cairoModalCtaClicked)({\n ctaName,\n modalName: 'Delete custom field',\n }),\n );\n };\n\n reportArchiveFieldFailed = ({\n origin,\n formValues,\n }: {\n origin: string;\n formValues?: CustomFieldForm;\n }) => {\n if (!formValues) {\n return;\n }\n\n this.reportBi(\n withoutDefaults(cairoDataExtensionUnsuccessfulUpdateInServer)({\n actionName: 'Archive',\n errorType: 'Technical issue',\n origin,\n permissions: formatPermissionsForBi(formValues),\n fieldType: formValues.type,\n fieldName: formValues.name,\n key: formValues.key,\n }),\n );\n };\n\n reportArchiveTryAgain = () => {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName: 'Archive custom field',\n loaction: 'toast',\n }),\n );\n };\n\n reportRestoreFieldFailed = ({\n origin,\n formValues,\n }: {\n origin: string;\n formValues?: CustomFieldForm;\n }) => {\n if (!formValues) {\n return;\n }\n\n this.reportBi(\n withoutDefaults(cairoDataExtensionUnsuccessfulUpdateInServer)({\n actionName: 'Restore',\n errorType: 'Technical issue',\n origin,\n permissions: formatPermissionsForBi(formValues),\n fieldType: formValues.type,\n fieldName: formValues.name,\n key: formValues.key,\n }),\n );\n };\n\n reportRestoreTryAgain = () => {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName: 'Restore custom field',\n loaction: 'toast',\n }),\n );\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,EAAA,GAAAD,OAAA;AAMA,IAAAE,uBAAA,GAAAF,OAAA;AAMO,MAAMG,yBAAyB,CAAC;EAGrCC,WAAWA,CAACC,MAAiD,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6CAM1BC,OAAe,IAAK;MACvD,IAAI,CAACC,QAAQ,CACX,IAAAC,qBAAe,EAACC,uBAAoB,CAAC,CAAC;QACpCH,OAAO;QACPI,SAAS,EAAE;MACb,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,4CAEmCC,OAAe,IAAK;MACtD,IAAI,CAACC,QAAQ,CACX,IAAAC,qBAAe,EAACC,uBAAoB,CAAC,CAAC;QACpCH,OAAO;QACPI,SAAS,EAAE;MACb,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,oCAE0B,CAAC;MAC1BM,MAAM;MACNC;IAIF,CAAC,KAAK;MACJ,IAAI,CAACA,UAAU,EAAE;QACf;MACF;MAEA,IAAI,CAACL,QAAQ,CACX,IAAAC,qBAAe,EAACK,+CAA4C,CAAC,CAAC;QAC5DC,UAAU,EAAE,SAAS;QACrBC,SAAS,EAAE,iBAAiB;QAC5BJ,MAAM;QACNK,WAAW,EAAE,IAAAC,8CAAsB,EAACL,UAAU,CAAC;QAC/CM,SAAS,EAAEN,UAAU,CAACO,IAAI;QAC1BC,SAAS,EAAER,UAAU,CAACS,IAAI;QAC1BC,GAAG,EAAEV,UAAU,CAACU;MAClB,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAAlB,gBAAA,CAAAC,OAAA,iCAEuB,MAAM;MAC5B,IAAI,CAACE,QAAQ,CACX,IAAAC,qBAAe,EAACe,uBAAoB,CAAC,CAAC;QACpCT,UAAU,EAAE,sBAAsB;QAClCU,QAAQ,EAAE;MACZ,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAApB,gBAAA,CAAAC,OAAA,oCAE0B,CAAC;MAC1BM,MAAM;MACNC;IAIF,CAAC,KAAK;MACJ,IAAI,CAACA,UAAU,EAAE;QACf;MACF;MAEA,IAAI,CAACL,QAAQ,CACX,IAAAC,qBAAe,EAACK,+CAA4C,CAAC,CAAC;QAC5DC,UAAU,EAAE,SAAS;QACrBC,SAAS,EAAE,iBAAiB;QAC5BJ,MAAM;QACNK,WAAW,EAAE,IAAAC,8CAAsB,EAACL,UAAU,CAAC;QAC/CM,SAAS,EAAEN,UAAU,CAACO,IAAI;QAC1BC,SAAS,EAAER,UAAU,CAACS,IAAI;QAC1BC,GAAG,EAAEV,UAAU,CAACU;MAClB,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAAlB,gBAAA,CAAAC,OAAA,iCAEuB,MAAM;MAC5B,IAAI,CAACE,QAAQ,CACX,IAAAC,qBAAe,EAACe,uBAAoB,CAAC,CAAC;QACpCT,UAAU,EAAE,sBAAsB;QAClCU,QAAQ,EAAE;MACZ,CAAC,CACH,CAAC;IACH,CAAC;IAvFC,MAAM;MAAEjB;IAAS,CAAC,GAAGJ,MAAM;IAE3B,IAAI,CAACI,QAAQ,GAAGA,QAAQ;EAC1B;AAqFF;AAACkB,OAAA,CAAAxB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -50,6 +50,9 @@ var _fieldEdit = require("./fieldEdit");
|
|
|
50
50
|
// Re-export the write-policy enum so consumers (and the cairo UI) reference it
|
|
51
51
|
// from `@wix/bex-core` rather than the bundled ambassador path.
|
|
52
52
|
|
|
53
|
+
// Re-export the destination type for platformized consumers that supply their
|
|
54
|
+
// own variant (e.g. `{ storesCatalogProducts: {} }`) — same reason as above.
|
|
55
|
+
|
|
53
56
|
// Per-type configuration for a new field, captured from the "Edit field" editor
|
|
54
57
|
// (CAIRO-4398). All optional — an unedited field carries none and is created
|
|
55
58
|
// from detected defaults only. `displayName` is intentionally not here: the
|
|
@@ -130,6 +133,7 @@ class ImportState {
|
|
|
130
133
|
constructor(props) {
|
|
131
134
|
(0, _defineProperty2.default)(this, "fields", void 0);
|
|
132
135
|
(0, _defineProperty2.default)(this, "collectionId", void 0);
|
|
136
|
+
(0, _defineProperty2.default)(this, "destination", void 0);
|
|
133
137
|
(0, _defineProperty2.default)(this, "backup", void 0);
|
|
134
138
|
(0, _defineProperty2.default)(this, "updateSchema", void 0);
|
|
135
139
|
(0, _defineProperty2.default)(this, "collection", void 0);
|
|
@@ -149,6 +153,12 @@ class ImportState {
|
|
|
149
153
|
(0, _defineProperty2.default)(this, "fileName", '');
|
|
150
154
|
(0, _defineProperty2.default)(this, "csvHeaders", []);
|
|
151
155
|
(0, _defineProperty2.default)(this, "csvRows", []);
|
|
156
|
+
// Header display order for the configuration step, snapshotted when the file
|
|
157
|
+
// is parsed. The column auto-mapped to `_id` floats to the top (CAIRO-4418);
|
|
158
|
+
// the order then stays fixed while the user edits mappings, so clearing or
|
|
159
|
+
// remapping the `_id` column can't reorder the row under the user's cursor.
|
|
160
|
+
// Recomputed only on a new file (`applyParsedCsv`) or a full `reset()`.
|
|
161
|
+
(0, _defineProperty2.default)(this, "orderedHeaders", []);
|
|
152
162
|
(0, _defineProperty2.default)(this, "mappingByHeader", {});
|
|
153
163
|
// How rows that collide on `_id` are written. Only meaningful (and only sent
|
|
154
164
|
// to the server) when a CSV column is mapped to the `_id` field — see
|
|
@@ -180,6 +190,7 @@ class ImportState {
|
|
|
180
190
|
(0, _defineProperty2.default)(this, "_editingHeader", null);
|
|
181
191
|
this.fields = props.fields ?? [];
|
|
182
192
|
this.collectionId = props.collectionId;
|
|
193
|
+
this.destination = props.destination;
|
|
183
194
|
this.backup = props.backup;
|
|
184
195
|
this.updateSchema = props.updateSchema;
|
|
185
196
|
this.collection = props.collection;
|
|
@@ -200,6 +211,7 @@ class ImportState {
|
|
|
200
211
|
fileName: _mobx.observable.ref,
|
|
201
212
|
csvHeaders: _mobx.observable.ref,
|
|
202
213
|
csvRows: _mobx.observable.ref,
|
|
214
|
+
orderedHeaders: _mobx.observable.ref,
|
|
203
215
|
mappingByHeader: _mobx.observable.ref,
|
|
204
216
|
writePolicy: _mobx.observable.ref,
|
|
205
217
|
processedCount: _mobx.observable.ref,
|
|
@@ -290,6 +302,19 @@ class ImportState {
|
|
|
290
302
|
get canCreateNewField() {
|
|
291
303
|
return this.updateSchema != null;
|
|
292
304
|
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Whether the write-policy (id-collision) choice is meaningful for this import.
|
|
308
|
+
* `writePolicy` is a `wixDataCollection`-only concept, and `_destination` only
|
|
309
|
+
* attaches it when Cairo builds that destination itself. A consumer-supplied
|
|
310
|
+
* (platformized) `destination` is sent verbatim with no place to carry it, so
|
|
311
|
+
* the choice would be a no-op — the UI hides the control in that case. Fixed at
|
|
312
|
+
* construction (depends only on the `destination` prop), so it isn't an
|
|
313
|
+
* observable.
|
|
314
|
+
*/
|
|
315
|
+
get canConfigureWritePolicy() {
|
|
316
|
+
return this.destination == null;
|
|
317
|
+
}
|
|
293
318
|
reset() {
|
|
294
319
|
var _this$_abortControlle;
|
|
295
320
|
(_this$_abortControlle = this._abortController) == null || _this$_abortControlle.abort();
|
|
@@ -301,6 +326,7 @@ class ImportState {
|
|
|
301
326
|
this.fileName = '';
|
|
302
327
|
this.csvHeaders = [];
|
|
303
328
|
this.csvRows = [];
|
|
329
|
+
this.orderedHeaders = [];
|
|
304
330
|
this.mappingByHeader = {};
|
|
305
331
|
this.writePolicy = _types.WritePolicy.OVERWRITE;
|
|
306
332
|
this.processedCount = 0;
|
|
@@ -422,11 +448,22 @@ class ImportState {
|
|
|
422
448
|
_columnValues(columnIndex) {
|
|
423
449
|
return this.csvRows.slice(0, _detectFieldType.TYPE_SAMPLE_SIZE).map(row => row[columnIndex] ?? '');
|
|
424
450
|
}
|
|
451
|
+
|
|
452
|
+
// Puts the `_id`-mapped column first (CAIRO-4418), preserving CSV order for the
|
|
453
|
+
// rest. Returns a fresh array so the snapshot doesn't alias `csvHeaders`.
|
|
454
|
+
_orderHeadersWithIdFirst(headers) {
|
|
455
|
+
const idHeader = this.idMappedHeader;
|
|
456
|
+
return idHeader != null ? [idHeader, ...headers.filter(header => header !== idHeader)] : [...headers];
|
|
457
|
+
}
|
|
425
458
|
applyParsedCsv(fileName, parsedCsv) {
|
|
426
459
|
this.fileName = fileName;
|
|
427
460
|
this.csvHeaders = parsedCsv.headers;
|
|
428
461
|
this.csvRows = parsedCsv.rows;
|
|
429
462
|
this.mappingByHeader = this.getDefaultMapping(parsedCsv.headers);
|
|
463
|
+
// Snapshot the row order for this file with the auto-mapped `_id` column
|
|
464
|
+
// first. Reads `idMappedHeader`, so it must run after `mappingByHeader` is
|
|
465
|
+
// set. Kept stable until the next file so mapping edits don't reorder rows.
|
|
466
|
+
this.orderedHeaders = this._orderHeadersWithIdFirst(parsedCsv.headers);
|
|
430
467
|
// A new file is a fresh import: start from the default policy so a prior
|
|
431
468
|
// file's Skip choice doesn't silently carry over (only the new-file path
|
|
432
469
|
// resets — remapping `_id` within the same file keeps the user's choice).
|
|
@@ -483,6 +520,7 @@ class ImportState {
|
|
|
483
520
|
this.fileName = file.name;
|
|
484
521
|
this.csvHeaders = [];
|
|
485
522
|
this.csvRows = [];
|
|
523
|
+
this.orderedHeaders = [];
|
|
486
524
|
this.mappingByHeader = {};
|
|
487
525
|
this.currentStep = 'upload';
|
|
488
526
|
});
|
|
@@ -725,10 +763,16 @@ class ImportState {
|
|
|
725
763
|
return this.result;
|
|
726
764
|
}
|
|
727
765
|
|
|
728
|
-
// Destination
|
|
729
|
-
//
|
|
730
|
-
//
|
|
766
|
+
// Destination the job writes into. A platformized consumer supplies its own
|
|
767
|
+
// variant (e.g. `{ storesCatalogProducts: {} }`), which is sent verbatim.
|
|
768
|
+
// Otherwise this is the consumer's Wix Data collection, built from
|
|
769
|
+
// `collectionId`; `writePolicy` is sent only when a CSV column is mapped to
|
|
770
|
+
// `_id` (the only case collisions can occur), otherwise it's omitted and the
|
|
771
|
+
// server applies its default (upsert by `_id`).
|
|
731
772
|
_destination() {
|
|
773
|
+
if (this.destination) {
|
|
774
|
+
return this.destination;
|
|
775
|
+
}
|
|
732
776
|
return {
|
|
733
777
|
wixDataCollection: {
|
|
734
778
|
collectionId: this.collectionId,
|