amis 1.6.5-beta.4 → 1.8.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/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/Avatar.d.ts +20 -20
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/DatePicker.d.ts +3 -0
- package/lib/components/DatePicker.js +41 -7
- package/lib/components/DatePicker.js.map +2 -2
- 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/Progress.js +12 -9
- package/lib/components/Progress.js.map +2 -2
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Tabs.d.ts +27 -23
- package/lib/components/Tabs.js +37 -22
- 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/calendar/Calendar.js +16 -12
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +3 -1
- package/lib/components/formula/Editor.js +20 -2
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +5 -0
- package/lib/components/formula/Picker.js +19 -4
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.js +2 -2
- package/lib/factory.js.map +2 -2
- package/lib/icons/trash.js +10 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/renderers/Action.d.ts +1 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/Dialog.d.ts +4 -0
- package/lib/renderers/Dialog.js +4 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +2 -0
- package/lib/renderers/DropDownButton.js +13 -4
- package/lib/renderers/DropDownButton.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/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 +4 -1
- package/lib/renderers/Form/InputFile.js +9 -0
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +4 -0
- package/lib/renderers/Form/InputFormula.js +2 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +4 -1
- package/lib/renderers/Form/InputImage.js +12 -2
- 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/InputTable.js +4 -2
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/Select.js +3 -1
- 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/Page.js +2 -3
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/PopOver.js +1 -1
- package/lib/renderers/PopOver.js.map +2 -2
- package/lib/renderers/Progress.d.ts +1 -1
- package/lib/renderers/Progress.js +1 -1
- package/lib/renderers/Progress.js.map +2 -2
- package/lib/renderers/Table/TableRow.js +1 -1
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +10 -2
- package/lib/renderers/Tabs.js +3 -3
- 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/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +242 -46
- package/lib/themes/ang.css +250 -41
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +242 -46
- package/lib/themes/antd.css +250 -41
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +231 -35
- package/lib/themes/cxd.css +252 -42
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +242 -46
- package/lib/themes/dark.css +250 -41
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +231 -35
- package/lib/themes/default.css +252 -42
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +15871 -608
- package/scss/_properties.scss +23 -12
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_city-area.scss +2 -0
- package/scss/components/_formula.scss +18 -0
- package/scss/components/_popup.scss +13 -3
- package/scss/components/_progress.scss +3 -8
- package/scss/components/_tabs.scss +145 -13
- package/scss/components/_tooltip.scss +72 -0
- package/scss/components/form/_date.scss +13 -0
- package/scss/components/form/_number.scss +2 -0
- package/scss/components/form/_switch.scss +1 -3
- package/scss/themes/_cxd-variables.scss +2 -1
- package/sdk/ang-ie11.css +287 -48
- package/sdk/ang.css +295 -43
- package/sdk/antd-ie11.css +287 -48
- package/sdk/antd.css +295 -43
- 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 +276 -37
- package/sdk/cxd.css +297 -44
- package/sdk/dark-ie11.css +287 -48
- package/sdk/dark.css +295 -43
- 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 +276 -37
- package/sdk/sdk.css +297 -44
- package/sdk/sdk.js +1251 -1247
- 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/CityArea.tsx +3 -0
- package/src/components/DatePicker.tsx +56 -18
- package/src/components/PopUp.tsx +6 -5
- package/src/components/Progress.tsx +8 -12
- package/src/components/Range.tsx +7 -1
- package/src/components/Tabs.tsx +51 -21
- package/src/components/TooltipWrapper.tsx +4 -1
- package/src/components/calendar/Calendar.tsx +17 -12
- package/src/components/formula/Editor.tsx +34 -3
- package/src/components/formula/Picker.tsx +28 -1
- package/src/components/icons.tsx +2 -0
- package/src/factory.tsx +2 -2
- package/src/icons/trash.svg +8 -0
- package/src/index.tsx +1 -0
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/Dialog.tsx +17 -3
- package/src/renderers/DropDownButton.tsx +14 -3
- 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 +13 -1
- package/src/renderers/Form/InputFormula.tsx +7 -0
- package/src/renderers/Form/InputImage.tsx +32 -12
- package/src/renderers/Form/InputRange.tsx +95 -40
- package/src/renderers/Form/InputTable.tsx +6 -2
- package/src/renderers/Form/Select.tsx +2 -0
- package/src/renderers/Form/Switch.tsx +16 -9
- package/src/renderers/Log.tsx +2 -1
- package/src/renderers/Page.tsx +1 -2
- package/src/renderers/PopOver.tsx +1 -1
- package/src/renderers/Progress.tsx +2 -2
- package/src/renderers/Table/TableRow.tsx +1 -1
- package/src/renderers/Tabs.tsx +16 -4
- package/src/renderers/TooltipWrapper.tsx +219 -0
- package/src/renderers/Video.tsx +21 -6
- 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/table.js
CHANGED
@@ -664,7 +664,7 @@ exports.TableStore = iRenderer_1.iRendererStore
|
|
664
664
|
return {
|
665
665
|
// id: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),
|
666
666
|
id: String(id),
|
667
|
-
parentId: parentId,
|
667
|
+
parentId: String(parentId),
|
668
668
|
key: String("".concat(pindex, "-").concat(depth, "-").concat(index)),
|
669
669
|
path: "".concat(path).concat(index),
|
670
670
|
depth: depth,
|