@servicetitan/dte-unlayer 0.89.0 → 0.91.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/api-core.js +29 -22
- package/dist/api-core.js.map +1 -1
- package/dist/api-custom-tools.js +35 -42
- package/dist/api-custom-tools.js.map +1 -1
- package/dist/editor-core-source.d.ts +3 -3
- package/dist/editor-core-source.d.ts.map +1 -1
- package/dist/editor-core-source.js +4 -4
- package/dist/editor-core-source.js.map +1 -1
- package/dist/editor-core.js +2 -2
- package/dist/editor-core.js.map +1 -1
- package/dist/editor.d.ts +1 -0
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +80 -34
- package/dist/editor.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/loadScript.d.ts.map +1 -1
- package/dist/loadScript.js +7 -6
- package/dist/loadScript.js.map +1 -1
- package/dist/shared/configs.d.ts +6 -0
- package/dist/shared/configs.d.ts.map +1 -0
- package/dist/shared/configs.js +7 -0
- package/dist/shared/configs.js.map +1 -0
- package/dist/shared/const.js +2 -1
- package/dist/shared/const.js.map +1 -1
- package/dist/shared/edit-icon.js +1 -0
- package/dist/shared/edit-icon.js.map +1 -1
- package/dist/shared/fonts.js +24 -17
- package/dist/shared/fonts.js.map +1 -1
- package/dist/shared/schema.d.ts.map +1 -1
- package/dist/shared/schema.js +91 -49
- package/dist/shared/schema.js.map +1 -1
- package/dist/shared/tools.d.ts.map +1 -1
- package/dist/shared/tools.js +13 -6
- package/dist/shared/tools.js.map +1 -1
- package/dist/store.d.ts +8 -5
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +302 -314
- package/dist/store.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +120 -112
- package/dist/tools.js.map +1 -1
- package/dist/unlayer-interface.d.ts +5 -0
- package/dist/unlayer-interface.d.ts.map +1 -1
- package/dist/unlayer-interface.js +2 -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 +115 -70
- package/dist/unlayer.js.map +1 -1
- package/package.json +1 -1
- package/src/editor-core-source.ts +3 -3
- package/src/editor.tsx +8 -0
- package/src/shared/configs.ts +5 -0
- package/src/store.ts +85 -6
- package/src/unlayer-interface.tsx +5 -0
- package/src/unlayer.tsx +11 -1
package/dist/unlayer.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { editorCoreScript, editorCoreStyles, editorCoreTools } from './editor-core';
|
|
2
2
|
import { constGenericsEditor } from './shared/const';
|
|
3
3
|
import { unlayerSupportedFonts } from './shared/fonts';
|
|
4
|
-
import { unlayerCustomEmptyToolState, unlayerCustomToolMetaData, unlayerCustomToolsGetRegisterUrls
|
|
5
|
-
export var DesignUpdatedEventType
|
|
6
|
-
(function (DesignUpdatedEventType) {
|
|
4
|
+
import { unlayerCustomEmptyToolState, unlayerCustomToolMetaData, unlayerCustomToolsGetRegisterUrls } from './tools';
|
|
5
|
+
export var DesignUpdatedEventType = /*#__PURE__*/ function(DesignUpdatedEventType) {
|
|
7
6
|
DesignUpdatedEventType["ContentAdded"] = "content:added";
|
|
8
7
|
DesignUpdatedEventType["ContentMoved"] = "content:moved";
|
|
9
8
|
DesignUpdatedEventType["ContentRemoved"] = "content:removed";
|
|
@@ -16,18 +15,18 @@ export var DesignUpdatedEventType;
|
|
|
16
15
|
DesignUpdatedEventType["ColumnRemoved"] = "column:removed";
|
|
17
16
|
DesignUpdatedEventType["ColumnModified"] = "column:modified";
|
|
18
17
|
DesignUpdatedEventType["BodyModified"] = "body:modified";
|
|
19
|
-
|
|
18
|
+
return DesignUpdatedEventType;
|
|
19
|
+
}({});
|
|
20
20
|
/**
|
|
21
21
|
* !!! IMPORTANT !!!
|
|
22
22
|
* do not forget to update schema version when updating unlayer version
|
|
23
23
|
* it is important for templates export and should be in sync
|
|
24
24
|
* to know correct schema version, open unlayer editor and check output design ('schema' property)
|
|
25
|
-
*/
|
|
26
|
-
export const versions = {
|
|
25
|
+
*/ export const versions = {
|
|
27
26
|
unlayer: '1.9.1',
|
|
28
|
-
schema: 16
|
|
27
|
+
schema: 16
|
|
29
28
|
};
|
|
30
|
-
export const handlePreselectTool = (preselectToolSlug)
|
|
29
|
+
export const handlePreselectTool = (preselectToolSlug)=>{
|
|
31
30
|
return `
|
|
32
31
|
const element = document.querySelector('.u_content_custom_${preselectToolSlug}');
|
|
33
32
|
if (element) {
|
|
@@ -35,7 +34,7 @@ export const handlePreselectTool = (preselectToolSlug) => {
|
|
|
35
34
|
}
|
|
36
35
|
`;
|
|
37
36
|
};
|
|
38
|
-
export const hideUnlayerContentsControls = ()
|
|
37
|
+
export const hideUnlayerContentsControls = ()=>{
|
|
39
38
|
return `
|
|
40
39
|
.blockbuilder-layer-controls-contents, .blockbuilder-layer-controls-rows {
|
|
41
40
|
display: none !important;
|
|
@@ -46,14 +45,23 @@ export const hideUnlayerContentsControls = () => {
|
|
|
46
45
|
}
|
|
47
46
|
`;
|
|
48
47
|
};
|
|
49
|
-
export const hideUnlayerBodyMenuItem = ()
|
|
48
|
+
export const hideUnlayerBodyMenuItem = ()=>{
|
|
50
49
|
return `
|
|
51
50
|
.nav-item.tab-body {
|
|
52
51
|
display: none !important;
|
|
53
52
|
}
|
|
54
53
|
`;
|
|
55
54
|
};
|
|
56
|
-
export const
|
|
55
|
+
export const hideMobileTabletPreview = ()=>`
|
|
56
|
+
[data-key="preview-tablet"],
|
|
57
|
+
[data-key="resolution"],
|
|
58
|
+
[data-key="dark-mode"],
|
|
59
|
+
[data-key="preview-desktop"],
|
|
60
|
+
[data-key="preview-mobile"] {
|
|
61
|
+
display: none !important;
|
|
62
|
+
}
|
|
63
|
+
`;
|
|
64
|
+
export const hideUnlayerTools = ()=>{
|
|
57
65
|
return `
|
|
58
66
|
.blockbuilder-content-tools {
|
|
59
67
|
display: none !important;
|
|
@@ -87,63 +95,70 @@ export const hideUnlayerTools = () => {
|
|
|
87
95
|
}
|
|
88
96
|
`;
|
|
89
97
|
};
|
|
90
|
-
export const createUnlayerEditor = (container, { customCSS, customJS, eSignFieldTypes, eSignRecipients, enableHTMLEditing, enableHTMLEditingReadonly, hideAllTools, hideBodyMenuItem, hideContentControls, latest, mergeTags, noCoreTools, tools, units
|
|
98
|
+
export const createUnlayerEditor = (container, { customCSS, customJS, eSignFieldTypes, eSignRecipients, enableHTMLEditing, enableHTMLEditingReadonly, hideAllTools, hideBodyMenuItem, hideContentControls, latest, mergeTags, noCoreTools, tools, units })=>{
|
|
91
99
|
const customScripts = [
|
|
92
100
|
editorCoreScript,
|
|
93
101
|
editorCoreTools,
|
|
94
102
|
'window.dteStore.sendData("--core-loaded")',
|
|
95
103
|
...unlayerCustomToolsGetRegisterUrls(tools),
|
|
96
104
|
unlayerCustomToolMetaData(tools),
|
|
97
|
-
...
|
|
105
|
+
...customJS ? Array.isArray(customJS) ? customJS : [
|
|
106
|
+
customJS
|
|
107
|
+
] : [],
|
|
98
108
|
hideAllTools ? unlayerCustomEmptyToolState() : '',
|
|
99
|
-
'window.dteStore.sendData("--data-loaded")'
|
|
100
|
-
].filter(js
|
|
109
|
+
'window.dteStore.sendData("--data-loaded")'
|
|
110
|
+
].filter((js)=>!!(js === null || js === void 0 ? void 0 : js.trim()));
|
|
101
111
|
const customStyles = [
|
|
102
112
|
editorCoreStyles,
|
|
103
|
-
...
|
|
113
|
+
...customCSS ? Array.isArray(customCSS) ? customCSS : [
|
|
114
|
+
customCSS
|
|
115
|
+
] : [],
|
|
104
116
|
/*
|
|
105
117
|
* @TODO this is workaround for hiding all tools from unlayer sidebar.
|
|
106
118
|
* Will be better to use unlayer functionality for this but it is not implemented yet
|
|
107
|
-
*/
|
|
119
|
+
*/ hideMobileTabletPreview(),
|
|
108
120
|
hideAllTools ? hideUnlayerTools() : '',
|
|
109
121
|
hideContentControls ? hideUnlayerContentsControls() : '',
|
|
110
|
-
hideBodyMenuItem ? hideUnlayerBodyMenuItem() : ''
|
|
111
|
-
].filter(css
|
|
122
|
+
hideBodyMenuItem ? hideUnlayerBodyMenuItem() : ''
|
|
123
|
+
].filter((css)=>!!(css === null || css === void 0 ? void 0 : css.trim()));
|
|
112
124
|
/**
|
|
113
125
|
* Unlayer supports only passing id of container, but when we use shadowDOM (MFE),
|
|
114
126
|
* getElementById can't find element in it
|
|
115
127
|
* so making this dirty hack to let unlayer find container in DOM
|
|
116
|
-
*/
|
|
117
|
-
const id = container.id;
|
|
128
|
+
*/ const id = container.id;
|
|
118
129
|
const currentFind = document.getElementById;
|
|
119
|
-
document.getElementById = function
|
|
130
|
+
document.getElementById = function(elementId) {
|
|
120
131
|
if (id === elementId) {
|
|
121
132
|
return container;
|
|
122
133
|
}
|
|
123
134
|
return currentFind.call(document, id);
|
|
124
135
|
};
|
|
125
136
|
const acv = constGenericsEditor.adminConfigProperty;
|
|
126
|
-
const eSignTypeMapping = (eSignFieldTypes !== null && eSignFieldTypes !== void 0 ? eSignFieldTypes : []).map(key
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const unitsConfig = (units !== null && units !== void 0 ? units : []).reduce((out, unit)
|
|
137
|
+
const eSignTypeMapping = (eSignFieldTypes !== null && eSignFieldTypes !== void 0 ? eSignFieldTypes : []).map((key)=>({
|
|
138
|
+
label: key,
|
|
139
|
+
value: key.charAt(0).toLowerCase() + key.replace(/ /g, '').slice(1)
|
|
140
|
+
}));
|
|
141
|
+
const unitsConfig = (units !== null && units !== void 0 ? units : []).reduce((out, unit)=>{
|
|
131
142
|
out[`custom#${unit.generic}:unit:${unit.id}`] = {
|
|
132
143
|
data: {
|
|
133
|
-
[acv]: unit.values[acv]
|
|
144
|
+
[acv]: unit.values[acv]
|
|
134
145
|
},
|
|
135
146
|
properties: {
|
|
136
147
|
[constGenericsEditor.userConfigProperty]: {
|
|
137
148
|
editor: {
|
|
138
|
-
data: {
|
|
139
|
-
|
|
149
|
+
data: {
|
|
150
|
+
[acv]: unit.values[acv]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
140
153
|
},
|
|
141
154
|
[constGenericsEditor.infoDataProperty]: {
|
|
142
155
|
editor: {
|
|
143
|
-
data: {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
156
|
+
data: {
|
|
157
|
+
title: unit.title
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
147
162
|
};
|
|
148
163
|
return out;
|
|
149
164
|
}, {});
|
|
@@ -152,78 +167,108 @@ export const createUnlayerEditor = (container, { customCSS, customJS, eSignField
|
|
|
152
167
|
eSignRecipient: {
|
|
153
168
|
editor: {
|
|
154
169
|
data: {
|
|
155
|
-
options: eSignRecipients === null || eSignRecipients === void 0 ? void 0 : eSignRecipients.map(item
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
}
|
|
170
|
+
options: eSignRecipients === null || eSignRecipients === void 0 ? void 0 : eSignRecipients.map((item)=>({
|
|
171
|
+
label: item.displayName,
|
|
172
|
+
value: item.name
|
|
173
|
+
}))
|
|
174
|
+
}
|
|
175
|
+
}
|
|
161
176
|
},
|
|
162
177
|
eSignFieldType: {
|
|
163
178
|
editor: {
|
|
164
179
|
data: {
|
|
165
|
-
options: eSignTypeMapping
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
180
|
+
options: eSignTypeMapping
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
170
185
|
};
|
|
171
186
|
const result = window.unlayer.createEditor({
|
|
172
187
|
displayMode: 'web',
|
|
173
|
-
devices: [
|
|
188
|
+
devices: [
|
|
189
|
+
'desktop'
|
|
190
|
+
],
|
|
174
191
|
features: {
|
|
175
|
-
preview:
|
|
192
|
+
preview: true,
|
|
176
193
|
userUploads: false,
|
|
177
|
-
stockImages: false
|
|
194
|
+
stockImages: false
|
|
178
195
|
},
|
|
179
|
-
mergeTags: mergeTags === null || mergeTags === void 0 ? void 0 : mergeTags.reduce((out, tag)
|
|
180
|
-
out[tag.id] = {
|
|
196
|
+
mergeTags: mergeTags === null || mergeTags === void 0 ? void 0 : mergeTags.reduce((out, tag)=>{
|
|
197
|
+
out[tag.id] = {
|
|
198
|
+
name: tag.name,
|
|
199
|
+
value: tag.propertyPath
|
|
200
|
+
};
|
|
181
201
|
return out;
|
|
182
202
|
}, {}),
|
|
183
203
|
projectId: 5713,
|
|
184
204
|
version: latest ? undefined : versions.unlayer,
|
|
185
205
|
appearance: {
|
|
186
|
-
theme: 'classic_light'
|
|
206
|
+
theme: 'classic_light'
|
|
187
207
|
},
|
|
188
|
-
tools:
|
|
208
|
+
tools: {
|
|
209
|
+
'button': {
|
|
210
|
+
enabled: false
|
|
211
|
+
},
|
|
212
|
+
'html': {
|
|
189
213
|
enabled: enableHTMLEditing,
|
|
190
214
|
properties: {
|
|
191
215
|
html: {
|
|
192
216
|
editor: {
|
|
193
217
|
widgetParams: {
|
|
194
218
|
codeMirrorOptions: {
|
|
195
|
-
readOnly: enableHTMLEditingReadonly
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
219
|
+
readOnly: enableHTMLEditingReadonly
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
'menu': {
|
|
227
|
+
enabled: false
|
|
228
|
+
},
|
|
229
|
+
'form': {
|
|
230
|
+
enabled: false
|
|
231
|
+
},
|
|
232
|
+
...noCoreTools ? {
|
|
233
|
+
columns: {
|
|
234
|
+
enabled: false
|
|
200
235
|
},
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
236
|
+
text: {
|
|
237
|
+
enabled: false
|
|
238
|
+
},
|
|
239
|
+
heading: {
|
|
240
|
+
enabled: false
|
|
241
|
+
},
|
|
242
|
+
divider: {
|
|
243
|
+
enabled: false
|
|
244
|
+
},
|
|
245
|
+
image: {
|
|
246
|
+
enabled: false
|
|
247
|
+
}
|
|
248
|
+
} : {},
|
|
249
|
+
...unitsConfig,
|
|
250
|
+
'custom#e-sign': eSignComponentRecipients
|
|
251
|
+
},
|
|
210
252
|
editor: {
|
|
211
|
-
autoSelectOnDrop: true
|
|
253
|
+
autoSelectOnDrop: true
|
|
212
254
|
},
|
|
213
255
|
customJS: customScripts,
|
|
214
256
|
customCSS: customStyles,
|
|
215
257
|
id,
|
|
216
258
|
fonts: {
|
|
217
259
|
showDefaultFonts: false,
|
|
218
|
-
customFonts: unlayerSupportedFonts
|
|
260
|
+
customFonts: unlayerSupportedFonts
|
|
219
261
|
},
|
|
220
262
|
tabs: {
|
|
221
263
|
content: {},
|
|
222
264
|
body: {},
|
|
223
|
-
blocks: {
|
|
224
|
-
|
|
265
|
+
blocks: {
|
|
266
|
+
enabled: false
|
|
267
|
+
}
|
|
268
|
+
}
|
|
225
269
|
});
|
|
226
270
|
document.getElementById = currentFind;
|
|
227
271
|
return result;
|
|
228
272
|
};
|
|
273
|
+
|
|
229
274
|
//# sourceMappingURL=unlayer.js.map
|
package/dist/unlayer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlayer.js","sourceRoot":"","sources":["../src/unlayer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/unlayer.tsx"],"sourcesContent":["import { editorCoreScript, editorCoreStyles, editorCoreTools } from './editor-core';\nimport { constGenericsEditor } from './shared/const';\nimport { unlayerSupportedFonts } from './shared/fonts';\nimport {\n unlayerCustomEmptyToolState,\n unlayerCustomToolMetaData,\n unlayerCustomToolsGetRegisterUrls,\n} from './tools';\nimport { CreateUnlayerEditorProps } from './unlayer-interface';\n\nexport interface UnlayerExport {\n html: string;\n chunks: any;\n design: any;\n}\n\nexport interface Unlayer {\n addEventListener(event: string, cb: (arg: any) => void): void;\n removeEventListener(event: string, cb: (arg: any) => void): void;\n registerCallback(type: string, cb: (...args: any[]) => void): void;\n unregisterCallback(type: string, cb: (...args: any[]) => void): void;\n registerProvider(type: string, cb: (...args: any[]) => void): void;\n unregisterProvider(type: string, cb: (...args: any[]) => void): void;\n loadDesign(design: any): void;\n saveDesign(callback: (design: any) => void): void;\n exportHtml(callback: (data: UnlayerExport) => void): void;\n setMergeTags(tags: any): void;\n createViewer(opts: { render: (values: any) => string }): any;\n registerTool(tool: any): void;\n setBodyValues(values: any): void;\n}\n\nexport enum DesignUpdatedEventType {\n ContentAdded = 'content:added',\n ContentMoved = 'content:moved',\n ContentRemoved = 'content:removed',\n ContentModified = 'content:modified',\n RowAdded = 'row:added',\n RowMoved = 'row:moved',\n RowRemoved = 'row:removed',\n RowModified = 'row:modified',\n ColumnAdded = 'column:added',\n ColumnRemoved = 'column:removed',\n ColumnModified = 'column:modified',\n BodyModified = 'body:modified',\n}\n\nexport interface EventDesignUpdated {\n type: DesignUpdatedEventType;\n item: {\n type: string;\n slug?: string;\n values: any;\n };\n}\n\n/**\n * !!! IMPORTANT !!!\n * do not forget to update schema version when updating unlayer version\n * it is important for templates export and should be in sync\n * to know correct schema version, open unlayer editor and check output design ('schema' property)\n */\nexport const versions = {\n unlayer: '1.9.1',\n schema: 16,\n};\n\nexport const handlePreselectTool = (preselectToolSlug: string) => {\n return `\n const element = document.querySelector('.u_content_custom_${preselectToolSlug}');\n if (element) {\n element.click();\n }\n `;\n};\n\nexport const hideUnlayerContentsControls = () => {\n return `\n .blockbuilder-layer-controls-contents, .blockbuilder-layer-controls-rows {\n display: none !important;\n }\n\n .blockbuilder-options-header .text-right .icon-delete, .blockbuilder-options-header .text-right .icon-duplicate {\n display: none !important;\n }\n `;\n};\n\nexport const hideUnlayerBodyMenuItem = () => {\n return `\n .nav-item.tab-body {\n display: none !important;\n }\n `;\n};\n\nexport const hideMobileTabletPreview = () => `\n [data-key=\"preview-tablet\"],\n [data-key=\"resolution\"],\n [data-key=\"dark-mode\"],\n [data-key=\"preview-desktop\"],\n [data-key=\"preview-mobile\"] {\n display: none !important;\n }\n`;\nexport const hideUnlayerTools = () => {\n return `\n .blockbuilder-content-tools {\n display: none !important;\n }\n \n .unlayer-custom-empty-tool-state {\n display: flex;\n margin-top: 150px;\n flex-direction: column;\n justify-content: center;\n }\n \n .unlayer-custom-empty-tool-state-icon {\n text-align: center;\n margin-bottom: 12px;\n }\n \n .unlayer-custom-empty-tool-state-icon svg{\n color: #606162;\n }\n \n .unlayer-custom-empty-tool-state-text {\n text-align: center;\n font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n color: #606162;\n line-height: 13px;\n }\n `;\n};\n\nexport const createUnlayerEditor = (\n container: HTMLDivElement,\n {\n customCSS,\n customJS,\n eSignFieldTypes,\n eSignRecipients,\n enableHTMLEditing,\n enableHTMLEditingReadonly,\n hideAllTools,\n hideBodyMenuItem,\n hideContentControls,\n latest,\n mergeTags,\n noCoreTools,\n tools,\n units,\n }: CreateUnlayerEditorProps\n): Unlayer => {\n const customScripts = [\n editorCoreScript,\n editorCoreTools,\n 'window.dteStore.sendData(\"--core-loaded\")',\n ...unlayerCustomToolsGetRegisterUrls(tools),\n unlayerCustomToolMetaData(tools),\n ...(customJS ? (Array.isArray(customJS) ? customJS : [customJS]) : []),\n hideAllTools ? unlayerCustomEmptyToolState() : '',\n 'window.dteStore.sendData(\"--data-loaded\")',\n ].filter(js => !!js?.trim());\n const customStyles = [\n editorCoreStyles,\n ...(customCSS ? (Array.isArray(customCSS) ? customCSS : [customCSS]) : []),\n /*\n * @TODO this is workaround for hiding all tools from unlayer sidebar.\n * Will be better to use unlayer functionality for this but it is not implemented yet\n */\n hideMobileTabletPreview(),\n hideAllTools ? hideUnlayerTools() : '',\n hideContentControls ? hideUnlayerContentsControls() : '',\n hideBodyMenuItem ? hideUnlayerBodyMenuItem() : '',\n ].filter(css => !!css?.trim());\n\n /**\n * Unlayer supports only passing id of container, but when we use shadowDOM (MFE),\n * getElementById can't find element in it\n * so making this dirty hack to let unlayer find container in DOM\n */\n const id = container.id;\n const currentFind = document.getElementById;\n document.getElementById = function (elementId: string) {\n if (id === elementId) {\n return container;\n }\n\n return currentFind.call(document, id);\n };\n\n const acv = constGenericsEditor.adminConfigProperty;\n\n const eSignTypeMapping = (eSignFieldTypes ?? []).map(key => ({\n label: key,\n value: key.charAt(0).toLowerCase() + key.replace(/ /g, '').slice(1),\n }));\n\n const unitsConfig = (units ?? []).reduce((out, unit) => {\n out[`custom#${unit.generic}:unit:${unit.id}`] = {\n data: {\n [acv]: unit.values[acv],\n },\n properties: {\n [constGenericsEditor.userConfigProperty]: {\n editor: {\n data: { [acv]: unit.values[acv] },\n },\n },\n [constGenericsEditor.infoDataProperty]: {\n editor: {\n data: { title: unit.title },\n },\n },\n },\n };\n return out;\n }, {} as Record<string, any>);\n\n const eSignComponentRecipients = {\n properties: {\n eSignRecipient: {\n editor: {\n data: {\n options: eSignRecipients?.map(item => ({\n label: item.displayName,\n value: item.name,\n })),\n },\n },\n },\n eSignFieldType: {\n editor: {\n data: {\n options: eSignTypeMapping,\n },\n },\n },\n },\n };\n\n const result = (window as any).unlayer.createEditor({\n displayMode: 'web',\n devices: ['desktop'],\n features: {\n preview: true,\n userUploads: false,\n stockImages: false,\n },\n mergeTags: mergeTags?.reduce((out, tag) => {\n out[tag.id] = { name: tag.name, value: tag.propertyPath };\n\n return out;\n }, {} as Record<string, { name: string; value: string }>),\n projectId: 5713,\n version: latest ? undefined : versions.unlayer,\n appearance: {\n theme: 'classic_light',\n },\n tools: {\n 'button': { enabled: false },\n 'html': {\n enabled: enableHTMLEditing,\n properties: {\n html: {\n editor: {\n widgetParams: {\n codeMirrorOptions: {\n readOnly: enableHTMLEditingReadonly,\n },\n },\n },\n },\n },\n },\n 'menu': { enabled: false },\n 'form': { enabled: false },\n ...(noCoreTools\n ? {\n columns: { enabled: false },\n text: { enabled: false },\n heading: { enabled: false },\n divider: { enabled: false },\n image: { enabled: false },\n }\n : {}),\n ...unitsConfig,\n 'custom#e-sign': eSignComponentRecipients,\n },\n editor: {\n autoSelectOnDrop: true,\n },\n customJS: customScripts,\n customCSS: customStyles,\n id,\n fonts: {\n showDefaultFonts: false,\n customFonts: unlayerSupportedFonts,\n },\n tabs: {\n content: {},\n body: {},\n blocks: { enabled: false },\n },\n });\n\n document.getElementById = currentFind;\n return result;\n};\n"],"names":["editorCoreScript","editorCoreStyles","editorCoreTools","constGenericsEditor","unlayerSupportedFonts","unlayerCustomEmptyToolState","unlayerCustomToolMetaData","unlayerCustomToolsGetRegisterUrls","DesignUpdatedEventType","versions","unlayer","schema","handlePreselectTool","preselectToolSlug","hideUnlayerContentsControls","hideUnlayerBodyMenuItem","hideMobileTabletPreview","hideUnlayerTools","createUnlayerEditor","container","customCSS","customJS","eSignFieldTypes","eSignRecipients","enableHTMLEditing","enableHTMLEditingReadonly","hideAllTools","hideBodyMenuItem","hideContentControls","latest","mergeTags","noCoreTools","tools","units","customScripts","Array","isArray","filter","js","trim","customStyles","css","id","currentFind","document","getElementById","elementId","call","acv","adminConfigProperty","eSignTypeMapping","map","key","label","value","charAt","toLowerCase","replace","slice","unitsConfig","reduce","out","unit","generic","data","values","properties","userConfigProperty","editor","infoDataProperty","title","eSignComponentRecipients","eSignRecipient","options","item","displayName","name","eSignFieldType","result","window","createEditor","displayMode","devices","features","preview","userUploads","stockImages","tag","propertyPath","projectId","version","undefined","appearance","theme","enabled","html","widgetParams","codeMirrorOptions","readOnly","columns","text","heading","divider","image","autoSelectOnDrop","fonts","showDefaultFonts","customFonts","tabs","content","body","blocks"],"mappings":"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"}
|