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,165 @@
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 isObjectByLodash = require('lodash/isObject');
11
+ var isString = require('lodash/isString');
12
+ require('lodash/isBoolean');
13
+ var amisFormula = require('amis-formula');
14
+ var tpl = require('./tpl.js');
15
+ require('moment');
16
+ require('tslib');
17
+ require('lodash/isPlainObject');
18
+ var getVariable = require('./getVariable.js');
19
+ var resolveVariableAndFilter = require('./resolveVariableAndFilter.js');
20
+ require('./filter.js');
21
+ var grammar = require('./grammar.js');
22
+
23
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
+
25
+ var isObjectByLodash__default = /*#__PURE__*/_interopDefaultLegacy(isObjectByLodash);
26
+ var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
27
+
28
+ /**
29
+ * formulaExec 运算器:根据当前字符串类型执行对应运算,也可按指定执行模式执行运算
30
+ *
31
+ * 运算模式(execMode)支持以下取值:
32
+ * 1. tpl: 按模板字符串执行(JavaScript 模板引擎),比如:Hello ${amisUser.email}、<h1>Hello</h1>, <span>${amisUser.email}</span>;
33
+ * 备注: 在模板中可以自由访问变量,详细请见:https://www.lodashjs.com/docs/lodash.template;
34
+ * 2. formula: 按新版公式表达式执行,用于执行 ${ xxx } 格式的表达式;
35
+ * 支持从window、localStorage、sessionStorage获取数据,比如:${num1 + 2}、${ls:env}、${window:document}、${window:document.URL}、${amisUser.email};
36
+ * 详细请见:https://aisuda.bce.baidu.com/amis/zh-CN/docs/concepts/data-mapping#namespace
37
+ * 3. evalFormula: 按新版公式表达式执行,用于执行 ${ xxx } 和 非${ xxx } 格式的表达式(evalMode 为 true,不用 ${} 包裹也可以执行),功能同 formula 运算模式;
38
+ * 4. js: 按Javascript执行,表达式中可以通过data.xxx来获取指定数据,并且支持简单运算;
39
+ * 比如:data.num1 + 2、this.num1 + 2、num1 + 2;(备注:三个表达式是等价的,这里的 this 就是 data。)
40
+ * 5. var: 以此字符串作为key值从当前数据域data中获取数值;性能最高(运行期间不会生成ast和表达式运算);
41
+ * 6. true 或者 false: 当execMode设置为true时,不用 ${} 包裹也可以执行表达式;
42
+ * 7. collect: 用于从表达式中获取所有变量;
43
+ *
44
+ * 备注1: 用户也可以使用 registerFormulaExec 注册一个自定义运算器;
45
+ * 备注2: 模板字符串 和 Javascript 模板引擎 不可以交叉使用;
46
+ * 备注3: amis 现有的 evalFormula 方法,可执行 ${} 格式类表达式,但不支持 filter 过滤器,所以这里用 resolveValueByName 实现;
47
+ * 备注4: 后续可考虑将 amis现有的运算器都放这里管理,充当统一的运算器入口。
48
+ */
49
+ // 缓存,用于提升性能
50
+ var FORMULA_EVAL_CACHE = {};
51
+ /**
52
+ * 用于存储当前可用运算器,默认支持 tpl、formula、js、var 四种类型运算器
53
+ * 备注:在这里统一参数。
54
+ */
55
+ var FormulaExec = {
56
+ tpl: function (expression, data) {
57
+ var curData = data || {};
58
+ return tpl.filter(expression, curData);
59
+ },
60
+ formula: function (expression, data) {
61
+ // 邮箱格式直接返回,后续需要在 amis-formula 中处理
62
+ if (/^\$\{([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})\}$/.test(expression)) {
63
+ return expression.substring(2, expression.length - 1); // 剔除前后特殊字符
64
+ }
65
+ var curData = data || {};
66
+ var result = undefined;
67
+ try {
68
+ // 执行 ${} 格式类表达式,且支持 filter 过滤器。(备注: isPureVariable 可用于判断是否有 过滤器。)
69
+ result = resolveVariableAndFilter.resolveVariableAndFilter(expression, curData, '| raw');
70
+ }
71
+ catch (e) {
72
+ console.warn('[formula]表达式执行异常,当前表达式: ', expression, ',当前上下文数据: ', data);
73
+ return expression;
74
+ }
75
+ // 备注: 此处不用 result ?? expression 是为了避免 没有对应结果时直接显示 expression: ${xxx}
76
+ return result;
77
+ },
78
+ evalFormula: function (expression, data) {
79
+ var curData = data || {};
80
+ var result = undefined;
81
+ try {
82
+ result = amisFormula.evaluate(expression, curData, {
83
+ evalMode: true,
84
+ allowFilter: false
85
+ });
86
+ }
87
+ catch (e) {
88
+ console.warn('[evalFormula]表达式执行异常,当前表达式: ', expression, ',当前上下文数据: ', data);
89
+ return expression;
90
+ }
91
+ return result !== null && result !== void 0 ? result : expression;
92
+ },
93
+ js: function (expression, data) {
94
+ var debug = false;
95
+ var idx = expression.indexOf('debugger');
96
+ if (~idx) {
97
+ debug = true;
98
+ expression = expression.replace(/debugger;?/, '');
99
+ }
100
+ var fn;
101
+ if (expression in FORMULA_EVAL_CACHE) {
102
+ fn = FORMULA_EVAL_CACHE[expression];
103
+ }
104
+ else {
105
+ fn = new Function('data', 'utils', "with(data) {".concat(debug ? 'debugger;' : '', "return (").concat(expression, ");}"));
106
+ FORMULA_EVAL_CACHE[expression] = fn;
107
+ }
108
+ data = data || {};
109
+ var curResult = undefined;
110
+ try {
111
+ curResult = fn.call(data, data, amisFormula.getFilters());
112
+ }
113
+ catch (e) {
114
+ console.warn('[formula:js]表达式执行异常,当前表达式: ', expression, ',当前上下文数据: ', data);
115
+ return expression;
116
+ }
117
+ return curResult;
118
+ },
119
+ var: function (expression, data) {
120
+ var curData = data || {};
121
+ var result = getVariable.getVariable(curData, expression); // 不支持过滤器
122
+ return result !== null && result !== void 0 ? result : expression;
123
+ },
124
+ collect: function (expression) {
125
+ var variables = [];
126
+ if (isObjectByLodash__default["default"](expression) || isString__default["default"](expression)) {
127
+ // 仅对 Object类型 和 String类型 进行变量提取
128
+ variables = grammar.collectVariables(expression);
129
+ }
130
+ else {
131
+ variables = [];
132
+ }
133
+ return variables;
134
+ }
135
+ };
136
+ // 用于判断是否优先使用value。
137
+ function isExpression(expression) {
138
+ if (!isString__default["default"](expression)) {
139
+ // 非字符串类型,比如:Object、Array类型、boolean、number类型
140
+ return false;
141
+ }
142
+ // 备注: "\\${xxx}"不作为表达式,至少含一个${xxx}才算是表达式
143
+ return /(?<!\\)(\${).+(\})/.test(expression);
144
+ }
145
+ // 用于判断是否需要执行表达式:
146
+ function isNeedFormula(expression, prevData, curData) {
147
+ var variables = FormulaExec.collect(expression);
148
+ return variables.some(function (variable) {
149
+ return FormulaExec.var(variable, prevData) !== FormulaExec.var(variable, curData);
150
+ });
151
+ }
152
+ // 将 \${xx} 替换成 ${xx}
153
+ function replaceExpression(expression) {
154
+ if (expression &&
155
+ isString__default["default"](expression) &&
156
+ /(\\)(\${).+(\})/.test(expression)) {
157
+ return expression.replace(/\\\$\{/g, '${');
158
+ }
159
+ return expression;
160
+ }
161
+
162
+ exports.FormulaExec = FormulaExec;
163
+ exports.isExpression = isExpression;
164
+ exports.isNeedFormula = isNeedFormula;
165
+ exports.replaceExpression = replaceExpression;
@@ -0,0 +1,29 @@
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 keyToPath = require('./keyToPath.js');
11
+
12
+ function getVariable(data, key, canAccessSuper) {
13
+ if (canAccessSuper === void 0) { canAccessSuper = true; }
14
+ if (!data || !key) {
15
+ return undefined;
16
+ }
17
+ else if (canAccessSuper ? key in data : data.hasOwnProperty(key)) {
18
+ return data[key];
19
+ }
20
+ return keyToPath.keyToPath(key).reduce(function (obj, key) {
21
+ return obj &&
22
+ typeof obj === 'object' &&
23
+ (canAccessSuper ? key in obj : obj.hasOwnProperty(key))
24
+ ? obj[key]
25
+ : undefined;
26
+ }, data);
27
+ }
28
+
29
+ exports.getVariable = getVariable;
@@ -0,0 +1,54 @@
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 amisFormula = require('amis-formula');
11
+
12
+ /**
13
+ * @file 公式语法解析
14
+ */
15
+ function traverseAst(ast, iterator) {
16
+ if (!ast || !ast.type) {
17
+ return;
18
+ }
19
+ iterator(ast);
20
+ Object.keys(ast).forEach(function (key) {
21
+ var value = ast[key];
22
+ if (Array.isArray(value)) {
23
+ value.forEach(function (child) { return traverseAst(child, iterator); });
24
+ }
25
+ else {
26
+ traverseAst(value, iterator);
27
+ }
28
+ });
29
+ }
30
+ // 缓存,用于提升性能
31
+ var COLLECT_EXPRESSION_CACHE = {};
32
+ // 提取表达式中有哪些变量
33
+ function collectVariables(strOrAst, execMode) {
34
+ var variables = [];
35
+ if (typeof strOrAst === 'string' && COLLECT_EXPRESSION_CACHE[strOrAst]) {
36
+ return COLLECT_EXPRESSION_CACHE[strOrAst];
37
+ }
38
+ var ast = typeof strOrAst === 'string'
39
+ ? amisFormula.parse(strOrAst, {
40
+ evalMode: execMode !== null && execMode !== void 0 ? execMode : false
41
+ })
42
+ : strOrAst;
43
+ traverseAst(ast, function (item) {
44
+ if (item.type === 'variable') {
45
+ variables.push(item.name);
46
+ }
47
+ });
48
+ if (typeof strOrAst === 'string') {
49
+ COLLECT_EXPRESSION_CACHE[strOrAst] = variables;
50
+ }
51
+ return variables;
52
+ }
53
+
54
+ exports.collectVariables = collectVariables;