@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.
- package/LICENSE.md +8 -0
- package/README.md +1298 -0
- package/lib/Timeline.css +110 -0
- package/lib/index.js +77 -0
- package/lib/lib/Timeline.js +966 -0
- package/lib/lib/columns/Columns.js +137 -0
- package/lib/lib/default-config.js +73 -0
- package/lib/lib/headers/CustomDateHeader.js +48 -0
- package/lib/lib/headers/CustomHeader.js +276 -0
- package/lib/lib/headers/DateHeader.js +206 -0
- package/lib/lib/headers/HeadersContext.js +94 -0
- package/lib/lib/headers/Interval.js +131 -0
- package/lib/lib/headers/SidebarHeader.js +130 -0
- package/lib/lib/headers/TimelineHeaders.js +180 -0
- package/lib/lib/headers/constants.js +10 -0
- package/lib/lib/interaction/PreventClickOnDrag.js +99 -0
- package/lib/lib/items/Item.js +627 -0
- package/lib/lib/items/Items.js +178 -0
- package/lib/lib/items/defaultItemRenderer.js +40 -0
- package/lib/lib/items/styles.js +65 -0
- package/lib/lib/layout/Sidebar.js +138 -0
- package/lib/lib/markers/MarkerCanvas.js +164 -0
- package/lib/lib/markers/MarkerCanvasContext.js +28 -0
- package/lib/lib/markers/TimelineMarkersContext.js +157 -0
- package/lib/lib/markers/TimelineMarkersRenderer.js +69 -0
- package/lib/lib/markers/implementations/CursorMarker.js +137 -0
- package/lib/lib/markers/implementations/CustomMarker.js +79 -0
- package/lib/lib/markers/implementations/TodayMarker.js +123 -0
- package/lib/lib/markers/implementations/shared.js +51 -0
- package/lib/lib/markers/markerType.js +12 -0
- package/lib/lib/markers/public/CursorMarker.js +97 -0
- package/lib/lib/markers/public/CustomMarker.js +116 -0
- package/lib/lib/markers/public/TimelineMarkers.js +27 -0
- package/lib/lib/markers/public/TodayMarker.js +121 -0
- package/lib/lib/row/GroupRow.js +94 -0
- package/lib/lib/row/GroupRows.js +117 -0
- package/lib/lib/scroll/ScrollElement.js +285 -0
- package/lib/lib/timeline/TimelineStateContext.js +155 -0
- package/lib/lib/utility/calendar.js +672 -0
- package/lib/lib/utility/dom-helpers.js +62 -0
- package/lib/lib/utility/events.js +23 -0
- package/lib/lib/utility/generic.js +44 -0
- package/lib/resize-detector/container.js +36 -0
- package/lib/resize-detector/window.js +25 -0
- package/package.json +162 -0
- 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;
|