@unlayer/types 1.386.2 → 1.386.4
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/README.md +10 -3
- package/dist/editor/editor.d.ts +24 -22
- package/dist/editor/types.d.ts +96 -0
- package/dist/tools/button.d.ts +0 -1
- package/dist/tools/form.d.ts +0 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,13 +33,20 @@ type PopupDesign = JSONTemplate<'popup'>; // body.values has popupPosition
|
|
|
33
33
|
type EmailBody = BodyValues<'email'>; // has preheaderText, lacks popupPosition
|
|
34
34
|
type PopupBody = BodyValues<'popup'>; // has popupPosition, lacks preheaderText
|
|
35
35
|
|
|
36
|
-
//
|
|
37
|
-
declare const unlayer: UnlayerEditor
|
|
38
|
-
unlayer.exportHtml
|
|
36
|
+
// The Unlayer instance propagates its display mode to method typings:
|
|
37
|
+
declare const unlayer: UnlayerEditor<'email'>;
|
|
38
|
+
unlayer.exportHtml((result) => {
|
|
39
39
|
const html = result.html;
|
|
40
40
|
const preheaderText = result.design.body.values.preheaderText; // typed, email-only field
|
|
41
41
|
});
|
|
42
42
|
|
|
43
|
+
// Alternatively, you can use the display mode generic on the method:
|
|
44
|
+
unlayer.exportHtml<'popup'>((result) => {
|
|
45
|
+
const popupBackgroundColor = result.design.body.values.popupBackgroundColor; // available on popup mode
|
|
46
|
+
// @ts-expect-error
|
|
47
|
+
const preheaderText = result.design.body.values.preheaderText; // not available on popup mode
|
|
48
|
+
});
|
|
49
|
+
|
|
43
50
|
// Example of fully typed json manipulation
|
|
44
51
|
function handleDesign(design: JSONTemplate) {
|
|
45
52
|
for (const row of design.body.rows) {
|
package/dist/editor/editor.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type { LinkTypes, LinkTypesSharedConfig, SpecialLink, SpecialLinks } from
|
|
|
12
12
|
import type { MergeTags, MergeTagsConfig, MergeTagsValues } from './merge-tags';
|
|
13
13
|
import type { StyleGuideConfig } from './style-guide';
|
|
14
14
|
import type { AppearanceConfig, Theme } from './theme';
|
|
15
|
-
import type { Collection, Device, DisplayMode, Location, Variant } from './types';
|
|
15
|
+
import type { CallbackTypeMap, Collection, Device, DisplayMode, Location, Variant } from './types';
|
|
16
16
|
import type { DeepPartial, LanguagesValue } from './utils';
|
|
17
17
|
import type { BodyValues } from '../containers/body';
|
|
18
18
|
import type { ColumnValues } from '../containers/column';
|
|
@@ -201,7 +201,7 @@ declare class Frame {
|
|
|
201
201
|
receiveMessage(event: any): void;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
-
declare class EditorClass {
|
|
204
|
+
declare class EditorClass<TClassDisplayMode extends DisplayMode | undefined = undefined> {
|
|
205
205
|
frame: Frame | null;
|
|
206
206
|
constructor(config?: Config);
|
|
207
207
|
init(config?: Config): void;
|
|
@@ -216,12 +216,16 @@ declare class EditorClass {
|
|
|
216
216
|
renderEditor(config: Config): void;
|
|
217
217
|
initEditor(config: Config): void;
|
|
218
218
|
registerColumns(cells: number[]): void;
|
|
219
|
+
registerCallback<T extends keyof CallbackTypeMap<TClassDisplayMode>>(type: T, callback: CallbackTypeMap<TClassDisplayMode>[T]): void;
|
|
219
220
|
registerCallback(type: string, callback: (...args: any[]) => void): void;
|
|
221
|
+
unregisterCallback<T extends keyof CallbackTypeMap<TClassDisplayMode>>(type: T): void;
|
|
220
222
|
unregisterCallback(type: string): void;
|
|
221
223
|
registerProvider(type: string, callback: (...args: any[]) => any): void;
|
|
222
224
|
unregisterProvider(type: string): void;
|
|
223
225
|
reloadProvider(type: string): void;
|
|
226
|
+
addEventListener<T extends keyof CallbackTypeMap<TClassDisplayMode>>(type: T, callback: CallbackTypeMap<TClassDisplayMode>[T]): void;
|
|
224
227
|
addEventListener(type: string, callback: (...args: any[]) => void): void;
|
|
228
|
+
removeEventListener<T extends keyof CallbackTypeMap<TClassDisplayMode>>(type: T): void;
|
|
225
229
|
removeEventListener(type: string): void;
|
|
226
230
|
setDesignId(id: string | null): void;
|
|
227
231
|
setDesignMode(designMode: DesignMode | null): void;
|
|
@@ -239,14 +243,14 @@ declare class EditorClass {
|
|
|
239
243
|
setTextDirection(textDirection: TextDirection | null): void;
|
|
240
244
|
setTranslations(translations: Translations): void;
|
|
241
245
|
loadBlank(bodyValues?: object): void;
|
|
242
|
-
loadDesign<TDisplayMode extends DisplayMode | undefined =
|
|
243
|
-
saveDesign<TDisplayMode extends DisplayMode | undefined =
|
|
244
|
-
exportHtml<TDisplayMode extends DisplayMode | undefined =
|
|
245
|
-
exportLiveHtml<TDisplayMode extends DisplayMode | undefined =
|
|
246
|
-
exportPlainText<TDisplayMode extends DisplayMode | undefined =
|
|
247
|
-
exportImage<TDisplayMode extends DisplayMode | undefined =
|
|
248
|
-
exportPdf<TDisplayMode extends DisplayMode | undefined =
|
|
249
|
-
exportZip<TDisplayMode extends DisplayMode | undefined =
|
|
246
|
+
loadDesign<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(design: JSONTemplate<TDisplayMode>): void;
|
|
247
|
+
saveDesign<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: JSONTemplate<TDisplayMode>) => void, options?: SaveDesignOptions): void;
|
|
248
|
+
exportHtml<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportHtmlResult<TDisplayMode>) => void, options?: ExportHtmlOptions): void;
|
|
249
|
+
exportLiveHtml<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportLiveHtmlResult<TDisplayMode>) => void, options?: ExportLiveHtmlOptions): void;
|
|
250
|
+
exportPlainText<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportPlainTextResult<TDisplayMode>) => void, options?: ExportPlainTextOptions): void;
|
|
251
|
+
exportImage<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportFromApiResult<TDisplayMode>) => void, options?: ExportImageFromApiOptions): void;
|
|
252
|
+
exportPdf<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportFromApiResult<TDisplayMode>) => void, options?: ExportPdfFromApiOptions): void;
|
|
253
|
+
exportZip<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportFromApiResult<TDisplayMode>) => void, options?: ExportZipFromApiOptions): void;
|
|
250
254
|
setAppearance(appearance: DeepPartial<AppearanceConfig>): void;
|
|
251
255
|
setTheme(theme: AppearanceConfig['theme']): void;
|
|
252
256
|
setBodyValues(bodyValues: Partial<BodyValues>, bodyId?: number): void;
|
|
@@ -256,7 +260,7 @@ declare class EditorClass {
|
|
|
256
260
|
showPreview(payload: {
|
|
257
261
|
device?: Device;
|
|
258
262
|
resolution?: number;
|
|
259
|
-
}): void;
|
|
263
|
+
} | Device): void;
|
|
260
264
|
hidePreview(): void;
|
|
261
265
|
canUndo(callback: (result: boolean) => void): void;
|
|
262
266
|
canRedo(callback: (result: boolean) => void): void;
|
|
@@ -284,11 +288,19 @@ declare class EditorClass {
|
|
|
284
288
|
}
|
|
285
289
|
|
|
286
290
|
declare class Embed extends EditorClass {
|
|
287
|
-
createEditor(config: Config): EditorClass
|
|
291
|
+
createEditor<TDisplayMode extends DisplayMode | undefined = undefined>(config: Config): EditorClass<TDisplayMode>;
|
|
288
292
|
}
|
|
289
293
|
|
|
290
294
|
declare const _default: Embed;
|
|
291
295
|
|
|
296
|
+
export type UnlayerEditor<TDisplayMode extends DisplayMode | undefined = undefined> = EditorClass<TDisplayMode>;
|
|
297
|
+
|
|
298
|
+
export type UnlayerEmbed<TDisplayMode extends DisplayMode | undefined = undefined> = Omit<Embed, keyof EditorClass> & EditorClass<TDisplayMode>;
|
|
299
|
+
|
|
300
|
+
export type UnlayerOptions<TDisplayMode extends DisplayMode | undefined = undefined> = Omit<Config, 'displayMode'> & {
|
|
301
|
+
displayMode?: TDisplayMode extends undefined ? DisplayMode : TDisplayMode;
|
|
302
|
+
};
|
|
303
|
+
|
|
292
304
|
// ───────────────────────────────────────────────────────────────────────────
|
|
293
305
|
// Other
|
|
294
306
|
// ───────────────────────────────────────────────────────────────────────────
|
|
@@ -455,13 +467,3 @@ export interface WidgetConfig {
|
|
|
455
467
|
mount: WidgetMountFn;
|
|
456
468
|
render: WidgetRenderFn;
|
|
457
469
|
}
|
|
458
|
-
|
|
459
|
-
// ───────────────────────────────────────────────────────────────────────────
|
|
460
|
-
// Main Exports
|
|
461
|
-
// ───────────────────────────────────────────────────────────────────────────
|
|
462
|
-
|
|
463
|
-
export type UnlayerEmbed = typeof _default;
|
|
464
|
-
|
|
465
|
-
export type UnlayerOptions = Parameters<UnlayerEmbed['createEditor']>[0];
|
|
466
|
-
|
|
467
|
-
export type UnlayerEditor = InstanceType<typeof EditorClass>;
|
package/dist/editor/types.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// Auto-generated by build-values-types.js. Do not edit manually.
|
|
2
2
|
|
|
3
|
+
import type { JSONTemplate } from './design';
|
|
4
|
+
import type { MergeTags } from './merge-tags';
|
|
5
|
+
|
|
3
6
|
export type Device = 'desktop' | 'mobile' | 'tablet';
|
|
4
7
|
|
|
5
8
|
export type Resolution = {
|
|
@@ -20,4 +23,97 @@ export interface Location {
|
|
|
20
23
|
id: number | string;
|
|
21
24
|
}
|
|
22
25
|
|
|
26
|
+
export interface CallbackTypeMap<TDisplayMode extends DisplayMode | undefined = undefined> {
|
|
27
|
+
'editor:ready': () => void;
|
|
28
|
+
'design:loaded': (data: {
|
|
29
|
+
design: JSONTemplate<TDisplayMode>;
|
|
30
|
+
}) => void;
|
|
31
|
+
'design:updated': (data: {
|
|
32
|
+
type: string;
|
|
33
|
+
item?: Record<string, any>;
|
|
34
|
+
changes?: Record<string, any>;
|
|
35
|
+
}) => void;
|
|
36
|
+
'image:uploaded': (data: {
|
|
37
|
+
image: {
|
|
38
|
+
url: string;
|
|
39
|
+
width?: number;
|
|
40
|
+
height?: number;
|
|
41
|
+
};
|
|
42
|
+
}) => void;
|
|
43
|
+
'item:selected': (data: {
|
|
44
|
+
item: Record<string, any>;
|
|
45
|
+
active: boolean;
|
|
46
|
+
}) => void;
|
|
47
|
+
'row:moved': (data: {
|
|
48
|
+
row: Record<string, any>;
|
|
49
|
+
}) => void;
|
|
50
|
+
'content:moved': (data: {
|
|
51
|
+
content: Record<string, any>;
|
|
52
|
+
}) => void;
|
|
53
|
+
image: (data: {
|
|
54
|
+
attachments: File[];
|
|
55
|
+
}, done: (result: {
|
|
56
|
+
progress?: number;
|
|
57
|
+
url?: string;
|
|
58
|
+
}) => void) => void;
|
|
59
|
+
selectImage: (data: Record<string, any>, done: (result: {
|
|
60
|
+
url: string;
|
|
61
|
+
width?: number;
|
|
62
|
+
height?: number;
|
|
63
|
+
size?: number;
|
|
64
|
+
id?: string | number;
|
|
65
|
+
}) => void) => void;
|
|
66
|
+
displayCondition: (data: Record<string, any>, done: (result: {
|
|
67
|
+
type: string;
|
|
68
|
+
label: string;
|
|
69
|
+
description: string;
|
|
70
|
+
before: string;
|
|
71
|
+
after: string;
|
|
72
|
+
} | null) => void) => void;
|
|
73
|
+
mergeTag: (data: {
|
|
74
|
+
mergeTags: MergeTags;
|
|
75
|
+
context: {
|
|
76
|
+
elementId: string;
|
|
77
|
+
};
|
|
78
|
+
}, done: (result: {
|
|
79
|
+
name?: string;
|
|
80
|
+
value: string;
|
|
81
|
+
}) => void) => void;
|
|
82
|
+
mergeTagRule: (data: {
|
|
83
|
+
mergeTags: MergeTags;
|
|
84
|
+
mergeTagGroup?: string;
|
|
85
|
+
mergeTagRule?: string;
|
|
86
|
+
context: {
|
|
87
|
+
elementId: string;
|
|
88
|
+
};
|
|
89
|
+
}, done: (result: {
|
|
90
|
+
mergeTagGroup: string | null;
|
|
91
|
+
mergeTagRule: string | null;
|
|
92
|
+
}) => void) => void;
|
|
93
|
+
previewHtml: (data: {
|
|
94
|
+
html: string;
|
|
95
|
+
}, done: (result: {
|
|
96
|
+
html: string;
|
|
97
|
+
}) => void) => void;
|
|
98
|
+
fetchImage: (data: {
|
|
99
|
+
url: string;
|
|
100
|
+
}, done: (result: {
|
|
101
|
+
blob: Blob;
|
|
102
|
+
url?: string;
|
|
103
|
+
}) => void) => void;
|
|
104
|
+
'image:removed': (params: Record<string, any>, done: (result: any) => void) => void;
|
|
105
|
+
itemAdded: (data: {
|
|
106
|
+
item: Record<string, any>;
|
|
107
|
+
}, done: (result: any) => void) => void;
|
|
108
|
+
itemRemoved: (data: {
|
|
109
|
+
item: Record<string, any>;
|
|
110
|
+
}, done: (result: boolean) => void) => void;
|
|
111
|
+
itemMoved: (data: {
|
|
112
|
+
item: Record<string, any>;
|
|
113
|
+
}, done: (result: any) => void) => void;
|
|
114
|
+
'block:added': (data: Record<string, any>, done: (result: any) => void) => void;
|
|
115
|
+
'block:modified': (data: Record<string, any>, done: (result: any) => void) => void;
|
|
116
|
+
'block:removed': (data: Record<string, any>, done: (result: any) => void) => void;
|
|
117
|
+
}
|
|
118
|
+
|
|
23
119
|
export type ExporterName = "email" | "web" | "popup" | "document" | "classic" | "ampWeb" | "ampEmail";
|
package/dist/tools/button.d.ts
CHANGED
package/dist/tools/form.d.ts
CHANGED
|
@@ -81,7 +81,6 @@ export type FormValues<
|
|
|
81
81
|
labelAlign: "left" | "center" | "right" | "justify";
|
|
82
82
|
labelPadding: `${number}px` | `${number}px ${number}px` | `${number}px ${number}px ${number}px` | `${number}px ${number}px ${number}px ${number}px`;
|
|
83
83
|
buttonColors: {
|
|
84
|
-
[x: string]: unknown;
|
|
85
84
|
color?: string;
|
|
86
85
|
backgroundColor?: string;
|
|
87
86
|
hoverColor?: string;
|