@oddle.me/react-calendar-timeline 0.29.6 → 0.29.8

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.
@@ -39,6 +39,8 @@ var _TimelineHeaders = _interopRequireDefault(require("./headers/TimelineHeaders
39
39
 
40
40
  var _DateHeader = _interopRequireDefault(require("./headers/DateHeader"));
41
41
 
42
+ var _moment = _interopRequireDefault(require("moment"));
43
+
42
44
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
43
45
 
44
46
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -166,10 +168,6 @@ function (_Component) {
166
168
 
167
169
  if (scrollY) {
168
170
  _this.outerScrollElm.scrollTop += scrollY;
169
-
170
- if (_this.props.onVerticalScroll) {
171
- _this.props.onVerticalScroll(_this.outerScrollElm.scrollTop);
172
- }
173
171
  }
174
172
  });
175
173
 
@@ -500,6 +498,8 @@ function (_Component) {
500
498
  _createClass(ReactCalendarTimeline, [{
501
499
  key: "componentDidMount",
502
500
  value: function componentDidMount() {
501
+ var _this3 = this;
502
+
503
503
  this.resize(this.props);
504
504
 
505
505
  if (this.props.resizeDetector && this.props.resizeDetector.addListener) {
@@ -513,6 +513,10 @@ function (_Component) {
513
513
  if (this.props.initialScrollTop) {
514
514
  this.outerScrollElm.scrollTop = this.props.initialScrollTop;
515
515
  }
516
+
517
+ this.outerScrollElm.addEventListener('scroll', function () {
518
+ _this3.props.onVerticalScroll(_this3.outerScrollElm.scrollTop);
519
+ });
516
520
  }
517
521
  }, {
518
522
  key: "componentWillUnmount",
@@ -644,7 +648,7 @@ function (_Component) {
644
648
  }, {
645
649
  key: "childrenWithProps",
646
650
  value: function childrenWithProps(canvasTimeStart, canvasTimeEnd, canvasWidth, dimensionItems, groupHeights, groupTops, height, visibleTimeStart, visibleTimeEnd, minUnit, timeSteps) {
647
- var _this3 = this;
651
+ var _this4 = this;
648
652
 
649
653
  if (!this.props.children) {
650
654
  return null;
@@ -672,7 +676,7 @@ function (_Component) {
672
676
  timeSteps: timeSteps
673
677
  };
674
678
  return _react["default"].Children.map(childArray, function (child) {
675
- if (!_this3.isTimelineHeader(child)) {
679
+ if (!_this4.isTimelineHeader(child)) {
676
680
  return _react["default"].cloneElement(child, childProps);
677
681
  } else {
678
682
  return null;
@@ -701,7 +705,7 @@ function (_Component) {
701
705
  }, {
702
706
  key: "render",
703
707
  value: function render() {
704
- var _this4 = this;
708
+ var _this5 = this;
705
709
 
706
710
  var _this$props3 = this.props,
707
711
  items = _this$props3.items,
@@ -757,7 +761,7 @@ function (_Component) {
757
761
  }, _react["default"].createElement("div", {
758
762
  style: this.props.style,
759
763
  ref: function ref(el) {
760
- return _this4.container = el;
764
+ return _this5.container = el;
761
765
  },
762
766
  className: "react-calendar-timeline ".concat(this.props.className)
763
767
  }, this.renderHeaders(), _react["default"].createElement("div", {
@@ -9,6 +9,8 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _Interval = _interopRequireDefault(require("./Interval"));
11
11
 
12
+ var _moment = _interopRequireDefault(require("moment"));
13
+
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
15
 
14
16
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -20,6 +22,7 @@ function CustomDateHeader(_ref) {
20
22
  getRootProps = _ref.getRootProps,
21
23
  getIntervalProps = _ref.getIntervalProps,
22
24
  showPeriod = _ref.showPeriod,
25
+ markerTimeProps = _ref.markerTimeProps,
23
26
  _ref$data = _ref.data,
24
27
  style = _ref$data.style,
25
28
  intervalRenderer = _ref$data.intervalRenderer,
@@ -44,5 +47,7 @@ function CustomDateHeader(_ref) {
44
47
  intervalRenderer: intervalRenderer,
45
48
  headerData: headerData
46
49
  });
50
+ }), markerTimeProps && markerTimeProps.renderer(markerTimeProps.time, {
51
+ left: markerTimeProps.left
47
52
  }));
48
53
  }
@@ -107,6 +107,23 @@ function (_React$Component) {
107
107
  };
108
108
  });
109
109
 
110
+ _defineProperty(_assertThisInitialized(_this), "getMarkerTimeProps", function () {
111
+ var _this$props = _this.props,
112
+ markerTime = _this$props.markerTime,
113
+ getLeftOffsetFromDate = _this$props.getLeftOffsetFromDate;
114
+
115
+ if (!markerTime) {
116
+ return null;
117
+ }
118
+
119
+ var time = markerTime.time,
120
+ renderer = markerTime.renderer;
121
+ return {
122
+ left: getLeftOffsetFromDate(time),
123
+ renderer: renderer
124
+ };
125
+ });
126
+
110
127
  _defineProperty(_assertThisInitialized(_this), "getIntervalStyle", function (_ref2) {
111
128
  var left = _ref2.left,
112
129
  labelWidth = _ref2.labelWidth,
@@ -119,15 +136,15 @@ function (_React$Component) {
119
136
  });
120
137
 
121
138
  _defineProperty(_assertThisInitialized(_this), "getStateAndHelpers", function () {
122
- var _this$props = _this.props,
123
- canvasTimeStart = _this$props.canvasTimeStart,
124
- canvasTimeEnd = _this$props.canvasTimeEnd,
125
- unit = _this$props.unit,
126
- showPeriod = _this$props.showPeriod,
127
- timelineWidth = _this$props.timelineWidth,
128
- visibleTimeStart = _this$props.visibleTimeStart,
129
- visibleTimeEnd = _this$props.visibleTimeEnd,
130
- headerData = _this$props.headerData; //TODO: only evaluate on changing params
139
+ var _this$props2 = _this.props,
140
+ canvasTimeStart = _this$props2.canvasTimeStart,
141
+ canvasTimeEnd = _this$props2.canvasTimeEnd,
142
+ unit = _this$props2.unit,
143
+ showPeriod = _this$props2.showPeriod,
144
+ timelineWidth = _this$props2.timelineWidth,
145
+ visibleTimeStart = _this$props2.visibleTimeStart,
146
+ visibleTimeEnd = _this$props2.visibleTimeEnd,
147
+ headerData = _this$props2.headerData; //TODO: only evaluate on changing params
131
148
 
132
149
  return {
133
150
  timelineContext: {
@@ -144,7 +161,8 @@ function (_React$Component) {
144
161
  getRootProps: _this.getRootProps,
145
162
  getIntervalProps: _this.getIntervalProps,
146
163
  showPeriod: showPeriod,
147
- data: headerData
164
+ data: headerData,
165
+ markerTimeProps: _this.getMarkerTimeProps()
148
166
  };
149
167
  });
150
168
 
@@ -175,7 +193,7 @@ function (_React$Component) {
175
193
  _createClass(CustomHeader, [{
176
194
  key: "shouldComponentUpdate",
177
195
  value: function shouldComponentUpdate(nextProps) {
178
- if (nextProps.canvasTimeStart !== this.props.canvasTimeStart || nextProps.canvasTimeEnd !== this.props.canvasTimeEnd || nextProps.canvasWidth !== this.props.canvasWidth || nextProps.unit !== this.props.unit || nextProps.timeSteps !== this.props.timeSteps || nextProps.showPeriod !== this.props.showPeriod || nextProps.children !== this.props.children || nextProps.headerData !== this.props.headerData) {
196
+ if (nextProps.canvasTimeStart !== this.props.canvasTimeStart || nextProps.canvasTimeEnd !== this.props.canvasTimeEnd || nextProps.canvasWidth !== this.props.canvasWidth || nextProps.unit !== this.props.unit || nextProps.timeSteps !== this.props.timeSteps || nextProps.showPeriod !== this.props.showPeriod || nextProps.children !== this.props.children || nextProps.headerData !== this.props.headerData || nextProps.markerTime !== this.props.markerTime) {
179
197
  return true;
180
198
  }
181
199
 
@@ -234,14 +252,16 @@ _defineProperty(CustomHeader, "propTypes", {
234
252
  showPeriod: _propTypes["default"].func.isRequired,
235
253
  headerData: _propTypes["default"].object,
236
254
  getLeftOffsetFromDate: _propTypes["default"].func.isRequired,
237
- height: _propTypes["default"].number.isRequired
255
+ height: _propTypes["default"].number.isRequired,
256
+ markerTime: _propTypes["default"].object
238
257
  });
239
258
 
240
259
  var CustomHeaderWrapper = function CustomHeaderWrapper(_ref3) {
241
260
  var children = _ref3.children,
242
261
  unit = _ref3.unit,
243
262
  headerData = _ref3.headerData,
244
- height = _ref3.height;
263
+ height = _ref3.height,
264
+ markerTime = _ref3.markerTime;
245
265
  return _react["default"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref4) {
246
266
  var getTimelineState = _ref4.getTimelineState,
247
267
  showPeriod = _ref4.showPeriod,
@@ -257,7 +277,8 @@ var CustomHeaderWrapper = function CustomHeaderWrapper(_ref3) {
257
277
  }, timelineState, {
258
278
  headerData: headerData,
259
279
  getLeftOffsetFromDate: getLeftOffsetFromDate,
260
- height: height
280
+ height: height,
281
+ markerTime: markerTime
261
282
  }));
262
283
  });
263
284
  });
@@ -120,12 +120,14 @@ function (_React$Component) {
120
120
  var unit = this.getHeaderUnit();
121
121
  var _this$props = this.props,
122
122
  headerData = _this$props.headerData,
123
- height = _this$props.height;
123
+ height = _this$props.height,
124
+ markerTime = _this$props.markerTime;
124
125
  return _react["default"].createElement(_CustomHeader["default"], {
125
126
  unit: unit,
126
127
  height: height,
127
128
  headerData: this.getHeaderData(this.props.intervalRenderer, this.getRootStyle(this.props.style), this.props.className, this.getLabelFormat, this.props.unit, this.props.headerData),
128
- children: _CustomDateHeader.CustomDateHeader
129
+ children: _CustomDateHeader.CustomDateHeader,
130
+ markerTime: markerTime
129
131
  });
130
132
  }
131
133
  }]);
@@ -141,7 +143,8 @@ _defineProperty(DateHeader, "propTypes", {
141
143
  labelFormat: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].objectOf(_propTypes["default"].objectOf(_propTypes["default"].string)), _propTypes["default"].string]).isRequired,
142
144
  intervalRenderer: _propTypes["default"].func,
143
145
  headerData: _propTypes["default"].object,
144
- height: _propTypes["default"].number
146
+ height: _propTypes["default"].number,
147
+ markerTime: _propTypes["default"].object
145
148
  });
146
149
 
147
150
  var DateHeaderWrapper = function DateHeaderWrapper(_ref) {
@@ -151,7 +154,8 @@ var DateHeaderWrapper = function DateHeaderWrapper(_ref) {
151
154
  className = _ref.className,
152
155
  intervalRenderer = _ref.intervalRenderer,
153
156
  headerData = _ref.headerData,
154
- height = _ref.height;
157
+ height = _ref.height,
158
+ markerTime = _ref.markerTime;
155
159
  return _react["default"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref2) {
156
160
  var getTimelineState = _ref2.getTimelineState;
157
161
  var timelineState = getTimelineState();
@@ -163,7 +167,8 @@ var DateHeaderWrapper = function DateHeaderWrapper(_ref) {
163
167
  className: className,
164
168
  intervalRenderer: intervalRenderer,
165
169
  headerData: headerData,
166
- height: height
170
+ height: height,
171
+ markerTime: markerTime
167
172
  });
168
173
  });
169
174
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oddle.me/react-calendar-timeline",
3
- "version": "0.29.6",
3
+ "version": "0.29.8",
4
4
  "description": "react calendar timeline",
5
5
  "main": "lib/index.js",
6
6
  "types": "src/global.d.ts",
package/src/global.d.ts CHANGED
@@ -409,6 +409,10 @@ declare module '@oddle.me/react-calendar-timeline' {
409
409
  | ((props: SidebarHeaderChildrenFnProps<Data>) => React.ReactNode)
410
410
  | undefined
411
411
  height?: number | undefined
412
+ markerTime?: {
413
+ time: Date
414
+ renderer: (time: number, style: React.CSSProperties) => React.ReactNode
415
+ }
412
416
  }
413
417
  export class DateHeader<Data = any> extends React.Component<
414
418
  DateHeaderProps<Data>