@rio-cloud/rio-uikit 0.16.1-beta-4 → 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.
Files changed (36) hide show
  1. package/lib/components/applicationHeader/ApplicationHeader.js +6 -6
  2. package/lib/components/applicationHeader/NavItems.js +8 -8
  3. package/lib/components/applicationLayout/ApplicationLayout.js +5 -8
  4. package/lib/components/applicationLayout/ApplicationLayoutBody.js +1 -3
  5. package/lib/components/applicationLayout/SubNavigation.js +60 -0
  6. package/lib/components/assetTree/Tree.js +151 -35
  7. package/lib/components/assetTree/TreeSelectAll.js +1 -1
  8. package/lib/components/assetTree/TreeSummary.js +11 -6
  9. package/lib/components/assetTree/TypeCounter.js +47 -8
  10. package/lib/components/navigation/AppNavigationBar.js +64 -0
  11. package/lib/components/selects/BaseDropdownMenu.js +29 -23
  12. package/lib/components/selects/Select.js +11 -5
  13. package/lib/es/AppNavigationBar.d.ts +5 -0
  14. package/lib/es/AppNavigationBar.js +15 -0
  15. package/lib/es/DeviceUtils.d.ts +6 -0
  16. package/lib/es/SubNavigation.d.ts +5 -0
  17. package/lib/es/SubNavigation.js +15 -0
  18. package/lib/es/deviceUtils.js +36 -0
  19. package/lib/es/useResizeObserver.d.ts +4 -0
  20. package/lib/es/useResizeObserver.js +15 -0
  21. package/lib/hooks/useClickOutside.js +2 -1
  22. package/lib/hooks/useResizeObserver.js +54 -0
  23. package/lib/hooks/useWindowResize.js +8 -5
  24. package/lib/style/css/_exports/rio-website.less +76 -7
  25. package/lib/style/css/_exports/vw-uikit.less +1 -1
  26. package/lib/style/css/animations/_imports.less +1 -0
  27. package/lib/style/css/animations/pulsing.less +5 -0
  28. package/lib/style/css/components/ApplicationHeader.less +242 -245
  29. package/lib/style/css/components/ApplicationLayout.less +10 -6
  30. package/lib/style/css/components/AssetTree.less +0 -4
  31. package/lib/style/css/design/buttons.less +4 -1
  32. package/lib/style/css/design/rioglyph.less +1 -12
  33. package/lib/types.ts +23 -1
  34. package/lib/utils/deviceUtils.js +19 -2
  35. package/lib/version.json +1 -1
  36. package/package.json +4 -2
@@ -7,24 +7,63 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
10
14
  var _react = _interopRequireDefault(require("react"));
11
15
 
12
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
17
 
14
- var TypeCounter = function TypeCounter(_ref) {
15
- var icon = _ref.icon,
16
- value = _ref.value;
17
- return value ? /*#__PURE__*/_react.default.createElement("div", {
18
- className: 'user-select-none margin-right-15'
19
- }, /*#__PURE__*/_react.default.createElement("span", {
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _excluded = ["icon", "value", "isActive", "hasFilter", "enableActivity", "onClick", "type", "hideOnZero"];
21
+
22
+ var TypeCounter = function TypeCounter(props) {
23
+ var icon = props.icon,
24
+ value = props.value,
25
+ isActive = props.isActive,
26
+ hasFilter = props.hasFilter,
27
+ enableActivity = props.enableActivity,
28
+ onClick = props.onClick,
29
+ type = props.type,
30
+ hideOnZero = props.hideOnZero,
31
+ remainingProps = (0, _objectWithoutProperties2.default)(props, _excluded);
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
+ var counterClassNames = (0, _classnames.default)('TreeLabelCount', 'margin-left-3', 'label label-condensed', isActive ? 'label-primary' : 'label-muted label-filled');
34
+
35
+ var handleClick = function handleClick() {
36
+ return onClick(type);
37
+ };
38
+
39
+ if (hideOnZero && !value) {
40
+ return null;
41
+ }
42
+
43
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, remainingProps, {
44
+ className: wrapperClassName,
45
+ onClick: handleClick
46
+ }), /*#__PURE__*/_react.default.createElement("span", {
20
47
  className: "rioglyph rioglyph-".concat(icon, " text-size-16")
21
48
  }), /*#__PURE__*/_react.default.createElement("span", {
22
- className: 'TreeLabelCount margin-left-3 label label-muted label-filled label-condensed'
23
- }, value)) : null;
49
+ className: counterClassNames
50
+ }, value || 0));
24
51
  };
25
52
 
53
+ TypeCounter.defaultProps = {
54
+ hideOnZero: false
55
+ };
26
56
  TypeCounter.propTypes = {
57
+ type: _propTypes.default.string,
27
58
  icon: _propTypes.default.string,
59
+ // Highlights the current active filter
60
+ isActive: _propTypes.default.bool,
61
+ // Defined if there is a filter
62
+ hasFilter: _propTypes.default.bool,
63
+ // Allow the counter to be clickable
64
+ enableActivity: _propTypes.default.bool,
65
+ hideOnZero: _propTypes.default.bool,
66
+ onClick: _propTypes.default.func,
28
67
  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node, _propTypes.default.number])
29
68
  };
30
69
  var _default = TypeCounter;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = exports.AppNavigationBar = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
22
+ var _noop = _interopRequireDefault(require("lodash/fp/noop"));
23
+
24
+ var _excluded = ["className", "title", "right", "onNavigateBack"];
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ var AppNavigationBar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
31
+ var className = props.className,
32
+ title = props.title,
33
+ right = props.right,
34
+ onNavigateBack = props.onNavigateBack,
35
+ remainingProps = (0, _objectWithoutProperties2.default)(props, _excluded);
36
+ var navigationClasses = (0, _classnames.default)('AppNavigationBar', 'width-100pct display-flex align-items-center justify-content-between height-45 user-select-none padding-x-10', className);
37
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
38
+ ref: ref
39
+ }, remainingProps, {
40
+ className: navigationClasses
41
+ }), /*#__PURE__*/_react.default.createElement("div", {
42
+ className: "display-flex align-items-center"
43
+ }, /*#__PURE__*/_react.default.createElement("div", {
44
+ className: "width-30 text-size-20 text-color-darkest"
45
+ }, /*#__PURE__*/_react.default.createElement("span", {
46
+ className: "rioglyph rioglyph-arrow-left",
47
+ onClick: onNavigateBack
48
+ })), /*#__PURE__*/_react.default.createElement("div", {
49
+ className: "text-medium text-color-darker"
50
+ }, title)), /*#__PURE__*/_react.default.createElement("div", null, right));
51
+ });
52
+ exports.AppNavigationBar = AppNavigationBar;
53
+ AppNavigationBar.defaultProps = {
54
+ onNavigateBack: _noop.default,
55
+ right: /*#__PURE__*/_react.default.createElement("span", null)
56
+ };
57
+ AppNavigationBar.propTypes = {
58
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
59
+ right: _propTypes.default.node,
60
+ onNavigateBack: _propTypes.default.func,
61
+ className: _propTypes.default.string
62
+ };
63
+ var _default = AppNavigationBar;
64
+ exports.default = _default;
@@ -79,7 +79,7 @@ var BaseDropdownMenu = /*#__PURE__*/function (_Component) {
79
79
  pullRight: props.pullRight,
80
80
  focusedItemIndex: _this.props.focusedItemIndex,
81
81
  keyboardUsed: _this.props.keyboardUsed,
82
- itemDOMValues: null
82
+ itemDOMValues: []
83
83
  };
84
84
  _this.handleOptionChange = _this.handleOptionChange.bind((0, _assertThisInitialized2.default)(_this));
85
85
  _this.handleKeydown = _this.handleKeydown.bind((0, _assertThisInitialized2.default)(_this));
@@ -113,24 +113,29 @@ var BaseDropdownMenu = /*#__PURE__*/function (_Component) {
113
113
  }
114
114
 
115
115
  if (!(0, _isEqual.default)(nextProps.options, this.props.options)) {
116
- // Only update the DOM values if it is explicitly requested
117
- // otherwise it will reduce the dom values to the filtered options
118
- var updatedItemDOMValues;
119
-
120
- if (nextProps.requestItemDOMValues) {
121
- updatedItemDOMValues = this.setItemDOMValues();
122
- }
123
-
124
116
  this.setState(function () {
125
117
  return {
126
- options: nextProps.options,
127
- itemDOMValues: updatedItemDOMValues ? updatedItemDOMValues : _this2.state.itemDOMValues
118
+ options: nextProps.options
128
119
  };
129
- });
130
-
131
- if (nextProps.requestItemDOMValues) {
132
- this.props.updateDOMValues(updatedItemDOMValues);
133
- }
120
+ }); // Workaround to put the update of DOM values into a setTimeout to have the component
121
+ // re-rendered to fetch the DOM items.
122
+ // This should be refactored when reworking the component as functional component
123
+
124
+ setTimeout(function () {
125
+ // Only update the DOM values if it is explicitly requested
126
+ // otherwise it will reduce the dom values to the filtered options
127
+ if (nextProps.requestItemDOMValues) {
128
+ var items = _this2.setItemDOMValues();
129
+
130
+ _this2.props.updateDOMValues(items);
131
+
132
+ _this2.setState(function () {
133
+ return {
134
+ itemDOMValues: items ? items : _this2.state.itemDOMValues
135
+ };
136
+ });
137
+ }
138
+ }, 0);
134
139
  }
135
140
  }
136
141
  }
@@ -273,10 +278,10 @@ var BaseDropdownMenu = /*#__PURE__*/function (_Component) {
273
278
  return /*#__PURE__*/_react.default.createElement("ul", {
274
279
  className: dropdownMenuClasses
275
280
  }, /*#__PURE__*/_react.default.createElement("li", {
276
- className: 'no-item-message disabled',
281
+ className: "no-item-message disabled",
277
282
  disabled: true
278
283
  }, /*#__PURE__*/_react.default.createElement("a", {
279
- role: 'button'
284
+ role: "button"
280
285
  }, /*#__PURE__*/_react.default.createElement("i", null, noItemMessage))));
281
286
  }
282
287
 
@@ -301,7 +306,7 @@ var BaseDropdownMenu = /*#__PURE__*/function (_Component) {
301
306
  id: option.id,
302
307
  icon: option.icon,
303
308
  label: option.label,
304
- type: 'dropdown'
309
+ type: "dropdown"
305
310
  });
306
311
  } // Show focused style only when keyboard is in use
307
312
 
@@ -312,15 +317,15 @@ var BaseDropdownMenu = /*#__PURE__*/function (_Component) {
312
317
  key: option.id,
313
318
  className: classNames
314
319
  }, /*#__PURE__*/_react.default.createElement("a", {
315
- role: 'button',
320
+ role: "button",
316
321
  className: anchorClassNames,
317
322
  "data-item-id": option.id,
318
323
  "data-item-index": index,
319
324
  onClick: !option.disabled ? this.handleOptionChange : undefined
320
325
  }, /*#__PURE__*/_react.default.createElement("span", null, option.icon && /*#__PURE__*/_react.default.createElement("span", {
321
- className: 'margin-right-5'
326
+ className: "margin-right-5"
322
327
  }, option.icon), option.label), /*#__PURE__*/_react.default.createElement("input", {
323
- type: 'hidden',
328
+ type: "hidden",
324
329
  value: option.id
325
330
  })));
326
331
  }
@@ -416,5 +421,6 @@ BaseDropdownMenu.propTypes = {
416
421
  autoDropDirection: _propTypes.default.bool,
417
422
  noItemMessage: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
418
423
  focusedItemIndex: _propTypes.default.number.isRequired,
419
- dropdownClassName: _propTypes.default.string
424
+ dropdownClassName: _propTypes.default.string,
425
+ requestItemDOMValues: _propTypes.default.bool
420
426
  };
@@ -71,7 +71,8 @@ var Select = /*#__PURE__*/function (_Component) {
71
71
  filteredOptions: props.options,
72
72
  itemDOMValues: [],
73
73
  focusedItemIndex: DEFAULT_FOCUSED_ITEM_INDEX,
74
- keyboardUsed: false
74
+ keyboardUsed: false,
75
+ requestItemDOMValues: false
75
76
  };
76
77
  _this.onToggle = _this.onToggle.bind((0, _assertThisInitialized2.default)(_this));
77
78
  _this.handleClickOutside = _this.handleClickOutside.bind((0, _assertThisInitialized2.default)(_this));
@@ -125,7 +126,8 @@ var Select = /*#__PURE__*/function (_Component) {
125
126
  }
126
127
  }, {
127
128
  key: "updateDOMValues",
128
- value: function updateDOMValues(itemDOMValues) {
129
+ value: function updateDOMValues() {
130
+ var itemDOMValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
129
131
  this.setState(function () {
130
132
  return {
131
133
  itemDOMValues: itemDOMValues,
@@ -294,7 +296,8 @@ var Select = /*#__PURE__*/function (_Component) {
294
296
  noItemMessage: noItemMessage,
295
297
  autoDropDirection: autoDropDirection,
296
298
  pullRight: pullRight,
297
- dropdownClassName: dropdownClassName
299
+ dropdownClassName: dropdownClassName,
300
+ requestItemDOMValues: this.state.requestItemDOMValues
298
301
  });
299
302
  }
300
303
  }, {
@@ -311,10 +314,13 @@ var Select = /*#__PURE__*/function (_Component) {
311
314
  }
312
315
  }, {
313
316
  key: "filterOptions",
314
- value: function filterOptions(itemDOMValues, filterValue, options) {
317
+ value: function filterOptions() {
318
+ var itemDOMValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
319
+ var filterValue = arguments.length > 1 ? arguments[1] : undefined;
320
+ var options = arguments.length > 2 ? arguments[2] : undefined;
315
321
  var filteredDOMValues = itemDOMValues.filter(function (item) {
316
322
  return item.text.toLowerCase().includes(filterValue.toLowerCase());
317
- }); // Filter the options accodring to the filtered DOM values and map the IDs since the filter cannot be done
323
+ }); // Filter the options according to the filtered DOM values and map the IDs since the filter cannot be done
318
324
  // on the options itself as they might contain arbitrary components
319
325
 
320
326
  return options.filter(function (option) {
@@ -0,0 +1,5 @@
1
+ declare module '@rio-cloud/rio-uikit/lib/es/AppNavigationBar' {
2
+ import React from 'react';
3
+ import { AppNavigationBarProps } from '../types';
4
+ export default class AppNavigationBar extends React.Component<AppNavigationBarProps> {}
5
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _AppNavigationBar2.default;
12
+ }
13
+ });
14
+
15
+ var _AppNavigationBar2 = _interopRequireDefault(require("../components/navigation/AppNavigationBar"));
@@ -2,6 +2,12 @@ declare module '@rio-cloud/rio-uikit/lib/es/DeviceUtils' {
2
2
  export function hasTouch(): boolean;
3
3
  export function isDesktop(): boolean;
4
4
  export function isMobile(): boolean;
5
+ export function isMobileScreen(): boolean;
5
6
  export function inIframe(): boolean;
6
7
  export function toggleZoomOnMobile(): boolean;
8
+ export type MOBILE_SCREEN = number;
9
+ export type SCREEN_SM = number;
10
+ export type SCREEN_MD = number;
11
+ export type SCREEN_LG = number;
12
+ export type SCREEN_XL = number;
7
13
  }
@@ -0,0 +1,5 @@
1
+ declare module '@rio-cloud/rio-uikit/lib/es/SubNavigation' {
2
+ import React from 'react';
3
+ import { SubNavigationProps } from '../types';
4
+ export default class SubNavigation extends React.Component<SubNavigationProps> {}
5
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _SubNavigation2.default;
12
+ }
13
+ });
14
+
15
+ var _SubNavigation2 = _interopRequireDefault(require("../components/applicationLayout/SubNavigation"));
@@ -3,6 +3,36 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "MOBILE_SCREEN", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _deviceUtils.MOBILE_SCREEN;
10
+ }
11
+ });
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
+ });
6
36
  Object.defineProperty(exports, "hasTouch", {
7
37
  enumerable: true,
8
38
  get: function get() {
@@ -27,6 +57,12 @@ Object.defineProperty(exports, "isMobile", {
27
57
  return _deviceUtils.isMobile;
28
58
  }
29
59
  });
60
+ Object.defineProperty(exports, "isMobileScreen", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _deviceUtils.isMobileScreen;
64
+ }
65
+ });
30
66
  Object.defineProperty(exports, "toggleZoomOnMobile", {
31
67
  enumerable: true,
32
68
  get: function get() {
@@ -0,0 +1,4 @@
1
+ declare module '@rio-cloud/rio-uikit/lib/es/useResizeObserver' {
2
+ import { UseResizeObserver } from '../types';
3
+ export default UseResizeObserver;
4
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _useResizeObserver2.default;
12
+ }
13
+ });
14
+
15
+ var _useResizeObserver2 = _interopRequireDefault(require("../hooks/useResizeObserver"));
@@ -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
 
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _react = require("react");
13
+
14
+ // inspired from https://tobbelindstrom.com/blog/resize-observer-hook/
15
+ var useResizeObserver = function useResizeObserver() {
16
+ var _useState = (0, _react.useState)({}),
17
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
18
+ observerEntry = _useState2[0],
19
+ setObserverEntry = _useState2[1];
20
+
21
+ var _useState3 = (0, _react.useState)(null),
22
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
23
+ node = _useState4[0],
24
+ setNode = _useState4[1];
25
+
26
+ var observer = (0, _react.useRef)(null);
27
+ var disconnect = (0, _react.useCallback)(function () {
28
+ var _observer$current;
29
+
30
+ return (_observer$current = observer.current) === null || _observer$current === void 0 ? void 0 : _observer$current.disconnect();
31
+ }, []);
32
+ var observe = (0, _react.useCallback)(function () {
33
+ observer.current = new ResizeObserver(function (_ref) {
34
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 1),
35
+ entry = _ref2[0];
36
+
37
+ return setObserverEntry(entry);
38
+ });
39
+
40
+ if (node) {
41
+ observer.current.observe(node);
42
+ }
43
+ }, [node]);
44
+ (0, _react.useLayoutEffect)(function () {
45
+ observe();
46
+ return function () {
47
+ return disconnect();
48
+ };
49
+ }, [disconnect, observe]);
50
+ return [setNode, observerEntry];
51
+ };
52
+
53
+ var _default = useResizeObserver;
54
+ exports.default = _default;
@@ -5,19 +5,22 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = useWindowResize;
8
+ exports.default = void 0;
9
9
 
10
10
  var _react = require("react");
11
11
 
12
12
  var _throttle = _interopRequireDefault(require("lodash/fp/throttle"));
13
13
 
14
- function useWindowResize(onResizeCallback) {
14
+ var useWindowResize = function useWindowResize(onResizeCallback) {
15
15
  var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;
16
16
  (0, _react.useEffect)(function () {
17
17
  var throttledCallback = (0, _throttle.default)(timeout, onResizeCallback);
18
- window.addEventListener('resize', throttledCallback, false);
18
+ window.addEventListener('resize', throttledCallback);
19
19
  return function () {
20
- return window.removeEventListener('resize', throttledCallback, true);
20
+ window.removeEventListener('resize', throttledCallback);
21
21
  };
22
22
  }, [onResizeCallback, timeout]);
23
- }
23
+ };
24
+
25
+ var _default = useWindowResize;
26
+ exports.default = _default;
@@ -191,10 +191,14 @@ body .module-content {
191
191
 
192
192
  .ApplicationHeader {
193
193
  .navbar-brand {
194
- background-image: url('@{cdnBase}/svg/common/ico_rio.svg') !important;
194
+ //background-image: url('@{cdnBase}/svg/common/ico_rio.svg') !important;
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
  }
@@ -554,6 +560,29 @@ body .module-content {
554
560
  }
555
561
  }
556
562
 
563
+ &.btn-default {
564
+ .btn {
565
+ .button-variant(
566
+ ~'!important';
567
+ @btn-default-bg;
568
+ @btn-default-border;
569
+ @btn-default-color;
570
+ @btn-default-color;
571
+ @btn-default-color;
572
+ @btn-default-color;
573
+ darken(@btn-default-color, 17%);
574
+ darken(@btn-default-border, 12%);
575
+ darken(@btn-default-border, 12%);
576
+ darken(@btn-default-border, 25%);
577
+ darken(@btn-default-border, 25%);
578
+ @btn-default-bg;
579
+ @btn-default-bg;
580
+ @btn-default-bg;
581
+ @btn-default-bg;
582
+ );
583
+ }
584
+ }
585
+
557
586
  &.btn-white {
558
587
  .btn {
559
588
  .button-variant(
@@ -671,6 +700,24 @@ body .module-content {
671
700
  }
672
701
  }
673
702
 
703
+ &.list-style-position-inside {
704
+ ul, ol {
705
+ list-style-position: inside !important;
706
+ }
707
+ }
708
+
709
+ &.large-panel-border {
710
+ > .section-content-container.panel {
711
+ border-width: 3px;
712
+ }
713
+
714
+ &.panel-border-color-lighter {
715
+ > .section-content-container.panel {
716
+ border-color: @gray-lighter;
717
+ }
718
+ }
719
+ }
720
+
674
721
  // Section Wrapper Inner Container
675
722
  .section-content-container {
676
723
  height: 100%;
@@ -1526,6 +1573,26 @@ body .module-content {
1526
1573
  }
1527
1574
  }
1528
1575
  }
1576
+
1577
+ &-always {
1578
+ .section-layout {
1579
+ padding-left: 0;
1580
+ padding-right: 0;
1581
+
1582
+ .section-layout-container {
1583
+ max-width: none;
1584
+ padding-left: 0;
1585
+ padding-right: 0;
1586
+
1587
+ .section-layout-container-row {
1588
+ .section-content-container-col {
1589
+ padding-left: 0;
1590
+ padding-right: 0;
1591
+ }
1592
+ }
1593
+ }
1594
+ }
1595
+ }
1529
1596
  }
1530
1597
 
1531
1598
  &-marketplace-details-panel {
@@ -1594,6 +1661,14 @@ body .module-content {
1594
1661
  }
1595
1662
  }
1596
1663
 
1664
+ &-hide-background-on-mobile {
1665
+ @media (max-width: @screen-ls) {
1666
+ .section-wrapper-background-image {
1667
+ display: none;
1668
+ }
1669
+ }
1670
+ }
1671
+
1597
1672
  &-overlay-light {
1598
1673
  .section-wrapper-background-image,
1599
1674
  .section-content-container-background-image {
@@ -1834,12 +1909,6 @@ blockquote {
1834
1909
  .anchor {
1835
1910
  margin-top: -50px;
1836
1911
  }
1837
-
1838
- // .preset-rimless {
1839
- // > .anchor {
1840
- // margin-top: -50px;
1841
- // }
1842
- // }
1843
1912
  }
1844
1913
 
1845
1914
  .ApplicationLayoutBody {
@@ -173,7 +173,7 @@
173
173
  display: none;
174
174
  }
175
175
 
176
- .navbar-nav {
176
+ .nav {
177
177
  display: flex;
178
178
  justify-content: center !important;
179
179