oipage 1.6.0 → 1.7.0-alpha.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.
Files changed (96) hide show
  1. package/.github/FUNDING.yml +11 -11
  2. package/AUTHORS.txt +6 -6
  3. package/CHANGELOG +144 -137
  4. package/LICENSE +20 -20
  5. package/README.md +95 -95
  6. package/bin/WebSocket/decodeWsFrame.js +43 -43
  7. package/bin/WebSocket/encodeWsFrame.js +28 -28
  8. package/bin/WebSocket/headersToJSON.js +26 -26
  9. package/bin/WebSocket/index.js +80 -80
  10. package/bin/data/mineTypes.json +104 -104
  11. package/bin/disk.js +42 -42
  12. package/bin/help.js +43 -43
  13. package/bin/intercept.js +15 -15
  14. package/bin/network.js +21 -21
  15. package/bin/run +115 -115
  16. package/bin/serve.d.ts +55 -55
  17. package/bin/serve.js +158 -158
  18. package/bin/template/404.html +186 -186
  19. package/bin/tools/deleteEmptyFolder.js +23 -23
  20. package/bin/tools/format.js +75 -75
  21. package/bin/tools/network.js +42 -42
  22. package/bin/tools/resolve404.js +83 -83
  23. package/bin/tools/resolveImport.js +88 -88
  24. package/bin/website-htmls/components/ui-select-file/index.html +7 -7
  25. package/bin/website-htmls/components/ui-select-file/index.js +37 -37
  26. package/bin/website-htmls/components/ui-select-file/index.scss +44 -44
  27. package/bin/website-htmls/dialogs/imageSize/index.html +54 -54
  28. package/bin/website-htmls/dialogs/imageSize/index.js +53 -53
  29. package/bin/website-htmls/dialogs/imageSize/index.scss +138 -138
  30. package/bin/website-htmls/dialogs/index.js +52 -52
  31. package/bin/website-htmls/images/addFile.svg +1 -1
  32. package/bin/website-htmls/images/img-to-pdf.svg +1 -1
  33. package/bin/website-htmls/index.html +17 -17
  34. package/bin/website-htmls/main.js +13 -13
  35. package/bin/website-htmls/pages/App/index.html +6 -6
  36. package/bin/website-htmls/pages/App/index.js +22 -22
  37. package/bin/website-htmls/pages/App/index.scss +43 -43
  38. package/bin/website-htmls/pages/appStore/index.html +24 -24
  39. package/bin/website-htmls/pages/appStore/index.js +19 -19
  40. package/bin/website-htmls/pages/appStore/index.scss +41 -41
  41. package/bin/website-htmls/pages/chart/index.html +8 -8
  42. package/bin/website-htmls/pages/chart/index.js +72 -72
  43. package/bin/website-htmls/pages/chart/index.scss +72 -72
  44. package/bin/website-htmls/pages/image-editor/index.html +27 -27
  45. package/bin/website-htmls/pages/image-editor/index.js +106 -106
  46. package/bin/website-htmls/pages/image-editor/index.scss +45 -45
  47. package/bin/website-htmls/pages/img-to-pdf/index.html +3 -3
  48. package/bin/website-htmls/pages/img-to-pdf/index.js +44 -44
  49. package/bin/website-htmls/pages/img-to-pdf/index.scss +4 -4
  50. package/bin/website-htmls/router.config.js +19 -19
  51. package/bin/website-htmls/styles/normalize.css +94 -94
  52. package/bin/website-plugins/intercept/chart.js +33 -33
  53. package/bin/website-plugins/intercept/head.js +8 -8
  54. package/bin/website-plugins/intercept/index.js +8 -8
  55. package/bin/website-plugins/intercept/oipage-vislite-intercept.js +33 -33
  56. package/bin/website-plugins/intercept/oipage-zipaper-intercept.js +39 -39
  57. package/bin/website-plugins/loader/index.js +11 -11
  58. package/bin/website-plugins/loader/oipage-html-loader.js +7 -7
  59. package/bin/website-plugins/loader/oipage-scss-loader.js +149 -149
  60. package/nodejs/animation/index.d.ts +19 -19
  61. package/nodejs/animation/index.js +104 -104
  62. package/nodejs/cmdlog/index.d.ts +20 -20
  63. package/nodejs/cmdlog/index.js +75 -75
  64. package/nodejs/disk/index.d.ts +47 -47
  65. package/nodejs/disk/index.js +165 -165
  66. package/nodejs/format/index.d.ts +29 -29
  67. package/nodejs/format/index.js +107 -107
  68. package/nodejs/json/index.d.ts +9 -9
  69. package/nodejs/json/index.js +206 -206
  70. package/nodejs/logform/index.d.ts +18 -18
  71. package/nodejs/logform/index.js +94 -94
  72. package/nodejs/reader/index.d.ts +32 -32
  73. package/nodejs/reader/index.js +20 -20
  74. package/nodejs/remote/index.d.ts +17 -0
  75. package/nodejs/remote/index.js +71 -0
  76. package/nodejs/throttle/index.d.ts +30 -30
  77. package/nodejs/throttle/index.js +50 -50
  78. package/package.json +43 -43
  79. package/web/XMLHttpRequest/index.d.ts +17 -17
  80. package/web/XMLHttpRequest/index.js +60 -60
  81. package/web/animation/index.d.ts +19 -19
  82. package/web/animation/index.js +104 -104
  83. package/web/format/index.d.ts +29 -29
  84. package/web/format/index.js +107 -107
  85. package/web/json/index.d.ts +9 -9
  86. package/web/json/index.js +206 -206
  87. package/web/onReady/index.d.ts +7 -7
  88. package/web/onReady/index.js +8 -8
  89. package/web/performChunk/index.d.ts +4 -4
  90. package/web/performChunk/index.js +19 -19
  91. package/web/reader/index.d.ts +32 -32
  92. package/web/reader/index.js +20 -20
  93. package/web/style/index.d.ts +21 -21
  94. package/web/style/index.js +19 -19
  95. package/web/throttle/index.d.ts +30 -30
  96. package/web/throttle/index.js +50 -50
@@ -1,34 +1,34 @@
1
- const headFactory = require("./head.js");
2
-
3
- const head = headFactory();
4
-
5
- // 聊天
6
- module.exports = {
7
- test: /^\/chart\//,
8
- handler(request, response, wsHandler) {
9
- let url = decodeURIComponent(request.url);
10
-
11
- let requestData = "";
12
-
13
- request.on('data', (chunk) => {
14
- requestData += chunk;
15
- });
16
-
17
- request.on('end', () => {
18
-
19
- if (/sendMsg$/.test(url)) {
20
- wsHandler.notifyBrowser({
21
- payloadData: requestData
22
- });
23
- }
24
-
25
- head["Content-Type"] = "application/json;charset=utf-8";
26
- response.writeHead(200, head);
27
- response.write(JSON.stringify({
28
- code: "000000"
29
- }));
30
- response.end();
31
-
32
- });
33
- }
1
+ const headFactory = require("./head.js");
2
+
3
+ const head = headFactory();
4
+
5
+ // 聊天
6
+ module.exports = {
7
+ test: /^\/chart\//,
8
+ handler(request, response, wsHandler) {
9
+ let url = decodeURIComponent(request.url);
10
+
11
+ let requestData = "";
12
+
13
+ request.on('data', (chunk) => {
14
+ requestData += chunk;
15
+ });
16
+
17
+ request.on('end', () => {
18
+
19
+ if (/sendMsg$/.test(url)) {
20
+ wsHandler.notifyBrowser({
21
+ payloadData: requestData
22
+ });
23
+ }
24
+
25
+ head["Content-Type"] = "application/json;charset=utf-8";
26
+ response.writeHead(200, head);
27
+ response.write(JSON.stringify({
28
+ code: "000000"
29
+ }));
30
+ response.end();
31
+
32
+ });
33
+ }
34
34
  };
@@ -1,9 +1,9 @@
1
- const pkg = require("../../../package.json");
2
-
3
- module.exports = function () {
4
- return {
5
- 'Access-Control-Allow-Origin': '*',
6
- 'Server': 'Powered by OIPage:website@' + pkg.version,
7
- 'Content-Type': 'text/plain;charset=utf-8'
8
- };
1
+ const pkg = require("../../../package.json");
2
+
3
+ module.exports = function () {
4
+ return {
5
+ 'Access-Control-Allow-Origin': '*',
6
+ 'Server': 'Powered by OIPage:website@' + pkg.version,
7
+ 'Content-Type': 'text/plain;charset=utf-8'
8
+ };
9
9
  };
@@ -1,9 +1,9 @@
1
- const OIPageZipaperIntercept = require("./oipage-zipaper-intercept.js");
2
- const OIPageVISLiteIntercept = require("./oipage-vislite-intercept.js");
3
- const ChartIntercept = require("./chart.js");
4
-
5
- module.exports = [
6
- OIPageZipaperIntercept,
7
- OIPageVISLiteIntercept,
8
- ChartIntercept
1
+ const OIPageZipaperIntercept = require("./oipage-zipaper-intercept.js");
2
+ const OIPageVISLiteIntercept = require("./oipage-vislite-intercept.js");
3
+ const ChartIntercept = require("./chart.js");
4
+
5
+ module.exports = [
6
+ OIPageZipaperIntercept,
7
+ OIPageVISLiteIntercept,
8
+ ChartIntercept
9
9
  ];
@@ -1,34 +1,34 @@
1
- const { readFileSync } = require("fs");
2
- const { join } = require("path");
3
- const headFactory = require("./head.js");
4
-
5
- const head = headFactory();
6
-
7
- // VISLite库
8
- module.exports = {
9
- test: /^vislite$/,
10
- handler(request, response) {
11
- head["Content-Type"] = "application/javascript;charset=utf-8";
12
- head["ETag"] = "VISLite@v" + require("vislite/package.json").version;
13
-
14
- if (request.headers["if-none-match"] === head["ETag"]) {
15
- response.writeHead('304', head);
16
- response.end();
17
- console.log("<i> \x1b[1m\x1b[32m[OIPage-http-server] Cache File: VISLite\x1b[0m " + new Date().toLocaleString() + "\x1b[33m\x1b[1m 304\x1b[0m");;
18
- return;
19
- }
20
-
21
- response.writeHead(200, head);
22
-
23
- let source = readFileSync(join(__dirname, "../../../node_modules/vislite/lib/index.umd.min.js"), {
24
- encoding: "utf8"
25
- });
26
-
27
- response.write(`let module = { exports: {} };
28
- let exports = module.exports;
29
- ${source}
30
- export let Canvas = module.exports.Canvas;
31
- `);
32
- response.end();
33
- }
1
+ const { readFileSync } = require("fs");
2
+ const { join } = require("path");
3
+ const headFactory = require("./head.js");
4
+
5
+ const head = headFactory();
6
+
7
+ // VISLite库
8
+ module.exports = {
9
+ test: /^vislite$/,
10
+ handler(request, response) {
11
+ head["Content-Type"] = "application/javascript;charset=utf-8";
12
+ head["ETag"] = "VISLite@v" + require("vislite/package.json").version;
13
+
14
+ if (request.headers["if-none-match"] === head["ETag"]) {
15
+ response.writeHead('304', head);
16
+ response.end();
17
+ console.log("<i> \x1b[1m\x1b[32m[OIPage-http-server] Cache File: VISLite\x1b[0m " + new Date().toLocaleString() + "\x1b[33m\x1b[1m 304\x1b[0m");;
18
+ return;
19
+ }
20
+
21
+ response.writeHead(200, head);
22
+
23
+ let source = readFileSync(join(__dirname, "../../../node_modules/vislite/lib/index.umd.min.js"), {
24
+ encoding: "utf8"
25
+ });
26
+
27
+ response.write(`let module = { exports: {} };
28
+ let exports = module.exports;
29
+ ${source}
30
+ export let Canvas = module.exports.Canvas;
31
+ `);
32
+ response.end();
33
+ }
34
34
  };
@@ -1,40 +1,40 @@
1
- const { readFileSync } = require("fs");
2
- const { join } = require("path");
3
- const headFactory = require("./head.js");
4
-
5
- const head = headFactory();
6
-
7
- // Zipaper框架
8
- module.exports = {
9
- test: /^zipaper$/,
10
- handler(request, response) {
11
- head["Content-Type"] = "application/javascript;charset=utf-8";
12
- head["ETag"] = "Zipaper@v" + require("zipaper/package.json").version;
13
-
14
- if (request.headers["if-none-match"] === head["ETag"]) {
15
- response.writeHead('304', head);
16
- response.end();
17
- console.log("<i> \x1b[1m\x1b[32m[OIPage-http-server] Cache File: Zipaper\x1b[0m " + new Date().toLocaleString() + "\x1b[33m\x1b[1m 304\x1b[0m");;
18
- return;
19
- }
20
-
21
- response.writeHead(200, head);
22
-
23
- let source = readFileSync(join(__dirname, "../../../node_modules/zipaper/dist/Zipaper.min.js"), {
24
- encoding: "utf8"
25
- });
26
-
27
- response.write(`let module = { exports: {} };
28
- let exports = module.exports;
29
- ${source}
30
- export let createApp = exports.createApp;
31
- export let defineDirective = exports.defineDirective;
32
- export let defineElement = exports.defineElement;
33
- export let defineRouter = exports.defineRouter;
34
- export let ref = exports.ref;
35
- export let reactive = exports.reactive;
36
- export let watcher = exports.watcher;
37
- `);
38
- response.end();
39
- }
1
+ const { readFileSync } = require("fs");
2
+ const { join } = require("path");
3
+ const headFactory = require("./head.js");
4
+
5
+ const head = headFactory();
6
+
7
+ // Zipaper框架
8
+ module.exports = {
9
+ test: /^zipaper$/,
10
+ handler(request, response) {
11
+ head["Content-Type"] = "application/javascript;charset=utf-8";
12
+ head["ETag"] = "Zipaper@v" + require("zipaper/package.json").version;
13
+
14
+ if (request.headers["if-none-match"] === head["ETag"]) {
15
+ response.writeHead('304', head);
16
+ response.end();
17
+ console.log("<i> \x1b[1m\x1b[32m[OIPage-http-server] Cache File: Zipaper\x1b[0m " + new Date().toLocaleString() + "\x1b[33m\x1b[1m 304\x1b[0m");;
18
+ return;
19
+ }
20
+
21
+ response.writeHead(200, head);
22
+
23
+ let source = readFileSync(join(__dirname, "../../../node_modules/zipaper/dist/Zipaper.min.js"), {
24
+ encoding: "utf8"
25
+ });
26
+
27
+ response.write(`let module = { exports: {} };
28
+ let exports = module.exports;
29
+ ${source}
30
+ export let createApp = exports.createApp;
31
+ export let defineDirective = exports.defineDirective;
32
+ export let defineElement = exports.defineElement;
33
+ export let defineRouter = exports.defineRouter;
34
+ export let ref = exports.ref;
35
+ export let reactive = exports.reactive;
36
+ export let watcher = exports.watcher;
37
+ `);
38
+ response.end();
39
+ }
40
40
  };
@@ -1,12 +1,12 @@
1
- const OIPageScssLoader = require("./oipage-scss-loader.js");
2
- const OIPageHtmlLoader = require("./oipage-html-loader.js");
3
-
4
- module.exports = {
5
- rules: [{
6
- test: /\.scss$/,
7
- use: OIPageScssLoader
8
- }, {
9
- test: /\.html$/,
10
- use: OIPageHtmlLoader
11
- }]
1
+ const OIPageScssLoader = require("./oipage-scss-loader.js");
2
+ const OIPageHtmlLoader = require("./oipage-html-loader.js");
3
+
4
+ module.exports = {
5
+ rules: [{
6
+ test: /\.scss$/,
7
+ use: OIPageScssLoader
8
+ }, {
9
+ test: /\.html$/,
10
+ use: OIPageHtmlLoader
11
+ }]
12
12
  };
@@ -1,8 +1,8 @@
1
- const { parseTemplate } = require("xhtml-to-json");
2
-
3
- module.exports = function (source) {
4
- if (this.entry) return source;
5
-
6
- this.setFileType("application/javascript");
7
- return `export default ${JSON.stringify(parseTemplate(source).toJson())}`;
1
+ const { parseTemplate } = require("xhtml-to-json");
2
+
3
+ module.exports = function (source) {
4
+ if (this.entry) return source;
5
+
6
+ this.setFileType("application/javascript");
7
+ return `export default ${JSON.stringify(parseTemplate(source).toJson())}`;
8
8
  };
@@ -1,150 +1,150 @@
1
- // 参考:https://github.com/zxl20070701/zxl20070701.github.io/blob/master/bin/loader/scss.js
2
- let toSelector = function (preSelectorArray, deep) {
3
- let selectors = preSelectorArray[0], i, j, k;
4
- for (i = 1; i < deep; i++) {
5
- let temp = [];
6
- for (j = 0; j < selectors.length; j++) {
7
- for (k = 0; k < preSelectorArray[i].length; k++) {
8
- temp.push(selectors[j] + preSelectorArray[i][k]);
9
- }
10
- }
11
- selectors = temp;
12
- }
13
- return "\n" + (selectors.join(',')) + "{\n";
14
- };
15
- let analyseBlock = function (source) {
16
- let i = -1, currentChar = null;
17
- let next = function () {
18
- currentChar = i++ < source.length - 1 ? source[i] : null;
19
- return currentChar;
20
- }
21
- let nextNValue = function (n) {
22
- return source.substring(i, n + i > source.length ? source.length : n + i);
23
- }
24
- let blocks = [];
25
- let currentBlock = "";
26
- next();
27
- while (true) {
28
- while (new RegExp("[\\x20\\t\\r\\n\\f]").test(currentChar)) {
29
- next();
30
- }
31
- if (currentChar == null) break;
32
- if (nextNValue(2) == '/*') {
33
-
34
- next();
35
- next();
36
- currentBlock = "/*";
37
-
38
- while (nextNValue(2) != '*/' && currentChar != null) {
39
- currentBlock += currentChar;
40
- next();
41
- }
42
- if (currentChar == null) {
43
- throw new Error('The comment is not closed.');
44
- }
45
- currentBlock += "*/";
46
- next();
47
- next();
48
- blocks.push({
49
- value: currentBlock,
50
- type: "comment-double"
51
- });
52
- }
53
- else if (nextNValue(2) == '//') {
54
- currentBlock = '';
55
-
56
- while (currentChar != '\n' && currentChar != null) {
57
- currentBlock += currentChar;
58
- next();
59
- }
60
-
61
- blocks.push({
62
- value: currentBlock,
63
- type: "comment-single"
64
- });
65
-
66
- }
67
- else if (currentChar == '}') {
68
-
69
- blocks.push({
70
- value: "}",
71
- type: "end"
72
- });
73
-
74
- next();
75
-
76
- }
77
- else {
78
-
79
- currentBlock = '';
80
- while (currentChar != '{' && currentChar != ';' && currentChar != null) {
81
- currentBlock += currentChar;
82
- next();
83
- }
84
- if (currentChar == null) {
85
- throw new Error('Statement or code block missing closure.');
86
- }
87
- blocks.push({
88
- value: currentBlock + currentChar,
89
- type: {
90
- '{': "begin",
91
- ';': 'statement'
92
- }[currentChar]
93
- });
94
- next();
95
- }
96
- }
97
- return blocks;
98
- };
99
- module.exports = function (source) {
100
- this.setFileType("application/javascript");
101
- let blocks = analyseBlock(source + "");
102
- let i, j, cssCode = "", preSelectorArray = [], deep = 0;
103
- for (i = 0; i < blocks.length; i++) {
104
- if (blocks[i].type == 'comment-double') {
105
- cssCode += blocks[i].value;
106
- }
107
- else if (blocks[i].type == 'comment-single') {
108
- cssCode += "\n/* " + blocks[i].value + " */\n";
109
- }
110
- else if (blocks[i].type == 'begin') {
111
- let preSplit = blocks[i].value.split(',');
112
- let preSelect = [];
113
- for (j = 0; j < preSplit.length; j++) {
114
- preSelect[j] = preSplit[j].replace(/\{$/, '').trim();
115
- if (/^&/.test(preSelect[j])) {
116
- preSelect[j] = preSelect[j].replace(/^&/, '');
117
- } else {
118
- preSelect[j] = " " + preSelect[j];
119
- }
120
- }
121
- preSelectorArray[deep] = preSelect;
122
- deep += 1;
123
- }
124
- else if (blocks[i].type == 'end') {
125
- deep -= 1;
126
- }
127
- else if (blocks[i].type == 'statement') {
128
- j = 1;
129
- let preType = blocks[i - j].type;
130
- while (['comment-double', 'comment-single'].indexOf(preType) > -1) {
131
- j += 1;
132
- preType = blocks[i - j].type;
133
- }
134
- if (['end', 'begin'].indexOf(preType) > -1) {
135
- cssCode += toSelector(preSelectorArray, deep);
136
- }
137
- cssCode += "\n" + blocks[i].value + "\n";
138
- j = 1;
139
- let nextType = blocks[i + j].type;
140
- while (['comment-double', 'comment-single'].indexOf(nextType) > -1) {
141
- j += 1;
142
- nextType = blocks[i + j].type;
143
- }
144
- if (['end', 'begin'].indexOf(nextType) > -1) {
145
- cssCode += "\n}\n";
146
- }
147
- }
148
- }
149
- return `export default ${JSON.stringify(cssCode)}`;
1
+ // 参考:https://github.com/zxl20070701/zxl20070701.github.io/blob/master/bin/loader/scss.js
2
+ let toSelector = function (preSelectorArray, deep) {
3
+ let selectors = preSelectorArray[0], i, j, k;
4
+ for (i = 1; i < deep; i++) {
5
+ let temp = [];
6
+ for (j = 0; j < selectors.length; j++) {
7
+ for (k = 0; k < preSelectorArray[i].length; k++) {
8
+ temp.push(selectors[j] + preSelectorArray[i][k]);
9
+ }
10
+ }
11
+ selectors = temp;
12
+ }
13
+ return "\n" + (selectors.join(',')) + "{\n";
14
+ };
15
+ let analyseBlock = function (source) {
16
+ let i = -1, currentChar = null;
17
+ let next = function () {
18
+ currentChar = i++ < source.length - 1 ? source[i] : null;
19
+ return currentChar;
20
+ }
21
+ let nextNValue = function (n) {
22
+ return source.substring(i, n + i > source.length ? source.length : n + i);
23
+ }
24
+ let blocks = [];
25
+ let currentBlock = "";
26
+ next();
27
+ while (true) {
28
+ while (new RegExp("[\\x20\\t\\r\\n\\f]").test(currentChar)) {
29
+ next();
30
+ }
31
+ if (currentChar == null) break;
32
+ if (nextNValue(2) == '/*') {
33
+
34
+ next();
35
+ next();
36
+ currentBlock = "/*";
37
+
38
+ while (nextNValue(2) != '*/' && currentChar != null) {
39
+ currentBlock += currentChar;
40
+ next();
41
+ }
42
+ if (currentChar == null) {
43
+ throw new Error('The comment is not closed.');
44
+ }
45
+ currentBlock += "*/";
46
+ next();
47
+ next();
48
+ blocks.push({
49
+ value: currentBlock,
50
+ type: "comment-double"
51
+ });
52
+ }
53
+ else if (nextNValue(2) == '//') {
54
+ currentBlock = '';
55
+
56
+ while (currentChar != '\n' && currentChar != null) {
57
+ currentBlock += currentChar;
58
+ next();
59
+ }
60
+
61
+ blocks.push({
62
+ value: currentBlock,
63
+ type: "comment-single"
64
+ });
65
+
66
+ }
67
+ else if (currentChar == '}') {
68
+
69
+ blocks.push({
70
+ value: "}",
71
+ type: "end"
72
+ });
73
+
74
+ next();
75
+
76
+ }
77
+ else {
78
+
79
+ currentBlock = '';
80
+ while (currentChar != '{' && currentChar != ';' && currentChar != null) {
81
+ currentBlock += currentChar;
82
+ next();
83
+ }
84
+ if (currentChar == null) {
85
+ throw new Error('Statement or code block missing closure.');
86
+ }
87
+ blocks.push({
88
+ value: currentBlock + currentChar,
89
+ type: {
90
+ '{': "begin",
91
+ ';': 'statement'
92
+ }[currentChar]
93
+ });
94
+ next();
95
+ }
96
+ }
97
+ return blocks;
98
+ };
99
+ module.exports = function (source) {
100
+ this.setFileType("application/javascript");
101
+ let blocks = analyseBlock(source + "");
102
+ let i, j, cssCode = "", preSelectorArray = [], deep = 0;
103
+ for (i = 0; i < blocks.length; i++) {
104
+ if (blocks[i].type == 'comment-double') {
105
+ cssCode += blocks[i].value;
106
+ }
107
+ else if (blocks[i].type == 'comment-single') {
108
+ cssCode += "\n/* " + blocks[i].value + " */\n";
109
+ }
110
+ else if (blocks[i].type == 'begin') {
111
+ let preSplit = blocks[i].value.split(',');
112
+ let preSelect = [];
113
+ for (j = 0; j < preSplit.length; j++) {
114
+ preSelect[j] = preSplit[j].replace(/\{$/, '').trim();
115
+ if (/^&/.test(preSelect[j])) {
116
+ preSelect[j] = preSelect[j].replace(/^&/, '');
117
+ } else {
118
+ preSelect[j] = " " + preSelect[j];
119
+ }
120
+ }
121
+ preSelectorArray[deep] = preSelect;
122
+ deep += 1;
123
+ }
124
+ else if (blocks[i].type == 'end') {
125
+ deep -= 1;
126
+ }
127
+ else if (blocks[i].type == 'statement') {
128
+ j = 1;
129
+ let preType = blocks[i - j].type;
130
+ while (['comment-double', 'comment-single'].indexOf(preType) > -1) {
131
+ j += 1;
132
+ preType = blocks[i - j].type;
133
+ }
134
+ if (['end', 'begin'].indexOf(preType) > -1) {
135
+ cssCode += toSelector(preSelectorArray, deep);
136
+ }
137
+ cssCode += "\n" + blocks[i].value + "\n";
138
+ j = 1;
139
+ let nextType = blocks[i + j].type;
140
+ while (['comment-double', 'comment-single'].indexOf(nextType) > -1) {
141
+ j += 1;
142
+ nextType = blocks[i + j].type;
143
+ }
144
+ if (['end', 'begin'].indexOf(nextType) > -1) {
145
+ cssCode += "\n}\n";
146
+ }
147
+ }
148
+ }
149
+ return `export default ${JSON.stringify(cssCode)}`;
150
150
  };
@@ -1,20 +1,20 @@
1
- interface animationResult {
2
-
3
- /**
4
- * 一个函数,调用该函数,可以提前结束动画
5
- */
6
- stop(): void
7
- }
8
-
9
- interface animationFun {
10
- (deep: number): void
11
- }
12
-
13
- /**
14
- * 轮询动画
15
- */
16
- export interface animationType {
17
- (doback: animationFun, duration?: number, callback?: animationFun): animationResult
18
- }
19
-
1
+ interface animationResult {
2
+
3
+ /**
4
+ * 一个函数,调用该函数,可以提前结束动画
5
+ */
6
+ stop(): void
7
+ }
8
+
9
+ interface animationFun {
10
+ (deep: number): void
11
+ }
12
+
13
+ /**
14
+ * 轮询动画
15
+ */
16
+ export interface animationType {
17
+ (doback: animationFun, duration?: number, callback?: animationFun): animationResult
18
+ }
19
+
20
20
  export let animation: animationType