@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,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;
|