@sis-cc/dotstatsuite-visions 10.20.0 → 10.21.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.
@@ -58,22 +58,10 @@ var _Close = require('@material-ui/icons/Close');
58
58
 
59
59
  var _Close2 = _interopRequireDefault(_Close);
60
60
 
61
- var _ExpandMore = require('@material-ui/icons/ExpandMore');
62
-
63
- var _ExpandMore2 = _interopRequireDefault(_ExpandMore);
64
-
65
- var _ExpandLess = require('@material-ui/icons/ExpandLess');
66
-
67
- var _ExpandLess2 = _interopRequireDefault(_ExpandLess);
68
-
69
61
  var _reactDraggable = require('react-draggable');
70
62
 
71
63
  var _reactDraggable2 = _interopRequireDefault(_reactDraggable);
72
64
 
73
- var _SelectionModeMenu = require('./SelectionModeMenu');
74
-
75
- var _SelectionModeMenu2 = _interopRequireDefault(_SelectionModeMenu);
76
-
77
65
  var _ = require('..');
78
66
 
79
67
  var _withExpansionTree = require('../VirtualizedTree/withExpansionTree');
@@ -82,6 +70,10 @@ var _withSpotlight = require('../VirtualizedTree/withSpotlight');
82
70
 
83
71
  var _styles = require('@material-ui/core/styles');
84
72
 
73
+ var _EmojiObjects = require('@material-ui/icons/EmojiObjects');
74
+
75
+ var _EmojiObjects2 = _interopRequireDefault(_EmojiObjects);
76
+
85
77
  var _singleSelection = require('./images/single-selection.png');
86
78
 
87
79
  var _singleSelection2 = _interopRequireDefault(_singleSelection);
@@ -98,29 +90,7 @@ var _levelSelection = require('./images/level-selection.png');
98
90
 
99
91
  var _levelSelection2 = _interopRequireDefault(_levelSelection);
100
92
 
101
- var _allSelection = require('./images/all-selection.png');
102
-
103
- var _allSelection2 = _interopRequireDefault(_allSelection);
104
-
105
- var _smallSingleSelection = require('./images/small-single-selection.png');
106
-
107
- var _smallSingleSelection2 = _interopRequireDefault(_smallSingleSelection);
108
-
109
- var _smallChildrenSelection = require('./images/small-children-selection.png');
110
-
111
- var _smallChildrenSelection2 = _interopRequireDefault(_smallChildrenSelection);
112
-
113
- var _smallBranchSelection = require('./images/small-branch-selection.png');
114
-
115
- var _smallBranchSelection2 = _interopRequireDefault(_smallBranchSelection);
116
-
117
- var _smallLevelSelection = require('./images/small-level-selection.png');
118
-
119
- var _smallLevelSelection2 = _interopRequireDefault(_smallLevelSelection);
120
-
121
- var _smallAllSelection = require('./images/small-all-selection.png');
122
-
123
- var _smallAllSelection2 = _interopRequireDefault(_smallAllSelection);
93
+ var _core = require('@material-ui/core');
124
94
 
125
95
  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; } }
126
96
 
@@ -146,8 +116,10 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
146
116
  width: '100%'
147
117
  },
148
118
  headerLabel: {
149
- display: 'flex',
150
- alignItems: 'center'
119
+ fontSize: '16px',
120
+ font: 'PT Sans Narrow',
121
+ fontWeight: '700',
122
+ color: theme.palette.grey[700]
151
123
  },
152
124
  closeButton: {
153
125
  color: 'grey !important',
@@ -159,11 +131,6 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
159
131
  height: 32
160
132
  }
161
133
  },
162
- topElements: {
163
- display: 'flex',
164
- flexDirection: 'row',
165
- alignItems: 'center'
166
- },
167
134
  narrowTop: {
168
135
  flexDirection: 'column',
169
136
  alignItems: 'flex-start'
@@ -210,42 +177,42 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
210
177
  selectModeItem: {
211
178
  boxShadow: 'none',
212
179
  display: 'flex',
213
- width: 110,
214
- height: 200,
215
180
  backgroundColor: 'inherit',
216
- color: 'inherit',
217
- flexDirection: 'column',
218
- justifyContent: 'space-between',
181
+ flexDirection: 'row-reverse',
182
+ alignItems: 'center',
183
+ '& p': {
184
+ fontSize: '12px',
185
+ font: 'Helvetica Neue',
186
+ color: '#0549AB',
187
+ fontWeight: '500px'
188
+ },
219
189
  '& img': {
220
- width: 110,
221
- height: 140
190
+ width: 21,
191
+ height: 24
222
192
  }
223
193
  },
224
194
  hint: {
225
- marginLeft: 10,
226
- marginRight: 10,
227
195
  display: 'flex',
228
- flexDirection: 'row'
196
+ flexDirection: 'row',
197
+ alignItems: 'center'
198
+ },
199
+ divider: {
200
+ backgroundColor: theme.palette.primary.light
229
201
  },
230
202
  actions: {
231
- justifyContent: 'space-between'
203
+ justifyContent: 'flex-end'
232
204
  },
233
205
  ellipsis: {
234
206
  whiteSpace: 'nowrap',
235
207
  overflow: 'hidden',
236
208
  textOverflow: 'ellipsis'
209
+ },
210
+ tooltip: {
211
+ backgroundColor: theme.palette.action.hover
237
212
  }
238
213
  };
239
214
  });
240
215
 
241
- var icons = {
242
- single: _smallSingleSelection2.default,
243
- children: _smallChildrenSelection2.default,
244
- branch: _smallBranchSelection2.default,
245
- level: _smallLevelSelection2.default,
246
- all: _smallAllSelection2.default
247
- };
248
-
249
216
  var AdvancedFilterDialog = function AdvancedFilterDialog(props) {
250
217
  var _cx;
251
218
 
@@ -272,19 +239,19 @@ var AdvancedFilterDialog = function AdvancedFilterDialog(props) {
272
239
  selectionMode = _useState[0],
273
240
  setSelectionMode = _useState[1];
274
241
 
275
- var _useState2 = (0, _react.useState)(false),
276
- isOpenSelectionMenu = _useState2[0],
277
- setIsOpenSelectionMenu = _useState2[1];
278
-
279
- var _useState3 = (0, _react.useState)({}),
280
- selection = _useState3[0],
281
- setSelection = _useState3[1];
242
+ var _useState2 = (0, _react.useState)({}),
243
+ selection = _useState2[0],
244
+ setSelection = _useState2[1];
282
245
 
283
246
  var classes = useStyles();
284
247
 
285
- var _useState4 = (0, _react.useState)(0),
286
- height = _useState4[0],
287
- setHeight = _useState4[1];
248
+ var _useState3 = (0, _react.useState)(0),
249
+ height = _useState3[0],
250
+ setHeight = _useState3[1];
251
+
252
+ var _useState4 = (0, _react.useState)({}),
253
+ selectIds = _useState4[0],
254
+ setSelectIds = _useState4[1];
288
255
 
289
256
  var measureRef = _react2.default.useCallback(function (node) {
290
257
  if (node !== null) {
@@ -316,10 +283,6 @@ var AdvancedFilterDialog = function AdvancedFilterDialog(props) {
316
283
  value: 'level',
317
284
  label: R.prop('levelSelection', labels),
318
285
  img: _levelSelection2.default
319
- }, {
320
- value: 'all',
321
- label: R.prop('allSelection', labels),
322
- img: _allSelection2.default
323
286
  }];
324
287
 
325
288
  var _allGroupedItems = R.pipe(R.map(function (item) {
@@ -354,13 +317,37 @@ var AdvancedFilterDialog = function AdvancedFilterDialog(props) {
354
317
  }, selection, ids);
355
318
  setSelection(nextSelection);
356
319
  };
357
-
358
320
  var handleSubmit = function handleSubmit() {
359
321
  changeSelection(id, R.values(selection), { expandedIds: expandedIds, spotlight: spotlight });
360
322
  setSelection({});
361
323
  setSpotlight({ term: '' });
362
324
  };
363
325
 
326
+ var _useMemo = (0, _react.useMemo)(function () {
327
+ var refinedItems = R.map(function (item) {
328
+ return _extends({}, item, {
329
+ isSelected: (0, _utils.isItemSelected)(selectIds)(item),
330
+ isGreyed: R.is(Function, isDisabled) ? isDisabled(item) : false,
331
+ isDisabled: R.is(Function, _disableAccessor) ? _disableAccessor(item, selectIds) : false
332
+ });
333
+ }, selectionItems);
334
+ var indexedItemsById = R.indexBy(_utils.getHierarchicalId, refinedItems);
335
+ var groupedItemsByParentId = R.groupBy(R.propOr('#ROOT', 'parentId'), refinedItems);
336
+ return { indexedItemsById: indexedItemsById, groupedItemsByParentId: groupedItemsByParentId };
337
+ }, [selectionItems, selectIds]),
338
+ indexedItemsById = _useMemo.indexedItemsById,
339
+ groupedItemsByParentId = _useMemo.groupedItemsByParentId;
340
+
341
+ var rejectonlyDisabledItems = function rejectonlyDisabledItems(item) {
342
+ return R.prop('isDisabled')(item) && !R.has('isForced')(item);
343
+ };
344
+ var selectAll = function selectAll() {
345
+ var ids = R.pluck('id', R.reject(rejectonlyDisabledItems, R.values(indexedItemsById)));
346
+ var nextSelection = R.reduce(function (acc, id) {
347
+ return R.has(id, acc) ? acc : R.assoc(id, id, acc);
348
+ }, selection, ids);
349
+ setSelection(nextSelection);
350
+ };
364
351
  return _react2.default.createElement(
365
352
  _Dialog2.default,
366
353
  {
@@ -382,10 +369,70 @@ var AdvancedFilterDialog = function AdvancedFilterDialog(props) {
382
369
  '\xA0',
383
370
  title
384
371
  ),
385
- onClose && _react2.default.createElement(
386
- _Button2.default,
387
- { className: classes.closeButton, onClick: onClose },
388
- _react2.default.createElement(_Close2.default, null)
372
+ _react2.default.createElement(
373
+ 'div',
374
+ { className: classes.selectModeContainer },
375
+ _react2.default.createElement(
376
+ 'div',
377
+ { className: classes.hint },
378
+ _react2.default.createElement(
379
+ _.Tooltip,
380
+ {
381
+ variant: 'light',
382
+ title: _react2.default.createElement(
383
+ _Typography2.default,
384
+ { variant: 'body2' },
385
+ R.prop('hint', labels)
386
+ )
387
+ },
388
+ _react2.default.createElement(_EmojiObjects2.default, null)
389
+ ),
390
+ _react2.default.createElement(
391
+ _Typography2.default,
392
+ { variant: 'body2' },
393
+ R.prop('selectionMode', labels)
394
+ )
395
+ ),
396
+ R.map(function (_ref) {
397
+ var value = _ref.value,
398
+ label = _ref.label,
399
+ img = _ref.img;
400
+ return _react2.default.createElement(
401
+ _.Tooltip,
402
+ {
403
+ key: value,
404
+ classes: { tooltip: classes.tooltip },
405
+ title: _react2.default.createElement('img', { style: { width: '72px', height: '90px' }, src: img, alt: value })
406
+ },
407
+ _react2.default.createElement(
408
+ _.Button,
409
+ {
410
+ className: classes.selectButton,
411
+ selected: value === selectionMode,
412
+ onClick: function onClick() {
413
+ setSelectionMode(value);
414
+ },
415
+ 'aria-pressed': value === selectionMode,
416
+ 'aria-label': label
417
+ },
418
+ _react2.default.createElement(
419
+ _Paper2.default,
420
+ { className: classes.selectModeItem, key: value },
421
+ _react2.default.createElement(
422
+ _Typography2.default,
423
+ { variant: 'body2' },
424
+ label
425
+ ),
426
+ !R.isNil(img) && R.is(String, img) && _react2.default.createElement('img', { src: img, alt: value })
427
+ )
428
+ )
429
+ );
430
+ }, selectionOptions),
431
+ onClose && _react2.default.createElement(
432
+ _Button2.default,
433
+ { className: classes.closeButton, onClick: onClose },
434
+ _react2.default.createElement(_Close2.default, null)
435
+ )
389
436
  )
390
437
  )
391
438
  ),
@@ -412,58 +459,35 @@ var AdvancedFilterDialog = function AdvancedFilterDialog(props) {
412
459
  ),
413
460
  _react2.default.createElement(
414
461
  'div',
415
- { className: classes.selection },
462
+ null,
416
463
  _react2.default.createElement(
417
464
  _.Button,
418
- {
419
- 'aria-label': 'selection mode',
420
- className: isNarrow ? classes.narrowSelectionButton : classes.selectionButton,
421
- onClick: function onClick() {
422
- return setIsOpenSelectionMenu(!isOpenSelectionMenu);
423
- },
424
- color: 'primary',
425
- variant: 'contained',
426
- alternative: 'siscc',
427
- selected: isOpenSelectionMenu
428
- },
429
- _react2.default.createElement(
430
- _Typography2.default,
431
- { variant: 'body2', className: classes.ellipsis },
432
- R.prop('selectionMode', labels)
433
- ),
434
- '\xA0',
435
- isOpenSelectionMenu ? _react2.default.createElement(_ExpandLess2.default, { fontSize: 'small' }) : _react2.default.createElement(_ExpandMore2.default, { fontSize: 'small' })
465
+ { onClick: collapseAll, color: 'primary' },
466
+ R.prop('colapseAll', labels)
467
+ ),
468
+ _react2.default.createElement(
469
+ _.Button,
470
+ { style: { marginLeft: 10 }, onClick: expandAll, color: 'primary' },
471
+ R.prop('expandAll', labels)
436
472
  ),
437
- '\xA0',
438
- R.prop(selectionMode + 'Selection', labels),
439
- !R.isNil(R.prop(selectionMode, icons)) && R.is(String, R.prop(selectionMode, icons)) && _react2.default.createElement(
440
- _react.Fragment,
441
- null,
442
- '\xA0',
443
- _react2.default.createElement('img', {
444
- style: { marginLeft: 15 },
445
- src: R.prop(selectionMode, icons),
446
- alt: selectionMode
447
- })
473
+ _react2.default.createElement(
474
+ _.Button,
475
+ { onClick: selectAll, color: 'primary' },
476
+ R.prop('selectAll', labels)
477
+ ),
478
+ _react2.default.createElement(
479
+ _.Button,
480
+ { style: { marginLeft: 10 }, onClick: function onClick() {
481
+ return setSelection({});
482
+ }, color: 'primary' },
483
+ R.prop('deselectAll', labels)
448
484
  )
449
- )
485
+ ),
486
+ _react2.default.createElement(_core.Divider, { className: classes.divider })
450
487
  ),
451
488
  _react2.default.createElement(
452
489
  _Grid2.default,
453
490
  { item: true, xs: 12 },
454
- _react2.default.createElement(_SelectionModeMenu2.default, {
455
- classes: classes,
456
- isOpen: isOpenSelectionMenu,
457
- isNarrow: isNarrow,
458
- options: selectionOptions,
459
- onSelect: function onSelect(value) {
460
- setSelectionMode(value);
461
- setIsOpenSelectionMenu(false);
462
- },
463
- selected: selectionMode,
464
- hint: R.prop('hint', labels),
465
- maxHeight: listHeight
466
- }),
467
491
  _react2.default.createElement(_.VirtualizedTree, _extends({}, rest, {
468
492
  disableAccessor: _disableAccessor,
469
493
  isGreyed: isDisabled,
@@ -472,9 +496,13 @@ var AdvancedFilterDialog = function AdvancedFilterDialog(props) {
472
496
  items: selectionItems,
473
497
  changeSelection: onChangeSelection,
474
498
  withExpandControl: true,
499
+ setSelectIds: setSelectIds,
500
+ selectIds: selectIds,
475
501
  treeHeight: listHeight,
476
502
  scopeGetter: scopeGetter,
477
- expandedIds: expandedIds
503
+ expandedIds: expandedIds,
504
+ indexedItemsById: indexedItemsById,
505
+ groupedItemsByParentId: groupedItemsByParentId
478
506
  }))
479
507
  )
480
508
  )
@@ -482,20 +510,6 @@ var AdvancedFilterDialog = function AdvancedFilterDialog(props) {
482
510
  _react2.default.createElement(
483
511
  _DialogActions2.default,
484
512
  { className: classes.actions },
485
- _react2.default.createElement(
486
- 'div',
487
- null,
488
- _react2.default.createElement(
489
- _.Button,
490
- { onClick: collapseAll, color: 'primary' },
491
- R.prop('colapseAll', labels)
492
- ),
493
- _react2.default.createElement(
494
- _.Button,
495
- { style: { marginLeft: 10 }, onClick: expandAll, color: 'primary' },
496
- R.prop('expandAll', labels)
497
- )
498
- ),
499
513
  _react2.default.createElement(
500
514
  'div',
501
515
  null,
@@ -545,7 +559,8 @@ AdvancedFilterDialog.propTypes = process.env.NODE_ENV !== "production" ? {
545
559
  childrenSelection: _propTypes2.default.string,
546
560
  branchSelection: _propTypes2.default.string,
547
561
  levelSelection: _propTypes2.default.string,
548
- allSelection: _propTypes2.default.string,
562
+ selectAll: _propTypes2.default.string,
563
+ deselectAll: _propTypes2.default.string,
549
564
  apply: _propTypes2.default.string,
550
565
  cancel: _propTypes2.default.string
551
566
  }),
@@ -83,13 +83,12 @@ var CustomTooltip = function CustomTooltip(_ref) {
83
83
  }
84
84
  // open={true}
85
85
  // interactive={true}
86
- , enterNextDelay: 100
87
- }, props, {
86
+ , enterNextDelay: 100,
88
87
  classes: {
89
88
  popper: classes.popper,
90
89
  tooltip: (0, _classnames2.default)(R.prop(variant + 'Tooltip')(classes), classes.tooltip)
91
90
  }
92
- }),
91
+ }, props),
93
92
  children
94
93
  );
95
94
  };
@@ -127,11 +127,6 @@ var getEvolvedDisableAccessor = exports.getEvolvedDisableAccessor = function get
127
127
  };
128
128
 
129
129
  var getScopeGetters = exports.getScopeGetters = {
130
- all: function all(items) {
131
- return function () {
132
- return R.reject(R.prop('isDisabled'), R.values(items.indexedItemsById));
133
- };
134
- },
135
130
  single: function single() {
136
131
  return function (item) {
137
132
  return [item];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "10.20.0",
3
+ "version": "10.21.0",
4
4
  "description": "Library of visual components",
5
5
  "author": "OECD",
6
6
  "homepage": "https://visions-qa.siscc.org/#o",