@servicetitan/dte-unlayer 0.92.0 → 0.94.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/editor-core-source.d.ts +2 -2
- package/dist/editor-core-source.d.ts.map +1 -1
- package/dist/editor-core-source.js +2 -2
- package/dist/editor-core-source.js.map +1 -1
- package/dist/editor.js.map +1 -1
- package/dist/shared/schema.d.ts +6 -2
- package/dist/shared/schema.d.ts.map +1 -1
- package/dist/shared/schema.js +10 -6
- package/dist/shared/schema.js.map +1 -1
- package/package.json +1 -1
- package/src/editor-core-source.ts +2 -2
- package/src/editor.tsx +1 -1
- package/src/shared/schema.ts +21 -13
package/dist/editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/editor.tsx"],"sourcesContent":["import {\n CSSProperties,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { UnlayerEditorTwin } from './shared/const';\nimport { UnlayerStore, UnlayerDesignChangeInfo } from './store';\nimport { UnlayerRef, CreateUnlayerEditorProps } from './unlayer-interface';\n\nexport interface UnlayerEditorProps {\n id?: string;\n design?: any;\n opts: CreateUnlayerEditorProps;\n minHeight?: number;\n style?: CSSProperties;\n\n onReady?(): void;\n\n onChange?(info: UnlayerDesignChangeInfo): void;\n\n onSnapshotSave?(tool: UnlayerEditorTwin): void;\n\n onImage?(file: File): Promise<{ url: string }>;\n\n onError?(title: string, description?: string): void;\n\n onMessage?(type: string, data: any): void;\n}\n\nexport const useUnlayerRef = () => useRef<UnlayerRef | null>(null);\n\nexport const UnlayerEditor = forwardRef<UnlayerRef, UnlayerEditorProps>((props, ref) => {\n const [isReady, setIsReady] = useState(false);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const store = useMemo(\n () => new UnlayerStore(props.opts),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []
|
|
1
|
+
{"version":3,"sources":["../src/editor.tsx"],"sourcesContent":["import {\n CSSProperties,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { UnlayerEditorTwin } from './shared/const';\nimport { UnlayerStore, UnlayerDesignChangeInfo } from './store';\nimport { UnlayerRef, CreateUnlayerEditorProps } from './unlayer-interface';\n\nexport interface UnlayerEditorProps {\n id?: string;\n design?: any;\n opts: CreateUnlayerEditorProps;\n minHeight?: number;\n style?: CSSProperties;\n\n onReady?(): void;\n\n onChange?(info: UnlayerDesignChangeInfo): void;\n\n onSnapshotSave?(tool: UnlayerEditorTwin): void;\n\n onImage?(file: File): Promise<{ url: string }>;\n\n onError?(title: string, description?: string): void;\n\n onMessage?(type: string, data: any): void;\n}\n\nexport const useUnlayerRef = () => useRef<UnlayerRef | null>(null);\n\nexport const UnlayerEditor = forwardRef<UnlayerRef, UnlayerEditorProps>((props, ref) => {\n const [isReady, setIsReady] = useState(false);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const store = useMemo(\n () => new UnlayerStore(props.opts),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n useEffect(() => {\n if (containerRef.current) {\n store\n .init(containerRef.current)\n .then(() => setIsReady(true))\n .catch(() => setIsReady(false));\n }\n\n return () => store.destroy();\n }, [store]);\n useImperativeHandle(ref, () => store.unlayerRef, [store]);\n\n useEffect(() => {\n if (isReady) {\n store.setDesign(props.design);\n }\n }, [isReady, props.design, store]);\n\n useEffect(() => {\n store.setOnChange(props.onChange);\n\n return () => store.setOnChange();\n }, [props.onChange, store]);\n\n useEffect(() => {\n store.setOnSnapshotSave(props.onSnapshotSave);\n\n return () => store.setOnSnapshotSave();\n }, [props.onSnapshotSave, store]);\n\n useEffect(() => {\n if (props.opts.newSnapshot) {\n store.addTwin(props.opts.newSnapshot);\n }\n }, [props.opts.newSnapshot, store]);\n\n useEffect(() => {\n store.setOnReady(props.onReady);\n\n return () => store.setOnReady();\n }, [props.onReady, store]);\n\n useEffect(() => {\n store.setOnImage(props.onImage);\n\n return () => store.setOnImage();\n }, [props.onImage, store]);\n\n useEffect(() => {\n store.setOnError(props.onError);\n\n return () => store.setOnError();\n }, [props.onError, store]);\n\n useEffect(() => {\n store.setOnMessage(props.onMessage);\n\n return () => store.setOnMessage();\n }, [props.onMessage, store]);\n\n const { minHeight = 800, style = {} } = props;\n\n return (\n <div style={{ minHeight, display: 'flex' }}>\n {!isReady && <p className=\"c-red-500\">error loading editor</p>}\n <div id={props.id ?? 'editor'} style={style} ref={containerRef} />\n </div>\n );\n});\n"],"names":["forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","UnlayerStore","useUnlayerRef","UnlayerEditor","props","ref","isReady","setIsReady","containerRef","store","opts","current","init","then","catch","destroy","unlayerRef","setDesign","design","setOnChange","onChange","setOnSnapshotSave","onSnapshotSave","newSnapshot","addTwin","setOnReady","onReady","setOnImage","onImage","setOnError","onError","setOnMessage","onMessage","minHeight","style","div","display","p","className","id"],"mappings":";AAAA,SAEIA,UAAU,EACVC,SAAS,EACTC,mBAAmB,EACnBC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACL,QAAQ;AAEf,SAASC,YAAY,QAAiC,UAAU;AAuBhE,OAAO,MAAMC,gBAAgB,IAAMH,OAA0B,MAAM;AAEnE,OAAO,MAAMI,8BAAgBR,WAA2C,CAACS,OAAOC;IAC5E,MAAM,CAACC,SAASC,WAAW,GAAGP,SAAS;IACvC,MAAMQ,eAAeT,OAA8B;IACnD,MAAMU,QAAQX,QACV,IAAM,IAAIG,aAAaG,MAAMM,IAAI,GACjC,uDAAuD;IACvD,EAAE;IAGNd,UAAU;QACN,IAAIY,aAAaG,OAAO,EAAE;YACtBF,MACKG,IAAI,CAACJ,aAAaG,OAAO,EACzBE,IAAI,CAAC,IAAMN,WAAW,OACtBO,KAAK,CAAC,IAAMP,WAAW;QAChC;QAEA,OAAO,IAAME,MAAMM,OAAO;IAC9B,GAAG;QAACN;KAAM;IACVZ,oBAAoBQ,KAAK,IAAMI,MAAMO,UAAU,EAAE;QAACP;KAAM;IAExDb,UAAU;QACN,IAAIU,SAAS;YACTG,MAAMQ,SAAS,CAACb,MAAMc,MAAM;QAChC;IACJ,GAAG;QAACZ;QAASF,MAAMc,MAAM;QAAET;KAAM;IAEjCb,UAAU;QACNa,MAAMU,WAAW,CAACf,MAAMgB,QAAQ;QAEhC,OAAO,IAAMX,MAAMU,WAAW;IAClC,GAAG;QAACf,MAAMgB,QAAQ;QAAEX;KAAM;IAE1Bb,UAAU;QACNa,MAAMY,iBAAiB,CAACjB,MAAMkB,cAAc;QAE5C,OAAO,IAAMb,MAAMY,iBAAiB;IACxC,GAAG;QAACjB,MAAMkB,cAAc;QAAEb;KAAM;IAEhCb,UAAU;QACN,IAAIQ,MAAMM,IAAI,CAACa,WAAW,EAAE;YACxBd,MAAMe,OAAO,CAACpB,MAAMM,IAAI,CAACa,WAAW;QACxC;IACJ,GAAG;QAACnB,MAAMM,IAAI,CAACa,WAAW;QAAEd;KAAM;IAElCb,UAAU;QACNa,MAAMgB,UAAU,CAACrB,MAAMsB,OAAO;QAE9B,OAAO,IAAMjB,MAAMgB,UAAU;IACjC,GAAG;QAACrB,MAAMsB,OAAO;QAAEjB;KAAM;IAEzBb,UAAU;QACNa,MAAMkB,UAAU,CAACvB,MAAMwB,OAAO;QAE9B,OAAO,IAAMnB,MAAMkB,UAAU;IACjC,GAAG;QAACvB,MAAMwB,OAAO;QAAEnB;KAAM;IAEzBb,UAAU;QACNa,MAAMoB,UAAU,CAACzB,MAAM0B,OAAO;QAE9B,OAAO,IAAMrB,MAAMoB,UAAU;IACjC,GAAG;QAACzB,MAAM0B,OAAO;QAAErB;KAAM;IAEzBb,UAAU;QACNa,MAAMsB,YAAY,CAAC3B,MAAM4B,SAAS;QAElC,OAAO,IAAMvB,MAAMsB,YAAY;IACnC,GAAG;QAAC3B,MAAM4B,SAAS;QAAEvB;KAAM;IAE3B,MAAM,EAAEwB,YAAY,GAAG,EAAEC,QAAQ,CAAC,CAAC,EAAE,GAAG9B;QAKvBA;IAHjB,qBACI,MAAC+B;QAAID,OAAO;YAAED;YAAWG,SAAS;QAAO;;YACpC,CAAC9B,yBAAW,KAAC+B;gBAAEC,WAAU;0BAAY;;0BACtC,KAACH;gBAAII,IAAInC,CAAAA,YAAAA,MAAMmC,EAAE,cAARnC,uBAAAA,YAAY;gBAAU8B,OAAOA;gBAAO7B,KAAKG;;;;AAG9D,GAAG"}
|
package/dist/shared/schema.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type SchemaNodeAvailableTypes = 'object' | 'array' | 'string';
|
|
1
|
+
export type SchemaNodeAvailableTypes = 'object' | 'array' | 'string' | 'number';
|
|
2
2
|
export declare const schemaNodeAvailableTypes: string[];
|
|
3
3
|
export type SchemaNodeStringSubTypes = 'string' | 'text' | 'html' | 'image';
|
|
4
4
|
export declare const schemaNodeStringSubTypes: string[];
|
|
@@ -26,13 +26,17 @@ export interface SchemaSimpleString extends SchemaNodeProps {
|
|
|
26
26
|
type: 'string';
|
|
27
27
|
subType?: SchemaNodeStringSubTypes;
|
|
28
28
|
}
|
|
29
|
-
export
|
|
29
|
+
export interface SchemaSimpleNumber extends SchemaNodeProps {
|
|
30
|
+
type: 'number';
|
|
31
|
+
}
|
|
32
|
+
export type SchemaSimple = SchemaSimpleString | SchemaSimpleNumber;
|
|
30
33
|
export declare const schemaArrayRootKey = "[]";
|
|
31
34
|
export type SchemaNode = SchemaObject | SchemaArray | SchemaSimple;
|
|
32
35
|
export declare const schemaIsObject: (node?: SchemaNode) => node is SchemaObject;
|
|
33
36
|
export declare const schemaIsArrayOfObjects: (node?: SchemaNode) => node is SchemaArray;
|
|
34
37
|
export declare const schemaIsArray: (node?: SchemaNode) => node is SchemaArray;
|
|
35
38
|
export declare const schemaIsString: (node?: SchemaNode) => node is SchemaSimpleString;
|
|
39
|
+
export declare const schemaIsNumber: (node?: SchemaNode) => node is SchemaSimpleNumber;
|
|
36
40
|
export declare const schemaIsStringHtml: (node?: SchemaNode) => node is SchemaSimpleString;
|
|
37
41
|
export declare const schemaIsStringImage: (node?: SchemaNode) => node is SchemaSimpleString;
|
|
38
42
|
export declare const schemaFindNode: (schema: SchemaNode, key: string) => SchemaNode | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/shared/schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/shared/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/schema.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export const schemaNodeAvailableTypes = [
|
|
2
2
|
'object',
|
|
3
3
|
'array',
|
|
4
|
-
'string'
|
|
4
|
+
'string',
|
|
5
|
+
'number'
|
|
5
6
|
];
|
|
6
7
|
export const schemaNodeStringSubTypes = [
|
|
7
8
|
'string',
|
|
@@ -15,6 +16,7 @@ export const schemaIsObject = (node)=>(node === null || node === void 0 ? void 0
|
|
|
15
16
|
export const schemaIsArrayOfObjects = (node)=>(node === null || node === void 0 ? void 0 : node.type) === 'array' && (node === null || node === void 0 ? void 0 : node.items.type) === 'object';
|
|
16
17
|
export const schemaIsArray = (node)=>(node === null || node === void 0 ? void 0 : node.type) === 'array';
|
|
17
18
|
export const schemaIsString = (node)=>(node === null || node === void 0 ? void 0 : node.type) === 'string';
|
|
19
|
+
export const schemaIsNumber = (node)=>(node === null || node === void 0 ? void 0 : node.type) === 'number';
|
|
18
20
|
export const schemaIsStringHtml = (node)=>(node === null || node === void 0 ? void 0 : node.type) === 'string' && (node === null || node === void 0 ? void 0 : node.subType) === 'html';
|
|
19
21
|
export const schemaIsStringImage = (node)=>(node === null || node === void 0 ? void 0 : node.type) === 'string' && (node === null || node === void 0 ? void 0 : node.subType) === 'image';
|
|
20
22
|
export const schemaFindNode = (schema, key)=>{
|
|
@@ -132,14 +134,16 @@ export const schemaBuildMap = (schema)=>{
|
|
|
132
134
|
}
|
|
133
135
|
] : [], true, dummyDataNode[nodeKey]);
|
|
134
136
|
} else if (nodeKey) {
|
|
135
|
-
var _node_options;
|
|
136
|
-
const
|
|
137
|
-
|
|
137
|
+
var _node_options, _node_options1;
|
|
138
|
+
const sampleData = node === null || node === void 0 ? void 0 : (_node_options = node.options) === null || _node_options === void 0 ? void 0 : _node_options.sampleData;
|
|
139
|
+
const placeholder = node === null || node === void 0 ? void 0 : (_node_options1 = node.options) === null || _node_options1 === void 0 ? void 0 : _node_options1.placeholder;
|
|
140
|
+
const value = sampleData !== undefined ? sampleData : placeholder;
|
|
141
|
+
if (value !== undefined) {
|
|
138
142
|
if (isArrayRoot) {
|
|
139
143
|
var _dummyDataNode_push1;
|
|
140
|
-
(_dummyDataNode_push1 = dummyDataNode.push) === null || _dummyDataNode_push1 === void 0 ? void 0 : _dummyDataNode_push1.call(dummyDataNode,
|
|
144
|
+
(_dummyDataNode_push1 = dummyDataNode.push) === null || _dummyDataNode_push1 === void 0 ? void 0 : _dummyDataNode_push1.call(dummyDataNode, value);
|
|
141
145
|
} else {
|
|
142
|
-
dummyDataNode[nodeKey] =
|
|
146
|
+
dummyDataNode[nodeKey] = value;
|
|
143
147
|
}
|
|
144
148
|
}
|
|
145
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/schema.ts"],"sourcesContent":["export type SchemaNodeAvailableTypes = 'object' | 'array' | 'string';\nexport const schemaNodeAvailableTypes = ['object', 'array', 'string'];\n\nexport type SchemaNodeStringSubTypes = 'string' | 'text' | 'html' | 'image';\nexport const schemaNodeStringSubTypes = ['string', 'text', 'html', 'image'];\n\nexport const schemaIsAvailableType = (type: string): type is SchemaNodeAvailableTypes =>\n schemaNodeAvailableTypes.includes(type);\n\nexport interface SchemaFieldBaseOptions {\n placeholder?: any;\n description?: any;\n sampleData?: any;\n showInEditor?: boolean;\n isHighlighted?: boolean;\n}\n\ninterface SchemaNodeProps {\n title?: string;\n options?: SchemaFieldBaseOptions;\n}\n\nexport interface SchemaObject extends SchemaNodeProps {\n type: 'object';\n properties: Record<string, SchemaNode>;\n}\n\nexport interface SchemaArray extends SchemaNodeProps {\n type: 'array';\n items: SchemaNode;\n}\n\nexport interface SchemaSimpleString extends SchemaNodeProps {\n type: 'string';\n subType?: SchemaNodeStringSubTypes;\n}\n\nexport type SchemaSimple = SchemaSimpleString;\n\nexport const schemaArrayRootKey = '[]';\nexport type SchemaNode = SchemaObject | SchemaArray | SchemaSimple;\n\nexport const schemaIsObject = (node?: SchemaNode): node is SchemaObject => node?.type === 'object';\nexport const schemaIsArrayOfObjects = (node?: SchemaNode): node is SchemaArray =>\n node?.type === 'array' && node?.items.type === 'object';\nexport const schemaIsArray = (node?: SchemaNode): node is SchemaArray => node?.type === 'array';\nexport const schemaIsString = (node?: SchemaNode): node is SchemaSimpleString =>\n node?.type === 'string';\nexport const schemaIsStringHtml = (node?: SchemaNode): node is SchemaSimpleString =>\n node?.type === 'string' && node?.subType === 'html';\n\nexport const schemaIsStringImage = (node?: SchemaNode): node is SchemaSimpleString =>\n node?.type === 'string' && node?.subType === 'image';\n\nexport const schemaFindNode = (schema: SchemaNode, key: string): SchemaNode | undefined => {\n const nodeFinder = (node: SchemaNode, keys: string[]): SchemaNode | undefined => {\n if (!node) {\n return undefined;\n }\n\n if (!keys.length) {\n return node;\n }\n\n const key = keys.shift();\n\n if (!key) {\n return undefined;\n }\n\n if (key === schemaArrayRootKey) {\n return schemaIsArray(node) ? nodeFinder(node.items, keys) : undefined;\n }\n\n if (schemaIsObject(node)) {\n return nodeFinder(node.properties[key], keys);\n }\n\n if (schemaIsArrayOfObjects(node)) {\n return nodeFinder(((node as SchemaArray)?.items as SchemaObject).properties[key], keys);\n }\n\n return undefined;\n };\n\n return nodeFinder(schema, key.split('.'));\n};\n\nexport const schemaFindParentNode = (schema: SchemaNode, key: string): SchemaNode | undefined => {\n const keys = key.split('.');\n\n keys.pop();\n\n return keys.length\n ? schemaFindNode(schema, keys.join('.'))\n : schemaIsObject(schema) && schema.properties[key]\n ? schema\n : undefined;\n};\n\nexport const schemaGetFieldKey = (fullKey: string): string => fullKey.split('.').pop() ?? '';\n\nexport const schemaBuildNode = (\n type: SchemaNodeAvailableTypes,\n arrayItemType?: SchemaNodeAvailableTypes\n): SchemaNode => {\n if (type === 'object') {\n return { type: 'object', properties: {}, options: {} };\n }\n if (type === 'array') {\n return { type: 'array', items: schemaBuildNode(arrayItemType ?? 'object'), options: {} };\n }\n\n return { type, options: {} };\n};\n\nexport interface SchemaMetaField {\n fieldKey: string;\n fullKey: string;\n node: SchemaNode;\n title: string; // node.title or fullTitle\n fullTitle: string; // joined title of all parents and field\n isArrayed: boolean;\n isValue: boolean;\n}\n\nexport type SchemaMap = Record<string, SchemaMetaField>;\n\nexport const schemaBuildMap = (schema: SchemaObject): { map: SchemaMap; dummyData: any } => {\n const fieldsMap: Record<string, SchemaMetaField> = {};\n const dummyData: any = {};\n\n const processNode = (\n node: SchemaNode,\n nodeKey: string,\n parentNodes: { key: string; title: string }[],\n isArrayed: boolean,\n dummyDataNode: any\n ) => {\n const nodeLabel = node.title ?? nodeKey;\n const isArrayRoot = nodeKey === schemaArrayRootKey;\n\n if (nodeKey) {\n const fullKey = [...parentNodes.map(n => n.key), nodeKey].join('.');\n const fullTitle = [...parentNodes.map(n => n.title), nodeLabel].join(' - ');\n\n fieldsMap[fullKey] = {\n fieldKey: nodeKey,\n fullKey,\n fullTitle,\n title: node.title ?? isArrayed ? nodeLabel : fullTitle,\n node,\n isArrayed,\n isValue: !schemaIsObject(node) && !schemaIsArray(node),\n };\n }\n\n if (schemaIsObject(node)) {\n const properties = node.properties ?? {};\n const keys = Object.keys(properties ?? {}).sort();\n let dummyDataObject = {};\n\n if (isArrayRoot) {\n dummyDataNode.push?.(dummyDataObject);\n } else if (nodeKey) {\n dummyDataNode[nodeKey] = dummyDataObject;\n } else {\n dummyDataObject = dummyDataNode;\n }\n\n for (const key of keys) {\n processNode(\n properties[key],\n key,\n nodeKey ? [...parentNodes, { key: nodeKey, title: nodeLabel }] : [],\n isArrayed,\n dummyDataObject\n );\n }\n } else if (schemaIsArray(node)) {\n const items = node.items ?? {};\n\n dummyDataNode[nodeKey] = [];\n processNode(\n items,\n schemaArrayRootKey,\n nodeKey ? [...parentNodes, { key: nodeKey, title: nodeLabel }] : [],\n true,\n dummyDataNode[nodeKey]\n );\n } else if (nodeKey) {\n const placeholder = node?.options?.placeholder;\n\n if (placeholder !== undefined) {\n if (isArrayRoot) {\n dummyDataNode.push?.(placeholder);\n } else {\n dummyDataNode[nodeKey] = placeholder;\n }\n }\n }\n };\n\n processNode(schema, '', [], false, dummyData);\n\n return { map: fieldsMap, dummyData };\n};\n"],"names":["schemaNodeAvailableTypes","schemaNodeStringSubTypes","schemaIsAvailableType","type","includes","schemaArrayRootKey","schemaIsObject","node","schemaIsArrayOfObjects","items","schemaIsArray","schemaIsString","schemaIsStringHtml","subType","schemaIsStringImage","schemaFindNode","schema","key","nodeFinder","keys","undefined","length","shift","properties","split","schemaFindParentNode","pop","join","schemaGetFieldKey","fullKey","schemaBuildNode","arrayItemType","options","schemaBuildMap","fieldsMap","dummyData","processNode","nodeKey","parentNodes","isArrayed","dummyDataNode","nodeLabel","title","isArrayRoot","map","n","fullTitle","fieldKey","isValue","Object","sort","dummyDataObject","push","placeholder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/shared/schema.ts"],"sourcesContent":["export type SchemaNodeAvailableTypes = 'object' | 'array' | 'string' | 'number';\nexport const schemaNodeAvailableTypes = ['object', 'array', 'string', 'number'];\n\nexport type SchemaNodeStringSubTypes = 'string' | 'text' | 'html' | 'image';\nexport const schemaNodeStringSubTypes = ['string', 'text', 'html', 'image'];\n\nexport const schemaIsAvailableType = (type: string): type is SchemaNodeAvailableTypes =>\n schemaNodeAvailableTypes.includes(type);\n\nexport interface SchemaFieldBaseOptions {\n placeholder?: any;\n description?: any;\n sampleData?: any;\n showInEditor?: boolean;\n isHighlighted?: boolean;\n}\n\ninterface SchemaNodeProps {\n title?: string;\n options?: SchemaFieldBaseOptions;\n}\n\nexport interface SchemaObject extends SchemaNodeProps {\n type: 'object';\n properties: Record<string, SchemaNode>;\n}\n\nexport interface SchemaArray extends SchemaNodeProps {\n type: 'array';\n items: SchemaNode;\n}\n\nexport interface SchemaSimpleString extends SchemaNodeProps {\n type: 'string';\n subType?: SchemaNodeStringSubTypes;\n}\n\nexport interface SchemaSimpleNumber extends SchemaNodeProps {\n type: 'number';\n}\n\nexport type SchemaSimple = SchemaSimpleString | SchemaSimpleNumber;\n\nexport const schemaArrayRootKey = '[]';\nexport type SchemaNode = SchemaObject | SchemaArray | SchemaSimple;\n\nexport const schemaIsObject = (node?: SchemaNode): node is SchemaObject => node?.type === 'object';\nexport const schemaIsArrayOfObjects = (node?: SchemaNode): node is SchemaArray =>\n node?.type === 'array' && node?.items.type === 'object';\nexport const schemaIsArray = (node?: SchemaNode): node is SchemaArray => node?.type === 'array';\nexport const schemaIsString = (node?: SchemaNode): node is SchemaSimpleString =>\n node?.type === 'string';\nexport const schemaIsNumber = (node?: SchemaNode): node is SchemaSimpleNumber =>\n node?.type === 'number';\nexport const schemaIsStringHtml = (node?: SchemaNode): node is SchemaSimpleString =>\n node?.type === 'string' && node?.subType === 'html';\n\nexport const schemaIsStringImage = (node?: SchemaNode): node is SchemaSimpleString =>\n node?.type === 'string' && node?.subType === 'image';\n\nexport const schemaFindNode = (schema: SchemaNode, key: string): SchemaNode | undefined => {\n const nodeFinder = (node: SchemaNode, keys: string[]): SchemaNode | undefined => {\n if (!node) {\n return undefined;\n }\n\n if (!keys.length) {\n return node;\n }\n\n const key = keys.shift();\n\n if (!key) {\n return undefined;\n }\n\n if (key === schemaArrayRootKey) {\n return schemaIsArray(node) ? nodeFinder(node.items, keys) : undefined;\n }\n\n if (schemaIsObject(node)) {\n return nodeFinder(node.properties[key], keys);\n }\n\n if (schemaIsArrayOfObjects(node)) {\n return nodeFinder(((node as SchemaArray)?.items as SchemaObject).properties[key], keys);\n }\n\n return undefined;\n };\n\n return nodeFinder(schema, key.split('.'));\n};\n\nexport const schemaFindParentNode = (schema: SchemaNode, key: string): SchemaNode | undefined => {\n const keys = key.split('.');\n\n keys.pop();\n\n return keys.length\n ? schemaFindNode(schema, keys.join('.'))\n : schemaIsObject(schema) && schema.properties[key]\n ? schema\n : undefined;\n};\n\nexport const schemaGetFieldKey = (fullKey: string): string => fullKey.split('.').pop() ?? '';\n\nexport const schemaBuildNode = (\n type: SchemaNodeAvailableTypes,\n arrayItemType?: SchemaNodeAvailableTypes,\n): SchemaNode => {\n if (type === 'object') {\n return { type: 'object', properties: {}, options: {} };\n }\n if (type === 'array') {\n return { type: 'array', items: schemaBuildNode(arrayItemType ?? 'object'), options: {} };\n }\n\n return { type, options: {} };\n};\n\nexport interface SchemaMetaField {\n fieldKey: string;\n fullKey: string;\n node: SchemaNode;\n title: string; // node.title or fullTitle\n fullTitle: string; // joined title of all parents and field\n isArrayed: boolean;\n isValue: boolean;\n}\n\nexport type SchemaMap = Record<string, SchemaMetaField>;\n\nexport const schemaBuildMap = (schema: SchemaObject): { map: SchemaMap; dummyData: any } => {\n const fieldsMap: Record<string, SchemaMetaField> = {};\n const dummyData: any = {};\n\n const processNode = (\n node: SchemaNode,\n nodeKey: string,\n parentNodes: { key: string; title: string }[],\n isArrayed: boolean,\n dummyDataNode: any,\n ) => {\n const nodeLabel = node.title ?? nodeKey;\n const isArrayRoot = nodeKey === schemaArrayRootKey;\n\n if (nodeKey) {\n const fullKey = [...parentNodes.map(n => n.key), nodeKey].join('.');\n const fullTitle = [...parentNodes.map(n => n.title), nodeLabel].join(' - ');\n\n fieldsMap[fullKey] = {\n fieldKey: nodeKey,\n fullKey,\n fullTitle,\n title: (node.title ?? isArrayed) ? nodeLabel : fullTitle,\n node,\n isArrayed,\n isValue: !schemaIsObject(node) && !schemaIsArray(node),\n };\n }\n\n if (schemaIsObject(node)) {\n const properties = node.properties ?? {};\n const keys = Object.keys(properties ?? {}).sort();\n let dummyDataObject = {};\n\n if (isArrayRoot) {\n dummyDataNode.push?.(dummyDataObject);\n } else if (nodeKey) {\n dummyDataNode[nodeKey] = dummyDataObject;\n } else {\n dummyDataObject = dummyDataNode;\n }\n\n for (const key of keys) {\n processNode(\n properties[key],\n key,\n nodeKey ? [...parentNodes, { key: nodeKey, title: nodeLabel }] : [],\n isArrayed,\n dummyDataObject,\n );\n }\n } else if (schemaIsArray(node)) {\n const items = node.items ?? {};\n\n dummyDataNode[nodeKey] = [];\n processNode(\n items,\n schemaArrayRootKey,\n nodeKey ? [...parentNodes, { key: nodeKey, title: nodeLabel }] : [],\n true,\n dummyDataNode[nodeKey],\n );\n } else if (nodeKey) {\n const sampleData = node?.options?.sampleData;\n const placeholder = node?.options?.placeholder;\n const value = sampleData !== undefined ? sampleData : placeholder;\n\n if (value !== undefined) {\n if (isArrayRoot) {\n dummyDataNode.push?.(value);\n } else {\n dummyDataNode[nodeKey] = value;\n }\n }\n }\n };\n\n processNode(schema, '', [], false, dummyData);\n\n return { map: fieldsMap, dummyData };\n};\n"],"names":["schemaNodeAvailableTypes","schemaNodeStringSubTypes","schemaIsAvailableType","type","includes","schemaArrayRootKey","schemaIsObject","node","schemaIsArrayOfObjects","items","schemaIsArray","schemaIsString","schemaIsNumber","schemaIsStringHtml","subType","schemaIsStringImage","schemaFindNode","schema","key","nodeFinder","keys","undefined","length","shift","properties","split","schemaFindParentNode","pop","join","schemaGetFieldKey","fullKey","schemaBuildNode","arrayItemType","options","schemaBuildMap","fieldsMap","dummyData","processNode","nodeKey","parentNodes","isArrayed","dummyDataNode","nodeLabel","title","isArrayRoot","map","n","fullTitle","fieldKey","isValue","Object","sort","dummyDataObject","push","sampleData","placeholder","value"],"mappings":"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"}
|