@oddle.me/react-calendar-timeline 0.28.1-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 (46) hide show
  1. package/LICENSE.md +8 -0
  2. package/README.md +1298 -0
  3. package/lib/Timeline.css +110 -0
  4. package/lib/index.js +77 -0
  5. package/lib/lib/Timeline.js +966 -0
  6. package/lib/lib/columns/Columns.js +137 -0
  7. package/lib/lib/default-config.js +73 -0
  8. package/lib/lib/headers/CustomDateHeader.js +48 -0
  9. package/lib/lib/headers/CustomHeader.js +276 -0
  10. package/lib/lib/headers/DateHeader.js +206 -0
  11. package/lib/lib/headers/HeadersContext.js +94 -0
  12. package/lib/lib/headers/Interval.js +131 -0
  13. package/lib/lib/headers/SidebarHeader.js +130 -0
  14. package/lib/lib/headers/TimelineHeaders.js +180 -0
  15. package/lib/lib/headers/constants.js +10 -0
  16. package/lib/lib/interaction/PreventClickOnDrag.js +99 -0
  17. package/lib/lib/items/Item.js +627 -0
  18. package/lib/lib/items/Items.js +178 -0
  19. package/lib/lib/items/defaultItemRenderer.js +40 -0
  20. package/lib/lib/items/styles.js +65 -0
  21. package/lib/lib/layout/Sidebar.js +138 -0
  22. package/lib/lib/markers/MarkerCanvas.js +164 -0
  23. package/lib/lib/markers/MarkerCanvasContext.js +28 -0
  24. package/lib/lib/markers/TimelineMarkersContext.js +157 -0
  25. package/lib/lib/markers/TimelineMarkersRenderer.js +69 -0
  26. package/lib/lib/markers/implementations/CursorMarker.js +137 -0
  27. package/lib/lib/markers/implementations/CustomMarker.js +79 -0
  28. package/lib/lib/markers/implementations/TodayMarker.js +123 -0
  29. package/lib/lib/markers/implementations/shared.js +51 -0
  30. package/lib/lib/markers/markerType.js +12 -0
  31. package/lib/lib/markers/public/CursorMarker.js +97 -0
  32. package/lib/lib/markers/public/CustomMarker.js +116 -0
  33. package/lib/lib/markers/public/TimelineMarkers.js +27 -0
  34. package/lib/lib/markers/public/TodayMarker.js +121 -0
  35. package/lib/lib/row/GroupRow.js +94 -0
  36. package/lib/lib/row/GroupRows.js +117 -0
  37. package/lib/lib/scroll/ScrollElement.js +285 -0
  38. package/lib/lib/timeline/TimelineStateContext.js +155 -0
  39. package/lib/lib/utility/calendar.js +672 -0
  40. package/lib/lib/utility/dom-helpers.js +62 -0
  41. package/lib/lib/utility/events.js +23 -0
  42. package/lib/lib/utility/generic.js +44 -0
  43. package/lib/resize-detector/container.js +36 -0
  44. package/lib/resize-detector/window.js +25 -0
  45. package/package.json +162 -0
  46. package/src/global.d.ts +373 -0
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TimelineMarkersConsumer = exports.TimelineMarkersProvider = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _createReactContext2 = _interopRequireDefault(require("create-react-context"));
13
+
14
+ var _generic = require("../utility/generic");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
+
18
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
19
+
20
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
21
+
22
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
23
+
24
+ function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
25
+
26
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
29
+
30
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
+
32
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
33
+
34
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
35
+
36
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
37
+
38
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
39
+
40
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
41
+
42
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
43
+
44
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
45
+
46
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
47
+
48
+ var defaultContextState = {
49
+ markers: [],
50
+ subscribeMarker: function subscribeMarker() {
51
+ // eslint-disable-next-line
52
+ console.warn('default subscribe marker used');
53
+ return _generic.noop;
54
+ }
55
+ };
56
+
57
+ var _createReactContext = (0, _createReactContext2["default"])(defaultContextState),
58
+ Consumer = _createReactContext.Consumer,
59
+ Provider = _createReactContext.Provider; // REVIEW: is this the best way to manage ids?
60
+
61
+
62
+ var _id = 0;
63
+
64
+ var createId = function createId() {
65
+ _id += 1;
66
+ return _id + 1;
67
+ };
68
+
69
+ var TimelineMarkersProvider =
70
+ /*#__PURE__*/
71
+ function (_React$Component) {
72
+ _inherits(TimelineMarkersProvider, _React$Component);
73
+
74
+ function TimelineMarkersProvider() {
75
+ var _getPrototypeOf2;
76
+
77
+ var _this;
78
+
79
+ _classCallCheck(this, TimelineMarkersProvider);
80
+
81
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
82
+ args[_key] = arguments[_key];
83
+ }
84
+
85
+ _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TimelineMarkersProvider)).call.apply(_getPrototypeOf2, [this].concat(args)));
86
+
87
+ _defineProperty(_assertThisInitialized(_this), "handleSubscribeToMarker", function (newMarker) {
88
+ newMarker = _objectSpread({}, newMarker, {
89
+ // REVIEW: in the event that we accept id to be passed to the Marker components, this line would override those
90
+ id: createId()
91
+ });
92
+
93
+ _this.setState(function (state) {
94
+ return {
95
+ markers: [].concat(_toConsumableArray(state.markers), [newMarker])
96
+ };
97
+ });
98
+
99
+ return {
100
+ unsubscribe: function unsubscribe() {
101
+ _this.setState(function (state) {
102
+ return {
103
+ markers: state.markers.filter(function (marker) {
104
+ return marker.id !== newMarker.id;
105
+ })
106
+ };
107
+ });
108
+ },
109
+ getMarker: function getMarker() {
110
+ return newMarker;
111
+ }
112
+ };
113
+ });
114
+
115
+ _defineProperty(_assertThisInitialized(_this), "handleUpdateMarker", function (updateMarker) {
116
+ var markerIndex = _this.state.markers.findIndex(function (marker) {
117
+ return marker.id === updateMarker.id;
118
+ });
119
+
120
+ if (markerIndex < 0) return;
121
+
122
+ _this.setState(function (state) {
123
+ return {
124
+ markers: [].concat(_toConsumableArray(state.markers.slice(0, markerIndex)), [updateMarker], _toConsumableArray(state.markers.slice(markerIndex + 1)))
125
+ };
126
+ });
127
+ });
128
+
129
+ _defineProperty(_assertThisInitialized(_this), "state", {
130
+ markers: [],
131
+ subscribeMarker: _this.handleSubscribeToMarker,
132
+ updateMarker: _this.handleUpdateMarker
133
+ });
134
+
135
+ return _this;
136
+ }
137
+
138
+ _createClass(TimelineMarkersProvider, [{
139
+ key: "render",
140
+ value: function render() {
141
+ return _react["default"].createElement(Provider, {
142
+ value: this.state
143
+ }, this.props.children);
144
+ }
145
+ }]);
146
+
147
+ return TimelineMarkersProvider;
148
+ }(_react["default"].Component);
149
+
150
+ exports.TimelineMarkersProvider = TimelineMarkersProvider;
151
+
152
+ _defineProperty(TimelineMarkersProvider, "propTypes", {
153
+ children: _propTypes["default"].element.isRequired
154
+ });
155
+
156
+ var TimelineMarkersConsumer = Consumer;
157
+ exports.TimelineMarkersConsumer = TimelineMarkersConsumer;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _TimelineMarkersContext = require("./TimelineMarkersContext");
11
+
12
+ var _markerType = require("./markerType");
13
+
14
+ var _TodayMarker = _interopRequireDefault(require("./implementations/TodayMarker"));
15
+
16
+ var _CustomMarker = _interopRequireDefault(require("./implementations/CustomMarker"));
17
+
18
+ var _TimelineStateContext = require("../timeline/TimelineStateContext");
19
+
20
+ var _CursorMarker = _interopRequireDefault(require("./implementations/CursorMarker"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
+
24
+ /** Internal component used in timeline to render markers registered */
25
+ var TimelineMarkersRenderer = function TimelineMarkersRenderer() {
26
+ return _react["default"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref) {
27
+ var getLeftOffsetFromDate = _ref.getLeftOffsetFromDate,
28
+ getTimelineState = _ref.getTimelineState;
29
+ return _react["default"].createElement(_TimelineMarkersContext.TimelineMarkersConsumer, null, function (_ref2) {
30
+ var markers = _ref2.markers;
31
+ var timelineState = getTimelineState();
32
+ return markers.map(function (marker) {
33
+ switch (marker.type) {
34
+ case _markerType.TimelineMarkerType.Today:
35
+ if (!(new Date().valueOf() >= timelineState.canvasTimeStart && new Date().valueOf() <= timelineState.canvasTimeEnd)) return null;
36
+ return _react["default"].createElement(_TodayMarker["default"], {
37
+ key: marker.id,
38
+ getLeftOffsetFromDate: getLeftOffsetFromDate,
39
+ renderer: marker.renderer,
40
+ interval: marker.interval
41
+ });
42
+
43
+ case _markerType.TimelineMarkerType.Custom:
44
+ //filter out cursors outside canvas start/end
45
+ if (!(marker.date >= timelineState.canvasTimeStart && marker.date <= timelineState.canvasTimeEnd)) return null;
46
+ return _react["default"].createElement(_CustomMarker["default"], {
47
+ key: marker.id,
48
+ renderer: marker.renderer,
49
+ date: marker.date,
50
+ getLeftOffsetFromDate: getLeftOffsetFromDate
51
+ });
52
+
53
+ case _markerType.TimelineMarkerType.Cursor:
54
+ return _react["default"].createElement(_CursorMarker["default"], {
55
+ key: marker.id,
56
+ renderer: marker.renderer,
57
+ getLeftOffsetFromDate: getLeftOffsetFromDate
58
+ });
59
+
60
+ default:
61
+ return null;
62
+ }
63
+ });
64
+ });
65
+ });
66
+ };
67
+
68
+ var _default = TimelineMarkersRenderer;
69
+ exports["default"] = _default;
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _shared = require("./shared");
13
+
14
+ var _MarkerCanvasContext = require("../MarkerCanvasContext");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ 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); }
19
+
20
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
21
+
22
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
23
+
24
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
25
+
26
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
27
+
28
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
29
+
30
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
31
+
32
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
33
+
34
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
35
+
36
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
37
+
38
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
39
+
40
+ var defaultRenderer = (0, _shared.createDefaultRenderer)('default-cursor-marker');
41
+ /**
42
+ * CursorMarker implementation subscribes to 'subscribeToCanvasMouseOver' on mount.
43
+ * This subscription is passed in via MarkerCanvasConsumer, which is wired up to
44
+ * MarkerCanvasProvider in the MarkerCanvas component. When the user mouses over MarkerCanvas,
45
+ * the callback registered in CursorMarker (this component) is passed:
46
+ * leftOffset - pixels from left edge of canvas, used to position this element
47
+ * date - the date the cursor pertains to
48
+ * isCursorOverCanvas - whether the user cursor is over the canvas. This is set to 'false'
49
+ * when the user mouseleaves the element
50
+ */
51
+
52
+ var CursorMarker =
53
+ /*#__PURE__*/
54
+ function (_React$Component) {
55
+ _inherits(CursorMarker, _React$Component);
56
+
57
+ function CursorMarker() {
58
+ var _this;
59
+
60
+ _classCallCheck(this, CursorMarker);
61
+
62
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(CursorMarker).call(this));
63
+
64
+ _defineProperty(_assertThisInitialized(_this), "handleCanvasMouseOver", function (_ref) {
65
+ var leftOffset = _ref.leftOffset,
66
+ date = _ref.date,
67
+ isCursorOverCanvas = _ref.isCursorOverCanvas;
68
+
69
+ _this.setState({
70
+ leftOffset: leftOffset,
71
+ date: date,
72
+ isShowingCursor: isCursorOverCanvas
73
+ });
74
+ });
75
+
76
+ _this.state = {
77
+ leftOffset: 0,
78
+ date: 0,
79
+ isShowingCursor: false
80
+ };
81
+ return _this;
82
+ }
83
+
84
+ _createClass(CursorMarker, [{
85
+ key: "componentDidMount",
86
+ value: function componentDidMount() {
87
+ this.unsubscribe = this.props.subscribeToCanvasMouseOver(this.handleCanvasMouseOver);
88
+ }
89
+ }, {
90
+ key: "componentWillUnmount",
91
+ value: function componentWillUnmount() {
92
+ if (this.unsubscribe != null) {
93
+ this.unsubscribe();
94
+ this.unsubscribe = null;
95
+ }
96
+ }
97
+ }, {
98
+ key: "render",
99
+ value: function render() {
100
+ var _this$state = this.state,
101
+ isShowingCursor = _this$state.isShowingCursor,
102
+ leftOffset = _this$state.leftOffset,
103
+ date = _this$state.date;
104
+ if (!isShowingCursor) return null;
105
+ var styles = (0, _shared.createMarkerStylesWithLeftOffset)(leftOffset);
106
+ return this.props.renderer({
107
+ styles: styles,
108
+ date: date
109
+ });
110
+ }
111
+ }]);
112
+
113
+ return CursorMarker;
114
+ }(_react["default"].Component); // TODO: turn into HOC?
115
+
116
+
117
+ _defineProperty(CursorMarker, "propTypes", {
118
+ subscribeToCanvasMouseOver: _propTypes["default"].func.isRequired,
119
+ renderer: _propTypes["default"].func
120
+ });
121
+
122
+ _defineProperty(CursorMarker, "defaultProps", {
123
+ renderer: defaultRenderer
124
+ });
125
+
126
+ var CursorMarkerWrapper = function CursorMarkerWrapper(props) {
127
+ return _react["default"].createElement(_MarkerCanvasContext.MarkerCanvasConsumer, null, function (_ref2) {
128
+ var subscribeToMouseOver = _ref2.subscribeToMouseOver;
129
+ return _react["default"].createElement(CursorMarker, _extends({
130
+ subscribeToCanvasMouseOver: subscribeToMouseOver
131
+ }, props));
132
+ });
133
+ };
134
+
135
+ CursorMarkerWrapper.displayName = 'CursorMarkerWrapper';
136
+ var _default = CursorMarkerWrapper;
137
+ exports["default"] = _default;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _shared = require("./shared");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
17
+
18
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19
+
20
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
21
+
22
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
23
+
24
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
25
+
26
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
27
+
28
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
29
+
30
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
31
+
32
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
33
+
34
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
35
+
36
+ var defaultCustomMarkerRenderer = (0, _shared.createDefaultRenderer)('default-customer-marker-id');
37
+ /**
38
+ * CustomMarker that is placed based on passed in date prop
39
+ */
40
+
41
+ var CustomMarker =
42
+ /*#__PURE__*/
43
+ function (_React$Component) {
44
+ _inherits(CustomMarker, _React$Component);
45
+
46
+ function CustomMarker() {
47
+ _classCallCheck(this, CustomMarker);
48
+
49
+ return _possibleConstructorReturn(this, _getPrototypeOf(CustomMarker).apply(this, arguments));
50
+ }
51
+
52
+ _createClass(CustomMarker, [{
53
+ key: "render",
54
+ value: function render() {
55
+ var date = this.props.date;
56
+ var leftOffset = this.props.getLeftOffsetFromDate(date);
57
+ var styles = (0, _shared.createMarkerStylesWithLeftOffset)(leftOffset);
58
+ return this.props.renderer({
59
+ styles: styles,
60
+ date: date
61
+ });
62
+ }
63
+ }]);
64
+
65
+ return CustomMarker;
66
+ }(_react["default"].Component);
67
+
68
+ _defineProperty(CustomMarker, "propTypes", {
69
+ getLeftOffsetFromDate: _propTypes["default"].func.isRequired,
70
+ renderer: _propTypes["default"].func,
71
+ date: _propTypes["default"].number.isRequired
72
+ });
73
+
74
+ _defineProperty(CustomMarker, "defaultProps", {
75
+ renderer: defaultCustomMarkerRenderer
76
+ });
77
+
78
+ var _default = CustomMarker;
79
+ exports["default"] = _default;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _shared = require("./shared");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
17
+
18
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19
+
20
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
21
+
22
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
23
+
24
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
25
+
26
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
27
+
28
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
29
+
30
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
31
+
32
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
33
+
34
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
35
+
36
+ var defaultRenderer = (0, _shared.createDefaultRenderer)('default-today-line');
37
+ /** Marker that is placed based on current date. This component updates itself on
38
+ * a set interval, dictated by the 'interval' prop.
39
+ */
40
+
41
+ var TodayMarker =
42
+ /*#__PURE__*/
43
+ function (_React$Component) {
44
+ _inherits(TodayMarker, _React$Component);
45
+
46
+ function TodayMarker() {
47
+ var _getPrototypeOf2;
48
+
49
+ var _this;
50
+
51
+ _classCallCheck(this, TodayMarker);
52
+
53
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
54
+ args[_key] = arguments[_key];
55
+ }
56
+
57
+ _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TodayMarker)).call.apply(_getPrototypeOf2, [this].concat(args)));
58
+
59
+ _defineProperty(_assertThisInitialized(_this), "state", {
60
+ date: Date.now()
61
+ });
62
+
63
+ return _this;
64
+ }
65
+
66
+ _createClass(TodayMarker, [{
67
+ key: "componentDidMount",
68
+ value: function componentDidMount() {
69
+ this.intervalToken = this.createIntervalUpdater(this.props.interval);
70
+ }
71
+ }, {
72
+ key: "componentDidUpdate",
73
+ value: function componentDidUpdate(prevProps) {
74
+ if (prevProps.interval !== this.props.interval) {
75
+ clearInterval(this.intervalToken);
76
+ this.intervalToken = this.createIntervalUpdater(this.props.interval);
77
+ }
78
+ }
79
+ }, {
80
+ key: "createIntervalUpdater",
81
+ value: function createIntervalUpdater(interval) {
82
+ var _this2 = this;
83
+
84
+ return setInterval(function () {
85
+ _this2.setState({
86
+ date: Date.now() // FIXME: use date utils pass in as props
87
+
88
+ });
89
+ }, interval);
90
+ }
91
+ }, {
92
+ key: "componentWillUnmount",
93
+ value: function componentWillUnmount() {
94
+ clearInterval(this.intervalToken);
95
+ }
96
+ }, {
97
+ key: "render",
98
+ value: function render() {
99
+ var date = this.state.date;
100
+ var leftOffset = this.props.getLeftOffsetFromDate(date);
101
+ var styles = (0, _shared.createMarkerStylesWithLeftOffset)(leftOffset);
102
+ return this.props.renderer({
103
+ styles: styles,
104
+ date: date
105
+ });
106
+ }
107
+ }]);
108
+
109
+ return TodayMarker;
110
+ }(_react["default"].Component);
111
+
112
+ _defineProperty(TodayMarker, "propTypes", {
113
+ getLeftOffsetFromDate: _propTypes["default"].func.isRequired,
114
+ renderer: _propTypes["default"].func,
115
+ interval: _propTypes["default"].number.isRequired
116
+ });
117
+
118
+ _defineProperty(TodayMarker, "defaultProps", {
119
+ renderer: defaultRenderer
120
+ });
121
+
122
+ var _default = TodayMarker;
123
+ exports["default"] = _default;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDefaultRenderer = exports.createMarkerStylesWithLeftOffset = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }
13
+
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+
16
+ /**
17
+ * Baseline styles to get the marker to render correctly
18
+ */
19
+ var criticalStyles = {
20
+ position: 'absolute',
21
+ top: 0,
22
+ bottom: 0,
23
+ width: '2px',
24
+ backgroundColor: 'black',
25
+ // by default, pointer events (specifically click) will
26
+ // "pass through". This is added so that CursorMarker
27
+ // will not get in the way of canvas click
28
+ pointerEvents: 'none' // FIXME: this creates a new object each time in render
29
+ // might want to memoize this?
30
+
31
+ };
32
+
33
+ var createMarkerStylesWithLeftOffset = function createMarkerStylesWithLeftOffset(leftOffset) {
34
+ return _objectSpread({}, criticalStyles, {
35
+ left: leftOffset
36
+ });
37
+ };
38
+
39
+ exports.createMarkerStylesWithLeftOffset = createMarkerStylesWithLeftOffset;
40
+
41
+ var createDefaultRenderer = function createDefaultRenderer(dataTestidValue) {
42
+ // eslint-disable-next-line
43
+ return function DefaultMarkerRenderer(_ref) {
44
+ var styles = _ref.styles;
45
+ return _react["default"].createElement("div", {
46
+ style: styles
47
+ });
48
+ };
49
+ };
50
+
51
+ exports.createDefaultRenderer = createDefaultRenderer;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TimelineMarkerType = void 0;
7
+ var TimelineMarkerType = {
8
+ Today: 'Today',
9
+ Custom: 'Custom',
10
+ Cursor: 'Cursor'
11
+ };
12
+ exports.TimelineMarkerType = TimelineMarkerType;