sense-react-timeline-editor 1.1.34 → 1.1.36
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/dist/index.esm.js +29 -43
- package/dist/index.js +29 -43
- package/dist/interface/timeline.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -5,7 +5,7 @@ import { prefixNames } from 'framework-utils';
|
|
|
5
5
|
import interact from 'interactjs';
|
|
6
6
|
import { useSelectionContainer } from '@air/react-drag-to-select';
|
|
7
7
|
import { message } from 'antd/es';
|
|
8
|
-
import
|
|
8
|
+
import 'howler';
|
|
9
9
|
import { groupBy, throttle } from 'lodash-es';
|
|
10
10
|
import useSize from 'ahooks/es/useSize';
|
|
11
11
|
|
|
@@ -1873,11 +1873,13 @@ var RowDnd = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1873
1873
|
var preLeft = parseFloat(left || '0');
|
|
1874
1874
|
var preWidth = parseFloat(width || '0');
|
|
1875
1875
|
deltaX.current += delta;
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1876
|
+
setTimeout(function () {
|
|
1877
|
+
resize({
|
|
1878
|
+
preLeft: preLeft,
|
|
1879
|
+
preWidth: preWidth,
|
|
1880
|
+
dir: dir
|
|
1881
|
+
});
|
|
1882
|
+
}, 0);
|
|
1881
1883
|
});
|
|
1882
1884
|
if (!result) return;
|
|
1883
1885
|
}
|
|
@@ -1887,11 +1889,13 @@ var RowDnd = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
1887
1889
|
var preLeft = parseFloat(left || '0');
|
|
1888
1890
|
var preWidth = parseFloat(width || '0');
|
|
1889
1891
|
deltaX.current += dir === 'left' ? e.deltaRect.left : e.deltaRect.right;
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1892
|
+
setTimeout(function () {
|
|
1893
|
+
resize({
|
|
1894
|
+
preLeft: preLeft,
|
|
1895
|
+
preWidth: preWidth,
|
|
1896
|
+
dir: dir
|
|
1897
|
+
});
|
|
1898
|
+
}, 0);
|
|
1895
1899
|
};
|
|
1896
1900
|
var handleResizeStop = function handleResizeStop(e) {
|
|
1897
1901
|
var _e$edges3;
|
|
@@ -2280,6 +2284,10 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2280
2284
|
_useState2 = _slicedToArray(_useState, 2),
|
|
2281
2285
|
dragging = _useState2[0],
|
|
2282
2286
|
setDragging = _useState2[1];
|
|
2287
|
+
var _useState3 = useState(false),
|
|
2288
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
2289
|
+
resizing = _useState4[0],
|
|
2290
|
+
setResizing = _useState4[1];
|
|
2283
2291
|
var originStart = start;
|
|
2284
2292
|
parserTimeToPixel(originStart, {
|
|
2285
2293
|
startLeft: startLeft,
|
|
@@ -2311,7 +2319,7 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2311
2319
|
scaleWidth: scaleWidth
|
|
2312
2320
|
}));
|
|
2313
2321
|
// 初始化动作坐标数据
|
|
2314
|
-
var
|
|
2322
|
+
var _useState5 = useState(function () {
|
|
2315
2323
|
return _objectSpread2(_objectSpread2({}, parserTimeToTransform({
|
|
2316
2324
|
start: start,
|
|
2317
2325
|
end: end
|
|
@@ -2323,9 +2331,9 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2323
2331
|
top: 0
|
|
2324
2332
|
});
|
|
2325
2333
|
}),
|
|
2326
|
-
|
|
2327
|
-
transform =
|
|
2328
|
-
setTransform =
|
|
2334
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
2335
|
+
transform = _useState6[0],
|
|
2336
|
+
setTransform = _useState6[1];
|
|
2329
2337
|
useLayoutEffect(function () {
|
|
2330
2338
|
setTransform(_objectSpread2(_objectSpread2({}, parserTimeToTransform({
|
|
2331
2339
|
start: start,
|
|
@@ -2727,6 +2735,7 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2727
2735
|
row: row,
|
|
2728
2736
|
dir: dir
|
|
2729
2737
|
});
|
|
2738
|
+
setResizing(true);
|
|
2730
2739
|
};
|
|
2731
2740
|
var handleResizing = function handleResizing(dir, _ref1) {
|
|
2732
2741
|
var left = _ref1.left,
|
|
@@ -2785,6 +2794,7 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2785
2794
|
action.start = start;
|
|
2786
2795
|
action.end = end;
|
|
2787
2796
|
setEditorData(editorData);
|
|
2797
|
+
setResizing(false);
|
|
2788
2798
|
// 触发回调
|
|
2789
2799
|
if (onActionResizeEnd) onActionResizeEnd({
|
|
2790
2800
|
action: action,
|
|
@@ -2942,7 +2952,7 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2942
2952
|
style: {
|
|
2943
2953
|
height: rowHeight
|
|
2944
2954
|
}
|
|
2945
|
-
}, getActionRender && getActionRender(nowAction, nowRow), flexible && (/*#__PURE__*/React.createElement("div", {
|
|
2955
|
+
}, getActionRender && getActionRender(nowAction, nowRow, resizing), flexible && (/*#__PURE__*/React.createElement("div", {
|
|
2946
2956
|
className: prefix('action-left-stretch')
|
|
2947
2957
|
}, /*#__PURE__*/React.createElement("img", {
|
|
2948
2958
|
src: stretchIcon,
|
|
@@ -3579,26 +3589,6 @@ var useRowDrag = function useRowDrag(options) {
|
|
|
3579
3589
|
};
|
|
3580
3590
|
};
|
|
3581
3591
|
|
|
3582
|
-
// 获取音频时长
|
|
3583
|
-
var getAudioDuration = function getAudioDuration(url) {
|
|
3584
|
-
return new Promise(function (resolve) {
|
|
3585
|
-
var sound = new Howl({
|
|
3586
|
-
src: url
|
|
3587
|
-
});
|
|
3588
|
-
sound.on('load', function () {
|
|
3589
|
-
resolve(sound.duration());
|
|
3590
|
-
sound.unload();
|
|
3591
|
-
});
|
|
3592
|
-
setTimeout(function () {
|
|
3593
|
-
resolve(2); // 加载失败时返回默认时长2秒
|
|
3594
|
-
sound.unload();
|
|
3595
|
-
}, 6 * 1000); // 60秒超时 60 * 1000
|
|
3596
|
-
sound.on('loaderror', function () {
|
|
3597
|
-
resolve(2); // 加载失败时返回默认时长2秒
|
|
3598
|
-
sound.unload();
|
|
3599
|
-
});
|
|
3600
|
-
});
|
|
3601
|
-
};
|
|
3602
3592
|
var EditAreaO = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
3603
3593
|
var className = props.className,
|
|
3604
3594
|
_props$isMulti = props.isMulti,
|
|
@@ -3650,7 +3640,7 @@ var EditAreaO = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
3650
3640
|
return /*#__PURE__*/function () {
|
|
3651
3641
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(info) {
|
|
3652
3642
|
var _info$file$response, _info$file, _info$file$response2;
|
|
3653
|
-
var maxSize, hasDefault, totalDuration, _newAction, uid,
|
|
3643
|
+
var maxSize, hasDefault, totalDuration, _newAction, uid, newAction;
|
|
3654
3644
|
return _regenerator().w(function (_context) {
|
|
3655
3645
|
while (1) switch (_context.n) {
|
|
3656
3646
|
case 0:
|
|
@@ -3720,17 +3710,13 @@ var EditAreaO = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
3720
3710
|
return _context.a(2);
|
|
3721
3711
|
case 5:
|
|
3722
3712
|
uid = info.file.uid;
|
|
3723
|
-
_context.n = 6;
|
|
3724
|
-
return getAudioDuration(info.file.response.url);
|
|
3725
|
-
case 6:
|
|
3726
|
-
duration = _context.v;
|
|
3727
3713
|
newAction = {
|
|
3728
3714
|
id: ((_info$file$response = info.file.response) === null || _info$file$response === void 0 ? void 0 : _info$file$response.id) || uid,
|
|
3729
3715
|
effectId: 'custom_video_effect',
|
|
3730
3716
|
flexible: true,
|
|
3731
3717
|
url: info.file.response.url,
|
|
3732
3718
|
start: currentMouseTime,
|
|
3733
|
-
end: currentMouseTime +
|
|
3719
|
+
end: currentMouseTime + 1000,
|
|
3734
3720
|
isUpload: true,
|
|
3735
3721
|
segment_type: 'bgm',
|
|
3736
3722
|
isUploading: false,
|
|
@@ -3738,7 +3724,7 @@ var EditAreaO = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
3738
3724
|
waveform: ((_info$file$response2 = info.file.response) === null || _info$file$response2 === void 0 ? void 0 : _info$file$response2.peaks) || []
|
|
3739
3725
|
};
|
|
3740
3726
|
onUpdateEditorData === null || onUpdateEditorData === void 0 ? void 0 : onUpdateEditorData(row, [newAction]);
|
|
3741
|
-
case
|
|
3727
|
+
case 6:
|
|
3742
3728
|
return _context.a(2);
|
|
3743
3729
|
}
|
|
3744
3730
|
}, _callee);
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ var frameworkUtils = require('framework-utils');
|
|
|
9
9
|
var interact = require('interactjs');
|
|
10
10
|
var reactDragToSelect = require('@air/react-drag-to-select');
|
|
11
11
|
var es = require('antd/es');
|
|
12
|
-
|
|
12
|
+
require('howler');
|
|
13
13
|
var lodashEs = require('lodash-es');
|
|
14
14
|
var useSize = require('ahooks/es/useSize');
|
|
15
15
|
|
|
@@ -1883,11 +1883,13 @@ var RowDnd = /*#__PURE__*/React__default['default'].forwardRef(function (_ref, r
|
|
|
1883
1883
|
var preLeft = parseFloat(left || '0');
|
|
1884
1884
|
var preWidth = parseFloat(width || '0');
|
|
1885
1885
|
deltaX.current += delta;
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1886
|
+
setTimeout(function () {
|
|
1887
|
+
resize({
|
|
1888
|
+
preLeft: preLeft,
|
|
1889
|
+
preWidth: preWidth,
|
|
1890
|
+
dir: dir
|
|
1891
|
+
});
|
|
1892
|
+
}, 0);
|
|
1891
1893
|
});
|
|
1892
1894
|
if (!result) return;
|
|
1893
1895
|
}
|
|
@@ -1897,11 +1899,13 @@ var RowDnd = /*#__PURE__*/React__default['default'].forwardRef(function (_ref, r
|
|
|
1897
1899
|
var preLeft = parseFloat(left || '0');
|
|
1898
1900
|
var preWidth = parseFloat(width || '0');
|
|
1899
1901
|
deltaX.current += dir === 'left' ? e.deltaRect.left : e.deltaRect.right;
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1902
|
+
setTimeout(function () {
|
|
1903
|
+
resize({
|
|
1904
|
+
preLeft: preLeft,
|
|
1905
|
+
preWidth: preWidth,
|
|
1906
|
+
dir: dir
|
|
1907
|
+
});
|
|
1908
|
+
}, 0);
|
|
1905
1909
|
};
|
|
1906
1910
|
var handleResizeStop = function handleResizeStop(e) {
|
|
1907
1911
|
var _e$edges3;
|
|
@@ -2290,6 +2294,10 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2290
2294
|
_useState2 = _slicedToArray(_useState, 2),
|
|
2291
2295
|
dragging = _useState2[0],
|
|
2292
2296
|
setDragging = _useState2[1];
|
|
2297
|
+
var _useState3 = React.useState(false),
|
|
2298
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
2299
|
+
resizing = _useState4[0],
|
|
2300
|
+
setResizing = _useState4[1];
|
|
2293
2301
|
var originStart = start;
|
|
2294
2302
|
parserTimeToPixel(originStart, {
|
|
2295
2303
|
startLeft: startLeft,
|
|
@@ -2321,7 +2329,7 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2321
2329
|
scaleWidth: scaleWidth
|
|
2322
2330
|
}));
|
|
2323
2331
|
// 初始化动作坐标数据
|
|
2324
|
-
var
|
|
2332
|
+
var _useState5 = React.useState(function () {
|
|
2325
2333
|
return _objectSpread2(_objectSpread2({}, parserTimeToTransform({
|
|
2326
2334
|
start: start,
|
|
2327
2335
|
end: end
|
|
@@ -2333,9 +2341,9 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2333
2341
|
top: 0
|
|
2334
2342
|
});
|
|
2335
2343
|
}),
|
|
2336
|
-
|
|
2337
|
-
transform =
|
|
2338
|
-
setTransform =
|
|
2344
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
2345
|
+
transform = _useState6[0],
|
|
2346
|
+
setTransform = _useState6[1];
|
|
2339
2347
|
React.useLayoutEffect(function () {
|
|
2340
2348
|
setTransform(_objectSpread2(_objectSpread2({}, parserTimeToTransform({
|
|
2341
2349
|
start: start,
|
|
@@ -2737,6 +2745,7 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2737
2745
|
row: row,
|
|
2738
2746
|
dir: dir
|
|
2739
2747
|
});
|
|
2748
|
+
setResizing(true);
|
|
2740
2749
|
};
|
|
2741
2750
|
var handleResizing = function handleResizing(dir, _ref1) {
|
|
2742
2751
|
var left = _ref1.left,
|
|
@@ -2795,6 +2804,7 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2795
2804
|
action.start = start;
|
|
2796
2805
|
action.end = end;
|
|
2797
2806
|
setEditorData(editorData);
|
|
2807
|
+
setResizing(false);
|
|
2798
2808
|
// 触发回调
|
|
2799
2809
|
if (onActionResizeEnd) onActionResizeEnd({
|
|
2800
2810
|
action: action,
|
|
@@ -2952,7 +2962,7 @@ var EditActionO = function EditActionO(_ref8) {
|
|
|
2952
2962
|
style: {
|
|
2953
2963
|
height: rowHeight
|
|
2954
2964
|
}
|
|
2955
|
-
}, getActionRender && getActionRender(nowAction, nowRow), flexible && (/*#__PURE__*/React__default['default'].createElement("div", {
|
|
2965
|
+
}, getActionRender && getActionRender(nowAction, nowRow, resizing), flexible && (/*#__PURE__*/React__default['default'].createElement("div", {
|
|
2956
2966
|
className: prefix('action-left-stretch')
|
|
2957
2967
|
}, /*#__PURE__*/React__default['default'].createElement("img", {
|
|
2958
2968
|
src: stretchIcon,
|
|
@@ -3589,26 +3599,6 @@ var useRowDrag = function useRowDrag(options) {
|
|
|
3589
3599
|
};
|
|
3590
3600
|
};
|
|
3591
3601
|
|
|
3592
|
-
// 获取音频时长
|
|
3593
|
-
var getAudioDuration = function getAudioDuration(url) {
|
|
3594
|
-
return new Promise(function (resolve) {
|
|
3595
|
-
var sound = new howler.Howl({
|
|
3596
|
-
src: url
|
|
3597
|
-
});
|
|
3598
|
-
sound.on('load', function () {
|
|
3599
|
-
resolve(sound.duration());
|
|
3600
|
-
sound.unload();
|
|
3601
|
-
});
|
|
3602
|
-
setTimeout(function () {
|
|
3603
|
-
resolve(2); // 加载失败时返回默认时长2秒
|
|
3604
|
-
sound.unload();
|
|
3605
|
-
}, 6 * 1000); // 60秒超时 60 * 1000
|
|
3606
|
-
sound.on('loaderror', function () {
|
|
3607
|
-
resolve(2); // 加载失败时返回默认时长2秒
|
|
3608
|
-
sound.unload();
|
|
3609
|
-
});
|
|
3610
|
-
});
|
|
3611
|
-
};
|
|
3612
3602
|
var EditAreaO = /*#__PURE__*/React__default['default'].forwardRef(function (props, ref) {
|
|
3613
3603
|
var className = props.className,
|
|
3614
3604
|
_props$isMulti = props.isMulti,
|
|
@@ -3660,7 +3650,7 @@ var EditAreaO = /*#__PURE__*/React__default['default'].forwardRef(function (prop
|
|
|
3660
3650
|
return /*#__PURE__*/function () {
|
|
3661
3651
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(info) {
|
|
3662
3652
|
var _info$file$response, _info$file, _info$file$response2;
|
|
3663
|
-
var maxSize, hasDefault, totalDuration, _newAction, uid,
|
|
3653
|
+
var maxSize, hasDefault, totalDuration, _newAction, uid, newAction;
|
|
3664
3654
|
return _regenerator().w(function (_context) {
|
|
3665
3655
|
while (1) switch (_context.n) {
|
|
3666
3656
|
case 0:
|
|
@@ -3730,17 +3720,13 @@ var EditAreaO = /*#__PURE__*/React__default['default'].forwardRef(function (prop
|
|
|
3730
3720
|
return _context.a(2);
|
|
3731
3721
|
case 5:
|
|
3732
3722
|
uid = info.file.uid;
|
|
3733
|
-
_context.n = 6;
|
|
3734
|
-
return getAudioDuration(info.file.response.url);
|
|
3735
|
-
case 6:
|
|
3736
|
-
duration = _context.v;
|
|
3737
3723
|
newAction = {
|
|
3738
3724
|
id: ((_info$file$response = info.file.response) === null || _info$file$response === void 0 ? void 0 : _info$file$response.id) || uid,
|
|
3739
3725
|
effectId: 'custom_video_effect',
|
|
3740
3726
|
flexible: true,
|
|
3741
3727
|
url: info.file.response.url,
|
|
3742
3728
|
start: currentMouseTime,
|
|
3743
|
-
end: currentMouseTime +
|
|
3729
|
+
end: currentMouseTime + 1000,
|
|
3744
3730
|
isUpload: true,
|
|
3745
3731
|
segment_type: 'bgm',
|
|
3746
3732
|
isUploading: false,
|
|
@@ -3748,7 +3734,7 @@ var EditAreaO = /*#__PURE__*/React__default['default'].forwardRef(function (prop
|
|
|
3748
3734
|
waveform: ((_info$file$response2 = info.file.response) === null || _info$file$response2 === void 0 ? void 0 : _info$file$response2.peaks) || []
|
|
3749
3735
|
};
|
|
3750
3736
|
onUpdateEditorData === null || onUpdateEditorData === void 0 ? void 0 : onUpdateEditorData(row, [newAction]);
|
|
3751
|
-
case
|
|
3737
|
+
case 6:
|
|
3752
3738
|
return _context.a(2);
|
|
3753
3739
|
}
|
|
3754
3740
|
}, _callee);
|
|
@@ -84,7 +84,7 @@ export interface EditData {
|
|
|
84
84
|
/**
|
|
85
85
|
* @description 自定义action区域渲染
|
|
86
86
|
*/
|
|
87
|
-
getActionRender?: (action: TimelineAction, row: TimelineRow) => ReactNode;
|
|
87
|
+
getActionRender?: (action: TimelineAction, row: TimelineRow, resizing?: boolean) => ReactNode;
|
|
88
88
|
/**
|
|
89
89
|
* @description 自定义scale渲染
|
|
90
90
|
*/
|