amis-core 3.6.4 → 6.1.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 (316) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +3 -2
  3. package/esm/SchemaRenderer.js +4 -1
  4. package/esm/Scoped.d.ts +6 -0
  5. package/esm/Scoped.js +45 -7
  6. package/esm/StatusScoped.js +1 -1
  7. package/esm/WithRootStore.js +1 -1
  8. package/esm/WithStore.js +3 -5
  9. package/esm/actions/Action.js +31 -27
  10. package/esm/actions/AjaxAction.js +1 -1
  11. package/esm/actions/BreakAction.js +1 -1
  12. package/esm/actions/BroadcastAction.js +1 -1
  13. package/esm/actions/CmptAction.js +65 -26
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +1 -1
  16. package/esm/actions/CustomAction.js +4 -3
  17. package/esm/actions/DialogAction.js +1 -1
  18. package/esm/actions/DrawerAction.js +1 -1
  19. package/esm/actions/EmailAction.js +1 -1
  20. package/esm/actions/LinkAction.js +9 -4
  21. package/esm/actions/LoopAction.js +1 -1
  22. package/esm/actions/PageAction.js +1 -1
  23. package/esm/actions/ParallelAction.js +1 -1
  24. package/esm/actions/StatusAction.js +1 -1
  25. package/esm/actions/SwitchAction.js +1 -1
  26. package/esm/actions/ToastAction.js +1 -1
  27. package/esm/components/CustomStyle.d.ts +1 -2
  28. package/esm/components/CustomStyle.js +19 -6
  29. package/esm/components/ErrorBoundary.js +1 -1
  30. package/esm/components/LazyComponent.js +1 -1
  31. package/esm/components/Overlay.js +12 -9
  32. package/esm/components/PopOver.js +8 -5
  33. package/esm/env.d.ts +4 -0
  34. package/esm/env.js +1 -1
  35. package/esm/envOverwrite.js +1 -1
  36. package/esm/factory.js +14 -1
  37. package/esm/index.d.ts +2 -2
  38. package/esm/index.js +14 -7
  39. package/esm/locale.js +1 -1
  40. package/esm/polyfills.js +1 -1
  41. package/esm/renderers/Form.d.ts +4 -3
  42. package/esm/renderers/Form.js +216 -150
  43. package/esm/renderers/Item.d.ts +1 -0
  44. package/esm/renderers/Item.js +17 -17
  45. package/esm/renderers/Options.d.ts +5 -0
  46. package/esm/renderers/Options.js +188 -57
  47. package/esm/renderers/Placeholder.js +1 -1
  48. package/esm/renderers/builtin.js +1 -1
  49. package/esm/renderers/register.js +1 -1
  50. package/esm/renderers/wrapControl.js +39 -30
  51. package/esm/store/app.d.ts +2 -2
  52. package/esm/store/app.js +4 -3
  53. package/esm/store/combo.d.ts +79 -55
  54. package/esm/store/combo.js +1 -1
  55. package/esm/store/crud.d.ts +3 -2
  56. package/esm/store/crud.js +18 -4
  57. package/esm/store/form.d.ts +33 -23
  58. package/esm/store/form.js +5 -5
  59. package/esm/store/formItem.d.ts +2 -1
  60. package/esm/store/formItem.js +3 -2
  61. package/esm/store/iRenderer.d.ts +1 -1
  62. package/esm/store/iRenderer.js +10 -3
  63. package/esm/store/index.js +1 -1
  64. package/esm/store/list.d.ts +1 -1
  65. package/esm/store/list.js +18 -13
  66. package/esm/store/manager.js +1 -1
  67. package/esm/store/modal.d.ts +2 -2
  68. package/esm/store/modal.js +1 -1
  69. package/esm/store/node.js +1 -1
  70. package/esm/store/pagination.d.ts +2 -1
  71. package/esm/store/pagination.js +3 -2
  72. package/esm/store/root.d.ts +2 -2
  73. package/esm/store/root.js +4 -3
  74. package/esm/store/service.d.ts +2 -2
  75. package/esm/store/service.js +11 -7
  76. package/esm/store/status.js +1 -1
  77. package/esm/store/table.d.ts +69 -47
  78. package/esm/store/table.js +54 -25
  79. package/esm/store/table2.d.ts +14 -3
  80. package/esm/store/table2.js +22 -9
  81. package/esm/theme.js +1 -1
  82. package/esm/types.d.ts +7 -0
  83. package/esm/utils/Animation.js +1 -1
  84. package/esm/utils/ColorScale.js +1 -1
  85. package/esm/utils/DataSchema.js +1 -1
  86. package/esm/utils/DataScope.js +1 -1
  87. package/esm/utils/RootClose.js +1 -1
  88. package/esm/utils/SimpleMap.js +1 -1
  89. package/esm/utils/api.js +1 -1
  90. package/esm/utils/arraySlice.js +1 -1
  91. package/esm/utils/attachmentAdpator.js +1 -1
  92. package/esm/utils/autobind.js +1 -1
  93. package/esm/utils/browser.d.ts +1 -0
  94. package/esm/utils/browser.js +11 -0
  95. package/esm/utils/columnsSplit.js +1 -1
  96. package/esm/utils/concatData.d.ts +8 -0
  97. package/esm/utils/concatData.js +39 -0
  98. package/esm/utils/dataMapping.js +1 -1
  99. package/esm/utils/date.js +1 -1
  100. package/esm/utils/debug.js +1 -1
  101. package/esm/utils/decodeEntity.js +1 -1
  102. package/esm/utils/dom.js +1 -1
  103. package/esm/utils/errors.js +1 -1
  104. package/esm/utils/escapeHtml.js +1 -1
  105. package/esm/utils/filter-schema.js +1 -1
  106. package/esm/utils/filter.js +1 -1
  107. package/esm/utils/formatDuration.js +1 -1
  108. package/esm/utils/formula.js +1 -1
  109. package/esm/utils/getVariable.js +1 -1
  110. package/esm/utils/grammar.js +1 -1
  111. package/esm/utils/handleAction.js +1 -1
  112. package/esm/utils/helper.d.ts +14 -2
  113. package/esm/utils/helper.js +49 -14
  114. package/esm/utils/highlight.js +3 -2
  115. package/esm/utils/icon.js +1 -1
  116. package/esm/utils/image.js +1 -1
  117. package/esm/utils/index.d.ts +3 -0
  118. package/esm/utils/isPureVariable.js +1 -1
  119. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  120. package/esm/utils/keyToPath.js +1 -1
  121. package/esm/utils/labelToString.d.ts +1 -0
  122. package/esm/utils/labelToString.js +38 -0
  123. package/esm/utils/makeSorter.js +1 -1
  124. package/esm/utils/math.js +1 -1
  125. package/esm/utils/memoryParse.js +1 -1
  126. package/esm/utils/normalizeLink.js +1 -1
  127. package/esm/utils/normalizeOptions.js +1 -1
  128. package/esm/utils/object.js +1 -1
  129. package/esm/utils/offset.js +1 -1
  130. package/esm/utils/offsetParent.js +1 -1
  131. package/esm/utils/optionValueCompare.js +1 -1
  132. package/esm/utils/position.js +1 -1
  133. package/esm/utils/prettyBytes.js +1 -1
  134. package/esm/utils/renderer-event.js +19 -3
  135. package/esm/utils/replaceText.js +9 -11
  136. package/esm/utils/resize-sensor.js +1 -1
  137. package/esm/utils/resolveCondition.js +1 -1
  138. package/esm/utils/resolveVariable.js +1 -1
  139. package/esm/utils/resolveVariableAndFilter.js +1 -1
  140. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  141. package/esm/utils/scrollPosition.js +1 -1
  142. package/esm/utils/string2regExp.d.ts +1 -1
  143. package/esm/utils/string2regExp.js +4 -3
  144. package/esm/utils/stripNumber.js +1 -1
  145. package/esm/utils/style-helper.d.ts +24 -5
  146. package/esm/utils/style-helper.js +49 -21
  147. package/esm/utils/style.js +1 -1
  148. package/esm/utils/toNumber.js +1 -1
  149. package/esm/utils/tokenize.d.ts +1 -0
  150. package/esm/utils/tokenize.js +10 -3
  151. package/esm/utils/tpl-builtin.js +1 -1
  152. package/esm/utils/tpl-lodash.js +1 -1
  153. package/esm/utils/tpl.js +6 -8
  154. package/esm/utils/uncontrollable.js +1 -1
  155. package/esm/utils/validateId.d.ts +16 -0
  156. package/esm/utils/validateId.js +154 -0
  157. package/esm/utils/validations.js +16 -8
  158. package/lib/Root.js +1 -1
  159. package/lib/RootRenderer.js +3 -2
  160. package/lib/SchemaRenderer.js +4 -1
  161. package/lib/Scoped.d.ts +6 -0
  162. package/lib/Scoped.js +45 -6
  163. package/lib/StatusScoped.js +1 -1
  164. package/lib/WithRootStore.js +1 -1
  165. package/lib/WithStore.js +3 -5
  166. package/lib/actions/Action.js +31 -27
  167. package/lib/actions/AjaxAction.js +1 -1
  168. package/lib/actions/BreakAction.js +1 -1
  169. package/lib/actions/BroadcastAction.js +1 -1
  170. package/lib/actions/CmptAction.js +65 -26
  171. package/lib/actions/ContinueAction.js +1 -1
  172. package/lib/actions/CopyAction.js +1 -1
  173. package/lib/actions/CustomAction.js +4 -3
  174. package/lib/actions/DialogAction.js +1 -1
  175. package/lib/actions/DrawerAction.js +1 -1
  176. package/lib/actions/EmailAction.js +1 -1
  177. package/lib/actions/LinkAction.js +9 -4
  178. package/lib/actions/LoopAction.js +1 -1
  179. package/lib/actions/PageAction.js +1 -1
  180. package/lib/actions/ParallelAction.js +1 -1
  181. package/lib/actions/StatusAction.js +1 -1
  182. package/lib/actions/SwitchAction.js +1 -1
  183. package/lib/actions/ToastAction.js +1 -1
  184. package/lib/components/CustomStyle.d.ts +1 -2
  185. package/lib/components/CustomStyle.js +19 -6
  186. package/lib/components/ErrorBoundary.js +1 -1
  187. package/lib/components/LazyComponent.js +1 -1
  188. package/lib/components/Overlay.js +11 -8
  189. package/lib/components/PopOver.js +8 -5
  190. package/lib/env.d.ts +4 -0
  191. package/lib/env.js +1 -1
  192. package/lib/envOverwrite.js +1 -1
  193. package/lib/factory.js +14 -1
  194. package/lib/index.d.ts +2 -2
  195. package/lib/index.js +19 -4
  196. package/lib/locale.js +1 -1
  197. package/lib/polyfills.js +1 -1
  198. package/lib/renderers/Form.d.ts +4 -3
  199. package/lib/renderers/Form.js +216 -150
  200. package/lib/renderers/Item.d.ts +1 -0
  201. package/lib/renderers/Item.js +17 -17
  202. package/lib/renderers/Options.d.ts +5 -0
  203. package/lib/renderers/Options.js +188 -57
  204. package/lib/renderers/Placeholder.js +1 -1
  205. package/lib/renderers/builtin.js +1 -1
  206. package/lib/renderers/register.js +1 -1
  207. package/lib/renderers/wrapControl.js +38 -29
  208. package/lib/store/app.d.ts +2 -2
  209. package/lib/store/app.js +4 -3
  210. package/lib/store/combo.d.ts +55 -31
  211. package/lib/store/combo.js +1 -1
  212. package/lib/store/crud.d.ts +3 -2
  213. package/lib/store/crud.js +18 -4
  214. package/lib/store/form.d.ts +23 -13
  215. package/lib/store/form.js +5 -5
  216. package/lib/store/formItem.d.ts +2 -1
  217. package/lib/store/formItem.js +3 -2
  218. package/lib/store/iRenderer.d.ts +1 -1
  219. package/lib/store/iRenderer.js +10 -3
  220. package/lib/store/index.js +1 -1
  221. package/lib/store/list.d.ts +1 -1
  222. package/lib/store/list.js +18 -14
  223. package/lib/store/manager.js +1 -1
  224. package/lib/store/modal.d.ts +2 -2
  225. package/lib/store/modal.js +1 -1
  226. package/lib/store/node.js +1 -1
  227. package/lib/store/pagination.d.ts +2 -1
  228. package/lib/store/pagination.js +3 -2
  229. package/lib/store/root.d.ts +2 -2
  230. package/lib/store/root.js +4 -3
  231. package/lib/store/service.d.ts +2 -2
  232. package/lib/store/service.js +11 -7
  233. package/lib/store/status.js +1 -1
  234. package/lib/store/table.d.ts +49 -27
  235. package/lib/store/table.js +54 -26
  236. package/lib/store/table2.d.ts +14 -3
  237. package/lib/store/table2.js +22 -9
  238. package/lib/theme.js +1 -1
  239. package/lib/types.d.ts +7 -0
  240. package/lib/utils/Animation.js +1 -1
  241. package/lib/utils/ColorScale.js +1 -1
  242. package/lib/utils/DataSchema.js +1 -1
  243. package/lib/utils/DataScope.js +1 -1
  244. package/lib/utils/RootClose.js +1 -1
  245. package/lib/utils/SimpleMap.js +1 -1
  246. package/lib/utils/api.js +1 -1
  247. package/lib/utils/arraySlice.js +1 -1
  248. package/lib/utils/attachmentAdpator.js +1 -1
  249. package/lib/utils/autobind.js +1 -1
  250. package/lib/utils/browser.d.ts +1 -0
  251. package/lib/utils/browser.js +15 -0
  252. package/lib/utils/columnsSplit.js +1 -1
  253. package/lib/utils/concatData.d.ts +8 -0
  254. package/lib/utils/concatData.js +43 -0
  255. package/lib/utils/dataMapping.js +1 -1
  256. package/lib/utils/date.js +1 -1
  257. package/lib/utils/debug.js +1 -1
  258. package/lib/utils/decodeEntity.js +1 -1
  259. package/lib/utils/dom.js +1 -1
  260. package/lib/utils/errors.js +1 -1
  261. package/lib/utils/escapeHtml.js +1 -1
  262. package/lib/utils/filter-schema.js +1 -1
  263. package/lib/utils/filter.js +1 -1
  264. package/lib/utils/formatDuration.js +1 -1
  265. package/lib/utils/formula.js +1 -1
  266. package/lib/utils/getVariable.js +1 -1
  267. package/lib/utils/grammar.js +1 -1
  268. package/lib/utils/handleAction.js +1 -1
  269. package/lib/utils/helper.d.ts +14 -2
  270. package/lib/utils/helper.js +50 -12
  271. package/lib/utils/highlight.js +3 -2
  272. package/lib/utils/icon.js +1 -1
  273. package/lib/utils/image.js +1 -1
  274. package/lib/utils/index.d.ts +3 -0
  275. package/lib/utils/isPureVariable.js +1 -1
  276. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  277. package/lib/utils/keyToPath.js +1 -1
  278. package/lib/utils/labelToString.d.ts +1 -0
  279. package/lib/utils/labelToString.js +46 -0
  280. package/lib/utils/makeSorter.js +1 -1
  281. package/lib/utils/math.js +1 -1
  282. package/lib/utils/memoryParse.js +1 -1
  283. package/lib/utils/normalizeLink.js +1 -1
  284. package/lib/utils/normalizeOptions.js +1 -1
  285. package/lib/utils/object.js +1 -1
  286. package/lib/utils/offset.js +1 -1
  287. package/lib/utils/offsetParent.js +1 -1
  288. package/lib/utils/optionValueCompare.js +1 -1
  289. package/lib/utils/position.js +1 -1
  290. package/lib/utils/prettyBytes.js +1 -1
  291. package/lib/utils/renderer-event.js +19 -3
  292. package/lib/utils/replaceText.js +8 -14
  293. package/lib/utils/resize-sensor.js +1 -1
  294. package/lib/utils/resolveCondition.js +1 -1
  295. package/lib/utils/resolveVariable.js +1 -1
  296. package/lib/utils/resolveVariableAndFilter.js +1 -1
  297. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  298. package/lib/utils/scrollPosition.js +1 -1
  299. package/lib/utils/string2regExp.d.ts +1 -1
  300. package/lib/utils/string2regExp.js +4 -3
  301. package/lib/utils/stripNumber.js +1 -1
  302. package/lib/utils/style-helper.d.ts +24 -5
  303. package/lib/utils/style-helper.js +49 -21
  304. package/lib/utils/style.js +1 -1
  305. package/lib/utils/toNumber.js +1 -1
  306. package/lib/utils/tokenize.d.ts +1 -0
  307. package/lib/utils/tokenize.js +10 -2
  308. package/lib/utils/tpl-builtin.js +1 -1
  309. package/lib/utils/tpl-lodash.js +1 -1
  310. package/lib/utils/tpl.js +5 -7
  311. package/lib/utils/uncontrollable.js +1 -1
  312. package/lib/utils/validateId.d.ts +16 -0
  313. package/lib/utils/validateId.js +160 -0
  314. package/lib/utils/validations.js +16 -8
  315. package/package.json +4 -3
  316. package/LICENSE +0 -201
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -10,6 +10,7 @@ import isObject from 'lodash/isObject';
10
10
  import map from 'lodash/map';
11
11
  import isEmpty from 'lodash/isEmpty';
12
12
  import kebabCase from 'lodash/kebabCase';
13
+ import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
13
14
 
14
15
  var valueMap = {
15
16
  'marginTop': 'margin-top',
@@ -100,7 +101,7 @@ function handleInheritData(statusMap, data) {
100
101
  });
101
102
  });
102
103
  }
103
- function formatStyle(themeCss, classNames, id, defaultData) {
104
+ function formatStyle(themeCss, classNames, id, defaultData, data) {
104
105
  var e_1, _a;
105
106
  // 没有具体的样式,或者没有对应的classname
106
107
  if (!themeCss || !classNames) {
@@ -120,6 +121,9 @@ function formatStyle(themeCss, classNames, id, defaultData) {
120
121
  }
121
122
  var className = item.key + '-' + (id === null || id === void 0 ? void 0 : id.replace('u:', ''));
122
123
  var weightsList = item.weights || {};
124
+ if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
125
+ className += "-".concat(data.index);
126
+ }
123
127
  var statusMap = {
124
128
  default: {},
125
129
  hover: {},
@@ -151,7 +155,8 @@ function formatStyle(themeCss, classNames, id, defaultData) {
151
155
  var styles = [];
152
156
  var fn = function (key, value) {
153
157
  key = valueMap[key] || key;
154
- styles.push("".concat(kebabCase(key), ": ").concat(value + ((weights === null || weights === void 0 ? void 0 : weights.important) ? ' !important' : ''), ";"));
158
+ value = resolveVariableAndFilter(value, data, '| raw') || value;
159
+ styles.push("".concat(key.startsWith('--') ? key : kebabCase(key), ": ").concat(value + ((weights === null || weights === void 0 ? void 0 : weights.important) ? ' !important' : ''), ";"));
155
160
  };
156
161
  Object.keys(statusMap[status]).forEach(function (key) {
157
162
  if (key !== '$$id') {
@@ -163,16 +168,14 @@ function formatStyle(themeCss, classNames, id, defaultData) {
163
168
  style_1['top-left-border-radius'] || 0,
164
169
  style_1['top-right-border-radius'] || 0,
165
170
  style_1['bottom-right-border-radius'] || 0,
166
- style_1['bottom-left-border-radius'] || 0,
167
- (weights === null || weights === void 0 ? void 0 : weights.important) ? ' !important' : ''
171
+ style_1['bottom-left-border-radius'] || 0
168
172
  ].join(' '));
169
173
  }
170
174
  else {
171
175
  Object.keys(style_1).forEach(function (k) {
172
176
  if (k !== '$$id') {
173
177
  var value = style_1[k];
174
- value &&
175
- fn(k, value + ((weights === null || weights === void 0 ? void 0 : weights.important) ? ' !important' : ''));
178
+ value && fn(k, value);
176
179
  }
177
180
  });
178
181
  }
@@ -225,13 +228,18 @@ function formatStyle(themeCss, classNames, id, defaultData) {
225
228
  origin: res
226
229
  };
227
230
  }
228
- function insertCustomStyle(themeCss, classNames, id, defaultData, customStyleClassPrefix, doc) {
231
+ function insertCustomStyle(prams) {
232
+ var themeCss = prams.themeCss, classNames = prams.classNames, id = prams.id, defaultData = prams.defaultData, customStyleClassPrefix = prams.customStyleClassPrefix, doc = prams.doc, data = prams.data;
229
233
  if (!themeCss) {
230
234
  return;
231
235
  }
232
- var value = formatStyle(themeCss, classNames, id, defaultData).value;
236
+ var value = formatStyle(themeCss, classNames, id, defaultData, data).value;
233
237
  value = customStyleClassPrefix ? "".concat(customStyleClassPrefix, " ").concat(value) : value;
234
- insertStyle(value, id.replace('u:', ''), doc);
238
+ var classId = id.replace('u:', '');
239
+ if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
240
+ classId += "-".concat(data.index);
241
+ }
242
+ insertStyle(value, classId, doc);
235
243
  }
236
244
  /**
237
245
  * 根据路径获取默认值
@@ -274,38 +282,53 @@ function traverseStyle(style, path, result) {
274
282
  /**
275
283
  * 设置源码编辑自定义样式
276
284
  */
277
- function insertEditCustomStyle(customStyle, id, doc) {
285
+ function insertEditCustomStyle(params) {
286
+ var customStyle = params.customStyle, id = params.id, doc = params.doc, data = params.data;
278
287
  var styles = {};
279
288
  traverseStyle(customStyle, '', styles);
280
289
  var content = '';
290
+ var index = '';
291
+ if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
292
+ index = "-".concat(data.index);
293
+ }
281
294
  if (!isEmpty(styles)) {
282
- var className_1 = "wrapperCustomStyle-".concat(id === null || id === void 0 ? void 0 : id.replace('u:', ''));
295
+ var className_1 = "wrapperCustomStyle-".concat(id === null || id === void 0 ? void 0 : id.replace('u:', '')).concat(index);
283
296
  Object.keys(styles).forEach(function (key) {
284
297
  if (!isObject(styles[key])) {
285
- content += "\n.".concat(className_1, " {\n ").concat(key, ": ").concat(styles[key], "\n}");
298
+ content += "\n.".concat(className_1, " {\n ").concat(key, ": ").concat(resolveVariableAndFilter(styles[key].replace(/['|"]/g, ''), data, '| raw') || styles[key], "\n}");
286
299
  }
287
300
  else if (key === 'root') {
288
- var res = map(styles[key], function (value, key) { return "".concat(key, ": ").concat(value, ";"); });
301
+ var res = map(styles[key], function (value, key) {
302
+ return "".concat(key, ": ").concat(resolveVariableAndFilter(value.replace(/['|"]/g, ''), data, '| raw') || value, ";");
303
+ });
289
304
  content += "\n.".concat(className_1, " {\n ").concat(res.join('\n '), "\n}");
290
305
  }
291
306
  else if (/^root:/.test(key)) {
292
- var res = map(styles[key], function (value, key) { return "".concat(key, ": ").concat(value, ";"); });
307
+ var res = map(styles[key], function (value, key) {
308
+ return "".concat(key, ": ").concat(resolveVariableAndFilter(value.replace(/['|"]/g, ''), data, '| raw') || value, ";");
309
+ });
293
310
  var nowKey = key.replace('root', '');
294
311
  content += "\n.".concat(className_1, " ").concat(nowKey, " {\n ").concat(res.join('\n '), "\n}");
295
312
  }
296
313
  else {
297
- var res = map(styles[key], function (value, key) { return "".concat(key, ": ").concat(value, ";"); });
314
+ var res = map(styles[key], function (value, key) {
315
+ return "".concat(key, ": ").concat(resolveVariableAndFilter(value.replace(/['|"]/g, ''), data, '| raw') || value, ";");
316
+ });
298
317
  content += "\n.".concat(className_1, " ").concat(key, " {\n ").concat(res.join('\n '), "\n}");
299
318
  }
300
319
  });
301
320
  }
302
- insertStyle(content, 'wrapperCustomStyle-' + ((id === null || id === void 0 ? void 0 : id.replace('u:', '')) || uuid()), doc);
321
+ insertStyle(content, 'wrapperCustomStyle-' + ((id === null || id === void 0 ? void 0 : id.replace('u:', '')) || uuid()) + index, doc);
303
322
  }
304
323
  /**
305
324
  * 移除自定义样式
306
325
  */
307
- function removeCustomStyle(type, id, doc) {
308
- var style = (doc || document).getElementById('amis-' + (type ? type + '-' : '') + id.replace('u:', ''));
326
+ function removeCustomStyle(type, id, doc, data) {
327
+ var styleId = 'amis-' + (type ? type + '-' : '') + id.replace('u:', '');
328
+ if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
329
+ styleId += "-".concat(data.index);
330
+ }
331
+ var style = (doc || document).getElementById(styleId);
309
332
  if (style) {
310
333
  style.remove();
311
334
  }
@@ -324,14 +347,19 @@ function formatInputThemeCss(themeCss) {
324
347
  });
325
348
  return inputFontThemeCss;
326
349
  }
327
- function setThemeClassName(name, id, themeCss, extra) {
350
+ function setThemeClassName(params) {
351
+ var name = params.name, id = params.id, themeCss = params.themeCss, extra = params.extra, data = params.data;
328
352
  if (!id || !themeCss) {
329
353
  return '';
330
354
  }
331
355
  if (name !== 'wrapperCustomStyle' && !themeCss[name]) {
332
356
  return '';
333
357
  }
334
- return "".concat(name, "-").concat(id.replace('u:', '')) + (extra ? "-".concat(extra) : '');
358
+ var index = '';
359
+ if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
360
+ index = "-".concat(data.index);
361
+ }
362
+ return "".concat(name, "-").concat(id.replace('u:', '')) + (extra ? "-".concat(extra) : '') + index;
335
363
  }
336
364
 
337
365
  export { addStyle, findOrCreateStyle, formatInputThemeCss, formatStyle, getValueByPath, inheritValueMap, insertCustomStyle, insertEditCustomStyle, insertStyle, removeCustomStyle, setThemeClassName, valueMap };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1 +1,2 @@
1
+ export declare function memoParse(str: string, options?: any): any;
1
2
  export declare const tokenize: (str: string, data: object, defaultFilter?: string) => string;
@@ -1,17 +1,24 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
6
6
  import { parse, Evaluator } from 'amis-formula';
7
7
 
8
+ var AST_CACHE = {};
9
+ function memoParse(str, options) {
10
+ var key = "".concat(str).concat((options === null || options === void 0 ? void 0 : options.evalMode) ? '-eval' : '').concat((options === null || options === void 0 ? void 0 : options.allowFilter) ? '-filter' : '').concat((options === null || options === void 0 ? void 0 : options.variableMode) ? '-variable' : '');
11
+ var ast = AST_CACHE[key] || parse(str, options);
12
+ AST_CACHE[key] = ast;
13
+ return ast;
14
+ }
8
15
  var tokenize = function (str, data, defaultFilter) {
9
16
  if (defaultFilter === void 0) { defaultFilter = '| html'; }
10
17
  if (!str || typeof str !== 'string') {
11
18
  return str;
12
19
  }
13
20
  try {
14
- var ast = parse(str, {
21
+ var ast = memoParse(str, {
15
22
  evalMode: false,
16
23
  allowFilter: true
17
24
  });
@@ -26,4 +33,4 @@ var tokenize = function (str, data, defaultFilter) {
26
33
  }
27
34
  };
28
35
 
29
- export { tokenize };
36
+ export { memoParse, tokenize };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/utils/tpl.js CHANGED
@@ -1,13 +1,14 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
6
6
  import { __spreadArray, __read, __awaiter, __generator } from 'tslib';
7
7
  import { register } from './tpl-builtin.js';
8
8
  import { register as register$1 } from './tpl-lodash.js';
9
- import { getFilters, parse, evaluate } from 'amis-formula';
9
+ import { getFilters, evaluate } from 'amis-formula';
10
10
  import { resolveCondition } from './resolveCondition.js';
11
+ import { memoParse } from './tokenize.js';
11
12
 
12
13
  var enginers = {};
13
14
  function registerTplEnginer(name, enginer) {
@@ -120,13 +121,10 @@ function evalExpressionWithConditionBuilder(expression, data, defaultResult) {
120
121
  });
121
122
  });
122
123
  }
123
- var AST_CACHE = {};
124
124
  function evalFormula(expression, data) {
125
- var ast = AST_CACHE[expression] ||
126
- parse(expression, {
127
- evalMode: false
128
- });
129
- AST_CACHE[expression] = ast;
125
+ var ast = memoParse(expression, {
126
+ evalMode: false
127
+ });
130
128
  return evaluate(ast, data, {
131
129
  defaultFilter: 'raw'
132
130
  });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 身份证号码校验,(没有校验城市和区县)
3
+ *
4
+ * 身份证号码是由18位组成,分别表示:
5
+ * 第1、2位数字表示:所在省份的代码;
6
+ * 第3、4位数字表示:所在城市的代码;
7
+ * 第5、6位数字表示:所在区县的代码;
8
+ * 第7-14位数字表示:出生年、月、日(其中7、8、9、10位是年,11、12位是月,13、14位是日);
9
+ * 第15-17位数字表示:顺序编码,都是同一地址辖区内的,以及同年同月同日出生人的顺序码,同时 第17位兼具性别标识功能,男单女双;
10
+ * 第18位是校检码:可以是0-9的数字,有时也用X表示, X来代替10。
11
+ *
12
+ * 身份证15位时,次序为省(2位)市(2位)区县(2位)年(2位)月(2位)日(2位)顺序编码(3位),皆为数字,没有最后一位校验码
13
+ */
14
+ export declare function isId18(id: string): boolean;
15
+ export declare function isId15(id: string): boolean;
16
+ export declare function isId(id: string): boolean;
@@ -0,0 +1,154 @@
1
+ /**
2
+ * amis-core v6.1.0
3
+ * Copyright 2018-2024 fex
4
+ */
5
+
6
+ import { __read } from 'tslib';
7
+
8
+ /**
9
+ * 身份证号码校验,(没有校验城市和区县)
10
+ *
11
+ * 身份证号码是由18位组成,分别表示:
12
+ * 第1、2位数字表示:所在省份的代码;
13
+ * 第3、4位数字表示:所在城市的代码;
14
+ * 第5、6位数字表示:所在区县的代码;
15
+ * 第7-14位数字表示:出生年、月、日(其中7、8、9、10位是年,11、12位是月,13、14位是日);
16
+ * 第15-17位数字表示:顺序编码,都是同一地址辖区内的,以及同年同月同日出生人的顺序码,同时 第17位兼具性别标识功能,男单女双;
17
+ * 第18位是校检码:可以是0-9的数字,有时也用X表示, X来代替10。
18
+ *
19
+ * 身份证15位时,次序为省(2位)市(2位)区县(2位)年(2位)月(2位)日(2位)顺序编码(3位),皆为数字,没有最后一位校验码
20
+ */
21
+ function isId18(id) {
22
+ if (!/^\d{17}(\d|X)$/.test(id)) {
23
+ return false;
24
+ }
25
+ var info = getInfoFromId(id);
26
+ if (!info) {
27
+ return false;
28
+ }
29
+ var province = info.province, city = info.city, country = info.country, birthday = info.birthday;
30
+ if (!verifyRegion(province, city, country) || !verifyBirthday(birthday)) {
31
+ return false;
32
+ }
33
+ return verifyCheckCode(id);
34
+ }
35
+ function isId15(id) {
36
+ if (!/^\d{15}$/.test(id)) {
37
+ return false;
38
+ }
39
+ var info = getInfoFromId(id);
40
+ if (!info) {
41
+ return false;
42
+ }
43
+ var province = info.province, city = info.city, country = info.country, birthday = info.birthday;
44
+ return verifyRegion(province, city, country) && verifyBirthday(birthday);
45
+ }
46
+ function isId(id) {
47
+ return isId18(id) || isId15(id);
48
+ }
49
+ function getProvInfo(prov) {
50
+ return {
51
+ 11: '北京市',
52
+ 12: '天津市',
53
+ 13: '河北省',
54
+ 14: '山西省',
55
+ 15: '内蒙古自治区',
56
+ 21: '辽宁省',
57
+ 22: '吉林省',
58
+ 23: '黑龙江省',
59
+ 31: '上海省',
60
+ 32: '江苏省',
61
+ 33: '浙江省',
62
+ 34: '安徽省',
63
+ 35: '福建省',
64
+ 36: '江西省',
65
+ 37: '山东省',
66
+ 41: '河南省',
67
+ 42: '湖北省',
68
+ 43: '湖南省',
69
+ 44: '广东省',
70
+ 45: '广西壮族自治区',
71
+ 46: '海南省',
72
+ 50: '重庆市',
73
+ 51: '四川省',
74
+ 52: '贵州省',
75
+ 53: '云南省',
76
+ 54: '西藏自治区',
77
+ 61: '陕西省',
78
+ 62: '甘肃省',
79
+ 63: '青海省',
80
+ 64: '宁夏回族自治区',
81
+ 65: '新疆维吾尔自治区',
82
+ 71: '台湾省',
83
+ 81: '香港',
84
+ 82: '澳门',
85
+ 91: '国外'
86
+ }[prov];
87
+ }
88
+ function getInfoFromId(id) {
89
+ if ((id.length === 18 && !/^\d{17}(\d|X)$/.test(id)) ||
90
+ (id.length === 15 && !/^\d{15}$/.test(id))) {
91
+ return;
92
+ }
93
+ var data;
94
+ if (id.length == 18) {
95
+ data = id.match(/^(\d{2})(\d{2})(\d{2})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
96
+ }
97
+ else if (id.length == 15) {
98
+ data = id.match(/^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{3})$/);
99
+ }
100
+ if (!data) {
101
+ return;
102
+ }
103
+ var _a = __read(data, 9); _a[0]; var province = _a[1], city = _a[2], country = _a[3], year = _a[4], month = _a[5], day = _a[6], sequenceCode = _a[7], checkCode = _a[8];
104
+ return {
105
+ province: province,
106
+ provinceName: getProvInfo(province),
107
+ city: city,
108
+ country: country,
109
+ year: year,
110
+ month: month,
111
+ day: day,
112
+ birthday: new Date(year + '/' + month + '/' + day),
113
+ sequenceCode: sequenceCode,
114
+ checkCode: checkCode,
115
+ isMale: +sequenceCode % 2 === 1,
116
+ isFemale: +sequenceCode % 2 === 0
117
+ };
118
+ }
119
+ function verifyRegion(province, city, country) {
120
+ if (!getProvInfo(province)) {
121
+ return false;
122
+ }
123
+ // 这里暂时不获取市和区的具体信息,因为调用CityDB会把校验函数传染为异步
124
+ // city位: 00表示省;01-20,51-70表示省直辖市;21-50表示地区(自治州、盟)
125
+ if (!/^(?:[0-6]\d|70)$/.test(city)) {
126
+ return false;
127
+ }
128
+ if (!/^\d\d$/.test(country)) {
129
+ return false;
130
+ }
131
+ return true;
132
+ }
133
+ function verifyBirthday(birthday) {
134
+ return !isNaN(+birthday);
135
+ }
136
+ /**
137
+ * 校验码计算方式
138
+ * 1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;
139
+ * 2、将这17位数字和系数相乘的结果相加;
140
+ * 3、用加出来和除以11,看余数是多少;
141
+ * 4、余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2;
142
+ * 5、通过上面得知如果余数是2,余数所对应的最后一位身份证号是X,就会在身份证的第18位数字上出现罗马数字的X。
143
+ */
144
+ function verifyCheckCode(id) {
145
+ var arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
146
+ var arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
147
+ var cardTemp = 0;
148
+ for (var i = 0; i < 17; i++) {
149
+ cardTemp += +id.slice(i, i + 1) * arrInt[i];
150
+ }
151
+ return arrCh[cardTemp % 11] === id.slice(17, 18);
152
+ }
153
+
154
+ export { isId, isId15, isId18 };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -12,6 +12,7 @@ import { isPureVariable } from './isPureVariable.js';
12
12
  import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
13
13
  import './filter.js';
14
14
  import memoize from 'lodash/memoize';
15
+ import { isId, isId18, isId15 } from './validateId.js';
15
16
 
16
17
  var isExisty = function (value) { return value !== null && value !== undefined; };
17
18
  var isEmpty = function (value) { return value === ''; };
@@ -216,9 +217,13 @@ var validations = {
216
217
  return !isExisty(value) || isEmpty(value) || /^\d{6}$/.test(value);
217
218
  },
218
219
  isId: function (values, value) {
219
- return (!isExisty(value) ||
220
- isEmpty(value) ||
221
- /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/.test(value));
220
+ return !isExisty(value) || isEmpty(value) || isId(String(value));
221
+ },
222
+ isId18: function (values, value) {
223
+ return !isExisty(value) || isEmpty(value) || isId18(String(value));
224
+ },
225
+ isId15: function (values, value) {
226
+ return !isExisty(value) || isEmpty(value) || isId15(String(value));
222
227
  },
223
228
  notEmptyString: function (values, value) {
224
229
  return !isExisty(value) || !(String(value) && String(value).trim() === '');
@@ -333,6 +338,8 @@ var validateMessages = {
333
338
  isTelNumber: 'validate.isTelNumber',
334
339
  isZipcode: 'validate.isZipcode',
335
340
  isId: 'validate.isId',
341
+ isId18: 'validate.isId',
342
+ isId15: 'validate.isId',
336
343
  isDateTimeSame: 'validate.isDateTimeSame',
337
344
  isDateTimeBefore: 'validate.isDateTimeBefore',
338
345
  isDateTimeAfter: 'validate.isDateTimeAfter',
@@ -374,8 +381,7 @@ function validate(value, values, rules, messages, __) {
374
381
  // {error: true, msg: '错误提示'}
375
382
  // 格式的信息来灵活展示错误
376
383
  var fnResErrorMsg = '';
377
- if (typeof validateRes === 'object' &&
378
- validateRes.error === true) {
384
+ if (typeof validateRes === 'object' && validateRes.error === true) {
379
385
  fnResErrorMsg = (_a = validateRes === null || validateRes === void 0 ? void 0 : validateRes.msg) !== null && _a !== void 0 ? _a : '';
380
386
  }
381
387
  if (!validateRes || fnResErrorMsg) {
@@ -383,13 +389,15 @@ function validate(value, values, rules, messages, __) {
383
389
  if (Array.isArray(value)) {
384
390
  msgRuleName = "".concat(ruleName, "Array");
385
391
  }
386
- return [{
392
+ return [
393
+ {
387
394
  rule: ruleName,
388
395
  msg: filter(__((messages && messages[ruleName]) ||
389
396
  fnResErrorMsg ||
390
397
  validateMessages[msgRuleName] ||
391
398
  validateMessages[ruleName]), __assign({}, [''].concat(args)))
392
- }];
399
+ }
400
+ ];
393
401
  }
394
402
  }
395
403
  }
package/lib/Root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -70,12 +70,13 @@ var RootRenderer = /** @class */ (function (_super) {
70
70
  }
71
71
  };
72
72
  RootRenderer.prototype.componentDidUpdate = function (prevProps) {
73
+ var _a;
73
74
  var props = this.props;
74
75
  if (props.data !== prevProps.data) {
75
76
  this.store.initData(props.data);
76
77
  }
77
78
  if (props.location !== prevProps.location) {
78
- this.store.updateLocation(props.location);
79
+ this.store.updateLocation(props.location, (_a = this.props.env) === null || _a === void 0 ? void 0 : _a.parseLocation);
79
80
  }
80
81
  if (props.context !== prevProps.context) {
81
82
  this.store.updateContext(props.context);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.6.4
2
+ * amis-core v6.1.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -327,6 +327,9 @@ var SchemaRenderer = /** @class */ (function (_super) {
327
327
  if (isStatic !== undefined) {
328
328
  props.static = isStatic;
329
329
  }
330
+ if (rest.env.enableTestid && props.id && !props.testid) {
331
+ props.testid = props.id;
332
+ }
330
333
  // 自动解析变量模式,主要是方便直接引入第三方组件库,无需为了支持变量封装一层
331
334
  if (renderer.autoVar) {
332
335
  try {
package/lib/Scoped.d.ts CHANGED
@@ -14,6 +14,12 @@ import { ListenerAction } from './actions';
14
14
  * @returns
15
15
  */
16
16
  export declare function filterTarget(target: string, data: Record<string, any>): string;
17
+ /**
18
+ * 分割目标,如果里面有表达式,不要跟表达式里面的逗号冲突。
19
+ * @param target
20
+ * @returns
21
+ */
22
+ export declare function splitTarget(target: string): Array<string>;
17
23
  export interface ScopedComponentType extends React.Component<RendererProps> {
18
24
  focus?: () => void;
19
25
  doAction?: (action: ActionObject, data: RendererData, throwErrors?: boolean) => void;