amis-core 3.1.1 → 3.3.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 (313) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +3 -3
  4. package/esm/SchemaRenderer.js +6 -2
  5. package/esm/Scoped.d.ts +4 -1
  6. package/esm/Scoped.js +9 -5
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/WithRootStore.d.ts +4 -24
  9. package/esm/WithRootStore.js +12 -4
  10. package/esm/WithStore.js +23 -16
  11. package/esm/actions/Action.d.ts +1 -0
  12. package/esm/actions/Action.js +70 -45
  13. package/esm/actions/AjaxAction.d.ts +6 -8
  14. package/esm/actions/AjaxAction.js +20 -18
  15. package/esm/actions/BreakAction.js +1 -1
  16. package/esm/actions/BroadcastAction.js +1 -1
  17. package/esm/actions/CmptAction.d.ts +1 -2
  18. package/esm/actions/CmptAction.js +47 -32
  19. package/esm/actions/ContinueAction.js +1 -1
  20. package/esm/actions/CopyAction.js +1 -1
  21. package/esm/actions/CustomAction.js +3 -2
  22. package/esm/actions/DialogAction.d.ts +2 -0
  23. package/esm/actions/DialogAction.js +39 -23
  24. package/esm/actions/DrawerAction.js +4 -4
  25. package/esm/actions/EmailAction.js +1 -1
  26. package/esm/actions/LinkAction.js +1 -1
  27. package/esm/actions/LoopAction.js +1 -1
  28. package/esm/actions/PageAction.js +1 -1
  29. package/esm/actions/ParallelAction.js +1 -1
  30. package/esm/actions/StatusAction.d.ts +15 -0
  31. package/esm/actions/StatusAction.js +49 -0
  32. package/esm/actions/SwitchAction.js +1 -1
  33. package/esm/actions/ToastAction.js +1 -1
  34. package/esm/actions/index.d.ts +1 -0
  35. package/esm/components/CustomStyle.js +1 -1
  36. package/esm/components/LazyComponent.js +1 -1
  37. package/esm/components/Overlay.js +3 -2
  38. package/esm/components/PopOver.js +3 -2
  39. package/esm/env.js +1 -1
  40. package/esm/envOverwrite.js +1 -1
  41. package/esm/factory.js +2 -2
  42. package/esm/index.d.ts +3 -1
  43. package/esm/index.js +16 -14
  44. package/esm/locale.js +1 -1
  45. package/esm/polyfills.d.ts +3 -0
  46. package/esm/polyfills.js +18 -0
  47. package/esm/renderers/Form.d.ts +7 -7
  48. package/esm/renderers/Form.js +182 -128
  49. package/esm/renderers/Item.d.ts +82 -77
  50. package/esm/renderers/Item.js +90 -74
  51. package/esm/renderers/Options.js +1 -2
  52. package/esm/renderers/Placeholder.js +1 -1
  53. package/esm/renderers/builtin.js +1 -1
  54. package/esm/renderers/register.js +1 -1
  55. package/esm/renderers/wrapControl.d.ts +4 -24
  56. package/esm/renderers/wrapControl.js +140 -88
  57. package/esm/store/app.js +42 -4
  58. package/esm/store/combo.d.ts +564 -1892
  59. package/esm/store/combo.js +9 -2
  60. package/esm/store/crud.d.ts +4 -2
  61. package/esm/store/crud.js +17 -4
  62. package/esm/store/form.d.ts +182 -882
  63. package/esm/store/form.js +83 -81
  64. package/esm/store/formItem.d.ts +6 -2
  65. package/esm/store/formItem.js +19 -3
  66. package/esm/store/iRenderer.js +3 -2
  67. package/esm/store/index.js +1 -1
  68. package/esm/store/list.d.ts +1 -0
  69. package/esm/store/list.js +8 -2
  70. package/esm/store/manager.js +1 -1
  71. package/esm/store/modal.js +1 -1
  72. package/esm/store/node.js +1 -1
  73. package/esm/store/pagination.js +1 -1
  74. package/esm/store/root.js +3 -2
  75. package/esm/store/service.js +17 -12
  76. package/esm/store/status.js +1 -1
  77. package/esm/store/table.d.ts +604 -2020
  78. package/esm/store/table.js +86 -56
  79. package/esm/store/table2.d.ts +49 -0
  80. package/esm/store/table2.js +37 -4
  81. package/esm/theme.js +1 -1
  82. package/esm/types.d.ts +22 -5
  83. package/esm/utils/Animation.js +1 -1
  84. package/esm/utils/ColorScale.js +1 -1
  85. package/esm/utils/DataSchema.d.ts +3 -2
  86. package/esm/utils/DataSchema.js +27 -7
  87. package/esm/utils/DataScope.d.ts +10 -3
  88. package/esm/utils/DataScope.js +50 -12
  89. package/esm/utils/RootClose.js +1 -1
  90. package/esm/utils/SimpleMap.js +1 -1
  91. package/esm/utils/api.d.ts +2 -2
  92. package/esm/utils/api.js +152 -112
  93. package/esm/utils/arraySlice.d.ts +1 -0
  94. package/esm/utils/arraySlice.js +76 -0
  95. package/esm/utils/attachmentAdpator.js +1 -1
  96. package/esm/utils/autobind.js +1 -1
  97. package/esm/utils/columnsSplit.js +1 -1
  98. package/esm/utils/dataMapping.js +29 -19
  99. package/esm/utils/date.js +1 -1
  100. package/esm/utils/debug.d.ts +2 -0
  101. package/esm/utils/debug.js +34 -7
  102. package/esm/utils/decodeEntity.js +1 -1
  103. package/esm/utils/dom.js +4 -1
  104. package/esm/utils/errors.js +1 -1
  105. package/esm/utils/escapeHtml.js +1 -1
  106. package/esm/utils/filter-schema.js +1 -1
  107. package/esm/utils/filter.js +1 -1
  108. package/esm/utils/formatDuration.js +1 -1
  109. package/esm/utils/formula.d.ts +0 -1
  110. package/esm/utils/formula.js +6 -9
  111. package/esm/utils/getVariable.js +1 -1
  112. package/esm/utils/grammar.js +1 -1
  113. package/esm/utils/handleAction.js +1 -1
  114. package/esm/utils/helper.d.ts +19 -2
  115. package/esm/utils/helper.js +69 -10
  116. package/esm/utils/highlight.js +1 -1
  117. package/esm/utils/icon.d.ts +4 -2
  118. package/esm/utils/icon.js +3 -2
  119. package/esm/utils/image.js +1 -1
  120. package/esm/utils/index.d.ts +2 -0
  121. package/esm/utils/isPureVariable.js +1 -1
  122. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  123. package/esm/utils/keyToPath.js +1 -1
  124. package/esm/utils/makeSorter.js +1 -1
  125. package/esm/utils/math.d.ts +3 -0
  126. package/esm/utils/math.js +52 -0
  127. package/esm/utils/memoryParse.js +1 -1
  128. package/esm/utils/normalizeLink.js +18 -9
  129. package/esm/utils/normalizeOptions.js +1 -1
  130. package/esm/utils/object.d.ts +7 -0
  131. package/esm/utils/object.js +13 -2
  132. package/esm/utils/offset.js +1 -1
  133. package/esm/utils/offsetParent.js +1 -1
  134. package/esm/utils/optionValueCompare.js +2 -2
  135. package/esm/utils/position.js +1 -1
  136. package/esm/utils/prettyBytes.js +1 -1
  137. package/esm/utils/renderer-event.d.ts +1 -1
  138. package/esm/utils/renderer-event.js +14 -6
  139. package/esm/utils/replaceText.js +1 -1
  140. package/esm/utils/resize-sensor.js +1 -1
  141. package/esm/utils/resolveCondition.js +1 -1
  142. package/esm/utils/resolveVariable.js +1 -1
  143. package/esm/utils/resolveVariableAndFilter.js +1 -1
  144. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  145. package/esm/utils/scrollPosition.js +1 -1
  146. package/esm/utils/string2regExp.js +1 -1
  147. package/esm/utils/stripNumber.js +1 -1
  148. package/esm/utils/style-helper.js +1 -1
  149. package/esm/utils/style.js +1 -1
  150. package/esm/utils/toNumber.js +1 -1
  151. package/esm/utils/tokenize.js +1 -1
  152. package/esm/utils/tpl-builtin.js +1 -1
  153. package/esm/utils/tpl-lodash.js +1 -1
  154. package/esm/utils/tpl.js +1 -1
  155. package/esm/utils/uncontrollable.js +1 -1
  156. package/esm/utils/validations.js +1 -1
  157. package/lib/Root.js +10 -7
  158. package/lib/RootRenderer.d.ts +1 -1
  159. package/lib/RootRenderer.js +11 -8
  160. package/lib/SchemaRenderer.js +13 -6
  161. package/lib/Scoped.d.ts +4 -1
  162. package/lib/Scoped.js +19 -13
  163. package/lib/StatusScoped.js +5 -2
  164. package/lib/WithRootStore.d.ts +4 -24
  165. package/lib/WithRootStore.js +15 -4
  166. package/lib/WithStore.js +27 -17
  167. package/lib/actions/Action.d.ts +1 -0
  168. package/lib/actions/Action.js +70 -45
  169. package/lib/actions/AjaxAction.d.ts +6 -8
  170. package/lib/actions/AjaxAction.js +20 -18
  171. package/lib/actions/BreakAction.js +1 -1
  172. package/lib/actions/BroadcastAction.js +1 -1
  173. package/lib/actions/CmptAction.d.ts +1 -2
  174. package/lib/actions/CmptAction.js +47 -32
  175. package/lib/actions/ContinueAction.js +1 -1
  176. package/lib/actions/CopyAction.js +1 -1
  177. package/lib/actions/CustomAction.js +9 -5
  178. package/lib/actions/DialogAction.d.ts +2 -0
  179. package/lib/actions/DialogAction.js +39 -23
  180. package/lib/actions/DrawerAction.js +4 -4
  181. package/lib/actions/EmailAction.js +1 -1
  182. package/lib/actions/LinkAction.js +1 -1
  183. package/lib/actions/LoopAction.js +1 -1
  184. package/lib/actions/PageAction.js +1 -1
  185. package/lib/actions/ParallelAction.js +1 -1
  186. package/lib/actions/StatusAction.d.ts +15 -0
  187. package/lib/actions/StatusAction.js +53 -0
  188. package/lib/actions/SwitchAction.js +1 -1
  189. package/lib/actions/ToastAction.js +1 -1
  190. package/lib/actions/index.d.ts +1 -0
  191. package/lib/components/CustomStyle.js +1 -1
  192. package/lib/components/LazyComponent.js +12 -14
  193. package/lib/components/Overlay.js +15 -14
  194. package/lib/components/PopOver.js +12 -10
  195. package/lib/env.js +4 -1
  196. package/lib/envOverwrite.js +1 -1
  197. package/lib/factory.js +11 -9
  198. package/lib/index.d.ts +3 -1
  199. package/lib/index.js +26 -19
  200. package/lib/locale.js +6 -3
  201. package/lib/polyfills.d.ts +3 -0
  202. package/lib/polyfills.js +20 -0
  203. package/lib/renderers/Form.d.ts +7 -7
  204. package/lib/renderers/Form.js +194 -135
  205. package/lib/renderers/Item.d.ts +82 -77
  206. package/lib/renderers/Item.js +126 -104
  207. package/lib/renderers/Options.js +10 -5
  208. package/lib/renderers/Placeholder.js +1 -1
  209. package/lib/renderers/builtin.js +1 -1
  210. package/lib/renderers/register.js +1 -1
  211. package/lib/renderers/wrapControl.d.ts +4 -24
  212. package/lib/renderers/wrapControl.js +143 -88
  213. package/lib/store/app.js +44 -3
  214. package/lib/store/combo.d.ts +564 -1892
  215. package/lib/store/combo.js +9 -2
  216. package/lib/store/crud.d.ts +4 -2
  217. package/lib/store/crud.js +17 -4
  218. package/lib/store/form.d.ts +182 -882
  219. package/lib/store/form.js +81 -79
  220. package/lib/store/formItem.d.ts +6 -2
  221. package/lib/store/formItem.js +19 -3
  222. package/lib/store/iRenderer.js +9 -5
  223. package/lib/store/index.js +1 -1
  224. package/lib/store/list.d.ts +1 -0
  225. package/lib/store/list.js +8 -2
  226. package/lib/store/manager.js +1 -1
  227. package/lib/store/modal.js +1 -1
  228. package/lib/store/node.js +1 -1
  229. package/lib/store/pagination.js +1 -1
  230. package/lib/store/root.js +9 -5
  231. package/lib/store/service.js +17 -12
  232. package/lib/store/status.js +1 -1
  233. package/lib/store/table.d.ts +604 -2020
  234. package/lib/store/table.js +85 -55
  235. package/lib/store/table2.d.ts +49 -0
  236. package/lib/store/table2.js +36 -3
  237. package/lib/theme.js +6 -3
  238. package/lib/types.d.ts +22 -5
  239. package/lib/utils/Animation.js +1 -1
  240. package/lib/utils/ColorScale.js +1 -1
  241. package/lib/utils/DataSchema.d.ts +3 -2
  242. package/lib/utils/DataSchema.js +27 -7
  243. package/lib/utils/DataScope.d.ts +10 -3
  244. package/lib/utils/DataScope.js +50 -11
  245. package/lib/utils/RootClose.js +1 -1
  246. package/lib/utils/SimpleMap.js +1 -1
  247. package/lib/utils/api.d.ts +2 -2
  248. package/lib/utils/api.js +151 -111
  249. package/lib/utils/arraySlice.d.ts +1 -0
  250. package/lib/utils/arraySlice.js +80 -0
  251. package/lib/utils/attachmentAdpator.js +1 -1
  252. package/lib/utils/autobind.js +1 -1
  253. package/lib/utils/columnsSplit.js +8 -6
  254. package/lib/utils/dataMapping.js +29 -19
  255. package/lib/utils/date.js +1 -1
  256. package/lib/utils/debug.d.ts +2 -0
  257. package/lib/utils/debug.js +61 -33
  258. package/lib/utils/decodeEntity.js +1 -1
  259. package/lib/utils/dom.js +10 -5
  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.d.ts +0 -1
  266. package/lib/utils/formula.js +6 -10
  267. package/lib/utils/getVariable.js +1 -1
  268. package/lib/utils/grammar.js +1 -1
  269. package/lib/utils/handleAction.js +1 -1
  270. package/lib/utils/helper.d.ts +19 -2
  271. package/lib/utils/helper.js +70 -9
  272. package/lib/utils/highlight.js +8 -9
  273. package/lib/utils/icon.d.ts +4 -2
  274. package/lib/utils/icon.js +12 -10
  275. package/lib/utils/image.js +1 -1
  276. package/lib/utils/index.d.ts +2 -0
  277. package/lib/utils/isPureVariable.js +1 -1
  278. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  279. package/lib/utils/keyToPath.js +1 -1
  280. package/lib/utils/makeSorter.js +1 -1
  281. package/lib/utils/math.d.ts +3 -0
  282. package/lib/utils/math.js +58 -0
  283. package/lib/utils/memoryParse.js +1 -1
  284. package/lib/utils/normalizeLink.js +18 -9
  285. package/lib/utils/normalizeOptions.js +1 -1
  286. package/lib/utils/object.d.ts +7 -0
  287. package/lib/utils/object.js +13 -1
  288. package/lib/utils/offset.js +1 -1
  289. package/lib/utils/offsetParent.js +1 -1
  290. package/lib/utils/optionValueCompare.js +7 -3
  291. package/lib/utils/position.js +1 -1
  292. package/lib/utils/prettyBytes.js +1 -1
  293. package/lib/utils/renderer-event.d.ts +1 -1
  294. package/lib/utils/renderer-event.js +13 -5
  295. package/lib/utils/replaceText.js +1 -1
  296. package/lib/utils/resize-sensor.js +1 -1
  297. package/lib/utils/resolveCondition.js +1 -1
  298. package/lib/utils/resolveVariable.js +1 -1
  299. package/lib/utils/resolveVariableAndFilter.js +1 -1
  300. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  301. package/lib/utils/scrollPosition.js +1 -1
  302. package/lib/utils/string2regExp.js +1 -1
  303. package/lib/utils/stripNumber.js +1 -1
  304. package/lib/utils/style-helper.js +1 -1
  305. package/lib/utils/style.js +1 -1
  306. package/lib/utils/toNumber.js +1 -1
  307. package/lib/utils/tokenize.js +1 -1
  308. package/lib/utils/tpl-builtin.js +1 -1
  309. package/lib/utils/tpl-lodash.js +1 -1
  310. package/lib/utils/tpl.js +1 -1
  311. package/lib/utils/uncontrollable.js +1 -1
  312. package/lib/utils/validations.js +1 -1
  313. package/package.json +9 -4
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -870,11 +870,11 @@ var autobind = autobind$1.autobindMethod;
870
870
  var bulkBindFunctions = function (context, funNames) {
871
871
  funNames.forEach(function (key) { return (context[key] = context[key].bind(context)); });
872
872
  };
873
- function sortArray(items, field, dir) {
873
+ function sortArray(items, field, dir, fieldGetter) {
874
874
  return items.sort(function (a, b) {
875
875
  var ret;
876
- var a1 = a[field];
877
- var b1 = b[field];
876
+ var a1 = fieldGetter ? fieldGetter(a, field) : a[field];
877
+ var b1 = fieldGetter ? fieldGetter(b, field) : b[field];
878
878
  if (typeof a1 === 'number' && typeof b1 === 'number') {
879
879
  ret = a1 < b1 ? -1 : a1 === b1 ? 0 : 1;
880
880
  }
@@ -897,11 +897,12 @@ function qsstringify(data, options, keepEmptyArray) {
897
897
  arrayFormat: 'indices',
898
898
  encodeValuesOnly: true
899
899
  }; }
900
- // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;只转换一层
901
- keepEmptyArray &&
902
- Object.keys(data).forEach(function (key) {
903
- Array.isArray(data[key]) && !data[key].length && (data[key] = '');
900
+ // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;
901
+ if (keepEmptyArray) {
902
+ data = JSONValueMap(data, function (value) {
903
+ return Array.isArray(value) && !value.length ? '' : value;
904
904
  });
905
+ }
905
906
  return qs__default["default"].stringify(data, options);
906
907
  }
907
908
  function qsparse(data, options) {
@@ -970,6 +971,7 @@ function chainFunctions() {
970
971
  function chainEvents(props, schema) {
971
972
  var ret = {};
972
973
  Object.keys(props).forEach(function (key) {
974
+ var _a;
973
975
  if (key.substr(0, 2) === 'on' &&
974
976
  typeof props[key] === 'function' &&
975
977
  typeof schema[key] === 'function' &&
@@ -983,7 +985,7 @@ function chainEvents(props, schema) {
983
985
  }
984
986
  }
985
987
  else {
986
- ret[key] = props[key];
988
+ ret[key] = (_a = props[key]) !== null && _a !== void 0 ? _a : schema[key];
987
989
  }
988
990
  });
989
991
  return ret;
@@ -1051,6 +1053,17 @@ var SkipOperation = /** @class */ (function (_super) {
1051
1053
  }
1052
1054
  return SkipOperation;
1053
1055
  }(Error));
1056
+ var ValidateError = /** @class */ (function (_super) {
1057
+ tslib.__extends(ValidateError, _super);
1058
+ function ValidateError(message, error) {
1059
+ var _this = _super.call(this) || this;
1060
+ _this.name = 'ValidateError';
1061
+ _this.message = message;
1062
+ _this.detail = error;
1063
+ return _this;
1064
+ }
1065
+ return ValidateError;
1066
+ }(Error));
1054
1067
  /**
1055
1068
  * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127
1056
1069
  * @param obj
@@ -1133,6 +1146,7 @@ function resolveValueByName(data, name, canAccessSuper) {
1133
1146
  // 统一的获取 value 值方法
1134
1147
  function getPropValue(props, getter, canAccessSuper) {
1135
1148
  var _a, _b;
1149
+ if (canAccessSuper === void 0) { canAccessSuper = props.canAccessSuperData; }
1136
1150
  var name = props.name, value = props.value, data = props.data, defaultValue = props.defaultValue;
1137
1151
  return ((_b = (_a = value !== null && value !== void 0 ? value : getter === null || getter === void 0 ? void 0 : getter(props)) !== null && _a !== void 0 ? _a : resolveValueByName(data, name, canAccessSuper)) !== null && _b !== void 0 ? _b : defaultValue);
1138
1152
  }
@@ -1249,6 +1263,51 @@ function JSONTraverse(json, mapper) {
1249
1263
  }
1250
1264
  });
1251
1265
  }
1266
+ /**
1267
+ * 每层都会执行,返回新的对象,新对象不会递归下去
1268
+ * @param json
1269
+ * @param mapper
1270
+ * @returns
1271
+ */
1272
+ function JSONValueMap(json, mapper, stack) {
1273
+ if (stack === void 0) { stack = []; }
1274
+ if (!isPlainObject__default["default"](json) && !Array.isArray(json)) {
1275
+ return json;
1276
+ }
1277
+ var iterator = function (origin, key, host, stack) {
1278
+ if (stack === void 0) { stack = []; }
1279
+ var maped = mapper(origin, key, host, stack);
1280
+ if (maped === origin && (isPlainObject__default["default"](origin) || Array.isArray(origin))) {
1281
+ return JSONValueMap(origin, mapper, stack);
1282
+ }
1283
+ return maped;
1284
+ };
1285
+ if (Array.isArray(json)) {
1286
+ var flag_1 = false;
1287
+ var mapped = json.map(function (value, index) {
1288
+ var result = iterator(value, index, json, [json].concat(stack));
1289
+ if (result !== value) {
1290
+ flag_1 = true;
1291
+ return result;
1292
+ }
1293
+ return value;
1294
+ });
1295
+ return flag_1 ? mapped : json;
1296
+ }
1297
+ var flag = false;
1298
+ var toUpdate = {};
1299
+ Object.keys(json).forEach(function (key) {
1300
+ var value = json[key];
1301
+ var result = iterator(value, key, json, [json].concat(stack));
1302
+ if (result !== value) {
1303
+ flag = true;
1304
+ toUpdate[key] = result;
1305
+ return;
1306
+ }
1307
+ });
1308
+ return flag
1309
+ ? tslib.__assign(tslib.__assign({}, json), toUpdate) : json;
1310
+ }
1252
1311
  function convertArrayValueToMoment(value, types, mom) {
1253
1312
  if (value.length === 0)
1254
1313
  return mom;
@@ -1312,7 +1371,9 @@ exports.string2regExp = string2regExp.string2regExp;
1312
1371
  exports.getVariable = getVariable.getVariable;
1313
1372
  exports.keyToPath = keyToPath.keyToPath;
1314
1373
  exports.JSONTraverse = JSONTraverse;
1374
+ exports.JSONValueMap = JSONValueMap;
1315
1375
  exports.SkipOperation = SkipOperation;
1376
+ exports.ValidateError = ValidateError;
1316
1377
  exports.__uri = __uri;
1317
1378
  exports.anyChanged = anyChanged;
1318
1379
  exports.autobind = autobind;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -7,12 +7,11 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- var React = require('react');
11
-
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+ require('react');
15
11
 
12
+ var __react_jsx__ = require('react');
13
+ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
14
+ (__react_jsx__["default"] || __react_jsx__).Fragment;
16
15
  function highlight(text, input, hlClassName) {
17
16
  if (hlClassName === void 0) { hlClassName = 'is-matched'; }
18
17
  if (!input) {
@@ -29,13 +28,13 @@ function highlight(text, input, hlClassName) {
29
28
  reg.lastIndex = 0;
30
29
  while ((match = reg.exec(text))) {
31
30
  var prev = text.substring(start, match.index);
32
- prev && dom.push(React__default["default"].createElement("span", { key: dom.length }, prev));
31
+ prev && dom.push(_J$X_("span", { key: dom.length }, prev));
33
32
  match[0] &&
34
- dom.push(React__default["default"].createElement("span", { className: hlClassName, key: dom.length }, match[0]));
33
+ dom.push(_J$X_("span", { className: hlClassName, key: dom.length }, match[0]));
35
34
  start = match.index + match[0].length;
36
35
  }
37
36
  var rest = text.substring(start);
38
- rest && dom.push(React__default["default"].createElement("span", { key: dom.length }, rest));
37
+ rest && dom.push(_J$X_("span", { key: dom.length }, rest));
39
38
  // const parts = text.split(reg);
40
39
  // parts.forEach((text: string, index) => {
41
40
  // text && dom.push(<span key={index}>{text}</span>);
@@ -3,19 +3,21 @@
3
3
  */
4
4
  import React from 'react';
5
5
  import { ClassNamesFn } from '../theme';
6
- export interface IconCheckedSchema {
6
+ interface IconCheckedSchema {
7
7
  id: string;
8
8
  name?: string;
9
9
  svg?: string;
10
10
  }
11
- export interface IconCheckedSchemaNew {
11
+ interface IconCheckedSchemaNew {
12
12
  type: 'icon';
13
13
  icon: IconCheckedSchema;
14
14
  }
15
15
  /**
16
+ * 废弃,不建议使用
16
17
  * 判断字符串来生成 i 或 img
17
18
  * @param icon icon 设置
18
19
  * @param className 内部用的 className
19
20
  * @param classNameProp amis 配置里设置的 className
20
21
  */
21
22
  export declare const generateIcon: (cx: ClassNamesFn, icon?: string | IconCheckedSchema | React.ReactNode | IconCheckedSchemaNew, className?: string, classNameProp?: string) => React.JSX.Element | null | undefined;
23
+ export {};
package/lib/utils/icon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -8,23 +8,25 @@
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  var React = require('react');
11
- var lodash = require('lodash');
11
+ var isObject = require('lodash/isObject');
12
12
 
13
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
14
 
15
15
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
+ var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
16
17
 
18
+ var __react_jsx__ = require('react');
19
+ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
20
+ (__react_jsx__["default"] || __react_jsx__).Fragment;
17
21
  /**
18
- * @file 图标支持的公共方法,主要是支持自动识别地址和 icon-font
19
- */
20
- /**
22
+ * 废弃,不建议使用
21
23
  * 判断字符串来生成 i 或 img
22
24
  * @param icon icon 设置
23
25
  * @param className 内部用的 className
24
26
  * @param classNameProp amis 配置里设置的 className
25
27
  */
26
28
  var generateIcon = function (cx, icon, className, classNameProp) {
27
- if (lodash.isObject(icon) &&
29
+ if (isObject__default["default"](icon) &&
28
30
  icon.type === 'icon' &&
29
31
  icon.icon) {
30
32
  icon = icon.icon;
@@ -33,16 +35,16 @@ var generateIcon = function (cx, icon, className, classNameProp) {
33
35
  return icon;
34
36
  }
35
37
  if (typeof icon !== 'string') {
36
- if (lodash.isObject(icon) &&
38
+ if (isObject__default["default"](icon) &&
37
39
  typeof icon.id === 'string' &&
38
40
  icon.id.startsWith('svg-')) {
39
- return (React__default["default"].createElement("svg", { className: cx('icon', 'icon-object', className, classNameProp) },
40
- React__default["default"].createElement("use", { xlinkHref: "#".concat(icon.id.replace(/^svg-/, '')) })));
41
+ return (_J$X_("svg", { className: cx('icon', 'icon-object', className, classNameProp) },
42
+ _J$X_("use", { xlinkHref: "#".concat(icon.id.replace(/^svg-/, '')) })));
41
43
  }
42
44
  return;
43
45
  }
44
46
  var isURLIcon = (icon === null || icon === void 0 ? void 0 : icon.indexOf('.')) !== -1;
45
- return icon ? (isURLIcon ? (React__default["default"].createElement("img", { className: cx(className, classNameProp), src: icon, key: icon })) : (React__default["default"].createElement("i", { className: cx(className, icon, classNameProp), key: icon }))) : null;
47
+ return icon ? (isURLIcon ? (_J$X_("img", { className: cx(className, classNameProp), src: icon, key: icon })) : (_J$X_("i", { className: cx(className, icon, classNameProp), key: icon }))) : null;
46
48
  };
47
49
 
48
50
  exports.generateIcon = generateIcon;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -54,5 +54,7 @@ export * from './toNumber';
54
54
  export * from './decodeEntity';
55
55
  export * from './style-helper';
56
56
  export * from './resolveCondition';
57
+ export * from './arraySlice';
58
+ export * from './math';
57
59
  import animation from './Animation';
58
60
  export { animation };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -0,0 +1,3 @@
1
+ export declare function safeAdd(arg1: number, arg2: number): number;
2
+ export declare function safeSub(arg1: number, arg2: number): number;
3
+ export declare function numberFormatter(num: number | string, precision?: number): string;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * amis-core v3.3.0
3
+ * Copyright 2018-2023 fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ function safeAdd(arg1, arg2) {
11
+ var digits1, digits2, maxDigits;
12
+ try {
13
+ digits1 = arg1.toString().split('.')[1].length;
14
+ }
15
+ catch (e) {
16
+ digits1 = 0;
17
+ }
18
+ try {
19
+ digits2 = arg2.toString().split('.')[1].length;
20
+ }
21
+ catch (e) {
22
+ digits2 = 0;
23
+ }
24
+ maxDigits = Math.pow(10, Math.max(digits1, digits2));
25
+ return (arg1 * maxDigits + arg2 * maxDigits) / maxDigits;
26
+ }
27
+ //减
28
+ function safeSub(arg1, arg2) {
29
+ var digits1, digits2, maxDigits;
30
+ try {
31
+ digits1 = arg1.toString().split('.')[1].length;
32
+ }
33
+ catch (e) {
34
+ digits1 = 0;
35
+ }
36
+ try {
37
+ digits2 = arg2.toString().split('.')[1].length;
38
+ }
39
+ catch (e) {
40
+ digits2 = 0;
41
+ }
42
+ maxDigits = Math.pow(10, Math.max(digits1, digits2));
43
+ return (arg1 * maxDigits - arg2 * maxDigits) / maxDigits;
44
+ }
45
+ function numberFormatter(num, precision) {
46
+ if (precision === void 0) { precision = 0; }
47
+ var ZERO = 0;
48
+ var number = +num;
49
+ if (typeof number === 'number' && !isNaN(number)) {
50
+ var regexp = precision ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(\d{3})+$)/g;
51
+ return number.toFixed(precision).replace(regexp, '$1,');
52
+ }
53
+ return ZERO.toFixed(precision);
54
+ }
55
+
56
+ exports.numberFormatter = numberFormatter;
57
+ exports.safeAdd = safeAdd;
58
+ exports.safeSub = safeSub;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -18,13 +18,21 @@ var normalizeLink = function (to, location) {
18
18
  }
19
19
  var idx = to.indexOf('?');
20
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;
21
+ var pathname = to;
22
+ var search = '';
23
+ var hash = location.hash;
24
+ // host?a=a#b 的情况
25
+ if (idx < idx2) {
26
+ pathname = ~idx ? to.substring(0, idx) : ~idx2 ? to.substring(0, idx2) : to;
27
+ hash = ~idx2 ? to.substring(idx2) : location.hash;
28
+ search = ~idx ? to.substring(idx, ~idx2 ? idx2 : undefined) : '';
29
+ }
30
+ // host#b?a=a 的情况
31
+ else if (idx > idx2) {
32
+ pathname = ~idx2 ? to.substring(0, idx2) : ~idx ? to.substring(0, idx) : to;
33
+ hash = ~idx2 ? to.substring(idx2, ~idx ? idx : undefined) : location.hash;
34
+ search = ~idx ? to.substring(idx) : '';
35
+ }
28
36
  if (!pathname) {
29
37
  pathname = location.pathname;
30
38
  }
@@ -41,7 +49,8 @@ var normalizeLink = function (to, location) {
41
49
  }
42
50
  pathname = paths.concat(pathname).join('/');
43
51
  }
44
- return pathname + search + hash;
52
+ var rest = idx < idx2 ? search + hash : hash + search;
53
+ return pathname + rest;
45
54
  };
46
55
 
47
56
  exports.normalizeLink = normalizeLink;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -5,6 +5,13 @@ export declare function createObject(superProps?: {
5
5
  }, properties?: any): object;
6
6
  export declare function extractObjectChain(value: any): object[];
7
7
  export declare function createObjectFromChain(chain: Array<object>): object;
8
+ /**
9
+ * 向最近一层插入新链
10
+ * @param obj
11
+ * @param value
12
+ * @returns
13
+ */
14
+ export declare function injectObjectChain(obj: any, value: any): object;
8
15
  export declare function cloneObject(target: any, persistOwnProps?: boolean): any;
9
16
  export declare function extendObject(target: any, src?: any, persistOwnProps?: boolean): any;
10
17
  export declare function isObject(obj: any): any;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -58,6 +58,17 @@ function createObjectFromChain(chain) {
58
58
  }), value);
59
59
  });
60
60
  }
61
+ /**
62
+ * 向最近一层插入新链
63
+ * @param obj
64
+ * @param value
65
+ * @returns
66
+ */
67
+ function injectObjectChain(obj, value) {
68
+ var chain = extractObjectChain(obj);
69
+ chain.splice(chain.length - 1, 0, value);
70
+ return createObjectFromChain(chain);
71
+ }
61
72
  function cloneObject(target, persistOwnProps) {
62
73
  if (persistOwnProps === void 0) { persistOwnProps = true; }
63
74
  var obj = target && target.__super
@@ -178,6 +189,7 @@ exports.createObjectFromChain = createObjectFromChain;
178
189
  exports.deleteVariable = deleteVariable;
179
190
  exports.extendObject = extendObject;
180
191
  exports.extractObjectChain = extractObjectChain;
192
+ exports.injectObjectChain = injectObjectChain;
181
193
  exports.isObject = isObject;
182
194
  exports.pickValues = pickValues;
183
195
  exports.setVariable = setVariable;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -8,9 +8,13 @@
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  require('./helper.js');
11
- var lodash = require('lodash');
11
+ var isEqual = require('lodash/isEqual');
12
12
  var object = require('./object.js');
13
13
 
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
17
+
14
18
  function matchOptionValue(a, b, valueField) {
15
19
  if (valueField === void 0) { valueField = 'value'; }
16
20
  // a 可能为 Option, 此时需要取其value
@@ -19,7 +23,7 @@ function matchOptionValue(a, b, valueField) {
19
23
  : a;
20
24
  var bValue = b[valueField || 'value'];
21
25
  return object.isObject(aValue)
22
- ? lodash.isEqual(aValue, bValue)
26
+ ? isEqual__default["default"](aValue, bValue)
23
27
  : // 当值均为 undefined 时,不应该判定相等
24
28
  aValue !== undefined &&
25
29
  bValue !== undefined &&
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -48,7 +48,7 @@ export interface RendererEventContext {
48
48
  [propName: string]: any;
49
49
  }
50
50
  export declare function createRendererEvent<T extends RendererEventContext>(type: string, context: T): RendererEvent<T>;
51
- export declare const bindEvent: (renderer: any) => (() => void) | undefined;
51
+ export declare const bindEvent: (renderer: any) => ((eventName?: string) => void) | undefined;
52
52
  export declare function dispatchEvent(e: string | React.MouseEvent<any>, renderer: React.Component<RendererProps>, scoped: IScopedContext, data: any, broadcast?: RendererEvent<any>): Promise<RendererEvent<any> | void>;
53
53
  export declare const getRendererEventListeners: () => RendererEventListener[];
54
54
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -20,7 +20,7 @@ var rendererEventListeners = [];
20
20
  // 创建渲染器事件对象
21
21
  function createRendererEvent(type, context) {
22
22
  var rendererEvent = {
23
- context: context,
23
+ context: object.extendObject({ pristineData: context.data }, context),
24
24
  type: type,
25
25
  prevented: false,
26
26
  stoped: false,
@@ -33,6 +33,9 @@ function createRendererEvent(type, context) {
33
33
  get data() {
34
34
  return rendererEvent.context.data;
35
35
  },
36
+ get pristineData() {
37
+ return rendererEvent.context.pristineData;
38
+ },
36
39
  setData: function (data) {
37
40
  rendererEvent.context.data = data;
38
41
  }
@@ -90,8 +93,13 @@ var bindEvent = function (renderer) {
90
93
  }
91
94
  finally { if (e_1) throw e_1.error; }
92
95
  }
93
- return function () {
94
- rendererEventListeners = rendererEventListeners.filter(function (item) { return item.renderer !== renderer; });
96
+ return function (eventName) {
97
+ // eventName用来避免过滤广播事件
98
+ rendererEventListeners = rendererEventListeners.filter(function (item) {
99
+ return item.renderer !== renderer && eventName !== undefined
100
+ ? item.type !== eventName
101
+ : true;
102
+ });
95
103
  };
96
104
  }
97
105
  return undefined;
@@ -141,7 +149,7 @@ function dispatchEvent(e, renderer, scoped, data, broadcast) {
141
149
  checkExecuted = function () {
142
150
  executedCount++;
143
151
  if (executedCount === listeners.length) {
144
- unbindEvent === null || unbindEvent === void 0 ? void 0 : unbindEvent();
152
+ unbindEvent === null || unbindEvent === void 0 ? void 0 : unbindEvent(eventName);
145
153
  }
146
154
  };
147
155
  _loop_2 = function (listener) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5