@servicetitan/dte-unlayer 0.126.0 → 0.128.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.
@@ -67,7 +67,7 @@ export const unlayerSupportedFonts = [
67
67
  {
68
68
  label: 'Sofia Pro',
69
69
  value: 'Sofia Pro',
70
- url: 'https://fonts.cdnfonts.com/css/sofia-pro'
70
+ url: 'https://fonts.googleapis.com/css2?family=Sofia+Sans:ital,wght@0,1..1000;1,1..1000&display=swap'
71
71
  },
72
72
  {
73
73
  label: 'Nunito',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/fonts.ts"],"sourcesContent":["export const unlayerSupportedFonts = [\n {\n label: 'Arial',\n value: 'arial,helvetica,sans-serif',\n },\n {\n label: 'Lobster Two',\n value: \"'Lobster Two',cursive\",\n url: 'https://fonts.googleapis.com/css?family=Lobster+Two:400,700',\n },\n {\n label: 'Playfair Display',\n value: \"'Playfair Display',serif\",\n url: 'https://fonts.googleapis.com/css?family=Playfair+Display:400,700',\n },\n {\n label: 'Rubik',\n value: \"'Rubik',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Rubik:400,700',\n },\n {\n label: 'Source Sans Pro',\n value: \"'Source Sans Pro',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700',\n },\n {\n label: 'Open Sans',\n value: \"'Open Sans',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Open+Sans:400,700',\n },\n {\n label: 'Crimson Text',\n value: \"'Crimson Text',serif\",\n url: 'https://fonts.googleapis.com/css?family=Crimson+Text:400,700',\n },\n {\n label: 'Montserrat',\n value: \"'Montserrat',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Montserrat:400,700',\n },\n {\n label: 'Old Standard TT',\n value: \"'Old Standard TT',serif\",\n url: 'https://fonts.googleapis.com/css?family=Old+Standard+TT:400,700',\n },\n {\n label: 'Lato',\n value: \"'Lato',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Lato:400,700',\n },\n {\n label: 'Raleway',\n value: \"'Raleway',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Raleway:400,700',\n },\n {\n label: 'Cabin',\n value: \"'Cabin',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Cabin:400,700',\n },\n {\n label: 'Pacifico',\n value: \"'Pacifico',cursive\",\n url: 'https://fonts.googleapis.com/css?family=Pacifico',\n },\n // custom DTE fonts\n {\n label: 'Sofia Pro',\n value: 'Sofia Pro',\n url: 'https://fonts.cdnfonts.com/css/sofia-pro',\n },\n {\n label: 'Nunito',\n value: 'Nunito',\n url: 'https://fonts.googleapis.com/css?family=Nunito',\n },\n];\n"],"names":["unlayerSupportedFonts","label","value","url"],"mappings":"AAAA,OAAO,MAAMA,wBAAwB;IACjC;QACIC,OAAO;QACPC,OAAO;IACX;IACA;QACID,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA,mBAAmB;IACnB;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;CACH,CAAC"}
1
+ {"version":3,"sources":["../../src/shared/fonts.ts"],"sourcesContent":["export const unlayerSupportedFonts = [\n {\n label: 'Arial',\n value: 'arial,helvetica,sans-serif',\n },\n {\n label: 'Lobster Two',\n value: \"'Lobster Two',cursive\",\n url: 'https://fonts.googleapis.com/css?family=Lobster+Two:400,700',\n },\n {\n label: 'Playfair Display',\n value: \"'Playfair Display',serif\",\n url: 'https://fonts.googleapis.com/css?family=Playfair+Display:400,700',\n },\n {\n label: 'Rubik',\n value: \"'Rubik',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Rubik:400,700',\n },\n {\n label: 'Source Sans Pro',\n value: \"'Source Sans Pro',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700',\n },\n {\n label: 'Open Sans',\n value: \"'Open Sans',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Open+Sans:400,700',\n },\n {\n label: 'Crimson Text',\n value: \"'Crimson Text',serif\",\n url: 'https://fonts.googleapis.com/css?family=Crimson+Text:400,700',\n },\n {\n label: 'Montserrat',\n value: \"'Montserrat',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Montserrat:400,700',\n },\n {\n label: 'Old Standard TT',\n value: \"'Old Standard TT',serif\",\n url: 'https://fonts.googleapis.com/css?family=Old+Standard+TT:400,700',\n },\n {\n label: 'Lato',\n value: \"'Lato',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Lato:400,700',\n },\n {\n label: 'Raleway',\n value: \"'Raleway',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Raleway:400,700',\n },\n {\n label: 'Cabin',\n value: \"'Cabin',sans-serif\",\n url: 'https://fonts.googleapis.com/css?family=Cabin:400,700',\n },\n {\n label: 'Pacifico',\n value: \"'Pacifico',cursive\",\n url: 'https://fonts.googleapis.com/css?family=Pacifico',\n },\n // custom DTE fonts\n {\n label: 'Sofia Pro',\n value: 'Sofia Pro',\n url: 'https://fonts.googleapis.com/css2?family=Sofia+Sans:ital,wght@0,1..1000;1,1..1000&display=swap',\n },\n {\n label: 'Nunito',\n value: 'Nunito',\n url: 'https://fonts.googleapis.com/css?family=Nunito',\n },\n];\n"],"names":["unlayerSupportedFonts","label","value","url"],"mappings":"AAAA,OAAO,MAAMA,wBAAwB;IACjC;QACIC,OAAO;QACPC,OAAO;IACX;IACA;QACID,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA,mBAAmB;IACnB;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;IACA;QACIF,OAAO;QACPC,OAAO;QACPC,KAAK;IACT;CACH,CAAC"}
@@ -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,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AASzD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAoFhG,MAAM,WAAW,uBAAuB;IACpC,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAmBD,qBAAa,YAAY;IAkBT,QAAQ,CAAC,KAAK,EAAE,wBAAwB;IAjBpD,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;IAC5D,OAAO,CAAC,mBAAmB,CAAC,CAAgC;gBAEvC,KAAK,EAAE,wBAAwB;IA2BpD,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,UAEvD;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,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;AAE7F,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AASzD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA8EhG,MAAM,WAAW,uBAAuB;IACpC,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAmBD,qBAAa,YAAY;IAkBT,QAAQ,CAAC,KAAK,EAAE,wBAAwB;IAjBpD,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;IAC5D,OAAO,CAAC,mBAAmB,CAAC,CAAgC;gBAEvC,KAAK,EAAE,wBAAwB;IA2BpD,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,UAEvD;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,WAAW,CAUjB;IAEF,OAAO,CAAC,WAAW,CAqCjB;IAEF,OAAO,CAAC,aAAa,CA+CnB;CACL"}
package/dist/store.js CHANGED
@@ -55,23 +55,22 @@ const ensureChunksFonts = (data)=>{
55
55
  }
56
56
  var _chunks;
57
57
  (_chunks = (_data = data).chunks) !== null && _chunks !== void 0 ? _chunks : _data.chunks = {};
58
- const fontUrls = new Set(Array.isArray(data.chunks.fonts) ? data.chunks.fonts.filter((url)=>typeof url === 'string') : []);
58
+ const existingFonts = Array.isArray(data.chunks.fonts) ? data.chunks.fonts : [];
59
+ const existingLabels = new Set(existingFonts.map((f)=>f.label));
59
60
  const usedFontTokens = new Set();
60
61
  getDesignFontTokens(data.design, usedFontTokens);
61
62
  const html = typeof data.html === 'string' ? data.html.toLowerCase() : '';
62
63
  for (const font of unlayerSupportedFonts){
63
- if (!font.url) {
64
- continue;
65
- }
66
64
  const labelToken = normalizeFontToken(font.label);
67
65
  const valueToken = normalizeFontToken(font.value);
68
66
  const isUsedInDesign = usedFontTokens.has(labelToken) || usedFontTokens.has(valueToken);
69
67
  const isUsedInHtml = !!html && (html.includes(labelToken) || html.includes(valueToken));
70
- if (isUsedInDesign || isUsedInHtml) {
71
- fontUrls.add(font.url);
68
+ if ((isUsedInDesign || isUsedInHtml) && !existingLabels.has(font.label)) {
69
+ existingFonts.push(font);
70
+ existingLabels.add(font.label);
72
71
  }
73
72
  }
74
- data.chunks.fonts = Array.from(fontUrls);
73
+ data.chunks.fonts = existingFonts;
75
74
  return data;
76
75
  };
77
76
  // We are using exclusive lists here, because we can't be sure that we know all unlayer event types
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 fontUrls = new Set<string>(\n Array.isArray(data.chunks.fonts)\n ? data.chunks.fonts.filter((url: unknown): url is string => typeof url === 'string')\n : [],\n );\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 if (!font.url) {\n continue;\n }\n\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) {\n fontUrls.add(font.url);\n }\n }\n\n data.chunks.fonts = Array.from(fontUrls);\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","fontUrls","Set","fonts","filter","url","usedFontTokens","design","html","labelToken","valueToken","isUsedInDesign","has","isUsedInHtml","includes","from","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","push","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","map","eSignRecipients","eSignFieldTypes","units","unit","adminConfig","template","id","title","contentWindow","postMessage","done","progress","Error","attachments","length","file","res","imageValidation","isValid","description","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 { 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/dte-unlayer",
3
- "version": "0.126.0",
3
+ "version": "0.128.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",