@servicetitan/dte-unlayer 0.114.0 → 0.116.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,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAOhB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAgB,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,OAAO,CAAC,IAAI,IAAI,CAAC;IAEjB,QAAQ,CAAC,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAE/C,cAAc,CAAC,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAE/C,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/C,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,aAAa,2DAAwC,CAAC;AAEnE,eAAO,MAAM,aAAa,2GAoFxB,CAAC"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAOhB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAgB,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,OAAO,CAAC,IAAI,IAAI,CAAC;IAEjB,QAAQ,CAAC,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAE/C,cAAc,CAAC,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAE/C,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/C,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,aAAa,2DAAwC,CAAC;AAEnE,eAAO,MAAM,aAAa,2GA0FxB,CAAC"}
package/dist/editor.js CHANGED
@@ -85,6 +85,13 @@ export const UnlayerEditor = /*#__PURE__*/ forwardRef((props, ref)=>{
85
85
  props.opts.onFormSelect,
86
86
  store
87
87
  ]);
88
+ useEffect(()=>{
89
+ store.setOnCalcFieldOpen(props.opts.onCalcFieldOpen);
90
+ return ()=>store.setOnCalcFieldOpen();
91
+ }, [
92
+ props.opts.onCalcFieldOpen,
93
+ store
94
+ ]);
88
95
  const { minHeight = 800, style = {} } = props;
89
96
  var _props_id;
90
97
  return /*#__PURE__*/ _jsxs("div", {
@@ -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 { DisplayConditionModal } from './display-conditions/DisplayConditionModal';\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 useEffect(() => {\n store.setOnFormSelect(props.opts.onFormSelect);\n\n return () => store.setOnFormSelect();\n }, [props.opts.onFormSelect, 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 {props.opts.displayConditions && <DisplayConditionModal schema={props.opts.schema} />}\n </div>\n );\n});\n"],"names":["forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","DisplayConditionModal","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","setOnFormSelect","onFormSelect","minHeight","style","div","display","p","className","id","displayConditions","schema"],"mappings":"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"}
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 { DisplayConditionModal } from './display-conditions/DisplayConditionModal';\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 useEffect(() => {\n store.setOnFormSelect(props.opts.onFormSelect);\n\n return () => store.setOnFormSelect();\n }, [props.opts.onFormSelect, store]);\n\n useEffect(() => {\n store.setOnCalcFieldOpen(props.opts.onCalcFieldOpen);\n\n return () => store.setOnCalcFieldOpen();\n }, [props.opts.onCalcFieldOpen, 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 {props.opts.displayConditions && <DisplayConditionModal schema={props.opts.schema} />}\n </div>\n );\n});\n"],"names":["forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","DisplayConditionModal","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","setOnFormSelect","onFormSelect","setOnCalcFieldOpen","onCalcFieldOpen","minHeight","style","div","display","p","className","id","displayConditions","schema"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { FormInfo } from './forms';
2
1
  import { SchemaObject } from './schema';
3
2
  export declare const constGenericsEditor: {
4
3
  infoDataProperty: string;
@@ -29,7 +28,6 @@ export interface UnlayerEventConfig {
29
28
  isSnapshotMode?: boolean;
30
29
  units?: UnlayerEditorUnit[];
31
30
  holidays?: string[];
32
- forms?: FormInfo[];
33
31
  }
34
32
  export interface UnlayerEventRegister {
35
33
  units?: UnlayerEditorUnit[];
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/shared/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAC;AAEF,MAAM,WAAW,+BAA+B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACjC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,+BAA+B,EAAE,CAAC;IACpD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/shared/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAC;AAEF,MAAM,WAAW,+BAA+B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACjC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,+BAA+B,EAAE,CAAC;IACpD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/const.ts"],"sourcesContent":["import { FormInfo } from './forms';\nimport { SchemaObject } from './schema';\n\nexport const constGenericsEditor = {\n infoDataProperty: '_info',\n adminConfigProperty: 'adminConfig',\n userConfigProperty: 'config',\n};\n\nexport interface UnlayerEditorESignRecipientInfo {\n id: number;\n name: string;\n displayName: string;\n}\n\nexport interface UnlayerEditorUnit {\n id: string;\n generic: string;\n title: string;\n values: any;\n}\n\nexport interface UnlayerEditorTwin {\n tool: string;\n title: string;\n values: any;\n}\n\nexport interface UnlayerEventConfig {\n dummyData?: any;\n schema?: SchemaObject;\n generics?: true | string[];\n genericConfigMode?: boolean;\n isSnapshotMode?: boolean;\n units?: UnlayerEditorUnit[];\n holidays?: string[];\n forms?: FormInfo[];\n}\n\nexport interface UnlayerEventRegister {\n units?: UnlayerEditorUnit[];\n eSignRecipients?: UnlayerEditorESignRecipientInfo[];\n eSignFieldTypes?: string[];\n customTools?: {\n key: string;\n title?: string;\n }[];\n toolTwins?: UnlayerEditorTwin[];\n}\n\nexport interface UnlayerToolMetaData {\n key: string;\n description?: string;\n}\n"],"names":["constGenericsEditor","infoDataProperty","adminConfigProperty","userConfigProperty"],"mappings":"AAGA,OAAO,MAAMA,sBAAsB;IAC/BC,kBAAkB;IAClBC,qBAAqB;IACrBC,oBAAoB;AACxB,EAAE"}
1
+ {"version":3,"sources":["../../src/shared/const.ts"],"sourcesContent":["import { SchemaObject } from './schema';\n\nexport const constGenericsEditor = {\n infoDataProperty: '_info',\n adminConfigProperty: 'adminConfig',\n userConfigProperty: 'config',\n};\n\nexport interface UnlayerEditorESignRecipientInfo {\n id: number;\n name: string;\n displayName: string;\n}\n\nexport interface UnlayerEditorUnit {\n id: string;\n generic: string;\n title: string;\n values: any;\n}\n\nexport interface UnlayerEditorTwin {\n tool: string;\n title: string;\n values: any;\n}\n\nexport interface UnlayerEventConfig {\n dummyData?: any;\n schema?: SchemaObject;\n generics?: true | string[];\n genericConfigMode?: boolean;\n isSnapshotMode?: boolean;\n units?: UnlayerEditorUnit[];\n holidays?: string[];\n}\n\nexport interface UnlayerEventRegister {\n units?: UnlayerEditorUnit[];\n eSignRecipients?: UnlayerEditorESignRecipientInfo[];\n eSignFieldTypes?: string[];\n customTools?: {\n key: string;\n title?: string;\n }[];\n toolTwins?: UnlayerEditorTwin[];\n}\n\nexport interface UnlayerToolMetaData {\n key: string;\n description?: string;\n}\n"],"names":["constGenericsEditor","infoDataProperty","adminConfigProperty","userConfigProperty"],"mappings":"AAEA,OAAO,MAAMA,sBAAsB;IAC/BC,kBAAkB;IAClBC,qBAAqB;IACrBC,oBAAoB;AACxB,EAAE"}
@@ -1,4 +1,10 @@
1
1
  export declare const MAX_DATE_CALC_DAYS = 365;
2
+ /**
3
+ * Fallback US federal holidays used when the store config does not provide a
4
+ * holidays list. Keep in sync with any similar inline arrays elsewhere (e.g.
5
+ * components/scripts/comps/calculated-field.ts).
6
+ */
7
+ export declare const DEFAULT_HOLIDAYS: string[];
2
8
  export declare const DATE_RANGE_YEARS = 2;
3
9
  /**
4
10
  * Returns true if the date's year falls within [currentYear - DATE_RANGE_YEARS, currentYear + DATE_RANGE_YEARS].
@@ -1 +1 @@
1
- {"version":3,"file":"date-calc.d.ts","sourceRoot":"","sources":["../../src/shared/date-calc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAQnE;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AA4CD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CA0B/F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CACxB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,OAAO,CAAC,EAAE,eAAe,GAC1B,MAAM,CA0BR;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAKnD;AAED,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAgChD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB/D"}
1
+ {"version":3,"file":"date-calc.d.ts","sourceRoot":"","sources":["../../src/shared/date-calc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAUpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAQnE;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AA4CD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CA0B/F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CACxB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,OAAO,CAAC,EAAE,eAAe,GAC1B,MAAM,CA0BR;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAKnD;AAED,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAgChD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB/D"}
@@ -1,4 +1,19 @@
1
1
  export const MAX_DATE_CALC_DAYS = 365;
2
+ /**
3
+ * Fallback US federal holidays used when the store config does not provide a
4
+ * holidays list. Keep in sync with any similar inline arrays elsewhere (e.g.
5
+ * components/scripts/comps/calculated-field.ts).
6
+ */ export const DEFAULT_HOLIDAYS = [
7
+ '2026-01-01T00:00:00.000Z',
8
+ '2026-01-19T00:00:00.000Z',
9
+ '2026-02-16T00:00:00.000Z',
10
+ '2026-05-25T00:00:00.000Z',
11
+ '2026-07-04T00:00:00.000Z',
12
+ '2026-09-07T00:00:00.000Z',
13
+ '2026-11-26T00:00:00.000Z',
14
+ '2026-11-27T00:00:00.000Z',
15
+ '2026-12-25T00:00:00.000Z'
16
+ ];
2
17
  export const DATE_RANGE_YEARS = 2;
3
18
  /**
4
19
  * Returns true if the date's year falls within [currentYear - DATE_RANGE_YEARS, currentYear + DATE_RANGE_YEARS].
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/date-calc.ts"],"sourcesContent":["export const MAX_DATE_CALC_DAYS = 365;\n\nexport const DATE_RANGE_YEARS = 2;\n\n/**\n * Returns true if the date's year falls within [currentYear - DATE_RANGE_YEARS, currentYear + DATE_RANGE_YEARS].\n * Invalid or unparseable dates return false.\n */\nexport function isDateWithinRange(dateInput: string | Date): boolean {\n const d = typeof dateInput === 'string' ? new Date(dateInput) : dateInput;\n if (!isFinite(d.getTime())) {\n return false;\n }\n const currentYear = new Date().getUTCFullYear();\n const year = d.getUTCFullYear();\n return year >= currentYear - DATE_RANGE_YEARS && year <= currentYear + DATE_RANGE_YEARS;\n}\n\nexport interface DateCalcOptions {\n holidays?: string[];\n}\n\nfunction toDateOnly(input: string | Date): Date {\n const d = typeof input === 'string' ? new Date(input) : new Date(input.getTime());\n d.setUTCHours(0, 0, 0, 0);\n return d;\n}\n\nfunction toDateKey(d: Date): string {\n const y = d.getUTCFullYear();\n const m = String(d.getUTCMonth() + 1).padStart(2, '0');\n const day = String(d.getUTCDate()).padStart(2, '0');\n return `${y}-${m}-${day}`;\n}\n\nfunction isWeekend(d: Date): boolean {\n const day = d.getUTCDay();\n return day === 0 || day === 6;\n}\n\nfunction buildHolidaySet(holidays?: string[]): Set<string> {\n if (!holidays?.length) {\n return new Set();\n }\n const set = new Set<string>();\n for (const h of holidays) {\n const d = toDateOnly(h);\n if (!isNaN(d.getTime())) {\n set.add(toDateKey(d));\n }\n }\n return set;\n}\n\nfunction isNonBusinessDay(d: Date, holidaySet: Set<string>): boolean {\n if (isWeekend(d)) {\n return true;\n }\n if (holidaySet.size > 0 && holidaySet.has(toDateKey(d))) {\n return true;\n }\n return false;\n}\n\n/**\n * Add business days to a date, always skipping weekends and provided holidays.\n * Negative days subtracts.\n */\nexport function addDays(dateInput: string | Date, days: number, options?: DateCalcOptions): Date {\n const result = toDateOnly(dateInput);\n if (!isFinite(result.getTime())) {\n return result;\n }\n\n const intDays = Math.trunc(days);\n if (intDays === 0) {\n return result;\n }\n if (Math.abs(intDays) > MAX_DATE_CALC_DAYS) {\n return new Date(NaN);\n }\n\n const holidaySet = buildHolidaySet(options?.holidays);\n const direction = intDays > 0 ? 1 : -1;\n let remaining = Math.abs(intDays);\n\n while (remaining > 0) {\n result.setUTCDate(result.getUTCDate() + direction);\n if (!isNonBusinessDay(result, holidaySet)) {\n remaining--;\n }\n }\n\n return result;\n}\n\n/**\n * Count the number of business days between two dates, always skipping weekends and provided holidays.\n * Returns a positive number when `to` is after `from`, negative otherwise.\n */\nexport function dateDiffDays(\n from: string | Date,\n to: string | Date,\n options?: DateCalcOptions,\n): number {\n const start = toDateOnly(from);\n const end = toDateOnly(to);\n\n if (!isFinite(start.getTime()) || !isFinite(end.getTime())) {\n return 0;\n }\n\n const calendarDiff = Math.abs(end.getTime() - start.getTime()) / (24 * 60 * 60 * 1000);\n if (calendarDiff > MAX_DATE_CALC_DAYS * 2) {\n return NaN;\n }\n\n const holidaySet = buildHolidaySet(options?.holidays);\n const direction = end.getTime() >= start.getTime() ? 1 : -1;\n const cursor = new Date(start.getTime());\n let count = 0;\n\n while (toDateKey(cursor) !== toDateKey(end)) {\n cursor.setUTCDate(cursor.getUTCDate() + direction);\n if (!isNonBusinessDay(cursor, holidaySet)) {\n count++;\n }\n }\n\n return count * direction;\n}\n\n/** Format a Date to ISO date string (YYYY-MM-DD). */\nexport function formatDateResult(date: Date): string {\n if (!isFinite(date.getTime())) {\n return '';\n }\n return toDateKey(date);\n}\n\nexport const DEFAULT_DATE_FORMAT = 'MM/DD/YYYY';\n\nconst MONTH_NAMES_FULL = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nconst MONTH_NAMES_SHORT = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\n\n/**\n * Format a Date using a pattern string.\n * Supported tokens: YYYY, YY, MMMM, MMM, MM, M, DD, D.\n * All other characters are treated as literals.\n */\nexport function formatDate(date: Date, pattern?: string): string {\n if (!isFinite(date.getTime())) {\n return '';\n }\n const fmt = pattern ?? DEFAULT_DATE_FORMAT;\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const day = date.getUTCDate();\n\n return fmt\n .replace(/YYYY/g, String(year))\n .replace(/YY/g, String(year).slice(-2))\n .replace(/MMMM/g, MONTH_NAMES_FULL[month])\n .replace(/MMM/g, MONTH_NAMES_SHORT[month])\n .replace(/MM/g, String(month + 1).padStart(2, '0'))\n .replace(/\\bM\\b/g, String(month + 1))\n .replace(/DD/g, String(day).padStart(2, '0'))\n .replace(/\\bD\\b/g, String(day));\n}\n"],"names":["MAX_DATE_CALC_DAYS","DATE_RANGE_YEARS","isDateWithinRange","dateInput","d","Date","isFinite","getTime","currentYear","getUTCFullYear","year","toDateOnly","input","setUTCHours","toDateKey","y","m","String","getUTCMonth","padStart","day","getUTCDate","isWeekend","getUTCDay","buildHolidaySet","holidays","length","Set","set","h","isNaN","add","isNonBusinessDay","holidaySet","size","has","addDays","days","options","result","intDays","Math","trunc","abs","NaN","direction","remaining","setUTCDate","dateDiffDays","from","to","start","end","calendarDiff","cursor","count","formatDateResult","date","DEFAULT_DATE_FORMAT","MONTH_NAMES_FULL","MONTH_NAMES_SHORT","formatDate","pattern","fmt","month","replace","slice"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/shared/date-calc.ts"],"sourcesContent":["export const MAX_DATE_CALC_DAYS = 365;\n\n/**\n * Fallback US federal holidays used when the store config does not provide a\n * holidays list. Keep in sync with any similar inline arrays elsewhere (e.g.\n * components/scripts/comps/calculated-field.ts).\n */\nexport const DEFAULT_HOLIDAYS: string[] = [\n '2026-01-01T00:00:00.000Z',\n '2026-01-19T00:00:00.000Z',\n '2026-02-16T00:00:00.000Z',\n '2026-05-25T00:00:00.000Z',\n '2026-07-04T00:00:00.000Z',\n '2026-09-07T00:00:00.000Z',\n '2026-11-26T00:00:00.000Z',\n '2026-11-27T00:00:00.000Z',\n '2026-12-25T00:00:00.000Z',\n];\n\nexport const DATE_RANGE_YEARS = 2;\n\n/**\n * Returns true if the date's year falls within [currentYear - DATE_RANGE_YEARS, currentYear + DATE_RANGE_YEARS].\n * Invalid or unparseable dates return false.\n */\nexport function isDateWithinRange(dateInput: string | Date): boolean {\n const d = typeof dateInput === 'string' ? new Date(dateInput) : dateInput;\n if (!isFinite(d.getTime())) {\n return false;\n }\n const currentYear = new Date().getUTCFullYear();\n const year = d.getUTCFullYear();\n return year >= currentYear - DATE_RANGE_YEARS && year <= currentYear + DATE_RANGE_YEARS;\n}\n\nexport interface DateCalcOptions {\n holidays?: string[];\n}\n\nfunction toDateOnly(input: string | Date): Date {\n const d = typeof input === 'string' ? new Date(input) : new Date(input.getTime());\n d.setUTCHours(0, 0, 0, 0);\n return d;\n}\n\nfunction toDateKey(d: Date): string {\n const y = d.getUTCFullYear();\n const m = String(d.getUTCMonth() + 1).padStart(2, '0');\n const day = String(d.getUTCDate()).padStart(2, '0');\n return `${y}-${m}-${day}`;\n}\n\nfunction isWeekend(d: Date): boolean {\n const day = d.getUTCDay();\n return day === 0 || day === 6;\n}\n\nfunction buildHolidaySet(holidays?: string[]): Set<string> {\n if (!holidays?.length) {\n return new Set();\n }\n const set = new Set<string>();\n for (const h of holidays) {\n const d = toDateOnly(h);\n if (!isNaN(d.getTime())) {\n set.add(toDateKey(d));\n }\n }\n return set;\n}\n\nfunction isNonBusinessDay(d: Date, holidaySet: Set<string>): boolean {\n if (isWeekend(d)) {\n return true;\n }\n if (holidaySet.size > 0 && holidaySet.has(toDateKey(d))) {\n return true;\n }\n return false;\n}\n\n/**\n * Add business days to a date, always skipping weekends and provided holidays.\n * Negative days subtracts.\n */\nexport function addDays(dateInput: string | Date, days: number, options?: DateCalcOptions): Date {\n const result = toDateOnly(dateInput);\n if (!isFinite(result.getTime())) {\n return result;\n }\n\n const intDays = Math.trunc(days);\n if (intDays === 0) {\n return result;\n }\n if (Math.abs(intDays) > MAX_DATE_CALC_DAYS) {\n return new Date(NaN);\n }\n\n const holidaySet = buildHolidaySet(options?.holidays);\n const direction = intDays > 0 ? 1 : -1;\n let remaining = Math.abs(intDays);\n\n while (remaining > 0) {\n result.setUTCDate(result.getUTCDate() + direction);\n if (!isNonBusinessDay(result, holidaySet)) {\n remaining--;\n }\n }\n\n return result;\n}\n\n/**\n * Count the number of business days between two dates, always skipping weekends and provided holidays.\n * Returns a positive number when `to` is after `from`, negative otherwise.\n */\nexport function dateDiffDays(\n from: string | Date,\n to: string | Date,\n options?: DateCalcOptions,\n): number {\n const start = toDateOnly(from);\n const end = toDateOnly(to);\n\n if (!isFinite(start.getTime()) || !isFinite(end.getTime())) {\n return 0;\n }\n\n const calendarDiff = Math.abs(end.getTime() - start.getTime()) / (24 * 60 * 60 * 1000);\n if (calendarDiff > MAX_DATE_CALC_DAYS * 2) {\n return NaN;\n }\n\n const holidaySet = buildHolidaySet(options?.holidays);\n const direction = end.getTime() >= start.getTime() ? 1 : -1;\n const cursor = new Date(start.getTime());\n let count = 0;\n\n while (toDateKey(cursor) !== toDateKey(end)) {\n cursor.setUTCDate(cursor.getUTCDate() + direction);\n if (!isNonBusinessDay(cursor, holidaySet)) {\n count++;\n }\n }\n\n return count * direction;\n}\n\n/** Format a Date to ISO date string (YYYY-MM-DD). */\nexport function formatDateResult(date: Date): string {\n if (!isFinite(date.getTime())) {\n return '';\n }\n return toDateKey(date);\n}\n\nexport const DEFAULT_DATE_FORMAT = 'MM/DD/YYYY';\n\nconst MONTH_NAMES_FULL = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nconst MONTH_NAMES_SHORT = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\n\n/**\n * Format a Date using a pattern string.\n * Supported tokens: YYYY, YY, MMMM, MMM, MM, M, DD, D.\n * All other characters are treated as literals.\n */\nexport function formatDate(date: Date, pattern?: string): string {\n if (!isFinite(date.getTime())) {\n return '';\n }\n const fmt = pattern ?? DEFAULT_DATE_FORMAT;\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const day = date.getUTCDate();\n\n return fmt\n .replace(/YYYY/g, String(year))\n .replace(/YY/g, String(year).slice(-2))\n .replace(/MMMM/g, MONTH_NAMES_FULL[month])\n .replace(/MMM/g, MONTH_NAMES_SHORT[month])\n .replace(/MM/g, String(month + 1).padStart(2, '0'))\n .replace(/\\bM\\b/g, String(month + 1))\n .replace(/DD/g, String(day).padStart(2, '0'))\n .replace(/\\bD\\b/g, String(day));\n}\n"],"names":["MAX_DATE_CALC_DAYS","DEFAULT_HOLIDAYS","DATE_RANGE_YEARS","isDateWithinRange","dateInput","d","Date","isFinite","getTime","currentYear","getUTCFullYear","year","toDateOnly","input","setUTCHours","toDateKey","y","m","String","getUTCMonth","padStart","day","getUTCDate","isWeekend","getUTCDay","buildHolidaySet","holidays","length","Set","set","h","isNaN","add","isNonBusinessDay","holidaySet","size","has","addDays","days","options","result","intDays","Math","trunc","abs","NaN","direction","remaining","setUTCDate","dateDiffDays","from","to","start","end","calendarDiff","cursor","count","formatDateResult","date","DEFAULT_DATE_FORMAT","MONTH_NAMES_FULL","MONTH_NAMES_SHORT","formatDate","pattern","fmt","month","replace","slice"],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { UnlayerEditorTwin } from './shared/const';
2
- import { FormFieldInfo } from './shared/forms';
2
+ import { FormFieldInfo, FormInfo } from './shared/forms';
3
3
  import { CreateUnlayerEditorProps, UnlayerDesignFormat, UnlayerRef } from './unlayer-interface';
4
4
  export interface UnlayerDesignChangeInfo {
5
5
  isToolsListChanged: boolean;
@@ -18,6 +18,7 @@ export declare class UnlayerStore {
18
18
  private onImageCB?;
19
19
  private onErrorCB?;
20
20
  private onFormSelectCB?;
21
+ private onCalcFieldOpenCB?;
21
22
  constructor(props: CreateUnlayerEditorProps);
22
23
  init: (container: HTMLDivElement) => Promise<void>;
23
24
  destroy: () => void;
@@ -30,6 +31,8 @@ export declare class UnlayerStore {
30
31
  setOnError: (onError?: UnlayerStore["onErrorCB"]) => void;
31
32
  setOnMessage: (onMessage?: UnlayerStore["onMessageCB"]) => void;
32
33
  setOnFormSelect: (onFormSelect?: UnlayerStore["onFormSelectCB"]) => void;
34
+ setOnCalcFieldOpen: (onCalcFieldOpen?: UnlayerStore["onCalcFieldOpenCB"]) => void;
35
+ sendFormList: (forms: FormInfo[]) => void;
33
36
  sendFormFields: (formId: number, fields: FormFieldInfo[]) => void;
34
37
  private onDesignLoaded;
35
38
  private onDesignUpdated;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA4C,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAS/C,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIhG,MAAM,WAAW,uBAAuB;IACpC,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAmBD,qBAAa,YAAY;IAgBT,QAAQ,CAAC,KAAK,EAAE,wBAAwB;IAfpD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAoB;IACnC,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,WAAW,CAAC,CAAoC;IACxD,OAAO,CAAC,UAAU,CAAC,CAA0C;IAC7D,OAAO,CAAC,gBAAgB,CAAC,CAAwC;IACjE,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAC,CAA2C;IAC7D,OAAO,CAAC,SAAS,CAAC,CAAgD;IAClE,OAAO,CAAC,cAAc,CAAC,CAA2B;gBAE7B,KAAK,EAAE,wBAAwB;IAqBpD,IAAI,GAAU,WAAW,cAAc,mBAiBrC;IAEF,OAAO,aAUL;IAEF,OAAO,GAAI,MAAM,iBAAiB,UAGhC;IAEF,SAAS,GAAI,SAAS,mBAAmB,UAUvC;IAEF,WAAW,GAAI,WAAW,YAAY,CAAC,YAAY,CAAC,UAElD;IAEF,iBAAiB,GAAI,iBAAiB,YAAY,CAAC,kBAAkB,CAAC,UAEpE;IAEF,UAAU,GAAI,UAAU,YAAY,CAAC,WAAW,CAAC,UAE/C;IAEF,UAAU,GAAI,UAAU,YAAY,CAAC,WAAW,CAAC,UAE/C;IAEF,UAAU,GAAI,UAAU,YAAY,CAAC,WAAW,CAAC,UAE/C;IAEF,YAAY,GAAI,YAAY,YAAY,CAAC,aAAa,CAAC,UAErD;IAEF,eAAe,GAAI,eAAe,YAAY,CAAC,gBAAgB,CAAC,UAE9D;IAEF,cAAc,GAAI,QAAQ,MAAM,EAAE,QAAQ,aAAa,EAAE,UAEvD;IAEF,OAAO,CAAC,cAAc,CAQpB;IAEF,OAAO,CAAC,eAAe,CAmCrB;IAEF,OAAO,CAAC,aAAa,CAgEnB;IAEF,OAAO,CAAC,WAAW,CAUjB;IAEF,OAAO,CAAC,WAAW,CAqCjB;IAEF,OAAO,CAAC,aAAa,CA+CnB;CACL"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA4C,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AASzD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIhG,MAAM,WAAW,uBAAuB;IACpC,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAmBD,qBAAa,YAAY;IAiBT,QAAQ,CAAC,KAAK,EAAE,wBAAwB;IAhBpD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAoB;IACnC,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,WAAW,CAAC,CAAoC;IACxD,OAAO,CAAC,UAAU,CAAC,CAA0C;IAC7D,OAAO,CAAC,gBAAgB,CAAC,CAAwC;IACjE,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAC,CAA2C;IAC7D,OAAO,CAAC,SAAS,CAAC,CAAgD;IAClE,OAAO,CAAC,cAAc,CAAC,CAA2B;IAClD,OAAO,CAAC,iBAAiB,CAAC,CAAkC;gBAEvC,KAAK,EAAE,wBAAwB;IAwBpD,IAAI,GAAU,WAAW,cAAc,mBAiBrC;IAEF,OAAO,aAUL;IAEF,OAAO,GAAI,MAAM,iBAAiB,UAGhC;IAEF,SAAS,GAAI,SAAS,mBAAmB,UAUvC;IAEF,WAAW,GAAI,WAAW,YAAY,CAAC,YAAY,CAAC,UAElD;IAEF,iBAAiB,GAAI,iBAAiB,YAAY,CAAC,kBAAkB,CAAC,UAEpE;IAEF,UAAU,GAAI,UAAU,YAAY,CAAC,WAAW,CAAC,UAE/C;IAEF,UAAU,GAAI,UAAU,YAAY,CAAC,WAAW,CAAC,UAE/C;IAEF,UAAU,GAAI,UAAU,YAAY,CAAC,WAAW,CAAC,UAE/C;IAEF,YAAY,GAAI,YAAY,YAAY,CAAC,aAAa,CAAC,UAErD;IAEF,eAAe,GAAI,eAAe,YAAY,CAAC,gBAAgB,CAAC,UAE9D;IAEF,kBAAkB,GAAI,kBAAkB,YAAY,CAAC,mBAAmB,CAAC,UAEvE;IAEF,YAAY,GAAI,OAAO,QAAQ,EAAE,UAE/B;IAEF,cAAc,GAAI,QAAQ,MAAM,EAAE,QAAQ,aAAa,EAAE,UAEvD;IAEF,OAAO,CAAC,cAAc,CAQpB;IAEF,OAAO,CAAC,eAAe,CAmCrB;IAEF,OAAO,CAAC,aAAa,CAiEnB;IAEF,OAAO,CAAC,WAAW,CAUjB;IAEF,OAAO,CAAC,WAAW,CAqCjB;IAEF,OAAO,CAAC,aAAa,CA+CnB;CACL"}
package/dist/store.js CHANGED
@@ -47,6 +47,7 @@ export class UnlayerStore {
47
47
  _define_property(this, "onImageCB", void 0);
48
48
  _define_property(this, "onErrorCB", void 0);
49
49
  _define_property(this, "onFormSelectCB", void 0);
50
+ _define_property(this, "onCalcFieldOpenCB", void 0);
50
51
  _define_property(this, "init", void 0);
51
52
  _define_property(this, "destroy", void 0);
52
53
  _define_property(this, "addTwin", void 0);
@@ -58,6 +59,8 @@ export class UnlayerStore {
58
59
  _define_property(this, "setOnError", void 0);
59
60
  _define_property(this, "setOnMessage", void 0);
60
61
  _define_property(this, "setOnFormSelect", void 0);
62
+ _define_property(this, "setOnCalcFieldOpen", void 0);
63
+ _define_property(this, "sendFormList", void 0);
61
64
  _define_property(this, "sendFormFields", void 0);
62
65
  _define_property(this, "onDesignLoaded", void 0);
63
66
  _define_property(this, "onDesignUpdated", void 0);
@@ -126,6 +129,14 @@ export class UnlayerStore {
126
129
  this.setOnFormSelect = (onFormSelect)=>{
127
130
  this.onFormSelectCB = onFormSelect;
128
131
  };
132
+ this.setOnCalcFieldOpen = (onCalcFieldOpen)=>{
133
+ this.onCalcFieldOpenCB = onCalcFieldOpen;
134
+ };
135
+ this.sendFormList = (forms)=>{
136
+ this.sendMessage('--form-list', {
137
+ forms
138
+ });
139
+ };
129
140
  this.sendFormFields = (formId, fields)=>{
130
141
  this.sendMessage('--form-fields', {
131
142
  formId,
@@ -197,13 +208,16 @@ export class UnlayerStore {
197
208
  generics: this.props.generics,
198
209
  genericConfigMode: this.props.genericConfigMode,
199
210
  isSnapshotMode: this.props.isSnapshotMode,
200
- holidays: this.props.holidays,
201
- forms: this.props.forms
211
+ holidays: this.props.holidays
202
212
  };
203
213
  this.sendMessage('--config', JSON.parse(JSON.stringify(configData)));
204
214
  } else if (type === '--form-select') {
205
215
  var _this_onFormSelectCB, _this2;
206
216
  (_this_onFormSelectCB = (_this2 = this).onFormSelectCB) === null || _this_onFormSelectCB === void 0 ? void 0 : _this_onFormSelectCB.call(_this2, data === null || data === void 0 ? void 0 : data.formId);
217
+ } else if (type === '--calc-field-open') {
218
+ var _this_onCalcFieldOpenCB, _this3;
219
+ var _data_usedFormIds;
220
+ (_this_onCalcFieldOpenCB = (_this3 = this).onCalcFieldOpenCB) === null || _this_onCalcFieldOpenCB === void 0 ? void 0 : _this_onCalcFieldOpenCB.call(_this3, (_data_usedFormIds = data === null || data === void 0 ? void 0 : data.usedFormIds) !== null && _data_usedFormIds !== void 0 ? _data_usedFormIds : []);
207
221
  } else if (type === '--data-loaded') {
208
222
  var _this_props_units;
209
223
  const data = {
@@ -355,6 +369,9 @@ export class UnlayerStore {
355
369
  cb(data);
356
370
  });
357
371
  },
372
+ sendFormList: (forms)=>{
373
+ this.sendFormList(forms);
374
+ },
358
375
  sendFormFields: (formId, fields)=>{
359
376
  this.sendFormFields(formId, fields);
360
377
  }
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/store.ts"],"sourcesContent":["import { loadScript } from './loadScript';\nimport { defaultImageValidation } from './shared/configs';\nimport { UnlayerEditorTwin, UnlayerEventConfig, UnlayerEventRegister } from './shared/const';\nimport { FormFieldInfo } from './shared/forms';\nimport { unlayerToolsParseTwinKey } from './shared/tools';\nimport { unlayerToolsIterate } from './tools';\nimport {\n createUnlayerEditor,\n DesignUpdatedEventType,\n EventDesignUpdated,\n Unlayer,\n} from './unlayer';\nimport { CreateUnlayerEditorProps, UnlayerDesignFormat, UnlayerRef } from './unlayer-interface';\n\nconst defaultScriptUrl = 'https://editor.unlayer.com/embed.js?2';\n\nexport interface UnlayerDesignChangeInfo {\n isToolsListChanged: boolean;\n}\n\n// We are using exclusive lists here, because we can't be sure that we know all unlayer event types\nconst eventsNotChangingToolsList: DesignUpdatedEventType[] = [\n DesignUpdatedEventType.ContentMoved,\n DesignUpdatedEventType.ContentModified,\n DesignUpdatedEventType.ColumnModified,\n DesignUpdatedEventType.RowMoved,\n DesignUpdatedEventType.RowModified,\n DesignUpdatedEventType.BodyModified,\n];\n\nconst eventsNotAddingTools: DesignUpdatedEventType[] = [\n ...eventsNotChangingToolsList,\n DesignUpdatedEventType.ContentRemoved,\n DesignUpdatedEventType.ColumnRemoved,\n DesignUpdatedEventType.RowRemoved,\n];\n\nexport class UnlayerStore {\n readonly unlayerRef: UnlayerRef;\n\n private editor: Unlayer | undefined;\n private isInit = false;\n private iframe?: HTMLIFrameElement;\n private hasDesign = false;\n\n private onMessageCB?: (type: string, data: any) => void;\n private onChangeCB?: (info: UnlayerDesignChangeInfo) => void;\n private onSnapshotSaveCB?: (snapshot: UnlayerEditorTwin) => void;\n private onReadyCB?: () => void;\n private onImageCB?: (file: File) => Promise<{ url: string }>;\n private onErrorCB?: (title: string, description?: string) => void;\n private onFormSelectCB?: (formId: number) => void;\n\n constructor(readonly props: CreateUnlayerEditorProps) {\n this.props.eSignFieldTypes = ['Signature', 'Initials', 'Date Signed', 'Full Name'];\n\n this.unlayerRef = {\n loadDesign: design => {\n this.editor?.loadDesign(design);\n },\n saveDesign: cb => {\n this.editor?.saveDesign(cb);\n },\n exportHtml: cb => {\n this.editor?.exportHtml(data => {\n cb(data);\n });\n },\n sendFormFields: (formId, fields) => {\n this.sendFormFields(formId, fields);\n },\n };\n }\n\n init = async (container: HTMLDivElement) => {\n if (this.isInit) {\n return;\n }\n\n this.isInit = true;\n\n setTimeout(() => window.addEventListener('message', this.onPostMessage));\n\n await loadScript(defaultScriptUrl);\n\n this.editor = createUnlayerEditor(container, this.props);\n this.editor.addEventListener('design:loaded', this.onDesignLoaded);\n this.editor.addEventListener('design:updated', this.onDesignUpdated);\n this.editor.registerCallback('image', this.uploadImage);\n\n this.iframe = container.querySelector(`iframe`) ?? undefined;\n };\n\n destroy = () => {\n window.removeEventListener('message', this.onPostMessage);\n\n if (this.editor) {\n this.editor.removeEventListener('design:loaded', this.onDesignLoaded);\n this.editor.removeEventListener('design:updated', this.onDesignUpdated);\n this.editor.unregisterCallback('image', this.uploadImage);\n\n this.editor = undefined;\n }\n };\n\n addTwin = (twin: UnlayerEditorTwin) => {\n this.props.toolTwins?.push(twin);\n this.sendMessage('--add-twin', JSON.parse(JSON.stringify(twin)));\n };\n\n setDesign = (design?: UnlayerDesignFormat) => {\n if (!this.editor) {\n return;\n }\n\n this.hasDesign = !!design;\n\n if (design) {\n this.editor.loadDesign(design);\n }\n };\n\n setOnChange = (onChange?: UnlayerStore['onChangeCB']) => {\n this.onChangeCB = onChange;\n };\n\n setOnSnapshotSave = (onSnapshotSave?: UnlayerStore['onSnapshotSaveCB']) => {\n this.onSnapshotSaveCB = onSnapshotSave;\n };\n\n setOnReady = (onReady?: UnlayerStore['onReadyCB']) => {\n this.onReadyCB = onReady;\n };\n\n setOnImage = (onImage?: UnlayerStore['onImageCB']) => {\n this.onImageCB = onImage;\n };\n\n setOnError = (onError?: UnlayerStore['onErrorCB']) => {\n this.onErrorCB = onError;\n };\n\n setOnMessage = (onMessage?: UnlayerStore['onMessageCB']) => {\n this.onMessageCB = onMessage;\n };\n\n setOnFormSelect = (onFormSelect?: UnlayerStore['onFormSelectCB']) => {\n this.onFormSelectCB = onFormSelect;\n };\n\n sendFormFields = (formId: number, fields: FormFieldInfo[]) => {\n this.sendMessage('--form-fields', { formId, fields });\n };\n\n private onDesignLoaded = () => {\n if (!this.hasDesign) {\n this.hasDesign = true;\n this.editor?.setBodyValues({\n backgroundColor: 'rgba(0,0,0,0)',\n contentWidth: '100%',\n });\n }\n };\n\n private onDesignUpdated = (event: EventDesignUpdated) => {\n const isToolAdded = !eventsNotAddingTools.includes(event.type);\n const isToolsListChanged = !eventsNotChangingToolsList.includes(event.type);\n\n if (isToolAdded) {\n this.editor?.exportHtml(data => {\n let hasChanges = false;\n\n unlayerToolsIterate(data.design, tool => {\n const realTool = tool.slug\n ? unlayerToolsParseTwinKey(tool.slug ?? '')\n : undefined;\n\n if (realTool) {\n hasChanges = true;\n\n if (tool.slug) {\n delete data.design.counters[`u_content_custom_${tool.slug}`];\n delete tool.values._meta.htmlID;\n }\n\n tool.type = realTool.type;\n tool.slug = realTool.slug;\n }\n });\n\n if (hasChanges) {\n this.setDesign(data.design);\n }\n\n this.onChangeCB?.({ isToolsListChanged });\n });\n } else {\n this.onChangeCB?.({ isToolsListChanged });\n }\n };\n\n private onPostMessage = (e: MessageEvent) => {\n if (!e.data?.['-dte-message-from']) {\n return;\n }\n\n const type = e.data?.['-dte-message-from']?.type;\n const data = e.data?.['-dte-message-from']?.data;\n\n if (!type) {\n return;\n }\n\n if (type === '--ready' || type === '--registered') {\n this.onReadyCB?.();\n } else if (type === '--core-loaded') {\n const configData: UnlayerEventConfig = {\n dummyData: this.props.dummyData,\n schema: this.props.schema,\n generics: this.props.generics,\n genericConfigMode: this.props.genericConfigMode,\n isSnapshotMode: this.props.isSnapshotMode,\n holidays: this.props.holidays,\n forms: this.props.forms,\n };\n\n this.sendMessage('--config', JSON.parse(JSON.stringify(configData)));\n } else if (type === '--form-select') {\n this.onFormSelectCB?.(data?.formId);\n } else if (type === '--data-loaded') {\n const data: UnlayerEventRegister = {\n customTools: this.props.tools.map(tool => ({ key: tool.key })),\n toolTwins: this.props.toolTwins,\n eSignRecipients: this.props.eSignRecipients,\n eSignFieldTypes: this.props.eSignFieldTypes,\n units: this.props.units?.map(unit => ({\n ...unit,\n values: {\n ...unit.values,\n adminConfig: undefined,\n },\n })),\n };\n\n this.sendMessage('--register', JSON.parse(JSON.stringify(data)));\n } else if (type === '--save-snapshot') {\n this.editor?.exportHtml(template => {\n unlayerToolsIterate(template.design, tool => {\n if (tool.values?.twin?.id === data.id) {\n if (!tool.slug) {\n return;\n }\n\n this.onSnapshotSaveCB?.({\n title: '',\n tool: tool.slug,\n values: tool.values,\n });\n return false;\n }\n });\n });\n }\n\n this.onMessageCB?.(type, data);\n };\n\n private sendMessage = (type: string, data?: any) => {\n this.iframe?.contentWindow?.postMessage(\n {\n '-dte-message-to': {\n type,\n data,\n },\n },\n '*',\n );\n };\n\n private uploadImage = async (\n data: { attachments: File[] },\n done: (result: { progress: number; url?: string }) => void,\n ) => {\n if (!this.onImageCB) {\n done({ progress: 100 });\n throw new Error('image upload is not implemented');\n }\n\n if (!data.attachments?.length) {\n return;\n }\n\n const file = data.attachments[0];\n\n const res = await this.validateImage(file, {\n ...defaultImageValidation,\n ...(this.props.imageValidation ?? {}),\n });\n\n if (!res.isValid) {\n this.onErrorCB?.(res.title, res.description);\n return;\n }\n\n done({ progress: 0 });\n\n try {\n const { url } = await this.onImageCB(file);\n done({ progress: 100, url });\n } catch {\n this.onErrorCB?.(\n 'Image upload failed',\n 'Something went wrong while uploading the image. Please try again or select another image.',\n );\n done({ progress: 100 });\n }\n };\n\n private validateImage = async (\n file: File,\n imageValidation: { maxFileSize: number; maxWidth: number; maxHeight: number },\n ): Promise<{ isValid: boolean; title: string; description: string }> => {\n const { maxFileSize, maxHeight, maxWidth } = imageValidation;\n\n if (file.size > maxFileSize) {\n const maxSizeMB = (maxFileSize / 1024 / 1024).toFixed(2);\n const fileSizeMB = (file.size / 1024 / 1024).toFixed(2);\n return {\n isValid: false,\n title: 'Image size limit reached',\n description: `This image is ${fileSizeMB}MB, which is above the ${maxSizeMB}MB limit. Please upload a smaller file to continue.`,\n };\n }\n\n return new Promise(resolve => {\n const img = new Image();\n const objectUrl = URL.createObjectURL(file);\n\n img.onload = () => {\n URL.revokeObjectURL(objectUrl);\n const { height, width } = img;\n\n if (width > maxWidth || height > maxHeight) {\n resolve({\n isValid: false,\n title: 'Dimension limit reached',\n description: `These image dimensions (${width}x${height}px) exceed the ${maxWidth}x${maxHeight}px limit. Please resize the image and try again.`,\n });\n } else {\n resolve({ isValid: true, title: '', description: '' });\n }\n };\n\n img.onerror = () => {\n URL.revokeObjectURL(objectUrl);\n resolve({\n isValid: false,\n title: 'The image is broken',\n description:\n 'Looks like this image isn’t valid. Please choose another image and try again.',\n });\n };\n\n img.src = objectUrl;\n });\n };\n}\n"],"names":["loadScript","defaultImageValidation","unlayerToolsParseTwinKey","unlayerToolsIterate","createUnlayerEditor","DesignUpdatedEventType","defaultScriptUrl","eventsNotChangingToolsList","ContentMoved","ContentModified","ColumnModified","RowMoved","RowModified","BodyModified","eventsNotAddingTools","ContentRemoved","ColumnRemoved","RowRemoved","UnlayerStore","props","unlayerRef","editor","isInit","iframe","hasDesign","onMessageCB","onChangeCB","onSnapshotSaveCB","onReadyCB","onImageCB","onErrorCB","onFormSelectCB","init","destroy","addTwin","setDesign","setOnChange","setOnSnapshotSave","setOnReady","setOnImage","setOnError","setOnMessage","setOnFormSelect","sendFormFields","onDesignLoaded","onDesignUpdated","onPostMessage","sendMessage","uploadImage","validateImage","container","setTimeout","window","addEventListener","registerCallback","querySelector","undefined","removeEventListener","unregisterCallback","twin","toolTwins","push","JSON","parse","stringify","design","loadDesign","onChange","onSnapshotSave","onReady","onImage","onError","onMessage","onFormSelect","formId","fields","setBodyValues","backgroundColor","contentWidth","event","isToolAdded","includes","type","isToolsListChanged","exportHtml","data","hasChanges","tool","realTool","slug","counters","values","_meta","htmlID","e","configData","dummyData","schema","generics","genericConfigMode","isSnapshotMode","holidays","forms","customTools","tools","map","key","eSignRecipients","eSignFieldTypes","units","unit","adminConfig","template","id","title","contentWindow","postMessage","done","progress","Error","attachments","length","file","res","imageValidation","isValid","description","url","maxFileSize","maxHeight","maxWidth","size","maxSizeMB","toFixed","fileSizeMB","Promise","resolve","img","Image","objectUrl","URL","createObjectURL","onload","revokeObjectURL","height","width","onerror","src","saveDesign","cb"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/store.ts"],"sourcesContent":["import { loadScript } from './loadScript';\nimport { defaultImageValidation } from './shared/configs';\nimport { UnlayerEditorTwin, UnlayerEventConfig, UnlayerEventRegister } from './shared/const';\nimport { FormFieldInfo, FormInfo } from './shared/forms';\nimport { unlayerToolsParseTwinKey } from './shared/tools';\nimport { unlayerToolsIterate } from './tools';\nimport {\n createUnlayerEditor,\n DesignUpdatedEventType,\n EventDesignUpdated,\n Unlayer,\n} from './unlayer';\nimport { CreateUnlayerEditorProps, UnlayerDesignFormat, UnlayerRef } from './unlayer-interface';\n\nconst defaultScriptUrl = 'https://editor.unlayer.com/embed.js?2';\n\nexport interface UnlayerDesignChangeInfo {\n isToolsListChanged: boolean;\n}\n\n// We are using exclusive lists here, because we can't be sure that we know all unlayer event types\nconst eventsNotChangingToolsList: DesignUpdatedEventType[] = [\n DesignUpdatedEventType.ContentMoved,\n DesignUpdatedEventType.ContentModified,\n DesignUpdatedEventType.ColumnModified,\n DesignUpdatedEventType.RowMoved,\n DesignUpdatedEventType.RowModified,\n DesignUpdatedEventType.BodyModified,\n];\n\nconst eventsNotAddingTools: DesignUpdatedEventType[] = [\n ...eventsNotChangingToolsList,\n DesignUpdatedEventType.ContentRemoved,\n DesignUpdatedEventType.ColumnRemoved,\n DesignUpdatedEventType.RowRemoved,\n];\n\nexport class UnlayerStore {\n readonly unlayerRef: UnlayerRef;\n\n private editor: Unlayer | undefined;\n private isInit = false;\n private iframe?: HTMLIFrameElement;\n private hasDesign = false;\n\n private onMessageCB?: (type: string, data: any) => void;\n private onChangeCB?: (info: UnlayerDesignChangeInfo) => void;\n private onSnapshotSaveCB?: (snapshot: UnlayerEditorTwin) => void;\n private onReadyCB?: () => void;\n private onImageCB?: (file: File) => Promise<{ url: string }>;\n private onErrorCB?: (title: string, description?: string) => void;\n private onFormSelectCB?: (formId: number) => void;\n private onCalcFieldOpenCB?: (usedFormIds: number[]) => void;\n\n constructor(readonly props: CreateUnlayerEditorProps) {\n this.props.eSignFieldTypes = ['Signature', 'Initials', 'Date Signed', 'Full Name'];\n\n this.unlayerRef = {\n loadDesign: design => {\n this.editor?.loadDesign(design);\n },\n saveDesign: cb => {\n this.editor?.saveDesign(cb);\n },\n exportHtml: cb => {\n this.editor?.exportHtml(data => {\n cb(data);\n });\n },\n sendFormList: forms => {\n this.sendFormList(forms);\n },\n sendFormFields: (formId, fields) => {\n this.sendFormFields(formId, fields);\n },\n };\n }\n\n init = async (container: HTMLDivElement) => {\n if (this.isInit) {\n return;\n }\n\n this.isInit = true;\n\n setTimeout(() => window.addEventListener('message', this.onPostMessage));\n\n await loadScript(defaultScriptUrl);\n\n this.editor = createUnlayerEditor(container, this.props);\n this.editor.addEventListener('design:loaded', this.onDesignLoaded);\n this.editor.addEventListener('design:updated', this.onDesignUpdated);\n this.editor.registerCallback('image', this.uploadImage);\n\n this.iframe = container.querySelector(`iframe`) ?? undefined;\n };\n\n destroy = () => {\n window.removeEventListener('message', this.onPostMessage);\n\n if (this.editor) {\n this.editor.removeEventListener('design:loaded', this.onDesignLoaded);\n this.editor.removeEventListener('design:updated', this.onDesignUpdated);\n this.editor.unregisterCallback('image', this.uploadImage);\n\n this.editor = undefined;\n }\n };\n\n addTwin = (twin: UnlayerEditorTwin) => {\n this.props.toolTwins?.push(twin);\n this.sendMessage('--add-twin', JSON.parse(JSON.stringify(twin)));\n };\n\n setDesign = (design?: UnlayerDesignFormat) => {\n if (!this.editor) {\n return;\n }\n\n this.hasDesign = !!design;\n\n if (design) {\n this.editor.loadDesign(design);\n }\n };\n\n setOnChange = (onChange?: UnlayerStore['onChangeCB']) => {\n this.onChangeCB = onChange;\n };\n\n setOnSnapshotSave = (onSnapshotSave?: UnlayerStore['onSnapshotSaveCB']) => {\n this.onSnapshotSaveCB = onSnapshotSave;\n };\n\n setOnReady = (onReady?: UnlayerStore['onReadyCB']) => {\n this.onReadyCB = onReady;\n };\n\n setOnImage = (onImage?: UnlayerStore['onImageCB']) => {\n this.onImageCB = onImage;\n };\n\n setOnError = (onError?: UnlayerStore['onErrorCB']) => {\n this.onErrorCB = onError;\n };\n\n setOnMessage = (onMessage?: UnlayerStore['onMessageCB']) => {\n this.onMessageCB = onMessage;\n };\n\n setOnFormSelect = (onFormSelect?: UnlayerStore['onFormSelectCB']) => {\n this.onFormSelectCB = onFormSelect;\n };\n\n setOnCalcFieldOpen = (onCalcFieldOpen?: UnlayerStore['onCalcFieldOpenCB']) => {\n this.onCalcFieldOpenCB = onCalcFieldOpen;\n };\n\n sendFormList = (forms: FormInfo[]) => {\n this.sendMessage('--form-list', { forms });\n };\n\n sendFormFields = (formId: number, fields: FormFieldInfo[]) => {\n this.sendMessage('--form-fields', { formId, fields });\n };\n\n private onDesignLoaded = () => {\n if (!this.hasDesign) {\n this.hasDesign = true;\n this.editor?.setBodyValues({\n backgroundColor: 'rgba(0,0,0,0)',\n contentWidth: '100%',\n });\n }\n };\n\n private onDesignUpdated = (event: EventDesignUpdated) => {\n const isToolAdded = !eventsNotAddingTools.includes(event.type);\n const isToolsListChanged = !eventsNotChangingToolsList.includes(event.type);\n\n if (isToolAdded) {\n this.editor?.exportHtml(data => {\n let hasChanges = false;\n\n unlayerToolsIterate(data.design, tool => {\n const realTool = tool.slug\n ? unlayerToolsParseTwinKey(tool.slug ?? '')\n : undefined;\n\n if (realTool) {\n hasChanges = true;\n\n if (tool.slug) {\n delete data.design.counters[`u_content_custom_${tool.slug}`];\n delete tool.values._meta.htmlID;\n }\n\n tool.type = realTool.type;\n tool.slug = realTool.slug;\n }\n });\n\n if (hasChanges) {\n this.setDesign(data.design);\n }\n\n this.onChangeCB?.({ isToolsListChanged });\n });\n } else {\n this.onChangeCB?.({ isToolsListChanged });\n }\n };\n\n private onPostMessage = (e: MessageEvent) => {\n if (!e.data?.['-dte-message-from']) {\n return;\n }\n\n const type = e.data?.['-dte-message-from']?.type;\n const data = e.data?.['-dte-message-from']?.data;\n\n if (!type) {\n return;\n }\n\n if (type === '--ready' || type === '--registered') {\n this.onReadyCB?.();\n } else if (type === '--core-loaded') {\n const configData: UnlayerEventConfig = {\n dummyData: this.props.dummyData,\n schema: this.props.schema,\n generics: this.props.generics,\n genericConfigMode: this.props.genericConfigMode,\n isSnapshotMode: this.props.isSnapshotMode,\n holidays: this.props.holidays,\n };\n\n this.sendMessage('--config', JSON.parse(JSON.stringify(configData)));\n } else if (type === '--form-select') {\n this.onFormSelectCB?.(data?.formId);\n } else if (type === '--calc-field-open') {\n this.onCalcFieldOpenCB?.(data?.usedFormIds ?? []);\n } else if (type === '--data-loaded') {\n const data: UnlayerEventRegister = {\n customTools: this.props.tools.map(tool => ({ key: tool.key })),\n toolTwins: this.props.toolTwins,\n eSignRecipients: this.props.eSignRecipients,\n eSignFieldTypes: this.props.eSignFieldTypes,\n units: this.props.units?.map(unit => ({\n ...unit,\n values: {\n ...unit.values,\n adminConfig: undefined,\n },\n })),\n };\n\n this.sendMessage('--register', JSON.parse(JSON.stringify(data)));\n } else if (type === '--save-snapshot') {\n this.editor?.exportHtml(template => {\n unlayerToolsIterate(template.design, tool => {\n if (tool.values?.twin?.id === data.id) {\n if (!tool.slug) {\n return;\n }\n\n this.onSnapshotSaveCB?.({\n title: '',\n tool: tool.slug,\n values: tool.values,\n });\n return false;\n }\n });\n });\n }\n\n this.onMessageCB?.(type, data);\n };\n\n private sendMessage = (type: string, data?: any) => {\n this.iframe?.contentWindow?.postMessage(\n {\n '-dte-message-to': {\n type,\n data,\n },\n },\n '*',\n );\n };\n\n private uploadImage = async (\n data: { attachments: File[] },\n done: (result: { progress: number; url?: string }) => void,\n ) => {\n if (!this.onImageCB) {\n done({ progress: 100 });\n throw new Error('image upload is not implemented');\n }\n\n if (!data.attachments?.length) {\n return;\n }\n\n const file = data.attachments[0];\n\n const res = await this.validateImage(file, {\n ...defaultImageValidation,\n ...(this.props.imageValidation ?? {}),\n });\n\n if (!res.isValid) {\n this.onErrorCB?.(res.title, res.description);\n return;\n }\n\n done({ progress: 0 });\n\n try {\n const { url } = await this.onImageCB(file);\n done({ progress: 100, url });\n } catch {\n this.onErrorCB?.(\n 'Image upload failed',\n 'Something went wrong while uploading the image. Please try again or select another image.',\n );\n done({ progress: 100 });\n }\n };\n\n private validateImage = async (\n file: File,\n imageValidation: { maxFileSize: number; maxWidth: number; maxHeight: number },\n ): Promise<{ isValid: boolean; title: string; description: string }> => {\n const { maxFileSize, maxHeight, maxWidth } = imageValidation;\n\n if (file.size > maxFileSize) {\n const maxSizeMB = (maxFileSize / 1024 / 1024).toFixed(2);\n const fileSizeMB = (file.size / 1024 / 1024).toFixed(2);\n return {\n isValid: false,\n title: 'Image size limit reached',\n description: `This image is ${fileSizeMB}MB, which is above the ${maxSizeMB}MB limit. Please upload a smaller file to continue.`,\n };\n }\n\n return new Promise(resolve => {\n const img = new Image();\n const objectUrl = URL.createObjectURL(file);\n\n img.onload = () => {\n URL.revokeObjectURL(objectUrl);\n const { height, width } = img;\n\n if (width > maxWidth || height > maxHeight) {\n resolve({\n isValid: false,\n title: 'Dimension limit reached',\n description: `These image dimensions (${width}x${height}px) exceed the ${maxWidth}x${maxHeight}px limit. Please resize the image and try again.`,\n });\n } else {\n resolve({ isValid: true, title: '', description: '' });\n }\n };\n\n img.onerror = () => {\n URL.revokeObjectURL(objectUrl);\n resolve({\n isValid: false,\n title: 'The image is broken',\n description:\n 'Looks like this image isn’t valid. Please choose another image and try again.',\n });\n };\n\n img.src = objectUrl;\n });\n };\n}\n"],"names":["loadScript","defaultImageValidation","unlayerToolsParseTwinKey","unlayerToolsIterate","createUnlayerEditor","DesignUpdatedEventType","defaultScriptUrl","eventsNotChangingToolsList","ContentMoved","ContentModified","ColumnModified","RowMoved","RowModified","BodyModified","eventsNotAddingTools","ContentRemoved","ColumnRemoved","RowRemoved","UnlayerStore","props","unlayerRef","editor","isInit","iframe","hasDesign","onMessageCB","onChangeCB","onSnapshotSaveCB","onReadyCB","onImageCB","onErrorCB","onFormSelectCB","onCalcFieldOpenCB","init","destroy","addTwin","setDesign","setOnChange","setOnSnapshotSave","setOnReady","setOnImage","setOnError","setOnMessage","setOnFormSelect","setOnCalcFieldOpen","sendFormList","sendFormFields","onDesignLoaded","onDesignUpdated","onPostMessage","sendMessage","uploadImage","validateImage","container","setTimeout","window","addEventListener","registerCallback","querySelector","undefined","removeEventListener","unregisterCallback","twin","toolTwins","push","JSON","parse","stringify","design","loadDesign","onChange","onSnapshotSave","onReady","onImage","onError","onMessage","onFormSelect","onCalcFieldOpen","forms","formId","fields","setBodyValues","backgroundColor","contentWidth","event","isToolAdded","includes","type","isToolsListChanged","exportHtml","data","hasChanges","tool","realTool","slug","counters","values","_meta","htmlID","e","configData","dummyData","schema","generics","genericConfigMode","isSnapshotMode","holidays","usedFormIds","customTools","tools","map","key","eSignRecipients","eSignFieldTypes","units","unit","adminConfig","template","id","title","contentWindow","postMessage","done","progress","Error","attachments","length","file","res","imageValidation","isValid","description","url","maxFileSize","maxHeight","maxWidth","size","maxSizeMB","toFixed","fileSizeMB","Promise","resolve","img","Image","objectUrl","URL","createObjectURL","onload","revokeObjectURL","height","width","onerror","src","saveDesign","cb"],"mappings":"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"}
@@ -33,6 +33,7 @@ export interface UnlayerRef {
33
33
  loadDesign(design: any): void;
34
34
  saveDesign(cb: (design: any) => void): void;
35
35
  exportHtml(cb: (data: UnlayerExport) => void): void;
36
+ sendFormList(forms: FormInfo[]): void;
36
37
  sendFormFields(formId: number, fields: FormFieldInfo[]): void;
37
38
  }
38
39
  export interface UnlayerEditorMergeTagInfo {
@@ -77,7 +78,7 @@ export interface CreateUnlayerEditorProps {
77
78
  maxFileSize?: number;
78
79
  };
79
80
  holidays?: string[];
80
- forms?: FormInfo[];
81
81
  onFormSelect?: (formId: number) => void;
82
+ onCalcFieldOpen?: (usedFormIds: number[]) => void;
82
83
  }
83
84
  //# sourceMappingURL=unlayer-interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unlayer-interface.d.ts","sourceRoot":"","sources":["../src/unlayer-interface.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unlayer-interface.d.ts","sourceRoot":"","sources":["../src/unlayer-interface.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/unlayer-interface.tsx"],"sourcesContent":["import {\n UnlayerEditorESignRecipientInfo,\n UnlayerEditorTwin,\n UnlayerEditorUnit,\n} from './shared/const';\nimport { FormFieldInfo, FormInfo } from './shared/forms';\nimport { SchemaObject } from './shared/schema';\n\nexport interface UnlayerDesignTool {\n type: string;\n slug?: string;\n values: any;\n}\nexport interface UnlayerDesignCustomTool extends UnlayerDesignTool {\n slug: string;\n}\n\nexport interface UnlayerDesignFormat {\n body: {\n rows: {\n cells: number[];\n columns: {\n contents: UnlayerDesignTool[];\n values?: any;\n }[];\n values?: any;\n }[];\n values?: any;\n };\n counters: Record<string, number>;\n schemaVersion: number;\n}\n\nexport interface UnlayerExport {\n html: string;\n chunks: any;\n design: UnlayerDesignFormat;\n}\n\nexport interface UnlayerRef {\n loadDesign(design: any): void;\n saveDesign(cb: (design: any) => void): void;\n exportHtml(cb: (data: UnlayerExport) => void): void;\n sendFormFields(formId: number, fields: FormFieldInfo[]): void;\n}\n\nexport interface UnlayerEditorMergeTagInfo {\n id: string;\n name: string;\n propertyPath: string;\n}\n\nexport interface UnlayerEditorCustomTool {\n key: string;\n title: string;\n description?: string;\n url: string;\n groupUrl?: string;\n}\n\nexport interface CreateUnlayerEditorProps {\n tools: UnlayerEditorCustomTool[];\n newSnapshot?: UnlayerEditorTwin;\n toolTwins?: UnlayerEditorTwin[];\n isSnapshotMode?: boolean;\n dummyData?: any;\n schema?: SchemaObject;\n customCSS?: string | string[] | undefined;\n customJS?: string | string[] | undefined;\n mergeTags?: UnlayerEditorMergeTagInfo[] | undefined;\n eSignRecipients?: UnlayerEditorESignRecipientInfo[] | undefined;\n eSignFieldTypes?: string[] | undefined;\n genericConfigMode?: boolean;\n generics?: true | string[];\n units?: UnlayerEditorUnit[];\n noCoreTools?: boolean;\n latest?: boolean;\n blocks?: boolean;\n hideAllTools?: boolean;\n hideContentControls?: boolean;\n hideBodyMenuItem?: boolean;\n displayConditions?: boolean;\n enableHTMLEditing?: boolean;\n enableHTMLEditingReadonly?: boolean;\n imageValidation?: {\n maxWidth?: number;\n maxHeight?: number;\n maxFileSize?: number;\n };\n holidays?: string[];\n forms?: FormInfo[];\n onFormSelect?: (formId: number) => void;\n}\n"],"names":[],"mappings":"AA4DA,WAgCC"}
1
+ {"version":3,"sources":["../src/unlayer-interface.tsx"],"sourcesContent":["import {\n UnlayerEditorESignRecipientInfo,\n UnlayerEditorTwin,\n UnlayerEditorUnit,\n} from './shared/const';\nimport { FormFieldInfo, FormInfo } from './shared/forms';\nimport { SchemaObject } from './shared/schema';\n\nexport interface UnlayerDesignTool {\n type: string;\n slug?: string;\n values: any;\n}\nexport interface UnlayerDesignCustomTool extends UnlayerDesignTool {\n slug: string;\n}\n\nexport interface UnlayerDesignFormat {\n body: {\n rows: {\n cells: number[];\n columns: {\n contents: UnlayerDesignTool[];\n values?: any;\n }[];\n values?: any;\n }[];\n values?: any;\n };\n counters: Record<string, number>;\n schemaVersion: number;\n}\n\nexport interface UnlayerExport {\n html: string;\n chunks: any;\n design: UnlayerDesignFormat;\n}\n\nexport interface UnlayerRef {\n loadDesign(design: any): void;\n saveDesign(cb: (design: any) => void): void;\n exportHtml(cb: (data: UnlayerExport) => void): void;\n sendFormList(forms: FormInfo[]): void;\n sendFormFields(formId: number, fields: FormFieldInfo[]): void;\n}\n\nexport interface UnlayerEditorMergeTagInfo {\n id: string;\n name: string;\n propertyPath: string;\n}\n\nexport interface UnlayerEditorCustomTool {\n key: string;\n title: string;\n description?: string;\n url: string;\n groupUrl?: string;\n}\n\nexport interface CreateUnlayerEditorProps {\n tools: UnlayerEditorCustomTool[];\n newSnapshot?: UnlayerEditorTwin;\n toolTwins?: UnlayerEditorTwin[];\n isSnapshotMode?: boolean;\n dummyData?: any;\n schema?: SchemaObject;\n customCSS?: string | string[] | undefined;\n customJS?: string | string[] | undefined;\n mergeTags?: UnlayerEditorMergeTagInfo[] | undefined;\n eSignRecipients?: UnlayerEditorESignRecipientInfo[] | undefined;\n eSignFieldTypes?: string[] | undefined;\n genericConfigMode?: boolean;\n generics?: true | string[];\n units?: UnlayerEditorUnit[];\n noCoreTools?: boolean;\n latest?: boolean;\n blocks?: boolean;\n hideAllTools?: boolean;\n hideContentControls?: boolean;\n hideBodyMenuItem?: boolean;\n displayConditions?: boolean;\n enableHTMLEditing?: boolean;\n enableHTMLEditingReadonly?: boolean;\n imageValidation?: {\n maxWidth?: number;\n maxHeight?: number;\n maxFileSize?: number;\n };\n holidays?: string[];\n onFormSelect?: (formId: number) => void;\n onCalcFieldOpen?: (usedFormIds: number[]) => void;\n}\n"],"names":[],"mappings":"AA6DA,WAgCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/dte-unlayer",
3
- "version": "0.114.0",
3
+ "version": "0.116.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",