@cloudbase/framework-plugin-low-code 0.6.32 → 0.6.33

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 (79) hide show
  1. package/lib/builder/config/index.js +2 -5
  2. package/lib/builder/core/copy.d.ts.map +1 -1
  3. package/lib/builder/mp/materials.d.ts.map +1 -1
  4. package/lib/builder/mp/materials.js +21 -5
  5. package/package.json +5 -3
  6. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/cookie.js +0 -286
  7. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/history.js +0 -133
  8. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/local-storage.js +0 -103
  9. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/location.js +0 -588
  10. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/miniprogram.js +0 -101
  11. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/navigator.js +0 -80
  12. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/performance.js +0 -28
  13. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/screen.js +0 -31
  14. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/session-storage.js +0 -96
  15. package/template/dist/mp/miniprogram_npm/miniprogram-render/bom/xml-http-request.js +0 -290
  16. package/template/dist/mp/miniprogram_npm/miniprogram-render/document.js +0 -396
  17. package/template/dist/mp/miniprogram_npm/miniprogram-render/event/custom-event.js +0 -12
  18. package/template/dist/mp/miniprogram_npm/miniprogram-render/event/event-target.js +0 -389
  19. package/template/dist/mp/miniprogram_npm/miniprogram-render/event/event.js +0 -186
  20. package/template/dist/mp/miniprogram_npm/miniprogram-render/index.js +0 -41
  21. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/attribute.js +0 -226
  22. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/class-list.js +0 -153
  23. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/comment.js +0 -80
  24. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/a.js +0 -165
  25. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/canvas.js +0 -138
  26. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/image.js +0 -177
  27. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/input.js +0 -181
  28. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/not-support.js +0 -60
  29. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/option.js +0 -126
  30. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/select.js +0 -155
  31. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/textarea.js +0 -178
  32. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/video.js +0 -165
  33. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/wx-component.js +0 -84
  34. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element/wx-custom-component.js +0 -64
  35. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/element.js +0 -970
  36. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/node.js +0 -140
  37. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/style-list.js +0 -28
  38. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/style.js +0 -158
  39. package/template/dist/mp/miniprogram_npm/miniprogram-render/node/text-node.js +0 -127
  40. package/template/dist/mp/miniprogram_npm/miniprogram-render/tree/parser.js +0 -269
  41. package/template/dist/mp/miniprogram_npm/miniprogram-render/tree/query-selector.js +0 -420
  42. package/template/dist/mp/miniprogram_npm/miniprogram-render/tree/tree.js +0 -130
  43. package/template/dist/mp/miniprogram_npm/miniprogram-render/util/cache.js +0 -95
  44. package/template/dist/mp/miniprogram_npm/miniprogram-render/util/pool.js +0 -24
  45. package/template/dist/mp/miniprogram_npm/miniprogram-render/util/tool.js +0 -131
  46. package/template/dist/mp/miniprogram_npm/miniprogram-render/window.js +0 -651
  47. package/template/generator/app/common.js +0 -17
  48. package/template/generator/app/global-api.js +0 -163
  49. package/template/generator/app/handlers.js +0 -13
  50. package/template/generator/datasources/config.js.tpl +0 -21
  51. package/template/generator/datasources/dataset-profiles.js.tpl +0 -5
  52. package/template/generator/datasources/datasource-profiles.js.tpl +0 -4
  53. package/template/generator/datasources/index.js.tpl +0 -14
  54. package/template/generator/handlers/NodeRenderer.jsx +0 -471
  55. package/template/generator/handlers/RenderWrapper.jsx +0 -145
  56. package/template/generator/index.jsx +0 -116
  57. package/template/generator/index.less +0 -120
  58. package/template/generator/pages/app.tpl +0 -181
  59. package/template/generator/pages/composite.tpl +0 -267
  60. package/template/generator/router/index.tpl +0 -49
  61. package/template/generator/store/computed.js +0 -11
  62. package/template/generator/store/index.js +0 -5
  63. package/template/generator/utils/ScanCodeComponent.js +0 -345
  64. package/template/generator/utils/actionHandler.js +0 -119
  65. package/template/generator/utils/common.js +0 -225
  66. package/template/generator/utils/computed.js +0 -9
  67. package/template/generator/utils/date.js +0 -324
  68. package/template/generator/utils/error.jsx +0 -14
  69. package/template/generator/utils/eventProxy.js +0 -64
  70. package/template/generator/utils/history.js +0 -35
  71. package/template/generator/utils/hooks.js +0 -10
  72. package/template/generator/utils/index.js +0 -41
  73. package/template/generator/utils/initGlobalVar.js +0 -14
  74. package/template/generator/utils/lifecycle.js +0 -158
  75. package/template/generator/utils/monitor-jssdk.min.js +0 -881
  76. package/template/generator/utils/page.js +0 -10
  77. package/template/generator/utils/scan-code-action.js +0 -27
  78. package/template/generator/utils/style.js +0 -81
  79. package/template/generator/utils/widgets.js +0 -343
@@ -1,10 +0,0 @@
1
- export function createPageApi() {
2
- const $page = {
3
- state: {},
4
- computed: {},
5
- handler: {},
6
- props: {},
7
- widgets: {},
8
- };
9
- return $page;
10
- }
@@ -1,27 +0,0 @@
1
- import React from "react";
2
- import { Suspense } from "react";
3
- import ReactDOM from 'react-dom';
4
-
5
- const ScanCode = React.lazy(() => import('./ScanCodeComponent'));
6
- const WEAPP_SCAN_CODE_ELEMENT_ID = 'weapp-scan-code-modal-root';
7
- export function scanCodeApi(opts) {
8
- const options = {
9
- onlyFromCamera: false,
10
- scanType: ['barCode', 'qrCode'],
11
- success: () => {},
12
- fail: () => {},
13
- complete: () => {},
14
- enableDefaultBehavior: true,
15
- ...opts,
16
- };
17
- if (typeof options.scanType === 'string') {
18
- options.scanType = [options.scanType];
19
- }
20
- let root = document.getElementById(WEAPP_SCAN_CODE_ELEMENT_ID);
21
- if (!root) {
22
- root = document.createElement('div');
23
- root.id = WEAPP_SCAN_CODE_ELEMENT_ID;
24
- }
25
- document.body.appendChild(root);
26
- ReactDOM.render(<Suspense fallback={<></>}><ScanCode root={root} options={options} /></Suspense>, root);
27
- }
@@ -1,81 +0,0 @@
1
- import { kebabCase, camelcase, isEmptyObj } from './common';
2
-
3
- const PERCENTAGE_KEY_LIST = [
4
- 'opacity',
5
- 'order',
6
- 'flex',
7
- 'flexGrow',
8
- 'flexShrink',
9
- 'zIndex',
10
- 'fontWeight',
11
- 'borderImage',
12
- ];
13
-
14
- export function translateStyleToRem(style) {
15
- return translateStyleByHandler(style, toREM);
16
- }
17
-
18
- export function translateStyleByHandler(style, handler) {
19
- return Object.keys(style).reduce((result, key) => {
20
- const value = style[key];
21
- if (PERCENTAGE_KEY_LIST.includes(key)) {
22
- setStyleValue(result, key, value);
23
- } else if (value !== undefined && value !== null) {
24
- setStyleValue(result, key, handler(value));
25
- }
26
- return result;
27
- }, {});
28
- }
29
-
30
- function setStyleValue(object, key, value) {
31
- if (value === undefined || value === null || value === '') {
32
- return;
33
- }
34
- // 特殊样式移除
35
- if (key === 'open') {
36
- return;
37
- }
38
-
39
- if (isEmptyObj(value)) {
40
- return;
41
- }
42
-
43
- object[camelcase(key)] = value;
44
- }
45
-
46
- function calPxToREM(px) {
47
- if (Number.isNaN(px / 28)) return px.toString();
48
- if (+px === 0) {
49
- return '0';
50
- }
51
- return (px / 28).toFixed(4) + 'rem';
52
- }
53
-
54
- export function toREM(cssLen) {
55
- if (typeof cssLen === 'string') {
56
- const cssLenArr = cssLen.split(' ');
57
- return cssLenArr
58
- .map((attr) => {
59
- const matchResult = attr.match(/^(-?\d+)(px)?$/);
60
- if (matchResult && matchResult[1]) {
61
- return calPxToREM(+matchResult[1]);
62
- }
63
- return attr;
64
- })
65
- .join(' ');
66
- }
67
-
68
- if (typeof cssLen === 'number') {
69
- return calPxToREM(cssLen);
70
- }
71
- }
72
-
73
- export function toCssText(style, className = '.some-class-name') {
74
- const attrText = Object.keys(style)
75
- .map((key) => {
76
- const value = style[key];
77
- return `${kebabCase(key)}: ${value};`;
78
- })
79
- .join('\n');
80
- return `${className} { ${attrText} }\n`;
81
- }
@@ -1,343 +0,0 @@
1
- import * as React from 'react';
2
- import { observable, autorun, untracked } from 'mobx';
3
- import remove from 'lodash.remove';
4
- import { EventProxy } from './eventProxy';
5
-
6
- export const widgetKeys = [
7
- 'getConfig',
8
- 'findWidgets',
9
- 'getWidgetsByType',
10
- 'extends',
11
- 'on',
12
- 'off',
13
- 'getOwnerWidget',
14
- 'getDom',
15
- 'domRef',
16
- ];
17
-
18
- export const WidgetsContext = React.createContext({ parent: null });
19
-
20
- export function isSlot(comp) {
21
- return !comp['x-props'];
22
- }
23
-
24
- export function checkVisible({ _visible }) {
25
- return _visible !== false && _visible !== '';
26
- }
27
-
28
- // 实现和小程序一致的 API,以兼容多端
29
- // widget.getDom({ rect: true })
30
- // https://developers.weixin.qq.com/miniprogram/dev/api/wxml/NodesRef.fields.html
31
- export function getDom(element, options) {
32
- if (!element) {
33
- console.warn('getDom 接口未传入有效的 element');
34
- return Promise.resolve({});
35
- }
36
-
37
- let result = {};
38
- if (options.id) result.id = element.id;
39
- if (options.dataset) result.dataset = element.dataset;
40
- if (options.rect) {
41
- const rect = element.getBoundingClientRect();
42
- Object.assign(result, {
43
- left: rect.left,
44
- right: rect.right,
45
- top: rect.top,
46
- bottom: rect.bottom,
47
- });
48
- }
49
- if (options.size) {
50
- const rect = element.getBoundingClientRect();
51
- Object.assign(result, {
52
- width: rect.width,
53
- height: rect.height,
54
- });
55
- }
56
- if (options.scrollOffset) {
57
- Object.assign(result, {
58
- scrollLeft: element.scrollLeft,
59
- scrollTop: element.scrollTop,
60
- });
61
- }
62
- if (options.properties && Array.isArray(options.properties)) {
63
- options.properties.forEach((propName) => {
64
- result[propName] = element.getAttribute(propName);
65
- });
66
- }
67
- if (options.computedStyle && Array.isArray(options.computedStyle)) {
68
- const computedStyle = window.getComputedStyle(element);
69
- options.computedStyle.forEach((propName) => {
70
- result[propName] = computedStyle[propName];
71
- });
72
- }
73
-
74
- return Promise.resolve(result);
75
- }
76
-
77
- export function findWidgets(
78
- widget,
79
- parentType,
80
- filterFn,
81
- includeInvisibleDescendants
82
- ) {
83
- if (!widget) return [];
84
-
85
- let { children = [] } = widget;
86
- let matched = children.filter(filterFn);
87
-
88
- // 过滤掉不可见后代
89
- if (!includeInvisibleDescendants) {
90
- children = children.filter((item) => checkVisible(item));
91
- }
92
-
93
- children.forEach((child) => {
94
- // 如果递归过程中发现了自己,则停止递归
95
- matched = matched.concat(
96
- findWidgets(child, parentType, filterFn, includeInvisibleDescendants)
97
- );
98
- });
99
-
100
- // 过滤掉不可见的匹配项
101
- if (!includeInvisibleDescendants) {
102
- matched = matched.filter((item) => checkVisible(item));
103
- }
104
-
105
- return matched;
106
- }
107
-
108
- const retryQueue = [];
109
- // 递归执行
110
- export function retryDataBinds(tryTime = 10) {
111
- const fn = retryQueue.shift();
112
- if (!fn || tryTime <= 0) return;
113
- try {
114
- fn({ showLog: tryTime <= 1 });
115
- } catch (e) {
116
- console.error('retryDataBinds', e);
117
- }
118
- retryDataBinds(tryTime - 1);
119
- }
120
- export function createWidgets(widgetProps, dataBinds, context) {
121
- const nodeTree = createWidgetTree(widgetProps, dataBinds);
122
- const widgets = runFor(nodeTree, {}, null, null, context);
123
- return widgets;
124
-
125
- /**
126
- *
127
- * @param {*} curForNode
128
- * @param {*} forItems
129
- * @param {*} parentLevelWidgets
130
- * @param {*} parentWidget
131
- * @param {*} context
132
- * @returns top level widgets or for dispose
133
- */
134
- function runFor(curForNode, forItems, parentLevelWidgets, parentWidget, context) {
135
- const nodeId = curForNode.id;
136
- if (!curForNode.value) {
137
- return createSubTree(curForNode, {});
138
- }
139
- const dispose = autorun(() => {
140
- let forList = [];
141
- try {
142
- forList = dataBinds[nodeId]._waFor(forItems, undefined, context);
143
- } catch (e) {
144
- console.error('waFor error', e);
145
- }
146
-
147
- if (!Array.isArray(forList)) {
148
- console.warn(nodeId, 'For 循环绑定的数据并不是数组,请检查');
149
- return;
150
- }
151
-
152
- // 让 forList 进行监听
153
- forList.forEach(() => {});
154
- untracked(() => {
155
- disposeWidgets(parentLevelWidgets[curForNode.id]);
156
-
157
- // clean nodes of previouse for run
158
- dfsTree(curForNode, (node) => {
159
- const arr = parentLevelWidgets[node.id];
160
- arr.splice(0, arr.length);
161
- parentWidget &&
162
- remove(parentWidget.children, ({ id }) => id === node.id);
163
- });
164
-
165
- forList.forEach((item, index) => {
166
- const subForItems = { ...forItems, [nodeId]: item };
167
- createSubTree(curForNode, subForItems);
168
- });
169
-
170
- // 非初始化时遇到需要重新构建 dataBinds
171
- retryDataBinds();
172
- });
173
- });
174
-
175
- return dispose;
176
-
177
- function createSubTree(curForNode, subForItems) {
178
- const widgets = {};
179
-
180
- // traverse down the tree to set all widgets
181
- dfsTree(curForNode, (node, parentNode) => {
182
- if (node.forCount === curForNode.forCount) {
183
- // Leaf node
184
- const w = observable(widgetProps[node.id]);
185
- w.id = node.id;
186
- if (node === curForNode) {
187
- w._disposers = [];
188
- }
189
- widgets[node.id] = w;
190
- w._listeners = new EventProxy();
191
- // 提供一个给 Node 挂载 API 的方式
192
- untracked(() => {
193
- w.getConfig = () => ({}); // 兼容非复合组件调用 getConfig 能力
194
- w.findWidgets = (type, includeInvisibleDescendants) =>
195
- findWidgets(w, w.widgetType, type, includeInvisibleDescendants);
196
- w.getWidgetsByType = (type, includeInvisibleDescendants) =>
197
- w.findWidgets(
198
- (currentWidget) => currentWidget.widgetType === type,
199
- includeInvisibleDescendants
200
- );
201
- w.extends = (name, fnOrData) =>
202
- Object.defineProperty(w, name, {
203
- value: fnOrData,
204
- writable: true,
205
- });
206
- w.on = (name, listener) => w._listeners.on(name, listener);
207
- w.off = (name, listener) => w._listeners.cancel(name, listener);
208
- w.getOwnerWidget = () => null; // 默认带上一个 widget
209
- });
210
- w.children = [];
211
- const parent = parentNode ? widgets[parentNode.id] : parentWidget;
212
- if (parent) {
213
- w.parent = parent;
214
- // 只有可显示 visible 的才存入 children 里
215
- if (checkVisible(w)) {
216
- parent.children.push(w);
217
- }
218
- }
219
- parentLevelWidgets && parentLevelWidgets[node.id].push(w);
220
-
221
- // Setup data binds
222
- Object.keys(dataBinds[node.id] || {}).map((prop) => {
223
- if (prop === '_waFor') {
224
- return;
225
- }
226
- function getBindData(options = {}) {
227
- let disposeError = false;
228
- const dispose = autorun(() => {
229
- try {
230
- // Computed data bind in the next tick since data bind may read widgets data
231
- w[prop] = dataBinds[node.id][prop](subForItems);
232
- disposeError = false;
233
- } catch (e) {
234
- console.warn(`Error computing data bind ${w.id}.${prop}`, e);
235
- if (prop === '_waIf') {
236
- w[prop] = false;
237
- } else {
238
- options.showLog && console.warn(e);
239
- retryQueue.push(getBindData);
240
- disposeError = true;
241
- }
242
- }
243
- });
244
- if (!disposeError && curForNode.id) {
245
- widgets[curForNode.id]._disposers.push(dispose);
246
- }
247
- }
248
- getBindData();
249
- });
250
- } else {
251
- if (parentLevelWidgets) {
252
- const len = parentLevelWidgets[node.id].push([]);
253
- widgets[node.id] = parentLevelWidgets[node.id][len - 1];
254
- } else {
255
- widgets[node.id] = observable([]);
256
- }
257
- }
258
- });
259
-
260
- // run for of next level
261
- dfsTree(curForNode, (node, parentNode) => {
262
- if (
263
- node.forCount === curForNode.forCount + 1 &&
264
- dataBinds[node.id] &&
265
- dataBinds[node.id]._waFor
266
- ) {
267
- widgets[node.id]._disposers = { dataBinds: [] };
268
- const dispose = runFor(
269
- node,
270
- subForItems,
271
- widgets,
272
- node.parent && widgets[node.parent.id],
273
- context
274
- );
275
- curForNode.id && widgets[curForNode.id]._disposers.push(dispose);
276
- }
277
- });
278
-
279
- return widgets;
280
- }
281
- }
282
- }
283
-
284
- /**
285
- * Add parent, children to widget
286
- */
287
- function createWidgetTree(widgets, dataBinds) {
288
- const virtualRoot = { children: [], forCount: 0 };
289
- const nodes = Object.keys(widgets).reduce((result, id) => {
290
- result[id] = {
291
- id,
292
- value: widgets[id],
293
- children: [],
294
- parent: null,
295
- forCount: 0,
296
- };
297
- return result;
298
- }, {});
299
-
300
- // Create widgets tree API
301
- Object.keys(nodes).map((id) => {
302
- const curNode = nodes[id];
303
- const parent = nodes[widgets[id]._parentId];
304
- if (!parent) {
305
- virtualRoot.children.push(curNode);
306
- return;
307
- }
308
- curNode.parent = parent;
309
- parent.children.push(curNode);
310
- });
311
-
312
- virtualRoot.children.map(addForCount);
313
-
314
- // dfs, add forCount
315
- function addForCount(node) {
316
- if (node.parent) {
317
- node.forCount = node.parent.forCount;
318
- }
319
- if (dataBinds[node.id] && dataBinds[node.id]._waFor) {
320
- node.forCount++;
321
- }
322
- node.children.map(addForCount);
323
- }
324
-
325
- return virtualRoot;
326
- }
327
-
328
- function dfsTree(node, fn, parent) {
329
- node.value && fn(node, parent);
330
- node.children.map((e) => dfsTree(e, fn, node.value ? node : null));
331
- }
332
-
333
- // dispose autorun
334
- function disposeWidgets(widgets = []) {
335
- widgets.forEach((widget) => {
336
- const disposers = widget._disposers;
337
- if (disposers) {
338
- disposers.map((dispose) => dispose());
339
- disposers.splice(0, disposers.length);
340
- }
341
- disposeWidgets(widget.children);
342
- });
343
- }