datocms-plugin-sdk 2.1.0-alpha.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/connect.js +4 -0
- package/dist/cjs/connect.js.map +1 -1
- package/dist/cjs/guardUtils.js +12 -0
- package/dist/cjs/guardUtils.js.map +1 -1
- package/dist/cjs/hooks/mainNavigationTabs.js +4 -1
- package/dist/cjs/hooks/mainNavigationTabs.js.map +1 -1
- package/dist/cjs/hooks/renderInspector.js +11 -0
- package/dist/cjs/hooks/renderInspector.js.map +1 -0
- package/dist/cjs/hooks/renderInspectorPanel.js +11 -0
- package/dist/cjs/hooks/renderInspectorPanel.js.map +1 -0
- package/dist/cjs/icon.js +12 -5
- package/dist/cjs/icon.js.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/manifest.js +134 -0
- package/dist/cjs/manifest.js.map +1 -1
- package/dist/esm/connect.d.ts +3 -1
- package/dist/esm/connect.js +4 -0
- package/dist/esm/connect.js.map +1 -1
- package/dist/esm/guardUtils.d.ts +4 -0
- package/dist/esm/guardUtils.js +8 -0
- package/dist/esm/guardUtils.js.map +1 -1
- package/dist/esm/hooks/mainNavigationTabs.d.ts +15 -1
- package/dist/esm/hooks/mainNavigationTabs.js +4 -1
- package/dist/esm/hooks/mainNavigationTabs.js.map +1 -1
- package/dist/esm/hooks/renderInspector.d.ts +147 -0
- package/dist/esm/hooks/renderInspector.js +8 -0
- package/dist/esm/hooks/renderInspector.js.map +1 -0
- package/dist/esm/hooks/renderInspectorPanel.d.ts +20 -0
- package/dist/esm/hooks/renderInspectorPanel.js +8 -0
- package/dist/esm/hooks/renderInspectorPanel.js.map +1 -0
- package/dist/esm/icon.d.ts +23 -2
- package/dist/esm/icon.js +11 -6
- package/dist/esm/icon.js.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/manifest.js +134 -0
- package/dist/esm/manifest.js.map +1 -1
- package/dist/types/connect.d.ts +3 -1
- package/dist/types/guardUtils.d.ts +4 -0
- package/dist/types/hooks/mainNavigationTabs.d.ts +15 -1
- package/dist/types/hooks/renderInspector.d.ts +147 -0
- package/dist/types/hooks/renderInspectorPanel.d.ts +20 -0
- package/dist/types/icon.d.ts +23 -2
- package/dist/types/index.d.ts +2 -0
- package/manifest.json +134 -0
- package/package.json +4 -3
- package/src/connect.ts +12 -0
- package/src/guardUtils.ts +13 -0
- package/src/hooks/mainNavigationTabs.ts +24 -5
- package/src/hooks/renderInspector.ts +176 -0
- package/src/hooks/renderInspectorPanel.ts +38 -0
- package/src/icon.ts +36 -8
- package/src/index.ts +2 -0
- package/src/manifest.ts +145 -0
package/dist/esm/connect.js
CHANGED
|
@@ -58,6 +58,8 @@ import connectToParent from 'penpal/lib/connectToParent';
|
|
|
58
58
|
import { renderAssetSourceBootstrapper, } from './hooks/renderAssetSource';
|
|
59
59
|
import { renderConfigScreenBootstrapper, } from './hooks/renderConfigScreen';
|
|
60
60
|
import { renderFieldExtensionBootstrapper, } from './hooks/renderFieldExtension';
|
|
61
|
+
import { renderInspectorBootstrapper, } from './hooks/renderInspector';
|
|
62
|
+
import { renderInspectorPanelBootstrapper, } from './hooks/renderInspectorPanel';
|
|
61
63
|
import { renderItemCollectionOutletBootstrapper, } from './hooks/renderItemCollectionOutlet';
|
|
62
64
|
import { renderItemFormOutletBootstrapper, } from './hooks/renderItemFormOutlet';
|
|
63
65
|
import { renderItemFormSidebarBootstrapper, } from './hooks/renderItemFormSidebar';
|
|
@@ -139,6 +141,8 @@ export function connect() {
|
|
|
139
141
|
renderManualFieldExtensionConfigScreen: renderManualFieldExtensionConfigScreenBootstrapper,
|
|
140
142
|
renderModal: renderModalBootstrapper,
|
|
141
143
|
renderPage: renderPageBootstrapper,
|
|
144
|
+
renderInspector: renderInspectorBootstrapper,
|
|
145
|
+
renderInspectorPanel: renderInspectorPanelBootstrapper,
|
|
142
146
|
renderUploadSidebar: renderUploadSidebarBootstrapper,
|
|
143
147
|
renderUploadSidebarPanel: renderUploadSidebarPanelBootstrapper,
|
|
144
148
|
};
|
package/dist/esm/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,eAAe,MAAM,4BAA4B,CAAC;AA2BzD,OAAO,EAEL,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,gCAAgC,GACjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,sCAAsC,GACvC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEL,gCAAgC,GACjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,iCAAiC,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,sCAAsC,GACvC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEL,kDAAkD,GACnD,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAmB,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAkB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAEL,+BAA+B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAGL,sCAAsC,EACtC,IAAI,GACL,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/guardUtils.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
export type Emoji = string & {
|
|
2
|
+
readonly __brand: 'Emoji';
|
|
3
|
+
};
|
|
1
4
|
export declare function isNullish(value: unknown): value is null | undefined;
|
|
2
5
|
export declare function isBoolean(value: unknown): value is boolean;
|
|
3
6
|
export declare function isString(value: unknown): value is string;
|
|
7
|
+
export declare function isEmoji(value: unknown): value is Emoji;
|
|
4
8
|
export declare function isNumber(value: unknown): value is number;
|
|
5
9
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
6
10
|
export declare function isArray<T>(value: unknown, checkItem: (item: unknown) => item is T): value is T[];
|
package/dist/esm/guardUtils.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import emojiRegex from 'emoji-regex-xs';
|
|
1
2
|
export function isNullish(value) {
|
|
2
3
|
return value === null || value === undefined;
|
|
3
4
|
}
|
|
@@ -7,6 +8,13 @@ export function isBoolean(value) {
|
|
|
7
8
|
export function isString(value) {
|
|
8
9
|
return typeof value === 'string';
|
|
9
10
|
}
|
|
11
|
+
export function isEmoji(value) {
|
|
12
|
+
if (!isString(value))
|
|
13
|
+
return false;
|
|
14
|
+
var regex = emojiRegex();
|
|
15
|
+
var match = value.match(regex);
|
|
16
|
+
return match !== null && match.length === 1 && match[0] === value;
|
|
17
|
+
}
|
|
10
18
|
export function isNumber(value) {
|
|
11
19
|
return typeof value === 'number';
|
|
12
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardUtils.js","sourceRoot":"","sources":["../../src/guardUtils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAc,EACd,SAAuC;IAEvC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QACxB,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"guardUtils.js","sourceRoot":"","sources":["../../src/guardUtils.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAIxC,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEnC,IAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAc,EACd,SAAuC;IAEvC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QACxB,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;AACJ,CAAC"}
|
|
@@ -25,9 +25,23 @@ export type MainNavigationTab = {
|
|
|
25
25
|
* whenever possible.
|
|
26
26
|
*/
|
|
27
27
|
icon: Icon;
|
|
28
|
-
/** ID of the page linked to the tab */
|
|
28
|
+
/** ID of the page/inspector linked to the tab */
|
|
29
29
|
pointsTo: {
|
|
30
30
|
pageId: string;
|
|
31
|
+
} | {
|
|
32
|
+
inspectorId: string;
|
|
33
|
+
/** The preferred width for the sidebar */
|
|
34
|
+
preferredWidth?: number;
|
|
35
|
+
/** The inspector panel to render when first loaded */
|
|
36
|
+
initialInspectorPanel?: {
|
|
37
|
+
/** ID of the inspector panel to render */
|
|
38
|
+
panelId: string;
|
|
39
|
+
/**
|
|
40
|
+
* An arbitrary configuration object that will be passed as the `parameters`
|
|
41
|
+
* property of the second argument of the `renderInspectorPanel` function
|
|
42
|
+
*/
|
|
43
|
+
parameters?: Record<string, unknown>;
|
|
44
|
+
};
|
|
31
45
|
};
|
|
32
46
|
/**
|
|
33
47
|
* Expresses where you want to place the tab in the top-bar. If not specified,
|
|
@@ -5,7 +5,10 @@ export function isMainNavigationTab(value) {
|
|
|
5
5
|
isString(value.label) &&
|
|
6
6
|
isIcon(value.icon) &&
|
|
7
7
|
isRecord(value.pointsTo) &&
|
|
8
|
-
isString(value.pointsTo.pageId)
|
|
8
|
+
(isString(value.pointsTo.pageId) ||
|
|
9
|
+
(isString(value.pointsTo.inspectorId) &&
|
|
10
|
+
(isNullish(value.pointsTo.preferredWidth) ||
|
|
11
|
+
isNumber(value.pointsTo.preferredWidth)))) &&
|
|
9
12
|
(isNullish(value.placement) || isPlacement(value.placement)) &&
|
|
10
13
|
(isNullish(value.rank) || isNumber(value.rank)));
|
|
11
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mainNavigationTabs.js","sourceRoot":"","sources":["../../../src/hooks/mainNavigationTabs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAQ,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"mainNavigationTabs.js","sourceRoot":"","sources":["../../../src/hooks/mainNavigationTabs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAQ,MAAM,EAAE,MAAM,SAAS,CAAC;AAmEvC,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAClB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9B,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACnC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;oBACvC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,KAAc;IAEd,OAAO,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ImposedSizePluginFrameCtx } from '../ctx/pluginFrame';
|
|
2
|
+
/**
|
|
3
|
+
* Defines the different modes in which an inspector can be displayed
|
|
4
|
+
*/
|
|
5
|
+
export type InspectorMode = {
|
|
6
|
+
/** Display a list of records in the inspector */
|
|
7
|
+
type: 'itemList';
|
|
8
|
+
} | {
|
|
9
|
+
/** Display a single record editor in the inspector */
|
|
10
|
+
type: 'itemEditor';
|
|
11
|
+
/** The ID of the record to edit */
|
|
12
|
+
itemId: string;
|
|
13
|
+
/** Optional field path to highlight/focus within the record editor */
|
|
14
|
+
fieldPath?: string;
|
|
15
|
+
} | {
|
|
16
|
+
/** Display a custom panel in the inspector */
|
|
17
|
+
type: 'customPanel';
|
|
18
|
+
/** ID of the inspector panel to render */
|
|
19
|
+
panelId: string;
|
|
20
|
+
/**
|
|
21
|
+
* An arbitrary configuration object that will be passed as the `parameters`
|
|
22
|
+
* property of the second argument of the `renderInspectorPanel` function
|
|
23
|
+
*/
|
|
24
|
+
parameters?: Record<string, unknown>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Options for configuring inspector mode changes
|
|
28
|
+
*/
|
|
29
|
+
export type SetInspectorModeOptions = {
|
|
30
|
+
/**
|
|
31
|
+
* When true, the mode change will be ignored if there are unsaved changes
|
|
32
|
+
* in the current inspector. Useful for "low intent" mode changes that
|
|
33
|
+
* shouldn't interrupt active editing sessions.
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
ignoreIfUnsavedChanges?: boolean;
|
|
37
|
+
};
|
|
38
|
+
export type RenderInspectorHook = {
|
|
39
|
+
/**
|
|
40
|
+
* This function will be called when the plugin needs to render a specific
|
|
41
|
+
* inspector. Inspectors provide a side panel interface for displaying and
|
|
42
|
+
* interacting with content alongside a custom interface.
|
|
43
|
+
*
|
|
44
|
+
* @tag inspector
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
*
|
|
48
|
+
* ```js
|
|
49
|
+
* connect({
|
|
50
|
+
* renderInspector(inspectorId, ctx) {
|
|
51
|
+
* render(
|
|
52
|
+
* <div>
|
|
53
|
+
* <h1>Inspector: {inspectorId}</h1>
|
|
54
|
+
* <button onClick={() => ctx.setInspectorMode({
|
|
55
|
+
* type: 'itemEditor',
|
|
56
|
+
* itemId: 'some-item-id'
|
|
57
|
+
* })}>
|
|
58
|
+
* Show Item Editor
|
|
59
|
+
* </button>
|
|
60
|
+
* </div>
|
|
61
|
+
* );
|
|
62
|
+
* }
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
renderInspector: (inspectorId: string, ctx: RenderInspectorCtx) => void;
|
|
67
|
+
};
|
|
68
|
+
export type RenderInspectorCtx = ImposedSizePluginFrameCtx<'renderInspector', {
|
|
69
|
+
/** The ID of the inspector that needs to be rendered */
|
|
70
|
+
inspectorId: string;
|
|
71
|
+
/** The ID of the record the currently is highlighted by the user */
|
|
72
|
+
highlightedItemId: string | undefined;
|
|
73
|
+
/** Current page location */
|
|
74
|
+
location: {
|
|
75
|
+
pathname: string;
|
|
76
|
+
search: string;
|
|
77
|
+
hash: string;
|
|
78
|
+
};
|
|
79
|
+
}, {
|
|
80
|
+
/**
|
|
81
|
+
* Changes the current display mode of the inspector. This allows the plugin
|
|
82
|
+
* to dynamically switch between showing a record list, record editor, or custom
|
|
83
|
+
* panel within the inspector interface.
|
|
84
|
+
*
|
|
85
|
+
* @param mode - The inspector mode to switch to
|
|
86
|
+
* @param options - Optional configuration for the mode change
|
|
87
|
+
* @param options.ignoreIfUnsavedChanges - When true, the mode change request will be
|
|
88
|
+
* ignored if the current inspector is in itemEditor mode and has unsaved changes.
|
|
89
|
+
* This allows for "low intent" mode changes that shouldn't interrupt active editing.
|
|
90
|
+
* Default is false, meaning mode changes will proceed regardless of unsaved changes.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
*
|
|
94
|
+
* ```js
|
|
95
|
+
* // Switch to record editor mode
|
|
96
|
+
* await ctx.setInspectorMode({
|
|
97
|
+
* type: 'itemEditor',
|
|
98
|
+
* itemId: 'item-123',
|
|
99
|
+
* fieldPath: 'title'
|
|
100
|
+
* });
|
|
101
|
+
*
|
|
102
|
+
* // Switch to record list mode
|
|
103
|
+
* await ctx.setInspectorMode({ type: 'itemList' });
|
|
104
|
+
* await ctx.setInspectorItemListData({
|
|
105
|
+
* title: 'Related Records',
|
|
106
|
+
* itemIds: ['item-1', 'item-2', 'item-3']
|
|
107
|
+
* });
|
|
108
|
+
*
|
|
109
|
+
* // Switch to custom panel mode
|
|
110
|
+
* await ctx.setInspectorMode({
|
|
111
|
+
* type: 'customPanel',
|
|
112
|
+
* panelId: 'my-custom-panel',
|
|
113
|
+
* parameters: { filter: 'active' }
|
|
114
|
+
* });
|
|
115
|
+
*
|
|
116
|
+
* // Low intent mode change - won't interrupt editing with unsaved changes
|
|
117
|
+
* await ctx.setInspectorMode(
|
|
118
|
+
* { type: 'itemList' },
|
|
119
|
+
* { ignoreIfUnsavedChanges: true }
|
|
120
|
+
* );
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
setInspectorMode: (mode: InspectorMode, options?: SetInspectorModeOptions) => Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Sets the data for the item list inspector mode.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
*
|
|
129
|
+
* ```js
|
|
130
|
+
* // Set the item list data
|
|
131
|
+
* await ctx.setInspectorItemListData({
|
|
132
|
+
* title: 'Related Records',
|
|
133
|
+
* itemIds: ['item-1', 'item-2', 'item-3']
|
|
134
|
+
* });
|
|
135
|
+
*
|
|
136
|
+
* // Switch to item list mode
|
|
137
|
+
* await ctx.setInspectorMode({ type: 'itemList' });
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
setInspectorItemListData: (data: {
|
|
141
|
+
/** The title to show in the inspector header */
|
|
142
|
+
title: string;
|
|
143
|
+
/** Array of record IDs to display in the list */
|
|
144
|
+
itemIds: string[];
|
|
145
|
+
}) => Promise<void>;
|
|
146
|
+
}>;
|
|
147
|
+
export declare const renderInspectorBootstrapper: import("../utils").Bootstrapper<"renderInspector">;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { fullScreenRenderModeBootstrapper } from '../utils';
|
|
2
|
+
export var renderInspectorBootstrapper = fullScreenRenderModeBootstrapper('renderInspector', function (configuration, ctx) {
|
|
3
|
+
if (!configuration.renderInspector) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
configuration.renderInspector(ctx.inspectorId, ctx);
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=renderInspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderInspector.js","sourceRoot":"","sources":["../../../src/hooks/renderInspector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAoK5D,MAAM,CAAC,IAAM,2BAA2B,GACtC,gCAAgC,CAC9B,iBAAiB,EACjB,UAAC,aAAa,EAAE,GAAG;IACjB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IAED,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ImposedSizePluginFrameCtx } from '../ctx/pluginFrame';
|
|
2
|
+
export type RenderInspectorPanelHook = {
|
|
3
|
+
/**
|
|
4
|
+
* This function will be called when an inspector needs to render a specific
|
|
5
|
+
* panel (see the `renderInspector` and `setInspectorMode` functions)
|
|
6
|
+
*
|
|
7
|
+
* @tag inspector
|
|
8
|
+
*/
|
|
9
|
+
renderInspectorPanel: (panelId: string, ctx: RenderInspectorPanelCtx) => void;
|
|
10
|
+
};
|
|
11
|
+
export type RenderInspectorPanelCtx = ImposedSizePluginFrameCtx<'renderInspectorPanel', {
|
|
12
|
+
/** The ID of the inspector panel that needs to be rendered */
|
|
13
|
+
panelId: string;
|
|
14
|
+
/**
|
|
15
|
+
* The arbitrary `parameters` of the modal declared in the `setInspectorMode`
|
|
16
|
+
* function
|
|
17
|
+
*/
|
|
18
|
+
parameters: Record<string, unknown>;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const renderInspectorPanelBootstrapper: import("../utils").Bootstrapper<"renderInspectorPanel">;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { fullScreenRenderModeBootstrapper } from '../utils';
|
|
2
|
+
export var renderInspectorPanelBootstrapper = fullScreenRenderModeBootstrapper('renderInspectorPanel', function (configuration, ctx) {
|
|
3
|
+
if (!configuration.renderInspectorPanel) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
configuration.renderInspectorPanel(ctx.panelId, ctx);
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=renderInspectorPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderInspectorPanel.js","sourceRoot":"","sources":["../../../src/hooks/renderInspectorPanel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AA0B5D,MAAM,CAAC,IAAM,gCAAgC,GAC3C,gCAAgC,CAC9B,sBAAsB,EACtB,UAAC,aAAa,EAAE,GAAG;IACjB,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC,CACF,CAAC"}
|
package/dist/esm/icon.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export type Icon = AwesomeFontIconIdentifier | SvgDefinition;
|
|
1
|
+
export type Icon = AwesomeFontIconIdentifier | SvgDefinition | EmojiDefinition;
|
|
2
|
+
export declare function isIcon(value: unknown): value is Icon;
|
|
2
3
|
/**
|
|
3
4
|
* Defines a custom SVG icon for use in DatoCMS plugins.
|
|
4
5
|
*
|
|
@@ -34,7 +35,27 @@ export type SvgDefinition = {
|
|
|
34
35
|
*/
|
|
35
36
|
content: string;
|
|
36
37
|
};
|
|
37
|
-
export declare function
|
|
38
|
+
export declare function isSvgDefinition(value: unknown): value is SvgDefinition;
|
|
39
|
+
/**
|
|
40
|
+
* Defines an emoji icon for use in DatoCMS plugins.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const starIcon: EmojiDefinition = {
|
|
45
|
+
* type: 'emoji',
|
|
46
|
+
* emoji: '⭐'
|
|
47
|
+
* };
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export type EmojiDefinition = {
|
|
51
|
+
/** Always set to 'emoji' to indicate this is an emoji icon */
|
|
52
|
+
type: 'emoji';
|
|
53
|
+
/**
|
|
54
|
+
* A string contaning a single emoji.
|
|
55
|
+
*/
|
|
56
|
+
emoji: string;
|
|
57
|
+
};
|
|
58
|
+
export declare function isEmojiDefinition(value: unknown): value is EmojiDefinition;
|
|
38
59
|
/**
|
|
39
60
|
* Font Awesome icon identifier for use in DatoCMS plugins.
|
|
40
61
|
*
|
package/dist/esm/icon.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { isRecord, isString } from './guardUtils.js';
|
|
1
|
+
import { isEmoji, isRecord, isString } from './guardUtils.js';
|
|
2
2
|
export function isIcon(value) {
|
|
3
|
-
return
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
return isString(value) || isSvgDefinition(value) || isEmojiDefinition(value);
|
|
4
|
+
}
|
|
5
|
+
export function isSvgDefinition(value) {
|
|
6
|
+
return (isRecord(value) &&
|
|
7
|
+
value.type === 'svg' &&
|
|
8
|
+
isString(value.viewBox) &&
|
|
9
|
+
isString(value.content));
|
|
10
|
+
}
|
|
11
|
+
export function isEmojiDefinition(value) {
|
|
12
|
+
return isRecord(value) && value.type === 'emoji' && isEmoji(value.emoji);
|
|
8
13
|
}
|
|
9
14
|
//# sourceMappingURL=icon.js.map
|
package/dist/esm/icon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../src/icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../src/icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI9D,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/E,CAAC;AAwCD,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,KAAK,CAAC,IAAI,KAAK,KAAK;QACpB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACvB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CACxB,CAAC;AACJ,CAAC;AAuBD,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -51,6 +51,8 @@ export * from './hooks/renderItemFormSidebarPanel';
|
|
|
51
51
|
export * from './hooks/renderManualFieldExtensionConfigScreen';
|
|
52
52
|
export * from './hooks/renderModal';
|
|
53
53
|
export * from './hooks/renderPage';
|
|
54
|
+
export * from './hooks/renderInspector';
|
|
55
|
+
export * from './hooks/renderInspectorPanel';
|
|
54
56
|
export * from './hooks/renderUploadSidebar';
|
|
55
57
|
export * from './hooks/renderUploadSidebarPanel';
|
|
56
58
|
export * from './hooks/schemaItemTypeDropdownActions';
|
package/dist/esm/index.js
CHANGED
|
@@ -40,6 +40,8 @@ export * from './hooks/renderItemFormSidebarPanel';
|
|
|
40
40
|
export * from './hooks/renderManualFieldExtensionConfigScreen';
|
|
41
41
|
export * from './hooks/renderModal';
|
|
42
42
|
export * from './hooks/renderPage';
|
|
43
|
+
export * from './hooks/renderInspector';
|
|
44
|
+
export * from './hooks/renderInspectorPanel';
|
|
43
45
|
export * from './hooks/renderUploadSidebar';
|
|
44
46
|
export * from './hooks/renderUploadSidebarPanel';
|
|
45
47
|
export * from './hooks/schemaItemTypeDropdownActions';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gDAAgD,CAAC;AAC/D,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gDAAgD,CAAC;AAC/D,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
package/dist/esm/manifest.js
CHANGED
|
@@ -1139,6 +1139,140 @@ export var manifest = {
|
|
|
1139
1139
|
lineNumber: 14,
|
|
1140
1140
|
},
|
|
1141
1141
|
},
|
|
1142
|
+
renderInspectorPanel: {
|
|
1143
|
+
name: 'renderInspectorPanel',
|
|
1144
|
+
comment: {
|
|
1145
|
+
markdownText: 'This function will be called when an inspector needs to render a specific\npanel (see the `renderInspector` and `setInspectorMode` functions).',
|
|
1146
|
+
tag: 'inspector',
|
|
1147
|
+
},
|
|
1148
|
+
nonCtxArguments: [
|
|
1149
|
+
{
|
|
1150
|
+
name: 'panelId',
|
|
1151
|
+
typeName: 'string',
|
|
1152
|
+
},
|
|
1153
|
+
],
|
|
1154
|
+
ctxArgument: {
|
|
1155
|
+
type: 'ImposedSizePluginFrameCtx',
|
|
1156
|
+
additionalProperties: [
|
|
1157
|
+
{
|
|
1158
|
+
items: {
|
|
1159
|
+
panelId: {
|
|
1160
|
+
comment: {
|
|
1161
|
+
markdownText: 'The ID of the inspector panel that needs to be rendered.',
|
|
1162
|
+
},
|
|
1163
|
+
location: {
|
|
1164
|
+
filePath: 'src/hooks/renderInspectorPanel.ts',
|
|
1165
|
+
lineNumber: 18,
|
|
1166
|
+
},
|
|
1167
|
+
type: 'string',
|
|
1168
|
+
},
|
|
1169
|
+
parameters: {
|
|
1170
|
+
comment: {
|
|
1171
|
+
markdownText: 'The arbitrary `parameters` of the modal declared in the `setInspectorMode`\nfunction.',
|
|
1172
|
+
},
|
|
1173
|
+
location: {
|
|
1174
|
+
filePath: 'src/hooks/renderInspectorPanel.ts',
|
|
1175
|
+
lineNumber: 24,
|
|
1176
|
+
},
|
|
1177
|
+
type: 'Record<string, unknown>',
|
|
1178
|
+
},
|
|
1179
|
+
},
|
|
1180
|
+
},
|
|
1181
|
+
],
|
|
1182
|
+
additionalMethods: [],
|
|
1183
|
+
},
|
|
1184
|
+
returnType: 'void',
|
|
1185
|
+
location: {
|
|
1186
|
+
filePath: 'src/hooks/renderInspectorPanel.ts',
|
|
1187
|
+
lineNumber: 11,
|
|
1188
|
+
},
|
|
1189
|
+
},
|
|
1190
|
+
renderInspector: {
|
|
1191
|
+
name: 'renderInspector',
|
|
1192
|
+
comment: {
|
|
1193
|
+
markdownText: 'This function will be called when the plugin needs to render a specific\ninspector. Inspectors provide a side panel interface for displaying and\ninteracting with content alongside a custom interface.',
|
|
1194
|
+
tag: 'inspector',
|
|
1195
|
+
example: "connect({\n renderInspector(inspectorId, ctx) {\n render(\n <div>\n <h1>Inspector: {inspectorId}</h1>\n <button onClick={() => ctx.setInspectorMode({\n type: 'itemEditor',\n itemId: 'some-item-id'\n })}>\n Show Item Editor\n </button>\n </div>\n );\n }\n});",
|
|
1196
|
+
},
|
|
1197
|
+
nonCtxArguments: [
|
|
1198
|
+
{
|
|
1199
|
+
name: 'inspectorId',
|
|
1200
|
+
typeName: 'string',
|
|
1201
|
+
},
|
|
1202
|
+
],
|
|
1203
|
+
ctxArgument: {
|
|
1204
|
+
type: 'ImposedSizePluginFrameCtx',
|
|
1205
|
+
additionalProperties: [
|
|
1206
|
+
{
|
|
1207
|
+
items: {
|
|
1208
|
+
inspectorId: {
|
|
1209
|
+
comment: {
|
|
1210
|
+
markdownText: 'The ID of the inspector that needs to be rendered.',
|
|
1211
|
+
},
|
|
1212
|
+
location: {
|
|
1213
|
+
filePath: 'src/hooks/renderInspector.ts',
|
|
1214
|
+
lineNumber: 80,
|
|
1215
|
+
},
|
|
1216
|
+
type: 'string',
|
|
1217
|
+
},
|
|
1218
|
+
highlightedItemId: {
|
|
1219
|
+
comment: {
|
|
1220
|
+
markdownText: 'The ID of the record the currently is highlighted by the user.',
|
|
1221
|
+
},
|
|
1222
|
+
location: {
|
|
1223
|
+
filePath: 'src/hooks/renderInspector.ts',
|
|
1224
|
+
lineNumber: 83,
|
|
1225
|
+
},
|
|
1226
|
+
type: 'string | undefined',
|
|
1227
|
+
},
|
|
1228
|
+
location: {
|
|
1229
|
+
comment: {
|
|
1230
|
+
markdownText: 'Current page location.',
|
|
1231
|
+
},
|
|
1232
|
+
location: {
|
|
1233
|
+
filePath: 'src/hooks/renderInspector.ts',
|
|
1234
|
+
lineNumber: 86,
|
|
1235
|
+
},
|
|
1236
|
+
type: '{\n pathname: string;\n search: string;\n hash: string;\n }',
|
|
1237
|
+
},
|
|
1238
|
+
},
|
|
1239
|
+
},
|
|
1240
|
+
],
|
|
1241
|
+
additionalMethods: [
|
|
1242
|
+
{
|
|
1243
|
+
items: {
|
|
1244
|
+
setInspectorMode: {
|
|
1245
|
+
comment: {
|
|
1246
|
+
markdownText: 'Changes the current display mode of the inspector. This allows the plugin\nto dynamically switch between showing a record list, record editor, or custom\npanel within the inspector interface.',
|
|
1247
|
+
example: "// Switch to record editor mode\nawait ctx.setInspectorMode({\n type: 'itemEditor',\n itemId: 'item-123',\n fieldPath: 'title'\n});\n\n// Switch to record list mode\nawait ctx.setInspectorMode({ type: 'itemList' });\nawait ctx.setInspectorItemListData({\n title: 'Related Records',\n itemIds: ['item-1', 'item-2', 'item-3']\n});\n\n// Switch to custom panel mode\nawait ctx.setInspectorMode({\n type: 'customPanel',\n panelId: 'my-custom-panel',\n parameters: { filter: 'active' }\n});\n\n// Low intent mode change - won't interrupt editing with unsaved changes\nawait ctx.setInspectorMode(\n { type: 'itemList' },\n { ignoreIfUnsavedChanges: true }\n);",
|
|
1248
|
+
},
|
|
1249
|
+
location: {
|
|
1250
|
+
filePath: 'src/hooks/renderInspector.ts',
|
|
1251
|
+
lineNumber: 136,
|
|
1252
|
+
},
|
|
1253
|
+
type: '(\n mode: InspectorMode,\n options?: SetInspectorModeOptions,\n ) => Promise<void>',
|
|
1254
|
+
},
|
|
1255
|
+
setInspectorItemListData: {
|
|
1256
|
+
comment: {
|
|
1257
|
+
markdownText: 'Sets the data for the item list inspector mode.',
|
|
1258
|
+
example: "// Set the item list data\nawait ctx.setInspectorItemListData({\n title: 'Related Records',\n itemIds: ['item-1', 'item-2', 'item-3']\n});\n\n// Switch to item list mode\nawait ctx.setInspectorMode({ type: 'itemList' });",
|
|
1259
|
+
},
|
|
1260
|
+
location: {
|
|
1261
|
+
filePath: 'src/hooks/renderInspector.ts',
|
|
1262
|
+
lineNumber: 157,
|
|
1263
|
+
},
|
|
1264
|
+
type: '(data: {\n /** The title to show in the inspector header */\n title: string;\n /** Array of record IDs to display in the list */\n itemIds: string[];\n }) => Promise<void>',
|
|
1265
|
+
},
|
|
1266
|
+
},
|
|
1267
|
+
},
|
|
1268
|
+
],
|
|
1269
|
+
},
|
|
1270
|
+
returnType: 'void',
|
|
1271
|
+
location: {
|
|
1272
|
+
filePath: 'src/hooks/renderInspector.ts',
|
|
1273
|
+
lineNumber: 73,
|
|
1274
|
+
},
|
|
1275
|
+
},
|
|
1142
1276
|
renderFieldExtension: {
|
|
1143
1277
|
name: 'renderFieldExtension',
|
|
1144
1278
|
comment: {
|