@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.
- package/lib/.DS_Store +0 -0
- package/lib/components/.DS_Store +0 -0
- package/lib/components/applicationHeader/AppMenu.js +3 -2
- package/lib/components/applicationHeader/AppMenuDropdown.js +7 -5
- package/lib/components/applicationHeader/ApplicationHeader.js +84 -162
- package/lib/components/applicationHeader/MobileAppMenu.js +77 -0
- package/lib/components/applicationHeader/MobileHeaderModal.js +90 -0
- package/lib/components/applicationHeader/MobileSubmoduleNavigation.js +89 -0
- package/lib/components/applicationHeader/NavItems.js +167 -274
- 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/TreeLeaf.js +1 -1
- package/lib/components/assetTree/TreeSelectAll.js +2 -1
- package/lib/components/assetTree/TreeSidebar.js +10 -22
- package/lib/components/assetTree/TypeCounter.js +10 -8
- package/lib/components/charts/AreaChart.js +5 -3
- package/lib/components/charts/BarChart.js +5 -3
- package/lib/components/charts/ChartTooltip.js +14 -0
- package/lib/components/charts/LineChart.js +4 -2
- package/lib/components/charts/PieChart.js +5 -3
- package/lib/components/charts/RadialBarChart.js +4 -4
- package/lib/components/charts/chartHelper.js +1 -1
- package/lib/components/dialog/Dialog.js +4 -4
- package/lib/components/dialog/baseDialogPropTypes.js +1 -1
- package/lib/components/map/.DS_Store +0 -0
- package/lib/components/map/components/.DS_Store +0 -0
- package/lib/components/map/components/features/.DS_Store +0 -0
- package/lib/components/map/components/features/settings/.DS_Store +0 -0
- package/lib/components/steppedProgressBar/SteppedProgressBar.js +59 -107
- package/lib/es/ChartTooltip.d.ts +5 -0
- package/lib/es/ChartTooltip.js +15 -0
- package/lib/es/Colors.js +1 -1
- 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/VolkswagenApplicationHeader.d.ts +5 -0
- package/lib/es/VolkswagenApplicationHeader.js +15 -0
- package/lib/es/deviceUtils.js +24 -0
- package/lib/hooks/useClickOutside.js +2 -1
- package/lib/index.js +1 -1
- package/lib/style/css/_exports/rio-website.less +36 -22
- package/lib/style/css/_exports/vw-uikit.less +5 -1
- package/lib/style/css/components/ApplicationHeader.less +288 -257
- package/lib/style/css/components/ApplicationLayout.less +7 -5
- package/lib/style/css/components/AssetTree.less +3 -3
- package/lib/style/css/variables.less +1 -1
- package/lib/style/fonts/rioglyph/rioglyph.less +56 -1
- package/lib/style/fonts/rioglyph/rioglyph.svg +68 -2
- package/lib/style/fonts/rioglyph/rioglyph.ttf +0 -0
- package/lib/style/fonts/rioglyph/rioglyph.woff +0 -0
- package/lib/styles/animations/_imports.less +10 -0
- package/lib/styles/animations/collapse.less +16 -0
- package/lib/styles/animations/fade.less +28 -0
- package/lib/styles/animations/pinging.less +7 -0
- package/lib/styles/animations/pulsing.less +5 -0
- package/lib/styles/animations/rotate.less +52 -0
- package/lib/styles/animations/scale.less +35 -0
- package/lib/styles/animations/slide.less +39 -0
- package/lib/styles/animations/spinning.less +4 -0
- package/lib/styles/animations/transition.less +129 -0
- package/lib/styles/animations/translate.less +28 -0
- package/lib/styles/components/Activity.less +93 -0
- package/lib/styles/components/ApplicationHeader.less +469 -0
- package/lib/styles/components/ApplicationLayout.less +240 -0
- package/lib/styles/components/AssetTree.less +439 -0
- package/lib/styles/components/AutoSuggest.less +22 -0
- package/lib/styles/components/BottomSheet.less +14 -0
- package/lib/styles/components/Carousel.less +212 -0
- package/lib/styles/components/Checkbox.less +224 -0
- package/lib/styles/components/ClearableInput.less +115 -0
- package/lib/styles/components/Counter.less +142 -0
- package/lib/styles/components/DataTabs.less +100 -0
- package/lib/styles/components/DatePicker.less +391 -0
- package/lib/styles/components/Dialog.less +484 -0
- package/lib/styles/components/Dropdown.less +185 -0
- package/lib/styles/components/Expander.less +196 -0
- package/lib/styles/components/FilePicker.less +8 -0
- package/lib/styles/components/ListMenu.less +77 -0
- package/lib/styles/components/MapHere.less +91 -0
- package/lib/styles/components/MapMarker.less +347 -0
- package/lib/styles/components/MapSettings.less +140 -0
- package/lib/styles/components/NoData.less +8 -0
- package/lib/styles/components/Notification.less +234 -0
- package/lib/styles/components/RadioButton.less +173 -0
- package/lib/styles/components/Resizer.less +43 -0
- package/lib/styles/components/Select.less +287 -0
- package/lib/styles/components/Sidebar.less +157 -0
- package/lib/styles/components/Slider.less +278 -0
- package/lib/styles/components/Spinner.less +49 -0
- package/lib/styles/components/StatsWidget.less +111 -0
- package/lib/styles/components/SteppedProgressBar.less +310 -0
- package/lib/styles/components/SupportMarker.less +34 -0
- package/lib/styles/components/Switch.less +145 -0
- package/lib/styles/components/TableSettingsDialog.less +96 -0
- package/lib/styles/components/TableSortArrows.less +54 -0
- package/lib/styles/components/TableToolbar.less +121 -0
- package/lib/styles/components/Tag.less +246 -0
- package/lib/styles/components/TagManager.less +4 -0
- package/lib/styles/components/Teaser.less +12 -0
- package/lib/styles/components/Timeline.less +69 -0
- package/lib/styles/components/Tooltip.less +222 -0
- package/lib/styles/design/alerts.less +55 -0
- package/lib/styles/design/aspect-ratio.less +23 -0
- package/lib/styles/design/badges.less +120 -0
- package/lib/styles/design/blockquote.less +49 -0
- package/lib/styles/design/border.less +192 -0
- package/lib/styles/design/breadcrumbs.less +20 -0
- package/lib/styles/design/button-groups.less +194 -0
- package/lib/styles/design/buttons.less +543 -0
- package/lib/styles/design/callouts.less +27 -0
- package/lib/styles/design/caret.less +28 -0
- package/lib/styles/design/close.less +12 -0
- package/lib/styles/design/code.less +45 -0
- package/lib/styles/design/colors.less +202 -0
- package/lib/styles/design/cols.less +56 -0
- package/lib/styles/design/container.less +29 -0
- package/lib/styles/design/cursors.less +19 -0
- package/lib/styles/design/custom.less +20 -0
- package/lib/styles/design/ellipsis.less +46 -0
- package/lib/styles/design/flexgrid.less +7 -0
- package/lib/styles/design/fonts.less +458 -0
- package/lib/styles/design/form-input-groups.less +245 -0
- package/lib/styles/design/form-inputs.less +655 -0
- package/lib/styles/design/iframe.less +80 -0
- package/lib/styles/design/images.less +47 -0
- package/lib/styles/design/labels.less +66 -0
- package/lib/styles/design/list-group.less +100 -0
- package/lib/styles/design/navs.less +262 -0
- package/lib/styles/design/normalize.less +436 -0
- package/lib/styles/design/opacity.less +26 -0
- package/lib/styles/design/overflow.less +1 -0
- package/lib/styles/design/pagination.less +161 -0
- package/lib/styles/design/panels.less +105 -0
- package/lib/styles/design/popovers.less +119 -0
- package/lib/styles/design/position.less +16 -0
- package/lib/styles/design/progress-bars.less +131 -0
- package/lib/styles/design/responsive/_imports.less +67 -0
- package/lib/styles/design/responsive/backgrounds.less +32 -0
- package/lib/styles/design/responsive/display.less +9 -0
- package/lib/styles/design/responsive/flexgrid.less +75 -0
- package/lib/styles/design/responsive/floating.less +4 -0
- package/lib/styles/design/responsive/gap.less +41 -0
- package/lib/styles/design/responsive/margin.less +127 -0
- package/lib/styles/design/responsive/overflow.less +16 -0
- package/lib/styles/design/responsive/padding.less +71 -0
- package/lib/styles/design/responsive/position.less +103 -0
- package/lib/styles/design/responsive/sizing.less +96 -0
- package/lib/styles/design/responsive/text.less +71 -0
- package/lib/styles/design/responsive-embed.less +31 -0
- package/lib/styles/design/responsive-video.less +22 -0
- package/lib/styles/design/rioglyph.less +13 -0
- package/lib/styles/design/rounded.less +44 -0
- package/lib/styles/design/shadows.less +65 -0
- package/lib/styles/design/sizing.less +18 -0
- package/lib/styles/design/tables.less +855 -0
- package/lib/styles/design/text.less +201 -0
- package/lib/styles/design/theme.less +206 -0
- package/lib/styles/design/thumbnails.less +29 -0
- package/lib/styles/design/transition.less +33 -0
- package/lib/styles/design/type.less +159 -0
- package/lib/styles/design/utilities.less +75 -0
- package/lib/styles/design/visibility.less +186 -0
- package/lib/styles/design/wells.less +17 -0
- package/lib/styles/design/z-index.less +21 -0
- package/lib/styles/filter/_imports.less +1 -0
- package/lib/styles/filter/blur.less +17 -0
- package/lib/styles/mapping/breakpoint-map.less +44 -0
- package/lib/styles/mapping/color-map.less +200 -0
- package/lib/styles/mapping/cols-map.less +15 -0
- package/lib/styles/mapping/numbers-map.less +16 -0
- package/lib/styles/mapping/positions-map.less +21 -0
- package/lib/styles/mapping/sizes-map.less +129 -0
- package/lib/styles/mapping/spacings-map.less +28 -0
- package/lib/styles/mixins/_mixins.less +13 -0
- package/lib/styles/mixins/alerts.less +13 -0
- package/lib/styles/mixins/border-radius.less +16 -0
- package/lib/styles/mixins/buttons.less +117 -0
- package/lib/styles/mixins/clearfix.less +9 -0
- package/lib/styles/mixins/cols.less +59 -0
- package/lib/styles/mixins/forms.less +61 -0
- package/lib/styles/mixins/panels.less +27 -0
- package/lib/styles/mixins/placeholder.less +17 -0
- package/lib/styles/mixins/reset.less +27 -0
- package/lib/styles/mixins/sizings.less +21 -0
- package/lib/styles/mixins/spinner.less +30 -0
- package/lib/styles/mixins/table.less +26 -0
- package/lib/styles/mixins/tabs.less +4 -0
- package/lib/styles/mixins/text.less +5 -0
- package/lib/styles/print/print.less +163 -0
- package/lib/styles/rio-uikit-core.less +114 -0
- package/lib/styles/rio-uikit-print-utilities.less +16 -0
- package/lib/styles/rio-uikit-responsive-utilities.less +16 -0
- package/lib/styles/shared/colors.json +56 -0
- package/lib/styles/shared/colors.less +73 -0
- package/lib/styles/shared/screens.less +7 -0
- package/lib/styles/shared/text.less +23 -0
- package/lib/styles/variables.less +180 -0
- package/lib/themes/BuyButton/styles/rio-buyButton.less +183 -0
- package/lib/themes/MAN/styles/man-uikit.less +48 -0
- package/lib/themes/RIO/styles/rio-uikit.less +20 -0
- package/lib/themes/SCANIA/styles/scania-uikit.less +36 -0
- package/lib/themes/Volkswagen/components/applicationHeader/VolkswagenApplicationHeader.js +94 -0
- package/lib/themes/Volkswagen/components/applicationHeader/modulePropTypes.js +17 -0
- package/lib/themes/Volkswagen/styles/vw-uikit.less +205 -0
- package/lib/themes/Website/styles/rio-website.less +2236 -0
- package/lib/themes/Xmas/styles/rio-xmas.less +36 -0
- package/lib/types.ts +19 -11
- package/lib/utils/deviceUtils.js +9 -1
- package/lib/version.json +1 -1
- 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
|
|
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
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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
|
-
|
|
171
|
-
|
|
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
|
-
|
|
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
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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
|
-
|
|
266
|
-
|
|
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
|
|
181
|
+
className: "submodule",
|
|
182
|
+
onClick: handleCollapsedNavItemSelected,
|
|
270
183
|
"data-nav-item-key": navItem.key
|
|
271
184
|
}, navItem.route);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
-
|
|
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
|
-
},
|
|
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,
|