@servicetitan/dte-unlayer 0.152.0 → 0.153.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/src/unlayer.tsx CHANGED
@@ -1,6 +1,7 @@
1
1
  import { emitDisplayCondition } from './display-conditions/displayConditionController';
2
2
  import { editorCoreScript, editorCoreStyles, editorCoreTools } from './editor-core';
3
- import { toUnlayerMergeTags } from './merge-tags';
3
+ import { logUnlayerError } from './log';
4
+ import { scheduleUnlayerMergeTags, toUnlayerMergeTags } from './merge-tags';
4
5
  import { constGenericsEditor } from './shared/const';
5
6
  import { unlayerSupportedFonts } from './shared/fonts';
6
7
  import {
@@ -276,75 +277,92 @@ export const createUnlayerEditor = (
276
277
  },
277
278
  };
278
279
 
279
- const result = (window as any).unlayer.createEditor({
280
- displayMode: 'web',
281
- devices: ['desktop'],
282
- features: {
283
- preview: true,
284
- userUploads: false,
285
- stockImages: false,
286
- textEditor: {
287
- tables: true,
280
+ let result: Unlayer;
281
+
282
+ try {
283
+ const unlayerApi = (window as any).unlayer;
284
+
285
+ if (!unlayerApi?.createEditor) {
286
+ throw new Error(
287
+ 'Unlayer embed is not available. window.unlayer.createEditor is missing.',
288
+ );
289
+ }
290
+
291
+ result = unlayerApi.createEditor({
292
+ displayMode: 'web',
293
+ devices: ['desktop'],
294
+ features: {
295
+ preview: true,
296
+ userUploads: false,
297
+ stockImages: false,
298
+ textEditor: {
299
+ tables: true,
300
+ },
288
301
  },
289
- },
290
- mergeTags: toUnlayerMergeTags(mergeTags),
291
- projectId: 5713,
292
- version: latest ? undefined : versions.unlayer,
293
- appearance: {
294
- theme: 'classic_light',
295
- },
296
- tools: {
297
- 'carousel': { enabled: false },
298
- 'button': { enabled: false },
299
- 'html': {
300
- enabled: enableHTMLEditing,
301
- properties: {
302
- html: {
303
- editor: {
304
- widgetParams: {
305
- codeMirrorOptions: {
306
- readOnly: enableHTMLEditingReadonly,
302
+ mergeTags: toUnlayerMergeTags(mergeTags, { groups: false }),
303
+ projectId: 5713,
304
+ version: latest ? undefined : versions.unlayer,
305
+ appearance: {
306
+ theme: 'classic_light',
307
+ },
308
+ tools: {
309
+ 'carousel': { enabled: false },
310
+ 'button': { enabled: false },
311
+ 'html': {
312
+ enabled: enableHTMLEditing,
313
+ properties: {
314
+ html: {
315
+ editor: {
316
+ widgetParams: {
317
+ codeMirrorOptions: {
318
+ readOnly: enableHTMLEditingReadonly,
319
+ },
307
320
  },
308
321
  },
309
322
  },
310
323
  },
311
324
  },
325
+ 'table': {
326
+ enabled: true,
327
+ },
328
+ 'menu': { enabled: false },
329
+ 'form': { enabled: false },
330
+ ...(noCoreTools
331
+ ? {
332
+ columns: { enabled: false },
333
+ text: { enabled: false },
334
+ heading: { enabled: false },
335
+ divider: { enabled: false },
336
+ image: { enabled: false },
337
+ }
338
+ : {}),
339
+ ...unitsConfig,
340
+ 'custom#e-sign': eSignComponentRecipients,
312
341
  },
313
- 'table': {
314
- enabled: true,
342
+ editor: {
343
+ autoSelectOnDrop: true,
315
344
  },
316
- 'menu': { enabled: false },
317
- 'form': { enabled: false },
318
- ...(noCoreTools
319
- ? {
320
- columns: { enabled: false },
321
- text: { enabled: false },
322
- heading: { enabled: false },
323
- divider: { enabled: false },
324
- image: { enabled: false },
325
- }
326
- : {}),
327
- ...unitsConfig,
328
- 'custom#e-sign': eSignComponentRecipients,
329
- },
330
- editor: {
331
- autoSelectOnDrop: true,
332
- },
333
- customJS: customScripts,
334
- customCSS: customStyles,
335
- id,
336
- fonts: {
337
- showDefaultFonts: false,
338
- customFonts: unlayerSupportedFonts,
339
- },
340
- tabs: {
341
- content: {},
342
- body: {},
343
- blocks: { enabled: false },
344
- },
345
- });
345
+ customJS: customScripts,
346
+ customCSS: customStyles,
347
+ id,
348
+ fonts: {
349
+ showDefaultFonts: false,
350
+ customFonts: unlayerSupportedFonts,
351
+ },
352
+ tabs: {
353
+ content: {},
354
+ body: {},
355
+ blocks: { enabled: false },
356
+ },
357
+ });
358
+ } catch (error: unknown) {
359
+ logUnlayerError('unlayer.createEditor failed', error);
360
+ throw error;
361
+ } finally {
362
+ document.getElementById = currentFind;
363
+ }
346
364
 
347
- document.getElementById = currentFind;
365
+ scheduleUnlayerMergeTags(result, mergeTags);
348
366
 
349
367
  if (displayConditions) {
350
368
  result.registerCallback(