intelicoreact 0.2.26 → 0.2.27

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.
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _uuid = require("uuid");
21
+
22
+ var _Chart = _interopRequireDefault(require("../Chart/Chart"));
23
+
24
+ var _InputDateRange = _interopRequireDefault(require("../../FormElements/InputDateRange/InputDateRange"));
25
+
26
+ var _utils = require("./partial/utils");
27
+
28
+ var _utils2 = require("../../../Functions/utils");
29
+
30
+ require("./partial/AnyOuterClass.scss");
31
+
32
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
+
34
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
36
+ var ExampleChartIntegration = function ExampleChartIntegration(props) {
37
+ var _ref = props || {},
38
+ dateRange = _ref.dateRange,
39
+ chart = _ref.chart;
40
+
41
+ var _useState = (0, _react.useState)({
42
+ intervalKey: 'thisMonth'
43
+ }),
44
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
45
+ range = _useState2[0],
46
+ setRange = _useState2[1];
47
+
48
+ var _useState3 = (0, _react.useState)('Bar'),
49
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
50
+ chartType = _useState4[0],
51
+ setChartType = _useState4[1];
52
+
53
+ var _useState5 = (0, _react.useState)('tab1'),
54
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
55
+ tab = _useState6[0],
56
+ setTab = _useState6[1];
57
+
58
+ var _useState7 = (0, _react.useState)('finturfChartBar'),
59
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
60
+ initialModel = _useState8[0],
61
+ setInitialModel = _useState8[1];
62
+
63
+ var _useState9 = (0, _react.useState)(null),
64
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
65
+ tab1 = _useState10[0],
66
+ setTab1 = _useState10[1];
67
+
68
+ var _useState11 = (0, _react.useState)(null),
69
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
70
+ tab2 = _useState12[0],
71
+ setTab2 = _useState12[1];
72
+
73
+ var _useState13 = (0, _react.useState)(null),
74
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
75
+ tab3 = _useState14[0],
76
+ setTab3 = _useState14[1];
77
+
78
+ var _useState15 = (0, _react.useState)(null),
79
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
80
+ tab4 = _useState16[0],
81
+ setTab4 = _useState16[1];
82
+
83
+ var stateChangesRef = (0, _react.useRef)([]);
84
+
85
+ var getMockData = function getMockData() {
86
+ var labels = (0, _utils.getLabels)(range);
87
+
88
+ var mock = function mock() {
89
+ return chartType === 'Bar' ? labels.map(function (label) {
90
+ return 50;
91
+ }) : labels.map(function (label) {
92
+ return (0, _utils.getMockValue)();
93
+ });
94
+ };
95
+
96
+ return {
97
+ labels: labels,
98
+ datasets: [{
99
+ data: mock()
100
+ }]
101
+ };
102
+ };
103
+
104
+ var _useState17 = (0, _react.useState)(getMockData()),
105
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
106
+ dataForRender = _useState18[0],
107
+ setDataForRender = _useState18[1];
108
+
109
+ var getTabData = function getTabData(tabId) {
110
+ switch (tabId) {
111
+ case 'tab1':
112
+ return !tab1 ? null : (0, _utils2.clone)(tab1);
113
+
114
+ case 'tab2':
115
+ return !tab2 ? null : (0, _utils2.clone)(tab2);
116
+
117
+ case 'tab3':
118
+ return !tab3 ? null : (0, _utils2.clone)(tab3);
119
+
120
+ case 'tab4':
121
+ return !tab4 ? null : (0, _utils2.clone)(tab4);
122
+
123
+ default:
124
+ return null;
125
+ }
126
+ };
127
+
128
+ var selectData = function selectData() {
129
+ return getTabData(tab) ? getTabData(tab) : getMockData();
130
+ };
131
+
132
+ var modelsForSwitch = (0, _react.useMemo)(function () {
133
+ return !!getTabData(tab) ? ['finturfChartBar', 'finturfChartLine'] : ['finturfLoadingModeBar', 'finturfLoadingModeLine'];
134
+ }, [!!getTabData(tab)]);
135
+
136
+ var handleChangeChartType = function handleChangeChartType(model) {
137
+ setChartType(model.includes('Line') ? 'Line' : 'Bar');
138
+ setInitialModel(model);
139
+ };
140
+
141
+ var getModel = function getModel() {
142
+ if (!getTabData(tab)) return chartType === 'Bar' ? 'finturfLoadingModeBar' : 'finturfLoadingModeLine';else return chartType === 'Bar' ? 'finturfChartBar' : 'finturfChartLine';
143
+ };
144
+
145
+ var processResponse = function processResponse(res, tabId) {
146
+ switch (tabId) {
147
+ case 'tab1':
148
+ setTab1(res);
149
+ break;
150
+
151
+ case 'tab2':
152
+ setTab2(res);
153
+ break;
154
+
155
+ case 'tab3':
156
+ setTab3(res);
157
+ break;
158
+
159
+ case 'tab4':
160
+ setTab4(res);
161
+ break;
162
+
163
+ default:
164
+ break;
165
+ }
166
+
167
+ return res;
168
+ };
169
+
170
+ (0, _react.useLayoutEffect)(function () {
171
+ setDataForRender(getMockData());
172
+ setTab1(null);
173
+ setTab2(null);
174
+ setTab3(null);
175
+ setTab4(null);
176
+ stateChangesRef.current = []; // эмуляция запросов
177
+ // вся логика происходит в самих входящих промисах
178
+ // Promise.all добавлен для расширения на случай надобности описания эффектов по завершении всех запросов
179
+
180
+ Promise.all([(0, _utils.getTab)('tab1', range, processResponse), (0, _utils.getTab)('tab2', range, processResponse), (0, _utils.getTab)('tab3', range, processResponse), (0, _utils.getTab)('tab4', range, processResponse)]);
181
+ }, [range]);
182
+ (0, _react.useLayoutEffect)(function () {
183
+ setInitialModel(getModel());
184
+ setDataForRender(selectData());
185
+ }, [!!getTabData(tab), tab]);
186
+ (0, _react.useEffect)(function () {
187
+ var data = getTabData(tab);
188
+ setDataForRender(selectData());
189
+ }, [tab, chartType]);
190
+ return /*#__PURE__*/_react.default.createElement("div", {
191
+ className: "example-wrapper"
192
+ }, /*#__PURE__*/_react.default.createElement(_InputDateRange.default, (0, _extends2.default)({}, dateRange, {
193
+ value: range,
194
+ onChange: setRange
195
+ })), /*#__PURE__*/_react.default.createElement("div", {
196
+ className: "buttons-block"
197
+ }, /*#__PURE__*/_react.default.createElement("button", {
198
+ className: (0, _classnames.default)('tab-button', {
199
+ 'tab-button_active': tab === 'tab1'
200
+ }),
201
+ onClick: function onClick() {
202
+ return setTab('tab1');
203
+ }
204
+ }, "Tab 1"), /*#__PURE__*/_react.default.createElement("button", {
205
+ className: (0, _classnames.default)('tab-button', {
206
+ 'tab-button_active': tab === 'tab2'
207
+ }),
208
+ onClick: function onClick() {
209
+ return setTab('tab2');
210
+ }
211
+ }, "Tab 2"), /*#__PURE__*/_react.default.createElement("button", {
212
+ className: (0, _classnames.default)('tab-button', {
213
+ 'tab-button_active': tab === 'tab3'
214
+ }),
215
+ onClick: function onClick() {
216
+ return setTab('tab3');
217
+ }
218
+ }, "Tab 3"), /*#__PURE__*/_react.default.createElement("button", {
219
+ className: (0, _classnames.default)('tab-button', {
220
+ 'tab-button_active': tab === 'tab4'
221
+ }),
222
+ onClick: function onClick() {
223
+ return setTab('tab4');
224
+ }
225
+ }, "Tab 4")), /*#__PURE__*/_react.default.createElement(_Chart.default, (0, _extends2.default)({}, chart, {
226
+ key: JSON.stringify(dataForRender),
227
+ data: dataForRender,
228
+ setModelExternalValue: handleChangeChartType,
229
+ initialModel: initialModel,
230
+ modelsForSwitch: modelsForSwitch
231
+ })));
232
+ };
233
+
234
+ var _default = ExampleChartIntegration;
235
+ exports.default = _default;
@@ -0,0 +1,61 @@
1
+ .example-wrapper {
2
+ max-width: 850px;
3
+
4
+ .buttons-block {
5
+ width: 100%;
6
+ margin-top: 50px;
7
+ display: flex;
8
+ flex-flow: row nowrap;
9
+ }
10
+
11
+ .tab-button {
12
+ width: 100px;
13
+ height: 40px;
14
+
15
+ margin-right: 20px;
16
+ border: 1px solid black;
17
+
18
+ &:last-child {
19
+ margin-right: 0;
20
+ }
21
+
22
+ &_active {
23
+ text-decoration: underline;
24
+ }
25
+ }
26
+
27
+ .chart:not(.chart_icon-mode) {
28
+ max-width: 806px;
29
+
30
+ background: #FFFFFF;
31
+ box-shadow: 0px 16px 24px rgba(0, 0, 0, 0.05);
32
+ border-radius: 16px;
33
+ }
34
+
35
+ .chart__description-title {
36
+ font-style: normal;
37
+ font-weight: 600;
38
+ font-size: 16px;
39
+ line-height: 24px;
40
+ letter-spacing: 0.1px;
41
+ color: #3B414B;
42
+ }
43
+
44
+ .chart__description-value {
45
+ span {
46
+ font-style: normal;
47
+ font-weight: 600;
48
+ font-size: 20px;
49
+ line-height: 30px;
50
+ letter-spacing: 0.359794px;
51
+ color: #3B414B;
52
+
53
+ &:last-child {
54
+ font-size: 14px;
55
+ line-height: 20px;
56
+ letter-spacing: 0.2px;
57
+ color: #757F8C;
58
+ }
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getTab = exports.getMockValue = exports.getLabels = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
16
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
17
+
18
+ var _dependencies = require("../../../FormElements/InputDateRange/dependencies");
19
+
20
+ var getLabels = function getLabels(range) {
21
+ // safely Range must have 'start' and 'end' properties
22
+ var safelyRange = (0, _dependencies.getActualDateRange)(range);
23
+ var NO_MORE_THAN_TWO_DAYS = 48;
24
+ var NO_MORE_THAN_TWO_MONTHS = 2;
25
+ var NO_MORE_THAN_THREE_YEARS = 36;
26
+
27
+ var getValues = function getValues(intervalStepKey) {
28
+ var format;
29
+
30
+ switch (intervalStepKey) {
31
+ case 'hours':
32
+ format = 'MM.DD.YYYY - HH:00';
33
+ break;
34
+
35
+ case 'days':
36
+ format = 'MM.DD.YYYY';
37
+ break;
38
+
39
+ case 'months':
40
+ format = 'MM.YYYY';
41
+ break;
42
+
43
+ default:
44
+ format = 'YYYY';
45
+ break;
46
+ }
47
+
48
+ var process = (0, _toConsumableArray2.default)(Array((0, _momentTimezone.default)(safelyRange === null || safelyRange === void 0 ? void 0 : safelyRange.end).diff(safelyRange === null || safelyRange === void 0 ? void 0 : safelyRange.start, intervalStepKey)).keys()).reduce(function (acc, iteration) {
49
+ acc.values.push(acc.point.format(format));
50
+ acc.point = acc.point.add(1, intervalStepKey);
51
+ return acc;
52
+ }, {
53
+ point: (0, _momentTimezone.default)(safelyRange.start),
54
+ values: []
55
+ });
56
+ return process.values;
57
+ };
58
+
59
+ if ((0, _momentTimezone.default)(safelyRange === null || safelyRange === void 0 ? void 0 : safelyRange.end).diff(safelyRange === null || safelyRange === void 0 ? void 0 : safelyRange.start, 'hours') <= NO_MORE_THAN_TWO_DAYS) return getValues('hours');else if ((0, _momentTimezone.default)(safelyRange === null || safelyRange === void 0 ? void 0 : safelyRange.end).diff(safelyRange === null || safelyRange === void 0 ? void 0 : safelyRange.start, 'month') <= NO_MORE_THAN_TWO_MONTHS) return getValues('days');else if ((0, _momentTimezone.default)(safelyRange === null || safelyRange === void 0 ? void 0 : safelyRange.end).diff(safelyRange === null || safelyRange === void 0 ? void 0 : safelyRange.start, 'month') <= NO_MORE_THAN_THREE_YEARS) return getValues('months');else return getValues('years');
60
+ };
61
+
62
+ exports.getLabels = getLabels;
63
+
64
+ var getMockValue = function getMockValue() {
65
+ return Math.trunc(Math.random() * 1000);
66
+ };
67
+
68
+ exports.getMockValue = getMockValue;
69
+
70
+ var getTab = /*#__PURE__*/function () {
71
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(tabId, range, callback) {
72
+ var requestDelay;
73
+ return _regenerator.default.wrap(function _callee$(_context) {
74
+ while (1) {
75
+ switch (_context.prev = _context.next) {
76
+ case 0:
77
+ _context.t0 = tabId;
78
+ _context.next = _context.t0 === 'tab1' ? 3 : _context.t0 === 'tab2' ? 5 : _context.t0 === 'tab3' ? 7 : _context.t0 === 'tab4' ? 9 : 11;
79
+ break;
80
+
81
+ case 3:
82
+ requestDelay = 2000;
83
+ return _context.abrupt("break", 13);
84
+
85
+ case 5:
86
+ requestDelay = 1500;
87
+ return _context.abrupt("break", 13);
88
+
89
+ case 7:
90
+ requestDelay = 3000;
91
+ return _context.abrupt("break", 13);
92
+
93
+ case 9:
94
+ requestDelay = 500;
95
+ return _context.abrupt("break", 13);
96
+
97
+ case 11:
98
+ requestDelay = 1000;
99
+ return _context.abrupt("break", 13);
100
+
101
+ case 13:
102
+ return _context.abrupt("return", new Promise(function (res) {
103
+ return setTimeout(function () {
104
+ var labels = getLabels(range);
105
+ res({
106
+ labels: labels,
107
+ datasets: [{
108
+ data: labels.map(function () {
109
+ return getMockValue();
110
+ })
111
+ }]
112
+ });
113
+ }, requestDelay);
114
+ }).then(function (res) {
115
+ return callback ? callback(res, tabId) : res;
116
+ }));
117
+
118
+ case 14:
119
+ case "end":
120
+ return _context.stop();
121
+ }
122
+ }
123
+ }, _callee);
124
+ }));
125
+
126
+ return function getTab(_x, _x2, _x3) {
127
+ return _ref.apply(this, arguments);
128
+ };
129
+ }();
130
+
131
+ exports.getTab = getTab;
@@ -5,10 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.checkedRef = exports.firstLetterCapital = exports.changeMeta = exports.addBitDepthPoints = exports.throttle = exports.debounce = exports.getColorById = exports.getStyles = exports.logout = exports.useOutsideToggle = exports.handleObjectChange = void 0;
8
+ exports.checkedRef = exports.firstLetterCapital = exports.changeMeta = exports.addBitDepthPoints = exports.throttle = exports.debounce = exports.getColorById = exports.getStyles = exports.logout = exports.clone = exports.useOutsideToggle = exports.handleObjectChange = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
12
14
  var _react = require("react");
13
15
 
14
16
  var _index = require("../Constants/index.constants");
@@ -55,6 +57,18 @@ var useOutsideToggle = function useOutsideToggle(ref, setOut, open) {
55
57
 
56
58
  exports.useOutsideToggle = useOutsideToggle;
57
59
 
60
+ var clone = function clone(obj) {
61
+ var data = obj instanceof Array ? [] : {};
62
+
63
+ for (var i in obj) {
64
+ data[i] = (0, _typeof2.default)(obj[i]) === 'object' && obj[i] != null ? clone(obj[i]) : obj[i];
65
+ }
66
+
67
+ return data;
68
+ };
69
+
70
+ exports.clone = clone;
71
+
58
72
  var logout = function logout() {
59
73
  window.localStorage.removeItem('accessToken');
60
74
  window.localStorage.removeItem('tokenExpires');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "0.2.26",
3
+ "version": "0.2.27",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -18,10 +18,12 @@
18
18
  "license": "ISC",
19
19
  "dependencies": {
20
20
  "anme": "^1.0.1",
21
+ "chart.js": "^3.8.0",
21
22
  "classnames": "^2.3.1",
22
23
  "moment": "^2.29.1",
23
24
  "moment-timezone": "^0.5.34",
24
25
  "react": "^17.0.2",
26
+ "react-chartjs-2": "^4.1.0",
25
27
  "react-feather": "^2.0.9",
26
28
  "react-input-mask": "^2.0.4"
27
29
  },