@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,178 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _Item = _interopRequireDefault(require("./Item"));
13
+
14
+ var _generic = require("../utility/generic");
15
+
16
+ var _calendar = require("../utility/calendar");
17
+
18
+ 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; } }
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
+
22
+ 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); }
23
+
24
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
25
+
26
+ 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); } }
27
+
28
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
29
+
30
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
35
+
36
+ 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); }
37
+
38
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
39
+
40
+ 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; }
41
+
42
+ var canResizeLeft = function canResizeLeft(item, canResize) {
43
+ var value = (0, _generic._get)(item, 'canResize') !== undefined ? (0, _generic._get)(item, 'canResize') : canResize;
44
+ return value === 'left' || value === 'both';
45
+ };
46
+
47
+ var canResizeRight = function canResizeRight(item, canResize) {
48
+ var value = (0, _generic._get)(item, 'canResize') !== undefined ? (0, _generic._get)(item, 'canResize') : canResize;
49
+ return value === 'right' || value === 'both' || value === true;
50
+ };
51
+
52
+ var Items =
53
+ /*#__PURE__*/
54
+ function (_Component) {
55
+ _inherits(Items, _Component);
56
+
57
+ function Items() {
58
+ _classCallCheck(this, Items);
59
+
60
+ return _possibleConstructorReturn(this, _getPrototypeOf(Items).apply(this, arguments));
61
+ }
62
+
63
+ _createClass(Items, [{
64
+ key: "shouldComponentUpdate",
65
+ value: function shouldComponentUpdate(nextProps) {
66
+ return !((0, _generic.arraysEqual)(nextProps.groups, this.props.groups) && (0, _generic.arraysEqual)(nextProps.items, this.props.items) && (0, _generic.arraysEqual)(nextProps.dimensionItems, this.props.dimensionItems) && nextProps.keys === this.props.keys && nextProps.canvasTimeStart === this.props.canvasTimeStart && nextProps.canvasTimeEnd === this.props.canvasTimeEnd && nextProps.canvasWidth === this.props.canvasWidth && nextProps.selectedItem === this.props.selectedItem && nextProps.selected === this.props.selected && nextProps.dragSnap === this.props.dragSnap && nextProps.minResizeWidth === this.props.minResizeWidth && nextProps.canChangeGroup === this.props.canChangeGroup && nextProps.canMove === this.props.canMove && nextProps.canResize === this.props.canResize && nextProps.canSelect === this.props.canSelect);
67
+ }
68
+ }, {
69
+ key: "isSelected",
70
+ value: function isSelected(item, itemIdKey) {
71
+ if (!this.props.selected) {
72
+ return this.props.selectedItem === (0, _generic._get)(item, itemIdKey);
73
+ } else {
74
+ var target = (0, _generic._get)(item, itemIdKey);
75
+ return this.props.selected.includes(target);
76
+ }
77
+ }
78
+ }, {
79
+ key: "getVisibleItems",
80
+ value: function getVisibleItems(canvasTimeStart, canvasTimeEnd) {
81
+ var _this$props = this.props,
82
+ keys = _this$props.keys,
83
+ items = _this$props.items;
84
+ return (0, _calendar.getVisibleItems)(items, canvasTimeStart, canvasTimeEnd, keys);
85
+ }
86
+ }, {
87
+ key: "render",
88
+ value: function render() {
89
+ var _this = this;
90
+
91
+ var _this$props2 = this.props,
92
+ canvasTimeStart = _this$props2.canvasTimeStart,
93
+ canvasTimeEnd = _this$props2.canvasTimeEnd,
94
+ dimensionItems = _this$props2.dimensionItems,
95
+ keys = _this$props2.keys,
96
+ groups = _this$props2.groups;
97
+ var itemIdKey = keys.itemIdKey,
98
+ itemGroupKey = keys.itemGroupKey;
99
+ var groupOrders = (0, _calendar.getGroupOrders)(groups, keys);
100
+ var visibleItems = this.getVisibleItems(canvasTimeStart, canvasTimeEnd, groupOrders);
101
+ var sortedDimensionItems = (0, _generic.keyBy)(dimensionItems, 'id');
102
+ return _react["default"].createElement("div", {
103
+ className: "rct-items"
104
+ }, visibleItems.filter(function (item) {
105
+ return sortedDimensionItems[(0, _generic._get)(item, itemIdKey)];
106
+ }).map(function (item) {
107
+ return _react["default"].createElement(_Item["default"], {
108
+ key: (0, _generic._get)(item, itemIdKey),
109
+ item: item,
110
+ keys: _this.props.keys,
111
+ order: groupOrders[(0, _generic._get)(item, itemGroupKey)],
112
+ dimensions: sortedDimensionItems[(0, _generic._get)(item, itemIdKey)].dimensions,
113
+ selected: _this.isSelected(item, itemIdKey),
114
+ canChangeGroup: (0, _generic._get)(item, 'canChangeGroup') !== undefined ? (0, _generic._get)(item, 'canChangeGroup') : _this.props.canChangeGroup,
115
+ canMove: (0, _generic._get)(item, 'canMove') !== undefined ? (0, _generic._get)(item, 'canMove') : _this.props.canMove,
116
+ canResizeLeft: canResizeLeft(item, _this.props.canResize),
117
+ canResizeRight: canResizeRight(item, _this.props.canResize),
118
+ canSelect: (0, _generic._get)(item, 'canSelect') !== undefined ? (0, _generic._get)(item, 'canSelect') : _this.props.canSelect,
119
+ useResizeHandle: _this.props.useResizeHandle,
120
+ groupTops: _this.props.groupTops,
121
+ canvasTimeStart: _this.props.canvasTimeStart,
122
+ canvasTimeEnd: _this.props.canvasTimeEnd,
123
+ canvasWidth: _this.props.canvasWidth,
124
+ dragSnap: _this.props.dragSnap,
125
+ minResizeWidth: _this.props.minResizeWidth,
126
+ onResizing: _this.props.itemResizing,
127
+ onResized: _this.props.itemResized,
128
+ moveResizeValidator: _this.props.moveResizeValidator,
129
+ onDrag: _this.props.itemDrag,
130
+ onDrop: _this.props.itemDrop,
131
+ onItemDoubleClick: _this.props.onItemDoubleClick,
132
+ onContextMenu: _this.props.onItemContextMenu,
133
+ onSelect: _this.props.itemSelect,
134
+ itemRenderer: _this.props.itemRenderer,
135
+ scrollRef: _this.props.scrollRef
136
+ });
137
+ }));
138
+ }
139
+ }]);
140
+
141
+ return Items;
142
+ }(_react.Component);
143
+
144
+ exports["default"] = Items;
145
+
146
+ _defineProperty(Items, "propTypes", {
147
+ groups: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].object]).isRequired,
148
+ items: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].object]).isRequired,
149
+ canvasTimeStart: _propTypes["default"].number.isRequired,
150
+ canvasTimeEnd: _propTypes["default"].number.isRequired,
151
+ canvasWidth: _propTypes["default"].number.isRequired,
152
+ dragSnap: _propTypes["default"].number,
153
+ minResizeWidth: _propTypes["default"].number,
154
+ selectedItem: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
155
+ canChangeGroup: _propTypes["default"].bool.isRequired,
156
+ canMove: _propTypes["default"].bool.isRequired,
157
+ canResize: _propTypes["default"].oneOf([true, false, 'left', 'right', 'both']),
158
+ canSelect: _propTypes["default"].bool,
159
+ keys: _propTypes["default"].object.isRequired,
160
+ moveResizeValidator: _propTypes["default"].func,
161
+ itemSelect: _propTypes["default"].func,
162
+ itemDrag: _propTypes["default"].func,
163
+ itemDrop: _propTypes["default"].func,
164
+ itemResizing: _propTypes["default"].func,
165
+ itemResized: _propTypes["default"].func,
166
+ onItemDoubleClick: _propTypes["default"].func,
167
+ onItemContextMenu: _propTypes["default"].func,
168
+ itemRenderer: _propTypes["default"].func,
169
+ selected: _propTypes["default"].array,
170
+ dimensionItems: _propTypes["default"].array,
171
+ groupTops: _propTypes["default"].array,
172
+ useResizeHandle: _propTypes["default"].bool,
173
+ scrollRef: _propTypes["default"].object
174
+ });
175
+
176
+ _defineProperty(Items, "defaultProps", {
177
+ selected: []
178
+ });
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultItemRenderer = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+
14
+ var defaultItemRenderer = function defaultItemRenderer(_ref) {
15
+ var item = _ref.item,
16
+ itemContext = _ref.itemContext,
17
+ getItemProps = _ref.getItemProps,
18
+ getResizeProps = _ref.getResizeProps;
19
+
20
+ var _getResizeProps = getResizeProps(),
21
+ leftResizeProps = _getResizeProps.left,
22
+ rightResizeProps = _getResizeProps.right;
23
+
24
+ return _react["default"].createElement("div", getItemProps(item.itemProps), itemContext.useResizeHandle ? _react["default"].createElement("div", leftResizeProps) : '', _react["default"].createElement("div", {
25
+ className: "rct-item-content",
26
+ style: {
27
+ maxHeight: "".concat(itemContext.dimensions.height)
28
+ }
29
+ }, itemContext.title), itemContext.useResizeHandle ? _react["default"].createElement("div", rightResizeProps) : '');
30
+ }; // TODO: update this to actual prop types. Too much to change before release
31
+ // future me, forgive me.
32
+
33
+
34
+ exports.defaultItemRenderer = defaultItemRenderer;
35
+ defaultItemRenderer.propTypes = {
36
+ item: _propTypes["default"].any,
37
+ itemContext: _propTypes["default"].any,
38
+ getItemProps: _propTypes["default"].any,
39
+ getResizeProps: _propTypes["default"].any
40
+ };
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.rightResizeStyle = exports.leftResizeStyle = exports.selectedAndCanResizeRightAndDragRight = exports.selectedAndCanResizeRight = exports.selectedAndCanResizeLeftAndDragLeft = exports.selectedAndCanResizeLeft = exports.selectedAndCanMove = exports.selectedStyle = exports.overridableStyles = void 0;
7
+ var overridableStyles = {
8
+ fontSize: 12,
9
+ color: 'white',
10
+ cursor: 'pointer',
11
+ background: '#2196f3',
12
+ border: '1px solid #1a6fb3',
13
+ zIndex: 80
14
+ };
15
+ exports.overridableStyles = overridableStyles;
16
+ var selectedStyle = {
17
+ background: '#ffc107',
18
+ border: '1px solid #ff9800',
19
+ zIndex: 82
20
+ };
21
+ exports.selectedStyle = selectedStyle;
22
+ var selectedAndCanMove = {
23
+ cursor: 'move'
24
+ };
25
+ exports.selectedAndCanMove = selectedAndCanMove;
26
+ var selectedAndCanResizeLeft = {
27
+ borderLeftWidth: 3
28
+ };
29
+ exports.selectedAndCanResizeLeft = selectedAndCanResizeLeft;
30
+ var selectedAndCanResizeLeftAndDragLeft = {
31
+ cursor: 'w-resize'
32
+ };
33
+ exports.selectedAndCanResizeLeftAndDragLeft = selectedAndCanResizeLeftAndDragLeft;
34
+ var selectedAndCanResizeRight = {
35
+ borderRightWidth: 3
36
+ };
37
+ exports.selectedAndCanResizeRight = selectedAndCanResizeRight;
38
+ var selectedAndCanResizeRightAndDragRight = {
39
+ cursor: 'e-resize'
40
+ };
41
+ exports.selectedAndCanResizeRightAndDragRight = selectedAndCanResizeRightAndDragRight;
42
+ var leftResizeStyle = {
43
+ position: 'absolute',
44
+ width: 24,
45
+ maxWidth: '20%',
46
+ minWidth: 2,
47
+ height: '100%',
48
+ top: 0,
49
+ left: 0,
50
+ cursor: 'pointer',
51
+ zIndex: 88
52
+ };
53
+ exports.leftResizeStyle = leftResizeStyle;
54
+ var rightResizeStyle = {
55
+ position: 'absolute',
56
+ width: 24,
57
+ maxWidth: '20%',
58
+ minWidth: 2,
59
+ height: '100%',
60
+ top: 0,
61
+ right: 0,
62
+ cursor: 'pointer',
63
+ zIndex: 88
64
+ };
65
+ exports.rightResizeStyle = rightResizeStyle;
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _generic = require("../utility/generic");
13
+
14
+ 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; } }
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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21
+
22
+ 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); } }
23
+
24
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
25
+
26
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
31
+
32
+ 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); }
33
+
34
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
35
+
36
+ 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; }
37
+
38
+ var Sidebar =
39
+ /*#__PURE__*/
40
+ function (_Component) {
41
+ _inherits(Sidebar, _Component);
42
+
43
+ function Sidebar() {
44
+ var _getPrototypeOf2;
45
+
46
+ var _this;
47
+
48
+ _classCallCheck(this, Sidebar);
49
+
50
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
51
+ args[_key] = arguments[_key];
52
+ }
53
+
54
+ _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Sidebar)).call.apply(_getPrototypeOf2, [this].concat(args)));
55
+
56
+ _defineProperty(_assertThisInitialized(_this), "handleScroll", function (e) {
57
+ _this.props.onScroll(e.target.scrollTop);
58
+ });
59
+
60
+ return _this;
61
+ }
62
+
63
+ _createClass(Sidebar, [{
64
+ key: "shouldComponentUpdate",
65
+ value: function shouldComponentUpdate(nextProps) {
66
+ return !(nextProps.keys === this.props.keys && nextProps.width === this.props.width && nextProps.height === this.props.height && (0, _generic.arraysEqual)(nextProps.groups, this.props.groups) && (0, _generic.arraysEqual)(nextProps.groupHeights, this.props.groupHeights));
67
+ }
68
+ }, {
69
+ key: "renderGroupContent",
70
+ value: function renderGroupContent(group, isRightSidebar, groupTitleKey, groupRightTitleKey) {
71
+ if (this.props.groupRenderer) {
72
+ return _react["default"].createElement(this.props.groupRenderer, {
73
+ group: group,
74
+ isRightSidebar: isRightSidebar
75
+ });
76
+ } else {
77
+ return (0, _generic._get)(group, isRightSidebar ? groupRightTitleKey : groupTitleKey);
78
+ }
79
+ }
80
+ }, {
81
+ key: "render",
82
+ value: function render() {
83
+ var _this2 = this;
84
+
85
+ var _this$props = this.props,
86
+ width = _this$props.width,
87
+ groupHeights = _this$props.groupHeights,
88
+ height = _this$props.height,
89
+ isRightSidebar = _this$props.isRightSidebar;
90
+ var _this$props$keys = this.props.keys,
91
+ groupIdKey = _this$props$keys.groupIdKey,
92
+ groupTitleKey = _this$props$keys.groupTitleKey,
93
+ groupRightTitleKey = _this$props$keys.groupRightTitleKey;
94
+ var sidebarStyle = {
95
+ width: "".concat(width, "px"),
96
+ height: "".concat(height, "px")
97
+ };
98
+ var groupsStyle = {
99
+ width: "".concat(width, "px")
100
+ };
101
+ var groupLines = this.props.groups.map(function (group, index) {
102
+ var elementStyle = {
103
+ height: "".concat(groupHeights[index], "px"),
104
+ lineHeight: "".concat(groupHeights[index], "px")
105
+ };
106
+ return _react["default"].createElement("div", {
107
+ key: (0, _generic._get)(group, groupIdKey),
108
+ className: 'rct-sidebar-row rct-sidebar-row-' + (index % 2 === 0 ? 'even' : 'odd'),
109
+ style: elementStyle
110
+ }, _this2.renderGroupContent(group, isRightSidebar, groupTitleKey, groupRightTitleKey));
111
+ });
112
+ return _react["default"].createElement("div", {
113
+ className: 'rct-sidebar' + (isRightSidebar ? ' rct-sidebar-right' : ''),
114
+ style: sidebarStyle,
115
+ onScroll: this.handleScroll,
116
+ ref: this.props.getSidebarScrollElmRef
117
+ }, _react["default"].createElement("div", {
118
+ style: groupsStyle
119
+ }, groupLines));
120
+ }
121
+ }]);
122
+
123
+ return Sidebar;
124
+ }(_react.Component);
125
+
126
+ exports["default"] = Sidebar;
127
+
128
+ _defineProperty(Sidebar, "propTypes", {
129
+ groups: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].object]).isRequired,
130
+ width: _propTypes["default"].number.isRequired,
131
+ height: _propTypes["default"].number.isRequired,
132
+ groupHeights: _propTypes["default"].array.isRequired,
133
+ keys: _propTypes["default"].object.isRequired,
134
+ groupRenderer: _propTypes["default"].func,
135
+ isRightSidebar: _propTypes["default"].bool,
136
+ getSidebarScrollElmRef: _propTypes["default"].func,
137
+ onScroll: _propTypes["default"].func
138
+ });
@@ -0,0 +1,164 @@
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 _MarkerCanvasContext = require("./MarkerCanvasContext");
13
+
14
+ var _TimelineMarkersRenderer = _interopRequireDefault(require("./TimelineMarkersRenderer"));
15
+
16
+ var _TimelineStateContext = require("../timeline/TimelineStateContext");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ 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); }
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
+
28
+ 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); } }
29
+
30
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31
+
32
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
33
+
34
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
35
+
36
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
37
+
38
+ 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); }
39
+
40
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
41
+
42
+ 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; }
43
+
44
+ // expand to fill entire parent container (ScrollElement)
45
+ var staticStyles = {
46
+ position: 'absolute',
47
+ left: 0,
48
+ right: 0,
49
+ top: 0,
50
+ bottom: 0
51
+ /**
52
+ * Renders registered markers and exposes a mouse over listener for
53
+ * CursorMarkers to subscribe to
54
+ */
55
+
56
+ };
57
+
58
+ var MarkerCanvas =
59
+ /*#__PURE__*/
60
+ function (_React$Component) {
61
+ _inherits(MarkerCanvas, _React$Component);
62
+
63
+ function MarkerCanvas() {
64
+ var _getPrototypeOf2;
65
+
66
+ var _this;
67
+
68
+ _classCallCheck(this, MarkerCanvas);
69
+
70
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
71
+ args[_key] = arguments[_key];
72
+ }
73
+
74
+ _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(MarkerCanvas)).call.apply(_getPrototypeOf2, [this].concat(args)));
75
+
76
+ _defineProperty(_assertThisInitialized(_this), "handleMouseMove", function (evt) {
77
+ if (_this.subscription != null) {
78
+ var pageX = evt.pageX; // FIXME: dont use getBoundingClientRect. Use passed in scroll amount
79
+
80
+ var _this$containerEl$get = _this.containerEl.getBoundingClientRect(),
81
+ containerLeft = _this$containerEl$get.left; // number of pixels from left we are on canvas
82
+ // we do this calculation as pageX is based on x from viewport whereas
83
+ // our canvas can be scrolled left and right and is generally outside
84
+ // of the viewport. This calculation is to get how many pixels the cursor
85
+ // is from left of this element
86
+
87
+
88
+ var canvasX = pageX - containerLeft;
89
+
90
+ var date = _this.props.getDateFromLeftOffsetPosition(canvasX);
91
+
92
+ _this.subscription({
93
+ leftOffset: canvasX,
94
+ date: date,
95
+ isCursorOverCanvas: true
96
+ });
97
+ }
98
+ });
99
+
100
+ _defineProperty(_assertThisInitialized(_this), "handleMouseLeave", function () {
101
+ if (_this.subscription != null) {
102
+ // tell subscriber that we're not on canvas
103
+ _this.subscription({
104
+ leftOffset: 0,
105
+ date: 0,
106
+ isCursorOverCanvas: false
107
+ });
108
+ }
109
+ });
110
+
111
+ _defineProperty(_assertThisInitialized(_this), "handleMouseMoveSubscribe", function (sub) {
112
+ _this.subscription = sub;
113
+ return function () {
114
+ _this.subscription = null;
115
+ };
116
+ });
117
+
118
+ _defineProperty(_assertThisInitialized(_this), "state", {
119
+ subscribeToMouseOver: _this.handleMouseMoveSubscribe
120
+ });
121
+
122
+ return _this;
123
+ }
124
+
125
+ _createClass(MarkerCanvas, [{
126
+ key: "render",
127
+ value: function render() {
128
+ var _this2 = this;
129
+
130
+ return _react["default"].createElement(_MarkerCanvasContext.MarkerCanvasProvider, {
131
+ value: this.state
132
+ }, _react["default"].createElement("div", {
133
+ style: _objectSpread({}, staticStyles, {
134
+ height: this.props.height
135
+ }),
136
+ onMouseMove: this.handleMouseMove,
137
+ onMouseLeave: this.handleMouseLeave,
138
+ ref: function ref(el) {
139
+ return _this2.containerEl = el;
140
+ }
141
+ }, _react["default"].createElement(_TimelineMarkersRenderer["default"], null), this.props.children));
142
+ }
143
+ }]);
144
+
145
+ return MarkerCanvas;
146
+ }(_react["default"].Component);
147
+
148
+ _defineProperty(MarkerCanvas, "propTypes", {
149
+ getDateFromLeftOffsetPosition: _propTypes["default"].func.isRequired,
150
+ children: _propTypes["default"].node,
151
+ height: _propTypes["default"].number
152
+ });
153
+
154
+ var MarkerCanvasWrapper = function MarkerCanvasWrapper(props) {
155
+ return _react["default"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref) {
156
+ var getDateFromLeftOffsetPosition = _ref.getDateFromLeftOffsetPosition;
157
+ return _react["default"].createElement(MarkerCanvas, _extends({
158
+ getDateFromLeftOffsetPosition: getDateFromLeftOffsetPosition
159
+ }, props));
160
+ });
161
+ };
162
+
163
+ var _default = MarkerCanvasWrapper;
164
+ exports["default"] = _default;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MarkerCanvasConsumer = exports.MarkerCanvasProvider = void 0;
7
+
8
+ var _createReactContext2 = _interopRequireDefault(require("create-react-context"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ /* eslint-disable no-console */
13
+ var defaultContextState = {
14
+ subscribeToMouseOver: function subscribeToMouseOver() {
15
+ console.warn('"subscribeToMouseOver" default func is being used');
16
+ }
17
+ /* eslint-enable */
18
+
19
+ };
20
+
21
+ var _createReactContext = (0, _createReactContext2["default"])(defaultContextState),
22
+ Consumer = _createReactContext.Consumer,
23
+ Provider = _createReactContext.Provider;
24
+
25
+ var MarkerCanvasProvider = Provider;
26
+ exports.MarkerCanvasProvider = MarkerCanvasProvider;
27
+ var MarkerCanvasConsumer = Consumer;
28
+ exports.MarkerCanvasConsumer = MarkerCanvasConsumer;