amis-core 1.0.0-beta.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 (211) hide show
  1. package/dist/Root.js +94 -0
  2. package/dist/RootRenderer.js +288 -0
  3. package/dist/SchemaRenderer.js +323 -0
  4. package/dist/Scoped.js +252 -0
  5. package/dist/WithRootStore.js +44 -0
  6. package/dist/WithStore.js +179 -0
  7. package/dist/__tests__/compat.test.d.ts +1 -0
  8. package/dist/__tests__/factory.test.d.ts +1 -0
  9. package/dist/__tests__/filter.test.d.ts +1 -0
  10. package/dist/__tests__/helper.d.ts +13 -0
  11. package/dist/__tests__/tokenize.test.d.ts +1 -0
  12. package/dist/actions/Action.js +119 -0
  13. package/dist/actions/AjaxAction.js +96 -0
  14. package/dist/actions/BreakAction.js +35 -0
  15. package/dist/actions/BroadcastAction.js +49 -0
  16. package/dist/actions/CmptAction.js +60 -0
  17. package/dist/actions/ContinueAction.js +35 -0
  18. package/dist/actions/CopyAction.js +43 -0
  19. package/dist/actions/CustomAction.js +49 -0
  20. package/dist/actions/DialogAction.js +104 -0
  21. package/dist/actions/DrawerAction.js +66 -0
  22. package/dist/actions/EmailAction.js +48 -0
  23. package/dist/actions/LinkAction.js +52 -0
  24. package/dist/actions/LoopAction.js +107 -0
  25. package/dist/actions/PageAction.js +80 -0
  26. package/dist/actions/ParallelAction.js +40 -0
  27. package/dist/actions/SwitchAction.js +52 -0
  28. package/dist/actions/ToastAction.js +35 -0
  29. package/dist/components/LazyComponent.js +99 -0
  30. package/dist/env.js +20 -0
  31. package/dist/envOverwrite.js +43 -0
  32. package/dist/factory.js +308 -0
  33. package/dist/index.js +218 -0
  34. package/dist/index2.js +255 -0
  35. package/dist/locale.js +114 -0
  36. package/dist/renderers/Form.js +1162 -0
  37. package/dist/renderers/Item.js +636 -0
  38. package/dist/renderers/Options.js +881 -0
  39. package/dist/renderers/Placeholder.js +31 -0
  40. package/dist/renderers/builtin.js +27 -0
  41. package/dist/renderers/wrapControl.js +507 -0
  42. package/dist/src/Root.d.ts +37 -0
  43. package/dist/src/RootRenderer.d.ts +27 -0
  44. package/dist/src/SchemaRenderer.d.ts +37 -0
  45. package/dist/src/Scoped.d.ts +38 -0
  46. package/dist/src/WithRootStore.d.ts +737 -0
  47. package/dist/src/WithStore.d.ts +5 -0
  48. package/dist/src/actions/Action.d.ts +38 -0
  49. package/dist/src/actions/AjaxAction.d.ts +25 -0
  50. package/dist/src/actions/BreakAction.d.ts +15 -0
  51. package/dist/src/actions/BroadcastAction.d.ts +16 -0
  52. package/dist/src/actions/CmptAction.d.ts +20 -0
  53. package/dist/src/actions/ContinueAction.d.ts +15 -0
  54. package/dist/src/actions/CopyAction.d.ts +20 -0
  55. package/dist/src/actions/CustomAction.d.ts +17 -0
  56. package/dist/src/actions/Decorators.d.ts +25 -0
  57. package/dist/src/actions/DialogAction.d.ts +57 -0
  58. package/dist/src/actions/DrawerAction.d.ts +30 -0
  59. package/dist/src/actions/EmailAction.d.ts +23 -0
  60. package/dist/src/actions/LinkAction.d.ts +24 -0
  61. package/dist/src/actions/LoopAction.d.ts +19 -0
  62. package/dist/src/actions/PageAction.d.ts +39 -0
  63. package/dist/src/actions/ParallelAction.d.ts +8 -0
  64. package/dist/src/actions/SwitchAction.d.ts +11 -0
  65. package/dist/src/actions/ToastAction.d.ts +19 -0
  66. package/dist/src/actions/index.d.ts +21 -0
  67. package/dist/src/components/LazyComponent.d.ts +32 -0
  68. package/dist/src/env.d.ts +172 -0
  69. package/dist/src/envOverwrite.d.ts +4 -0
  70. package/dist/src/factory.d.ts +78 -0
  71. package/dist/src/index.d.ts +25 -0
  72. package/dist/src/locale.d.ts +82 -0
  73. package/dist/src/renderers/Form.d.ts +352 -0
  74. package/dist/src/renderers/Item.d.ts +795 -0
  75. package/dist/src/renderers/Options.d.ts +150 -0
  76. package/dist/src/renderers/Placeholder.d.ts +6 -0
  77. package/dist/src/renderers/builtin.d.ts +1 -0
  78. package/dist/src/renderers/wrapControl.d.ts +446 -0
  79. package/dist/src/schema.d.ts +369 -0
  80. package/dist/src/store/app.d.ts +89 -0
  81. package/dist/src/store/combo.d.ts +8504 -0
  82. package/dist/src/store/crud.d.ts +124 -0
  83. package/dist/src/store/form.d.ts +3394 -0
  84. package/dist/src/store/formItem.d.ts +130 -0
  85. package/dist/src/store/iRenderer.d.ts +46 -0
  86. package/dist/src/store/index.d.ts +105 -0
  87. package/dist/src/store/list.d.ts +270 -0
  88. package/dist/src/store/manager.d.ts +115 -0
  89. package/dist/src/store/modal.d.ts +84 -0
  90. package/dist/src/store/node.d.ts +22 -0
  91. package/dist/src/store/pagination.d.ts +58 -0
  92. package/dist/src/store/root.d.ts +79 -0
  93. package/dist/src/store/service.d.ts +71 -0
  94. package/dist/src/store/table-v2.d.ts +309 -0
  95. package/dist/src/store/table.d.ts +8334 -0
  96. package/dist/src/theme.d.ts +83 -0
  97. package/dist/src/types.d.ts +217 -0
  98. package/dist/src/utils/Animation.d.ts +22 -0
  99. package/dist/src/utils/ColorScale.d.ts +19 -0
  100. package/dist/src/utils/DataSchema.d.ts +25 -0
  101. package/dist/src/utils/DataScope.d.ts +23 -0
  102. package/dist/src/utils/RootClose.d.ts +4 -0
  103. package/dist/src/utils/SimpleMap.d.ts +8 -0
  104. package/dist/src/utils/api.d.ts +27 -0
  105. package/dist/src/utils/attachmentAdpator.d.ts +7 -0
  106. package/dist/src/utils/autobind.d.ts +7 -0
  107. package/dist/src/utils/columnsSplit.d.ts +1 -0
  108. package/dist/src/utils/dataMapping.d.ts +3 -0
  109. package/dist/src/utils/date.d.ts +4 -0
  110. package/dist/src/utils/debug.d.ts +26 -0
  111. package/dist/src/utils/dom.d.ts +13 -0
  112. package/dist/src/utils/errors.d.ts +6 -0
  113. package/dist/src/utils/escapeHtml.d.ts +1 -0
  114. package/dist/src/utils/filter-schema.d.ts +12 -0
  115. package/dist/src/utils/filter.d.ts +1 -0
  116. package/dist/src/utils/formatDuration.d.ts +1 -0
  117. package/dist/src/utils/formula.d.ts +16 -0
  118. package/dist/src/utils/getVariable.d.ts +3 -0
  119. package/dist/src/utils/grammar.d.ts +4 -0
  120. package/dist/src/utils/handleAction.d.ts +6 -0
  121. package/dist/src/utils/helper.d.ts +286 -0
  122. package/dist/src/utils/icon.d.ts +12 -0
  123. package/dist/src/utils/image.d.ts +17 -0
  124. package/dist/src/utils/index.d.ts +12 -0
  125. package/dist/src/utils/isPureVariable.d.ts +1 -0
  126. package/dist/src/utils/json-schema-2-amis-schema.d.ts +6 -0
  127. package/dist/src/utils/keyToPath.d.ts +6 -0
  128. package/dist/src/utils/makeSorter.d.ts +1 -0
  129. package/dist/src/utils/markdown.d.ts +5 -0
  130. package/dist/src/utils/normalizeLink.d.ts +1 -0
  131. package/dist/src/utils/normalizeOptions.d.ts +7 -0
  132. package/dist/src/utils/object.d.ts +15 -0
  133. package/dist/src/utils/offset.d.ts +14 -0
  134. package/dist/src/utils/offsetParent.d.ts +4 -0
  135. package/dist/src/utils/optionValueCompare.d.ts +3 -0
  136. package/dist/src/utils/position.d.ts +15 -0
  137. package/dist/src/utils/prettyBytes.d.ts +1 -0
  138. package/dist/src/utils/renderer-event.d.ts +44 -0
  139. package/dist/src/utils/replaceText.d.ts +6 -0
  140. package/dist/src/utils/resize-sensor.d.ts +6 -0
  141. package/dist/src/utils/resolveVariable.d.ts +1 -0
  142. package/dist/src/utils/resolveVariableAndFilter.d.ts +1 -0
  143. package/dist/src/utils/scrollPosition.d.ts +6 -0
  144. package/dist/src/utils/string2regExp.d.ts +1 -0
  145. package/dist/src/utils/stripNumber.d.ts +1 -0
  146. package/dist/src/utils/style.d.ts +10 -0
  147. package/dist/src/utils/tokenize.d.ts +1 -0
  148. package/dist/src/utils/tpl-builtin.d.ts +18 -0
  149. package/dist/src/utils/tpl-lodash.d.ts +4 -0
  150. package/dist/src/utils/tpl.d.ts +11 -0
  151. package/dist/src/utils/validations.d.ts +39 -0
  152. package/dist/store/app.js +190 -0
  153. package/dist/store/combo.js +154 -0
  154. package/dist/store/crud.js +413 -0
  155. package/dist/store/form.js +579 -0
  156. package/dist/store/formItem.js +846 -0
  157. package/dist/store/iRenderer.js +189 -0
  158. package/dist/store/index.js +103 -0
  159. package/dist/store/list.js +248 -0
  160. package/dist/store/manager.js +56 -0
  161. package/dist/store/modal.js +54 -0
  162. package/dist/store/node.js +93 -0
  163. package/dist/store/pagination.js +60 -0
  164. package/dist/store/root.js +45 -0
  165. package/dist/store/service.js +415 -0
  166. package/dist/store/table-v2.js +471 -0
  167. package/dist/store/table.js +1105 -0
  168. package/dist/theme.js +93 -0
  169. package/dist/tsconfig.tsbuildinfo +1 -0
  170. package/dist/utils/Animation.js +290 -0
  171. package/dist/utils/DataSchema.js +120 -0
  172. package/dist/utils/DataScope.js +151 -0
  173. package/dist/utils/SimpleMap.js +46 -0
  174. package/dist/utils/api.js +555 -0
  175. package/dist/utils/autobind.js +94 -0
  176. package/dist/utils/dataMapping.js +136 -0
  177. package/dist/utils/date.js +90 -0
  178. package/dist/utils/debug.js +343 -0
  179. package/dist/utils/errors.js +23 -0
  180. package/dist/utils/escapeHtml.js +24 -0
  181. package/dist/utils/filter-schema.js +75 -0
  182. package/dist/utils/filter.js +481 -0
  183. package/dist/utils/formatDuration.js +27 -0
  184. package/dist/utils/formula.js +165 -0
  185. package/dist/utils/getVariable.js +29 -0
  186. package/dist/utils/grammar.js +54 -0
  187. package/dist/utils/helper.js +1283 -0
  188. package/dist/utils/isPureVariable.js +16 -0
  189. package/dist/utils/keyToPath.js +34 -0
  190. package/dist/utils/makeSorter.js +30 -0
  191. package/dist/utils/normalizeLink.js +47 -0
  192. package/dist/utils/normalizeOptions.js +92 -0
  193. package/dist/utils/object.js +156 -0
  194. package/dist/utils/offset.js +36 -0
  195. package/dist/utils/offsetParent.js +27 -0
  196. package/dist/utils/optionValueCompare.js +25 -0
  197. package/dist/utils/position.js +50 -0
  198. package/dist/utils/prettyBytes.js +28 -0
  199. package/dist/utils/renderer-event.js +131 -0
  200. package/dist/utils/replaceText.js +35 -0
  201. package/dist/utils/resize-sensor.js +177 -0
  202. package/dist/utils/resolveVariable.js +39 -0
  203. package/dist/utils/resolveVariableAndFilter.js +37 -0
  204. package/dist/utils/string2regExp.js +18 -0
  205. package/dist/utils/stripNumber.js +20 -0
  206. package/dist/utils/tokenize.js +33 -0
  207. package/dist/utils/tpl-builtin.js +71 -0
  208. package/dist/utils/tpl-lodash.js +71 -0
  209. package/dist/utils/tpl.js +140 -0
  210. package/dist/utils/validations.js +377 -0
  211. package/package.json +121 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ function isPureVariable(path) {
11
+ return typeof path === 'string'
12
+ ? /^\$(?:((?:\w+\:)?[a-z0-9_.][a-z0-9_.\[\]]*)|{[^}{]+})$/i.test(path)
13
+ : false;
14
+ }
15
+
16
+ exports.isPureVariable = isPureVariable;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ /**
11
+ * 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组
12
+ *
13
+ * @param string 要转换的字符串
14
+ */
15
+ var keyToPath = function (string) {
16
+ var result = [];
17
+ if (string.charCodeAt(0) === '.'.charCodeAt(0)) {
18
+ result.push('');
19
+ }
20
+ string.replace(new RegExp('[^.[\\]]+|\\[(?:([^"\'][^[]*)|(["\'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))', 'g'), function (match, expression, quote, subString) {
21
+ var key = match;
22
+ if (quote) {
23
+ key = subString.replace(/\\(\\)?/g, '$1');
24
+ }
25
+ else if (expression) {
26
+ key = expression.trim();
27
+ }
28
+ result.push(key);
29
+ return '';
30
+ });
31
+ return result;
32
+ };
33
+
34
+ exports.keyToPath = keyToPath;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var resolveVariable = require('./resolveVariable.js');
11
+
12
+ function makeSorter(key, method, order) {
13
+ return function (a, b) {
14
+ if (!a || !b) {
15
+ return 0;
16
+ }
17
+ var va = resolveVariable.resolveVariable(key, a);
18
+ var vb = resolveVariable.resolveVariable(key, b);
19
+ var result = 0;
20
+ if (method === 'numerical') {
21
+ result = (parseFloat(va) || 0) - (parseFloat(vb) || 0);
22
+ }
23
+ else {
24
+ result = String(va).localeCompare(String(vb));
25
+ }
26
+ return result * (order === 'desc' ? -1 : 1);
27
+ };
28
+ }
29
+
30
+ exports.makeSorter = makeSorter;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var normalizeLink = function (to, location) {
11
+ if (location === void 0) { location = window.location; }
12
+ to = to || '';
13
+ if (to && to[0] === '#') {
14
+ to = location.pathname + location.search + to;
15
+ }
16
+ else if (to && to[0] === '?') {
17
+ to = location.pathname + to;
18
+ }
19
+ var idx = to.indexOf('?');
20
+ var idx2 = to.indexOf('#');
21
+ var pathname = ~idx
22
+ ? to.substring(0, idx)
23
+ : ~idx2
24
+ ? to.substring(0, idx2)
25
+ : to;
26
+ var search = ~idx ? to.substring(idx, ~idx2 ? idx2 : undefined) : '';
27
+ var hash = ~idx2 ? to.substring(idx2) : location.hash;
28
+ if (!pathname) {
29
+ pathname = location.pathname;
30
+ }
31
+ else if (pathname[0] != '/' && !/^https?\:\/\//.test(pathname)) {
32
+ var relativeBase = location.pathname;
33
+ var paths = relativeBase.split('/');
34
+ paths.pop();
35
+ var m = void 0;
36
+ while ((m = /^\.\.?\//.exec(pathname))) {
37
+ if (m[0] === '../') {
38
+ paths.pop();
39
+ }
40
+ pathname = pathname.substring(m[0].length);
41
+ }
42
+ pathname = paths.concat(pathname).join('/');
43
+ }
44
+ return pathname + search + hash;
45
+ };
46
+
47
+ exports.normalizeLink = normalizeLink;
@@ -0,0 +1,92 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var tslib = require('tslib');
11
+ var isPlainObject = require('lodash/isPlainObject');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
16
+
17
+ function normalizeOptions(options, share, valueField) {
18
+ if (share === void 0) { share = {
19
+ values: [],
20
+ options: []
21
+ }; }
22
+ if (valueField === void 0) { valueField = 'value'; }
23
+ if (typeof options === 'string') {
24
+ return options.split(',').map(function (item) {
25
+ var idx = share.values.indexOf(item);
26
+ if (~idx) {
27
+ return share.options[idx];
28
+ }
29
+ var option = {
30
+ label: item,
31
+ value: item
32
+ };
33
+ share.values.push(option.value);
34
+ share.options.push(option);
35
+ return option;
36
+ });
37
+ }
38
+ else if (Array.isArray(options) &&
39
+ typeof options[0] === 'string') {
40
+ return options.map(function (item) {
41
+ var idx = share.values.indexOf(item);
42
+ if (~idx) {
43
+ return share.options[idx];
44
+ }
45
+ var option = {
46
+ label: item,
47
+ value: item
48
+ };
49
+ share.values.push(option.value);
50
+ share.options.push(option);
51
+ return option;
52
+ });
53
+ }
54
+ else if (Array.isArray(options)) {
55
+ return options.map(function (item) {
56
+ var value = item && item[valueField];
57
+ var idx = value !== undefined && !item.children
58
+ ? share.values.indexOf(value)
59
+ : -1;
60
+ if (~idx) {
61
+ return share.options[idx];
62
+ }
63
+ var option = tslib.__assign(tslib.__assign({}, item), { value: value });
64
+ if (typeof option.children !== 'undefined') {
65
+ option.children = normalizeOptions(option.children, share, valueField);
66
+ }
67
+ else if (value !== undefined) {
68
+ share.values.push(value);
69
+ share.options.push(option);
70
+ }
71
+ return option;
72
+ });
73
+ }
74
+ else if (isPlainObject__default["default"](options)) {
75
+ return Object.keys(options).map(function (key) {
76
+ var idx = share.values.indexOf(key);
77
+ if (~idx) {
78
+ return share.options[idx];
79
+ }
80
+ var option = {
81
+ label: options[key],
82
+ value: key
83
+ };
84
+ share.values.push(option.value);
85
+ share.options.push(option);
86
+ return option;
87
+ });
88
+ }
89
+ return [];
90
+ }
91
+
92
+ exports.normalizeOptions = normalizeOptions;
@@ -0,0 +1,156 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var tslib = require('tslib');
11
+ var isPlainObject = require('lodash/isPlainObject');
12
+ var keyToPath = require('./keyToPath.js');
13
+ var resolveVariable = require('./resolveVariable.js');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
18
+
19
+ // 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。
20
+ function createObject(superProps, props, properties) {
21
+ if (superProps && Object.isFrozen(superProps)) {
22
+ superProps = cloneObject(superProps);
23
+ }
24
+ var obj = superProps
25
+ ? Object.create(superProps, tslib.__assign(tslib.__assign({}, properties), { __super: {
26
+ value: superProps,
27
+ writable: false,
28
+ enumerable: false
29
+ } }))
30
+ : Object.create(Object.prototype, properties);
31
+ props &&
32
+ isObject(props) &&
33
+ Object.keys(props).forEach(function (key) { return (obj[key] = props[key]); });
34
+ return obj;
35
+ }
36
+ function cloneObject(target, persistOwnProps) {
37
+ if (persistOwnProps === void 0) { persistOwnProps = true; }
38
+ var obj = target && target.__super
39
+ ? Object.create(target.__super, {
40
+ __super: {
41
+ value: target.__super,
42
+ writable: false,
43
+ enumerable: false
44
+ }
45
+ })
46
+ : Object.create(Object.prototype);
47
+ persistOwnProps &&
48
+ target &&
49
+ Object.keys(target).forEach(function (key) { return (obj[key] = target[key]); });
50
+ return obj;
51
+ }
52
+ function extendObject(target, src, persistOwnProps) {
53
+ if (persistOwnProps === void 0) { persistOwnProps = true; }
54
+ var obj = cloneObject(target, persistOwnProps);
55
+ src && Object.keys(src).forEach(function (key) { return (obj[key] = src[key]); });
56
+ return obj;
57
+ }
58
+ function isObject(obj) {
59
+ var typename = typeof obj;
60
+ return (obj &&
61
+ typename !== 'string' &&
62
+ typename !== 'number' &&
63
+ typename !== 'boolean' &&
64
+ typename !== 'function' &&
65
+ !Array.isArray(obj));
66
+ }
67
+ function setVariable(data, key, value, convertKeyToPath) {
68
+ data = data || {};
69
+ if (key in data) {
70
+ data[key] = value;
71
+ return;
72
+ }
73
+ var parts = convertKeyToPath !== false ? keyToPath.keyToPath(key) : [key];
74
+ var last = parts.pop();
75
+ while (parts.length) {
76
+ var key_1 = parts.shift();
77
+ if (isPlainObject__default["default"](data[key_1])) {
78
+ data = data[key_1] = tslib.__assign({}, data[key_1]);
79
+ }
80
+ else if (Array.isArray(data[key_1])) {
81
+ data[key_1] = data[key_1].concat();
82
+ data = data[key_1];
83
+ }
84
+ else if (data[key_1]) {
85
+ // throw new Error(`目标路径不是纯对象,不能覆盖`);
86
+ // 强行转成对象
87
+ data[key_1] = {};
88
+ data = data[key_1];
89
+ }
90
+ else {
91
+ data[key_1] = {};
92
+ data = data[key_1];
93
+ }
94
+ }
95
+ data[last] = value;
96
+ }
97
+ function deleteVariable(data, key) {
98
+ if (!data) {
99
+ return;
100
+ }
101
+ else if (data.hasOwnProperty(key)) {
102
+ delete data[key];
103
+ return;
104
+ }
105
+ var parts = keyToPath.keyToPath(key);
106
+ var last = parts.pop();
107
+ while (parts.length) {
108
+ var key_2 = parts.shift();
109
+ if (isPlainObject__default["default"](data[key_2])) {
110
+ data = data[key_2] = tslib.__assign({}, data[key_2]);
111
+ }
112
+ else if (data[key_2]) {
113
+ throw new Error("\u76EE\u6807\u8DEF\u5F84\u4E0D\u662F\u7EAF\u5BF9\u8C61\uFF0C\u4E0D\u80FD\u4FEE\u6539");
114
+ }
115
+ else {
116
+ break;
117
+ }
118
+ }
119
+ if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {
120
+ delete data[last];
121
+ }
122
+ }
123
+ function pickValues(names, data) {
124
+ var _a;
125
+ var arr;
126
+ if (!names || ((arr = names.split(',')) && arr.length < 2)) {
127
+ var idx = names.indexOf('~');
128
+ if (~idx) {
129
+ var key = names.substring(0, idx);
130
+ var target = names.substring(idx + 1);
131
+ return _a = {},
132
+ _a[key] = resolveVariable.resolveVariable(target, data),
133
+ _a;
134
+ }
135
+ return resolveVariable.resolveVariable(names, data);
136
+ }
137
+ var ret = {};
138
+ arr.forEach(function (name) {
139
+ var idx = name.indexOf('~');
140
+ var target = name;
141
+ if (~idx) {
142
+ target = name.substring(idx + 1);
143
+ name = name.substring(0, idx);
144
+ }
145
+ setVariable(ret, name, resolveVariable.resolveVariable(target, data));
146
+ });
147
+ return ret;
148
+ }
149
+
150
+ exports.cloneObject = cloneObject;
151
+ exports.createObject = createObject;
152
+ exports.deleteVariable = deleteVariable;
153
+ exports.extendObject = extendObject;
154
+ exports.isObject = isObject;
155
+ exports.pickValues = pickValues;
156
+ exports.setVariable = setVariable;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ /**
11
+ * 修改自 https://github.com/react-bootstrap/dom-helpers/blob/master/src/offset.ts
12
+ */
13
+ /**
14
+ * Returns the offset of a given element, including top and left positions, width and height.
15
+ *
16
+ * @param node the element
17
+ */
18
+ function offset(node) {
19
+ var doc = node === null || node === void 0 ? void 0 : node.ownerDocument;
20
+ var box = { top: 0, left: 0, height: 0, width: 0 };
21
+ var docElem = doc && doc.documentElement;
22
+ // Make sure it's not a disconnected DOM node
23
+ if (!docElem || !docElem.contains(node))
24
+ return box;
25
+ if (node.getBoundingClientRect !== undefined)
26
+ box = node.getBoundingClientRect();
27
+ box = {
28
+ top: box.top + docElem.scrollTop - (docElem.clientTop || 0),
29
+ left: box.left + docElem.scrollLeft - (docElem.clientLeft || 0),
30
+ width: box.width,
31
+ height: box.height
32
+ };
33
+ return box;
34
+ }
35
+
36
+ exports["default"] = offset;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ /**
11
+ * 删减自 https://github.com/react-bootstrap/dom-helpers/blob/master/src/offsetParent.ts
12
+ */
13
+ var isHTMLElement = function (e) {
14
+ return !!e && 'offsetParent' in e;
15
+ };
16
+ function offsetParent(node) {
17
+ var doc = node === null || node === void 0 ? void 0 : node.ownerDocument;
18
+ var parent = node && node.offsetParent;
19
+ while (isHTMLElement(parent) &&
20
+ parent.nodeName !== 'HTML' &&
21
+ getComputedStyle(parent).getPropertyValue('position') === 'static') {
22
+ parent = parent.offsetParent;
23
+ }
24
+ return (parent || doc.documentElement);
25
+ }
26
+
27
+ exports["default"] = offsetParent;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ require('./helper.js');
11
+ var object = require('./object.js');
12
+
13
+ function matchOptionValue(a, b, valueField) {
14
+ if (valueField === void 0) { valueField = 'value'; }
15
+ return object.isObject(a)
16
+ ? a === b[valueField || 'value']
17
+ : String(b[valueField || 'value']) === String(a);
18
+ }
19
+ function optionValueCompare(a, valueField) {
20
+ if (valueField === void 0) { valueField = 'value'; }
21
+ return function (b) { return matchOptionValue(a, b, valueField); };
22
+ }
23
+
24
+ exports.matchOptionValue = matchOptionValue;
25
+ exports.optionValueCompare = optionValueCompare;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var tslib = require('tslib');
11
+ var offset = require('./offset.js');
12
+ var offsetParent = require('./offsetParent.js');
13
+
14
+ /**
15
+ * 删减自 https://github.com/react-bootstrap/dom-helpers/blob/master/src/position.ts
16
+ */
17
+ var nodeName = function (node) {
18
+ return node.nodeName && node.nodeName.toLowerCase();
19
+ };
20
+ /**
21
+ * Returns the relative position of a given element.
22
+ *
23
+ * @param node the element
24
+ * @param offsetParent the offset parent
25
+ */
26
+ function position(node, offsetParent$1) {
27
+ var parentOffset = { top: 0, left: 0 };
28
+ var offset$1;
29
+ // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
30
+ // because it is its only offset parent
31
+ if (getComputedStyle(node).getPropertyValue('position') === 'fixed') {
32
+ offset$1 = node.getBoundingClientRect();
33
+ }
34
+ else {
35
+ var parent_1 = offsetParent$1 || offsetParent["default"](node);
36
+ offset$1 = offset["default"](node);
37
+ if (nodeName(parent_1) !== 'html')
38
+ parentOffset = offset["default"](parent_1);
39
+ var borderTop = String(getComputedStyle(parent_1).getPropertyValue('border-top-width') || 0);
40
+ parentOffset.top += parseInt(borderTop, 10) - parent_1.scrollTop || 0;
41
+ var borderLeft = String(getComputedStyle(parent_1).getPropertyValue('border-left-width') || 0);
42
+ parentOffset.left += parseInt(borderLeft, 10) - parent_1.scrollLeft || 0;
43
+ }
44
+ var marginTop = String(getComputedStyle(node).getPropertyValue('margin-top') || 0);
45
+ var marginLeft = String(getComputedStyle(node).getPropertyValue('margin-left') || 0);
46
+ // Subtract parent offsets and node margins
47
+ return tslib.__assign(tslib.__assign({}, offset$1), { top: offset$1.top - parentOffset.top - (parseInt(marginTop, 10) || 0), left: offset$1.left - parentOffset.left - (parseInt(marginLeft, 10) || 0) });
48
+ }
49
+
50
+ exports["default"] = position;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
11
+ var prettyBytes = function (num) {
12
+ if (!Number.isFinite(num)) {
13
+ throw new TypeError("Expected a finite number, got ".concat(typeof num, ": ").concat(num));
14
+ }
15
+ var neg = num < 0;
16
+ if (neg) {
17
+ num = -num;
18
+ }
19
+ if (num < 1) {
20
+ return (neg ? '-' : '') + num + ' B';
21
+ }
22
+ var exponent = Math.min(Math.floor(Math.log(num) / Math.log(1000)), UNITS.length - 1);
23
+ var numStr = Number((num / Math.pow(1000, exponent)).toPrecision(3));
24
+ var unit = UNITS[exponent];
25
+ return (neg ? '-' : '') + numStr + ' ' + unit;
26
+ };
27
+
28
+ exports.prettyBytes = prettyBytes;
@@ -0,0 +1,131 @@
1
+ /**
2
+ * amis-core v1.0.0-beta.0
3
+ * Copyright 2018-2022 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var tslib = require('tslib');
11
+ var Action = require('../actions/Action.js');
12
+
13
+ var rendererEventListeners = [];
14
+ // 创建渲染器事件对象
15
+ function createRendererEvent(type, context) {
16
+ var rendererEvent = {
17
+ context: context,
18
+ type: type,
19
+ prevented: false,
20
+ stoped: false,
21
+ preventDefault: function () {
22
+ rendererEvent.prevented = true;
23
+ },
24
+ stopPropagation: function () {
25
+ rendererEvent.stoped = true;
26
+ },
27
+ get data() {
28
+ return rendererEvent.context.data;
29
+ },
30
+ setData: function (data) {
31
+ rendererEvent.context.data = data;
32
+ }
33
+ };
34
+ return rendererEvent;
35
+ }
36
+ // 绑定事件
37
+ var bindEvent = function (renderer) {
38
+ if (!renderer) {
39
+ return undefined;
40
+ }
41
+ var listeners = renderer.props.$schema.onEvent;
42
+ if (listeners) {
43
+ var _loop_1 = function (key) {
44
+ var listener = rendererEventListeners.some(function (item) {
45
+ return item.renderer === renderer && item.type === key;
46
+ });
47
+ if (!listener) {
48
+ rendererEventListeners.push({
49
+ renderer: renderer,
50
+ type: key,
51
+ weight: listeners[key].weight || 0,
52
+ actions: listeners[key].actions
53
+ });
54
+ }
55
+ };
56
+ // 暂存
57
+ for (var _i = 0, _a = Object.keys(listeners); _i < _a.length; _i++) {
58
+ var key = _a[_i];
59
+ _loop_1(key);
60
+ }
61
+ return function () {
62
+ rendererEventListeners = rendererEventListeners.filter(function (item) { return item.renderer !== renderer; });
63
+ };
64
+ }
65
+ return undefined;
66
+ };
67
+ // 触发事件
68
+ function dispatchEvent(e, renderer, scoped, data, broadcast) {
69
+ var _a, _b, _c, _d, _e, _f;
70
+ return tslib.__awaiter(this, void 0, void 0, function () {
71
+ var unbindEvent, eventName, eventConfig, rendererEvent, listeners, _i, listeners_1, listener;
72
+ return tslib.__generator(this, function (_g) {
73
+ switch (_g.label) {
74
+ case 0:
75
+ unbindEvent = null;
76
+ eventName = typeof e === 'string' ? e : e.type;
77
+ (_c = (_b = (_a = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _a === void 0 ? void 0 : _a.env) === null || _b === void 0 ? void 0 : _b.beforeDispatchEvent) === null || _c === void 0 ? void 0 : _c.call(_b, e, renderer, scoped, data, broadcast);
78
+ if (!broadcast) {
79
+ eventConfig = (_e = (_d = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _d === void 0 ? void 0 : _d.onEvent) === null || _e === void 0 ? void 0 : _e[eventName];
80
+ if (!eventConfig) {
81
+ // 没命中也没关系
82
+ return [2 /*return*/, Promise.resolve()];
83
+ }
84
+ unbindEvent = bindEvent(renderer);
85
+ }
86
+ // 没有可处理的监听
87
+ if (!rendererEventListeners.length) {
88
+ return [2 /*return*/, Promise.resolve()];
89
+ }
90
+ rendererEvent = broadcast ||
91
+ createRendererEvent(eventName, {
92
+ env: (_f = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _f === void 0 ? void 0 : _f.env,
93
+ nativeEvent: e,
94
+ data: data,
95
+ scoped: scoped
96
+ });
97
+ listeners = rendererEventListeners
98
+ .filter(function (item) {
99
+ return item.type === eventName &&
100
+ (broadcast ? true : item.renderer === renderer);
101
+ })
102
+ .sort(function (prev, next) {
103
+ return next.weight - prev.weight;
104
+ });
105
+ _i = 0, listeners_1 = listeners;
106
+ _g.label = 1;
107
+ case 1:
108
+ if (!(_i < listeners_1.length)) return [3 /*break*/, 4];
109
+ listener = listeners_1[_i];
110
+ return [4 /*yield*/, Action.runActions(listener.actions, listener.renderer, rendererEvent)];
111
+ case 2:
112
+ _g.sent();
113
+ // 停止后续监听器执行
114
+ if (rendererEvent.stoped) {
115
+ return [3 /*break*/, 4];
116
+ }
117
+ _g.label = 3;
118
+ case 3:
119
+ _i++;
120
+ return [3 /*break*/, 1];
121
+ case 4:
122
+ unbindEvent === null || unbindEvent === void 0 ? void 0 : unbindEvent();
123
+ return [2 /*return*/, Promise.resolve(rendererEvent)];
124
+ }
125
+ });
126
+ });
127
+ }
128
+
129
+ exports.bindEvent = bindEvent;
130
+ exports.createRendererEvent = createRendererEvent;
131
+ exports.dispatchEvent = dispatchEvent;