amis 1.9.1-beta.21 → 1.9.1-beta.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. package/lib/components/AssociatedSelection.d.ts +40 -40
  2. package/lib/components/Badge.d.ts +1 -1
  3. package/lib/components/Badge.js.map +1 -1
  4. package/lib/components/ChainedSelection.d.ts +40 -40
  5. package/lib/components/GroupedSelection.d.ts +40 -40
  6. package/lib/components/GroupedSelection.js +2 -3
  7. package/lib/components/GroupedSelection.js.map +2 -2
  8. package/lib/components/PickerContainer.d.ts +0 -1
  9. package/lib/components/PickerContainer.js +4 -4
  10. package/lib/components/PickerContainer.js.map +2 -2
  11. package/lib/components/ResultBox.js +3 -1
  12. package/lib/components/ResultBox.js.map +2 -2
  13. package/lib/components/ResultList.d.ts +53 -43
  14. package/lib/components/ResultList.js +22 -34
  15. package/lib/components/ResultList.js.map +2 -2
  16. package/lib/components/ResultTableList.d.ts +40 -40
  17. package/lib/components/ResultTreeList.d.ts +40 -40
  18. package/lib/components/Select.js +10 -6
  19. package/lib/components/Select.js.map +2 -2
  20. package/lib/components/Selection.d.ts +40 -41
  21. package/lib/components/Selection.js.map +2 -2
  22. package/lib/components/TableSelection.d.ts +40 -40
  23. package/lib/components/TabsTransfer.d.ts +2 -2
  24. package/lib/components/TabsTransfer.js.map +1 -1
  25. package/lib/components/Transfer.d.ts +40 -40
  26. package/lib/components/Transfer.js +1 -1
  27. package/lib/components/Transfer.js.map +2 -2
  28. package/lib/components/TransferDropDown.d.ts +40 -40
  29. package/lib/components/TreeSelection.d.ts +40 -40
  30. package/lib/components/TreeSelection.js +2 -3
  31. package/lib/components/TreeSelection.js.map +2 -2
  32. package/lib/components/formula/Editor.d.ts +45 -45
  33. package/lib/components/formula/Editor.js +16 -11
  34. package/lib/components/formula/Editor.js.map +2 -2
  35. package/lib/components/formula/Picker.d.ts +85 -40
  36. package/lib/components/formula/Picker.js +12 -6
  37. package/lib/components/formula/Picker.js.map +2 -2
  38. package/lib/components/formula/VariableList.d.ts +0 -2
  39. package/lib/components/formula/VariableList.js +5 -15
  40. package/lib/components/formula/VariableList.js.map +2 -2
  41. package/lib/components/index.d.ts +1 -3
  42. package/lib/components/index.js +1 -5
  43. package/lib/components/index.js.map +2 -2
  44. package/lib/components/schema-editor/SchemaVariableList.d.ts +0 -1
  45. package/lib/components/schema-editor/SchemaVariableList.js +2 -2
  46. package/lib/components/schema-editor/SchemaVariableList.js.map +2 -2
  47. package/lib/components/schema-editor/SchemaVariableListPicker.d.ts +0 -1
  48. package/lib/components/schema-editor/SchemaVariableListPicker.js +2 -2
  49. package/lib/components/schema-editor/SchemaVariableListPicker.js.map +2 -2
  50. package/lib/helper.css.map +1 -1
  51. package/lib/index.js +1 -1
  52. package/lib/renderers/CRUD.js +3 -3
  53. package/lib/renderers/CRUD.js.map +2 -2
  54. package/lib/renderers/Form/DiffEditor.d.ts +66 -20
  55. package/lib/renderers/Form/Editor.d.ts +66 -20
  56. package/lib/renderers/Form/Group.js +1 -1
  57. package/lib/renderers/Form/Group.js.map +2 -2
  58. package/lib/renderers/Form/InputFormula.d.ts +5 -5
  59. package/lib/renderers/Form/InputFormula.js +4 -3
  60. package/lib/renderers/Form/InputFormula.js.map +2 -2
  61. package/lib/renderers/Form/InputTag.d.ts +1 -1
  62. package/lib/renderers/Form/InputTag.js.map +1 -1
  63. package/lib/renderers/Form/Options.js +7 -7
  64. package/lib/renderers/Form/Options.js.map +2 -2
  65. package/lib/renderers/Form/Select.d.ts +6 -1
  66. package/lib/renderers/Form/Select.js +3 -1
  67. package/lib/renderers/Form/Select.js.map +2 -2
  68. package/lib/renderers/Form/TreeSelect.d.ts +0 -1
  69. package/lib/renderers/Form/TreeSelect.js +1 -9
  70. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  71. package/lib/renderers/Form/index.js +9 -4
  72. package/lib/renderers/Form/index.js.map +2 -2
  73. package/lib/renderers/Table/exportExcel.js +1 -1
  74. package/lib/renderers/Table/exportExcel.js.map +2 -2
  75. package/lib/renderers/Table/index.d.ts +2 -0
  76. package/lib/renderers/Table/index.js +37 -5
  77. package/lib/renderers/Table/index.js.map +2 -2
  78. package/lib/renderers/Tpl.d.ts +4 -0
  79. package/lib/renderers/Tpl.js +6 -3
  80. package/lib/renderers/Tpl.js.map +2 -2
  81. package/lib/store/combo.d.ts +72 -22
  82. package/lib/store/form.d.ts +30 -9
  83. package/lib/store/form.js +28 -10
  84. package/lib/store/form.js.map +2 -2
  85. package/lib/store/formItem.d.ts +3 -1
  86. package/lib/store/formItem.js +3 -5
  87. package/lib/store/formItem.js.map +2 -2
  88. package/lib/store/table.d.ts +60 -18
  89. package/lib/themes/ang-ie11.css +33 -9
  90. package/lib/themes/ang.css +27 -9
  91. package/lib/themes/ang.css.map +1 -1
  92. package/lib/themes/antd-ie11.css +33 -9
  93. package/lib/themes/antd.css +27 -9
  94. package/lib/themes/antd.css.map +1 -1
  95. package/lib/themes/cxd-ie11.css +35 -15
  96. package/lib/themes/cxd.css +31 -17
  97. package/lib/themes/cxd.css.map +1 -1
  98. package/lib/themes/dark-ie11.css +33 -9
  99. package/lib/themes/dark.css +27 -9
  100. package/lib/themes/dark.css.map +1 -1
  101. package/lib/themes/default-ie11.css +35 -15
  102. package/lib/themes/default.css +31 -17
  103. package/lib/themes/default.css.map +1 -1
  104. package/lib/utils/formula.js +2 -3
  105. package/lib/utils/formula.js.map +2 -2
  106. package/lib/utils/helper.js +1 -1
  107. package/lib/utils/helper.js.map +2 -2
  108. package/package.json +1 -1
  109. package/schema.json +22 -16
  110. package/scss/_mixins.scss +1 -1
  111. package/scss/components/form/_date.scss +9 -10
  112. package/scss/components/form/_select.scss +14 -0
  113. package/scss/components/form/_transfer.scss +1 -2
  114. package/scss/themes/cxd.scss +4 -9
  115. package/sdk/ang-ie11.css +36 -9
  116. package/sdk/ang.css +30 -9
  117. package/sdk/antd-ie11.css +36 -9
  118. package/sdk/antd.css +30 -9
  119. package/sdk/barcode.js +51 -51
  120. package/sdk/charts.js +14 -14
  121. package/sdk/codemirror.js +7 -7
  122. package/sdk/color-picker.js +65 -65
  123. package/sdk/cropperjs.js +2 -2
  124. package/sdk/cxd-ie11.css +38 -16
  125. package/sdk/cxd.css +34 -18
  126. package/sdk/dark-ie11.css +36 -9
  127. package/sdk/dark.css +30 -9
  128. package/sdk/exceljs.js +1 -1
  129. package/sdk/helper.css.map +1 -1
  130. package/sdk/markdown.js +69 -69
  131. package/sdk/papaparse.js +1 -1
  132. package/sdk/renderers/Form/CityDB.js +1 -1
  133. package/sdk/rest.js +16 -16
  134. package/sdk/rich-text.js +62 -62
  135. package/sdk/sdk-ie11.css +38 -16
  136. package/sdk/sdk.css +34 -18
  137. package/sdk/sdk.js +1356 -1354
  138. package/sdk/thirds/hls.js/hls.js +1 -1
  139. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  140. package/sdk/tinymce.js +57 -57
  141. package/src/components/Badge.tsx +1 -1
  142. package/src/components/GroupedSelection.tsx +2 -3
  143. package/src/components/PickerContainer.tsx +8 -13
  144. package/src/components/ResultBox.tsx +3 -1
  145. package/src/components/ResultList.tsx +51 -48
  146. package/src/components/Select.tsx +16 -8
  147. package/src/components/Selection.tsx +0 -1
  148. package/src/components/TabsTransfer.tsx +2 -2
  149. package/src/components/Transfer.tsx +4 -0
  150. package/src/components/TreeSelection.tsx +1 -2
  151. package/src/components/formula/Editor.tsx +51 -38
  152. package/src/components/formula/Picker.tsx +26 -7
  153. package/src/components/formula/VariableList.tsx +2 -36
  154. package/src/components/index.tsx +0 -4
  155. package/src/components/schema-editor/SchemaVariableList.tsx +2 -4
  156. package/src/components/schema-editor/SchemaVariableListPicker.tsx +1 -4
  157. package/src/renderers/CRUD.tsx +3 -3
  158. package/src/renderers/Form/Group.tsx +1 -1
  159. package/src/renderers/Form/InputFormula.tsx +11 -10
  160. package/src/renderers/Form/InputTag.tsx +1 -1
  161. package/src/renderers/Form/Options.tsx +7 -9
  162. package/src/renderers/Form/Select.tsx +10 -2
  163. package/src/renderers/Form/TreeSelect.tsx +14 -16
  164. package/src/renderers/Form/index.tsx +13 -2
  165. package/src/renderers/Table/exportExcel.ts +1 -1
  166. package/src/renderers/Table/index.tsx +42 -6
  167. package/src/renderers/Tpl.tsx +11 -1
  168. package/src/store/form.ts +31 -24
  169. package/src/store/formItem.ts +65 -52
  170. package/src/utils/formula.ts +2 -2
  171. package/src/utils/helper.ts +2 -2
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerLocale = exports.setDefaultLocale = exports.getDefaultLocale = exports.classnames = exports.getClassPrefix = exports.classPrefix = exports.getTheme = exports.theme = exports.setDefaultTheme = exports.validateObject = exports.validate = exports.ScopedContext = exports.Scoped = exports.registerIcon = exports.Icon = exports.setIconVendor = exports.resolveVariableAndFilter = exports.resolveVariable = exports.relativeValueRe = exports.filterDate = exports.filterSchema = exports.resolveRenderer = exports.registerOptionsControl = exports.registerFormItem = exports.getRenderers = exports.unRegisterRenderer = exports.registerRenderer = exports.getRendererByName = exports.normalizeOptions = exports.str2rules = exports.addRule = exports.setCustomEvalExpression = exports.setCustomEvalJs = exports.evalJS = exports.evalExpression = exports.registerTplEnginer = exports.registerFilter = exports.resizeSensor = exports.utils = exports.filter = exports.buildApi = exports.wrapFetcher = exports.OptionsControl = exports.FormItemWrap = exports.FormItem = exports.RegisterStore = exports.Renderer = exports.updateEnv = exports.clearStoresCache = exports.render = void 0;
4
4
  exports.DataScope = exports.DataSchema = exports.animation = exports.makeTranslator = void 0;
5
5
  var tslib_1 = require("tslib");
6
- /** @license amis v1.9.1-beta.21
6
+ /** @license amis v1.9.1-beta.24
7
7
  *
8
8
  * Copyright Baidu
9
9
  *
@@ -75,8 +75,8 @@ var CRUD = /** @class */ (function (_super) {
75
75
  // 否则就应该等待 filter 里面的表单初始化的时候才初始化
76
76
  // 另外autoGenerateFilter时,table 里面会单独处理这块逻辑
77
77
  // 所以这里应该忽略 autoGenerateFilter 情况
78
- if ((!this.props.filter || (store.filterTogggable && !store.filterVisible)) &&
79
- !autoGenerateFilter) {
78
+ if ((!this.props.filter && !autoGenerateFilter) ||
79
+ (store.filterTogggable && !store.filterVisible)) {
80
80
  this.handleFilterInit({});
81
81
  }
82
82
  var val;
@@ -205,7 +205,7 @@ var CRUD = /** @class */ (function (_super) {
205
205
  }
206
206
  });
207
207
  }
208
- else if (action.actionType === 'reload') {
208
+ else if (action.actionType === 'reload' && !action.target) {
209
209
  this.reload();
210
210
  }
211
211
  else if (pickerMode &&
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/CRUD.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\n\nimport {Renderer, RendererProps} from '../factory';\nimport {SchemaNode, Schema, Action, PlainObject} from '../types';\nimport {CRUDStore, ICRUDStore} from '../store/crud';\nimport {\n createObject,\n extendObject,\n anyChanged,\n isObjectShallowModified,\n isVisible,\n getPropValue,\n getVariable,\n qsstringify,\n qsparse,\n isArrayChildrenModified\n} from '../utils/helper';\nimport {ScopedContext, IScopedContext} from '../Scoped';\nimport Button from '../components/Button';\nimport Select from '../components/Select';\nimport getExprProperties from '../utils/filter-schema';\nimport pick from 'lodash/pick';\nimport {findDOMNode} from 'react-dom';\nimport {evalExpression, filter} from '../utils/tpl';\nimport {isEffectiveApi, isApiOutdated, str2function} from '../utils/api';\nimport omit from 'lodash/omit';\nimport find from 'lodash/find';\nimport findIndex from 'lodash/findIndex';\nimport Html from '../components/Html';\nimport {Spinner} from '../components';\nimport {Icon} from '../components/icons';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaClassName,\n SchemaExpression,\n SchemaMessage,\n SchemaName,\n SchemaObject,\n SchemaTokenizeableString,\n SchemaTpl\n} from '../Schema';\nimport {ActionSchema} from './Action';\nimport {CardsSchema} from './Cards';\nimport {ListSchema} from './List';\nimport {TableSchema} from './Table';\nimport {isPureVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';\n\nimport type {PaginationProps} from './Pagination';\n\nexport type CRUDBultinToolbarType =\n | 'columns-toggler'\n | 'drag-toggler'\n | 'pagination'\n | 'bulkActions'\n | 'bulk-actions'\n | 'statistics'\n | 'switch-per-page'\n | 'load-more'\n | 'filter-toggler'\n | 'export-csv'\n | 'export-excel';\n\nexport interface CRUDBultinToolbar extends Omit<BaseSchema, 'type'> {\n type: CRUDBultinToolbarType;\n}\n\nexport type CRUDToolbarChild = SchemaObject | CRUDBultinToolbar;\n\nexport type CRUDToolbarObject = {\n /**\n * 对齐方式\n */\n align?: 'left' | 'right';\n};\n\nexport interface CRUDCommonSchema extends BaseSchema {\n /**\n * 指定为 CRUD 渲染器。\n */\n type: 'crud';\n\n /**\n * 指定内容区的展示模式。\n */\n mode?: 'table' | 'grid' | 'cards' | /* grid 的别名*/ 'list';\n\n /**\n * 初始化数据 API\n */\n api?: SchemaApi;\n\n /**\n * 批量操作\n */\n bulkActions?: Array<ActionSchema>;\n\n /**\n * 单条操作\n */\n itemActions?: Array<ActionSchema>;\n\n /**\n * 每页个数,默认为 10,如果不是请设置。\n *\n * @default 10\n */\n perPage?: number;\n\n /**\n * 默认排序字段\n */\n orderBy?: string;\n\n /**\n * 默认排序方向\n */\n orderDir?: 'asc' | 'desc';\n\n /**\n * 可以默认给定初始参数如: {\\\"perPage\\\": 24}\n */\n defaultParams?: PlainObject;\n\n /**\n * 是否可通过拖拽排序\n */\n draggable?: boolean;\n\n /**\n * 是否可通过拖拽排序,通过表达式来配置\n */\n draggableOn?: SchemaExpression;\n\n name?: SchemaName;\n\n /**\n * 过滤器表单\n */\n filter?: any; // todo\n\n /**\n * 初始是否拉取\n * @deprecated 建议用 api 的 sendOn 代替。\n */\n initFetch?: boolean;\n\n /**\n * 初始是否拉取,用表达式来配置。\n * @deprecated 建议用 api 的 sendOn 代替。\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 配置内部 DOM 的 className\n */\n innerClassName?: SchemaClassName;\n\n /**\n * 设置自动刷新时间\n */\n interval?: number;\n\n /**\n * 设置用来确定位置的字段名,设置后新的顺序将被赋值到该字段中。\n */\n orderField?: string;\n\n /**\n * 设置分页页码字段名。\n * @default page\n */\n pageField?: string;\n\n /**\n * 设置分页一页显示的多少条数据的字段名。\n * @default perPage\n */\n perPageField?: string;\n\n /**\n * 快速编辑后用来批量保存的 API\n */\n quickSaveApi?: SchemaApi;\n\n /**\n * 快速编辑配置成及时保存时使用的 API\n */\n quickSaveItemApi?: SchemaApi;\n\n /**\n * 保存排序的 api\n */\n saveOrderApi?: SchemaApi;\n\n /**\n * 是否将过滤条件的参数同步到地址栏,默认为true\n * @default true\n */\n syncLocation?: boolean;\n\n /**\n * 顶部工具栏\n */\n headerToolbar?: Array<\n (CRUDToolbarChild & CRUDToolbarObject) | CRUDBultinToolbarType\n >;\n\n /**\n * 底部工具栏\n */\n footerToolbar?: Array<\n (CRUDToolbarChild & CRUDToolbarObject) | CRUDBultinToolbarType\n >;\n\n /**\n * 每页显示多少个空间成员的配置如: [10, 20, 50, 100]。\n */\n perPageAvailable?: Array<number>;\n\n messages?: SchemaMessage;\n\n /**\n * 是否隐藏快速编辑的按钮。\n */\n hideQuickSaveBtn?: boolean;\n\n /**\n * 是否自动跳顶部,当切分页的时候。\n */\n autoJumpToTopOnPagerChange?: boolean;\n\n /**\n * 静默拉取\n */\n silentPolling?: boolean;\n stopAutoRefreshWhen?: SchemaExpression;\n\n stopAutoRefreshWhenModalIsOpen?: boolean;\n filterTogglable?: boolean;\n filterDefaultVisible?: boolean;\n\n /**\n * 是否将接口返回的内容自动同步到地址栏,前提是开启了同步地址栏。\n */\n syncResponse2Query?: boolean;\n\n /**\n * 分页的时候是否保留用户选择。\n */\n keepItemSelectionOnPageChange?: boolean;\n\n /**\n * 当配置 keepItemSelectionOnPageChange 时有用,用来配置已勾选项的文案。\n */\n labelTpl?: SchemaTpl;\n\n /**\n * 是否为前端单次加载模式,可以用来实现前端分页。\n */\n loadDataOnce?: boolean;\n\n /**\n * 在开启loadDataOnce时,filter时是否去重新请求api\n */\n loadDataOnceFetchOnFilter?: boolean;\n\n /**\n * 也可以直接从环境变量中读取,但是不太推荐。\n */\n source?: SchemaTokenizeableString;\n\n /**\n * 如果时内嵌模式,可以通过这个来配置默认的展开选项。\n */\n expandConfig?: {\n /**\n * 默认是展开第一个、所有、还是都不展开。\n */\n expand?: 'first' | 'all' | 'none';\n\n /**\n * 是否显示全部切换按钮\n */\n expandAll?: boolean;\n\n /**\n * 是否为手风琴模式\n */\n accordion?: boolean;\n };\n\n /**\n * 默认只有当分页数大于 1 是才显示,如果总是想显示请配置。\n */\n alwaysShowPagination?: boolean;\n\n /**\n * 开启查询区域,会根据列元素的searchable属性值,自动生成查询条件表单\n */\n autoGenerateFilter?: boolean;\n\n /**\n * 内容区域占满屏幕剩余空间\n */\n autoFillHeight?: boolean;\n}\n\nexport type CRUDCardsSchema = CRUDCommonSchema & {\n mode: 'cards';\n} & Omit<CardsSchema, 'type'>;\n\nexport type CRUDListSchema = CRUDCommonSchema & {\n mode: 'list';\n} & Omit<ListSchema, 'type'>;\n\nexport type CRUDTableSchema = CRUDCommonSchema & {\n mode?: 'table';\n} & Omit<TableSchema, 'type'>;\n\n/**\n * CRUD 增删改查渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/crud\n */\nexport type CRUDSchema = CRUDCardsSchema | CRUDListSchema | CRUDTableSchema;\n\nexport interface CRUDProps\n extends RendererProps,\n Omit<CRUDCommonSchema, 'type' | 'className'> {\n store: ICRUDStore;\n pickerMode?: boolean; // 选择模式,用做表单中的选择操作\n}\n\nexport default class CRUD extends React.Component<CRUDProps, any> {\n static propsList: Array<keyof CRUDProps> = [\n 'bulkActions',\n 'itemActions',\n 'mode',\n 'orderField',\n 'syncLocation',\n 'toolbar',\n 'toolbarInline',\n 'messages',\n 'value',\n 'options',\n 'multiple',\n 'valueField',\n 'defaultParams',\n 'bodyClassName',\n 'perPageAvailable',\n 'pageField',\n 'perPageField',\n 'hideQuickSaveBtn',\n 'autoJumpToTopOnPagerChange',\n 'interval',\n 'silentPolling',\n 'stopAutoRefreshWhen',\n 'stopAutoRefreshWhenModalIsOpen',\n 'api',\n 'affixHeader',\n 'columnsTogglable',\n 'placeholder',\n 'tableClassName',\n 'headerClassName',\n 'footerClassName',\n // 'toolbarClassName',\n 'headerToolbar',\n 'footerToolbar',\n 'filterTogglable',\n 'filterDefaultVisible',\n 'autoGenerateFilter',\n 'syncResponse2Query',\n 'keepItemSelectionOnPageChange',\n 'labelTpl',\n 'labelField',\n 'loadDataOnce',\n 'loadDataOnceFetchOnFilter',\n 'source',\n 'header',\n 'columns',\n 'size',\n 'onChange',\n 'onInit',\n 'onSaved',\n 'onQuery',\n 'formStore',\n 'autoFillHeight'\n ];\n static defaultProps = {\n toolbarInline: true,\n headerToolbar: ['bulkActions'],\n footerToolbar: ['statistics', 'pagination'],\n primaryField: 'id',\n syncLocation: true,\n pageField: 'page',\n perPageField: 'perPage',\n hideQuickSaveBtn: false,\n autoJumpToTopOnPagerChange: true,\n silentPolling: false,\n filterTogglable: false,\n filterDefaultVisible: true,\n loadDataOnce: false,\n loadDataOnceFetchOnFilter: true,\n autoFillHeight: false\n };\n\n control: any;\n lastQuery: any;\n lastData: any;\n\n timer: ReturnType<typeof setTimeout>;\n mounted: boolean;\n constructor(props: CRUDProps) {\n super(props);\n\n this.controlRef = this.controlRef.bind(this);\n this.handleFilterReset = this.handleFilterReset.bind(this);\n this.handleFilterSubmit = this.handleFilterSubmit.bind(this);\n this.handleFilterInit = this.handleFilterInit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleBulkAction = this.handleBulkAction.bind(this);\n this.handleChangePage = this.handleChangePage.bind(this);\n this.handleBulkGo = this.handleBulkGo.bind(this);\n this.handleDialogConfirm = this.handleDialogConfirm.bind(this);\n this.handleDialogClose = this.handleDialogClose.bind(this);\n this.handleSave = this.handleSave.bind(this);\n this.handleSaveOrder = this.handleSaveOrder.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleChildPopOverOpen = this.handleChildPopOverOpen.bind(this);\n this.handleChildPopOverClose = this.handleChildPopOverClose.bind(this);\n this.search = this.search.bind(this);\n this.silentSearch = this.silentSearch.bind(this);\n this.handleQuery = this.handleQuery.bind(this);\n this.renderHeaderToolbar = this.renderHeaderToolbar.bind(this);\n this.renderFooterToolbar = this.renderFooterToolbar.bind(this);\n this.clearSelection = this.clearSelection.bind(this);\n\n const {\n location,\n store,\n pageField,\n perPageField,\n syncLocation,\n loadDataOnce\n } = props;\n\n this.mounted = true;\n\n if (syncLocation && location && (location.query || location.search)) {\n store.updateQuery(\n qsparse(location.search.substring(1)),\n undefined,\n pageField,\n perPageField\n );\n } else if (syncLocation && !location && window.location.search) {\n store.updateQuery(\n qsparse(window.location.search.substring(1)) as object,\n undefined,\n pageField,\n perPageField\n );\n }\n\n this.props.store.setFilterTogglable(\n !!this.props.filterTogglable,\n this.props.filterDefaultVisible\n );\n\n // 如果有 api,data 里面先写个 空数组,面得继承外层的 items\n // 比如 crud 打开一个弹框,里面也是个 crud,默认一开始其实显示\n // 的是外层 crud 的数据,等接口回来后就会变成新的。\n // 加上这个就是为了解决这种情况\n if (this.props.api) {\n this.props.store.updateData({\n items: []\n });\n }\n }\n\n componentDidMount() {\n const {store, autoGenerateFilter, columns} = this.props;\n\n if (this.props.perPage) {\n store.changePage(store.page, this.props.perPage);\n }\n\n // 没有 filter 或者 没有展示 filter 时应该默认初始化一次,\n // 否则就应该等待 filter 里面的表单初始化的时候才初始化\n // 另外autoGenerateFilter时,table 里面会单独处理这块逻辑\n // 所以这里应该忽略 autoGenerateFilter 情况\n if (\n (!this.props.filter || (store.filterTogggable && !store.filterVisible)) &&\n !autoGenerateFilter\n ) {\n this.handleFilterInit({});\n }\n\n let val: any;\n if (this.props.pickerMode && (val = getPropValue(this.props))) {\n store.setSelectedItems(val);\n }\n }\n\n componentDidUpdate(prevProps: CRUDProps) {\n const props = this.props;\n const store = prevProps.store;\n\n if (\n anyChanged(\n ['toolbar', 'headerToolbar', 'footerToolbar', 'bulkActions'],\n prevProps,\n props\n )\n ) {\n // 来点参数变化。\n this.renderHeaderToolbar = this.renderHeaderToolbar.bind(this);\n this.renderFooterToolbar = this.renderFooterToolbar.bind(this);\n }\n\n let val: any;\n if (\n this.props.pickerMode &&\n isArrayChildrenModified(\n (val = getPropValue(this.props)),\n getPropValue(prevProps)\n )\n ) {\n store.setSelectedItems(val);\n }\n\n if (this.props.filterTogglable !== prevProps.filterTogglable) {\n store.setFilterTogglable(\n !!props.filterTogglable,\n props.filterDefaultVisible\n );\n }\n\n let dataInvalid = false;\n\n if (\n prevProps.syncLocation &&\n prevProps.location &&\n prevProps.location.search !== props.location.search\n ) {\n // 同步地址栏,那么直接检测 query 是否变了,变了就重新拉数据\n store.updateQuery(\n qsparse(props.location.search.substring(1)),\n undefined,\n props.pageField,\n props.perPageField\n );\n dataInvalid = !!(\n props.api && isObjectShallowModified(store.query, this.lastQuery, false)\n );\n }\n\n if (dataInvalid) {\n // 要同步数据\n } else if (\n prevProps.api &&\n props.api &&\n isApiOutdated(\n prevProps.api,\n props.api,\n store.fetchCtxOf(prevProps.data, {\n pageField: prevProps.pageField,\n perPageField: prevProps.perPageField\n }),\n store.fetchCtxOf(props.data, {\n pageField: props.pageField,\n perPageField: props.perPageField\n })\n )\n ) {\n dataInvalid = true;\n } else if (!props.api && isPureVariable(props.source)) {\n const next = resolveVariableAndFilter(props.source, props.data, '| raw');\n\n if (!this.lastData || this.lastData !== next) {\n store.initFromScope(props.data, props.source);\n this.lastData = next;\n }\n }\n\n if (dataInvalid) {\n this.search();\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n clearTimeout(this.timer);\n }\n\n controlRef(control: any) {\n // 因为 control 有可能被 n 层 hoc 包裹。\n while (control && control.getWrappedInstance) {\n control = control.getWrappedInstance();\n }\n\n this.control = control;\n }\n\n handleAction(\n e: React.UIEvent<any> | undefined,\n action: Action,\n ctx: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ): any {\n const {\n onAction,\n store,\n messages,\n pickerMode,\n env,\n pageField,\n stopAutoRefreshWhenModalIsOpen\n } = this.props;\n\n if (action.actionType === 'dialog') {\n store.setCurrentAction(action);\n const idx: number = (ctx as any).index;\n const length = store.items.length;\n stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);\n store.openDialog(ctx, {\n hasNext: idx < length - 1,\n nextIndex: idx + 1,\n hasPrev: idx > 0,\n prevIndex: idx - 1,\n index: idx\n });\n } else if (action.actionType === 'ajax') {\n store.setCurrentAction(action);\n const data = ctx;\n\n // 由于 ajax 一段时间后再弹出,肯定被浏览器给阻止掉的,所以提前弹。\n const redirect = action.redirect && filter(action.redirect, data);\n redirect && action.blank && env.jumpTo(redirect, action);\n\n return store\n .saveRemote(action.api!, data, {\n successMessage:\n (action.messages && action.messages.success) ||\n (messages && messages.saveSuccess),\n errorMessage:\n (action.messages && action.messages.failed) ||\n (messages && messages.saveFailed)\n })\n .then(async (payload: object) => {\n const data = createObject(ctx, payload);\n\n if (action.feedback && isVisible(action.feedback, data)) {\n await this.openFeedback(action.feedback, data);\n stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);\n }\n\n const redirect = action.redirect && filter(action.redirect, data);\n redirect && !action.blank && env.jumpTo(redirect, action);\n action.reload\n ? this.reloadTarget(action.reload, data)\n : redirect\n ? null\n : this.search(undefined, undefined, true, true);\n action.close && this.closeTarget(action.close);\n })\n .catch(e => {\n if (throwErrors || action.countDown) {\n throw e;\n }\n });\n } else if (action.actionType === 'reload') {\n this.reload();\n } else if (\n pickerMode &&\n (action.actionType === 'confirm' || action.actionType === 'submit')\n ) {\n store.setCurrentAction(action);\n return Promise.resolve({\n items: store.selectedItems.concat()\n });\n } else if (action.onClick) {\n store.setCurrentAction(action);\n let onClick = action.onClick;\n if (typeof onClick === 'string') {\n onClick = str2function(onClick, 'event', 'props', 'data');\n }\n onClick && onClick(e, this.props, ctx);\n } else {\n onAction(e, action, ctx, throwErrors, delegate || this.context);\n }\n }\n\n handleBulkAction(\n selectedItems: Array<any>,\n unSelectedItems: Array<any>,\n e: React.UIEvent<any>,\n action: Action\n ) {\n const {\n store,\n primaryField,\n onAction,\n messages,\n pageField,\n stopAutoRefreshWhenModalIsOpen,\n env\n } = this.props;\n\n if (!selectedItems.length && action.requireSelected !== false) {\n return;\n }\n\n let ids = selectedItems\n .map(item =>\n item.hasOwnProperty(primaryField) ? item[primaryField as string] : null\n )\n .filter(item => item)\n .join(',');\n\n const ctx = createObject(store.mergedData, {\n ...selectedItems[0],\n rows: selectedItems,\n items: selectedItems,\n unSelectedItems: unSelectedItems,\n ids\n });\n\n let fn = () => {\n if (action.actionType === 'dialog') {\n return this.handleAction(\n e,\n {\n ...action,\n __from: 'bulkAction'\n },\n ctx\n );\n } else if (action.actionType === 'ajax') {\n isEffectiveApi(action.api, ctx) &&\n store\n .saveRemote(action.api as string, ctx, {\n successMessage:\n (action.messages && action.messages.success) ||\n (messages && messages.saveSuccess),\n errorMessage:\n (action.messages && action.messages.failed) ||\n (messages && messages.saveFailed)\n })\n .then(async (payload: object) => {\n const data = createObject(ctx, payload);\n if (action.feedback && isVisible(action.feedback, data)) {\n await this.openFeedback(action.feedback, data);\n stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);\n }\n\n action.reload\n ? this.reloadTarget(action.reload, data)\n : this.search(\n {[pageField || 'page']: 1},\n undefined,\n true,\n true\n );\n action.close && this.closeTarget(action.close);\n\n const redirect = action.redirect && filter(action.redirect, data);\n redirect && env.jumpTo(redirect, action);\n })\n .catch(() => null);\n } else if (onAction) {\n onAction(e, action, ctx, false, this.context);\n }\n };\n\n if (action.confirmText && env.confirm) {\n env\n .confirm(filter(action.confirmText, ctx))\n .then((confirmed: boolean) => confirmed && fn());\n } else {\n fn();\n }\n }\n\n handleItemAction(action: Action, ctx: any) {\n this.doAction(action, ctx);\n }\n\n handleFilterInit(values: object) {\n const {defaultParams, data, store, orderBy, orderDir} = this.props;\n const params = {...defaultParams};\n\n if (orderBy) {\n params['orderBy'] = orderBy;\n params['orderDir'] = orderDir || 'asc';\n }\n\n this.handleFilterSubmit(\n {\n ...params,\n ...values,\n ...store.query\n },\n false,\n true,\n this.props.initFetch !== false\n );\n\n store.setPristineQuery();\n\n const {pickerMode, options} = this.props;\n\n pickerMode &&\n store.updateData({\n items: options || []\n });\n }\n\n handleFilterReset(values: object) {\n const {store, syncLocation, env, pageField, perPageField} = this.props;\n\n store.updateQuery(\n store.pristineQuery,\n syncLocation && env && env.updateLocation\n ? (location: any) => env.updateLocation(location)\n : undefined,\n pageField,\n perPageField,\n true\n );\n this.lastQuery = store.query;\n this.search();\n }\n\n handleFilterSubmit(\n values: object,\n jumpToFirstPage: boolean = true,\n replaceLocation: boolean = false,\n search: boolean = true\n ) {\n const {\n store,\n syncLocation,\n env,\n pageField,\n perPageField,\n loadDataOnceFetchOnFilter\n } = this.props;\n\n values = syncLocation\n ? qsparse(qsstringify(values, undefined, true))\n : values;\n\n store.updateQuery(\n {\n ...values,\n [pageField || 'page']: jumpToFirstPage ? 1 : store.page\n },\n syncLocation && env && env.updateLocation\n ? (location: any) => env.updateLocation(location, replaceLocation)\n : undefined,\n pageField,\n perPageField\n );\n this.lastQuery = store.query;\n search &&\n this.search(undefined, undefined, undefined, loadDataOnceFetchOnFilter);\n }\n\n handleBulkGo(\n selectedItems: Array<any>,\n unSelectedItems: Array<any>,\n e: React.MouseEvent<any>\n ) {\n const action = this.props.store.selectedAction;\n const env = this.props.env;\n\n if (action.confirmText) {\n return env\n .confirm(action.confirmText)\n .then(\n (confirmed: boolean) =>\n confirmed &&\n this.handleBulkAction(\n selectedItems,\n unSelectedItems,\n e as any,\n action\n )\n );\n }\n\n return this.handleBulkAction(\n selectedItems,\n unSelectedItems,\n e as any,\n action\n );\n }\n\n handleDialogConfirm(\n values: object[],\n action: Action,\n ctx: any,\n components: Array<any>\n ) {\n const {\n store,\n pageField,\n stopAutoRefreshWhenModalIsOpen,\n interval,\n silentPolling,\n env\n } = this.props;\n\n store.closeDialog(true);\n const dialogAction = store.action as Action;\n\n if (stopAutoRefreshWhenModalIsOpen && interval) {\n this.timer = setTimeout(\n silentPolling ? this.silentSearch : this.search,\n Math.max(interval, 1000)\n );\n }\n\n if (\n action.actionType === 'next' &&\n typeof ctx.nextIndex === 'number' &&\n store.data.items[ctx.nextIndex]\n ) {\n return this.handleAction(\n undefined,\n {\n ...dialogAction\n },\n createObject(\n createObject(store.data, {\n index: ctx.nextIndex\n }),\n store.data.items[ctx.nextIndex]\n )\n );\n } else if (\n action.actionType === 'prev' &&\n typeof ctx.prevIndex === 'number' &&\n store.data.items[ctx.prevIndex]\n ) {\n return this.handleAction(\n undefined,\n {\n ...dialogAction\n },\n createObject(\n createObject(store.data, {\n index: ctx.prevIndex\n }),\n store.data.items[ctx.prevIndex]\n )\n );\n } else if (values.length) {\n const value = values[0];\n ctx = createObject(ctx, value);\n const component = components[0];\n\n // 提交来自 form\n if (component && component.props.type === 'form') {\n // 数据保存了,说明列表数据已经无效了,重新刷新。\n if (value && (value as any).__saved) {\n const reload = action.reload ?? dialogAction.reload;\n // 配置了 reload 则跳过自动更新。\n reload ||\n this.search(\n dialogAction.__from ? {[pageField || 'page']: 1} : undefined,\n undefined,\n true,\n true\n );\n } else if (\n value &&\n ((value.hasOwnProperty('items') && (value as any).items) ||\n value.hasOwnProperty('ids')) &&\n this.control.bulkUpdate\n ) {\n this.control.bulkUpdate(value, (value as any).items);\n }\n }\n }\n\n const reload = action.reload ?? dialogAction.reload;\n if (reload) {\n this.reloadTarget(reload, ctx);\n }\n\n let redirect = action.redirect ?? dialogAction.redirect;\n redirect = redirect && filter(redirect, ctx);\n redirect && env.jumpTo(redirect, dialogAction);\n }\n\n handleDialogClose(confirmed = false) {\n const {store, stopAutoRefreshWhenModalIsOpen, silentPolling, interval} =\n this.props;\n store.closeDialog(confirmed);\n\n if (stopAutoRefreshWhenModalIsOpen && interval) {\n this.timer = setTimeout(\n silentPolling ? this.silentSearch : this.search,\n Math.max(interval, 1000)\n );\n }\n }\n\n openFeedback(dialog: any, ctx: any) {\n return new Promise(resolve => {\n const {store} = this.props;\n store.setCurrentAction({\n type: 'button',\n actionType: 'dialog',\n dialog: dialog\n });\n store.openDialog(ctx, undefined, confirmed => {\n resolve(confirmed);\n });\n });\n }\n\n search(\n values?: any,\n silent?: boolean,\n clearSelection?: boolean,\n forceReload = false\n ) {\n const {\n store,\n api,\n messages,\n pageField,\n perPageField,\n interval,\n stopAutoRefreshWhen,\n stopAutoRefreshWhenModalIsOpen,\n silentPolling,\n syncLocation,\n syncResponse2Query,\n keepItemSelectionOnPageChange,\n pickerMode,\n env,\n loadDataOnce,\n loadDataOnceFetchOnFilter,\n source,\n columns\n } = this.props;\n\n // reload 需要清空用户选择。\n if (keepItemSelectionOnPageChange && clearSelection && !pickerMode) {\n store.setSelectedItems([]);\n store.setUnSelectedItems([]);\n }\n\n let loadDataMode = '';\n if (values && typeof values.loadDataMode === 'string') {\n loadDataMode = 'load-more';\n delete values.loadDataMode;\n }\n\n clearTimeout(this.timer);\n values &&\n store.updateQuery(\n values,\n !loadDataMode && syncLocation && env && env.updateLocation\n ? env.updateLocation\n : undefined,\n pageField,\n perPageField\n );\n this.lastQuery = store.query;\n const data = createObject(store.data, store.query);\n isEffectiveApi(api, data)\n ? store\n .fetchInitData(api, data, {\n successMessage: messages && messages.fetchSuccess,\n errorMessage: messages && messages.fetchFailed,\n autoAppend: true,\n forceReload,\n loadDataOnce,\n loadDataOnceFetchOnFilter,\n source,\n silent,\n pageField,\n perPageField,\n loadDataMode,\n syncResponse2Query,\n columns: store.columns ?? columns\n })\n .then(value => {\n interval &&\n this.mounted &&\n (!stopAutoRefreshWhen ||\n !(\n (stopAutoRefreshWhenModalIsOpen && store.hasModalOpened) ||\n evalExpression(\n stopAutoRefreshWhen,\n createObject(store.data, store.query)\n )\n )) &&\n (this.timer = setTimeout(\n silentPolling\n ? this.silentSearch.bind(this, undefined, undefined, true)\n : this.search.bind(\n this,\n undefined,\n undefined,\n undefined,\n true\n ),\n Math.max(interval, 1000)\n ));\n return value;\n })\n : source && store.initFromScope(data, source);\n }\n\n silentSearch(values?: object, clearSelection?: boolean, forceReload = false) {\n return this.search(values, true, clearSelection, forceReload);\n }\n\n handleChangePage(page: number, perPage?: number) {\n const {\n store,\n syncLocation,\n env,\n pageField,\n perPageField,\n autoJumpToTopOnPagerChange,\n affixOffsetTop\n } = this.props;\n\n let query: any = {\n [pageField || 'page']: page\n };\n\n if (perPage) {\n query[perPageField || 'perPage'] = perPage;\n }\n\n store.updateQuery(\n query,\n syncLocation && env?.updateLocation ? env.updateLocation : undefined,\n pageField,\n perPageField\n );\n\n this.search(undefined, undefined, undefined);\n\n if (autoJumpToTopOnPagerChange && this.control) {\n (findDOMNode(this.control) as HTMLElement).scrollIntoView();\n const scrolledY = window.scrollY;\n const offsetTop = affixOffsetTop ?? env?.affixOffsetTop ?? 0;\n scrolledY && window.scroll(0, scrolledY - offsetTop);\n }\n }\n\n handleSave(\n rows: Array<object> | object,\n diff: Array<object> | object,\n indexes: Array<string>,\n unModifiedItems?: Array<any>,\n rowsOrigin?: Array<object> | object,\n resetOnFailed?: boolean\n ) {\n const {\n store,\n quickSaveApi,\n quickSaveItemApi,\n primaryField,\n env,\n messages,\n reload\n } = this.props;\n\n if (Array.isArray(rows)) {\n if (!isEffectiveApi(quickSaveApi)) {\n env && env.alert('CRUD quickSaveApi is required');\n return;\n }\n\n const data: any = createObject(store.data, {\n rows,\n rowsDiff: diff,\n indexes: indexes,\n rowsOrigin\n });\n\n if (rows.length && rows[0].hasOwnProperty(primaryField || 'id')) {\n data.ids = rows\n .map(item => (item as any)[primaryField || 'id'])\n .join(',');\n }\n\n if (unModifiedItems) {\n data.unModifiedItems = unModifiedItems;\n }\n\n store\n .saveRemote(quickSaveApi, data, {\n successMessage: messages && messages.saveFailed,\n errorMessage: messages && messages.saveSuccess\n })\n .then(() => {\n reload && this.reloadTarget(reload, data);\n this.search(undefined, undefined, true, true);\n })\n .catch(() => {});\n } else {\n if (!isEffectiveApi(quickSaveItemApi)) {\n env && env.alert('CRUD quickSaveItemApi is required!');\n return;\n }\n\n const data = createObject(store.data, {\n item: rows,\n modified: diff,\n origin: rowsOrigin\n });\n\n const sendData = createObject(data, rows);\n store\n .saveRemote(quickSaveItemApi, sendData)\n .then(() => {\n reload && this.reloadTarget(reload, data);\n this.search(undefined, undefined, true, true);\n })\n .catch(() => {\n resetOnFailed && this.control.reset();\n });\n }\n }\n\n handleSaveOrder(moved: Array<object>, rows: Array<object>) {\n const {store, saveOrderApi, orderField, primaryField, env, reload} =\n this.props;\n\n if (!saveOrderApi) {\n env && env.alert('CRUD saveOrderApi is required!');\n return;\n }\n\n const model: {\n insertAfter?: any;\n insertBefore?: any;\n idMap?: any;\n rows?: any;\n ids?: any;\n order?: any;\n } = createObject(store.data);\n\n let insertAfter: any;\n let insertBefore: any;\n const holding: Array<object> = [];\n const hasIdField =\n primaryField &&\n rows[0] &&\n (rows[0] as object).hasOwnProperty(primaryField);\n\n hasIdField || (model.idMap = {});\n\n model.insertAfter = {};\n rows.forEach((item: any) => {\n if (~moved.indexOf(item)) {\n if (insertAfter) {\n let insertAfterId = hasIdField\n ? (insertAfter as any)[primaryField as string]\n : rows.indexOf(insertAfter);\n model.insertAfter[insertAfterId] =\n (model as any).insertAfter[insertAfterId] || [];\n\n hasIdField || (model.idMap[insertAfterId] = insertAfter);\n model.insertAfter[insertAfterId].push(\n hasIdField ? item[primaryField as string] : item\n );\n } else {\n holding.push(item);\n }\n } else {\n insertAfter = item;\n insertBefore = insertBefore || item;\n }\n });\n\n if (insertBefore && holding.length) {\n let insertBeforeId = hasIdField\n ? insertBefore[primaryField as string]\n : rows.indexOf(insertBefore);\n hasIdField || (model.idMap[insertBeforeId] = insertBefore);\n model.insertBefore = {};\n model.insertBefore[insertBeforeId] = holding.map((item: any) =>\n hasIdField ? item[primaryField as string] : item\n );\n } else if (holding.length) {\n const first: any = holding[0];\n const firstId = hasIdField\n ? first[primaryField as string]\n : rows.indexOf(first);\n\n hasIdField || (model.idMap[firstId] = first);\n model.insertAfter[firstId] = holding\n .slice(1)\n .map((item: any) => (hasIdField ? item[primaryField as string] : item));\n }\n\n if (orderField) {\n const start = (store.page - 1) * store.perPage || 0;\n rows = rows.map((item, key) =>\n extendObject(item, {\n [orderField]: start + key + 1\n })\n );\n }\n\n model.rows = rows.concat();\n hasIdField &&\n (model.ids = rows\n .map((item: any) => item[primaryField as string])\n .join(','));\n hasIdField &&\n orderField &&\n (model.order = rows.map(item =>\n pick(item, [primaryField as string, orderField])\n ));\n\n isEffectiveApi(saveOrderApi, model) &&\n store\n .saveRemote(saveOrderApi, model)\n .then(() => {\n reload && this.reloadTarget(reload, model);\n this.search(undefined, undefined, true, true);\n })\n .catch(() => {});\n }\n\n handleSelect(items: Array<any>, unSelectedItems: Array<any>) {\n const {\n store,\n keepItemSelectionOnPageChange,\n primaryField,\n multiple,\n pickerMode,\n onSelect\n } = this.props;\n\n let newItems = items;\n let newUnSelectedItems = unSelectedItems;\n\n if (keepItemSelectionOnPageChange && store.selectedItems.length) {\n const oldItems = store.selectedItems.concat();\n const oldUnselectedItems = store.unSelectedItems.concat();\n\n items.forEach(item => {\n const idx = findIndex(\n oldItems,\n a =>\n a === item ||\n (a[primaryField || 'id'] &&\n a[primaryField || 'id'] == item[primaryField || 'id'])\n );\n\n if (~idx) {\n oldItems[idx] = item;\n } else {\n oldItems.push(item);\n }\n\n const idx2 = findIndex(\n oldUnselectedItems,\n a =>\n a === item ||\n (a[primaryField || 'id'] &&\n a[primaryField || 'id'] == item[primaryField || 'id'])\n );\n\n if (~idx2) {\n oldUnselectedItems.splice(idx2, 1);\n }\n });\n\n unSelectedItems.forEach(item => {\n const idx = findIndex(\n oldUnselectedItems,\n a =>\n a === item ||\n (a[primaryField || 'id'] &&\n a[primaryField || 'id'] == item[primaryField || 'id'])\n );\n\n const idx2 = findIndex(\n oldItems,\n a =>\n a === item ||\n (a[primaryField || 'id'] &&\n a[primaryField || 'id'] == item[primaryField || 'id'])\n );\n\n if (~idx) {\n oldUnselectedItems[idx] = item;\n } else {\n oldUnselectedItems.push(item);\n }\n\n ~idx2 && oldItems.splice(idx2, 1);\n });\n\n newItems = oldItems;\n newUnSelectedItems = oldUnselectedItems;\n\n // const thisBatch = items.concat(unSelectedItems);\n // let notInThisBatch = (item: any) =>\n // !find(\n // thisBatch,\n // a => a[primaryField || 'id'] == item[primaryField || 'id']\n // );\n\n // newItems = store.selectedItems.filter(notInThisBatch);\n // newUnSelectedItems = store.unSelectedItems.filter(notInThisBatch);\n\n // newItems.push(...items);\n // newUnSelectedItems.push(...unSelectedItems);\n }\n\n if (pickerMode && multiple === false && newItems.length > 1) {\n newUnSelectedItems.push.apply(\n newUnSelectedItems,\n newItems.splice(0, newItems.length - 1)\n );\n }\n\n store.setSelectedItems(newItems);\n store.setUnSelectedItems(newUnSelectedItems);\n onSelect && onSelect(newItems);\n }\n\n handleChildPopOverOpen(popOver: any) {\n if (\n this.props.interval &&\n popOver &&\n ~['dialog', 'drawer'].indexOf(popOver.mode)\n ) {\n this.props.stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);\n this.props.store.setInnerModalOpened(true);\n }\n }\n\n handleChildPopOverClose(popOver: any) {\n const {stopAutoRefreshWhenModalIsOpen, silentPolling, interval} =\n this.props;\n\n if (popOver && ~['dialog', 'drawer'].indexOf(popOver.mode)) {\n this.props.store.setInnerModalOpened(false);\n\n if (stopAutoRefreshWhenModalIsOpen && interval) {\n this.timer = setTimeout(\n silentPolling ? this.silentSearch : this.search,\n Math.max(interval, 1000)\n );\n }\n }\n }\n\n handleQuery(values: object, forceReload: boolean = false) {\n const {store, syncLocation, env, pageField, perPageField} = this.props;\n\n store.updateQuery(\n {\n ...values,\n [pageField || 'page']: 1\n },\n syncLocation && env && env.updateLocation\n ? env.updateLocation\n : undefined,\n pageField,\n perPageField\n );\n this.search(undefined, undefined, undefined, forceReload);\n }\n\n reload(subpath?: string, query?: any) {\n if (query) {\n return this.receive(query);\n } else {\n this.search(undefined, undefined, true, true);\n }\n }\n\n receive(values: object) {\n this.handleQuery(values, true);\n }\n\n reloadTarget(target: string, data: any) {\n // implement this.\n }\n\n closeTarget(target: string) {\n // implement this.\n }\n\n doAction(action: Action, data: object, throwErrors: boolean = false) {\n return this.handleAction(undefined, action, data, throwErrors);\n }\n\n unSelectItem(item: any, index: number) {\n const {store} = this.props;\n const selected = store.selectedItems.concat();\n const unSelected = store.unSelectedItems.concat();\n\n const idx = selected.indexOf(item);\n ~idx && unSelected.push.apply(unSelected, selected.splice(idx, 1));\n\n store.setSelectedItems(selected);\n store.setUnSelectedItems(unSelected);\n }\n\n clearSelection() {\n const {store} = this.props;\n const selected = store.selectedItems.concat();\n const unSelected = store.unSelectedItems.concat();\n\n store.setSelectedItems([]);\n store.setUnSelectedItems(unSelected.concat(selected));\n }\n\n hasBulkActionsToolbar() {\n const {headerToolbar, footerToolbar} = this.props;\n\n const isBulkActions = (item: any) =>\n ~['bulkActions', 'bulk-actions'].indexOf(item.type || item);\n return (\n (Array.isArray(headerToolbar) && find(headerToolbar, isBulkActions)) ||\n (Array.isArray(footerToolbar) && find(footerToolbar, isBulkActions))\n );\n }\n\n hasBulkActions() {\n const {bulkActions, itemActions, store} = this.props;\n\n if (!bulkActions || !bulkActions.length) {\n return false;\n }\n\n let bulkBtns: Array<ActionSchema> = [];\n const ctx = store.mergedData;\n\n if (bulkActions && bulkActions.length) {\n bulkBtns = bulkActions\n .map(item => ({\n ...item,\n ...getExprProperties(item as Schema, ctx)\n }))\n .filter(item => !item.hidden && item.visible !== false);\n }\n\n return bulkBtns.length;\n }\n\n renderBulkActions(childProps: any) {\n let {bulkActions, itemActions, store, render, classnames: cx} = this.props;\n\n if (!bulkActions || !bulkActions.length) {\n return null;\n }\n\n const selectedItems = store.selectedItems;\n const unSelectedItems = store.unSelectedItems;\n\n let bulkBtns: Array<ActionSchema> = [];\n let itemBtns: Array<ActionSchema> = [];\n\n const ctx = store.mergedData;\n\n // const ctx = createObject(store.data, {\n // ...store.query,\n // items: childProps.items,\n // selectedItems: childProps.selectedItems,\n // unSelectedItems: childProps.unSelectedItems\n // });\n\n if (\n bulkActions &&\n bulkActions.length &&\n (!itemActions || !itemActions.length || selectedItems.length > 1)\n ) {\n bulkBtns = bulkActions\n .map(item => ({\n ...item,\n ...getExprProperties(item as Schema, ctx)\n }))\n .filter(item => !item.hidden && item.visible !== false);\n }\n\n const itemData = createObject(\n store.data,\n selectedItems.length ? selectedItems[0] : {}\n );\n\n if (itemActions && selectedItems.length <= 1) {\n itemBtns = itemActions\n .map(item => ({\n ...item,\n ...getExprProperties(item as Schema, itemData)\n }))\n .filter(item => !item.hidden && item.visible !== false);\n }\n\n return bulkBtns.length || itemBtns.length ? (\n <div className={cx('Crud-actions')}>\n {bulkBtns.map((btn, index) =>\n render(\n `bulk-action/${index}`,\n {\n ...omit(btn, ['visibleOn', 'hiddenOn', 'disabledOn']),\n type: btn.type || 'button',\n ignoreConfirm: true\n },\n {\n key: `bulk-${index}`,\n data: ctx,\n disabled:\n btn.disabled ||\n (btn.requireSelected !== false ? !selectedItems.length : false),\n onAction: this.handleBulkAction.bind(\n this,\n selectedItems.concat(),\n unSelectedItems.concat()\n )\n }\n )\n )}\n\n {itemBtns.map((btn, index) =>\n render(\n `bulk-action/${index}`,\n {\n ...omit(btn, ['visibleOn', 'hiddenOn', 'disabledOn']),\n type: 'button'\n },\n {\n key: `item-${index}`,\n data: itemData,\n disabled: btn.disabled || selectedItems.length !== 1,\n onAction: this.handleItemAction.bind(this, btn, itemData)\n }\n )\n )}\n </div>\n ) : null;\n }\n\n renderPagination(toolbar: SchemaNode) {\n const {store, render, classnames: cx, alwaysShowPagination} = this.props;\n const {page, lastPage} = store;\n\n if (\n store.mode !== 'simple' &&\n store.lastPage < 2 &&\n !alwaysShowPagination\n ) {\n return null;\n }\n\n const extraProps: Pick<\n PaginationProps,\n 'showPageInput' | 'maxButtons' | 'layout'\n > = {};\n\n /** 优先级:showPageInput显性配置 > (lastPage > 9) */\n if (typeof toolbar !== 'string') {\n const showPageInput = (toolbar as Schema).showPageInput;\n\n extraProps.showPageInput =\n showPageInput === true || (lastPage > 9 && showPageInput == null);\n extraProps.maxButtons = (toolbar as Schema).maxButtons;\n extraProps.layout = (toolbar as Schema).layout;\n } else {\n extraProps.showPageInput = lastPage > 9;\n }\n\n return (\n <div className={cx('Crud-pager')}>\n {render(\n 'pagination',\n {\n type: 'pagination'\n },\n {\n ...extraProps,\n activePage: page,\n lastPage: lastPage,\n hasNext: store.hasNext,\n mode: store.mode,\n perPage: store.perPage,\n onPageChange: this.handleChangePage\n }\n )}\n </div>\n );\n }\n\n renderStatistics() {\n const {\n store,\n classnames: cx,\n translate: __,\n alwaysShowPagination\n } = this.props;\n\n if (store.lastPage <= 1 && !alwaysShowPagination) {\n return null;\n }\n\n return (\n <div className={cx('Crud-statistics')}>\n {__('CRUD.stat', {\n page: store.page,\n lastPage: store.lastPage,\n total: store.total\n })}\n </div>\n );\n }\n\n renderSwitchPerPage(childProps: any) {\n const {\n store,\n perPageAvailable,\n classnames: cx,\n classPrefix: ns,\n translate: __\n } = this.props;\n\n const items = childProps.items;\n\n if (!items.length) {\n return null;\n }\n\n const perPages = (perPageAvailable || [5, 10, 20, 50, 100]).map(\n (item: any) => ({\n label: item,\n value: item + ''\n })\n );\n\n return (\n <div className={cx('Crud-pageSwitch')}>\n <span>{__('CRUD.perPage')}</span>\n <Select\n classPrefix={ns}\n searchable={false}\n placeholder={__('Select.placeholder')}\n options={perPages}\n value={store.perPage + ''}\n onChange={(value: any) => this.handleChangePage(1, value.value)}\n clearable={false}\n />\n </div>\n );\n }\n\n renderLoadMore() {\n const {store, classPrefix: ns, classnames: cx, translate: __} = this.props;\n const {page, lastPage} = store;\n\n return page < lastPage ? (\n <div className={cx('Crud-loadMore')}>\n <Button\n classPrefix={ns}\n onClick={() =>\n this.search({page: page + 1, loadDataMode: 'load-more'})\n }\n size=\"sm\"\n >\n {__('CRUD.loadMore')}\n </Button>\n </div>\n ) : (\n ''\n );\n }\n\n renderFilterToggler() {\n const {store, classnames: cx, translate: __} = this.props;\n\n if (!store.filterTogggable) {\n return null;\n }\n\n return (\n <button\n onClick={() => store.setFilterVisible(!store.filterVisible)}\n className={cx('Button Button--sm Button--default', {\n 'is-active': store.filterVisible\n })}\n >\n <Icon icon=\"filter\" className=\"icon m-r-xs\" />\n {__('CRUD.filter')}\n </button>\n );\n }\n\n renderExportCSV(toolbar: Schema) {\n const {\n store,\n classPrefix: ns,\n classnames: cx,\n translate: __,\n loadDataOnce,\n data\n } = this.props;\n\n const api = (toolbar as Schema).api;\n\n return (\n <Button\n classPrefix={ns}\n onClick={() =>\n store.exportAsCSV({\n loadDataOnce,\n api,\n data\n })\n }\n >\n {toolbar.label || __('CRUD.exportCSV')}\n </Button>\n );\n }\n\n renderToolbar(\n toolbar?: SchemaNode,\n index: number = 0,\n childProps: any = {},\n toolbarRenderer?: (toolbar: SchemaNode, index: number) => React.ReactNode\n ) {\n if (!toolbar) {\n return null;\n }\n\n const {render, store, translate: __} = this.props;\n const type = (toolbar as Schema).type || toolbar;\n\n if (type === 'bulkActions' || type === 'bulk-actions') {\n return this.renderBulkActions(childProps);\n } else if (type === 'pagination') {\n return this.renderPagination(toolbar);\n } else if (type === 'statistics') {\n return this.renderStatistics();\n } else if (type === 'switch-per-page') {\n return this.renderSwitchPerPage(childProps);\n } else if (type === 'load-more') {\n return this.renderLoadMore();\n } else if (type === 'filter-toggler') {\n return this.renderFilterToggler();\n } else if (type === 'export-csv') {\n return this.renderExportCSV(toolbar as Schema);\n } else if (type === 'reload') {\n let reloadButton = {\n label: '',\n icon: 'fa fa-sync',\n tooltip: __('reload'),\n tooltipPlacement: 'top',\n type: 'button'\n };\n if (typeof toolbar === 'object') {\n reloadButton = {...reloadButton, ...omit(toolbar, ['type', 'align'])};\n }\n return render(`toolbar/${index}`, reloadButton, {\n onAction: () => {\n this.reload();\n }\n });\n } else if (Array.isArray(toolbar)) {\n const children: Array<any> = toolbar\n .filter((toolbar: any) => isVisible(toolbar, store.filterData))\n .map((toolbar, index) => ({\n dom: this.renderToolbar(toolbar, index, childProps, toolbarRenderer),\n toolbar\n }))\n .filter(item => item.dom);\n const len = children.length;\n const cx = this.props.classnames;\n if (len) {\n return (\n <div className={cx('Crud-toolbar')} key={index}>\n {children.map(({toolbar, dom: child}, index) => {\n const type = (toolbar as Schema).type || toolbar;\n let align =\n toolbar.align || (type === 'pagination' ? 'right' : 'left');\n return (\n <div\n key={index}\n className={cx(\n 'Crud-toolbar-item',\n align ? `Crud-toolbar-item--${align}` : '',\n toolbar.className\n )}\n >\n {child}\n </div>\n );\n })}\n </div>\n );\n }\n return null;\n }\n\n const result = toolbarRenderer\n ? toolbarRenderer(toolbar, index)\n : undefined;\n\n if (result !== void 0) {\n return result;\n }\n\n const $$editable = childProps.$$editable;\n\n return render(`toolbar/${index}`, toolbar, {\n // 包两层,主要是为了处理以下 case\n // 里面放了个 form,form 提交过来的时候不希望把 items 这些发送过来。\n // 因为会把数据呈现在地址栏上。\n data: createObject(\n createObject(store.filterData, {\n items: childProps.items,\n selectedItems: childProps.selectedItems,\n unSelectedItems: childProps.unSelectedItems\n }),\n {}\n ),\n page: store.page,\n lastPage: store.lastPage,\n perPage: store.perPage,\n total: store.total,\n onQuery: this.handleQuery,\n onAction: this.handleAction,\n onChangePage: this.handleChangePage,\n onBulkAction: this.handleBulkAction,\n $$editable\n });\n }\n\n renderHeaderToolbar(\n childProps: any,\n toolbarRenderer?: (toolbar: SchemaNode, index: number) => React.ReactNode\n ) {\n let {toolbar, toolbarInline, headerToolbar} = this.props;\n\n if (toolbar) {\n if (Array.isArray(headerToolbar)) {\n headerToolbar = toolbarInline\n ? headerToolbar.concat(toolbar)\n : [headerToolbar, toolbar];\n } else if (headerToolbar) {\n headerToolbar = [headerToolbar, toolbar];\n } else {\n headerToolbar = toolbar;\n }\n }\n\n return this.renderToolbar(\n headerToolbar || [],\n 0,\n childProps,\n toolbarRenderer\n );\n }\n\n renderFooterToolbar(\n childProps: any,\n toolbarRenderer?: (toolbar: SchemaNode, index: number) => React.ReactNode\n ) {\n let {toolbar, toolbarInline, footerToolbar} = this.props;\n\n if (toolbar) {\n if (Array.isArray(footerToolbar)) {\n footerToolbar = toolbarInline\n ? footerToolbar.concat(toolbar)\n : [footerToolbar, toolbar];\n } else if (footerToolbar) {\n footerToolbar = [footerToolbar, toolbar];\n } else {\n footerToolbar = toolbar;\n }\n }\n\n return this.renderToolbar(footerToolbar, 0, childProps, toolbarRenderer);\n }\n\n renderSelection(): React.ReactNode {\n const {\n store,\n classnames: cx,\n labelField,\n labelTpl,\n primaryField,\n translate: __\n } = this.props;\n\n if (!store.selectedItems.length) {\n return null;\n }\n\n return (\n <div className={cx('Crud-selection')}>\n <div className={cx('Crud-selectionLabel')}>\n {__('CRUD.selected', {total: store.selectedItems.length})}\n </div>\n {store.selectedItems.map((item, index) => (\n <div key={index} className={cx(`Crud-value`)}>\n <span\n data-tooltip={__('delete')}\n data-position=\"bottom\"\n className={cx('Crud-valueIcon')}\n onClick={this.unSelectItem.bind(this, item, index)}\n >\n ×\n </span>\n <span className={cx('Crud-valueLabel')}>\n {labelTpl ? (\n <Html html={filter(labelTpl, item)} />\n ) : (\n getVariable(item, labelField || 'label') ||\n getVariable(item, primaryField || 'id')\n )}\n </span>\n </div>\n ))}\n <a onClick={this.clearSelection} className={cx('Crud-selectionClear')}>\n {__('clear')}\n </a>\n </div>\n );\n }\n\n render() {\n const {\n className,\n bodyClassName,\n filter,\n render,\n store,\n mode,\n syncLocation,\n children,\n bulkActions,\n pickerMode,\n multiple,\n valueField,\n primaryField,\n value,\n hideQuickSaveBtn,\n itemActions,\n classnames: cx,\n keepItemSelectionOnPageChange,\n maxKeepItemSelectionLength,\n onAction,\n popOverContainer,\n translate: __,\n onQuery,\n autoGenerateFilter,\n onSelect,\n autoFillHeight,\n ...rest\n } = this.props;\n\n return (\n <div\n className={cx('Crud', className, {\n 'is-loading': store.loading\n })}\n >\n {filter && (!store.filterTogggable || store.filterVisible)\n ? render(\n 'filter',\n {\n title: __('CRUD.filter'),\n mode: 'inline',\n submitText: __('search'),\n ...filter,\n type: 'form',\n api: null\n },\n {\n key: 'filter',\n panelClassName: cx(\n 'Crud-filter',\n filter.panelClassName || 'Panel--default'\n ),\n data: store.filterData,\n onReset: this.handleFilterReset,\n onSubmit: this.handleFilterSubmit,\n onInit: this.handleFilterInit,\n formStore: undefined\n }\n )\n : null}\n\n {keepItemSelectionOnPageChange && multiple !== false\n ? this.renderSelection()\n : null}\n\n {render(\n 'body',\n {\n ...rest,\n columns: store.columns ?? rest.columns,\n type: mode || 'table'\n },\n {\n key: 'body',\n className: cx('Crud-body', bodyClassName),\n ref: this.controlRef,\n autoGenerateFilter: !filter && autoGenerateFilter,\n autoFillHeight: autoFillHeight,\n selectable: !!(\n (this.hasBulkActionsToolbar() && this.hasBulkActions()) ||\n pickerMode\n ),\n itemActions,\n multiple:\n multiple === void 0\n ? bulkActions && bulkActions.length > 0\n ? true\n : false\n : multiple,\n selected:\n pickerMode || keepItemSelectionOnPageChange\n ? store.selectedItemsAsArray\n : undefined,\n keepItemSelectionOnPageChange,\n maxKeepItemSelectionLength,\n valueField: valueField || primaryField,\n primaryField: primaryField,\n hideQuickSaveBtn,\n items: store.data.items,\n query: store.query,\n orderBy: store.query.orderBy,\n orderDir: store.query.orderDir,\n popOverContainer,\n onAction: this.handleAction,\n onSave: this.handleSave,\n onSaveOrder: this.handleSaveOrder,\n onQuery: this.handleQuery,\n onSelect: this.handleSelect,\n onPopOverOpened: this.handleChildPopOverOpen,\n onPopOverClosed: this.handleChildPopOverClose,\n onSearchableFromReset: this.handleFilterReset,\n onSearchableFromSubmit: this.handleFilterSubmit,\n onSearchableFromInit: this.handleFilterInit,\n headerToolbarRender: this.renderHeaderToolbar,\n footerToolbarRender: this.renderFooterToolbar,\n data: store.mergedData,\n loading: store.loading\n }\n )}\n\n <Spinner overlay size=\"lg\" key=\"info\" show={store.loading} />\n\n {render(\n 'dialog',\n {\n ...((store.action as Action) &&\n ((store.action as Action).dialog as object)),\n type: 'dialog'\n },\n {\n key: 'dialog',\n data: store.dialogData,\n onConfirm: this.handleDialogConfirm,\n onClose: this.handleDialogClose,\n show: store.dialogOpen\n }\n )}\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'crud',\n storeType: CRUDStore.name,\n isolateScope: true\n})\nexport class CRUDRenderer extends CRUD {\n static contextType = ScopedContext;\n\n constructor(props: CRUDProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n reload(subpath?: string, query?: any, ctx?: any) {\n const scoped = this.context as IScopedContext;\n if (subpath) {\n return scoped.reload(\n query ? `${subpath}?${qsstringify(query)}` : subpath,\n ctx\n );\n }\n\n return super.reload(subpath, query);\n }\n\n receive(values: any, subPath?: string) {\n const scoped = this.context as IScopedContext;\n if (subPath) {\n return scoped.send(subPath, values);\n }\n\n return super.receive(values);\n }\n\n reloadTarget(target: string, data: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n\n closeTarget(target: string) {\n const scoped = this.context as IScopedContext;\n scoped.close(target);\n }\n}\n"
11
+ "import React from 'react';\n\nimport {Renderer, RendererProps} from '../factory';\nimport {SchemaNode, Schema, Action, PlainObject} from '../types';\nimport {CRUDStore, ICRUDStore} from '../store/crud';\nimport {\n createObject,\n extendObject,\n anyChanged,\n isObjectShallowModified,\n isVisible,\n getPropValue,\n getVariable,\n qsstringify,\n qsparse,\n isArrayChildrenModified\n} from '../utils/helper';\nimport {ScopedContext, IScopedContext} from '../Scoped';\nimport Button from '../components/Button';\nimport Select from '../components/Select';\nimport getExprProperties from '../utils/filter-schema';\nimport pick from 'lodash/pick';\nimport {findDOMNode} from 'react-dom';\nimport {evalExpression, filter} from '../utils/tpl';\nimport {isEffectiveApi, isApiOutdated, str2function} from '../utils/api';\nimport omit from 'lodash/omit';\nimport find from 'lodash/find';\nimport findIndex from 'lodash/findIndex';\nimport Html from '../components/Html';\nimport {Spinner} from '../components';\nimport {Icon} from '../components/icons';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaClassName,\n SchemaExpression,\n SchemaMessage,\n SchemaName,\n SchemaObject,\n SchemaTokenizeableString,\n SchemaTpl\n} from '../Schema';\nimport {ActionSchema} from './Action';\nimport {CardsSchema} from './Cards';\nimport {ListSchema} from './List';\nimport {TableSchema} from './Table';\nimport {isPureVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';\n\nimport type {PaginationProps} from './Pagination';\n\nexport type CRUDBultinToolbarType =\n | 'columns-toggler'\n | 'drag-toggler'\n | 'pagination'\n | 'bulkActions'\n | 'bulk-actions'\n | 'statistics'\n | 'switch-per-page'\n | 'load-more'\n | 'filter-toggler'\n | 'export-csv'\n | 'export-excel';\n\nexport interface CRUDBultinToolbar extends Omit<BaseSchema, 'type'> {\n type: CRUDBultinToolbarType;\n}\n\nexport type CRUDToolbarChild = SchemaObject | CRUDBultinToolbar;\n\nexport type CRUDToolbarObject = {\n /**\n * 对齐方式\n */\n align?: 'left' | 'right';\n};\n\nexport interface CRUDCommonSchema extends BaseSchema {\n /**\n * 指定为 CRUD 渲染器。\n */\n type: 'crud';\n\n /**\n * 指定内容区的展示模式。\n */\n mode?: 'table' | 'grid' | 'cards' | /* grid 的别名*/ 'list';\n\n /**\n * 初始化数据 API\n */\n api?: SchemaApi;\n\n /**\n * 批量操作\n */\n bulkActions?: Array<ActionSchema>;\n\n /**\n * 单条操作\n */\n itemActions?: Array<ActionSchema>;\n\n /**\n * 每页个数,默认为 10,如果不是请设置。\n *\n * @default 10\n */\n perPage?: number;\n\n /**\n * 默认排序字段\n */\n orderBy?: string;\n\n /**\n * 默认排序方向\n */\n orderDir?: 'asc' | 'desc';\n\n /**\n * 可以默认给定初始参数如: {\\\"perPage\\\": 24}\n */\n defaultParams?: PlainObject;\n\n /**\n * 是否可通过拖拽排序\n */\n draggable?: boolean;\n\n /**\n * 是否可通过拖拽排序,通过表达式来配置\n */\n draggableOn?: SchemaExpression;\n\n name?: SchemaName;\n\n /**\n * 过滤器表单\n */\n filter?: any; // todo\n\n /**\n * 初始是否拉取\n * @deprecated 建议用 api 的 sendOn 代替。\n */\n initFetch?: boolean;\n\n /**\n * 初始是否拉取,用表达式来配置。\n * @deprecated 建议用 api 的 sendOn 代替。\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 配置内部 DOM 的 className\n */\n innerClassName?: SchemaClassName;\n\n /**\n * 设置自动刷新时间\n */\n interval?: number;\n\n /**\n * 设置用来确定位置的字段名,设置后新的顺序将被赋值到该字段中。\n */\n orderField?: string;\n\n /**\n * 设置分页页码字段名。\n * @default page\n */\n pageField?: string;\n\n /**\n * 设置分页一页显示的多少条数据的字段名。\n * @default perPage\n */\n perPageField?: string;\n\n /**\n * 快速编辑后用来批量保存的 API\n */\n quickSaveApi?: SchemaApi;\n\n /**\n * 快速编辑配置成及时保存时使用的 API\n */\n quickSaveItemApi?: SchemaApi;\n\n /**\n * 保存排序的 api\n */\n saveOrderApi?: SchemaApi;\n\n /**\n * 是否将过滤条件的参数同步到地址栏,默认为true\n * @default true\n */\n syncLocation?: boolean;\n\n /**\n * 顶部工具栏\n */\n headerToolbar?: Array<\n (CRUDToolbarChild & CRUDToolbarObject) | CRUDBultinToolbarType\n >;\n\n /**\n * 底部工具栏\n */\n footerToolbar?: Array<\n (CRUDToolbarChild & CRUDToolbarObject) | CRUDBultinToolbarType\n >;\n\n /**\n * 每页显示多少个空间成员的配置如: [10, 20, 50, 100]。\n */\n perPageAvailable?: Array<number>;\n\n messages?: SchemaMessage;\n\n /**\n * 是否隐藏快速编辑的按钮。\n */\n hideQuickSaveBtn?: boolean;\n\n /**\n * 是否自动跳顶部,当切分页的时候。\n */\n autoJumpToTopOnPagerChange?: boolean;\n\n /**\n * 静默拉取\n */\n silentPolling?: boolean;\n stopAutoRefreshWhen?: SchemaExpression;\n\n stopAutoRefreshWhenModalIsOpen?: boolean;\n filterTogglable?: boolean;\n filterDefaultVisible?: boolean;\n\n /**\n * 是否将接口返回的内容自动同步到地址栏,前提是开启了同步地址栏。\n */\n syncResponse2Query?: boolean;\n\n /**\n * 分页的时候是否保留用户选择。\n */\n keepItemSelectionOnPageChange?: boolean;\n\n /**\n * 当配置 keepItemSelectionOnPageChange 时有用,用来配置已勾选项的文案。\n */\n labelTpl?: SchemaTpl;\n\n /**\n * 是否为前端单次加载模式,可以用来实现前端分页。\n */\n loadDataOnce?: boolean;\n\n /**\n * 在开启loadDataOnce时,filter时是否去重新请求api\n */\n loadDataOnceFetchOnFilter?: boolean;\n\n /**\n * 也可以直接从环境变量中读取,但是不太推荐。\n */\n source?: SchemaTokenizeableString;\n\n /**\n * 如果时内嵌模式,可以通过这个来配置默认的展开选项。\n */\n expandConfig?: {\n /**\n * 默认是展开第一个、所有、还是都不展开。\n */\n expand?: 'first' | 'all' | 'none';\n\n /**\n * 是否显示全部切换按钮\n */\n expandAll?: boolean;\n\n /**\n * 是否为手风琴模式\n */\n accordion?: boolean;\n };\n\n /**\n * 默认只有当分页数大于 1 是才显示,如果总是想显示请配置。\n */\n alwaysShowPagination?: boolean;\n\n /**\n * 开启查询区域,会根据列元素的searchable属性值,自动生成查询条件表单\n */\n autoGenerateFilter?: boolean;\n\n /**\n * 内容区域占满屏幕剩余空间\n */\n autoFillHeight?: boolean;\n}\n\nexport type CRUDCardsSchema = CRUDCommonSchema & {\n mode: 'cards';\n} & Omit<CardsSchema, 'type'>;\n\nexport type CRUDListSchema = CRUDCommonSchema & {\n mode: 'list';\n} & Omit<ListSchema, 'type'>;\n\nexport type CRUDTableSchema = CRUDCommonSchema & {\n mode?: 'table';\n} & Omit<TableSchema, 'type'>;\n\n/**\n * CRUD 增删改查渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/crud\n */\nexport type CRUDSchema = CRUDCardsSchema | CRUDListSchema | CRUDTableSchema;\n\nexport interface CRUDProps\n extends RendererProps,\n Omit<CRUDCommonSchema, 'type' | 'className'> {\n store: ICRUDStore;\n pickerMode?: boolean; // 选择模式,用做表单中的选择操作\n}\n\nexport default class CRUD extends React.Component<CRUDProps, any> {\n static propsList: Array<keyof CRUDProps> = [\n 'bulkActions',\n 'itemActions',\n 'mode',\n 'orderField',\n 'syncLocation',\n 'toolbar',\n 'toolbarInline',\n 'messages',\n 'value',\n 'options',\n 'multiple',\n 'valueField',\n 'defaultParams',\n 'bodyClassName',\n 'perPageAvailable',\n 'pageField',\n 'perPageField',\n 'hideQuickSaveBtn',\n 'autoJumpToTopOnPagerChange',\n 'interval',\n 'silentPolling',\n 'stopAutoRefreshWhen',\n 'stopAutoRefreshWhenModalIsOpen',\n 'api',\n 'affixHeader',\n 'columnsTogglable',\n 'placeholder',\n 'tableClassName',\n 'headerClassName',\n 'footerClassName',\n // 'toolbarClassName',\n 'headerToolbar',\n 'footerToolbar',\n 'filterTogglable',\n 'filterDefaultVisible',\n 'autoGenerateFilter',\n 'syncResponse2Query',\n 'keepItemSelectionOnPageChange',\n 'labelTpl',\n 'labelField',\n 'loadDataOnce',\n 'loadDataOnceFetchOnFilter',\n 'source',\n 'header',\n 'columns',\n 'size',\n 'onChange',\n 'onInit',\n 'onSaved',\n 'onQuery',\n 'formStore',\n 'autoFillHeight'\n ];\n static defaultProps = {\n toolbarInline: true,\n headerToolbar: ['bulkActions'],\n footerToolbar: ['statistics', 'pagination'],\n primaryField: 'id',\n syncLocation: true,\n pageField: 'page',\n perPageField: 'perPage',\n hideQuickSaveBtn: false,\n autoJumpToTopOnPagerChange: true,\n silentPolling: false,\n filterTogglable: false,\n filterDefaultVisible: true,\n loadDataOnce: false,\n loadDataOnceFetchOnFilter: true,\n autoFillHeight: false\n };\n\n control: any;\n lastQuery: any;\n lastData: any;\n\n timer: ReturnType<typeof setTimeout>;\n mounted: boolean;\n constructor(props: CRUDProps) {\n super(props);\n\n this.controlRef = this.controlRef.bind(this);\n this.handleFilterReset = this.handleFilterReset.bind(this);\n this.handleFilterSubmit = this.handleFilterSubmit.bind(this);\n this.handleFilterInit = this.handleFilterInit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleBulkAction = this.handleBulkAction.bind(this);\n this.handleChangePage = this.handleChangePage.bind(this);\n this.handleBulkGo = this.handleBulkGo.bind(this);\n this.handleDialogConfirm = this.handleDialogConfirm.bind(this);\n this.handleDialogClose = this.handleDialogClose.bind(this);\n this.handleSave = this.handleSave.bind(this);\n this.handleSaveOrder = this.handleSaveOrder.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleChildPopOverOpen = this.handleChildPopOverOpen.bind(this);\n this.handleChildPopOverClose = this.handleChildPopOverClose.bind(this);\n this.search = this.search.bind(this);\n this.silentSearch = this.silentSearch.bind(this);\n this.handleQuery = this.handleQuery.bind(this);\n this.renderHeaderToolbar = this.renderHeaderToolbar.bind(this);\n this.renderFooterToolbar = this.renderFooterToolbar.bind(this);\n this.clearSelection = this.clearSelection.bind(this);\n\n const {\n location,\n store,\n pageField,\n perPageField,\n syncLocation,\n loadDataOnce\n } = props;\n\n this.mounted = true;\n\n if (syncLocation && location && (location.query || location.search)) {\n store.updateQuery(\n qsparse(location.search.substring(1)),\n undefined,\n pageField,\n perPageField\n );\n } else if (syncLocation && !location && window.location.search) {\n store.updateQuery(\n qsparse(window.location.search.substring(1)) as object,\n undefined,\n pageField,\n perPageField\n );\n }\n\n this.props.store.setFilterTogglable(\n !!this.props.filterTogglable,\n this.props.filterDefaultVisible\n );\n\n // 如果有 api,data 里面先写个 空数组,面得继承外层的 items\n // 比如 crud 打开一个弹框,里面也是个 crud,默认一开始其实显示\n // 的是外层 crud 的数据,等接口回来后就会变成新的。\n // 加上这个就是为了解决这种情况\n if (this.props.api) {\n this.props.store.updateData({\n items: []\n });\n }\n }\n\n componentDidMount() {\n const {store, autoGenerateFilter, columns} = this.props;\n\n if (this.props.perPage) {\n store.changePage(store.page, this.props.perPage);\n }\n\n // 没有 filter 或者 没有展示 filter 时应该默认初始化一次,\n // 否则就应该等待 filter 里面的表单初始化的时候才初始化\n // 另外autoGenerateFilter时,table 里面会单独处理这块逻辑\n // 所以这里应该忽略 autoGenerateFilter 情况\n if (\n (!this.props.filter && !autoGenerateFilter) ||\n (store.filterTogggable && !store.filterVisible)\n ) {\n this.handleFilterInit({});\n }\n\n let val: any;\n if (this.props.pickerMode && (val = getPropValue(this.props))) {\n store.setSelectedItems(val);\n }\n }\n\n componentDidUpdate(prevProps: CRUDProps) {\n const props = this.props;\n const store = prevProps.store;\n\n if (\n anyChanged(\n ['toolbar', 'headerToolbar', 'footerToolbar', 'bulkActions'],\n prevProps,\n props\n )\n ) {\n // 来点参数变化。\n this.renderHeaderToolbar = this.renderHeaderToolbar.bind(this);\n this.renderFooterToolbar = this.renderFooterToolbar.bind(this);\n }\n\n let val: any;\n if (\n this.props.pickerMode &&\n isArrayChildrenModified(\n (val = getPropValue(this.props)),\n getPropValue(prevProps)\n )\n ) {\n store.setSelectedItems(val);\n }\n\n if (this.props.filterTogglable !== prevProps.filterTogglable) {\n store.setFilterTogglable(\n !!props.filterTogglable,\n props.filterDefaultVisible\n );\n }\n\n let dataInvalid = false;\n\n if (\n prevProps.syncLocation &&\n prevProps.location &&\n prevProps.location.search !== props.location.search\n ) {\n // 同步地址栏,那么直接检测 query 是否变了,变了就重新拉数据\n store.updateQuery(\n qsparse(props.location.search.substring(1)),\n undefined,\n props.pageField,\n props.perPageField\n );\n dataInvalid = !!(\n props.api && isObjectShallowModified(store.query, this.lastQuery, false)\n );\n }\n\n if (dataInvalid) {\n // 要同步数据\n } else if (\n prevProps.api &&\n props.api &&\n isApiOutdated(\n prevProps.api,\n props.api,\n store.fetchCtxOf(prevProps.data, {\n pageField: prevProps.pageField,\n perPageField: prevProps.perPageField\n }),\n store.fetchCtxOf(props.data, {\n pageField: props.pageField,\n perPageField: props.perPageField\n })\n )\n ) {\n dataInvalid = true;\n } else if (!props.api && isPureVariable(props.source)) {\n const next = resolveVariableAndFilter(props.source, props.data, '| raw');\n\n if (!this.lastData || this.lastData !== next) {\n store.initFromScope(props.data, props.source);\n this.lastData = next;\n }\n }\n\n if (dataInvalid) {\n this.search();\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n clearTimeout(this.timer);\n }\n\n controlRef(control: any) {\n // 因为 control 有可能被 n 层 hoc 包裹。\n while (control && control.getWrappedInstance) {\n control = control.getWrappedInstance();\n }\n\n this.control = control;\n }\n\n handleAction(\n e: React.UIEvent<any> | undefined,\n action: Action,\n ctx: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ): any {\n const {\n onAction,\n store,\n messages,\n pickerMode,\n env,\n pageField,\n stopAutoRefreshWhenModalIsOpen\n } = this.props;\n\n if (action.actionType === 'dialog') {\n store.setCurrentAction(action);\n const idx: number = (ctx as any).index;\n const length = store.items.length;\n stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);\n store.openDialog(ctx, {\n hasNext: idx < length - 1,\n nextIndex: idx + 1,\n hasPrev: idx > 0,\n prevIndex: idx - 1,\n index: idx\n });\n } else if (action.actionType === 'ajax') {\n store.setCurrentAction(action);\n const data = ctx;\n\n // 由于 ajax 一段时间后再弹出,肯定被浏览器给阻止掉的,所以提前弹。\n const redirect = action.redirect && filter(action.redirect, data);\n redirect && action.blank && env.jumpTo(redirect, action);\n\n return store\n .saveRemote(action.api!, data, {\n successMessage:\n (action.messages && action.messages.success) ||\n (messages && messages.saveSuccess),\n errorMessage:\n (action.messages && action.messages.failed) ||\n (messages && messages.saveFailed)\n })\n .then(async (payload: object) => {\n const data = createObject(ctx, payload);\n\n if (action.feedback && isVisible(action.feedback, data)) {\n await this.openFeedback(action.feedback, data);\n stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);\n }\n\n const redirect = action.redirect && filter(action.redirect, data);\n redirect && !action.blank && env.jumpTo(redirect, action);\n action.reload\n ? this.reloadTarget(action.reload, data)\n : redirect\n ? null\n : this.search(undefined, undefined, true, true);\n action.close && this.closeTarget(action.close);\n })\n .catch(e => {\n if (throwErrors || action.countDown) {\n throw e;\n }\n });\n } else if (action.actionType === 'reload' && !action.target) {\n this.reload();\n } else if (\n pickerMode &&\n (action.actionType === 'confirm' || action.actionType === 'submit')\n ) {\n store.setCurrentAction(action);\n return Promise.resolve({\n items: store.selectedItems.concat()\n });\n } else if (action.onClick) {\n store.setCurrentAction(action);\n let onClick = action.onClick;\n if (typeof onClick === 'string') {\n onClick = str2function(onClick, 'event', 'props', 'data');\n }\n onClick && onClick(e, this.props, ctx);\n } else {\n onAction(e, action, ctx, throwErrors, delegate || this.context);\n }\n }\n\n handleBulkAction(\n selectedItems: Array<any>,\n unSelectedItems: Array<any>,\n e: React.UIEvent<any>,\n action: Action\n ) {\n const {\n store,\n primaryField,\n onAction,\n messages,\n pageField,\n stopAutoRefreshWhenModalIsOpen,\n env\n } = this.props;\n\n if (!selectedItems.length && action.requireSelected !== false) {\n return;\n }\n\n let ids = selectedItems\n .map(item =>\n item.hasOwnProperty(primaryField) ? item[primaryField as string] : null\n )\n .filter(item => item)\n .join(',');\n\n const ctx = createObject(store.mergedData, {\n ...selectedItems[0],\n rows: selectedItems,\n items: selectedItems,\n unSelectedItems: unSelectedItems,\n ids\n });\n\n let fn = () => {\n if (action.actionType === 'dialog') {\n return this.handleAction(\n e,\n {\n ...action,\n __from: 'bulkAction'\n },\n ctx\n );\n } else if (action.actionType === 'ajax') {\n isEffectiveApi(action.api, ctx) &&\n store\n .saveRemote(action.api as string, ctx, {\n successMessage:\n (action.messages && action.messages.success) ||\n (messages && messages.saveSuccess),\n errorMessage:\n (action.messages && action.messages.failed) ||\n (messages && messages.saveFailed)\n })\n .then(async (payload: object) => {\n const data = createObject(ctx, payload);\n if (action.feedback && isVisible(action.feedback, data)) {\n await this.openFeedback(action.feedback, data);\n stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);\n }\n\n action.reload\n ? this.reloadTarget(action.reload, data)\n : this.search(\n {[pageField || 'page']: 1},\n undefined,\n true,\n true\n );\n action.close && this.closeTarget(action.close);\n\n const redirect = action.redirect && filter(action.redirect, data);\n redirect && env.jumpTo(redirect, action);\n })\n .catch(() => null);\n } else if (onAction) {\n onAction(e, action, ctx, false, this.context);\n }\n };\n\n if (action.confirmText && env.confirm) {\n env\n .confirm(filter(action.confirmText, ctx))\n .then((confirmed: boolean) => confirmed && fn());\n } else {\n fn();\n }\n }\n\n handleItemAction(action: Action, ctx: any) {\n this.doAction(action, ctx);\n }\n\n handleFilterInit(values: object) {\n const {defaultParams, data, store, orderBy, orderDir} = this.props;\n const params = {...defaultParams};\n\n if (orderBy) {\n params['orderBy'] = orderBy;\n params['orderDir'] = orderDir || 'asc';\n }\n\n this.handleFilterSubmit(\n {\n ...params,\n ...values,\n ...store.query\n },\n false,\n true,\n this.props.initFetch !== false\n );\n\n store.setPristineQuery();\n\n const {pickerMode, options} = this.props;\n\n pickerMode &&\n store.updateData({\n items: options || []\n });\n }\n\n handleFilterReset(values: object) {\n const {store, syncLocation, env, pageField, perPageField} = this.props;\n\n store.updateQuery(\n store.pristineQuery,\n syncLocation && env && env.updateLocation\n ? (location: any) => env.updateLocation(location)\n : undefined,\n pageField,\n perPageField,\n true\n );\n this.lastQuery = store.query;\n this.search();\n }\n\n handleFilterSubmit(\n values: object,\n jumpToFirstPage: boolean = true,\n replaceLocation: boolean = false,\n search: boolean = true\n ) {\n const {\n store,\n syncLocation,\n env,\n pageField,\n perPageField,\n loadDataOnceFetchOnFilter\n } = this.props;\n\n values = syncLocation\n ? qsparse(qsstringify(values, undefined, true))\n : values;\n\n store.updateQuery(\n {\n ...values,\n [pageField || 'page']: jumpToFirstPage ? 1 : store.page\n },\n syncLocation && env && env.updateLocation\n ? (location: any) => env.updateLocation(location, replaceLocation)\n : undefined,\n pageField,\n perPageField\n );\n this.lastQuery = store.query;\n search &&\n this.search(undefined, undefined, undefined, loadDataOnceFetchOnFilter);\n }\n\n handleBulkGo(\n selectedItems: Array<any>,\n unSelectedItems: Array<any>,\n e: React.MouseEvent<any>\n ) {\n const action = this.props.store.selectedAction;\n const env = this.props.env;\n\n if (action.confirmText) {\n return env\n .confirm(action.confirmText)\n .then(\n (confirmed: boolean) =>\n confirmed &&\n this.handleBulkAction(\n selectedItems,\n unSelectedItems,\n e as any,\n action\n )\n );\n }\n\n return this.handleBulkAction(\n selectedItems,\n unSelectedItems,\n e as any,\n action\n );\n }\n\n handleDialogConfirm(\n values: object[],\n action: Action,\n ctx: any,\n components: Array<any>\n ) {\n const {\n store,\n pageField,\n stopAutoRefreshWhenModalIsOpen,\n interval,\n silentPolling,\n env\n } = this.props;\n\n store.closeDialog(true);\n const dialogAction = store.action as Action;\n\n if (stopAutoRefreshWhenModalIsOpen && interval) {\n this.timer = setTimeout(\n silentPolling ? this.silentSearch : this.search,\n Math.max(interval, 1000)\n );\n }\n\n if (\n action.actionType === 'next' &&\n typeof ctx.nextIndex === 'number' &&\n store.data.items[ctx.nextIndex]\n ) {\n return this.handleAction(\n undefined,\n {\n ...dialogAction\n },\n createObject(\n createObject(store.data, {\n index: ctx.nextIndex\n }),\n store.data.items[ctx.nextIndex]\n )\n );\n } else if (\n action.actionType === 'prev' &&\n typeof ctx.prevIndex === 'number' &&\n store.data.items[ctx.prevIndex]\n ) {\n return this.handleAction(\n undefined,\n {\n ...dialogAction\n },\n createObject(\n createObject(store.data, {\n index: ctx.prevIndex\n }),\n store.data.items[ctx.prevIndex]\n )\n );\n } else if (values.length) {\n const value = values[0];\n ctx = createObject(ctx, value);\n const component = components[0];\n\n // 提交来自 form\n if (component && component.props.type === 'form') {\n // 数据保存了,说明列表数据已经无效了,重新刷新。\n if (value && (value as any).__saved) {\n const reload = action.reload ?? dialogAction.reload;\n // 配置了 reload 则跳过自动更新。\n reload ||\n this.search(\n dialogAction.__from ? {[pageField || 'page']: 1} : undefined,\n undefined,\n true,\n true\n );\n } else if (\n value &&\n ((value.hasOwnProperty('items') && (value as any).items) ||\n value.hasOwnProperty('ids')) &&\n this.control.bulkUpdate\n ) {\n this.control.bulkUpdate(value, (value as any).items);\n }\n }\n }\n\n const reload = action.reload ?? dialogAction.reload;\n if (reload) {\n this.reloadTarget(reload, ctx);\n }\n\n let redirect = action.redirect ?? dialogAction.redirect;\n redirect = redirect && filter(redirect, ctx);\n redirect && env.jumpTo(redirect, dialogAction);\n }\n\n handleDialogClose(confirmed = false) {\n const {store, stopAutoRefreshWhenModalIsOpen, silentPolling, interval} =\n this.props;\n store.closeDialog(confirmed);\n\n if (stopAutoRefreshWhenModalIsOpen && interval) {\n this.timer = setTimeout(\n silentPolling ? this.silentSearch : this.search,\n Math.max(interval, 1000)\n );\n }\n }\n\n openFeedback(dialog: any, ctx: any) {\n return new Promise(resolve => {\n const {store} = this.props;\n store.setCurrentAction({\n type: 'button',\n actionType: 'dialog',\n dialog: dialog\n });\n store.openDialog(ctx, undefined, confirmed => {\n resolve(confirmed);\n });\n });\n }\n\n search(\n values?: any,\n silent?: boolean,\n clearSelection?: boolean,\n forceReload = false\n ) {\n const {\n store,\n api,\n messages,\n pageField,\n perPageField,\n interval,\n stopAutoRefreshWhen,\n stopAutoRefreshWhenModalIsOpen,\n silentPolling,\n syncLocation,\n syncResponse2Query,\n keepItemSelectionOnPageChange,\n pickerMode,\n env,\n loadDataOnce,\n loadDataOnceFetchOnFilter,\n source,\n columns\n } = this.props;\n\n // reload 需要清空用户选择。\n if (keepItemSelectionOnPageChange && clearSelection && !pickerMode) {\n store.setSelectedItems([]);\n store.setUnSelectedItems([]);\n }\n\n let loadDataMode = '';\n if (values && typeof values.loadDataMode === 'string') {\n loadDataMode = 'load-more';\n delete values.loadDataMode;\n }\n\n clearTimeout(this.timer);\n values &&\n store.updateQuery(\n values,\n !loadDataMode && syncLocation && env && env.updateLocation\n ? env.updateLocation\n : undefined,\n pageField,\n perPageField\n );\n this.lastQuery = store.query;\n const data = createObject(store.data, store.query);\n isEffectiveApi(api, data)\n ? store\n .fetchInitData(api, data, {\n successMessage: messages && messages.fetchSuccess,\n errorMessage: messages && messages.fetchFailed,\n autoAppend: true,\n forceReload,\n loadDataOnce,\n loadDataOnceFetchOnFilter,\n source,\n silent,\n pageField,\n perPageField,\n loadDataMode,\n syncResponse2Query,\n columns: store.columns ?? columns\n })\n .then(value => {\n interval &&\n this.mounted &&\n (!stopAutoRefreshWhen ||\n !(\n (stopAutoRefreshWhenModalIsOpen && store.hasModalOpened) ||\n evalExpression(\n stopAutoRefreshWhen,\n createObject(store.data, store.query)\n )\n )) &&\n (this.timer = setTimeout(\n silentPolling\n ? this.silentSearch.bind(this, undefined, undefined, true)\n : this.search.bind(\n this,\n undefined,\n undefined,\n undefined,\n true\n ),\n Math.max(interval, 1000)\n ));\n return value;\n })\n : source && store.initFromScope(data, source);\n }\n\n silentSearch(values?: object, clearSelection?: boolean, forceReload = false) {\n return this.search(values, true, clearSelection, forceReload);\n }\n\n handleChangePage(page: number, perPage?: number) {\n const {\n store,\n syncLocation,\n env,\n pageField,\n perPageField,\n autoJumpToTopOnPagerChange,\n affixOffsetTop\n } = this.props;\n\n let query: any = {\n [pageField || 'page']: page\n };\n\n if (perPage) {\n query[perPageField || 'perPage'] = perPage;\n }\n\n store.updateQuery(\n query,\n syncLocation && env?.updateLocation ? env.updateLocation : undefined,\n pageField,\n perPageField\n );\n\n this.search(undefined, undefined, undefined);\n\n if (autoJumpToTopOnPagerChange && this.control) {\n (findDOMNode(this.control) as HTMLElement).scrollIntoView();\n const scrolledY = window.scrollY;\n const offsetTop = affixOffsetTop ?? env?.affixOffsetTop ?? 0;\n scrolledY && window.scroll(0, scrolledY - offsetTop);\n }\n }\n\n handleSave(\n rows: Array<object> | object,\n diff: Array<object> | object,\n indexes: Array<string>,\n unModifiedItems?: Array<any>,\n rowsOrigin?: Array<object> | object,\n resetOnFailed?: boolean\n ) {\n const {\n store,\n quickSaveApi,\n quickSaveItemApi,\n primaryField,\n env,\n messages,\n reload\n } = this.props;\n\n if (Array.isArray(rows)) {\n if (!isEffectiveApi(quickSaveApi)) {\n env && env.alert('CRUD quickSaveApi is required');\n return;\n }\n\n const data: any = createObject(store.data, {\n rows,\n rowsDiff: diff,\n indexes: indexes,\n rowsOrigin\n });\n\n if (rows.length && rows[0].hasOwnProperty(primaryField || 'id')) {\n data.ids = rows\n .map(item => (item as any)[primaryField || 'id'])\n .join(',');\n }\n\n if (unModifiedItems) {\n data.unModifiedItems = unModifiedItems;\n }\n\n store\n .saveRemote(quickSaveApi, data, {\n successMessage: messages && messages.saveFailed,\n errorMessage: messages && messages.saveSuccess\n })\n .then(() => {\n reload && this.reloadTarget(reload, data);\n this.search(undefined, undefined, true, true);\n })\n .catch(() => {});\n } else {\n if (!isEffectiveApi(quickSaveItemApi)) {\n env && env.alert('CRUD quickSaveItemApi is required!');\n return;\n }\n\n const data = createObject(store.data, {\n item: rows,\n modified: diff,\n origin: rowsOrigin\n });\n\n const sendData = createObject(data, rows);\n store\n .saveRemote(quickSaveItemApi, sendData)\n .then(() => {\n reload && this.reloadTarget(reload, data);\n this.search(undefined, undefined, true, true);\n })\n .catch(() => {\n resetOnFailed && this.control.reset();\n });\n }\n }\n\n handleSaveOrder(moved: Array<object>, rows: Array<object>) {\n const {store, saveOrderApi, orderField, primaryField, env, reload} =\n this.props;\n\n if (!saveOrderApi) {\n env && env.alert('CRUD saveOrderApi is required!');\n return;\n }\n\n const model: {\n insertAfter?: any;\n insertBefore?: any;\n idMap?: any;\n rows?: any;\n ids?: any;\n order?: any;\n } = createObject(store.data);\n\n let insertAfter: any;\n let insertBefore: any;\n const holding: Array<object> = [];\n const hasIdField =\n primaryField &&\n rows[0] &&\n (rows[0] as object).hasOwnProperty(primaryField);\n\n hasIdField || (model.idMap = {});\n\n model.insertAfter = {};\n rows.forEach((item: any) => {\n if (~moved.indexOf(item)) {\n if (insertAfter) {\n let insertAfterId = hasIdField\n ? (insertAfter as any)[primaryField as string]\n : rows.indexOf(insertAfter);\n model.insertAfter[insertAfterId] =\n (model as any).insertAfter[insertAfterId] || [];\n\n hasIdField || (model.idMap[insertAfterId] = insertAfter);\n model.insertAfter[insertAfterId].push(\n hasIdField ? item[primaryField as string] : item\n );\n } else {\n holding.push(item);\n }\n } else {\n insertAfter = item;\n insertBefore = insertBefore || item;\n }\n });\n\n if (insertBefore && holding.length) {\n let insertBeforeId = hasIdField\n ? insertBefore[primaryField as string]\n : rows.indexOf(insertBefore);\n hasIdField || (model.idMap[insertBeforeId] = insertBefore);\n model.insertBefore = {};\n model.insertBefore[insertBeforeId] = holding.map((item: any) =>\n hasIdField ? item[primaryField as string] : item\n );\n } else if (holding.length) {\n const first: any = holding[0];\n const firstId = hasIdField\n ? first[primaryField as string]\n : rows.indexOf(first);\n\n hasIdField || (model.idMap[firstId] = first);\n model.insertAfter[firstId] = holding\n .slice(1)\n .map((item: any) => (hasIdField ? item[primaryField as string] : item));\n }\n\n if (orderField) {\n const start = (store.page - 1) * store.perPage || 0;\n rows = rows.map((item, key) =>\n extendObject(item, {\n [orderField]: start + key + 1\n })\n );\n }\n\n model.rows = rows.concat();\n hasIdField &&\n (model.ids = rows\n .map((item: any) => item[primaryField as string])\n .join(','));\n hasIdField &&\n orderField &&\n (model.order = rows.map(item =>\n pick(item, [primaryField as string, orderField])\n ));\n\n isEffectiveApi(saveOrderApi, model) &&\n store\n .saveRemote(saveOrderApi, model)\n .then(() => {\n reload && this.reloadTarget(reload, model);\n this.search(undefined, undefined, true, true);\n })\n .catch(() => {});\n }\n\n handleSelect(items: Array<any>, unSelectedItems: Array<any>) {\n const {\n store,\n keepItemSelectionOnPageChange,\n primaryField,\n multiple,\n pickerMode,\n onSelect\n } = this.props;\n\n let newItems = items;\n let newUnSelectedItems = unSelectedItems;\n\n if (keepItemSelectionOnPageChange && store.selectedItems.length) {\n const oldItems = store.selectedItems.concat();\n const oldUnselectedItems = store.unSelectedItems.concat();\n\n items.forEach(item => {\n const idx = findIndex(\n oldItems,\n a =>\n a === item ||\n (a[primaryField || 'id'] &&\n a[primaryField || 'id'] == item[primaryField || 'id'])\n );\n\n if (~idx) {\n oldItems[idx] = item;\n } else {\n oldItems.push(item);\n }\n\n const idx2 = findIndex(\n oldUnselectedItems,\n a =>\n a === item ||\n (a[primaryField || 'id'] &&\n a[primaryField || 'id'] == item[primaryField || 'id'])\n );\n\n if (~idx2) {\n oldUnselectedItems.splice(idx2, 1);\n }\n });\n\n unSelectedItems.forEach(item => {\n const idx = findIndex(\n oldUnselectedItems,\n a =>\n a === item ||\n (a[primaryField || 'id'] &&\n a[primaryField || 'id'] == item[primaryField || 'id'])\n );\n\n const idx2 = findIndex(\n oldItems,\n a =>\n a === item ||\n (a[primaryField || 'id'] &&\n a[primaryField || 'id'] == item[primaryField || 'id'])\n );\n\n if (~idx) {\n oldUnselectedItems[idx] = item;\n } else {\n oldUnselectedItems.push(item);\n }\n\n ~idx2 && oldItems.splice(idx2, 1);\n });\n\n newItems = oldItems;\n newUnSelectedItems = oldUnselectedItems;\n\n // const thisBatch = items.concat(unSelectedItems);\n // let notInThisBatch = (item: any) =>\n // !find(\n // thisBatch,\n // a => a[primaryField || 'id'] == item[primaryField || 'id']\n // );\n\n // newItems = store.selectedItems.filter(notInThisBatch);\n // newUnSelectedItems = store.unSelectedItems.filter(notInThisBatch);\n\n // newItems.push(...items);\n // newUnSelectedItems.push(...unSelectedItems);\n }\n\n if (pickerMode && multiple === false && newItems.length > 1) {\n newUnSelectedItems.push.apply(\n newUnSelectedItems,\n newItems.splice(0, newItems.length - 1)\n );\n }\n\n store.setSelectedItems(newItems);\n store.setUnSelectedItems(newUnSelectedItems);\n onSelect && onSelect(newItems);\n }\n\n handleChildPopOverOpen(popOver: any) {\n if (\n this.props.interval &&\n popOver &&\n ~['dialog', 'drawer'].indexOf(popOver.mode)\n ) {\n this.props.stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);\n this.props.store.setInnerModalOpened(true);\n }\n }\n\n handleChildPopOverClose(popOver: any) {\n const {stopAutoRefreshWhenModalIsOpen, silentPolling, interval} =\n this.props;\n\n if (popOver && ~['dialog', 'drawer'].indexOf(popOver.mode)) {\n this.props.store.setInnerModalOpened(false);\n\n if (stopAutoRefreshWhenModalIsOpen && interval) {\n this.timer = setTimeout(\n silentPolling ? this.silentSearch : this.search,\n Math.max(interval, 1000)\n );\n }\n }\n }\n\n handleQuery(values: object, forceReload: boolean = false) {\n const {store, syncLocation, env, pageField, perPageField} = this.props;\n\n store.updateQuery(\n {\n ...values,\n [pageField || 'page']: 1\n },\n syncLocation && env && env.updateLocation\n ? env.updateLocation\n : undefined,\n pageField,\n perPageField\n );\n this.search(undefined, undefined, undefined, forceReload);\n }\n\n reload(subpath?: string, query?: any) {\n if (query) {\n return this.receive(query);\n } else {\n this.search(undefined, undefined, true, true);\n }\n }\n\n receive(values: object) {\n this.handleQuery(values, true);\n }\n\n reloadTarget(target: string, data: any) {\n // implement this.\n }\n\n closeTarget(target: string) {\n // implement this.\n }\n\n doAction(action: Action, data: object, throwErrors: boolean = false) {\n return this.handleAction(undefined, action, data, throwErrors);\n }\n\n unSelectItem(item: any, index: number) {\n const {store} = this.props;\n const selected = store.selectedItems.concat();\n const unSelected = store.unSelectedItems.concat();\n\n const idx = selected.indexOf(item);\n ~idx && unSelected.push.apply(unSelected, selected.splice(idx, 1));\n\n store.setSelectedItems(selected);\n store.setUnSelectedItems(unSelected);\n }\n\n clearSelection() {\n const {store} = this.props;\n const selected = store.selectedItems.concat();\n const unSelected = store.unSelectedItems.concat();\n\n store.setSelectedItems([]);\n store.setUnSelectedItems(unSelected.concat(selected));\n }\n\n hasBulkActionsToolbar() {\n const {headerToolbar, footerToolbar} = this.props;\n\n const isBulkActions = (item: any) =>\n ~['bulkActions', 'bulk-actions'].indexOf(item.type || item);\n return (\n (Array.isArray(headerToolbar) && find(headerToolbar, isBulkActions)) ||\n (Array.isArray(footerToolbar) && find(footerToolbar, isBulkActions))\n );\n }\n\n hasBulkActions() {\n const {bulkActions, itemActions, store} = this.props;\n\n if (!bulkActions || !bulkActions.length) {\n return false;\n }\n\n let bulkBtns: Array<ActionSchema> = [];\n const ctx = store.mergedData;\n\n if (bulkActions && bulkActions.length) {\n bulkBtns = bulkActions\n .map(item => ({\n ...item,\n ...getExprProperties(item as Schema, ctx)\n }))\n .filter(item => !item.hidden && item.visible !== false);\n }\n\n return bulkBtns.length;\n }\n\n renderBulkActions(childProps: any) {\n let {bulkActions, itemActions, store, render, classnames: cx} = this.props;\n\n if (!bulkActions || !bulkActions.length) {\n return null;\n }\n\n const selectedItems = store.selectedItems;\n const unSelectedItems = store.unSelectedItems;\n\n let bulkBtns: Array<ActionSchema> = [];\n let itemBtns: Array<ActionSchema> = [];\n\n const ctx = store.mergedData;\n\n // const ctx = createObject(store.data, {\n // ...store.query,\n // items: childProps.items,\n // selectedItems: childProps.selectedItems,\n // unSelectedItems: childProps.unSelectedItems\n // });\n\n if (\n bulkActions &&\n bulkActions.length &&\n (!itemActions || !itemActions.length || selectedItems.length > 1)\n ) {\n bulkBtns = bulkActions\n .map(item => ({\n ...item,\n ...getExprProperties(item as Schema, ctx)\n }))\n .filter(item => !item.hidden && item.visible !== false);\n }\n\n const itemData = createObject(\n store.data,\n selectedItems.length ? selectedItems[0] : {}\n );\n\n if (itemActions && selectedItems.length <= 1) {\n itemBtns = itemActions\n .map(item => ({\n ...item,\n ...getExprProperties(item as Schema, itemData)\n }))\n .filter(item => !item.hidden && item.visible !== false);\n }\n\n return bulkBtns.length || itemBtns.length ? (\n <div className={cx('Crud-actions')}>\n {bulkBtns.map((btn, index) =>\n render(\n `bulk-action/${index}`,\n {\n ...omit(btn, ['visibleOn', 'hiddenOn', 'disabledOn']),\n type: btn.type || 'button',\n ignoreConfirm: true\n },\n {\n key: `bulk-${index}`,\n data: ctx,\n disabled:\n btn.disabled ||\n (btn.requireSelected !== false ? !selectedItems.length : false),\n onAction: this.handleBulkAction.bind(\n this,\n selectedItems.concat(),\n unSelectedItems.concat()\n )\n }\n )\n )}\n\n {itemBtns.map((btn, index) =>\n render(\n `bulk-action/${index}`,\n {\n ...omit(btn, ['visibleOn', 'hiddenOn', 'disabledOn']),\n type: 'button'\n },\n {\n key: `item-${index}`,\n data: itemData,\n disabled: btn.disabled || selectedItems.length !== 1,\n onAction: this.handleItemAction.bind(this, btn, itemData)\n }\n )\n )}\n </div>\n ) : null;\n }\n\n renderPagination(toolbar: SchemaNode) {\n const {store, render, classnames: cx, alwaysShowPagination} = this.props;\n const {page, lastPage} = store;\n\n if (\n store.mode !== 'simple' &&\n store.lastPage < 2 &&\n !alwaysShowPagination\n ) {\n return null;\n }\n\n const extraProps: Pick<\n PaginationProps,\n 'showPageInput' | 'maxButtons' | 'layout'\n > = {};\n\n /** 优先级:showPageInput显性配置 > (lastPage > 9) */\n if (typeof toolbar !== 'string') {\n const showPageInput = (toolbar as Schema).showPageInput;\n\n extraProps.showPageInput =\n showPageInput === true || (lastPage > 9 && showPageInput == null);\n extraProps.maxButtons = (toolbar as Schema).maxButtons;\n extraProps.layout = (toolbar as Schema).layout;\n } else {\n extraProps.showPageInput = lastPage > 9;\n }\n\n return (\n <div className={cx('Crud-pager')}>\n {render(\n 'pagination',\n {\n type: 'pagination'\n },\n {\n ...extraProps,\n activePage: page,\n lastPage: lastPage,\n hasNext: store.hasNext,\n mode: store.mode,\n perPage: store.perPage,\n onPageChange: this.handleChangePage\n }\n )}\n </div>\n );\n }\n\n renderStatistics() {\n const {\n store,\n classnames: cx,\n translate: __,\n alwaysShowPagination\n } = this.props;\n\n if (store.lastPage <= 1 && !alwaysShowPagination) {\n return null;\n }\n\n return (\n <div className={cx('Crud-statistics')}>\n {__('CRUD.stat', {\n page: store.page,\n lastPage: store.lastPage,\n total: store.total\n })}\n </div>\n );\n }\n\n renderSwitchPerPage(childProps: any) {\n const {\n store,\n perPageAvailable,\n classnames: cx,\n classPrefix: ns,\n translate: __\n } = this.props;\n\n const items = childProps.items;\n\n if (!items.length) {\n return null;\n }\n\n const perPages = (perPageAvailable || [5, 10, 20, 50, 100]).map(\n (item: any) => ({\n label: item,\n value: item + ''\n })\n );\n\n return (\n <div className={cx('Crud-pageSwitch')}>\n <span>{__('CRUD.perPage')}</span>\n <Select\n classPrefix={ns}\n searchable={false}\n placeholder={__('Select.placeholder')}\n options={perPages}\n value={store.perPage + ''}\n onChange={(value: any) => this.handleChangePage(1, value.value)}\n clearable={false}\n />\n </div>\n );\n }\n\n renderLoadMore() {\n const {store, classPrefix: ns, classnames: cx, translate: __} = this.props;\n const {page, lastPage} = store;\n\n return page < lastPage ? (\n <div className={cx('Crud-loadMore')}>\n <Button\n classPrefix={ns}\n onClick={() =>\n this.search({page: page + 1, loadDataMode: 'load-more'})\n }\n size=\"sm\"\n >\n {__('CRUD.loadMore')}\n </Button>\n </div>\n ) : (\n ''\n );\n }\n\n renderFilterToggler() {\n const {store, classnames: cx, translate: __} = this.props;\n\n if (!store.filterTogggable) {\n return null;\n }\n\n return (\n <button\n onClick={() => store.setFilterVisible(!store.filterVisible)}\n className={cx('Button Button--sm Button--default', {\n 'is-active': store.filterVisible\n })}\n >\n <Icon icon=\"filter\" className=\"icon m-r-xs\" />\n {__('CRUD.filter')}\n </button>\n );\n }\n\n renderExportCSV(toolbar: Schema) {\n const {\n store,\n classPrefix: ns,\n classnames: cx,\n translate: __,\n loadDataOnce,\n data\n } = this.props;\n\n const api = (toolbar as Schema).api;\n\n return (\n <Button\n classPrefix={ns}\n onClick={() =>\n store.exportAsCSV({\n loadDataOnce,\n api,\n data\n })\n }\n >\n {toolbar.label || __('CRUD.exportCSV')}\n </Button>\n );\n }\n\n renderToolbar(\n toolbar?: SchemaNode,\n index: number = 0,\n childProps: any = {},\n toolbarRenderer?: (toolbar: SchemaNode, index: number) => React.ReactNode\n ) {\n if (!toolbar) {\n return null;\n }\n\n const {render, store, translate: __} = this.props;\n const type = (toolbar as Schema).type || toolbar;\n\n if (type === 'bulkActions' || type === 'bulk-actions') {\n return this.renderBulkActions(childProps);\n } else if (type === 'pagination') {\n return this.renderPagination(toolbar);\n } else if (type === 'statistics') {\n return this.renderStatistics();\n } else if (type === 'switch-per-page') {\n return this.renderSwitchPerPage(childProps);\n } else if (type === 'load-more') {\n return this.renderLoadMore();\n } else if (type === 'filter-toggler') {\n return this.renderFilterToggler();\n } else if (type === 'export-csv') {\n return this.renderExportCSV(toolbar as Schema);\n } else if (type === 'reload') {\n let reloadButton = {\n label: '',\n icon: 'fa fa-sync',\n tooltip: __('reload'),\n tooltipPlacement: 'top',\n type: 'button'\n };\n if (typeof toolbar === 'object') {\n reloadButton = {...reloadButton, ...omit(toolbar, ['type', 'align'])};\n }\n return render(`toolbar/${index}`, reloadButton, {\n onAction: () => {\n this.reload();\n }\n });\n } else if (Array.isArray(toolbar)) {\n const children: Array<any> = toolbar\n .filter((toolbar: any) => isVisible(toolbar, store.filterData))\n .map((toolbar, index) => ({\n dom: this.renderToolbar(toolbar, index, childProps, toolbarRenderer),\n toolbar\n }))\n .filter(item => item.dom);\n const len = children.length;\n const cx = this.props.classnames;\n if (len) {\n return (\n <div className={cx('Crud-toolbar')} key={index}>\n {children.map(({toolbar, dom: child}, index) => {\n const type = (toolbar as Schema).type || toolbar;\n let align =\n toolbar.align || (type === 'pagination' ? 'right' : 'left');\n return (\n <div\n key={index}\n className={cx(\n 'Crud-toolbar-item',\n align ? `Crud-toolbar-item--${align}` : '',\n toolbar.className\n )}\n >\n {child}\n </div>\n );\n })}\n </div>\n );\n }\n return null;\n }\n\n const result = toolbarRenderer\n ? toolbarRenderer(toolbar, index)\n : undefined;\n\n if (result !== void 0) {\n return result;\n }\n\n const $$editable = childProps.$$editable;\n\n return render(`toolbar/${index}`, toolbar, {\n // 包两层,主要是为了处理以下 case\n // 里面放了个 form,form 提交过来的时候不希望把 items 这些发送过来。\n // 因为会把数据呈现在地址栏上。\n data: createObject(\n createObject(store.filterData, {\n items: childProps.items,\n selectedItems: childProps.selectedItems,\n unSelectedItems: childProps.unSelectedItems\n }),\n {}\n ),\n page: store.page,\n lastPage: store.lastPage,\n perPage: store.perPage,\n total: store.total,\n onQuery: this.handleQuery,\n onAction: this.handleAction,\n onChangePage: this.handleChangePage,\n onBulkAction: this.handleBulkAction,\n $$editable\n });\n }\n\n renderHeaderToolbar(\n childProps: any,\n toolbarRenderer?: (toolbar: SchemaNode, index: number) => React.ReactNode\n ) {\n let {toolbar, toolbarInline, headerToolbar} = this.props;\n\n if (toolbar) {\n if (Array.isArray(headerToolbar)) {\n headerToolbar = toolbarInline\n ? headerToolbar.concat(toolbar)\n : [headerToolbar, toolbar];\n } else if (headerToolbar) {\n headerToolbar = [headerToolbar, toolbar];\n } else {\n headerToolbar = toolbar;\n }\n }\n\n return this.renderToolbar(\n headerToolbar || [],\n 0,\n childProps,\n toolbarRenderer\n );\n }\n\n renderFooterToolbar(\n childProps: any,\n toolbarRenderer?: (toolbar: SchemaNode, index: number) => React.ReactNode\n ) {\n let {toolbar, toolbarInline, footerToolbar} = this.props;\n\n if (toolbar) {\n if (Array.isArray(footerToolbar)) {\n footerToolbar = toolbarInline\n ? footerToolbar.concat(toolbar)\n : [footerToolbar, toolbar];\n } else if (footerToolbar) {\n footerToolbar = [footerToolbar, toolbar];\n } else {\n footerToolbar = toolbar;\n }\n }\n\n return this.renderToolbar(footerToolbar, 0, childProps, toolbarRenderer);\n }\n\n renderSelection(): React.ReactNode {\n const {\n store,\n classnames: cx,\n labelField,\n labelTpl,\n primaryField,\n translate: __\n } = this.props;\n\n if (!store.selectedItems.length) {\n return null;\n }\n\n return (\n <div className={cx('Crud-selection')}>\n <div className={cx('Crud-selectionLabel')}>\n {__('CRUD.selected', {total: store.selectedItems.length})}\n </div>\n {store.selectedItems.map((item, index) => (\n <div key={index} className={cx(`Crud-value`)}>\n <span\n data-tooltip={__('delete')}\n data-position=\"bottom\"\n className={cx('Crud-valueIcon')}\n onClick={this.unSelectItem.bind(this, item, index)}\n >\n ×\n </span>\n <span className={cx('Crud-valueLabel')}>\n {labelTpl ? (\n <Html html={filter(labelTpl, item)} />\n ) : (\n getVariable(item, labelField || 'label') ||\n getVariable(item, primaryField || 'id')\n )}\n </span>\n </div>\n ))}\n <a onClick={this.clearSelection} className={cx('Crud-selectionClear')}>\n {__('clear')}\n </a>\n </div>\n );\n }\n\n render() {\n const {\n className,\n bodyClassName,\n filter,\n render,\n store,\n mode,\n syncLocation,\n children,\n bulkActions,\n pickerMode,\n multiple,\n valueField,\n primaryField,\n value,\n hideQuickSaveBtn,\n itemActions,\n classnames: cx,\n keepItemSelectionOnPageChange,\n maxKeepItemSelectionLength,\n onAction,\n popOverContainer,\n translate: __,\n onQuery,\n autoGenerateFilter,\n onSelect,\n autoFillHeight,\n ...rest\n } = this.props;\n\n return (\n <div\n className={cx('Crud', className, {\n 'is-loading': store.loading\n })}\n >\n {filter && (!store.filterTogggable || store.filterVisible)\n ? render(\n 'filter',\n {\n title: __('CRUD.filter'),\n mode: 'inline',\n submitText: __('search'),\n ...filter,\n type: 'form',\n api: null\n },\n {\n key: 'filter',\n panelClassName: cx(\n 'Crud-filter',\n filter.panelClassName || 'Panel--default'\n ),\n data: store.filterData,\n onReset: this.handleFilterReset,\n onSubmit: this.handleFilterSubmit,\n onInit: this.handleFilterInit,\n formStore: undefined\n }\n )\n : null}\n\n {keepItemSelectionOnPageChange && multiple !== false\n ? this.renderSelection()\n : null}\n\n {render(\n 'body',\n {\n ...rest,\n columns: store.columns ?? rest.columns,\n type: mode || 'table'\n },\n {\n key: 'body',\n className: cx('Crud-body', bodyClassName),\n ref: this.controlRef,\n autoGenerateFilter: !filter && autoGenerateFilter,\n autoFillHeight: autoFillHeight,\n selectable: !!(\n (this.hasBulkActionsToolbar() && this.hasBulkActions()) ||\n pickerMode\n ),\n itemActions,\n multiple:\n multiple === void 0\n ? bulkActions && bulkActions.length > 0\n ? true\n : false\n : multiple,\n selected:\n pickerMode || keepItemSelectionOnPageChange\n ? store.selectedItemsAsArray\n : undefined,\n keepItemSelectionOnPageChange,\n maxKeepItemSelectionLength,\n valueField: valueField || primaryField,\n primaryField: primaryField,\n hideQuickSaveBtn,\n items: store.data.items,\n query: store.query,\n orderBy: store.query.orderBy,\n orderDir: store.query.orderDir,\n popOverContainer,\n onAction: this.handleAction,\n onSave: this.handleSave,\n onSaveOrder: this.handleSaveOrder,\n onQuery: this.handleQuery,\n onSelect: this.handleSelect,\n onPopOverOpened: this.handleChildPopOverOpen,\n onPopOverClosed: this.handleChildPopOverClose,\n onSearchableFromReset: this.handleFilterReset,\n onSearchableFromSubmit: this.handleFilterSubmit,\n onSearchableFromInit: this.handleFilterInit,\n headerToolbarRender: this.renderHeaderToolbar,\n footerToolbarRender: this.renderFooterToolbar,\n data: store.mergedData,\n loading: store.loading\n }\n )}\n\n <Spinner overlay size=\"lg\" key=\"info\" show={store.loading} />\n\n {render(\n 'dialog',\n {\n ...((store.action as Action) &&\n ((store.action as Action).dialog as object)),\n type: 'dialog'\n },\n {\n key: 'dialog',\n data: store.dialogData,\n onConfirm: this.handleDialogConfirm,\n onClose: this.handleDialogClose,\n show: store.dialogOpen\n }\n )}\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'crud',\n storeType: CRUDStore.name,\n isolateScope: true\n})\nexport class CRUDRenderer extends CRUD {\n static contextType = ScopedContext;\n\n constructor(props: CRUDProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n reload(subpath?: string, query?: any, ctx?: any) {\n const scoped = this.context as IScopedContext;\n if (subpath) {\n return scoped.reload(\n query ? `${subpath}?${qsstringify(query)}` : subpath,\n ctx\n );\n }\n\n return super.reload(subpath, query);\n }\n\n receive(values: any, subPath?: string) {\n const scoped = this.context as IScopedContext;\n if (subPath) {\n return scoped.send(subPath, values);\n }\n\n return super.receive(values);\n }\n\n reloadTarget(target: string, data: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n\n closeTarget(target: string) {\n const scoped = this.context as IScopedContext;\n scoped.close(target);\n }\n}\n"
12
12
  ]
13
13
  }