amis-core 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/Root.js +1 -1
- package/esm/RootRenderer.d.ts +1 -1
- package/esm/RootRenderer.js +3 -3
- package/esm/SchemaRenderer.js +5 -2
- package/esm/Scoped.d.ts +4 -1
- package/esm/Scoped.js +8 -5
- package/esm/StatusScoped.js +1 -1
- package/esm/WithRootStore.js +1 -1
- package/esm/WithStore.js +1 -1
- package/esm/actions/Action.d.ts +1 -0
- package/esm/actions/Action.js +62 -37
- package/esm/actions/AjaxAction.d.ts +6 -8
- package/esm/actions/AjaxAction.js +20 -18
- package/esm/actions/BreakAction.js +1 -1
- package/esm/actions/BroadcastAction.js +1 -1
- package/esm/actions/CmptAction.d.ts +1 -2
- package/esm/actions/CmptAction.js +46 -31
- package/esm/actions/ContinueAction.js +1 -1
- package/esm/actions/CopyAction.js +1 -1
- package/esm/actions/CustomAction.js +2 -2
- package/esm/actions/DialogAction.js +5 -6
- package/esm/actions/DrawerAction.js +4 -4
- 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.d.ts +15 -0
- package/esm/actions/StatusAction.js +49 -0
- package/esm/actions/SwitchAction.js +1 -1
- package/esm/actions/ToastAction.js +1 -1
- package/esm/actions/index.d.ts +1 -0
- package/esm/components/CustomStyle.js +1 -1
- package/esm/components/LazyComponent.js +1 -1
- package/esm/components/Overlay.js +2 -2
- package/esm/components/PopOver.js +2 -2
- package/esm/env.js +1 -1
- package/esm/envOverwrite.js +1 -1
- package/esm/factory.js +2 -2
- package/esm/index.d.ts +2 -1
- package/esm/index.js +13 -13
- package/esm/locale.js +1 -1
- package/esm/polyfills.js +1 -1
- package/esm/renderers/Form.d.ts +6 -6
- package/esm/renderers/Form.js +168 -124
- package/esm/renderers/Item.d.ts +42 -66
- package/esm/renderers/Item.js +11 -41
- package/esm/renderers/Options.js +1 -2
- 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 +101 -47
- package/esm/store/app.js +8 -4
- package/esm/store/combo.d.ts +444 -1912
- package/esm/store/combo.js +9 -2
- package/esm/store/crud.d.ts +1 -0
- package/esm/store/crud.js +11 -5
- package/esm/store/form.d.ts +132 -892
- package/esm/store/form.js +83 -81
- package/esm/store/formItem.d.ts +5 -2
- package/esm/store/formItem.js +13 -2
- package/esm/store/iRenderer.js +2 -2
- 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 +2 -2
- package/esm/store/service.js +4 -4
- package/esm/store/status.js +1 -1
- package/esm/store/table.d.ts +503 -2040
- package/esm/store/table.js +79 -55
- package/esm/store/table2.d.ts +49 -0
- package/esm/store/table2.js +37 -4
- package/esm/theme.js +1 -1
- package/esm/types.d.ts +17 -3
- 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.d.ts +2 -2
- package/esm/utils/api.js +113 -81
- package/esm/utils/arraySlice.js +1 -1
- package/esm/utils/attachmentAdpator.js +1 -1
- package/esm/utils/autobind.js +1 -1
- package/esm/utils/columnsSplit.js +1 -1
- package/esm/utils/dataMapping.js +4 -2
- package/esm/utils/date.js +1 -1
- package/esm/utils/debug.d.ts +2 -0
- package/esm/utils/debug.js +34 -7
- 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.js +1 -1
- package/esm/utils/filter.js +1 -1
- package/esm/utils/formatDuration.js +1 -1
- package/esm/utils/formula.d.ts +0 -1
- package/esm/utils/formula.js +6 -9
- package/esm/utils/getVariable.js +1 -1
- package/esm/utils/grammar.js +1 -1
- package/esm/utils/handleAction.js +1 -1
- package/esm/utils/helper.d.ts +11 -1
- package/esm/utils/helper.js +14 -2
- package/esm/utils/highlight.js +1 -1
- package/esm/utils/icon.d.ts +4 -2
- package/esm/utils/icon.js +3 -2
- package/esm/utils/image.js +1 -1
- package/esm/utils/index.d.ts +1 -0
- 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.d.ts +3 -0
- package/esm/utils/math.js +52 -0
- 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.d.ts +7 -0
- package/esm/utils/object.js +13 -2
- package/esm/utils/offset.js +1 -1
- package/esm/utils/offsetParent.js +1 -1
- package/esm/utils/optionValueCompare.js +2 -2
- package/esm/utils/position.js +1 -1
- package/esm/utils/prettyBytes.js +1 -1
- package/esm/utils/renderer-event.d.ts +1 -1
- package/esm/utils/renderer-event.js +14 -6
- package/esm/utils/replaceText.js +1 -1
- 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 +1 -1
- 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 +10 -7
- package/lib/RootRenderer.d.ts +1 -1
- package/lib/RootRenderer.js +11 -8
- package/lib/SchemaRenderer.js +12 -6
- package/lib/Scoped.d.ts +4 -1
- package/lib/Scoped.js +18 -13
- package/lib/StatusScoped.js +5 -2
- package/lib/WithRootStore.js +5 -2
- package/lib/WithStore.js +5 -2
- package/lib/actions/Action.d.ts +1 -0
- package/lib/actions/Action.js +62 -37
- package/lib/actions/AjaxAction.d.ts +6 -8
- package/lib/actions/AjaxAction.js +20 -18
- package/lib/actions/BreakAction.js +1 -1
- package/lib/actions/BroadcastAction.js +1 -1
- package/lib/actions/CmptAction.d.ts +1 -2
- package/lib/actions/CmptAction.js +46 -31
- package/lib/actions/ContinueAction.js +1 -1
- package/lib/actions/CopyAction.js +1 -1
- package/lib/actions/CustomAction.js +8 -5
- package/lib/actions/DialogAction.js +5 -6
- package/lib/actions/DrawerAction.js +4 -4
- 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.d.ts +15 -0
- package/lib/actions/StatusAction.js +53 -0
- package/lib/actions/SwitchAction.js +1 -1
- package/lib/actions/ToastAction.js +1 -1
- package/lib/actions/index.d.ts +1 -0
- package/lib/components/CustomStyle.js +1 -1
- package/lib/components/LazyComponent.js +12 -14
- package/lib/components/Overlay.js +14 -14
- package/lib/components/PopOver.js +11 -10
- package/lib/env.js +4 -1
- package/lib/envOverwrite.js +1 -1
- package/lib/factory.js +11 -9
- package/lib/index.d.ts +2 -1
- package/lib/index.js +21 -19
- package/lib/locale.js +6 -3
- package/lib/polyfills.js +1 -1
- package/lib/renderers/Form.d.ts +6 -6
- package/lib/renderers/Form.js +180 -131
- package/lib/renderers/Item.d.ts +42 -66
- package/lib/renderers/Item.js +51 -75
- package/lib/renderers/Options.js +10 -5
- 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 +104 -47
- package/lib/store/app.js +14 -7
- package/lib/store/combo.d.ts +444 -1912
- package/lib/store/combo.js +9 -2
- package/lib/store/crud.d.ts +1 -0
- package/lib/store/crud.js +11 -5
- package/lib/store/form.d.ts +132 -892
- package/lib/store/form.js +81 -79
- package/lib/store/formItem.d.ts +5 -2
- package/lib/store/formItem.js +13 -2
- package/lib/store/iRenderer.js +8 -5
- 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 +8 -5
- package/lib/store/service.js +4 -4
- package/lib/store/status.js +1 -1
- package/lib/store/table.d.ts +503 -2040
- package/lib/store/table.js +79 -55
- package/lib/store/table2.d.ts +49 -0
- package/lib/store/table2.js +36 -3
- package/lib/theme.js +6 -3
- package/lib/types.d.ts +17 -3
- 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.d.ts +2 -2
- package/lib/utils/api.js +113 -81
- package/lib/utils/arraySlice.js +1 -1
- package/lib/utils/attachmentAdpator.js +1 -1
- package/lib/utils/autobind.js +1 -1
- package/lib/utils/columnsSplit.js +8 -6
- package/lib/utils/dataMapping.js +4 -2
- package/lib/utils/date.js +1 -1
- package/lib/utils/debug.d.ts +2 -0
- package/lib/utils/debug.js +61 -33
- package/lib/utils/decodeEntity.js +1 -1
- package/lib/utils/dom.js +7 -5
- package/lib/utils/errors.js +1 -1
- package/lib/utils/escapeHtml.js +1 -1
- package/lib/utils/filter-schema.js +1 -1
- package/lib/utils/filter.js +1 -1
- package/lib/utils/formatDuration.js +1 -1
- package/lib/utils/formula.d.ts +0 -1
- package/lib/utils/formula.js +6 -10
- package/lib/utils/getVariable.js +1 -1
- package/lib/utils/grammar.js +1 -1
- package/lib/utils/handleAction.js +1 -1
- package/lib/utils/helper.d.ts +11 -1
- package/lib/utils/helper.js +14 -1
- package/lib/utils/highlight.js +8 -9
- package/lib/utils/icon.d.ts +4 -2
- package/lib/utils/icon.js +12 -10
- package/lib/utils/image.js +1 -1
- package/lib/utils/index.d.ts +1 -0
- 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.d.ts +3 -0
- package/lib/utils/math.js +58 -0
- 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.d.ts +7 -0
- package/lib/utils/object.js +13 -1
- package/lib/utils/offset.js +1 -1
- package/lib/utils/offsetParent.js +1 -1
- package/lib/utils/optionValueCompare.js +7 -3
- package/lib/utils/position.js +1 -1
- package/lib/utils/prettyBytes.js +1 -1
- package/lib/utils/renderer-event.d.ts +1 -1
- package/lib/utils/renderer-event.js +13 -5
- package/lib/utils/replaceText.js +1 -1
- 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 +1 -1
- 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 +5 -5
package/lib/utils/api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.3.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -56,10 +56,10 @@ function buildApi(api, data, options) {
|
|
|
56
56
|
api.headers = dataMapping.dataMapping(api.headers, data, undefined, false);
|
|
57
57
|
}
|
|
58
58
|
if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {
|
|
59
|
-
api.requestAdaptor =
|
|
59
|
+
api.requestAdaptor = str2AsyncFunction(api.requestAdaptor, 'api', 'context');
|
|
60
60
|
}
|
|
61
61
|
if (api.adaptor && typeof api.adaptor === 'string') {
|
|
62
|
-
api.adaptor =
|
|
62
|
+
api.adaptor = str2AsyncFunction(api.adaptor, 'payload', 'response', 'api', 'context');
|
|
63
63
|
}
|
|
64
64
|
if (!data) {
|
|
65
65
|
return api;
|
|
@@ -363,68 +363,84 @@ function wrapFetcher(fn, tracker) {
|
|
|
363
363
|
}
|
|
364
364
|
var wrappedFetcher = function (api, data, options) {
|
|
365
365
|
var _a, _b, _c;
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
:
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
366
|
+
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
367
|
+
var apiCache, timeStamp;
|
|
368
|
+
return tslib.__generator(this, function (_d) {
|
|
369
|
+
switch (_d.label) {
|
|
370
|
+
case 0:
|
|
371
|
+
api = buildApi(api, data, options);
|
|
372
|
+
if (!api.requestAdaptor) return [3 /*break*/, 2];
|
|
373
|
+
debug.debug('api', 'before requestAdaptor', api);
|
|
374
|
+
return [4 /*yield*/, api.requestAdaptor(api, data)];
|
|
375
|
+
case 1:
|
|
376
|
+
api = (_d.sent()) || api;
|
|
377
|
+
debug.debug('api', 'after requestAdaptor', api);
|
|
378
|
+
_d.label = 2;
|
|
379
|
+
case 2:
|
|
380
|
+
if (api.data &&
|
|
381
|
+
(api.data instanceof FormData ||
|
|
382
|
+
helper.hasFile(api.data) ||
|
|
383
|
+
api.dataType === 'form-data')) {
|
|
384
|
+
api.data =
|
|
385
|
+
api.data instanceof FormData
|
|
386
|
+
? api.data
|
|
387
|
+
: helper.object2formData(api.data, api.qsOptions);
|
|
388
|
+
}
|
|
389
|
+
else if (api.data &&
|
|
390
|
+
typeof api.data !== 'string' &&
|
|
391
|
+
api.dataType === 'form') {
|
|
392
|
+
api.data = helper.qsstringify(api.data, api.qsOptions);
|
|
393
|
+
api.headers = api.headers || (api.headers = {});
|
|
394
|
+
api.headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
|
395
|
+
}
|
|
396
|
+
else if (api.data &&
|
|
397
|
+
typeof api.data !== 'string' &&
|
|
398
|
+
api.dataType === 'json') {
|
|
399
|
+
api.data = JSON.stringify(api.data);
|
|
400
|
+
api.headers = api.headers || (api.headers = {});
|
|
401
|
+
api.headers['Content-Type'] = 'application/json';
|
|
402
|
+
}
|
|
403
|
+
// 如果发送适配器中设置了 mockResponse
|
|
404
|
+
// 则直接跳过请求发送
|
|
405
|
+
if (api.mockResponse) {
|
|
406
|
+
return [2 /*return*/, wrapAdaptor(Promise.resolve(api.mockResponse), api, data)];
|
|
407
|
+
}
|
|
408
|
+
if (!isValidApi(api.url)) {
|
|
409
|
+
throw new Error("invalid api url:".concat(api.url));
|
|
410
|
+
}
|
|
411
|
+
debug.debug('api', 'request api', api);
|
|
412
|
+
tracker === null || tracker === void 0 ? void 0 : tracker({ eventType: 'api', eventData: omit__default["default"](api, ['config', 'data', 'body']) }, api.data);
|
|
413
|
+
if (((_a = api.method) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === 'jsonp') {
|
|
414
|
+
return [2 /*return*/, wrapAdaptor(jsonpFetcher(api), api, data)];
|
|
415
|
+
}
|
|
416
|
+
if (((_b = api.method) === null || _b === void 0 ? void 0 : _b.toLocaleLowerCase()) === 'js') {
|
|
417
|
+
return [2 /*return*/, wrapAdaptor(jsFetcher(fn, api), api, data)];
|
|
418
|
+
}
|
|
419
|
+
if (typeof api.cache === 'number' && api.cache > 0) {
|
|
420
|
+
apiCache = getApiCache(api);
|
|
421
|
+
return [2 /*return*/, wrapAdaptor(apiCache
|
|
422
|
+
? apiCache.cachedPromise
|
|
423
|
+
: setApiCache(api, fn(api)), api, data)];
|
|
424
|
+
}
|
|
425
|
+
// IE 下 get 请求会被缓存,所以自动加个时间戳
|
|
426
|
+
if (isIE && api && ((_c = api.method) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase()) === 'get') {
|
|
427
|
+
timeStamp = "_t=".concat(Date.now());
|
|
428
|
+
if (api.url.indexOf('?') === -1) {
|
|
429
|
+
api.url = api.url + "?".concat(timeStamp);
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
api.url = api.url + "&".concat(timeStamp);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
return [2 /*return*/, wrapAdaptor(fn(api), api, data)];
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
});
|
|
423
439
|
};
|
|
424
440
|
wrappedFetcher._wrappedFetcher = true;
|
|
425
441
|
return wrappedFetcher;
|
|
426
442
|
}
|
|
427
|
-
function wrapAdaptor(promise, api) {
|
|
443
|
+
function wrapAdaptor(promise, api, context) {
|
|
428
444
|
var _this = this;
|
|
429
445
|
var adaptor = api.adaptor;
|
|
430
446
|
return adaptor
|
|
@@ -435,7 +451,7 @@ function wrapAdaptor(promise, api) {
|
|
|
435
451
|
switch (_a.label) {
|
|
436
452
|
case 0:
|
|
437
453
|
debug.debug('api', 'before adaptor data', response.data);
|
|
438
|
-
result = adaptor(response.data, response, api);
|
|
454
|
+
result = adaptor(response.data, response, api, context);
|
|
439
455
|
if (!(result === null || result === void 0 ? void 0 : result.then)) return [3 /*break*/, 2];
|
|
440
456
|
return [4 /*yield*/, result];
|
|
441
457
|
case 1:
|
|
@@ -549,41 +565,57 @@ function isApiOutdated(prevApi, nextApi, prevData, nextData) {
|
|
|
549
565
|
return true;
|
|
550
566
|
}
|
|
551
567
|
nextApi = normalizeApi(nextApi);
|
|
568
|
+
prevApi = (prevApi ? normalizeApi(prevApi) : prevApi);
|
|
552
569
|
if (nextApi.autoRefresh === false) {
|
|
553
570
|
return false;
|
|
554
571
|
}
|
|
572
|
+
// api 本身有变化
|
|
573
|
+
if ((prevApi && prevApi.url !== nextApi.url) || !prevApi) {
|
|
574
|
+
return !!(isValidApi(nextApi.url) &&
|
|
575
|
+
(!nextApi.sendOn || tpl.evalExpression(nextApi.sendOn, nextData)));
|
|
576
|
+
}
|
|
555
577
|
var trackExpression = (_a = nextApi.trackExpression) !== null && _a !== void 0 ? _a : nextApi.url;
|
|
556
578
|
if (typeof trackExpression !== 'string' || !~trackExpression.indexOf('$')) {
|
|
557
579
|
return false;
|
|
558
580
|
}
|
|
559
581
|
var isModified = false;
|
|
560
|
-
if (prevApi) {
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
tokenize.tokenize(prevApi.trackExpression || '', prevData) !==
|
|
565
|
-
tokenize.tokenize(nextApi.trackExpression || '', nextData);
|
|
566
|
-
}
|
|
567
|
-
else {
|
|
568
|
-
prevApi = buildApi(prevApi, prevData, {
|
|
569
|
-
ignoreData: true
|
|
570
|
-
});
|
|
571
|
-
nextApi = buildApi(nextApi, nextData, {
|
|
572
|
-
ignoreData: true
|
|
573
|
-
});
|
|
574
|
-
isModified = prevApi.url !== nextApi.url;
|
|
575
|
-
}
|
|
582
|
+
if (nextApi.trackExpression || prevApi.trackExpression) {
|
|
583
|
+
isModified =
|
|
584
|
+
tokenize.tokenize(prevApi.trackExpression || '', prevData) !==
|
|
585
|
+
tokenize.tokenize(nextApi.trackExpression || '', nextData);
|
|
576
586
|
}
|
|
577
587
|
else {
|
|
578
|
-
|
|
588
|
+
prevApi = buildApi(prevApi, prevData, {
|
|
589
|
+
ignoreData: true
|
|
590
|
+
});
|
|
591
|
+
nextApi = buildApi(nextApi, nextData, {
|
|
592
|
+
ignoreData: true
|
|
593
|
+
});
|
|
594
|
+
isModified = prevApi.url !== nextApi.url;
|
|
579
595
|
}
|
|
580
596
|
return !!(isModified &&
|
|
581
597
|
isValidApi(nextApi.url) &&
|
|
582
598
|
(!nextApi.sendOn || tpl.evalExpression(nextApi.sendOn, nextData)));
|
|
583
599
|
}
|
|
584
600
|
function isValidApi(api) {
|
|
585
|
-
|
|
586
|
-
|
|
601
|
+
if (!api || typeof api !== 'string') {
|
|
602
|
+
return false;
|
|
603
|
+
}
|
|
604
|
+
var idx = api.indexOf('://');
|
|
605
|
+
// 不允许直接相对路径写 api
|
|
606
|
+
// 不允许 :// 结尾
|
|
607
|
+
if ((!~idx && api[0] !== '/') || (~idx && idx + 3 === api.length)) {
|
|
608
|
+
return false;
|
|
609
|
+
}
|
|
610
|
+
try {
|
|
611
|
+
// 不补一个协议,URL 判断为 false
|
|
612
|
+
api = (~idx ? '' : 'schema://domain') + api;
|
|
613
|
+
new URL(api);
|
|
614
|
+
}
|
|
615
|
+
catch (error) {
|
|
616
|
+
return false;
|
|
617
|
+
}
|
|
618
|
+
return true;
|
|
587
619
|
}
|
|
588
620
|
function isEffectiveApi(api, data, initFetch, initFetchOn) {
|
|
589
621
|
if (!api) {
|
package/lib/utils/arraySlice.js
CHANGED
package/lib/utils/autobind.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.3.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -8,14 +8,16 @@
|
|
|
8
8
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
9
9
|
|
|
10
10
|
var tslib = require('tslib');
|
|
11
|
-
|
|
11
|
+
require('react');
|
|
12
12
|
var chunk = require('lodash/chunk');
|
|
13
13
|
|
|
14
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
15
|
|
|
16
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
17
16
|
var chunk__default = /*#__PURE__*/_interopDefaultLegacy(chunk);
|
|
18
17
|
|
|
18
|
+
var __react_jsx__ = require('react');
|
|
19
|
+
var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
|
|
20
|
+
(__react_jsx__["default"] || __react_jsx__).Fragment;
|
|
19
21
|
function columnsSplit(body, cx, columnsCount) {
|
|
20
22
|
if (Array.isArray(columnsCount) && columnsCount.length) {
|
|
21
23
|
var bodyIndex_1 = 0;
|
|
@@ -24,10 +26,10 @@ function columnsSplit(body, cx, columnsCount) {
|
|
|
24
26
|
var cellClassName_1 = "Grid-col--sm".concat(maxSize);
|
|
25
27
|
columnsCount.forEach(function (columnSize, groupIndex) {
|
|
26
28
|
if (columnSize) {
|
|
27
|
-
bodyList_1.push(
|
|
29
|
+
bodyList_1.push(_J$X_("div", { className: cx('Grid'), key: groupIndex }, Array.from({ length: columnSize }).map(function (_, index) {
|
|
28
30
|
if (bodyIndex_1 + index < body.length) {
|
|
29
31
|
// 避免溢出
|
|
30
|
-
return (
|
|
32
|
+
return (_J$X_("div", { key: index, className: cx(cellClassName_1) }, body[bodyIndex_1 + index]));
|
|
31
33
|
}
|
|
32
34
|
else {
|
|
33
35
|
return null;
|
|
@@ -41,7 +43,7 @@ function columnsSplit(body, cx, columnsCount) {
|
|
|
41
43
|
else if (typeof columnsCount === 'number' && columnsCount > 1) {
|
|
42
44
|
var weight = 12 / columnsCount;
|
|
43
45
|
var cellClassName_2 = "Grid-col--sm".concat(weight === Math.round(weight) ? weight : '');
|
|
44
|
-
body = chunk__default["default"](body, columnsCount).map(function (group, groupIndex) { return (
|
|
46
|
+
body = chunk__default["default"](body, columnsCount).map(function (group, groupIndex) { return (_J$X_("div", { className: cx('Grid'), key: groupIndex }, Array.from({ length: columnsCount }).map(function (_, index) { return (_J$X_("div", { key: index, className: cx(cellClassName_2) }, group[index])); }))); });
|
|
45
47
|
}
|
|
46
48
|
return body;
|
|
47
49
|
}
|
package/lib/utils/dataMapping.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.3.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -139,7 +139,9 @@ function dataMapping(to, from, ignoreFunction, convertKeyToPath, ignoreIfNotMatc
|
|
|
139
139
|
else if (value === '$$') {
|
|
140
140
|
object.setVariable(ret, key, from, convertKeyToPath);
|
|
141
141
|
}
|
|
142
|
-
else if (
|
|
142
|
+
else if (typeof value === 'string' &&
|
|
143
|
+
value.length > 0 &&
|
|
144
|
+
value[0] === '$') {
|
|
143
145
|
var v = resolveMapping(value, from, undefined, ignoreIfNotMatch);
|
|
144
146
|
object.setVariable(ret, key, v, convertKeyToPath);
|
|
145
147
|
if (v === '__undefined') {
|
package/lib/utils/date.js
CHANGED
package/lib/utils/debug.d.ts
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* amis 运行时调试功能,为了避免循环引用,这个组件不要依赖 amis 里的组件
|
|
3
3
|
*/
|
|
4
4
|
import React, { Component } from 'react';
|
|
5
|
+
export declare const JsonView: React.LazyExoticComponent<React.ComponentType<import("react-json-view").ReactJsonViewProps>>;
|
|
5
6
|
export declare function enableDebug(): void;
|
|
7
|
+
export declare function disableDebug(): void;
|
|
6
8
|
interface DebugWrapperProps {
|
|
7
9
|
renderer: any;
|
|
8
10
|
children?: React.ReactNode;
|
package/lib/utils/debug.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.3.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -11,7 +11,6 @@ var tslib = require('tslib');
|
|
|
11
11
|
var React = require('react');
|
|
12
12
|
var cx = require('classnames');
|
|
13
13
|
var ReactDOM = require('react-dom');
|
|
14
|
-
var JsonView = require('react-json-view');
|
|
15
14
|
var mobx = require('mobx');
|
|
16
15
|
var mobxReact = require('mobx-react');
|
|
17
16
|
var helper = require('./helper.js');
|
|
@@ -21,11 +20,11 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
21
20
|
|
|
22
21
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
23
22
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
24
|
-
var JsonView__default = /*#__PURE__*/_interopDefaultLegacy(JsonView);
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
var __react_jsx__ = require('react');
|
|
25
|
+
var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
|
|
26
|
+
(__react_jsx__["default"] || __react_jsx__).Fragment;
|
|
27
|
+
var JsonView = React__default["default"].lazy(function () { return Promise.resolve().then(function() {return new Promise(function(fullfill) {require(['react-json-view'], function(mod) {fullfill(tslib.__importStar(mod))})})}); });
|
|
29
28
|
/** @class */ ((function () {
|
|
30
29
|
function Log() {
|
|
31
30
|
this.cat = '';
|
|
@@ -116,14 +115,15 @@ var LogView = mobxReact.observer(function (_a) {
|
|
|
116
115
|
var store = _a.store;
|
|
117
116
|
var logs = store.logs;
|
|
118
117
|
var ellipsisThreshold = (_b = store.ellipsisThreshold) !== null && _b !== void 0 ? _b : 50;
|
|
119
|
-
return (
|
|
120
|
-
return (
|
|
121
|
-
|
|
118
|
+
return (_J$X_(React__default["default"].Fragment, null, logs.map(function (log, index) {
|
|
119
|
+
return (_J$X_("div", { className: "AMISDebug-logLine", key: "log-".concat(index) },
|
|
120
|
+
_J$X_("div", { className: "AMISDebug-logLineMsg" },
|
|
122
121
|
"[",
|
|
123
122
|
log.cat,
|
|
124
123
|
"] ",
|
|
125
124
|
log.msg),
|
|
126
|
-
log.ext ? (React__default["default"].
|
|
125
|
+
log.ext ? (_J$X_(React__default["default"].Suspense, { fallback: _J$X_("div", null, "Loading...") },
|
|
126
|
+
_J$X_(JsonView, { name: null, theme: "monokai", src: JSON.parse(log.ext), collapsed: true, enableClipboard: false, displayDataTypes: false, collapseStringsAfterLength: ellipsisThreshold, iconStyle: "square" }))) : null));
|
|
127
127
|
})));
|
|
128
128
|
});
|
|
129
129
|
var AMISDebug = mobxReact.observer(function (_a) {
|
|
@@ -149,11 +149,12 @@ var AMISDebug = mobxReact.observer(function (_a) {
|
|
|
149
149
|
try {
|
|
150
150
|
for (var stacks_1 = tslib.__values(stacks), stacks_1_1 = stacks_1.next(); !stacks_1_1.done; stacks_1_1 = stacks_1.next()) {
|
|
151
151
|
var stack = stacks_1_1.value;
|
|
152
|
-
stackDataView.push(
|
|
153
|
-
|
|
152
|
+
stackDataView.push(_J$X_("div", { key: "data-".concat(level) },
|
|
153
|
+
_J$X_("h3", null,
|
|
154
154
|
"Data Level-",
|
|
155
155
|
level),
|
|
156
|
-
React__default["default"].
|
|
156
|
+
_J$X_(React__default["default"].Suspense, { fallback: _J$X_("div", null, "Loading...") },
|
|
157
|
+
_J$X_(JsonView, { key: "dataview-".concat(stack), name: null, theme: "monokai", src: stack, collapsed: level === 0 ? false : true, enableClipboard: false, displayDataTypes: false, iconStyle: "square" }))));
|
|
157
158
|
level += 1;
|
|
158
159
|
}
|
|
159
160
|
}
|
|
@@ -199,47 +200,47 @@ var AMISDebug = mobxReact.observer(function (_a) {
|
|
|
199
200
|
}
|
|
200
201
|
};
|
|
201
202
|
}, [isResizing]);
|
|
202
|
-
return (
|
|
203
|
+
return (_J$X_("div", { className: cx__default["default"]('AMISDebug', {
|
|
203
204
|
'is-expanded': store.isExpanded,
|
|
204
205
|
'is-left': store.position === 'left'
|
|
205
206
|
}), ref: panelRef },
|
|
206
|
-
|
|
207
|
+
_J$X_("div", { className: "AMISDebug-toggle", title: "open debug", onClick: function () {
|
|
207
208
|
store.isExpanded = true;
|
|
208
|
-
} }, store.isExpanded ? (
|
|
209
|
-
|
|
210
|
-
|
|
209
|
+
} }, store.isExpanded ? (_J$X_("i", { className: "fas fa-times" })) : (_J$X_("i", { className: "fas fa-bug" }))),
|
|
210
|
+
_J$X_("div", { className: cx__default["default"]('AMISDebug-content') },
|
|
211
|
+
_J$X_("div", { className: "AMISDebug-close", title: "Close", onClick: function () {
|
|
211
212
|
store.isExpanded = false;
|
|
212
213
|
store.activeId = '';
|
|
213
214
|
store.hoverId = '';
|
|
214
215
|
} },
|
|
215
|
-
|
|
216
|
-
|
|
216
|
+
_J$X_("i", { className: "fas fa-times" })),
|
|
217
|
+
_J$X_("div", { className: "AMISDebug-resize", onMouseDown: function (event) {
|
|
217
218
|
setStartX(event.clientX);
|
|
218
219
|
setPanelWidth(parseInt(getComputedStyle(panelRef.current).getPropertyValue('width'), 10));
|
|
219
220
|
setResizing(true);
|
|
220
221
|
} }),
|
|
221
|
-
|
|
222
|
-
|
|
222
|
+
_J$X_("div", { className: "AMISDebug-tab" },
|
|
223
|
+
_J$X_("button", { className: cx__default["default"]({ active: store.tab === 'log' }), onClick: function () {
|
|
223
224
|
store.tab = 'log';
|
|
224
225
|
} }, "Log"),
|
|
225
|
-
|
|
226
|
+
_J$X_("button", { className: cx__default["default"]({ active: store.tab === 'inspect' }), onClick: function () {
|
|
226
227
|
store.tab = 'inspect';
|
|
227
228
|
} }, "Inspect")),
|
|
228
|
-
|
|
229
|
+
_J$X_("div", { className: "AMISDebug-changePosition" }, store.position === 'right' ? (_J$X_("i", { className: "fas fa-chevron-left", title: "move to left", onClick: function () {
|
|
229
230
|
store.position = 'left';
|
|
230
|
-
} })) : (
|
|
231
|
+
} })) : (_J$X_("i", { className: "fas fa-chevron-right", title: "move to right", onClick: function () {
|
|
231
232
|
store.position = 'right';
|
|
232
233
|
} }))),
|
|
233
|
-
store.tab === 'log' ? (
|
|
234
|
-
|
|
234
|
+
store.tab === 'log' ? (_J$X_("div", { className: "AMISDebug-log" },
|
|
235
|
+
_J$X_("button", { onClick: function () {
|
|
235
236
|
store.logs = [];
|
|
236
237
|
} }, "Clear Log"),
|
|
237
|
-
|
|
238
|
-
store.tab === 'inspect' ? (
|
|
239
|
-
|
|
238
|
+
_J$X_(LogView, { store: store }))) : null,
|
|
239
|
+
store.tab === 'inspect' ? (_J$X_("div", { className: "AMISDebug-inspect" }, activeId ? (_J$X_(React__default["default"].Fragment, null,
|
|
240
|
+
_J$X_("h3", null,
|
|
240
241
|
"Component:",
|
|
241
242
|
' ',
|
|
242
|
-
|
|
243
|
+
_J$X_("span", { className: "primary" }, activeComponentInspect.name)),
|
|
243
244
|
stackDataView)) : ('Click component to display inspect'))) : null)));
|
|
244
245
|
});
|
|
245
246
|
/**
|
|
@@ -264,7 +265,7 @@ function handleMouseclick(e) {
|
|
|
264
265
|
}
|
|
265
266
|
var dom = e.target;
|
|
266
267
|
var target = dom.closest("[data-debug-id]");
|
|
267
|
-
if (target) {
|
|
268
|
+
if (target && !target.closest('.AMISDebug')) {
|
|
268
269
|
store.activeId = target.getAttribute('data-debug-id');
|
|
269
270
|
store.tab = 'inspect';
|
|
270
271
|
}
|
|
@@ -304,6 +305,7 @@ mobx.autorun(function () {
|
|
|
304
305
|
});
|
|
305
306
|
// 页面中只能有一个实例
|
|
306
307
|
var isEnabled = false;
|
|
308
|
+
var unmount;
|
|
307
309
|
function enableDebug() {
|
|
308
310
|
if (isEnabled) {
|
|
309
311
|
return;
|
|
@@ -311,13 +313,37 @@ function enableDebug() {
|
|
|
311
313
|
isEnabled = true;
|
|
312
314
|
var amisDebugElement = document.createElement('div');
|
|
313
315
|
document.body.appendChild(amisDebugElement);
|
|
314
|
-
var element =
|
|
316
|
+
var element = _J$X_(AMISDebug, { store: store });
|
|
317
|
+
// if (parseInt(version.split('.')[0], 10) >= 18) {
|
|
318
|
+
// const root = createRoot(amisDebugElement);
|
|
319
|
+
// root.render(element);
|
|
320
|
+
// unmount = () => {
|
|
321
|
+
// root.unmount();
|
|
322
|
+
// document.body.removeChild(amisDebugElement);
|
|
323
|
+
// };
|
|
324
|
+
// } else {
|
|
315
325
|
ReactDOM.render(element, amisDebugElement);
|
|
326
|
+
unmount = function () {
|
|
327
|
+
ReactDOM.unmountComponentAtNode(amisDebugElement);
|
|
328
|
+
document.body.removeChild(amisDebugElement);
|
|
329
|
+
};
|
|
330
|
+
// }
|
|
316
331
|
document.body.appendChild(amisHoverBox);
|
|
317
332
|
document.body.appendChild(amisActiveBox);
|
|
318
333
|
document.addEventListener('mousemove', handleMouseMove);
|
|
319
334
|
document.addEventListener('click', handleMouseclick);
|
|
320
335
|
}
|
|
336
|
+
function disableDebug() {
|
|
337
|
+
if (!isEnabled) {
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
isEnabled = false;
|
|
341
|
+
unmount === null || unmount === void 0 ? void 0 : unmount();
|
|
342
|
+
document.body.removeChild(amisHoverBox);
|
|
343
|
+
document.body.removeChild(amisActiveBox);
|
|
344
|
+
document.removeEventListener('mousemove', handleMouseMove);
|
|
345
|
+
document.removeEventListener('click', handleMouseclick);
|
|
346
|
+
}
|
|
321
347
|
var DebugWrapper = /** @class */ (function (_super) {
|
|
322
348
|
tslib.__extends(DebugWrapper, _super);
|
|
323
349
|
function DebugWrapper() {
|
|
@@ -397,6 +423,8 @@ function warning(cat, msg, ext) {
|
|
|
397
423
|
}
|
|
398
424
|
|
|
399
425
|
exports.DebugWrapper = DebugWrapper;
|
|
426
|
+
exports.JsonView = JsonView;
|
|
400
427
|
exports.debug = debug;
|
|
428
|
+
exports.disableDebug = disableDebug;
|
|
401
429
|
exports.enableDebug = enableDebug;
|
|
402
430
|
exports.warning = warning;
|
package/lib/utils/dom.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.3.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -9,15 +9,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
9
9
|
|
|
10
10
|
var tslib = require('tslib');
|
|
11
11
|
var ReactDOM = require('react-dom');
|
|
12
|
-
|
|
12
|
+
require('react');
|
|
13
13
|
var offset = require('./offset.js');
|
|
14
14
|
var position = require('./position.js');
|
|
15
15
|
|
|
16
16
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
17
|
|
|
18
18
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
19
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
20
19
|
|
|
20
|
+
var __react_jsx__ = require('react');
|
|
21
|
+
var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
|
|
22
|
+
(__react_jsx__["default"] || __react_jsx__).Fragment;
|
|
21
23
|
function getContainer(container, defaultContainer) {
|
|
22
24
|
container = typeof container === 'function' ? container() : container;
|
|
23
25
|
return ReactDOM__default["default"].findDOMNode(container) || defaultContainer;
|
|
@@ -225,9 +227,9 @@ function renderTextByKeyword(rendererText, curKeyword) {
|
|
|
225
227
|
if (curKeyword && ~rendererText.indexOf(curKeyword)) {
|
|
226
228
|
var keywordStartIndex = rendererText.indexOf(curKeyword);
|
|
227
229
|
var keywordEndIndex = keywordStartIndex + curKeyword.length;
|
|
228
|
-
return (
|
|
230
|
+
return (_J$X_("span", null,
|
|
229
231
|
rendererText.substring(0, keywordStartIndex),
|
|
230
|
-
|
|
232
|
+
_J$X_("span", { className: "is-keyword" }, curKeyword),
|
|
231
233
|
rendererText.substring(keywordEndIndex)));
|
|
232
234
|
}
|
|
233
235
|
else {
|
package/lib/utils/errors.js
CHANGED
package/lib/utils/escapeHtml.js
CHANGED
package/lib/utils/filter.js
CHANGED