@rio-cloud/rio-uikit 0.16.1-beta-3 → 0.16.1-beta-7
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.
- package/lib/components/applicationLayout/ApplicationLayout.js +5 -8
- package/lib/components/assetTree/AssetTree.js +7 -4
- package/lib/components/assetTree/Tree.js +153 -29
- package/lib/components/assetTree/TreeSelectAll.js +1 -1
- package/lib/components/assetTree/TreeSidebar.js +22 -10
- package/lib/components/assetTree/TreeSummary.js +11 -6
- package/lib/components/assetTree/TypeCounter.js +45 -8
- package/lib/components/datepicker/DatePicker.js +1 -2
- package/lib/components/navigation/AppNavigationBar.js +64 -0
- package/lib/components/selects/BaseDropdownMenu.js +29 -23
- package/lib/components/selects/Select.js +11 -5
- package/lib/es/AppNavigationBar.d.ts +5 -0
- package/lib/es/AppNavigationBar.js +15 -0
- package/lib/es/DeviceUtils.d.ts +2 -0
- package/lib/es/deviceUtils.js +12 -0
- package/lib/es/useResizeObserver.d.ts +4 -0
- package/lib/es/useResizeObserver.js +15 -0
- package/lib/hooks/useResizeObserver.js +54 -0
- package/lib/hooks/useWindowResize.js +8 -5
- package/lib/style/css/_exports/rio-website.less +70 -7
- package/lib/style/css/animations/_imports.less +1 -0
- package/lib/style/css/animations/pulsing.less +5 -0
- package/lib/style/css/components/ApplicationLayout.less +3 -1
- package/lib/style/css/components/AssetTree.less +1 -5
- package/lib/style/css/design/buttons.less +4 -1
- package/lib/style/css/design/rioglyph.less +1 -12
- package/lib/types.ts +17 -0
- package/lib/utils/deviceUtils.js +11 -2
- package/lib/version.json +1 -1
- package/package.json +4 -2
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.default = exports.ApplicationLayout = void 0;
|
|
11
9
|
|
|
12
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
11
|
|
|
14
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
13
|
|
|
@@ -23,18 +21,16 @@ var _ApplicationLayoutBody = _interopRequireDefault(require("./ApplicationLayout
|
|
|
23
21
|
|
|
24
22
|
var _init = require("../../utils/init");
|
|
25
23
|
|
|
26
|
-
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); }
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
|
|
30
24
|
// initializes document bootstrapping - keep the import to avoid being tree-shaked
|
|
31
25
|
_init.initDocumentBootstrapping;
|
|
32
26
|
|
|
33
27
|
var ApplicationLayout = function ApplicationLayout(_ref) {
|
|
34
28
|
var className = _ref.className,
|
|
29
|
+
layoutRef = _ref.layoutRef,
|
|
35
30
|
children = _ref.children;
|
|
36
31
|
var classes = (0, _classnames.default)('ApplicationLayout', className);
|
|
37
32
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
33
|
+
ref: layoutRef,
|
|
38
34
|
className: classes
|
|
39
35
|
}, children);
|
|
40
36
|
};
|
|
@@ -44,7 +40,8 @@ ApplicationLayout.Header = _ApplicationLayoutHeader.default;
|
|
|
44
40
|
ApplicationLayout.Sidebar = _ApplicationLayoutSidebar.default;
|
|
45
41
|
ApplicationLayout.Body = _ApplicationLayoutBody.default;
|
|
46
42
|
ApplicationLayout.propTypes = {
|
|
47
|
-
className: _propTypes.default.string
|
|
43
|
+
className: _propTypes.default.string,
|
|
44
|
+
layoutRef: _propTypes.default.func
|
|
48
45
|
};
|
|
49
46
|
var _default = ApplicationLayout;
|
|
50
47
|
exports.default = _default;
|
|
@@ -21,6 +21,8 @@ var _head = _interopRequireDefault(require("lodash/fp/head"));
|
|
|
21
21
|
|
|
22
22
|
var _isArray = _interopRequireDefault(require("lodash/fp/isArray"));
|
|
23
23
|
|
|
24
|
+
var _deviceUtils = require("../../utils/deviceUtils");
|
|
25
|
+
|
|
24
26
|
var _Resizer = _interopRequireDefault(require("../resizer/Resizer"));
|
|
25
27
|
|
|
26
28
|
var _TreeSidebar = _interopRequireDefault(require("./TreeSidebar"));
|
|
@@ -110,7 +112,7 @@ var AssetTree = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
|
110
112
|
(0, _react.useEffect)(function () {
|
|
111
113
|
return setSidebarMode(getSidebarMode(fly));
|
|
112
114
|
}, [fly]);
|
|
113
|
-
var classes = (0, _classnames.default)('AssetTree', className, !isOpen && 'closed', bordered && 'panel panel-default', sidebarMode === AssetTree.MODE_FLY ? 'fly' : 'fluid');
|
|
115
|
+
var classes = (0, _classnames.default)('AssetTree', className, !isOpen && 'closed', !isOpen && _deviceUtils.isMobile && 'width-0 border-none position-absolute', bordered && 'panel panel-default', sidebarMode === AssetTree.MODE_FLY ? 'fly' : 'fluid');
|
|
114
116
|
var resizeLimitClasses = (0, _classnames.default)('AssetTreeResizeLimit', isResize && 'display-block');
|
|
115
117
|
var resizeIndicatorPosition = maxWidth || window.innerWidth * 0.5;
|
|
116
118
|
var resizeLimitStyle = {
|
|
@@ -177,13 +179,14 @@ var AssetTree = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
|
177
179
|
className: resizeLimitClasses,
|
|
178
180
|
style: resizeLimitStyle
|
|
179
181
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
180
|
-
className:
|
|
182
|
+
className: "AssetTreeContent"
|
|
181
183
|
}, /*#__PURE__*/_react.default.createElement(_TreeSidebar.default, {
|
|
182
184
|
onSelectCategory: handleSelectCategory,
|
|
183
185
|
currentCategoryId: currentCategoryId,
|
|
184
|
-
onClick: handleToggleTreeContent
|
|
186
|
+
onClick: handleToggleTreeContent,
|
|
187
|
+
isOpen: isOpen
|
|
185
188
|
}, (0, _isArray.default)(children) ? children : [children]), /*#__PURE__*/_react.default.createElement("div", {
|
|
186
|
-
className:
|
|
189
|
+
className: "AssetTreeBody"
|
|
187
190
|
}, useOffscreen ? renderTreesOffscreen(children, categoryId) : category)), resizable && isOpen && /*#__PURE__*/_react.default.createElement(_Resizer.default, {
|
|
188
191
|
onResizeStart: handleResizeStart,
|
|
189
192
|
onResize: handleResize,
|
|
@@ -21,6 +21,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
21
21
|
|
|
22
22
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
23
23
|
|
|
24
|
+
var _isNil = _interopRequireDefault(require("lodash/fp/isNil"));
|
|
25
|
+
|
|
24
26
|
var _isEmpty = _interopRequireDefault(require("lodash/fp/isEmpty"));
|
|
25
27
|
|
|
26
28
|
var _isEqual = _interopRequireDefault(require("lodash/fp/isEqual"));
|
|
@@ -73,6 +75,8 @@ var _TreeOptions = _interopRequireDefault(require("./TreeOptions"));
|
|
|
73
75
|
|
|
74
76
|
var _TreeRoot = _interopRequireDefault(require("./TreeRoot"));
|
|
75
77
|
|
|
78
|
+
var _TypeCounter = _interopRequireDefault(require("./TypeCounter"));
|
|
79
|
+
|
|
76
80
|
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); }
|
|
77
81
|
|
|
78
82
|
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; }
|
|
@@ -82,6 +86,11 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
82
86
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
83
87
|
|
|
84
88
|
var SEARCH_DEBOUNCE = 100;
|
|
89
|
+
var TYPE_TRUCK = 'truck';
|
|
90
|
+
var TYPE_TRAILER = 'trailer';
|
|
91
|
+
var TYPE_VAN = 'van';
|
|
92
|
+
var TYPE_BUS = 'bus';
|
|
93
|
+
var TYPE_DRIVER = 'driver';
|
|
85
94
|
var otherwise = _stubTrue.default;
|
|
86
95
|
var notEqual = (0, _negate.default)(_isEqual.default);
|
|
87
96
|
var notEmpty = (0, _negate.default)(_isEmpty.default);
|
|
@@ -113,6 +122,13 @@ var filterEmptyGroups = (0, _filter.default)(function (group) {
|
|
|
113
122
|
return notEmpty(group.items);
|
|
114
123
|
});
|
|
115
124
|
|
|
125
|
+
var filterAssetByType = function filterAssetByType() {
|
|
126
|
+
var types = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
127
|
+
return (0, _filter.default)(function (asset) {
|
|
128
|
+
return types.includes(asset.type);
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
|
|
116
132
|
var sortGroupsByName = function sortGroupsByName(groups) {
|
|
117
133
|
var fixedGroups = {};
|
|
118
134
|
var sortableGroups = {};
|
|
@@ -222,9 +238,9 @@ var assetCounted = function assetCounted(payload) {
|
|
|
222
238
|
};
|
|
223
239
|
};
|
|
224
240
|
|
|
225
|
-
var
|
|
241
|
+
var allCheckedChanged = function allCheckedChanged(payload) {
|
|
226
242
|
return {
|
|
227
|
-
type: '
|
|
243
|
+
type: 'allCheckedChanged',
|
|
228
244
|
payload: payload
|
|
229
245
|
};
|
|
230
246
|
};
|
|
@@ -250,6 +266,27 @@ var groupedItemsChanged = function groupedItemsChanged(payload) {
|
|
|
250
266
|
};
|
|
251
267
|
};
|
|
252
268
|
|
|
269
|
+
var typeFilterChanged = function typeFilterChanged(payload) {
|
|
270
|
+
return {
|
|
271
|
+
type: 'typeFilterChanged',
|
|
272
|
+
payload: payload
|
|
273
|
+
};
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
var visibleTypeCountersChanged = function visibleTypeCountersChanged(payload) {
|
|
277
|
+
return {
|
|
278
|
+
type: 'visibleTypeCountersChanged',
|
|
279
|
+
payload: payload
|
|
280
|
+
};
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
var emptyGroupsChanged = function emptyGroupsChanged(payload) {
|
|
284
|
+
return {
|
|
285
|
+
type: 'emptyGroupsChanged',
|
|
286
|
+
payload: payload
|
|
287
|
+
};
|
|
288
|
+
};
|
|
289
|
+
|
|
253
290
|
var treeReducer = function treeReducer(state, action) {
|
|
254
291
|
switch (action.type) {
|
|
255
292
|
case 'assetCounted':
|
|
@@ -257,7 +294,7 @@ var treeReducer = function treeReducer(state, action) {
|
|
|
257
294
|
assetCounts: action.payload
|
|
258
295
|
});
|
|
259
296
|
|
|
260
|
-
case '
|
|
297
|
+
case 'allCheckedChanged':
|
|
261
298
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
262
299
|
allChecked: action.payload
|
|
263
300
|
});
|
|
@@ -278,6 +315,21 @@ var treeReducer = function treeReducer(state, action) {
|
|
|
278
315
|
groupedItems: action.payload
|
|
279
316
|
});
|
|
280
317
|
|
|
318
|
+
case 'typeFilterChanged':
|
|
319
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
320
|
+
typeFilter: action.payload
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
case 'visibleTypeCountersChanged':
|
|
324
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
325
|
+
visibleTypeCounters: action.payload
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
case 'emptyGroupsChanged':
|
|
329
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
330
|
+
emptyGroups: action.payload
|
|
331
|
+
});
|
|
332
|
+
|
|
281
333
|
default:
|
|
282
334
|
throw new Error();
|
|
283
335
|
}
|
|
@@ -310,7 +362,10 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
310
362
|
flatItems: [],
|
|
311
363
|
allChecked: false,
|
|
312
364
|
searchValue: '',
|
|
313
|
-
assetCounts: {}
|
|
365
|
+
assetCounts: {},
|
|
366
|
+
typeFilter: [],
|
|
367
|
+
visibleTypeCounters: [],
|
|
368
|
+
emptyGroups: []
|
|
314
369
|
}),
|
|
315
370
|
_useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
|
|
316
371
|
state = _useReducer2[0],
|
|
@@ -326,18 +381,22 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
326
381
|
if (notEqual(previousItems.current, items) || notEqual(previousGroups.current, groups)) {
|
|
327
382
|
previousItems.current = items;
|
|
328
383
|
previousGroups.current = groups;
|
|
329
|
-
|
|
330
|
-
dispatch(
|
|
384
|
+
var typeCounts = getAssetTypeCounts(items);
|
|
385
|
+
dispatch(assetCounted(typeCounts));
|
|
386
|
+
dispatch(allCheckedChanged(checkAllSelected({
|
|
331
387
|
items: items,
|
|
332
388
|
groups: groups,
|
|
333
389
|
selectedItems: selectedItems,
|
|
334
390
|
selectedGroups: selectedGroups
|
|
335
|
-
}, state.flatItems)));
|
|
391
|
+
}, state.flatItems))); // Get the distinct asset types from the asset list that is passed into the component
|
|
392
|
+
// to know which asset type counter to render
|
|
393
|
+
|
|
394
|
+
dispatch(visibleTypeCountersChanged(Object.keys(typeCounts)));
|
|
336
395
|
makeTree(groups, items);
|
|
337
396
|
}
|
|
338
397
|
}, [items, groups]);
|
|
339
|
-
var debouncedMakeTree = debounceFn(function (
|
|
340
|
-
return makeTree(
|
|
398
|
+
var debouncedMakeTree = debounceFn(function (losGroupos, losItems) {
|
|
399
|
+
return makeTree(losGroupos, losItems);
|
|
341
400
|
});
|
|
342
401
|
(0, _react.useEffect)(function () {
|
|
343
402
|
// To prevent executing the effect on first render, use a ref to check previous render values
|
|
@@ -349,6 +408,9 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
349
408
|
(0, _react.useEffect)(function () {
|
|
350
409
|
makeTree(groups, items);
|
|
351
410
|
}, [showEmptyGroups]);
|
|
411
|
+
(0, _react.useEffect)(function () {
|
|
412
|
+
makeTree(groups, items);
|
|
413
|
+
}, [state.typeFilter]);
|
|
352
414
|
|
|
353
415
|
var checkAllSelected = function checkAllSelected(updatedProps, flatItems) {
|
|
354
416
|
var updatedItems = updatedProps.items,
|
|
@@ -397,7 +459,7 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
397
459
|
|
|
398
460
|
var handeSelectAll = function handeSelectAll(shouldSelect, isIndeterminate) {
|
|
399
461
|
var shouldSelectAll = shouldSelect && !isIndeterminate;
|
|
400
|
-
dispatch(
|
|
462
|
+
dispatch(allCheckedChanged(shouldSelectAll));
|
|
401
463
|
(0, _cond.default)([[hasNoSearchAndGroups, function () {
|
|
402
464
|
return selectAllGroups(shouldSelectAll);
|
|
403
465
|
}], [hasSearchAndGroups, function () {
|
|
@@ -435,7 +497,13 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
435
497
|
var itemIdsOfGroup = (0, _map.default)(function (item) {
|
|
436
498
|
return item.id;
|
|
437
499
|
})(itemsInGroup.items);
|
|
438
|
-
var updatedSelectedItems = (0, _without.default)(itemIdsOfGroup, selectedItems);
|
|
500
|
+
var updatedSelectedItems = (0, _without.default)(itemIdsOfGroup, selectedItems); // check if all groups are selected to change the state of TreeSelectAll
|
|
501
|
+
|
|
502
|
+
var groupAmount = groups.length;
|
|
503
|
+
var emptyGroupAmount = showEmptyGroups ? 0 : state.emptyGroups.length;
|
|
504
|
+
var totalGroupAmount = groupAmount - emptyGroupAmount;
|
|
505
|
+
var areAllGroupsChecked = totalGroupAmount === newSelectedGroups.length;
|
|
506
|
+
dispatch(allCheckedChanged(areAllGroupsChecked));
|
|
439
507
|
respondSelection(updatedSelectedItems, newSelectedGroups);
|
|
440
508
|
};
|
|
441
509
|
|
|
@@ -466,13 +534,20 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
466
534
|
// Map items to groups with filtered items
|
|
467
535
|
var mappedItemsToGroups = getMappedItemsToGroups(groupsToProcess, itemsToProcess);
|
|
468
536
|
var newGroupedItems = (0, _flow.default)(sortGroupsByName, sortGroupItemsByName)(mappedItemsToGroups);
|
|
469
|
-
var groupedItems = considerEmptyGroups ? newGroupedItems : filterEmptyGroups(newGroupedItems);
|
|
537
|
+
var groupedItems = considerEmptyGroups ? newGroupedItems : filterEmptyGroups(newGroupedItems); // Keep the empty groups in memory for later access in select all, without re-iterating on every
|
|
538
|
+
// group selection
|
|
539
|
+
|
|
540
|
+
var emptyGroups = (0, _filter.default)(function (group) {
|
|
541
|
+
return (0, _isEmpty.default)(group.items);
|
|
542
|
+
})(newGroupedItems);
|
|
543
|
+
dispatch(emptyGroupsChanged(emptyGroups));
|
|
470
544
|
dispatch(assetCounted(getAssetTypeCounts(items)));
|
|
471
545
|
dispatch(groupedItemsChanged(groupedItems));
|
|
472
546
|
};
|
|
473
547
|
|
|
474
548
|
var makeTree = function makeTree(updatedGroups, updatedItems) {
|
|
475
549
|
var internalSearchValue = state.searchValue;
|
|
550
|
+
var internalTypeFilter = state.typeFilter;
|
|
476
551
|
var groupsToProcess = updatedGroups;
|
|
477
552
|
var itemsToProcess = updatedItems;
|
|
478
553
|
|
|
@@ -488,12 +563,14 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
488
563
|
return notEmpty(internalSearchValue) && hasGroupList(groupsToProcess);
|
|
489
564
|
};
|
|
490
565
|
|
|
566
|
+
var filteredItems = (0, _isEmpty.default)(internalTypeFilter) ? itemsToProcess : filterAssetByType(internalTypeFilter)(itemsToProcess);
|
|
567
|
+
|
|
491
568
|
var setGroupedItems = function setGroupedItems() {
|
|
492
|
-
return setGroupedItemList(groupsToProcess,
|
|
569
|
+
return setGroupedItemList(groupsToProcess, filteredItems, showEmptyGroups);
|
|
493
570
|
};
|
|
494
571
|
|
|
495
572
|
var setFlatItems = function setFlatItems() {
|
|
496
|
-
return setFlatItemList(
|
|
573
|
+
return setFlatItemList(filteredItems, internalSearchValue);
|
|
497
574
|
};
|
|
498
575
|
|
|
499
576
|
(0, _cond.default)([[hasNoInternalSearchAndGroups, setGroupedItems], [hasInternalSearchAndGroups, setFlatItems], [otherwise, setFlatItems]])();
|
|
@@ -556,16 +633,6 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
556
633
|
}, hasLeafs ? /*#__PURE__*/_react.default.createElement(_TreeNothingFound.default, null) : getLeafs());
|
|
557
634
|
};
|
|
558
635
|
|
|
559
|
-
var renderSummary = function renderSummary() {
|
|
560
|
-
if (hideSummary) {
|
|
561
|
-
return null;
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
return summary || /*#__PURE__*/_react.default.createElement(_TreeSummary.default, {
|
|
565
|
-
assetCounts: state.assetCounts
|
|
566
|
-
});
|
|
567
|
-
};
|
|
568
|
-
|
|
569
636
|
var hasExternalGroups = notEmpty(groups);
|
|
570
637
|
|
|
571
638
|
var hasInternalSearchValue = function hasInternalSearchValue() {
|
|
@@ -581,7 +648,8 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
581
648
|
};
|
|
582
649
|
|
|
583
650
|
var hasSelectedAllGroups = function hasSelectedAllGroups() {
|
|
584
|
-
|
|
651
|
+
var emptyGroupAmount = showEmptyGroups ? 0 : state.emptyGroups.length;
|
|
652
|
+
return (0, _isEqual.default)((0, _size.default)(selectedGroups), (0, _size.default)(groups) - emptyGroupAmount);
|
|
585
653
|
};
|
|
586
654
|
|
|
587
655
|
var hasPartialySelectedGroups = function hasPartialySelectedGroups() {
|
|
@@ -604,25 +672,81 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
604
672
|
}], [otherwise, function () {
|
|
605
673
|
return renderFlatList();
|
|
606
674
|
}]])();
|
|
675
|
+
|
|
676
|
+
var handleFilterByType = function handleFilterByType(type) {
|
|
677
|
+
var currentTypeFilter = new Set(state.typeFilter);
|
|
678
|
+
|
|
679
|
+
if (currentTypeFilter.has(type)) {
|
|
680
|
+
currentTypeFilter.delete(type);
|
|
681
|
+
} else {
|
|
682
|
+
currentTypeFilter.add(type);
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
dispatch(typeFilterChanged((0, _toConsumableArray2.default)(currentTypeFilter)));
|
|
686
|
+
};
|
|
687
|
+
|
|
688
|
+
var isFilterActive = !(0, _isEmpty.default)(state.typeFilter);
|
|
689
|
+
var showTreeHead = !hideTreeHead;
|
|
690
|
+
var showSelectAll = !hideSelectAll;
|
|
691
|
+
var showSearch = !hideSearch;
|
|
692
|
+
var showSummary = !hideSummary;
|
|
693
|
+
var hasCustomSearch = !(0, _isNil.default)(search);
|
|
607
694
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
608
695
|
className: treeClassNames,
|
|
609
696
|
ref: treeRef
|
|
610
697
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
611
698
|
className: "TreeHeader"
|
|
612
|
-
},
|
|
699
|
+
}, showSearch && !hasCustomSearch && /*#__PURE__*/_react.default.createElement(_TreeSearch.default, {
|
|
613
700
|
value: state.searchValue,
|
|
614
701
|
onChange: handleSearchChange,
|
|
615
702
|
placeholder: searchPlaceholder
|
|
616
|
-
}),
|
|
703
|
+
}), hasCustomSearch && search, showTreeHead && /*#__PURE__*/_react.default.createElement("div", {
|
|
617
704
|
className: treeHeadClasses
|
|
618
|
-
},
|
|
705
|
+
}, showSelectAll && /*#__PURE__*/_react.default.createElement(_TreeSelectAll.default, {
|
|
619
706
|
isChecked: state.allChecked,
|
|
620
707
|
isEnabled: hasMultiselect,
|
|
621
708
|
isIndeterminate: isIndeterminate,
|
|
622
709
|
onSelect: handeSelectAll
|
|
710
|
+
}), showSelectAll && hasMultiselect && showSummary && /*#__PURE__*/_react.default.createElement("div", {
|
|
711
|
+
className: 'TreeSelectAllDivider bg-light width-2 height-15 ' + 'margin-top-2 margin-bottom-0 margin-left-10 margin-right-10'
|
|
623
712
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
624
713
|
className: "display-flex justify-content-between align-items-center width-100pct"
|
|
625
|
-
},
|
|
714
|
+
}, showSummary ? summary || /*#__PURE__*/_react.default.createElement(_TreeSummary.default, null, state.visibleTypeCounters.includes(TYPE_TRUCK) && /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
715
|
+
type: TYPE_TRUCK,
|
|
716
|
+
icon: "truck-baseline",
|
|
717
|
+
value: state.assetCounts.truck,
|
|
718
|
+
onClick: handleFilterByType,
|
|
719
|
+
isActive: state.typeFilter.includes(TYPE_TRUCK),
|
|
720
|
+
enableActivity: isFilterActive
|
|
721
|
+
}), state.visibleTypeCounters.includes(TYPE_TRAILER) && /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
722
|
+
type: TYPE_TRAILER,
|
|
723
|
+
icon: "trailer-baseline",
|
|
724
|
+
value: state.assetCounts.trailer,
|
|
725
|
+
onClick: handleFilterByType,
|
|
726
|
+
isActive: state.typeFilter.includes(TYPE_TRAILER),
|
|
727
|
+
enableActivity: isFilterActive
|
|
728
|
+
}), state.visibleTypeCounters.includes(TYPE_BUS) && /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
729
|
+
type: TYPE_BUS,
|
|
730
|
+
icon: "bus-baseline",
|
|
731
|
+
value: state.assetCounts.bus,
|
|
732
|
+
onClick: handleFilterByType,
|
|
733
|
+
isActive: state.typeFilter.includes(TYPE_BUS),
|
|
734
|
+
enableActivity: isFilterActive
|
|
735
|
+
}), state.visibleTypeCounters.includes(TYPE_VAN) && /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
736
|
+
type: TYPE_VAN,
|
|
737
|
+
icon: "van-baseline",
|
|
738
|
+
value: state.assetCounts.van,
|
|
739
|
+
onClick: handleFilterByType,
|
|
740
|
+
isActive: state.typeFilter.includes(TYPE_VAN),
|
|
741
|
+
enableActivity: isFilterActive
|
|
742
|
+
}), state.visibleTypeCounters.includes(TYPE_DRIVER) && /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
743
|
+
type: TYPE_DRIVER,
|
|
744
|
+
icon: TYPE_DRIVER,
|
|
745
|
+
value: state.assetCounts.driver,
|
|
746
|
+
onClick: handleFilterByType,
|
|
747
|
+
isActive: state.typeFilter.includes(TYPE_DRIVER),
|
|
748
|
+
enableActivity: isFilterActive
|
|
749
|
+
})) : null, /*#__PURE__*/_react.default.createElement(_TreeOptions.default, {
|
|
626
750
|
treeOptions: treeOptions
|
|
627
751
|
})))), /*#__PURE__*/_react.default.createElement(_TreeRoot.default, {
|
|
628
752
|
maxHeight: scrollHeight
|
|
@@ -25,7 +25,7 @@ var TreeSelectAll = function TreeSelectAll(props) {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
return isEnabled ? /*#__PURE__*/_react.default.createElement("div", {
|
|
28
|
-
className:
|
|
28
|
+
className: "TreeSelectAll display-flex align-items-center"
|
|
29
29
|
}, /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
|
|
30
30
|
checked: isChecked,
|
|
31
31
|
onClick: handleSelectAll,
|
|
@@ -19,7 +19,7 @@ var _OverlayTrigger = _interopRequireDefault(require("../overlay/OverlayTrigger"
|
|
|
19
19
|
|
|
20
20
|
var _Tooltip = _interopRequireDefault(require("../tooltip/Tooltip"));
|
|
21
21
|
|
|
22
|
-
var _excluded = ["className", "onClick"];
|
|
22
|
+
var _excluded = ["className", "onClick", "isOpen"];
|
|
23
23
|
var ACTIVE_CLASS_NAME = 'active';
|
|
24
24
|
var SELECTED_CLASS_NAME = 'selected';
|
|
25
25
|
var LABEL_TOOLTIP_DELAY = 1500;
|
|
@@ -44,7 +44,7 @@ var TreeSidebarCategories = function TreeSidebarCategories(_ref) {
|
|
|
44
44
|
onClick: handleSelectCategory,
|
|
45
45
|
className: statusClassName
|
|
46
46
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
47
|
-
className:
|
|
47
|
+
className: "selection-bubble"
|
|
48
48
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
49
49
|
className: "rioglyph ".concat(icon)
|
|
50
50
|
})));
|
|
@@ -57,8 +57,8 @@ var TreeSidebarCategories = function TreeSidebarCategories(_ref) {
|
|
|
57
57
|
placement: _Tooltip.default.RIGHT,
|
|
58
58
|
delayShow: LABEL_TOOLTIP_DELAY,
|
|
59
59
|
overlay: /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
|
|
60
|
-
id:
|
|
61
|
-
width:
|
|
60
|
+
id: "tooltip",
|
|
61
|
+
width: "auto"
|
|
62
62
|
}, tooltip)
|
|
63
63
|
}, category);
|
|
64
64
|
}
|
|
@@ -70,19 +70,30 @@ var TreeSidebarCategories = function TreeSidebarCategories(_ref) {
|
|
|
70
70
|
var TreeSidebar = /*#__PURE__*/_react.default.memo(function (props) {
|
|
71
71
|
var className = props.className,
|
|
72
72
|
onClick = props.onClick,
|
|
73
|
+
isOpen = props.isOpen,
|
|
73
74
|
remainingProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
74
|
-
var classes = (0, _classnames.default)('TreeSidebar', className);
|
|
75
|
+
var classes = (0, _classnames.default)('TreeSidebar', !isOpen && 'width-0', className);
|
|
76
|
+
|
|
77
|
+
if (!isOpen) {
|
|
78
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
79
|
+
className: "TreeSidebarToggle position-absolute bottom-0 left--5 height-50 width-50 border rounded bg-lightest display-flex justify-content-center align-items-center",
|
|
80
|
+
onClick: onClick
|
|
81
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
82
|
+
className: "rioglyph rioglyph-chevron-left"
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
|
|
75
86
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
76
87
|
className: classes
|
|
77
|
-
}, /*#__PURE__*/_react.default.createElement("ul", {
|
|
78
|
-
className:
|
|
88
|
+
}, isOpen && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("ul", {
|
|
89
|
+
className: "TreeSidebarNavigation",
|
|
79
90
|
onClick: onClick
|
|
80
91
|
}, /*#__PURE__*/_react.default.createElement(TreeSidebarCategories, remainingProps)), /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
-
className:
|
|
92
|
+
className: "TreeSidebarToggle",
|
|
82
93
|
onClick: onClick
|
|
83
94
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
84
|
-
className:
|
|
85
|
-
})));
|
|
95
|
+
className: "rioglyph rioglyph-chevron-left"
|
|
96
|
+
}))));
|
|
86
97
|
});
|
|
87
98
|
|
|
88
99
|
TreeSidebar.displayName = 'TreeSidebar';
|
|
@@ -93,6 +104,7 @@ TreeSidebar.propTypes = {
|
|
|
93
104
|
currentCategoryId: _propTypes.default.string,
|
|
94
105
|
children: _propTypes.default.arrayOf(_propTypes.default.node),
|
|
95
106
|
onClick: _propTypes.default.func.isRequired,
|
|
107
|
+
isOpen: _propTypes.default.bool,
|
|
96
108
|
className: _propTypes.default.string
|
|
97
109
|
};
|
|
98
110
|
var _default = TreeSidebar;
|
|
@@ -23,21 +23,26 @@ var DefaultAssetCounts = function DefaultAssetCounts(_ref) {
|
|
|
23
23
|
trailer = assetCounts.trailer,
|
|
24
24
|
driver = assetCounts.driver;
|
|
25
25
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
26
|
-
className:
|
|
26
|
+
className: "display-flex"
|
|
27
27
|
}, /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
28
|
-
|
|
28
|
+
hideOnZero: true,
|
|
29
|
+
icon: "truck-baseline",
|
|
29
30
|
value: truck
|
|
30
31
|
}), /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
31
|
-
|
|
32
|
+
hideOnZero: true,
|
|
33
|
+
icon: "trailer-baseline",
|
|
32
34
|
value: trailer
|
|
33
35
|
}), /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
34
|
-
|
|
36
|
+
hideOnZero: true,
|
|
37
|
+
icon: "bus-baseline",
|
|
35
38
|
value: bus
|
|
36
39
|
}), /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
37
|
-
|
|
40
|
+
hideOnZero: true,
|
|
41
|
+
icon: "van-baseline",
|
|
38
42
|
value: van
|
|
39
43
|
}), /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
40
|
-
|
|
44
|
+
hideOnZero: true,
|
|
45
|
+
icon: "driver",
|
|
41
46
|
value: driver
|
|
42
47
|
}));
|
|
43
48
|
};
|
|
@@ -7,24 +7,61 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
10
14
|
var _react = _interopRequireDefault(require("react"));
|
|
11
15
|
|
|
12
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
17
|
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
|
+
|
|
20
|
+
var _excluded = ["icon", "value", "isActive", "enableActivity", "onClick", "type", "hideOnZero"];
|
|
21
|
+
|
|
22
|
+
var TypeCounter = function TypeCounter(props) {
|
|
23
|
+
var icon = props.icon,
|
|
24
|
+
value = props.value,
|
|
25
|
+
isActive = props.isActive,
|
|
26
|
+
enableActivity = props.enableActivity,
|
|
27
|
+
onClick = props.onClick,
|
|
28
|
+
type = props.type,
|
|
29
|
+
hideOnZero = props.hideOnZero,
|
|
30
|
+
remainingProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
31
|
+
var isClickable = onClick !== undefined;
|
|
32
|
+
var wrapperClassName = (0, _classnames.default)('TypeCounter', 'user-select-none margin-right-15', isClickable && 'cursor-pointer', enableActivity && !isActive && 'opacity-50');
|
|
33
|
+
var counterClassNames = (0, _classnames.default)('TreeLabelCount', 'margin-left-3', 'label label-condensed', isActive ? 'label-primary' : 'label-muted label-filled');
|
|
34
|
+
|
|
35
|
+
var handleClick = function handleClick() {
|
|
36
|
+
if (isClickable) {
|
|
37
|
+
onClick(type);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
if (hideOnZero && !value) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, remainingProps, {
|
|
46
|
+
className: wrapperClassName,
|
|
47
|
+
onClick: handleClick
|
|
48
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
20
49
|
className: "rioglyph rioglyph-".concat(icon, " text-size-16")
|
|
21
50
|
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
22
|
-
className:
|
|
23
|
-
}, value))
|
|
51
|
+
className: counterClassNames
|
|
52
|
+
}, value || 0));
|
|
24
53
|
};
|
|
25
54
|
|
|
55
|
+
TypeCounter.defaultProps = {
|
|
56
|
+
hideOnZero: false
|
|
57
|
+
};
|
|
26
58
|
TypeCounter.propTypes = {
|
|
59
|
+
type: _propTypes.default.string,
|
|
27
60
|
icon: _propTypes.default.string,
|
|
61
|
+
isActive: _propTypes.default.bool,
|
|
62
|
+
enableActivity: _propTypes.default.bool,
|
|
63
|
+
hideOnZero: _propTypes.default.bool,
|
|
64
|
+
onClick: _propTypes.default.func,
|
|
28
65
|
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node, _propTypes.default.number])
|
|
29
66
|
};
|
|
30
67
|
var _default = TypeCounter;
|
|
@@ -71,7 +71,6 @@ var DatePicker = function DatePicker(props) {
|
|
|
71
71
|
DatePicker.defaultProps = {
|
|
72
72
|
closeOnSelect: true,
|
|
73
73
|
dropup: false,
|
|
74
|
-
defaultValue: (0, _moment.default)(),
|
|
75
74
|
locale: 'en-GB',
|
|
76
75
|
onChange: function onChange() {},
|
|
77
76
|
clearableInput: false,
|
|
@@ -82,7 +81,7 @@ DatePicker.propTypes = {
|
|
|
82
81
|
className: _propTypes.default.string,
|
|
83
82
|
closeOnSelect: _propTypes.default.bool,
|
|
84
83
|
clearableInput: _propTypes.default.bool,
|
|
85
|
-
|
|
84
|
+
initialValue: _propTypes.default.object,
|
|
86
85
|
locale: _propTypes.default.string,
|
|
87
86
|
onChange: _propTypes.default.func,
|
|
88
87
|
dropup: _propTypes.default.bool,
|