@wix/bex-core 2.339.0 → 2.342.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/cjs/index.js.map +1 -1
  2. package/dist/cjs/state/CustomFieldModalState.js +53 -4
  3. package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
  4. package/dist/cjs/state/ImportState/ImportState.js.map +1 -1
  5. package/dist/cjs/testkit/createInMemorySchemaSource.js +6 -3
  6. package/dist/cjs/testkit/createInMemorySchemaSource.js.map +1 -1
  7. package/dist/cjs/types/FieldsSource.js.map +1 -1
  8. package/dist/cjs/types/Schema.js.map +1 -1
  9. package/dist/cjs/types/SchemaSource.js +11 -8
  10. package/dist/cjs/types/SchemaSource.js.map +1 -1
  11. package/dist/esm/index.js.map +1 -1
  12. package/dist/esm/state/CustomFieldModalState.js +46 -3
  13. package/dist/esm/state/CustomFieldModalState.js.map +1 -1
  14. package/dist/esm/testkit/createInMemorySchemaSource.js +6 -3
  15. package/dist/esm/testkit/createInMemorySchemaSource.js.map +1 -1
  16. package/dist/esm/types/SchemaSource.js +2 -4
  17. package/dist/esm/types/SchemaSource.js.map +1 -1
  18. package/dist/types/index.d.ts +3 -3
  19. package/dist/types/index.d.ts.map +1 -1
  20. package/dist/types/state/CustomFieldModalState.d.ts +15 -2
  21. package/dist/types/state/CustomFieldModalState.d.ts.map +1 -1
  22. package/dist/types/state/ImportState/ImportState.d.ts +1 -1
  23. package/dist/types/testkit/createInMemorySchemaSource.d.ts +4 -3
  24. package/dist/types/testkit/createInMemorySchemaSource.d.ts.map +1 -1
  25. package/dist/types/types/FieldsSource.d.ts +56 -19
  26. package/dist/types/types/FieldsSource.d.ts.map +1 -1
  27. package/dist/types/types/Schema.d.ts +9 -2
  28. package/dist/types/types/Schema.d.ts.map +1 -1
  29. package/dist/types/types/SchemaSource.d.ts +29 -16
  30. package/dist/types/types/SchemaSource.d.ts.map +1 -1
  31. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/types/FieldsSource.ts"],"sourcesContent":["import type { Field, PatternsFieldType } from './Field';\nimport type { FieldActions, Schema } from './Schema';\nimport type { FieldTypeDefinition } from './FieldTypeDefinition';\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 field type a source allows creating, with display metadata for the modal. */\nexport interface FieldTypeOption {\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 /** Drives the type icon in the modal. */\n patternsType: PatternsFieldType;\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}\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\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 /** Field types the source allows creating, shown in the add/edit modal. */\n creatableFieldTypes: FieldTypeOption[];\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 /** Permission defaults for the permissions section. */\n permissions?: FieldPermissions;\n /** True ⇒ the modal offers read/write permissions per audience. */\n supportsPermissions?: boolean;\n /** Source-wide default for whether a field can be marked PII. A creatable\n * field type overrides it with its own `supportsPii`. */\n supportsPii?: boolean;\n /** Warning to show while the PII toggle is on. Absent ⇒ none. */\n piiWarning?: FieldPiiWarning;\n /** The text for the add/edit field modal. */\n fieldModalText: FieldModalText;\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/** 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. Built-in types are keyed by\n * their `PatternsFieldType`; consumer-defined types are keyed by the string a\n * field references via `customType`. */\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';\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 /** Drives the type icon in the modal. */\n patternsType: PatternsFieldType;\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 /** 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 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 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/** 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 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/types/Schema.ts"],"sourcesContent":["import type { Field } from './Field';\nimport type { FiltersMap, OptionalFiltersMap } from '../model';\nimport type {\n OffsetQuery,\n OffsetQueryResult,\n CursorQuery,\n CursorQueryResult,\n FetchTotalFn,\n} from '../hooks/paginationModeConfig';\n\n/** Field-management permissions. Absent when the schema's fields cannot be edited. */\nexport interface SchemaPermissions {\n createField: boolean;\n updateField: boolean;\n deleteField: boolean;\n}\n\n/** The per-item delete verdict. */\nexport interface RemoveItemDisabledResult {\n disabled: boolean;\n /** Why the item cannot be deleted — surfaced to the user by consumers. */\n reason?: string;\n}\n\n/** Item-level CRUD permissions. */\nexport interface ItemPermissions<T = Record<string, unknown>> {\n createItem: boolean;\n updateItem: boolean;\n deleteItem: boolean;\n /** Deleting several items in one operation. Absent = follows `deleteItem`. */\n bulkDeleteItems?: boolean;\n /** Per-item refinement of `deleteItem`: disables deleting an item even\n * though `deleteItem` is true, optionally with a reason. Must be pure and\n * synchronous. Absent = all items deletable. */\n isRemoveItemDisabled?: (item: T) => RemoveItemDisabledResult;\n}\n\n/**\n * A source-neutral description of a collection — data only, no behavior.\n * Item access is in `CollectionBackend`, field mutations in `FieldActions`.\n */\nexport interface Schema {\n id: string;\n fields: Record<string, Field | undefined>;\n /** The field that best represents the entity (titles/selections). */\n displayField: string;\n /** The identifier field. */\n idField: string;\n /** Group display order, present when fields carry a `group`. */\n groups?: string[];\n /** Absent when the schema's fields cannot be edited. */\n schemaPermissions?: SchemaPermissions;\n itemPermissions?: ItemPermissions;\n}\n\nexport interface BackupConfig {\n create: () => Promise<{ backupId: string }>;\n waitForCompletion: (\n backupId: string,\n options?: { signal?: AbortSignal },\n ) => Promise<void>;\n cancel?: (backupId: string) => Promise<void>;\n restore?: (backupId: string) => Promise<{ restorationId: string }>;\n waitForRestoration?: (\n restorationId: string,\n options?: { signal?: AbortSignal },\n ) => Promise<void>;\n}\n\nexport interface BulkInsertError {\n rowIndex: number;\n message?: string;\n code?: string;\n}\n\nexport interface BulkInsertResult {\n succeeded?: number;\n failed?: number;\n errors?: BulkInsertError[];\n}\n\n/** Item data access shared by both pagination modes. `find` (on\n * `CollectionBackend`) is the only required call — the rest are capabilities\n * a source provides when it (or its consumer) supports them. */\nexport interface CollectionBackendBase<T = Record<string, unknown>> {\n get?: (entityId: string) => Promise<T>;\n create?: (entity: Partial<T>) => Promise<T>;\n update?: (entity: T) => Promise<T>;\n delete?: (entityId: string) => Promise<void>;\n bulkDelete?: (entityIds: string[]) => Promise<void>;\n move?: (\n id: string,\n params: { moveAfterId: string | null | undefined },\n ) => Promise<void>;\n backup?: BackupConfig;\n bulkInsert?: (entities: Partial<T>[]) => Promise<BulkInsertResult>;\n}\n\n/** Per-call search scope the query layer passes to a backend's `find`. */\nexport interface FindOptions {\n searchableFieldIds?: string[];\n}\n\n/**\n * The query-layer fetch-data fns plus the optional `find` options the runtime\n * already accepts. Kept separate so the shared `OffsetFetchDataFn`/\n * `CursorFetchDataFn` used by `fetchData` stay unchanged.\n */\ntype OffsetFindFn<T, F extends FiltersMap> = (\n query: OffsetQuery<F>,\n options?: FindOptions,\n) => Promise<OffsetQueryResult<T>>;\ntype CursorFindFn<T, F extends FiltersMap> = (\n query: CursorQuery<F>,\n options?: FindOptions,\n) => Promise<CursorQueryResult<T>>;\n\n/**\n * A source's item data access. The source declares its `paginationMode`\n * (offset by default) together with the matching `find`, same as core's\n * `PaginationModeConfig`.\n */\nexport type CollectionBackend<\n T = Record<string, unknown>,\n F extends FiltersMap = OptionalFiltersMap,\n> = CollectionBackendBase<T> &\n (\n | { paginationMode?: 'offset'; find: OffsetFindFn<T, F> }\n | {\n paginationMode: 'cursor';\n find: CursorFindFn<T, F>;\n fetchTotal?: FetchTotalFn;\n }\n );\n\n/** Field-management actions. All optional — a read-only source provides none. */\nexport interface FieldActions {\n /**\n * Field-mutating actions return the collection's updated fields map so the\n * caller can merge its local state from the response, without reloading the\n * schema. (`renameField` is the exception — nothing consumes its result yet.)\n */\n addField?: (field: Field) => Promise<Schema['fields']>;\n /**\n * Adds several fields in a single mutation, each under its `field.id` key\n * (callers decide the keys up front — e.g. CSV import uploads values under\n * them), unlike `addField`, which derives a fresh key from the display name.\n */\n addFields?: (fields: Field[]) => Promise<Schema['fields']>;\n editField?: (\n fieldId: string,\n updates: Partial<Field>,\n ) => Promise<Schema['fields']>;\n deleteField?: (fieldId: string) => Promise<Schema['fields']>;\n renameField?: (fieldId: string, newName: string) => Promise<void>;\n makePrimary?: (fieldId: string) => Promise<Schema['fields']>;\n duplicateField?: (fieldId: string) => Promise<Schema['fields']>;\n duplicateFieldWithContent?: (fieldId: string) => Promise<Schema['fields']>;\n}\n\n/** Everything a source provides for a collection. */\nexport interface LoadedSchema<T = Record<string, unknown>> {\n schema: Schema;\n backend: CollectionBackend<T>;\n fieldActions?: FieldActions;\n}\n\n/**\n * Loads a collection's `LoadedSchema`. Sources that need dependencies expose a\n * factory that returns this type.\n */\nexport type SchemaLoader<\n T extends Record<string, unknown> = Record<string, unknown>,\n> = (collectionId: string) => Promise<LoadedSchema<T>>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/types/Schema.ts"],"sourcesContent":["import type { Field } from './Field';\nimport type { FiltersMap, OptionalFiltersMap } from '../model';\nimport type {\n OffsetQuery,\n OffsetQueryResult,\n CursorQuery,\n CursorQueryResult,\n FetchTotalFn,\n} from '../hooks/paginationModeConfig';\n\n/** Field-management permissions. Absent when the schema's fields cannot be edited. */\nexport interface SchemaPermissions {\n createField: boolean;\n updateField: boolean;\n deleteField: boolean;\n}\n\n/** The per-item delete verdict. */\nexport interface RemoveItemDisabledResult {\n disabled: boolean;\n /** Why the item cannot be deleted — surfaced to the user by consumers. */\n reason?: string;\n}\n\n/** Item-level CRUD permissions. */\nexport interface ItemPermissions<T = Record<string, unknown>> {\n createItem: boolean;\n updateItem: boolean;\n deleteItem: boolean;\n /** Deleting several items in one operation. Absent = follows `deleteItem`. */\n bulkDeleteItems?: boolean;\n /** Per-item refinement of `deleteItem`: disables deleting an item even\n * though `deleteItem` is true, optionally with a reason. Must be pure and\n * synchronous. Absent = all items deletable. */\n isRemoveItemDisabled?: (item: T) => RemoveItemDisabledResult;\n}\n\n/**\n * A source-neutral description of a collection — data only, no behavior.\n * Item access is in `CollectionBackend`, field mutations in `FieldActions`.\n */\nexport interface Schema {\n id: string;\n fields: Record<string, Field | undefined>;\n /** The field that best represents the entity (titles/selections). */\n displayField: string;\n /** The identifier field. */\n idField: string;\n /** Group display order, present when fields carry a `group`. */\n groups?: string[];\n /** Absent when the schema's fields cannot be edited. */\n schemaPermissions?: SchemaPermissions;\n itemPermissions?: ItemPermissions;\n}\n\nexport interface BackupConfig {\n create: () => Promise<{ backupId: string }>;\n waitForCompletion: (\n backupId: string,\n options?: { signal?: AbortSignal },\n ) => Promise<void>;\n cancel?: (backupId: string) => Promise<void>;\n restore?: (backupId: string) => Promise<{ restorationId: string }>;\n waitForRestoration?: (\n restorationId: string,\n options?: { signal?: AbortSignal },\n ) => Promise<void>;\n}\n\nexport interface BulkInsertError {\n rowIndex: number;\n message?: string;\n code?: string;\n}\n\nexport interface BulkInsertResult {\n succeeded?: number;\n failed?: number;\n errors?: BulkInsertError[];\n}\n\n/** Item data access shared by both pagination modes. `find` (on\n * `CollectionBackend`) is the only required call — the rest are capabilities\n * a source provides when it (or its consumer) supports them. */\nexport interface CollectionBackendBase<T = Record<string, unknown>> {\n get?: (entityId: string) => Promise<T>;\n create?: (entity: Partial<T>) => Promise<T>;\n update?: (entity: T) => Promise<T>;\n delete?: (entityId: string) => Promise<void>;\n bulkDelete?: (entityIds: string[]) => Promise<void>;\n move?: (\n id: string,\n params: { moveAfterId: string | null | undefined },\n ) => Promise<void>;\n backup?: BackupConfig;\n bulkInsert?: (entities: Partial<T>[]) => Promise<BulkInsertResult>;\n}\n\n/** Per-call search scope the query layer passes to a backend's `find`. */\nexport interface FindOptions {\n searchableFieldIds?: string[];\n}\n\n/**\n * The query-layer fetch-data fns plus the optional `find` options the runtime\n * already accepts. Kept separate so the shared `OffsetFetchDataFn`/\n * `CursorFetchDataFn` used by `fetchData` stay unchanged.\n */\ntype OffsetFindFn<T, F extends FiltersMap> = (\n query: OffsetQuery<F>,\n options?: FindOptions,\n) => Promise<OffsetQueryResult<T>>;\ntype CursorFindFn<T, F extends FiltersMap> = (\n query: CursorQuery<F>,\n options?: FindOptions,\n) => Promise<CursorQueryResult<T>>;\n\n/**\n * A source's item data access. The source declares its `paginationMode`\n * (offset by default) together with the matching `find`, same as core's\n * `PaginationModeConfig`.\n */\nexport type CollectionBackend<\n T = Record<string, unknown>,\n F extends FiltersMap = OptionalFiltersMap,\n> = CollectionBackendBase<T> &\n (\n | { paginationMode?: 'offset'; find: OffsetFindFn<T, F> }\n | {\n paginationMode: 'cursor';\n find: CursorFindFn<T, F>;\n fetchTotal?: FetchTotalFn;\n }\n );\n\n/**\n * Whatever the source's settings section collected in the add/edit field modal.\n * The modal and the collection layer only carry it; the source that produced it\n * is the only one that looks inside, so it declares its own shape on `addField`\n * and `editField` (both are methods, so a narrower parameter type is allowed).\n */\nexport type FieldSettings = unknown;\n\n/** Field-management actions. All optional — a read-only source provides none. */\nexport interface FieldActions {\n /**\n * Field-mutating actions return the collection's updated fields map so the\n * caller can merge its local state from the response, without reloading the\n * schema. (`renameField` is the exception — nothing consumes its result yet.)\n */\n addField?(field: Field, settings?: FieldSettings): Promise<Schema['fields']>;\n /**\n * Adds several fields in a single mutation, each under its `field.id` key\n * (callers decide the keys up front — e.g. CSV import uploads values under\n * them), unlike `addField`, which derives a fresh key from the display name.\n */\n addFields?: (fields: Field[]) => Promise<Schema['fields']>;\n editField?(\n fieldId: string,\n updates: Partial<Field>,\n settings?: FieldSettings,\n ): Promise<Schema['fields']>;\n deleteField?: (fieldId: string) => Promise<Schema['fields']>;\n renameField?: (fieldId: string, newName: string) => Promise<void>;\n makePrimary?: (fieldId: string) => Promise<Schema['fields']>;\n duplicateField?: (fieldId: string) => Promise<Schema['fields']>;\n duplicateFieldWithContent?: (fieldId: string) => Promise<Schema['fields']>;\n}\n\n/** Everything a source provides for a collection. */\nexport interface LoadedSchema<T = Record<string, unknown>> {\n schema: Schema;\n backend: CollectionBackend<T>;\n fieldActions?: FieldActions;\n}\n\n/**\n * Loads a collection's `LoadedSchema`. Sources that need dependencies expose a\n * factory that returns this type.\n */\nexport type SchemaLoader<\n T extends Record<string, unknown> = Record<string, unknown>,\n> = (collectionId: string) => Promise<LoadedSchema<T>>;\n"],"mappings":"","ignoreList":[]}
@@ -3,8 +3,12 @@
3
3
  exports.__esModule = true;
4
4
  exports.defineSchemaSource = defineSchemaSource;
5
5
  exports.sourceFetchData = sourceFetchData;
6
- /** A field type a source allows creating. Declare one entry per
7
- * `patternsType` — the type is the entry's identity. */
6
+ /** A field type the add/edit field modal offers, with everything that type
7
+ * brings to it. Declare one entry per `patternsType` — the type is the entry's
8
+ * identity. Nothing here reaches the table or the filters; that is `fieldTypes`
9
+ * (`FieldTypeDefinition[]`). */
10
+
11
+ /** Everything the add/edit field modal shows for this source. */
8
12
 
9
13
  /** What a caller passes. Only `collectionId` and `loadSchema` are required. */
10
14
 
@@ -38,12 +42,10 @@ function defineSchemaSource(input) {
38
42
  const {
39
43
  collectionId,
40
44
  paginationMode = 'offset',
41
- creatableFieldTypes = [],
45
+ fieldModal = {},
42
46
  fieldTypes = [],
43
47
  fieldPermissions,
44
48
  supportsPii = false,
45
- piiWarning,
46
- fieldModalText,
47
49
  references = {}
48
50
  } = input;
49
51
  let loaded;
@@ -88,7 +90,10 @@ function defineSchemaSource(input) {
88
90
  itemKey,
89
91
  itemName,
90
92
  references,
91
- creatableFieldTypes,
93
+ fieldModal: {
94
+ text: fieldModal.text,
95
+ types: fieldModal.types ?? []
96
+ },
92
97
  fieldTypes,
93
98
  searchableFieldIds,
94
99
  canAddFields,
@@ -96,8 +101,6 @@ function defineSchemaSource(input) {
96
101
  canDeleteField,
97
102
  fieldPermissions,
98
103
  supportsPii,
99
- piiWarning,
100
- fieldModalText,
101
104
  getFieldValue,
102
105
  setFieldValue
103
106
  };
@@ -1 +1 @@
1
- {"version":3,"names":["sourceFetchData","source","query","backend","schema","loadSchema","visibleColumns","columns","find","searchableFieldIds","length","defineSchemaSource","input","collectionId","paginationMode","creatableFieldTypes","fieldTypes","fieldPermissions","supportsPii","piiWarning","fieldModalText","references","loaded","then","result","catch","error","undefined","s","displayField","itemKey","item","_schema","String","idField","itemName","_schema2","canAddFields","_s$schemaPermissions","schemaPermissions","createField","canEditField","field","_s$schemaPermissions2","updateField","isSystem","canDeleteField","_s$schemaPermissions3","deleteField","getFieldValue","id","setFieldValue","value"],"sources":["../../../src/types/SchemaSource.ts"],"sourcesContent":["import type { Field, PatternsFieldType } from './Field';\nimport type { FieldTypeDefinition } from './FieldTypeDefinition';\nimport type { Schema, LoadedSchema, FindOptions } from './Schema';\nimport type {\n FieldModalText,\n FieldPermissions,\n FieldPiiWarning,\n} from './FieldsSource';\nimport type {\n OffsetQuery,\n OffsetQueryResult,\n} from '../hooks/paginationModeConfig';\n\n/** A field type a source allows creating. Declare one entry per\n * `patternsType` — the type is the entry's identity. */\nexport interface CreatableFieldType {\n patternsType: PatternsFieldType;\n /** Custom display name. Absent ⇒ the UI's standard name for this type. */\n label?: string;\n /** Custom name-input placeholder. Absent ⇒ the UI's standard placeholder. */\n namePlaceholder?: string;\n /** A one-line description shown under the type in the add-field menu. */\n subtitle?: string;\n /** The group heading this type is listed under in the add-field menu, in\n * first-seen order. Types sharing a heading form one group. Absent ⇒\n * ungrouped. */\n group?: string;\n /** Whether a field of this type can be marked PII. Absent ⇒ follows the\n * source's `supportsPii`. */\n supportsPii?: boolean;\n}\n\n/** What a caller passes. Only `collectionId` and `loadSchema` are required. */\nexport interface SchemaSourceInput<T> {\n collectionId: string;\n loadSchema: () => Promise<LoadedSchema<T>>;\n /** Sources for collections this one references, keyed by the referenced\n * collection id. A renderer resolves a reference field through the matching\n * entry — its `loadSchema` gives the referenced schema and `sourceFetchData`\n * queries the referenced items. Default: none. */\n references?: Record<string, SchemaSource<any>>;\n paginationMode?: 'offset';\n /** Stable row identity. Default: `row[idField]`. */\n itemKey?: (item: T) => string;\n /** Row display label. Default: `row[displayField]`. */\n itemName?: (item: T) => string;\n /** Fields free-text search runs against. Default: `[displayField]`. */\n searchableFieldIds?: (schema: Schema) => string[];\n /** Field types the add-field modal offers. Default: none. */\n creatableFieldTypes?: CreatableFieldType[];\n /** Consumer-defined field types. A field with `type: 'CUSTOM'` resolves its\n * definition here by `customType`. Default: none. */\n fieldTypes?: FieldTypeDefinition[];\n /** Default: `schemaPermissions.createField`. */\n canAddFields?: (schema: Schema) => boolean;\n /** Default: `schemaPermissions.updateField && !field.isSystem`. */\n canEditField?: (field: Field, schema: Schema) => boolean;\n /** Default: `schemaPermissions.deleteField && !field.isSystem`. */\n canDeleteField?: (field: Field, schema: Schema) => boolean;\n /** Permission defaults shown in the modal. Absent ⇒ no permissions section. */\n fieldPermissions?: FieldPermissions;\n /** Default: `false`. */\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 /** Title and subtitle for the add/edit field modal. Absent ⇒ generic default. */\n fieldModalText?: FieldModalText;\n /** The value of a field on an item. Default: `item[field.id]`. */\n getFieldValue?: (item: T, field: Field) => unknown;\n /** Writes a field's value on an item, returning the updated item.\n * Default: `{ ...item, [field.id]: value }`. */\n setFieldValue?: (item: T, field: Field, value: unknown) => T;\n}\n\n/** The resolved source: defaults filled, `loadSchema` memoized. */\nexport interface SchemaSource<T> {\n readonly collectionId: string;\n loadSchema: () => Promise<LoadedSchema<T>>;\n readonly paginationMode: 'offset';\n /** Stable row identity. */\n itemKey: (item: T) => string;\n /** Row display label. */\n itemName: (item: T) => string;\n /** Sources for referenced collections, keyed by referenced collection id. */\n readonly references: Record<string, SchemaSource<any>>;\n readonly creatableFieldTypes: CreatableFieldType[];\n readonly fieldTypes: FieldTypeDefinition[];\n searchableFieldIds: (schema: Schema) => string[];\n canAddFields: (schema: Schema) => boolean;\n canEditField: (field: Field, schema: Schema) => boolean;\n canDeleteField: (field: Field, schema: Schema) => boolean;\n readonly fieldPermissions?: FieldPermissions;\n readonly supportsPii: boolean;\n readonly piiWarning?: () => FieldPiiWarning | undefined;\n readonly fieldModalText?: FieldModalText;\n /** The value of a field on an item. */\n getFieldValue: (item: T, field: Field) => unknown;\n /** Writes a field's value on an item, returning the updated item. */\n setFieldValue: (item: T, field: Field, value: unknown) => T;\n}\n\ntype OffsetFind<T> = (\n query: OffsetQuery,\n options?: FindOptions,\n) => Promise<OffsetQueryResult<T>>;\n\n/** The collection fetch derived from a source: loads once, then queries the\n * backend's `find`.\n *\n * Free-text search covers the columns the page is showing: the table keeps\n * `query.columns` in sync with them, so the scope comes off the query rather\n * than being threaded in. Falls back to the source's own `searchableFieldIds`\n * before any columns are known (or with no table attached). */\nexport function sourceFetchData<T>(\n source: SchemaSource<T>,\n): (query: OffsetQuery) => Promise<OffsetQueryResult<T>> {\n return async (query) => {\n const { backend, schema } = await source.loadSchema();\n // `columns` is the visible-column list; `fields` is the projection, which a\n // source-driven table doesn't set.\n const visibleColumns = query.columns;\n return (backend.find as OffsetFind<T>)(query, {\n searchableFieldIds: visibleColumns?.length\n ? visibleColumns\n : source.searchableFieldIds(schema),\n });\n };\n}\n\n/** Fills source-neutral defaults over `input` and memoizes the load so the collection\n * query and the table columns share a single fetch. */\nexport function defineSchemaSource<T>(\n input: SchemaSourceInput<T>,\n): SchemaSource<T> {\n const {\n collectionId,\n paginationMode = 'offset',\n creatableFieldTypes = [],\n fieldTypes = [],\n fieldPermissions,\n supportsPii = false,\n piiWarning,\n fieldModalText,\n references = {},\n } = input;\n\n let loaded: Promise<LoadedSchema<T>> | undefined;\n let schema: Schema | undefined;\n\n const loadSchema = () =>\n (loaded ??= input\n .loadSchema()\n .then((result) => {\n schema = result.schema;\n return result;\n })\n .catch((error) => {\n loaded = undefined;\n throw error;\n }));\n\n const searchableFieldIds =\n input.searchableFieldIds ?? ((s) => [s.displayField]);\n\n const itemKey =\n input.itemKey ??\n ((item) =>\n String(\n (item as Record<string, unknown>)[schema?.idField ?? '_id'] ?? '',\n ));\n const itemName =\n input.itemName ??\n ((item) =>\n String(\n (item as Record<string, unknown>)[schema?.displayField ?? '_id'] ?? '',\n ));\n const canAddFields =\n input.canAddFields ?? ((s) => s.schemaPermissions?.createField ?? false);\n const canEditField =\n input.canEditField ??\n ((field, s) =>\n (s.schemaPermissions?.updateField ?? false) && !field.isSystem);\n const canDeleteField =\n input.canDeleteField ??\n ((field, s) =>\n (s.schemaPermissions?.deleteField ?? false) && !field.isSystem);\n const getFieldValue =\n input.getFieldValue ??\n ((item, field) => (item as Record<string, unknown>)[field.id]);\n const setFieldValue =\n input.setFieldValue ??\n ((item, field, value) => ({ ...item, [field.id]: value } as T));\n\n return {\n collectionId,\n loadSchema,\n paginationMode,\n itemKey,\n itemName,\n references,\n creatableFieldTypes,\n fieldTypes,\n searchableFieldIds,\n canAddFields,\n canEditField,\n canDeleteField,\n fieldPermissions,\n supportsPii,\n piiWarning,\n fieldModalText,\n getFieldValue,\n setFieldValue,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sourceFetchData","source","query","backend","schema","loadSchema","visibleColumns","columns","find","searchableFieldIds","length","defineSchemaSource","input","collectionId","paginationMode","fieldModal","fieldTypes","fieldPermissions","supportsPii","references","loaded","then","result","catch","error","undefined","s","displayField","itemKey","item","_schema","String","idField","itemName","_schema2","canAddFields","_s$schemaPermissions","schemaPermissions","createField","canEditField","field","_s$schemaPermissions2","updateField","isSystem","canDeleteField","_s$schemaPermissions3","deleteField","getFieldValue","id","setFieldValue","value","text","types"],"sources":["../../../src/types/SchemaSource.ts"],"sourcesContent":["import type { Field, PatternsFieldType } from './Field';\nimport type { FieldTypeDefinition } from './FieldTypeDefinition';\nimport type { Schema, LoadedSchema, FindOptions } from './Schema';\nimport type {\n FieldModalText,\n FieldPermissions,\n FieldPiiWarning,\n FieldSettingsSection,\n} from './FieldsSource';\nimport type {\n OffsetQuery,\n OffsetQueryResult,\n} from '../hooks/paginationModeConfig';\n\n/** A field type the add/edit field modal offers, with everything that type\n * brings to it. Declare one entry per `patternsType` — the type is the entry's\n * identity. Nothing here reaches the table or the filters; that is `fieldTypes`\n * (`FieldTypeDefinition[]`). */\nexport interface FieldTypeOption {\n patternsType: PatternsFieldType;\n /** Custom display name. Absent ⇒ the UI's standard name for this type. */\n label?: string;\n /** Custom name-input placeholder. Absent ⇒ the UI's standard placeholder. */\n namePlaceholder?: string;\n /** A one-line description shown under the type in the add-field menu. */\n subtitle?: string;\n /** The group heading this type is listed under in the add-field menu, in\n * first-seen order. Types sharing a heading form one group. Absent ⇒\n * ungrouped. */\n group?: string;\n /** Whether a field of this type can be marked PII. Absent ⇒ follows the\n * source's `supportsPii`. */\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 own part of the collapsible section in the add/edit field\n * modal. Default: none. */\n settingsSection?: FieldSettingsSection;\n}\n\n/** Everything the add/edit field modal shows for this source. */\nexport interface FieldModalInput {\n /** Title and subtitle. Default: generic titles. */\n text?: FieldModalText;\n /** The types the modal offers, in display order. Default: none. */\n types?: FieldTypeOption[];\n}\n\n/** What a caller passes. Only `collectionId` and `loadSchema` are required. */\nexport interface SchemaSourceInput<T> {\n collectionId: string;\n loadSchema: () => Promise<LoadedSchema<T>>;\n /** Sources for collections this one references, keyed by the referenced\n * collection id. A renderer resolves a reference field through the matching\n * entry — its `loadSchema` gives the referenced schema and `sourceFetchData`\n * queries the referenced items. Default: none. */\n references?: Record<string, SchemaSource<any>>;\n paginationMode?: 'offset';\n /** Stable row identity. Default: `row[idField]`. */\n itemKey?: (item: T) => string;\n /** Row display label. Default: `row[displayField]`. */\n itemName?: (item: T) => string;\n /** Fields free-text search runs against. Default: `[displayField]`. */\n searchableFieldIds?: (schema: Schema) => string[];\n /** What the add/edit field modal shows. Default: no types, generic titles. */\n fieldModal?: FieldModalInput;\n /** Consumer-defined field types: how a field of that type renders, filters and\n * validates wherever it appears. A field with `type: 'CUSTOM'` resolves its\n * definition here by `customType`. The add/edit field modal never reads this\n * — see `fieldModal`. Default: none. */\n fieldTypes?: FieldTypeDefinition[];\n /** Default: `schemaPermissions.createField`. */\n canAddFields?: (schema: Schema) => boolean;\n /** Default: `schemaPermissions.updateField && !field.isSystem`. */\n canEditField?: (field: Field, schema: Schema) => boolean;\n /** Default: `schemaPermissions.deleteField && !field.isSystem`. */\n canDeleteField?: (field: Field, schema: Schema) => boolean;\n /** Permission defaults shown in the modal. Absent ⇒ no permissions section. */\n fieldPermissions?: FieldPermissions;\n /** Default: `false`. */\n supportsPii?: boolean;\n /** The value of a field on an item. Default: `item[field.id]`. */\n getFieldValue?: (item: T, field: Field) => unknown;\n /** Writes a field's value on an item, returning the updated item.\n * Default: `{ ...item, [field.id]: value }`. */\n setFieldValue?: (item: T, field: Field, value: unknown) => T;\n}\n\n/** The resolved source: defaults filled, `loadSchema` memoized. */\nexport interface SchemaSource<T> {\n readonly collectionId: string;\n loadSchema: () => Promise<LoadedSchema<T>>;\n readonly paginationMode: 'offset';\n /** Stable row identity. */\n itemKey: (item: T) => string;\n /** Row display label. */\n itemName: (item: T) => string;\n /** Sources for referenced collections, keyed by referenced collection id. */\n readonly references: Record<string, SchemaSource<any>>;\n readonly fieldModal: { text?: FieldModalText; types: FieldTypeOption[] };\n readonly fieldTypes: FieldTypeDefinition[];\n searchableFieldIds: (schema: Schema) => string[];\n canAddFields: (schema: Schema) => boolean;\n canEditField: (field: Field, schema: Schema) => boolean;\n canDeleteField: (field: Field, schema: Schema) => boolean;\n readonly fieldPermissions?: FieldPermissions;\n readonly supportsPii: boolean;\n /** The value of a field on an item. */\n getFieldValue: (item: T, field: Field) => unknown;\n /** Writes a field's value on an item, returning the updated item. */\n setFieldValue: (item: T, field: Field, value: unknown) => T;\n}\n\ntype OffsetFind<T> = (\n query: OffsetQuery,\n options?: FindOptions,\n) => Promise<OffsetQueryResult<T>>;\n\n/** The collection fetch derived from a source: loads once, then queries the\n * backend's `find`.\n *\n * Free-text search covers the columns the page is showing: the table keeps\n * `query.columns` in sync with them, so the scope comes off the query rather\n * than being threaded in. Falls back to the source's own `searchableFieldIds`\n * before any columns are known (or with no table attached). */\nexport function sourceFetchData<T>(\n source: SchemaSource<T>,\n): (query: OffsetQuery) => Promise<OffsetQueryResult<T>> {\n return async (query) => {\n const { backend, schema } = await source.loadSchema();\n // `columns` is the visible-column list; `fields` is the projection, which a\n // source-driven table doesn't set.\n const visibleColumns = query.columns;\n return (backend.find as OffsetFind<T>)(query, {\n searchableFieldIds: visibleColumns?.length\n ? visibleColumns\n : source.searchableFieldIds(schema),\n });\n };\n}\n\n/** Fills source-neutral defaults over `input` and memoizes the load so the collection\n * query and the table columns share a single fetch. */\nexport function defineSchemaSource<T>(\n input: SchemaSourceInput<T>,\n): SchemaSource<T> {\n const {\n collectionId,\n paginationMode = 'offset',\n fieldModal = {},\n fieldTypes = [],\n fieldPermissions,\n supportsPii = false,\n references = {},\n } = input;\n\n let loaded: Promise<LoadedSchema<T>> | undefined;\n let schema: Schema | undefined;\n\n const loadSchema = () =>\n (loaded ??= input\n .loadSchema()\n .then((result) => {\n schema = result.schema;\n return result;\n })\n .catch((error) => {\n loaded = undefined;\n throw error;\n }));\n\n const searchableFieldIds =\n input.searchableFieldIds ?? ((s) => [s.displayField]);\n\n const itemKey =\n input.itemKey ??\n ((item) =>\n String(\n (item as Record<string, unknown>)[schema?.idField ?? '_id'] ?? '',\n ));\n const itemName =\n input.itemName ??\n ((item) =>\n String(\n (item as Record<string, unknown>)[schema?.displayField ?? '_id'] ?? '',\n ));\n const canAddFields =\n input.canAddFields ?? ((s) => s.schemaPermissions?.createField ?? false);\n const canEditField =\n input.canEditField ??\n ((field, s) =>\n (s.schemaPermissions?.updateField ?? false) && !field.isSystem);\n const canDeleteField =\n input.canDeleteField ??\n ((field, s) =>\n (s.schemaPermissions?.deleteField ?? false) && !field.isSystem);\n const getFieldValue =\n input.getFieldValue ??\n ((item, field) => (item as Record<string, unknown>)[field.id]);\n const setFieldValue =\n input.setFieldValue ??\n ((item, field, value) => ({ ...item, [field.id]: value } as T));\n\n return {\n collectionId,\n loadSchema,\n paginationMode,\n itemKey,\n itemName,\n references,\n fieldModal: { text: fieldModal.text, types: fieldModal.types ?? [] },\n fieldTypes,\n searchableFieldIds,\n canAddFields,\n canEditField,\n canDeleteField,\n fieldPermissions,\n supportsPii,\n getFieldValue,\n setFieldValue,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAGL,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyC9C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM3E,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAGL,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA4C9C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAO3E,cAAc,6BAA6B,CAAC"}
@@ -22,6 +22,10 @@ export class CustomFieldModalState {
22
22
  this.enableAutoValidation();
23
23
  throw new Error('validation');
24
24
  }
25
+ if (this.settingsHasError) {
26
+ this.settings.setOn();
27
+ throw new Error('validation');
28
+ }
25
29
  try {
26
30
  const draft = this.getFormValues();
27
31
  // Pure mode (CSV import): hand the draft back; no server mutation, no
@@ -111,11 +115,14 @@ export class CustomFieldModalState {
111
115
  selectedFieldType: computed,
112
116
  namePlaceholder: computed,
113
117
  typeSupportsPii: computed,
118
+ showSettings: computed,
119
+ settingsHasError: computed,
114
120
  isSubmitting: computed,
115
121
  disabledFields: observable.ref,
116
122
  errorToastConfig: observable.ref,
117
123
  mode: observable.ref,
118
124
  reset: action,
125
+ resetSettingsValues: action,
119
126
  setFormValues: action,
120
127
  generateUniqueKey: action.bound,
121
128
  setKeyFieldIfNotDirty: action.bound,
@@ -162,6 +169,7 @@ export class CustomFieldModalState {
162
169
  const { form, settings, disabledFields: { permissions }, } = this;
163
170
  form.reset();
164
171
  settings.setOff();
172
+ this.resetSettingsValues();
165
173
  this.errorToastConfig = undefined;
166
174
  this.disableAutoValidation();
167
175
  permissions.read.apps = false;
@@ -169,6 +177,12 @@ export class CustomFieldModalState {
169
177
  permissions.write.apps = false;
170
178
  permissions.write.users = false;
171
179
  }
180
+ /** Clears the settings sections back to their defaults. Goes over every type
181
+ * option rather than the picked one: `reset()` runs after the form is
182
+ * cleared, when no type is picked. */
183
+ resetSettingsValues() {
184
+ this.fieldManagement.fieldModal.types.forEach((type) => type.settingsSection?.setValues());
185
+ }
172
186
  enableAutoValidation() {
173
187
  const { form: { $: { key, name, type }, }, } = this;
174
188
  key.enableAutoValidation();
@@ -192,6 +206,7 @@ export class CustomFieldModalState {
192
206
  writeApps: writeApps.value,
193
207
  writeUsers: writeUsers.value,
194
208
  containsPii: containsPii.value,
209
+ settings: this.settingsSection?.getValues(type.value),
195
210
  };
196
211
  }
197
212
  setFormValues(form, params) {
@@ -204,6 +219,8 @@ export class CustomFieldModalState {
204
219
  $.writeApps.value = form.writeApps;
205
220
  $.writeUsers.value = form.writeUsers;
206
221
  $.containsPii.value = form.containsPii;
222
+ // After `$.type.value` above, so it lands on the picked type's section.
223
+ this.settingsSection?.setValues(form.field);
207
224
  if (params?.disablePermissionCheckboxes) {
208
225
  if (form.readUsers) {
209
226
  this.disabledFields.permissions.read.users = true;
@@ -221,7 +238,7 @@ export class CustomFieldModalState {
221
238
  }
222
239
  setDefaultPermissions() {
223
240
  const { form: { $ }, } = this;
224
- const permissions = this.fieldManagement.permissions;
241
+ const permissions = this.fieldManagement.fieldModal.permissions;
225
242
  if (!permissions?.installedApps?.hide) {
226
243
  $.readApps.value = !!permissions?.installedApps?.defaultRead;
227
244
  $.writeApps.value = !!permissions?.installedApps?.defaultWrite;
@@ -256,7 +273,7 @@ export class CustomFieldModalState {
256
273
  return this.modalState.modal.confirming.isLoading;
257
274
  }
258
275
  get selectedFieldType() {
259
- return this.fieldManagement.creatableFieldTypes.find((option) => option.id === this.form.$.type.value);
276
+ return this.fieldManagement.fieldModal.types.find((option) => option.id === this.form.$.type.value);
260
277
  }
261
278
  get namePlaceholder() {
262
279
  return (this.selectedFieldType?.namePlaceholder ??
@@ -272,8 +289,34 @@ export class CustomFieldModalState {
272
289
  return false;
273
290
  }
274
291
  return (this.selectedFieldType?.supportsPii ??
275
- this.fieldManagement.supportsPii ??
292
+ this.fieldManagement.fieldModal.supportsPii ??
276
293
  false);
277
294
  }
295
+ /** The picked type's settings section. Editing a field of a type the source
296
+ * can't create finds no entry for it, so it falls back to the first section
297
+ * the source declares — that field still has settings to show. */
298
+ get settingsSection() {
299
+ if (!this.form.$.type.value) {
300
+ return undefined;
301
+ }
302
+ return (this.selectedFieldType?.settingsSection ??
303
+ this.fieldManagement.fieldModal.types.find((t) => t.settingsSection)
304
+ ?.settingsSection);
305
+ }
306
+ /** Not a computed: the warning may read data the source loaded outside MobX,
307
+ * so it's called afresh on every render. Same fallback as `settingsSection`. */
308
+ get piiWarning() {
309
+ const warning = this.selectedFieldType?.piiWarning ??
310
+ this.fieldManagement.fieldModal.types.find((t) => t.piiWarning)
311
+ ?.piiWarning;
312
+ return warning?.();
313
+ }
314
+ get showSettings() {
315
+ return (Boolean(this.fieldManagement.fieldModal.permissions) ||
316
+ Boolean(this.settingsSection));
317
+ }
318
+ get settingsHasError() {
319
+ return Boolean(this.settingsSection?.hasError(this.form.$.type.value));
320
+ }
278
321
  }
279
322
  //# sourceMappingURL=CustomFieldModalState.js.map
@@ -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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"}
@@ -6,7 +6,7 @@ const ALL_PERMISSIONS = {
6
6
  deleteField: true,
7
7
  };
8
8
  // The types the add/edit modal offers by default (the ones @wix/data can create).
9
- const DEFAULT_CREATABLE_FIELD_TYPES = [
9
+ const DEFAULT_FIELD_TYPE_OPTIONS = [
10
10
  { patternsType: 'SHORT_TEXT' },
11
11
  { patternsType: 'NUMBER' },
12
12
  { patternsType: 'BOOLEAN' },
@@ -25,7 +25,7 @@ const DEFAULT_CREATABLE_FIELD_TYPES = [
25
25
  * assert on the in-memory rows directly.
26
26
  */
27
27
  export function createInMemorySchemaSource(config) {
28
- const { collectionId, idField = '_id', displayField = config.fields[0]?.id ?? idField, schemaPermissions = ALL_PERMISSIONS, itemPermissions, creatableFieldTypes = DEFAULT_CREATABLE_FIELD_TYPES, fieldTypes, supportsPii = false, references, } = config;
28
+ const { collectionId, idField = '_id', displayField = config.fields[0]?.id ?? idField, schemaPermissions = ALL_PERMISSIONS, itemPermissions, fieldModal, fieldTypes, supportsPii = false, references, } = config;
29
29
  // Mutable in-memory state shared by the backend, schema, and field actions.
30
30
  const fields = {};
31
31
  config.fields.forEach((field) => {
@@ -132,7 +132,10 @@ export function createInMemorySchemaSource(config) {
132
132
  const source = defineSchemaSource({
133
133
  collectionId,
134
134
  loadSchema,
135
- creatableFieldTypes,
135
+ fieldModal: {
136
+ ...fieldModal,
137
+ types: fieldModal?.types ?? DEFAULT_FIELD_TYPE_OPTIONS,
138
+ },
136
139
  fieldTypes,
137
140
  supportsPii,
138
141
  ...(references && { references }),
@@ -1 +1 @@
1
- {"version":3,"file":"createInMemorySchemaSource.js","sourceRoot":"","sources":["../../../src/testkit/createInMemorySchemaSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createInMemorySchemaSource.js","sourceRoot":"","sources":["../../../src/testkit/createInMemorySchemaSource.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export function sourceFetchData(source) {
21
21
  /** Fills source-neutral defaults over `input` and memoizes the load so the collection
22
22
  * query and the table columns share a single fetch. */
23
23
  export function defineSchemaSource(input) {
24
- const { collectionId, paginationMode = 'offset', creatableFieldTypes = [], fieldTypes = [], fieldPermissions, supportsPii = false, piiWarning, fieldModalText, references = {}, } = input;
24
+ const { collectionId, paginationMode = 'offset', fieldModal = {}, fieldTypes = [], fieldPermissions, supportsPii = false, references = {}, } = input;
25
25
  let loaded;
26
26
  let schema;
27
27
  const loadSchema = () => (loaded ??= input
@@ -55,7 +55,7 @@ export function defineSchemaSource(input) {
55
55
  itemKey,
56
56
  itemName,
57
57
  references,
58
- creatableFieldTypes,
58
+ fieldModal: { text: fieldModal.text, types: fieldModal.types ?? [] },
59
59
  fieldTypes,
60
60
  searchableFieldIds,
61
61
  canAddFields,
@@ -63,8 +63,6 @@ export function defineSchemaSource(input) {
63
63
  canDeleteField,
64
64
  fieldPermissions,
65
65
  supportsPii,
66
- piiWarning,
67
- fieldModalText,
68
66
  getFieldValue,
69
67
  setFieldValue,
70
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaSource.js","sourceRoot":"","sources":["../../../src/types/SchemaSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaSource.js","sourceRoot":"","sources":["../../../src/types/SchemaSource.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,10 @@ export { CollectionConfigWithConditionals, CollectionFactory, useSyncProps, useS
10
10
  export { QueryCache } from 'react-query/core';
11
11
  export { DeepPartial } from './types/DeepPartial';
12
12
  export type { PatternsFieldType, QueryOperator, NumberRange, StringLengthRange, BaseReferenceField, ReferenceField, MultiReferenceField, NonReferenceField, Field, FieldSpec, } from './types/Field';
13
- export type { Schema, SchemaPermissions, ItemPermissions, RemoveItemDisabledResult, CollectionBackendBase, CollectionBackend, FieldActions, BackupConfig, BulkInsertResult, BulkInsertError, LoadedSchema, SchemaLoader, FindOptions, } from './types/Schema';
14
- export type { FieldsSource, FieldManagement, FieldArchive, ArchivedFieldItem, FieldTypeOption, FieldPermissions, FieldDraft, FieldModalText, FieldModalSubtitle, FieldPiiWarning, } from './types/FieldsSource';
13
+ export type { Schema, SchemaPermissions, ItemPermissions, RemoveItemDisabledResult, CollectionBackendBase, CollectionBackend, FieldActions, FieldSettings, BackupConfig, BulkInsertResult, BulkInsertError, LoadedSchema, SchemaLoader, FindOptions, } from './types/Schema';
14
+ export type { FieldsSource, FieldManagement, FieldArchive, ArchivedFieldItem, ResolvedFieldTypeOption, FieldPermissions, FieldDraft, FieldModalText, FieldModalSubtitle, FieldPiiWarning, FieldSettingsProps, FieldSettingsSection, } from './types/FieldsSource';
15
15
  export { defineSchemaSource, sourceFetchData } from './types/SchemaSource';
16
- export type { SchemaSource, SchemaSourceInput, CreatableFieldType, } from './types/SchemaSource';
16
+ export type { SchemaSource, SchemaSourceInput, FieldModalInput, FieldTypeOption, } from './types/SchemaSource';
17
17
  export * from './types/FieldTypeDefinition';
18
18
  export type { CursorQuery, OffsetQuery, CursorQueryResult, OffsetQueryResult, CursorFetchDataFn, OffsetFetchDataFn, FetchTotalFn, } from './hooks/paginationModeConfig';
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,OAAO,EACL,gCAAgC,EAChC,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,EACL,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,YAAY,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,OAAO,EACL,gCAAgC,EAChC,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,EACL,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,YAAY,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,8BAA8B,CAAC"}
@@ -17,7 +17,7 @@ export interface CustomFieldStateParams {
17
17
  * `onSubmit` instead of creating/editing the field through `fieldManagement`
18
18
  * (no server side effect, no success toast). Used by the CSV import flow, which
19
19
  * defers field creation to a single batch step before upload. `fieldManagement`
20
- * is still required — the form reads its creatable types/permissions/keys.
20
+ * is still required — the form reads its type options/permissions/keys.
21
21
  */
22
22
  onSubmit?: (draft: FieldDraft) => void;
23
23
  }
@@ -69,6 +69,10 @@ export declare class CustomFieldModalState {
69
69
  constructor(params: CustomFieldStateParams);
70
70
  onConfirmError(e: unknown): void;
71
71
  reset(): void;
72
+ /** Clears the settings sections back to their defaults. Goes over every type
73
+ * option rather than the picked one: `reset()` runs after the form is
74
+ * cleared, when no type is picked. */
75
+ resetSettingsValues(): void;
72
76
  enableAutoValidation(): void;
73
77
  disableAutoValidation(): void;
74
78
  getFormValues(): FieldDraft;
@@ -81,12 +85,21 @@ export declare class CustomFieldModalState {
81
85
  generateUniqueKey(name: string): string;
82
86
  get t(): import("../services").Translate;
83
87
  get isSubmitting(): boolean;
84
- get selectedFieldType(): import("../types/FieldsSource").FieldTypeOption | undefined;
88
+ get selectedFieldType(): import("../types/FieldsSource").ResolvedFieldTypeOption | undefined;
85
89
  get namePlaceholder(): string;
86
90
  /** Whether the PII toggle shows: the picked type decides, and a type with no
87
91
  * opinion follows the source. Checked on the raw value, not on
88
92
  * `selectedFieldType` — editing a field whose type the source can't create
89
93
  * finds no option, and the toggle still belongs there. */
90
94
  get typeSupportsPii(): boolean;
95
+ /** The picked type's settings section. Editing a field of a type the source
96
+ * can't create finds no entry for it, so it falls back to the first section
97
+ * the source declares — that field still has settings to show. */
98
+ get settingsSection(): import("../types/FieldsSource").FieldSettingsSection | undefined;
99
+ /** Not a computed: the warning may read data the source loaded outside MobX,
100
+ * so it's called afresh on every render. Same fallback as `settingsSection`. */
101
+ get piiWarning(): import("../types/FieldsSource").FieldPiiWarning | undefined;
102
+ get showSettings(): boolean;
103
+ get settingsHasError(): boolean;
91
104
  }
92
105
  //# sourceMappingURL=CustomFieldModalState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomFieldModalState.d.ts","sourceRoot":"","sources":["../../../src/state/CustomFieldModalState.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,qBAAqB;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,oBAAoB,CAAC;IAChC,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,QAAQ,cAAqB;IAC7B,gBAAgB,EAAE,WAAW,GAAG,SAAS,CAAa;IACtD,IAAI,EAAE,KAAK,GAAG,MAAM,CAAS;IAC7B,MAAM,EAAE,iBAAiB,CAA0B;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAA8B;IAExD,UAAU,iCAkDP;IAEH,IAAI;;;;;;;;;OA2CD;IAEH,cAAc;;;;;;;;;;;MAKZ;gBAEU,MAAM,EAAE,sBAAsB;IA0B1C,cAAc,CAAC,CAAC,EAAE,OAAO;IA2CzB,KAAK;IAkBL,oBAAoB;IAYpB,qBAAqB;IAYrB,aAAa,IAAI,UAAU;IA4B3B,aAAa,CACX,IAAI,EAAE,UAAU,EAChB,MAAM,CAAC,EAAE;QAAE,2BAA2B,EAAE,OAAO,CAAA;KAAE;IAiCnD,qBAAqB;IAgBrB,qBAAqB,UAAW,MAAM,UAepC;IAEF,OAAO,CAAC,WAAW;IAInB,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAqB9B,IAAI,CAAC,oCAEJ;IAED,IAAI,YAAY,YAEf;IAED,IAAI,iBAAiB,gEAIpB;IAED,IAAI,eAAe,WAMlB;IAED;;;+DAG2D;IAC3D,IAAI,eAAe,YASlB;CACF"}
1
+ {"version":3,"file":"CustomFieldModalState.d.ts","sourceRoot":"","sources":["../../../src/state/CustomFieldModalState.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,qBAAqB;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,oBAAoB,CAAC;IAChC,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,QAAQ,cAAqB;IAC7B,gBAAgB,EAAE,WAAW,GAAG,SAAS,CAAa;IACtD,IAAI,EAAE,KAAK,GAAG,MAAM,CAAS;IAC7B,MAAM,EAAE,iBAAiB,CAA0B;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAA8B;IAExD,UAAU,iCAuDP;IAEH,IAAI;;;;;;;;;OA2CD;IAEH,cAAc;;;;;;;;;;;MAKZ;gBAEU,MAAM,EAAE,sBAAsB;IA6B1C,cAAc,CAAC,CAAC,EAAE,OAAO;IA2CzB,KAAK;IAmBL;;2CAEuC;IACvC,mBAAmB;IAMnB,oBAAoB;IAYpB,qBAAqB;IAYrB,aAAa,IAAI,UAAU;IA6B3B,aAAa,CACX,IAAI,EAAE,UAAU,EAChB,MAAM,CAAC,EAAE;QAAE,2BAA2B,EAAE,OAAO,CAAA;KAAE;IAmCnD,qBAAqB;IAgBrB,qBAAqB,UAAW,MAAM,UAepC;IAEF,OAAO,CAAC,WAAW;IAInB,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAqB9B,IAAI,CAAC,oCAEJ;IAED,IAAI,YAAY,YAEf;IAED,IAAI,iBAAiB,wEAIpB;IAED,IAAI,eAAe,WAMlB;IAED;;;+DAG2D;IAC3D,IAAI,eAAe,YASlB;IAED;;uEAEmE;IACnE,IAAI,eAAe,qEASlB;IAED;qFACiF;IACjF,IAAI,UAAU,gEAMb;IAED,IAAI,YAAY,YAKf;IAED,IAAI,gBAAgB,YAEnB;CACF"}
@@ -173,7 +173,7 @@ export type ImportDataSource = {
173
173
  createFields?: CreateDataExtensionFieldsFn;
174
174
  /**
175
175
  * The source's field-management contract, used by the DataExtension
176
- * "create/edit field" editor (creatable types, permissions, existing keys).
176
+ * "create/edit field" editor (the field modal, permissions, existing keys).
177
177
  * Present when the source permits adding fields.
178
178
  */
179
179
  fieldManagement?: FieldManagement;
@@ -1,4 +1,4 @@
1
- import { type CreatableFieldType, type SchemaSource } from '../types/SchemaSource';
1
+ import { type FieldModalInput, type SchemaSource } from '../types/SchemaSource';
2
2
  import type { ItemPermissions, SchemaPermissions } from '../types/Schema';
3
3
  import type { Field } from '../types/Field';
4
4
  import type { FieldTypeDefinition } from '../types/FieldTypeDefinition';
@@ -22,8 +22,9 @@ export interface InMemorySchemaSourceConfig<T> {
22
22
  /** Defaults to all-true (add/edit/delete allowed). */
23
23
  schemaPermissions?: SchemaPermissions;
24
24
  itemPermissions?: ItemPermissions;
25
- /** Types the add-field modal offers. Defaults to text/number/boolean/date. */
26
- creatableFieldTypes?: CreatableFieldType[];
25
+ /** What the add/edit field modal shows. `types` defaults to
26
+ * text/number/boolean/date. */
27
+ fieldModal?: FieldModalInput;
27
28
  /** Consumer-defined field types, resolved by fields with `type: 'CUSTOM'`. */
28
29
  fieldTypes?: FieldTypeDefinition[];
29
30
  supportsPii?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"createInMemorySchemaSource.d.ts","sourceRoot":"","sources":["../../../src/testkit/createInMemorySchemaSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAGV,eAAe,EAGf,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgBrD,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,+DAA+D;IAC/D,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACxB,6EAA6E;IAC7E,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC3C,8EAA8E;IAC9E,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAsIhE"}
1
+ {"version":3,"file":"createInMemorySchemaSource.d.ts","sourceRoot":"","sources":["../../../src/testkit/createInMemorySchemaSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EAEpB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAGV,eAAe,EAGf,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgBrD,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,+DAA+D;IAC/D,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACxB,6EAA6E;IAC7E,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;oCACgC;IAChC,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAyIhE"}