amis 1.4.2-beta.13 → 1.4.2-beta.15
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/lib/Schema.d.ts +4 -3
- package/lib/Schema.js.map +1 -1
- package/lib/components/AssociatedSelection.js +2 -2
- package/lib/components/AssociatedSelection.js.map +2 -2
- package/lib/components/Checkbox.d.ts +20 -20
- package/lib/components/Collapse.d.ts +51 -23
- package/lib/components/Collapse.js +69 -11
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/CollapseGroup.d.ts +88 -0
- package/lib/components/CollapseGroup.js +81 -0
- package/lib/components/CollapseGroup.js.map +13 -0
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/GridNav.d.ts +52 -0
- package/lib/components/GridNav.js +123 -0
- package/lib/components/GridNav.js.map +13 -0
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/Tabs.d.ts +20 -20
- package/lib/components/TabsTransfer.d.ts +84 -84
- package/lib/components/Toast.d.ts +86 -85
- package/lib/components/Toast.js +6 -3
- package/lib/components/Toast.js.map +2 -2
- package/lib/components/Transfer.d.ts +84 -84
- package/lib/components/TransferDropDown.d.ts +84 -84
- package/lib/components/Tree.d.ts +115 -84
- package/lib/components/Tree.js +183 -30
- package/lib/components/Tree.js.map +2 -2
- package/lib/envOverwrite.d.ts +1 -1
- package/lib/envOverwrite.js +24 -9
- package/lib/envOverwrite.js.map +2 -2
- package/lib/factory.d.ts +11 -1
- package/lib/factory.js +31 -4
- package/lib/factory.js.map +2 -2
- package/lib/icons/drag-bar.js +10 -3
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/index.js.map +2 -2
- package/lib/renderers/Collapse.d.ts +25 -20
- package/lib/renderers/Collapse.js +10 -73
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/CollapseGroup.d.ts +42 -0
- package/lib/renderers/CollapseGroup.js +33 -0
- package/lib/renderers/CollapseGroup.js.map +13 -0
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/Item.js +2 -1
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/GridNav.d.ts +99 -0
- package/lib/renderers/GridNav.js +82 -0
- package/lib/renderers/GridNav.js.map +13 -0
- package/lib/store/formItem.js +44 -4
- package/lib/store/formItem.js.map +2 -2
- package/lib/themes/ang-ie11.css +194 -27
- package/lib/themes/ang.css +194 -27
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +194 -27
- package/lib/themes/antd.css +194 -27
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +201 -34
- package/lib/themes/cxd.css +201 -34
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +194 -27
- package/lib/themes/dark.css +194 -27
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +201 -34
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/api.d.ts +1 -0
- package/lib/utils/api.js +77 -6
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/helper.d.ts +6 -0
- package/lib/utils/helper.js +18 -1
- package/lib/utils/helper.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +242 -34
- package/scss/components/_anchor-nav.scss +1 -0
- package/scss/components/_collapse-group.scss +11 -0
- package/scss/components/_collapse.scss +33 -22
- package/scss/components/_grid-nav.scss +128 -0
- package/scss/components/_nav.scss +1 -1
- package/scss/components/_spinner.scss +5 -4
- package/scss/components/_table.scss +6 -0
- package/scss/components/form/_combo.scss +4 -0
- package/scss/components/form/_tree.scss +42 -0
- package/scss/themes/_common.scss +2 -0
- package/scss/themes/_cxd-variables.scss +6 -7
- package/scss/themes/cxd.scss +1 -0
- package/sdk/ang-ie11.css +227 -28
- package/sdk/ang.css +227 -27
- package/sdk/antd-ie11.css +227 -28
- package/sdk/antd.css +227 -27
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +233 -32
- package/sdk/cxd.css +234 -34
- package/sdk/dark-ie11.css +227 -28
- package/sdk/dark.css +227 -27
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +18 -18
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +233 -32
- package/sdk/sdk.css +234 -34
- package/sdk/sdk.js +1179 -1145
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +5 -1
- package/src/components/AssociatedSelection.tsx +3 -1
- package/src/components/Collapse.tsx +144 -20
- package/src/components/CollapseGroup.tsx +130 -0
- package/src/components/GridNav.tsx +233 -0
- package/src/components/Toast.tsx +23 -16
- package/src/components/Tree.tsx +194 -8
- package/src/envOverwrite.ts +20 -7
- package/src/factory.tsx +52 -6
- package/src/icons/drag-bar.svg +12 -6
- package/src/index.tsx +2 -0
- package/src/renderers/Collapse.tsx +70 -117
- package/src/renderers/CollapseGroup.tsx +80 -0
- package/src/renderers/GridNav.tsx +204 -0
- package/src/store/formItem.ts +94 -2
- package/src/types.ts +1 -1
- package/src/utils/api.ts +93 -6
- package/src/utils/helper.ts +19 -0
- package/tsconfig-for-declaration.json +1 -1
package/src/utils/api.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import omit from 'lodash/omit';
|
2
2
|
import {Api, ApiObject, EventTrack, fetcherResult, Payload} from '../types';
|
3
3
|
import {fetcherConfig} from '../factory';
|
4
|
-
import {tokenize, dataMapping} from './tpl-builtin';
|
4
|
+
import {tokenize, dataMapping, escapeHtml} from './tpl-builtin';
|
5
5
|
import {evalExpression} from './tpl';
|
6
6
|
import {
|
7
7
|
isObject,
|
@@ -11,11 +11,12 @@ import {
|
|
11
11
|
qsstringify,
|
12
12
|
cloneObject,
|
13
13
|
createObject,
|
14
|
-
qsparse
|
14
|
+
qsparse,
|
15
|
+
uuid
|
15
16
|
} from './helper';
|
16
17
|
import isPlainObject from 'lodash/isPlainObject';
|
17
18
|
|
18
|
-
const rSchema = /(?:^|raw\:)(get|post|put|delete|patch|options|head):/i;
|
19
|
+
const rSchema = /(?:^|raw\:)(get|post|put|delete|patch|options|head|jsonp):/i;
|
19
20
|
|
20
21
|
interface ApiCacheConfig extends ApiObject {
|
21
22
|
cachedPromise: Promise<any>;
|
@@ -125,7 +126,7 @@ export function buildApi(
|
|
125
126
|
}
|
126
127
|
|
127
128
|
// get 类请求,把 data 附带到 url 上。
|
128
|
-
if (api.method === 'get') {
|
129
|
+
if (api.method === 'get' || api.method === 'jsonp') {
|
129
130
|
if (!~raw.indexOf('$') && !api.data && autoAppend) {
|
130
131
|
api.query = api.data = data;
|
131
132
|
} else if (
|
@@ -195,13 +196,28 @@ export function str2AsyncFunction(
|
|
195
196
|
}
|
196
197
|
|
197
198
|
export function responseAdaptor(ret: fetcherResult, api: ApiObject) {
|
198
|
-
|
199
|
+
let data = ret.data;
|
199
200
|
let hasStatusField = true;
|
200
201
|
|
201
202
|
if (!data) {
|
202
203
|
throw new Error('Response is empty');
|
203
204
|
}
|
204
205
|
|
206
|
+
if (typeof data === 'string') {
|
207
|
+
try {
|
208
|
+
data = JSON.parse(data);
|
209
|
+
if (typeof data === 'undefined') {
|
210
|
+
throw new Error('Response should be JSON');
|
211
|
+
}
|
212
|
+
} catch (e) {
|
213
|
+
const responseBrief =
|
214
|
+
typeof data === 'string'
|
215
|
+
? escapeHtml((data as string).substring(0, 100))
|
216
|
+
: '';
|
217
|
+
throw new Error(`Response should be JSON\n ${responseBrief}`);
|
218
|
+
}
|
219
|
+
}
|
220
|
+
|
205
221
|
// 兼容几种常见写法
|
206
222
|
if (data.hasOwnProperty('errorCode')) {
|
207
223
|
// 阿里 Java 规范
|
@@ -247,7 +263,7 @@ export function responseAdaptor(ret: fetcherResult, api: ApiObject) {
|
|
247
263
|
}
|
248
264
|
|
249
265
|
if (payload.ok && api.responseData) {
|
250
|
-
|
266
|
+
const responseData = dataMapping(
|
251
267
|
api.responseData,
|
252
268
|
|
253
269
|
createObject(
|
@@ -261,6 +277,8 @@ export function responseAdaptor(ret: fetcherResult, api: ApiObject) {
|
|
261
277
|
undefined,
|
262
278
|
api.convertKeyToPath
|
263
279
|
);
|
280
|
+
console.debug('responseData', responseData);
|
281
|
+
payload.data = responseData;
|
264
282
|
}
|
265
283
|
|
266
284
|
return payload;
|
@@ -303,6 +321,10 @@ export function wrapFetcher(
|
|
303
321
|
api.data
|
304
322
|
);
|
305
323
|
|
324
|
+
if (api.method?.toLocaleLowerCase() === 'jsonp') {
|
325
|
+
return wrapAdaptor(jsonpFetcher(api), api);
|
326
|
+
}
|
327
|
+
|
306
328
|
if (typeof api.cache === 'number' && api.cache > 0) {
|
307
329
|
const apiCache = getApiCache(api);
|
308
330
|
return wrapAdaptor(
|
@@ -345,6 +367,71 @@ export function wrapAdaptor(promise: Promise<fetcherResult>, api: ApiObject) {
|
|
345
367
|
: promise.then(ret => responseAdaptor(ret, api));
|
346
368
|
}
|
347
369
|
|
370
|
+
export function jsonpFetcher(api: ApiObject): Promise<fetcherResult> {
|
371
|
+
return new Promise((resolve, reject) => {
|
372
|
+
let script: HTMLScriptElement | null = document.createElement('script');
|
373
|
+
let src = api.url;
|
374
|
+
|
375
|
+
script.async = true;
|
376
|
+
|
377
|
+
function remove() {
|
378
|
+
if (script) {
|
379
|
+
// @ts-ignore
|
380
|
+
script.onload = script.onreadystatechange = script.onerror = null;
|
381
|
+
|
382
|
+
if (script.parentNode) {
|
383
|
+
script.parentNode.removeChild(script);
|
384
|
+
}
|
385
|
+
|
386
|
+
script = null;
|
387
|
+
}
|
388
|
+
}
|
389
|
+
|
390
|
+
const jsonp = api.query?.callback || 'axiosJsonpCallback' + uuid();
|
391
|
+
const old = (window as any)[jsonp];
|
392
|
+
|
393
|
+
(window as any)[jsonp] = function (responseData: any) {
|
394
|
+
(window as any)[jsonp] = old;
|
395
|
+
|
396
|
+
const response = {
|
397
|
+
data: responseData,
|
398
|
+
status: 200,
|
399
|
+
headers: {}
|
400
|
+
};
|
401
|
+
|
402
|
+
resolve(response);
|
403
|
+
};
|
404
|
+
|
405
|
+
const additionalParams: any = {
|
406
|
+
_: new Date().getTime(),
|
407
|
+
_callback: jsonp
|
408
|
+
};
|
409
|
+
|
410
|
+
src += (src.indexOf('?') >= 0 ? '&' : '?') + qsstringify(additionalParams);
|
411
|
+
|
412
|
+
// @ts-ignore IE 为script.onreadystatechange
|
413
|
+
script.onload = script.onreadystatechange = function () {
|
414
|
+
// @ts-ignore
|
415
|
+
if (!script.readyState || /loaded|complete/.test(script.readyState)) {
|
416
|
+
remove();
|
417
|
+
}
|
418
|
+
};
|
419
|
+
|
420
|
+
script.onerror = function () {
|
421
|
+
remove();
|
422
|
+
const errResponse = {
|
423
|
+
status: 0,
|
424
|
+
headers: {}
|
425
|
+
};
|
426
|
+
|
427
|
+
reject(errResponse);
|
428
|
+
};
|
429
|
+
|
430
|
+
script.src = src;
|
431
|
+
document.head.appendChild(script);
|
432
|
+
});
|
433
|
+
}
|
434
|
+
|
348
435
|
export function isApiOutdated(
|
349
436
|
prevApi: Api | undefined,
|
350
437
|
nextApi: Api | undefined,
|
package/src/utils/helper.ts
CHANGED
@@ -1706,3 +1706,22 @@ export function isClickOnInput(e: React.MouseEvent<HTMLElement>) {
|
|
1706
1706
|
}
|
1707
1707
|
return false;
|
1708
1708
|
}
|
1709
|
+
|
1710
|
+
/**
|
1711
|
+
* 遍历 schema
|
1712
|
+
* @param json
|
1713
|
+
* @param mapper
|
1714
|
+
*/
|
1715
|
+
export function JSONTraverse(
|
1716
|
+
json: any,
|
1717
|
+
mapper: (value: any, key: string | number, host: Object) => any
|
1718
|
+
) {
|
1719
|
+
Object.keys(json).forEach(key => {
|
1720
|
+
const value: any = json[key];
|
1721
|
+
if (isPlainObject(value) || Array.isArray(value)) {
|
1722
|
+
JSONTraverse(value, mapper);
|
1723
|
+
} else {
|
1724
|
+
mapper(value, key, json);
|
1725
|
+
}
|
1726
|
+
});
|
1727
|
+
}
|