@rio-cloud/rio-uikit 0.16.1-beta-7 → 0.16.1-beta-10

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.
Files changed (212) hide show
  1. package/lib/.DS_Store +0 -0
  2. package/lib/components/.DS_Store +0 -0
  3. package/lib/components/applicationHeader/AppMenu.js +3 -2
  4. package/lib/components/applicationHeader/AppMenuDropdown.js +7 -5
  5. package/lib/components/applicationHeader/ApplicationHeader.js +84 -162
  6. package/lib/components/applicationHeader/MobileAppMenu.js +77 -0
  7. package/lib/components/applicationHeader/MobileHeaderModal.js +90 -0
  8. package/lib/components/applicationHeader/MobileSubmoduleNavigation.js +89 -0
  9. package/lib/components/applicationHeader/NavItems.js +167 -274
  10. package/lib/components/applicationLayout/ApplicationLayoutBody.js +1 -3
  11. package/lib/components/applicationLayout/SubNavigation.js +60 -0
  12. package/lib/components/assetTree/AssetTree.js +4 -7
  13. package/lib/components/assetTree/Tree.js +46 -54
  14. package/lib/components/assetTree/TreeLeaf.js +1 -1
  15. package/lib/components/assetTree/TreeSelectAll.js +2 -1
  16. package/lib/components/assetTree/TreeSidebar.js +10 -22
  17. package/lib/components/assetTree/TypeCounter.js +10 -8
  18. package/lib/components/charts/AreaChart.js +5 -3
  19. package/lib/components/charts/BarChart.js +5 -3
  20. package/lib/components/charts/ChartTooltip.js +14 -0
  21. package/lib/components/charts/LineChart.js +4 -2
  22. package/lib/components/charts/PieChart.js +5 -3
  23. package/lib/components/charts/RadialBarChart.js +4 -4
  24. package/lib/components/charts/chartHelper.js +1 -1
  25. package/lib/components/dialog/Dialog.js +4 -4
  26. package/lib/components/dialog/baseDialogPropTypes.js +1 -1
  27. package/lib/components/map/.DS_Store +0 -0
  28. package/lib/components/map/components/.DS_Store +0 -0
  29. package/lib/components/map/components/features/.DS_Store +0 -0
  30. package/lib/components/map/components/features/settings/.DS_Store +0 -0
  31. package/lib/components/steppedProgressBar/SteppedProgressBar.js +59 -107
  32. package/lib/es/ChartTooltip.d.ts +5 -0
  33. package/lib/es/ChartTooltip.js +15 -0
  34. package/lib/es/Colors.js +1 -1
  35. package/lib/es/DeviceUtils.d.ts +5 -1
  36. package/lib/es/SubNavigation.d.ts +5 -0
  37. package/lib/es/SubNavigation.js +15 -0
  38. package/lib/es/VolkswagenApplicationHeader.d.ts +5 -0
  39. package/lib/es/VolkswagenApplicationHeader.js +15 -0
  40. package/lib/es/deviceUtils.js +24 -0
  41. package/lib/hooks/useClickOutside.js +2 -1
  42. package/lib/index.js +1 -1
  43. package/lib/style/css/_exports/rio-website.less +36 -22
  44. package/lib/style/css/_exports/vw-uikit.less +5 -1
  45. package/lib/style/css/components/ApplicationHeader.less +288 -257
  46. package/lib/style/css/components/ApplicationLayout.less +7 -5
  47. package/lib/style/css/components/AssetTree.less +3 -3
  48. package/lib/style/css/variables.less +1 -1
  49. package/lib/style/fonts/rioglyph/rioglyph.less +56 -1
  50. package/lib/style/fonts/rioglyph/rioglyph.svg +68 -2
  51. package/lib/style/fonts/rioglyph/rioglyph.ttf +0 -0
  52. package/lib/style/fonts/rioglyph/rioglyph.woff +0 -0
  53. package/lib/styles/animations/_imports.less +10 -0
  54. package/lib/styles/animations/collapse.less +16 -0
  55. package/lib/styles/animations/fade.less +28 -0
  56. package/lib/styles/animations/pinging.less +7 -0
  57. package/lib/styles/animations/pulsing.less +5 -0
  58. package/lib/styles/animations/rotate.less +52 -0
  59. package/lib/styles/animations/scale.less +35 -0
  60. package/lib/styles/animations/slide.less +39 -0
  61. package/lib/styles/animations/spinning.less +4 -0
  62. package/lib/styles/animations/transition.less +129 -0
  63. package/lib/styles/animations/translate.less +28 -0
  64. package/lib/styles/components/Activity.less +93 -0
  65. package/lib/styles/components/ApplicationHeader.less +469 -0
  66. package/lib/styles/components/ApplicationLayout.less +240 -0
  67. package/lib/styles/components/AssetTree.less +439 -0
  68. package/lib/styles/components/AutoSuggest.less +22 -0
  69. package/lib/styles/components/BottomSheet.less +14 -0
  70. package/lib/styles/components/Carousel.less +212 -0
  71. package/lib/styles/components/Checkbox.less +224 -0
  72. package/lib/styles/components/ClearableInput.less +115 -0
  73. package/lib/styles/components/Counter.less +142 -0
  74. package/lib/styles/components/DataTabs.less +100 -0
  75. package/lib/styles/components/DatePicker.less +391 -0
  76. package/lib/styles/components/Dialog.less +484 -0
  77. package/lib/styles/components/Dropdown.less +185 -0
  78. package/lib/styles/components/Expander.less +196 -0
  79. package/lib/styles/components/FilePicker.less +8 -0
  80. package/lib/styles/components/ListMenu.less +77 -0
  81. package/lib/styles/components/MapHere.less +91 -0
  82. package/lib/styles/components/MapMarker.less +347 -0
  83. package/lib/styles/components/MapSettings.less +140 -0
  84. package/lib/styles/components/NoData.less +8 -0
  85. package/lib/styles/components/Notification.less +234 -0
  86. package/lib/styles/components/RadioButton.less +173 -0
  87. package/lib/styles/components/Resizer.less +43 -0
  88. package/lib/styles/components/Select.less +287 -0
  89. package/lib/styles/components/Sidebar.less +157 -0
  90. package/lib/styles/components/Slider.less +278 -0
  91. package/lib/styles/components/Spinner.less +49 -0
  92. package/lib/styles/components/StatsWidget.less +111 -0
  93. package/lib/styles/components/SteppedProgressBar.less +310 -0
  94. package/lib/styles/components/SupportMarker.less +34 -0
  95. package/lib/styles/components/Switch.less +145 -0
  96. package/lib/styles/components/TableSettingsDialog.less +96 -0
  97. package/lib/styles/components/TableSortArrows.less +54 -0
  98. package/lib/styles/components/TableToolbar.less +121 -0
  99. package/lib/styles/components/Tag.less +246 -0
  100. package/lib/styles/components/TagManager.less +4 -0
  101. package/lib/styles/components/Teaser.less +12 -0
  102. package/lib/styles/components/Timeline.less +69 -0
  103. package/lib/styles/components/Tooltip.less +222 -0
  104. package/lib/styles/design/alerts.less +55 -0
  105. package/lib/styles/design/aspect-ratio.less +23 -0
  106. package/lib/styles/design/badges.less +120 -0
  107. package/lib/styles/design/blockquote.less +49 -0
  108. package/lib/styles/design/border.less +192 -0
  109. package/lib/styles/design/breadcrumbs.less +20 -0
  110. package/lib/styles/design/button-groups.less +194 -0
  111. package/lib/styles/design/buttons.less +543 -0
  112. package/lib/styles/design/callouts.less +27 -0
  113. package/lib/styles/design/caret.less +28 -0
  114. package/lib/styles/design/close.less +12 -0
  115. package/lib/styles/design/code.less +45 -0
  116. package/lib/styles/design/colors.less +202 -0
  117. package/lib/styles/design/cols.less +56 -0
  118. package/lib/styles/design/container.less +29 -0
  119. package/lib/styles/design/cursors.less +19 -0
  120. package/lib/styles/design/custom.less +20 -0
  121. package/lib/styles/design/ellipsis.less +46 -0
  122. package/lib/styles/design/flexgrid.less +7 -0
  123. package/lib/styles/design/fonts.less +458 -0
  124. package/lib/styles/design/form-input-groups.less +245 -0
  125. package/lib/styles/design/form-inputs.less +655 -0
  126. package/lib/styles/design/iframe.less +80 -0
  127. package/lib/styles/design/images.less +47 -0
  128. package/lib/styles/design/labels.less +66 -0
  129. package/lib/styles/design/list-group.less +100 -0
  130. package/lib/styles/design/navs.less +262 -0
  131. package/lib/styles/design/normalize.less +436 -0
  132. package/lib/styles/design/opacity.less +26 -0
  133. package/lib/styles/design/overflow.less +1 -0
  134. package/lib/styles/design/pagination.less +161 -0
  135. package/lib/styles/design/panels.less +105 -0
  136. package/lib/styles/design/popovers.less +119 -0
  137. package/lib/styles/design/position.less +16 -0
  138. package/lib/styles/design/progress-bars.less +131 -0
  139. package/lib/styles/design/responsive/_imports.less +67 -0
  140. package/lib/styles/design/responsive/backgrounds.less +32 -0
  141. package/lib/styles/design/responsive/display.less +9 -0
  142. package/lib/styles/design/responsive/flexgrid.less +75 -0
  143. package/lib/styles/design/responsive/floating.less +4 -0
  144. package/lib/styles/design/responsive/gap.less +41 -0
  145. package/lib/styles/design/responsive/margin.less +127 -0
  146. package/lib/styles/design/responsive/overflow.less +16 -0
  147. package/lib/styles/design/responsive/padding.less +71 -0
  148. package/lib/styles/design/responsive/position.less +103 -0
  149. package/lib/styles/design/responsive/sizing.less +96 -0
  150. package/lib/styles/design/responsive/text.less +71 -0
  151. package/lib/styles/design/responsive-embed.less +31 -0
  152. package/lib/styles/design/responsive-video.less +22 -0
  153. package/lib/styles/design/rioglyph.less +13 -0
  154. package/lib/styles/design/rounded.less +44 -0
  155. package/lib/styles/design/shadows.less +65 -0
  156. package/lib/styles/design/sizing.less +18 -0
  157. package/lib/styles/design/tables.less +855 -0
  158. package/lib/styles/design/text.less +201 -0
  159. package/lib/styles/design/theme.less +206 -0
  160. package/lib/styles/design/thumbnails.less +29 -0
  161. package/lib/styles/design/transition.less +33 -0
  162. package/lib/styles/design/type.less +159 -0
  163. package/lib/styles/design/utilities.less +75 -0
  164. package/lib/styles/design/visibility.less +186 -0
  165. package/lib/styles/design/wells.less +17 -0
  166. package/lib/styles/design/z-index.less +21 -0
  167. package/lib/styles/filter/_imports.less +1 -0
  168. package/lib/styles/filter/blur.less +17 -0
  169. package/lib/styles/mapping/breakpoint-map.less +44 -0
  170. package/lib/styles/mapping/color-map.less +200 -0
  171. package/lib/styles/mapping/cols-map.less +15 -0
  172. package/lib/styles/mapping/numbers-map.less +16 -0
  173. package/lib/styles/mapping/positions-map.less +21 -0
  174. package/lib/styles/mapping/sizes-map.less +129 -0
  175. package/lib/styles/mapping/spacings-map.less +28 -0
  176. package/lib/styles/mixins/_mixins.less +13 -0
  177. package/lib/styles/mixins/alerts.less +13 -0
  178. package/lib/styles/mixins/border-radius.less +16 -0
  179. package/lib/styles/mixins/buttons.less +117 -0
  180. package/lib/styles/mixins/clearfix.less +9 -0
  181. package/lib/styles/mixins/cols.less +59 -0
  182. package/lib/styles/mixins/forms.less +61 -0
  183. package/lib/styles/mixins/panels.less +27 -0
  184. package/lib/styles/mixins/placeholder.less +17 -0
  185. package/lib/styles/mixins/reset.less +27 -0
  186. package/lib/styles/mixins/sizings.less +21 -0
  187. package/lib/styles/mixins/spinner.less +30 -0
  188. package/lib/styles/mixins/table.less +26 -0
  189. package/lib/styles/mixins/tabs.less +4 -0
  190. package/lib/styles/mixins/text.less +5 -0
  191. package/lib/styles/print/print.less +163 -0
  192. package/lib/styles/rio-uikit-core.less +114 -0
  193. package/lib/styles/rio-uikit-print-utilities.less +16 -0
  194. package/lib/styles/rio-uikit-responsive-utilities.less +16 -0
  195. package/lib/styles/shared/colors.json +56 -0
  196. package/lib/styles/shared/colors.less +73 -0
  197. package/lib/styles/shared/screens.less +7 -0
  198. package/lib/styles/shared/text.less +23 -0
  199. package/lib/styles/variables.less +180 -0
  200. package/lib/themes/BuyButton/styles/rio-buyButton.less +183 -0
  201. package/lib/themes/MAN/styles/man-uikit.less +48 -0
  202. package/lib/themes/RIO/styles/rio-uikit.less +20 -0
  203. package/lib/themes/SCANIA/styles/scania-uikit.less +36 -0
  204. package/lib/themes/Volkswagen/components/applicationHeader/VolkswagenApplicationHeader.js +94 -0
  205. package/lib/themes/Volkswagen/components/applicationHeader/modulePropTypes.js +17 -0
  206. package/lib/themes/Volkswagen/styles/vw-uikit.less +205 -0
  207. package/lib/themes/Website/styles/rio-website.less +2236 -0
  208. package/lib/themes/Xmas/styles/rio-xmas.less +36 -0
  209. package/lib/types.ts +19 -11
  210. package/lib/utils/deviceUtils.js +9 -1
  211. package/lib/version.json +1 -1
  212. package/package.json +96 -95
@@ -11,17 +11,7 @@ exports.default = exports.NavItems = void 0;
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
25
15
 
26
16
  var _react = _interopRequireWildcard(require("react"));
27
17
 
@@ -31,15 +21,9 @@ var _classnames = _interopRequireDefault(require("classnames"));
31
21
 
32
22
  var _head = _interopRequireDefault(require("lodash/fp/head"));
33
23
 
34
- var _includes = _interopRequireDefault(require("lodash/fp/includes"));
35
-
36
24
  var _isEmpty = _interopRequireDefault(require("lodash/fp/isEmpty"));
37
25
 
38
- var _size = _interopRequireDefault(require("lodash/fp/size"));
39
-
40
- var _reactOnclickoutside = _interopRequireDefault(require("react-onclickoutside"));
41
-
42
- var _ApplicationActionBar = require("./ApplicationActionBar");
26
+ var _useClickOutside = _interopRequireDefault(require("../../hooks/useClickOutside"));
43
27
 
44
28
  var _modulePropTypes = _interopRequireDefault(require("./modulePropTypes"));
45
29
 
@@ -47,285 +31,193 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
47
31
 
48
32
  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; }
49
33
 
50
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
51
-
52
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
53
-
54
34
  var collapsedDropdownWidth = 50;
55
-
56
- var NavItems = /*#__PURE__*/function (_Component) {
57
- (0, _inherits2.default)(NavItems, _Component);
58
-
59
- var _super = _createSuper(NavItems);
60
-
61
- function NavItems(props) {
62
- var _this;
63
-
64
- (0, _classCallCheck2.default)(this, NavItems);
65
- _this = _super.call(this, props);
66
- _this.state = {
67
- hasComputed: false,
68
- isCollapsedNavItemOpen: false,
69
- showCollapsedNavItems: false
70
- };
71
- _this.visibleNavItems = [];
72
- _this.collapsedNavItems = [];
73
- _this.resetRenderedNavItems = _this.resetRenderedNavItems.bind((0, _assertThisInitialized2.default)(_this));
74
- _this.handleCollapsedDropdown = _this.handleCollapsedDropdown.bind((0, _assertThisInitialized2.default)(_this));
75
- _this.handleCollapsedNavItemSelected = _this.handleCollapsedNavItemSelected.bind((0, _assertThisInitialized2.default)(_this));
76
- return _this;
77
- }
78
-
79
- (0, _createClass2.default)(NavItems, [{
80
- key: "resetRenderedNavItems",
81
- value: function resetRenderedNavItems() {
82
- this.collapsedNavItems = [];
83
- this.visibleNavItems = [];
84
- } // eslint-disable-next-line camelcase
85
-
86
- }, {
87
- key: "UNSAFE_componentWillReceiveProps",
88
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
89
- if (nextProps !== this.props) {
90
- this.setState(function () {
91
- return {
92
- hasComputed: false
93
- };
94
- });
95
- }
35
+ var paddingLeft = 15;
36
+
37
+ var NavItems = function NavItems(props) {
38
+ var externalNavItems = props.navItems,
39
+ actionBarItems = props.actionBarItems,
40
+ containerWidth = props.containerWidth;
41
+
42
+ var _useState = (0, _react.useState)(false),
43
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
44
+ isCollapsedNavItemOpen = _useState2[0],
45
+ setIsCollapsedNavItemOpen = _useState2[1];
46
+
47
+ var _useState3 = (0, _react.useState)([]),
48
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
49
+ collapsedNavItems = _useState4[0],
50
+ setCollapsedNavItems = _useState4[1];
51
+
52
+ var _useState5 = (0, _react.useState)([]),
53
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
54
+ visibleNavItems = _useState6[0],
55
+ setVisibleNavItems = _useState6[1];
56
+
57
+ var collapsedDropdownRef = (0, _useClickOutside.default)(function () {
58
+ return setIsCollapsedNavItemOpen(false);
59
+ });
60
+ var navigationRef = (0, _react.useRef)();
61
+ var isOffscreen = (0, _react.useRef)(true); // console.log({ containerWidth });
62
+ // Before any new changes are applied
63
+
64
+ (0, _react.useEffect)(function () {
65
+ // After the component received new props, every nav item has to be rendered offscreen
66
+ // again without collapsing them into the dropdown to measure its width
67
+ isOffscreen.current = true;
68
+ }, [externalNavItems, actionBarItems, containerWidth]); // After the component has been rendered
69
+
70
+ (0, _react.useLayoutEffect)(function () {
71
+ // After every nav item was rendered offscreen again we need to recalculate the width
72
+ // of the items again and render the result with possible collapsible dropdown.
73
+ if (isOffscreen.current) {
74
+ computeNavItems();
96
75
  }
97
- }, {
98
- key: "componentDidUpdate",
99
- value: function componentDidUpdate() {
100
- // After the component received new props, every nav item has to be rendered again without
101
- // collapsing them in the dropdown. Since there is no new render cycle triggered,
102
- // we need to recalculate the width of the items again and render trhe result.
103
- if (!this.state.hasComputed) {
104
- this.computeNavItems();
105
- }
106
- }
107
- }, {
108
- key: "getAvailableWidth",
109
- value: function getAvailableWidth(element) {
110
- // Get relevant elements
111
- var parent = element.parentNode;
112
- var actionBar = (0, _head.default)(parent.getElementsByClassName('ApplicationActionBar'));
113
- var actionBarWidth = actionBar && actionBar.childElementCount > 0 ? actionBar.scrollWidth : 0; // Since the collapsed dropdown has not been rendered yet,
114
- // use the fixed with for it to compute available width
115
-
116
- var availableWidth = element.scrollWidth - actionBarWidth - collapsedDropdownWidth;
117
- return availableWidth;
118
- }
119
- }, {
120
- key: "computeNavItems",
121
- value: function computeNavItems() {
122
- var _this2 = this;
123
-
124
- if (this.props.isMobile) {
76
+ });
77
+
78
+ var getAvailableWidth = function getAvailableWidth(element) {
79
+ // Get relevant elements
80
+ // const parent = element.parentNode;
81
+ // const actionBar = head(parent.getElementsByClassName('ApplicationActionBar'));
82
+ // const actionBarWidth = actionBar && actionBar.childElementCount > 0 ? actionBar.scrollWidth : 0;
83
+ // Since the collapsed dropdown has not been rendered yet,
84
+ // use the fixed with for it to compute available width
85
+ var availableWidth = element.scrollWidth - collapsedDropdownWidth - paddingLeft;
86
+ return availableWidth;
87
+ };
88
+
89
+ var computeNavItems = function computeNavItems() {
90
+ var element = navigationRef.current;
91
+ var navItems = (0, _toConsumableArray2.default)(element.children);
92
+ var availableWidth = getAvailableWidth(element);
93
+
94
+ if (availableWidth < 0) {
95
+ return;
96
+ } // Iterate over all rendered navItems to figure out their widths in order to figure out
97
+ // which navItems need to be rendered in the collapsed dropdown
98
+
99
+
100
+ var requiredNavItemsSize = 0;
101
+ var updatedVisibleItems = [];
102
+ var updatedCollapsedItems = [];
103
+ navItems.forEach(function (item) {
104
+ if (!item.className) {
125
105
  return;
126
- }
127
-
128
- var element = this.navigationRef;
129
- var navItems = (0, _toConsumableArray2.default)(element.children);
130
- var availableWidth = this.getAvailableWidth(element);
131
- this.resetRenderedNavItems(); // Iterate over all rendered navItems to figure out their widths in order to figure out
132
- // which navItems need to be rendered in the collapsed dropdown
106
+ } // Calculate the remaining width
133
107
 
134
- var requiredNavItemsSize = 0;
135
- navItems.forEach(function (item) {
136
- if (!item.className) {
137
- return;
138
- } // Calculate the remaining width
139
108
 
109
+ requiredNavItemsSize = requiredNavItemsSize + item.scrollWidth; // console.log({ requiredNavItemsSize });
110
+ // Use the navItems.key to find corresponding navItems for each DOM node
140
111
 
141
- requiredNavItemsSize = requiredNavItemsSize + item.scrollWidth; // Use the navItems.key to find corresponding navItems for each DOM node
142
-
143
- var matchedNavItem = _this2.props.navItems.find(function (navItem) {
144
- var dataAttr = item.attributes['data-nav-item-key'];
145
- return dataAttr && navItem.key === dataAttr.value;
146
- }); // Add navItems to the visible group until the available with exceeds.
147
- // All other navItems will be added to the collapsed group
148
-
149
-
150
- if (availableWidth > requiredNavItemsSize) {
151
- _this2.visibleNavItems.push(matchedNavItem);
152
- } else {
153
- _this2.collapsedNavItems.push(matchedNavItem);
154
- }
155
- }); // Set the state to render the navItems again
156
-
157
- this.setState(function () {
158
- return {
159
- hasComputed: true
160
- };
112
+ var matchedNavItem = externalNavItems.find(function (navItem) {
113
+ var dataAttr = item.attributes['data-nav-item-key'];
114
+ return dataAttr && navItem.key === dataAttr.value;
161
115
  });
162
- }
163
- }, {
164
- key: "handleClickOutside",
165
- value: function handleClickOutside(event) {
166
- if (!event || !event.path) {
116
+
117
+ if (!matchedNavItem) {
167
118
  return;
168
- }
119
+ } // Add navItems to the visible group until the available with exceeds.
120
+ // All other navItems will be added to the collapsed group
169
121
 
170
- var isTargetActionBarItem = event.path.find(function (item) {
171
- return !!item.className && (0, _includes.default)('ActionBarItemIcon', item.className);
172
- });
173
- var isPopoverTarget = event.path.find(function (item) {
174
- return !!item.className && (0, _includes.default)('popover', item.className);
175
- }); // Do not close when any ActionBarItemIcon was clicked but close when a popover is is clicked
176
-
177
- if (!isTargetActionBarItem && this.state.isCollapsedNavItemOpen || isPopoverTarget) {
178
- this.setState(function () {
179
- return {
180
- isCollapsedNavItemOpen: false
181
- };
182
- });
183
- }
184
- }
185
- }, {
186
- key: "handleCollapsedDropdown",
187
- value: function handleCollapsedDropdown() {
188
- // When the dropdown is open, set showCollapsedNavItems to false so all sumodule items
189
- // are rendered and their size can be computed
190
- if (this.state.isCollapsedNavItemOpen) {
191
- this.setState(function () {
192
- return {
193
- isCollapsedNavItemOpen: false
194
- };
195
- });
122
+
123
+ if (availableWidth > requiredNavItemsSize) {
124
+ updatedVisibleItems.push(matchedNavItem);
196
125
  } else {
197
- // When the dropdown is closed, just set the flag to open is enough
198
- this.setState(function () {
199
- return {
200
- isCollapsedNavItemOpen: true
201
- };
202
- });
126
+ updatedCollapsedItems.push(matchedNavItem);
203
127
  }
128
+ }); // Set the state to render the navItems again
129
+
130
+ isOffscreen.current = false;
131
+ setVisibleNavItems(updatedVisibleItems);
132
+ setCollapsedNavItems(updatedCollapsedItems);
133
+ };
134
+
135
+ var handleCollapsedDropdown = function handleCollapsedDropdown() {
136
+ // When the dropdown is open, set showCollapsedNavItems to false so all submodule items
137
+ // are rendered and their size can be computed
138
+ if (isCollapsedNavItemOpen) {
139
+ setIsCollapsedNavItemOpen(false);
140
+ } else {
141
+ // When the dropdown is closed, just set the flag to open is enough
142
+ setIsCollapsedNavItemOpen(true);
204
143
  }
205
- }, {
206
- key: "handleCollapsedNavItemSelected",
207
- value: function handleCollapsedNavItemSelected() {
208
- // Close collapsed dropdown on item select
209
- if (this.state.isCollapsedNavItemOpen) {
210
- this.setState(function () {
211
- return {
212
- isCollapsedNavItemOpen: false
213
- };
214
- });
215
- }
144
+ };
145
+
146
+ var handleCollapsedNavItemSelected = function handleCollapsedNavItemSelected() {
147
+ // Close collapsed dropdown on item select
148
+ if (isCollapsedNavItemOpen) {
149
+ setIsCollapsedNavItemOpen(false);
216
150
  }
217
- }, {
218
- key: "renderCollapsedNavItem",
219
- value: function renderCollapsedNavItem(collapsedNavItems) {
220
- var _this3 = this;
221
-
222
- var _this$props = this.props,
223
- isMobile = _this$props.isMobile,
224
- containerWidth = _this$props.containerWidth,
225
- actionBarItems = _this$props.actionBarItems;
226
- var collapsedDropdownClass = this.state.isCollapsedNavItemOpen ? 'open' : '';
227
- var inlineStyle = isMobile ? {
228
- width: "".concat(containerWidth, "px")
229
- } : {};
230
-
231
- if (!collapsedNavItems.length && !actionBarItems.length) {
232
- return null;
233
- }
151
+ };
234
152
 
235
- return /*#__PURE__*/_react.default.createElement("li", {
236
- className: "CollapsedDropdown dropdown ".concat(collapsedDropdownClass),
237
- key: 'collapsed-dropdown'
238
- }, /*#__PURE__*/_react.default.createElement("a", {
239
- id: "basic-nav-dropdown",
240
- role: "button",
241
- className: "dropdown-toggle",
242
- "aria-haspopup": "true",
243
- "aria-expanded": "true",
244
- onClick: this.handleCollapsedDropdown
245
- }, /*#__PURE__*/_react.default.createElement("span", {
246
- className: "rioglyph rioglyph-option-horizontal",
247
- "aria-hidden": "true"
248
- })), /*#__PURE__*/_react.default.createElement("ul", {
249
- className: 'dropdown-menu',
250
- role: "menu",
251
- "aria-labelledby": "basic-nav-dropdown",
252
- style: inlineStyle
253
- }, /*#__PURE__*/_react.default.createElement(_ApplicationActionBar.ApplicationActionBar, {
254
- items: this.props.actionBarItems
255
- }), collapsedNavItems.map(function (navItem) {
256
- return /*#__PURE__*/_react.default.createElement("li", {
257
- key: navItem.key,
258
- className: 'submodule nav-link-item',
259
- onClick: _this3.handleCollapsedNavItemSelected,
260
- "data-nav-item-key": navItem.key
261
- }, navItem.route);
262
- })));
153
+ var renderCollapsedNavItem = function renderCollapsedNavItem(navItems) {
154
+ var collapsedDropdownClass = isCollapsedNavItemOpen ? 'open' : '';
155
+
156
+ if ((0, _isEmpty.default)(navItems) && (0, _isEmpty.default)(actionBarItems)) {
157
+ return null;
263
158
  }
264
- }, {
265
- key: "renderNavItem",
266
- value: function renderNavItem(navItem, isOffscreen) {
159
+
160
+ return /*#__PURE__*/_react.default.createElement("li", {
161
+ className: "CollapsedDropdown dropdown ".concat(collapsedDropdownClass),
162
+ key: "collapsed-dropdown",
163
+ ref: collapsedDropdownRef
164
+ }, /*#__PURE__*/_react.default.createElement("a", {
165
+ id: "basic-nav-dropdown",
166
+ role: "button",
167
+ className: "dropdown-toggle text-color-gray",
168
+ "aria-haspopup": "true",
169
+ "aria-expanded": "true",
170
+ onClick: handleCollapsedDropdown
171
+ }, /*#__PURE__*/_react.default.createElement("span", {
172
+ className: "rioglyph rioglyph-option-horizontal",
173
+ "aria-hidden": "true"
174
+ })), /*#__PURE__*/_react.default.createElement("ul", {
175
+ className: "dropdown-menu",
176
+ role: "menu",
177
+ "aria-labelledby": "basic-nav-dropdown"
178
+ }, navItems.map(function (navItem) {
267
179
  return /*#__PURE__*/_react.default.createElement("li", {
268
180
  key: navItem.key,
269
- className: "submodule nav-link-item ".concat(isOffscreen ? 'offscreen' : ''),
181
+ className: "submodule",
182
+ onClick: handleCollapsedNavItemSelected,
270
183
  "data-nav-item-key": navItem.key
271
184
  }, navItem.route);
272
- }
273
- }, {
274
- key: "renderNavItems",
275
- value: function renderNavItems() {
276
- var _this4 = this;
277
-
278
- var _this$props2 = this.props,
279
- isMobile = _this$props2.isMobile,
280
- navItems = _this$props2.navItems,
281
- actionBarItems = _this$props2.actionBarItems;
282
- var isOffscreen = !this.state.hasComputed;
283
- var hasNavItems = !(0, _isEmpty.default)(navItems);
284
- var hasSingleActionItem = (0, _size.default)(actionBarItems) === 1;
285
-
286
- if (isMobile) {
287
- return !hasNavItems && hasSingleActionItem ? /*#__PURE__*/_react.default.createElement(_ApplicationActionBar.ApplicationActionBar, {
288
- items: actionBarItems,
289
- className: 'position-relative'
290
- }) : this.renderCollapsedNavItem(navItems);
291
- }
292
-
293
- if (!isOffscreen && this.collapsedNavItems.length) {
294
- var items = this.visibleNavItems.map(function (navItem) {
295
- return _this4.renderNavItem(navItem, isOffscreen);
296
- });
297
- items.push(this.renderCollapsedNavItem(this.collapsedNavItems));
298
- return items;
299
- }
300
-
301
- return navItems.map(function (navItem) {
302
- return _this4.renderNavItem(navItem, isOffscreen);
185
+ })));
186
+ };
187
+
188
+ var renderNavItem = function renderNavItem(navItem, isItemOffscreen) {
189
+ return /*#__PURE__*/_react.default.createElement("li", {
190
+ key: navItem.key,
191
+ className: "submodule ".concat(isItemOffscreen ? 'offscreen' : ''),
192
+ "data-nav-item-key": navItem.key
193
+ }, navItem.route);
194
+ };
195
+
196
+ var renderNavItems = function renderNavItems() {
197
+ if (!isOffscreen.current && !(0, _isEmpty.default)(collapsedNavItems)) {
198
+ var visibleItems = visibleNavItems.map(function (navItem) {
199
+ return renderNavItem(navItem, isOffscreen.current);
303
200
  });
201
+ return [].concat((0, _toConsumableArray2.default)(visibleItems), [renderCollapsedNavItem(collapsedNavItems)]);
304
202
  }
305
- }, {
306
- key: "render",
307
- value: function render() {
308
- var _this5 = this;
309
-
310
- // As all navItems need to be added to the DOM first in order to get their real size
311
- // the computation wheather a navItem need to be shown under the collapsed dropdown or not
312
- // needs to be done after the component did mount to the DOM.
313
- var classes = (0, _classnames.default)('SubmoduleNavigation', 'NavItems', 'nav', 'navbar-nav');
314
- return /*#__PURE__*/_react.default.createElement("ul", {
315
- className: classes,
316
- ref: function ref(node) {
317
- return _this5.navigationRef = node;
318
- }
319
- }, this.renderNavItems());
320
- }
321
- }]);
322
- return NavItems;
323
- }(_react.Component);
324
203
 
325
- exports.NavItems = NavItems;
204
+ return externalNavItems.map(function (navItem) {
205
+ return renderNavItem(navItem, isOffscreen.current);
206
+ });
207
+ }; // As all navItems need to be added to the DOM first in order to get their real size
208
+ // the computation wheather a navItem need to be shown under the collapsed dropdown or not
209
+ // needs to be done after the component did mount to the DOM.
326
210
 
327
- var _default = (0, _reactOnclickoutside.default)(NavItems);
328
211
 
212
+ var classes = (0, _classnames.default)('SubmoduleNavigation', 'nav');
213
+ return /*#__PURE__*/_react.default.createElement("ul", {
214
+ className: classes,
215
+ ref: navigationRef
216
+ }, renderNavItems());
217
+ };
218
+
219
+ exports.NavItems = NavItems;
220
+ var _default = NavItems;
329
221
  exports.default = _default;
330
222
  NavItems.defaultProps = {
331
223
  navItems: [],
@@ -333,5 +225,6 @@ NavItems.defaultProps = {
333
225
  };
334
226
  NavItems.propTypes = {
335
227
  navItems: _propTypes.default.arrayOf(_modulePropTypes.default),
336
- containerWidth: _propTypes.default.number.isRequired
228
+ containerWidth: _propTypes.default.number.isRequired,
229
+ actionBarItems: _propTypes.default.arrayOf(_propTypes.default.node)
337
230
  };
@@ -19,8 +19,6 @@ var _debounce = _interopRequireDefault(require("lodash/fp/debounce"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _ApplicationLayoutBodyBottomBar = require("./ApplicationLayoutBodyBottomBar");
23
-
24
22
  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); }
25
23
 
26
24
  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; }
@@ -71,7 +69,7 @@ var ApplicationLayoutBody = function ApplicationLayoutBody(props) {
71
69
  className: classes
72
70
  }, /*#__PURE__*/_react.default.createElement("div", {
73
71
  className: "module-content-wrapper"
74
- }, banner && banner, navigation && navigation, /*#__PURE__*/_react.default.createElement("div", {
72
+ }, navigation && navigation, banner && banner, /*#__PURE__*/_react.default.createElement("div", {
75
73
  className: innerClasses,
76
74
  onScroll: handleScroll,
77
75
  ref: moduleContentRef
@@ -0,0 +1,60 @@
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.SubNavigation = 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 _excluded = ["className", "navItems", "right"];
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
28
+ var SubNavigation = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
29
+ var className = props.className,
30
+ navItems = props.navItems,
31
+ right = props.right,
32
+ remainingProps = (0, _objectWithoutProperties2.default)(props, _excluded);
33
+ var navigationClasses = (0, _classnames.default)('SubNavigation', 'width-100pct display-flex align-items-center justify-content-between overflow-auto', className);
34
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
35
+ ref: ref
36
+ }, remainingProps, {
37
+ className: navigationClasses
38
+ }), /*#__PURE__*/_react.default.createElement("ul", {
39
+ className: "SubmoduleNavigation nav"
40
+ }, navItems.map(function (navItem) {
41
+ return /*#__PURE__*/_react.default.createElement("li", {
42
+ className: "submodule",
43
+ key: navItem.key,
44
+ "data-nav-item-key": navItem.key
45
+ }, navItem.route);
46
+ })));
47
+ });
48
+ exports.SubNavigation = SubNavigation;
49
+ SubNavigation.defaultProps = {
50
+ navItems: []
51
+ };
52
+ SubNavigation.propTypes = {
53
+ navItems: _propTypes.default.arrayOf(_propTypes.default.shape({
54
+ key: _propTypes.default.string.isRequired,
55
+ route: _propTypes.default.node.isRequired
56
+ })),
57
+ className: _propTypes.default.string
58
+ };
59
+ var _default = SubNavigation;
60
+ exports.default = _default;
@@ -21,8 +21,6 @@ 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
-
26
24
  var _Resizer = _interopRequireDefault(require("../resizer/Resizer"));
27
25
 
28
26
  var _TreeSidebar = _interopRequireDefault(require("./TreeSidebar"));
@@ -112,7 +110,7 @@ var AssetTree = /*#__PURE__*/(0, _react.memo)(function (props) {
112
110
  (0, _react.useEffect)(function () {
113
111
  return setSidebarMode(getSidebarMode(fly));
114
112
  }, [fly]);
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');
113
+ var classes = (0, _classnames.default)('AssetTree', className, !isOpen && 'closed', bordered && 'panel panel-default', sidebarMode === AssetTree.MODE_FLY ? 'fly' : 'fluid');
116
114
  var resizeLimitClasses = (0, _classnames.default)('AssetTreeResizeLimit', isResize && 'display-block');
117
115
  var resizeIndicatorPosition = maxWidth || window.innerWidth * 0.5;
118
116
  var resizeLimitStyle = {
@@ -179,14 +177,13 @@ var AssetTree = /*#__PURE__*/(0, _react.memo)(function (props) {
179
177
  className: resizeLimitClasses,
180
178
  style: resizeLimitStyle
181
179
  }), /*#__PURE__*/_react.default.createElement("div", {
182
- className: "AssetTreeContent"
180
+ className: 'AssetTreeContent'
183
181
  }, /*#__PURE__*/_react.default.createElement(_TreeSidebar.default, {
184
182
  onSelectCategory: handleSelectCategory,
185
183
  currentCategoryId: currentCategoryId,
186
- onClick: handleToggleTreeContent,
187
- isOpen: isOpen
184
+ onClick: handleToggleTreeContent
188
185
  }, (0, _isArray.default)(children) ? children : [children]), /*#__PURE__*/_react.default.createElement("div", {
189
- className: "AssetTreeBody"
186
+ className: 'AssetTreeBody'
190
187
  }, useOffscreen ? renderTreesOffscreen(children, categoryId) : category)), resizable && isOpen && /*#__PURE__*/_react.default.createElement(_Resizer.default, {
191
188
  onResizeStart: handleResizeStart,
192
189
  onResize: handleResize,