amis 1.6.5-beta.3 → 1.8.0-beta.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/lib/Schema.d.ts +3 -2
- package/lib/Schema.js +0 -1
- package/lib/Schema.js.map +2 -2
- package/lib/components/Alert2.js +4 -2
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/AssociatedSelection.d.ts +84 -84
- package/lib/components/Avatar.d.ts +20 -20
- package/lib/components/Breadcrumb.d.ts +130 -0
- package/lib/components/Breadcrumb.js +161 -0
- package/lib/components/Breadcrumb.js.map +13 -0
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/ChainedSelection.d.ts +84 -84
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/Collapse.d.ts +20 -20
- package/lib/components/CollapseGroup.d.ts +20 -20
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.d.ts +2 -2
- package/lib/components/DateRangePicker.js +36 -45
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/GroupedSelection.d.ts +84 -84
- package/lib/components/Layout.d.ts +21 -21
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/PopUp.js +2 -1
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/Radios.d.ts +21 -21
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Selection.d.ts +84 -84
- package/lib/components/TableSelection.d.ts +84 -84
- package/lib/components/Tabs.d.ts +52 -23
- package/lib/components/Tabs.js +198 -46
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +21 -20
- package/lib/components/TooltipWrapper.js +2 -2
- package/lib/components/TooltipWrapper.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 +84 -84
- package/lib/components/TreeSelection.d.ts +84 -84
- package/lib/components/calendar/Calendar.js +5 -0
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/DaysView.js.map +1 -1
- package/lib/components/icons.js +8 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +4 -2
- package/lib/components/index.js.map +2 -2
- package/lib/icons/cloud-upload.js +17 -0
- package/lib/icons/image.js +7 -0
- package/lib/icons/refresh.js +9 -0
- package/lib/icons/trash.js +10 -0
- package/lib/icons/upload.js +3 -8
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/en-US.js +3 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +4 -2
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +1 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Breadcrumb.d.ts +41 -6
- package/lib/renderers/Breadcrumb.js +23 -19
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/Form/ChainedSelect.d.ts +4 -1
- package/lib/renderers/Form/ChainedSelect.js +83 -34
- package/lib/renderers/Form/ChainedSelect.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +3 -0
- package/lib/renderers/Form/Checkbox.js +38 -1
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +4 -3
- package/lib/renderers/Form/Combo.js +81 -32
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +1 -1
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputCity.js +4 -1
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.js +3 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +3 -1
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +3 -1
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +4 -0
- package/lib/renderers/Form/InputExcel.js +33 -6
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.d.ts +8 -1
- package/lib/renderers/Form/InputFile.js +71 -42
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +4 -1
- package/lib/renderers/Form/InputImage.js +21 -9
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputRange.d.ts +27 -9
- package/lib/renderers/Form/InputRange.js +88 -23
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputSubForm.js +2 -1
- package/lib/renderers/Form/InputSubForm.js.map +2 -2
- package/lib/renderers/Form/InputTag.js +2 -1
- package/lib/renderers/Form/InputTag.js.map +2 -2
- package/lib/renderers/Form/MatrixCheckboxes.js +2 -1
- package/lib/renderers/Form/MatrixCheckboxes.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +9 -6
- package/lib/renderers/Form/NestedSelect.js +247 -130
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +2 -1
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Radios.js +2 -1
- package/lib/renderers/Form/Radios.js.map +2 -2
- package/lib/renderers/Form/Select.js +6 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Switch.d.ts +7 -6
- package/lib/renderers/Form/Switch.js +4 -1
- package/lib/renderers/Form/Switch.js.map +2 -2
- package/lib/renderers/Log.js +2 -1
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/PopOver.js +1 -1
- package/lib/renderers/PopOver.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +58 -5
- package/lib/renderers/Tabs.js +170 -58
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +104 -0
- package/lib/renderers/TooltipWrapper.js +59 -0
- package/lib/renderers/TooltipWrapper.js.map +13 -0
- package/lib/renderers/Video.d.ts +6 -0
- package/lib/renderers/Video.js +13 -6
- package/lib/renderers/Video.js.map +2 -2
- package/lib/store/form.js +4 -13
- package/lib/store/form.js.map +2 -2
- package/lib/store/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +742 -160
- package/lib/themes/ang.css +793 -163
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +757 -175
- package/lib/themes/antd.css +793 -163
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1249 -667
- package/lib/themes/cxd.css +970 -321
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +742 -160
- package/lib/themes/dark.css +793 -163
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +1249 -667
- package/lib/themes/default.css +970 -321
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +16012 -736
- package/scss/_properties.scss +56 -2
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_breadcrumb.scss +90 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_city-area.scss +2 -0
- package/scss/components/_popup.scss +13 -3
- package/scss/components/_tabs.scss +629 -132
- package/scss/components/_tooltip.scss +72 -0
- package/scss/components/form/_file.scss +82 -24
- package/scss/components/form/_image.scss +30 -25
- package/scss/components/form/_number.scss +2 -0
- package/scss/components/form/_switch.scss +1 -3
- package/scss/themes/_cxd-colors.scss +47 -47
- package/scss/themes/_cxd-variables.scss +20 -0
- package/sdk/ang-ie11.css +879 -196
- package/sdk/ang.css +931 -200
- package/sdk/antd-ie11.css +951 -268
- package/sdk/antd.css +931 -200
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1386 -703
- package/sdk/cxd.css +1107 -357
- package/sdk/dark-ie11.css +879 -196
- package/sdk/dark.css +931 -200
- 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 +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1386 -703
- package/sdk/sdk.css +1107 -357
- package/sdk/sdk.js +1260 -1248
- 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 -2
- package/src/components/Alert2.tsx +9 -3
- package/src/components/Breadcrumb.tsx +294 -0
- package/src/components/CityArea.tsx +3 -0
- package/src/components/DateRangePicker.tsx +40 -68
- package/src/components/PopUp.tsx +6 -5
- package/src/components/Range.tsx +7 -1
- package/src/components/Tabs.tsx +300 -54
- package/src/components/TooltipWrapper.tsx +4 -1
- package/src/components/calendar/Calendar.tsx +5 -0
- package/src/components/calendar/DaysView.tsx +2 -2
- package/src/components/icons.tsx +8 -0
- package/src/components/index.tsx +2 -0
- package/src/icons/cloud-upload.svg +22 -0
- package/src/icons/image.svg +1 -0
- package/src/icons/refresh.svg +7 -0
- package/src/icons/trash.svg +8 -0
- package/src/icons/upload.svg +4 -9
- package/src/index.tsx +1 -0
- package/src/locale/en-US.ts +3 -1
- package/src/locale/zh-CN.ts +4 -2
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/Breadcrumb.tsx +89 -45
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/Form/ChainedSelect.tsx +56 -12
- package/src/renderers/Form/Checkbox.tsx +30 -1
- package/src/renderers/Form/Combo.tsx +84 -26
- package/src/renderers/Form/InputCity.tsx +13 -1
- package/src/renderers/Form/InputColor.tsx +2 -0
- package/src/renderers/Form/InputDate.tsx +2 -0
- package/src/renderers/Form/InputDateRange.tsx +2 -0
- package/src/renderers/Form/InputExcel.tsx +27 -5
- package/src/renderers/Form/InputFile.tsx +167 -115
- package/src/renderers/Form/InputImage.tsx +61 -35
- package/src/renderers/Form/InputRange.tsx +95 -40
- package/src/renderers/Form/InputSubForm.tsx +2 -1
- package/src/renderers/Form/InputTag.tsx +3 -1
- package/src/renderers/Form/MatrixCheckboxes.tsx +3 -1
- package/src/renderers/Form/NestedSelect.tsx +75 -26
- package/src/renderers/Form/Options.tsx +3 -1
- package/src/renderers/Form/Radios.tsx +3 -1
- package/src/renderers/Form/Select.tsx +6 -2
- package/src/renderers/Form/Switch.tsx +16 -9
- package/src/renderers/Log.tsx +2 -1
- package/src/renderers/PopOver.tsx +1 -1
- package/src/renderers/Tabs.tsx +254 -93
- package/src/renderers/TooltipWrapper.tsx +219 -0
- package/src/renderers/Video.tsx +21 -6
- package/src/store/form.ts +0 -9
- package/src/store/table.ts +1 -1
@@ -0,0 +1,59 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.TooltipWrapperRenderer = void 0;
|
4
|
+
var tslib_1 = require("tslib");
|
5
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
6
|
+
var factory_1 = require("../factory");
|
7
|
+
var tpl_1 = require("../utils/tpl");
|
8
|
+
var tpl_builtin_1 = require("../utils/tpl-builtin");
|
9
|
+
var style_1 = require("../utils/style");
|
10
|
+
var components_1 = require("../components");
|
11
|
+
var TooltipWrapper = /** @class */ (function (_super) {
|
12
|
+
(0, tslib_1.__extends)(TooltipWrapper, _super);
|
13
|
+
function TooltipWrapper(props) {
|
14
|
+
return _super.call(this, props) || this;
|
15
|
+
}
|
16
|
+
TooltipWrapper.prototype.renderBody = function () {
|
17
|
+
var _a = this.props, render = _a.render, cx = _a.classnames, body = _a.body, className = _a.className, wrapperComponent = _a.wrapperComponent, inline = _a.inline, style = _a.style, data = _a.data, wrap = _a.wrap;
|
18
|
+
var Comp = wrapperComponent ||
|
19
|
+
(inline ? 'span' : 'div');
|
20
|
+
return (react_1.default.createElement(Comp, { className: cx('TooltipWrapper', className, {
|
21
|
+
'TooltipWrapper--inline': inline
|
22
|
+
}), style: (0, style_1.buildStyle)(style, data) }, render('body', body)));
|
23
|
+
};
|
24
|
+
TooltipWrapper.prototype.render = function () {
|
25
|
+
var _a = this.props, tooltipClassName = _a.tooltipClassName, ns = _a.classPrefix, cx = _a.classnames, container = _a.container, placement = _a.placement, rootClose = _a.rootClose, tooltipStyle = _a.tooltipStyle, title = _a.title, tooltip = _a.tooltip, delay = _a.delay, trigger = _a.trigger, tooltipTheme = _a.tooltipTheme, data = _a.data;
|
26
|
+
var tooltipObj = {
|
27
|
+
title: (0, tpl_builtin_1.escapeHtml)((0, tpl_1.filter)(title, data)),
|
28
|
+
content: (0, tpl_builtin_1.escapeHtml)((0, tpl_1.filter)(tooltip, data))
|
29
|
+
};
|
30
|
+
return (react_1.default.createElement(components_1.TooltipWrapper, { classPrefix: ns, classnames: cx, style: (0, style_1.buildStyle)(tooltipStyle, data), placement: placement, tooltip: tooltipObj, trigger: trigger, rootClose: rootClose, delay: delay, container: container, tooltipClassName: cx(tooltipClassName, {
|
31
|
+
'Tooltip--dark': tooltipTheme === 'dark'
|
32
|
+
}) }, this.renderBody()));
|
33
|
+
};
|
34
|
+
TooltipWrapper.defaultProps = {
|
35
|
+
placement: 'top',
|
36
|
+
trigger: 'hover',
|
37
|
+
rootClose: true,
|
38
|
+
delay: 0,
|
39
|
+
inline: false,
|
40
|
+
wrap: false,
|
41
|
+
tooltipTheme: 'light'
|
42
|
+
};
|
43
|
+
return TooltipWrapper;
|
44
|
+
}(react_1.default.Component));
|
45
|
+
exports.default = TooltipWrapper;
|
46
|
+
var TooltipWrapperRenderer = /** @class */ (function (_super) {
|
47
|
+
(0, tslib_1.__extends)(TooltipWrapperRenderer, _super);
|
48
|
+
function TooltipWrapperRenderer() {
|
49
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
50
|
+
}
|
51
|
+
TooltipWrapperRenderer = (0, tslib_1.__decorate)([
|
52
|
+
(0, factory_1.Renderer)({
|
53
|
+
type: 'tooltip-wrapper'
|
54
|
+
})
|
55
|
+
], TooltipWrapperRenderer);
|
56
|
+
return TooltipWrapperRenderer;
|
57
|
+
}(TooltipWrapper));
|
58
|
+
exports.TooltipWrapperRenderer = TooltipWrapperRenderer;
|
59
|
+
//# sourceMappingURL=./renderers/TooltipWrapper.js.map
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"file": "TooltipWrapper.js",
|
4
|
+
"sourceRoot": "",
|
5
|
+
"sources": [
|
6
|
+
"/src/renderers/TooltipWrapper.tsx"
|
7
|
+
],
|
8
|
+
"names": [],
|
9
|
+
"mappings": ";;;;AAAA,6DAA0B;AAC1B,sCAAmD;AAEnD,oCAAoC;AACpC,oDAAgD;AAChD,wCAA0C;AAC1C,4CAAmE;AA+GnE;IAA4C,+CAG3C;IAoBC,wBAAY,KAA0B;eACpC,kBAAM,KAAK,CAAC;IACd,CAAC;IAED,mCAAU,GAAV;QACQ,IAAA,KAUF,IAAI,CAAC,KAAK,EATZ,MAAM,YAAA,EACM,EAAE,gBAAA,EACd,IAAI,UAAA,EACJ,SAAS,eAAA,EACT,gBAAgB,sBAAA,EAChB,MAAM,YAAA,EACN,KAAK,WAAA,EACL,IAAI,UAAA,EACJ,IAAI,UACQ,CAAC;QACf,IAAM,IAAI,GACP,gBAAgD;YACjD,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,CACL,8BAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE;gBACzC,wBAAwB,EAAE,MAAM;aACjC,CAAC,EACF,KAAK,EAAE,IAAA,kBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,IAE7B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAChB,CACR,CAAC;IACJ,CAAC;IAED,+BAAM,GAAN;QACQ,IAAA,KAcF,IAAI,CAAC,KAAK,EAbZ,gBAAgB,sBAAA,EACH,EAAE,iBAAA,EACH,EAAE,gBAAA,EACd,SAAS,eAAA,EACT,SAAS,eAAA,EACT,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,KAAK,WAAA,EACL,OAAO,aAAA,EACP,KAAK,WAAA,EACL,OAAO,aAAA,EACP,YAAY,kBAAA,EACZ,IAAI,UACQ,CAAC;QAEf,IAAM,UAAU,GAAG;YACjB,KAAK,EAAE,IAAA,wBAAU,EAAC,IAAA,YAAM,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtC,OAAO,EAAE,IAAA,wBAAU,EAAC,IAAA,YAAM,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAC3C,CAAC;QAEF,OAAO,CACL,8BAAC,2BAAkB,IACjB,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,KAAK,EAAE,IAAA,kBAAU,EAAC,YAAY,EAAE,IAAI,CAAC,EACrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,EAAE;gBACrC,eAAe,EAAE,YAAY,KAAK,MAAM;aACzC,CAAC,IAED,IAAI,CAAC,UAAU,EAAE,CACC,CACtB,CAAC;IACJ,CAAC;IA3FM,2BAAY,GASf;QACF,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,OAAO;KACtB,CAAC;IA2EJ,qBAAC;CAAA,AAhGD,CAA4C,eAAK,CAAC,SAAS,GAgG1D;kBAhGoB,cAAc;AAqGnC;IAA4C,uDAAc;IAA1D;;IAA4D,CAAC;IAAhD,sBAAsB;QAHlC,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,iBAAiB;SACxB,CAAC;OACW,sBAAsB,CAA0B;IAAD,6BAAC;CAAA,AAA7D,CAA4C,cAAc,GAAG;AAAhD,wDAAsB",
|
10
|
+
"sourcesContent": [
|
11
|
+
"import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema, SchemaCollection} from '../Schema';\nimport {filter} from '../utils/tpl';\nimport {escapeHtml} from '../utils/tpl-builtin';\nimport {buildStyle} from '../utils/style';\nimport {TooltipWrapper as TooltipWrapperComp} from '../components';\n\nimport type {Trigger} from '../components/TooltipWrapper';\n\nexport interface TooltipWrapperSchema extends BaseSchema {\n /**\n * 文字提示容器\n */\n type: 'tooltip-wrapper';\n\n /**\n * 文字提示标题\n */\n title?: string;\n\n /**\n * 文字提示\n */\n tooltip?: string;\n\n /**\n * 文字提示浮层出现位置,默认为top\n */\n placement?: 'top' | 'right' | 'bottom' | 'left';\n\n /**\n * 浮层触发方式,默认为hover\n */\n trigger?: Trigger | Array<Trigger>;\n\n /**\n * 浮层隐藏延迟时间,单位ms,默认0\n */\n delay?: number;\n\n /**\n * 是否点击非内容区域关闭提示,默认为true\n */\n rootClose?: boolean;\n\n /**\n * 内容区域\n */\n body?: SchemaCollection;\n\n /**\n * 内容区包裹标签\n */\n wrapperComponent: string;\n\n /**\n * 内容区是否内联显示,默认为false\n */\n inline?: boolean;\n\n /**\n * 浮层主题色,默认为light\n */\n tooltipTheme?: 'light' | 'dark';\n\n /**\n * 内容区自定义样式\n */\n style?: {\n [propName: string]: any;\n };\n\n /**\n * 自定义提示浮层样式\n */\n tooltipStyle?: {\n [propName: string]: any;\n };\n\n /**\n * 内容区CSS类名\n */\n className?: string;\n\n /**\n * 文字提示浮层CSS类名\n */\n tooltipClassName?: string;\n}\n\nexport interface TooltipWrapperProps extends RendererProps {\n /**\n * 文字提示标题\n */\n title?: string;\n /**\n * 文字提示\n */\n tooltip?: string;\n /**\n * 文字提示位置\n */\n placement: 'top' | 'right' | 'bottom' | 'left';\n inline?: boolean;\n trigger: Trigger | Array<Trigger>;\n rootClose?: boolean;\n delay?: number;\n container?: React.ReactNode;\n style?: React.CSSProperties;\n tooltipStyle?: React.CSSProperties;\n wrapperComponent?: string;\n tooltipTheme?: 'light' | 'dark';\n}\n\ninterface TooltipWrapperState {}\n\nexport default class TooltipWrapper extends React.Component<\n TooltipWrapperProps,\n TooltipWrapperState\n> {\n static defaultProps: Pick<\n TooltipWrapperProps,\n | 'placement'\n | 'trigger'\n | 'rootClose'\n | 'delay'\n | 'inline'\n | 'wrap'\n | 'tooltipTheme'\n > = {\n placement: 'top',\n trigger: 'hover',\n rootClose: true,\n delay: 0,\n inline: false,\n wrap: false,\n tooltipTheme: 'light'\n };\n\n constructor(props: TooltipWrapperProps) {\n super(props);\n }\n\n renderBody() {\n const {\n render,\n classnames: cx,\n body,\n className,\n wrapperComponent,\n inline,\n style,\n data,\n wrap\n } = this.props;\n const Comp =\n (wrapperComponent as keyof JSX.IntrinsicElements) ||\n (inline ? 'span' : 'div');\n\n return (\n <Comp\n className={cx('TooltipWrapper', className, {\n 'TooltipWrapper--inline': inline\n })}\n style={buildStyle(style, data)}\n >\n {render('body', body)}\n </Comp>\n );\n }\n\n render() {\n const {\n tooltipClassName,\n classPrefix: ns,\n classnames: cx,\n container,\n placement,\n rootClose,\n tooltipStyle,\n title,\n tooltip,\n delay,\n trigger,\n tooltipTheme,\n data\n } = this.props;\n\n const tooltipObj = {\n title: escapeHtml(filter(title, data)),\n content: escapeHtml(filter(tooltip, data))\n };\n\n return (\n <TooltipWrapperComp\n classPrefix={ns}\n classnames={cx}\n style={buildStyle(tooltipStyle, data)}\n placement={placement}\n tooltip={tooltipObj}\n trigger={trigger}\n rootClose={rootClose}\n delay={delay}\n container={container}\n tooltipClassName={cx(tooltipClassName, {\n 'Tooltip--dark': tooltipTheme === 'dark'\n })}\n >\n {this.renderBody()}\n </TooltipWrapperComp>\n );\n }\n}\n\n@Renderer({\n type: 'tooltip-wrapper'\n})\nexport class TooltipWrapperRenderer extends TooltipWrapper {}\n"
|
12
|
+
]
|
13
|
+
}
|
package/lib/renderers/Video.d.ts
CHANGED
@@ -82,6 +82,11 @@ export interface VideoSchema extends BaseSchema {
|
|
82
82
|
* 跳转到帧时,往前多少秒。
|
83
83
|
*/
|
84
84
|
jumpBufferDuration?: number;
|
85
|
+
/**
|
86
|
+
* 默认播放的时候到了下一帧会继续播放,同时高亮下一帧。
|
87
|
+
* 如果配置这个则会停止播放,等待用户选择新的区间再播放。
|
88
|
+
*/
|
89
|
+
stopOnNextFrame?: boolean;
|
85
90
|
}
|
86
91
|
export interface FlvSourceProps {
|
87
92
|
src?: string;
|
@@ -147,6 +152,7 @@ export default class Video extends React.Component<VideoProps, VideoState> {
|
|
147
152
|
player: any;
|
148
153
|
times: Array<number>;
|
149
154
|
currentIndex: number;
|
155
|
+
manualJump: boolean;
|
150
156
|
constructor(props: VideoProps);
|
151
157
|
onImageLoaded(e: Event): void;
|
152
158
|
frameRef(dom: any): void;
|
package/lib/renderers/Video.js
CHANGED
@@ -206,6 +206,7 @@ var Video = /** @class */ (function (_super) {
|
|
206
206
|
(0, tslib_1.__extends)(Video, _super);
|
207
207
|
function Video(props) {
|
208
208
|
var _this = _super.call(this, props) || this;
|
209
|
+
_this.manualJump = false;
|
209
210
|
_this.state = {
|
210
211
|
posterInfo: null,
|
211
212
|
videoState: {}
|
@@ -265,6 +266,7 @@ var Video = /** @class */ (function (_super) {
|
|
265
266
|
var index = 0;
|
266
267
|
var times = _this.times;
|
267
268
|
var len = times.length;
|
269
|
+
var stopOnNextFrame = _this.props.stopOnNextFrame;
|
268
270
|
while (index < len - 1) {
|
269
271
|
if (times[index + 1] &&
|
270
272
|
state.currentTime < times[index + 1] - jumpBufferDuration) {
|
@@ -274,6 +276,10 @@ var Video = /** @class */ (function (_super) {
|
|
274
276
|
}
|
275
277
|
if (_this.currentIndex !== index) {
|
276
278
|
_this.moveCursorToIndex(index);
|
279
|
+
stopOnNextFrame && !_this.manualJump && player.pause();
|
280
|
+
if (_this.manualJump) {
|
281
|
+
_this.manualJump = false;
|
282
|
+
}
|
277
283
|
}
|
278
284
|
});
|
279
285
|
};
|
@@ -298,6 +304,7 @@ var Video = /** @class */ (function (_super) {
|
|
298
304
|
var jumpBufferDuration = this.props.jumpBufferDuration || 0;
|
299
305
|
var times = this.times;
|
300
306
|
var player = this.player;
|
307
|
+
this.manualJump = true;
|
301
308
|
player.seek(times[index] - jumpBufferDuration);
|
302
309
|
player.play();
|
303
310
|
};
|
@@ -340,18 +347,18 @@ var Video = /** @class */ (function (_super) {
|
|
340
347
|
while (restCount--) {
|
341
348
|
blankArray.push('');
|
342
349
|
}
|
343
|
-
return (react_1.default.createElement("div", { className: "pull-in-
|
344
|
-
react_1.default.createElement("div", { className:
|
345
|
-
items.map(function (item, key) { return (react_1.default.createElement("div", { className:
|
350
|
+
return (react_1.default.createElement("div", { className: "pull-in-xs", key: i },
|
351
|
+
react_1.default.createElement("div", { className: cx("Hbox Video-frameItem") },
|
352
|
+
items.map(function (item, key) { return (react_1.default.createElement("div", { className: cx("Hbox-col Wrapper--xs Video-frame"), key: key, onClick: function () {
|
346
353
|
return _this.jumpToIndex(i * columnsCount + key);
|
347
354
|
} },
|
348
355
|
item.src ? (react_1.default.createElement("img", { className: "w-full", alt: "poster", src: item.src })) : null,
|
349
|
-
react_1.default.createElement("div", { className:
|
356
|
+
react_1.default.createElement("div", { className: cx("Video-frameLabel") }, item.time))); }),
|
350
357
|
/* 补充空白 */ restCount
|
351
|
-
? blankArray.map(function (_, index) { return (react_1.default.createElement("div", { className:
|
358
|
+
? blankArray.map(function (_, index) { return (react_1.default.createElement("div", { className: cx("Hbox-col Wrapper--xs"), key: "blank_".concat(index) })); })
|
352
359
|
: null)));
|
353
360
|
}),
|
354
|
-
jumpFrame ? (react_1.default.createElement("span", { ref: this.cursorRef, className:
|
361
|
+
jumpFrame ? (react_1.default.createElement("span", { ref: this.cursorRef, className: cx('Video-cursor') })) : null));
|
355
362
|
};
|
356
363
|
Video.prototype.renderPlayer = function () {
|
357
364
|
var _a = this.props, poster = _a.poster, autoPlay = _a.autoPlay, muted = _a.muted, name = _a.name, data = _a.data, amisConfig = _a.amisConfig, locals = _a.locals, isLive = _a.isLive, minVideoDuration = _a.minVideoDuration, videoType = _a.videoType, playerClassName = _a.playerClassName, ns = _a.classPrefix, aspectRatio = _a.aspectRatio, rates = _a.rates, cx = _a.classnames;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Video.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file video\n * @author fex\n */\n\nimport React from 'react';\n\nimport {\n Player,\n Shortcut,\n BigPlayButton,\n ControlBar,\n PlaybackRateMenuButton\n // @ts-ignore\n} from 'video-react';\nimport {getPropValue, padArr} from '../utils/helper';\nimport {Renderer, RendererProps} from '../factory';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport {filter} from '../utils/tpl';\n// import css\n// import 'video-react/dist/video-react.css';\nimport {BaseSchema, SchemaClassName, SchemaUrlPath} from '../Schema';\n\n/**\n * 视频播放器\n * 文档:https://baidu.gitee.io/amis/docs/components/video\n */\nexport interface VideoSchema extends BaseSchema {\n /**\n * 指定为视频类型\n */\n type: 'video';\n\n /**\n * 是否自动播放\n */\n autoPlay?: boolean;\n\n /**\n * 如果显示切帧,通过此配置项可以控制每行显示多少帧\n */\n columnsCount?: number;\n\n /**\n * 设置后,可以显示切帧.点击帧的时候会将视频跳到对应时间。\n *\n * frames: {\n * '01:22': 'http://domain/xxx.jpg'\n * }\n */\n frames?: {\n [propName: string]: string;\n };\n\n /**\n * 配置帧列表容器className\n */\n framesClassName?: SchemaClassName;\n\n /**\n * 如果是实时的,请标记一下\n */\n isLive?: boolean;\n\n /**\n * 点击帧画面时是否跳转视频对应的点\n *\n * @default true\n */\n jumpFrame?: boolean;\n\n /**\n * 是否初始静音\n */\n muted?: boolean;\n\n /**\n * 配置播放器 className\n */\n playerClassName?: SchemaClassName;\n\n /**\n * 视频封面地址\n */\n poster?: SchemaUrlPath;\n\n /**\n * 是否将视频和封面分开显示\n */\n splitPoster?: boolean;\n\n /**\n * 视频播放地址\n */\n src?: SchemaUrlPath;\n\n /**\n * 视频类型如: video/x-flv\n */\n videoType?: string;\n\n /**\n * 视频比率\n */\n aspectRatio?: 'auto' | '4:3' | '16:9';\n\n /**\n * 视频速率\n */\n rates?: Array<number>;\n\n /**\n * 跳转到帧时,往前多少秒。\n */\n jumpBufferDuration?: number;\n}\n\nconst str2seconds: (str: string) => number = str =>\n str.indexOf(':')\n ? str\n .split(':')\n .reverse()\n .reduce(\n (seconds, value, index) =>\n seconds + (parseInt(value, 10) || 0) * Math.pow(60, index),\n 0\n )\n : parseInt(str, 10);\n\nexport interface FlvSourceProps {\n src?: string;\n type?: string;\n video?: any;\n config?: object;\n manager?: any;\n isLive?: boolean;\n autoPlay?: boolean;\n actions?: any;\n order?: number;\n setError: (error: string) => void;\n}\n\n// let currentPlaying: any = null;\n\nexport class FlvSource extends React.Component<FlvSourceProps, any> {\n mpegtsPlayer: any;\n loaded = false;\n timer: any;\n unsubscribe: any;\n\n componentDidMount() {\n let {src, video, config, manager, isLive, autoPlay, actions, setError} =\n this.props;\n\n this.initFlv({\n video,\n manager,\n src,\n isLive,\n config,\n actions,\n setError,\n autoPlay\n });\n }\n\n componentDidUpdate(prevProps: FlvSourceProps) {\n const props = this.props;\n let {autoPlay, actions, src, setError, isLive, config, video, manager} =\n props;\n\n if (src !== prevProps.src) {\n setError('');\n this.mpegtsPlayer?.destroy();\n this.unsubscribe?.();\n this.loaded = false;\n this.initFlv({\n video,\n manager,\n src,\n isLive,\n config,\n actions,\n setError,\n autoPlay\n });\n }\n }\n\n componentWillUnmount() {\n if (this.mpegtsPlayer) {\n this.mpegtsPlayer.destroy();\n this.props.setError?.('');\n }\n }\n\n initFlv({\n video,\n manager,\n src,\n isLive,\n config,\n actions,\n setError,\n autoPlay\n }: any) {\n import('mpegts.js').then((mpegts: any) => {\n video = video || (manager.video && manager.video.video);\n\n let mpegtsPlayer = mpegts.createPlayer(\n {\n type: 'flv',\n url: src,\n isLive: isLive\n },\n config\n );\n mpegtsPlayer.attachMediaElement(video);\n this.mpegtsPlayer = mpegtsPlayer;\n\n this.unsubscribe = manager.subscribeToOperationStateChange(\n (operation: any) => {\n const type = operation.operation.action;\n\n if (type === 'play') {\n clearTimeout(this.timer);\n if (!this.loaded) {\n this.loaded = true;\n mpegtsPlayer.load();\n }\n\n mpegtsPlayer.play();\n } else if (type === 'pause') {\n mpegtsPlayer.pause();\n\n if (isLive) {\n this.timer = setTimeout(() => {\n actions.seek(0);\n mpegtsPlayer.unload();\n this.loaded = false;\n }, 30000);\n }\n }\n }\n );\n\n mpegtsPlayer.on(mpegts.Events.RECOVERED_EARLY_EOF, () => {\n setError('直播已经结束');\n });\n mpegtsPlayer.on(mpegts.Events.ERROR, () => {\n setError('视频加载失败');\n mpegtsPlayer.unload();\n });\n\n if (autoPlay) {\n setTimeout(() => actions.play(), 200);\n }\n });\n }\n\n render() {\n return (\n <source src={this.props.src} type={this.props.type || 'video/x-flv'} />\n );\n }\n}\n\nexport interface HlsSourceProps {\n src?: string;\n type?: string;\n video?: any;\n config?: object;\n manager?: any;\n isLive?: boolean;\n autoPlay?: boolean;\n actions?: any;\n order?: number;\n}\nexport class HlsSource extends React.Component<HlsSourceProps, any> {\n hls: any;\n loaded = false;\n unsubscribe: any;\n componentDidMount() {\n let {src, video, config, manager, isLive, autoPlay, actions} = this.props;\n this.initHls({\n video,\n manager,\n src,\n autoPlay,\n actions\n });\n }\n\n componentWillUnmount() {\n if (this.hls) {\n this.hls.stopLoad();\n this.hls.detachMedia();\n }\n }\n\n componentDidUpdate(prevProps: HlsSourceProps) {\n const props = this.props;\n let {autoPlay, actions, src, isLive, config, video, manager} = props;\n\n if (src !== prevProps.src) {\n this.hls?.stopLoad();\n this.hls?.detachMedia();\n this.unsubscribe?.();\n this.loaded = false;\n this.initHls({\n video,\n manager,\n src,\n autoPlay,\n actions\n });\n }\n }\n\n initHls({video, manager, src, autoPlay, actions}: any) {\n // @ts-ignore\n import('hls.js').then(({default: Hls}: any) => {\n // load hls video source base on hls.js\n if (Hls.isSupported()) {\n video = video || (manager.video && manager.video.video);\n\n let hls = (this.hls = new Hls({\n autoStartLoad: false\n }));\n hls.attachMedia(video);\n hls.loadSource(src);\n\n this.unsubscribe = manager.subscribeToOperationStateChange(\n (operation: any) => {\n const type = operation.operation.action;\n\n if (type === 'play') {\n if (!this.loaded) {\n this.loaded = true;\n hls.startLoad();\n }\n\n video.play();\n } else if (type === 'pause') {\n video.pause();\n hls.stopLoad();\n this.loaded = false;\n }\n }\n );\n\n autoPlay && setTimeout(actions.play, 200);\n }\n });\n }\n\n render() {\n return (\n <source\n src={this.props.src}\n type={this.props.type || 'application/x-mpegURL'}\n />\n );\n }\n}\n\nexport interface VideoProps\n extends RendererProps,\n Omit<VideoSchema, 'className'> {\n columnsCount: number;\n}\n\nexport interface VideoState {\n posterInfo?: any;\n videoState?: any;\n error?: string;\n}\n\nexport default class Video extends React.Component<VideoProps, VideoState> {\n static defaultProps = {\n columnsCount: 8,\n isLive: false,\n jumpFrame: true,\n aspectRatio: 'auto'\n };\n\n frameDom: any;\n cursorDom: any;\n player: any;\n times: Array<number>;\n currentIndex: number;\n constructor(props: VideoProps) {\n super(props);\n\n this.state = {\n posterInfo: null,\n videoState: {}\n };\n\n this.frameRef = this.frameRef.bind(this);\n this.cursorRef = this.cursorRef.bind(this);\n this.playerRef = this.playerRef.bind(this);\n this.onImageLoaded = this.onImageLoaded.bind(this);\n this.onClick = this.onClick.bind(this);\n this.setError = this.setError.bind(this);\n }\n\n onImageLoaded(e: Event) {\n let image: any = new Image();\n image.onload = () => {\n this.setState({\n posterInfo: {\n width: image.width,\n height: image.height\n }\n });\n image = image.onload = null;\n };\n image.src = (e.target as HTMLElement).getAttribute('src');\n }\n\n frameRef(dom: any) {\n this.frameDom = dom;\n }\n\n cursorRef(dom: any) {\n this.cursorDom = dom;\n }\n\n playerRef(player: any) {\n this.player = player;\n\n if (!player) {\n return;\n }\n\n player.subscribeToStateChange((state: any) => {\n this.setState({\n videoState: state\n });\n\n // if (!state.paused) {\n // if (\n // currentPlaying &&\n // currentPlaying.video &&\n // currentPlaying !== player\n // ) {\n // currentPlaying.pause();\n // }\n\n // currentPlaying = player;\n // }\n\n if (!this.frameDom || !this.times) {\n return;\n }\n\n const jumpBufferDuration = this.props.jumpBufferDuration || 0;\n let index = 0;\n const times = this.times;\n const len = times.length;\n while (index < len - 1) {\n if (\n times[index + 1] &&\n state.currentTime < times[index + 1] - jumpBufferDuration\n ) {\n break;\n }\n\n index++;\n }\n\n if (this.currentIndex !== index) {\n this.moveCursorToIndex(index);\n }\n });\n }\n\n moveCursorToIndex(index: number) {\n const {classPrefix: ns} = this.props;\n if (!this.frameDom || !this.cursorDom) {\n return;\n }\n const items = this.frameDom.querySelectorAll(`.${ns}Video-frame`);\n\n if (items && items.length && items[index]) {\n this.currentIndex = index;\n const item = items[index];\n const frameRect = this.frameDom.getBoundingClientRect();\n const rect = item.getBoundingClientRect();\n this.cursorDom.setAttribute(\n 'style',\n `width: ${rect.width - 4}px; height: ${rect.height - 4}px; left: ${\n rect.left + 2 - frameRect.left\n }px; top: ${rect.top + 2 - frameRect.top}px;`\n );\n }\n }\n\n jumpToIndex(index: number) {\n if (!this.times || !this.player || !this.props.jumpFrame) {\n return;\n }\n const jumpBufferDuration = this.props.jumpBufferDuration || 0;\n const times = this.times;\n const player = this.player;\n\n player.seek(times[index] - jumpBufferDuration);\n player.play();\n }\n\n onClick(e: Event) {\n // 避免把所在 form 给提交了。\n e.preventDefault();\n }\n\n setError(error?: string) {\n const player = this.player;\n\n this.setState({\n error: error\n });\n\n player?.pause();\n }\n\n renderFrames() {\n let {\n frames,\n framesClassName,\n columnsCount,\n data,\n jumpFrame,\n classPrefix: ns,\n classnames: cx\n } = this.props;\n\n if (typeof frames === 'string' && frames[0] === '$') {\n frames = resolveVariable(frames, data);\n }\n\n if (!frames) {\n return null;\n }\n\n const items: Array<object> = [];\n const times: Array<number> = (this.times = []);\n Object.keys(frames).forEach(time => {\n times.push(str2seconds(time));\n\n items.push({\n time: time,\n src: frames![time]\n });\n });\n\n if (!items.length) {\n return null;\n }\n\n return (\n <div\n className={cx(`pos-rlt Video-frameList`, framesClassName)}\n ref={this.frameRef}\n >\n {padArr(items, columnsCount).map((items, i) => {\n let restCount = (columnsCount as number) - items.length;\n let blankArray = [];\n\n while (restCount--) {\n blankArray.push('');\n }\n\n return (\n <div className=\"pull-in-xxs\" key={i}>\n <div className={`${ns}Hbox ${ns}Video-frameItem`}>\n {items.map((item, key) => (\n <div\n className={`${ns}Hbox-col Wrapper--xxs ${ns}Video-frame`}\n key={key}\n onClick={() =>\n this.jumpToIndex(i * (columnsCount as number) + key)\n }\n >\n {item.src ? (\n <img className=\"w-full\" alt=\"poster\" src={item.src} />\n ) : null}\n <div className={`${ns}Video-frameLabel`}>{item.time}</div>\n </div>\n ))}\n\n {\n /* 补充空白 */ restCount\n ? blankArray.map((_, index) => (\n <div\n className={`${ns}Hbox-col Wrapper--xxs`}\n key={`blank_${index}`}\n />\n ))\n : null\n }\n </div>\n </div>\n );\n })}\n {jumpFrame ? (\n <span ref={this.cursorRef} className={`${ns}Video-cursor`} />\n ) : null}\n </div>\n );\n }\n\n renderPlayer() {\n let {\n poster,\n autoPlay,\n muted,\n name,\n data,\n amisConfig,\n locals,\n isLive,\n minVideoDuration,\n videoType,\n playerClassName,\n classPrefix: ns,\n aspectRatio,\n rates,\n classnames: cx\n } = this.props;\n\n let source =\n filter(this.props.src, data, '| raw') || getPropValue(this.props);\n const videoState = this.state.videoState;\n let highlight =\n videoState.duration &&\n minVideoDuration &&\n videoState.duration < minVideoDuration;\n let src = filter(source, data, '| raw');\n let sourceNode;\n const error = this.state.error;\n\n if (\n (src && /\\.flv(?:$|\\?)/.test(src) && isLive) ||\n videoType === 'video/x-flv'\n ) {\n sourceNode = (\n <FlvSource\n autoPlay={autoPlay}\n order={999.0}\n isLive={isLive}\n src={src}\n setError={this.setError}\n />\n );\n } else if (\n (src && /\\.m3u8(?:$|\\?)/.test(src)) ||\n videoType === 'application/x-mpegURL'\n ) {\n sourceNode = <HlsSource autoPlay={autoPlay} order={999.0} src={src} />;\n } else {\n sourceNode = <source src={src} />;\n }\n\n return (\n <div className={cx('Video-player', playerClassName)}>\n <Player\n ref={this.playerRef}\n poster={filter(poster, data, '| raw')}\n src={src}\n autoPlay={autoPlay}\n muted={muted}\n aspectRatio={aspectRatio}\n >\n {rates && rates.length ? (\n <ControlBar>\n <PlaybackRateMenuButton rates={rates} order={7.1} />\n </ControlBar>\n ) : null}\n <BigPlayButton position=\"center\" />\n {sourceNode}\n <Shortcut disabled />\n </Player>\n\n {error ? <div className={cx('Video-error')}>{error}</div> : null}\n {highlight ? (\n <p className={`m-t-xs ${ns}Text--danger`}>\n 视频时长小于 {minVideoDuration} 秒\n </p>\n ) : null}\n </div>\n );\n }\n\n renderPosterAndPlayer() {\n let {poster, data, locals, minPosterDimension, classnames: cx} = this.props;\n const posterInfo = this.state.posterInfo || {};\n let dimensionClassName = '';\n\n if (\n posterInfo &&\n minPosterDimension &&\n (minPosterDimension.width || minPosterDimension.height) &&\n (minPosterDimension.width > posterInfo.width ||\n minPosterDimension.height > posterInfo.height)\n ) {\n dimensionClassName = `Text--danger`;\n }\n\n return (\n <div className=\"pull-in-xs\">\n <div className={cx('Hbox')}>\n <div className={cx('Hbox-col')}>\n <div className={cx('Wrapper Wrapper--xs')}>\n <img\n onLoad={this.onImageLoaded as any}\n className=\"w-full\"\n alt=\"poster\"\n src={filter(poster, data, '| raw')}\n />\n <p className=\"m-t-xs\">\n 封面{' '}\n <span className={dimensionClassName}>\n {posterInfo.width || '-'} x {posterInfo.height || '-'}\n </span>\n {dimensionClassName ? (\n <span>\n {' '}\n 封面尺寸小于{' '}\n <span className={cx('Text--danger')}>\n {minPosterDimension.width || '-'} x{' '}\n {minPosterDimension.height || '-'}\n </span>\n </span>\n ) : null}\n </p>\n </div>\n </div>\n <div className={cx('Hbox-col')}>\n <div className={cx('Wrapper Wrapper--xs')}>\n {this.renderPlayer()}\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n render() {\n let {splitPoster, className, classPrefix: ns, classnames: cx} = this.props;\n\n return (\n <div className={cx(`Video`, className)} onClick={this.onClick as any}>\n {this.renderFrames()}\n {splitPoster ? this.renderPosterAndPlayer() : this.renderPlayer()}\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'video'\n})\nexport class VideoRenderer extends Video {}\n"
|
11
|
+
"/**\n * @file video\n * @author fex\n */\n\nimport React from 'react';\n\nimport {\n Player,\n Shortcut,\n BigPlayButton,\n ControlBar,\n PlaybackRateMenuButton\n // @ts-ignore\n} from 'video-react';\nimport {getPropValue, padArr} from '../utils/helper';\nimport {Renderer, RendererProps} from '../factory';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport {filter} from '../utils/tpl';\n// import css\n// import 'video-react/dist/video-react.css';\nimport {BaseSchema, SchemaClassName, SchemaUrlPath} from '../Schema';\n\n/**\n * 视频播放器\n * 文档:https://baidu.gitee.io/amis/docs/components/video\n */\nexport interface VideoSchema extends BaseSchema {\n /**\n * 指定为视频类型\n */\n type: 'video';\n\n /**\n * 是否自动播放\n */\n autoPlay?: boolean;\n\n /**\n * 如果显示切帧,通过此配置项可以控制每行显示多少帧\n */\n columnsCount?: number;\n\n /**\n * 设置后,可以显示切帧.点击帧的时候会将视频跳到对应时间。\n *\n * frames: {\n * '01:22': 'http://domain/xxx.jpg'\n * }\n */\n frames?: {\n [propName: string]: string;\n };\n\n /**\n * 配置帧列表容器className\n */\n framesClassName?: SchemaClassName;\n\n /**\n * 如果是实时的,请标记一下\n */\n isLive?: boolean;\n\n /**\n * 点击帧画面时是否跳转视频对应的点\n *\n * @default true\n */\n jumpFrame?: boolean;\n\n /**\n * 是否初始静音\n */\n muted?: boolean;\n\n /**\n * 配置播放器 className\n */\n playerClassName?: SchemaClassName;\n\n /**\n * 视频封面地址\n */\n poster?: SchemaUrlPath;\n\n /**\n * 是否将视频和封面分开显示\n */\n splitPoster?: boolean;\n\n /**\n * 视频播放地址\n */\n src?: SchemaUrlPath;\n\n /**\n * 视频类型如: video/x-flv\n */\n videoType?: string;\n\n /**\n * 视频比率\n */\n aspectRatio?: 'auto' | '4:3' | '16:9';\n\n /**\n * 视频速率\n */\n rates?: Array<number>;\n\n /**\n * 跳转到帧时,往前多少秒。\n */\n jumpBufferDuration?: number;\n\n /**\n * 默认播放的时候到了下一帧会继续播放,同时高亮下一帧。\n * 如果配置这个则会停止播放,等待用户选择新的区间再播放。\n */\n stopOnNextFrame?: boolean;\n}\n\nconst str2seconds: (str: string) => number = str =>\n str.indexOf(':')\n ? str\n .split(':')\n .reverse()\n .reduce(\n (seconds, value, index) =>\n seconds + (parseInt(value, 10) || 0) * Math.pow(60, index),\n 0\n )\n : parseInt(str, 10);\n\nexport interface FlvSourceProps {\n src?: string;\n type?: string;\n video?: any;\n config?: object;\n manager?: any;\n isLive?: boolean;\n autoPlay?: boolean;\n actions?: any;\n order?: number;\n setError: (error: string) => void;\n}\n\n// let currentPlaying: any = null;\n\nexport class FlvSource extends React.Component<FlvSourceProps, any> {\n mpegtsPlayer: any;\n loaded = false;\n timer: any;\n unsubscribe: any;\n\n componentDidMount() {\n let {src, video, config, manager, isLive, autoPlay, actions, setError} =\n this.props;\n\n this.initFlv({\n video,\n manager,\n src,\n isLive,\n config,\n actions,\n setError,\n autoPlay\n });\n }\n\n componentDidUpdate(prevProps: FlvSourceProps) {\n const props = this.props;\n let {autoPlay, actions, src, setError, isLive, config, video, manager} =\n props;\n\n if (src !== prevProps.src) {\n setError('');\n this.mpegtsPlayer?.destroy();\n this.unsubscribe?.();\n this.loaded = false;\n this.initFlv({\n video,\n manager,\n src,\n isLive,\n config,\n actions,\n setError,\n autoPlay\n });\n }\n }\n\n componentWillUnmount() {\n if (this.mpegtsPlayer) {\n this.mpegtsPlayer.destroy();\n this.props.setError?.('');\n }\n }\n\n initFlv({\n video,\n manager,\n src,\n isLive,\n config,\n actions,\n setError,\n autoPlay\n }: any) {\n import('mpegts.js').then((mpegts: any) => {\n video = video || (manager.video && manager.video.video);\n\n let mpegtsPlayer = mpegts.createPlayer(\n {\n type: 'flv',\n url: src,\n isLive: isLive\n },\n config\n );\n mpegtsPlayer.attachMediaElement(video);\n this.mpegtsPlayer = mpegtsPlayer;\n\n this.unsubscribe = manager.subscribeToOperationStateChange(\n (operation: any) => {\n const type = operation.operation.action;\n\n if (type === 'play') {\n clearTimeout(this.timer);\n if (!this.loaded) {\n this.loaded = true;\n mpegtsPlayer.load();\n }\n\n mpegtsPlayer.play();\n } else if (type === 'pause') {\n mpegtsPlayer.pause();\n\n if (isLive) {\n this.timer = setTimeout(() => {\n actions.seek(0);\n mpegtsPlayer.unload();\n this.loaded = false;\n }, 30000);\n }\n }\n }\n );\n\n mpegtsPlayer.on(mpegts.Events.RECOVERED_EARLY_EOF, () => {\n setError('直播已经结束');\n });\n mpegtsPlayer.on(mpegts.Events.ERROR, () => {\n setError('视频加载失败');\n mpegtsPlayer.unload();\n });\n\n if (autoPlay) {\n setTimeout(() => actions.play(), 200);\n }\n });\n }\n\n render() {\n return (\n <source src={this.props.src} type={this.props.type || 'video/x-flv'} />\n );\n }\n}\n\nexport interface HlsSourceProps {\n src?: string;\n type?: string;\n video?: any;\n config?: object;\n manager?: any;\n isLive?: boolean;\n autoPlay?: boolean;\n actions?: any;\n order?: number;\n}\nexport class HlsSource extends React.Component<HlsSourceProps, any> {\n hls: any;\n loaded = false;\n unsubscribe: any;\n componentDidMount() {\n let {src, video, config, manager, isLive, autoPlay, actions} = this.props;\n this.initHls({\n video,\n manager,\n src,\n autoPlay,\n actions\n });\n }\n\n componentWillUnmount() {\n if (this.hls) {\n this.hls.stopLoad();\n this.hls.detachMedia();\n }\n }\n\n componentDidUpdate(prevProps: HlsSourceProps) {\n const props = this.props;\n let {autoPlay, actions, src, isLive, config, video, manager} = props;\n\n if (src !== prevProps.src) {\n this.hls?.stopLoad();\n this.hls?.detachMedia();\n this.unsubscribe?.();\n this.loaded = false;\n this.initHls({\n video,\n manager,\n src,\n autoPlay,\n actions\n });\n }\n }\n\n initHls({video, manager, src, autoPlay, actions}: any) {\n // @ts-ignore\n import('hls.js').then(({default: Hls}: any) => {\n // load hls video source base on hls.js\n if (Hls.isSupported()) {\n video = video || (manager.video && manager.video.video);\n\n let hls = (this.hls = new Hls({\n autoStartLoad: false\n }));\n hls.attachMedia(video);\n hls.loadSource(src);\n\n this.unsubscribe = manager.subscribeToOperationStateChange(\n (operation: any) => {\n const type = operation.operation.action;\n\n if (type === 'play') {\n if (!this.loaded) {\n this.loaded = true;\n hls.startLoad();\n }\n\n video.play();\n } else if (type === 'pause') {\n video.pause();\n hls.stopLoad();\n this.loaded = false;\n }\n }\n );\n\n autoPlay && setTimeout(actions.play, 200);\n }\n });\n }\n\n render() {\n return (\n <source\n src={this.props.src}\n type={this.props.type || 'application/x-mpegURL'}\n />\n );\n }\n}\n\nexport interface VideoProps\n extends RendererProps,\n Omit<VideoSchema, 'className'> {\n columnsCount: number;\n}\n\nexport interface VideoState {\n posterInfo?: any;\n videoState?: any;\n error?: string;\n}\n\nexport default class Video extends React.Component<VideoProps, VideoState> {\n static defaultProps = {\n columnsCount: 8,\n isLive: false,\n jumpFrame: true,\n aspectRatio: 'auto'\n };\n\n frameDom: any;\n cursorDom: any;\n player: any;\n times: Array<number>;\n currentIndex: number;\n manualJump = false;\n constructor(props: VideoProps) {\n super(props);\n\n this.state = {\n posterInfo: null,\n videoState: {}\n };\n\n this.frameRef = this.frameRef.bind(this);\n this.cursorRef = this.cursorRef.bind(this);\n this.playerRef = this.playerRef.bind(this);\n this.onImageLoaded = this.onImageLoaded.bind(this);\n this.onClick = this.onClick.bind(this);\n this.setError = this.setError.bind(this);\n }\n\n onImageLoaded(e: Event) {\n let image: any = new Image();\n image.onload = () => {\n this.setState({\n posterInfo: {\n width: image.width,\n height: image.height\n }\n });\n image = image.onload = null;\n };\n image.src = (e.target as HTMLElement).getAttribute('src');\n }\n\n frameRef(dom: any) {\n this.frameDom = dom;\n }\n\n cursorRef(dom: any) {\n this.cursorDom = dom;\n }\n\n playerRef(player: any) {\n this.player = player;\n\n if (!player) {\n return;\n }\n\n player.subscribeToStateChange((state: any) => {\n this.setState({\n videoState: state\n });\n\n // if (!state.paused) {\n // if (\n // currentPlaying &&\n // currentPlaying.video &&\n // currentPlaying !== player\n // ) {\n // currentPlaying.pause();\n // }\n\n // currentPlaying = player;\n // }\n\n if (!this.frameDom || !this.times) {\n return;\n }\n\n const jumpBufferDuration = this.props.jumpBufferDuration || 0;\n let index = 0;\n const times = this.times;\n const len = times.length;\n const stopOnNextFrame = this.props.stopOnNextFrame;\n while (index < len - 1) {\n if (\n times[index + 1] &&\n state.currentTime < times[index + 1] - jumpBufferDuration\n ) {\n break;\n }\n\n index++;\n }\n\n if (this.currentIndex !== index) {\n this.moveCursorToIndex(index);\n\n stopOnNextFrame && !this.manualJump && player.pause();\n\n if (this.manualJump) {\n this.manualJump = false;\n }\n }\n });\n }\n\n moveCursorToIndex(index: number) {\n const {classPrefix: ns} = this.props;\n if (!this.frameDom || !this.cursorDom) {\n return;\n }\n const items = this.frameDom.querySelectorAll(`.${ns}Video-frame`);\n\n if (items && items.length && items[index]) {\n this.currentIndex = index;\n const item = items[index];\n const frameRect = this.frameDom.getBoundingClientRect();\n const rect = item.getBoundingClientRect();\n this.cursorDom.setAttribute(\n 'style',\n `width: ${rect.width - 4}px; height: ${rect.height - 4}px; left: ${\n rect.left + 2 - frameRect.left\n }px; top: ${rect.top + 2 - frameRect.top}px;`\n );\n }\n }\n\n jumpToIndex(index: number) {\n if (!this.times || !this.player || !this.props.jumpFrame) {\n return;\n }\n const jumpBufferDuration = this.props.jumpBufferDuration || 0;\n const times = this.times;\n const player = this.player;\n\n this.manualJump = true;\n player.seek(times[index] - jumpBufferDuration);\n player.play();\n }\n\n onClick(e: Event) {\n // 避免把所在 form 给提交了。\n e.preventDefault();\n }\n\n setError(error?: string) {\n const player = this.player;\n\n this.setState({\n error: error\n });\n\n player?.pause();\n }\n\n renderFrames() {\n let {\n frames,\n framesClassName,\n columnsCount,\n data,\n jumpFrame,\n classPrefix: ns,\n classnames: cx\n } = this.props;\n\n if (typeof frames === 'string' && frames[0] === '$') {\n frames = resolveVariable(frames, data);\n }\n\n if (!frames) {\n return null;\n }\n\n const items: Array<object> = [];\n const times: Array<number> = (this.times = []);\n Object.keys(frames).forEach(time => {\n times.push(str2seconds(time));\n\n items.push({\n time: time,\n src: frames![time]\n });\n });\n\n if (!items.length) {\n return null;\n }\n\n return (\n <div\n className={cx(`pos-rlt Video-frameList`, framesClassName)}\n ref={this.frameRef}\n >\n {padArr(items, columnsCount).map((items, i) => {\n let restCount = (columnsCount as number) - items.length;\n let blankArray = [];\n\n while (restCount--) {\n blankArray.push('');\n }\n\n return (\n <div className=\"pull-in-xs\" key={i}>\n <div className={cx(`Hbox Video-frameItem`)}>\n {items.map((item, key) => (\n <div\n className={cx(`Hbox-col Wrapper--xs Video-frame`)}\n key={key}\n onClick={() =>\n this.jumpToIndex(i * (columnsCount as number) + key)\n }\n >\n {item.src ? (\n <img className=\"w-full\" alt=\"poster\" src={item.src} />\n ) : null}\n <div className={cx(`Video-frameLabel`)}>{item.time}</div>\n </div>\n ))}\n\n {\n /* 补充空白 */ restCount\n ? blankArray.map((_, index) => (\n <div\n className={cx(`Hbox-col Wrapper--xs`)}\n key={`blank_${index}`}\n />\n ))\n : null\n }\n </div>\n </div>\n );\n })}\n {jumpFrame ? (\n <span ref={this.cursorRef} className={cx('Video-cursor')} />\n ) : null}\n </div>\n );\n }\n\n renderPlayer() {\n let {\n poster,\n autoPlay,\n muted,\n name,\n data,\n amisConfig,\n locals,\n isLive,\n minVideoDuration,\n videoType,\n playerClassName,\n classPrefix: ns,\n aspectRatio,\n rates,\n classnames: cx\n } = this.props;\n\n let source =\n filter(this.props.src, data, '| raw') || getPropValue(this.props);\n const videoState = this.state.videoState;\n let highlight =\n videoState.duration &&\n minVideoDuration &&\n videoState.duration < minVideoDuration;\n let src = filter(source, data, '| raw');\n let sourceNode;\n const error = this.state.error;\n\n if (\n (src && /\\.flv(?:$|\\?)/.test(src) && isLive) ||\n videoType === 'video/x-flv'\n ) {\n sourceNode = (\n <FlvSource\n autoPlay={autoPlay}\n order={999.0}\n isLive={isLive}\n src={src}\n setError={this.setError}\n />\n );\n } else if (\n (src && /\\.m3u8(?:$|\\?)/.test(src)) ||\n videoType === 'application/x-mpegURL'\n ) {\n sourceNode = <HlsSource autoPlay={autoPlay} order={999.0} src={src} />;\n } else {\n sourceNode = <source src={src} />;\n }\n\n return (\n <div className={cx('Video-player', playerClassName)}>\n <Player\n ref={this.playerRef}\n poster={filter(poster, data, '| raw')}\n src={src}\n autoPlay={autoPlay}\n muted={muted}\n aspectRatio={aspectRatio}\n >\n {rates && rates.length ? (\n <ControlBar>\n <PlaybackRateMenuButton rates={rates} order={7.1} />\n </ControlBar>\n ) : null}\n <BigPlayButton position=\"center\" />\n {sourceNode}\n <Shortcut disabled />\n </Player>\n\n {error ? <div className={cx('Video-error')}>{error}</div> : null}\n {highlight ? (\n <p className={`m-t-xs ${ns}Text--danger`}>\n 视频时长小于 {minVideoDuration} 秒\n </p>\n ) : null}\n </div>\n );\n }\n\n renderPosterAndPlayer() {\n let {poster, data, locals, minPosterDimension, classnames: cx} = this.props;\n const posterInfo = this.state.posterInfo || {};\n let dimensionClassName = '';\n\n if (\n posterInfo &&\n minPosterDimension &&\n (minPosterDimension.width || minPosterDimension.height) &&\n (minPosterDimension.width > posterInfo.width ||\n minPosterDimension.height > posterInfo.height)\n ) {\n dimensionClassName = `Text--danger`;\n }\n\n return (\n <div className=\"pull-in-xs\">\n <div className={cx('Hbox')}>\n <div className={cx('Hbox-col')}>\n <div className={cx('Wrapper Wrapper--xs')}>\n <img\n onLoad={this.onImageLoaded as any}\n className=\"w-full\"\n alt=\"poster\"\n src={filter(poster, data, '| raw')}\n />\n <p className=\"m-t-xs\">\n 封面{' '}\n <span className={dimensionClassName}>\n {posterInfo.width || '-'} x {posterInfo.height || '-'}\n </span>\n {dimensionClassName ? (\n <span>\n {' '}\n 封面尺寸小于{' '}\n <span className={cx('Text--danger')}>\n {minPosterDimension.width || '-'} x{' '}\n {minPosterDimension.height || '-'}\n </span>\n </span>\n ) : null}\n </p>\n </div>\n </div>\n <div className={cx('Hbox-col')}>\n <div className={cx('Wrapper Wrapper--xs')}>\n {this.renderPlayer()}\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n render() {\n let {splitPoster, className, classPrefix: ns, classnames: cx} = this.props;\n\n return (\n <div className={cx(`Video`, className)} onClick={this.onClick as any}>\n {this.renderFrames()}\n {splitPoster ? this.renderPosterAndPlayer() : this.renderPlayer()}\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'video'\n})\nexport class VideoRenderer extends Video {}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/store/form.js
CHANGED
@@ -345,7 +345,7 @@ exports.FormStore = service_1.ServiceStore.named('FormStore')
|
|
345
345
|
}, [self]);
|
346
346
|
};
|
347
347
|
var submit = (0, mobx_state_tree_1.flow)(function submit(fn, hooks, failedMessage) {
|
348
|
-
var valid,
|
348
|
+
var valid, msg, env, diff, result;
|
349
349
|
return (0, tslib_1.__generator)(this, function (_a) {
|
350
350
|
switch (_a.label) {
|
351
351
|
case 0:
|
@@ -363,19 +363,10 @@ exports.FormStore = service_1.ServiceStore.named('FormStore')
|
|
363
363
|
return item.errorData.some(function (e) { return e.tag !== 'remote'; });
|
364
364
|
})) ||
|
365
365
|
self.restError.length) {
|
366
|
-
|
366
|
+
msg = failedMessage !== null && failedMessage !== void 0 ? failedMessage : self.__('Form.validateFailed');
|
367
367
|
env = (0, mobx_state_tree_1.getEnv)(self);
|
368
|
-
|
369
|
-
|
370
|
-
failedMessage == null &&
|
371
|
-
!env.hideValidateFailedDetail &&
|
372
|
-
self.items.forEach(function (item) {
|
373
|
-
item.errorData.forEach(function (errorData) {
|
374
|
-
msg_1 = "".concat(msg_1, "\n").concat(errorData.msg);
|
375
|
-
});
|
376
|
-
});
|
377
|
-
msg_1 && env.notify('error', msg_1);
|
378
|
-
throw new Error(msg_1);
|
368
|
+
msg && env.notify('error', msg);
|
369
|
+
throw new Error(msg);
|
379
370
|
}
|
380
371
|
if (!fn) return [3 /*break*/, 4];
|
381
372
|
diff = (0, helper_1.difference)(self.data, self.pristine);
|
package/lib/store/form.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/store/form.ts"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {\n types,\n getEnv,\n flow,\n getRoot,\n detach,\n destroy,\n isAlive,\n Instance\n} from 'mobx-state-tree';\nimport debounce from 'lodash/debounce';\nimport {ServiceStore} from './service';\nimport {FormItemStore, IFormItemStore, SFormItemStore} from './formItem';\nimport {Api, ApiObject, fetchOptions, Payload} from '../types';\nimport {ServerError} from '../utils/errors';\nimport {\n getVariable,\n setVariable,\n deleteVariable,\n cloneObject,\n createObject,\n difference,\n guid,\n isEmpty,\n mapObject,\n keyToPath\n} from '../utils/helper';\nimport isEqual from 'lodash/isEqual';\nimport flatten from 'lodash/flatten';\nimport {getStoreById, removeStore} from './manager';\nimport {filter} from '../utils/tpl';\nimport {normalizeApiResponseData} from '../utils/api';\n\nexport const FormStore = ServiceStore.named('FormStore')\n .props({\n inited: false,\n validated: false,\n submited: false,\n submiting: false,\n savedData: types.frozen(),\n // items: types.optional(types.array(types.late(() => FormItemStore)), []),\n canAccessSuperData: true,\n persistData: types.optional(types.union(types.string, types.boolean), ''),\n restError: types.optional(types.array(types.string), []) // 没有映射到表达项上的 errors\n })\n .views(self => {\n function getItems() {\n const formItems: Array<IFormItemStore> = [];\n\n // 查找孩子节点中是 formItem 的表单项\n const pool = self.children.concat();\n while (pool.length) {\n const current = pool.shift()!;\n\n if (current.storeType === FormItemStore.name) {\n formItems.push(current);\n } else {\n pool.push(...current.children);\n }\n }\n\n return formItems;\n }\n\n return {\n get loading() {\n return self.saving || self.fetching;\n },\n\n get items() {\n return getItems();\n },\n\n get errors() {\n let errors: {\n [propName: string]: Array<string>;\n } = {};\n\n getItems().forEach(item => {\n if (!item.valid) {\n errors[item.name] = Array.isArray(errors[item.name])\n ? errors[item.name].concat(item.errors)\n : item.errors.concat();\n }\n });\n\n return errors;\n },\n\n getValueByName(\n name: string,\n canAccessSuperData = self.canAccessSuperData\n ) {\n return getVariable(self.data, name, canAccessSuperData);\n },\n\n getPristineValueByName(name: string) {\n return getVariable(self.pristine, name);\n },\n\n getItemById(id: string) {\n return getItems().find(item => item.itemId === id);\n },\n\n getItemByName(name: string) {\n return getItems().find(item => item.name === name);\n },\n\n getItemsByName(name: string) {\n return getItems().filter(item => item.name === name);\n },\n\n get valid() {\n return (\n getItems().every(item => item.valid) &&\n (!self.restError || !self.restError.length)\n );\n },\n\n get validating() {\n return getItems().some(item => item.validating);\n },\n\n get isPristine() {\n return isEqual(self.pristine, self.data);\n },\n\n get modified() {\n if (self.savedData) {\n return self.savedData !== self.data;\n }\n\n return !this.isPristine;\n },\n\n get persistKey() {\n return `${location.pathname}/${self.path}/${\n typeof self.persistData === 'string'\n ? filter(self.persistData, self.data)\n : self.persistData\n }`;\n }\n };\n })\n .actions(self => {\n function setValues(values: object, tag?: object, replace?: boolean) {\n self.updateData(values, tag, replace);\n\n // 如果数据域中有数据变化,就都reset一下,去掉之前残留的验证消息\n self.items.forEach(item => item.reset());\n\n // 同步 options\n syncOptions();\n }\n\n function setValueByName(\n name: string,\n value: any,\n isPristine: boolean = false,\n force: boolean = false\n ) {\n // 没有变化就不跑了。\n const origin = getVariable(self.data, name, false);\n\n const prev = self.data;\n const data = cloneObject(self.data);\n\n if (value !== origin) {\n if (prev.__prev) {\n // 基于之前的 __prev 改\n const prevData = cloneObject(prev.__prev);\n setVariable(prevData, name, origin);\n Object.defineProperty(data, '__prev', {\n value: prevData,\n enumerable: false,\n configurable: false,\n writable: false\n });\n } else {\n Object.defineProperty(data, '__prev', {\n value: {...prev},\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n } else if (!force) {\n return;\n }\n\n setVariable(data, name, value);\n\n if (isPristine) {\n const pristine = cloneObject(self.pristine);\n setVariable(pristine, name, value);\n self.pristine = pristine;\n }\n\n if (!data.__pristine) {\n Object.defineProperty(data, '__pristine', {\n value: self.pristine,\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n\n self.data = data;\n\n // 同步 options\n syncOptions();\n }\n\n function deleteValueByName(name: string) {\n const prev = self.data;\n const data = cloneObject(self.data);\n\n if (prev.__prev) {\n // 基于之前的 __prev 改\n const prevData = cloneObject(prev.__prev);\n setVariable(prevData, name, getVariable(prev, name));\n Object.defineProperty(data, '__prev', {\n value: prevData,\n enumerable: false,\n configurable: false,\n writable: false\n });\n } else {\n Object.defineProperty(data, '__prev', {\n value: {...prev},\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n\n deleteVariable(data, name);\n self.data = data;\n }\n\n function trimValues() {\n let data = mapObject(self.data, (item: any) =>\n typeof item === 'string' ? item.trim() : item\n );\n self.updateData(data);\n }\n\n const syncOptions = debounce(\n () => self.items.forEach(item => item.syncOptions(undefined, self.data)),\n 250,\n {\n trailing: true,\n leading: false\n }\n );\n\n function setRestError(errors: string[]) {\n self.restError.replace(errors);\n }\n\n function addRestError(msg: string, name?: string | Array<string>) {\n const names = name\n ? Array.isArray(name)\n ? name.concat()\n : [name]\n : null;\n\n if (Array.isArray(names)) {\n const errors: any = {};\n names.forEach(name => (errors[name] = msg));\n setFormItemErrors(errors, 'rules');\n } else {\n self.restError.push(msg);\n }\n }\n\n function clearRestError() {\n setRestError([]);\n }\n\n const saveRemote: (\n api: Api,\n data?: object,\n options?: fetchOptions\n ) => Promise<any> = flow(function* saveRemote(\n api: Api,\n data: object,\n options: fetchOptions = {}\n ) {\n clearRestError();\n\n try {\n options = {\n method: 'post', // 默认走 post\n ...options\n };\n\n if (options && options.beforeSend) {\n let ret = options.beforeSend(data);\n\n if (ret && ret.then) {\n ret = yield ret;\n }\n\n if (ret === false) {\n return;\n }\n }\n\n self.markSaving(true);\n const json: Payload = yield getEnv(self).fetcher(api, data, options);\n\n // 失败也同样修改数据,如果有数据的话。\n if (!isEmpty(json.data) || json.ok) {\n self.updatedAt = Date.now();\n\n setValues(\n normalizeApiResponseData(json.data),\n json.ok\n ? {\n __saved: Date.now()\n }\n : undefined,\n !!(api as ApiObject).replaceData\n );\n }\n\n if (!json.ok) {\n // 验证错误\n if (json.status === 422 && json.errors) {\n setFormItemErrors(json.errors);\n\n self.updateMessage(\n json.msg ??\n self.__(options && options.errorMessage) ??\n self.__('Form.validateFailed'),\n true\n );\n } else {\n self.updateMessage(\n json.msg ?? self.__(options && options.errorMessage),\n true\n );\n }\n\n throw new ServerError(self.msg, json);\n } else {\n updateSavedData();\n if (options && options.onSuccess) {\n const ret = options.onSuccess(json);\n\n if (ret && ret.then) {\n yield ret;\n }\n }\n self.markSaving(false);\n self.updateMessage(\n json.msg ?? self.__(options && options.successMessage)\n );\n self.msg &&\n getEnv(self).notify(\n 'success',\n self.msg,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n return json.data;\n }\n } catch (e) {\n self.markSaving(false);\n\n if (!isAlive(self) || self.disposed) {\n return;\n }\n\n if (e.type === 'ServerError') {\n const result = (e as ServerError).response;\n getEnv(self).notify(\n 'error',\n e.message,\n result.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: result.msgTimeout\n }\n : undefined\n );\n } else {\n getEnv(self).notify('error', e.message);\n }\n\n throw e;\n }\n });\n\n function setFormItemErrors(\n errors: {[propName: string]: string},\n tag = 'remote'\n ) {\n Object.keys(errors).forEach((key: string) => {\n const item = self.getItemById(key);\n const items = self.getItemsByName(key);\n\n if (item) {\n item.setError(errors[key], tag);\n delete errors[key];\n } else if (items.length) {\n // 通过 name 直接找到的\n items.forEach(item => item.setError(errors[key], tag));\n delete errors[key];\n } else {\n // 尝试通过path寻找\n const items = getItemsByPath(key);\n\n if (Array.isArray(items) && items.length) {\n items.forEach(item => item.setError(`${errors[key]}`, tag));\n delete errors[key];\n }\n }\n });\n\n // 没有映射上的error信息加在msg后显示出来\n !isEmpty(errors) &&\n setRestError(Object.keys(errors).map(key => String(errors[key])));\n }\n\n const getItemsByPath = (key: string) => {\n const paths = keyToPath(key);\n const len = paths.length;\n\n return paths.reduce(\n (stores: any[], path, idx) => {\n if (Array.isArray(stores) && stores.every(s => s.getItemsByName)) {\n const items = flatten(\n stores.map(s => s.getItemsByName(path))\n ).filter(i => i);\n const subStores = items\n .map(item => item?.getSubStore?.())\n .filter(i => i);\n return subStores.length && idx < len - 1 ? subStores : items;\n }\n return null;\n },\n [self]\n );\n };\n\n const submit: (\n fn?: (values: object) => Promise<any>,\n hooks?: Array<() => Promise<any>>,\n failedMessage?: string\n ) => Promise<any> = flow(function* submit(\n fn: any,\n hooks?: Array<() => Promise<any>>,\n failedMessage?: string\n ) {\n self.submited = true;\n self.submiting = true;\n\n try {\n let valid = yield validate(hooks);\n\n // 如果不是valid,而且有包含不是remote的报错的表单项时,不可提交\n if (\n (!valid &&\n self.items.some(item =>\n item.errorData.some(e => e.tag !== 'remote')\n )) ||\n self.restError.length\n ) {\n let msg = failedMessage ?? self.__('Form.validateFailed');\n const env = getEnv(self);\n // 同时也列出所有表单项报错,方便在很长的表单中知道是哪个字段的问题\n // 支持在env中配hideValidateFailedDetail来隐藏所有表单项报错\n failedMessage == null &&\n !env.hideValidateFailedDetail &&\n self.items.forEach(item => {\n item.errorData.forEach(errorData => {\n msg = `${msg}\\n${errorData.msg}`;\n });\n });\n\n msg && env.notify('error', msg);\n\n throw new Error(msg);\n }\n\n if (fn) {\n const diff = difference(self.data, self.pristine);\n const result = yield fn(\n createObject(\n createObject(self.data.__super, {\n diff: diff,\n __diff: diff,\n pristine: self.pristine\n }),\n self.data\n )\n );\n return result ?? self.data;\n }\n\n return self.data;\n } finally {\n self.submiting = false;\n }\n });\n\n const validate: (\n hooks?: Array<() => Promise<any>>,\n forceValidate?: boolean\n ) => Promise<boolean> = flow(function* validate(\n hooks?: Array<() => Promise<any>>,\n forceValidate?: boolean\n ) {\n self.validated = true;\n const items = self.items.concat();\n for (let i = 0, len = items.length; i < len; i++) {\n let item = items[i] as IFormItemStore;\n\n // 先清除组合校验的错误\n item.clearError('rules');\n\n // 验证过,或者是 unique 的表单项,或者强制验证,或者有远端校验api\n if (\n !item.validated ||\n item.unique ||\n forceValidate ||\n !!item.validateApi\n ) {\n yield item.validate(self.data);\n }\n }\n\n if (hooks && hooks.length) {\n for (let i = 0, len = hooks.length; i < len; i++) {\n yield hooks[i]();\n }\n }\n\n return self.valid;\n });\n\n const validateFields: (fields: Array<string>) => Promise<boolean> = flow(\n function* validateFields(fields: Array<string>) {\n const items = self.items.concat();\n let result: Array<boolean> = [];\n for (let i = 0, len = items.length; i < len; i++) {\n let item = items[i] as IFormItemStore;\n\n if (~fields.indexOf(item.name)) {\n result.push(yield item.validate(self.data));\n }\n }\n return result.every(item => item);\n }\n );\n\n function clearErrors() {\n const items = self.items.concat();\n items.forEach(item => item.reset());\n }\n\n function reset(cb?: (data: any) => void, resetData: boolean = true) {\n if (resetData) {\n self.data = self.pristine;\n }\n\n // 值可能变了,重新验证一次。\n self.validated = false;\n self.submited = false;\n self.items.forEach(item => item.reset());\n cb && cb(self.data);\n }\n\n function clear(cb?: (data: any) => void) {\n const toClear: any = {};\n self.items.forEach(item => {\n if (item.name && item.type !== 'hidden') {\n setVariable(toClear, item.name, item.resetValue);\n }\n });\n setValues(toClear);\n self.validated = false;\n self.submited = false;\n self.items.forEach(item => item.reset());\n cb && cb(self.data);\n }\n\n function setCanAccessSuperData(value: boolean = true) {\n self.canAccessSuperData = value;\n }\n\n function setInited(value: boolean) {\n self.inited = value;\n }\n\n function setPersistData(value = '') {\n self.persistData = value;\n }\n\n const setLocalPersistData = () => {\n localStorage.setItem(self.persistKey, JSON.stringify(self.data));\n };\n\n function getLocalPersistData() {\n let data = localStorage.getItem(self.persistKey);\n if (data) {\n self.updateData(JSON.parse(data));\n }\n }\n\n function clearLocalPersistData() {\n localStorage.removeItem(self.persistKey);\n }\n\n function updateSavedData() {\n self.savedData = self.data;\n }\n\n return {\n setInited,\n setValues,\n setValueByName,\n trimValues,\n submit,\n validate,\n validateFields,\n clearErrors,\n saveRemote,\n reset,\n syncOptions,\n setCanAccessSuperData,\n deleteValueByName,\n getLocalPersistData,\n setLocalPersistData,\n clearLocalPersistData,\n setPersistData,\n clear,\n updateSavedData,\n setFormItemErrors,\n getItemsByPath,\n setRestError,\n addRestError,\n clearRestError,\n beforeDestroy() {\n syncOptions.cancel();\n }\n };\n });\n\nexport type IFormStore = Instance<typeof FormStore>;\nexport {IFormItemStore};\n"
|
11
|
+
"import {\n types,\n getEnv,\n flow,\n getRoot,\n detach,\n destroy,\n isAlive,\n Instance\n} from 'mobx-state-tree';\nimport debounce from 'lodash/debounce';\nimport {ServiceStore} from './service';\nimport {FormItemStore, IFormItemStore, SFormItemStore} from './formItem';\nimport {Api, ApiObject, fetchOptions, Payload} from '../types';\nimport {ServerError} from '../utils/errors';\nimport {\n getVariable,\n setVariable,\n deleteVariable,\n cloneObject,\n createObject,\n difference,\n guid,\n isEmpty,\n mapObject,\n keyToPath\n} from '../utils/helper';\nimport isEqual from 'lodash/isEqual';\nimport flatten from 'lodash/flatten';\nimport {getStoreById, removeStore} from './manager';\nimport {filter} from '../utils/tpl';\nimport {normalizeApiResponseData} from '../utils/api';\n\nexport const FormStore = ServiceStore.named('FormStore')\n .props({\n inited: false,\n validated: false,\n submited: false,\n submiting: false,\n savedData: types.frozen(),\n // items: types.optional(types.array(types.late(() => FormItemStore)), []),\n canAccessSuperData: true,\n persistData: types.optional(types.union(types.string, types.boolean), ''),\n restError: types.optional(types.array(types.string), []) // 没有映射到表达项上的 errors\n })\n .views(self => {\n function getItems() {\n const formItems: Array<IFormItemStore> = [];\n\n // 查找孩子节点中是 formItem 的表单项\n const pool = self.children.concat();\n while (pool.length) {\n const current = pool.shift()!;\n\n if (current.storeType === FormItemStore.name) {\n formItems.push(current);\n } else {\n pool.push(...current.children);\n }\n }\n\n return formItems;\n }\n\n return {\n get loading() {\n return self.saving || self.fetching;\n },\n\n get items() {\n return getItems();\n },\n\n get errors() {\n let errors: {\n [propName: string]: Array<string>;\n } = {};\n\n getItems().forEach(item => {\n if (!item.valid) {\n errors[item.name] = Array.isArray(errors[item.name])\n ? errors[item.name].concat(item.errors)\n : item.errors.concat();\n }\n });\n\n return errors;\n },\n\n getValueByName(\n name: string,\n canAccessSuperData = self.canAccessSuperData\n ) {\n return getVariable(self.data, name, canAccessSuperData);\n },\n\n getPristineValueByName(name: string) {\n return getVariable(self.pristine, name);\n },\n\n getItemById(id: string) {\n return getItems().find(item => item.itemId === id);\n },\n\n getItemByName(name: string) {\n return getItems().find(item => item.name === name);\n },\n\n getItemsByName(name: string) {\n return getItems().filter(item => item.name === name);\n },\n\n get valid() {\n return (\n getItems().every(item => item.valid) &&\n (!self.restError || !self.restError.length)\n );\n },\n\n get validating() {\n return getItems().some(item => item.validating);\n },\n\n get isPristine() {\n return isEqual(self.pristine, self.data);\n },\n\n get modified() {\n if (self.savedData) {\n return self.savedData !== self.data;\n }\n\n return !this.isPristine;\n },\n\n get persistKey() {\n return `${location.pathname}/${self.path}/${\n typeof self.persistData === 'string'\n ? filter(self.persistData, self.data)\n : self.persistData\n }`;\n }\n };\n })\n .actions(self => {\n function setValues(values: object, tag?: object, replace?: boolean) {\n self.updateData(values, tag, replace);\n\n // 如果数据域中有数据变化,就都reset一下,去掉之前残留的验证消息\n self.items.forEach(item => item.reset());\n\n // 同步 options\n syncOptions();\n }\n\n function setValueByName(\n name: string,\n value: any,\n isPristine: boolean = false,\n force: boolean = false\n ) {\n // 没有变化就不跑了。\n const origin = getVariable(self.data, name, false);\n\n const prev = self.data;\n const data = cloneObject(self.data);\n\n if (value !== origin) {\n if (prev.__prev) {\n // 基于之前的 __prev 改\n const prevData = cloneObject(prev.__prev);\n setVariable(prevData, name, origin);\n Object.defineProperty(data, '__prev', {\n value: prevData,\n enumerable: false,\n configurable: false,\n writable: false\n });\n } else {\n Object.defineProperty(data, '__prev', {\n value: {...prev},\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n } else if (!force) {\n return;\n }\n\n setVariable(data, name, value);\n\n if (isPristine) {\n const pristine = cloneObject(self.pristine);\n setVariable(pristine, name, value);\n self.pristine = pristine;\n }\n\n if (!data.__pristine) {\n Object.defineProperty(data, '__pristine', {\n value: self.pristine,\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n\n self.data = data;\n\n // 同步 options\n syncOptions();\n }\n\n function deleteValueByName(name: string) {\n const prev = self.data;\n const data = cloneObject(self.data);\n\n if (prev.__prev) {\n // 基于之前的 __prev 改\n const prevData = cloneObject(prev.__prev);\n setVariable(prevData, name, getVariable(prev, name));\n Object.defineProperty(data, '__prev', {\n value: prevData,\n enumerable: false,\n configurable: false,\n writable: false\n });\n } else {\n Object.defineProperty(data, '__prev', {\n value: {...prev},\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n\n deleteVariable(data, name);\n self.data = data;\n }\n\n function trimValues() {\n let data = mapObject(self.data, (item: any) =>\n typeof item === 'string' ? item.trim() : item\n );\n self.updateData(data);\n }\n\n const syncOptions = debounce(\n () => self.items.forEach(item => item.syncOptions(undefined, self.data)),\n 250,\n {\n trailing: true,\n leading: false\n }\n );\n\n function setRestError(errors: string[]) {\n self.restError.replace(errors);\n }\n\n function addRestError(msg: string, name?: string | Array<string>) {\n const names = name\n ? Array.isArray(name)\n ? name.concat()\n : [name]\n : null;\n\n if (Array.isArray(names)) {\n const errors: any = {};\n names.forEach(name => (errors[name] = msg));\n setFormItemErrors(errors, 'rules');\n } else {\n self.restError.push(msg);\n }\n }\n\n function clearRestError() {\n setRestError([]);\n }\n\n const saveRemote: (\n api: Api,\n data?: object,\n options?: fetchOptions\n ) => Promise<any> = flow(function* saveRemote(\n api: Api,\n data: object,\n options: fetchOptions = {}\n ) {\n clearRestError();\n\n try {\n options = {\n method: 'post', // 默认走 post\n ...options\n };\n\n if (options && options.beforeSend) {\n let ret = options.beforeSend(data);\n\n if (ret && ret.then) {\n ret = yield ret;\n }\n\n if (ret === false) {\n return;\n }\n }\n\n self.markSaving(true);\n const json: Payload = yield getEnv(self).fetcher(api, data, options);\n\n // 失败也同样修改数据,如果有数据的话。\n if (!isEmpty(json.data) || json.ok) {\n self.updatedAt = Date.now();\n\n setValues(\n normalizeApiResponseData(json.data),\n json.ok\n ? {\n __saved: Date.now()\n }\n : undefined,\n !!(api as ApiObject).replaceData\n );\n }\n\n if (!json.ok) {\n // 验证错误\n if (json.status === 422 && json.errors) {\n setFormItemErrors(json.errors);\n\n self.updateMessage(\n json.msg ??\n self.__(options && options.errorMessage) ??\n self.__('Form.validateFailed'),\n true\n );\n } else {\n self.updateMessage(\n json.msg ?? self.__(options && options.errorMessage),\n true\n );\n }\n\n throw new ServerError(self.msg, json);\n } else {\n updateSavedData();\n if (options && options.onSuccess) {\n const ret = options.onSuccess(json);\n\n if (ret && ret.then) {\n yield ret;\n }\n }\n self.markSaving(false);\n self.updateMessage(\n json.msg ?? self.__(options && options.successMessage)\n );\n self.msg &&\n getEnv(self).notify(\n 'success',\n self.msg,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n return json.data;\n }\n } catch (e) {\n self.markSaving(false);\n\n if (!isAlive(self) || self.disposed) {\n return;\n }\n\n if (e.type === 'ServerError') {\n const result = (e as ServerError).response;\n getEnv(self).notify(\n 'error',\n e.message,\n result.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: result.msgTimeout\n }\n : undefined\n );\n } else {\n getEnv(self).notify('error', e.message);\n }\n\n throw e;\n }\n });\n\n function setFormItemErrors(\n errors: {[propName: string]: string},\n tag = 'remote'\n ) {\n Object.keys(errors).forEach((key: string) => {\n const item = self.getItemById(key);\n const items = self.getItemsByName(key);\n\n if (item) {\n item.setError(errors[key], tag);\n delete errors[key];\n } else if (items.length) {\n // 通过 name 直接找到的\n items.forEach(item => item.setError(errors[key], tag));\n delete errors[key];\n } else {\n // 尝试通过path寻找\n const items = getItemsByPath(key);\n\n if (Array.isArray(items) && items.length) {\n items.forEach(item => item.setError(`${errors[key]}`, tag));\n delete errors[key];\n }\n }\n });\n\n // 没有映射上的error信息加在msg后显示出来\n !isEmpty(errors) &&\n setRestError(Object.keys(errors).map(key => String(errors[key])));\n }\n\n const getItemsByPath = (key: string) => {\n const paths = keyToPath(key);\n const len = paths.length;\n\n return paths.reduce(\n (stores: any[], path, idx) => {\n if (Array.isArray(stores) && stores.every(s => s.getItemsByName)) {\n const items = flatten(\n stores.map(s => s.getItemsByName(path))\n ).filter(i => i);\n const subStores = items\n .map(item => item?.getSubStore?.())\n .filter(i => i);\n return subStores.length && idx < len - 1 ? subStores : items;\n }\n return null;\n },\n [self]\n );\n };\n\n const submit: (\n fn?: (values: object) => Promise<any>,\n hooks?: Array<() => Promise<any>>,\n failedMessage?: string\n ) => Promise<any> = flow(function* submit(\n fn: any,\n hooks?: Array<() => Promise<any>>,\n failedMessage?: string\n ) {\n self.submited = true;\n self.submiting = true;\n\n try {\n let valid = yield validate(hooks);\n\n // 如果不是valid,而且有包含不是remote的报错的表单项时,不可提交\n if (\n (!valid &&\n self.items.some(item =>\n item.errorData.some(e => e.tag !== 'remote')\n )) ||\n self.restError.length\n ) {\n let msg = failedMessage ?? self.__('Form.validateFailed');\n const env = getEnv(self);\n\n msg && env.notify('error', msg);\n\n throw new Error(msg);\n }\n\n if (fn) {\n const diff = difference(self.data, self.pristine);\n const result = yield fn(\n createObject(\n createObject(self.data.__super, {\n diff: diff,\n __diff: diff,\n pristine: self.pristine\n }),\n self.data\n )\n );\n return result ?? self.data;\n }\n\n return self.data;\n } finally {\n self.submiting = false;\n }\n });\n\n const validate: (\n hooks?: Array<() => Promise<any>>,\n forceValidate?: boolean\n ) => Promise<boolean> = flow(function* validate(\n hooks?: Array<() => Promise<any>>,\n forceValidate?: boolean\n ) {\n self.validated = true;\n const items = self.items.concat();\n for (let i = 0, len = items.length; i < len; i++) {\n let item = items[i] as IFormItemStore;\n\n // 先清除组合校验的错误\n item.clearError('rules');\n\n // 验证过,或者是 unique 的表单项,或者强制验证,或者有远端校验api\n if (\n !item.validated ||\n item.unique ||\n forceValidate ||\n !!item.validateApi\n ) {\n yield item.validate(self.data);\n }\n }\n\n if (hooks && hooks.length) {\n for (let i = 0, len = hooks.length; i < len; i++) {\n yield hooks[i]();\n }\n }\n\n return self.valid;\n });\n\n const validateFields: (fields: Array<string>) => Promise<boolean> = flow(\n function* validateFields(fields: Array<string>) {\n const items = self.items.concat();\n let result: Array<boolean> = [];\n for (let i = 0, len = items.length; i < len; i++) {\n let item = items[i] as IFormItemStore;\n\n if (~fields.indexOf(item.name)) {\n result.push(yield item.validate(self.data));\n }\n }\n return result.every(item => item);\n }\n );\n\n function clearErrors() {\n const items = self.items.concat();\n items.forEach(item => item.reset());\n }\n\n function reset(cb?: (data: any) => void, resetData: boolean = true) {\n if (resetData) {\n self.data = self.pristine;\n }\n\n // 值可能变了,重新验证一次。\n self.validated = false;\n self.submited = false;\n self.items.forEach(item => item.reset());\n cb && cb(self.data);\n }\n\n function clear(cb?: (data: any) => void) {\n const toClear: any = {};\n self.items.forEach(item => {\n if (item.name && item.type !== 'hidden') {\n setVariable(toClear, item.name, item.resetValue);\n }\n });\n setValues(toClear);\n self.validated = false;\n self.submited = false;\n self.items.forEach(item => item.reset());\n cb && cb(self.data);\n }\n\n function setCanAccessSuperData(value: boolean = true) {\n self.canAccessSuperData = value;\n }\n\n function setInited(value: boolean) {\n self.inited = value;\n }\n\n function setPersistData(value = '') {\n self.persistData = value;\n }\n\n const setLocalPersistData = () => {\n localStorage.setItem(self.persistKey, JSON.stringify(self.data));\n };\n\n function getLocalPersistData() {\n let data = localStorage.getItem(self.persistKey);\n if (data) {\n self.updateData(JSON.parse(data));\n }\n }\n\n function clearLocalPersistData() {\n localStorage.removeItem(self.persistKey);\n }\n\n function updateSavedData() {\n self.savedData = self.data;\n }\n\n return {\n setInited,\n setValues,\n setValueByName,\n trimValues,\n submit,\n validate,\n validateFields,\n clearErrors,\n saveRemote,\n reset,\n syncOptions,\n setCanAccessSuperData,\n deleteValueByName,\n getLocalPersistData,\n setLocalPersistData,\n clearLocalPersistData,\n setPersistData,\n clear,\n updateSavedData,\n setFormItemErrors,\n getItemsByPath,\n setRestError,\n addRestError,\n clearRestError,\n beforeDestroy() {\n syncOptions.cancel();\n }\n };\n });\n\nexport type IFormStore = Instance<typeof FormStore>;\nexport {IFormItemStore};\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/store/table.js
CHANGED