@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,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getParentPosition = getParentPosition;
7
+ exports.getSumScroll = getSumScroll;
8
+ exports.getSumOffset = getSumOffset;
9
+
10
+ // TODO: can we use getBoundingClientRect instead??
11
+ // last place this is used is in "handleWheel" in ScrollElement
12
+ function getParentPosition(element) {
13
+ var xPosition = 0;
14
+ var yPosition = 0;
15
+ var first = true;
16
+
17
+ while (element) {
18
+ if (!element.offsetParent && element.tagName === 'BODY' && element.scrollLeft === 0 && element.scrollTop === 0) {
19
+ element = document.scrollingElement || element;
20
+ }
21
+
22
+ xPosition += element.offsetLeft - (first ? 0 : element.scrollLeft) + element.clientLeft;
23
+ yPosition += element.offsetTop - (first ? 0 : element.scrollTop) + element.clientTop;
24
+ element = element.offsetParent;
25
+ first = false;
26
+ }
27
+
28
+ return {
29
+ x: xPosition,
30
+ y: yPosition
31
+ };
32
+ }
33
+
34
+ function getSumScroll(node) {
35
+ if (node === document.body) {
36
+ return {
37
+ scrollLeft: 0,
38
+ scrollTop: 0
39
+ };
40
+ } else {
41
+ var parent = getSumScroll(node.parentNode);
42
+ return {
43
+ scrollLeft: node.scrollLeft + parent.scrollLeft,
44
+ scrollTop: node.scrollTop + parent.scrollTop
45
+ };
46
+ }
47
+ }
48
+
49
+ function getSumOffset(node) {
50
+ if (node === document.body || !node.offsetParent) {
51
+ return {
52
+ offsetLeft: 0,
53
+ offsetTop: 0
54
+ };
55
+ } else {
56
+ var parent = getSumOffset(node.offsetParent);
57
+ return {
58
+ offsetLeft: node.offsetLeft + parent.offsetLeft,
59
+ offsetTop: node.offsetTop + parent.offsetTop
60
+ };
61
+ }
62
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.composeEvents = composeEvents;
7
+
8
+ function composeEvents() {
9
+ for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
10
+ fns[_key] = arguments[_key];
11
+ }
12
+
13
+ return function (event) {
14
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
15
+ args[_key2 - 1] = arguments[_key2];
16
+ }
17
+
18
+ event.preventDefault();
19
+ fns.forEach(function (fn) {
20
+ return fn && fn.apply(void 0, [event].concat(args));
21
+ });
22
+ };
23
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports._get = _get;
7
+ exports._length = _length;
8
+ exports.arraysEqual = arraysEqual;
9
+ exports.deepObjectCompare = deepObjectCompare;
10
+ exports.keyBy = keyBy;
11
+ exports.noop = noop;
12
+
13
+ var _lodash = _interopRequireDefault(require("lodash.isequal"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
+
17
+ // so we could use both immutable.js objects and regular objects
18
+ function _get(object, key) {
19
+ return typeof object.get === 'function' ? object.get(key) : object[key];
20
+ }
21
+
22
+ function _length(object) {
23
+ return typeof object.count === 'function' ? object.count() : object.length;
24
+ }
25
+
26
+ function arraysEqual(array1, array2) {
27
+ return _length(array1) === _length(array2) && array1.every(function (element, index) {
28
+ return element === _get(array2, index);
29
+ });
30
+ }
31
+
32
+ function deepObjectCompare(obj1, obj2) {
33
+ return (0, _lodash["default"])(obj1, obj2);
34
+ }
35
+
36
+ function keyBy(value, key) {
37
+ var obj = {};
38
+ value.forEach(function (element) {
39
+ obj[element[key]] = element;
40
+ });
41
+ return obj;
42
+ }
43
+
44
+ function noop() {}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _elementResizeDetector = _interopRequireDefault(require("element-resize-detector"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ function addListener(component) {
13
+ component._erd = (0, _elementResizeDetector["default"])({
14
+ strategy: 'scroll'
15
+ });
16
+ component._erdWidth = component.container.offsetWidth;
17
+
18
+ component._erd.listenTo(component.container, function (element) {
19
+ var width = element.offsetWidth;
20
+
21
+ if (component._erdWidth !== width) {
22
+ component.resize(component.props);
23
+ component._erdWidth = width;
24
+ }
25
+ });
26
+ }
27
+
28
+ function removeListener(component) {
29
+ component._erd.removeAllListeners(component.container);
30
+ }
31
+
32
+ var _default = {
33
+ addListener: addListener,
34
+ removeListener: removeListener
35
+ };
36
+ exports["default"] = _default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ function addListener(component) {
9
+ component._resizeEventListener = {
10
+ handleEvent: function handleEvent() {
11
+ component.resize();
12
+ }
13
+ };
14
+ window.addEventListener('resize', component._resizeEventListener);
15
+ }
16
+
17
+ function removeListener(component) {
18
+ window.removeEventListener('resize', component._resizeEventListener);
19
+ }
20
+
21
+ var _default = {
22
+ addListener: addListener,
23
+ removeListener: removeListener
24
+ };
25
+ exports["default"] = _default;
package/package.json ADDED
@@ -0,0 +1,162 @@
1
+ {
2
+ "name": "@oddle.me/react-calendar-timeline",
3
+ "version": "0.28.1-0",
4
+ "description": "react calendar timeline",
5
+ "main": "lib/index.js",
6
+ "types": "src/global.d.ts",
7
+ "scripts": {
8
+ "build": "npm run build:lib",
9
+ "build:demo": "echo '!!! Building Demo' && cross-env NODE_ENV=production webpack --progress",
10
+ "build:lib": "echo '!!! Building Library' && rimraf lib && cross-env NODE_ENV=production babel src --out-dir lib && node-sass src/lib/Timeline.scss lib/Timeline.css && sed -i'.bak' 's/Timeline\\.scss/Timeline\\.css/g' lib/lib/Timeline.js && rm lib/lib/Timeline.js.bak",
11
+ "lint": "eslint --ext .js --ext .jsx ./src",
12
+ "lint:fix": "prettier-eslint --parser babylon --write \"src/**/*.js\"",
13
+ "prepublish": "npm run build:lib",
14
+ "start": "webpack-dev-server --hot --host 0.0.0.0",
15
+ "test": "jest",
16
+ "test:watch": "jest --watch"
17
+ },
18
+ "files": [
19
+ "src/global.d.ts",
20
+ "lib"
21
+ ],
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
25
+ "homepage": "https://bitbucket.org/oddle/react-calendar-timeline",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+ssh://git@bitbucket.org/oddle/react-calendar-timeline.git"
29
+ },
30
+ "author": "Marius Andra <marius.andra@gmail.com>",
31
+ "contributors": [
32
+ {
33
+ "name": "Stanisław Chmiela",
34
+ "email": "sjchmiela@gmail.com"
35
+ },
36
+ {
37
+ "name": "Mike Joyce",
38
+ "url": "https://github.com/mcMickJuice"
39
+ },
40
+ {
41
+ "name": "Samuel Rossetti"
42
+ },
43
+ {
44
+ "name": "amakhrov",
45
+ "url": "https://github.com/amakhrov"
46
+ },
47
+ {
48
+ "name": "Ahmad Ilaiwi",
49
+ "url": "https://github.com/Ilaiwi"
50
+ },
51
+ {
52
+ "name": "dkarnutsch",
53
+ "url": "https://github.com/dkarnutsch"
54
+ },
55
+ {
56
+ "name": "Alex Maclean",
57
+ "url": "https://github.com/acemac"
58
+ },
59
+ {
60
+ "name": "Kevin Mann",
61
+ "url": "https://github.com/kevinmanncito"
62
+ }
63
+ ],
64
+ "license": "MIT",
65
+ "keywords": [
66
+ "react",
67
+ "reactjs",
68
+ "react-component",
69
+ "timeline"
70
+ ],
71
+ "standard": {
72
+ "parser": "babel-eslint"
73
+ },
74
+ "jest": {
75
+ "verbose": true,
76
+ "testMatch": [
77
+ "**/__tests__/**/*.js"
78
+ ],
79
+ "setupFilesAfterEnv": [
80
+ "<rootDir>/config/jest-setup.js"
81
+ ],
82
+ "collectCoverageFrom": [
83
+ "src/**/*.{js,jsx}"
84
+ ],
85
+ "modulePaths": [
86
+ "<rootDir>/src/",
87
+ "<rootDir>/__tests__"
88
+ ],
89
+ "testPathIgnorePatterns": [
90
+ "<rootDir>/node_modules",
91
+ "<rootDir>/__tests__/test-utility"
92
+ ],
93
+ "watchPlugins": [
94
+ "jest-watch-typeahead/filename",
95
+ "jest-watch-typeahead/testname"
96
+ ]
97
+ },
98
+ "dependencies": {
99
+ "classnames": "^2.2.6",
100
+ "create-react-context": "^0.3.0",
101
+ "element-resize-detector": "^1.1.12",
102
+ "lodash.isequal": "^4.5.0",
103
+ "memoize-one": "^5.1.1"
104
+ },
105
+ "peerDependencies": {
106
+ "interactjs": "^1.3.4",
107
+ "moment": "*",
108
+ "prop-types": "^15.6.2",
109
+ "react": ">=16.3",
110
+ "react-dom": ">=16.3"
111
+ },
112
+ "devDependencies": {
113
+ "@babel/cli": "^7.5.0",
114
+ "@babel/core": "^7.5.0",
115
+ "@babel/plugin-proposal-class-properties": "^7.5.0",
116
+ "@babel/plugin-proposal-object-rest-spread": "^7.5.2",
117
+ "@babel/preset-env": "^7.5.2",
118
+ "@babel/preset-react": "^7.0.0",
119
+ "@types/node": "^18.16.0",
120
+ "@types/react": "^18.0.38",
121
+ "babel-eslint": "^7.1.1",
122
+ "babel-jest": "^24.8.0",
123
+ "babel-loader": "^8.0.6",
124
+ "babel-plugin-react-remove-properties": "^0.3.0",
125
+ "cross-env": "^5.1.4",
126
+ "css-loader": "^6.7.1",
127
+ "enzyme": "^3.10.0",
128
+ "enzyme-adapter-react-16": "^1.14.0",
129
+ "eslint": "^4.16.0",
130
+ "eslint-config-prettier": "^2.9.0",
131
+ "eslint-config-standard": "^6.2.1",
132
+ "eslint-plugin-jest": "^21.6.1",
133
+ "eslint-plugin-prettier": "^2.5.0",
134
+ "eslint-plugin-promise": "^3.4.0",
135
+ "eslint-plugin-react": "^7.5.1",
136
+ "eslint-plugin-standard": "^2.0.1",
137
+ "faker": "^4.1.0",
138
+ "interactjs": "^1.3.4",
139
+ "jest": "^24.8.0",
140
+ "jest-dom": "^3.5.0",
141
+ "jest-watch-typeahead": "^0.3.1",
142
+ "jsdom": "^11.5.1",
143
+ "moment": "^2.11.1",
144
+ "node-sass": "^7.0.1",
145
+ "prettier": "^1.19.1",
146
+ "prettier-eslint-cli": "^4.7.1",
147
+ "prop-types": "^15.6.2",
148
+ "randomcolor": "^0.5.3",
149
+ "react": "^16.2.0",
150
+ "react-dom": "^16.2.0",
151
+ "react-router-dom": "^4.1.1",
152
+ "react-testing-library": "^6.0.3",
153
+ "regenerator-runtime": "^0.13.2",
154
+ "rimraf": "^2.6.2",
155
+ "sass-loader": "^13.0.0",
156
+ "style-loader": "^3.3.1",
157
+ "typescript": "^5.0.4",
158
+ "webpack": "^5.72.1",
159
+ "webpack-cli": "^4.9.2",
160
+ "webpack-dev-server": "^4.9.0"
161
+ }
162
+ }