@rio-cloud/rio-uikit 0.16.1-beta-6 → 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.
@@ -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 = _interopRequireWildcard(require("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;
@@ -16,8 +16,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
16
16
  var ApplicationLayoutSidebar = function ApplicationLayoutSidebar(_ref) {
17
17
  var className = _ref.className,
18
18
  children = _ref.children;
19
- var classes = (0, _classnames.default)('ApplicationLayoutSidebar', className); // TODO: check for className "right" and inject prop "position={Sidebar.RIGHT}"
20
-
19
+ var classes = (0, _classnames.default)('ApplicationLayoutSidebar', className);
21
20
  return /*#__PURE__*/_react.default.createElement("div", {
22
21
  className: classes
23
22
  }, children);
@@ -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: 'AssetTreeContent'
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: 'AssetTreeBody'
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 allChecked = function allChecked(payload) {
241
+ var allCheckedChanged = function allCheckedChanged(payload) {
226
242
  return {
227
- type: 'allChecked',
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 'allChecked':
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
- dispatch(assetCounted(getAssetTypeCounts(items)));
330
- dispatch(allChecked(checkAllSelected({
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 (g, i) {
340
- return makeTree(g, i);
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(allChecked(shouldSelectAll));
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, itemsToProcess, showEmptyGroups);
569
+ return setGroupedItemList(groupsToProcess, filteredItems, showEmptyGroups);
493
570
  };
494
571
 
495
572
  var setFlatItems = function setFlatItems() {
496
- return setFlatItemList(itemsToProcess, internalSearchValue);
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
- return (0, _isEqual.default)((0, _size.default)(selectedGroups), (0, _size.default)(groups));
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
- }, !hideSearch && !search && /*#__PURE__*/_react.default.createElement(_TreeSearch.default, {
699
+ }, showSearch && !hasCustomSearch && /*#__PURE__*/_react.default.createElement(_TreeSearch.default, {
613
700
  value: state.searchValue,
614
701
  onChange: handleSearchChange,
615
702
  placeholder: searchPlaceholder
616
- }), search && search, !hideTreeHead && /*#__PURE__*/_react.default.createElement("div", {
703
+ }), hasCustomSearch && search, showTreeHead && /*#__PURE__*/_react.default.createElement("div", {
617
704
  className: treeHeadClasses
618
- }, !hideSelectAll && /*#__PURE__*/_react.default.createElement(_TreeSelectAll.default, {
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
- }, renderSummary(), /*#__PURE__*/_react.default.createElement(_TreeOptions.default, {
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: 'TreeSelectAll display-flex align-items-center'
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: 'selection-bubble'
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: 'tooltip',
61
- width: 'auto'
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: 'TreeSidebarNavigation',
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: 'TreeSidebarToggle',
92
+ className: "TreeSidebarToggle",
82
93
  onClick: onClick
83
94
  }, /*#__PURE__*/_react.default.createElement("span", {
84
- className: 'rioglyph rioglyph-chevron-left'
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: 'display-flex'
26
+ className: "display-flex"
27
27
  }, /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
28
- icon: 'truck-baseline',
28
+ hideOnZero: true,
29
+ icon: "truck-baseline",
29
30
  value: truck
30
31
  }), /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
31
- icon: 'trailer-baseline',
32
+ hideOnZero: true,
33
+ icon: "trailer-baseline",
32
34
  value: trailer
33
35
  }), /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
34
- icon: 'bus-baseline',
36
+ hideOnZero: true,
37
+ icon: "bus-baseline",
35
38
  value: bus
36
39
  }), /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
37
- icon: 'van-baseline',
40
+ hideOnZero: true,
41
+ icon: "van-baseline",
38
42
  value: van
39
43
  }), /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
40
- icon: 'driver',
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 TypeCounter = function TypeCounter(_ref) {
15
- var icon = _ref.icon,
16
- value = _ref.value;
17
- return value ? /*#__PURE__*/_react.default.createElement("div", {
18
- className: 'user-select-none margin-right-15'
19
- }, /*#__PURE__*/_react.default.createElement("span", {
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: 'TreeLabelCount margin-left-3 label label-muted label-filled label-condensed'
23
- }, value)) : null;
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;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = exports.AppNavigationBar = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
22
+ var _noop = _interopRequireDefault(require("lodash/fp/noop"));
23
+
24
+ var _excluded = ["className", "title", "right", "onNavigateBack"];
25
+
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
+ var AppNavigationBar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
31
+ var className = props.className,
32
+ title = props.title,
33
+ right = props.right,
34
+ onNavigateBack = props.onNavigateBack,
35
+ remainingProps = (0, _objectWithoutProperties2.default)(props, _excluded);
36
+ var navigationClasses = (0, _classnames.default)('AppNavigationBar', 'width-100pct display-flex align-items-center justify-content-between height-45 user-select-none padding-x-10', className);
37
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
38
+ ref: ref
39
+ }, remainingProps, {
40
+ className: navigationClasses
41
+ }), /*#__PURE__*/_react.default.createElement("div", {
42
+ className: "display-flex align-items-center"
43
+ }, /*#__PURE__*/_react.default.createElement("div", {
44
+ className: "width-30 text-size-20 text-color-darkest"
45
+ }, /*#__PURE__*/_react.default.createElement("span", {
46
+ className: "rioglyph rioglyph-arrow-left",
47
+ onClick: onNavigateBack
48
+ })), /*#__PURE__*/_react.default.createElement("div", {
49
+ className: "text-medium text-color-darker"
50
+ }, title)), /*#__PURE__*/_react.default.createElement("div", null, right));
51
+ });
52
+ exports.AppNavigationBar = AppNavigationBar;
53
+ AppNavigationBar.defaultProps = {
54
+ onNavigateBack: _noop.default,
55
+ right: /*#__PURE__*/_react.default.createElement("span", null)
56
+ };
57
+ AppNavigationBar.propTypes = {
58
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
59
+ right: _propTypes.default.node,
60
+ onNavigateBack: _propTypes.default.func,
61
+ className: _propTypes.default.string
62
+ };
63
+ var _default = AppNavigationBar;
64
+ exports.default = _default;
@@ -25,16 +25,14 @@ var _react = _interopRequireWildcard(require("react"));
25
25
 
26
26
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
27
 
28
+ var _Resizer = _interopRequireDefault(require("../resizer/Resizer"));
29
+
28
30
  var _classnames = _interopRequireDefault(require("classnames"));
29
31
 
30
32
  var _throttle = _interopRequireDefault(require("lodash/fp/throttle"));
31
33
 
32
34
  var _head = _interopRequireDefault(require("lodash/fp/head"));
33
35
 
34
- var _framerMotion = require("framer-motion");
35
-
36
- var _Resizer = _interopRequireDefault(require("../resizer/Resizer"));
37
-
38
36
  var _addEventListener = _interopRequireDefault(require("../../utils/addEventListener"));
39
37
 
40
38
  var _ownerDocument = _interopRequireDefault(require("../../utils/ownerDocument"));
@@ -274,8 +272,7 @@ var Sidebar = /*#__PURE__*/function (_Component) {
274
272
  enableNavigationButtons = _this$props5.enableNavigationButtons,
275
273
  disableClose = _this$props5.disableClose,
276
274
  bodyRef = _this$props5.bodyRef,
277
- headerButtons = _this$props5.headerButtons,
278
- fly = _this$props5.fly;
275
+ headerButtons = _this$props5.headerButtons;
279
276
  var _this$state2 = this.state,
280
277
  width = _this$state2.width,
281
278
  isFullscreen = _this$state2.isFullscreen,
@@ -296,57 +293,10 @@ var Sidebar = /*#__PURE__*/function (_Component) {
296
293
  } : {
297
294
  left: resizeIndicatorPosition
298
295
  };
299
- var offscreenPos = isRight ? 1000 : -1000;
300
- var pos = isRight ? width : width; // const initial = { opacity: 0 };
301
- // if (isRight) {
302
- // initial.x = -1000;
303
- // } else {
304
- // initial.x = -1000;
305
- // }
306
- // const contentAnimate = {};
307
- // if (closed) {
308
- // if (isRight) {
309
- // // contentAnimate.x = 10000;
310
- // // contentAnimate.left = 0;
311
- // } else {
312
- // // contentAnimate.x = -1000;
313
- // contentAnimate.right = 0;
314
- // }
315
- // } else {
316
- // if (isRight) {
317
- // contentAnimate.x = 0;
318
- // } else {
319
- // contentAnimate.x = 0;
320
- // }
321
- // contentAnimate.opacity = 1;
322
- // }
323
-
324
- var contentStyle = {
325
- width: width,
326
- top: 0,
327
- position: 'absolute'
328
- };
329
-
330
- if (isRight) {
331
- contentStyle.left = 0;
332
- } else {
333
- contentStyle.right = 0;
334
- }
335
-
336
- return /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, {
337
- initial: {
338
- width: closed ? 0 : width
339
- },
340
- animate: {
341
- width: closed ? 0 : width
342
- },
343
- transition: {
344
- duration: 2.2,
345
- ease: 'easeInOut'
346
- },
296
+ return /*#__PURE__*/_react.default.createElement("div", {
347
297
  className: classes,
348
298
  style: {
349
- overflow: closed ? 'hidden' : 'auto'
299
+ width: width
350
300
  },
351
301
  ref: function ref(node) {
352
302
  return _this2.sidebarRef = node;
@@ -354,38 +304,36 @@ var Sidebar = /*#__PURE__*/function (_Component) {
354
304
  }, /*#__PURE__*/_react.default.createElement("div", {
355
305
  className: resizeLimitClasses,
356
306
  style: resizeLimitStyle
357
- }), /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, {
358
- // animate={contentAnimate}
359
- style: contentStyle,
360
- className: "SidebarContent"
307
+ }), /*#__PURE__*/_react.default.createElement("div", {
308
+ className: 'SidebarContent'
361
309
  }, /*#__PURE__*/_react.default.createElement("div", {
362
310
  className: headerClassNames
363
311
  }, /*#__PURE__*/_react.default.createElement("div", {
364
312
  className: titleClassNames
365
313
  }, title ? title : ''), /*#__PURE__*/_react.default.createElement("div", {
366
- className: "SidebarButtons non-printable close"
314
+ className: 'SidebarButtons non-printable close'
367
315
  }, headerButtons, enableNavigationButtons && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("button", {
368
- className: "btn btn-muted btn-icon-only",
316
+ className: 'btn btn-muted btn-icon-only',
369
317
  onClick: this.handlePrevContent
370
318
  }, /*#__PURE__*/_react.default.createElement("span", {
371
- className: " rioglyph rioglyph-chevron-left"
319
+ className: ' rioglyph rioglyph-chevron-left'
372
320
  })), /*#__PURE__*/_react.default.createElement("button", {
373
- className: "btn btn-muted btn-icon-only",
321
+ className: 'btn btn-muted btn-icon-only',
374
322
  onClick: this.handleNextContent
375
323
  }, /*#__PURE__*/_react.default.createElement("span", {
376
- className: " rioglyph rioglyph-chevron-right"
324
+ className: ' rioglyph rioglyph-chevron-right'
377
325
  }))), enableFullscreenToggle && /*#__PURE__*/_react.default.createElement("button", {
378
- className: "btn btn-muted btn-icon-only",
326
+ className: 'btn btn-muted btn-icon-only',
379
327
  onClick: this.handleFullscreenChange
380
328
  }, /*#__PURE__*/_react.default.createElement("span", {
381
329
  className: fullscreenIconClasses
382
330
  })), !disableClose && (headerButtons || enableNavigationButtons || enableFullscreenToggle) && /*#__PURE__*/_react.default.createElement("div", {
383
- className: "SidebarButtons-spacer"
331
+ className: 'SidebarButtons-spacer'
384
332
  }), !disableClose && /*#__PURE__*/_react.default.createElement("button", {
385
- className: "btn btn-muted btn-icon-only",
333
+ className: 'btn btn-muted btn-icon-only',
386
334
  onClick: onClose
387
335
  }, /*#__PURE__*/_react.default.createElement("span", {
388
- className: "rioglyph rioglyph-remove"
336
+ className: 'rioglyph rioglyph-remove'
389
337
  })))), /*#__PURE__*/_react.default.createElement("div", {
390
338
  className: bodyClassNames,
391
339
  ref: bodyRef
@@ -0,0 +1,5 @@
1
+ declare module '@rio-cloud/rio-uikit/lib/es/AppNavigationBar' {
2
+ import React from 'react';
3
+ import { AppNavigationBarProps } from '../types';
4
+ export default class AppNavigationBar extends React.Component<AppNavigationBarProps> {}
5
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _AppNavigationBar2.default;
12
+ }
13
+ });
14
+
15
+ var _AppNavigationBar2 = _interopRequireDefault(require("../components/navigation/AppNavigationBar"));
@@ -2,6 +2,8 @@ declare module '@rio-cloud/rio-uikit/lib/es/DeviceUtils' {
2
2
  export function hasTouch(): boolean;
3
3
  export function isDesktop(): boolean;
4
4
  export function isMobile(): boolean;
5
+ export function isMobileScreen(): boolean;
5
6
  export function inIframe(): boolean;
6
7
  export function toggleZoomOnMobile(): boolean;
8
+ export type MOBILE_SCREEN = number;
7
9
  }
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "MOBILE_SCREEN", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _deviceUtils.MOBILE_SCREEN;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "hasTouch", {
7
13
  enumerable: true,
8
14
  get: function get() {
@@ -27,6 +33,12 @@ Object.defineProperty(exports, "isMobile", {
27
33
  return _deviceUtils.isMobile;
28
34
  }
29
35
  });
36
+ Object.defineProperty(exports, "isMobileScreen", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _deviceUtils.isMobileScreen;
40
+ }
41
+ });
30
42
  Object.defineProperty(exports, "toggleZoomOnMobile", {
31
43
  enumerable: true,
32
44
  get: function get() {
@@ -0,0 +1,4 @@
1
+ declare module '@rio-cloud/rio-uikit/lib/es/useResizeObserver' {
2
+ import { UseResizeObserver } from '../types';
3
+ export default UseResizeObserver;
4
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _useResizeObserver2.default;
12
+ }
13
+ });
14
+
15
+ var _useResizeObserver2 = _interopRequireDefault(require("../hooks/useResizeObserver"));
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _react = require("react");
13
+
14
+ // inspired from https://tobbelindstrom.com/blog/resize-observer-hook/
15
+ var useResizeObserver = function useResizeObserver() {
16
+ var _useState = (0, _react.useState)({}),
17
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
18
+ observerEntry = _useState2[0],
19
+ setObserverEntry = _useState2[1];
20
+
21
+ var _useState3 = (0, _react.useState)(null),
22
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
23
+ node = _useState4[0],
24
+ setNode = _useState4[1];
25
+
26
+ var observer = (0, _react.useRef)(null);
27
+ var disconnect = (0, _react.useCallback)(function () {
28
+ var _observer$current;
29
+
30
+ return (_observer$current = observer.current) === null || _observer$current === void 0 ? void 0 : _observer$current.disconnect();
31
+ }, []);
32
+ var observe = (0, _react.useCallback)(function () {
33
+ observer.current = new ResizeObserver(function (_ref) {
34
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 1),
35
+ entry = _ref2[0];
36
+
37
+ return setObserverEntry(entry);
38
+ });
39
+
40
+ if (node) {
41
+ observer.current.observe(node);
42
+ }
43
+ }, [node]);
44
+ (0, _react.useLayoutEffect)(function () {
45
+ observe();
46
+ return function () {
47
+ return disconnect();
48
+ };
49
+ }, [disconnect, observe]);
50
+ return [setNode, observerEntry];
51
+ };
52
+
53
+ var _default = useResizeObserver;
54
+ exports.default = _default;
@@ -5,19 +5,22 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = useWindowResize;
8
+ exports.default = void 0;
9
9
 
10
10
  var _react = require("react");
11
11
 
12
12
  var _throttle = _interopRequireDefault(require("lodash/fp/throttle"));
13
13
 
14
- function useWindowResize(onResizeCallback) {
14
+ var useWindowResize = function useWindowResize(onResizeCallback) {
15
15
  var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;
16
16
  (0, _react.useEffect)(function () {
17
17
  var throttledCallback = (0, _throttle.default)(timeout, onResizeCallback);
18
- window.addEventListener('resize', throttledCallback, false);
18
+ window.addEventListener('resize', throttledCallback);
19
19
  return function () {
20
- return window.removeEventListener('resize', throttledCallback, true);
20
+ window.removeEventListener('resize', throttledCallback);
21
21
  };
22
22
  }, [onResizeCallback, timeout]);
23
- }
23
+ };
24
+
25
+ var _default = useWindowResize;
26
+ exports.default = _default;
@@ -554,6 +554,29 @@ body .module-content {
554
554
  }
555
555
  }
556
556
 
557
+ &.btn-default {
558
+ .btn {
559
+ .button-variant(
560
+ ~'!important';
561
+ @btn-default-bg;
562
+ @btn-default-border;
563
+ @btn-default-color;
564
+ @btn-default-color;
565
+ @btn-default-color;
566
+ @btn-default-color;
567
+ darken(@btn-default-color, 17%);
568
+ darken(@btn-default-border, 12%);
569
+ darken(@btn-default-border, 12%);
570
+ darken(@btn-default-border, 25%);
571
+ darken(@btn-default-border, 25%);
572
+ @btn-default-bg;
573
+ @btn-default-bg;
574
+ @btn-default-bg;
575
+ @btn-default-bg;
576
+ );
577
+ }
578
+ }
579
+
557
580
  &.btn-white {
558
581
  .btn {
559
582
  .button-variant(
@@ -1544,6 +1567,26 @@ body .module-content {
1544
1567
  }
1545
1568
  }
1546
1569
  }
1570
+
1571
+ &-always {
1572
+ .section-layout {
1573
+ padding-left: 0;
1574
+ padding-right: 0;
1575
+
1576
+ .section-layout-container {
1577
+ max-width: none;
1578
+ padding-left: 0;
1579
+ padding-right: 0;
1580
+
1581
+ .section-layout-container-row {
1582
+ .section-content-container-col {
1583
+ padding-left: 0;
1584
+ padding-right: 0;
1585
+ }
1586
+ }
1587
+ }
1588
+ }
1589
+ }
1547
1590
  }
1548
1591
 
1549
1592
  &-marketplace-details-panel {
@@ -1612,6 +1655,14 @@ body .module-content {
1612
1655
  }
1613
1656
  }
1614
1657
 
1658
+ &-hide-background-on-mobile {
1659
+ @media (max-width: @screen-ls) {
1660
+ .section-wrapper-background-image {
1661
+ display: none;
1662
+ }
1663
+ }
1664
+ }
1665
+
1615
1666
  &-overlay-light {
1616
1667
  .section-wrapper-background-image,
1617
1668
  .section-content-container-background-image {
@@ -1852,12 +1903,6 @@ blockquote {
1852
1903
  .anchor {
1853
1904
  margin-top: -50px;
1854
1905
  }
1855
-
1856
- // .preset-rimless {
1857
- // > .anchor {
1858
- // margin-top: -50px;
1859
- // }
1860
- // }
1861
1906
  }
1862
1907
 
1863
1908
  .ApplicationLayoutBody {
@@ -1,6 +1,7 @@
1
1
  @import (less) "collapse.less";
2
2
  @import (less) "fade.less";
3
3
  @import (less) "pinging.less";
4
+ @import (less) "pulsing.less";
4
5
  @import (less) "rotate.less";
5
6
  @import (less) "scale.less";
6
7
  @import (less) "slide.less";
@@ -0,0 +1,5 @@
1
+ @keyframes pulsing {
2
+ 50% {
3
+ opacity:.5
4
+ }
5
+ }
@@ -59,7 +59,7 @@
59
59
  border-bottom: 1px solid @gray-light;
60
60
  display: flex;
61
61
  justify-content: space-between;
62
- padding: 0 @ApplicationLayoutBodyPadding*0.25 0 @ApplicationLayoutBodyPadding*0.5;
62
+ // padding: 0 @ApplicationLayoutBodyPadding*0.25 0 @ApplicationLayoutBodyPadding*0.5;
63
63
  }
64
64
 
65
65
  &:not(.header-has-no-application-menu) {
@@ -69,6 +69,8 @@
69
69
  }
70
70
 
71
71
  .nav-pills {
72
+ padding-left: @ApplicationLayoutBodyPadding*0.5;
73
+
72
74
  &:not(.nav-stacked) {
73
75
  box-shadow: none;
74
76
 
@@ -42,7 +42,7 @@
42
42
 
43
43
  &.closed {
44
44
  box-shadow: none !important;
45
- width: 50px !important;
45
+ width: 50px;
46
46
 
47
47
  .TreeSidebarToggle {
48
48
  transform: rotate(180deg);
@@ -237,10 +237,6 @@
237
237
 
238
238
  .TreeHead {
239
239
  min-height: 50px;
240
-
241
- .TreeSelectAll {
242
- margin-right: 5px;
243
- }
244
240
  }
245
241
 
246
242
  &Options {
@@ -318,9 +318,12 @@
318
318
 
319
319
  &:before {
320
320
  .rioglyph;
321
+ animation-name: spinning;
322
+ animation-duration: 1s;
323
+ animation-iteration-count: infinite;
324
+ animation-timing-function: linear;
321
325
  content: "\e9c7";
322
326
  color: @brand-primary;
323
- animation: spinning 1s linear infinite;
324
327
  font-size: 20px;
325
328
  }
326
329
 
@@ -1,16 +1,5 @@
1
1
  @import (less) '../../fonts/rioglyph/rioglyph.less';
2
2
 
3
- @keyframes spinning {
4
- from { transform: rotate(0deg) }
5
- to { transform: rotate(359deg) }
6
- }
7
-
8
- @keyframes pulse {
9
- 50% {
10
- opacity:.5
11
- }
12
- }
13
-
14
3
  .rioglyph {
15
4
  &.spinning:before {
16
5
  display: inline-block;
@@ -19,6 +8,6 @@
19
8
 
20
9
  &.pulsing:before {
21
10
  display: inline-block;
22
- animation: pulse 2s cubic-bezier(.4,0,.6,1) infinite;
11
+ animation: pulsing 2s cubic-bezier(.4,0,.6,1) infinite;
23
12
  }
24
13
  }
package/lib/types.ts CHANGED
@@ -57,6 +57,14 @@ export interface AnimatedNumberProps {
57
57
  className?: string;
58
58
  }
59
59
 
60
+ export interface AppNavigationBarProps {
61
+ ref?: React.MutableRefObject<object>;
62
+ title?: string | React.ReactNode;
63
+ right?: React.ReactNode;
64
+ onNavigateBack?: (event: React.MouseEvent<HTMLButtonElement>) => void;
65
+ className?: string;
66
+ }
67
+
60
68
  export interface ApplicationHeaderProps {
61
69
  label?: React.ReactNode;
62
70
  homeRoute?: React.ReactNode;
@@ -73,6 +81,7 @@ export interface ApplicationHeaderProps {
73
81
 
74
82
  export interface ApplicationLayoutProps {
75
83
  className?: string;
84
+ layoutRef: React.MutableRefObject<object>;
76
85
  }
77
86
 
78
87
  export interface ApplicationLayoutHeaderProps {
@@ -2029,7 +2038,12 @@ export interface TreeSummaryProps {
2029
2038
  }
2030
2039
 
2031
2040
  export interface TypeCounterProps {
2041
+ type?: string;
2032
2042
  icon?: string;
2043
+ isActive?: boolean;
2044
+ enableActivity?: boolean;
2045
+ hideOnZero?: boolean;
2046
+ onClick?: (type: string) => void;
2033
2047
  value?: string | React.ReactNode | number;
2034
2048
  }
2035
2049
 
@@ -2117,6 +2131,8 @@ export type UseOnScreen = (
2117
2131
 
2118
2132
  export type UseRenderCount = () => number;
2119
2133
 
2134
+ export type UseResizeObserver = () => [React.MutableRefObject<object>, ResizeObserverEntry];
2135
+
2120
2136
  export type UseStateWithValidation = (validationFn: Function, initialValue: any) => [any, Function, boolean];
2121
2137
 
2122
2138
  export type UseLocalStorage = (key: string, defaultValue: any) => [any, Function, Function];
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.toggleZoomOnMobile = exports.isMobile = exports.isDesktop = exports.inIframe = exports.hasTouch = void 0;
6
+ exports.toggleZoomOnMobile = exports.isMobileScreen = exports.isMobile = exports.isDesktop = exports.inIframe = exports.hasTouch = exports.MOBILE_SCREEN = void 0;
7
7
 
8
8
  // As "cssuseragent" is accessing the html dom object directly without checking whether it exists or not, we need to
9
9
  // use old shool require() to have a conditional import only when html really exists. This avoids issues when
@@ -34,9 +34,18 @@ var hasTouch = function hasTouch() {
34
34
  }
35
35
 
36
36
  return false;
37
- };
37
+ }; // Screen sizes
38
+
38
39
 
39
40
  exports.hasTouch = hasTouch;
41
+ var MOBILE_SCREEN = 480;
42
+ exports.MOBILE_SCREEN = MOBILE_SCREEN;
43
+
44
+ var isMobileScreen = function isMobileScreen() {
45
+ return window.matchMedia("(max-width: ".concat(MOBILE_SCREEN, "px)")).matches;
46
+ };
47
+
48
+ exports.isMobileScreen = isMobileScreen;
40
49
 
41
50
  var isMobile = function isMobile() {
42
51
  return document && document.documentElement.classList.contains('ua-mobile');
package/lib/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "0.16.1-beta-6"
2
+ "version": "0.16.1-beta-7"
3
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rio-cloud/rio-uikit",
3
- "version": "0.16.1-beta-6",
3
+ "version": "0.16.1-beta-7",
4
4
  "description": "The RIO UIKIT component library",
5
5
  "repository": "https://collaboration.msi.audi.com/stash/projects/RIOFRONT/repos/uikit-web/browse",
6
6
  "scripts": {
@@ -127,10 +127,11 @@
127
127
  "@dnd-kit/modifiers": "5.0.0",
128
128
  "@dnd-kit/sortable": "6.0.1",
129
129
  "@popperjs/core": "2.11.5",
130
+ "@types/resize-observer-browser": "^0.1.7",
130
131
  "classlist-polyfill": "1.2.0",
131
132
  "classnames": "2.3.1",
132
133
  "cssuseragent": "2.1.31",
133
- "framer-motion": "^6.3.3",
134
+ "framer-motion": "4.1.17",
134
135
  "lodash": "4.17.21",
135
136
  "moment": "2.29.3",
136
137
  "natural-orderby": "2.0.3",
@@ -144,6 +145,7 @@
144
145
  "react-notifications": "1.7.3",
145
146
  "react-onclickoutside": "6.12.1",
146
147
  "react-popper": "2.3.0",
148
+ "react-responsive": "^9.0.0-beta.8",
147
149
  "react-transition-group": "4.4.2",
148
150
  "recharts": "2.1.9",
149
151
  "regenerator-runtime": "0.13.9",