@vtx/player 0.0.30 → 1.0.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 (113) hide show
  1. package/lib/api/index.d.ts +8 -0
  2. package/lib/api/index.js +43 -3
  3. package/lib/api/index.js.map +1 -1
  4. package/lib/api/types.d.ts +41 -4
  5. package/lib/components/set-tag-video/index.d.ts +9 -0
  6. package/lib/components/set-tag-video/index.js +196 -0
  7. package/lib/components/set-tag-video/index.js.map +1 -0
  8. package/lib/components/set-tag-video/style/css.js +4 -0
  9. package/lib/components/set-tag-video/style/css.js.map +1 -0
  10. package/lib/components/set-tag-video/style/index.css +104 -0
  11. package/lib/components/set-tag-video/style/index.d.ts +1 -0
  12. package/lib/components/set-tag-video/style/index.js +4 -0
  13. package/lib/components/set-tag-video/style/index.js.map +1 -0
  14. package/lib/components/set-tag-video/style/index.less +125 -0
  15. package/lib/components/split-screen/index.d.ts +11 -0
  16. package/lib/components/split-screen/index.js +203 -0
  17. package/lib/components/split-screen/index.js.map +1 -0
  18. package/lib/components/split-screen/style/css.js +4 -0
  19. package/lib/components/split-screen/style/css.js.map +1 -0
  20. package/lib/components/split-screen/style/index.css +21 -0
  21. package/lib/components/split-screen/style/index.d.ts +1 -0
  22. package/lib/components/split-screen/style/index.js +4 -0
  23. package/lib/components/split-screen/style/index.js.map +1 -0
  24. package/lib/components/split-screen/style/index.less +21 -0
  25. package/lib/components/tag-video/images/play.gif +0 -0
  26. package/lib/components/tag-video/index.d.ts +7 -0
  27. package/lib/components/tag-video/index.js +171 -0
  28. package/lib/components/tag-video/index.js.map +1 -0
  29. package/lib/components/tag-video/style/css.js +4 -0
  30. package/lib/components/tag-video/style/css.js.map +1 -0
  31. package/lib/components/tag-video/style/index.css +73 -0
  32. package/lib/components/tag-video/style/index.d.ts +1 -0
  33. package/lib/components/tag-video/style/index.js +4 -0
  34. package/lib/components/tag-video/style/index.js.map +1 -0
  35. package/lib/components/tag-video/style/index.less +69 -0
  36. package/lib/components/video-scale/index.d.ts +9 -0
  37. package/lib/components/video-scale/index.js +65 -0
  38. package/lib/components/video-scale/index.js.map +1 -0
  39. package/lib/components/video-scale/style/css.js +4 -0
  40. package/lib/components/video-scale/style/css.js.map +1 -0
  41. package/lib/components/video-scale/style/index.css +30 -0
  42. package/lib/components/video-scale/style/index.d.ts +1 -0
  43. package/lib/components/video-scale/style/index.js +4 -0
  44. package/lib/components/video-scale/style/index.js.map +1 -0
  45. package/lib/components/video-scale/style/index.less +31 -0
  46. package/lib/controls/index.d.ts +2 -0
  47. package/lib/controls/index.js +5 -3
  48. package/lib/controls/index.js.map +1 -1
  49. package/lib/controls/style/index.css +1 -0
  50. package/lib/controls/style/index.less +1 -0
  51. package/lib/history-control/index.js +5 -1
  52. package/lib/history-control/index.js.map +1 -1
  53. package/lib/history-control/style/index.css +1 -0
  54. package/lib/history-control/style/index.less +1 -0
  55. package/lib/history-control-v2/components/grid-item/index.d.ts +21 -0
  56. package/lib/history-control-v2/components/grid-item/index.js +207 -0
  57. package/lib/history-control-v2/components/grid-item/index.js.map +1 -0
  58. package/lib/history-control-v2/components/panel/index.d.ts +9 -0
  59. package/lib/history-control-v2/components/panel/index.js +477 -0
  60. package/lib/history-control-v2/components/panel/index.js.map +1 -0
  61. package/lib/history-control-v2/context.d.ts +17 -0
  62. package/lib/history-control-v2/context.js +12 -0
  63. package/lib/history-control-v2/context.js.map +1 -0
  64. package/lib/history-control-v2/images/collapse.png +0 -0
  65. package/lib/history-control-v2/images/empty.png +0 -0
  66. package/lib/history-control-v2/index.d.ts +11 -0
  67. package/lib/history-control-v2/index.js +418 -0
  68. package/lib/history-control-v2/index.js.map +1 -0
  69. package/lib/history-control-v2/interface.d.ts +137 -0
  70. package/lib/history-control-v2/style/css.js +24 -0
  71. package/lib/history-control-v2/style/css.js.map +1 -0
  72. package/lib/history-control-v2/style/index.css +435 -0
  73. package/lib/history-control-v2/style/index.d.ts +11 -0
  74. package/lib/history-control-v2/style/index.js +24 -0
  75. package/lib/history-control-v2/style/index.js.map +1 -0
  76. package/lib/history-control-v2/style/index.less +437 -0
  77. package/lib/history-control-v2/utils.d.ts +19 -0
  78. package/lib/history-control-v2/utils.js +132 -0
  79. package/lib/history-control-v2/utils.js.map +1 -0
  80. package/lib/history-player/index.d.ts +11 -3
  81. package/lib/history-player/index.js +99 -32
  82. package/lib/history-player/index.js.map +1 -1
  83. package/lib/icons/index.css +4 -0
  84. package/lib/icons/index.d.ts +29 -0
  85. package/lib/icons/index.js +1393 -19
  86. package/lib/icons/index.js.map +1 -1
  87. package/lib/icons/index.less +6 -0
  88. package/lib/index.d.ts +2 -0
  89. package/lib/index.js +16 -0
  90. package/lib/index.js.map +1 -1
  91. package/lib/live-control/index.js +5 -2
  92. package/lib/live-control/index.js.map +1 -1
  93. package/lib/live-control-v2/images/empty.png +0 -0
  94. package/lib/live-control-v2/index.d.ts +55 -0
  95. package/lib/live-control-v2/index.js +529 -0
  96. package/lib/live-control-v2/index.js.map +1 -0
  97. package/lib/live-control-v2/style/css.js +18 -0
  98. package/lib/live-control-v2/style/css.js.map +1 -0
  99. package/lib/live-control-v2/style/index.css +217 -0
  100. package/lib/live-control-v2/style/index.d.ts +8 -0
  101. package/lib/live-control-v2/style/index.js +18 -0
  102. package/lib/live-control-v2/style/index.js.map +1 -0
  103. package/lib/live-control-v2/style/index.less +192 -0
  104. package/lib/live-player/index.d.ts +1 -1
  105. package/lib/live-player/index.js +7 -2
  106. package/lib/live-player/index.js.map +1 -1
  107. package/lib/player/index.js +14 -3
  108. package/lib/player/index.js.map +1 -1
  109. package/lib/typings/h5player.d.ts +10 -8
  110. package/lib/utils/index.d.ts +17 -0
  111. package/lib/utils/index.js +20 -1
  112. package/lib/utils/index.js.map +1 -1
  113. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DEFAULT_PLAY_PARAMS","index","url","enableAgent","startTime","endTime","HistoryControl","forwardRef","props","ref","width","height","onExpandChange","onTimeChange","showInfo","onVideoClose","info","isDark","segmentsRef","useRef","useRequest","getHistoryUrl","manual","runAsync","loading","useCollapse","defaultExpanded","getCollapseProps","getToggleProps","isExpanded","useSetState","expand","name","tableData","segmentData","list","totalUrl","timeLinePosition","playParams","state","setState","useImperativeHandle","load","channel","JSON","stringify","useEffect","then","result","_a","_b","_c","_d","Array","isArray","getUrlTableData","start","moment","beginTime","startOf","end","endOf","map","item","Object","assign","deviceName","channelName","totalTimeUrl","message","handleExpand","handleClose","undefined","columns","title","dataIndex","key","render","_","record","active","_jsx","Button","className","onClick","children","_jsxs","_Fragment","VideoCloseIcon","VideoPlayIcon","handleTimeChange","time","speed","progress","diff","getRef","current","style","backgroundColor","PlayerHeader","onClose","Spin","spinning","size","HistoryPlayer","controlBottom","length","src","collapseBtnImg","alt","transform","TimeVerticalLine","history","getSegments","TimePositionIcon","left","TimeLine","Table","dataSource","scroll","y","pagination","rowClassName","Space","align","Tooltip","FoldIcon","ExpandIcon","displayName","getSplitLines","step","i","element","push","total","itemStart","itemEnd","itemTotal","ONEDAY_MILL","mouse","useMouse","elementX","elementY","elementW","elementH","visible","percent","valueOf","format","TimeFormat","params","flag","playStart","playEnd","now","begin","playbackUrl","playUrl"],"sources":["history-control/index.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport useCollapse from 'react-collapsed';\nimport { getHistoryUrl } from '../api';\nimport { PlayerHeader } from '../controls';\nimport HistoryPlayer from '../history-player';\nimport { ExpandIcon, FoldIcon, TimePositionIcon, VideoCloseIcon, VideoPlayIcon } from '../icons';\nimport { TimeFormat, getUrlTableData } from '../utils';\nimport { useMouse, useRequest, useSetState } from 'ahooks';\n// import { Button, Space, Table, Tooltip } from 'antd';\nimport Button from 'antd/lib/button';\nimport message from 'antd/lib/message';\nimport Space from 'antd/lib/space';\nimport Spin from 'antd/lib/spin';\nimport Table from 'antd/lib/table';\nimport Tooltip from 'antd/lib/tooltip';\nimport moment from 'moment';\nimport collapseBtnImg from './images/collapse.png';\n/** 默认播放器参数 */\nconst DEFAULT_PLAY_PARAMS = {\n index: -1,\n url: '',\n enableAgent: false,\n startTime: '',\n endTime: '',\n};\n/**\n * 历史视频控制器\n */\nexport const HistoryControl = forwardRef((props, ref) => {\n const { width = '100%', height = '100%', onExpandChange, onTimeChange, showInfo = false, onVideoClose, info = [], isDark = false } = props;\n const segmentsRef = useRef(null);\n const { runAsync, loading } = useRequest(getHistoryUrl, {\n manual: true,\n });\n const { getCollapseProps, getToggleProps, isExpanded } = useCollapse({\n defaultExpanded: true, // 默认展开\n });\n const [state, setState] = useSetState({\n expand: true,\n name: '',\n tableData: [],\n segmentData: { list: [] },\n totalUrl: '',\n timeLinePosition: -1,\n playParams: DEFAULT_PLAY_PARAMS,\n });\n useImperativeHandle(ref, () => {\n return {\n load: (channel) => {\n if (JSON.stringify(channel) !== JSON.stringify(state.channel)) {\n setState({ channel, timeLinePosition: -1 });\n }\n },\n };\n });\n useEffect(() => {\n if (state.channel) {\n runAsync(state.channel).then((result) => {\n var _a, _b, _c, _d;\n // 如果没有list,只有url,则直接播放url\n if (Array.isArray(result.list)) {\n const tableData = getUrlTableData(result);\n const segmentData = {\n list: result.list,\n start: moment((_a = state.channel) === null || _a === void 0 ? void 0 : _a.beginTime).startOf('day'),\n end: moment((_b = state.channel) === null || _b === void 0 ? void 0 : _b.endTime).endOf('day'),\n };\n setState({\n tableData: tableData.map(item => (Object.assign(Object.assign({}, item), { enableAgent: result.enableAgent || false }))),\n segmentData,\n name: `${result.deviceName}-${result.channelName}`,\n totalUrl: result.totalTimeUrl,\n });\n }\n else if (result.totalTimeUrl) {\n setState({\n tableData: [],\n segmentData: { list: [] },\n name: `${result.deviceName}-${result.channelName}`,\n totalUrl: result.totalTimeUrl,\n playParams: {\n index: 0,\n enableAgent: (result === null || result === void 0 ? void 0 : result.enableAgent) || false,\n url: result.totalTimeUrl,\n startTime: ((_c = state.channel) === null || _c === void 0 ? void 0 : _c.beginTime) || '',\n endTime: ((_d = state.channel) === null || _d === void 0 ? void 0 : _d.endTime) || '',\n },\n });\n }\n else {\n message.info('未查询到视频');\n setState({\n tableData: [],\n segmentData: { list: [] },\n name: ``,\n playParams: DEFAULT_PLAY_PARAMS,\n });\n }\n });\n return () => {\n setState({\n tableData: [],\n segmentData: { list: [] },\n name: ``,\n playParams: DEFAULT_PLAY_PARAMS,\n });\n };\n }\n }, [state.channel]);\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const handleClose = () => {\n setState({ channel: undefined, timeLinePosition: -1 });\n onVideoClose && onVideoClose();\n };\n const columns = [\n {\n title: '序号',\n dataIndex: 'index',\n width: 60,\n },\n {\n title: '播放视频',\n key: 'play',\n width: 90,\n render: (_, record, index) => {\n const active = state.playParams.index === index;\n return (_jsx(Button, Object.assign({ className: `play-btn ${active ? 'active' : ''}`, onClick: () => {\n if (active) {\n setState({\n playParams: DEFAULT_PLAY_PARAMS,\n timeLinePosition: -1,\n });\n onVideoClose && onVideoClose();\n }\n else {\n const url = record.url || state.totalUrl;\n setState({\n playParams: {\n index,\n url,\n enableAgent: record.enableAgent || false,\n startTime: record.beginTime,\n endTime: record.endTime,\n },\n });\n }\n } }, { children: active ? (_jsxs(_Fragment, { children: [_jsx(VideoCloseIcon, { active: true }), \"\\u5173\\u95ED\"] })) : (_jsxs(_Fragment, { children: [_jsx(VideoPlayIcon, {}), \"\\u64AD\\u653E\"] })) })));\n },\n },\n // {\n // title: '设备名称',\n // dataIndex: 'deviceName',\n // },\n // {\n // title: '通道名称',\n // dataIndex: 'channelName',\n // },\n {\n title: '开始时间',\n dataIndex: 'beginTime',\n width: 170,\n },\n {\n title: '结束时间',\n dataIndex: 'endTime',\n width: 170,\n },\n {\n title: '持续时间',\n width: 120,\n dataIndex: 'duration',\n },\n {\n title: '视频大小',\n width: 100,\n dataIndex: 'size',\n },\n ];\n const handleTimeChange = (time, speed) => {\n var _a;\n onTimeChange && onTimeChange(time, speed);\n // 计算播放时间占起始时间当日的百分比\n const progress = (moment(time).diff(moment((_a = state.channel) === null || _a === void 0 ? void 0 : _a.beginTime).startOf('day'), 'seconds') /\n (24 * 60 * 60)) *\n 100;\n setState({ timeLinePosition: progress });\n };\n const getRef = () => {\n return segmentsRef.current;\n };\n return (_jsxs(\"div\", Object.assign({ className: `vtx-history-control${isDark ? ' history-dark' : ''}`, style: { width, height, backgroundColor: isDark ? 'rgba(0,59,64,0.3)' : '#2b3d51' } }, { children: [state.name && _jsx(PlayerHeader, { name: state.name, onClose: handleClose }), _jsx(Spin, { spinning: loading, className: \"vtx-spin\", size: \"large\" }), _jsx(\"div\", Object.assign({ className: \"player-container\" }, { children: state.playParams.url && (_jsx(HistoryPlayer, Object.assign({}, state.playParams, { controlBottom: isExpanded ? 235 : 0, onTimeChange: handleTimeChange, showInfo: showInfo, info: info }))) })), state.tableData && state.tableData.length > 0 && (_jsxs(\"div\", Object.assign({ className: \"collapse-controls\" }, { children: [_jsx(\"div\", Object.assign({ className: \"action-bar\" }, getToggleProps({}), { children: _jsx(\"img\", { src: collapseBtnImg, alt: \"\", style: { transform: `rotate(${isExpanded ? 180 : 0}deg)` } }) })), _jsx(\"section\", Object.assign({ className: \"collapse-panel-container\" }, getCollapseProps(), { children: _jsxs(\"div\", Object.assign({ className: \"panels\" }, { children: [_jsxs(\"div\", Object.assign({ className: \"time-panel\" }, { children: [_jsxs(\"div\", Object.assign({ className: \"segments\", ref: segmentsRef }, { children: [_jsx(TimeVerticalLine, { getRef: getRef, history: state.segmentData, totalUrl: state.totalUrl, setState: setState }), getSegments(state.segmentData)] })), state.timeLinePosition >= 0 && (_jsx(TimePositionIcon, { className: \"time-line-icon\", style: { left: `${state.timeLinePosition}%` } })), _jsx(TimeLine, {})] })), _jsx(\"div\", Object.assign({ className: \"urls-panel\" }, { children: _jsx(Table, { className: \"history-url-table\", columns: columns, dataSource: state.tableData, scroll: { y: 100 }, pagination: false, rowClassName: (_, index) => index === state.playParams.index ? 'active' : '' }) }))] })) }))] }))), _jsx(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: _jsx(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: onExpandChange && (_jsx(Tooltip, Object.assign({ title: state.expand ? '收起' : '展开' }, { children: _jsx(\"div\", Object.assign({ onClick: handleExpand }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) })) }))) })) }))] })));\n});\nHistoryControl.displayName = 'HistoryControl';\nconst TimeLine = () => {\n const getSplitLines = () => {\n const result = [];\n const step = 100 / 24;\n for (let i = 0; i < 25; i++) {\n const element = (_jsx(\"div\", Object.assign({ className: \"line\", style: { left: `${step * i}%` } }, { children: _jsx(\"div\", Object.assign({ className: \"number\" }, { children: i >= 10 ? i : '0' + i })) }), i));\n result.push(element);\n }\n return result;\n };\n return (_jsxs(\"div\", Object.assign({ className: \"time-axis\" }, { children: [_jsx(\"div\", { className: \"axis\" }), _jsx(\"div\", Object.assign({ className: \"split-lines\" }, { children: getSplitLines() }))] })));\n};\nconst getSegments = (props) => {\n const { list, start, end } = props;\n const startTime = moment(start);\n const endTime = moment(end);\n const total = endTime.diff(startTime, 'seconds'); // 总时间\n const result = list.map((i) => {\n const itemStart = moment(i.beginTime).diff(startTime, 'seconds') > 0 ? moment(i.beginTime) : startTime;\n const itemEnd = moment(i.endTime);\n const itemTotal = itemEnd.diff(itemStart, 'seconds'); // 分段总时间\n const width = (itemTotal / total) * 100; // 分段时间占总时间百分比\n const left = (itemStart.diff(startTime, 'seconds') / total) * 100; // 分段其实时间\n return (_jsx(\"div\", { className: \"segment\", style: { width: `${width}%`, left: `${left < 0 ? 0 : left}%` } }, i.beginTime));\n });\n return result;\n};\nconst ONEDAY_MILL = 24 * 60 * 60 * 1000;\nconst TimeVerticalLine = ({ getRef, history, totalUrl, setState, }) => {\n var _a;\n const mouse = useMouse(getRef());\n const { elementX, elementY, elementW, elementH } = mouse;\n const visible = elementX >= 0 && elementY >= 0 && elementX <= elementW && elementY <= elementH;\n // 计算elementX在整个宽度的占比,根据占比在一天中的比例算出具体时间,最后判断这个时间是否在某段视频中。在则显示提示时间。\n const percent = elementX / elementW;\n const time = moment(moment(history.start).valueOf() + percent * ONEDAY_MILL).format(TimeFormat.params);\n let flag = false, url, playStart = -1, playEnd = -1, index = -1;\n const now = moment(time).valueOf();\n for (let i = 0; i < ((_a = history.list) === null || _a === void 0 ? void 0 : _a.length); i++) {\n const begin = moment(history.list[i].beginTime).valueOf(), end = moment(history.list[i].endTime).valueOf();\n if (now >= begin && now <= end) {\n index = i;\n url = history.list[i].playbackUrl;\n playStart = now;\n playEnd = end;\n flag = true;\n break;\n }\n }\n const onClick = () => {\n const playUrl = url || totalUrl;\n setState({\n playParams: {\n index,\n url: playUrl,\n startTime: playStart,\n endTime: playEnd,\n },\n });\n };\n return visible ? (flag ? (_jsx(Tooltip, Object.assign({ title: time }, { children: _jsx(\"div\", { className: \"timeline\", style: { left: elementX }, onClick: onClick }) }))) : (_jsx(\"div\", { className: \"timeline\", style: { left: elementX }, onClick: onClick }))) : (_jsx(_Fragment, {}));\n};\nexport default HistoryControl;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["DEFAULT_PLAY_PARAMS","index","url","enableAgent","startTime","endTime","HistoryControl","forwardRef","props","ref","width","height","onExpandChange","onTimeChange","showInfo","onVideoClose","info","isDark","segmentsRef","useRef","useRequest","getHistoryUrl","manual","runAsync","loading","useCollapse","defaultExpanded","getCollapseProps","getToggleProps","isExpanded","useSetState","expand","name","tableData","segmentData","list","totalUrl","timeLinePosition","playParams","state","setState","useImperativeHandle","load","channel","JSON","stringify","useEffect","then","result","_a","_b","_c","_d","Array","isArray","getUrlTableData","start","moment","beginTime","startOf","end","endOf","map","item","Object","assign","deviceName","channelName","totalTimeUrl","message","handleExpand","handleClose","undefined","columns","title","dataIndex","key","render","_","record","active","_jsx","Button","className","onClick","children","_jsxs","_Fragment","VideoCloseIcon","VideoPlayIcon","handleTimeChange","time","speed","progress","diff","getRef","current","console","log","style","backgroundColor","PlayerHeader","onClose","Spin","spinning","size","HistoryPlayer","controlBottom","length","src","collapseBtnImg","alt","transform","TimeVerticalLine","history","getSegments","TimePositionIcon","left","TimeLine","Table","dataSource","scroll","y","pagination","rowClassName","Space","align","Tooltip","FoldIcon","ExpandIcon","displayName","getSplitLines","step","i","element","push","total","itemStart","itemEnd","itemTotal","ONEDAY_MILL","mouse","useMouse","elementX","elementY","elementW","elementH","visible","percent","valueOf","format","TimeFormat","params","flag","playStart","playEnd","now","begin","playbackUrl","playUrl"],"sources":["history-control/index.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport useCollapse from 'react-collapsed';\nimport { getHistoryUrl } from '../api';\nimport { PlayerHeader } from '../controls';\nimport HistoryPlayer from '../history-player';\nimport { ExpandIcon, FoldIcon, TimePositionIcon, VideoCloseIcon, VideoPlayIcon } from '../icons';\nimport { TimeFormat, getUrlTableData } from '../utils';\nimport { useMouse, useRequest, useSetState } from 'ahooks';\n// import { Button, Space, Table, Tooltip } from 'antd';\nimport Button from 'antd/lib/button';\nimport message from 'antd/lib/message';\nimport Space from 'antd/lib/space';\nimport Spin from 'antd/lib/spin';\nimport Table from 'antd/lib/table';\nimport Tooltip from 'antd/lib/tooltip';\nimport moment from 'moment';\nimport collapseBtnImg from './images/collapse.png';\n/** 默认播放器参数 */\nconst DEFAULT_PLAY_PARAMS = {\n index: -1,\n url: '',\n enableAgent: false,\n startTime: '',\n endTime: '',\n};\n/**\n * 历史视频控制器\n */\nexport const HistoryControl = forwardRef((props, ref) => {\n const { width = '100%', height = '100%', onExpandChange, onTimeChange, showInfo = false, onVideoClose, info = [], isDark = false } = props;\n const segmentsRef = useRef(null);\n const { runAsync, loading } = useRequest(getHistoryUrl, {\n manual: true,\n });\n const { getCollapseProps, getToggleProps, isExpanded } = useCollapse({\n defaultExpanded: true, // 默认展开\n });\n const [state, setState] = useSetState({\n expand: true,\n name: '',\n tableData: [],\n segmentData: { list: [] },\n totalUrl: '',\n timeLinePosition: -1,\n playParams: DEFAULT_PLAY_PARAMS,\n });\n useImperativeHandle(ref, () => {\n return {\n load: (channel) => {\n if (JSON.stringify(channel) !== JSON.stringify(state.channel)) {\n setState({ channel, timeLinePosition: -1 });\n }\n },\n };\n });\n useEffect(() => {\n if (state.channel) {\n runAsync(state.channel).then((result) => {\n var _a, _b, _c, _d;\n // 如果没有list,只有url,则直接播放url\n if (Array.isArray(result === null || result === void 0 ? void 0 : result.list)) {\n const tableData = getUrlTableData(result);\n const segmentData = {\n list: result.list,\n start: moment((_a = state.channel) === null || _a === void 0 ? void 0 : _a.beginTime).startOf('day'),\n end: moment((_b = state.channel) === null || _b === void 0 ? void 0 : _b.endTime).endOf('day'),\n };\n setState({\n tableData: tableData.map(item => (Object.assign(Object.assign({}, item), { enableAgent: result.enableAgent || false }))),\n segmentData,\n name: `${result.deviceName}-${result.channelName}`,\n totalUrl: result.totalTimeUrl,\n });\n }\n else if (result.totalTimeUrl) {\n setState({\n tableData: [],\n segmentData: { list: [] },\n name: `${result.deviceName}-${result.channelName}`,\n totalUrl: result.totalTimeUrl,\n playParams: {\n index: 0,\n enableAgent: (result === null || result === void 0 ? void 0 : result.enableAgent) || false,\n url: result.totalTimeUrl,\n startTime: ((_c = state.channel) === null || _c === void 0 ? void 0 : _c.beginTime) || '',\n endTime: ((_d = state.channel) === null || _d === void 0 ? void 0 : _d.endTime) || '',\n },\n });\n }\n else {\n message.info('未查询到视频');\n setState({\n tableData: [],\n segmentData: { list: [] },\n name: ``,\n playParams: DEFAULT_PLAY_PARAMS,\n });\n }\n });\n return () => {\n setState({\n tableData: [],\n segmentData: { list: [] },\n name: ``,\n playParams: DEFAULT_PLAY_PARAMS,\n });\n };\n }\n }, [state.channel]);\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const handleClose = () => {\n setState({ channel: undefined, timeLinePosition: -1 });\n onVideoClose && onVideoClose();\n };\n const columns = [\n {\n title: '序号',\n dataIndex: 'index',\n width: 60,\n },\n {\n title: '播放视频',\n key: 'play',\n width: 90,\n render: (_, record, index) => {\n const active = state.playParams.index === index;\n return (_jsx(Button, Object.assign({ className: `play-btn ${active ? 'active' : ''}`, onClick: () => {\n if (active) {\n setState({\n playParams: DEFAULT_PLAY_PARAMS,\n timeLinePosition: -1,\n });\n onVideoClose && onVideoClose();\n }\n else {\n const url = record.url || state.totalUrl;\n setState({\n playParams: {\n index,\n url,\n enableAgent: record.enableAgent || false,\n startTime: record.beginTime,\n endTime: record.endTime,\n },\n });\n }\n } }, { children: active ? (_jsxs(_Fragment, { children: [_jsx(VideoCloseIcon, { active: true }), \"\\u5173\\u95ED\"] })) : (_jsxs(_Fragment, { children: [_jsx(VideoPlayIcon, {}), \"\\u64AD\\u653E\"] })) })));\n },\n },\n // {\n // title: '设备名称',\n // dataIndex: 'deviceName',\n // },\n // {\n // title: '通道名称',\n // dataIndex: 'channelName',\n // },\n {\n title: '开始时间',\n dataIndex: 'beginTime',\n width: 170,\n },\n {\n title: '结束时间',\n dataIndex: 'endTime',\n width: 170,\n },\n {\n title: '持续时间',\n width: 120,\n dataIndex: 'duration',\n },\n {\n title: '视频大小',\n width: 100,\n dataIndex: 'size',\n },\n ];\n const handleTimeChange = (time, speed) => {\n var _a;\n onTimeChange && onTimeChange(time, speed);\n // 计算播放时间占起始时间当日的百分比\n const progress = (moment(time).diff(moment((_a = state.channel) === null || _a === void 0 ? void 0 : _a.beginTime).startOf('day'), 'seconds') /\n (24 * 60 * 60)) *\n 100;\n setState({ timeLinePosition: progress });\n };\n const getRef = () => {\n return segmentsRef.current;\n };\n console.log('state.playParams,', state.playParams);\n console.log('isExpanded', isExpanded);\n console.log('showInfo', showInfo);\n console.log('info', info);\n return (_jsxs(\"div\", Object.assign({ className: `vtx-history-control${isDark ? ' history-dark' : ''}`, style: { width, height, backgroundColor: isDark ? 'rgba(0,59,64,0.3)' : '#2b3d51' } }, { children: [state.name && _jsx(PlayerHeader, { name: state.name, onClose: handleClose }), _jsx(Spin, { spinning: loading, className: \"vtx-spin\", size: \"large\" }), _jsx(\"div\", Object.assign({ className: \"player-container\" }, { children: state.playParams.url && (_jsx(HistoryPlayer, Object.assign({}, state.playParams, { controlBottom: isExpanded ? 235 : 0, onTimeChange: handleTimeChange, showInfo: showInfo, info: info }))) })), state.tableData && state.tableData.length > 0 && (_jsxs(\"div\", Object.assign({ className: \"collapse-controls\" }, { children: [_jsx(\"div\", Object.assign({ className: \"action-bar\" }, getToggleProps({}), { children: _jsx(\"img\", { src: collapseBtnImg, alt: \"\", style: { transform: `rotate(${isExpanded ? 180 : 0}deg)` } }) })), _jsx(\"section\", Object.assign({ className: \"collapse-panel-container\" }, getCollapseProps(), { children: _jsxs(\"div\", Object.assign({ className: \"panels\" }, { children: [_jsxs(\"div\", Object.assign({ className: \"time-panel\" }, { children: [_jsxs(\"div\", Object.assign({ className: \"segments\", ref: segmentsRef }, { children: [_jsx(TimeVerticalLine, { getRef: getRef, history: state.segmentData, totalUrl: state.totalUrl, setState: setState }), getSegments(state.segmentData)] })), state.timeLinePosition >= 0 && (_jsx(TimePositionIcon, { className: \"time-line-icon\", style: { left: `${state.timeLinePosition}%` } })), _jsx(TimeLine, {})] })), _jsx(\"div\", Object.assign({ className: \"urls-panel\" }, { children: _jsx(Table, { className: \"history-url-table\", columns: columns, dataSource: state.tableData, scroll: { y: 100 }, pagination: false, rowClassName: (_, index) => index === state.playParams.index ? 'active' : '' }) }))] })) }))] }))), _jsx(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: _jsx(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: onExpandChange && (_jsx(Tooltip, Object.assign({ title: state.expand ? '收起' : '展开' }, { children: _jsx(\"div\", Object.assign({ onClick: handleExpand }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) })) }))) })) }))] })));\n});\nHistoryControl.displayName = 'HistoryControl';\nconst TimeLine = () => {\n const getSplitLines = () => {\n const result = [];\n const step = 100 / 24;\n for (let i = 0; i < 25; i++) {\n const element = (_jsx(\"div\", Object.assign({ className: \"line\", style: { left: `${step * i}%` } }, { children: _jsx(\"div\", Object.assign({ className: \"number\" }, { children: i >= 10 ? i : '0' + i })) }), i));\n result.push(element);\n }\n return result;\n };\n return (_jsxs(\"div\", Object.assign({ className: \"time-axis\" }, { children: [_jsx(\"div\", { className: \"axis\" }), _jsx(\"div\", Object.assign({ className: \"split-lines\" }, { children: getSplitLines() }))] })));\n};\nconst getSegments = (props) => {\n const { list, start, end } = props;\n const startTime = moment(start);\n const endTime = moment(end);\n const total = endTime.diff(startTime, 'seconds'); // 总时间\n const result = list.map((i) => {\n const itemStart = moment(i.beginTime).diff(startTime, 'seconds') > 0 ? moment(i.beginTime) : startTime;\n const itemEnd = moment(i.endTime);\n const itemTotal = itemEnd.diff(itemStart, 'seconds'); // 分段总时间\n const width = (itemTotal / total) * 100; // 分段时间占总时间百分比\n const left = (itemStart.diff(startTime, 'seconds') / total) * 100; // 分段其实时间\n return (_jsx(\"div\", { className: \"segment\", style: { width: `${width}%`, left: `${left < 0 ? 0 : left}%` } }, i.beginTime));\n });\n return result;\n};\nconst ONEDAY_MILL = 24 * 60 * 60 * 1000;\nconst TimeVerticalLine = ({ getRef, history, totalUrl, setState, }) => {\n var _a;\n const mouse = useMouse(getRef());\n const { elementX, elementY, elementW, elementH } = mouse;\n const visible = elementX >= 0 && elementY >= 0 && elementX <= elementW && elementY <= elementH;\n // 计算elementX在整个宽度的占比,根据占比在一天中的比例算出具体时间,最后判断这个时间是否在某段视频中。在则显示提示时间。\n const percent = elementX / elementW;\n const time = moment(moment(history.start).valueOf() + percent * ONEDAY_MILL).format(TimeFormat.params);\n let flag = false, url, playStart = -1, playEnd = -1, index = -1;\n const now = moment(time).valueOf();\n for (let i = 0; i < ((_a = history.list) === null || _a === void 0 ? void 0 : _a.length); i++) {\n const begin = moment(history.list[i].beginTime).valueOf(), end = moment(history.list[i].endTime).valueOf();\n if (now >= begin && now <= end) {\n index = i;\n url = history.list[i].playbackUrl;\n playStart = now;\n playEnd = end;\n flag = true;\n break;\n }\n }\n const onClick = () => {\n const playUrl = url || totalUrl;\n setState({\n playParams: {\n index,\n url: playUrl,\n startTime: playStart,\n endTime: playEnd,\n },\n });\n };\n return visible ? (flag ? (_jsx(Tooltip, Object.assign({ title: time }, { children: _jsx(\"div\", { className: \"timeline\", style: { left: elementX }, onClick: onClick }) }))) : (_jsx(\"div\", { className: \"timeline\", style: { left: elementX }, onClick: onClick }))) : (_jsx(_Fragment, {}));\n};\nexport default HistoryControl;\n"],"mappings":"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"}
@@ -132,6 +132,7 @@
132
132
  transform: translate(-50%, -50%);
133
133
  }
134
134
  .history-url-table {
135
+ width: calc(100% - 5px);
135
136
  border-right: 1px solid #383838;
136
137
  border-bottom: 1px solid #383838;
137
138
  }
@@ -129,6 +129,7 @@
129
129
  }
130
130
 
131
131
  .history-url-table {
132
+ width: calc(100% - 5px);
132
133
  border-right: 1px solid #383838;
133
134
  border-bottom: 1px solid #383838;
134
135
 
@@ -0,0 +1,21 @@
1
+ /// <reference types="react" />
2
+ import { IVideoScaleValue } from '../../../components/video-scale';
3
+ import { IChannel } from '../../interface';
4
+ interface GridItemProps {
5
+ /** 选中状态 */
6
+ active: boolean;
7
+ /** 通道属性 */
8
+ channel: IChannel;
9
+ /** 点击操作回调 */
10
+ onClick: () => void;
11
+ /** 关闭操作回调 */
12
+ onClose: () => void;
13
+ scale: IVideoScaleValue;
14
+ loading: boolean;
15
+ /**播放的第几个 */
16
+ palyIndex: number;
17
+ /** 截图回调 */
18
+ onScreenshot?: (url: string) => void;
19
+ }
20
+ declare const GridItem: React.FC<GridItemProps>;
21
+ export default GridItem;
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+
10
+ var _react = require("react");
11
+
12
+ var _controls = require("../../../controls");
13
+
14
+ var _historyPlayer = _interopRequireDefault(require("../../../history-player"));
15
+
16
+ var _context = require("../../context");
17
+
18
+ var _utils = require("../../utils");
19
+
20
+ var _ahooks = require("ahooks");
21
+
22
+ var _lodash = _interopRequireDefault(require("lodash"));
23
+
24
+ var _moment = _interopRequireDefault(require("moment"));
25
+
26
+ var _setTagVideo = _interopRequireDefault(require("../../../components/set-tag-video"));
27
+
28
+ var _tagVideo = _interopRequireDefault(require("../../../components/tag-video"));
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
31
+
32
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
33
+
34
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
35
+
36
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
37
+
38
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
39
+
40
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
41
+
42
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
43
+
44
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
45
+
46
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
47
+
48
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
49
+
50
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
51
+
52
+ var GridItem = function GridItem(props) {
53
+ var _useContext = (0, _react.useContext)(_context.historyControlV2Context),
54
+ loading = _useContext.loading,
55
+ channels = _useContext.channels,
56
+ setChannels = _useContext.setChannels,
57
+ activeIndex = _useContext.activeIndex,
58
+ setTimeLinePosition = _useContext.setTimeLinePosition; // setTimeLinePosition
59
+
60
+
61
+ var active = props.active,
62
+ onClick = props.onClick,
63
+ onClose = props.onClose,
64
+ onScreenshot = props.onScreenshot,
65
+ scale = props.scale,
66
+ _props$palyIndex = props.palyIndex,
67
+ palyIndex = _props$palyIndex === void 0 ? 0 : _props$palyIndex,
68
+ _props$channel = props.channel,
69
+ channel = _props$channel === void 0 ? _utils.DEFAULT_PLAY_PARAMS : _props$channel;
70
+
71
+ var _useState = (0, _react.useState)(false),
72
+ _useState2 = _slicedToArray(_useState, 2),
73
+ tagSetShow = _useState2[0],
74
+ setTagSetShow = _useState2[1];
75
+
76
+ var url = channel.url,
77
+ startTime = channel.startTime,
78
+ endTime = channel.endTime,
79
+ channelName = channel.channelName,
80
+ deviceName = channel.deviceName,
81
+ hasLabel = channel.hasLabel;
82
+
83
+ var _useSetState = (0, _ahooks.useSetState)({
84
+ width: '100%',
85
+ height: '100%'
86
+ }),
87
+ _useSetState2 = _slicedToArray(_useSetState, 2),
88
+ _useSetState2$ = _useSetState2[0],
89
+ width = _useSetState2$.width,
90
+ height = _useSetState2$.height,
91
+ setState = _useSetState2[1];
92
+
93
+ var gridItemRef = (0, _react.useRef)(null);
94
+ var gridItemSize = (0, _ahooks.useSize)(gridItemRef);
95
+ (0, _react.useEffect)(function () {
96
+ if ((gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.width) && (gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.height)) {
97
+ switch (scale) {
98
+ case '100%':
99
+ setState({
100
+ width: '100%',
101
+ height: gridItemSize.height - 26
102
+ });
103
+ break;
104
+
105
+ case '4*3':
106
+ if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {
107
+ setState({
108
+ width: '100%',
109
+ height: gridItemSize.width / 4 * 3
110
+ });
111
+ } else {
112
+ setState({
113
+ width: (gridItemSize.height - 26) / 3 * 4,
114
+ height: '100%'
115
+ });
116
+ }
117
+
118
+ break;
119
+
120
+ case '16*9':
121
+ if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {
122
+ setState({
123
+ width: '100%',
124
+ height: gridItemSize.width / 16 * 9
125
+ });
126
+ } else {
127
+ setState({
128
+ width: (gridItemSize.height - 26) / 9 * 16,
129
+ height: '100%'
130
+ });
131
+ }
132
+
133
+ break;
134
+ }
135
+ }
136
+ }, [gridItemSize, scale]);
137
+ var historyPlayerProps = {
138
+ url: url,
139
+ startTime: startTime,
140
+ endTime: endTime
141
+ };
142
+ var isExpanded = false;
143
+ var showInfo = false;
144
+ var info = [];
145
+
146
+ var handleTimeChange = function handleTimeChange(time) {
147
+ if (time !== '' && channels[palyIndex].tagId == '' && channels[palyIndex].index != -1 && (0, _moment["default"])(time).diff((0, _moment["default"])(channels[palyIndex].endTime), 'seconds') >= 0) {
148
+ var newChannels = _toConsumableArray(channels);
149
+
150
+ var length = channels[palyIndex].tableList.length;
151
+ var index = channels[palyIndex].index + 1 % length;
152
+ newChannels[palyIndex].index = index;
153
+ newChannels[palyIndex].startTime = channels[palyIndex].tableList[index].beginTime;
154
+ newChannels[palyIndex].endTime = channels[palyIndex].tableList[index].endTime;
155
+ setChannels(newChannels);
156
+ }
157
+
158
+ if (palyIndex === activeIndex) {
159
+ var progress = (0, _moment["default"])(time).diff((0, _moment["default"])(startTime).startOf('day'), 'seconds') / (24 * 60 * 60) * 100;
160
+ setTimeLinePosition(progress);
161
+ }
162
+ };
163
+
164
+ return (0, _jsxRuntime.jsx)("div", Object.assign({
165
+ className: "grid-item-container ".concat(active ? 'active' : '', " ").concat(loading ? '' : 'emptyImg'),
166
+ onClick: onClick,
167
+ ref: gridItemRef
168
+ }, {
169
+ children: channel.channelNum && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
170
+ children: [(0, _jsxRuntime.jsx)(_controls.PlayerHeader, {
171
+ name: "".concat(deviceName, "-").concat(channelName),
172
+ onClose: onClose,
173
+ extraButton: hasLabel ? (0, _jsxRuntime.jsx)(_tagVideo["default"], {
174
+ channel: channel
175
+ }) : null
176
+ }), (0, _jsxRuntime.jsx)("div", Object.assign({
177
+ className: "player-container"
178
+ }, {
179
+ children: historyPlayerProps.url && historyPlayerProps.startTime && historyPlayerProps.endTime && (0, _jsxRuntime.jsx)("div", Object.assign({
180
+ style: {
181
+ width: width,
182
+ height: height
183
+ }
184
+ }, {
185
+ children: (0, _jsxRuntime.jsx)(_historyPlayer["default"], Object.assign({}, historyPlayerProps, {
186
+ controlBottom: isExpanded ? 235 : 0,
187
+ onTimeChange: _lodash["default"].throttle(handleTimeChange, 999),
188
+ showInfo: showInfo,
189
+ info: info,
190
+ controlVisible: tagSetShow,
191
+ activeIndex: palyIndex,
192
+ extraButton: (0, _jsxRuntime.jsx)(_setTagVideo["default"], {
193
+ tagSetShow: tagSetShow,
194
+ setTagSetShow: setTagSetShow,
195
+ channel: channel
196
+ }),
197
+ screenshot: onScreenshot
198
+ }))
199
+ }))
200
+ }))]
201
+ })
202
+ }));
203
+ };
204
+
205
+ var _default = GridItem;
206
+ exports["default"] = _default;
207
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["GridItem","props","useContext","historyControlV2Context","loading","channels","setChannels","activeIndex","setTimeLinePosition","active","onClick","onClose","onScreenshot","scale","palyIndex","channel","DEFAULT_PLAY_PARAMS","useState","tagSetShow","setTagSetShow","url","startTime","endTime","channelName","deviceName","hasLabel","useSetState","width","height","setState","gridItemRef","useRef","gridItemSize","useSize","useEffect","historyPlayerProps","isExpanded","showInfo","info","handleTimeChange","time","tagId","index","moment","diff","newChannels","length","tableList","beginTime","progress","startOf","_jsx","Object","assign","className","ref","children","channelNum","_jsxs","_Fragment","PlayerHeader","name","extraButton","TagVideo","style","HistoryPlayer","controlBottom","onTimeChange","_","throttle","controlVisible","SetTagVideo","screenshot"],"sources":["history-control-v2/components/grid-item/index.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { PlayerHeader } from '../../../controls';\nimport HistoryPlayer from '../../../history-player';\nimport { historyControlV2Context } from '../../context';\nimport { DEFAULT_PLAY_PARAMS } from '../../utils';\nimport { useSetState, useSize } from 'ahooks';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport SetTagVideo from '../../../components/set-tag-video';\nimport TagVideo from '../../../components/tag-video';\nconst GridItem = (props) => {\n const { loading, channels, setChannels, activeIndex, setTimeLinePosition } = useContext(historyControlV2Context); // setTimeLinePosition\n const { active, onClick, onClose, onScreenshot, scale, palyIndex = 0, channel = DEFAULT_PLAY_PARAMS } = props;\n const [tagSetShow, setTagSetShow] = useState(false);\n const { url, startTime, endTime, channelName, deviceName, hasLabel } = channel;\n const [{ width, height }, setState] = useSetState({\n width: '100%',\n height: '100%',\n });\n const gridItemRef = useRef(null);\n const gridItemSize = useSize(gridItemRef);\n useEffect(() => {\n if ((gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.width) && (gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.height)) {\n switch (scale) {\n case '100%':\n setState({\n width: '100%',\n height: gridItemSize.height - 26,\n });\n break;\n case '4*3':\n if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 4) * 3,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 3) * 4,\n height: '100%',\n });\n }\n break;\n case '16*9':\n if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 16) * 9,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 9) * 16,\n height: '100%',\n });\n }\n break;\n }\n }\n }, [gridItemSize, scale]);\n const historyPlayerProps = {\n url,\n startTime,\n endTime,\n };\n const isExpanded = false;\n const showInfo = false;\n const info = [];\n const handleTimeChange = (time) => {\n if (time !== '' && channels[palyIndex].tagId == '' && channels[palyIndex].index != -1 && moment(time).diff(moment(channels[palyIndex].endTime), 'seconds') >= 0) {\n const newChannels = [...channels];\n const length = channels[palyIndex].tableList.length;\n const index = channels[palyIndex].index + 1 % length;\n newChannels[palyIndex].index = index;\n newChannels[palyIndex].startTime = channels[palyIndex].tableList[index].beginTime;\n newChannels[palyIndex].endTime = channels[palyIndex].tableList[index].endTime;\n setChannels(newChannels);\n }\n if (palyIndex === activeIndex) {\n const progress = (moment(time).diff(moment(startTime).startOf('day'), 'seconds') / (24 * 60 * 60)) *\n 100;\n setTimeLinePosition(progress);\n }\n };\n return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''} ${loading ? '' : 'emptyImg'}`, onClick: onClick, ref: gridItemRef }, { children: channel.channelNum && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: `${deviceName}-${channelName}`, onClose: onClose, extraButton: hasLabel ? _jsx(TagVideo, { channel: channel }) : null }), _jsx(\"div\", Object.assign({ className: \"player-container\" }, { children: historyPlayerProps.url && historyPlayerProps.startTime && historyPlayerProps.endTime && (_jsx(\"div\", Object.assign({ style: { width, height } }, { children: _jsx(HistoryPlayer, Object.assign({}, historyPlayerProps, { controlBottom: isExpanded ? 235 : 0, onTimeChange: _.throttle(handleTimeChange, 999), showInfo: showInfo, info: info, controlVisible: tagSetShow, activeIndex: palyIndex, extraButton: _jsx(SetTagVideo, { tagSetShow: tagSetShow, setTagSetShow: setTagSetShow, channel: channel }), screenshot: onScreenshot })) }))) }))] })) })));\n};\nexport default GridItem;\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ interface IProps {
3
+ onVideoClose?: (e: any) => void;
4
+ }
5
+ interface IState {
6
+ load?: (channel: any) => void;
7
+ }
8
+ export declare const HistoryControlV2Panel: import("react").ForwardRefExoticComponent<IProps & import("react").RefAttributes<IState>>;
9
+ export default HistoryControlV2Panel;