@servicetitan/dte-unlayer 0.0.1-test1

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.
Files changed (67) hide show
  1. package/dist/api-core.d.ts +19 -0
  2. package/dist/api-core.d.ts.map +1 -0
  3. package/dist/api-core.js +121 -0
  4. package/dist/api-core.js.map +1 -0
  5. package/dist/api-custom-tools.d.ts +18 -0
  6. package/dist/api-custom-tools.d.ts.map +1 -0
  7. package/dist/api-custom-tools.js +96 -0
  8. package/dist/api-custom-tools.js.map +1 -0
  9. package/dist/editor.d.ts +19 -0
  10. package/dist/editor.d.ts.map +1 -0
  11. package/dist/editor.js +47 -0
  12. package/dist/editor.js.map +1 -0
  13. package/dist/index.d.ts +12 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +11 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/loadScript.d.ts +2 -0
  18. package/dist/loadScript.d.ts.map +1 -0
  19. package/dist/loadScript.js +24 -0
  20. package/dist/loadScript.js.map +1 -0
  21. package/dist/shared/const.d.ts +27 -0
  22. package/dist/shared/const.d.ts.map +1 -0
  23. package/dist/shared/const.js +6 -0
  24. package/dist/shared/const.js.map +1 -0
  25. package/dist/shared/fonts.d.ts +10 -0
  26. package/dist/shared/fonts.d.ts.map +1 -0
  27. package/dist/shared/fonts.js +127 -0
  28. package/dist/shared/fonts.js.map +1 -0
  29. package/dist/shared/schema.d.ts +51 -0
  30. package/dist/shared/schema.d.ts.map +1 -0
  31. package/dist/shared/schema.js +104 -0
  32. package/dist/shared/schema.js.map +1 -0
  33. package/dist/shared/tools.d.ts +14 -0
  34. package/dist/shared/tools.d.ts.map +1 -0
  35. package/dist/shared/tools.js +8 -0
  36. package/dist/shared/tools.js.map +1 -0
  37. package/dist/store.d.ts +31 -0
  38. package/dist/store.d.ts.map +1 -0
  39. package/dist/store.js +274 -0
  40. package/dist/store.js.map +1 -0
  41. package/dist/tools.d.ts +26 -0
  42. package/dist/tools.d.ts.map +1 -0
  43. package/dist/tools.js +164 -0
  44. package/dist/tools.js.map +1 -0
  45. package/dist/unlayer-interface.d.ts +64 -0
  46. package/dist/unlayer-interface.d.ts.map +1 -0
  47. package/dist/unlayer-interface.js +2 -0
  48. package/dist/unlayer-interface.js.map +1 -0
  49. package/dist/unlayer.d.ts +57 -0
  50. package/dist/unlayer.d.ts.map +1 -0
  51. package/dist/unlayer.js +117 -0
  52. package/dist/unlayer.js.map +1 -0
  53. package/package.json +20 -0
  54. package/src/__tests__/schema.test.ts +96 -0
  55. package/src/api-core.ts +94 -0
  56. package/src/api-custom-tools.ts +79 -0
  57. package/src/editor.tsx +87 -0
  58. package/src/index.ts +11 -0
  59. package/src/loadScript.ts +27 -0
  60. package/src/shared/const.ts +30 -0
  61. package/src/shared/fonts.ts +126 -0
  62. package/src/shared/schema.ts +190 -0
  63. package/src/shared/tools.ts +18 -0
  64. package/src/store.ts +197 -0
  65. package/src/tools.ts +213 -0
  66. package/src/unlayer-interface.tsx +71 -0
  67. package/src/unlayer.tsx +176 -0
package/dist/tools.js ADDED
@@ -0,0 +1,164 @@
1
+ import { constGenericsEditor } from './shared/const';
2
+ import { unlayerUnitsParseToolKey } from './shared/tools';
3
+ import { versions } from './unlayer';
4
+ /* eslint-disable @typescript-eslint/naming-convention */
5
+ export const unlayerGetDefaultDesign = () => ({
6
+ counters: {
7
+ u_column: 1,
8
+ u_row: 1,
9
+ u_content_custom_generic_list_of_fields: 1,
10
+ },
11
+ body: {
12
+ rows: [
13
+ {
14
+ cells: [1],
15
+ columns: [
16
+ {
17
+ contents: [],
18
+ values: {
19
+ backgroundColor: '',
20
+ padding: '0px',
21
+ border: {},
22
+ _meta: {
23
+ htmlID: 'u_column_1',
24
+ htmlClassNames: 'u_column',
25
+ },
26
+ },
27
+ },
28
+ ],
29
+ values: {
30
+ displayCondition: null,
31
+ columns: false,
32
+ backgroundColor: '',
33
+ columnsBackgroundColor: '',
34
+ backgroundImage: {
35
+ url: '',
36
+ fullWidth: true,
37
+ repeat: false,
38
+ center: true,
39
+ cover: false,
40
+ },
41
+ padding: '0px',
42
+ hideDesktop: false,
43
+ hideMobile: false,
44
+ noStackMobile: false,
45
+ _meta: {
46
+ htmlID: 'u_row_1',
47
+ htmlClassNames: 'u_row',
48
+ },
49
+ selectable: true,
50
+ draggable: true,
51
+ duplicatable: true,
52
+ deletable: true,
53
+ },
54
+ },
55
+ ],
56
+ values: {
57
+ backgroundColor: 'rgba(0,0,0,0)',
58
+ backgroundImage: {
59
+ url: '',
60
+ fullWidth: true,
61
+ repeat: false,
62
+ center: true,
63
+ cover: false,
64
+ },
65
+ contentWidth: '100%',
66
+ contentAlign: 'center',
67
+ fontFamily: {
68
+ label: 'Arial',
69
+ value: 'arial,helvetica,sans-serif',
70
+ },
71
+ preheaderText: '',
72
+ linkStyle: {
73
+ body: true,
74
+ linkColor: '#0000ee',
75
+ linkHoverColor: '#0000ee',
76
+ linkUnderline: true,
77
+ linkHoverUnderline: true,
78
+ },
79
+ _meta: {
80
+ htmlID: 'u_body',
81
+ htmlClassNames: 'u_body',
82
+ },
83
+ },
84
+ },
85
+ schemaVersion: versions.schema,
86
+ });
87
+ /* eslint-enable @typescript-eslint/naming-convention */
88
+ export const unlayerToolsIterate = (design, cb) => {
89
+ var _a, _b;
90
+ for (const row of (_b = (_a = design === null || design === void 0 ? void 0 : design.body) === null || _a === void 0 ? void 0 : _a.rows) !== null && _b !== void 0 ? _b : []) {
91
+ for (const column of row.columns) {
92
+ for (const content of column.contents) {
93
+ if (cb(content) === false) {
94
+ return;
95
+ }
96
+ }
97
+ }
98
+ }
99
+ };
100
+ export const unlayerToolsIterateCustom = (design, cb) => {
101
+ unlayerToolsIterate(design, tool => {
102
+ if (tool.type === 'custom') {
103
+ return cb(tool);
104
+ }
105
+ });
106
+ };
107
+ export const unlayerToolsListCustomKeys = (design) => {
108
+ return Array.from(new Set(unlayerToolsListCustom(design).map(tool => tool.slug)));
109
+ };
110
+ export const unlayerToolsFind = (design, cb) => {
111
+ let out;
112
+ unlayerToolsIterate(design, tool => {
113
+ if (cb(tool)) {
114
+ out = tool;
115
+ return false;
116
+ }
117
+ });
118
+ return out;
119
+ };
120
+ export const unlayerToolsCustomStat = (design, tools, units) => {
121
+ var _a, _b;
122
+ const counters = {};
123
+ const notSupported = new Set();
124
+ const unitIDs = new Set();
125
+ unlayerToolsIterateCustom(design, tool => {
126
+ if (!counters[tool.slug]) {
127
+ counters[tool.slug] = 0;
128
+ }
129
+ counters[tool.slug]++;
130
+ const isUnit = unlayerUnitsParseToolKey(tool.slug);
131
+ if (isUnit) {
132
+ unitIDs.add(isUnit.id);
133
+ }
134
+ if ((isUnit && !(units === null || units === void 0 ? void 0 : units.some(unit => unit.id === isUnit.id))) ||
135
+ (!isUnit && !(tools === null || tools === void 0 ? void 0 : tools.some(t => t.key === tool.slug)))) {
136
+ notSupported.add(tool.slug);
137
+ }
138
+ });
139
+ return {
140
+ counters,
141
+ notSupported: Array.from(notSupported),
142
+ missing: [
143
+ ...((_a = tools === null || tools === void 0 ? void 0 : tools.filter(tool => tool.isRequired && !counters[tool.key]).map(tool => tool.key)) !== null && _a !== void 0 ? _a : []),
144
+ ...((_b = units === null || units === void 0 ? void 0 : units.filter(unit => unit.isRequired && !unitIDs.has(unit.id)).map(unit => unit.id)) !== null && _b !== void 0 ? _b : []),
145
+ ],
146
+ };
147
+ };
148
+ export const unlayerToolsListCustom = (design) => {
149
+ const tools = [];
150
+ unlayerToolsIterateCustom(design, tool => {
151
+ tools.push(tool);
152
+ });
153
+ return tools;
154
+ };
155
+ export const unlayerToolsBuildDesign = (tools) => {
156
+ const design = unlayerGetDefaultDesign();
157
+ design.body.rows[0].columns[0].contents = tools;
158
+ return design;
159
+ };
160
+ export const unlayerUnitsGetIdFromValues = (values) => { var _a; return (_a = values === null || values === void 0 ? void 0 : values[constGenericsEditor.adminConfigProperty]) === null || _a === void 0 ? void 0 : _a.crossId; };
161
+ export const unlayerUnitsGetTitleFromValues = (values) => { var _a; return (_a = values === null || values === void 0 ? void 0 : values[constGenericsEditor.adminConfigProperty]) === null || _a === void 0 ? void 0 : _a.title; };
162
+ export const unlayerUnitsGetId = (tool) => unlayerUnitsGetIdFromValues(tool.values);
163
+ export const unlayerUnitsGetTitle = (tool) => unlayerUnitsGetTitleFromValues(tool.values);
164
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { UnlayerCoreApi } from './api-core';
2
+ import { SchemaObject } from './shared/schema';
3
+ export interface UnlayerDesignTool {
4
+ type: string;
5
+ slug: string;
6
+ values: any;
7
+ }
8
+ export interface UnlayerDesignFormat {
9
+ body: {
10
+ rows: {
11
+ cells: number[];
12
+ columns: {
13
+ contents: UnlayerDesignTool[];
14
+ values?: any;
15
+ }[];
16
+ values?: any;
17
+ }[];
18
+ values?: any;
19
+ };
20
+ counters: Record<string, number>;
21
+ schemaVersion: number;
22
+ }
23
+ export interface UnlayerExport {
24
+ html: string;
25
+ chunks: any;
26
+ design: UnlayerDesignFormat;
27
+ }
28
+ export interface UnlayerRef {
29
+ loadDesign(design: any): void;
30
+ saveDesign(cb: (design: any) => void): void;
31
+ exportHtml(cb: (data: UnlayerExport) => void): void;
32
+ }
33
+ export interface UnlayerEditorMergeTagInfo {
34
+ id: string;
35
+ name: string;
36
+ propertyPath: string;
37
+ }
38
+ export interface UnlayerEditorUnit {
39
+ id: string;
40
+ generic: string;
41
+ title: string;
42
+ values: any;
43
+ }
44
+ export interface UnlayerEditorCustomTool {
45
+ key: string;
46
+ title: string;
47
+ path: string;
48
+ }
49
+ export interface CreateUnlayerEditorProps {
50
+ tools: UnlayerEditorCustomTool[];
51
+ dummyData?: any;
52
+ schema?: SchemaObject;
53
+ customCSS?: string | string[] | undefined;
54
+ customJS?: string | string[] | undefined;
55
+ mergeTags?: UnlayerEditorMergeTagInfo[] | undefined;
56
+ genericConfigMode?: boolean;
57
+ generics?: true | string[];
58
+ units?: UnlayerEditorUnit[];
59
+ noCoreTools?: boolean;
60
+ latest?: boolean;
61
+ blocks?: boolean;
62
+ coreApi: UnlayerCoreApi;
63
+ }
64
+ //# sourceMappingURL=unlayer-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlayer-interface.d.ts","sourceRoot":"","sources":["../src/unlayer-interface.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;CACf;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;CAC/B;AAED,MAAM,WAAW,UAAU;IACvB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,yBAAyB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,yBAAyB,EAAE,GAAG,SAAS,CAAC;IACpD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,cAAc,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=unlayer-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlayer-interface.js","sourceRoot":"","sources":["../src/unlayer-interface.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ import { CreateUnlayerEditorProps } from './unlayer-interface';
2
+ export interface UnlayerExport {
3
+ html: string;
4
+ chunks: any;
5
+ design: any;
6
+ }
7
+ export interface Unlayer {
8
+ addEventListener(event: string, cb: (arg: any) => void): void;
9
+ removeEventListener(event: string, cb: (arg: any) => void): void;
10
+ registerCallback(type: string, cb: (...args: any[]) => void): void;
11
+ unregisterCallback(type: string, cb: (...args: any[]) => void): void;
12
+ registerProvider(type: string, cb: (...args: any[]) => void): void;
13
+ unregisterProvider(type: string, cb: (...args: any[]) => void): void;
14
+ loadDesign(design: any): void;
15
+ saveDesign(callback: (design: any) => void): void;
16
+ exportHtml(callback: (data: UnlayerExport) => void): void;
17
+ setMergeTags(tags: any): void;
18
+ createViewer(opts: {
19
+ render: (values: any) => string;
20
+ }): any;
21
+ registerTool(tool: any): void;
22
+ setBodyValues(values: any): void;
23
+ }
24
+ export declare enum DesignUpdatedEventType {
25
+ ContentAdded = "content:added",
26
+ ContentMoved = "content:moved",
27
+ ContentRemoved = "content:removed",
28
+ ContentModified = "content:modified",
29
+ RowAdded = "row:added",
30
+ RowMoved = "row:moved",
31
+ RowRemoved = "row:removed",
32
+ RowModified = "row:modified",
33
+ ColumnAdded = "column:added",
34
+ ColumnRemoved = "column:removed",
35
+ ColumnModified = "column:modified",
36
+ BodyModified = "body:modified"
37
+ }
38
+ export interface EventDesignUpdated {
39
+ type: DesignUpdatedEventType;
40
+ item: {
41
+ type: string;
42
+ slug?: string;
43
+ values: any;
44
+ };
45
+ }
46
+ /**
47
+ * !!! IMPORTANT !!!
48
+ * do not forget to update schema version when updating unlayer version
49
+ * it is important for templates export and should be in sync
50
+ * to know correct schema version, open unlayer editor and check output design ('schema' property)
51
+ */
52
+ export declare const versions: {
53
+ unlayer: string;
54
+ schema: number;
55
+ };
56
+ export declare const createUnlayerEditor: (container: HTMLDivElement, { coreApi, customCSS, customJS, latest, mergeTags, noCoreTools, tools, units, }: CreateUnlayerEditorProps) => Unlayer;
57
+ //# sourceMappingURL=unlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlayer.d.ts","sourceRoot":"","sources":["../src/unlayer.tsx"],"names":[],"mappings":"AAEA,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;CACf;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,cACjB,cAAc,mFAUtB,wBAAwB,KAC5B,OAsGF,CAAC"}
@@ -0,0 +1,117 @@
1
+ import { constGenericsEditor } from './shared/const';
2
+ import { unlayerSupportedFonts } from './shared/fonts';
3
+ export var DesignUpdatedEventType;
4
+ (function (DesignUpdatedEventType) {
5
+ DesignUpdatedEventType["ContentAdded"] = "content:added";
6
+ DesignUpdatedEventType["ContentMoved"] = "content:moved";
7
+ DesignUpdatedEventType["ContentRemoved"] = "content:removed";
8
+ DesignUpdatedEventType["ContentModified"] = "content:modified";
9
+ DesignUpdatedEventType["RowAdded"] = "row:added";
10
+ DesignUpdatedEventType["RowMoved"] = "row:moved";
11
+ DesignUpdatedEventType["RowRemoved"] = "row:removed";
12
+ DesignUpdatedEventType["RowModified"] = "row:modified";
13
+ DesignUpdatedEventType["ColumnAdded"] = "column:added";
14
+ DesignUpdatedEventType["ColumnRemoved"] = "column:removed";
15
+ DesignUpdatedEventType["ColumnModified"] = "column:modified";
16
+ DesignUpdatedEventType["BodyModified"] = "body:modified";
17
+ })(DesignUpdatedEventType || (DesignUpdatedEventType = {}));
18
+ /**
19
+ * !!! IMPORTANT !!!
20
+ * do not forget to update schema version when updating unlayer version
21
+ * it is important for templates export and should be in sync
22
+ * to know correct schema version, open unlayer editor and check output design ('schema' property)
23
+ */
24
+ export const versions = {
25
+ unlayer: '1.2.9',
26
+ schema: 5,
27
+ };
28
+ export const createUnlayerEditor = (container, { coreApi, customCSS, customJS, latest, mergeTags, noCoreTools, tools, units, }) => {
29
+ const customScripts = [
30
+ ...coreApi.pathsCore,
31
+ ...coreApi.pathsCoreTools,
32
+ 'window.dteStore.sendData("--core-loaded")',
33
+ ...tools.map(tool => tool.path),
34
+ ...(customJS ? (Array.isArray(customJS) ? customJS : [customJS]) : []),
35
+ 'window.dteStore.sendData("--data-loaded")',
36
+ ].filter(js => !!(js === null || js === void 0 ? void 0 : js.trim()));
37
+ const customStyles = [
38
+ coreApi.customCss,
39
+ ...(customCSS ? (Array.isArray(customCSS) ? customCSS : [customCSS]) : []),
40
+ ].filter(css => !!(css === null || css === void 0 ? void 0 : css.trim()));
41
+ console.log('###unlayer init', customScripts, customStyles);
42
+ /**
43
+ * Unlayer supports only passing id of container, but when we use shadowDOM (MFE),
44
+ * getElementById can't find element in it
45
+ * so making this dirty hack to let unlayer find container in DOM
46
+ */
47
+ const id = container.id;
48
+ const currentFind = document.getElementById;
49
+ document.getElementById = function (elementId) {
50
+ if (id === elementId) {
51
+ return container;
52
+ }
53
+ return currentFind.call(document, id);
54
+ };
55
+ const acv = constGenericsEditor.adminConfigProperty;
56
+ const unitsConfig = (units !== null && units !== void 0 ? units : []).reduce((out, unit) => {
57
+ out[`custom#${unit.generic}:unit:${unit.id}`] = {
58
+ data: {
59
+ [acv]: unit.values[acv],
60
+ },
61
+ properties: {
62
+ [constGenericsEditor.userConfigProperty]: {
63
+ editor: {
64
+ data: { [acv]: unit.values[acv] },
65
+ },
66
+ },
67
+ [constGenericsEditor.infoDataProperty]: {
68
+ editor: {
69
+ data: { title: unit.title },
70
+ },
71
+ },
72
+ },
73
+ };
74
+ return out;
75
+ }, {});
76
+ const result = window.unlayer.createEditor({
77
+ displayMode: 'web',
78
+ devices: ['desktop'],
79
+ features: {
80
+ preview: false,
81
+ userUploads: false,
82
+ stockImages: false,
83
+ },
84
+ mergeTags: mergeTags === null || mergeTags === void 0 ? void 0 : mergeTags.reduce((out, tag) => {
85
+ out[tag.id] = { name: tag.name, value: tag.propertyPath };
86
+ return out;
87
+ }, {}),
88
+ projectId: 5713,
89
+ version: latest ? undefined : versions.unlayer,
90
+ tools: Object.assign(Object.assign({ button: { enabled: false }, html: { enabled: false }, menu: { enabled: false }, form: { enabled: false }, image: { enabled: false } }, (noCoreTools
91
+ ? {
92
+ columns: { enabled: false },
93
+ text: { enabled: false },
94
+ heading: { enabled: false },
95
+ divider: { enabled: false },
96
+ }
97
+ : {})), unitsConfig),
98
+ editor: {
99
+ autoSelectOnDrop: true,
100
+ },
101
+ customJS: customScripts,
102
+ customCSS: customStyles,
103
+ id,
104
+ fonts: {
105
+ showDefaultFonts: false,
106
+ customFonts: unlayerSupportedFonts,
107
+ },
108
+ tabs: {
109
+ content: {},
110
+ body: {},
111
+ blocks: { enabled: false },
112
+ },
113
+ });
114
+ document.getElementById = currentFind;
115
+ return result;
116
+ };
117
+ //# sourceMappingURL=unlayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlayer.js","sourceRoot":"","sources":["../src/unlayer.tsx"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "@servicetitan/dte-unlayer",
3
+ "version": "0.0.1-test1",
4
+ "description": "",
5
+ "main": "./dist/index.js",
6
+ "typings": "./dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "src"
10
+ ],
11
+ "publishConfig": {
12
+ "access": "public",
13
+ "registry": "https://registry.npmjs.org"
14
+ },
15
+ "cli": {
16
+ "webpack": false
17
+ },
18
+ "peerDependencies": {
19
+ }
20
+ }
@@ -0,0 +1,96 @@
1
+ import {
2
+ schemaFindNode,
3
+ schemaFindParentNode,
4
+ schemaBuildMap,
5
+ SchemaObject,
6
+ } from '../shared/schema';
7
+
8
+ const schemaSource = {
9
+ type: 'object',
10
+ title: '',
11
+ properties: {
12
+ Name: {
13
+ type: 'string',
14
+ title: 'First Name',
15
+ },
16
+ LastName: {
17
+ type: 'string',
18
+ title: 'Last Name',
19
+ },
20
+ Job: {
21
+ type: 'object',
22
+ title: 'Job Info',
23
+ properties: {
24
+ Id: { type: 'string' },
25
+ Name: { type: 'string', options: { placeholder: 'Test job' } },
26
+ SubJob: {
27
+ type: 'object',
28
+ properties: {
29
+ Id: { type: 'string' },
30
+ Name: { type: 'string', options: { placeholder: 'Sub job' } },
31
+ },
32
+ },
33
+ Xfactor: { type: 'string' },
34
+ Technicians: {
35
+ type: 'array',
36
+ items: {
37
+ type: 'object',
38
+ properties: {
39
+ ID: { type: 'string' },
40
+ Name: { type: 'string', options: { placeholder: 'John Doe' } },
41
+ },
42
+ },
43
+ },
44
+ },
45
+ },
46
+ IDList: {
47
+ type: 'array',
48
+ items: { type: 'string' },
49
+ },
50
+ IDList2: {
51
+ type: 'array',
52
+ items: { type: 'string', options: { placeholder: 'test' } },
53
+ },
54
+ },
55
+ };
56
+ const schema = schemaSource as SchemaObject;
57
+
58
+ describe('schemaFindNode', () => {
59
+ test('return undefined for unknown key', () => {
60
+ expect(schemaFindNode(schema, 'XXX')).toEqual(undefined);
61
+ });
62
+
63
+ test('return node for root key', () => {
64
+ expect(schemaFindNode(schema, 'Name')).toEqual(schemaSource.properties.Name);
65
+ });
66
+ });
67
+
68
+ describe('schemaFindNode', () => {
69
+ test('return undefined for unknown key', () => {
70
+ expect(schemaFindParentNode(schema, 'XXX')).toEqual(undefined);
71
+ });
72
+
73
+ test('return root schema for root key', () => {
74
+ expect(schemaFindParentNode(schema, 'Name')).toEqual(schema);
75
+ });
76
+ test('return parent', () => {
77
+ expect(schemaFindParentNode(schema, 'Job.SubJob.Id')).toEqual(
78
+ schemaSource.properties.Job.properties.SubJob
79
+ );
80
+ });
81
+ });
82
+
83
+ describe('schemaBuildMap', () => {
84
+ test('properly creates dummy data', () => {
85
+ const { dummyData } = schemaBuildMap(schema);
86
+ expect(dummyData).toEqual({
87
+ IDList: [],
88
+ IDList2: ['test'],
89
+ Job: {
90
+ Name: 'Test job',
91
+ SubJob: { Name: 'Sub job' },
92
+ Technicians: [{ Name: 'John Doe' }],
93
+ },
94
+ });
95
+ });
96
+ });
@@ -0,0 +1,94 @@
1
+ import { loadScript } from './loadScript';
2
+ import { UnlayerStore } from './shared/tools';
3
+ import { UnlayerDesignTool } from './unlayer-interface';
4
+
5
+ const dummyStore: UnlayerStore = {
6
+ renderHtml() {
7
+ return '';
8
+ },
9
+ sendData() {},
10
+ getTool() {
11
+ return undefined;
12
+ },
13
+ };
14
+
15
+ export class UnlayerCoreApi {
16
+ customCss = '';
17
+ private loaded = new Set<string>();
18
+
19
+ private core = ['core.bundle.js'];
20
+ private coreTools = ['tools.bundle.js'];
21
+
22
+ constructor(private baseUrl: string) {}
23
+
24
+ private get dteStore(): UnlayerStore {
25
+ return (window as any).dteStore ?? dummyStore;
26
+ }
27
+
28
+ get pathsCore() {
29
+ return this.core.map(c => `${this.baseUrl}/${c}`);
30
+ }
31
+
32
+ get pathsCoreTools() {
33
+ return this.coreTools.map(c => `${this.baseUrl}/${c}`);
34
+ }
35
+
36
+ async init() {
37
+ return Promise.all([
38
+ fetch(`${this.baseUrl}/custom.css`).then(response => response.text()),
39
+ ]).then(([customCSS]) => {
40
+ this.customCss = customCSS;
41
+ });
42
+ }
43
+
44
+ clean() {
45
+ this.customCss = '';
46
+ this.loaded = new Set();
47
+ }
48
+
49
+ async preloadCore() {
50
+ if (this.loaded.has('_core')) {
51
+ return;
52
+ }
53
+ this.loaded.add('_core');
54
+
55
+ await Promise.all(this.core.map(c => loadScript(`${this.baseUrl}/${c}`)));
56
+ }
57
+
58
+ async preloadCoreTools() {
59
+ if (this.loaded.has('_coreTools')) {
60
+ return;
61
+ }
62
+ this.loaded.add('_coreTools');
63
+
64
+ await Promise.all(this.coreTools.map(c => loadScript(`${this.baseUrl}/${c}`)));
65
+ }
66
+
67
+ getCustomToolModel(key: string): object {
68
+ const dteTool = this.dteStore.getTool(key);
69
+
70
+ if (!dteTool) {
71
+ return {};
72
+ }
73
+
74
+ try {
75
+ return dteTool.getModel() ?? {};
76
+ } catch {
77
+ return {};
78
+ }
79
+ }
80
+
81
+ getCustomToolDataSources(tool: UnlayerDesignTool): string[] {
82
+ const dteTool = this.dteStore.getTool(tool.slug);
83
+
84
+ if (!dteTool) {
85
+ return [];
86
+ }
87
+
88
+ try {
89
+ return dteTool.dataSources(tool.values) ?? [];
90
+ } catch {
91
+ return [];
92
+ }
93
+ }
94
+ }