@sis-cc/dotstatsuite-visions 12.18.0 → 12.20.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.
@@ -0,0 +1,410 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _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; };
6
+
7
+ var _react = require('react');
8
+
9
+ var _react2 = _interopRequireDefault(_react);
10
+
11
+ var _propTypes = require('prop-types');
12
+
13
+ var _propTypes2 = _interopRequireDefault(_propTypes);
14
+
15
+ var _ramda = require('ramda');
16
+
17
+ var R = _interopRequireWildcard(_ramda);
18
+
19
+ var _classnames = require('classnames');
20
+
21
+ var _classnames2 = _interopRequireDefault(_classnames);
22
+
23
+ var _Box = require('@mui/material/Box');
24
+
25
+ var _Box2 = _interopRequireDefault(_Box);
26
+
27
+ var _AdvancedSelection = require('./AdvancedSelection');
28
+
29
+ var _AdvancedSelection2 = _interopRequireDefault(_AdvancedSelection);
30
+
31
+ var _material = require('@mui/material');
32
+
33
+ var _makeStyles = require('@mui/styles/makeStyles');
34
+
35
+ var _makeStyles2 = _interopRequireDefault(_makeStyles);
36
+
37
+ var _Close = require('@mui/icons-material/Close');
38
+
39
+ var _Close2 = _interopRequireDefault(_Close);
40
+
41
+ var _Button = require('@mui/material/Button');
42
+
43
+ var _Button2 = _interopRequireDefault(_Button);
44
+
45
+ var _ArrowBack = require('@mui/icons-material/ArrowBack');
46
+
47
+ var _ArrowBack2 = _interopRequireDefault(_ArrowBack);
48
+
49
+ var _ = require('..');
50
+
51
+ 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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
52
+
53
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
54
+
55
+ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
56
+
57
+ var useStyles = (0, _makeStyles2.default)(function (theme) {
58
+ return {
59
+ label: _extends({
60
+ textTransform: 'none',
61
+ color: theme.palette.grey[700]
62
+ }, R.pathOr({}, ['mixins', 'expansionPanel', 'title'], theme)),
63
+ labelSelected: {
64
+ color: theme.palette.primary.main
65
+ },
66
+ tabSelected: {
67
+ backgroundColor: theme.palette.action.hover + ' !important',
68
+ '&:hover': {
69
+ backgroundColor: theme.palette.action.selected + ' !important'
70
+ }
71
+ },
72
+ tab: {
73
+ '&:hover': {
74
+ backgroundColor: '' + theme.palette.action.selected
75
+ }
76
+ },
77
+ tabPanel: {
78
+ backgroundColor: theme.palette.background.default,
79
+ position: 'absolute',
80
+ top: '176px',
81
+ zIndex: 1000,
82
+ width: '80vw',
83
+ height: '100vh',
84
+ left: '200px'
85
+ }
86
+ };
87
+ });
88
+
89
+ var TabPanel = function TabPanel(props) {
90
+ var children = props.children,
91
+ open = props.open,
92
+ item = props.item,
93
+ classes = props.classes,
94
+ labels = props.labels,
95
+ onClose = props.onClose,
96
+ isNarrow = props.isNarrow,
97
+ setOpen = props.setOpen,
98
+ other = _objectWithoutProperties(props, ['children', 'open', 'item', 'classes', 'labels', 'onClose', 'isNarrow', 'setOpen']);
99
+
100
+ return _react2.default.createElement(
101
+ 'div',
102
+ _extends({
103
+ role: 'tabpanel',
104
+ hidden: !open,
105
+ id: 'vertical-tabpanel-' + item.index,
106
+ 'aria-labelledby': 'vertical-tab-' + item.index,
107
+ className: isNarrow ? classes.tabPanelNarrow : classes.tabPanel
108
+ }, other),
109
+ open && _react2.default.createElement(
110
+ _Box2.default,
111
+ { sx: { p: 3 } },
112
+ isNarrow && _react2.default.createElement(
113
+ _Button2.default,
114
+ {
115
+ onClick: function onClick() {
116
+ return setOpen(false);
117
+ },
118
+ 'data-testid': 'back_button',
119
+ 'aria-label': R.prop('cancel', labels),
120
+ sx: {
121
+ padding: 0,
122
+ float: 'left'
123
+ },
124
+ size: 'large'
125
+ },
126
+ _react2.default.createElement(_ArrowBack2.default, null)
127
+ ),
128
+ _react2.default.createElement(
129
+ _Button2.default,
130
+ {
131
+ onClick: onClose,
132
+ 'aria-label': R.prop('cancel', labels),
133
+ sx: {
134
+ color: 'grey !important',
135
+ padding: 0,
136
+ float: 'right'
137
+ },
138
+ size: 'large'
139
+ },
140
+ _react2.default.createElement(_Close2.default, null)
141
+ ),
142
+ children
143
+ )
144
+ );
145
+ };
146
+ TabPanel.propTypes = process.env.NODE_ENV !== "production" ? {
147
+ item: _propTypes2.default.object,
148
+ open: _propTypes2.default.bool,
149
+ classes: _propTypes2.default.object,
150
+ labels: _propTypes2.default.object,
151
+ onClose: _propTypes2.default.func,
152
+ children: _propTypes2.default.node,
153
+ isNarrow: _propTypes2.default.bool,
154
+ setOpen: _propTypes2.default.func
155
+ } : {};
156
+
157
+ var PaperComponent = function PaperComponent(props) {
158
+ var _cx;
159
+
160
+ var classes = useStyles();
161
+ return _react2.default.createElement(
162
+ _material.Paper,
163
+ props,
164
+ _react2.default.createElement(
165
+ _Box2.default,
166
+ { sx: { display: 'flex', justifyContent: 'space-between', width: '100%' } },
167
+ _react2.default.createElement(
168
+ _material.Typography,
169
+ {
170
+ noWrap: true,
171
+ variant: 'body2',
172
+ title: props.label,
173
+ className: (0, _classnames2.default)(classes.label, (_cx = {}, _cx[classes.labelSelected] = props.selected, _cx))
174
+ },
175
+ props.label
176
+ ),
177
+ props.tag
178
+ )
179
+ );
180
+ };
181
+ PaperComponent.propTypes = process.env.NODE_ENV !== "production" ? {
182
+ label: _propTypes2.default.string,
183
+ tag: _propTypes2.default.elementType,
184
+ selected: _propTypes2.default.bool
185
+ } : {};
186
+
187
+ var DynamicDrawer = function DynamicDrawer(props) {
188
+ var classNames = useStyles();
189
+
190
+ var _useState = (0, _react.useState)(false),
191
+ open = _useState[0],
192
+ setOpen = _useState[1];
193
+
194
+ var _useState2 = (0, _react.useState)({}),
195
+ filter = _useState2[0],
196
+ setFilter = _useState2[1];
197
+
198
+ var _useState3 = (0, _react.useState)({}),
199
+ selection = _useState3[0],
200
+ setSelection = _useState3[1];
201
+
202
+ var _useState4 = (0, _react.useState)({}),
203
+ allSelection = _useState4[0],
204
+ setAllSelection = _useState4[1];
205
+
206
+ var getCounter = function getCounter(items, tagAccessor) {
207
+ var selectedItemsIds = R.reduce(function (acc, item) {
208
+ if (R.prop('isSelected', item)) {
209
+ return R.append(item.id, acc);
210
+ }
211
+ return acc;
212
+ }, [], items);
213
+ var itemsIds = R.pluck('id', items);
214
+ var count = R.pipe(R.uniq, R.length)(selectedItemsIds);
215
+ var total = R.pipe(R.uniq, R.length)(itemsIds);
216
+ if (R.is(Function, tagAccessor)) {
217
+ return tagAccessor(count, total);
218
+ }
219
+ return count + '/' + total;
220
+ };
221
+
222
+ var list = props.list,
223
+ labelRenderer = props.labelRenderer,
224
+ onClick = props.onClick,
225
+ handleChangePanel = props.handleChangePanel,
226
+ isNarrow = props.isNarrow,
227
+ labels = props.labels,
228
+ _props$disableAccesso = props.disableAccessor,
229
+ disableAccessor = _props$disableAccesso === undefined ? R.always(false) : _props$disableAccesso,
230
+ expandAll = props.expandAll,
231
+ collapseAll = props.collapseAll,
232
+ expandedIds = props.expandedIds,
233
+ allItems = props.allItems,
234
+ periodPanel = props.periodPanel,
235
+ classes = props.classes,
236
+ _props$testId = props.testId,
237
+ testId = _props$testId === undefined ? 'tabs' : _props$testId,
238
+ tagAccessor = props.tagAccessor,
239
+ tagAriaLabel = props.tagAriaLabel,
240
+ children = props.children,
241
+ rest = _objectWithoutProperties(props, ['list', 'labelRenderer', 'onClick', 'handleChangePanel', 'isNarrow', 'labels', 'disableAccessor', 'expandAll', 'collapseAll', 'expandedIds', 'allItems', 'periodPanel', 'classes', 'testId', 'tagAccessor', 'tagAriaLabel', 'children']);
242
+
243
+ var handleChange = function handleChange(e, item) {
244
+ console.log({ item: item, selection: selection, allSelection: allSelection });
245
+ setSelection(_extends({}, allSelection[item.id]));
246
+ handleChangePanel(item.id, allSelection);
247
+ setFilter(item);
248
+ setOpen(true);
249
+ };
250
+ var handleSubmit = function handleSubmit() {
251
+ onClick(allSelection);
252
+ setAllSelection({});
253
+ setSelection({});
254
+ setOpen(false);
255
+ };
256
+ var handleClose = function handleClose() {
257
+ setOpen(false);
258
+ setAllSelection({});
259
+ setSelection({});
260
+ };
261
+ var isHidden = open && isNarrow;
262
+ var isNotHiddenButton = !R.isEmpty(allSelection) && isNarrow;
263
+
264
+ return _react2.default.createElement(
265
+ 'div',
266
+ { style: { display: 'flex', flexDirection: 'row' } },
267
+ _react2.default.createElement(
268
+ _material.Tabs,
269
+ {
270
+ orientation: 'vertical',
271
+ variant: 'scrollable',
272
+ value: false,
273
+ onChange: handleChange,
274
+ 'aria-label': 'filters',
275
+ 'data-testid': testId,
276
+ sx: {
277
+ display: isHidden ? 'none' : 'flex',
278
+ width: '100%',
279
+ height: '100%',
280
+ borderRight: 1,
281
+ borderColor: 'divider'
282
+ }
283
+ },
284
+ R.map(function (item) {
285
+ var _cx2;
286
+
287
+ var Chip = R.isNil(item.tag) ? _.Tag : item.tag;
288
+ var tagValueLabel = R.isNil(item.tag) && getCounter(item.values, tagAriaLabel);
289
+
290
+ return _react2.default.createElement(_material.Tab, {
291
+ key: item.id,
292
+ id: filter.id,
293
+ 'data-testid': item.id + '-tab',
294
+ component: function component(props) {
295
+ return PaperComponent(_extends({
296
+ label: labelRenderer(item),
297
+ selected: filter.id === item.id,
298
+ tag: R.isNil(item.tag) ? _react2.default.createElement(
299
+ Chip,
300
+ { items: item.values, tagValueLabel: tagValueLabel },
301
+ getCounter(item.values, tagAccessor)
302
+ ) : item.tag
303
+ }, props));
304
+ },
305
+ label: labelRenderer(item),
306
+ 'aria-label': labelRenderer(item),
307
+ value: item,
308
+ 'aria-selected': filter.id === item.id,
309
+ className: (0, _classnames2.default)(classNames.tab, (_cx2 = {}, _cx2[classNames.tabSelected] = filter.id === item.id, _cx2)),
310
+ sx: {
311
+ alignItems: 'start',
312
+ maxWidth: '100%'
313
+ },
314
+ wrapped: true
315
+ });
316
+ })(list),
317
+ open && !isNarrow && _react2.default.createElement(
318
+ _.Button,
319
+ {
320
+ sx: { float: 'bottom', margin: '10px' },
321
+ 'aria-label': R.prop('apply', labels),
322
+ id: 'apply_button',
323
+ variant: 'contained',
324
+ onClick: handleSubmit
325
+ },
326
+ R.prop('apply', labels)
327
+ ),
328
+ isNotHiddenButton && _react2.default.createElement(
329
+ _.Button,
330
+ {
331
+ sx: { float: 'bottom', margin: '10px' },
332
+ 'aria-label': R.prop('apply', labels),
333
+ id: 'apply_button',
334
+ variant: 'contained',
335
+ onClick: handleSubmit
336
+ },
337
+ R.prop('apply', labels)
338
+ )
339
+ ),
340
+ _react2.default.createElement(
341
+ TabPanel,
342
+ {
343
+ item: filter,
344
+ 'data-testid': testId + '_panel',
345
+ open: open,
346
+ labels: labels,
347
+ classes: classes,
348
+ onClose: handleClose,
349
+ isNarrow: isNarrow,
350
+ setOpen: setOpen
351
+ },
352
+ R.equals(filter.id, periodPanel) ? children : _react2.default.createElement(_AdvancedSelection2.default, _extends({
353
+ id: filter.id,
354
+ items: filter.values,
355
+ isOpen: open,
356
+ labelRenderer: labelRenderer,
357
+ disableAccessor: disableAccessor ? R.pipe(R.prop('isEnabled'), R.not) : undefined,
358
+ labels: labels,
359
+ isNarrow: isNarrow,
360
+ expandAll: expandAll,
361
+ collapseAll: collapseAll,
362
+ expandedIds: expandedIds,
363
+ allItems: allItems,
364
+ selection: selection,
365
+ setSelection: setSelection,
366
+ setAllSelection: setAllSelection,
367
+ allSelection: allSelection
368
+ }, rest, {
369
+ filter: filter
370
+ }))
371
+ )
372
+ );
373
+ };
374
+ DynamicDrawer.propTypes = process.env.NODE_ENV !== "production" ? {
375
+ classes: _propTypes2.default.object,
376
+ testId: _propTypes2.default.string,
377
+ list: _propTypes2.default.array,
378
+ labelAccessor: _propTypes2.default.func,
379
+ tagAccessor: _propTypes2.default.func,
380
+ tagValueLabel: _propTypes2.default.func,
381
+ tag: _propTypes2.default.elementType,
382
+ tagAriaLabel: _propTypes2.default.func,
383
+ handleChangePanel: _propTypes2.default.func,
384
+ displayChildren: _propTypes2.default.func,
385
+ labels: _propTypes2.default.shape({
386
+ placeholder: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),
387
+ disableItemLabel: _propTypes2.default.string,
388
+ singleSelection: _propTypes2.default.string,
389
+ childrenSelection: _propTypes2.default.string,
390
+ branchSelection: _propTypes2.default.string,
391
+ levelSelection: _propTypes2.default.string,
392
+ selectAll: _propTypes2.default.string,
393
+ deselectAll: _propTypes2.default.string,
394
+ apply: _propTypes2.default.string,
395
+ cancel: _propTypes2.default.string
396
+ }),
397
+ labelRenderer: _propTypes2.default.func,
398
+ expandAll: _propTypes2.default.func,
399
+ collapseAll: _propTypes2.default.func,
400
+ expandedIds: _propTypes2.default.object,
401
+ allItems: _propTypes2.default.array,
402
+ onClick: _propTypes2.default.func,
403
+ periodPanel: _propTypes2.default.string,
404
+ isNarrow: _propTypes2.default.bool,
405
+ disableAccessor: _propTypes2.default.func,
406
+ children: _propTypes2.default.node
407
+ } : {};
408
+
409
+ exports.default = DynamicDrawer;
410
+ module.exports = exports['default'];
@@ -0,0 +1,105 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _react = require('react');
6
+
7
+ var _react2 = _interopRequireDefault(_react);
8
+
9
+ var _propTypes = require('prop-types');
10
+
11
+ var _propTypes2 = _interopRequireDefault(_propTypes);
12
+
13
+ var _ramda = require('ramda');
14
+
15
+ var R = _interopRequireWildcard(_ramda);
16
+
17
+ var _material = require('@mui/material');
18
+
19
+ var _ = require('..');
20
+
21
+ 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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
22
+
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+
25
+ var mapIndexed = R.addIndex(R.map);
26
+ var ButtonCarousel = function ButtonCarousel(_ref) {
27
+ var selectionModes = _ref.selectionModes,
28
+ selectionMode = _ref.selectionMode,
29
+ setSelectionMode = _ref.setSelectionMode,
30
+ classes = _ref.classes;
31
+
32
+ return _react2.default.createElement(
33
+ _material.Box,
34
+ {
35
+ sx: {
36
+ overflowX: 'auto',
37
+ overflowY: 'hidden',
38
+ whiteSpace: 'nowrap',
39
+ display: 'block', // allow horizontal scrolling
40
+ width: '100%',
41
+ maxWidth: '100%',
42
+ '&::-webkit-scrollbar': { display: 'none' }, // optional: hide scrollbar
43
+ scrollbarWidth: 'none'
44
+ }
45
+ },
46
+ mapIndexed(function (_ref2) {
47
+ var value = _ref2.value,
48
+ label = _ref2.label,
49
+ img = _ref2.img;
50
+ return _react2.default.createElement(
51
+ _.Tooltip,
52
+ {
53
+ key: value,
54
+ classes: { tooltip: classes.tooltip },
55
+ title: _react2.default.createElement('img', { style: { width: '72px', height: '90px' }, src: img, alt: value }),
56
+ tabIndex: -1
57
+ },
58
+ _react2.default.createElement(
59
+ _material.Button,
60
+ {
61
+ className: classes.selectButton,
62
+ selected: value === selectionMode,
63
+ onClick: function onClick() {
64
+ setSelectionMode(value);
65
+ },
66
+ 'aria-pressed': value === selectionMode,
67
+ 'aria-label': label,
68
+ tabIndex: 0,
69
+ sx: {
70
+ flex: '0 0 auto', // Prevents buttons from shrinking
71
+ scrollSnapAlign: 'center',
72
+ minWidth: 120, // Minimum width for buttons
73
+ whiteSpace: 'nowrap'
74
+ }
75
+ },
76
+ _react2.default.createElement(
77
+ _material.Paper,
78
+ { elevation: 0, className: classes.selectModeItem, key: value },
79
+ _react2.default.createElement(
80
+ _material.Typography,
81
+ null,
82
+ label
83
+ ),
84
+ !R.isNil(img) && R.is(String, img) && _react2.default.createElement('img', { src: img, alt: value })
85
+ )
86
+ )
87
+ );
88
+ }, selectionModes)
89
+ );
90
+ };
91
+
92
+ exports.default = ButtonCarousel;
93
+
94
+
95
+ ButtonCarousel.propTypes = process.env.NODE_ENV !== "production" ? {
96
+ selectionModes: _propTypes2.default.arrayOf(_propTypes2.default.shape({
97
+ value: _propTypes2.default.string.isRequired,
98
+ label: _propTypes2.default.string.isRequired,
99
+ img: _propTypes2.default.string
100
+ })).isRequired,
101
+ selectionMode: _propTypes2.default.string.isRequired,
102
+ setSelectionMode: _propTypes2.default.func.isRequired,
103
+ classes: _propTypes2.default.object.isRequired
104
+ } : {};
105
+ module.exports = exports['default'];
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _DynamicDrawer = require('./DynamicDrawer');
6
+
7
+ Object.defineProperty(exports, 'default', {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _interopRequireDefault(_DynamicDrawer).default;
11
+ }
12
+ });
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ module.exports = exports['default'];