amis 1.3.4 → 1.4.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 (270) hide show
  1. package/README.md +2 -1
  2. package/lib/RootRenderer.js +4 -1
  3. package/lib/RootRenderer.js.map +2 -2
  4. package/lib/components/Badge.d.ts +13 -1
  5. package/lib/components/Badge.js +16 -2
  6. package/lib/components/Badge.js.map +2 -2
  7. package/lib/components/Checkbox.d.ts +1 -1
  8. package/lib/components/Checkbox.js +1 -1
  9. package/lib/components/Checkbox.js.map +2 -2
  10. package/lib/components/Drawer.js +1 -1
  11. package/lib/components/Drawer.js.map +2 -2
  12. package/lib/components/Modal.js +1 -1
  13. package/lib/components/Modal.js.map +2 -2
  14. package/lib/components/RichText.d.ts +0 -3
  15. package/lib/components/RichText.js +1 -22
  16. package/lib/components/RichText.js.map +2 -2
  17. package/lib/components/Select.d.ts +7 -0
  18. package/lib/components/Select.js.map +2 -2
  19. package/lib/components/Steps.d.ts +3 -3
  20. package/lib/components/Steps.js.map +1 -1
  21. package/lib/components/WithRemoteConfig.d.ts +8 -0
  22. package/lib/components/WithRemoteConfig.js +28 -2
  23. package/lib/components/WithRemoteConfig.js.map +2 -2
  24. package/lib/components/condition-builder/Field.js +0 -1
  25. package/lib/components/condition-builder/Field.js.map +2 -2
  26. package/lib/components/condition-builder/Value.js +2 -1
  27. package/lib/components/condition-builder/Value.js.map +2 -2
  28. package/lib/components/condition-builder/types.d.ts +5 -0
  29. package/lib/components/condition-builder/types.js.map +1 -1
  30. package/lib/env.d.ts +1 -1
  31. package/lib/env.js.map +1 -1
  32. package/lib/factory.d.ts +6 -2
  33. package/lib/factory.js +9 -4
  34. package/lib/factory.js.map +2 -2
  35. package/lib/index.d.ts +1 -0
  36. package/lib/index.js +2 -1
  37. package/lib/index.js.map +2 -2
  38. package/lib/locale/de-DE.js +1 -0
  39. package/lib/locale/de-DE.js.map +2 -2
  40. package/lib/locale/en-US.js +2 -1
  41. package/lib/locale/en-US.js.map +2 -2
  42. package/lib/locale/zh-CN.js +2 -1
  43. package/lib/locale/zh-CN.js.map +2 -2
  44. package/lib/renderers/Action.d.ts +6 -0
  45. package/lib/renderers/Action.js +9 -1
  46. package/lib/renderers/Action.js.map +2 -2
  47. package/lib/renderers/CRUD.d.ts +2 -2
  48. package/lib/renderers/CRUD.js +13 -21
  49. package/lib/renderers/CRUD.js.map +2 -2
  50. package/lib/renderers/Card.js +11 -11
  51. package/lib/renderers/Card.js.map +2 -2
  52. package/lib/renderers/Collapse.d.ts +1 -1
  53. package/lib/renderers/Collapse.js +5 -1
  54. package/lib/renderers/Collapse.js.map +2 -2
  55. package/lib/renderers/Copyable.js +30 -28
  56. package/lib/renderers/Copyable.js.map +2 -2
  57. package/lib/renderers/Dialog.d.ts +0 -252
  58. package/lib/renderers/Dialog.js +3 -2
  59. package/lib/renderers/Dialog.js.map +2 -2
  60. package/lib/renderers/Drawer.js +2 -1
  61. package/lib/renderers/Drawer.js.map +2 -2
  62. package/lib/renderers/DropDownButton.d.ts +4 -0
  63. package/lib/renderers/DropDownButton.js +2 -2
  64. package/lib/renderers/DropDownButton.js.map +2 -2
  65. package/lib/renderers/Form/ButtonGroupSelect.js +3 -0
  66. package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
  67. package/lib/renderers/Form/Combo.d.ts +2 -0
  68. package/lib/renderers/Form/Combo.js +16 -1
  69. package/lib/renderers/Form/Combo.js.map +2 -2
  70. package/lib/renderers/Form/DiffEditor.d.ts +0 -2
  71. package/lib/renderers/Form/Editor.d.ts +0 -2
  72. package/lib/renderers/Form/Editor.js +1 -1
  73. package/lib/renderers/Form/Editor.js.map +2 -2
  74. package/lib/renderers/Form/InputExcel.d.ts +5 -0
  75. package/lib/renderers/Form/InputExcel.js +24 -3
  76. package/lib/renderers/Form/InputExcel.js.map +2 -2
  77. package/lib/renderers/Form/InputImage.d.ts +8 -0
  78. package/lib/renderers/Form/InputImage.js +2 -1
  79. package/lib/renderers/Form/InputImage.js.map +2 -2
  80. package/lib/renderers/Form/InputNumber.d.ts +19 -5
  81. package/lib/renderers/Form/InputNumber.js +69 -7
  82. package/lib/renderers/Form/InputNumber.js.map +2 -2
  83. package/lib/renderers/Form/InputRange.js +7 -2
  84. package/lib/renderers/Form/InputRange.js.map +2 -2
  85. package/lib/renderers/Form/InputTable.d.ts +23 -5
  86. package/lib/renderers/Form/InputTable.js +32 -3
  87. package/lib/renderers/Form/InputTable.js.map +2 -2
  88. package/lib/renderers/Form/NestedSelect.js +2 -3
  89. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  90. package/lib/renderers/Form/Options.js +3 -1
  91. package/lib/renderers/Form/Options.js.map +2 -2
  92. package/lib/renderers/Form/index.js +0 -10
  93. package/lib/renderers/Form/index.js.map +2 -2
  94. package/lib/renderers/Form/wrapControl.js +3 -3
  95. package/lib/renderers/Form/wrapControl.js.map +2 -2
  96. package/lib/renderers/Json.js +5 -1
  97. package/lib/renderers/Json.js.map +2 -2
  98. package/lib/renderers/List.d.ts +5 -0
  99. package/lib/renderers/List.js +20 -14
  100. package/lib/renderers/List.js.map +2 -2
  101. package/lib/renderers/Page.d.ts +6 -0
  102. package/lib/renderers/Page.js +10 -2
  103. package/lib/renderers/Page.js.map +2 -2
  104. package/lib/renderers/Service.d.ts +10 -1
  105. package/lib/renderers/Service.js +85 -3
  106. package/lib/renderers/Service.js.map +2 -2
  107. package/lib/renderers/Steps.d.ts +4 -4
  108. package/lib/renderers/Steps.js +5 -2
  109. package/lib/renderers/Steps.js.map +2 -2
  110. package/lib/renderers/Table/TableBody.d.ts +5 -3
  111. package/lib/renderers/Table/TableBody.js +17 -11
  112. package/lib/renderers/Table/TableBody.js.map +2 -2
  113. package/lib/renderers/Table/TableCell.js +6 -2
  114. package/lib/renderers/Table/TableCell.js.map +2 -2
  115. package/lib/renderers/Table/TableContent.d.ts +3 -1
  116. package/lib/renderers/Table/TableContent.js +6 -2
  117. package/lib/renderers/Table/TableContent.js.map +2 -2
  118. package/lib/renderers/Table/TableRow.d.ts +1 -1
  119. package/lib/renderers/Table/TableRow.js +14 -13
  120. package/lib/renderers/Table/TableRow.js.map +2 -2
  121. package/lib/renderers/Table/index.d.ts +28 -3
  122. package/lib/renderers/Table/index.js +97 -54
  123. package/lib/renderers/Table/index.js.map +2 -2
  124. package/lib/schemaExtend.d.ts +1 -0
  125. package/lib/schemaExtend.js +59 -0
  126. package/lib/schemaExtend.js.map +13 -0
  127. package/lib/store/app.d.ts +0 -1
  128. package/lib/store/combo.d.ts +0 -2
  129. package/lib/store/crud.d.ts +3 -3
  130. package/lib/store/crud.js +41 -36
  131. package/lib/store/crud.js.map +2 -2
  132. package/lib/store/form.d.ts +0 -1
  133. package/lib/store/formItem.js +10 -6
  134. package/lib/store/formItem.js.map +2 -2
  135. package/lib/store/modal.d.ts +1 -1
  136. package/lib/store/modal.js +4 -0
  137. package/lib/store/modal.js.map +2 -2
  138. package/lib/store/root.d.ts +0 -1
  139. package/lib/store/service.d.ts +0 -1
  140. package/lib/store/service.js +0 -13
  141. package/lib/store/service.js.map +2 -2
  142. package/lib/store/table.d.ts +1 -2
  143. package/lib/store/table.js +44 -3
  144. package/lib/store/table.js.map +2 -2
  145. package/lib/themes/ang-ie11.css +278 -17
  146. package/lib/themes/ang.css +278 -17
  147. package/lib/themes/ang.css.map +1 -1
  148. package/lib/themes/antd-ie11.css +278 -17
  149. package/lib/themes/antd.css +278 -17
  150. package/lib/themes/antd.css.map +1 -1
  151. package/lib/themes/cxd-ie11.css +278 -17
  152. package/lib/themes/cxd.css +278 -17
  153. package/lib/themes/cxd.css.map +1 -1
  154. package/lib/themes/dark-ie11.css +278 -17
  155. package/lib/themes/dark.css +278 -17
  156. package/lib/themes/dark.css.map +1 -1
  157. package/lib/themes/default.css +278 -17
  158. package/lib/themes/default.css.map +1 -1
  159. package/lib/utils/api.js +12 -0
  160. package/lib/utils/api.js.map +2 -2
  161. package/lib/utils/attachmentAdpator.d.ts +7 -0
  162. package/lib/utils/attachmentAdpator.js +82 -0
  163. package/lib/utils/attachmentAdpator.js.map +13 -0
  164. package/lib/utils/helper.d.ts +2 -0
  165. package/lib/utils/helper.js +14 -1
  166. package/lib/utils/helper.js.map +2 -2
  167. package/lib/utils/resize-sensor.js +6 -0
  168. package/lib/utils/resize-sensor.js.map +2 -2
  169. package/lib/utils/tpl-builtin.d.ts +1 -0
  170. package/lib/utils/tpl-builtin.js +24 -8
  171. package/lib/utils/tpl-builtin.js.map +2 -2
  172. package/lib/utils/validations.js +62 -5
  173. package/lib/utils/validations.js.map +2 -2
  174. package/package.json +1 -1
  175. package/schema.json +369 -164
  176. package/scss/_properties.scss +6 -0
  177. package/scss/components/_badge.scss +15 -1
  178. package/scss/components/_list.scss +8 -0
  179. package/scss/components/_markdown.scss +266 -0
  180. package/scss/components/_spinner.scss +6 -2
  181. package/scss/components/_table.scss +4 -0
  182. package/scss/components/form/_form.scss +3 -17
  183. package/scss/components/form/_group.scss +4 -0
  184. package/scss/components/form/_nested-select.scss +4 -0
  185. package/scss/components/form/_number.scss +12 -1
  186. package/scss/themes/_common.scss +1 -0
  187. package/sdk/ang-ie11.css +324 -20
  188. package/sdk/ang.css +330 -20
  189. package/sdk/antd-ie11.css +324 -20
  190. package/sdk/antd.css +330 -20
  191. package/sdk/charts.js +15 -15
  192. package/sdk/color-picker.js +65 -69
  193. package/sdk/cropperjs.js +2 -2
  194. package/sdk/cxd-ie11.css +324 -20
  195. package/sdk/cxd.css +330 -20
  196. package/sdk/dark-ie11.css +324 -20
  197. package/sdk/dark.css +330 -20
  198. package/sdk/exceljs.js +1 -1
  199. package/sdk/locale/de-DE.js +1 -0
  200. package/sdk/markdown.js +69 -69
  201. package/sdk/papaparse.js +1 -1
  202. package/sdk/renderers/Form/CityDB.js +1 -1
  203. package/sdk/rest.js +27 -23
  204. package/sdk/rich-text.js +63 -63
  205. package/sdk/sdk-ie11.css +324 -20
  206. package/sdk/sdk.css +330 -20
  207. package/sdk/sdk.js +1146 -1138
  208. package/sdk/thirds/hls.js/hls.js +1 -1
  209. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  210. package/sdk/tinymce.js +57 -57
  211. package/src/RootRenderer.tsx +8 -3
  212. package/src/components/Badge.tsx +41 -6
  213. package/src/components/Checkbox.tsx +5 -2
  214. package/src/components/Drawer.tsx +3 -2
  215. package/src/components/Modal.tsx +3 -2
  216. package/src/components/RichText.tsx +2 -27
  217. package/src/components/Select.tsx +1 -0
  218. package/src/components/Steps.tsx +3 -3
  219. package/src/components/WithRemoteConfig.tsx +37 -2
  220. package/src/components/condition-builder/Field.tsx +1 -2
  221. package/src/components/condition-builder/Value.tsx +3 -0
  222. package/src/components/condition-builder/types.ts +6 -0
  223. package/src/env.tsx +1 -1
  224. package/src/factory.tsx +14 -4
  225. package/src/index.tsx +2 -0
  226. package/src/locale/de-DE.ts +1 -0
  227. package/src/locale/en-US.ts +2 -1
  228. package/src/locale/zh-CN.ts +2 -1
  229. package/src/renderers/Action.tsx +19 -1
  230. package/src/renderers/CRUD.tsx +15 -34
  231. package/src/renderers/Card.tsx +21 -15
  232. package/src/renderers/Collapse.tsx +5 -1
  233. package/src/renderers/Copyable.tsx +46 -44
  234. package/src/renderers/Dialog.tsx +3 -2
  235. package/src/renderers/Drawer.tsx +2 -1
  236. package/src/renderers/DropDownButton.tsx +8 -0
  237. package/src/renderers/Form/ButtonGroupSelect.tsx +3 -0
  238. package/src/renderers/Form/Combo.tsx +7 -0
  239. package/src/renderers/Form/Editor.tsx +19 -20
  240. package/src/renderers/Form/InputExcel.tsx +28 -3
  241. package/src/renderers/Form/InputImage.tsx +23 -8
  242. package/src/renderers/Form/InputNumber.tsx +113 -18
  243. package/src/renderers/Form/InputRange.tsx +5 -2
  244. package/src/renderers/Form/InputTable.tsx +88 -9
  245. package/src/renderers/Form/NestedSelect.tsx +1 -1
  246. package/src/renderers/Form/Options.tsx +3 -1
  247. package/src/renderers/Form/index.tsx +0 -15
  248. package/src/renderers/Form/wrapControl.tsx +2 -2
  249. package/src/renderers/Json.tsx +10 -1
  250. package/src/renderers/List.tsx +32 -19
  251. package/src/renderers/Page.tsx +19 -0
  252. package/src/renderers/Service.tsx +101 -3
  253. package/src/renderers/Steps.tsx +12 -9
  254. package/src/renderers/Table/TableBody.tsx +29 -10
  255. package/src/renderers/Table/TableCell.tsx +15 -1
  256. package/src/renderers/Table/TableContent.tsx +7 -1
  257. package/src/renderers/Table/TableRow.tsx +18 -17
  258. package/src/renderers/Table/index.tsx +117 -28
  259. package/src/schemaExtend.ts +66 -0
  260. package/src/store/crud.ts +34 -38
  261. package/src/store/formItem.ts +10 -6
  262. package/src/store/modal.ts +4 -0
  263. package/src/store/service.ts +0 -19
  264. package/src/store/table.ts +48 -0
  265. package/src/utils/api.ts +11 -0
  266. package/src/utils/attachmentAdpator.ts +90 -0
  267. package/src/utils/helper.ts +15 -0
  268. package/src/utils/resize-sensor.ts +7 -0
  269. package/src/utils/tpl-builtin.ts +36 -17
  270. package/src/utils/validations.ts +80 -12
@@ -224,8 +224,14 @@ var Table = /** @class */ (function (_super) {
224
224
  // todo
225
225
  onAction(e, action, ctx);
226
226
  };
227
- Table.prototype.handleCheck = function (item) {
228
- item.toggle();
227
+ Table.prototype.handleCheck = function (item, value, shift) {
228
+ var store = this.props.store;
229
+ if (shift) {
230
+ store.toggleShift(item);
231
+ }
232
+ else {
233
+ item.toggle();
234
+ }
229
235
  this.syncSelected();
230
236
  };
231
237
  Table.prototype.handleCheckAll = function () {
@@ -669,9 +675,12 @@ var Table = /** @class */ (function (_super) {
669
675
  document.removeEventListener('mouseup', this.handleColResizeMouseUp);
670
676
  };
671
677
  Table.prototype.renderHeading = function () {
672
- var _a = this.props, title = _a.title, store = _a.store, hideQuickSaveBtn = _a.hideQuickSaveBtn, data = _a.data, cx = _a.classnames, saveImmediately = _a.saveImmediately, headingClassName = _a.headingClassName, __ = _a.translate;
678
+ var _a = this.props, title = _a.title, store = _a.store, hideQuickSaveBtn = _a.hideQuickSaveBtn, data = _a.data, cx = _a.classnames, saveImmediately = _a.saveImmediately, headingClassName = _a.headingClassName, quickSaveApi = _a.quickSaveApi, __ = _a.translate;
673
679
  if (title ||
674
- (!saveImmediately && store.modified && !hideQuickSaveBtn) ||
680
+ (quickSaveApi &&
681
+ !saveImmediately &&
682
+ store.modified &&
683
+ !hideQuickSaveBtn) ||
675
684
  store.moved) {
676
685
  return (react_1.default.createElement("div", { className: cx('Table-heading', headingClassName), key: "heading" }, !saveImmediately && store.modified && !hideQuickSaveBtn ? (react_1.default.createElement("span", null,
677
686
  __('Table.modified', {
@@ -757,14 +766,18 @@ var Table = /** @class */ (function (_super) {
757
766
  props.style = props.style || {};
758
767
  props.style.width = column.pristine.width;
759
768
  }
769
+ if (column.pristine.align) {
770
+ props.style = props.style || {};
771
+ props.style.textAlign = column.pristine.align;
772
+ }
760
773
  var resizeLine = (react_1.default.createElement("div", { className: cx('Table-content-colDragLine'), key: "resize-" + column.index, onMouseDown: this.handleColResizeMouseDown }));
761
- return (react_1.default.createElement("th", (0, tslib_1.__assign)({}, props, { className: cx(props ? props.className : '', column.pristine.className, {
774
+ return (react_1.default.createElement("th", (0, tslib_1.__assign)({}, props, { className: cx(props ? props.className : '', {
762
775
  'TableCell--sortable': column.sortable,
763
776
  'TableCell--searchable': column.searchable,
764
777
  'TableCell--filterable': column.filterable,
765
778
  'Table-operationCell': column.type === 'operation'
766
779
  }) }),
767
- react_1.default.createElement("div", { className: cx(ns + "TableCell--title") },
780
+ react_1.default.createElement("div", { className: cx(ns + "TableCell--title", column.pristine.className, column.pristine.labelClassName) },
768
781
  column.label ? render('tpl', column.label) : null,
769
782
  column.remark
770
783
  ? render('remark', {
@@ -852,7 +865,7 @@ var Table = /** @class */ (function (_super) {
852
865
  var _this = this;
853
866
  if (headerOnly === void 0) { headerOnly = false; }
854
867
  if (tableClassName === void 0) { tableClassName = ''; }
855
- var _a = this.props, placeholder = _a.placeholder, store = _a.store, cx = _a.classnames, render = _a.render, data = _a.data, translate = _a.translate, locale = _a.locale, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, rowClassNameExpr = _a.rowClassNameExpr, rowClassName = _a.rowClassName;
868
+ var _a = this.props, placeholder = _a.placeholder, store = _a.store, cx = _a.classnames, render = _a.render, data = _a.data, translate = _a.translate, locale = _a.locale, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, rowClassNameExpr = _a.rowClassNameExpr, rowClassName = _a.rowClassName, itemAction = _a.itemAction;
856
869
  var hideHeader = store.filteredColumns.every(function (column) { return !column.label; });
857
870
  var columnsGroup = store.columnGroup;
858
871
  return (react_1.default.createElement("table", { className: cx('Table-table', store.combineNum > 0 ? 'Table-table--withCombine' : '', tableClassName) },
@@ -872,7 +885,7 @@ var Table = /** @class */ (function (_super) {
872
885
  }))),
873
886
  headerOnly ? null : !rows.length ? (react_1.default.createElement("tbody", null,
874
887
  react_1.default.createElement("tr", { className: cx('Table-placeholder') },
875
- react_1.default.createElement("td", { colSpan: columns.length }, render('placeholder', translate(placeholder || 'placeholder.noData')))))) : (react_1.default.createElement(TableBody_1.TableBody, { tableClassName: cx(store.combineNum > 0 ? 'Table-table--withCombine' : '', tableClassName), classnames: cx, render: render, renderCell: this.renderCell, onCheck: this.handleCheck, onQuickChange: store.dragging ? undefined : this.handleQuickChange, footable: store.footable, ignoreFootableContent: true, footableColumns: store.footableColumns, checkOnItemClick: checkOnItemClick, buildItemProps: buildItemProps, onAction: this.handleAction, rowClassNameExpr: rowClassNameExpr, rowClassName: rowClassName, columns: columns, rows: rows, locale: locale, translate: translate, rowsProps: {
888
+ react_1.default.createElement("td", { colSpan: columns.length }, render('placeholder', translate(placeholder || 'placeholder.noData')))))) : (react_1.default.createElement(TableBody_1.TableBody, { tableClassName: cx(store.combineNum > 0 ? 'Table-table--withCombine' : '', tableClassName), itemAction: itemAction, classnames: cx, render: render, renderCell: this.renderCell, onCheck: this.handleCheck, onQuickChange: store.dragging ? undefined : this.handleQuickChange, footable: store.footable, ignoreFootableContent: true, footableColumns: store.footableColumns, checkOnItemClick: checkOnItemClick, buildItemProps: buildItemProps, onAction: this.handleAction, rowClassNameExpr: rowClassNameExpr, rowClassName: rowClassName, columns: columns, rows: rows, locale: locale, translate: translate, rowsProps: {
876
889
  regionPrefix: 'fixed/',
877
890
  renderCell: function (region, column, item, props) { return _this.renderCell(region, column, item, props, true); }
878
891
  } }))));
@@ -924,7 +937,7 @@ var Table = /** @class */ (function (_super) {
924
937
  }
925
938
  return (react_1.default.createElement(Button_1.default, { classPrefix: ns, onClick: function () {
926
939
  Promise.resolve().then(function () { return new Promise(function(resolve){require(['exceljs'], function(ret) {resolve(tslib_1.__importStar(ret));})}); }).then(function (ExcelJS) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
927
- var rows, tmpStore, filename, res, workbook, worksheet, firstRowLabels, firstRow, rowIndex, _i, rows_1, row, sheetRow, columIndex, cols, _a, cols_1, column, name, value, type, imageData, imageDimensions, imageWidth, imageHeight, imageMaxSize, imageMatch, imageExt, imageId, linkURL, e_1, linkURL, map, viewValue, buffer, blob;
940
+ var rows, tmpStore, filename, res, workbook, worksheet, filteredColumns, firstRowLabels, firstRow, remoteMappingCache, rowIndex, _i, rows_1, row, sheetRow, columIndex, _a, filteredColumns_1, column, name, value, type, imageData, imageDimensions, imageWidth, imageHeight, imageMaxSize, imageMatch, imageExt, imageId, linkURL, e_1, linkURL, map, source, sourceValue, mapKey, res, viewValue, buffer, blob;
928
941
  var _b, _c;
929
942
  return (0, tslib_1.__generator)(this, function (_d) {
930
943
  switch (_d.label) {
@@ -966,7 +979,16 @@ var Table = /** @class */ (function (_super) {
966
979
  properties: { defaultColWidth: 15 }
967
980
  });
968
981
  worksheet.views = [{ state: 'frozen', xSplit: 0, ySplit: 1 }];
969
- firstRowLabels = columns.map(function (column) {
982
+ filteredColumns = toolbar.columns
983
+ ? columns.filter(function (column) {
984
+ var filterColumnsNames = toolbar.columns;
985
+ if (filterColumnsNames.indexOf(column.name) !== -1) {
986
+ return true;
987
+ }
988
+ return false;
989
+ })
990
+ : columns;
991
+ firstRowLabels = filteredColumns.map(function (column) {
970
992
  return column.label;
971
993
  });
972
994
  firstRow = worksheet.getRow(1);
@@ -981,32 +1003,32 @@ var Table = /** @class */ (function (_super) {
981
1003
  column: firstRowLabels.length
982
1004
  }
983
1005
  };
1006
+ remoteMappingCache = {};
984
1007
  rowIndex = 1;
985
1008
  _i = 0, rows_1 = rows;
986
1009
  _d.label = 4;
987
1010
  case 4:
988
- if (!(_i < rows_1.length)) return [3 /*break*/, 14];
1011
+ if (!(_i < rows_1.length)) return [3 /*break*/, 19];
989
1012
  row = rows_1[_i];
990
1013
  rowIndex += 1;
991
1014
  sheetRow = worksheet.getRow(rowIndex);
992
1015
  columIndex = 0;
993
- cols = columns;
994
- _a = 0, cols_1 = cols;
1016
+ _a = 0, filteredColumns_1 = filteredColumns;
995
1017
  _d.label = 5;
996
1018
  case 5:
997
- if (!(_a < cols_1.length)) return [3 /*break*/, 13];
998
- column = cols_1[_a];
1019
+ if (!(_a < filteredColumns_1.length)) return [3 /*break*/, 18];
1020
+ column = filteredColumns_1[_a];
999
1021
  columIndex += 1;
1000
1022
  name = column.name;
1001
1023
  value = (0, helper_1.getVariable)(row.data, name);
1002
1024
  if (typeof value === 'undefined' &&
1003
1025
  !column.tpl) {
1004
- return [3 /*break*/, 12];
1026
+ return [3 /*break*/, 17];
1005
1027
  }
1006
1028
  // 处理合并单元格
1007
1029
  if (name in row.rowSpans) {
1008
1030
  if (row.rowSpans[name] === 0) {
1009
- return [3 /*break*/, 12];
1031
+ return [3 /*break*/, 17];
1010
1032
  }
1011
1033
  else {
1012
1034
  // start row, start column, end row, end column
@@ -1014,7 +1036,7 @@ var Table = /** @class */ (function (_super) {
1014
1036
  }
1015
1037
  }
1016
1038
  type = column.type || 'plain';
1017
- if (!(type === 'image')) return [3 /*break*/, 11];
1039
+ if (!(type === 'image' && value)) return [3 /*break*/, 11];
1018
1040
  _d.label = 6;
1019
1041
  case 6:
1020
1042
  _d.trys.push([6, 9, , 10]);
@@ -1049,7 +1071,7 @@ var Table = /** @class */ (function (_super) {
1049
1071
  imageExt != 'jpeg' &&
1050
1072
  imageExt != 'gif') {
1051
1073
  sheetRow.getCell(columIndex).value = value;
1052
- return [3 /*break*/, 12];
1074
+ return [3 /*break*/, 17];
1053
1075
  }
1054
1076
  imageId = workbook.addImage({
1055
1077
  base64: imageData,
@@ -1072,48 +1094,68 @@ var Table = /** @class */ (function (_super) {
1072
1094
  e_1 = _d.sent();
1073
1095
  console.warn(e_1.stack);
1074
1096
  return [3 /*break*/, 10];
1075
- case 10: return [3 /*break*/, 12];
1097
+ case 10: return [3 /*break*/, 17];
1076
1098
  case 11:
1077
- if (type == 'link') {
1078
- linkURL = getAbsoluteUrl(value);
1079
- sheetRow.getCell(columIndex).value = {
1080
- text: value,
1081
- hyperlink: linkURL
1082
- };
1099
+ if (!(type == 'link')) return [3 /*break*/, 12];
1100
+ linkURL = getAbsoluteUrl(value);
1101
+ sheetRow.getCell(columIndex).value = {
1102
+ text: value,
1103
+ hyperlink: linkURL
1104
+ };
1105
+ return [3 /*break*/, 17];
1106
+ case 12:
1107
+ if (!(type === 'mapping')) return [3 /*break*/, 16];
1108
+ map = column.map;
1109
+ source = column.source;
1110
+ if (!source) return [3 /*break*/, 15];
1111
+ sourceValue = source;
1112
+ if ((0, tpl_builtin_1.isPureVariable)(source)) {
1113
+ sourceValue = (0, tpl_builtin_1.resolveVariableAndFilter)(source, data, '| raw');
1083
1114
  }
1084
- else if (type === 'mapping') {
1085
- map = column.map;
1086
- if (typeof value !== 'undefined' &&
1087
- map &&
1088
- ((_b = map[value]) !== null && _b !== void 0 ? _b : map['*'])) {
1089
- viewValue = (_c = map[value]) !== null && _c !== void 0 ? _c : (value === true && map['1']
1090
- ? map['1']
1091
- : value === false && map['0']
1092
- ? map['0']
1093
- : map['*']);
1094
- sheetRow.getCell(columIndex).value = viewValue;
1095
- }
1096
- else {
1097
- sheetRow.getCell(columIndex).value = value;
1098
- }
1115
+ mapKey = JSON.stringify(source);
1116
+ if (!(mapKey in remoteMappingCache)) return [3 /*break*/, 13];
1117
+ map = remoteMappingCache[mapKey];
1118
+ return [3 /*break*/, 15];
1119
+ case 13: return [4 /*yield*/, env.fetcher(sourceValue, data)];
1120
+ case 14:
1121
+ res = _d.sent();
1122
+ if (res.data) {
1123
+ remoteMappingCache[mapKey] = res.data;
1124
+ map = res.data;
1125
+ }
1126
+ _d.label = 15;
1127
+ case 15:
1128
+ if (typeof value !== 'undefined' &&
1129
+ map &&
1130
+ ((_b = map[value]) !== null && _b !== void 0 ? _b : map['*'])) {
1131
+ viewValue = (_c = map[value]) !== null && _c !== void 0 ? _c : (value === true && map['1']
1132
+ ? map['1']
1133
+ : value === false && map['0']
1134
+ ? map['0']
1135
+ : map['*']);
1136
+ sheetRow.getCell(columIndex).value =
1137
+ (0, helper_1.removeHTMLTag)(viewValue);
1099
1138
  }
1100
1139
  else {
1101
- if (column.tpl) {
1102
- sheetRow.getCell(columIndex).value = (0, helper_1.removeHTMLTag)((0, tpl_1.filter)(column.tpl, row.data));
1103
- }
1104
- else {
1105
- sheetRow.getCell(columIndex).value = value;
1106
- }
1140
+ sheetRow.getCell(columIndex).value = (0, helper_1.removeHTMLTag)(value);
1107
1141
  }
1108
- _d.label = 12;
1109
- case 12:
1142
+ return [3 /*break*/, 17];
1143
+ case 16:
1144
+ if (column.tpl) {
1145
+ sheetRow.getCell(columIndex).value = (0, helper_1.removeHTMLTag)((0, tpl_1.filter)(column.tpl, row.data));
1146
+ }
1147
+ else {
1148
+ sheetRow.getCell(columIndex).value = value;
1149
+ }
1150
+ _d.label = 17;
1151
+ case 17:
1110
1152
  _a++;
1111
1153
  return [3 /*break*/, 5];
1112
- case 13:
1154
+ case 18:
1113
1155
  _i++;
1114
1156
  return [3 /*break*/, 4];
1115
- case 14: return [4 /*yield*/, workbook.xlsx.writeBuffer()];
1116
- case 15:
1157
+ case 19: return [4 /*yield*/, workbook.xlsx.writeBuffer()];
1158
+ case 20:
1117
1159
  buffer = _d.sent();
1118
1160
  if (buffer) {
1119
1161
  blob = new Blob([buffer], {
@@ -1230,11 +1272,11 @@ var Table = /** @class */ (function (_super) {
1230
1272
  }))));
1231
1273
  };
1232
1274
  Table.prototype.renderTableContent = function () {
1233
- var _a = this.props, cx = _a.classnames, tableClassName = _a.tableClassName, store = _a.store, placeholder = _a.placeholder, render = _a.render, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, rowClassNameExpr = _a.rowClassNameExpr, rowClassName = _a.rowClassName, prefixRow = _a.prefixRow, locale = _a.locale, affixRow = _a.affixRow, translate = _a.translate;
1275
+ var _a = this.props, cx = _a.classnames, tableClassName = _a.tableClassName, store = _a.store, placeholder = _a.placeholder, render = _a.render, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, rowClassNameExpr = _a.rowClassNameExpr, rowClassName = _a.rowClassName, prefixRow = _a.prefixRow, locale = _a.locale, affixRow = _a.affixRow, translate = _a.translate, itemAction = _a.itemAction;
1234
1276
  // 理论上来说 store.rows 应该也行啊
1235
1277
  // 不过目前看来只有这样写它才会重新更新视图
1236
1278
  store.rows.length;
1237
- return (react_1.default.createElement(TableContent_1.TableContent, { tableClassName: cx(store.combineNum > 0 ? 'Table-table--withCombine' : '', tableClassName), classnames: cx, columns: store.filteredColumns, columnsGroup: store.columnGroup, rows: store.rows, placeholder: placeholder, render: render, onMouseMove: this.handleMouseMove, onScroll: this.handleOutterScroll, tableRef: this.tableRef, renderHeadCell: this.renderHeadCell, renderCell: this.renderCell, onCheck: this.handleCheck, onQuickChange: store.dragging ? undefined : this.handleQuickChange, footable: store.footable, footableColumns: store.footableColumns, checkOnItemClick: checkOnItemClick, buildItemProps: buildItemProps, onAction: this.handleAction, rowClassNameExpr: rowClassNameExpr, rowClassName: rowClassName, data: store.data, prefixRow: prefixRow, affixRow: affixRow, locale: locale, translate: translate }));
1279
+ return (react_1.default.createElement(TableContent_1.TableContent, { tableClassName: cx(store.combineNum > 0 ? 'Table-table--withCombine' : '', tableClassName), itemAction: itemAction, classnames: cx, columns: store.filteredColumns, columnsGroup: store.columnGroup, rows: store.rows, placeholder: placeholder, render: render, onMouseMove: this.handleMouseMove, onScroll: this.handleOutterScroll, tableRef: this.tableRef, renderHeadCell: this.renderHeadCell, renderCell: this.renderCell, onCheck: this.handleCheck, onQuickChange: store.dragging ? undefined : this.handleQuickChange, footable: store.footable, footableColumns: store.footableColumns, checkOnItemClick: checkOnItemClick, buildItemProps: buildItemProps, onAction: this.handleAction, rowClassNameExpr: rowClassNameExpr, rowClassName: rowClassName, data: store.data, prefixRow: prefixRow, affixRow: affixRow, locale: locale, translate: translate }));
1238
1280
  };
1239
1281
  Table.prototype.render = function () {
1240
1282
  var _a = this.props, className = _a.className, store = _a.store, cx = _a.classnames, affixColumns = _a.affixColumns;
@@ -1286,6 +1328,7 @@ var Table = /** @class */ (function (_super) {
1286
1328
  'itemDraggableOn',
1287
1329
  'checkOnItemClick',
1288
1330
  'hideCheckToggler',
1331
+ 'itemAction',
1289
1332
  'itemActions',
1290
1333
  'combineNum',
1291
1334
  'combineFromIndex',