@rio-cloud/rio-uikit 0.16.1-beta-7 → 0.16.1-beta-8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/applicationHeader/ApplicationHeader.js +6 -6
- package/lib/components/applicationHeader/NavItems.js +8 -8
- package/lib/components/applicationLayout/ApplicationLayoutBody.js +1 -3
- package/lib/components/applicationLayout/SubNavigation.js +60 -0
- package/lib/components/assetTree/AssetTree.js +4 -7
- package/lib/components/assetTree/Tree.js +46 -54
- package/lib/components/assetTree/TreeSidebar.js +10 -22
- package/lib/components/assetTree/TypeCounter.js +8 -6
- package/lib/es/DeviceUtils.d.ts +5 -1
- package/lib/es/SubNavigation.d.ts +5 -0
- package/lib/es/SubNavigation.js +15 -0
- package/lib/es/deviceUtils.js +24 -0
- package/lib/hooks/useClickOutside.js +2 -1
- package/lib/style/css/_exports/rio-website.less +6 -0
- package/lib/style/css/_exports/vw-uikit.less +1 -1
- package/lib/style/css/components/ApplicationHeader.less +242 -245
- package/lib/style/css/components/ApplicationLayout.less +7 -5
- package/lib/style/css/components/AssetTree.less +1 -1
- package/lib/types.ts +7 -1
- package/lib/utils/deviceUtils.js +9 -1
- package/lib/version.json +1 -1
- package/package.json +1 -1
|
@@ -46,7 +46,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
46
46
|
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; } }
|
|
47
47
|
|
|
48
48
|
var RESIZE_THROTTELING = 10;
|
|
49
|
-
var MOBILE_MAX_WIDTH = 580; //const COLLAPSED_DROPDOWN_WIDTH = 50;
|
|
49
|
+
var MOBILE_MAX_WIDTH = 580; // const COLLAPSED_DROPDOWN_WIDTH = 50;
|
|
50
50
|
|
|
51
51
|
var ApplicationHeader = /*#__PURE__*/function (_PureComponent) {
|
|
52
52
|
(0, _inherits2.default)(ApplicationHeader, _PureComponent);
|
|
@@ -71,10 +71,10 @@ var ApplicationHeader = /*#__PURE__*/function (_PureComponent) {
|
|
|
71
71
|
(0, _createClass2.default)(ApplicationHeader, [{
|
|
72
72
|
key: "isMobile",
|
|
73
73
|
value: function isMobile() {
|
|
74
|
-
//const node = this.navRef;
|
|
74
|
+
// const node = this.navRef;
|
|
75
75
|
// FIXME: collision check need to be done after second rendering of NavItems
|
|
76
76
|
|
|
77
|
-
/*let isColliding = false;
|
|
77
|
+
/* let isColliding = false;
|
|
78
78
|
// check for collision of NavItems and ActionBar
|
|
79
79
|
if (this.refNavItems && this.refActionBar) {
|
|
80
80
|
const navItemsNode = ReactDOM.findDOMNode(this.refNavItems);
|
|
@@ -92,14 +92,14 @@ var ApplicationHeader = /*#__PURE__*/function (_PureComponent) {
|
|
|
92
92
|
}
|
|
93
93
|
}*/
|
|
94
94
|
return (
|
|
95
|
-
/*isColliding || */
|
|
95
|
+
/* isColliding || */
|
|
96
96
|
this.getContainerWidth() < MOBILE_MAX_WIDTH && this.props.label
|
|
97
97
|
);
|
|
98
98
|
}
|
|
99
99
|
}, {
|
|
100
100
|
key: "getContainerWidth",
|
|
101
101
|
value: function getContainerWidth() {
|
|
102
|
-
//return this.navRef.clientWidth;
|
|
102
|
+
// return this.navRef.clientWidth;
|
|
103
103
|
return window.innerWidth;
|
|
104
104
|
}
|
|
105
105
|
}, {
|
|
@@ -152,7 +152,7 @@ var ApplicationHeader = /*#__PURE__*/function (_PureComponent) {
|
|
|
152
152
|
appMenuItems = _this$props.appMenuItems,
|
|
153
153
|
navItems = _this$props.navItems,
|
|
154
154
|
actionBarItems = _this$props.actionBarItems;
|
|
155
|
-
var classNames = (0, _classnames.default)('ApplicationHeader', '
|
|
155
|
+
var classNames = (0, _classnames.default)('ApplicationHeader', 'user-select-none', this.state.isMobile && 'mobile', className && className);
|
|
156
156
|
|
|
157
157
|
var renderNavItems = /*#__PURE__*/_react.default.createElement(_NavItems.default, {
|
|
158
158
|
key: "NavItems",
|
|
@@ -234,11 +234,11 @@ var NavItems = /*#__PURE__*/function (_Component) {
|
|
|
234
234
|
|
|
235
235
|
return /*#__PURE__*/_react.default.createElement("li", {
|
|
236
236
|
className: "CollapsedDropdown dropdown ".concat(collapsedDropdownClass),
|
|
237
|
-
key:
|
|
237
|
+
key: "collapsed-dropdown"
|
|
238
238
|
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
239
239
|
id: "basic-nav-dropdown",
|
|
240
240
|
role: "button",
|
|
241
|
-
className: "dropdown-toggle",
|
|
241
|
+
className: "dropdown-toggle text-color-gray",
|
|
242
242
|
"aria-haspopup": "true",
|
|
243
243
|
"aria-expanded": "true",
|
|
244
244
|
onClick: this.handleCollapsedDropdown
|
|
@@ -246,16 +246,16 @@ var NavItems = /*#__PURE__*/function (_Component) {
|
|
|
246
246
|
className: "rioglyph rioglyph-option-horizontal",
|
|
247
247
|
"aria-hidden": "true"
|
|
248
248
|
})), /*#__PURE__*/_react.default.createElement("ul", {
|
|
249
|
-
className:
|
|
249
|
+
className: "dropdown-menu",
|
|
250
250
|
role: "menu",
|
|
251
251
|
"aria-labelledby": "basic-nav-dropdown",
|
|
252
252
|
style: inlineStyle
|
|
253
|
-
}, /*#__PURE__*/_react.default.createElement(_ApplicationActionBar.ApplicationActionBar, {
|
|
253
|
+
}, isMobile && /*#__PURE__*/_react.default.createElement(_ApplicationActionBar.ApplicationActionBar, {
|
|
254
254
|
items: this.props.actionBarItems
|
|
255
255
|
}), collapsedNavItems.map(function (navItem) {
|
|
256
256
|
return /*#__PURE__*/_react.default.createElement("li", {
|
|
257
257
|
key: navItem.key,
|
|
258
|
-
className:
|
|
258
|
+
className: "submodule",
|
|
259
259
|
onClick: _this3.handleCollapsedNavItemSelected,
|
|
260
260
|
"data-nav-item-key": navItem.key
|
|
261
261
|
}, navItem.route);
|
|
@@ -266,7 +266,7 @@ var NavItems = /*#__PURE__*/function (_Component) {
|
|
|
266
266
|
value: function renderNavItem(navItem, isOffscreen) {
|
|
267
267
|
return /*#__PURE__*/_react.default.createElement("li", {
|
|
268
268
|
key: navItem.key,
|
|
269
|
-
className: "submodule
|
|
269
|
+
className: "submodule ".concat(isOffscreen ? 'offscreen' : ''),
|
|
270
270
|
"data-nav-item-key": navItem.key
|
|
271
271
|
}, navItem.route);
|
|
272
272
|
}
|
|
@@ -286,7 +286,7 @@ var NavItems = /*#__PURE__*/function (_Component) {
|
|
|
286
286
|
if (isMobile) {
|
|
287
287
|
return !hasNavItems && hasSingleActionItem ? /*#__PURE__*/_react.default.createElement(_ApplicationActionBar.ApplicationActionBar, {
|
|
288
288
|
items: actionBarItems,
|
|
289
|
-
className:
|
|
289
|
+
className: "position-relative"
|
|
290
290
|
}) : this.renderCollapsedNavItem(navItems);
|
|
291
291
|
}
|
|
292
292
|
|
|
@@ -310,7 +310,7 @@ var NavItems = /*#__PURE__*/function (_Component) {
|
|
|
310
310
|
// As all navItems need to be added to the DOM first in order to get their real size
|
|
311
311
|
// the computation wheather a navItem need to be shown under the collapsed dropdown or not
|
|
312
312
|
// needs to be done after the component did mount to the DOM.
|
|
313
|
-
var classes = (0, _classnames.default)('SubmoduleNavigation', '
|
|
313
|
+
var classes = (0, _classnames.default)('SubmoduleNavigation', 'nav');
|
|
314
314
|
return /*#__PURE__*/_react.default.createElement("ul", {
|
|
315
315
|
className: classes,
|
|
316
316
|
ref: function ref(node) {
|
|
@@ -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
|
-
},
|
|
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',
|
|
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:
|
|
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:
|
|
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,
|
|
@@ -57,6 +57,8 @@ var _omit = _interopRequireDefault(require("lodash/fp/omit"));
|
|
|
57
57
|
|
|
58
58
|
var _negate = _interopRequireDefault(require("lodash/fp/negate"));
|
|
59
59
|
|
|
60
|
+
var _keys = _interopRequireDefault(require("lodash/fp/keys"));
|
|
61
|
+
|
|
60
62
|
var _TreeSearch = _interopRequireDefault(require("./TreeSearch"));
|
|
61
63
|
|
|
62
64
|
var _TreeSelectAll = _interopRequireDefault(require("./TreeSelectAll"));
|
|
@@ -86,15 +88,16 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
86
88
|
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; }
|
|
87
89
|
|
|
88
90
|
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';
|
|
94
91
|
var otherwise = _stubTrue.default;
|
|
95
92
|
var notEqual = (0, _negate.default)(_isEqual.default);
|
|
96
93
|
var notEmpty = (0, _negate.default)(_isEmpty.default);
|
|
97
94
|
|
|
95
|
+
var Divider = function Divider() {
|
|
96
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
97
|
+
className: 'TreeSelectAllDivider bg-light width-2 height-15 ' + 'margin-top-2 margin-bottom-0 margin-left-10 margin-right-10'
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
|
|
98
101
|
var isNameObject = function isNameObject(item) {
|
|
99
102
|
return (0, _isObject.default)(item.name);
|
|
100
103
|
};
|
|
@@ -383,12 +386,13 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
383
386
|
previousGroups.current = groups;
|
|
384
387
|
var typeCounts = getAssetTypeCounts(items);
|
|
385
388
|
dispatch(assetCounted(typeCounts));
|
|
386
|
-
|
|
389
|
+
var allChecked = checkAllSelected({
|
|
387
390
|
items: items,
|
|
388
391
|
groups: groups,
|
|
389
392
|
selectedItems: selectedItems,
|
|
390
393
|
selectedGroups: selectedGroups
|
|
391
|
-
}, state.flatItems)
|
|
394
|
+
}, state.flatItems);
|
|
395
|
+
dispatch(allCheckedChanged(allChecked)); // Get the distinct asset types from the asset list that is passed into the component
|
|
392
396
|
// to know which asset type counter to render
|
|
393
397
|
|
|
394
398
|
dispatch(visibleTypeCountersChanged(Object.keys(typeCounts)));
|
|
@@ -406,24 +410,37 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
406
410
|
}
|
|
407
411
|
}, [state.searchValue]);
|
|
408
412
|
(0, _react.useEffect)(function () {
|
|
409
|
-
makeTree(groups, items);
|
|
410
|
-
}, [
|
|
413
|
+
return makeTree(groups, items);
|
|
414
|
+
}, [state.typeFilter]); // Update tree when empty groups are toggled from outside
|
|
415
|
+
|
|
411
416
|
(0, _react.useEffect)(function () {
|
|
412
|
-
makeTree(groups, items);
|
|
413
|
-
}, [
|
|
417
|
+
return makeTree(groups, items);
|
|
418
|
+
}, [showEmptyGroups]); // Update "select all" state from outside when groups are selected outside programatically
|
|
419
|
+
// without using the "select all" checkbox
|
|
420
|
+
|
|
421
|
+
(0, _react.useEffect)(function () {
|
|
422
|
+
var numOfAllGroups = (0, _size.default)(groups);
|
|
423
|
+
var numOfSelectedGroups = (0, _size.default)(selectedGroups);
|
|
424
|
+
|
|
425
|
+
if (numOfSelectedGroups !== numOfAllGroups && state.allChecked) {
|
|
426
|
+
dispatch(allCheckedChanged(false));
|
|
427
|
+
} else if (numOfSelectedGroups === numOfAllGroups && !state.allChecked) {
|
|
428
|
+
dispatch(allCheckedChanged(true));
|
|
429
|
+
}
|
|
430
|
+
}, [selectedGroups]);
|
|
414
431
|
|
|
415
432
|
var checkAllSelected = function checkAllSelected(updatedProps, flatItems) {
|
|
416
433
|
var updatedItems = updatedProps.items,
|
|
417
434
|
updatedGroups = updatedProps.groups,
|
|
418
435
|
updatedSelectedItems = updatedProps.selectedItems,
|
|
419
|
-
|
|
436
|
+
updatedSelectedGroups = updatedProps.selectedGroups;
|
|
420
437
|
|
|
421
|
-
if (!hasGroups() && (0, _isEmpty.default)(updatedSelectedItems) || hasNoSearchAndGroups() && (0, _isEmpty.default)(
|
|
438
|
+
if (!hasGroups() && (0, _isEmpty.default)(updatedSelectedItems) || hasNoSearchAndGroups() && (0, _isEmpty.default)(updatedSelectedGroups) || hasSearchAndGroups() && (0, _isEmpty.default)(updatedSelectedItems)) {
|
|
422
439
|
return false;
|
|
423
440
|
}
|
|
424
441
|
|
|
425
442
|
if (hasNoSearchAndGroups()) {
|
|
426
|
-
var unselectedGroups = (0, _filter.default)(filterOutByItemId(
|
|
443
|
+
var unselectedGroups = (0, _filter.default)(filterOutByItemId(updatedSelectedGroups))(updatedGroups);
|
|
427
444
|
return (0, _isEmpty.default)(unselectedGroups);
|
|
428
445
|
} else if (hasSearchAndGroups()) {
|
|
429
446
|
var unselectedSearchItems = (0, _filter.default)(filterOutByItemId(updatedSelectedItems))(flatItems);
|
|
@@ -685,7 +702,8 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
685
702
|
dispatch(typeFilterChanged((0, _toConsumableArray2.default)(currentTypeFilter)));
|
|
686
703
|
};
|
|
687
704
|
|
|
688
|
-
var
|
|
705
|
+
var isClickable = (0, _size.default)((0, _keys.default)(state.assetCounts)) > 1;
|
|
706
|
+
var isFilterActive = notEmpty(state.typeFilter);
|
|
689
707
|
var showTreeHead = !hideTreeHead;
|
|
690
708
|
var showSelectAll = !hideSelectAll;
|
|
691
709
|
var showSearch = !hideSearch;
|
|
@@ -707,46 +725,20 @@ var Tree = /*#__PURE__*/_react.default.memo(function (props) {
|
|
|
707
725
|
isEnabled: hasMultiselect,
|
|
708
726
|
isIndeterminate: isIndeterminate,
|
|
709
727
|
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'
|
|
712
|
-
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
728
|
+
}), showSelectAll && hasMultiselect && showSummary && /*#__PURE__*/_react.default.createElement(Divider, null), /*#__PURE__*/_react.default.createElement("div", {
|
|
713
729
|
className: "display-flex justify-content-between align-items-center width-100pct"
|
|
714
|
-
}, showSummary ? summary || /*#__PURE__*/_react.default.createElement(_TreeSummary.default, null,
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
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, {
|
|
730
|
+
}, showSummary ? summary || /*#__PURE__*/_react.default.createElement(_TreeSummary.default, null, (0, _map.default)(function (typeCounter) {
|
|
731
|
+
return /*#__PURE__*/_react.default.createElement(_TypeCounter.default, {
|
|
732
|
+
key: typeCounter,
|
|
733
|
+
type: typeCounter,
|
|
734
|
+
icon: "".concat(typeCounter),
|
|
735
|
+
value: state.assetCounts[typeCounter],
|
|
736
|
+
onClick: handleFilterByType,
|
|
737
|
+
isActive: state.typeFilter.includes(typeCounter),
|
|
738
|
+
hasFilter: isFilterActive,
|
|
739
|
+
enableActivity: isClickable
|
|
740
|
+
});
|
|
741
|
+
})(state.visibleTypeCounters)) : null, /*#__PURE__*/_react.default.createElement(_TreeOptions.default, {
|
|
750
742
|
treeOptions: treeOptions
|
|
751
743
|
})))), /*#__PURE__*/_react.default.createElement(_TreeRoot.default, {
|
|
752
744
|
maxHeight: scrollHeight
|
|
@@ -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"];
|
|
23
23
|
var ACTIVE_CLASS_NAME = 'active';
|
|
24
24
|
var SELECTED_CLASS_NAME = 'selected';
|
|
25
25
|
var LABEL_TOOLTIP_DELAY = 1500;
|
|
@@ -44,7 +44,7 @@ var TreeSidebarCategories = function TreeSidebarCategories(_ref) {
|
|
|
44
44
|
onClick: handleSelectCategory,
|
|
45
45
|
className: statusClassName
|
|
46
46
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
47
|
-
className:
|
|
47
|
+
className: 'selection-bubble'
|
|
48
48
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
49
49
|
className: "rioglyph ".concat(icon)
|
|
50
50
|
})));
|
|
@@ -57,8 +57,8 @@ var TreeSidebarCategories = function TreeSidebarCategories(_ref) {
|
|
|
57
57
|
placement: _Tooltip.default.RIGHT,
|
|
58
58
|
delayShow: LABEL_TOOLTIP_DELAY,
|
|
59
59
|
overlay: /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
|
|
60
|
-
id:
|
|
61
|
-
width:
|
|
60
|
+
id: 'tooltip',
|
|
61
|
+
width: 'auto'
|
|
62
62
|
}, tooltip)
|
|
63
63
|
}, category);
|
|
64
64
|
}
|
|
@@ -70,30 +70,19 @@ 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,
|
|
74
73
|
remainingProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
75
|
-
var classes = (0, _classnames.default)('TreeSidebar',
|
|
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
|
-
|
|
74
|
+
var classes = (0, _classnames.default)('TreeSidebar', className);
|
|
86
75
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
87
76
|
className: classes
|
|
88
|
-
},
|
|
89
|
-
className:
|
|
77
|
+
}, /*#__PURE__*/_react.default.createElement("ul", {
|
|
78
|
+
className: 'TreeSidebarNavigation',
|
|
90
79
|
onClick: onClick
|
|
91
80
|
}, /*#__PURE__*/_react.default.createElement(TreeSidebarCategories, remainingProps)), /*#__PURE__*/_react.default.createElement("div", {
|
|
92
|
-
className:
|
|
81
|
+
className: 'TreeSidebarToggle',
|
|
93
82
|
onClick: onClick
|
|
94
83
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
95
|
-
className:
|
|
96
|
-
})))
|
|
84
|
+
className: 'rioglyph rioglyph-chevron-left'
|
|
85
|
+
})));
|
|
97
86
|
});
|
|
98
87
|
|
|
99
88
|
TreeSidebar.displayName = 'TreeSidebar';
|
|
@@ -104,7 +93,6 @@ TreeSidebar.propTypes = {
|
|
|
104
93
|
currentCategoryId: _propTypes.default.string,
|
|
105
94
|
children: _propTypes.default.arrayOf(_propTypes.default.node),
|
|
106
95
|
onClick: _propTypes.default.func.isRequired,
|
|
107
|
-
isOpen: _propTypes.default.bool,
|
|
108
96
|
className: _propTypes.default.string
|
|
109
97
|
};
|
|
110
98
|
var _default = TreeSidebar;
|
|
@@ -17,25 +17,23 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
17
17
|
|
|
18
18
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
19
|
|
|
20
|
-
var _excluded = ["icon", "value", "isActive", "enableActivity", "onClick", "type", "hideOnZero"];
|
|
20
|
+
var _excluded = ["icon", "value", "isActive", "hasFilter", "enableActivity", "onClick", "type", "hideOnZero"];
|
|
21
21
|
|
|
22
22
|
var TypeCounter = function TypeCounter(props) {
|
|
23
23
|
var icon = props.icon,
|
|
24
24
|
value = props.value,
|
|
25
25
|
isActive = props.isActive,
|
|
26
|
+
hasFilter = props.hasFilter,
|
|
26
27
|
enableActivity = props.enableActivity,
|
|
27
28
|
onClick = props.onClick,
|
|
28
29
|
type = props.type,
|
|
29
30
|
hideOnZero = props.hideOnZero,
|
|
30
31
|
remainingProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
31
|
-
var
|
|
32
|
-
var wrapperClassName = (0, _classnames.default)('TypeCounter', 'user-select-none margin-right-15', isClickable && 'cursor-pointer', enableActivity && !isActive && 'opacity-50');
|
|
32
|
+
var wrapperClassName = (0, _classnames.default)('TypeCounter', 'user-select-none margin-right-15', enableActivity ? 'cursor-pointer' : 'pointer-events-none', enableActivity && hasFilter && !isActive && 'opacity-50');
|
|
33
33
|
var counterClassNames = (0, _classnames.default)('TreeLabelCount', 'margin-left-3', 'label label-condensed', isActive ? 'label-primary' : 'label-muted label-filled');
|
|
34
34
|
|
|
35
35
|
var handleClick = function handleClick() {
|
|
36
|
-
|
|
37
|
-
onClick(type);
|
|
38
|
-
}
|
|
36
|
+
return onClick(type);
|
|
39
37
|
};
|
|
40
38
|
|
|
41
39
|
if (hideOnZero && !value) {
|
|
@@ -58,7 +56,11 @@ TypeCounter.defaultProps = {
|
|
|
58
56
|
TypeCounter.propTypes = {
|
|
59
57
|
type: _propTypes.default.string,
|
|
60
58
|
icon: _propTypes.default.string,
|
|
59
|
+
// Highlights the current active filter
|
|
61
60
|
isActive: _propTypes.default.bool,
|
|
61
|
+
// Defined if there is a filter
|
|
62
|
+
hasFilter: _propTypes.default.bool,
|
|
63
|
+
// Allow the counter to be clickable
|
|
62
64
|
enableActivity: _propTypes.default.bool,
|
|
63
65
|
hideOnZero: _propTypes.default.bool,
|
|
64
66
|
onClick: _propTypes.default.func,
|
package/lib/es/DeviceUtils.d.ts
CHANGED
|
@@ -5,5 +5,9 @@ declare module '@rio-cloud/rio-uikit/lib/es/DeviceUtils' {
|
|
|
5
5
|
export function isMobileScreen(): boolean;
|
|
6
6
|
export function inIframe(): boolean;
|
|
7
7
|
export function toggleZoomOnMobile(): boolean;
|
|
8
|
-
export type MOBILE_SCREEN = number;
|
|
8
|
+
export type MOBILE_SCREEN = number;
|
|
9
|
+
export type SCREEN_SM = number;
|
|
10
|
+
export type SCREEN_MD = number;
|
|
11
|
+
export type SCREEN_LG = number;
|
|
12
|
+
export type SCREEN_XL = number;
|
|
9
13
|
}
|
|
@@ -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 _SubNavigation2.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
var _SubNavigation2 = _interopRequireDefault(require("../components/applicationLayout/SubNavigation"));
|
package/lib/es/deviceUtils.js
CHANGED
|
@@ -9,6 +9,30 @@ Object.defineProperty(exports, "MOBILE_SCREEN", {
|
|
|
9
9
|
return _deviceUtils.MOBILE_SCREEN;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "SCREEN_LG", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _deviceUtils.SCREEN_LG;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "SCREEN_MD", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _deviceUtils.SCREEN_MD;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "SCREEN_SM", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _deviceUtils.SCREEN_SM;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "SCREEN_XL", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _deviceUtils.SCREEN_XL;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
12
36
|
Object.defineProperty(exports, "hasTouch", {
|
|
13
37
|
enumerable: true,
|
|
14
38
|
get: function get() {
|
|
@@ -7,6 +7,7 @@ exports.default = useClickOutside;
|
|
|
7
7
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
|
|
10
|
+
/* eslint-disable prefer-arrow/prefer-arrow-functions */
|
|
10
11
|
// eslint-disable-next-line max-len
|
|
11
12
|
// Inspired from https://github.com/mantinedev/mantine/blob/master/src/mantine-hooks/src/use-click-outside/use-click-outside.ts
|
|
12
13
|
function useClickOutside(callback) {
|
|
@@ -15,7 +16,7 @@ function useClickOutside(callback) {
|
|
|
15
16
|
(0, _react.useEffect)(function () {
|
|
16
17
|
var listener = function listener(event) {
|
|
17
18
|
if (targetRef.current && !targetRef.current.contains(event.target)) {
|
|
18
|
-
callback();
|
|
19
|
+
callback(event);
|
|
19
20
|
}
|
|
20
21
|
};
|
|
21
22
|
|
|
@@ -195,6 +195,10 @@ body .module-content {
|
|
|
195
195
|
background-size: cover;
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
.SubmoduleNavigation .SubmoduleNavigation {
|
|
199
|
+
padding-left: 0;
|
|
200
|
+
}
|
|
201
|
+
|
|
198
202
|
html.show-handheld-navigation & {
|
|
199
203
|
position: fixed;
|
|
200
204
|
top: 0;
|
|
@@ -222,6 +226,7 @@ body .module-content {
|
|
|
222
226
|
}
|
|
223
227
|
|
|
224
228
|
.SubmoduleNavigation {
|
|
229
|
+
border-bottom: none;
|
|
225
230
|
display: block;
|
|
226
231
|
margin: 50px 0;
|
|
227
232
|
padding-left: 0;
|
|
@@ -329,6 +334,7 @@ body .module-content {
|
|
|
329
334
|
@media (min-width: @screen-ls) {
|
|
330
335
|
> .SubmoduleNavigation {
|
|
331
336
|
max-height: calc(~"100vh - 100px");
|
|
337
|
+
height: auto;
|
|
332
338
|
overflow: auto;
|
|
333
339
|
-webkit-overflow-scrolling: touch;
|
|
334
340
|
}
|
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
.ApplicationHeader .SubmoduleNavigation .submodule,
|
|
2
|
-
.navbar .SubmoduleNavigation .submodule {
|
|
3
|
-
white-space: nowrap;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
1
|
.ApplicationHeader {
|
|
7
2
|
background-color: @color-white;
|
|
8
|
-
border
|
|
9
|
-
border-left: none;
|
|
10
|
-
border-right: none;
|
|
11
|
-
border-top: none;
|
|
3
|
+
border: none;
|
|
12
4
|
display: flex;
|
|
13
5
|
float: none !important;
|
|
14
6
|
margin-bottom: 0;
|
|
@@ -64,7 +56,7 @@
|
|
|
64
56
|
background-image: @navbar-brand-icon !important;
|
|
65
57
|
background-size: cover;
|
|
66
58
|
display: block;
|
|
67
|
-
height: @navbar-height
|
|
59
|
+
height: @navbar-height;
|
|
68
60
|
margin: 0;
|
|
69
61
|
padding: 0;
|
|
70
62
|
position: relative;
|
|
@@ -91,241 +83,6 @@
|
|
|
91
83
|
}
|
|
92
84
|
}
|
|
93
85
|
|
|
94
|
-
.navbar-nav {
|
|
95
|
-
float: none;
|
|
96
|
-
margin: 0;
|
|
97
|
-
|
|
98
|
-
> li {
|
|
99
|
-
float: none !important;
|
|
100
|
-
|
|
101
|
-
> a {
|
|
102
|
-
line-height: @navbar-height-without-border - (@navbar-padding-vertical * 2);
|
|
103
|
-
padding-bottom: @navbar-padding-vertical;
|
|
104
|
-
padding-top: @navbar-padding-vertical;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
&:not(.navbar-right) {
|
|
109
|
-
> li {
|
|
110
|
-
&:empty {
|
|
111
|
-
display: none;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
&:empty + .submodule,
|
|
115
|
-
&:first-child:not(:empty) {
|
|
116
|
-
margin-left: 15px;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
> a {
|
|
120
|
-
background-color: transparent;
|
|
121
|
-
color: @gray;
|
|
122
|
-
cursor: pointer;
|
|
123
|
-
font-size: 14px;
|
|
124
|
-
font-weight: @font-medium;
|
|
125
|
-
margin: 0 15px;
|
|
126
|
-
padding: 15px 0;
|
|
127
|
-
text-transform: uppercase;
|
|
128
|
-
transition: all 100ms ease-in-out;
|
|
129
|
-
user-select: none;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
&.disabled,
|
|
133
|
-
&:disabled {
|
|
134
|
-
> a {
|
|
135
|
-
color: @gray-light
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
&:not(.disabled):not(:disabled) {
|
|
140
|
-
> a.active,
|
|
141
|
-
&.active > a,
|
|
142
|
-
&:focus > a,
|
|
143
|
-
&:hover > a {
|
|
144
|
-
&:not(.disabled):not(:disabled) {
|
|
145
|
-
background-color: transparent;
|
|
146
|
-
box-shadow: inset 0 -3px 0 @color-black, 0 1px 0 @color-black;
|
|
147
|
-
color: @color-black;
|
|
148
|
-
|
|
149
|
-
&:after {
|
|
150
|
-
background-color: @color-black;
|
|
151
|
-
height: 3px;
|
|
152
|
-
width: 100%;
|
|
153
|
-
z-index: 1;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
&.dropdown {
|
|
160
|
-
&.active > a,
|
|
161
|
-
&:hover > a {
|
|
162
|
-
box-shadow: none;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
> .dropdown-menu {
|
|
166
|
-
border: none;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
.ModuleNavigation {
|
|
174
|
-
border: none;
|
|
175
|
-
height: @navbar-height-without-border;
|
|
176
|
-
line-height: @navbar-height-without-border;
|
|
177
|
-
list-style: none;
|
|
178
|
-
margin-bottom: 0;
|
|
179
|
-
padding-left: 0;
|
|
180
|
-
position: relative;
|
|
181
|
-
|
|
182
|
-
// avoid floating content on mobile
|
|
183
|
-
max-width: calc(~'100% - @{navbar-height}');
|
|
184
|
-
|
|
185
|
-
// NOTE: enforce it with important so all services look similar
|
|
186
|
-
background-color: @color-white !important;
|
|
187
|
-
color: @color-black !important;
|
|
188
|
-
|
|
189
|
-
.dropdown {
|
|
190
|
-
width: 300px;
|
|
191
|
-
|
|
192
|
-
&.open {
|
|
193
|
-
background-color: inherit;
|
|
194
|
-
|
|
195
|
-
.ModuleNavigation-dropdown,
|
|
196
|
-
.dropdown-toggle {
|
|
197
|
-
&:after {
|
|
198
|
-
bottom: 0;
|
|
199
|
-
top: 0;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
.ModuleNavigation-dropdown,
|
|
206
|
-
.dropdown-toggle {
|
|
207
|
-
align-items: center;
|
|
208
|
-
display: flex;
|
|
209
|
-
padding: 0;
|
|
210
|
-
|
|
211
|
-
&.inactive {
|
|
212
|
-
pointer-events: none;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
// Style the separator between main dropdown and submodules
|
|
216
|
-
&:after {
|
|
217
|
-
background-color: @gray-lighter;
|
|
218
|
-
bottom: 15px;
|
|
219
|
-
content: '';
|
|
220
|
-
display: block;
|
|
221
|
-
position: absolute;
|
|
222
|
-
right: 0;
|
|
223
|
-
top: 15px;
|
|
224
|
-
transition: all 0.1s ease-in-out;
|
|
225
|
-
width: 3px;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
&:first-child:not(:last-child) {
|
|
229
|
-
&:hover:after {
|
|
230
|
-
bottom: 0;
|
|
231
|
-
top: 0;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
> span {
|
|
236
|
-
&:not(.caret) {
|
|
237
|
-
.ellipsis-1;
|
|
238
|
-
flex: 1 0 auto;
|
|
239
|
-
//max-width: @navbar-application-dropdown-width - @navbar-height;
|
|
240
|
-
padding-left: @navbar-padding-horizontal;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
&.caret {
|
|
244
|
-
margin: 0;
|
|
245
|
-
text-align: center;
|
|
246
|
-
width: @navbar-height;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
// Style for the main dropdown
|
|
252
|
-
> li > a,
|
|
253
|
-
> a {
|
|
254
|
-
background-color: transparent;
|
|
255
|
-
color: inherit;
|
|
256
|
-
font-size: 18px;
|
|
257
|
-
font-weight: @font-medium;
|
|
258
|
-
text-decoration: none;
|
|
259
|
-
text-transform: uppercase;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
.dropdown-menu {
|
|
263
|
-
-webkit-overflow-scrolling: touch;
|
|
264
|
-
border: none;
|
|
265
|
-
border-radius: 0 0 @border-radius-default @border-radius-default;
|
|
266
|
-
max-height: ~'calc(100vh - @{navbar-height} - 20px)'; // --vh fallback
|
|
267
|
-
max-height: ~'calc(var(--vh, 1vh) * 100 - @{navbar-height} - 20px)';
|
|
268
|
-
max-width: calc(~'100% - 3px');
|
|
269
|
-
width: 100%;
|
|
270
|
-
overflow-x: hidden;
|
|
271
|
-
overflow-y: auto;
|
|
272
|
-
|
|
273
|
-
> li > a {
|
|
274
|
-
color: @color-black;
|
|
275
|
-
font-size: 14px;
|
|
276
|
-
font-weight: @font-medium;
|
|
277
|
-
padding: 5px @navbar-padding-horizontal;
|
|
278
|
-
text-transform: uppercase;
|
|
279
|
-
|
|
280
|
-
&.inactive {
|
|
281
|
-
pointer-events: none;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
&.hasModules,
|
|
287
|
-
&.hasModules > li > a {
|
|
288
|
-
cursor: pointer;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
> li > a {
|
|
292
|
-
.ellipsis-1;
|
|
293
|
-
cursor: default;
|
|
294
|
-
height: 100%;
|
|
295
|
-
padding-left: @navbar-padding-horizontal;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
.SubmoduleNavigation {
|
|
300
|
-
display: flex;
|
|
301
|
-
flex: 1 1 0;
|
|
302
|
-
|
|
303
|
-
.submodule {
|
|
304
|
-
white-space: nowrap;
|
|
305
|
-
|
|
306
|
-
&.offscreen {
|
|
307
|
-
opacity: 0;
|
|
308
|
-
position: absolute;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
.CollapsedDropdown {
|
|
313
|
-
> .dropdown-menu {
|
|
314
|
-
left: auto;
|
|
315
|
-
right: 0;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
> .dropdown-toggle {
|
|
319
|
-
margin: 0 !important;
|
|
320
|
-
padding: 15px 15px !important;
|
|
321
|
-
|
|
322
|
-
.rioglyph-option-horizontal {
|
|
323
|
-
font-size: 18px;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
|
|
329
86
|
.ApplicationActionBar {
|
|
330
87
|
background-color: @color-white;
|
|
331
88
|
cursor: auto;
|
|
@@ -436,3 +193,243 @@
|
|
|
436
193
|
margin-bottom: 5px;
|
|
437
194
|
}
|
|
438
195
|
}
|
|
196
|
+
|
|
197
|
+
.ModuleNavigation {
|
|
198
|
+
border-bottom: 1px solid @gray-light;
|
|
199
|
+
height: @navbar-height;
|
|
200
|
+
line-height: @navbar-height;
|
|
201
|
+
list-style: none;
|
|
202
|
+
margin-bottom: 0;
|
|
203
|
+
padding-left: 0;
|
|
204
|
+
position: relative;
|
|
205
|
+
|
|
206
|
+
// avoid floating content on mobile
|
|
207
|
+
max-width: calc(~'100% - @{navbar-height}');
|
|
208
|
+
|
|
209
|
+
// NOTE: enforce it with important so all services look similar
|
|
210
|
+
background-color: @color-white !important;
|
|
211
|
+
color: @color-black !important;
|
|
212
|
+
|
|
213
|
+
.dropdown {
|
|
214
|
+
width: 300px;
|
|
215
|
+
|
|
216
|
+
&.open {
|
|
217
|
+
background-color: inherit;
|
|
218
|
+
|
|
219
|
+
.ModuleNavigation-dropdown,
|
|
220
|
+
.dropdown-toggle {
|
|
221
|
+
&:after {
|
|
222
|
+
bottom: 0;
|
|
223
|
+
top: 0;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.ModuleNavigation-dropdown,
|
|
230
|
+
.dropdown-toggle {
|
|
231
|
+
align-items: center;
|
|
232
|
+
display: flex;
|
|
233
|
+
padding: 0;
|
|
234
|
+
|
|
235
|
+
&.inactive {
|
|
236
|
+
pointer-events: none;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Style the separator between main dropdown and submodules
|
|
240
|
+
&:after {
|
|
241
|
+
background-color: @gray-lighter;
|
|
242
|
+
bottom: 15px;
|
|
243
|
+
content: '';
|
|
244
|
+
display: block;
|
|
245
|
+
position: absolute;
|
|
246
|
+
right: 0;
|
|
247
|
+
top: 15px;
|
|
248
|
+
transition: all 0.1s ease-in-out;
|
|
249
|
+
width: 3px;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
&:first-child:not(:last-child) {
|
|
253
|
+
&:hover:after {
|
|
254
|
+
bottom: 0;
|
|
255
|
+
top: 0;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
> span {
|
|
260
|
+
&:not(.caret) {
|
|
261
|
+
.ellipsis-1;
|
|
262
|
+
flex: 1 0 auto;
|
|
263
|
+
//max-width: @navbar-application-dropdown-width - @navbar-height;
|
|
264
|
+
padding-left: @navbar-padding-horizontal;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
&.caret {
|
|
268
|
+
margin: 0;
|
|
269
|
+
text-align: center;
|
|
270
|
+
width: @navbar-height;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Style for the main dropdown
|
|
276
|
+
> li > a,
|
|
277
|
+
> a {
|
|
278
|
+
background-color: transparent;
|
|
279
|
+
color: inherit;
|
|
280
|
+
font-size: 18px;
|
|
281
|
+
font-weight: @font-medium;
|
|
282
|
+
text-decoration: none;
|
|
283
|
+
text-transform: uppercase;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.dropdown-menu {
|
|
287
|
+
-webkit-overflow-scrolling: touch;
|
|
288
|
+
border: none;
|
|
289
|
+
border-radius: 0 0 @border-radius-default @border-radius-default;
|
|
290
|
+
max-height: ~'calc(100vh - @{navbar-height} - 20px)'; // --vh fallback
|
|
291
|
+
max-height: ~'calc(var(--vh, 1vh) * 100 - @{navbar-height} - 20px)';
|
|
292
|
+
max-width: calc(~'100% - 3px');
|
|
293
|
+
width: 100%;
|
|
294
|
+
overflow-x: hidden;
|
|
295
|
+
overflow-y: auto;
|
|
296
|
+
|
|
297
|
+
> li > a {
|
|
298
|
+
color: @color-black;
|
|
299
|
+
font-size: 14px;
|
|
300
|
+
font-weight: @font-medium;
|
|
301
|
+
padding: 5px @navbar-padding-horizontal;
|
|
302
|
+
text-transform: uppercase;
|
|
303
|
+
|
|
304
|
+
&.inactive {
|
|
305
|
+
pointer-events: none;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
&.hasModules,
|
|
311
|
+
&.hasModules > li > a {
|
|
312
|
+
cursor: pointer;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
> li > a {
|
|
316
|
+
.ellipsis-1;
|
|
317
|
+
cursor: default;
|
|
318
|
+
height: 100%;
|
|
319
|
+
padding-left: @navbar-padding-horizontal;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.SubmoduleNavigation {
|
|
324
|
+
border-bottom: 1px solid @gray-light;
|
|
325
|
+
height: @navbar-height;
|
|
326
|
+
display: flex;
|
|
327
|
+
flex: 1 1 0;
|
|
328
|
+
|
|
329
|
+
.ApplicationLayoutBodyNavigation & {
|
|
330
|
+
.submodule:first-of-type > a {
|
|
331
|
+
margin-left: 0;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
@media (max-width: @screen-xs-max) {
|
|
335
|
+
padding-left: @ApplicationLayoutBodyPadding*0.5;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
@media (min-width: @screen-ls) {
|
|
339
|
+
padding-left: @ApplicationLayoutBodyPadding;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.ApplicationLayoutBodyNavigation.has-offset & {
|
|
344
|
+
@media (min-width: @screen-ls) {
|
|
345
|
+
padding-left: 380px;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.ApplicationHeader:not(.mobile) & {
|
|
350
|
+
padding-left: 15px;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
> .submodule {
|
|
354
|
+
white-space: nowrap;
|
|
355
|
+
|
|
356
|
+
&:empty {
|
|
357
|
+
display: none;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
> a {
|
|
361
|
+
background-color: transparent;
|
|
362
|
+
color: @gray;
|
|
363
|
+
cursor: pointer;
|
|
364
|
+
font-size: 14px;
|
|
365
|
+
margin: 0 15px;
|
|
366
|
+
padding: 15px 0;
|
|
367
|
+
transition: all 100ms ease-in-out;
|
|
368
|
+
user-select: none;
|
|
369
|
+
|
|
370
|
+
.ApplicationHeader & {
|
|
371
|
+
font-weight: @font-medium;
|
|
372
|
+
text-transform: uppercase;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
&.disabled,
|
|
377
|
+
&:disabled {
|
|
378
|
+
> a {
|
|
379
|
+
color: @gray-light
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
&:not(.disabled):not(:disabled) {
|
|
384
|
+
> a.active,
|
|
385
|
+
&.active > a,
|
|
386
|
+
&:focus > a,
|
|
387
|
+
&:hover > a {
|
|
388
|
+
&:not(.disabled):not(:disabled) {
|
|
389
|
+
background-color: transparent;
|
|
390
|
+
box-shadow: inset 0 -4px 0 @color-black, 0 0px 0 @color-black;
|
|
391
|
+
color: @color-black;
|
|
392
|
+
|
|
393
|
+
&:after {
|
|
394
|
+
background-color: @color-black;
|
|
395
|
+
height: 3px;
|
|
396
|
+
width: 100%;
|
|
397
|
+
z-index: 1;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
&.dropdown {
|
|
404
|
+
&.active > a,
|
|
405
|
+
&:hover > a {
|
|
406
|
+
box-shadow: none;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
> .dropdown-menu {
|
|
410
|
+
border: none;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
&.offscreen {
|
|
415
|
+
opacity: 0;
|
|
416
|
+
position: absolute;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
.CollapsedDropdown {
|
|
421
|
+
> .dropdown-menu {
|
|
422
|
+
left: auto;
|
|
423
|
+
right: 0;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
> .dropdown-toggle {
|
|
427
|
+
margin: 0 !important;
|
|
428
|
+
padding: 15px 15px !important;
|
|
429
|
+
|
|
430
|
+
.rioglyph-option-horizontal {
|
|
431
|
+
font-size: 18px;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
height: @ApplicationLayoutBodyHeightWithoutFooterAndViewportFix;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
// TODO remove with v1.0 (downward compatibility) - remove when cleanup
|
|
55
56
|
.ApplicationLayoutBodyNavigation {
|
|
56
57
|
&:not(.unstyled) {
|
|
57
58
|
align-items: center;
|
|
@@ -62,11 +63,11 @@
|
|
|
62
63
|
// padding: 0 @ApplicationLayoutBodyPadding*0.25 0 @ApplicationLayoutBodyPadding*0.5;
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
&:not(.header-has-no-application-menu) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
66
|
+
// &:not(.header-has-no-application-menu) {
|
|
67
|
+
// @media (min-width: @screen-lg) {
|
|
68
|
+
// padding-left: 365px;
|
|
69
|
+
// }
|
|
70
|
+
// }
|
|
70
71
|
|
|
71
72
|
.nav-pills {
|
|
72
73
|
padding-left: @ApplicationLayoutBodyPadding*0.5;
|
|
@@ -98,6 +99,7 @@
|
|
|
98
99
|
}
|
|
99
100
|
}
|
|
100
101
|
}
|
|
102
|
+
// END TODO
|
|
101
103
|
|
|
102
104
|
body:not(.modal-open) & {
|
|
103
105
|
-webkit-overflow-scrolling: touch;
|
package/lib/types.ts
CHANGED
|
@@ -1737,6 +1737,11 @@ export interface SteppedProgressBarProps {
|
|
|
1737
1737
|
variant?: 'circle' | 'rectangle' | 'roadsign';
|
|
1738
1738
|
}
|
|
1739
1739
|
|
|
1740
|
+
export interface SubNavigationProps {
|
|
1741
|
+
navItems?: ModulePropTypes[];
|
|
1742
|
+
className?: string;
|
|
1743
|
+
}
|
|
1744
|
+
|
|
1740
1745
|
export interface SwitchProps {
|
|
1741
1746
|
keyName?: string;
|
|
1742
1747
|
onChange: (toggleState: boolean) => void;
|
|
@@ -2041,6 +2046,7 @@ export interface TypeCounterProps {
|
|
|
2041
2046
|
type?: string;
|
|
2042
2047
|
icon?: string;
|
|
2043
2048
|
isActive?: boolean;
|
|
2049
|
+
hasFilter?: boolean;
|
|
2044
2050
|
enableActivity?: boolean;
|
|
2045
2051
|
hideOnZero?: boolean;
|
|
2046
2052
|
onClick?: (type: string) => void;
|
|
@@ -2052,7 +2058,7 @@ export interface TypeCounterProps {
|
|
|
2052
2058
|
export type UseAfterMount = (callback: () => void, deps?: any[]) => void;
|
|
2053
2059
|
|
|
2054
2060
|
export type UseClickOutside<T extends HTMLElement = any> = (
|
|
2055
|
-
callback: () => void,
|
|
2061
|
+
callback: (event: React.MouseEvent<HTMLButtonElement>) => void,
|
|
2056
2062
|
events?: ['mousedown', 'touchstart']
|
|
2057
2063
|
) => React.MutableRefObject<T>;
|
|
2058
2064
|
|
package/lib/utils/deviceUtils.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.toggleZoomOnMobile = exports.isMobileScreen = exports.isMobile = exports.isDesktop = exports.inIframe = exports.hasTouch = exports.MOBILE_SCREEN = void 0;
|
|
6
|
+
exports.toggleZoomOnMobile = exports.isMobileScreen = exports.isMobile = exports.isDesktop = exports.inIframe = exports.hasTouch = exports.SCREEN_XL = exports.SCREEN_SM = exports.SCREEN_MD = exports.SCREEN_LG = 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
|
|
@@ -40,6 +40,14 @@ var hasTouch = function hasTouch() {
|
|
|
40
40
|
exports.hasTouch = hasTouch;
|
|
41
41
|
var MOBILE_SCREEN = 480;
|
|
42
42
|
exports.MOBILE_SCREEN = MOBILE_SCREEN;
|
|
43
|
+
var SCREEN_SM = 768;
|
|
44
|
+
exports.SCREEN_SM = SCREEN_SM;
|
|
45
|
+
var SCREEN_MD = 992;
|
|
46
|
+
exports.SCREEN_MD = SCREEN_MD;
|
|
47
|
+
var SCREEN_LG = 1200;
|
|
48
|
+
exports.SCREEN_LG = SCREEN_LG;
|
|
49
|
+
var SCREEN_XL = 1700;
|
|
50
|
+
exports.SCREEN_XL = SCREEN_XL;
|
|
43
51
|
|
|
44
52
|
var isMobileScreen = function isMobileScreen() {
|
|
45
53
|
return window.matchMedia("(max-width: ".concat(MOBILE_SCREEN, "px)")).matches;
|
package/lib/version.json
CHANGED
package/package.json
CHANGED