amis 1.3.5-beta.6 → 1.4.1-echarts-5.3.1
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/components/Badge.d.ts +15 -2
- package/lib/components/Badge.js +47 -4
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/Button.d.ts +24 -22
- package/lib/components/Button.js +13 -7
- package/lib/components/Button.js.map +2 -2
- package/lib/components/Checkbox.d.ts +1 -1
- package/lib/components/Checkbox.js +1 -1
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/Drawer.js +1 -1
- package/lib/components/Drawer.js.map +2 -2
- package/lib/components/Modal.js +1 -1
- package/lib/components/Modal.js.map +2 -2
- package/lib/components/RichText.d.ts +6 -1
- package/lib/components/RichText.js +243 -8
- package/lib/components/RichText.js.map +2 -2
- package/lib/components/Select.d.ts +7 -0
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Steps.d.ts +3 -3
- package/lib/components/Steps.js.map +1 -1
- package/lib/components/WithRemoteConfig.d.ts +8 -0
- package/lib/components/WithRemoteConfig.js +28 -2
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/calendar/DaysView.js +2 -2
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/condition-builder/Field.js +0 -1
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Value.js +2 -1
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/types.d.ts +5 -0
- package/lib/components/condition-builder/types.js.map +1 -1
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.d.ts +5 -1
- package/lib/factory.js +9 -4
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/icons/loading-outline.js +7 -0
- package/lib/index.js +1 -1
- package/lib/locale/de-DE.js +1 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +2 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +2 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +9 -1
- package/lib/renderers/Action.js +5 -5
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +2 -2
- package/lib/renderers/CRUD.js +11 -20
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Collapse.d.ts +1 -1
- package/lib/renderers/Collapse.js +5 -1
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/Dialog.d.ts +0 -252
- package/lib/renderers/Dialog.js +1 -1
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +8 -0
- package/lib/renderers/DropDownButton.js +6 -4
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/ButtonGroupSelect.js +3 -0
- package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +0 -2
- package/lib/renderers/Form/Editor.d.ts +0 -2
- package/lib/renderers/Form/Editor.js +1 -1
- package/lib/renderers/Form/Editor.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +5 -0
- package/lib/renderers/Form/InputExcel.js +24 -3
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +8 -0
- package/lib/renderers/Form/InputImage.js +2 -1
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputTable.d.ts +23 -5
- package/lib/renderers/Form/InputTable.js +32 -3
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Json.js +5 -1
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/Nav.d.ts +52 -22
- package/lib/renderers/Nav.js +100 -15
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.js +4 -1
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Service.d.ts +10 -1
- package/lib/renderers/Service.js +85 -3
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Steps.d.ts +4 -4
- package/lib/renderers/Steps.js +5 -2
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table/TableBody.d.ts +1 -1
- package/lib/renderers/Table/TableBody.js +5 -1
- package/lib/renderers/Table/TableBody.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +1 -1
- package/lib/renderers/Table/TableContent.js +4 -0
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +8 -3
- package/lib/renderers/Table/index.js +80 -45
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/store/app.d.ts +0 -1
- package/lib/store/combo.d.ts +0 -2
- package/lib/store/crud.d.ts +3 -3
- package/lib/store/crud.js +41 -36
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +0 -1
- package/lib/store/modal.d.ts +1 -1
- package/lib/store/modal.js +4 -0
- package/lib/store/modal.js.map +2 -2
- package/lib/store/root.d.ts +0 -1
- package/lib/store/service.d.ts +0 -1
- package/lib/store/service.js +0 -13
- package/lib/store/service.js.map +2 -2
- package/lib/store/table.d.ts +1 -2
- package/lib/store/table.js +44 -3
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +597 -57
- package/lib/themes/ang.css +597 -57
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +597 -57
- package/lib/themes/antd.css +597 -57
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +705 -177
- package/lib/themes/cxd.css +705 -177
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +597 -57
- package/lib/themes/dark.css +597 -57
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +705 -177
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +12 -0
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/attachmentAdpator.d.ts +7 -0
- package/lib/utils/attachmentAdpator.js +82 -0
- package/lib/utils/attachmentAdpator.js.map +13 -0
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/validations.js +62 -5
- package/lib/utils/validations.js.map +2 -2
- package/package.json +46 -39
- package/schema.json +343 -44
- package/scss/_mixins.scss +29 -0
- package/scss/_properties.scss +27 -11
- package/scss/components/_badge.scss +67 -2
- package/scss/components/_button.scss +35 -3
- package/scss/components/_image-gallery.scss +1 -1
- package/scss/components/_markdown.scss +266 -0
- package/scss/components/_nav.scss +109 -35
- package/scss/components/_spinner.scss +6 -2
- package/scss/components/form/_group.scss +4 -0
- package/scss/themes/_common.scss +1 -0
- package/scss/themes/_cxd-variables.scss +20 -20
- package/sdk/ang-ie11.css +741 -59
- package/sdk/ang.css +755 -59
- package/sdk/antd-ie11.css +731 -51
- package/sdk/antd.css +755 -59
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +67 -67
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1200 -520
- package/sdk/cxd.css +863 -179
- package/sdk/dark-ie11.css +741 -59
- package/sdk/dark.css +755 -59
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/locale/de-DE.js +1 -0
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +22 -24
- package/sdk/rich-text.js +62 -64
- package/sdk/sdk-ie11.css +1200 -520
- package/sdk/sdk.css +863 -179
- package/sdk/sdk.js +1118 -1112
- 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/sdk.zip +0 -0
- package/src/components/Badge.tsx +111 -20
- package/src/components/Button.tsx +23 -7
- package/src/components/Checkbox.tsx +5 -2
- package/src/components/Drawer.tsx +3 -2
- package/src/components/Modal.tsx +3 -2
- package/src/components/RichText.tsx +284 -3
- package/src/components/Select.tsx +1 -0
- package/src/components/Steps.tsx +3 -3
- package/src/components/WithRemoteConfig.tsx +37 -2
- package/src/components/calendar/DaysView.tsx +2 -2
- package/src/components/condition-builder/Field.tsx +1 -2
- package/src/components/condition-builder/Value.tsx +3 -0
- package/src/components/condition-builder/types.ts +6 -0
- package/src/components/icons.tsx +2 -0
- package/src/factory.tsx +13 -3
- package/src/icons/loading-outline.svg +4 -0
- package/src/locale/de-DE.ts +1 -0
- package/src/locale/en-US.ts +2 -1
- package/src/locale/zh-CN.ts +2 -1
- package/src/renderers/Action.tsx +66 -13
- package/src/renderers/CRUD.tsx +13 -33
- package/src/renderers/Collapse.tsx +5 -1
- package/src/renderers/Dialog.tsx +1 -1
- package/src/renderers/DropDownButton.tsx +21 -4
- package/src/renderers/Form/ButtonGroupSelect.tsx +3 -0
- package/src/renderers/Form/Editor.tsx +19 -20
- package/src/renderers/Form/InputExcel.tsx +28 -3
- package/src/renderers/Form/InputImage.tsx +23 -8
- package/src/renderers/Form/InputTable.tsx +88 -9
- package/src/renderers/Json.tsx +10 -1
- package/src/renderers/Nav.tsx +165 -36
- package/src/renderers/Page.tsx +3 -1
- package/src/renderers/Service.tsx +101 -3
- package/src/renderers/Steps.tsx +12 -9
- package/src/renderers/Table/TableBody.tsx +3 -2
- package/src/renderers/Table/TableContent.tsx +3 -1
- package/src/renderers/Table/index.tsx +61 -13
- package/src/store/crud.ts +34 -38
- package/src/store/modal.ts +4 -0
- package/src/store/service.ts +0 -19
- package/src/store/table.ts +48 -0
- package/src/utils/api.ts +11 -0
- package/src/utils/attachmentAdpator.ts +90 -0
- package/src/utils/helper.ts +1 -0
- package/src/utils/validations.ts +80 -12
@@ -0,0 +1,90 @@
|
|
1
|
+
/**
|
2
|
+
* 处理接口返回附件的情况,好几个地方用
|
3
|
+
* @param response
|
4
|
+
* @param __
|
5
|
+
* @returns
|
6
|
+
*/
|
7
|
+
|
8
|
+
export default function attachmentAdpator(response: any, __: Function) {
|
9
|
+
if (response && response.headers && response.headers['content-disposition']) {
|
10
|
+
const disposition = response.headers['content-disposition'];
|
11
|
+
let filename = '';
|
12
|
+
|
13
|
+
if (disposition && disposition.indexOf('attachment') !== -1) {
|
14
|
+
// disposition 有可能是 attachment; filename="??.xlsx"; filename*=UTF-8''%E4%B8%AD%E6%96%87.xlsx
|
15
|
+
// 这种情况下最后一个才是正确的文件名
|
16
|
+
let filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)$/;
|
17
|
+
|
18
|
+
let matches = disposition.match(filenameRegex);
|
19
|
+
if (matches && matches.length) {
|
20
|
+
filename = matches[1].replace(`UTF-8''`, '').replace(/['"]/g, '');
|
21
|
+
}
|
22
|
+
|
23
|
+
// 很可能是中文被 url-encode 了
|
24
|
+
if (filename && filename.replace(/[^%]/g, '').length > 2) {
|
25
|
+
filename = decodeURIComponent(filename);
|
26
|
+
}
|
27
|
+
|
28
|
+
let type = response.headers['content-type'];
|
29
|
+
let blob =
|
30
|
+
response.data.toString() === '[object Blob]'
|
31
|
+
? response.data
|
32
|
+
: new Blob([response.data], {type: type});
|
33
|
+
if (typeof (window.navigator as any).msSaveBlob !== 'undefined') {
|
34
|
+
// IE workaround for "HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed."
|
35
|
+
(window.navigator as any).msSaveBlob(blob, filename);
|
36
|
+
} else {
|
37
|
+
let URL = window.URL || (window as any).webkitURL;
|
38
|
+
let downloadUrl = URL.createObjectURL(blob);
|
39
|
+
if (filename) {
|
40
|
+
// use HTML5 a[download] attribute to specify filename
|
41
|
+
let a = document.createElement('a');
|
42
|
+
// safari doesn't support this yet
|
43
|
+
if (typeof a.download === 'undefined') {
|
44
|
+
(window as any).location = downloadUrl;
|
45
|
+
} else {
|
46
|
+
a.href = downloadUrl;
|
47
|
+
a.download = filename;
|
48
|
+
document.body.appendChild(a);
|
49
|
+
a.click();
|
50
|
+
}
|
51
|
+
} else {
|
52
|
+
(window as any).location = downloadUrl;
|
53
|
+
}
|
54
|
+
setTimeout(function () {
|
55
|
+
URL.revokeObjectURL(downloadUrl);
|
56
|
+
}, 100); // cleanup
|
57
|
+
}
|
58
|
+
|
59
|
+
return {
|
60
|
+
...response,
|
61
|
+
data: {
|
62
|
+
status: 0,
|
63
|
+
msg: __('Embed.downloading')
|
64
|
+
}
|
65
|
+
};
|
66
|
+
}
|
67
|
+
} else if (response.data.toString() === '[object Blob]') {
|
68
|
+
return new Promise((resolve, reject) => {
|
69
|
+
let reader = new FileReader();
|
70
|
+
reader.addEventListener('loadend', e => {
|
71
|
+
const text = reader.result as string;
|
72
|
+
|
73
|
+
try {
|
74
|
+
resolve({
|
75
|
+
...response,
|
76
|
+
data: {
|
77
|
+
...JSON.parse(text)
|
78
|
+
}
|
79
|
+
});
|
80
|
+
} catch (e) {
|
81
|
+
reject(e);
|
82
|
+
}
|
83
|
+
});
|
84
|
+
|
85
|
+
reader.readAsText(response.data);
|
86
|
+
});
|
87
|
+
}
|
88
|
+
|
89
|
+
return response;
|
90
|
+
}
|
package/src/utils/helper.ts
CHANGED
package/src/utils/validations.ts
CHANGED
@@ -14,6 +14,79 @@ const makeRegexp = (reg: string | RegExp) => {
|
|
14
14
|
|
15
15
|
return /^$/;
|
16
16
|
};
|
17
|
+
import memoize from 'lodash/memoize';
|
18
|
+
import isPlainObject from 'lodash/isPlainObject';
|
19
|
+
|
20
|
+
const makeUrlRegexp = memoize(function (options: any) {
|
21
|
+
options = {
|
22
|
+
schemes: ['http', 'https', 'ftp', 'sftp'],
|
23
|
+
allowLocal: true,
|
24
|
+
allowDataUrl: false,
|
25
|
+
...(isPlainObject(options) ? options : {})
|
26
|
+
};
|
27
|
+
|
28
|
+
// https://github.com/ansman/validate.js/blob/master/validate.js#L1098-L1164
|
29
|
+
let {schemes, allowLocal, allowDataUrl} = options;
|
30
|
+
|
31
|
+
if (!Array.isArray(schemes)) {
|
32
|
+
schemes = ['http', 'https', 'ftp', 'sftp'];
|
33
|
+
}
|
34
|
+
|
35
|
+
let regex =
|
36
|
+
'^' +
|
37
|
+
// protocol identifier
|
38
|
+
'(?:(?:' +
|
39
|
+
schemes.join('|') +
|
40
|
+
')://)' +
|
41
|
+
// user:pass authentication
|
42
|
+
'(?:\\S+(?::\\S*)?@)?' +
|
43
|
+
'(?:';
|
44
|
+
|
45
|
+
var tld = '(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))';
|
46
|
+
|
47
|
+
if (allowLocal) {
|
48
|
+
tld += '?';
|
49
|
+
} else {
|
50
|
+
regex +=
|
51
|
+
// IP address exclusion
|
52
|
+
// private & local networks
|
53
|
+
'(?!(?:10|127)(?:\\.\\d{1,3}){3})' +
|
54
|
+
'(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})' +
|
55
|
+
'(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})';
|
56
|
+
}
|
57
|
+
|
58
|
+
regex +=
|
59
|
+
// IP address dotted notation octets
|
60
|
+
// excludes loopback network 0.0.0.0
|
61
|
+
// excludes reserved space >= 224.0.0.0
|
62
|
+
// excludes network & broacast addresses
|
63
|
+
// (first & last IP address of each class)
|
64
|
+
'(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])' +
|
65
|
+
'(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}' +
|
66
|
+
'(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))' +
|
67
|
+
'|' +
|
68
|
+
// host name
|
69
|
+
'(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)' +
|
70
|
+
// domain name
|
71
|
+
'(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*' +
|
72
|
+
tld +
|
73
|
+
')' +
|
74
|
+
// port number
|
75
|
+
'(?::\\d{2,5})?' +
|
76
|
+
// resource path
|
77
|
+
'(?:[/?#]\\S*)?' +
|
78
|
+
'$';
|
79
|
+
|
80
|
+
if (allowDataUrl) {
|
81
|
+
// RFC 2397
|
82
|
+
var mediaType = '\\w+\\/[-+.\\w]+(?:;[\\w=]+)*';
|
83
|
+
var urlchar = "[A-Za-z0-9-_.!~\\*'();\\/?:@&=+$,%]*";
|
84
|
+
var dataurl = 'data:(?:' + mediaType + ')?(?:;base64)?,' + urlchar;
|
85
|
+
regex = '(?:' + regex + ')|(?:^' + dataurl + '$)';
|
86
|
+
}
|
87
|
+
|
88
|
+
return new RegExp(regex, 'i');
|
89
|
+
});
|
17
90
|
|
18
91
|
export interface ValidateFn {
|
19
92
|
(
|
@@ -55,12 +128,8 @@ export const validations: {
|
|
55
128
|
/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i
|
56
129
|
);
|
57
130
|
},
|
58
|
-
isUrl: function (values, value) {
|
59
|
-
return validations.matchRegexp(
|
60
|
-
values,
|
61
|
-
value,
|
62
|
-
/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i
|
63
|
-
);
|
131
|
+
isUrl: function (values, value, options) {
|
132
|
+
return validations.matchRegexp(values, value, makeUrlRegexp(options));
|
64
133
|
},
|
65
134
|
isTrue: function (values, value) {
|
66
135
|
return value === true;
|
@@ -282,9 +351,8 @@ export function validate(
|
|
282
351
|
}
|
283
352
|
|
284
353
|
const fn = validations[ruleName];
|
285
|
-
const args = (
|
286
|
-
? rules[ruleName]
|
287
|
-
: [rules[ruleName]]
|
354
|
+
const args = (
|
355
|
+
Array.isArray(rules[ruleName]) ? rules[ruleName] : [rules[ruleName]]
|
288
356
|
).map((item: any) => {
|
289
357
|
if (typeof item === 'string' && isPureVariable(item)) {
|
290
358
|
return resolveVariableAndFilter(item, values, '|raw');
|
@@ -356,9 +424,9 @@ const splitValidations = function (str: string): Array<string> {
|
|
356
424
|
.map(str => (/^__\d+$/.test(str) ? placeholder[str] : str.trim()));
|
357
425
|
};
|
358
426
|
|
359
|
-
export function str2rules(
|
360
|
-
|
361
|
-
|
427
|
+
export function str2rules(validations: string | {[propName: string]: any}): {
|
428
|
+
[propName: string]: any;
|
429
|
+
} {
|
362
430
|
if (typeof validations === 'string') {
|
363
431
|
return validations
|
364
432
|
? splitValidations(validations).reduce(function (
|