easy-email-extensions 4.8.0 → 4.9.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/index2.js +180 -2
- package/lib/index2.js.map +1 -1
- package/lib/index3.js +1 -0
- package/lib/index3.js.map +1 -1
- package/lib/typings/mjml-browser.d.ts +37 -0
- package/lib/utils/MjmlToJson.d.ts +5 -0
- package/lib/utils/parseXMLtoBlock.d.ts +2 -0
- package/package.json +18 -7
- package/readme.md +117 -1
@@ -0,0 +1,37 @@
|
|
1
|
+
declare module 'mjml-browser' {
|
2
|
+
const transform: (vml: string, options?: {
|
3
|
+
beautify?: boolean;
|
4
|
+
minify?: boolean;
|
5
|
+
keepComments?: boolean;
|
6
|
+
validationLevel: 'strict' | 'soft' | 'skip';
|
7
|
+
}) => {
|
8
|
+
json: MjmlBlockItem;
|
9
|
+
html: string;
|
10
|
+
errors: string[];
|
11
|
+
};
|
12
|
+
export default transform;
|
13
|
+
}
|
14
|
+
interface MjmlBlockItem {
|
15
|
+
file: string;
|
16
|
+
absoluteFilePath: string;
|
17
|
+
line: number;
|
18
|
+
includedIn: any[];
|
19
|
+
tagName: string;
|
20
|
+
children: IChildrenItem[];
|
21
|
+
attributes: IAttributes;
|
22
|
+
content?: string;
|
23
|
+
}
|
24
|
+
interface IChildrenItem {
|
25
|
+
file?: string;
|
26
|
+
absoluteFilePath?: string;
|
27
|
+
line: number;
|
28
|
+
includedIn: any[];
|
29
|
+
tagName: string;
|
30
|
+
children?: IChildrenItem[];
|
31
|
+
attributes: IAttributes;
|
32
|
+
content?: string;
|
33
|
+
inline?: 'inline';
|
34
|
+
}
|
35
|
+
interface IAttributes {
|
36
|
+
[key: string]: any;
|
37
|
+
}
|
package/package.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"name": "easy-email-extensions",
|
3
3
|
"license": "MIT",
|
4
4
|
"description": "Email editor",
|
5
|
-
"version": "4.
|
5
|
+
"version": "4.9.0",
|
6
6
|
"author": "m-Ryan",
|
7
7
|
"repository": {
|
8
8
|
"type": "git",
|
@@ -19,8 +19,9 @@
|
|
19
19
|
"scripts": {
|
20
20
|
"dev": "vite",
|
21
21
|
"typings": "tsc --declaration --emitDeclarationOnly --project tsconfig.lib.json && tsc-alias -p tsconfig.alias.json",
|
22
|
-
"build": "rimraf lib && npm run typings
|
23
|
-
"format": "eslint --fix --ext .tsx,.ts,.tsx src/"
|
22
|
+
"build": "rimraf lib && npm run typings && vite build --config vite.config.ts",
|
23
|
+
"format": "eslint --fix --ext .tsx,.ts,.tsx src/",
|
24
|
+
"test": "jest --coverage"
|
24
25
|
},
|
25
26
|
"husky": {
|
26
27
|
"hooks": {
|
@@ -33,13 +34,23 @@
|
|
33
34
|
]
|
34
35
|
},
|
35
36
|
"devDependencies": {
|
37
|
+
"@babel/core": "^7.15.0",
|
38
|
+
"@babel/preset-env": "^7.15.0",
|
39
|
+
"@babel/preset-react": "^7.14.5",
|
40
|
+
"@babel/preset-typescript": "^7.15.0",
|
41
|
+
"@types/color": "^3.0.3",
|
42
|
+
"@types/jest": "^26.0.24",
|
43
|
+
"@types/jsdom": "^16.2.13",
|
36
44
|
"@types/lodash": "^4.14.178",
|
37
45
|
"@types/node": "^16.11.7",
|
38
46
|
"@types/react": "17.0.2",
|
47
|
+
"@types/react-color": "^3.0.6",
|
39
48
|
"@types/react-dom": "^17.0.11",
|
49
|
+
"@types/uuid": "^8.3.4",
|
40
50
|
"@typescript-eslint/eslint-plugin": "^4.28.3",
|
41
51
|
"@typescript-eslint/parser": "^4.28.3",
|
42
52
|
"@vitejs/plugin-react-refresh": "^1.3.6",
|
53
|
+
"babel-jest": "^27.0.6",
|
43
54
|
"cross-env": "^7.0.3",
|
44
55
|
"eslint": "^7.31.0",
|
45
56
|
"eslint-config-prettier": "^8.3.0",
|
@@ -48,6 +59,8 @@
|
|
48
59
|
"eslint-plugin-prettier": "^3.4.0",
|
49
60
|
"eslint-plugin-react": "^7.24.0",
|
50
61
|
"eslint-plugin-react-hooks": "^4.2.0",
|
62
|
+
"jest": "^27.0.6",
|
63
|
+
"jsdom": "^17.0.0",
|
51
64
|
"lerna": "^4.0.0",
|
52
65
|
"less": "^4.1.2",
|
53
66
|
"react": "^17.0.2",
|
@@ -55,6 +68,7 @@
|
|
55
68
|
"react-final-form": "^6.5.7",
|
56
69
|
"rollup-plugin-visualizer": "^5.5.2",
|
57
70
|
"sass": "^1.43.4",
|
71
|
+
"ts-node": "^10.4.0",
|
58
72
|
"tsc-alias": "^1.4.1",
|
59
73
|
"typescript": "^4.4.4",
|
60
74
|
"vite": "^2.6.14",
|
@@ -63,9 +77,6 @@
|
|
63
77
|
},
|
64
78
|
"dependencies": {
|
65
79
|
"@arco-design/web-react": "^2.36.1",
|
66
|
-
"@types/color": "^3.0.3",
|
67
|
-
"@types/react-color": "^3.0.6",
|
68
|
-
"@types/uuid": "^8.3.4",
|
69
80
|
"codemirror": "^5.63.3",
|
70
81
|
"color": "^4.2.3",
|
71
82
|
"final-form": "^4.20.4",
|
@@ -88,5 +99,5 @@
|
|
88
99
|
"react-dom": "^17.0.2",
|
89
100
|
"react-final-form": "^6.5.7"
|
90
101
|
},
|
91
|
-
"gitHead": "
|
102
|
+
"gitHead": "5966ec91c46efc1ccc630c79959de1243be3e2b5"
|
92
103
|
}
|
package/readme.md
CHANGED
@@ -2,7 +2,10 @@
|
|
2
2
|
|
3
3
|
## Introduction
|
4
4
|
|
5
|
-
Provide default UI components, when they don’t meet your needs, you can refer to it and write your own
|
5
|
+
Provide default UI components, when they don’t meet your needs, you can refer to it and write your own.
|
6
|
+
|
7
|
+
It also provides the following utils:
|
8
|
+
- MjmlToJson
|
6
9
|
|
7
10
|
## usage
|
8
11
|
|
@@ -227,3 +230,116 @@ export default function App() {
|
|
227
230
|
- compact
|
228
231
|
- categories
|
229
232
|
- showSourceCode
|
233
|
+
|
234
|
+
## transform mjml to json
|
235
|
+
|
236
|
+
```ts
|
237
|
+
import { MjmlToJson } from 'easy-email-extensions';
|
238
|
+
|
239
|
+
const json = MjmlToJson(`
|
240
|
+
<mjml>
|
241
|
+
<mj-body>
|
242
|
+
<mj-hero mode="fluid-height" background-width="600px" background-height="469px" background-url="https://cloud.githubusercontent.com/assets/1830348/15354890/1442159a-1cf0-11e6-92b1-b861dadf1750.jpg" background-color="#2a3448" padding="100px 0px">
|
243
|
+
<mj-text padding="20px" color="#ffffff" font-family="Helvetica" align="center" font-size="45px" line-height="45px" font-weight="900">
|
244
|
+
GO TO SPACE
|
245
|
+
</mj-text>
|
246
|
+
<mj-button href="https://mjml.io/" align="center">
|
247
|
+
ORDER YOUR TICKET NOW
|
248
|
+
</mj-button>
|
249
|
+
</mj-hero>
|
250
|
+
</mj-body>
|
251
|
+
</mjml>
|
252
|
+
`);
|
253
|
+
|
254
|
+
console.log(json);
|
255
|
+
```
|
256
|
+
|
257
|
+
// output
|
258
|
+
|
259
|
+
```json
|
260
|
+
{
|
261
|
+
"type": "page",
|
262
|
+
"data": {
|
263
|
+
"value": {
|
264
|
+
"breakpoint": "480px",
|
265
|
+
"headAttributes": "",
|
266
|
+
"font-size": "14px",
|
267
|
+
"line-height": "1.7",
|
268
|
+
"headStyles": [],
|
269
|
+
"fonts": [],
|
270
|
+
"responsive": true,
|
271
|
+
"font-family": "lucida Grande,Verdana,Microsoft YaHei",
|
272
|
+
"text-color": "#000000"
|
273
|
+
}
|
274
|
+
},
|
275
|
+
"attributes": {
|
276
|
+
"background-color": "#efeeea",
|
277
|
+
"width": "600px"
|
278
|
+
},
|
279
|
+
"children": [
|
280
|
+
{
|
281
|
+
"type": "hero",
|
282
|
+
"data": {
|
283
|
+
"value": {}
|
284
|
+
},
|
285
|
+
"attributes": {
|
286
|
+
"padding": "100px 0px 100px 0px",
|
287
|
+
"border": "none",
|
288
|
+
"direction": "ltr",
|
289
|
+
"text-align": "center",
|
290
|
+
"background-color": "#2a3448",
|
291
|
+
"background-position": "center center",
|
292
|
+
"mode": "fluid-height",
|
293
|
+
"vertical-align": "top",
|
294
|
+
"background-url": "https://cloud.githubusercontent.com/assets/1830348/15354890/1442159a-1cf0-11e6-92b1-b861dadf1750.jpg",
|
295
|
+
"background-width": "600px",
|
296
|
+
"background-height": "469px"
|
297
|
+
},
|
298
|
+
"children": [
|
299
|
+
{
|
300
|
+
"type": "text",
|
301
|
+
"data": {
|
302
|
+
"value": {
|
303
|
+
"content": "GO TO SPACE"
|
304
|
+
}
|
305
|
+
},
|
306
|
+
"attributes": {
|
307
|
+
"padding": "20px 20px 20px 20px",
|
308
|
+
"align": "center",
|
309
|
+
"color": "#ffffff",
|
310
|
+
"font-size": "45px",
|
311
|
+
"line-height": "45px",
|
312
|
+
"font-family": "Helvetica",
|
313
|
+
"font-weight": "900"
|
314
|
+
},
|
315
|
+
"children": []
|
316
|
+
},
|
317
|
+
{
|
318
|
+
"type": "button",
|
319
|
+
"data": {
|
320
|
+
"value": {
|
321
|
+
"content": "ORDER YOUR TICKET NOW"
|
322
|
+
}
|
323
|
+
},
|
324
|
+
"attributes": {
|
325
|
+
"align": "center",
|
326
|
+
"background-color": "#414141",
|
327
|
+
"color": "#ffffff",
|
328
|
+
"font-weight": "normal",
|
329
|
+
"border-radius": "3px",
|
330
|
+
"padding": "10px 25px 10px 25px",
|
331
|
+
"inner-padding": "10px 25px 10px 25px",
|
332
|
+
"line-height": "120%",
|
333
|
+
"target": "_blank",
|
334
|
+
"vertical-align": "middle",
|
335
|
+
"border": "none",
|
336
|
+
"text-align": "center",
|
337
|
+
"href": "https://mjml.io/"
|
338
|
+
},
|
339
|
+
"children": []
|
340
|
+
}
|
341
|
+
]
|
342
|
+
}
|
343
|
+
]
|
344
|
+
}
|
345
|
+
```
|