sense-react-timeline-editor 1.1.27 → 1.1.28

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 CHANGED
@@ -6,7 +6,7 @@ import interact from 'interactjs';
6
6
  import { useSelectionContainer } from '@air/react-drag-to-select';
7
7
  import { message } from 'antd/es';
8
8
  import { Howl } from 'howler';
9
- import { groupBy, throttle } from 'lodash-es';
9
+ import { groupBy } from 'lodash-es';
10
10
  import useSize from 'ahooks/es/useSize';
11
11
 
12
12
  function _arrayLikeToArray(r, a) {
@@ -756,7 +756,7 @@ var TimelineEngine = /*#__PURE__*/function (_Emitter) {
756
756
  var actionId = this._activeActionIds[i];
757
757
  var action = this._actionMap[actionId];
758
758
  // 不在播放区域内
759
- if (action.start > time || action.end < time) {
759
+ if (action.start > time || action.end <= time) {
760
760
  var _effect$source6;
761
761
  var effect = this._effectMap[action.effectId];
762
762
  if (effect && ((_effect$source6 = effect.source) === null || _effect$source6 === void 0 ? void 0 : _effect$source6.leave)) {
@@ -4322,7 +4322,7 @@ var TimeArea = function TimeArea(_ref) {
4322
4322
  var gridRef = useRef();
4323
4323
  /** 是否显示细分刻度 */
4324
4324
  var showUnit = scaleSplitCount > 0;
4325
- var visibleWidth = document.documentElement.clientWidth;
4325
+ var visibleWidth = timelineWidth;
4326
4326
  /** 获取每个 cell 渲染内容 */
4327
4327
  var cellRenderer = function cellRenderer(_ref2) {
4328
4328
  var columnIndex = _ref2.columnIndex,
@@ -4391,13 +4391,10 @@ var TimeArea = function TimeArea(_ref) {
4391
4391
  height: height
4392
4392
  },
4393
4393
  onClick: function onClick(e) {
4394
- var _timelineEditorEl$scr;
4395
4394
  if (hideCursor) return;
4396
- var timelineEditorEl = document.querySelector('.timeline-editor');
4397
4395
  var rect = e.currentTarget.getBoundingClientRect();
4398
4396
  var position = e.clientX - rect.x;
4399
- var actualScrollLeft = (_timelineEditorEl$scr = timelineEditorEl === null || timelineEditorEl === void 0 ? void 0 : timelineEditorEl.scrollLeft) !== null && _timelineEditorEl$scr !== void 0 ? _timelineEditorEl$scr : scrollLeft;
4400
- var left = Math.max(position + actualScrollLeft, startLeft);
4397
+ var left = Math.max(position + scrollLeft, startLeft);
4401
4398
  if (left > maxScaleCount * scaleWidth + startLeft) return;
4402
4399
  var time = parserPixelToTime(left, {
4403
4400
  startLeft: startLeft,
@@ -4732,8 +4729,9 @@ var Timeline = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (p
4732
4729
  var data = scrollSync.current.state.scrollLeft + delta;
4733
4730
  var maxScrollLeft = getMaxScrollLeft();
4734
4731
  if (data > maxScrollLeft) return;
4732
+ var nextScrollLeft = Math.max(scrollSync.current.state.scrollLeft + delta, 0);
4735
4733
  scrollSync.current && scrollSync.current.setState({
4736
- scrollLeft: Math.max(scrollSync.current.state.scrollLeft + delta, 0)
4734
+ scrollLeft: nextScrollLeft
4737
4735
  });
4738
4736
  }, [getMaxScrollLeft]);
4739
4737
  useLayoutEffect(function () {
@@ -4741,10 +4739,6 @@ var Timeline = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (p
4741
4739
  var maxScrollLeft = getMaxScrollLeft();
4742
4740
  var currentScrollLeft = (_scrollSync$current$s = (_scrollSync$current = scrollSync.current) === null || _scrollSync$current === void 0 ? void 0 : _scrollSync$current.state.scrollLeft) !== null && _scrollSync$current$s !== void 0 ? _scrollSync$current$s : 0;
4743
4741
  var nextScrollLeft = Math.min(Math.max(currentScrollLeft, 0), maxScrollLeft);
4744
- var timelineEl = document.querySelector('.timeline-editor');
4745
- if (timelineEl && Math.abs(timelineEl.scrollLeft - nextScrollLeft) > 1) {
4746
- timelineEl.scrollLeft = nextScrollLeft;
4747
- }
4748
4742
  if (scrollSync.current && Math.abs(currentScrollLeft - nextScrollLeft) > 1) {
4749
4743
  scrollSync.current.setState({
4750
4744
  scrollLeft: nextScrollLeft
@@ -4842,11 +4836,8 @@ var Timeline = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (p
4842
4836
  });
4843
4837
  },
4844
4838
  setScrollLeftFromTime: function setScrollLeftFromTime(val) {
4845
- var containerEl = document.querySelector('.timeline-editor');
4846
- if (!containerEl) return;
4847
4839
  var left = startLeft + scaleWidth / scale * val;
4848
4840
  var nextScrollLeft = Math.min(Math.max(left, 0), getMaxScrollLeft());
4849
- containerEl.scrollLeft = nextScrollLeft;
4850
4841
  scrollSync.current && scrollSync.current.setState({
4851
4842
  scrollLeft: nextScrollLeft
4852
4843
  });
@@ -4859,12 +4850,11 @@ var Timeline = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (p
4859
4850
  };
4860
4851
  });
4861
4852
  var onClickTimeline = useCallback(function (e) {
4862
- var _ref2, _timelineEditorEl$scr, _scrollSync$current2, _e$target;
4853
+ var _scrollSync$current$s2, _scrollSync$current2, _e$target;
4863
4854
  if (!domRef.current) return;
4864
- var timelineEditorEl = document.querySelector('.timeline-editor');
4865
4855
  var rect = domRef.current.getBoundingClientRect();
4866
4856
  var position = e.clientX - rect.x;
4867
- var scrollLeft = (_ref2 = (_timelineEditorEl$scr = timelineEditorEl === null || timelineEditorEl === void 0 ? void 0 : timelineEditorEl.scrollLeft) !== null && _timelineEditorEl$scr !== void 0 ? _timelineEditorEl$scr : (_scrollSync$current2 = scrollSync.current) === null || _scrollSync$current2 === void 0 ? void 0 : _scrollSync$current2.state.scrollLeft) !== null && _ref2 !== void 0 ? _ref2 : 0;
4857
+ var scrollLeft = (_scrollSync$current$s2 = (_scrollSync$current2 = scrollSync.current) === null || _scrollSync$current2 === void 0 ? void 0 : _scrollSync$current2.state.scrollLeft) !== null && _scrollSync$current$s2 !== void 0 ? _scrollSync$current$s2 : 0;
4868
4858
  var left = position + scrollLeft;
4869
4859
  var time = parserPixelToTime(left, {
4870
4860
  startLeft: startLeft,
@@ -4892,42 +4882,6 @@ var Timeline = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (p
4892
4882
  };
4893
4883
  }
4894
4884
  }, []);
4895
- var containerEl = document.querySelector('.timeline-editor');
4896
- useEffect(function () {
4897
- var containerEl = document.querySelector('.timeline-editor');
4898
- var handleScroll = throttle(function (e) {
4899
- console.log('handleScroll', e);
4900
- var scrollLeft = e.target.scrollLeft || 0;
4901
- scrollSync.current && scrollSync.current.setState({
4902
- scrollLeft: scrollLeft
4903
- });
4904
- var clientWidth = document.documentElement.clientWidth;
4905
- var timeStart = parserPixelToTime(scrollLeft, {
4906
- startLeft: startLeft,
4907
- scale: scale,
4908
- scaleWidth: scaleWidth
4909
- });
4910
- var timeEnd = parserPixelToTime(scrollLeft + clientWidth, {
4911
- startLeft: startLeft,
4912
- scale: scale,
4913
- scaleWidth: scaleWidth
4914
- });
4915
- window.dispatchEvent(new CustomEvent('container-scroll', {
4916
- detail: {
4917
- scrollLeft: scrollLeft,
4918
- scrollWidth: containerEl.scrollWidth,
4919
- clientWidth: clientWidth,
4920
- timeStart: timeStart,
4921
- timeEnd: timeEnd
4922
- }
4923
- }));
4924
- }, 100);
4925
- containerEl.addEventListener('scroll', handleScroll);
4926
- return function () {
4927
- containerEl.removeEventListener('scroll', handleScroll);
4928
- handleScroll.cancel();
4929
- };
4930
- }, [startLeft, scale, scaleWidth]);
4931
4885
  console.log('Timeline cursorTime = ', cursorTime);
4932
4886
  return /*#__PURE__*/React.createElement("div", {
4933
4887
  ref: domRef,
@@ -4935,10 +4889,11 @@ var Timeline = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (p
4935
4889
  className: "".concat(className || '', " ").concat(theme || '', " ").concat(PREFIX, " ").concat(disableDrag ? PREFIX + '-disable' : '')
4936
4890
  }, /*#__PURE__*/React.createElement(ScrollSync, {
4937
4891
  ref: scrollSync
4938
- }, function (_ref3) {
4939
- var scrollTop = _ref3.scrollTop,
4940
- _onScroll = _ref3.onScroll;
4941
- var scrollLeft = (containerEl === null || containerEl === void 0 ? void 0 : containerEl.scrollLeft) || 0;
4892
+ }, function (_ref2) {
4893
+ var scrollTop = _ref2.scrollTop,
4894
+ _ref2$scrollLeft = _ref2.scrollLeft,
4895
+ scrollLeft = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,
4896
+ _onScroll = _ref2.onScroll;
4942
4897
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TimeArea, _objectSpread2(_objectSpread2({}, checkedProps), {}, {
4943
4898
  timelineWidth: width,
4944
4899
  disableDrag: disableDrag || isPlaying,
@@ -4952,8 +4907,8 @@ var Timeline = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (p
4952
4907
  cursorRef: cursorRef
4953
4908
  })), areaCount === 1 ? (/*#__PURE__*/React.createElement(EditArea, _objectSpread2(_objectSpread2({}, checkedProps), {}, {
4954
4909
  timelineWidth: width,
4955
- ref: function ref(_ref4) {
4956
- return areaRef.current = _ref4 === null || _ref4 === void 0 ? void 0 : _ref4.domRef.current;
4910
+ ref: function ref(_ref3) {
4911
+ return areaRef.current = _ref3 === null || _ref3 === void 0 ? void 0 : _ref3.domRef.current;
4957
4912
  },
4958
4913
  disableDrag: disableDrag || isPlaying,
4959
4914
  editorData: editorData,
@@ -5014,8 +4969,8 @@ var Timeline = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (p
5014
4969
  }, checkedProps), {}, {
5015
4970
  className: index !== 0 ? "no-flex ".concat(key, " ").concat(index, " overflow-hidden") : "overflow-hidden ".concat(key, " ").concat(index),
5016
4971
  timelineWidth: width,
5017
- ref: function ref(_ref5) {
5018
- return areaRef.current = _ref5 === null || _ref5 === void 0 ? void 0 : _ref5.domRef.current;
4972
+ ref: function ref(_ref4) {
4973
+ return areaRef.current = _ref4 === null || _ref4 === void 0 ? void 0 : _ref4.domRef.current;
5019
4974
  },
5020
4975
  disableDrag: disableDrag || isPlaying,
5021
4976
  editorData: groupedData[key],
package/dist/index.js CHANGED
@@ -766,7 +766,7 @@ var TimelineEngine = /*#__PURE__*/function (_Emitter) {
766
766
  var actionId = this._activeActionIds[i];
767
767
  var action = this._actionMap[actionId];
768
768
  // 不在播放区域内
769
- if (action.start > time || action.end < time) {
769
+ if (action.start > time || action.end <= time) {
770
770
  var _effect$source6;
771
771
  var effect = this._effectMap[action.effectId];
772
772
  if (effect && ((_effect$source6 = effect.source) === null || _effect$source6 === void 0 ? void 0 : _effect$source6.leave)) {
@@ -4332,7 +4332,7 @@ var TimeArea = function TimeArea(_ref) {
4332
4332
  var gridRef = React.useRef();
4333
4333
  /** 是否显示细分刻度 */
4334
4334
  var showUnit = scaleSplitCount > 0;
4335
- var visibleWidth = document.documentElement.clientWidth;
4335
+ var visibleWidth = timelineWidth;
4336
4336
  /** 获取每个 cell 渲染内容 */
4337
4337
  var cellRenderer = function cellRenderer(_ref2) {
4338
4338
  var columnIndex = _ref2.columnIndex,
@@ -4401,13 +4401,10 @@ var TimeArea = function TimeArea(_ref) {
4401
4401
  height: height
4402
4402
  },
4403
4403
  onClick: function onClick(e) {
4404
- var _timelineEditorEl$scr;
4405
4404
  if (hideCursor) return;
4406
- var timelineEditorEl = document.querySelector('.timeline-editor');
4407
4405
  var rect = e.currentTarget.getBoundingClientRect();
4408
4406
  var position = e.clientX - rect.x;
4409
- var actualScrollLeft = (_timelineEditorEl$scr = timelineEditorEl === null || timelineEditorEl === void 0 ? void 0 : timelineEditorEl.scrollLeft) !== null && _timelineEditorEl$scr !== void 0 ? _timelineEditorEl$scr : scrollLeft;
4410
- var left = Math.max(position + actualScrollLeft, startLeft);
4407
+ var left = Math.max(position + scrollLeft, startLeft);
4411
4408
  if (left > maxScaleCount * scaleWidth + startLeft) return;
4412
4409
  var time = parserPixelToTime(left, {
4413
4410
  startLeft: startLeft,
@@ -4742,8 +4739,9 @@ var Timeline = /*#__PURE__*/React__default['default'].memo(/*#__PURE__*/React__d
4742
4739
  var data = scrollSync.current.state.scrollLeft + delta;
4743
4740
  var maxScrollLeft = getMaxScrollLeft();
4744
4741
  if (data > maxScrollLeft) return;
4742
+ var nextScrollLeft = Math.max(scrollSync.current.state.scrollLeft + delta, 0);
4745
4743
  scrollSync.current && scrollSync.current.setState({
4746
- scrollLeft: Math.max(scrollSync.current.state.scrollLeft + delta, 0)
4744
+ scrollLeft: nextScrollLeft
4747
4745
  });
4748
4746
  }, [getMaxScrollLeft]);
4749
4747
  React.useLayoutEffect(function () {
@@ -4751,10 +4749,6 @@ var Timeline = /*#__PURE__*/React__default['default'].memo(/*#__PURE__*/React__d
4751
4749
  var maxScrollLeft = getMaxScrollLeft();
4752
4750
  var currentScrollLeft = (_scrollSync$current$s = (_scrollSync$current = scrollSync.current) === null || _scrollSync$current === void 0 ? void 0 : _scrollSync$current.state.scrollLeft) !== null && _scrollSync$current$s !== void 0 ? _scrollSync$current$s : 0;
4753
4751
  var nextScrollLeft = Math.min(Math.max(currentScrollLeft, 0), maxScrollLeft);
4754
- var timelineEl = document.querySelector('.timeline-editor');
4755
- if (timelineEl && Math.abs(timelineEl.scrollLeft - nextScrollLeft) > 1) {
4756
- timelineEl.scrollLeft = nextScrollLeft;
4757
- }
4758
4752
  if (scrollSync.current && Math.abs(currentScrollLeft - nextScrollLeft) > 1) {
4759
4753
  scrollSync.current.setState({
4760
4754
  scrollLeft: nextScrollLeft
@@ -4852,11 +4846,8 @@ var Timeline = /*#__PURE__*/React__default['default'].memo(/*#__PURE__*/React__d
4852
4846
  });
4853
4847
  },
4854
4848
  setScrollLeftFromTime: function setScrollLeftFromTime(val) {
4855
- var containerEl = document.querySelector('.timeline-editor');
4856
- if (!containerEl) return;
4857
4849
  var left = startLeft + scaleWidth / scale * val;
4858
4850
  var nextScrollLeft = Math.min(Math.max(left, 0), getMaxScrollLeft());
4859
- containerEl.scrollLeft = nextScrollLeft;
4860
4851
  scrollSync.current && scrollSync.current.setState({
4861
4852
  scrollLeft: nextScrollLeft
4862
4853
  });
@@ -4869,12 +4860,11 @@ var Timeline = /*#__PURE__*/React__default['default'].memo(/*#__PURE__*/React__d
4869
4860
  };
4870
4861
  });
4871
4862
  var onClickTimeline = React.useCallback(function (e) {
4872
- var _ref2, _timelineEditorEl$scr, _scrollSync$current2, _e$target;
4863
+ var _scrollSync$current$s2, _scrollSync$current2, _e$target;
4873
4864
  if (!domRef.current) return;
4874
- var timelineEditorEl = document.querySelector('.timeline-editor');
4875
4865
  var rect = domRef.current.getBoundingClientRect();
4876
4866
  var position = e.clientX - rect.x;
4877
- var scrollLeft = (_ref2 = (_timelineEditorEl$scr = timelineEditorEl === null || timelineEditorEl === void 0 ? void 0 : timelineEditorEl.scrollLeft) !== null && _timelineEditorEl$scr !== void 0 ? _timelineEditorEl$scr : (_scrollSync$current2 = scrollSync.current) === null || _scrollSync$current2 === void 0 ? void 0 : _scrollSync$current2.state.scrollLeft) !== null && _ref2 !== void 0 ? _ref2 : 0;
4867
+ var scrollLeft = (_scrollSync$current$s2 = (_scrollSync$current2 = scrollSync.current) === null || _scrollSync$current2 === void 0 ? void 0 : _scrollSync$current2.state.scrollLeft) !== null && _scrollSync$current$s2 !== void 0 ? _scrollSync$current$s2 : 0;
4878
4868
  var left = position + scrollLeft;
4879
4869
  var time = parserPixelToTime(left, {
4880
4870
  startLeft: startLeft,
@@ -4902,42 +4892,6 @@ var Timeline = /*#__PURE__*/React__default['default'].memo(/*#__PURE__*/React__d
4902
4892
  };
4903
4893
  }
4904
4894
  }, []);
4905
- var containerEl = document.querySelector('.timeline-editor');
4906
- React.useEffect(function () {
4907
- var containerEl = document.querySelector('.timeline-editor');
4908
- var handleScroll = lodashEs.throttle(function (e) {
4909
- console.log('handleScroll', e);
4910
- var scrollLeft = e.target.scrollLeft || 0;
4911
- scrollSync.current && scrollSync.current.setState({
4912
- scrollLeft: scrollLeft
4913
- });
4914
- var clientWidth = document.documentElement.clientWidth;
4915
- var timeStart = parserPixelToTime(scrollLeft, {
4916
- startLeft: startLeft,
4917
- scale: scale,
4918
- scaleWidth: scaleWidth
4919
- });
4920
- var timeEnd = parserPixelToTime(scrollLeft + clientWidth, {
4921
- startLeft: startLeft,
4922
- scale: scale,
4923
- scaleWidth: scaleWidth
4924
- });
4925
- window.dispatchEvent(new CustomEvent('container-scroll', {
4926
- detail: {
4927
- scrollLeft: scrollLeft,
4928
- scrollWidth: containerEl.scrollWidth,
4929
- clientWidth: clientWidth,
4930
- timeStart: timeStart,
4931
- timeEnd: timeEnd
4932
- }
4933
- }));
4934
- }, 100);
4935
- containerEl.addEventListener('scroll', handleScroll);
4936
- return function () {
4937
- containerEl.removeEventListener('scroll', handleScroll);
4938
- handleScroll.cancel();
4939
- };
4940
- }, [startLeft, scale, scaleWidth]);
4941
4895
  console.log('Timeline cursorTime = ', cursorTime);
4942
4896
  return /*#__PURE__*/React__default['default'].createElement("div", {
4943
4897
  ref: domRef,
@@ -4945,10 +4899,11 @@ var Timeline = /*#__PURE__*/React__default['default'].memo(/*#__PURE__*/React__d
4945
4899
  className: "".concat(className || '', " ").concat(theme || '', " ").concat(PREFIX, " ").concat(disableDrag ? PREFIX + '-disable' : '')
4946
4900
  }, /*#__PURE__*/React__default['default'].createElement(reactVirtualized.ScrollSync, {
4947
4901
  ref: scrollSync
4948
- }, function (_ref3) {
4949
- var scrollTop = _ref3.scrollTop,
4950
- _onScroll = _ref3.onScroll;
4951
- var scrollLeft = (containerEl === null || containerEl === void 0 ? void 0 : containerEl.scrollLeft) || 0;
4902
+ }, function (_ref2) {
4903
+ var scrollTop = _ref2.scrollTop,
4904
+ _ref2$scrollLeft = _ref2.scrollLeft,
4905
+ scrollLeft = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,
4906
+ _onScroll = _ref2.onScroll;
4952
4907
  return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(TimeArea, _objectSpread2(_objectSpread2({}, checkedProps), {}, {
4953
4908
  timelineWidth: width,
4954
4909
  disableDrag: disableDrag || isPlaying,
@@ -4962,8 +4917,8 @@ var Timeline = /*#__PURE__*/React__default['default'].memo(/*#__PURE__*/React__d
4962
4917
  cursorRef: cursorRef
4963
4918
  })), areaCount === 1 ? (/*#__PURE__*/React__default['default'].createElement(EditArea, _objectSpread2(_objectSpread2({}, checkedProps), {}, {
4964
4919
  timelineWidth: width,
4965
- ref: function ref(_ref4) {
4966
- return areaRef.current = _ref4 === null || _ref4 === void 0 ? void 0 : _ref4.domRef.current;
4920
+ ref: function ref(_ref3) {
4921
+ return areaRef.current = _ref3 === null || _ref3 === void 0 ? void 0 : _ref3.domRef.current;
4967
4922
  },
4968
4923
  disableDrag: disableDrag || isPlaying,
4969
4924
  editorData: editorData,
@@ -5024,8 +4979,8 @@ var Timeline = /*#__PURE__*/React__default['default'].memo(/*#__PURE__*/React__d
5024
4979
  }, checkedProps), {}, {
5025
4980
  className: index !== 0 ? "no-flex ".concat(key, " ").concat(index, " overflow-hidden") : "overflow-hidden ".concat(key, " ").concat(index),
5026
4981
  timelineWidth: width,
5027
- ref: function ref(_ref5) {
5028
- return areaRef.current = _ref5 === null || _ref5 === void 0 ? void 0 : _ref5.domRef.current;
4982
+ ref: function ref(_ref4) {
4983
+ return areaRef.current = _ref4 === null || _ref4 === void 0 ? void 0 : _ref4.domRef.current;
5029
4984
  },
5030
4985
  disableDrag: disableDrag || isPlaying,
5031
4986
  editorData: groupedData[key],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sense-react-timeline-editor",
3
- "version": "1.1.27",
3
+ "version": "1.1.28",
4
4
  "author": "xzdarcy",
5
5
  "license": "MIT",
6
6
  "keywords": [