amis-core 3.4.3 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/Root.js +1 -1
- package/esm/RootRenderer.js +12 -2
- package/esm/SchemaRenderer.js +1 -1
- package/esm/Scoped.js +1 -1
- package/esm/StatusScoped.js +1 -1
- package/esm/WithRootStore.js +1 -1
- package/esm/WithStore.js +1 -1
- package/esm/actions/Action.js +1 -1
- package/esm/actions/AjaxAction.js +1 -1
- package/esm/actions/BreakAction.js +1 -1
- package/esm/actions/BroadcastAction.js +1 -1
- package/esm/actions/CmptAction.js +1 -1
- package/esm/actions/ContinueAction.js +1 -1
- package/esm/actions/CopyAction.js +1 -1
- package/esm/actions/CustomAction.js +1 -1
- package/esm/actions/DialogAction.js +1 -1
- package/esm/actions/DrawerAction.js +1 -1
- package/esm/actions/EmailAction.js +1 -1
- package/esm/actions/LinkAction.js +1 -1
- package/esm/actions/LoopAction.js +1 -1
- package/esm/actions/PageAction.js +1 -1
- package/esm/actions/ParallelAction.js +1 -1
- package/esm/actions/StatusAction.js +1 -1
- package/esm/actions/SwitchAction.js +1 -1
- package/esm/actions/ToastAction.js +1 -1
- package/esm/components/CustomStyle.js +9 -9
- package/esm/components/LazyComponent.js +1 -1
- package/esm/components/Overlay.js +1 -1
- package/esm/components/PopOver.js +1 -1
- package/esm/env.d.ts +11 -3
- package/esm/env.js +1 -1
- package/esm/envOverwrite.js +1 -1
- package/esm/factory.js +1 -3
- package/esm/index.js +4 -4
- package/esm/locale.js +1 -1
- package/esm/polyfills.js +1 -1
- package/esm/renderers/Form.js +3 -3
- package/esm/renderers/Item.d.ts +2 -6
- package/esm/renderers/Item.js +10 -16
- package/esm/renderers/Options.js +1 -1
- package/esm/renderers/Placeholder.js +1 -1
- package/esm/renderers/builtin.js +1 -1
- package/esm/renderers/register.js +1 -1
- package/esm/renderers/wrapControl.js +40 -21
- package/esm/store/app.js +6 -4
- package/esm/store/combo.d.ts +120 -0
- package/esm/store/combo.js +3 -2
- package/esm/store/crud.d.ts +13 -1
- package/esm/store/crud.js +94 -36
- package/esm/store/form.d.ts +50 -0
- package/esm/store/form.js +1 -1
- package/esm/store/formItem.d.ts +1 -0
- package/esm/store/formItem.js +17 -5
- package/esm/store/iRenderer.js +1 -1
- package/esm/store/index.js +1 -1
- package/esm/store/list.js +1 -1
- package/esm/store/manager.js +1 -1
- package/esm/store/modal.js +1 -1
- package/esm/store/node.js +1 -1
- package/esm/store/pagination.js +1 -1
- package/esm/store/root.js +1 -1
- package/esm/store/service.js +1 -1
- package/esm/store/status.js +1 -1
- package/esm/store/table.d.ts +418 -65
- package/esm/store/table.js +106 -72
- package/esm/store/table2.js +1 -1
- package/esm/theme.js +1 -1
- package/esm/types.d.ts +6 -0
- package/esm/utils/Animation.js +1 -1
- package/esm/utils/ColorScale.js +1 -1
- package/esm/utils/DataSchema.js +1 -1
- package/esm/utils/DataScope.js +1 -1
- package/esm/utils/RootClose.js +1 -1
- package/esm/utils/SimpleMap.js +1 -1
- package/esm/utils/api.js +2 -1
- package/esm/utils/arraySlice.js +1 -1
- package/esm/utils/attachmentAdpator.d.ts +2 -1
- package/esm/utils/attachmentAdpator.js +17 -11
- package/esm/utils/autobind.js +1 -1
- package/esm/utils/columnsSplit.js +1 -1
- package/esm/utils/dataMapping.js +1 -1
- package/esm/utils/date.js +1 -1
- package/esm/utils/debug.js +1 -1
- package/esm/utils/decodeEntity.js +1 -1
- package/esm/utils/dom.js +1 -1
- package/esm/utils/errors.js +1 -1
- package/esm/utils/escapeHtml.js +1 -1
- package/esm/utils/filter-schema.d.ts +8 -0
- package/esm/utils/filter-schema.js +23 -9
- package/esm/utils/filter.js +1 -1
- package/esm/utils/formatDuration.js +1 -1
- package/esm/utils/formula.js +1 -1
- package/esm/utils/getVariable.js +1 -1
- package/esm/utils/grammar.js +1 -1
- package/esm/utils/handleAction.js +2 -1
- package/esm/utils/helper.d.ts +13 -0
- package/esm/utils/helper.js +46 -4
- package/esm/utils/highlight.js +1 -1
- package/esm/utils/icon.js +1 -1
- package/esm/utils/image.js +1 -1
- package/esm/utils/isPureVariable.js +1 -1
- package/esm/utils/json-schema-2-amis-schema.js +1 -1
- package/esm/utils/keyToPath.js +1 -1
- package/esm/utils/makeSorter.js +1 -1
- package/esm/utils/math.js +1 -1
- package/esm/utils/memoryParse.js +1 -1
- package/esm/utils/normalizeLink.js +1 -1
- package/esm/utils/normalizeOptions.js +1 -1
- package/esm/utils/object.js +1 -1
- package/esm/utils/offset.js +1 -1
- package/esm/utils/offsetParent.js +1 -1
- package/esm/utils/optionValueCompare.js +1 -1
- package/esm/utils/position.js +1 -1
- package/esm/utils/prettyBytes.js +1 -1
- package/esm/utils/renderer-event.js +1 -1
- package/esm/utils/replaceText.d.ts +1 -1
- package/esm/utils/replaceText.js +9 -4
- package/esm/utils/resize-sensor.js +1 -1
- package/esm/utils/resolveCondition.js +1 -1
- package/esm/utils/resolveVariable.js +1 -1
- package/esm/utils/resolveVariableAndFilter.js +1 -1
- package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/esm/utils/scrollPosition.js +1 -1
- package/esm/utils/string2regExp.js +1 -1
- package/esm/utils/stripNumber.js +1 -1
- package/esm/utils/style-helper.js +3 -3
- package/esm/utils/style.js +1 -1
- package/esm/utils/toNumber.js +1 -1
- package/esm/utils/tokenize.js +1 -1
- package/esm/utils/tpl-builtin.js +1 -1
- package/esm/utils/tpl-lodash.js +1 -1
- package/esm/utils/tpl.js +1 -1
- package/esm/utils/uncontrollable.js +1 -1
- package/esm/utils/validations.js +1 -1
- package/lib/Root.js +1 -1
- package/lib/RootRenderer.js +12 -2
- package/lib/SchemaRenderer.js +1 -1
- package/lib/Scoped.js +1 -1
- package/lib/StatusScoped.js +1 -1
- package/lib/WithRootStore.js +1 -1
- package/lib/WithStore.js +1 -1
- package/lib/actions/Action.js +1 -1
- package/lib/actions/AjaxAction.js +1 -1
- package/lib/actions/BreakAction.js +1 -1
- package/lib/actions/BroadcastAction.js +1 -1
- package/lib/actions/CmptAction.js +1 -1
- package/lib/actions/ContinueAction.js +1 -1
- package/lib/actions/CopyAction.js +1 -1
- package/lib/actions/CustomAction.js +1 -1
- package/lib/actions/DialogAction.js +1 -1
- package/lib/actions/DrawerAction.js +1 -1
- package/lib/actions/EmailAction.js +1 -1
- package/lib/actions/LinkAction.js +1 -1
- package/lib/actions/LoopAction.js +1 -1
- package/lib/actions/PageAction.js +1 -1
- package/lib/actions/ParallelAction.js +1 -1
- package/lib/actions/StatusAction.js +1 -1
- package/lib/actions/SwitchAction.js +1 -1
- package/lib/actions/ToastAction.js +1 -1
- package/lib/components/CustomStyle.js +9 -9
- package/lib/components/LazyComponent.js +1 -1
- package/lib/components/Overlay.js +1 -1
- package/lib/components/PopOver.js +1 -1
- package/lib/env.d.ts +11 -3
- package/lib/env.js +1 -1
- package/lib/envOverwrite.js +1 -1
- package/lib/factory.js +1 -3
- package/lib/index.js +6 -2
- package/lib/locale.js +1 -1
- package/lib/polyfills.js +1 -1
- package/lib/renderers/Form.js +3 -3
- package/lib/renderers/Item.d.ts +3 -7
- package/lib/renderers/Item.js +10 -16
- package/lib/renderers/Options.js +1 -1
- package/lib/renderers/Placeholder.js +1 -1
- package/lib/renderers/builtin.js +1 -1
- package/lib/renderers/register.js +1 -1
- package/lib/renderers/wrapControl.js +40 -21
- package/lib/store/app.js +5 -3
- package/lib/store/combo.d.ts +120 -1
- package/lib/store/combo.js +3 -2
- package/lib/store/crud.d.ts +13 -1
- package/lib/store/crud.js +94 -36
- package/lib/store/form.d.ts +50 -0
- package/lib/store/form.js +1 -1
- package/lib/store/formItem.d.ts +1 -0
- package/lib/store/formItem.js +15 -3
- package/lib/store/iRenderer.js +1 -1
- package/lib/store/index.js +1 -1
- package/lib/store/list.js +1 -1
- package/lib/store/manager.js +1 -1
- package/lib/store/modal.js +1 -1
- package/lib/store/node.js +1 -1
- package/lib/store/pagination.js +1 -1
- package/lib/store/root.js +1 -1
- package/lib/store/service.js +1 -1
- package/lib/store/status.js +1 -1
- package/lib/store/table.d.ts +418 -66
- package/lib/store/table.js +104 -70
- package/lib/store/table2.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types.d.ts +6 -0
- package/lib/utils/Animation.js +1 -1
- package/lib/utils/ColorScale.js +1 -1
- package/lib/utils/DataSchema.js +1 -1
- package/lib/utils/DataScope.js +1 -1
- package/lib/utils/RootClose.js +1 -1
- package/lib/utils/SimpleMap.js +1 -1
- package/lib/utils/api.js +2 -1
- package/lib/utils/arraySlice.js +1 -1
- package/lib/utils/attachmentAdpator.d.ts +2 -1
- package/lib/utils/attachmentAdpator.js +17 -11
- package/lib/utils/autobind.js +1 -1
- package/lib/utils/columnsSplit.js +1 -1
- package/lib/utils/dataMapping.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/debug.js +1 -1
- package/lib/utils/decodeEntity.js +1 -1
- package/lib/utils/dom.js +1 -1
- package/lib/utils/errors.js +1 -1
- package/lib/utils/escapeHtml.js +1 -1
- package/lib/utils/filter-schema.d.ts +8 -0
- package/lib/utils/filter-schema.js +22 -7
- package/lib/utils/filter.js +1 -1
- package/lib/utils/formatDuration.js +1 -1
- package/lib/utils/formula.js +1 -1
- package/lib/utils/getVariable.js +1 -1
- package/lib/utils/grammar.js +1 -1
- package/lib/utils/handleAction.js +2 -1
- package/lib/utils/helper.d.ts +13 -0
- package/lib/utils/helper.js +48 -3
- package/lib/utils/highlight.js +1 -1
- package/lib/utils/icon.js +1 -1
- package/lib/utils/image.js +1 -1
- package/lib/utils/isPureVariable.js +1 -1
- package/lib/utils/json-schema-2-amis-schema.js +1 -1
- package/lib/utils/keyToPath.js +1 -1
- package/lib/utils/makeSorter.js +1 -1
- package/lib/utils/math.js +1 -1
- package/lib/utils/memoryParse.js +1 -1
- package/lib/utils/normalizeLink.js +1 -1
- package/lib/utils/normalizeOptions.js +1 -1
- package/lib/utils/object.js +1 -1
- package/lib/utils/offset.js +1 -1
- package/lib/utils/offsetParent.js +1 -1
- package/lib/utils/optionValueCompare.js +1 -1
- package/lib/utils/position.js +1 -1
- package/lib/utils/prettyBytes.js +1 -1
- package/lib/utils/renderer-event.js +1 -1
- package/lib/utils/replaceText.d.ts +1 -1
- package/lib/utils/replaceText.js +9 -4
- package/lib/utils/resize-sensor.js +1 -1
- package/lib/utils/resolveCondition.js +1 -1
- package/lib/utils/resolveVariable.js +1 -1
- package/lib/utils/resolveVariableAndFilter.js +1 -1
- package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/lib/utils/scrollPosition.js +1 -1
- package/lib/utils/string2regExp.js +1 -1
- package/lib/utils/stripNumber.js +1 -1
- package/lib/utils/style-helper.js +3 -3
- package/lib/utils/style.js +1 -1
- package/lib/utils/toNumber.js +1 -1
- package/lib/utils/tokenize.js +1 -1
- package/lib/utils/tpl-builtin.js +1 -1
- package/lib/utils/tpl-lodash.js +1 -1
- package/lib/utils/tpl.js +1 -1
- package/lib/utils/uncontrollable.js +1 -1
- package/lib/utils/validations.js +1 -1
- package/package.json +4 -3
package/esm/store/table.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.5.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { __assign, __spreadArray, __read, __values } from 'tslib';
|
|
6
|
+
import { __assign, __rest, __spreadArray, __read, __values } from 'tslib';
|
|
7
7
|
import { types, getParent, isAlive } from 'mobx-state-tree';
|
|
8
8
|
import { iRendererStore } from './iRenderer.js';
|
|
9
9
|
import 'amis-formula';
|
|
10
10
|
import 'moment';
|
|
11
11
|
import { createObject, extendObject, isObject } from '../utils/object.js';
|
|
12
|
-
import { isPureVariable } from '../utils/isPureVariable.js';
|
|
13
12
|
import { resolveVariable } from '../utils/resolveVariable.js';
|
|
14
13
|
import { resolveVariableAndFilter } from '../utils/resolveVariableAndFilter.js';
|
|
15
14
|
import 'lodash/isPlainObject';
|
|
@@ -17,7 +16,7 @@ import '../utils/filter.js';
|
|
|
17
16
|
import isEqual from 'lodash/isEqual';
|
|
18
17
|
import find from 'lodash/find';
|
|
19
18
|
import sortBy from 'lodash/sortBy';
|
|
20
|
-
import { immutableExtends, flattenTree, findTree, eachTree, isVisible, hasVisibleExpression, isBreakpoint, difference,
|
|
19
|
+
import { immutableExtends, flattenTree, findTree, eachTree, guid, isVisible, hasVisibleExpression, isBreakpoint, difference, sortArray } from '../utils/helper.js';
|
|
21
20
|
import { evalExpression } from '../utils/tpl.js';
|
|
22
21
|
import { getStoreById } from './manager.js';
|
|
23
22
|
|
|
@@ -25,6 +24,38 @@ import { getStoreById } from './manager.js';
|
|
|
25
24
|
* 内部列的数量 '__checkme' | '__dragme' | '__expandme'
|
|
26
25
|
*/
|
|
27
26
|
var PARTITION_INDEX = 3;
|
|
27
|
+
function initChildren(children, depth, pindex, parentId, path) {
|
|
28
|
+
if (path === void 0) { path = ''; }
|
|
29
|
+
depth += 1;
|
|
30
|
+
return children.map(function (item, index) {
|
|
31
|
+
var _a;
|
|
32
|
+
item = isObject(item)
|
|
33
|
+
? item
|
|
34
|
+
: {
|
|
35
|
+
item: item
|
|
36
|
+
};
|
|
37
|
+
var id = (_a = item.__id) !== null && _a !== void 0 ? _a : guid();
|
|
38
|
+
return {
|
|
39
|
+
// id: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),
|
|
40
|
+
id: String(id),
|
|
41
|
+
parentId: String(parentId),
|
|
42
|
+
key: String("".concat(pindex, "-").concat(depth, "-").concat(index)),
|
|
43
|
+
path: "".concat(path).concat(index),
|
|
44
|
+
depth: depth,
|
|
45
|
+
index: index,
|
|
46
|
+
newIndex: index,
|
|
47
|
+
pristine: item,
|
|
48
|
+
data: item,
|
|
49
|
+
defer: !!item.defer,
|
|
50
|
+
loaded: false,
|
|
51
|
+
loading: false,
|
|
52
|
+
rowSpans: {},
|
|
53
|
+
children: item && Array.isArray(item.children)
|
|
54
|
+
? initChildren(item.children, depth, index, id, "".concat(path).concat(index, "."))
|
|
55
|
+
: []
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
}
|
|
28
59
|
var Column = types
|
|
29
60
|
.model('Column', {
|
|
30
61
|
label: types.optional(types.frozen(), undefined),
|
|
@@ -56,7 +87,7 @@ var Column = types
|
|
|
56
87
|
get isPrimary() {
|
|
57
88
|
var _a;
|
|
58
89
|
var table = getParent(self, 2);
|
|
59
|
-
return ((_a = table.filteredColumns
|
|
90
|
+
return (((_a = table.filteredColumns.find(function (column) { return !column.type.startsWith('__'); })) === null || _a === void 0 ? void 0 : _a.id) === self.id);
|
|
60
91
|
}
|
|
61
92
|
}); })
|
|
62
93
|
.actions(function (self) { return ({
|
|
@@ -98,17 +129,27 @@ var Row = types
|
|
|
98
129
|
rowSpans: types.frozen({}),
|
|
99
130
|
index: types.number,
|
|
100
131
|
newIndex: types.number,
|
|
101
|
-
nth: 0,
|
|
102
132
|
path: '',
|
|
103
|
-
expandable: false,
|
|
104
133
|
checkdisable: false,
|
|
105
134
|
isHover: false,
|
|
106
135
|
children: types.optional(types.array(types.late(function () { return Row; })), []),
|
|
136
|
+
defer: false,
|
|
137
|
+
loaded: false,
|
|
138
|
+
loading: false,
|
|
139
|
+
error: '',
|
|
107
140
|
depth: types.number,
|
|
108
141
|
appeared: true,
|
|
109
142
|
lazyRender: false
|
|
110
143
|
})
|
|
111
144
|
.views(function (self) { return ({
|
|
145
|
+
get expandable() {
|
|
146
|
+
var table;
|
|
147
|
+
return !!((self && self.children.length) ||
|
|
148
|
+
(self && self.defer && !self.loaded) ||
|
|
149
|
+
((table = getParent(self, self.depth * 2)) &&
|
|
150
|
+
table.footable &&
|
|
151
|
+
table.footableColumns.length));
|
|
152
|
+
},
|
|
112
153
|
get checked() {
|
|
113
154
|
return getParent(self, self.depth * 2).isSelected(self);
|
|
114
155
|
},
|
|
@@ -236,30 +277,53 @@ var Row = types
|
|
|
236
277
|
}
|
|
237
278
|
});
|
|
238
279
|
if (Array.isArray(data.children)) {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
280
|
+
this.replaceChildren(data.children);
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
replaceChildren: function (children) {
|
|
284
|
+
var arr = children;
|
|
285
|
+
var pool = arr.concat();
|
|
286
|
+
// 把多的删了先
|
|
287
|
+
if (self.children.length > arr.length) {
|
|
288
|
+
self.children.splice(arr.length, self.children.length - arr.length);
|
|
289
|
+
}
|
|
290
|
+
var index = 0;
|
|
291
|
+
var len = self.children.length;
|
|
292
|
+
while (pool.length) {
|
|
293
|
+
// 因为父级id未更新,所以需要将子级的parentId正确指向父级id
|
|
294
|
+
var item = __assign(__assign({}, pool.shift()), { parentId: self.id });
|
|
295
|
+
if (index < len) {
|
|
296
|
+
self.children[index].replaceWith(item);
|
|
244
297
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
// 因为父级id未更新,所以需要将子级的parentId正确指向父级id
|
|
249
|
-
var item = __assign(__assign({}, pool.shift()), { parentId: self.id });
|
|
250
|
-
if (index < len) {
|
|
251
|
-
self.children[index].replaceWith(item);
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
var row = Row.create(item);
|
|
255
|
-
self.children.push(row);
|
|
256
|
-
}
|
|
257
|
-
index++;
|
|
298
|
+
else {
|
|
299
|
+
var row = Row.create(item);
|
|
300
|
+
self.children.push(row);
|
|
258
301
|
}
|
|
302
|
+
index++;
|
|
259
303
|
}
|
|
260
304
|
},
|
|
261
305
|
markAppeared: function (value) {
|
|
262
306
|
value && (self.appeared = !!value);
|
|
307
|
+
},
|
|
308
|
+
markLoading: function (value) {
|
|
309
|
+
self.loading = !!value;
|
|
310
|
+
},
|
|
311
|
+
markLoaded: function (value) {
|
|
312
|
+
self.loaded = !!value;
|
|
313
|
+
},
|
|
314
|
+
setError: function (value) {
|
|
315
|
+
self.error = String(value);
|
|
316
|
+
},
|
|
317
|
+
resetDefered: function () {
|
|
318
|
+
self.error = '';
|
|
319
|
+
self.loaded = false;
|
|
320
|
+
},
|
|
321
|
+
setDeferData: function (_a) {
|
|
322
|
+
var children = _a.children, rest = __rest(_a, ["children"]);
|
|
323
|
+
self.data = __assign(__assign({}, self.data), rest);
|
|
324
|
+
if (Array.isArray(children)) {
|
|
325
|
+
this.replaceChildren(initChildren(children, self.depth, self.index, self.id, self.path));
|
|
326
|
+
}
|
|
263
327
|
}
|
|
264
328
|
}); });
|
|
265
329
|
var TableStore = iRendererStore
|
|
@@ -664,7 +728,7 @@ var TableStore = iRendererStore
|
|
|
664
728
|
function getTable() {
|
|
665
729
|
return tableRef;
|
|
666
730
|
}
|
|
667
|
-
function update(config) {
|
|
731
|
+
function update(config, options) {
|
|
668
732
|
var _a;
|
|
669
733
|
config.primaryField !== undefined &&
|
|
670
734
|
(self.primaryField = config.primaryField);
|
|
@@ -711,8 +775,15 @@ var TableStore = iRendererStore
|
|
|
711
775
|
(self.tableLayout = config.tableLayout);
|
|
712
776
|
if (config.columns && Array.isArray(config.columns)) {
|
|
713
777
|
var columns = config.columns
|
|
714
|
-
.
|
|
715
|
-
.
|
|
778
|
+
.map(function (column) {
|
|
779
|
+
if ((options === null || options === void 0 ? void 0 : options.resolveDefinitions) &&
|
|
780
|
+
typeof (column === null || column === void 0 ? void 0 : column.$ref) == 'string' &&
|
|
781
|
+
column.$ref) {
|
|
782
|
+
return __assign(__assign({}, options.resolveDefinitions(column.$ref)), column);
|
|
783
|
+
}
|
|
784
|
+
return column;
|
|
785
|
+
})
|
|
786
|
+
.filter(function (column) { return column; });
|
|
716
787
|
// 更新列顺序,afterCreate生命周期中更新columns不会触发组件的render
|
|
717
788
|
var key = getPersistDataKey(columns);
|
|
718
789
|
var data = localStorage.getItem(key);
|
|
@@ -762,11 +833,7 @@ var TableStore = iRendererStore
|
|
|
762
833
|
var origin = item.id
|
|
763
834
|
? originColumns_1.find(function (column) { return column.pristine.id === item.id; })
|
|
764
835
|
: originColumns_1[index];
|
|
765
|
-
return __assign(__assign({}, item), { id: (origin === null || origin === void 0 ? void 0 : origin.id) || guid(), index: index, width: (origin === null || origin === void 0 ? void 0 : origin.width) || 0, minWidth: (origin === null || origin === void 0 ? void 0 : origin.minWidth) || 0, realWidth: (origin === null || origin === void 0 ? void 0 : origin.realWidth) || 0, rawIndex: index - PARTITION_INDEX, type: item.type || 'plain', pristine: item.pristine || item, toggled: item.toggled !== false, breakpoint: item.breakpoint,
|
|
766
|
-
/** 提前映射变量,方便后续view中使用 */
|
|
767
|
-
label: isPureVariable(item.label)
|
|
768
|
-
? resolveVariableAndFilter(item.label, self.data)
|
|
769
|
-
: item.label });
|
|
836
|
+
return __assign(__assign({}, item), { id: (origin === null || origin === void 0 ? void 0 : origin.id) || guid(), index: index, width: (origin === null || origin === void 0 ? void 0 : origin.width) || 0, minWidth: (origin === null || origin === void 0 ? void 0 : origin.minWidth) || 0, realWidth: (origin === null || origin === void 0 ? void 0 : origin.realWidth) || 0, rawIndex: index - PARTITION_INDEX, type: item.type || 'plain', pristine: item.pristine || item, toggled: item.toggled !== false, breakpoint: item.breakpoint, isPrimary: index === PARTITION_INDEX });
|
|
770
837
|
});
|
|
771
838
|
self.columns.replace(columns);
|
|
772
839
|
}
|
|
@@ -912,44 +979,11 @@ var TableStore = iRendererStore
|
|
|
912
979
|
}
|
|
913
980
|
return combineCell(arr, keys);
|
|
914
981
|
}
|
|
915
|
-
function initChildren(children, depth, pindex, parentId, path, nThRef) {
|
|
916
|
-
if (path === void 0) { path = ''; }
|
|
917
|
-
depth += 1;
|
|
918
|
-
return children.map(function (item, index) {
|
|
919
|
-
var _a;
|
|
920
|
-
item = isObject(item)
|
|
921
|
-
? item
|
|
922
|
-
: {
|
|
923
|
-
item: item
|
|
924
|
-
};
|
|
925
|
-
var id = (_a = item.__id) !== null && _a !== void 0 ? _a : guid();
|
|
926
|
-
return {
|
|
927
|
-
// id: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),
|
|
928
|
-
id: String(id),
|
|
929
|
-
parentId: String(parentId),
|
|
930
|
-
key: String("".concat(pindex, "-").concat(depth, "-").concat(index)),
|
|
931
|
-
path: "".concat(path).concat(index),
|
|
932
|
-
depth: depth,
|
|
933
|
-
index: index,
|
|
934
|
-
nth: nThRef.index++,
|
|
935
|
-
newIndex: index,
|
|
936
|
-
pristine: item,
|
|
937
|
-
data: item,
|
|
938
|
-
rowSpans: {},
|
|
939
|
-
children: item && Array.isArray(item.children)
|
|
940
|
-
? initChildren(item.children, depth, index, id, "".concat(path).concat(index, "."), nThRef)
|
|
941
|
-
: [],
|
|
942
|
-
expandable: !!((item && Array.isArray(item.children) && item.children.length) ||
|
|
943
|
-
(self.footable && self.footableColumns.length))
|
|
944
|
-
};
|
|
945
|
-
});
|
|
946
|
-
}
|
|
947
982
|
function initRows(rows, getEntryId, reUseRow) {
|
|
948
983
|
self.selectedRows.clear();
|
|
949
984
|
// self.expandedRows.clear();
|
|
950
985
|
/* 避免输入内容为非数组挂掉 */
|
|
951
986
|
rows = !Array.isArray(rows) ? [] : rows;
|
|
952
|
-
var nThRef = { index: 0 };
|
|
953
987
|
var arr = rows.map(function (item, index) {
|
|
954
988
|
var _a;
|
|
955
989
|
if (!isObject(item)) {
|
|
@@ -964,24 +998,24 @@ var TableStore = iRendererStore
|
|
|
964
998
|
key: String("".concat(index, "-1-").concat(index)),
|
|
965
999
|
depth: 1,
|
|
966
1000
|
index: index,
|
|
967
|
-
nth: nThRef.index++,
|
|
968
1001
|
newIndex: index,
|
|
969
1002
|
pristine: item,
|
|
970
1003
|
path: "".concat(index),
|
|
971
1004
|
data: item,
|
|
972
1005
|
rowSpans: {},
|
|
1006
|
+
defer: !!item.defer,
|
|
1007
|
+
loaded: false,
|
|
1008
|
+
loading: false,
|
|
973
1009
|
children: item && Array.isArray(item.children)
|
|
974
|
-
? initChildren(item.children, 1, index, id, "".concat(index, ".")
|
|
975
|
-
: []
|
|
976
|
-
expandable: !!((item && Array.isArray(item.children) && item.children.length) ||
|
|
977
|
-
(self.footable && self.footableColumns.length))
|
|
1010
|
+
? initChildren(item.children, 1, index, id, "".concat(index, "."))
|
|
1011
|
+
: []
|
|
978
1012
|
};
|
|
979
1013
|
});
|
|
980
1014
|
if (self.combineNum) {
|
|
981
1015
|
arr = autoCombineCell(arr, self.columns, self.combineNum, self.combineFromIndex);
|
|
982
1016
|
}
|
|
983
1017
|
replaceRow(arr, reUseRow);
|
|
984
|
-
self.isNested = self.rows.some(function (item) { return item.children.length; });
|
|
1018
|
+
self.isNested = self.rows.some(function (item) { return item.children.length || (item.defer && !item.loaded); });
|
|
985
1019
|
// 前 20 个直接渲染,后面的按需渲染
|
|
986
1020
|
if (self.lazyRenderAfter &&
|
|
987
1021
|
self.falttenedRows.length > self.lazyRenderAfter) {
|
package/esm/store/table2.js
CHANGED
package/esm/theme.js
CHANGED
package/esm/types.d.ts
CHANGED
|
@@ -186,8 +186,14 @@ export interface ApiObject extends BaseApiObject {
|
|
|
186
186
|
mockResponse?: PlainObject;
|
|
187
187
|
adaptor?: (payload: object, response: fetcherResult, api: ApiObject, context: any) => any;
|
|
188
188
|
requestAdaptor?: (api: ApiObject, context: any) => ApiObject | Promise<ApiObject>;
|
|
189
|
+
/**
|
|
190
|
+
* api 发送上下文,可以用来传递一些数据给 api 的 adaptor
|
|
191
|
+
* @readonly
|
|
192
|
+
*/
|
|
193
|
+
context?: any;
|
|
189
194
|
/** 是否过滤为空字符串的 query 参数 */
|
|
190
195
|
filterEmptyQuery?: boolean;
|
|
196
|
+
downloadFileName?: string;
|
|
191
197
|
}
|
|
192
198
|
export type ApiString = string;
|
|
193
199
|
export type Api = ApiString | ApiObject;
|
package/esm/utils/Animation.js
CHANGED
package/esm/utils/ColorScale.js
CHANGED
package/esm/utils/DataSchema.js
CHANGED
package/esm/utils/DataScope.js
CHANGED
package/esm/utils/RootClose.js
CHANGED
package/esm/utils/SimpleMap.js
CHANGED
package/esm/utils/api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.5.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -370,6 +370,7 @@ function wrapFetcher(fn, tracker) {
|
|
|
370
370
|
switch (_d.label) {
|
|
371
371
|
case 0:
|
|
372
372
|
api = buildApi(api, data, options);
|
|
373
|
+
api.context = data;
|
|
373
374
|
if (!api.requestAdaptor) return [3 /*break*/, 2];
|
|
374
375
|
debug('api', 'before requestAdaptor', api);
|
|
375
376
|
return [4 /*yield*/, api.requestAdaptor(api, data)];
|
package/esm/utils/arraySlice.js
CHANGED
|
@@ -4,5 +4,6 @@
|
|
|
4
4
|
* @param __
|
|
5
5
|
* @returns
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
import { ApiObject } from '../types';
|
|
8
|
+
export declare function attachmentAdpator(response: any, __: Function, api?: ApiObject): any;
|
|
8
9
|
export default attachmentAdpator;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.5.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -11,21 +11,27 @@ import { __assign } from 'tslib';
|
|
|
11
11
|
* @param __
|
|
12
12
|
* @returns
|
|
13
13
|
*/
|
|
14
|
-
function attachmentAdpator(response, __) {
|
|
14
|
+
function attachmentAdpator(response, __, api) {
|
|
15
15
|
if (response && response.headers && response.headers['content-disposition']) {
|
|
16
16
|
var disposition = response.headers['content-disposition'];
|
|
17
17
|
var filename = '';
|
|
18
18
|
if (disposition && disposition.indexOf('attachment') !== -1) {
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
var matches = disposition.match(filenameRegex);
|
|
23
|
-
if (matches && matches.length) {
|
|
24
|
-
filename = matches[1].replace("UTF-8''", '').replace(/['"]/g, '');
|
|
19
|
+
// 如果 api 中配置了,则优先用 api 中的配置
|
|
20
|
+
if (api === null || api === void 0 ? void 0 : api.downloadFileName) {
|
|
21
|
+
filename = api.downloadFileName;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
else {
|
|
24
|
+
// disposition 有可能是 attachment; filename="??.xlsx"; filename*=UTF-8''%E4%B8%AD%E6%96%87.xlsx
|
|
25
|
+
// 这种情况下最后一个才是正确的文件名
|
|
26
|
+
var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/i;
|
|
27
|
+
var matches = disposition.match(filenameRegex);
|
|
28
|
+
if (matches && matches.length) {
|
|
29
|
+
filename = matches[1].replace("UTF-8''", '').replace(/['"]/g, '');
|
|
30
|
+
}
|
|
31
|
+
// 很可能是中文被 url-encode 了
|
|
32
|
+
if (filename && filename.replace(/[^%]/g, '').length > 2) {
|
|
33
|
+
filename = decodeURIComponent(filename);
|
|
34
|
+
}
|
|
29
35
|
}
|
|
30
36
|
var type = response.headers['content-type'];
|
|
31
37
|
var blob = response.data.toString() === '[object Blob]'
|
package/esm/utils/autobind.js
CHANGED
package/esm/utils/dataMapping.js
CHANGED
package/esm/utils/date.js
CHANGED
package/esm/utils/debug.js
CHANGED
package/esm/utils/dom.js
CHANGED
package/esm/utils/errors.js
CHANGED
package/esm/utils/escapeHtml.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { PlainObject } from '../types';
|
|
2
|
+
import type { ClassValue } from '../theme';
|
|
3
|
+
/**
|
|
4
|
+
* 计算下发给子组件的className,处理对象类型的className,将其中的表达式计算出来,避免被classnames识别为true
|
|
5
|
+
*
|
|
6
|
+
* @param value - CSS类名值
|
|
7
|
+
* @param ctx - 数据域
|
|
8
|
+
*/
|
|
9
|
+
export declare function filterClassNameObject(classValue: ClassValue, ctx?: Record<string, any>): ClassValue;
|
|
2
10
|
/**
|
|
3
11
|
* 处理 Props 数据,所有带 On 结束的做一次
|
|
4
12
|
*
|
|
@@ -1,13 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.5.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { evalExpression, filter } from './tpl.js';
|
|
7
|
-
import {
|
|
7
|
+
import { mapObject, injectPropsToObject } from './helper.js';
|
|
8
8
|
import isPlainObject from 'lodash/isPlainObject';
|
|
9
9
|
import { tokenize } from './tokenize.js';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* 计算下发给子组件的className,处理对象类型的className,将其中的表达式计算出来,避免被classnames识别为true
|
|
13
|
+
*
|
|
14
|
+
* @param value - CSS类名值
|
|
15
|
+
* @param ctx - 数据域
|
|
16
|
+
*/
|
|
17
|
+
function filterClassNameObject(classValue, ctx) {
|
|
18
|
+
if (ctx === void 0) { ctx = {}; }
|
|
19
|
+
var result = classValue;
|
|
20
|
+
if (classValue && typeof classValue === 'string') {
|
|
21
|
+
result = tokenize(classValue, ctx);
|
|
22
|
+
}
|
|
23
|
+
else if (classValue && isPlainObject(classValue)) {
|
|
24
|
+
result = mapObject(classValue, function (value) {
|
|
25
|
+
return typeof value === 'string' ? evalExpression(value, ctx) : value;
|
|
26
|
+
}, undefined, function (key) { return tokenize(key, ctx); });
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
11
30
|
/**
|
|
12
31
|
* 处理 Props 数据,所有带 On 结束的做一次
|
|
13
32
|
*
|
|
@@ -58,15 +77,10 @@ function getExprProperties(schema, data, blackList, props) {
|
|
|
58
77
|
value &&
|
|
59
78
|
(typeof value === 'string' || isPlainObject(value))) {
|
|
60
79
|
exprProps["".concat(key, "Raw")] = value;
|
|
61
|
-
exprProps[key] =
|
|
62
|
-
typeof value === 'string'
|
|
63
|
-
? tokenize(value, data)
|
|
64
|
-
: mapObject(value, function (value) {
|
|
65
|
-
return typeof value === 'string' ? evalExpression(value, data) : value;
|
|
66
|
-
}, undefined, function (key) { return tokenize(key, data); });
|
|
80
|
+
exprProps[key] = filterClassNameObject(value, data);
|
|
67
81
|
}
|
|
68
82
|
});
|
|
69
83
|
return exprProps;
|
|
70
84
|
}
|
|
71
85
|
|
|
72
|
-
export { getExprProperties as default, getExprProperties };
|
|
86
|
+
export { getExprProperties as default, filterClassNameObject, getExprProperties };
|
package/esm/utils/filter.js
CHANGED
package/esm/utils/formula.js
CHANGED
package/esm/utils/getVariable.js
CHANGED
package/esm/utils/grammar.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.5.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -26,6 +26,7 @@ function handleAction(e, action, props, data) {
|
|
|
26
26
|
action.actionType = 'ajax';
|
|
27
27
|
var api = normalizeApi(action.api);
|
|
28
28
|
api.responseType = 'blob';
|
|
29
|
+
api.downloadFileName = action.downloadFileName;
|
|
29
30
|
action.api = api;
|
|
30
31
|
}
|
|
31
32
|
onAction(e, action, data || props.data);
|