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

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,11 @@ function CustomDateHeader(_ref) {
44
47
  intervalRenderer: intervalRenderer,
45
48
  headerData: headerData
46
49
  });
47
- }));
50
+ }), markerTimeProps && _react["default"].createElement("div", {
51
+ className: 'rct-header-time-marker ' + markerTimeProps.className,
52
+ style: {
53
+ position: 'absolute',
54
+ left: markerTimeProps.left
55
+ }
56
+ }, markerTimeProps.formatter ? markerTimeProps.formatter(markerTimeProps.time) : (0, _moment["default"])(markerTimeProps.time).format('hh:mm aa')));
48
57
  }
@@ -107,6 +107,26 @@ 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 className = markerTime.className,
120
+ time = markerTime.time,
121
+ formatter = markerTime.formatter;
122
+ return {
123
+ className: className,
124
+ time: time,
125
+ formatter: formatter,
126
+ left: getLeftOffsetFromDate(time)
127
+ };
128
+ });
129
+
110
130
  _defineProperty(_assertThisInitialized(_this), "getIntervalStyle", function (_ref2) {
111
131
  var left = _ref2.left,
112
132
  labelWidth = _ref2.labelWidth,
@@ -119,15 +139,15 @@ function (_React$Component) {
119
139
  });
120
140
 
121
141
  _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
142
+ var _this$props2 = _this.props,
143
+ canvasTimeStart = _this$props2.canvasTimeStart,
144
+ canvasTimeEnd = _this$props2.canvasTimeEnd,
145
+ unit = _this$props2.unit,
146
+ showPeriod = _this$props2.showPeriod,
147
+ timelineWidth = _this$props2.timelineWidth,
148
+ visibleTimeStart = _this$props2.visibleTimeStart,
149
+ visibleTimeEnd = _this$props2.visibleTimeEnd,
150
+ headerData = _this$props2.headerData; //TODO: only evaluate on changing params
131
151
 
132
152
  return {
133
153
  timelineContext: {
@@ -144,7 +164,8 @@ function (_React$Component) {
144
164
  getRootProps: _this.getRootProps,
145
165
  getIntervalProps: _this.getIntervalProps,
146
166
  showPeriod: showPeriod,
147
- data: headerData
167
+ data: headerData,
168
+ markerTimeProps: _this.getMarkerTimeProps()
148
169
  };
149
170
  });
150
171
 
@@ -175,7 +196,7 @@ function (_React$Component) {
175
196
  _createClass(CustomHeader, [{
176
197
  key: "shouldComponentUpdate",
177
198
  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) {
199
+ 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
200
  return true;
180
201
  }
181
202
 
@@ -234,14 +255,16 @@ _defineProperty(CustomHeader, "propTypes", {
234
255
  showPeriod: _propTypes["default"].func.isRequired,
235
256
  headerData: _propTypes["default"].object,
236
257
  getLeftOffsetFromDate: _propTypes["default"].func.isRequired,
237
- height: _propTypes["default"].number.isRequired
258
+ height: _propTypes["default"].number.isRequired,
259
+ markerTime: _propTypes["default"].object
238
260
  });
239
261
 
240
262
  var CustomHeaderWrapper = function CustomHeaderWrapper(_ref3) {
241
263
  var children = _ref3.children,
242
264
  unit = _ref3.unit,
243
265
  headerData = _ref3.headerData,
244
- height = _ref3.height;
266
+ height = _ref3.height,
267
+ markerTime = _ref3.markerTime;
245
268
  return _react["default"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref4) {
246
269
  var getTimelineState = _ref4.getTimelineState,
247
270
  showPeriod = _ref4.showPeriod,
@@ -257,7 +280,8 @@ var CustomHeaderWrapper = function CustomHeaderWrapper(_ref3) {
257
280
  }, timelineState, {
258
281
  headerData: headerData,
259
282
  getLeftOffsetFromDate: getLeftOffsetFromDate,
260
- height: height
283
+ height: height,
284
+ markerTime: markerTime
261
285
  }));
262
286
  });
263
287
  });
@@ -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.7",
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,11 @@ 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
+ className?: string
414
+ time: Date
415
+ formatter?: (date: Date) => string
416
+ }
412
417
  }
413
418
  export class DateHeader<Data = any> extends React.Component<
414
419
  DateHeaderProps<Data>