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.
Files changed (238) hide show
  1. package/lib/Schema.d.ts +3 -2
  2. package/lib/Schema.js +0 -1
  3. package/lib/Schema.js.map +2 -2
  4. package/lib/components/Alert2.js +4 -2
  5. package/lib/components/Alert2.js.map +2 -2
  6. package/lib/components/AssociatedSelection.d.ts +84 -84
  7. package/lib/components/Avatar.d.ts +20 -20
  8. package/lib/components/Breadcrumb.d.ts +130 -0
  9. package/lib/components/Breadcrumb.js +161 -0
  10. package/lib/components/Breadcrumb.js.map +13 -0
  11. package/lib/components/Card.d.ts +20 -20
  12. package/lib/components/ChainedSelection.d.ts +84 -84
  13. package/lib/components/CityArea.js +3 -0
  14. package/lib/components/CityArea.js.map +2 -2
  15. package/lib/components/Collapse.d.ts +20 -20
  16. package/lib/components/CollapseGroup.d.ts +20 -20
  17. package/lib/components/DatePicker.d.ts +84 -84
  18. package/lib/components/DateRangePicker.d.ts +2 -2
  19. package/lib/components/DateRangePicker.js +36 -45
  20. package/lib/components/DateRangePicker.js.map +2 -2
  21. package/lib/components/GroupedSelection.d.ts +84 -84
  22. package/lib/components/Layout.d.ts +21 -21
  23. package/lib/components/ListGroup.d.ts +21 -21
  24. package/lib/components/PopUp.js +2 -1
  25. package/lib/components/PopUp.js.map +2 -2
  26. package/lib/components/Radios.d.ts +21 -21
  27. package/lib/components/Range.js.map +2 -2
  28. package/lib/components/Selection.d.ts +84 -84
  29. package/lib/components/TableSelection.d.ts +84 -84
  30. package/lib/components/Tabs.d.ts +52 -23
  31. package/lib/components/Tabs.js +198 -46
  32. package/lib/components/Tabs.js.map +2 -2
  33. package/lib/components/TooltipWrapper.d.ts +21 -20
  34. package/lib/components/TooltipWrapper.js +2 -2
  35. package/lib/components/TooltipWrapper.js.map +2 -2
  36. package/lib/components/Transfer.d.ts +84 -84
  37. package/lib/components/TransferDropDown.d.ts +84 -84
  38. package/lib/components/Tree.d.ts +84 -84
  39. package/lib/components/TreeSelection.d.ts +84 -84
  40. package/lib/components/calendar/Calendar.js +5 -0
  41. package/lib/components/calendar/Calendar.js.map +2 -2
  42. package/lib/components/calendar/DaysView.js.map +1 -1
  43. package/lib/components/icons.js +8 -0
  44. package/lib/components/icons.js.map +2 -2
  45. package/lib/components/index.d.ts +2 -1
  46. package/lib/components/index.js +4 -2
  47. package/lib/components/index.js.map +2 -2
  48. package/lib/icons/cloud-upload.js +17 -0
  49. package/lib/icons/image.js +7 -0
  50. package/lib/icons/refresh.js +9 -0
  51. package/lib/icons/trash.js +10 -0
  52. package/lib/icons/upload.js +3 -8
  53. package/lib/index.d.ts +1 -0
  54. package/lib/index.js +2 -1
  55. package/lib/index.js.map +2 -2
  56. package/lib/locale/en-US.js +3 -1
  57. package/lib/locale/en-US.js.map +2 -2
  58. package/lib/locale/zh-CN.js +4 -2
  59. package/lib/locale/zh-CN.js.map +2 -2
  60. package/lib/renderers/Action.d.ts +1 -1
  61. package/lib/renderers/Action.js.map +2 -2
  62. package/lib/renderers/Breadcrumb.d.ts +41 -6
  63. package/lib/renderers/Breadcrumb.js +23 -19
  64. package/lib/renderers/Breadcrumb.js.map +2 -2
  65. package/lib/renderers/ButtonGroup.d.ts +2 -2
  66. package/lib/renderers/ButtonGroup.js.map +1 -1
  67. package/lib/renderers/Form/ChainedSelect.d.ts +4 -1
  68. package/lib/renderers/Form/ChainedSelect.js +83 -34
  69. package/lib/renderers/Form/ChainedSelect.js.map +2 -2
  70. package/lib/renderers/Form/Checkbox.d.ts +3 -0
  71. package/lib/renderers/Form/Checkbox.js +38 -1
  72. package/lib/renderers/Form/Checkbox.js.map +2 -2
  73. package/lib/renderers/Form/Combo.d.ts +4 -3
  74. package/lib/renderers/Form/Combo.js +81 -32
  75. package/lib/renderers/Form/Combo.js.map +2 -2
  76. package/lib/renderers/Form/DiffEditor.d.ts +1 -1
  77. package/lib/renderers/Form/InputCity.d.ts +84 -84
  78. package/lib/renderers/Form/InputCity.js +4 -1
  79. package/lib/renderers/Form/InputCity.js.map +2 -2
  80. package/lib/renderers/Form/InputColor.js +3 -1
  81. package/lib/renderers/Form/InputColor.js.map +2 -2
  82. package/lib/renderers/Form/InputDate.js +3 -1
  83. package/lib/renderers/Form/InputDate.js.map +2 -2
  84. package/lib/renderers/Form/InputDateRange.js +3 -1
  85. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  86. package/lib/renderers/Form/InputExcel.d.ts +4 -0
  87. package/lib/renderers/Form/InputExcel.js +33 -6
  88. package/lib/renderers/Form/InputExcel.js.map +2 -2
  89. package/lib/renderers/Form/InputFile.d.ts +8 -1
  90. package/lib/renderers/Form/InputFile.js +71 -42
  91. package/lib/renderers/Form/InputFile.js.map +2 -2
  92. package/lib/renderers/Form/InputImage.d.ts +4 -1
  93. package/lib/renderers/Form/InputImage.js +21 -9
  94. package/lib/renderers/Form/InputImage.js.map +2 -2
  95. package/lib/renderers/Form/InputRange.d.ts +27 -9
  96. package/lib/renderers/Form/InputRange.js +88 -23
  97. package/lib/renderers/Form/InputRange.js.map +2 -2
  98. package/lib/renderers/Form/InputSubForm.js +2 -1
  99. package/lib/renderers/Form/InputSubForm.js.map +2 -2
  100. package/lib/renderers/Form/InputTag.js +2 -1
  101. package/lib/renderers/Form/InputTag.js.map +2 -2
  102. package/lib/renderers/Form/MatrixCheckboxes.js +2 -1
  103. package/lib/renderers/Form/MatrixCheckboxes.js.map +2 -2
  104. package/lib/renderers/Form/NestedSelect.d.ts +9 -6
  105. package/lib/renderers/Form/NestedSelect.js +247 -130
  106. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  107. package/lib/renderers/Form/Options.js +2 -1
  108. package/lib/renderers/Form/Options.js.map +2 -2
  109. package/lib/renderers/Form/Radios.js +2 -1
  110. package/lib/renderers/Form/Radios.js.map +2 -2
  111. package/lib/renderers/Form/Select.js +6 -3
  112. package/lib/renderers/Form/Select.js.map +2 -2
  113. package/lib/renderers/Form/Switch.d.ts +7 -6
  114. package/lib/renderers/Form/Switch.js +4 -1
  115. package/lib/renderers/Form/Switch.js.map +2 -2
  116. package/lib/renderers/Log.js +2 -1
  117. package/lib/renderers/Log.js.map +2 -2
  118. package/lib/renderers/PopOver.js +1 -1
  119. package/lib/renderers/PopOver.js.map +2 -2
  120. package/lib/renderers/Tabs.d.ts +58 -5
  121. package/lib/renderers/Tabs.js +170 -58
  122. package/lib/renderers/Tabs.js.map +2 -2
  123. package/lib/renderers/TooltipWrapper.d.ts +104 -0
  124. package/lib/renderers/TooltipWrapper.js +59 -0
  125. package/lib/renderers/TooltipWrapper.js.map +13 -0
  126. package/lib/renderers/Video.d.ts +6 -0
  127. package/lib/renderers/Video.js +13 -6
  128. package/lib/renderers/Video.js.map +2 -2
  129. package/lib/store/form.js +4 -13
  130. package/lib/store/form.js.map +2 -2
  131. package/lib/store/table.js +1 -1
  132. package/lib/store/table.js.map +2 -2
  133. package/lib/themes/ang-ie11.css +742 -160
  134. package/lib/themes/ang.css +793 -163
  135. package/lib/themes/ang.css.map +1 -1
  136. package/lib/themes/antd-ie11.css +757 -175
  137. package/lib/themes/antd.css +793 -163
  138. package/lib/themes/antd.css.map +1 -1
  139. package/lib/themes/cxd-ie11.css +1249 -667
  140. package/lib/themes/cxd.css +970 -321
  141. package/lib/themes/cxd.css.map +1 -1
  142. package/lib/themes/dark-ie11.css +742 -160
  143. package/lib/themes/dark.css +793 -163
  144. package/lib/themes/dark.css.map +1 -1
  145. package/lib/themes/default-ie11.css +1249 -667
  146. package/lib/themes/default.css +970 -321
  147. package/lib/themes/default.css.map +1 -1
  148. package/package.json +1 -1
  149. package/schema.json +16012 -736
  150. package/scss/_properties.scss +56 -2
  151. package/scss/components/_alert.scss +1 -1
  152. package/scss/components/_breadcrumb.scss +90 -1
  153. package/scss/components/_button-group.scss +15 -0
  154. package/scss/components/_city-area.scss +2 -0
  155. package/scss/components/_popup.scss +13 -3
  156. package/scss/components/_tabs.scss +629 -132
  157. package/scss/components/_tooltip.scss +72 -0
  158. package/scss/components/form/_file.scss +82 -24
  159. package/scss/components/form/_image.scss +30 -25
  160. package/scss/components/form/_number.scss +2 -0
  161. package/scss/components/form/_switch.scss +1 -3
  162. package/scss/themes/_cxd-colors.scss +47 -47
  163. package/scss/themes/_cxd-variables.scss +20 -0
  164. package/sdk/ang-ie11.css +879 -196
  165. package/sdk/ang.css +931 -200
  166. package/sdk/antd-ie11.css +951 -268
  167. package/sdk/antd.css +931 -200
  168. package/sdk/barcode.js +51 -51
  169. package/sdk/charts.js +14 -14
  170. package/sdk/codemirror.js +7 -7
  171. package/sdk/color-picker.js +65 -65
  172. package/sdk/cropperjs.js +2 -2
  173. package/sdk/cxd-ie11.css +1386 -703
  174. package/sdk/cxd.css +1107 -357
  175. package/sdk/dark-ie11.css +879 -196
  176. package/sdk/dark.css +931 -200
  177. package/sdk/exceljs.js +1 -1
  178. package/sdk/markdown.js +69 -69
  179. package/sdk/papaparse.js +1 -1
  180. package/sdk/renderers/Form/CityDB.js +1 -1
  181. package/sdk/rest.js +17 -17
  182. package/sdk/rich-text.js +62 -62
  183. package/sdk/sdk-ie11.css +1386 -703
  184. package/sdk/sdk.css +1107 -357
  185. package/sdk/sdk.js +1260 -1248
  186. package/sdk/thirds/hls.js/hls.js +1 -1
  187. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  188. package/sdk/tinymce.js +57 -57
  189. package/src/Schema.ts +5 -2
  190. package/src/components/Alert2.tsx +9 -3
  191. package/src/components/Breadcrumb.tsx +294 -0
  192. package/src/components/CityArea.tsx +3 -0
  193. package/src/components/DateRangePicker.tsx +40 -68
  194. package/src/components/PopUp.tsx +6 -5
  195. package/src/components/Range.tsx +7 -1
  196. package/src/components/Tabs.tsx +300 -54
  197. package/src/components/TooltipWrapper.tsx +4 -1
  198. package/src/components/calendar/Calendar.tsx +5 -0
  199. package/src/components/calendar/DaysView.tsx +2 -2
  200. package/src/components/icons.tsx +8 -0
  201. package/src/components/index.tsx +2 -0
  202. package/src/icons/cloud-upload.svg +22 -0
  203. package/src/icons/image.svg +1 -0
  204. package/src/icons/refresh.svg +7 -0
  205. package/src/icons/trash.svg +8 -0
  206. package/src/icons/upload.svg +4 -9
  207. package/src/index.tsx +1 -0
  208. package/src/locale/en-US.ts +3 -1
  209. package/src/locale/zh-CN.ts +4 -2
  210. package/src/renderers/Action.tsx +2 -1
  211. package/src/renderers/Breadcrumb.tsx +89 -45
  212. package/src/renderers/ButtonGroup.tsx +2 -2
  213. package/src/renderers/Form/ChainedSelect.tsx +56 -12
  214. package/src/renderers/Form/Checkbox.tsx +30 -1
  215. package/src/renderers/Form/Combo.tsx +84 -26
  216. package/src/renderers/Form/InputCity.tsx +13 -1
  217. package/src/renderers/Form/InputColor.tsx +2 -0
  218. package/src/renderers/Form/InputDate.tsx +2 -0
  219. package/src/renderers/Form/InputDateRange.tsx +2 -0
  220. package/src/renderers/Form/InputExcel.tsx +27 -5
  221. package/src/renderers/Form/InputFile.tsx +167 -115
  222. package/src/renderers/Form/InputImage.tsx +61 -35
  223. package/src/renderers/Form/InputRange.tsx +95 -40
  224. package/src/renderers/Form/InputSubForm.tsx +2 -1
  225. package/src/renderers/Form/InputTag.tsx +3 -1
  226. package/src/renderers/Form/MatrixCheckboxes.tsx +3 -1
  227. package/src/renderers/Form/NestedSelect.tsx +75 -26
  228. package/src/renderers/Form/Options.tsx +3 -1
  229. package/src/renderers/Form/Radios.tsx +3 -1
  230. package/src/renderers/Form/Select.tsx +6 -2
  231. package/src/renderers/Form/Switch.tsx +16 -9
  232. package/src/renderers/Log.tsx +2 -1
  233. package/src/renderers/PopOver.tsx +1 -1
  234. package/src/renderers/Tabs.tsx +254 -93
  235. package/src/renderers/TooltipWrapper.tsx +219 -0
  236. package/src/renderers/Video.tsx +21 -6
  237. package/src/store/form.ts +0 -9
  238. 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
+ }
@@ -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;
@@ -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-xxs", key: i },
344
- react_1.default.createElement("div", { className: "".concat(ns, "Hbox ").concat(ns, "Video-frameItem") },
345
- items.map(function (item, key) { return (react_1.default.createElement("div", { className: "".concat(ns, "Hbox-col Wrapper--xxs ").concat(ns, "Video-frame"), key: key, onClick: function () {
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: "".concat(ns, "Video-frameLabel") }, item.time))); }),
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: "".concat(ns, "Hbox-col Wrapper--xxs"), key: "blank_".concat(index) })); })
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: "".concat(ns, "Video-cursor") })) : null));
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, msg_1, env, diff, result;
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
- msg_1 = failedMessage !== null && failedMessage !== void 0 ? failedMessage : self.__('Form.validateFailed');
366
+ msg = failedMessage !== null && failedMessage !== void 0 ? failedMessage : self.__('Form.validateFailed');
367
367
  env = (0, mobx_state_tree_1.getEnv)(self);
368
- // 同时也列出所有表单项报错,方便在很长的表单中知道是哪个字段的问题
369
- // 支持在env中配hideValidateFailedDetail来隐藏所有表单项报错
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);
@@ -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
  }
@@ -102,7 +102,7 @@ exports.Row = mobx_state_tree_1.types
102
102
  return false;
103
103
  },
104
104
  get expanded() {
105
- return !this.collapsed;
105
+ return !this.collapsed && self.children.length > 0;
106
106
  },
107
107
  get moved() {
108
108
  return self.index !== self.newIndex;