@servicetitan/dte-unlayer 0.91.0 → 0.93.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.
@@ -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 []\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"}
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"}
@@ -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 type SchemaSimple = SchemaSimpleString;
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;AACrE,eAAO,MAAM,wBAAwB,UAAgC,CAAC;AAEtE,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC5E,eAAO,MAAM,wBAAwB,UAAsC,CAAC;AAE5E,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,wBAClB,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACnC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,eAAe;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACjD,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAChD,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACtC;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE9C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnE,eAAO,MAAM,cAAc,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,YAAuC,CAAC;AACnG,eAAO,MAAM,sBAAsB,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,WACR,CAAC;AAC5D,eAAO,MAAM,aAAa,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,WAAqC,CAAC;AAChG,eAAO,MAAM,cAAc,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,kBAChC,CAAC;AAC5B,eAAO,MAAM,kBAAkB,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,kBACR,CAAC;AAExD,eAAO,MAAM,mBAAmB,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,kBACR,CAAC;AAEzD,eAAO,MAAM,cAAc,GAAI,QAAQ,UAAU,EAAE,KAAK,MAAM,KAAG,UAAU,GAAG,SAgC7E,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,UAAU,EAAE,KAAK,MAAM,KAAG,UAAU,GAAG,SAUnF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,MAAwC,CAAC;AAE7F,eAAO,MAAM,eAAe,GACxB,MAAM,wBAAwB,EAC9B,gBAAgB,wBAAwB,KACzC,UASF,CAAC;AAEF,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,KAAG;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CA8ErF,CAAC"}
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,GAAG,QAAQ,CAAC;AAChF,eAAO,MAAM,wBAAwB,UAA0C,CAAC;AAEhF,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC5E,eAAO,MAAM,wBAAwB,UAAsC,CAAC;AAE5E,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,wBAClB,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACnC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,eAAe;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACjD,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAChD,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACtC;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACvD,IAAI,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAEnE,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnE,eAAO,MAAM,cAAc,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,YAAuC,CAAC;AACnG,eAAO,MAAM,sBAAsB,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,WACR,CAAC;AAC5D,eAAO,MAAM,aAAa,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,WAAqC,CAAC;AAChG,eAAO,MAAM,cAAc,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,kBAChC,CAAC;AAC5B,eAAO,MAAM,cAAc,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,kBAChC,CAAC;AAC5B,eAAO,MAAM,kBAAkB,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,kBACR,CAAC;AAExD,eAAO,MAAM,mBAAmB,GAAI,OAAO,UAAU,KAAG,IAAI,IAAI,kBACR,CAAC;AAEzD,eAAO,MAAM,cAAc,GAAI,QAAQ,UAAU,EAAE,KAAK,MAAM,KAAG,UAAU,GAAG,SAgC7E,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,UAAU,EAAE,KAAK,MAAM,KAAG,UAAU,GAAG,SAUnF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,MAAwC,CAAC;AAE7F,eAAO,MAAM,eAAe,GACxB,MAAM,wBAAwB,EAC9B,gBAAgB,wBAAwB,KACzC,UASF,CAAC;AAEF,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,KAAG;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAgFrF,CAAC"}
@@ -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 placeholder = node === null || node === void 0 ? void 0 : (_node_options = node.options) === null || _node_options === void 0 ? void 0 : _node_options.placeholder;
137
- if (placeholder !== undefined) {
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, placeholder);
144
+ (_dummyDataNode_push1 = dummyDataNode.push) === null || _dummyDataNode_push1 === void 0 ? void 0 : _dummyDataNode_push1.call(dummyDataNode, value);
141
145
  } else {
142
- dummyDataNode[nodeKey] = placeholder;
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"unlayer.d.ts","sourceRoot":"","sources":["../src/unlayer.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACpB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9D,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACnE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACrE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACnE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACrE,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAClD,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,MAAM,CAAA;KAAE,GAAG,GAAG,CAAC;IAC7D,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACpC;AAED,oBAAY,sBAAsB;IAC9B,YAAY,kBAAkB;IAC9B,YAAY,kBAAkB;IAC9B,cAAc,oBAAoB;IAClC,eAAe,qBAAqB;IACpC,QAAQ,cAAc;IACtB,QAAQ,cAAc;IACtB,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,cAAc,oBAAoB;IAClC,YAAY,kBAAkB;CACjC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,GAAG,CAAC;KACf,CAAC;CACL;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,mBAAmB,MAAM,WAO5D,CAAC;AAEF,eAAO,MAAM,2BAA2B,cAUvC,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAMnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAQnC,CAAC;AACF,eAAO,MAAM,gBAAgB,cAiC5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC5B,WAAW,cAAc,EACzB,6MAeG,wBAAwB,KAC5B,OA4JF,CAAC"}
1
+ {"version":3,"file":"unlayer.d.ts","sourceRoot":"","sources":["../src/unlayer.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACpB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9D,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACnE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACrE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACnE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACrE,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAClD,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,MAAM,CAAA;KAAE,GAAG,GAAG,CAAC;IAC7D,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACpC;AAED,oBAAY,sBAAsB;IAC9B,YAAY,kBAAkB;IAC9B,YAAY,kBAAkB;IAC9B,cAAc,oBAAoB;IAClC,eAAe,qBAAqB;IACpC,QAAQ,cAAc;IACtB,QAAQ,cAAc;IACtB,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,cAAc,oBAAoB;IAClC,YAAY,kBAAkB;CACjC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,GAAG,CAAC;KACf,CAAC;CACL;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,mBAAmB,MAAM,WAO5D,CAAC;AAEF,eAAO,MAAM,2BAA2B,cAUvC,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAMnC,CAAC;AAyBF,eAAO,MAAM,uBAAuB,cAQnC,CAAC;AACF,eAAO,MAAM,gBAAgB,cAiC5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC5B,WAAW,cAAc,EACzB,6MAeG,wBAAwB,KAC5B,OA0KF,CAAC"}
package/dist/unlayer.js CHANGED
@@ -23,8 +23,8 @@ export var DesignUpdatedEventType = /*#__PURE__*/ function(DesignUpdatedEventTyp
23
23
  * it is important for templates export and should be in sync
24
24
  * to know correct schema version, open unlayer editor and check output design ('schema' property)
25
25
  */ export const versions = {
26
- unlayer: '1.9.1',
27
- schema: 16
26
+ unlayer: '1.339.0',
27
+ schema: 22
28
28
  };
29
29
  export const handlePreselectTool = (preselectToolSlug)=>{
30
30
  return `
@@ -52,6 +52,26 @@ export const hideUnlayerBodyMenuItem = ()=>{
52
52
  }
53
53
  `;
54
54
  };
55
+ const injectEditorCoreStyles = ()=>{
56
+ const cssText = editorCoreStyles === null || editorCoreStyles === void 0 ? void 0 : editorCoreStyles.trim();
57
+ if (!cssText) {
58
+ return '';
59
+ }
60
+ return `
61
+ (function () {
62
+ var css = ${JSON.stringify(cssText)};
63
+ var id = 'dte-unlayer-core-styles';
64
+ if (document.getElementById(id)) {
65
+ return;
66
+ }
67
+ var style = document.createElement('style');
68
+ style.id = id;
69
+ style.type = 'text/css';
70
+ style.appendChild(document.createTextNode(css));
71
+ document.head.appendChild(style);
72
+ })();
73
+ `;
74
+ };
55
75
  export const hideMobileTabletPreview = ()=>`
56
76
  [data-key="preview-tablet"],
57
77
  [data-key="resolution"],
@@ -99,6 +119,7 @@ export const createUnlayerEditor = (container, { customCSS, customJS, eSignField
99
119
  const customScripts = [
100
120
  editorCoreScript,
101
121
  editorCoreTools,
122
+ injectEditorCoreStyles(),
102
123
  'window.dteStore.sendData("--core-loaded")',
103
124
  ...unlayerCustomToolsGetRegisterUrls(tools),
104
125
  unlayerCustomToolMetaData(tools),
@@ -191,7 +212,10 @@ export const createUnlayerEditor = (container, { customCSS, customJS, eSignField
191
212
  features: {
192
213
  preview: true,
193
214
  userUploads: false,
194
- stockImages: false
215
+ stockImages: false,
216
+ textEditor: {
217
+ tables: true
218
+ }
195
219
  },
196
220
  mergeTags: mergeTags === null || mergeTags === void 0 ? void 0 : mergeTags.reduce((out, tag)=>{
197
221
  out[tag.id] = {
@@ -206,6 +230,9 @@ export const createUnlayerEditor = (container, { customCSS, customJS, eSignField
206
230
  theme: 'classic_light'
207
231
  },
208
232
  tools: {
233
+ 'carousel': {
234
+ enabled: false
235
+ },
209
236
  'button': {
210
237
  enabled: false
211
238
  },
@@ -223,6 +250,9 @@ export const createUnlayerEditor = (container, { customCSS, customJS, eSignField
223
250
  }
224
251
  }
225
252
  },
253
+ 'table': {
254
+ enabled: true
255
+ },
226
256
  'menu': {
227
257
  enabled: false
228
258
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/unlayer.tsx"],"sourcesContent":["import { editorCoreScript, editorCoreStyles, editorCoreTools } from './editor-core';\nimport { constGenericsEditor } from './shared/const';\nimport { unlayerSupportedFonts } from './shared/fonts';\nimport {\n unlayerCustomEmptyToolState,\n unlayerCustomToolMetaData,\n unlayerCustomToolsGetRegisterUrls,\n} from './tools';\nimport { CreateUnlayerEditorProps } from './unlayer-interface';\n\nexport interface UnlayerExport {\n html: string;\n chunks: any;\n design: any;\n}\n\nexport interface Unlayer {\n addEventListener(event: string, cb: (arg: any) => void): void;\n removeEventListener(event: string, cb: (arg: any) => void): void;\n registerCallback(type: string, cb: (...args: any[]) => void): void;\n unregisterCallback(type: string, cb: (...args: any[]) => void): void;\n registerProvider(type: string, cb: (...args: any[]) => void): void;\n unregisterProvider(type: string, cb: (...args: any[]) => void): void;\n loadDesign(design: any): void;\n saveDesign(callback: (design: any) => void): void;\n exportHtml(callback: (data: UnlayerExport) => void): void;\n setMergeTags(tags: any): void;\n createViewer(opts: { render: (values: any) => string }): any;\n registerTool(tool: any): void;\n setBodyValues(values: any): void;\n}\n\nexport enum DesignUpdatedEventType {\n ContentAdded = 'content:added',\n ContentMoved = 'content:moved',\n ContentRemoved = 'content:removed',\n ContentModified = 'content:modified',\n RowAdded = 'row:added',\n RowMoved = 'row:moved',\n RowRemoved = 'row:removed',\n RowModified = 'row:modified',\n ColumnAdded = 'column:added',\n ColumnRemoved = 'column:removed',\n ColumnModified = 'column:modified',\n BodyModified = 'body:modified',\n}\n\nexport interface EventDesignUpdated {\n type: DesignUpdatedEventType;\n item: {\n type: string;\n slug?: string;\n values: any;\n };\n}\n\n/**\n * !!! IMPORTANT !!!\n * do not forget to update schema version when updating unlayer version\n * it is important for templates export and should be in sync\n * to know correct schema version, open unlayer editor and check output design ('schema' property)\n */\nexport const versions = {\n unlayer: '1.9.1',\n schema: 16,\n};\n\nexport const handlePreselectTool = (preselectToolSlug: string) => {\n return `\n const element = document.querySelector('.u_content_custom_${preselectToolSlug}');\n if (element) {\n element.click();\n }\n `;\n};\n\nexport const hideUnlayerContentsControls = () => {\n return `\n .blockbuilder-layer-controls-contents, .blockbuilder-layer-controls-rows {\n display: none !important;\n }\n\n .blockbuilder-options-header .text-right .icon-delete, .blockbuilder-options-header .text-right .icon-duplicate {\n display: none !important;\n }\n `;\n};\n\nexport const hideUnlayerBodyMenuItem = () => {\n return `\n .nav-item.tab-body {\n display: none !important;\n }\n `;\n};\n\nexport const hideMobileTabletPreview = () => `\n [data-key=\"preview-tablet\"],\n [data-key=\"resolution\"],\n [data-key=\"dark-mode\"],\n [data-key=\"preview-desktop\"],\n [data-key=\"preview-mobile\"] {\n display: none !important;\n }\n`;\nexport const hideUnlayerTools = () => {\n return `\n .blockbuilder-content-tools {\n display: none !important;\n }\n \n .unlayer-custom-empty-tool-state {\n display: flex;\n margin-top: 150px;\n flex-direction: column;\n justify-content: center;\n }\n \n .unlayer-custom-empty-tool-state-icon {\n text-align: center;\n margin-bottom: 12px;\n }\n \n .unlayer-custom-empty-tool-state-icon svg{\n color: #606162;\n }\n \n .unlayer-custom-empty-tool-state-text {\n text-align: center;\n font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n color: #606162;\n line-height: 13px;\n }\n `;\n};\n\nexport const createUnlayerEditor = (\n container: HTMLDivElement,\n {\n customCSS,\n customJS,\n eSignFieldTypes,\n eSignRecipients,\n enableHTMLEditing,\n enableHTMLEditingReadonly,\n hideAllTools,\n hideBodyMenuItem,\n hideContentControls,\n latest,\n mergeTags,\n noCoreTools,\n tools,\n units,\n }: CreateUnlayerEditorProps\n): Unlayer => {\n const customScripts = [\n editorCoreScript,\n editorCoreTools,\n 'window.dteStore.sendData(\"--core-loaded\")',\n ...unlayerCustomToolsGetRegisterUrls(tools),\n unlayerCustomToolMetaData(tools),\n ...(customJS ? (Array.isArray(customJS) ? customJS : [customJS]) : []),\n hideAllTools ? unlayerCustomEmptyToolState() : '',\n 'window.dteStore.sendData(\"--data-loaded\")',\n ].filter(js => !!js?.trim());\n const customStyles = [\n editorCoreStyles,\n ...(customCSS ? (Array.isArray(customCSS) ? customCSS : [customCSS]) : []),\n /*\n * @TODO this is workaround for hiding all tools from unlayer sidebar.\n * Will be better to use unlayer functionality for this but it is not implemented yet\n */\n hideMobileTabletPreview(),\n hideAllTools ? hideUnlayerTools() : '',\n hideContentControls ? hideUnlayerContentsControls() : '',\n hideBodyMenuItem ? hideUnlayerBodyMenuItem() : '',\n ].filter(css => !!css?.trim());\n\n /**\n * Unlayer supports only passing id of container, but when we use shadowDOM (MFE),\n * getElementById can't find element in it\n * so making this dirty hack to let unlayer find container in DOM\n */\n const id = container.id;\n const currentFind = document.getElementById;\n document.getElementById = function (elementId: string) {\n if (id === elementId) {\n return container;\n }\n\n return currentFind.call(document, id);\n };\n\n const acv = constGenericsEditor.adminConfigProperty;\n\n const eSignTypeMapping = (eSignFieldTypes ?? []).map(key => ({\n label: key,\n value: key.charAt(0).toLowerCase() + key.replace(/ /g, '').slice(1),\n }));\n\n const unitsConfig = (units ?? []).reduce((out, unit) => {\n out[`custom#${unit.generic}:unit:${unit.id}`] = {\n data: {\n [acv]: unit.values[acv],\n },\n properties: {\n [constGenericsEditor.userConfigProperty]: {\n editor: {\n data: { [acv]: unit.values[acv] },\n },\n },\n [constGenericsEditor.infoDataProperty]: {\n editor: {\n data: { title: unit.title },\n },\n },\n },\n };\n return out;\n }, {} as Record<string, any>);\n\n const eSignComponentRecipients = {\n properties: {\n eSignRecipient: {\n editor: {\n data: {\n options: eSignRecipients?.map(item => ({\n label: item.displayName,\n value: item.name,\n })),\n },\n },\n },\n eSignFieldType: {\n editor: {\n data: {\n options: eSignTypeMapping,\n },\n },\n },\n },\n };\n\n const result = (window as any).unlayer.createEditor({\n displayMode: 'web',\n devices: ['desktop'],\n features: {\n preview: true,\n userUploads: false,\n stockImages: false,\n },\n mergeTags: mergeTags?.reduce((out, tag) => {\n out[tag.id] = { name: tag.name, value: tag.propertyPath };\n\n return out;\n }, {} as Record<string, { name: string; value: string }>),\n projectId: 5713,\n version: latest ? undefined : versions.unlayer,\n appearance: {\n theme: 'classic_light',\n },\n tools: {\n 'button': { enabled: false },\n 'html': {\n enabled: enableHTMLEditing,\n properties: {\n html: {\n editor: {\n widgetParams: {\n codeMirrorOptions: {\n readOnly: enableHTMLEditingReadonly,\n },\n },\n },\n },\n },\n },\n 'menu': { enabled: false },\n 'form': { enabled: false },\n ...(noCoreTools\n ? {\n columns: { enabled: false },\n text: { enabled: false },\n heading: { enabled: false },\n divider: { enabled: false },\n image: { enabled: false },\n }\n : {}),\n ...unitsConfig,\n 'custom#e-sign': eSignComponentRecipients,\n },\n editor: {\n autoSelectOnDrop: true,\n },\n customJS: customScripts,\n customCSS: customStyles,\n id,\n fonts: {\n showDefaultFonts: false,\n customFonts: unlayerSupportedFonts,\n },\n tabs: {\n content: {},\n body: {},\n blocks: { enabled: false },\n },\n });\n\n document.getElementById = currentFind;\n return result;\n};\n"],"names":["editorCoreScript","editorCoreStyles","editorCoreTools","constGenericsEditor","unlayerSupportedFonts","unlayerCustomEmptyToolState","unlayerCustomToolMetaData","unlayerCustomToolsGetRegisterUrls","DesignUpdatedEventType","versions","unlayer","schema","handlePreselectTool","preselectToolSlug","hideUnlayerContentsControls","hideUnlayerBodyMenuItem","hideMobileTabletPreview","hideUnlayerTools","createUnlayerEditor","container","customCSS","customJS","eSignFieldTypes","eSignRecipients","enableHTMLEditing","enableHTMLEditingReadonly","hideAllTools","hideBodyMenuItem","hideContentControls","latest","mergeTags","noCoreTools","tools","units","customScripts","Array","isArray","filter","js","trim","customStyles","css","id","currentFind","document","getElementById","elementId","call","acv","adminConfigProperty","eSignTypeMapping","map","key","label","value","charAt","toLowerCase","replace","slice","unitsConfig","reduce","out","unit","generic","data","values","properties","userConfigProperty","editor","infoDataProperty","title","eSignComponentRecipients","eSignRecipient","options","item","displayName","name","eSignFieldType","result","window","createEditor","displayMode","devices","features","preview","userUploads","stockImages","tag","propertyPath","projectId","version","undefined","appearance","theme","enabled","html","widgetParams","codeMirrorOptions","readOnly","columns","text","heading","divider","image","autoSelectOnDrop","fonts","showDefaultFonts","customFonts","tabs","content","body","blocks"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/unlayer.tsx"],"sourcesContent":["import { editorCoreScript, editorCoreStyles, editorCoreTools } from './editor-core';\nimport { constGenericsEditor } from './shared/const';\nimport { unlayerSupportedFonts } from './shared/fonts';\nimport {\n unlayerCustomEmptyToolState,\n unlayerCustomToolMetaData,\n unlayerCustomToolsGetRegisterUrls,\n} from './tools';\nimport { CreateUnlayerEditorProps } from './unlayer-interface';\n\nexport interface UnlayerExport {\n html: string;\n chunks: any;\n design: any;\n}\n\nexport interface Unlayer {\n addEventListener(event: string, cb: (arg: any) => void): void;\n removeEventListener(event: string, cb: (arg: any) => void): void;\n registerCallback(type: string, cb: (...args: any[]) => void): void;\n unregisterCallback(type: string, cb: (...args: any[]) => void): void;\n registerProvider(type: string, cb: (...args: any[]) => void): void;\n unregisterProvider(type: string, cb: (...args: any[]) => void): void;\n loadDesign(design: any): void;\n saveDesign(callback: (design: any) => void): void;\n exportHtml(callback: (data: UnlayerExport) => void): void;\n setMergeTags(tags: any): void;\n createViewer(opts: { render: (values: any) => string }): any;\n registerTool(tool: any): void;\n setBodyValues(values: any): void;\n}\n\nexport enum DesignUpdatedEventType {\n ContentAdded = 'content:added',\n ContentMoved = 'content:moved',\n ContentRemoved = 'content:removed',\n ContentModified = 'content:modified',\n RowAdded = 'row:added',\n RowMoved = 'row:moved',\n RowRemoved = 'row:removed',\n RowModified = 'row:modified',\n ColumnAdded = 'column:added',\n ColumnRemoved = 'column:removed',\n ColumnModified = 'column:modified',\n BodyModified = 'body:modified',\n}\n\nexport interface EventDesignUpdated {\n type: DesignUpdatedEventType;\n item: {\n type: string;\n slug?: string;\n values: any;\n };\n}\n\n/**\n * !!! IMPORTANT !!!\n * do not forget to update schema version when updating unlayer version\n * it is important for templates export and should be in sync\n * to know correct schema version, open unlayer editor and check output design ('schema' property)\n */\nexport const versions = {\n unlayer: '1.339.0',\n schema: 22,\n};\n\nexport const handlePreselectTool = (preselectToolSlug: string) => {\n return `\n const element = document.querySelector('.u_content_custom_${preselectToolSlug}');\n if (element) {\n element.click();\n }\n `;\n};\n\nexport const hideUnlayerContentsControls = () => {\n return `\n .blockbuilder-layer-controls-contents, .blockbuilder-layer-controls-rows {\n display: none !important;\n }\n\n .blockbuilder-options-header .text-right .icon-delete, .blockbuilder-options-header .text-right .icon-duplicate {\n display: none !important;\n }\n `;\n};\n\nexport const hideUnlayerBodyMenuItem = () => {\n return `\n .nav-item.tab-body {\n display: none !important;\n }\n `;\n};\n\nconst injectEditorCoreStyles = () => {\n const cssText = editorCoreStyles?.trim();\n\n if (!cssText) {\n return '';\n }\n\n return `\n (function () {\n var css = ${JSON.stringify(cssText)};\n var id = 'dte-unlayer-core-styles';\n if (document.getElementById(id)) {\n return;\n }\n var style = document.createElement('style');\n style.id = id;\n style.type = 'text/css';\n style.appendChild(document.createTextNode(css));\n document.head.appendChild(style);\n })();\n `;\n};\n\nexport const hideMobileTabletPreview = () => `\n [data-key=\"preview-tablet\"],\n [data-key=\"resolution\"],\n [data-key=\"dark-mode\"],\n [data-key=\"preview-desktop\"],\n [data-key=\"preview-mobile\"] {\n display: none !important;\n }\n`;\nexport const hideUnlayerTools = () => {\n return `\n .blockbuilder-content-tools {\n display: none !important;\n }\n \n .unlayer-custom-empty-tool-state {\n display: flex;\n margin-top: 150px;\n flex-direction: column;\n justify-content: center;\n }\n \n .unlayer-custom-empty-tool-state-icon {\n text-align: center;\n margin-bottom: 12px;\n }\n \n .unlayer-custom-empty-tool-state-icon svg{\n color: #606162;\n }\n \n .unlayer-custom-empty-tool-state-text {\n text-align: center;\n font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n color: #606162;\n line-height: 13px;\n }\n `;\n};\n\nexport const createUnlayerEditor = (\n container: HTMLDivElement,\n {\n customCSS,\n customJS,\n eSignFieldTypes,\n eSignRecipients,\n enableHTMLEditing,\n enableHTMLEditingReadonly,\n hideAllTools,\n hideBodyMenuItem,\n hideContentControls,\n latest,\n mergeTags,\n noCoreTools,\n tools,\n units,\n }: CreateUnlayerEditorProps,\n): Unlayer => {\n const customScripts = [\n editorCoreScript,\n editorCoreTools,\n injectEditorCoreStyles(),\n 'window.dteStore.sendData(\"--core-loaded\")',\n ...unlayerCustomToolsGetRegisterUrls(tools),\n unlayerCustomToolMetaData(tools),\n ...(customJS ? (Array.isArray(customJS) ? customJS : [customJS]) : []),\n hideAllTools ? unlayerCustomEmptyToolState() : '',\n 'window.dteStore.sendData(\"--data-loaded\")',\n ].filter(js => !!js?.trim());\n const customStyles = [\n editorCoreStyles,\n ...(customCSS ? (Array.isArray(customCSS) ? customCSS : [customCSS]) : []),\n /*\n * @TODO this is workaround for hiding all tools from unlayer sidebar.\n * Will be better to use unlayer functionality for this but it is not implemented yet\n */\n hideMobileTabletPreview(),\n hideAllTools ? hideUnlayerTools() : '',\n hideContentControls ? hideUnlayerContentsControls() : '',\n hideBodyMenuItem ? hideUnlayerBodyMenuItem() : '',\n ].filter(css => !!css?.trim());\n\n /**\n * Unlayer supports only passing id of container, but when we use shadowDOM (MFE),\n * getElementById can't find element in it\n * so making this dirty hack to let unlayer find container in DOM\n */\n const id = container.id;\n const currentFind = document.getElementById;\n document.getElementById = function (elementId: string) {\n if (id === elementId) {\n return container;\n }\n\n return currentFind.call(document, id);\n };\n\n const acv = constGenericsEditor.adminConfigProperty;\n\n const eSignTypeMapping = (eSignFieldTypes ?? []).map(key => ({\n label: key,\n value: key.charAt(0).toLowerCase() + key.replace(/ /g, '').slice(1),\n }));\n\n const unitsConfig = (units ?? []).reduce(\n (out, unit) => {\n out[`custom#${unit.generic}:unit:${unit.id}`] = {\n data: {\n [acv]: unit.values[acv],\n },\n properties: {\n [constGenericsEditor.userConfigProperty]: {\n editor: {\n data: { [acv]: unit.values[acv] },\n },\n },\n [constGenericsEditor.infoDataProperty]: {\n editor: {\n data: { title: unit.title },\n },\n },\n },\n };\n return out;\n },\n {} as Record<string, any>,\n );\n\n const eSignComponentRecipients = {\n properties: {\n eSignRecipient: {\n editor: {\n data: {\n options: eSignRecipients?.map(item => ({\n label: item.displayName,\n value: item.name,\n })),\n },\n },\n },\n eSignFieldType: {\n editor: {\n data: {\n options: eSignTypeMapping,\n },\n },\n },\n },\n };\n\n const result = (window as any).unlayer.createEditor({\n displayMode: 'web',\n devices: ['desktop'],\n features: {\n preview: true,\n userUploads: false,\n stockImages: false,\n textEditor: {\n tables: true,\n },\n },\n mergeTags: mergeTags?.reduce(\n (out, tag) => {\n out[tag.id] = { name: tag.name, value: tag.propertyPath };\n\n return out;\n },\n {} as Record<string, { name: string; value: string }>,\n ),\n projectId: 5713,\n version: latest ? undefined : versions.unlayer,\n appearance: {\n theme: 'classic_light',\n },\n tools: {\n 'carousel': { enabled: false },\n 'button': { enabled: false },\n 'html': {\n enabled: enableHTMLEditing,\n properties: {\n html: {\n editor: {\n widgetParams: {\n codeMirrorOptions: {\n readOnly: enableHTMLEditingReadonly,\n },\n },\n },\n },\n },\n },\n 'table': {\n enabled: true,\n },\n 'menu': { enabled: false },\n 'form': { enabled: false },\n ...(noCoreTools\n ? {\n columns: { enabled: false },\n text: { enabled: false },\n heading: { enabled: false },\n divider: { enabled: false },\n image: { enabled: false },\n }\n : {}),\n ...unitsConfig,\n 'custom#e-sign': eSignComponentRecipients,\n },\n editor: {\n autoSelectOnDrop: true,\n },\n customJS: customScripts,\n customCSS: customStyles,\n id,\n fonts: {\n showDefaultFonts: false,\n customFonts: unlayerSupportedFonts,\n },\n tabs: {\n content: {},\n body: {},\n blocks: { enabled: false },\n },\n });\n\n document.getElementById = currentFind;\n return result;\n};\n"],"names":["editorCoreScript","editorCoreStyles","editorCoreTools","constGenericsEditor","unlayerSupportedFonts","unlayerCustomEmptyToolState","unlayerCustomToolMetaData","unlayerCustomToolsGetRegisterUrls","DesignUpdatedEventType","versions","unlayer","schema","handlePreselectTool","preselectToolSlug","hideUnlayerContentsControls","hideUnlayerBodyMenuItem","injectEditorCoreStyles","cssText","trim","JSON","stringify","hideMobileTabletPreview","hideUnlayerTools","createUnlayerEditor","container","customCSS","customJS","eSignFieldTypes","eSignRecipients","enableHTMLEditing","enableHTMLEditingReadonly","hideAllTools","hideBodyMenuItem","hideContentControls","latest","mergeTags","noCoreTools","tools","units","customScripts","Array","isArray","filter","js","customStyles","css","id","currentFind","document","getElementById","elementId","call","acv","adminConfigProperty","eSignTypeMapping","map","key","label","value","charAt","toLowerCase","replace","slice","unitsConfig","reduce","out","unit","generic","data","values","properties","userConfigProperty","editor","infoDataProperty","title","eSignComponentRecipients","eSignRecipient","options","item","displayName","name","eSignFieldType","result","window","createEditor","displayMode","devices","features","preview","userUploads","stockImages","textEditor","tables","tag","propertyPath","projectId","version","undefined","appearance","theme","enabled","html","widgetParams","codeMirrorOptions","readOnly","columns","text","heading","divider","image","autoSelectOnDrop","fonts","showDefaultFonts","customFonts","tabs","content","body","blocks"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/dte-unlayer",
3
- "version": "0.91.0",
3
+ "version": "0.93.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",