@wix/bex-core 2.339.0 → 2.342.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/index.js.map +1 -1
- package/dist/cjs/state/CustomFieldModalState.js +53 -4
- package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
- package/dist/cjs/state/ImportState/ImportState.js.map +1 -1
- package/dist/cjs/testkit/createInMemorySchemaSource.js +6 -3
- package/dist/cjs/testkit/createInMemorySchemaSource.js.map +1 -1
- package/dist/cjs/types/FieldsSource.js.map +1 -1
- package/dist/cjs/types/Schema.js.map +1 -1
- package/dist/cjs/types/SchemaSource.js +11 -8
- package/dist/cjs/types/SchemaSource.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/state/CustomFieldModalState.js +46 -3
- package/dist/esm/state/CustomFieldModalState.js.map +1 -1
- package/dist/esm/testkit/createInMemorySchemaSource.js +6 -3
- package/dist/esm/testkit/createInMemorySchemaSource.js.map +1 -1
- package/dist/esm/types/SchemaSource.js +2 -4
- package/dist/esm/types/SchemaSource.js.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/state/CustomFieldModalState.d.ts +15 -2
- package/dist/types/state/CustomFieldModalState.d.ts.map +1 -1
- package/dist/types/state/ImportState/ImportState.d.ts +1 -1
- package/dist/types/testkit/createInMemorySchemaSource.d.ts +4 -3
- package/dist/types/testkit/createInMemorySchemaSource.d.ts.map +1 -1
- package/dist/types/types/FieldsSource.d.ts +56 -19
- package/dist/types/types/FieldsSource.d.ts.map +1 -1
- package/dist/types/types/Schema.d.ts +9 -2
- package/dist/types/types/Schema.d.ts.map +1 -1
- package/dist/types/types/SchemaSource.d.ts +29 -16
- package/dist/types/types/SchemaSource.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_model","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_state","_services","_util","_useExport","_useImport","_createCollection","_useCollectionDatasetSync","_hooks","CollectionConfigWithConditionals","CollectionFactory","useSyncProps","useSelector","_core","QueryCache","_DeepPartial","DeepPartial","_SchemaSource","defineSchemaSource","sourceFetchData","_FieldTypeDefinition"],"sources":["../../src/index.ts"],"sourcesContent":["export * from './model';\nexport * from './state';\nexport * from './services';\nexport * from './util';\nexport * from './hooks/useExport';\nexport * from './hooks/useImport';\nexport * from './hooks/createCollection';\nexport * from './hooks/useCollectionDatasetSync';\nexport {\n CollectionConfigWithConditionals,\n CollectionFactory,\n useSyncProps,\n useSelector,\n} from './hooks';\nexport { QueryCache } from 'react-query/core';\nexport { DeepPartial } from './types/DeepPartial';\nexport type {\n PatternsFieldType,\n QueryOperator,\n NumberRange,\n StringLengthRange,\n BaseReferenceField,\n ReferenceField,\n MultiReferenceField,\n NonReferenceField,\n Field,\n FieldSpec,\n} from './types/Field';\nexport type {\n Schema,\n SchemaPermissions,\n ItemPermissions,\n RemoveItemDisabledResult,\n CollectionBackendBase,\n CollectionBackend,\n FieldActions,\n BackupConfig,\n BulkInsertResult,\n BulkInsertError,\n LoadedSchema,\n SchemaLoader,\n FindOptions,\n} from './types/Schema';\nexport type {\n FieldsSource,\n FieldManagement,\n FieldArchive,\n ArchivedFieldItem,\n
|
|
1
|
+
{"version":3,"names":["_model","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_state","_services","_util","_useExport","_useImport","_createCollection","_useCollectionDatasetSync","_hooks","CollectionConfigWithConditionals","CollectionFactory","useSyncProps","useSelector","_core","QueryCache","_DeepPartial","DeepPartial","_SchemaSource","defineSchemaSource","sourceFetchData","_FieldTypeDefinition"],"sources":["../../src/index.ts"],"sourcesContent":["export * from './model';\nexport * from './state';\nexport * from './services';\nexport * from './util';\nexport * from './hooks/useExport';\nexport * from './hooks/useImport';\nexport * from './hooks/createCollection';\nexport * from './hooks/useCollectionDatasetSync';\nexport {\n CollectionConfigWithConditionals,\n CollectionFactory,\n useSyncProps,\n useSelector,\n} from './hooks';\nexport { QueryCache } from 'react-query/core';\nexport { DeepPartial } from './types/DeepPartial';\nexport type {\n PatternsFieldType,\n QueryOperator,\n NumberRange,\n StringLengthRange,\n BaseReferenceField,\n ReferenceField,\n MultiReferenceField,\n NonReferenceField,\n Field,\n FieldSpec,\n} from './types/Field';\nexport type {\n Schema,\n SchemaPermissions,\n ItemPermissions,\n RemoveItemDisabledResult,\n CollectionBackendBase,\n CollectionBackend,\n FieldActions,\n FieldSettings,\n BackupConfig,\n BulkInsertResult,\n BulkInsertError,\n LoadedSchema,\n SchemaLoader,\n FindOptions,\n} from './types/Schema';\nexport type {\n FieldsSource,\n FieldManagement,\n FieldArchive,\n ArchivedFieldItem,\n ResolvedFieldTypeOption,\n FieldPermissions,\n FieldDraft,\n FieldModalText,\n FieldModalSubtitle,\n FieldPiiWarning,\n FieldSettingsProps,\n FieldSettingsSection,\n} from './types/FieldsSource';\nexport { defineSchemaSource, sourceFetchData } from './types/SchemaSource';\nexport type {\n SchemaSource,\n SchemaSourceInput,\n FieldModalInput,\n FieldTypeOption,\n} from './types/SchemaSource';\nexport * from './types/FieldTypeDefinition';\nexport type {\n CursorQuery,\n OffsetQuery,\n CursorQueryResult,\n OffsetQueryResult,\n CursorFetchDataFn,\n OffsetFetchDataFn,\n FetchTotalFn,\n} from './hooks/paginationModeConfig';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -42,6 +42,10 @@ class CustomFieldModalState {
|
|
|
42
42
|
this.enableAutoValidation();
|
|
43
43
|
throw new Error('validation');
|
|
44
44
|
}
|
|
45
|
+
if (this.settingsHasError) {
|
|
46
|
+
this.settings.setOn();
|
|
47
|
+
throw new Error('validation');
|
|
48
|
+
}
|
|
45
49
|
try {
|
|
46
50
|
var _this$container$showT, _this$container;
|
|
47
51
|
const draft = this.getFormValues();
|
|
@@ -149,11 +153,14 @@ class CustomFieldModalState {
|
|
|
149
153
|
selectedFieldType: _mobx.computed,
|
|
150
154
|
namePlaceholder: _mobx.computed,
|
|
151
155
|
typeSupportsPii: _mobx.computed,
|
|
156
|
+
showSettings: _mobx.computed,
|
|
157
|
+
settingsHasError: _mobx.computed,
|
|
152
158
|
isSubmitting: _mobx.computed,
|
|
153
159
|
disabledFields: _mobx.observable.ref,
|
|
154
160
|
errorToastConfig: _mobx.observable.ref,
|
|
155
161
|
mode: _mobx.observable.ref,
|
|
156
162
|
reset: _mobx.action,
|
|
163
|
+
resetSettingsValues: _mobx.action,
|
|
157
164
|
setFormValues: _mobx.action,
|
|
158
165
|
generateUniqueKey: _mobx.action.bound,
|
|
159
166
|
setKeyFieldIfNotDirty: _mobx.action.bound,
|
|
@@ -206,6 +213,7 @@ class CustomFieldModalState {
|
|
|
206
213
|
} = this;
|
|
207
214
|
form.reset();
|
|
208
215
|
settings.setOff();
|
|
216
|
+
this.resetSettingsValues();
|
|
209
217
|
this.errorToastConfig = undefined;
|
|
210
218
|
this.disableAutoValidation();
|
|
211
219
|
permissions.read.apps = false;
|
|
@@ -213,6 +221,16 @@ class CustomFieldModalState {
|
|
|
213
221
|
permissions.write.apps = false;
|
|
214
222
|
permissions.write.users = false;
|
|
215
223
|
}
|
|
224
|
+
|
|
225
|
+
/** Clears the settings sections back to their defaults. Goes over every type
|
|
226
|
+
* option rather than the picked one: `reset()` runs after the form is
|
|
227
|
+
* cleared, when no type is picked. */
|
|
228
|
+
resetSettingsValues() {
|
|
229
|
+
this.fieldManagement.fieldModal.types.forEach(type => {
|
|
230
|
+
var _type$settingsSection;
|
|
231
|
+
return (_type$settingsSection = type.settingsSection) == null ? void 0 : _type$settingsSection.setValues();
|
|
232
|
+
});
|
|
233
|
+
}
|
|
216
234
|
enableAutoValidation() {
|
|
217
235
|
const {
|
|
218
236
|
form: {
|
|
@@ -242,6 +260,7 @@ class CustomFieldModalState {
|
|
|
242
260
|
type.disableAutoValidation();
|
|
243
261
|
}
|
|
244
262
|
getFormValues() {
|
|
263
|
+
var _this$settingsSection;
|
|
245
264
|
const {
|
|
246
265
|
form: {
|
|
247
266
|
$: {
|
|
@@ -264,10 +283,12 @@ class CustomFieldModalState {
|
|
|
264
283
|
readUsers: readUsers.value,
|
|
265
284
|
writeApps: writeApps.value,
|
|
266
285
|
writeUsers: writeUsers.value,
|
|
267
|
-
containsPii: containsPii.value
|
|
286
|
+
containsPii: containsPii.value,
|
|
287
|
+
settings: (_this$settingsSection = this.settingsSection) == null ? void 0 : _this$settingsSection.getValues(type.value)
|
|
268
288
|
};
|
|
269
289
|
}
|
|
270
290
|
setFormValues(form, params) {
|
|
291
|
+
var _this$settingsSection2;
|
|
271
292
|
const {
|
|
272
293
|
form: {
|
|
273
294
|
$
|
|
@@ -281,6 +302,8 @@ class CustomFieldModalState {
|
|
|
281
302
|
$.writeApps.value = form.writeApps;
|
|
282
303
|
$.writeUsers.value = form.writeUsers;
|
|
283
304
|
$.containsPii.value = form.containsPii;
|
|
305
|
+
// After `$.type.value` above, so it lands on the picked type's section.
|
|
306
|
+
(_this$settingsSection2 = this.settingsSection) == null || _this$settingsSection2.setValues(form.field);
|
|
284
307
|
if (params != null && params.disablePermissionCheckboxes) {
|
|
285
308
|
if (form.readUsers) {
|
|
286
309
|
this.disabledFields.permissions.read.users = true;
|
|
@@ -303,7 +326,7 @@ class CustomFieldModalState {
|
|
|
303
326
|
$
|
|
304
327
|
}
|
|
305
328
|
} = this;
|
|
306
|
-
const permissions = this.fieldManagement.permissions;
|
|
329
|
+
const permissions = this.fieldManagement.fieldModal.permissions;
|
|
307
330
|
if (!(permissions != null && (_permissions$installe = permissions.installedApps) != null && _permissions$installe.hide)) {
|
|
308
331
|
var _permissions$installe2, _permissions$installe3;
|
|
309
332
|
$.readApps.value = !!(permissions != null && (_permissions$installe2 = permissions.installedApps) != null && _permissions$installe2.defaultRead);
|
|
@@ -340,7 +363,7 @@ class CustomFieldModalState {
|
|
|
340
363
|
return this.modalState.modal.confirming.isLoading;
|
|
341
364
|
}
|
|
342
365
|
get selectedFieldType() {
|
|
343
|
-
return this.fieldManagement.
|
|
366
|
+
return this.fieldManagement.fieldModal.types.find(option => option.id === this.form.$.type.value);
|
|
344
367
|
}
|
|
345
368
|
get namePlaceholder() {
|
|
346
369
|
var _this$selectedFieldTy, _this$selectedFieldTy2;
|
|
@@ -356,7 +379,33 @@ class CustomFieldModalState {
|
|
|
356
379
|
if (this.form.$.type.value == null) {
|
|
357
380
|
return false;
|
|
358
381
|
}
|
|
359
|
-
return ((_this$selectedFieldTy3 = this.selectedFieldType) == null ? void 0 : _this$selectedFieldTy3.supportsPii) ?? this.fieldManagement.supportsPii ?? false;
|
|
382
|
+
return ((_this$selectedFieldTy3 = this.selectedFieldType) == null ? void 0 : _this$selectedFieldTy3.supportsPii) ?? this.fieldManagement.fieldModal.supportsPii ?? false;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/** The picked type's settings section. Editing a field of a type the source
|
|
386
|
+
* can't create finds no entry for it, so it falls back to the first section
|
|
387
|
+
* the source declares — that field still has settings to show. */
|
|
388
|
+
get settingsSection() {
|
|
389
|
+
var _this$selectedFieldTy4, _this$fieldManagement;
|
|
390
|
+
if (!this.form.$.type.value) {
|
|
391
|
+
return undefined;
|
|
392
|
+
}
|
|
393
|
+
return ((_this$selectedFieldTy4 = this.selectedFieldType) == null ? void 0 : _this$selectedFieldTy4.settingsSection) ?? ((_this$fieldManagement = this.fieldManagement.fieldModal.types.find(t => t.settingsSection)) == null ? void 0 : _this$fieldManagement.settingsSection);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/** Not a computed: the warning may read data the source loaded outside MobX,
|
|
397
|
+
* so it's called afresh on every render. Same fallback as `settingsSection`. */
|
|
398
|
+
get piiWarning() {
|
|
399
|
+
var _this$selectedFieldTy5, _this$fieldManagement2;
|
|
400
|
+
const warning = ((_this$selectedFieldTy5 = this.selectedFieldType) == null ? void 0 : _this$selectedFieldTy5.piiWarning) ?? ((_this$fieldManagement2 = this.fieldManagement.fieldModal.types.find(t => t.piiWarning)) == null ? void 0 : _this$fieldManagement2.piiWarning);
|
|
401
|
+
return warning == null ? void 0 : warning();
|
|
402
|
+
}
|
|
403
|
+
get showSettings() {
|
|
404
|
+
return Boolean(this.fieldManagement.fieldModal.permissions) || Boolean(this.settingsSection);
|
|
405
|
+
}
|
|
406
|
+
get settingsHasError() {
|
|
407
|
+
var _this$settingsSection3;
|
|
408
|
+
return Boolean((_this$settingsSection3 = this.settingsSection) == null ? void 0 : _this$settingsSection3.hasError(this.form.$.type.value));
|
|
360
409
|
}
|
|
361
410
|
}
|
|
362
411
|
exports.CustomFieldModalState = CustomFieldModalState;
|
|
@@ -1 +1 @@
|
|
|
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","onSubmit","endType","addField","editField","key","container","showToast","call","message","type","biName","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","selectedFieldType","computed","namePlaceholder","typeSupportsPii","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","creatableFieldTypes","find","option","id","_this$selectedFieldTy","_this$selectedFieldTy2","label","_this$selectedFieldTy3","supportsPii","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 * Pure mode: when provided, confirm validates and hands the collected draft to\n * `onSubmit` instead of creating/editing the field through `fieldManagement`\n * (no server side effect, no success toast). Used by the CSV import flow, which\n * defers field creation to a single batch step before upload. `fieldManagement`\n * is still required — the form reads its creatable types/permissions/keys.\n */\n onSubmit?: (draft: FieldDraft) => void;\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 private readonly onSubmit?: (draft: FieldDraft) => void;\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\n // Pure mode (CSV import): hand the draft back; no server mutation, no\n // success toast (the field isn't created here — it's batched pre-upload).\n if (this.onSubmit) {\n this.onSubmit(draft);\n reportModalEndProcess({ endType: 'Add Field' });\n return;\n }\n\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.onSubmit = params.onSubmit;\n this.customFieldModalBiReporter = new CustomFieldModalBiReporter({\n customFieldModalState: this,\n });\n\n makeObservable(this, {\n selectedFieldType: computed,\n namePlaceholder: computed,\n typeSupportsPii: 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 selectedFieldType() {\n return this.fieldManagement.creatableFieldTypes.find(\n (option) => option.id === this.form.$.type.value,\n );\n }\n\n get namePlaceholder() {\n return (\n this.selectedFieldType?.namePlaceholder ??\n this.selectedFieldType?.label ??\n this.t('cairo.customFields.addCustomField.modal.fieldName.placeholder')\n );\n }\n\n /** Whether the PII toggle shows: the picked type decides, and a type with no\n * opinion follows the source. Checked on the raw value, not on\n * `selectedFieldType` — editing a field whose type the source can't create\n * finds no option, and the toggle still belongs there. */\n get typeSupportsPii() {\n if (this.form.$.type.value == null) {\n return false;\n }\n return (\n this.selectedFieldType?.supportsPii ??\n this.fieldManagement.supportsPii ??\n false\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","settingsHasError","settings","setOn","_this$container$showT","_this$container","draft","getFormValues","onSubmit","endType","addField","editField","key","container","showToast","call","message","type","biName","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","selectedFieldType","computed","namePlaceholder","typeSupportsPii","showSettings","isSubmitting","disabledFields","observable","ref","errorToastConfig","reset","action","resetSettingsValues","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","setOff","disableAutoValidation","fieldModal","types","forEach","_type$settingsSection","settingsSection","setValues","_this$settingsSection","getValues","_this$settingsSection2","field","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","find","option","id","_this$selectedFieldTy","_this$selectedFieldTy2","label","_this$selectedFieldTy3","supportsPii","_this$selectedFieldTy4","_this$fieldManagement","piiWarning","_this$selectedFieldTy5","_this$fieldManagement2","warning","Boolean","_this$settingsSection3","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 * Pure mode: when provided, confirm validates and hands the collected draft to\n * `onSubmit` instead of creating/editing the field through `fieldManagement`\n * (no server side effect, no success toast). Used by the CSV import flow, which\n * defers field creation to a single batch step before upload. `fieldManagement`\n * is still required — the form reads its type options/permissions/keys.\n */\n onSubmit?: (draft: FieldDraft) => void;\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 private readonly onSubmit?: (draft: FieldDraft) => void;\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 if (this.settingsHasError) {\n this.settings.setOn();\n throw new Error('validation');\n }\n\n try {\n const draft = this.getFormValues();\n\n // Pure mode (CSV import): hand the draft back; no server mutation, no\n // success toast (the field isn't created here — it's batched pre-upload).\n if (this.onSubmit) {\n this.onSubmit(draft);\n reportModalEndProcess({ endType: 'Add Field' });\n return;\n }\n\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.onSubmit = params.onSubmit;\n this.customFieldModalBiReporter = new CustomFieldModalBiReporter({\n customFieldModalState: this,\n });\n\n makeObservable(this, {\n selectedFieldType: computed,\n namePlaceholder: computed,\n typeSupportsPii: computed,\n showSettings: computed,\n settingsHasError: computed,\n isSubmitting: computed,\n disabledFields: observable.ref,\n errorToastConfig: observable.ref,\n mode: observable.ref,\n reset: action,\n resetSettingsValues: 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.resetSettingsValues();\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 /** Clears the settings sections back to their defaults. Goes over every type\n * option rather than the picked one: `reset()` runs after the form is\n * cleared, when no type is picked. */\n resetSettingsValues() {\n this.fieldManagement.fieldModal.types.forEach((type) =>\n type.settingsSection?.setValues(),\n );\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 settings: this.settingsSection?.getValues(type.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 // After `$.type.value` above, so it lands on the picked type's section.\n this.settingsSection?.setValues(form.field);\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.fieldModal.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 selectedFieldType() {\n return this.fieldManagement.fieldModal.types.find(\n (option) => option.id === this.form.$.type.value,\n );\n }\n\n get namePlaceholder() {\n return (\n this.selectedFieldType?.namePlaceholder ??\n this.selectedFieldType?.label ??\n this.t('cairo.customFields.addCustomField.modal.fieldName.placeholder')\n );\n }\n\n /** Whether the PII toggle shows: the picked type decides, and a type with no\n * opinion follows the source. Checked on the raw value, not on\n * `selectedFieldType` — editing a field whose type the source can't create\n * finds no option, and the toggle still belongs there. */\n get typeSupportsPii() {\n if (this.form.$.type.value == null) {\n return false;\n }\n return (\n this.selectedFieldType?.supportsPii ??\n this.fieldManagement.fieldModal.supportsPii ??\n false\n );\n }\n\n /** The picked type's settings section. Editing a field of a type the source\n * can't create finds no entry for it, so it falls back to the first section\n * the source declares — that field still has settings to show. */\n get settingsSection() {\n if (!this.form.$.type.value) {\n return undefined;\n }\n return (\n this.selectedFieldType?.settingsSection ??\n this.fieldManagement.fieldModal.types.find((t) => t.settingsSection)\n ?.settingsSection\n );\n }\n\n /** Not a computed: the warning may read data the source loaded outside MobX,\n * so it's called afresh on every render. Same fallback as `settingsSection`. */\n get piiWarning() {\n const warning =\n this.selectedFieldType?.piiWarning ??\n this.fieldManagement.fieldModal.types.find((t) => t.piiWarning)\n ?.piiWarning;\n return warning?.();\n }\n\n get showSettings() {\n return (\n Boolean(this.fieldManagement.fieldModal.permissions) ||\n Boolean(this.settingsSection)\n );\n }\n\n get settingsHasError() {\n return Boolean(this.settingsSection?.hasError(this.form.$.type.value));\n }\n}\n"],"mappings":"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","ignoreList":[]}
|