@sis-cc/dotstatsuite-visions 7.18.6 → 7.19.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,524 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+ exports.getScopeGetters = undefined;
5
+
6
+ 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; };
7
+
8
+ var _react = require('react');
9
+
10
+ var _react2 = _interopRequireDefault(_react);
11
+
12
+ var _propTypes = require('prop-types');
13
+
14
+ var _propTypes2 = _interopRequireDefault(_propTypes);
15
+
16
+ var _ramda = require('ramda');
17
+
18
+ var R = _interopRequireWildcard(_ramda);
19
+
20
+ var _classnames = require('classnames');
21
+
22
+ var _classnames2 = _interopRequireDefault(_classnames);
23
+
24
+ var _VirtualizedTree = require('../VirtualizedTree/VirtualizedTree');
25
+
26
+ var _Button = require('@material-ui/core/Button');
27
+
28
+ var _Button2 = _interopRequireDefault(_Button);
29
+
30
+ var _Dialog = require('@material-ui/core/Dialog');
31
+
32
+ var _Dialog2 = _interopRequireDefault(_Dialog);
33
+
34
+ var _DialogTitle = require('@material-ui/core/DialogTitle');
35
+
36
+ var _DialogTitle2 = _interopRequireDefault(_DialogTitle);
37
+
38
+ var _DialogContent = require('@material-ui/core/DialogContent');
39
+
40
+ var _DialogContent2 = _interopRequireDefault(_DialogContent);
41
+
42
+ var _DialogActions = require('@material-ui/core/DialogActions');
43
+
44
+ var _DialogActions2 = _interopRequireDefault(_DialogActions);
45
+
46
+ var _Card = require('@material-ui/core/Card');
47
+
48
+ var _Card2 = _interopRequireDefault(_Card);
49
+
50
+ var _CardContent = require('@material-ui/core/CardContent');
51
+
52
+ var _CardContent2 = _interopRequireDefault(_CardContent);
53
+
54
+ var _Paper = require('@material-ui/core/Paper');
55
+
56
+ var _Paper2 = _interopRequireDefault(_Paper);
57
+
58
+ var _Grid = require('@material-ui/core/Grid');
59
+
60
+ var _Grid2 = _interopRequireDefault(_Grid);
61
+
62
+ var _Typography = require('@material-ui/core/Typography');
63
+
64
+ var _Typography2 = _interopRequireDefault(_Typography);
65
+
66
+ var _PlaylistAddCheck = require('@material-ui/icons/PlaylistAddCheck');
67
+
68
+ var _PlaylistAddCheck2 = _interopRequireDefault(_PlaylistAddCheck);
69
+
70
+ var _Close = require('@material-ui/icons/Close');
71
+
72
+ var _Close2 = _interopRequireDefault(_Close);
73
+
74
+ var _EmojiObjects = require('@material-ui/icons/EmojiObjects');
75
+
76
+ var _EmojiObjects2 = _interopRequireDefault(_EmojiObjects);
77
+
78
+ var _reactDraggable = require('react-draggable');
79
+
80
+ var _reactDraggable2 = _interopRequireDefault(_reactDraggable);
81
+
82
+ var _ = require('..');
83
+
84
+ var _styles = require('@material-ui/core/styles');
85
+
86
+ 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; } }
87
+
88
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
89
+
90
+ 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; }
91
+
92
+ var PaperComponent = function PaperComponent(props) {
93
+ return _react2.default.createElement(
94
+ _reactDraggable2.default,
95
+ { handle: '#draggable-dialog-title', cancel: '[class*="MuiDialogContent-root"]' },
96
+ _react2.default.createElement(_Paper2.default, _extends({ style: { minWidth: '75%', height: 700 } }, props))
97
+ );
98
+ };
99
+
100
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
101
+ return {
102
+ header: {
103
+ color: 'black',
104
+ display: 'flex',
105
+ alignItems: 'center',
106
+ justifyContent: 'space-between',
107
+ width: '100%'
108
+ },
109
+ headerLabel: {
110
+ display: 'flex',
111
+ alignItems: 'center'
112
+ },
113
+ closeButton: {
114
+ color: 'grey !important',
115
+ padding: 0
116
+ },
117
+ selectMode: {
118
+ marginLeft: 10,
119
+ '& .MuiInputBase-root': {
120
+ height: 32
121
+ }
122
+ },
123
+ topElements: {
124
+ display: 'flex',
125
+ flexDirection: 'row',
126
+ alignItems: 'center'
127
+ },
128
+ narrowTop: {
129
+ flexDirection: 'column',
130
+ alignItems: 'flex-start'
131
+ },
132
+ spotlight: { width: '45%' },
133
+ narrowSpotlight: { width: '100%' },
134
+ selectionButton: {
135
+ marginLeft: 24,
136
+ height: 32
137
+ },
138
+ narrowSelectionButton: {
139
+ height: 32,
140
+ marginTop: 5
141
+ },
142
+ selectionMenu: {
143
+ width: '50%',
144
+ position: 'absolute',
145
+ top: 105,
146
+ right: 24,
147
+ zIndex: 1
148
+ },
149
+ narrowSelectionMenu: {
150
+ width: '100%'
151
+ },
152
+ selectModeContainer: {
153
+ display: 'flex',
154
+ flexDirection: 'row',
155
+ flexWrap: 'wrap'
156
+ },
157
+ selectedItem: {
158
+ backgroundColor: theme.palette.secondary.main
159
+ },
160
+ selectModeItem: {
161
+ boxShadow: 'none',
162
+ display: 'flex',
163
+ width: 110,
164
+ height: 200,
165
+ flexDirection: 'column',
166
+ justifyContent: 'flex-end',
167
+ '& img': {
168
+ width: 110,
169
+ height: 140
170
+ }
171
+ },
172
+ hint: {
173
+ marginLeft: 10,
174
+ marginRight: 10,
175
+ display: 'flex',
176
+ flexDirection: 'row'
177
+ }
178
+ };
179
+ });
180
+
181
+ var getScopeGetters = exports.getScopeGetters = function getScopeGetters(items, groupedItems, disableAccessor) {
182
+ return {
183
+ all: function all() {
184
+ return R.reject(disableAccessor, items);
185
+ },
186
+ single: function single(item) {
187
+ return [item];
188
+ },
189
+ children: function children(item) {
190
+ var childItems = R.propOr([], (0, _VirtualizedTree.getHierarchicalId)(item), groupedItems);
191
+ return R.reject(disableAccessor, R.prepend(item, childItems));
192
+ },
193
+ branch: function branch(item) {
194
+ var reccurse = function reccurse(_item) {
195
+ var childItems = R.pipe(R.propOr([], (0, _VirtualizedTree.getHierarchicalId)(_item)), R.map(reccurse), R.unnest)(groupedItems);
196
+
197
+ return R.prepend(_item, childItems);
198
+ };
199
+ var items = reccurse(item);
200
+ return R.reject(disableAccessor, items);
201
+ },
202
+ level: function level(item) {
203
+ var parentId = R.propOr('#ROOT', 'parentId', item);
204
+ var items = R.prop(parentId, groupedItems);
205
+ return R.reject(disableAccessor, items);
206
+ }
207
+ };
208
+ };
209
+
210
+ var SelectionModeMenu = function SelectionModeMenu(_ref) {
211
+ var isOpen = _ref.isOpen,
212
+ onSelect = _ref.onSelect,
213
+ options = _ref.options,
214
+ selected = _ref.selected,
215
+ classes = _ref.classes,
216
+ isNarrow = _ref.isNarrow,
217
+ hint = _ref.hint;
218
+
219
+ if (!isOpen) {
220
+ return null;
221
+ }
222
+ return _react2.default.createElement(
223
+ 'div',
224
+ { className: isNarrow ? classes.narrowSelectionMenu : classes.selectionMenu },
225
+ _react2.default.createElement(
226
+ _Card2.default,
227
+ null,
228
+ _react2.default.createElement(
229
+ _CardContent2.default,
230
+ { className: classes.selectModeContainer },
231
+ R.map(function (_ref2) {
232
+ var _cx;
233
+
234
+ var value = _ref2.value,
235
+ label = _ref2.label,
236
+ imgSrc = _ref2.imgSrc;
237
+ return _react2.default.createElement(
238
+ _.Button,
239
+ _extends({}, value === selected ? { variant: 'contained', color: 'secondary' } : {}, {
240
+ key: value,
241
+ onClick: function onClick() {
242
+ return onSelect(value);
243
+ }
244
+ }),
245
+ _react2.default.createElement(
246
+ _Paper2.default,
247
+ {
248
+ className: (0, _classnames2.default)(classes.selectModeItem, (_cx = {}, _cx[classes.selectedItem] = value === selected, _cx)),
249
+ key: value
250
+ },
251
+ _react2.default.createElement(
252
+ _Typography2.default,
253
+ { variant: 'body2' },
254
+ label
255
+ ),
256
+ _react2.default.createElement('img', { src: imgSrc, alt: value })
257
+ )
258
+ );
259
+ }, options)
260
+ ),
261
+ _react2.default.createElement(
262
+ 'div',
263
+ { className: classes.hint },
264
+ _react2.default.createElement(_EmojiObjects2.default, null),
265
+ _react2.default.createElement(
266
+ _Typography2.default,
267
+ { variant: 'body2' },
268
+ hint
269
+ )
270
+ )
271
+ )
272
+ );
273
+ };
274
+ SelectionModeMenu.propTypes = process.env.NODE_ENV !== "production" ? {
275
+ classes: _propTypes2.default.object,
276
+ hint: _propTypes2.default.string,
277
+ isNarrow: _propTypes2.default.bool,
278
+ isOpen: _propTypes2.default.bool,
279
+ onSelect: _propTypes2.default.func,
280
+ options: _propTypes2.default.array,
281
+ selected: _propTypes2.default.string
282
+ } : {};
283
+
284
+ var AdvancedFilterDialog = function AdvancedFilterDialog(props) {
285
+ var _cx2;
286
+
287
+ var id = props.id,
288
+ title = props.title,
289
+ items = props.items,
290
+ labelRenderer = props.labelRenderer,
291
+ onClose = props.onClose,
292
+ changeSelection = props.changeSelection,
293
+ isOpen = props.isOpen,
294
+ isNarrow = props.isNarrow,
295
+ labels = props.labels,
296
+ imgs = props.imgs,
297
+ disableAccessor = props.disableAccessor,
298
+ rest = _objectWithoutProperties(props, ['id', 'title', 'items', 'labelRenderer', 'onClose', 'changeSelection', 'isOpen', 'isNarrow', 'labels', 'imgs', 'disableAccessor']);
299
+
300
+ var _useState = (0, _react.useState)(''),
301
+ term = _useState[0].term,
302
+ setSpotlight = _useState[1];
303
+
304
+ var _useState2 = (0, _react.useState)('single'),
305
+ selectionMode = _useState2[0],
306
+ setSelectionMode = _useState2[1];
307
+
308
+ var _useState3 = (0, _react.useState)(false),
309
+ isOpenSelectionMenu = _useState3[0],
310
+ setIsOpenSelectionMenu = _useState3[1];
311
+
312
+ var _useState4 = (0, _react.useState)({}),
313
+ selection = _useState4[0],
314
+ setSelection = _useState4[1];
315
+
316
+ var classes = useStyles();
317
+
318
+ var groupedItemsByParentId = R.groupBy(R.propOr('#ROOT', 'parentId'), items);
319
+
320
+ var recurse = R.filter(function (item) {
321
+ var isValidItem = R.isEmpty(term) || R.isNil(term) ? true : R.includes(R.toLower(term), R.toLower(labelRenderer(item)));
322
+ if (isValidItem) {
323
+ return true;
324
+ }
325
+ if (R.has((0, _VirtualizedTree.getHierarchicalId)(item), groupedItemsByParentId)) {
326
+ var filtered = recurse(R.prop((0, _VirtualizedTree.getHierarchicalId)(item), groupedItemsByParentId));
327
+ if (!R.isEmpty(filtered)) {
328
+ return true;
329
+ }
330
+ }
331
+ return false;
332
+ });
333
+
334
+ var filteredItems = R.isEmpty(term) || R.isNil(term) ? items : recurse(items);
335
+ var selectionItems = R.map(function (item) {
336
+ return _extends({}, item, {
337
+ isSelected: R.has(item.id, selection) ? !item.isSelected : !!item.isSelected
338
+ });
339
+ }, filteredItems);
340
+ var groupedFilteredItems = R.groupBy(R.propOr('#ROOT', 'parentId'), selectionItems);
341
+
342
+ var selectionOptions = [{
343
+ value: 'single',
344
+ label: R.prop('singleSelection', labels),
345
+ imgSrc: R.prop('singleSelection', imgs)
346
+ }, {
347
+ value: 'children',
348
+ label: R.prop('childrenSelection', labels),
349
+ imgSrc: R.prop('childrenSelection', imgs)
350
+ }, {
351
+ value: 'branch',
352
+ label: R.prop('branchSelection', labels),
353
+ imgSrc: R.prop('branchSelection', imgs)
354
+ }, {
355
+ value: 'level',
356
+ label: R.prop('levelSelection', labels),
357
+ imgSrc: R.prop('levelSelection', imgs)
358
+ }, { value: 'all', label: R.prop('allSelection', labels), imgSrc: R.prop('allSelection', imgs) }];
359
+
360
+ var isDisabled = function isDisabled(item) {
361
+ return R.is(Function, disableAccessor) ? disableAccessor(item) : false;
362
+ };
363
+ var scopeGetters = getScopeGetters(selectionItems, groupedFilteredItems, isDisabled);
364
+
365
+ var onChangeSelection = function onChangeSelection(ids) {
366
+ var nextSelection = R.reduce(function (acc, id) {
367
+ return R.has(id, acc) ? R.dissoc(id, acc) : R.assoc(id, id, acc);
368
+ }, selection, ids);
369
+ setSelection(nextSelection);
370
+ };
371
+
372
+ var handleSubmit = function handleSubmit() {
373
+ changeSelection(id, R.values(selection));
374
+ setSelection({});
375
+ };
376
+
377
+ return _react2.default.createElement(
378
+ _Dialog2.default,
379
+ {
380
+ open: isOpen,
381
+ PaperComponent: PaperComponent,
382
+ 'aria-labelledby': 'draggable-dialog-title',
383
+ onClose: onClose
384
+ },
385
+ _react2.default.createElement(
386
+ _DialogTitle2.default,
387
+ { style: { cursor: 'move' }, id: 'draggable-dialog-title' },
388
+ _react2.default.createElement(
389
+ 'div',
390
+ { className: classes.header },
391
+ _react2.default.createElement(
392
+ 'div',
393
+ { className: classes.headerLabel },
394
+ _react2.default.createElement(_PlaylistAddCheck2.default, { color: 'primary' }),
395
+ '\xA0',
396
+ title
397
+ ),
398
+ onClose && _react2.default.createElement(
399
+ _Button2.default,
400
+ { className: classes.closeButton, onClick: onClose },
401
+ _react2.default.createElement(_Close2.default, null)
402
+ )
403
+ )
404
+ ),
405
+ _react2.default.createElement(
406
+ _DialogContent2.default,
407
+ null,
408
+ _react2.default.createElement(
409
+ _Grid2.default,
410
+ { container: true },
411
+ _react2.default.createElement(
412
+ _Grid2.default,
413
+ { item: true, xs: 12, className: (0, _classnames2.default)(classes.topElements, (_cx2 = {}, _cx2[classes.narrowTop] = isNarrow, _cx2)) },
414
+ _react2.default.createElement(
415
+ 'div',
416
+ { className: isNarrow ? classes.narrowSpotlight : classes.spotlight },
417
+ _react2.default.createElement(_.Spotlight, {
418
+ placeholder: R.prop('placeholder', labels),
419
+ term: term,
420
+ hasCommit: false,
421
+ spotlight: { fields: {} },
422
+ action: setSpotlight
423
+ })
424
+ ),
425
+ _react2.default.createElement(
426
+ 'div',
427
+ null,
428
+ _react2.default.createElement(
429
+ _.Button,
430
+ {
431
+ 'aria-label': 'selection mode',
432
+ className: isNarrow ? classes.narrowSelectionButton : classes.selectionButton,
433
+ onClick: function onClick() {
434
+ return setIsOpenSelectionMenu(!isOpenSelectionMenu);
435
+ },
436
+ color: 'primary',
437
+ variant: 'contained',
438
+ alternative: 'siscc'
439
+ },
440
+ R.prop('selectionMode', labels)
441
+ ),
442
+ '\xA0',
443
+ R.prop(selectionMode + 'Selection', labels)
444
+ )
445
+ ),
446
+ _react2.default.createElement(
447
+ _Grid2.default,
448
+ { item: true, xs: 12 },
449
+ _react2.default.createElement(SelectionModeMenu, {
450
+ classes: classes,
451
+ isOpen: isOpenSelectionMenu,
452
+ isNarrow: isNarrow,
453
+ options: selectionOptions,
454
+ onSelect: function onSelect(value) {
455
+ setSelectionMode(value);
456
+ setIsOpenSelectionMenu(false);
457
+ },
458
+ selected: selectionMode,
459
+ hint: R.prop('hint', labels)
460
+ }),
461
+ _react2.default.createElement(_.VirtualizedTree, _extends({}, rest, {
462
+ disableAccessor: disableAccessor,
463
+ labels: labels,
464
+ labelRenderer: labelRenderer,
465
+ items: selectionItems,
466
+ changeSelection: onChangeSelection,
467
+ withExpandControl: true,
468
+ maxTreeHeight: 500,
469
+ getItemScope: R.prop(selectionMode, scopeGetters)
470
+ }))
471
+ )
472
+ )
473
+ ),
474
+ _react2.default.createElement(
475
+ _DialogActions2.default,
476
+ null,
477
+ R.is(Function, onClose) && _react2.default.createElement(
478
+ _.Button,
479
+ { onClick: onClose, color: 'primary' },
480
+ R.prop('cancel', labels)
481
+ ),
482
+ R.is(Function, changeSelection) && _react2.default.createElement(
483
+ _.Button,
484
+ {
485
+ disabled: R.isEmpty(selection),
486
+ onClick: handleSubmit,
487
+ color: 'primary',
488
+ variant: 'contained',
489
+ alternative: 'siscc'
490
+ },
491
+ R.prop('apply', labels)
492
+ )
493
+ )
494
+ );
495
+ };
496
+
497
+ AdvancedFilterDialog.propTypes = process.env.NODE_ENV !== "production" ? {
498
+ id: _propTypes2.default.string,
499
+ accessibility: _propTypes2.default.bool,
500
+ changeSelection: _propTypes2.default.func,
501
+ disableAccessor: _propTypes2.default.func,
502
+ HTMLRenderer: _propTypes2.default.func,
503
+ imgs: _propTypes2.default.object,
504
+ isRtl: _propTypes2.default.bool,
505
+ isNarrow: _propTypes2.default.bool,
506
+ isOpen: _propTypes2.default.bool,
507
+ items: _propTypes2.default.array,
508
+ labels: _propTypes2.default.shape({
509
+ placeholder: _propTypes2.default.string,
510
+ disableItemLabel: _propTypes2.default.string,
511
+ singleSelection: _propTypes2.default.string,
512
+ childrenSelection: _propTypes2.default.string,
513
+ branchSelection: _propTypes2.default.string,
514
+ levelSelection: _propTypes2.default.string,
515
+ allSelection: _propTypes2.default.string,
516
+ apply: _propTypes2.default.string,
517
+ cancel: _propTypes2.default.string
518
+ }),
519
+ onClose: _propTypes2.default.func,
520
+ labelRenderer: _propTypes2.default.func,
521
+ title: _propTypes2.default.string
522
+ } : {};
523
+
524
+ exports.default = AdvancedFilterDialog;
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _AdvancedFilterDialog = require('./AdvancedFilterDialog');
6
+
7
+ Object.defineProperty(exports, 'default', {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _interopRequireDefault(_AdvancedFilterDialog).default;
11
+ }
12
+ });
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ module.exports = exports['default'];
@@ -0,0 +1,169 @@
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 _Container = require('@material-ui/core/Container');
20
+
21
+ var _Container2 = _interopRequireDefault(_Container);
22
+
23
+ var _PlaylistAddCheck = require('@material-ui/icons/PlaylistAddCheck');
24
+
25
+ var _PlaylistAddCheck2 = _interopRequireDefault(_PlaylistAddCheck);
26
+
27
+ var _ = require('../');
28
+
29
+ var _styles = require('../ScopeList/styles');
30
+
31
+ var _core = require('@material-ui/core');
32
+
33
+ var _utils = require('../utils');
34
+
35
+ 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; } }
36
+
37
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38
+
39
+ var getCounter = function getCounter(items, displayAccessor, tagAccessor) {
40
+ var count = R.pipe(R.filter(R.prop('isSelected')), R.length)(items);
41
+ var total = R.pipe(R.when(R.always(R.is(Function, displayAccessor)), R.filter(displayAccessor)), R.length)(items);
42
+ if (R.is(Function, tagAccessor)) {
43
+ return tagAccessor(count, total);
44
+ }
45
+ return count + '/' + total;
46
+ };
47
+
48
+ var HierarchicalFilter = function HierarchicalFilter(props) {
49
+ var id = props.id,
50
+ items = props.items,
51
+ changeSelection = props.changeSelection,
52
+ onChangeActivePanel = props.onChangeActivePanel,
53
+ activePanelId = props.activePanelId,
54
+ Tag = props.Tag,
55
+ testId = props.testId,
56
+ accessibility = props.accessibility,
57
+ _props$expansionPanel = props.expansionPanelProps,
58
+ expansionPanelProps = _props$expansionPanel === undefined ? {} : _props$expansionPanel,
59
+ _props$labelRenderer = props.labelRenderer,
60
+ labelRenderer = _props$labelRenderer === undefined ? R.prop('label') : _props$labelRenderer,
61
+ toggleBulk = props.toggleBulk,
62
+ label = props.label,
63
+ labels = props.labels,
64
+ tagAccessor = props.tagAccessor,
65
+ displayAccessor = props.displayAccessor;
66
+
67
+ var _useState = (0, _react.useState)({ term: '' }),
68
+ term = _useState[0].term,
69
+ setSpotlight = _useState[1];
70
+
71
+ var classes = (0, _styles.useStyles)({ accessibility: accessibility });
72
+ var theme = (0, _core.useTheme)();
73
+ var isRtl = (0, _utils.getIsRtl)(theme);
74
+ var Chip = R.isNil(Tag) ? _.Tag : Tag;
75
+ var tagValue = getCounter(items, displayAccessor, tagAccessor);
76
+ var groupedItemsByParentId = R.groupBy(R.propOr('#ROOT', 'parentId'), items);
77
+ var hasSpotligt = R.length(items) >= 8;
78
+ var recurse = R.filter(function (item) {
79
+ var isValidItem = R.isEmpty(term) || R.isNil(term) ? true : R.includes(R.toLower(term), R.toLower(labelRenderer(item)));
80
+ if (isValidItem) {
81
+ return true;
82
+ }
83
+ if (R.has(item.id, groupedItemsByParentId)) {
84
+ var filtered = recurse(R.prop(item.id, groupedItemsByParentId));
85
+ if (!R.isEmpty(filtered)) {
86
+ return true;
87
+ }
88
+ }
89
+ return false;
90
+ });
91
+
92
+ var filteredItems = R.isEmpty(term) || R.isNil(term) ? items : recurse(items);
93
+
94
+ var onSelect = function onSelect(values) {
95
+ changeSelection(id, values);
96
+ };
97
+ return _react2.default.createElement(
98
+ _.ExpansionPanel,
99
+ _extends({
100
+ isOpen: R.equals(id, activePanelId),
101
+ id: id,
102
+ testId: '' + testId,
103
+ label: labelRenderer({ id: id, label: label }),
104
+ onChangeActivePanel: onChangeActivePanel,
105
+ overflow: true,
106
+ topElementComponent: _react2.default.createElement(
107
+ _react.Fragment,
108
+ null,
109
+ _react2.default.createElement(
110
+ _Container2.default,
111
+ { disableGutters: true, className: classes.spotlightContainer },
112
+ hasSpotligt && _react2.default.createElement(_.Spotlight, {
113
+ className: { container: classes.middle },
114
+ fullWidth: true,
115
+ hasClearAll: true,
116
+ placeholder: R.prop('placeholder', labels),
117
+ term: term,
118
+ hasCommit: false,
119
+ spotlight: { fields: {} },
120
+ action: setSpotlight
121
+ }),
122
+ R.is(Function, toggleBulk) && _react2.default.createElement(
123
+ _.VerticalButton,
124
+ {
125
+ 'aria-label': R.prop('advancedSelection')(labels),
126
+ classes: { root: classes.bulkSelectionIcon },
127
+ onClick: toggleBulk
128
+ },
129
+ _react2.default.createElement(_PlaylistAddCheck2.default, { color: 'primary' })
130
+ )
131
+ )
132
+ ),
133
+ tag: _react2.default.createElement(
134
+ Chip,
135
+ { items: items },
136
+ tagValue
137
+ ),
138
+ isBlank: R.isEmpty(items)
139
+ }, expansionPanelProps),
140
+ _react2.default.createElement(_.VirtualizedTree, _extends({}, props, { items: filteredItems, changeSelection: onSelect, isRtl: isRtl }))
141
+ );
142
+ };
143
+
144
+ HierarchicalFilter.propTypes = process.env.NODE_ENV !== "production" ? {
145
+ id: _propTypes2.default.string,
146
+ accessibility: _propTypes2.default.bool,
147
+ activePanelId: _propTypes2.default.string,
148
+ changeSelection: _propTypes2.default.func,
149
+ onChangeActivePanel: _propTypes2.default.func,
150
+ disableAccessor: _propTypes2.default.func,
151
+ displayAccessor: _propTypes2.default.func,
152
+ HTMLRenderer: _propTypes2.default.func,
153
+ isRtl: _propTypes2.default.bool,
154
+ items: _propTypes2.default.array,
155
+ label: _propTypes2.default.string,
156
+ labels: _propTypes2.default.shape({
157
+ disableItemLabel: _propTypes2.default.string,
158
+ placeholder: _propTypes2.default.string
159
+ }),
160
+ labelRenderer: _propTypes2.default.func,
161
+ Tag: _propTypes2.default.func,
162
+ testId: _propTypes2.default.string,
163
+ expansionPanelProps: _propTypes2.default.object,
164
+ toggleBulk: _propTypes2.default.func,
165
+ tagAccessor: _propTypes2.default.func
166
+ } : {};
167
+
168
+ exports.default = HierarchicalFilter;
169
+ module.exports = exports['default'];