datocms-plugin-sdk
Version:
994 lines (993 loc) • 182 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.manifest = void 0;
exports.manifest = {
hooks: {
validateManualFieldExtensionParameters: {
name: 'validateManualFieldExtensionParameters',
comment: {
markdownText: 'This function will be called each time the configuration object changes. It\nmust return an object containing possible validation errors.',
tag: 'manualFieldExtensions',
},
nonCtxArguments: [
{
name: 'fieldExtensionId',
typeName: 'string',
},
{
name: 'parameters',
typeName: 'Record<string, unknown>',
},
],
returnType: 'Record<string, unknown> | Promise<Record<string, unknown>>',
location: {
filePath: 'src/hooks/validateManualFieldExtensionParameters.ts',
lineNumber: 10,
},
},
uploadsDropdownActions: {
name: 'uploadsDropdownActions',
comment: {
markdownText: 'This function lets you set up custom actions (or groups of actions) that\nshow up when the user:\n\n* selects multiple assets in the Media Area for batch operations, or\n* opens up a specific asset from the Media Area.\n\nThe `executeUploadsDropdownAction()` hook will be triggered once the user\nclicks on one of the defined actions.',
tag: 'dropdownActions',
},
nonCtxArguments: [],
ctxArgument: {
type: 'Ctx',
additionalProperties: [],
additionalMethods: [],
},
returnType: 'Array<DropdownAction | DropdownActionGroup>',
location: {
filePath: 'src/hooks/uploadsDropdownActions.ts',
lineNumber: 17,
},
},
uploadSidebars: {
name: 'uploadSidebars',
comment: {
markdownText: 'Use this function to declare new sidebar to be shown when the user opens\nup an asset in the Media Area.',
tag: 'sidebarPanels',
},
nonCtxArguments: [],
ctxArgument: {
type: 'Ctx',
additionalProperties: [],
additionalMethods: [],
},
returnType: 'UploadSidebar[]',
location: {
filePath: 'src/hooks/uploadSidebars.ts',
lineNumber: 17,
},
},
uploadSidebarPanels: {
name: 'uploadSidebarPanels',
comment: {
markdownText: 'Use this function to declare new sidebar panels to be shown when the user\nopens up an asset in the Media Area.',
tag: 'sidebarPanels',
},
nonCtxArguments: [],
ctxArgument: {
type: 'Ctx',
additionalProperties: [],
additionalMethods: [],
},
returnType: 'UploadSidebarPanel[]',
location: {
filePath: 'src/hooks/uploadSidebarPanels.ts',
lineNumber: 19,
},
},
settingsAreaSidebarItemGroups: {
name: 'settingsAreaSidebarItemGroups',
comment: {
markdownText: 'Use this function to declare new navigation sections in the Settings Area\nsidebar.',
tag: 'pages',
},
nonCtxArguments: [],
ctxArgument: {
type: 'Ctx',
additionalProperties: [],
additionalMethods: [],
},
returnType: 'SettingsAreaSidebarItemGroup[]',
location: {
filePath: 'src/hooks/settingsAreaSidebarItemGroups.ts',
lineNumber: 19,
},
},
schemaItemTypeDropdownActions: {
name: 'schemaItemTypeDropdownActions',
comment: {
markdownText: 'Use this function to define custom actions (or groups of actions) for a model/block model in the Schema section.\n\nThe `executeSchemaItemTypeDropdownAction()` hook will be triggered once the user\nclicks on one of the defined actions.',
tag: 'dropdownActions',
},
nonCtxArguments: [
{
name: 'itemType',
typeName: 'ItemType',
},
],
ctxArgument: {
type: 'Ctx',
additionalProperties: [],
additionalMethods: [],
},
returnType: 'Array<DropdownAction | DropdownActionGroup>',
location: {
filePath: 'src/hooks/schemaItemTypeDropdownActions.ts',
lineNumber: 16,
},
},
renderUploadSidebarPanel: {
name: 'renderUploadSidebarPanel',
comment: {
markdownText: 'This function will be called when the plugin needs to render a sidebar panel\n(see the `uploadSidebarPanels` hook).',
tag: 'sidebarPanels',
},
nonCtxArguments: [
{
name: 'sidebarPaneId',
typeName: 'string',
},
],
ctxArgument: {
type: 'SelfResizingPluginFrameCtx',
additionalProperties: [
{
items: {
sidebarPaneId: {
comment: {
markdownText: 'The ID of the sidebar panel that needs to be rendered.',
},
location: {
filePath: 'src/hooks/renderUploadSidebarPanel.ts',
lineNumber: 24,
},
type: 'string',
},
parameters: {
comment: {
markdownText: 'The arbitrary `parameters` of the panel declared in the\n`uploadSidebarPanels` function.',
},
location: {
filePath: 'src/hooks/renderUploadSidebarPanel.ts',
lineNumber: 30,
},
type: 'Record<string, unknown>',
},
upload: {
comment: {
markdownText: 'The active asset.',
},
location: {
filePath: 'src/hooks/renderUploadSidebarPanel.ts',
lineNumber: 33,
},
type: 'Upload',
},
},
},
],
additionalMethods: [],
},
returnType: 'void',
location: {
filePath: 'src/hooks/renderUploadSidebarPanel.ts',
lineNumber: 14,
},
},
renderUploadSidebar: {
name: 'renderUploadSidebar',
comment: {
markdownText: 'This function will be called when the plugin needs to render a sidebar (see\nthe `uploadSidebars` hook).',
tag: 'sidebarPanels',
},
nonCtxArguments: [
{
name: 'sidebarId',
typeName: 'string',
},
],
ctxArgument: {
type: 'ImposedSizePluginFrameCtx',
additionalProperties: [
{
items: {
sidebarId: {
comment: {
markdownText: 'The ID of the sidebar that needs to be rendered.',
},
location: {
filePath: 'src/hooks/renderUploadSidebar.ts',
lineNumber: 21,
},
type: 'string',
},
parameters: {
comment: {
markdownText: 'The arbitrary `parameters` of the declared in the `uploadSidebars`\nfunction.',
},
location: {
filePath: 'src/hooks/renderUploadSidebar.ts',
lineNumber: 27,
},
type: 'Record<string, unknown>',
},
upload: {
comment: {
markdownText: 'The active asset.',
},
location: {
filePath: 'src/hooks/renderUploadSidebar.ts',
lineNumber: 30,
},
type: 'Upload',
},
},
},
],
additionalMethods: [],
},
returnType: 'void',
location: {
filePath: 'src/hooks/renderUploadSidebar.ts',
lineNumber: 14,
},
},
renderPage: {
name: 'renderPage',
comment: {
markdownText: 'This function will be called when the plugin needs to render a specific\npage (see the `mainNavigationTabs`, `settingsAreaSidebarItemGroups` and\n`contentAreaSidebarItems` functions).',
tag: 'pages',
},
nonCtxArguments: [
{
name: 'pageId',
typeName: 'string',
},
],
ctxArgument: {
type: 'ImposedSizePluginFrameCtx',
additionalProperties: [
{
items: {
pageId: {
comment: {
markdownText: 'The ID of the page that needs to be rendered.',
},
location: {
filePath: 'src/hooks/renderPage.ts',
lineNumber: 19,
},
type: 'string',
},
location: {
comment: {
markdownText: 'Current page location.',
},
location: {
filePath: 'src/hooks/renderPage.ts',
lineNumber: 22,
},
type: '{\n pathname: string;\n search: string;\n hash: string;\n }',
},
},
},
],
additionalMethods: [],
},
returnType: 'void',
location: {
filePath: 'src/hooks/renderPage.ts',
lineNumber: 12,
},
},
renderModal: {
name: 'renderModal',
comment: {
markdownText: 'This function will be called when the plugin requested to open a modal (see\nthe `openModal` hook).',
tag: 'modals',
},
nonCtxArguments: [
{
name: 'modalId',
typeName: 'string',
},
],
ctxArgument: {
type: 'SelfResizingPluginFrameCtx',
additionalProperties: [
{
items: {
modalId: {
comment: {
markdownText: 'The ID of the modal that needs to be rendered.',
},
location: {
filePath: 'src/hooks/renderModal.ts',
lineNumber: 17,
},
type: 'string',
},
parameters: {
comment: {
markdownText: 'The arbitrary `parameters` of the modal declared in the `openModal`\nfunction.',
},
location: {
filePath: 'src/hooks/renderModal.ts',
lineNumber: 22,
},
type: 'Record<string, unknown>',
},
},
},
],
additionalMethods: [
{
items: {
resolve: {
comment: {
markdownText: 'A function to be called by the plugin to close the modal. The `openModal`\ncall will be resolved with the passed return value.',
example: "const returnValue = prompt(\n 'Please specify the value to return to the caller:',\n 'success',\n);\n\nawait ctx.resolve(returnValue);",
},
location: {
filePath: 'src/hooks/renderModal.ts',
lineNumber: 40,
},
type: '(returnValue: unknown) => Promise<void>',
},
},
},
],
},
returnType: 'void',
location: {
filePath: 'src/hooks/renderModal.ts',
lineNumber: 11,
},
},
renderManualFieldExtensionConfigScreen: {
name: 'renderManualFieldExtensionConfigScreen',
nonCtxArguments: [
{
name: 'fieldExtensionId',
typeName: 'string',
},
],
ctxArgument: {
type: 'SelfResizingPluginFrameCtx',
additionalProperties: [
{
items: {
fieldExtensionId: {
comment: {
markdownText: 'The ID of the field extension for which we need to render the parameters\nform.',
},
location: {
filePath: 'src/hooks/renderManualFieldExtensionConfigScreen.ts',
lineNumber: 23,
},
type: 'string',
},
parameters: {
comment: {
markdownText: 'The current value of the parameters (you can change the value with the\n`setParameters` hook).',
},
location: {
filePath: 'src/hooks/renderManualFieldExtensionConfigScreen.ts',
lineNumber: 28,
},
type: 'Record<string, unknown>',
},
errors: {
comment: {
markdownText: 'The current validation errors for the parameters (you can set them\nimplementing the `validateManualFieldExtensionParameters` hook).',
},
location: {
filePath: 'src/hooks/renderManualFieldExtensionConfigScreen.ts',
lineNumber: 33,
},
type: 'Record<string, unknown>',
},
pendingField: {
comment: {
markdownText: 'The field entity that is being edited in the form.',
},
location: {
filePath: 'src/hooks/renderManualFieldExtensionConfigScreen.ts',
lineNumber: 36,
},
type: 'PendingField',
},
itemType: {
comment: {
markdownText: 'The model for the field being edited.',
},
location: {
filePath: 'src/hooks/renderManualFieldExtensionConfigScreen.ts',
lineNumber: 39,
},
type: 'ItemType',
},
},
},
],
additionalMethods: [
{
items: {
setParameters: {
comment: {
markdownText: 'Sets a new value for the parameters.',
example: "await ctx.setParameters({ color: '#ff0000' });",
},
location: {
filePath: 'src/hooks/renderManualFieldExtensionConfigScreen.ts',
lineNumber: 51,
},
type: '(params: Record<string, unknown>) => Promise<void>',
},
},
},
],
},
returnType: 'void',
location: {
filePath: 'src/hooks/renderManualFieldExtensionConfigScreen.ts',
lineNumber: 9,
},
},
renderItemFormSidebarPanel: {
name: 'renderItemFormSidebarPanel',
comment: {
markdownText: 'This function will be called when the plugin needs to render a sidebar panel\n(see the `itemFormSidebarPanels` hook).',
tag: 'sidebarPanels',
},
nonCtxArguments: [
{
name: 'sidebarPaneId',
typeName: 'string',
},
],
ctxArgument: {
type: 'SelfResizingPluginFrameCtx',
additionalProperties: [
{
name: 'ItemFormAdditionalProperties',
comment: {
markdownText: "These information describe the current state of the form that's being shown\nto the end-user to edit a record.",
},
items: {
locale: {
comment: {
markdownText: 'The currently active locale for the record.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 12,
},
type: 'string',
},
item: {
comment: {
markdownText: 'If an already persisted record is being edited, returns the full record\nentity.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 17,
},
type: 'Item | null',
},
itemType: {
comment: {
markdownText: 'The model for the record being edited.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 19,
},
type: 'ItemType',
},
formValues: {
comment: {
markdownText: 'The complete internal form state.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 21,
},
type: 'Record<string, unknown>',
},
itemStatus: {
comment: {
markdownText: 'The current status of the record being edited.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 23,
},
type: "'new' | 'draft' | 'updated' | 'published'",
},
isSubmitting: {
comment: {
markdownText: 'Whether the form is currently submitting itself or not.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 25,
},
type: 'boolean',
},
isFormDirty: {
comment: {
markdownText: 'Whether the form has some non-persisted changes or not.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 27,
},
type: 'boolean',
},
blocksAnalysis: {
comment: {
markdownText: 'Provides information on how many blocks are currently present in the form.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 29,
},
type: 'BlocksAnalysis',
},
},
},
{
items: {
sidebarPaneId: {
comment: {
markdownText: 'The ID of the sidebar panel that needs to be rendered.',
},
location: {
filePath: 'src/hooks/renderItemFormSidebarPanel.ts',
lineNumber: 25,
},
type: 'string',
},
parameters: {
comment: {
markdownText: 'The arbitrary `parameters` of the panel declared in the\n`itemFormSidebarPanels` function.',
},
location: {
filePath: 'src/hooks/renderItemFormSidebarPanel.ts',
lineNumber: 31,
},
type: 'Record<string, unknown>',
},
},
},
],
additionalMethods: [
{
name: 'ItemFormAdditionalMethods',
comment: {
markdownText: "These methods can be used to interact with the form that's being shown to the\nend-user to edit a record.",
},
items: {
toggleField: {
comment: {
markdownText: 'Hides/shows a specific field in the form. Please be aware that when a field\nis hidden, the field editor for that field will be removed from the DOM\nitself, including any associated plugins. When it is shown again, its\nplugins will be reinitialized.',
example: "const fieldPath = prompt(\n 'Please insert the path of a field in the form',\n ctx.fieldPath,\n);\n\nawait ctx.toggleField(fieldPath, true);",
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 68,
},
type: '(path: string, show: boolean) => Promise<void>',
},
disableField: {
comment: {
markdownText: 'Disables/re-enables a specific field in the form.',
example: "const fieldPath = prompt(\n 'Please insert the path of a field in the form',\n ctx.fieldPath,\n);\n\nawait ctx.disableField(fieldPath, true);",
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 83,
},
type: '(path: string, disable: boolean) => Promise<void>',
},
scrollToField: {
comment: {
markdownText: 'Smoothly navigates to a specific field in the form. If the field is\nlocalized it will switch language tab and then navigate to the chosen\nfield.',
example: "const fieldPath = prompt(\n 'Please insert the path of a field in the form',\n ctx.fieldPath,\n);\n\nawait ctx.scrollToField(fieldPath);",
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 100,
},
type: '(path: string, locale?: string) => Promise<void>',
},
setFieldValue: {
comment: {
markdownText: 'Changes a specific path of the `formValues` object.',
example: "const fieldPath = prompt(\n 'Please insert the path of a field in the form',\n ctx.fieldPath,\n);\n\nawait ctx.setFieldValue(fieldPath, 'new value');",
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 115,
},
type: '(path: string, value: unknown) => Promise<void>',
},
formValuesToItem: {
comment: {
markdownText: 'Takes the internal form state, and transforms it into an Item entity\ncompatible with DatoCMS API.\n\nWhen `skipUnchangedFields`, only the fields that changed value will be\nserialized.\n\nIf the required nested blocks are still not loaded, this method will return\n`undefined`.',
example: 'await ctx.formValuesToItem(ctx.formValues, false);',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 132,
},
type: "(\n formValues: Record<string, unknown>,\n skipUnchangedFields?: boolean,\n ) => Promise<Omit<Item, 'id' | 'meta'> | undefined>",
},
itemToFormValues: {
comment: {
markdownText: 'Takes an Item entity, and converts it into the internal form state.',
example: 'await ctx.itemToFormValues(ctx.item);',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 145,
},
type: "(\n item: Omit<Item, 'id' | 'meta'>,\n ) => Promise<Record<string, unknown>>",
},
saveCurrentItem: {
comment: {
markdownText: 'Triggers a submit form for current record.',
example: 'await ctx.saveCurrentItem();',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 157,
},
type: '(showToast?: boolean) => Promise<void>',
},
},
},
],
},
returnType: 'void',
location: {
filePath: 'src/hooks/renderItemFormSidebarPanel.ts',
lineNumber: 15,
},
},
renderItemFormSidebar: {
name: 'renderItemFormSidebar',
comment: {
markdownText: 'This function will be called when the plugin needs to render a sidebar (see\nthe `itemFormSidebars` hook).',
tag: 'sidebarPanels',
},
nonCtxArguments: [
{
name: 'sidebarId',
typeName: 'string',
},
],
ctxArgument: {
type: 'ImposedSizePluginFrameCtx',
additionalProperties: [
{
name: 'ItemFormAdditionalProperties',
comment: {
markdownText: "These information describe the current state of the form that's being shown\nto the end-user to edit a record.",
},
items: {
locale: {
comment: {
markdownText: 'The currently active locale for the record.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 12,
},
type: 'string',
},
item: {
comment: {
markdownText: 'If an already persisted record is being edited, returns the full record\nentity.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 17,
},
type: 'Item | null',
},
itemType: {
comment: {
markdownText: 'The model for the record being edited.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 19,
},
type: 'ItemType',
},
formValues: {
comment: {
markdownText: 'The complete internal form state.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 21,
},
type: 'Record<string, unknown>',
},
itemStatus: {
comment: {
markdownText: 'The current status of the record being edited.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 23,
},
type: "'new' | 'draft' | 'updated' | 'published'",
},
isSubmitting: {
comment: {
markdownText: 'Whether the form is currently submitting itself or not.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 25,
},
type: 'boolean',
},
isFormDirty: {
comment: {
markdownText: 'Whether the form has some non-persisted changes or not.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 27,
},
type: 'boolean',
},
blocksAnalysis: {
comment: {
markdownText: 'Provides information on how many blocks are currently present in the form.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 29,
},
type: 'BlocksAnalysis',
},
},
},
{
items: {
sidebarId: {
comment: {
markdownText: 'The ID of the sidebar that needs to be rendered.',
},
location: {
filePath: 'src/hooks/renderItemFormSidebar.ts',
lineNumber: 25,
},
type: 'string',
},
parameters: {
comment: {
markdownText: 'The arbitrary `parameters` of the declared in the `itemFormSidebars`\nfunction.',
},
location: {
filePath: 'src/hooks/renderItemFormSidebar.ts',
lineNumber: 30,
},
type: 'Record<string, unknown>',
},
},
},
],
additionalMethods: [
{
name: 'ItemFormAdditionalMethods',
comment: {
markdownText: "These methods can be used to interact with the form that's being shown to the\nend-user to edit a record.",
},
items: {
toggleField: {
comment: {
markdownText: 'Hides/shows a specific field in the form. Please be aware that when a field\nis hidden, the field editor for that field will be removed from the DOM\nitself, including any associated plugins. When it is shown again, its\nplugins will be reinitialized.',
example: "const fieldPath = prompt(\n 'Please insert the path of a field in the form',\n ctx.fieldPath,\n);\n\nawait ctx.toggleField(fieldPath, true);",
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 68,
},
type: '(path: string, show: boolean) => Promise<void>',
},
disableField: {
comment: {
markdownText: 'Disables/re-enables a specific field in the form.',
example: "const fieldPath = prompt(\n 'Please insert the path of a field in the form',\n ctx.fieldPath,\n);\n\nawait ctx.disableField(fieldPath, true);",
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 83,
},
type: '(path: string, disable: boolean) => Promise<void>',
},
scrollToField: {
comment: {
markdownText: 'Smoothly navigates to a specific field in the form. If the field is\nlocalized it will switch language tab and then navigate to the chosen\nfield.',
example: "const fieldPath = prompt(\n 'Please insert the path of a field in the form',\n ctx.fieldPath,\n);\n\nawait ctx.scrollToField(fieldPath);",
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 100,
},
type: '(path: string, locale?: string) => Promise<void>',
},
setFieldValue: {
comment: {
markdownText: 'Changes a specific path of the `formValues` object.',
example: "const fieldPath = prompt(\n 'Please insert the path of a field in the form',\n ctx.fieldPath,\n);\n\nawait ctx.setFieldValue(fieldPath, 'new value');",
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 115,
},
type: '(path: string, value: unknown) => Promise<void>',
},
formValuesToItem: {
comment: {
markdownText: 'Takes the internal form state, and transforms it into an Item entity\ncompatible with DatoCMS API.\n\nWhen `skipUnchangedFields`, only the fields that changed value will be\nserialized.\n\nIf the required nested blocks are still not loaded, this method will return\n`undefined`.',
example: 'await ctx.formValuesToItem(ctx.formValues, false);',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 132,
},
type: "(\n formValues: Record<string, unknown>,\n skipUnchangedFields?: boolean,\n ) => Promise<Omit<Item, 'id' | 'meta'> | undefined>",
},
itemToFormValues: {
comment: {
markdownText: 'Takes an Item entity, and converts it into the internal form state.',
example: 'await ctx.itemToFormValues(ctx.item);',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 145,
},
type: "(\n item: Omit<Item, 'id' | 'meta'>,\n ) => Promise<Record<string, unknown>>",
},
saveCurrentItem: {
comment: {
markdownText: 'Triggers a submit form for current record.',
example: 'await ctx.saveCurrentItem();',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 157,
},
type: '(showToast?: boolean) => Promise<void>',
},
},
},
],
},
returnType: 'void',
location: {
filePath: 'src/hooks/renderItemFormSidebar.ts',
lineNumber: 15,
},
},
renderItemFormOutlet: {
name: 'renderItemFormOutlet',
comment: {
markdownText: 'This function will be called when the plugin needs to render an outlet\ndefined by the `itemFormOutlets()` hook.',
tag: 'outlets',
},
nonCtxArguments: [
{
name: 'itemFormOutletId',
typeName: 'string',
},
],
ctxArgument: {
type: 'SelfResizingPluginFrameCtx',
additionalProperties: [
{
name: 'ItemFormAdditionalProperties',
comment: {
markdownText: "These information describe the current state of the form that's being shown\nto the end-user to edit a record.",
},
items: {
locale: {
comment: {
markdownText: 'The currently active locale for the record.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 12,
},
type: 'string',
},
item: {
comment: {
markdownText: 'If an already persisted record is being edited, returns the full record\nentity.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 17,
},
type: 'Item | null',
},
itemType: {
comment: {
markdownText: 'The model for the record being edited.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 19,
},
type: 'ItemType',
},
formValues: {
comment: {
markdownText: 'The complete internal form state.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 21,
},
type: 'Record<string, unknown>',
},
itemStatus: {
comment: {
markdownText: 'The current status of the record being edited.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 23,
},
type: "'new' | 'draft' | 'updated' | 'published'",
},
isSubmitting: {
comment: {
markdownText: 'Whether the form is currently submitting itself or not.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 25,
},
type: 'boolean',
},
isFormDirty: {
comment: {
markdownText: 'Whether the form has some non-persisted changes or not.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 27,
},
type: 'boolean',
},
blocksAnalysis: {
comment: {
markdownText: 'Provides information on how many blocks are currently present in the form.',
},
location: {
filePath: 'src/ctx/commonExtras/itemForm.ts',
lineNumber: 29,
},
type: 'BlocksAnalysis',
},
},
},
{
items: {
itemFormOutletId: {
comment: {
markdownText: 'The ID of the outlet that needs to be rendered.',
},