@wix/bex-core 2.366.0 → 2.368.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/state/CustomFieldModalState.js +62 -12
- package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
- package/dist/cjs/types/FieldTypeDefinition.js.map +1 -1
- package/dist/cjs/types/FieldsSource.js.map +1 -1
- package/dist/esm/state/CustomFieldModalState.js +50 -7
- package/dist/esm/state/CustomFieldModalState.js.map +1 -1
- package/dist/esm/types/FieldTypeDefinition.js.map +1 -1
- package/dist/types/state/CustomFieldModalState.d.ts +13 -6
- package/dist/types/state/CustomFieldModalState.d.ts.map +1 -1
- package/dist/types/types/FieldTypeDefinition.d.ts +17 -2
- package/dist/types/types/FieldTypeDefinition.d.ts.map +1 -1
- package/dist/types/types/FieldsSource.d.ts +17 -1
- package/dist/types/types/FieldsSource.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -31,6 +31,11 @@ class CustomFieldModalState {
|
|
|
31
31
|
(0, _defineProperty2.default)(this, "reportBi", void 0);
|
|
32
32
|
(0, _defineProperty2.default)(this, "onSubmit", void 0);
|
|
33
33
|
(0, _defineProperty2.default)(this, "collectionOptionsState", new _CustomFieldCollectionOptionsState.CustomFieldCollectionOptionsState());
|
|
34
|
+
/** The `required` value requested by `applyInitialField`, reapplied whenever
|
|
35
|
+
* the picked type changes — a type picked after the fact (or an unlocked
|
|
36
|
+
* type the user later changes) would otherwise start the settings section
|
|
37
|
+
* fresh and silently drop it. */
|
|
38
|
+
(0, _defineProperty2.default)(this, "pendingRequired", void 0);
|
|
34
39
|
(0, _defineProperty2.default)(this, "modalState", new _ConditionalModalState.ConditionalModalState({
|
|
35
40
|
onConfirm: async () => {
|
|
36
41
|
if (this.mode === 'new' && this.fieldManagement.maxReached) {
|
|
@@ -194,6 +199,34 @@ class CustomFieldModalState {
|
|
|
194
199
|
setKeyFieldIfNotDirty: _mobx.action.bound,
|
|
195
200
|
setDefaultPermissions: _mobx.action
|
|
196
201
|
});
|
|
202
|
+
|
|
203
|
+
// Reapplies a pending `required` prefill whenever the picked type changes
|
|
204
|
+
// — covers both picking a type after `applyInitialField` requested it,
|
|
205
|
+
// and the settings section resetting when the user later changes an
|
|
206
|
+
// unlocked type. Lives for this state's lifetime; never disposed, like
|
|
207
|
+
// the object itself.
|
|
208
|
+
(0, _mobx.reaction)(() => this.form.$.type.value, () => this.reapplyPendingRequired());
|
|
209
|
+
}
|
|
210
|
+
reapplyPendingRequired() {
|
|
211
|
+
var _this$settingsSection;
|
|
212
|
+
if (this.pendingRequired === undefined) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if ((_this$settingsSection = this.settingsSection) != null && _this$settingsSection.setInitialValues) {
|
|
216
|
+
this.settingsSection.setInitialValues({
|
|
217
|
+
required: this.pendingRequired
|
|
218
|
+
});
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
if (this.settingsSection) {
|
|
222
|
+
// The picked type's section has no way to apply the prefill, so
|
|
223
|
+
// locking 'required' would only disable the checkbox at its unset
|
|
224
|
+
// default with no way to ever satisfy the requested value — drop the
|
|
225
|
+
// lock rather than present it as enforced.
|
|
226
|
+
(0, _mobx.runInAction)(() => {
|
|
227
|
+
this.lockedProperties = this.lockedProperties.filter(property => property !== 'required');
|
|
228
|
+
});
|
|
229
|
+
}
|
|
197
230
|
}
|
|
198
231
|
onConfirmError(e) {
|
|
199
232
|
var _this$errorToastConfi;
|
|
@@ -245,6 +278,9 @@ class CustomFieldModalState {
|
|
|
245
278
|
this.resetCollectionInput();
|
|
246
279
|
this.errorToastConfig = undefined;
|
|
247
280
|
this.disableAutoValidation();
|
|
281
|
+
// `applyInitialField` runs only for a new-field open; clear it here too
|
|
282
|
+
// so a stale value can't leak from a previous open into an edit-mode one.
|
|
283
|
+
this.pendingRequired = undefined;
|
|
248
284
|
permissions.read.apps = false;
|
|
249
285
|
permissions.read.users = false;
|
|
250
286
|
permissions.write.apps = false;
|
|
@@ -291,7 +327,7 @@ class CustomFieldModalState {
|
|
|
291
327
|
this.form.$.referencedCollectionId.disableAutoValidation();
|
|
292
328
|
}
|
|
293
329
|
getFormValues() {
|
|
294
|
-
var _this$
|
|
330
|
+
var _this$settingsSection2, _this$collectionInput;
|
|
295
331
|
const {
|
|
296
332
|
form: {
|
|
297
333
|
$: {
|
|
@@ -307,7 +343,7 @@ class CustomFieldModalState {
|
|
|
307
343
|
}
|
|
308
344
|
}
|
|
309
345
|
} = this;
|
|
310
|
-
const sectionSettings = (_this$
|
|
346
|
+
const sectionSettings = (_this$settingsSection2 = this.settingsSection) == null ? void 0 : _this$settingsSection2.getValues(type.value);
|
|
311
347
|
const collectionSettings = referencedCollectionId.value && (_this$collectionInput = this.collectionInput) != null && _this$collectionInput.getSettings ? this.collectionInput.getSettings(referencedCollectionId.value) : undefined;
|
|
312
348
|
return {
|
|
313
349
|
type: type.value,
|
|
@@ -323,7 +359,7 @@ class CustomFieldModalState {
|
|
|
323
359
|
};
|
|
324
360
|
}
|
|
325
361
|
setFormValues(form, params) {
|
|
326
|
-
var _this$collectionInput2, _this$
|
|
362
|
+
var _this$collectionInput2, _this$settingsSection3;
|
|
327
363
|
const {
|
|
328
364
|
form: {
|
|
329
365
|
$
|
|
@@ -339,7 +375,7 @@ class CustomFieldModalState {
|
|
|
339
375
|
$.containsPii.value = form.containsPii;
|
|
340
376
|
$.referencedCollectionId.value = form.referencedCollectionId ?? (form.field ? (_this$collectionInput2 = this.collectionInput) == null || _this$collectionInput2.getValue == null ? void 0 : _this$collectionInput2.getValue(form.field) : undefined) ?? ((0, _util.isReferenceField)(form.field) ? form.field.referenceMetadata.referencedCollectionId : undefined);
|
|
341
377
|
// After `$.type.value` above, so it lands on the picked type's section.
|
|
342
|
-
(_this$
|
|
378
|
+
(_this$settingsSection3 = this.settingsSection) == null || _this$settingsSection3.setValues(form.field);
|
|
343
379
|
if (params != null && params.disablePermissionCheckboxes) {
|
|
344
380
|
if (form.readUsers) {
|
|
345
381
|
this.disabledFields.permissions.read.users = true;
|
|
@@ -356,15 +392,16 @@ class CustomFieldModalState {
|
|
|
356
392
|
}
|
|
357
393
|
}
|
|
358
394
|
|
|
359
|
-
/** Prefills a new field from the caller's requested type/name. Sets
|
|
360
|
-
* directly (like `setFormValues`) rather than through `onChange`, so
|
|
361
|
-
* name field isn't marked dirty by the prefill — a later user edit
|
|
362
|
-
* regenerates the key. Also trims `lockedProperties` down to
|
|
363
|
-
* actually prefilled here — locking a property with nothing to
|
|
364
|
-
* would leave it stuck on its empty default. */
|
|
395
|
+
/** Prefills a new field from the caller's requested type/name/required. Sets
|
|
396
|
+
* values directly (like `setFormValues`) rather than through `onChange`, so
|
|
397
|
+
* the name field isn't marked dirty by the prefill — a later user edit
|
|
398
|
+
* still regenerates the key. Also trims `lockedProperties` down to
|
|
399
|
+
* properties actually prefilled here — locking a property with nothing to
|
|
400
|
+
* lock it to would leave it stuck on its empty default. */
|
|
365
401
|
applyInitialField(initialField) {
|
|
366
402
|
if (!initialField) {
|
|
367
403
|
this.lockedProperties = [];
|
|
404
|
+
this.pendingRequired = undefined;
|
|
368
405
|
return;
|
|
369
406
|
}
|
|
370
407
|
const {
|
|
@@ -374,11 +411,24 @@ class CustomFieldModalState {
|
|
|
374
411
|
} = this;
|
|
375
412
|
const provided = [];
|
|
376
413
|
|
|
414
|
+
// Set before `type` below: reassigning `type.value` reapplies it via the
|
|
415
|
+
// type-change reaction once the action this method runs in completes, so
|
|
416
|
+
// it's already in place whether or not a type is picked here.
|
|
417
|
+
if (initialField.required !== undefined) {
|
|
418
|
+
this.pendingRequired = initialField.required;
|
|
419
|
+
provided.push('required');
|
|
420
|
+
}
|
|
421
|
+
|
|
377
422
|
// Ignores a type the source doesn't offer, rather than locking the picker
|
|
378
423
|
// on a value it can never show as selected.
|
|
379
424
|
if (initialField.type !== undefined && this.fieldManagement.fieldModal.types.some(type => type.id === initialField.type)) {
|
|
380
425
|
$.type.value = initialField.type;
|
|
381
426
|
provided.push('type');
|
|
427
|
+
} else {
|
|
428
|
+
// No type picked here (or it wasn't valid), so the type-change
|
|
429
|
+
// reaction won't fire — apply directly in case a type is already set
|
|
430
|
+
// from an earlier open, or a settings section doesn't need one.
|
|
431
|
+
this.reapplyPendingRequired();
|
|
382
432
|
}
|
|
383
433
|
if (initialField.name !== undefined) {
|
|
384
434
|
// Independent of `type` — a caller may want to suggest a name without
|
|
@@ -524,8 +574,8 @@ class CustomFieldModalState {
|
|
|
524
574
|
return Boolean(this.fieldManagement.fieldModal.permissions) || Boolean(this.settingsSection);
|
|
525
575
|
}
|
|
526
576
|
get settingsHasError() {
|
|
527
|
-
var _this$
|
|
528
|
-
return Boolean((_this$
|
|
577
|
+
var _this$settingsSection4;
|
|
578
|
+
return Boolean((_this$settingsSection4 = this.settingsSection) == null ? void 0 : _this$settingsSection4.hasError(this.form.$.type.value));
|
|
529
579
|
}
|
|
530
580
|
}
|
|
531
581
|
exports.CustomFieldModalState = CustomFieldModalState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_ConditionalModalState","_CustomFieldCollectionOptionsState","_CustomFieldModalBiReporter","_formstate","_ToggleState","_util","_isHttpError","CUSTOM_FIELD_NAME_MAX_LENGTH","exports","CustomFieldModalState","constructor","params","_defineProperty2","default","ToggleState","undefined","CustomFieldCollectionOptionsState","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","referencedCollectionId","collectionInput","required","_this$selectedFieldTy","errorMessage","label","selectedFieldType","permissions","read","apps","users","write","$","dirty","fieldCount","reportBi","CustomFieldModalBiReporter","customFieldModalState","makeObservable","computed","namePlaceholder","typeSupportsPii","collectionOptionsLoader","collectionInputLabel","collectionInputPlaceholder","collectionInputEmptyStateMessage","collectionOptions","collectionOptionsLoading","collectionOptionsError","showSettings","isSubmitting","disabledFields","observable","ref","errorToastConfig","lockedProperties","applyInitialField","action","reset","resetSettingsValues","resetCollectionInput","setReferencedCollectionId","bound","loadCollectionOptions","setFormValues","generateUniqueKey","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","_this$collectionInput","sectionSettings","getValues","collectionSettings","getSettings","combineFieldSettings","_this$collectionInput2","_this$settingsSection2","field","getValue","isReferenceField","referenceMetadata","disablePermissionCheckboxes","initialField","provided","id","push","slice","filter","property","includes","_permissions$installe","_permissions$siteVisi","installedApps","hide","_permissions$installe2","_permissions$installe3","defaultRead","defaultWrite","siteVisitors","_permissions$siteVisi2","_permissions$siteVisi3","collectionOptionsState","clearError","collectionId","onChange","load","existingFieldKeys","slug","slugify","length","index","translate","modalState","modal","confirming","isLoading","find","option","explicitInput","autoWired","isReferenceFieldType","patternsType","loadReferenceableCollectionOptions","loadOptions","_this$collectionInput3","_this$selectedFieldTy2","_this$collectionInput4","placeholder","_this$collectionInput5","emptyStateMessage","options","loading","error","_this$selectedFieldTy3","_this$selectedFieldTy4","_this$selectedFieldTy5","supportsPii","_this$selectedFieldTy6","_this$fieldManagement","piiWarning","_this$selectedFieldTy7","_this$fieldManagement2","warning","Boolean","_this$settingsSection3","isRecord","Array","isArray"],"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 { CustomFieldCollectionOptionsState } from './CustomFieldCollectionOptionsState';\nimport { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';\nimport { FieldState, FormState } from 'formstate';\nimport { ToggleState } from './ToggleState';\nimport { CustomFieldOrigin, CustomFieldType, ReportBI } from '../services';\nimport {\n FieldDraft,\n FieldManagement,\n FieldModalCollectionInput,\n FieldModalCollectionOption,\n FieldModalCollectionOptionsLoader,\n LockableFieldProperty,\n ResolvedFieldTypeOption,\n} from '../types/FieldsSource';\nimport type { FieldSettings } from '../types/Schema';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport {\n isHttpError,\n isReferenceField,\n isReferenceFieldType,\n slugify,\n} from '../util';\nimport { isDetailsResponse, isErrorDetails } from '../util/isHttpError';\nimport { ToastConfig } from '../model';\n\n/** The modal's name input caps entry at this length; `applyInitialField`\n * applies the same cap so a prefilled name can't exceed what a user could\n * have typed. */\nexport const CUSTOM_FIELD_NAME_MAX_LENGTH = 64;\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 referencedCollectionId?: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n containsPii: boolean;\n}\n\nexport interface CustomFieldFormFields {\n [key: string]: FieldState<any>;\n type: FieldState<string | undefined>;\n key: FieldState<string>;\n name: FieldState<string>;\n readApps: FieldState<boolean>;\n readUsers: FieldState<boolean>;\n writeApps: FieldState<boolean>;\n writeUsers: FieldState<boolean>;\n containsPii: FieldState<boolean>;\n referencedCollectionId: FieldState<string | undefined>;\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 lockedProperties: readonly LockableFieldProperty[] = [];\n reportBi: ReportBI;\n private readonly onSubmit?: (draft: FieldDraft) => void;\n private readonly collectionOptionsState =\n new CustomFieldCollectionOptionsState();\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: FormState<CustomFieldFormFields> = 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 referencedCollectionId: new FieldState<string | undefined>(\n undefined,\n ).validators((value) => {\n const collectionInput = this.collectionInput;\n\n if (\n this.mode === 'new' &&\n collectionInput &&\n (collectionInput.required ?? true) &&\n !value\n ) {\n return (\n collectionInput.errorMessage ??\n collectionInput.label ??\n this.selectedFieldType?.label\n );\n }\n\n return undefined;\n }),\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 collectionInput: computed,\n collectionOptionsLoader: computed,\n collectionInputLabel: computed,\n collectionInputPlaceholder: computed,\n collectionInputEmptyStateMessage: computed,\n collectionOptions: computed,\n collectionOptionsLoading: computed,\n collectionOptionsError: computed,\n showSettings: computed,\n settingsHasError: computed,\n isSubmitting: computed,\n disabledFields: observable.ref,\n errorToastConfig: observable.ref,\n mode: observable.ref,\n lockedProperties: observable.ref,\n applyInitialField: action,\n reset: action,\n resetSettingsValues: action,\n resetCollectionInput: action,\n setReferencedCollectionId: action.bound,\n loadCollectionOptions: action.bound,\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.resetCollectionInput();\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 this.form.$.referencedCollectionId.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 this.form.$.referencedCollectionId.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 referencedCollectionId,\n },\n },\n } = this;\n const sectionSettings = this.settingsSection?.getValues(type.value);\n const collectionSettings =\n referencedCollectionId.value && this.collectionInput?.getSettings\n ? this.collectionInput.getSettings(referencedCollectionId.value)\n : undefined;\n\n return {\n type: type.value,\n key: key.value,\n name: name.value,\n referencedCollectionId: referencedCollectionId.value,\n readApps: readApps.value,\n readUsers: readUsers.value,\n writeApps: writeApps.value,\n writeUsers: writeUsers.value,\n containsPii: containsPii.value,\n settings: combineFieldSettings(sectionSettings, collectionSettings),\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 $.referencedCollectionId.value =\n form.referencedCollectionId ??\n (form.field ? this.collectionInput?.getValue?.(form.field) : undefined) ??\n (isReferenceField(form.field)\n ? form.field.referenceMetadata.referencedCollectionId\n : undefined);\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 /** Prefills a new field from the caller's requested type/name. Sets values\n * directly (like `setFormValues`) rather than through `onChange`, so the\n * name field isn't marked dirty by the prefill — a later user edit still\n * regenerates the key. Also trims `lockedProperties` down to properties\n * actually prefilled here — locking a property with nothing to lock it to\n * would leave it stuck on its empty default. */\n applyInitialField(initialField?: { type?: string; name?: string }) {\n if (!initialField) {\n this.lockedProperties = [];\n return;\n }\n const {\n form: { $ },\n } = this;\n const provided: LockableFieldProperty[] = [];\n\n // Ignores a type the source doesn't offer, rather than locking the picker\n // on a value it can never show as selected.\n if (\n initialField.type !== undefined &&\n this.fieldManagement.fieldModal.types.some(\n (type) => type.id === initialField.type,\n )\n ) {\n $.type.value = initialField.type;\n provided.push('type');\n }\n if (initialField.name !== undefined) {\n // Independent of `type` — a caller may want to suggest a name without\n // constraining which type the user picks.\n $.name.value = initialField.name.slice(0, CUSTOM_FIELD_NAME_MAX_LENGTH);\n provided.push('name');\n this.setKeyFieldIfNotDirty(this.generateUniqueKey($.name.value));\n }\n\n this.lockedProperties = this.lockedProperties.filter((property) =>\n provided.includes(property),\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 resetCollectionInput() {\n this.form.$.referencedCollectionId.value = undefined;\n this.form.$.referencedCollectionId.disableAutoValidation();\n this.collectionOptionsState.clearError();\n }\n\n setReferencedCollectionId(collectionId: string | undefined) {\n this.form.$.referencedCollectionId.onChange(collectionId);\n }\n\n async loadCollectionOptions() {\n await this.collectionOptionsState.load(this.collectionOptionsLoader);\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(): ResolvedFieldTypeOption | undefined {\n return this.fieldManagement.fieldModal.types.find(\n (option) => option.id === this.form.$.type.value,\n );\n }\n\n get collectionInput(): FieldModalCollectionInput | undefined {\n if (!this.selectedFieldType) {\n return undefined;\n }\n\n const explicitInput = this.selectedFieldType.collectionInput;\n const autoWired =\n isReferenceFieldType(this.selectedFieldType.patternsType) &&\n this.fieldManagement.fieldModal.loadReferenceableCollectionOptions;\n\n if (!explicitInput && !autoWired) {\n return undefined;\n }\n\n return explicitInput ?? {};\n }\n\n get collectionOptionsLoader(): FieldModalCollectionOptionsLoader | undefined {\n const collectionInput = this.collectionInput;\n\n if (!collectionInput || !this.selectedFieldType) {\n return undefined;\n }\n\n return (\n collectionInput.loadOptions ??\n (isReferenceFieldType(this.selectedFieldType.patternsType)\n ? this.fieldManagement.fieldModal.loadReferenceableCollectionOptions\n : undefined)\n );\n }\n\n get collectionInputLabel() {\n return this.collectionInput?.label ?? this.selectedFieldType?.label ?? '';\n }\n\n get collectionInputPlaceholder() {\n return this.collectionInput?.placeholder ?? this.collectionInputLabel;\n }\n\n get collectionInputEmptyStateMessage() {\n return (\n this.collectionInput?.emptyStateMessage ??\n this.t('cairo.emptyState.subtitle.nothingMatchesCriteria')\n );\n }\n\n get collectionOptions(): FieldModalCollectionOption[] {\n return this.collectionOptionsState.options;\n }\n\n get collectionOptionsLoading() {\n return this.collectionOptionsState.loading;\n }\n\n get collectionOptionsError() {\n return this.collectionOptionsState.error;\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\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst combineFieldSettings = (\n sectionSettings: FieldSettings | undefined,\n collectionSettings: FieldSettings | undefined,\n): FieldSettings | undefined => {\n if (sectionSettings === undefined) {\n return collectionSettings;\n }\n\n if (collectionSettings === undefined) {\n return sectionSettings;\n }\n\n if (isRecord(sectionSettings) && isRecord(collectionSettings)) {\n return { ...sectionSettings, ...collectionSettings };\n }\n\n return collectionSettings;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_ConditionalModalState","_CustomFieldCollectionOptionsState","_CustomFieldModalBiReporter","_formstate","_ToggleState","_util","_isHttpError","CUSTOM_FIELD_NAME_MAX_LENGTH","exports","CustomFieldModalState","constructor","params","_defineProperty2","default","ToggleState","undefined","CustomFieldCollectionOptionsState","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","referencedCollectionId","collectionInput","required","_this$selectedFieldTy","errorMessage","label","selectedFieldType","permissions","read","apps","users","write","$","dirty","fieldCount","reportBi","CustomFieldModalBiReporter","customFieldModalState","makeObservable","computed","namePlaceholder","typeSupportsPii","collectionOptionsLoader","collectionInputLabel","collectionInputPlaceholder","collectionInputEmptyStateMessage","collectionOptions","collectionOptionsLoading","collectionOptionsError","showSettings","isSubmitting","disabledFields","observable","ref","errorToastConfig","lockedProperties","applyInitialField","action","reset","resetSettingsValues","resetCollectionInput","setReferencedCollectionId","bound","loadCollectionOptions","setFormValues","generateUniqueKey","setKeyFieldIfNotDirty","setDefaultPermissions","reaction","reapplyPendingRequired","_this$settingsSection","pendingRequired","settingsSection","setInitialValues","runInAction","filter","property","_this$errorToastConfi","getResolvedError","errorHandler","_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","setValues","_this$settingsSection2","_this$collectionInput","sectionSettings","getValues","collectionSettings","getSettings","combineFieldSettings","_this$collectionInput2","_this$settingsSection3","field","getValue","isReferenceField","referenceMetadata","disablePermissionCheckboxes","initialField","provided","push","id","slice","includes","_permissions$installe","_permissions$siteVisi","installedApps","hide","_permissions$installe2","_permissions$installe3","defaultRead","defaultWrite","siteVisitors","_permissions$siteVisi2","_permissions$siteVisi3","collectionOptionsState","clearError","collectionId","onChange","load","existingFieldKeys","slug","slugify","length","index","translate","modalState","modal","confirming","isLoading","find","option","explicitInput","autoWired","isReferenceFieldType","patternsType","loadReferenceableCollectionOptions","loadOptions","_this$collectionInput3","_this$selectedFieldTy2","_this$collectionInput4","placeholder","_this$collectionInput5","emptyStateMessage","options","loading","error","_this$selectedFieldTy3","_this$selectedFieldTy4","_this$selectedFieldTy5","supportsPii","_this$selectedFieldTy6","_this$fieldManagement","piiWarning","_this$selectedFieldTy7","_this$fieldManagement2","warning","Boolean","_this$settingsSection4","isRecord","Array","isArray"],"sources":["../../../src/state/CustomFieldModalState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} from 'mobx';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { CustomFieldCollectionOptionsState } from './CustomFieldCollectionOptionsState';\nimport { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';\nimport { FieldState, FormState } from 'formstate';\nimport { ToggleState } from './ToggleState';\nimport { CustomFieldOrigin, CustomFieldType, ReportBI } from '../services';\nimport {\n FieldDraft,\n FieldManagement,\n FieldModalCollectionInput,\n FieldModalCollectionOption,\n FieldModalCollectionOptionsLoader,\n LockableFieldProperty,\n ResolvedFieldTypeOption,\n} from '../types/FieldsSource';\nimport type { FieldSettings } from '../types/Schema';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport {\n isHttpError,\n isReferenceField,\n isReferenceFieldType,\n slugify,\n} from '../util';\nimport { isDetailsResponse, isErrorDetails } from '../util/isHttpError';\nimport { ToastConfig } from '../model';\n\n/** The modal's name input caps entry at this length; `applyInitialField`\n * applies the same cap so a prefilled name can't exceed what a user could\n * have typed. */\nexport const CUSTOM_FIELD_NAME_MAX_LENGTH = 64;\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 referencedCollectionId?: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n containsPii: boolean;\n}\n\nexport interface CustomFieldFormFields {\n [key: string]: FieldState<any>;\n type: FieldState<string | undefined>;\n key: FieldState<string>;\n name: FieldState<string>;\n readApps: FieldState<boolean>;\n readUsers: FieldState<boolean>;\n writeApps: FieldState<boolean>;\n writeUsers: FieldState<boolean>;\n containsPii: FieldState<boolean>;\n referencedCollectionId: FieldState<string | undefined>;\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 lockedProperties: readonly LockableFieldProperty[] = [];\n reportBi: ReportBI;\n private readonly onSubmit?: (draft: FieldDraft) => void;\n private readonly collectionOptionsState =\n new CustomFieldCollectionOptionsState();\n /** The `required` value requested by `applyInitialField`, reapplied whenever\n * the picked type changes — a type picked after the fact (or an unlocked\n * type the user later changes) would otherwise start the settings section\n * fresh and silently drop it. */\n private pendingRequired?: boolean;\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: FormState<CustomFieldFormFields> = 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 referencedCollectionId: new FieldState<string | undefined>(\n undefined,\n ).validators((value) => {\n const collectionInput = this.collectionInput;\n\n if (\n this.mode === 'new' &&\n collectionInput &&\n (collectionInput.required ?? true) &&\n !value\n ) {\n return (\n collectionInput.errorMessage ??\n collectionInput.label ??\n this.selectedFieldType?.label\n );\n }\n\n return undefined;\n }),\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 collectionInput: computed,\n collectionOptionsLoader: computed,\n collectionInputLabel: computed,\n collectionInputPlaceholder: computed,\n collectionInputEmptyStateMessage: computed,\n collectionOptions: computed,\n collectionOptionsLoading: computed,\n collectionOptionsError: computed,\n showSettings: computed,\n settingsHasError: computed,\n isSubmitting: computed,\n disabledFields: observable.ref,\n errorToastConfig: observable.ref,\n mode: observable.ref,\n lockedProperties: observable.ref,\n applyInitialField: action,\n reset: action,\n resetSettingsValues: action,\n resetCollectionInput: action,\n setReferencedCollectionId: action.bound,\n loadCollectionOptions: action.bound,\n setFormValues: action,\n generateUniqueKey: action.bound,\n setKeyFieldIfNotDirty: action.bound,\n setDefaultPermissions: action,\n });\n\n // Reapplies a pending `required` prefill whenever the picked type changes\n // — covers both picking a type after `applyInitialField` requested it,\n // and the settings section resetting when the user later changes an\n // unlocked type. Lives for this state's lifetime; never disposed, like\n // the object itself.\n reaction(\n () => this.form.$.type.value,\n () => this.reapplyPendingRequired(),\n );\n }\n\n private reapplyPendingRequired() {\n if (this.pendingRequired === undefined) {\n return;\n }\n if (this.settingsSection?.setInitialValues) {\n this.settingsSection.setInitialValues({\n required: this.pendingRequired,\n });\n return;\n }\n if (this.settingsSection) {\n // The picked type's section has no way to apply the prefill, so\n // locking 'required' would only disable the checkbox at its unset\n // default with no way to ever satisfy the requested value — drop the\n // lock rather than present it as enforced.\n runInAction(() => {\n this.lockedProperties = this.lockedProperties.filter(\n (property) => property !== 'required',\n );\n });\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.resetCollectionInput();\n this.errorToastConfig = undefined;\n this.disableAutoValidation();\n // `applyInitialField` runs only for a new-field open; clear it here too\n // so a stale value can't leak from a previous open into an edit-mode one.\n this.pendingRequired = undefined;\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 this.form.$.referencedCollectionId.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 this.form.$.referencedCollectionId.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 referencedCollectionId,\n },\n },\n } = this;\n const sectionSettings = this.settingsSection?.getValues(type.value);\n const collectionSettings =\n referencedCollectionId.value && this.collectionInput?.getSettings\n ? this.collectionInput.getSettings(referencedCollectionId.value)\n : undefined;\n\n return {\n type: type.value,\n key: key.value,\n name: name.value,\n referencedCollectionId: referencedCollectionId.value,\n readApps: readApps.value,\n readUsers: readUsers.value,\n writeApps: writeApps.value,\n writeUsers: writeUsers.value,\n containsPii: containsPii.value,\n settings: combineFieldSettings(sectionSettings, collectionSettings),\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 $.referencedCollectionId.value =\n form.referencedCollectionId ??\n (form.field ? this.collectionInput?.getValue?.(form.field) : undefined) ??\n (isReferenceField(form.field)\n ? form.field.referenceMetadata.referencedCollectionId\n : undefined);\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 /** Prefills a new field from the caller's requested type/name/required. Sets\n * values directly (like `setFormValues`) rather than through `onChange`, so\n * the name field isn't marked dirty by the prefill — a later user edit\n * still regenerates the key. Also trims `lockedProperties` down to\n * properties actually prefilled here — locking a property with nothing to\n * lock it to would leave it stuck on its empty default. */\n applyInitialField(initialField?: {\n type?: string;\n name?: string;\n required?: boolean;\n }) {\n if (!initialField) {\n this.lockedProperties = [];\n this.pendingRequired = undefined;\n return;\n }\n const {\n form: { $ },\n } = this;\n const provided: LockableFieldProperty[] = [];\n\n // Set before `type` below: reassigning `type.value` reapplies it via the\n // type-change reaction once the action this method runs in completes, so\n // it's already in place whether or not a type is picked here.\n if (initialField.required !== undefined) {\n this.pendingRequired = initialField.required;\n provided.push('required');\n }\n\n // Ignores a type the source doesn't offer, rather than locking the picker\n // on a value it can never show as selected.\n if (\n initialField.type !== undefined &&\n this.fieldManagement.fieldModal.types.some(\n (type) => type.id === initialField.type,\n )\n ) {\n $.type.value = initialField.type;\n provided.push('type');\n } else {\n // No type picked here (or it wasn't valid), so the type-change\n // reaction won't fire — apply directly in case a type is already set\n // from an earlier open, or a settings section doesn't need one.\n this.reapplyPendingRequired();\n }\n if (initialField.name !== undefined) {\n // Independent of `type` — a caller may want to suggest a name without\n // constraining which type the user picks.\n $.name.value = initialField.name.slice(0, CUSTOM_FIELD_NAME_MAX_LENGTH);\n provided.push('name');\n this.setKeyFieldIfNotDirty(this.generateUniqueKey($.name.value));\n }\n\n this.lockedProperties = this.lockedProperties.filter((property) =>\n provided.includes(property),\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 resetCollectionInput() {\n this.form.$.referencedCollectionId.value = undefined;\n this.form.$.referencedCollectionId.disableAutoValidation();\n this.collectionOptionsState.clearError();\n }\n\n setReferencedCollectionId(collectionId: string | undefined) {\n this.form.$.referencedCollectionId.onChange(collectionId);\n }\n\n async loadCollectionOptions() {\n await this.collectionOptionsState.load(this.collectionOptionsLoader);\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(): ResolvedFieldTypeOption | undefined {\n return this.fieldManagement.fieldModal.types.find(\n (option) => option.id === this.form.$.type.value,\n );\n }\n\n get collectionInput(): FieldModalCollectionInput | undefined {\n if (!this.selectedFieldType) {\n return undefined;\n }\n\n const explicitInput = this.selectedFieldType.collectionInput;\n const autoWired =\n isReferenceFieldType(this.selectedFieldType.patternsType) &&\n this.fieldManagement.fieldModal.loadReferenceableCollectionOptions;\n\n if (!explicitInput && !autoWired) {\n return undefined;\n }\n\n return explicitInput ?? {};\n }\n\n get collectionOptionsLoader(): FieldModalCollectionOptionsLoader | undefined {\n const collectionInput = this.collectionInput;\n\n if (!collectionInput || !this.selectedFieldType) {\n return undefined;\n }\n\n return (\n collectionInput.loadOptions ??\n (isReferenceFieldType(this.selectedFieldType.patternsType)\n ? this.fieldManagement.fieldModal.loadReferenceableCollectionOptions\n : undefined)\n );\n }\n\n get collectionInputLabel() {\n return this.collectionInput?.label ?? this.selectedFieldType?.label ?? '';\n }\n\n get collectionInputPlaceholder() {\n return this.collectionInput?.placeholder ?? this.collectionInputLabel;\n }\n\n get collectionInputEmptyStateMessage() {\n return (\n this.collectionInput?.emptyStateMessage ??\n this.t('cairo.emptyState.subtitle.nothingMatchesCriteria')\n );\n }\n\n get collectionOptions(): FieldModalCollectionOption[] {\n return this.collectionOptionsState.options;\n }\n\n get collectionOptionsLoading() {\n return this.collectionOptionsState.loading;\n }\n\n get collectionOptionsError() {\n return this.collectionOptionsState.error;\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\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst combineFieldSettings = (\n sectionSettings: FieldSettings | undefined,\n collectionSettings: FieldSettings | undefined,\n): FieldSettings | undefined => {\n if (sectionSettings === undefined) {\n return collectionSettings;\n }\n\n if (collectionSettings === undefined) {\n return sectionSettings;\n }\n\n if (isRecord(sectionSettings) && isRecord(collectionSettings)) {\n return { ...sectionSettings, ...collectionSettings };\n }\n\n return collectionSettings;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isFilterTypeConfig","filter","defineFieldType","definition","resolveFieldTypeDefinition","source","field","_source$fieldTypes","type","customType","undefined","fieldTypes","find","def"],"sources":["../../../src/types/FieldTypeDefinition.ts"],"sourcesContent":["import type {\n ComponentType,\n MutableRefObject,\n ReactElement,\n ReactNode,\n} from 'react';\nimport type { Field } from './Field';\nimport type { Filter } from '../model/filter';\nimport type {\n FieldModalCollectionInput,\n FieldPiiWarning,\n FieldSettingsSection,\n FieldsSource,\n} from './FieldsSource';\n\nexport type ValidationRule =\n | { type: 'required'; message: string }\n | { type: 'min' | 'max'; value: number; message: string }\n | { type: 'minLength' | 'maxLength'; value: number; message: string }\n | { type: 'pattern'; value: RegExp; message: string }\n | { type: 'custom'; validate: (value: unknown) => boolean; message: string }\n | {\n type: 'specificValues';\n values: { id: string; value: string }[];\n message: string;\n };\n\nexport interface Focusable {\n focus: () => void;\n}\n\nexport type EditTrigger =\n | { kind: 'type'; key: string }\n | 'enter'\n | 'click'\n | 'doubleClick';\n\nexport interface CellViewProps<V> {\n value: V;\n typeConfig?: unknown;\n validation?: ValidationRule[];\n /** Stable id of the column. Cell components can use it to derive unique DOM ids. */\n columnId: string;\n /** Stable key of the row. Cell components can use it to derive unique DOM ids. */\n rowKey: string;\n}\n\nexport interface CellEditProps<V> {\n value: V;\n // Method syntax keeps CellEditProps covariant in V (see FieldTypeDefinition).\n onChange(value: V): void;\n onCommit: () => void;\n onCancel: () => void;\n /**\n * Signals that the cell is starting an editing operation that will move focus\n * outside the table (e.g., opening a media manager or a modal). Calling this\n * sets isEditing=true so the table does not clear cell focus while the\n * external UI is open. Pair with onCommit (after the operation succeeds)\n * or onCancel (if the user dismisses without a value change).\n */\n onStartEdit?: () => void;\n /** Ref to the focusable input element. Used for type-to-edit (focusing the input when user starts typing on a focused cell). */\n inputRef?: MutableRefObject<Focusable | undefined | null>;\n typeConfig?: unknown;\n /** How edit mode was triggered. Edit components can use this to customize behavior (e.g., date picker auto-opens on 'type'). */\n editTrigger?: EditTrigger | null;\n /** Column-level validation rules. Edit components can derive UI behavior (e.g., maxLength blocking/tooltip) from these. */\n validation?: ValidationRule[];\n /** Stable id of the column. Cell components can use it to derive unique DOM ids. */\n columnId: string;\n /** Stable key of the row. Cell components can use it to derive unique DOM ids. */\n rowKey: string;\n}\n\n/**\n * Props passed to a cell type's optional `EditWrapper`. The table mounts the\n * wrapper around the cell content and keeps it mounted across the edit↔view\n * transition, so the wrapper can own behavior that must outlive the inline\n * editor (e.g. a reference cell navigating to an overlay and refreshing on\n * return). The wrapper hands anything the editor needs down via its own context.\n */\nexport interface CellEditWrapperProps {\n /** The column's typeConfig (same value handed to the cell's Edit/View). */\n typeConfig?: unknown;\n /** Stable id of the column. */\n columnId: string;\n /** Stable key of the row. */\n rowKey: string;\n /** The cell content (the Edit or View component) to render inside the wrapper. */\n children: ReactNode;\n}\n\n/**\n * The editable-cell slot of a field type definition: how a cell of that type\n * renders, edits, and moves through the clipboard. The definition's key\n * identifies the type and the definition's `value` owns validation, so the\n * slot carries neither.\n *\n * Members that take `V` use method syntax so a definition typed with a\n * concrete value type stays assignable where a loosely typed definition is\n * expected (see `FieldTypeDefinition`).\n */\nexport interface EditableCellConfig<V> {\n /** Render cell in view mode (read-only display). */\n ViewComponent(props: CellViewProps<V>): ReactElement | null;\n /** Render cell in edit mode (inline editor). Optional — omit for view-only cells. */\n EditComponent?(props: CellEditProps<V>): ReactElement | null;\n /** Serialize value to clipboard string. */\n serialize?(value: V): string;\n /** Deserialize clipboard string to value. */\n deserialize?(raw: string): V;\n /** Can this cell type be edited? (default: true) */\n editable?: boolean;\n /** Can this cell type be cleared with Delete key? (default: true) */\n clearable?: boolean;\n /** Toggle value on single click (e.g., boolean checkbox). Skips focus→edit flow. */\n toggleValue?(value: V): V;\n /** Enter edit mode on single click (e.g., image cell with no value). */\n editOnClick?(value: V): boolean;\n /** Show the EditComponent when the cell is focused, without entering edit mode.\n * Keyboard navigation remains active. Similar to toggleValue but without toggling. */\n showEditWhenFocused?: boolean;\n /** Optional wrapper component the cell type defines to own behavior that must\n * outlive the inline editor. Mounted around the cell content and kept mounted\n * across the edit↔view transition. */\n EditWrapper?: ComponentType<CellEditWrapperProps>;\n /** Cell content can grow past row height when focused. Only applies to\n * showEditWhenFocused cells. */\n growable?: boolean;\n /** Called on type-to-edit. Return object with cleared value and/or prevent flag.\n * Return undefined to block the key. Return {} to enter edit mode without changing the value. */\n onTypeToEdit?(params: {\n key: string;\n validation?: ValidationRule[];\n }): { value?: V } | undefined;\n /** Optional hook to normalize the committed value (e.g. auto-prepend https://).\n * Called before the edit commits; the value is written back before committing. */\n normalizeOnCommit?(value: V): V;\n /** When true, type-to-edit flushes the edit-mode render synchronously and\n * focuses the input within the same keydown event, then lets the browser's\n * default action deliver the keystroke to the now-focused input naturally.\n * Use for cells that wrap a controlled input whose value can't be seeded via props. */\n nativeTypeToEdit?: boolean;\n}\n\n/** The props the filter builder passes to a definition's toolbar filter\n * component — the same contract the built-in filter elements receive. */\nexport interface FilterTypeComponentProps<V = any> {\n filter: Filter<V>;\n toolbarItemProps?: { label?: ReactNode };\n toolbarTagProps?: { label?: string };\n accordionItemProps?: { label?: string };\n}\n\n/** The filter slot of a field type definition: the filter state registered on\n * the collection query and the toolbar element that renders it. */\nexport interface FilterTypeConfig {\n createFilter: (field: Field) => Filter<any>;\n Component: ComponentType<FilterTypeComponentProps>;\n}\n\n/** Narrows a definition's filter slot to an active filter config. */\nexport function isFilterTypeConfig(\n filter: FieldTypeDefinition['filter'],\n): filter is FilterTypeConfig {\n return 'createFilter' in filter;\n}\n\n/**\n * The read-only table slot of a field type definition: how a cell of that\n * type renders in the table, and the column's layout. Independent of\n * `editableTable` — neither slot falls back to the other.\n */\nexport interface TableCellConfig<V> {\n /** Render the cell. Method syntax keeps the definition assignable to\n * `FieldTypeDefinition<unknown>` (see FieldTypeDefinition). */\n CellComponent(props: { value: V }): ReactElement | null;\n /** Column width. Required — custom types get no built-in layout default. */\n width: string;\n /** Default: 'start'. */\n align?: 'start' | 'center' | 'end';\n}\n\n/** An extra menu item a field type definition adds to a field's actions menu. */\nexport interface FieldTypeActionItem {\n key: string;\n label: string;\n icon?: ReactNode;\n skin?: 'destructive';\n onClick: (field: Field) => void;\n /** Default: visible. */\n visible?: (field: Field) => boolean;\n /** Returning a string disables the item and shows the tooltip. */\n disabledTooltip?: (field: Field) => string | undefined;\n}\n\n/** The actions slot of a field type definition: extra items for the field's \"more actions\" menu. */\nexport interface FieldActionsConfig {\n items?: FieldTypeActionItem[];\n}\n\n/** Display metadata for a field type: menu label and type icons. */\nexport interface FieldTypeDisplay {\n label: string;\n icons: {\n Small: ComponentType;\n Medium: ComponentType;\n };\n}\n\n/** Value semantics of a field type, independent of any rendering surface.\n * Members use method syntax so a definition typed with a concrete value type\n * stays assignable where a loosely typed definition is expected. */\nexport interface FieldValueBehavior<V> {\n defaultValue?: V;\n isEmpty?(value: V): boolean;\n /** Returns an error message, or null when the value is valid. Every surface\n * that validates a field of this type runs this. */\n validate?(value: V, rules?: ValidationRule[]): string | null;\n}\n\nexport interface FieldCapabilities {\n sortable: boolean;\n}\n\n/** The field-modal slot of a field type definition: opts the type into the\n * add/edit-field modal's type picker and describes its entry there. */\nexport interface FieldModalConfig {\n /** True ⇒ the add-field modal offers this type. */\n creatable: boolean;\n /** Placeholder for the name input. Absent ⇒ the modal's generic placeholder. */\n namePlaceholder?: string;\n /** One-line description under the type in the picker. */\n subtitle?: string;\n /** Group heading this type is listed under in the picker. */\n group?: string;\n /** Whether a field of this type can be marked PII. Absent ⇒ follows the\n * source-wide setting. */\n supportsPii?: boolean;\n /** Warning shown while the PII toggle is on. Read on every render, so it can\n * use data that only exists once the schema has loaded. Default: none. */\n piiWarning?: () => FieldPiiWarning | undefined;\n /** This type's collapsible settings section — the same contract a\n * source-declared type option carries (see `FieldSettingsSection`). */\n settingsSection?: FieldSettingsSection;\n /** Collection picker shown in the main add/edit field form. */\n collectionInput?: FieldModalCollectionInput;\n}\n\n/**\n * Props the entity-page form dispatcher passes to a field type's form\n * component. The dispatcher owns the form wiring (registration, validation\n * from the definition's `value.validate`) and the field UI (label, required\n * marker, error message); the component renders the input: read `value`,\n * report edits through `onChange`, and hand back the focusable control\n * through `inputRef` so a blocked save can reach it.\n */\nexport interface FormFieldComponentProps<V> {\n field: Field;\n value: V;\n // Method syntax keeps FormFieldComponentProps covariant in V (see FieldTypeDefinition).\n onChange(value: V): void;\n /** Call when the input loses focus — marks the field touched, so error\n * timing matches the built-in renderers. */\n onBlur: () => void;\n /** Ref to the focusable input element. Used to focus the field when a\n * blocked save reports an error on it. Absent ⇒ the entity page brings the\n * field into view and focuses the first control it finds inside. */\n inputRef?: MutableRefObject<Focusable | undefined | null>;\n dataHook?: string;\n}\n\n/** The entity-page form slot of a field type definition. */\nexport interface FormTypeConfig<V = unknown> {\n /** Renders the input. Method syntax keeps the definition assignable to\n * `FieldTypeDefinition<unknown>` (see FieldTypeDefinition). */\n Component(props: FormFieldComponentProps<V>): ReactElement | null;\n}\n\n/**\n * A consumer-defined field type. Defined once on the fields source; every\n * entry point that renders the field resolves its slot from here. `V` is the\n * field's value type — `defineFieldType` infers it, and it keeps all the\n * slots consistent with each other.\n *\n * Sources hold definitions of mixed value types in one\n * `FieldTypeDefinition[]` (= `FieldTypeDefinition<unknown>[]`) array. That\n * works because every member that takes `V` is declared with method syntax,\n * which TypeScript checks bivariantly — so `FieldTypeDefinition<number>` is\n * assignable to `FieldTypeDefinition<unknown>` without casts.\n */\nexport interface FieldTypeDefinition<V = unknown> {\n /** Unique key for the type. A built-in type uses its `PatternsFieldType`; a\n * consumer-defined type uses the string its fields reference via `customType`. */\n type: string;\n display: FieldTypeDisplay;\n /** Filter behavior, or an explicit opt-out — never silently absent. */\n filter: FilterTypeConfig | { filterable: false };\n value?: FieldValueBehavior<V>;\n capabilities?: FieldCapabilities;\n /** Absent ⇒ the field renders with the default cell in the read-only table. */\n table?: TableCellConfig<V>;\n /** Absent ⇒ the field renders as a read-only cell in editable surfaces. */\n editableTable?: EditableCellConfig<V>;\n /** Required once a field of this type renders on an entity page:\n * development throws without it; production skips the field. */\n form?: FormTypeConfig<V>;\n /** Extra items for the field's \"more actions\" menu. */\n actions?: FieldActionsConfig;\n /** Absent ⇒ the add/edit field modal never offers this type. Fields of the\n * type created elsewhere still open in the modal for name/PII edits. */\n fieldModal?: FieldModalConfig;\n}\n\n/** Identity factory: infers `V` and keeps the definition's slots type-checked. */\nexport function defineFieldType<V>(\n definition: FieldTypeDefinition<V>,\n): FieldTypeDefinition<V> {\n return definition;\n}\n\n/** Resolves the definition a CUSTOM field references on its source. */\nexport function resolveFieldTypeDefinition(\n source: Pick<FieldsSource, 'fieldTypes'>,\n field: Field,\n) {\n if (field.type !== 'CUSTOM' || !field.customType) {\n return undefined;\n }\n return source.fieldTypes?.find((def) => def.type === field.customType);\n}\n"],"mappings":";;;;;;AA0EA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4CA;AACA;;AAQA;AACA;;AAMA;AACO,SAASA,kBAAkBA,CAChCC,MAAqC,EACT;EAC5B,OAAO,cAAc,IAAIA,MAAM;AACjC;;AAEA;AACA;AACA;AACA;AACA;;AAWA;;AAaA;;AAKA;;AASA;AACA;AACA;;AAaA;AACA;;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBA;AACO,SAASC,eAAeA,CAC7BC,UAAkC,EACV;EACxB,OAAOA,UAAU;AACnB;;AAEA;AACO,SAASC,0BAA0BA,CACxCC,MAAwC,EACxCC,KAAY,EACZ;EAAA,IAAAC,kBAAA;EACA,IAAID,KAAK,CAACE,IAAI,KAAK,QAAQ,IAAI,CAACF,KAAK,CAACG,UAAU,EAAE;IAChD,OAAOC,SAAS;EAClB;EACA,QAAAH,kBAAA,GAAOF,MAAM,CAACM,UAAU,qBAAjBJ,kBAAA,CAAmBK,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACL,IAAI,KAAKF,KAAK,CAACG,UAAU,CAAC;AACxE","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isFilterTypeConfig","filter","defineFieldType","definition","resolveFieldTypeDefinition","source","field","_source$fieldTypes","type","customType","undefined","fieldTypes","find","def"],"sources":["../../../src/types/FieldTypeDefinition.ts"],"sourcesContent":["import type {\n ComponentType,\n MutableRefObject,\n ReactElement,\n ReactNode,\n} from 'react';\nimport type { Field } from './Field';\nimport type { Filter } from '../model/filter';\nimport type {\n FieldModalCollectionInput,\n FieldPiiWarning,\n FieldSettingsSection,\n FieldsSource,\n} from './FieldsSource';\n\nexport type ValidationRule =\n | { type: 'required'; message: string }\n | { type: 'min' | 'max'; value: number; message: string }\n | { type: 'minLength' | 'maxLength'; value: number; message: string }\n | { type: 'pattern'; value: RegExp; message: string }\n | { type: 'custom'; validate: (value: unknown) => boolean; message: string }\n | {\n type: 'specificValues';\n values: { id: string; value: string }[];\n message: string;\n };\n\nexport interface Focusable {\n focus: () => void;\n}\n\nexport type EditTrigger =\n | { kind: 'type'; key: string }\n | 'enter'\n | 'click'\n | 'doubleClick';\n\nexport interface CellViewProps<V> {\n value: V;\n typeConfig?: unknown;\n validation?: ValidationRule[];\n /** Stable id of the column. Cell components can use it to derive unique DOM ids. */\n columnId: string;\n /** Stable key of the row. Cell components can use it to derive unique DOM ids. */\n rowKey: string;\n}\n\nexport interface CellEditProps<V> {\n value: V;\n // Method syntax keeps CellEditProps covariant in V (see FieldTypeDefinition).\n onChange(value: V): void;\n onCommit: () => void;\n onCancel: () => void;\n /**\n * Signals that the cell is starting an editing operation that will move focus\n * outside the table (e.g., opening a media manager or a modal). Calling this\n * sets isEditing=true so the table does not clear cell focus while the\n * external UI is open. Pair with onCommit (after the operation succeeds)\n * or onCancel (if the user dismisses without a value change).\n */\n onStartEdit?: () => void;\n /** Ref to the focusable input element. Used for type-to-edit (focusing the input when user starts typing on a focused cell). */\n inputRef?: MutableRefObject<Focusable | undefined | null>;\n typeConfig?: unknown;\n /** How edit mode was triggered. Edit components can use this to customize behavior (e.g., date picker auto-opens on 'type'). */\n editTrigger?: EditTrigger | null;\n /** Column-level validation rules. Edit components can derive UI behavior (e.g., maxLength blocking/tooltip) from these. */\n validation?: ValidationRule[];\n /** Stable id of the column. Cell components can use it to derive unique DOM ids. */\n columnId: string;\n /** Stable key of the row. Cell components can use it to derive unique DOM ids. */\n rowKey: string;\n}\n\n/**\n * Props passed to a cell type's optional `EditWrapper`. The table mounts the\n * wrapper around the cell content and keeps it mounted across the edit↔view\n * transition, so the wrapper can own behavior that must outlive the inline\n * editor (e.g. a reference cell navigating to an overlay and refreshing on\n * return). The wrapper hands anything the editor needs down via its own context.\n */\nexport interface CellEditWrapperProps {\n /** The column's typeConfig (same value handed to the cell's Edit/View). */\n typeConfig?: unknown;\n /** Stable id of the column. */\n columnId: string;\n /** Stable key of the row. */\n rowKey: string;\n /** The cell content (the Edit or View component) to render inside the wrapper. */\n children: ReactNode;\n}\n\nexport type EditableCellContextMenuAction = 'copy' | 'cut' | 'paste' | 'clear';\n\nexport interface EditableCellContextMenuActionContext<V> {\n /** Current cell value, including pending or draft edits. */\n value: V;\n /** Field metadata associated with the column, when available. */\n field?: Field;\n /** Stable key of the row. */\n rowKey: string;\n /** Stable id of the column. */\n columnId: string;\n}\n\nexport interface EditableCellContextMenuActionConfig<V> {\n /** Returning a non-empty string disables the action and shows the tooltip. */\n disabledTooltip(\n context: EditableCellContextMenuActionContext<V>,\n ): string | undefined;\n}\n\n/**\n * The editable-cell slot of a field type definition: how a cell of that type\n * renders, edits, and moves through the clipboard. The definition's key\n * identifies the type and the definition's `value` owns validation, so the\n * slot carries neither.\n *\n * Members that take `V` use method syntax so a definition typed with a\n * concrete value type stays assignable where a loosely typed definition is\n * expected (see `FieldTypeDefinition`).\n */\nexport interface EditableCellConfig<V> {\n /** Render cell in view mode (read-only display). */\n ViewComponent(props: CellViewProps<V>): ReactElement | null;\n /** Render cell in edit mode (inline editor). Optional — omit for view-only cells. */\n EditComponent?(props: CellEditProps<V>): ReactElement | null;\n /** Serialize value to clipboard string. */\n serialize?(value: V): string;\n /** Deserialize clipboard string to value. */\n deserialize?(raw: string): V;\n /** Can this cell type be edited? (default: true) */\n editable?: boolean;\n /** Availability of Cairo's built-in cell context-menu actions. */\n contextMenu?: Partial<\n Record<\n EditableCellContextMenuAction,\n EditableCellContextMenuActionConfig<V>\n >\n >;\n /** Toggle value on single click (e.g., boolean checkbox). Skips focus→edit flow. */\n toggleValue?(value: V): V;\n /** Enter edit mode on single click (e.g., image cell with no value). */\n editOnClick?(value: V): boolean;\n /** Show the EditComponent when the cell is focused, without entering edit mode.\n * Keyboard navigation remains active. Similar to toggleValue but without toggling. */\n showEditWhenFocused?: boolean;\n /** Optional wrapper component the cell type defines to own behavior that must\n * outlive the inline editor. Mounted around the cell content and kept mounted\n * across the edit↔view transition. */\n EditWrapper?: ComponentType<CellEditWrapperProps>;\n /** Cell content can grow past row height when focused. Only applies to\n * showEditWhenFocused cells. */\n growable?: boolean;\n /** Called on type-to-edit. Return object with cleared value and/or prevent flag.\n * Return undefined to block the key. Return {} to enter edit mode without changing the value. */\n onTypeToEdit?(params: {\n key: string;\n validation?: ValidationRule[];\n }): { value?: V } | undefined;\n /** Optional hook to normalize the committed value (e.g. auto-prepend https://).\n * Called before the edit commits; the value is written back before committing. */\n normalizeOnCommit?(value: V): V;\n /** When true, type-to-edit flushes the edit-mode render synchronously and\n * focuses the input within the same keydown event, then lets the browser's\n * default action deliver the keystroke to the now-focused input naturally.\n * Use for cells that wrap a controlled input whose value can't be seeded via props. */\n nativeTypeToEdit?: boolean;\n}\n\n/** The props the filter builder passes to a definition's toolbar filter\n * component — the same contract the built-in filter elements receive. */\nexport interface FilterTypeComponentProps<V = any> {\n filter: Filter<V>;\n toolbarItemProps?: { label?: ReactNode };\n toolbarTagProps?: { label?: string };\n accordionItemProps?: { label?: string };\n}\n\n/** The filter slot of a field type definition: the filter state registered on\n * the collection query and the toolbar element that renders it. */\nexport interface FilterTypeConfig {\n createFilter: (field: Field) => Filter<any>;\n Component: ComponentType<FilterTypeComponentProps>;\n}\n\n/** Narrows a definition's filter slot to an active filter config. */\nexport function isFilterTypeConfig(\n filter: FieldTypeDefinition['filter'],\n): filter is FilterTypeConfig {\n return 'createFilter' in filter;\n}\n\n/**\n * The read-only table slot of a field type definition: how a cell of that\n * type renders in the table, and the column's layout. Independent of\n * `editableTable` — neither slot falls back to the other.\n */\nexport interface TableCellConfig<V> {\n /** Render the cell. Method syntax keeps the definition assignable to\n * `FieldTypeDefinition<unknown>` (see FieldTypeDefinition). */\n CellComponent(props: { value: V }): ReactElement | null;\n /** Column width. Required — custom types get no built-in layout default. */\n width: string;\n /** Default: 'start'. */\n align?: 'start' | 'center' | 'end';\n}\n\n/** An extra menu item a field type definition adds to a field's actions menu. */\nexport interface FieldTypeActionItem {\n key: string;\n label: string;\n icon?: ReactNode;\n skin?: 'destructive';\n onClick: (field: Field) => void;\n /** Default: visible. */\n visible?: (field: Field) => boolean;\n /** Returning a string disables the item and shows the tooltip. */\n disabledTooltip?: (field: Field) => string | undefined;\n}\n\n/** The actions slot of a field type definition: extra items for the field's \"more actions\" menu. */\nexport interface FieldActionsConfig {\n items?: FieldTypeActionItem[];\n}\n\n/** Display metadata for a field type: menu label and type icons. */\nexport interface FieldTypeDisplay {\n label: string;\n icons: {\n Small: ComponentType;\n Medium: ComponentType;\n };\n}\n\n/** Value semantics of a field type, independent of any rendering surface.\n * Members use method syntax so a definition typed with a concrete value type\n * stays assignable where a loosely typed definition is expected. */\nexport interface FieldValueBehavior<V> {\n defaultValue?: V;\n isEmpty?(value: V): boolean;\n /** Returns an error message, or null when the value is valid. Every surface\n * that validates a field of this type runs this. */\n validate?(value: V, rules?: ValidationRule[]): string | null;\n}\n\nexport interface FieldCapabilities {\n sortable: boolean;\n}\n\n/** The field-modal slot of a field type definition: opts the type into the\n * add/edit-field modal's type picker and describes its entry there. */\nexport interface FieldModalConfig {\n /** True ⇒ the add-field modal offers this type. */\n creatable: boolean;\n /** Placeholder for the name input. Absent ⇒ the modal's generic placeholder. */\n namePlaceholder?: string;\n /** One-line description under the type in the picker. */\n subtitle?: string;\n /** Group heading this type is listed under in the picker. */\n group?: string;\n /** Whether a field of this type can be marked PII. Absent ⇒ follows the\n * source-wide setting. */\n supportsPii?: boolean;\n /** Warning shown while the PII toggle is on. Read on every render, so it can\n * use data that only exists once the schema has loaded. Default: none. */\n piiWarning?: () => FieldPiiWarning | undefined;\n /** This type's collapsible settings section — the same contract a\n * source-declared type option carries (see `FieldSettingsSection`). */\n settingsSection?: FieldSettingsSection;\n /** Collection picker shown in the main add/edit field form. */\n collectionInput?: FieldModalCollectionInput;\n}\n\n/**\n * Props the entity-page form dispatcher passes to a field type's form\n * component. The dispatcher owns the form wiring (registration, validation\n * from the definition's `value.validate`) and the field UI (label, required\n * marker, error message); the component renders the input: read `value`,\n * report edits through `onChange`, and hand back the focusable control\n * through `inputRef` so a blocked save can reach it.\n */\nexport interface FormFieldComponentProps<V> {\n field: Field;\n value: V;\n // Method syntax keeps FormFieldComponentProps covariant in V (see FieldTypeDefinition).\n onChange(value: V): void;\n /** Call when the input loses focus — marks the field touched, so error\n * timing matches the built-in renderers. */\n onBlur: () => void;\n /** Ref to the focusable input element. Used to focus the field when a\n * blocked save reports an error on it. Absent ⇒ the entity page brings the\n * field into view and focuses the first control it finds inside. */\n inputRef?: MutableRefObject<Focusable | undefined | null>;\n dataHook?: string;\n}\n\n/** The entity-page form slot of a field type definition. */\nexport interface FormTypeConfig<V = unknown> {\n /** Renders the input. Method syntax keeps the definition assignable to\n * `FieldTypeDefinition<unknown>` (see FieldTypeDefinition). */\n Component(props: FormFieldComponentProps<V>): ReactElement | null;\n}\n\n/**\n * A consumer-defined field type. Defined once on the fields source; every\n * entry point that renders the field resolves its slot from here. `V` is the\n * field's value type — `defineFieldType` infers it, and it keeps all the\n * slots consistent with each other.\n *\n * Sources hold definitions of mixed value types in one\n * `FieldTypeDefinition[]` (= `FieldTypeDefinition<unknown>[]`) array. That\n * works because every member that takes `V` is declared with method syntax,\n * which TypeScript checks bivariantly — so `FieldTypeDefinition<number>` is\n * assignable to `FieldTypeDefinition<unknown>` without casts.\n */\nexport interface FieldTypeDefinition<V = unknown> {\n /** Unique key for the type. A built-in type uses its `PatternsFieldType`; a\n * consumer-defined type uses the string its fields reference via `customType`. */\n type: string;\n display: FieldTypeDisplay;\n /** Filter behavior, or an explicit opt-out — never silently absent. */\n filter: FilterTypeConfig | { filterable: false };\n value?: FieldValueBehavior<V>;\n capabilities?: FieldCapabilities;\n /** Absent ⇒ the field renders with the default cell in the read-only table. */\n table?: TableCellConfig<V>;\n /** Absent ⇒ the field renders as a read-only cell in editable surfaces. */\n editableTable?: EditableCellConfig<V>;\n /** Required once a field of this type renders on an entity page:\n * development throws without it; production skips the field. */\n form?: FormTypeConfig<V>;\n /** Extra items for the field's \"more actions\" menu. */\n actions?: FieldActionsConfig;\n /** Absent ⇒ the add/edit field modal never offers this type. Fields of the\n * type created elsewhere still open in the modal for name/PII edits. */\n fieldModal?: FieldModalConfig;\n}\n\n/** Identity factory: infers `V` and keeps the definition's slots type-checked. */\nexport function defineFieldType<V>(\n definition: FieldTypeDefinition<V>,\n): FieldTypeDefinition<V> {\n return definition;\n}\n\n/** Resolves the definition a CUSTOM field references on its source. */\nexport function resolveFieldTypeDefinition(\n source: Pick<FieldsSource, 'fieldTypes'>,\n field: Field,\n) {\n if (field.type !== 'CUSTOM' || !field.customType) {\n return undefined;\n }\n return source.fieldTypes?.find((def) => def.type === field.customType);\n}\n"],"mappings":";;;;;;AA0EA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiDA;AACA;;AAQA;AACA;;AAMA;AACO,SAASA,kBAAkBA,CAChCC,MAAqC,EACT;EAC5B,OAAO,cAAc,IAAIA,MAAM;AACjC;;AAEA;AACA;AACA;AACA;AACA;;AAWA;;AAaA;;AAKA;;AASA;AACA;AACA;;AAaA;AACA;;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBA;AACO,SAASC,eAAeA,CAC7BC,UAAkC,EACV;EACxB,OAAOA,UAAU;AACnB;;AAEA;AACO,SAASC,0BAA0BA,CACxCC,MAAwC,EACxCC,KAAY,EACZ;EAAA,IAAAC,kBAAA;EACA,IAAID,KAAK,CAACE,IAAI,KAAK,QAAQ,IAAI,CAACF,KAAK,CAACG,UAAU,EAAE;IAChD,OAAOC,SAAS;EAClB;EACA,QAAAH,kBAAA,GAAOF,MAAM,CAACM,UAAU,qBAAjBJ,kBAAA,CAAmBK,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACL,IAAI,KAAKF,KAAK,CAACG,UAAU,CAAC;AACxE","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/types/FieldsSource.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport type { Field, PatternsFieldType } from './Field';\nimport type { FieldActions, FieldSettings, Schema } from './Schema';\nimport type { FieldTypeDefinition } from './FieldTypeDefinition';\nimport type { CustomFieldOrigin } from '../services';\n\n/** A field the source has archived. Sources without archiving omit `archive`. */\nexport interface ArchivedFieldItem {\n id: string;\n label: string;\n isPii?: boolean;\n}\n\n/** A `FieldTypeOption` the modal can render: the id and label a source left to\n * the defaults are filled in. */\nexport interface ResolvedFieldTypeOption {\n /** Stored on the draft; the source maps it back to its native type. */\n id: string;\n label: string;\n namePlaceholder?: string;\n subtitle?: string;\n /** Group heading in the type list; types sharing a heading form one group. */\n group?: string;\n /** Whether a field of this type can be marked PII. Absent ⇒ follows the\n * source-wide `supportsPii`. */\n supportsPii?: boolean;\n /** Warning to show while the PII toggle is on. Called on every render.\n * Absent ⇒ none. */\n piiWarning?: () => FieldPiiWarning | undefined;\n /** This type's own part of the collapsible section below the main fields.\n * Absent ⇒ the section holds only what the modal itself puts there. */\n settingsSection?: FieldSettingsSection;\n /** Collection picker shown below the type picker. For built-in reference\n * types, absent copy can use the source's referenceable collection loader. */\n collectionInput?: FieldModalCollectionInput;\n /** Drives the type icon in the modal. */\n patternsType: PatternsFieldType;\n /** Type icons for the picker. Absent ⇒ the icon derives from `patternsType`. */\n icons?: { Small: ComponentType; Medium: ComponentType };\n}\n\n/** Read/write permission defaults a source supports, per audience. */\nexport interface FieldPermissions {\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\n/** The values the add/edit field modal collects, source-neutral. */\nexport interface FieldDraft {\n type?: string;\n key: string;\n name: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n containsPii: boolean;\n /** Collection selected by the modal's collection picker, when a type has one. */\n referencedCollectionId?: string;\n /** The field this draft was built from, for the source's settings section to\n * read its own values off. Absent for a new field. */\n field?: Field;\n /** What the source's settings section collected, on its way to that source's\n * `addField`/`editField`. */\n settings?: FieldSettings;\n}\n\n/** The add-modal subtitle: a line of text, an optional second note line, and an\n * optional \"learn more\" link. */\nexport interface FieldModalSubtitle {\n text: string;\n note?: string;\n learnMore?: { label: string; href: string };\n}\n\n/** The text a source supplies for the add/edit field modal. */\nexport interface FieldModalText {\n addTitle: string;\n editTitle: string;\n /** Subtitle for the add modal; omit for none. */\n addSubtitle?: FieldModalSubtitle;\n /** Label of the collapsible section below the main fields. */\n settingsLabel?: string;\n}\n\n/** A warning shown under the PII toggle, with an optional action button. */\nexport interface FieldPiiWarning {\n text: string;\n action?: { label: string; onClick: () => void };\n}\n\nexport interface FieldModalCollectionOption {\n id: string;\n label: string;\n}\n\nexport type FieldModalCollectionOptionsLoader = () => Promise<\n FieldModalCollectionOption[]\n>;\n\n/** Extra collection picker a field type can add to the main modal body. */\nexport interface FieldModalCollectionInput {\n label?: string;\n placeholder?: string;\n emptyStateMessage?: string;\n errorMessage?: string;\n required?: boolean;\n loadOptions?: FieldModalCollectionOptionsLoader;\n /** Restores the picker value from an existing field. */\n getValue?: (field: Field) => string | undefined;\n /** Adds picker-derived values to the source-owned settings payload. */\n getSettings?: (collectionId: string) => FieldSettings;\n}\n\nexport interface FieldSettingsProps {\n /** The picked field type, or absent before one is picked. */\n fieldType?: string;\n}\n\n/**\n * The collapsible section below the main add/edit field inputs, supplied by the\n * source. The modal renders it, blocks confirm while it has an error, and hands\n * its values to the source's own `addField`/`editField` — it never looks inside.\n */\nexport interface FieldSettingsSection {\n Component: ComponentType<FieldSettingsProps>;\n /** True keeps the modal open on confirm. The section shows the error itself. */\n hasError(fieldType?: string): boolean;\n /** Passed to `FieldActions.addField`/`editField` as-is. */\n getValues(fieldType?: string): FieldSettings;\n /**\n * Fills the inputs when the modal opens: the field being edited, or nothing\n * for a new field. Pushed in rather than read from a prop, so the values are\n * there whether or not the section has been rendered yet.\n */\n setValues(field?: Field): void;\n}\n\n/** Add/edit/delete capability a source exposes. Present ⇒ field management UI shows. */\nexport interface FieldManagement {\n /** False ⇒ the add-field CTA is hidden entirely. */\n canAddFields: boolean;\n /** True ⇒ the add-field CTA renders but is disabled. */\n addFieldDisabled: boolean;\n /** Hint text shown beneath the add-field CTA while it is disabled. */\n addFieldDisabledHint?: string;\n canEditField(field: Field): boolean;\n /** `origin` is the UI surface the delete was triggered from; used for BI. */\n deleteField(fieldId: string, origin: string): Promise<void>;\n\n /** Everything the add/edit field modal shows: its titles, and the field types\n * it offers with what each one brings to it. */\n fieldModal: {\n text: FieldModalText;\n /** Default option loader for built-in reference and multi-reference types. */\n loadReferenceableCollectionOptions?: FieldModalCollectionOptionsLoader;\n types: ResolvedFieldTypeOption[];\n /** Defaults for the read/write permissions per audience. Absent ⇒ the modal\n * shows no permissions section. */\n permissions?: FieldPermissions;\n /** Whether a field can be marked PII. A field type option overrides it with\n * its own `supportsPii`. */\n supportsPii?: boolean;\n };\n /** Existing field keys, used by the add modal to reject duplicates. */\n existingFieldKeys: string[];\n /** True when no more fields can be added because a limit is reached. */\n maxReached?: boolean;\n addField(draft: FieldDraft): Promise<void>;\n editField(fieldId: string, draft: FieldDraft): Promise<void>;\n /** Current values for an existing field, to prefill the edit modal. */\n getFieldDraft(fieldId: string): FieldDraft | undefined;\n}\n\n/** A new-field property `OpenFieldModalOptions` can lock from editing. */\nexport type LockableFieldProperty = 'type' | 'name';\n\n/** Options for opening the add/edit field modal. */\nexport interface OpenFieldModalOptions {\n fieldId?: string;\n origin?: CustomFieldOrigin;\n customOrigin?: string;\n /** Prefills a new field. Ignored when `fieldId` is set — edit mode prefills\n * from the existing field instead. */\n initialField?: {\n /** Prefilled; locked when included in `lockedProperties`. */\n type?: string;\n /** Prefilled; locked when included in `lockedProperties`. */\n name?: string;\n };\n /** Properties the user can't change, on top of being prefilled. A property\n * with no matching `initialField` value is never locked — there is nothing\n * to lock it to. */\n lockedProperties?: readonly LockableFieldProperty[];\n}\n\n/** Archiving capability a source exposes. Present ⇒ archive/restore UI shows. */\nexport interface FieldArchive {\n items: ArchivedFieldItem[];\n shouldDisplay: boolean;\n /** Whether the archived-items panel is currently open. */\n isOpen: boolean;\n openPanel(): void;\n closePanel(): void;\n /** `origin` is the UI surface the action was triggered from; used for BI. */\n archiveField(fieldId: string, origin: string): Promise<void>;\n restoreField(fieldId: string, origin: string): Promise<void>;\n /** Display name for a field, for the confirm-dialog copy. */\n fieldName(fieldId: string): string;\n}\n\n/**\n * The source-neutral fields data a collection reads, implemented by each source\n * adapter. Rendering — field modals, filter elements — is not here; it lives in\n * the collection-page layer.\n */\nexport interface FieldsSource {\n /** Loads the fields (schema/data). The collection runs this once, tracks its\n * status, and shows a retry toast on failure. */\n load(): Promise<void>;\n\n fields: Field[];\n filterableFields: Field[];\n /** The fields the manage-fields panel lists — the source's editable fields. */\n manageableFields: Field[];\n /** Column id for a field. Sources that group fields prefix the group; flat sources use the field key. */\n columnIdForField(field: Field): string;\n /** WQL field path for a filter. Sources that group fields prefix the group; flat sources use the field key. */\n queryFieldId(field: Field): string;\n /** The value to display for a field on a row. */\n getCellValue(row: unknown, field: Field): unknown;\n /** Writes a new value for a field on a row, returning the updated row. Present when cells can be edited in place. */\n setCellValue?(row: unknown, field: Field, value: unknown): unknown;\n\n /** Replaces the source's fields with a freshly-returned map, updating the\n * columns with no refetch. Present when the source holds its fields in a\n * mergeable state (e.g. a loaded schema); used after an import creates fields. */\n mergeFields?(fields: Schema['fields']): void;\n\n /** Field-type definitions the source supports: how a field of that type\n * renders, filters and validates. Built-in types are keyed by their\n * `PatternsFieldType`; consumer-defined types are keyed by the string a field\n * references via `customType`. The add/edit field modal never reads this —\n * see `FieldManagement.fieldModal`. */\n fieldTypes?: FieldTypeDefinition[];\n\n /** Present when fields can be added/edited/deleted. */\n fieldManagement?: FieldManagement;\n\n /** The collection's field-mutation actions (delete/makePrimary/duplicate/…),\n * driving the shared FieldActions menu. Absent ⇒ no per-field action menu. */\n fieldActions?: FieldActions;\n\n /** Present when the source supports archiving fields. */\n archive?: FieldArchive;\n\n /** Present when fields are grouped. Absent ⇒ flat list. */\n groups?: {\n all: string[];\n fieldsForGroup(group: string): Field[];\n };\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/types/FieldsSource.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport type { Field, PatternsFieldType } from './Field';\nimport type { FieldActions, FieldSettings, Schema } from './Schema';\nimport type { FieldTypeDefinition } from './FieldTypeDefinition';\nimport type { CustomFieldOrigin } from '../services';\n\n/** A field the source has archived. Sources without archiving omit `archive`. */\nexport interface ArchivedFieldItem {\n id: string;\n label: string;\n isPii?: boolean;\n}\n\n/** A `FieldTypeOption` the modal can render: the id and label a source left to\n * the defaults are filled in. */\nexport interface ResolvedFieldTypeOption {\n /** Stored on the draft; the source maps it back to its native type. */\n id: string;\n label: string;\n namePlaceholder?: string;\n subtitle?: string;\n /** Group heading in the type list; types sharing a heading form one group. */\n group?: string;\n /** Whether a field of this type can be marked PII. Absent ⇒ follows the\n * source-wide `supportsPii`. */\n supportsPii?: boolean;\n /** Warning to show while the PII toggle is on. Called on every render.\n * Absent ⇒ none. */\n piiWarning?: () => FieldPiiWarning | undefined;\n /** This type's own part of the collapsible section below the main fields.\n * Absent ⇒ the section holds only what the modal itself puts there. */\n settingsSection?: FieldSettingsSection;\n /** Collection picker shown below the type picker. For built-in reference\n * types, absent copy can use the source's referenceable collection loader. */\n collectionInput?: FieldModalCollectionInput;\n /** Drives the type icon in the modal. */\n patternsType: PatternsFieldType;\n /** Type icons for the picker. Absent ⇒ the icon derives from `patternsType`. */\n icons?: { Small: ComponentType; Medium: ComponentType };\n}\n\n/** Read/write permission defaults a source supports, per audience. */\nexport interface FieldPermissions {\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\n/** The values the add/edit field modal collects, source-neutral. */\nexport interface FieldDraft {\n type?: string;\n key: string;\n name: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n containsPii: boolean;\n /** Collection selected by the modal's collection picker, when a type has one. */\n referencedCollectionId?: string;\n /** The field this draft was built from, for the source's settings section to\n * read its own values off. Absent for a new field. */\n field?: Field;\n /** What the source's settings section collected, on its way to that source's\n * `addField`/`editField`. */\n settings?: FieldSettings;\n}\n\n/** The add-modal subtitle: a line of text, an optional second note line, and an\n * optional \"learn more\" link. */\nexport interface FieldModalSubtitle {\n text: string;\n note?: string;\n learnMore?: { label: string; href: string };\n}\n\n/** The text a source supplies for the add/edit field modal. */\nexport interface FieldModalText {\n addTitle: string;\n editTitle: string;\n /** Subtitle for the add modal; omit for none. */\n addSubtitle?: FieldModalSubtitle;\n /** Label of the collapsible section below the main fields. */\n settingsLabel?: string;\n}\n\n/** A warning shown under the PII toggle, with an optional action button. */\nexport interface FieldPiiWarning {\n text: string;\n action?: { label: string; onClick: () => void };\n}\n\nexport interface FieldModalCollectionOption {\n id: string;\n label: string;\n}\n\nexport type FieldModalCollectionOptionsLoader = () => Promise<\n FieldModalCollectionOption[]\n>;\n\n/** Extra collection picker a field type can add to the main modal body. */\nexport interface FieldModalCollectionInput {\n label?: string;\n placeholder?: string;\n emptyStateMessage?: string;\n errorMessage?: string;\n required?: boolean;\n loadOptions?: FieldModalCollectionOptionsLoader;\n /** Restores the picker value from an existing field. */\n getValue?: (field: Field) => string | undefined;\n /** Adds picker-derived values to the source-owned settings payload. */\n getSettings?: (collectionId: string) => FieldSettings;\n}\n\nexport interface FieldSettingsProps {\n /** The picked field type, or absent before one is picked. */\n fieldType?: string;\n /** Validation rules the section should render as fixed, not user-editable.\n * A section ignores any entry it doesn't recognize. */\n lockedRules?: readonly string[];\n}\n\n/**\n * The collapsible section below the main add/edit field inputs, supplied by the\n * source. The modal renders it, blocks confirm while it has an error, and hands\n * its values to the source's own `addField`/`editField` — it never looks inside.\n */\nexport interface FieldSettingsSection {\n Component: ComponentType<FieldSettingsProps>;\n /** True keeps the modal open on confirm. The section shows the error itself. */\n hasError(fieldType?: string): boolean;\n /** Passed to `FieldActions.addField`/`editField` as-is. */\n getValues(fieldType?: string): FieldSettings;\n /**\n * Fills the inputs when the modal opens: the field being edited, or nothing\n * for a new field. Pushed in rather than read from a prop, so the values are\n * there whether or not the section has been rendered yet.\n */\n setValues(field?: Field): void;\n /**\n * Prefills a new field's rules from the caller's requested initial values —\n * there is no backing `Field` yet, so this is separate from `setValues`.\n * Absent ⇒ the section doesn't support prefilling any rule this way, and\n * the modal drops that rule from `lockedProperties` rather than locking a\n * control at a value it could never actually apply.\n */\n setInitialValues?(initial: { required?: boolean }): void;\n}\n\n/** Add/edit/delete capability a source exposes. Present ⇒ field management UI shows. */\nexport interface FieldManagement {\n /** False ⇒ the add-field CTA is hidden entirely. */\n canAddFields: boolean;\n /** True ⇒ the add-field CTA renders but is disabled. */\n addFieldDisabled: boolean;\n /** Hint text shown beneath the add-field CTA while it is disabled. */\n addFieldDisabledHint?: string;\n canEditField(field: Field): boolean;\n /** `origin` is the UI surface the delete was triggered from; used for BI. */\n deleteField(fieldId: string, origin: string): Promise<void>;\n\n /** Everything the add/edit field modal shows: its titles, and the field types\n * it offers with what each one brings to it. */\n fieldModal: {\n text: FieldModalText;\n /** Default option loader for built-in reference and multi-reference types. */\n loadReferenceableCollectionOptions?: FieldModalCollectionOptionsLoader;\n types: ResolvedFieldTypeOption[];\n /** Defaults for the read/write permissions per audience. Absent ⇒ the modal\n * shows no permissions section. */\n permissions?: FieldPermissions;\n /** Whether a field can be marked PII. A field type option overrides it with\n * its own `supportsPii`. */\n supportsPii?: boolean;\n };\n /** Existing field keys, used by the add modal to reject duplicates. */\n existingFieldKeys: string[];\n /** True when no more fields can be added because a limit is reached. */\n maxReached?: boolean;\n addField(draft: FieldDraft): Promise<void>;\n editField(fieldId: string, draft: FieldDraft): Promise<void>;\n /** Current values for an existing field, to prefill the edit modal. */\n getFieldDraft(fieldId: string): FieldDraft | undefined;\n}\n\n/** A new-field property `OpenFieldModalOptions` can lock from editing. */\nexport type LockableFieldProperty = 'type' | 'name' | 'required';\n\n/** Options for opening the add/edit field modal. */\nexport interface OpenFieldModalOptions {\n fieldId?: string;\n origin?: CustomFieldOrigin;\n customOrigin?: string;\n /** Prefills a new field. Ignored when `fieldId` is set — edit mode prefills\n * from the existing field instead. */\n initialField?: {\n /** Prefilled; locked when included in `lockedProperties`. */\n type?: string;\n /** Prefilled; locked when included in `lockedProperties`. */\n name?: string;\n /** Prefilled; locked when included in `lockedProperties`. Support depends\n * on the picked type's settings section — see `FieldSettingsSection.setInitialValues`. */\n required?: boolean;\n };\n /** Properties the user can't change, on top of being prefilled. A property\n * with no matching `initialField` value is never locked — there is nothing\n * to lock it to. */\n lockedProperties?: readonly LockableFieldProperty[];\n}\n\n/** Archiving capability a source exposes. Present ⇒ archive/restore UI shows. */\nexport interface FieldArchive {\n items: ArchivedFieldItem[];\n shouldDisplay: boolean;\n /** Whether the archived-items panel is currently open. */\n isOpen: boolean;\n openPanel(): void;\n closePanel(): void;\n /** `origin` is the UI surface the action was triggered from; used for BI. */\n archiveField(fieldId: string, origin: string): Promise<void>;\n restoreField(fieldId: string, origin: string): Promise<void>;\n /** Display name for a field, for the confirm-dialog copy. */\n fieldName(fieldId: string): string;\n}\n\n/**\n * The source-neutral fields data a collection reads, implemented by each source\n * adapter. Rendering — field modals, filter elements — is not here; it lives in\n * the collection-page layer.\n */\nexport interface FieldsSource {\n /** Loads the fields (schema/data). The collection runs this once, tracks its\n * status, and shows a retry toast on failure. */\n load(): Promise<void>;\n\n fields: Field[];\n filterableFields: Field[];\n /** The fields the manage-fields panel lists — the source's editable fields. */\n manageableFields: Field[];\n /** Column id for a field. Sources that group fields prefix the group; flat sources use the field key. */\n columnIdForField(field: Field): string;\n /** WQL field path for a filter. Sources that group fields prefix the group; flat sources use the field key. */\n queryFieldId(field: Field): string;\n /** The value to display for a field on a row. */\n getCellValue(row: unknown, field: Field): unknown;\n /** Writes a new value for a field on a row, returning the updated row. Present when cells can be edited in place. */\n setCellValue?(row: unknown, field: Field, value: unknown): unknown;\n\n /** Replaces the source's fields with a freshly-returned map, updating the\n * columns with no refetch. Present when the source holds its fields in a\n * mergeable state (e.g. a loaded schema); used after an import creates fields. */\n mergeFields?(fields: Schema['fields']): void;\n\n /** Field-type definitions the source supports: how a field of that type\n * renders, filters and validates. Built-in types are keyed by their\n * `PatternsFieldType`; consumer-defined types are keyed by the string a field\n * references via `customType`. The add/edit field modal never reads this —\n * see `FieldManagement.fieldModal`. */\n fieldTypes?: FieldTypeDefinition[];\n\n /** Present when fields can be added/edited/deleted. */\n fieldManagement?: FieldManagement;\n\n /** The collection's field-mutation actions (delete/makePrimary/duplicate/…),\n * driving the shared FieldActions menu. Absent ⇒ no per-field action menu. */\n fieldActions?: FieldActions;\n\n /** Present when the source supports archiving fields. */\n archive?: FieldArchive;\n\n /** Present when fields are grouped. Absent ⇒ flat list. */\n groups?: {\n all: string[];\n fieldsForGroup(group: string): Field[];\n };\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { action, computed, makeObservable, observable, runInAction, } from 'mobx';
|
|
1
|
+
import { action, computed, makeObservable, observable, reaction, runInAction, } from 'mobx';
|
|
2
2
|
import { ConditionalModalState } from './ConditionalModalState';
|
|
3
3
|
import { CustomFieldCollectionOptionsState } from './CustomFieldCollectionOptionsState';
|
|
4
4
|
import { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';
|
|
@@ -160,6 +160,32 @@ export class CustomFieldModalState {
|
|
|
160
160
|
setKeyFieldIfNotDirty: action.bound,
|
|
161
161
|
setDefaultPermissions: action,
|
|
162
162
|
});
|
|
163
|
+
// Reapplies a pending `required` prefill whenever the picked type changes
|
|
164
|
+
// — covers both picking a type after `applyInitialField` requested it,
|
|
165
|
+
// and the settings section resetting when the user later changes an
|
|
166
|
+
// unlocked type. Lives for this state's lifetime; never disposed, like
|
|
167
|
+
// the object itself.
|
|
168
|
+
reaction(() => this.form.$.type.value, () => this.reapplyPendingRequired());
|
|
169
|
+
}
|
|
170
|
+
reapplyPendingRequired() {
|
|
171
|
+
if (this.pendingRequired === undefined) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (this.settingsSection?.setInitialValues) {
|
|
175
|
+
this.settingsSection.setInitialValues({
|
|
176
|
+
required: this.pendingRequired,
|
|
177
|
+
});
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (this.settingsSection) {
|
|
181
|
+
// The picked type's section has no way to apply the prefill, so
|
|
182
|
+
// locking 'required' would only disable the checkbox at its unset
|
|
183
|
+
// default with no way to ever satisfy the requested value — drop the
|
|
184
|
+
// lock rather than present it as enforced.
|
|
185
|
+
runInAction(() => {
|
|
186
|
+
this.lockedProperties = this.lockedProperties.filter((property) => property !== 'required');
|
|
187
|
+
});
|
|
188
|
+
}
|
|
163
189
|
}
|
|
164
190
|
onConfirmError(e) {
|
|
165
191
|
const { getResolvedError } = this.container.errorHandler;
|
|
@@ -205,6 +231,9 @@ export class CustomFieldModalState {
|
|
|
205
231
|
this.resetCollectionInput();
|
|
206
232
|
this.errorToastConfig = undefined;
|
|
207
233
|
this.disableAutoValidation();
|
|
234
|
+
// `applyInitialField` runs only for a new-field open; clear it here too
|
|
235
|
+
// so a stale value can't leak from a previous open into an edit-mode one.
|
|
236
|
+
this.pendingRequired = undefined;
|
|
208
237
|
permissions.read.apps = false;
|
|
209
238
|
permissions.read.users = false;
|
|
210
239
|
permissions.write.apps = false;
|
|
@@ -282,19 +311,27 @@ export class CustomFieldModalState {
|
|
|
282
311
|
}
|
|
283
312
|
}
|
|
284
313
|
}
|
|
285
|
-
/** Prefills a new field from the caller's requested type/name. Sets
|
|
286
|
-
* directly (like `setFormValues`) rather than through `onChange`, so
|
|
287
|
-
* name field isn't marked dirty by the prefill — a later user edit
|
|
288
|
-
* regenerates the key. Also trims `lockedProperties` down to
|
|
289
|
-
* actually prefilled here — locking a property with nothing to
|
|
290
|
-
* would leave it stuck on its empty default. */
|
|
314
|
+
/** Prefills a new field from the caller's requested type/name/required. Sets
|
|
315
|
+
* values directly (like `setFormValues`) rather than through `onChange`, so
|
|
316
|
+
* the name field isn't marked dirty by the prefill — a later user edit
|
|
317
|
+
* still regenerates the key. Also trims `lockedProperties` down to
|
|
318
|
+
* properties actually prefilled here — locking a property with nothing to
|
|
319
|
+
* lock it to would leave it stuck on its empty default. */
|
|
291
320
|
applyInitialField(initialField) {
|
|
292
321
|
if (!initialField) {
|
|
293
322
|
this.lockedProperties = [];
|
|
323
|
+
this.pendingRequired = undefined;
|
|
294
324
|
return;
|
|
295
325
|
}
|
|
296
326
|
const { form: { $ }, } = this;
|
|
297
327
|
const provided = [];
|
|
328
|
+
// Set before `type` below: reassigning `type.value` reapplies it via the
|
|
329
|
+
// type-change reaction once the action this method runs in completes, so
|
|
330
|
+
// it's already in place whether or not a type is picked here.
|
|
331
|
+
if (initialField.required !== undefined) {
|
|
332
|
+
this.pendingRequired = initialField.required;
|
|
333
|
+
provided.push('required');
|
|
334
|
+
}
|
|
298
335
|
// Ignores a type the source doesn't offer, rather than locking the picker
|
|
299
336
|
// on a value it can never show as selected.
|
|
300
337
|
if (initialField.type !== undefined &&
|
|
@@ -302,6 +339,12 @@ export class CustomFieldModalState {
|
|
|
302
339
|
$.type.value = initialField.type;
|
|
303
340
|
provided.push('type');
|
|
304
341
|
}
|
|
342
|
+
else {
|
|
343
|
+
// No type picked here (or it wasn't valid), so the type-change
|
|
344
|
+
// reaction won't fire — apply directly in case a type is already set
|
|
345
|
+
// from an earlier open, or a settings section doesn't need one.
|
|
346
|
+
this.reapplyPendingRequired();
|
|
347
|
+
}
|
|
305
348
|
if (initialField.name !== undefined) {
|
|
306
349
|
// Independent of `type` — a caller may want to suggest a name without
|
|
307
350
|
// constraining which type the user picks.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomFieldModalState.js","sourceRoot":"","sources":["../../../src/state/CustomFieldModalState.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CustomFieldModalState.js","sourceRoot":"","sources":["../../../src/state/CustomFieldModalState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldTypeDefinition.js","sourceRoot":"","sources":["../../../src/types/FieldTypeDefinition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FieldTypeDefinition.js","sourceRoot":"","sources":["../../../src/types/FieldTypeDefinition.ts"],"names":[],"mappings":"AA0LA,qEAAqE;AACrE,MAAM,UAAU,kBAAkB,CAChC,MAAqC;IAErC,OAAO,cAAc,IAAI,MAAM,CAAC;AAClC,CAAC;AAoJD,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAC7B,UAAkC;IAElC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,0BAA0B,CACxC,MAAwC,EACxC,KAAY;IAEZ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -62,6 +62,11 @@ export declare class CustomFieldModalState {
|
|
|
62
62
|
reportBi: ReportBI;
|
|
63
63
|
private readonly onSubmit?;
|
|
64
64
|
private readonly collectionOptionsState;
|
|
65
|
+
/** The `required` value requested by `applyInitialField`, reapplied whenever
|
|
66
|
+
* the picked type changes — a type picked after the fact (or an unlocked
|
|
67
|
+
* type the user later changes) would otherwise start the settings section
|
|
68
|
+
* fresh and silently drop it. */
|
|
69
|
+
private pendingRequired?;
|
|
65
70
|
modalState: ConditionalModalState<unknown>;
|
|
66
71
|
form: FormState<CustomFieldFormFields>;
|
|
67
72
|
disabledFields: {
|
|
@@ -77,6 +82,7 @@ export declare class CustomFieldModalState {
|
|
|
77
82
|
};
|
|
78
83
|
};
|
|
79
84
|
constructor(params: CustomFieldStateParams);
|
|
85
|
+
private reapplyPendingRequired;
|
|
80
86
|
onConfirmError(e: unknown): void;
|
|
81
87
|
reset(): void;
|
|
82
88
|
/** Clears the settings sections back to their defaults. Goes over every type
|
|
@@ -89,15 +95,16 @@ export declare class CustomFieldModalState {
|
|
|
89
95
|
setFormValues(form: FieldDraft, params?: {
|
|
90
96
|
disablePermissionCheckboxes: boolean;
|
|
91
97
|
}): void;
|
|
92
|
-
/** Prefills a new field from the caller's requested type/name. Sets
|
|
93
|
-
* directly (like `setFormValues`) rather than through `onChange`, so
|
|
94
|
-
* name field isn't marked dirty by the prefill — a later user edit
|
|
95
|
-
* regenerates the key. Also trims `lockedProperties` down to
|
|
96
|
-
* actually prefilled here — locking a property with nothing to
|
|
97
|
-
* would leave it stuck on its empty default. */
|
|
98
|
+
/** Prefills a new field from the caller's requested type/name/required. Sets
|
|
99
|
+
* values directly (like `setFormValues`) rather than through `onChange`, so
|
|
100
|
+
* the name field isn't marked dirty by the prefill — a later user edit
|
|
101
|
+
* still regenerates the key. Also trims `lockedProperties` down to
|
|
102
|
+
* properties actually prefilled here — locking a property with nothing to
|
|
103
|
+
* lock it to would leave it stuck on its empty default. */
|
|
98
104
|
applyInitialField(initialField?: {
|
|
99
105
|
type?: string;
|
|
100
106
|
name?: string;
|
|
107
|
+
required?: boolean;
|
|
101
108
|
}): void;
|
|
102
109
|
setDefaultPermissions(): void;
|
|
103
110
|
setKeyFieldIfNotDirty: (value: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomFieldModalState.d.ts","sourceRoot":"","sources":["../../../src/state/CustomFieldModalState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomFieldModalState.d.ts","sourceRoot":"","sources":["../../../src/state/CustomFieldModalState.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,6 +87,21 @@ export interface CellEditWrapperProps {
|
|
|
87
87
|
/** The cell content (the Edit or View component) to render inside the wrapper. */
|
|
88
88
|
children: ReactNode;
|
|
89
89
|
}
|
|
90
|
+
export type EditableCellContextMenuAction = 'copy' | 'cut' | 'paste' | 'clear';
|
|
91
|
+
export interface EditableCellContextMenuActionContext<V> {
|
|
92
|
+
/** Current cell value, including pending or draft edits. */
|
|
93
|
+
value: V;
|
|
94
|
+
/** Field metadata associated with the column, when available. */
|
|
95
|
+
field?: Field;
|
|
96
|
+
/** Stable key of the row. */
|
|
97
|
+
rowKey: string;
|
|
98
|
+
/** Stable id of the column. */
|
|
99
|
+
columnId: string;
|
|
100
|
+
}
|
|
101
|
+
export interface EditableCellContextMenuActionConfig<V> {
|
|
102
|
+
/** Returning a non-empty string disables the action and shows the tooltip. */
|
|
103
|
+
disabledTooltip(context: EditableCellContextMenuActionContext<V>): string | undefined;
|
|
104
|
+
}
|
|
90
105
|
/**
|
|
91
106
|
* The editable-cell slot of a field type definition: how a cell of that type
|
|
92
107
|
* renders, edits, and moves through the clipboard. The definition's key
|
|
@@ -108,8 +123,8 @@ export interface EditableCellConfig<V> {
|
|
|
108
123
|
deserialize?(raw: string): V;
|
|
109
124
|
/** Can this cell type be edited? (default: true) */
|
|
110
125
|
editable?: boolean;
|
|
111
|
-
/**
|
|
112
|
-
|
|
126
|
+
/** Availability of Cairo's built-in cell context-menu actions. */
|
|
127
|
+
contextMenu?: Partial<Record<EditableCellContextMenuAction, EditableCellContextMenuActionConfig<V>>>;
|
|
113
128
|
/** Toggle value on single click (e.g., boolean checkbox). Skips focus→edit flow. */
|
|
114
129
|
toggleValue?(value: V): V;
|
|
115
130
|
/** Enter edit mode on single click (e.g., image cell with no value). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldTypeDefinition.d.ts","sourceRoot":"","sources":["../../../src/types/FieldTypeDefinition.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FieldTypeDefinition.d.ts","sourceRoot":"","sources":["../../../src/types/FieldTypeDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,6 +119,9 @@ export interface FieldModalCollectionInput {
|
|
|
119
119
|
export interface FieldSettingsProps {
|
|
120
120
|
/** The picked field type, or absent before one is picked. */
|
|
121
121
|
fieldType?: string;
|
|
122
|
+
/** Validation rules the section should render as fixed, not user-editable.
|
|
123
|
+
* A section ignores any entry it doesn't recognize. */
|
|
124
|
+
lockedRules?: readonly string[];
|
|
122
125
|
}
|
|
123
126
|
/**
|
|
124
127
|
* The collapsible section below the main add/edit field inputs, supplied by the
|
|
@@ -137,6 +140,16 @@ export interface FieldSettingsSection {
|
|
|
137
140
|
* there whether or not the section has been rendered yet.
|
|
138
141
|
*/
|
|
139
142
|
setValues(field?: Field): void;
|
|
143
|
+
/**
|
|
144
|
+
* Prefills a new field's rules from the caller's requested initial values —
|
|
145
|
+
* there is no backing `Field` yet, so this is separate from `setValues`.
|
|
146
|
+
* Absent ⇒ the section doesn't support prefilling any rule this way, and
|
|
147
|
+
* the modal drops that rule from `lockedProperties` rather than locking a
|
|
148
|
+
* control at a value it could never actually apply.
|
|
149
|
+
*/
|
|
150
|
+
setInitialValues?(initial: {
|
|
151
|
+
required?: boolean;
|
|
152
|
+
}): void;
|
|
140
153
|
}
|
|
141
154
|
/** Add/edit/delete capability a source exposes. Present ⇒ field management UI shows. */
|
|
142
155
|
export interface FieldManagement {
|
|
@@ -173,7 +186,7 @@ export interface FieldManagement {
|
|
|
173
186
|
getFieldDraft(fieldId: string): FieldDraft | undefined;
|
|
174
187
|
}
|
|
175
188
|
/** A new-field property `OpenFieldModalOptions` can lock from editing. */
|
|
176
|
-
export type LockableFieldProperty = 'type' | 'name';
|
|
189
|
+
export type LockableFieldProperty = 'type' | 'name' | 'required';
|
|
177
190
|
/** Options for opening the add/edit field modal. */
|
|
178
191
|
export interface OpenFieldModalOptions {
|
|
179
192
|
fieldId?: string;
|
|
@@ -186,6 +199,9 @@ export interface OpenFieldModalOptions {
|
|
|
186
199
|
type?: string;
|
|
187
200
|
/** Prefilled; locked when included in `lockedProperties`. */
|
|
188
201
|
name?: string;
|
|
202
|
+
/** Prefilled; locked when included in `lockedProperties`. Support depends
|
|
203
|
+
* on the picked type's settings section — see `FieldSettingsSection.setInitialValues`. */
|
|
204
|
+
required?: boolean;
|
|
189
205
|
};
|
|
190
206
|
/** Properties the user can't change, on top of being prefilled. A property
|
|
191
207
|
* with no matching `initialField` value is never locked — there is nothing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldsSource.d.ts","sourceRoot":"","sources":["../../../src/types/FieldsSource.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FieldsSource.d.ts","sourceRoot":"","sources":["../../../src/types/FieldsSource.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/bex-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.368.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kobi",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"exports"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@wix/bex-utils": "2.
|
|
44
|
+
"@wix/bex-utils": "2.155.0",
|
|
45
45
|
"chance": "^1.0.0",
|
|
46
46
|
"events": "^3.0.0",
|
|
47
47
|
"formstate": "^2.1.0",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"@types/react": "^16.0.0",
|
|
64
64
|
"@wix/auto-crud": "^1.0.108",
|
|
65
65
|
"@wix/babel-cli": "^1.11.0",
|
|
66
|
-
"@wix/cairo-integration-utils": "1.
|
|
66
|
+
"@wix/cairo-integration-utils": "1.130.0",
|
|
67
67
|
"@wix/eslint-config-yoshi": "^6.74.0",
|
|
68
68
|
"@wix/fe-essentials": "^1.233.0",
|
|
69
69
|
"@wix/fe-essentials-standalone": "^1.374.0",
|
|
@@ -169,5 +169,5 @@
|
|
|
169
169
|
"wallaby": {
|
|
170
170
|
"autoDetect": true
|
|
171
171
|
},
|
|
172
|
-
"falconPackageHash": "
|
|
172
|
+
"falconPackageHash": "eaf648bbc21fb74d6cfac1dc6dd725ebfac2b2170fdce3fdd02700dd"
|
|
173
173
|
}
|