@servicetitan/dte-unlayer 0.131.0 → 0.132.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/editor-core-source.d.ts +2 -2
- package/dist/editor-core-source.d.ts.map +1 -1
- package/dist/editor-core-source.js +2 -2
- package/dist/editor-core-source.js.map +1 -1
- package/dist/shared/forms.d.ts +4 -0
- package/dist/shared/forms.d.ts.map +1 -1
- package/dist/shared/forms.js +16 -0
- package/dist/shared/forms.js.map +1 -1
- package/dist/store.d.ts +8 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +145 -2
- package/dist/store.js.map +1 -1
- package/dist/unlayer-interface.d.ts +1 -0
- package/dist/unlayer-interface.d.ts.map +1 -1
- package/dist/unlayer-interface.js.map +1 -1
- package/dist/unlayer.d.ts +1 -0
- package/dist/unlayer.d.ts.map +1 -1
- package/dist/unlayer.js.map +1 -1
- package/package.json +1 -1
- package/src/editor-core-source.ts +2 -2
- package/src/shared/forms.ts +25 -0
- package/src/store.ts +192 -8
- package/src/unlayer-interface.tsx +1 -0
- package/src/unlayer.tsx +1 -0
package/dist/shared/forms.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface FormFieldInfo {
|
|
|
6
6
|
id: string;
|
|
7
7
|
header: string;
|
|
8
8
|
itemType: string;
|
|
9
|
+
sampleData?: unknown;
|
|
9
10
|
}
|
|
10
11
|
export declare const enum FormItemType {
|
|
11
12
|
Text = "Text",
|
|
@@ -33,4 +34,7 @@ export declare const isFormFieldKey: (key: string) => boolean;
|
|
|
33
34
|
export declare const toNunjucksFieldReference: (fieldKey: string) => string;
|
|
34
35
|
export declare const getCalculatedFieldTypeFromFormItemType: (itemType: string) => FormCalculatedFieldType | null;
|
|
35
36
|
export declare const getConditionalFieldTypeFromFormItemType: (itemType: string) => FormConditionalFieldType | null;
|
|
37
|
+
export declare const getFormFieldSampleValue: (field: Pick<FormFieldInfo, "itemType" | "sampleData"> & {
|
|
38
|
+
header?: string;
|
|
39
|
+
}, index?: number) => number | string;
|
|
36
40
|
//# sourceMappingURL=forms.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/shared/forms.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/shared/forms.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,0BAAkB,YAAY;IAC1B,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,UAAU,eAAe;CAC5B;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,MAAM,CAAC;AACxD,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAO3D,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,MACF,CAAC;AAEnE,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAkBrF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,OAA0C,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,MAO3D,CAAC;AAEF,eAAO,MAAM,sCAAsC,GAC/C,UAAU,MAAM,KACjB,uBAAuB,GAAG,IAQ5B,CAAC;AAEF,eAAO,MAAM,uCAAuC,GAChD,UAAU,MAAM,KACjB,wBAAwB,GAAG,IAW7B,CAAC;AAKF,eAAO,MAAM,uBAAuB,GAChC,OAAO,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,YAAY,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3E,cAAS,KACV,MAAM,GAAG,MAgBX,CAAC"}
|
package/dist/shared/forms.js
CHANGED
|
@@ -73,5 +73,21 @@ export const getConditionalFieldTypeFromFormItemType = (itemType)=>{
|
|
|
73
73
|
}
|
|
74
74
|
return 'string';
|
|
75
75
|
};
|
|
76
|
+
const DEFAULT_FORM_NUMBER_SAMPLE = 44;
|
|
77
|
+
const DEFAULT_FORM_DATE_SAMPLE = '2026-01-15';
|
|
78
|
+
export const getFormFieldSampleValue = (field, index = 0)=>{
|
|
79
|
+
if (typeof field.sampleData === 'number' || typeof field.sampleData === 'string') {
|
|
80
|
+
return field.sampleData;
|
|
81
|
+
}
|
|
82
|
+
if (field.itemType === "Number") {
|
|
83
|
+
return DEFAULT_FORM_NUMBER_SAMPLE + index;
|
|
84
|
+
}
|
|
85
|
+
if (field.itemType === "Date") {
|
|
86
|
+
const [year, month, day] = DEFAULT_FORM_DATE_SAMPLE.split('-');
|
|
87
|
+
const dayNumber = Number(day) + index % 10;
|
|
88
|
+
return `${year}-${month}-${String(dayNumber).padStart(2, '0')}`;
|
|
89
|
+
}
|
|
90
|
+
return field.header ? `${field.header} value` : 'sample';
|
|
91
|
+
};
|
|
76
92
|
|
|
77
93
|
//# sourceMappingURL=forms.js.map
|
package/dist/shared/forms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/forms.ts"],"sourcesContent":["export interface FormInfo {\n id: number;\n name: string;\n}\n\nexport interface FormFieldInfo {\n id: string;\n header: string;\n itemType: string;\n}\n\nexport const enum FormItemType {\n Text = 'Text',\n Number = 'Number',\n Picture = 'Picture',\n Checkboxes = 'Checkboxes',\n RadioButtons = 'RadioButtons',\n Date = 'Date',\n Signature = 'Signature',\n Dropdown = 'Dropdown',\n Stoplight = 'Stoplight',\n SmartField = 'SmartField',\n}\n\nexport type FormCalculatedFieldType = 'number' | 'date';\nexport type FormConditionalFieldType = 'number' | 'string';\n\nconst FORM_FIELD_KEY_RE = /^__submission_fields\\.(\\d+)\\.([A-Za-z0-9]+)$/;\nconst FORM_FIELD_RUNTIME_PATH_RE = /^__submission_fields\\[\"(\\d+)\"\\]\\[\"([A-Za-z0-9]+)\"\\]$/;\nconst LEGACY_FORM_KEY_RE = /^form_(\\d+)_([A-Za-z0-9]+)$/;\nconst LEGACY_FORM_KEY_PREFIX_RE = /^__form_(\\d+)_([a-f0-9]+)$/;\n\nexport const buildFormFieldKey = (formId: number, fieldId: string): string =>\n `__submission_fields.${formId}.${fieldId.replaceAll('-', '')}`;\n\nexport const parseFormFieldKey = (key: string): { formId: number; fieldId: string } | null => {\n const match = FORM_FIELD_KEY_RE.exec(key) ?? FORM_FIELD_RUNTIME_PATH_RE.exec(key);\n if (match) {\n return { formId: Number(match[1]), fieldId: match[2] };\n }\n\n // Backward compatibility for already saved values.\n const oldMatch = LEGACY_FORM_KEY_RE.exec(key);\n if (oldMatch) {\n return { formId: Number(oldMatch[1]), fieldId: oldMatch[2] };\n }\n\n const legacyMatch = LEGACY_FORM_KEY_PREFIX_RE.exec(key);\n if (legacyMatch) {\n return { formId: Number(legacyMatch[1]), fieldId: legacyMatch[2] };\n }\n\n return null;\n};\n\nexport const isFormFieldKey = (key: string): boolean => parseFormFieldKey(key) !== null;\n\n/**\n * Submission keys may start with numeric properties, so dot notation is unsafe.\n */\nexport const toNunjucksFieldReference = (fieldKey: string): string => {\n const parsed = parseFormFieldKey(fieldKey);\n if (!parsed) {\n return fieldKey;\n }\n\n return `__submission_fields[\"${parsed.formId}\"][\"${parsed.fieldId}\"]`;\n};\n\nexport const getCalculatedFieldTypeFromFormItemType = (\n itemType: string,\n): FormCalculatedFieldType | null => {\n if (itemType === 'Number') {\n return 'number';\n }\n if (itemType === 'Date') {\n return 'date';\n }\n return null;\n};\n\nexport const getConditionalFieldTypeFromFormItemType = (\n itemType: string,\n): FormConditionalFieldType | null => {\n if (!itemType) {\n return null;\n }\n if (itemType === 'Number') {\n return 'number';\n }\n if (itemType === 'Picture' || itemType === 'Signature') {\n return null;\n }\n return 'string';\n};\n"],"names":["FormItemType","FORM_FIELD_KEY_RE","FORM_FIELD_RUNTIME_PATH_RE","LEGACY_FORM_KEY_RE","LEGACY_FORM_KEY_PREFIX_RE","buildFormFieldKey","formId","fieldId","replaceAll","parseFormFieldKey","key","match","exec","Number","oldMatch","legacyMatch","isFormFieldKey","toNunjucksFieldReference","fieldKey","parsed","getCalculatedFieldTypeFromFormItemType","itemType","getConditionalFieldTypeFromFormItemType"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/shared/forms.ts"],"sourcesContent":["export interface FormInfo {\n id: number;\n name: string;\n}\n\nexport interface FormFieldInfo {\n id: string;\n header: string;\n itemType: string;\n sampleData?: unknown;\n}\n\nexport const enum FormItemType {\n Text = 'Text',\n Number = 'Number',\n Picture = 'Picture',\n Checkboxes = 'Checkboxes',\n RadioButtons = 'RadioButtons',\n Date = 'Date',\n Signature = 'Signature',\n Dropdown = 'Dropdown',\n Stoplight = 'Stoplight',\n SmartField = 'SmartField',\n}\n\nexport type FormCalculatedFieldType = 'number' | 'date';\nexport type FormConditionalFieldType = 'number' | 'string';\n\nconst FORM_FIELD_KEY_RE = /^__submission_fields\\.(\\d+)\\.([A-Za-z0-9]+)$/;\nconst FORM_FIELD_RUNTIME_PATH_RE = /^__submission_fields\\[\"(\\d+)\"\\]\\[\"([A-Za-z0-9]+)\"\\]$/;\nconst LEGACY_FORM_KEY_RE = /^form_(\\d+)_([A-Za-z0-9]+)$/;\nconst LEGACY_FORM_KEY_PREFIX_RE = /^__form_(\\d+)_([a-f0-9]+)$/;\n\nexport const buildFormFieldKey = (formId: number, fieldId: string): string =>\n `__submission_fields.${formId}.${fieldId.replaceAll('-', '')}`;\n\nexport const parseFormFieldKey = (key: string): { formId: number; fieldId: string } | null => {\n const match = FORM_FIELD_KEY_RE.exec(key) ?? FORM_FIELD_RUNTIME_PATH_RE.exec(key);\n if (match) {\n return { formId: Number(match[1]), fieldId: match[2] };\n }\n\n // Backward compatibility for already saved values.\n const oldMatch = LEGACY_FORM_KEY_RE.exec(key);\n if (oldMatch) {\n return { formId: Number(oldMatch[1]), fieldId: oldMatch[2] };\n }\n\n const legacyMatch = LEGACY_FORM_KEY_PREFIX_RE.exec(key);\n if (legacyMatch) {\n return { formId: Number(legacyMatch[1]), fieldId: legacyMatch[2] };\n }\n\n return null;\n};\n\nexport const isFormFieldKey = (key: string): boolean => parseFormFieldKey(key) !== null;\n\n/**\n * Submission keys may start with numeric properties, so dot notation is unsafe.\n */\nexport const toNunjucksFieldReference = (fieldKey: string): string => {\n const parsed = parseFormFieldKey(fieldKey);\n if (!parsed) {\n return fieldKey;\n }\n\n return `__submission_fields[\"${parsed.formId}\"][\"${parsed.fieldId}\"]`;\n};\n\nexport const getCalculatedFieldTypeFromFormItemType = (\n itemType: string,\n): FormCalculatedFieldType | null => {\n if (itemType === 'Number') {\n return 'number';\n }\n if (itemType === 'Date') {\n return 'date';\n }\n return null;\n};\n\nexport const getConditionalFieldTypeFromFormItemType = (\n itemType: string,\n): FormConditionalFieldType | null => {\n if (!itemType) {\n return null;\n }\n if (itemType === 'Number') {\n return 'number';\n }\n if (itemType === 'Picture' || itemType === 'Signature') {\n return null;\n }\n return 'string';\n};\n\nconst DEFAULT_FORM_NUMBER_SAMPLE = 44;\nconst DEFAULT_FORM_DATE_SAMPLE = '2026-01-15';\n\nexport const getFormFieldSampleValue = (\n field: Pick<FormFieldInfo, 'itemType' | 'sampleData'> & { header?: string },\n index = 0,\n): number | string => {\n if (typeof field.sampleData === 'number' || typeof field.sampleData === 'string') {\n return field.sampleData;\n }\n\n if (field.itemType === FormItemType.Number) {\n return DEFAULT_FORM_NUMBER_SAMPLE + index;\n }\n\n if (field.itemType === FormItemType.Date) {\n const [year, month, day] = DEFAULT_FORM_DATE_SAMPLE.split('-');\n const dayNumber = Number(day) + (index % 10);\n return `${year}-${month}-${String(dayNumber).padStart(2, '0')}`;\n }\n\n return field.header ? `${field.header} value` : 'sample';\n};\n"],"names":["FormItemType","FORM_FIELD_KEY_RE","FORM_FIELD_RUNTIME_PATH_RE","LEGACY_FORM_KEY_RE","LEGACY_FORM_KEY_PREFIX_RE","buildFormFieldKey","formId","fieldId","replaceAll","parseFormFieldKey","key","match","exec","Number","oldMatch","legacyMatch","isFormFieldKey","toNunjucksFieldReference","fieldKey","parsed","getCalculatedFieldTypeFromFormItemType","itemType","getConditionalFieldTypeFromFormItemType","DEFAULT_FORM_NUMBER_SAMPLE","DEFAULT_FORM_DATE_SAMPLE","getFormFieldSampleValue","field","index","sampleData","year","month","day","split","dayNumber","String","padStart","header"],"mappings":"AAYA,OAAO,IAAA,AAAWA,sCAAAA;;;;;;;;;;;WAAAA;MAWjB;AAKD,MAAMC,oBAAoB;AAC1B,MAAMC,6BAA6B;AACnC,MAAMC,qBAAqB;AAC3B,MAAMC,4BAA4B;AAElC,OAAO,MAAMC,oBAAoB,CAACC,QAAgBC,UAC9C,CAAC,oBAAoB,EAAED,OAAO,CAAC,EAAEC,QAAQC,UAAU,CAAC,KAAK,KAAK,CAAC;AAEnE,OAAO,MAAMC,oBAAoB,CAACC;QAChBT;IAAd,MAAMU,QAAQV,CAAAA,0BAAAA,kBAAkBW,IAAI,CAACF,kBAAvBT,qCAAAA,0BAA+BC,2BAA2BU,IAAI,CAACF;IAC7E,IAAIC,OAAO;QACP,OAAO;YAAEL,QAAQO,OAAOF,KAAK,CAAC,EAAE;YAAGJ,SAASI,KAAK,CAAC,EAAE;QAAC;IACzD;IAEA,mDAAmD;IACnD,MAAMG,WAAWX,mBAAmBS,IAAI,CAACF;IACzC,IAAII,UAAU;QACV,OAAO;YAAER,QAAQO,OAAOC,QAAQ,CAAC,EAAE;YAAGP,SAASO,QAAQ,CAAC,EAAE;QAAC;IAC/D;IAEA,MAAMC,cAAcX,0BAA0BQ,IAAI,CAACF;IACnD,IAAIK,aAAa;QACb,OAAO;YAAET,QAAQO,OAAOE,WAAW,CAAC,EAAE;YAAGR,SAASQ,WAAW,CAAC,EAAE;QAAC;IACrE;IAEA,OAAO;AACX,EAAE;AAEF,OAAO,MAAMC,iBAAiB,CAACN,MAAyBD,kBAAkBC,SAAS,KAAK;AAExF;;CAEC,GACD,OAAO,MAAMO,2BAA2B,CAACC;IACrC,MAAMC,SAASV,kBAAkBS;IACjC,IAAI,CAACC,QAAQ;QACT,OAAOD;IACX;IAEA,OAAO,CAAC,qBAAqB,EAAEC,OAAOb,MAAM,CAAC,IAAI,EAAEa,OAAOZ,OAAO,CAAC,EAAE,CAAC;AACzE,EAAE;AAEF,OAAO,MAAMa,yCAAyC,CAClDC;IAEA,IAAIA,aAAa,UAAU;QACvB,OAAO;IACX;IACA,IAAIA,aAAa,QAAQ;QACrB,OAAO;IACX;IACA,OAAO;AACX,EAAE;AAEF,OAAO,MAAMC,0CAA0C,CACnDD;IAEA,IAAI,CAACA,UAAU;QACX,OAAO;IACX;IACA,IAAIA,aAAa,UAAU;QACvB,OAAO;IACX;IACA,IAAIA,aAAa,aAAaA,aAAa,aAAa;QACpD,OAAO;IACX;IACA,OAAO;AACX,EAAE;AAEF,MAAME,6BAA6B;AACnC,MAAMC,2BAA2B;AAEjC,OAAO,MAAMC,0BAA0B,CACnCC,OACAC,QAAQ,CAAC;IAET,IAAI,OAAOD,MAAME,UAAU,KAAK,YAAY,OAAOF,MAAME,UAAU,KAAK,UAAU;QAC9E,OAAOF,MAAME,UAAU;IAC3B;IAEA,IAAIF,MAAML,QAAQ,eAA0B;QACxC,OAAOE,6BAA6BI;IACxC;IAEA,IAAID,MAAML,QAAQ,aAAwB;QACtC,MAAM,CAACQ,MAAMC,OAAOC,IAAI,GAAGP,yBAAyBQ,KAAK,CAAC;QAC1D,MAAMC,YAAYpB,OAAOkB,OAAQJ,QAAQ;QACzC,OAAO,GAAGE,KAAK,CAAC,EAAEC,MAAM,CAAC,EAAEI,OAAOD,WAAWE,QAAQ,CAAC,GAAG,MAAM;IACnE;IAEA,OAAOT,MAAMU,MAAM,GAAG,GAAGV,MAAMU,MAAM,CAAC,MAAM,CAAC,GAAG;AACpD,EAAE"}
|
package/dist/store.d.ts
CHANGED
|
@@ -7,10 +7,14 @@ export interface UnlayerDesignChangeInfo {
|
|
|
7
7
|
export declare class UnlayerStore {
|
|
8
8
|
readonly props: CreateUnlayerEditorProps;
|
|
9
9
|
readonly unlayerRef: UnlayerRef;
|
|
10
|
+
private readonly schemaDummyData;
|
|
11
|
+
private readonly dateSchemaFieldKeys;
|
|
10
12
|
private editor;
|
|
11
13
|
private isInit;
|
|
12
14
|
private iframe?;
|
|
13
15
|
private hasDesign;
|
|
16
|
+
private formFieldsByFormId;
|
|
17
|
+
private formFieldSamples;
|
|
14
18
|
private onMessageCB?;
|
|
15
19
|
private onChangeCB?;
|
|
16
20
|
private onSnapshotSaveCB?;
|
|
@@ -40,6 +44,10 @@ export declare class UnlayerStore {
|
|
|
40
44
|
private onDesignLoaded;
|
|
41
45
|
private onDesignUpdated;
|
|
42
46
|
private onPostMessage;
|
|
47
|
+
private updateFormFieldSamples;
|
|
48
|
+
private collectCalculatedFieldKeys;
|
|
49
|
+
private resolveDemoValue;
|
|
50
|
+
private buildCalculatedFieldDemoData;
|
|
43
51
|
private sendMessage;
|
|
44
52
|
private uploadImage;
|
|
45
53
|
private validateImage;
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA4C,MAAM,gBAAgB,CAAC;AAE7F,OAAO,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA4C,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EACH,aAAa,EACb,QAAQ,EAGX,MAAM,gBAAgB,CAAC;AAUxB,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAyIhG,MAAM,WAAW,uBAAuB;IACpC,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAmBD,qBAAa,YAAY;IAsBT,QAAQ,CAAC,KAAK,EAAE,wBAAwB;IArBpD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAc;IAElD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAoB;IACnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,gBAAgB,CAA+B;IAEvD,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;IAC5D,OAAO,CAAC,mBAAmB,CAAC,CAAgC;gBAEvC,KAAK,EAAE,wBAAwB;IAqCpD,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,oBAAoB,GAAI,oBAAoB,YAAY,CAAC,qBAAqB,CAAC,UAE7E;IAEF,YAAY,GAAI,OAAO,QAAQ,EAAE,UAE/B;IAEF,cAAc,GAAI,QAAQ,MAAM,EAAE,QAAQ,aAAa,EAAE,UAIvD;IAEF,mBAAmB,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAEnD;IAEF,OAAO,CAAC,cAAc,CAQpB;IAEF,OAAO,CAAC,eAAe,CAmCrB;IAEF,OAAO,CAAC,aAAa,CAuEnB;IAEF,OAAO,CAAC,sBAAsB,CAgB5B;IAEF,OAAO,CAAC,0BAA0B,CAyBhC;IAEF,OAAO,CAAC,gBAAgB,CAqCtB;IAEF,OAAO,CAAC,4BAA4B,CAiBlC;IAEF,OAAO,CAAC,WAAW,CAUjB;IAEF,OAAO,CAAC,WAAW,CAqCjB;IAEF,OAAO,CAAC,aAAa,CA+CnB;CACL"}
|
package/dist/store.js
CHANGED
|
@@ -14,6 +14,8 @@ function _define_property(obj, key, value) {
|
|
|
14
14
|
import { loadScript } from './loadScript';
|
|
15
15
|
import { defaultImageValidation } from './shared/configs';
|
|
16
16
|
import { unlayerSupportedFonts } from './shared/fonts';
|
|
17
|
+
import { getFormFieldSampleValue, parseFormFieldKey } from './shared/forms';
|
|
18
|
+
import { schemaBuildMap, schemaIsDate } from './shared/schema';
|
|
17
19
|
import { unlayerToolsParseTwinKey } from './shared/tools';
|
|
18
20
|
import { unlayerToolsIterate } from './tools';
|
|
19
21
|
import { createUnlayerEditor, DesignUpdatedEventType } from './unlayer';
|
|
@@ -64,7 +66,10 @@ const ensureChunksFonts = (data)=>{
|
|
|
64
66
|
const labelToken = normalizeFontToken(font.label);
|
|
65
67
|
const valueToken = normalizeFontToken(font.value);
|
|
66
68
|
const isUsedInDesign = usedFontTokens.has(labelToken) || usedFontTokens.has(valueToken);
|
|
67
|
-
const isUsedInHtml =
|
|
69
|
+
const isUsedInHtml = [
|
|
70
|
+
labelToken,
|
|
71
|
+
valueToken
|
|
72
|
+
].some((token)=>html.includes(token));
|
|
68
73
|
if ((isUsedInDesign || isUsedInHtml) && !existingLabels.has(font.label)) {
|
|
69
74
|
existingFonts.push(font);
|
|
70
75
|
existingLabels.add(font.label);
|
|
@@ -73,6 +78,55 @@ const ensureChunksFonts = (data)=>{
|
|
|
73
78
|
data.chunks.fonts = existingFonts;
|
|
74
79
|
return data;
|
|
75
80
|
};
|
|
81
|
+
const FORM_FIELD_DATA_POINT_PREFIX = 'FORM_FIELD_';
|
|
82
|
+
const getByPath = (data, path)=>{
|
|
83
|
+
if (!data || typeof data !== 'object') {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
return path.split('.').reduce((current, part)=>{
|
|
87
|
+
if (!current || typeof current !== 'object') {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
return current[part];
|
|
91
|
+
}, data);
|
|
92
|
+
};
|
|
93
|
+
const isPlainObject = (value)=>!!value && typeof value === 'object' && !Array.isArray(value);
|
|
94
|
+
const deepMerge = (...sources)=>{
|
|
95
|
+
const out = {};
|
|
96
|
+
for (const source of sources){
|
|
97
|
+
if (!isPlainObject(source)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
for (const [key, value] of Object.entries(source)){
|
|
101
|
+
if (isPlainObject(value) && isPlainObject(out[key])) {
|
|
102
|
+
out[key] = deepMerge(out[key], value);
|
|
103
|
+
} else {
|
|
104
|
+
out[key] = value;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return out;
|
|
109
|
+
};
|
|
110
|
+
const setByPath = (target, path, value)=>{
|
|
111
|
+
const parts = path.split('.');
|
|
112
|
+
if (!parts.length) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
let node = target;
|
|
116
|
+
for(let i = 0; i < parts.length - 1; i += 1){
|
|
117
|
+
const key = parts[i];
|
|
118
|
+
if (!isPlainObject(node[key])) {
|
|
119
|
+
node[key] = {};
|
|
120
|
+
}
|
|
121
|
+
node = node[key];
|
|
122
|
+
}
|
|
123
|
+
node[parts[parts.length - 1]] = value;
|
|
124
|
+
};
|
|
125
|
+
const tokenizeFormulaFields = (expression)=>{
|
|
126
|
+
const regex = /[A-Za-z_][A-Za-z0-9_.]*/g;
|
|
127
|
+
var _expression_match;
|
|
128
|
+
return (_expression_match = expression.match(regex)) !== null && _expression_match !== void 0 ? _expression_match : [];
|
|
129
|
+
};
|
|
76
130
|
// We are using exclusive lists here, because we can't be sure that we know all unlayer event types
|
|
77
131
|
const eventsNotChangingToolsList = [
|
|
78
132
|
DesignUpdatedEventType.ContentMoved,
|
|
@@ -92,10 +146,14 @@ export class UnlayerStore {
|
|
|
92
146
|
constructor(props){
|
|
93
147
|
_define_property(this, "props", void 0);
|
|
94
148
|
_define_property(this, "unlayerRef", void 0);
|
|
149
|
+
_define_property(this, "schemaDummyData", void 0);
|
|
150
|
+
_define_property(this, "dateSchemaFieldKeys", void 0);
|
|
95
151
|
_define_property(this, "editor", void 0);
|
|
96
152
|
_define_property(this, "isInit", void 0);
|
|
97
153
|
_define_property(this, "iframe", void 0);
|
|
98
154
|
_define_property(this, "hasDesign", void 0);
|
|
155
|
+
_define_property(this, "formFieldsByFormId", void 0);
|
|
156
|
+
_define_property(this, "formFieldSamples", void 0);
|
|
99
157
|
_define_property(this, "onMessageCB", void 0);
|
|
100
158
|
_define_property(this, "onChangeCB", void 0);
|
|
101
159
|
_define_property(this, "onSnapshotSaveCB", void 0);
|
|
@@ -124,12 +182,18 @@ export class UnlayerStore {
|
|
|
124
182
|
_define_property(this, "onDesignLoaded", void 0);
|
|
125
183
|
_define_property(this, "onDesignUpdated", void 0);
|
|
126
184
|
_define_property(this, "onPostMessage", void 0);
|
|
185
|
+
_define_property(this, "updateFormFieldSamples", void 0);
|
|
186
|
+
_define_property(this, "collectCalculatedFieldKeys", void 0);
|
|
187
|
+
_define_property(this, "resolveDemoValue", void 0);
|
|
188
|
+
_define_property(this, "buildCalculatedFieldDemoData", void 0);
|
|
127
189
|
_define_property(this, "sendMessage", void 0);
|
|
128
190
|
_define_property(this, "uploadImage", void 0);
|
|
129
191
|
_define_property(this, "validateImage", void 0);
|
|
130
192
|
this.props = props;
|
|
131
193
|
this.isInit = false;
|
|
132
194
|
this.hasDesign = false;
|
|
195
|
+
this.formFieldsByFormId = {};
|
|
196
|
+
this.formFieldSamples = {};
|
|
133
197
|
this.init = async (container)=>{
|
|
134
198
|
if (this.isInit) {
|
|
135
199
|
return;
|
|
@@ -200,6 +264,8 @@ export class UnlayerStore {
|
|
|
200
264
|
});
|
|
201
265
|
};
|
|
202
266
|
this.sendFormFields = (formId, fields)=>{
|
|
267
|
+
this.formFieldsByFormId[formId] = fields;
|
|
268
|
+
this.updateFormFieldSamples(formId, fields);
|
|
203
269
|
this.sendMessage('--form-fields', {
|
|
204
270
|
formId,
|
|
205
271
|
fields
|
|
@@ -332,6 +398,76 @@ export class UnlayerStore {
|
|
|
332
398
|
}
|
|
333
399
|
(_this_onMessageCB = (_this = this).onMessageCB) === null || _this_onMessageCB === void 0 ? void 0 : _this_onMessageCB.call(_this, type, data);
|
|
334
400
|
};
|
|
401
|
+
this.updateFormFieldSamples = (formId, fields)=>{
|
|
402
|
+
fields.forEach((field, index)=>{
|
|
403
|
+
var _field_id;
|
|
404
|
+
const normalizedFieldId = String((_field_id = field.id) !== null && _field_id !== void 0 ? _field_id : '').replaceAll('-', '');
|
|
405
|
+
if (!normalizedFieldId) {
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
const sampleValue = getFormFieldSampleValue(field, index);
|
|
409
|
+
setByPath(this.formFieldSamples, `__submission_fields.${formId}.${normalizedFieldId}`, sampleValue);
|
|
410
|
+
this.formFieldSamples[`${FORM_FIELD_DATA_POINT_PREFIX}${normalizedFieldId}`] = sampleValue;
|
|
411
|
+
});
|
|
412
|
+
};
|
|
413
|
+
this.collectCalculatedFieldKeys = (design)=>{
|
|
414
|
+
const keys = new Set();
|
|
415
|
+
if (!design) {
|
|
416
|
+
return keys;
|
|
417
|
+
}
|
|
418
|
+
unlayerToolsIterate(design, (tool)=>{
|
|
419
|
+
var _tool_values;
|
|
420
|
+
const calc = (_tool_values = tool.values) === null || _tool_values === void 0 ? void 0 : _tool_values.calculation;
|
|
421
|
+
if (!calc || typeof calc !== 'object') {
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
if (typeof calc.expression === 'string') {
|
|
425
|
+
for (const key of tokenizeFormulaFields(calc.expression)){
|
|
426
|
+
keys.add(key);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
if (calc.fieldLabels && typeof calc.fieldLabels === 'object') {
|
|
430
|
+
Object.keys(calc.fieldLabels).forEach((key)=>keys.add(key));
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
return keys;
|
|
434
|
+
};
|
|
435
|
+
this.resolveDemoValue = (key, fallbackIndex, sourceData)=>{
|
|
436
|
+
const parsedFormField = parseFormFieldKey(key);
|
|
437
|
+
if (parsedFormField) {
|
|
438
|
+
const normalizedFieldId = parsedFormField.fieldId;
|
|
439
|
+
var _this_formFieldsByFormId_parsedFormField_formId;
|
|
440
|
+
const formFields = (_this_formFieldsByFormId_parsedFormField_formId = this.formFieldsByFormId[parsedFormField.formId]) !== null && _this_formFieldsByFormId_parsedFormField_formId !== void 0 ? _this_formFieldsByFormId_parsedFormField_formId : [];
|
|
441
|
+
const fieldIndex = formFields.findIndex((field)=>{
|
|
442
|
+
var _field_id;
|
|
443
|
+
return String((_field_id = field.id) !== null && _field_id !== void 0 ? _field_id : '').replaceAll('-', '') === normalizedFieldId;
|
|
444
|
+
});
|
|
445
|
+
const field = fieldIndex >= 0 ? formFields[fieldIndex] : undefined;
|
|
446
|
+
const sample = field ? getFormFieldSampleValue(field, fieldIndex) : getByPath(this.formFieldSamples, `__submission_fields.${parsedFormField.formId}.${normalizedFieldId}`);
|
|
447
|
+
if (sample !== undefined) {
|
|
448
|
+
return sample;
|
|
449
|
+
}
|
|
450
|
+
return this.dateSchemaFieldKeys.has(key) ? '2026-01-15' : 44 + fallbackIndex;
|
|
451
|
+
}
|
|
452
|
+
const existing = getByPath(sourceData, key);
|
|
453
|
+
if (existing !== undefined) {
|
|
454
|
+
return existing;
|
|
455
|
+
}
|
|
456
|
+
if (this.dateSchemaFieldKeys.has(key)) {
|
|
457
|
+
return '2026-01-15';
|
|
458
|
+
}
|
|
459
|
+
return 44 + fallbackIndex;
|
|
460
|
+
};
|
|
461
|
+
this.buildCalculatedFieldDemoData = (design)=>{
|
|
462
|
+
const demoData = {};
|
|
463
|
+
const usedKeys = Array.from(this.collectCalculatedFieldKeys(design));
|
|
464
|
+
const sourceData = deepMerge(this.schemaDummyData, this.props.dummyData, this.formFieldSamples);
|
|
465
|
+
usedKeys.forEach((key, index)=>{
|
|
466
|
+
const value = this.resolveDemoValue(key, index, sourceData);
|
|
467
|
+
setByPath(demoData, key, value);
|
|
468
|
+
});
|
|
469
|
+
return demoData;
|
|
470
|
+
};
|
|
335
471
|
this.sendMessage = (type, data)=>{
|
|
336
472
|
var _this_iframe_contentWindow, _this_iframe;
|
|
337
473
|
(_this_iframe = this.iframe) === null || _this_iframe === void 0 ? void 0 : (_this_iframe_contentWindow = _this_iframe.contentWindow) === null || _this_iframe_contentWindow === void 0 ? void 0 : _this_iframe_contentWindow.postMessage({
|
|
@@ -422,6 +558,11 @@ export class UnlayerStore {
|
|
|
422
558
|
img.src = objectUrl;
|
|
423
559
|
});
|
|
424
560
|
};
|
|
561
|
+
const schemaData = this.props.schema ? schemaBuildMap(this.props.schema) : undefined;
|
|
562
|
+
var _schemaData_dummyData;
|
|
563
|
+
this.schemaDummyData = (_schemaData_dummyData = schemaData === null || schemaData === void 0 ? void 0 : schemaData.dummyData) !== null && _schemaData_dummyData !== void 0 ? _schemaData_dummyData : {};
|
|
564
|
+
var _schemaData_map;
|
|
565
|
+
this.dateSchemaFieldKeys = new Set(Object.values((_schemaData_map = schemaData === null || schemaData === void 0 ? void 0 : schemaData.map) !== null && _schemaData_map !== void 0 ? _schemaData_map : {}).filter((field)=>field.isValue && schemaIsDate(field.node)).map((field)=>field.fullKey));
|
|
425
566
|
this.props.eSignFieldTypes = [
|
|
426
567
|
'Signature',
|
|
427
568
|
'Initials',
|
|
@@ -440,7 +581,9 @@ export class UnlayerStore {
|
|
|
440
581
|
exportHtml: (cb)=>{
|
|
441
582
|
var _this_editor;
|
|
442
583
|
(_this_editor = this.editor) === null || _this_editor === void 0 ? void 0 : _this_editor.exportHtml((data)=>{
|
|
443
|
-
|
|
584
|
+
const result = ensureChunksFonts(data);
|
|
585
|
+
result.demoData = this.buildCalculatedFieldDemoData(result.design);
|
|
586
|
+
cb(result);
|
|
444
587
|
});
|
|
445
588
|
},
|
|
446
589
|
sendFormList: (forms)=>{
|
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 { unlayerSupportedFonts } from './shared/fonts';\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\nconst normalizeFontToken = (font: string) =>\n font\n .replace(/[\"']/g, '')\n .split(',')[0]\n .trim()\n .toLowerCase();\n\nconst getDesignFontTokens = (value: any, out: Set<string>) => {\n if (!value || typeof value !== 'object') {\n return;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n getDesignFontTokens(item, out);\n }\n\n return;\n }\n\n for (const [key, fieldValue] of Object.entries(value)) {\n if (key === 'fontFamily') {\n if (typeof fieldValue === 'string') {\n out.add(normalizeFontToken(fieldValue));\n } else if (fieldValue && typeof fieldValue === 'object') {\n const fontFamilyValue = fieldValue as { label?: string; value?: string };\n\n if (typeof fontFamilyValue.label === 'string') {\n out.add(normalizeFontToken(fontFamilyValue.label));\n }\n\n if (typeof fontFamilyValue.value === 'string') {\n out.add(normalizeFontToken(fontFamilyValue.value));\n }\n }\n }\n\n if (fieldValue && typeof fieldValue === 'object') {\n getDesignFontTokens(fieldValue, out);\n }\n }\n};\n\nconst ensureChunksFonts = (data: any) => {\n if (!data || typeof data !== 'object') {\n return data;\n }\n\n data.chunks ??= {};\n\n const existingFonts: any[] = Array.isArray(data.chunks.fonts) ? data.chunks.fonts : [];\n const existingLabels = new Set(existingFonts.map((f: any) => f.label));\n\n const usedFontTokens = new Set<string>();\n getDesignFontTokens(data.design, usedFontTokens);\n\n const html = typeof data.html === 'string' ? data.html.toLowerCase() : '';\n\n for (const font of unlayerSupportedFonts) {\n const labelToken = normalizeFontToken(font.label);\n const valueToken = normalizeFontToken(font.value);\n const isUsedInDesign = usedFontTokens.has(labelToken) || usedFontTokens.has(valueToken);\n const isUsedInHtml = !!html && (html.includes(labelToken) || html.includes(valueToken));\n\n if ((isUsedInDesign || isUsedInHtml) && !existingLabels.has(font.label)) {\n existingFonts.push(font);\n existingLabels.add(font.label);\n }\n }\n\n data.chunks.fonts = existingFonts;\n return data;\n};\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 private onCalcFieldSelectCB?: (fieldKeys: string[]) => 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(ensureChunksFonts(data));\n });\n },\n sendFormList: forms => {\n this.sendFormList(forms);\n },\n sendFormFields: (formId, fields) => {\n this.sendFormFields(formId, fields);\n },\n sendCalcFieldLabels: labels => {\n this.sendCalcFieldLabels(labels);\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 setOnCalcFieldSelect = (onCalcFieldSelect?: UnlayerStore['onCalcFieldSelectCB']) => {\n this.onCalcFieldSelectCB = onCalcFieldSelect;\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 sendCalcFieldLabels = (labels: Record<string, string>) => {\n this.sendMessage('--calc-field-labels', { labels });\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 === '--calc-field-select') {\n if (this.onCalcFieldSelectCB) {\n this.onCalcFieldSelectCB(data?.fieldKeys ?? []);\n } else {\n this.sendCalcFieldLabels({});\n }\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","unlayerSupportedFonts","unlayerToolsParseTwinKey","unlayerToolsIterate","createUnlayerEditor","DesignUpdatedEventType","defaultScriptUrl","normalizeFontToken","font","replace","split","trim","toLowerCase","getDesignFontTokens","value","out","Array","isArray","item","key","fieldValue","Object","entries","add","fontFamilyValue","label","ensureChunksFonts","data","chunks","existingFonts","fonts","existingLabels","Set","map","f","usedFontTokens","design","html","labelToken","valueToken","isUsedInDesign","has","isUsedInHtml","includes","push","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","onCalcFieldSelectCB","init","destroy","addTwin","setDesign","setOnChange","setOnSnapshotSave","setOnReady","setOnImage","setOnError","setOnMessage","setOnFormSelect","setOnCalcFieldOpen","setOnCalcFieldSelect","sendFormList","sendFormFields","sendCalcFieldLabels","onDesignLoaded","onDesignUpdated","onPostMessage","sendMessage","uploadImage","validateImage","container","setTimeout","window","addEventListener","registerCallback","querySelector","undefined","removeEventListener","unregisterCallback","twin","toolTwins","JSON","parse","stringify","loadDesign","onChange","onSnapshotSave","onReady","onImage","onError","onMessage","onFormSelect","onCalcFieldOpen","onCalcFieldSelect","forms","formId","fields","labels","setBodyValues","backgroundColor","contentWidth","event","isToolAdded","type","isToolsListChanged","exportHtml","hasChanges","tool","realTool","slug","counters","values","_meta","htmlID","e","configData","dummyData","schema","generics","genericConfigMode","isSnapshotMode","holidays","usedFormIds","fieldKeys","customTools","tools","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 { unlayerSupportedFonts } from './shared/fonts';\nimport {\n FormFieldInfo,\n FormInfo,\n getFormFieldSampleValue,\n parseFormFieldKey,\n} from './shared/forms';\nimport { schemaBuildMap, schemaIsDate } from './shared/schema';\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\nconst normalizeFontToken = (font: string) =>\n font.replace(/[\"']/g, '').split(',')[0].trim().toLowerCase();\n\nconst getDesignFontTokens = (value: any, out: Set<string>) => {\n if (!value || typeof value !== 'object') {\n return;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n getDesignFontTokens(item, out);\n }\n\n return;\n }\n\n for (const [key, fieldValue] of Object.entries(value)) {\n if (key === 'fontFamily') {\n if (typeof fieldValue === 'string') {\n out.add(normalizeFontToken(fieldValue));\n } else if (fieldValue && typeof fieldValue === 'object') {\n const fontFamilyValue = fieldValue as { label?: string; value?: string };\n\n if (typeof fontFamilyValue.label === 'string') {\n out.add(normalizeFontToken(fontFamilyValue.label));\n }\n\n if (typeof fontFamilyValue.value === 'string') {\n out.add(normalizeFontToken(fontFamilyValue.value));\n }\n }\n }\n\n if (fieldValue && typeof fieldValue === 'object') {\n getDesignFontTokens(fieldValue, out);\n }\n }\n};\n\nconst ensureChunksFonts = (data: any) => {\n if (!data || typeof data !== 'object') {\n return data;\n }\n\n data.chunks ??= {};\n\n const existingFonts: any[] = Array.isArray(data.chunks.fonts) ? data.chunks.fonts : [];\n const existingLabels = new Set(existingFonts.map((f: any) => f.label));\n\n const usedFontTokens = new Set<string>();\n getDesignFontTokens(data.design, usedFontTokens);\n\n const html = typeof data.html === 'string' ? data.html.toLowerCase() : '';\n\n for (const font of unlayerSupportedFonts) {\n const labelToken = normalizeFontToken(font.label);\n const valueToken = normalizeFontToken(font.value);\n const isUsedInDesign = usedFontTokens.has(labelToken) || usedFontTokens.has(valueToken);\n const isUsedInHtml = [labelToken, valueToken].some(token => html.includes(token));\n\n if ((isUsedInDesign || isUsedInHtml) && !existingLabels.has(font.label)) {\n existingFonts.push(font);\n existingLabels.add(font.label);\n }\n }\n\n data.chunks.fonts = existingFonts;\n return data;\n};\n\nconst FORM_FIELD_DATA_POINT_PREFIX = 'FORM_FIELD_';\n\nconst getByPath = (data: unknown, path: string): unknown => {\n if (!data || typeof data !== 'object') {\n return undefined;\n }\n\n return path.split('.').reduce<unknown>((current, part) => {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n\n return (current as Record<string, unknown>)[part];\n }, data);\n};\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> =>\n !!value && typeof value === 'object' && !Array.isArray(value);\n\nconst deepMerge = (...sources: unknown[]): Record<string, unknown> => {\n const out: Record<string, unknown> = {};\n\n for (const source of sources) {\n if (!isPlainObject(source)) {\n continue;\n }\n\n for (const [key, value] of Object.entries(source)) {\n if (isPlainObject(value) && isPlainObject(out[key])) {\n out[key] = deepMerge(out[key], value);\n } else {\n out[key] = value;\n }\n }\n }\n\n return out;\n};\n\nconst setByPath = (target: Record<string, unknown>, path: string, value: unknown) => {\n const parts = path.split('.');\n if (!parts.length) {\n return;\n }\n\n let node: Record<string, unknown> = target;\n\n for (let i = 0; i < parts.length - 1; i += 1) {\n const key = parts[i];\n if (!isPlainObject(node[key])) {\n node[key] = {};\n }\n node = node[key] as Record<string, unknown>;\n }\n\n node[parts[parts.length - 1]] = value;\n};\n\nconst tokenizeFormulaFields = (expression: string): string[] => {\n const regex = /[A-Za-z_][A-Za-z0-9_.]*/g;\n return expression.match(regex) ?? [];\n};\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 private readonly schemaDummyData: Record<string, unknown>;\n private readonly dateSchemaFieldKeys: Set<string>;\n\n private editor: Unlayer | undefined;\n private isInit = false;\n private iframe?: HTMLIFrameElement;\n private hasDesign = false;\n private formFieldsByFormId: Record<number, FormFieldInfo[]> = {};\n private formFieldSamples: Record<string, unknown> = {};\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 private onCalcFieldSelectCB?: (fieldKeys: string[]) => void;\n\n constructor(readonly props: CreateUnlayerEditorProps) {\n const schemaData = this.props.schema ? schemaBuildMap(this.props.schema) : undefined;\n this.schemaDummyData = (schemaData?.dummyData ?? {}) as Record<string, unknown>;\n this.dateSchemaFieldKeys = new Set(\n Object.values(schemaData?.map ?? {})\n .filter(field => field.isValue && schemaIsDate(field.node))\n .map(field => field.fullKey),\n );\n\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 const result = ensureChunksFonts(data);\n result.demoData = this.buildCalculatedFieldDemoData(result.design);\n cb(result);\n });\n },\n sendFormList: forms => {\n this.sendFormList(forms);\n },\n sendFormFields: (formId, fields) => {\n this.sendFormFields(formId, fields);\n },\n sendCalcFieldLabels: labels => {\n this.sendCalcFieldLabels(labels);\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 setOnCalcFieldSelect = (onCalcFieldSelect?: UnlayerStore['onCalcFieldSelectCB']) => {\n this.onCalcFieldSelectCB = onCalcFieldSelect;\n };\n\n sendFormList = (forms: FormInfo[]) => {\n this.sendMessage('--form-list', { forms });\n };\n\n sendFormFields = (formId: number, fields: FormFieldInfo[]) => {\n this.formFieldsByFormId[formId] = fields;\n this.updateFormFieldSamples(formId, fields);\n this.sendMessage('--form-fields', { formId, fields });\n };\n\n sendCalcFieldLabels = (labels: Record<string, string>) => {\n this.sendMessage('--calc-field-labels', { labels });\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 === '--calc-field-select') {\n if (this.onCalcFieldSelectCB) {\n this.onCalcFieldSelectCB(data?.fieldKeys ?? []);\n } else {\n this.sendCalcFieldLabels({});\n }\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 updateFormFieldSamples = (formId: number, fields: FormFieldInfo[]) => {\n fields.forEach((field, index) => {\n const normalizedFieldId = String(field.id ?? '').replaceAll('-', '');\n if (!normalizedFieldId) {\n return;\n }\n\n const sampleValue = getFormFieldSampleValue(field, index);\n setByPath(\n this.formFieldSamples,\n `__submission_fields.${formId}.${normalizedFieldId}`,\n sampleValue,\n );\n this.formFieldSamples[`${FORM_FIELD_DATA_POINT_PREFIX}${normalizedFieldId}`] =\n sampleValue;\n });\n };\n\n private collectCalculatedFieldKeys = (design?: UnlayerDesignFormat): Set<string> => {\n const keys = new Set<string>();\n\n if (!design) {\n return keys;\n }\n\n unlayerToolsIterate(design, tool => {\n const calc = tool.values?.calculation;\n if (!calc || typeof calc !== 'object') {\n return;\n }\n\n if (typeof calc.expression === 'string') {\n for (const key of tokenizeFormulaFields(calc.expression)) {\n keys.add(key);\n }\n }\n\n if (calc.fieldLabels && typeof calc.fieldLabels === 'object') {\n Object.keys(calc.fieldLabels).forEach(key => keys.add(key));\n }\n });\n\n return keys;\n };\n\n private resolveDemoValue = (\n key: string,\n fallbackIndex: number,\n sourceData: Record<string, unknown>,\n ): unknown => {\n const parsedFormField = parseFormFieldKey(key);\n if (parsedFormField) {\n const normalizedFieldId = parsedFormField.fieldId;\n const formFields = this.formFieldsByFormId[parsedFormField.formId] ?? [];\n const fieldIndex = formFields.findIndex(\n field => String(field.id ?? '').replaceAll('-', '') === normalizedFieldId,\n );\n const field = fieldIndex >= 0 ? formFields[fieldIndex] : undefined;\n const sample = field\n ? getFormFieldSampleValue(field, fieldIndex)\n : getByPath(\n this.formFieldSamples,\n `__submission_fields.${parsedFormField.formId}.${normalizedFieldId}`,\n );\n\n if (sample !== undefined) {\n return sample;\n }\n\n return this.dateSchemaFieldKeys.has(key) ? '2026-01-15' : 44 + fallbackIndex;\n }\n\n const existing = getByPath(sourceData, key);\n if (existing !== undefined) {\n return existing;\n }\n\n if (this.dateSchemaFieldKeys.has(key)) {\n return '2026-01-15';\n }\n\n return 44 + fallbackIndex;\n };\n\n private buildCalculatedFieldDemoData = (\n design?: UnlayerDesignFormat,\n ): Record<string, unknown> => {\n const demoData: Record<string, unknown> = {};\n const usedKeys = Array.from(this.collectCalculatedFieldKeys(design));\n const sourceData = deepMerge(\n this.schemaDummyData,\n this.props.dummyData,\n this.formFieldSamples,\n );\n\n usedKeys.forEach((key, index) => {\n const value = this.resolveDemoValue(key, index, sourceData);\n setByPath(demoData, key, value);\n });\n\n return demoData;\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","unlayerSupportedFonts","getFormFieldSampleValue","parseFormFieldKey","schemaBuildMap","schemaIsDate","unlayerToolsParseTwinKey","unlayerToolsIterate","createUnlayerEditor","DesignUpdatedEventType","defaultScriptUrl","normalizeFontToken","font","replace","split","trim","toLowerCase","getDesignFontTokens","value","out","Array","isArray","item","key","fieldValue","Object","entries","add","fontFamilyValue","label","ensureChunksFonts","data","chunks","existingFonts","fonts","existingLabels","Set","map","f","usedFontTokens","design","html","labelToken","valueToken","isUsedInDesign","has","isUsedInHtml","some","token","includes","push","FORM_FIELD_DATA_POINT_PREFIX","getByPath","path","undefined","reduce","current","part","isPlainObject","deepMerge","sources","source","setByPath","target","parts","length","node","i","tokenizeFormulaFields","expression","regex","match","eventsNotChangingToolsList","ContentMoved","ContentModified","ColumnModified","RowMoved","RowModified","BodyModified","eventsNotAddingTools","ContentRemoved","ColumnRemoved","RowRemoved","UnlayerStore","props","unlayerRef","schemaDummyData","dateSchemaFieldKeys","editor","isInit","iframe","hasDesign","formFieldsByFormId","formFieldSamples","onMessageCB","onChangeCB","onSnapshotSaveCB","onReadyCB","onImageCB","onErrorCB","onFormSelectCB","onCalcFieldOpenCB","onCalcFieldSelectCB","init","destroy","addTwin","setDesign","setOnChange","setOnSnapshotSave","setOnReady","setOnImage","setOnError","setOnMessage","setOnFormSelect","setOnCalcFieldOpen","setOnCalcFieldSelect","sendFormList","sendFormFields","sendCalcFieldLabels","onDesignLoaded","onDesignUpdated","onPostMessage","updateFormFieldSamples","collectCalculatedFieldKeys","resolveDemoValue","buildCalculatedFieldDemoData","sendMessage","uploadImage","validateImage","container","setTimeout","window","addEventListener","registerCallback","querySelector","removeEventListener","unregisterCallback","twin","toolTwins","JSON","parse","stringify","loadDesign","onChange","onSnapshotSave","onReady","onImage","onError","onMessage","onFormSelect","onCalcFieldOpen","onCalcFieldSelect","forms","formId","fields","labels","setBodyValues","backgroundColor","contentWidth","event","isToolAdded","type","isToolsListChanged","exportHtml","hasChanges","tool","realTool","slug","counters","values","_meta","htmlID","e","configData","dummyData","schema","generics","genericConfigMode","isSnapshotMode","holidays","usedFormIds","fieldKeys","customTools","tools","eSignRecipients","eSignFieldTypes","units","unit","adminConfig","template","id","title","forEach","field","index","normalizedFieldId","String","replaceAll","sampleValue","keys","calc","calculation","fieldLabels","fallbackIndex","sourceData","parsedFormField","fieldId","formFields","fieldIndex","findIndex","sample","existing","demoData","usedKeys","from","contentWindow","postMessage","done","progress","Error","attachments","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","schemaData","filter","isValue","fullKey","saveDesign","cb","result"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlayer-interface.d.ts","sourceRoot":"","sources":["../src/unlayer-interface.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,+BAA+B,EAC/B,iBAAiB,EACjB,iBAAiB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;CACf;AACD,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAC9D,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE;QACF,IAAI,EAAE;YACF,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,OAAO,EAAE;gBACL,QAAQ,EAAE,iBAAiB,EAAE,CAAC;gBAC9B,MAAM,CAAC,EAAE,GAAG,CAAC;aAChB,EAAE,CAAC;YACJ,MAAM,CAAC,EAAE,GAAG,CAAC;SAChB,EAAE,CAAC;QACJ,MAAM,CAAC,EAAE,GAAG,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,mBAAmB,CAAC;
|
|
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 sendFormList(forms: FormInfo[]): void;\n sendFormFields(formId: number, fields: FormFieldInfo[]): void;\n sendCalcFieldLabels(labels: Record<string, string>): 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 /** Override portal target for the display-conditions dialog (defaults: shadow root when embedded, else `document.body`). */\n displayConditionModalPortalContainer?: Element | DocumentFragment | null;\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 onCalcFieldSelect?: (fieldKeys: string[]) => void;\n onConditionalsOpen?: (\n usedFormIds: number[],\n sendFormList: (forms: FormInfo[]) => void,\n sendFormFields: (formId: number, fields: FormFieldInfo[]) => void,\n ) => void;\n onConditionFormSelect?: (\n formId: number,\n sendFormFields: (formId: number, fields: FormFieldInfo[]) => void,\n ) => void;\n}\n"],"names":[],"mappings":"
|
|
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 demoData?: Record<string, unknown>;\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 sendCalcFieldLabels(labels: Record<string, string>): 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 /** Override portal target for the display-conditions dialog (defaults: shadow root when embedded, else `document.body`). */\n displayConditionModalPortalContainer?: Element | DocumentFragment | null;\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 onCalcFieldSelect?: (fieldKeys: string[]) => void;\n onConditionalsOpen?: (\n usedFormIds: number[],\n sendFormList: (forms: FormInfo[]) => void,\n sendFormFields: (formId: number, fields: FormFieldInfo[]) => void,\n ) => void;\n onConditionFormSelect?: (\n formId: number,\n sendFormFields: (formId: number, fields: FormFieldInfo[]) => void,\n ) => void;\n}\n"],"names":[],"mappings":"AA+DA,WA4CC"}
|
package/dist/unlayer.d.ts
CHANGED
package/dist/unlayer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlayer.d.ts","sourceRoot":"","sources":["../src/unlayer.tsx"],"names":[],"mappings":"AASA,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;
|
|
1
|
+
{"version":3,"file":"unlayer.d.ts","sourceRoot":"","sources":["../src/unlayer.tsx"],"names":[],"mappings":"AASA,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;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;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,gOAgBG,wBAAwB,KAC5B,OAoLF,CAAC"}
|