@geotab/zenith 1.26.0 → 1.26.1-beta.0
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/README.md +10 -0
- package/dist/card/card.d.ts +1 -1
- package/dist/card/card.js +6 -2
- package/dist/chart/lineChart/getDefaultDatasetStyle.js +4 -0
- package/dist/dataGrid/columns/checkboxColumn/checkboxColumnWrapper.js +2 -2
- package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.d.ts +1 -0
- package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +8 -5
- package/dist/dataGrid/withSelectableRows/withSelectableRows.js +16 -2
- package/dist/dropdown/dropdownPopup.js +5 -2
- package/dist/filtersBar/filtersContainer/filtersContainer.js +8 -7
- package/dist/formStepperButtons/formStepperButtons.d.ts +2 -1
- package/dist/formStepperButtons/formStepperButtons.js +2 -2
- package/dist/header/components/collapsedItemsControl/collapsedItemsControl.js +1 -4
- package/dist/header/header.js +1 -1
- package/dist/index.css +36 -25
- package/dist/inputAdornments/inputAdornments.d.ts +2 -0
- package/dist/inputAdornments/inputAdornments.js +2 -2
- package/dist/lineChart/utils.js +5 -0
- package/dist/menu/menu.d.ts +1 -0
- package/dist/menu/menu.js +3 -2
- package/dist/mobileSheet/mobileSheet.d.ts +1 -0
- package/dist/mobileSheet/mobileSheet.js +2 -2
- package/dist/nav/navFooter/navFooterAction/navFooterAction.d.ts +13 -0
- package/dist/nav/navFooter/navFooterAction/navFooterAction.js +29 -0
- package/dist/nav/navItem/navItem.d.ts +1 -1
- package/dist/nav/navItem/navItem.js +15 -8
- package/dist/pillExpandable/pillExpandable.d.ts +1 -0
- package/dist/pillExpandable/pillExpandable.js +2 -2
- package/dist/searchInputRaw/searchInputRaw.d.ts +2 -0
- package/dist/searchInputRaw/searchInputRaw.js +2 -2
- package/dist/selectRaw/selectRaw.js +1 -1
- package/dist/table/children/useTableChildren.d.ts +1 -1
- package/dist/table/children/useTableChildren.js +3 -3
- package/dist/table/selectable/selectableHeader.js +1 -1
- package/dist/table/selectable/useSelectableRows.js +28 -82
- package/dist/table/selectable/{calculateSelectionState.d.ts → utils/calculateSelectionState.d.ts} +4 -4
- package/dist/table/selectable/{calculateSelectionState.js → utils/calculateSelectionState.js} +1 -1
- package/dist/table/selectable/utils/checkRow.d.ts +4 -0
- package/dist/table/selectable/utils/checkRow.js +28 -0
- package/dist/table/selectable/utils/getCurrentPageSelection.d.ts +4 -0
- package/dist/table/selectable/utils/getCurrentPageSelection.js +28 -0
- package/dist/table/selectable/{getSelection.d.ts → utils/getSelection.d.ts} +1 -1
- package/dist/table/selectable/utils/isRowChecked.d.ts +8 -0
- package/dist/table/selectable/utils/isRowChecked.js +20 -0
- package/dist/table/table.js +4 -1
- package/dist/textInputRaw/textInputRaw.d.ts +1 -0
- package/dist/textInputRaw/textInputRaw.js +1 -1
- package/dist/utils/localization/translations/cs-json.d.ts +1 -0
- package/dist/utils/localization/translations/cs-json.js +2 -1
- package/dist/utils/localization/translations/de-json.d.ts +1 -0
- package/dist/utils/localization/translations/de-json.js +2 -1
- package/dist/utils/localization/translations/en-json.d.ts +2 -0
- package/dist/utils/localization/translations/en-json.js +3 -1
- package/dist/utils/localization/translations/es-json.d.ts +1 -0
- package/dist/utils/localization/translations/es-json.js +2 -1
- package/dist/utils/localization/translations/fr-FR-json.d.ts +1 -0
- package/dist/utils/localization/translations/fr-FR-json.js +2 -1
- package/dist/utils/localization/translations/fr-json.d.ts +1 -0
- package/dist/utils/localization/translations/fr-json.js +2 -1
- package/dist/utils/localization/translations/id-json.d.ts +1 -0
- package/dist/utils/localization/translations/id-json.js +2 -1
- package/dist/utils/localization/translations/it-json.d.ts +1 -0
- package/dist/utils/localization/translations/it-json.js +2 -1
- package/dist/utils/localization/translations/ja-json.d.ts +1 -0
- package/dist/utils/localization/translations/ja-json.js +2 -1
- package/dist/utils/localization/translations/ko-KR-json.d.ts +1 -0
- package/dist/utils/localization/translations/ko-KR-json.js +2 -1
- package/dist/utils/localization/translations/ms-json.d.ts +1 -0
- package/dist/utils/localization/translations/ms-json.js +2 -1
- package/dist/utils/localization/translations/nl-json.d.ts +1 -0
- package/dist/utils/localization/translations/nl-json.js +2 -1
- package/dist/utils/localization/translations/pl-json.d.ts +1 -0
- package/dist/utils/localization/translations/pl-json.js +2 -1
- package/dist/utils/localization/translations/pt-BR-json.d.ts +1 -0
- package/dist/utils/localization/translations/pt-BR-json.js +2 -1
- package/dist/utils/localization/translations/sv-json.d.ts +1 -0
- package/dist/utils/localization/translations/sv-json.js +2 -1
- package/dist/utils/localization/translations/th-json.d.ts +1 -0
- package/dist/utils/localization/translations/th-json.js +2 -1
- package/dist/utils/localization/translations/tr-json.d.ts +1 -0
- package/dist/utils/localization/translations/tr-json.js +2 -1
- package/dist/utils/localization/translations/zh-Hans-json.d.ts +1 -0
- package/dist/utils/localization/translations/zh-Hans-json.js +2 -1
- package/dist/utils/localization/translations/zh-TW-json.d.ts +1 -0
- package/dist/utils/localization/translations/zh-TW-json.js +2 -1
- package/dist/utils/useScrollWithAndroidKeyboard.d.ts +5 -0
- package/dist/utils/useScrollWithAndroidKeyboard.js +37 -0
- package/package.json +1 -1
- /package/dist/table/selectable/{getSelection.js → utils/getSelection.js} +0 -0
package/README.md
CHANGED
|
@@ -40,6 +40,16 @@ Zenith library provides components defined in Zenith Design System. It includes
|
|
|
40
40
|
|
|
41
41
|
## Change log
|
|
42
42
|
|
|
43
|
+
### 1.26.1
|
|
44
|
+
|
|
45
|
+
* Allow disabling next/submit buttons in `FormStepperButtons`
|
|
46
|
+
* Fix scrolling dropdown on mobile
|
|
47
|
+
* Make title optional in `Card`
|
|
48
|
+
* Fix point hover size in `Chart`
|
|
49
|
+
* Update the logic of selecting rows in `Table`
|
|
50
|
+
* Allow custom icon in `PillExpandable`
|
|
51
|
+
* Header toolbar updates (reduce max number of visible buttons, make "More" button to be an icon button)
|
|
52
|
+
|
|
43
53
|
### 1.26.0
|
|
44
54
|
|
|
45
55
|
* Nested rows in `Table`
|
package/dist/card/card.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export interface ICard extends IZenComponentProps, IZenGridItem {
|
|
|
18
18
|
* @param status - will be removed in the next major release
|
|
19
19
|
*/
|
|
20
20
|
status?: TCardStatus;
|
|
21
|
-
title
|
|
21
|
+
title?: string;
|
|
22
22
|
icon?: FunctionComponent<IIcon>;
|
|
23
23
|
iconType?: TIconType;
|
|
24
24
|
secondary?: string;
|
package/dist/card/card.js
CHANGED
|
@@ -55,7 +55,9 @@ const getIconFromStatus_1 = require("./helpers/getIconFromStatus");
|
|
|
55
55
|
const getIconTypeFromStatus_1 = require("./helpers/getIconTypeFromStatus");
|
|
56
56
|
exports.DEFAULT_CARD_SIZE = "S";
|
|
57
57
|
// eslint-disable-next-line @typescript-eslint/naming-convention, react/prop-types
|
|
58
|
-
const Card =
|
|
58
|
+
const Card =
|
|
59
|
+
// eslint-disable-next-line complexity
|
|
60
|
+
(props) => {
|
|
59
61
|
const { size, children, title, icon, iconType, secondary, status, date, tooltip, className = "", link, cardContentClasses = "", tooltipAlignment, tooltipSize, fullWidth, scrollableContent = true, autoHeight = false, fullHeight = false } = props;
|
|
60
62
|
const { translate } = (0, useLanguage_1.useLanguage)();
|
|
61
63
|
const [deviceType, setDeviceType] = (0, react_1.useState)(deviceType_1.DeviceType.Mobile);
|
|
@@ -148,7 +150,9 @@ const Card = (props) => {
|
|
|
148
150
|
titleIconType: iconType
|
|
149
151
|
};
|
|
150
152
|
}, [icon, iconType, status]);
|
|
151
|
-
|
|
153
|
+
const isHeaderPrimaryVisible = title || icon || link || !!headerActions.length || date || !!favoriteButton || !!tooltip || !!menuActions.length;
|
|
154
|
+
const isHeaderVisible = isHeaderPrimaryVisible || secondary;
|
|
155
|
+
return (0, jsx_runtime_1.jsxs)(cardContainer_1.CardContainer, { isMobile: isMobile, fullWidth: isFullWidth, fullHeight: isFullHeight, autoHeight: isAutoHeight, scrollable: isScrollable, ref: containerRef, size: size || "S", className: (0, classNames_1.classNames)(["zen-card", !isHeaderVisible ? "zen-card--no-header" : "", className]), children: [isHeaderVisible ? (0, jsx_runtime_1.jsxs)("div", { className: "zen-card__header", ref: headerRef, children: [isHeaderPrimaryVisible && (0, jsx_runtime_1.jsxs)("div", { className: "zen-card__header-primary", children: [title && (0, jsx_runtime_1.jsx)(title_1.Title, { id: titleId, link: link, isMobile: isMobile, title: title, icon: titleIcon, iconType: titleIconType }), (0, jsx_runtime_1.jsxs)("div", { className: "zen-card__header-right", children: [!!headerActions.length && headerActions, date ? (0, jsx_runtime_1.jsx)("span", { className: dateClassName, children: date }) : null, favoriteButton, tooltip && (0, jsx_runtime_1.jsx)(status_1.Status, { title: title, status: status, isMobile: isMobile, tooltip: tooltip, tooltipAlignment: tooltipAlignment, tooltipSize: tooltipSize }), !!menuActions.length && (0, jsx_runtime_1.jsx)(menu_1.Menu, { trigger: menuTrigger, title: title || translate("Actions"), children: menuActions.map(action => (0, react_1.createElement)(menu_1.Menu.Item, Object.assign({ key: action.props.id }, action.props))) })] })] }), secondary ? (0, jsx_runtime_1.jsx)("div", { className: "zen-card__secondary", children: secondary }) : null] }) : null, (0, jsx_runtime_1.jsx)("div", { className: cardContentClassName, children: content })] });
|
|
152
156
|
};
|
|
153
157
|
exports.Card = Card;
|
|
154
158
|
exports.TRANSLATIONS = [
|
|
@@ -6,6 +6,7 @@ const getDatasetColor_1 = require("./getDatasetColor");
|
|
|
6
6
|
const defaultLineOptions = {
|
|
7
7
|
borderWidth: 2,
|
|
8
8
|
pointRadius: 5,
|
|
9
|
+
pointHoverRadius: 7,
|
|
9
10
|
pointHitRadius: 10
|
|
10
11
|
};
|
|
11
12
|
const getDefaultDatasetStyle = (dataSet, dsIndex) => {
|
|
@@ -20,8 +21,11 @@ const getDefaultDatasetStyle = (dataSet, dsIndex) => {
|
|
|
20
21
|
}
|
|
21
22
|
if (!dataSet.pointRadius) {
|
|
22
23
|
const pointRs = Array(dataSet.data.length).fill(0);
|
|
24
|
+
const pointHoverRs = Array(dataSet.data.length).fill(lineStyle.pointRadius);
|
|
23
25
|
pointRs[pointRs.length - 1] = lineStyle.pointRadius;
|
|
24
26
|
newDataSet.pointRadius = pointRs;
|
|
27
|
+
pointHoverRs[pointHoverRs.length - 1] = lineStyle.pointHoverRadius;
|
|
28
|
+
newDataSet.pointHoverRadius = pointHoverRs;
|
|
25
29
|
newDataSet.pointHitRadius = lineStyle.pointHitRadius;
|
|
26
30
|
newDataSet.pointBackgroundColor = dataSet.pointBackgroundColor || baseColor;
|
|
27
31
|
}
|
|
@@ -72,7 +72,7 @@ class CheckboxColumnWrapper extends simpleEventHandler_1.SimpleEventHandler {
|
|
|
72
72
|
configurable: true,
|
|
73
73
|
writable: true,
|
|
74
74
|
value: (checked) => {
|
|
75
|
-
this.selectionState = checked ? SelectionState.
|
|
75
|
+
this.selectionState = checked ? SelectionState.All : SelectionState.None;
|
|
76
76
|
this.fire("change-all", [checked]);
|
|
77
77
|
}
|
|
78
78
|
});
|
|
@@ -99,7 +99,7 @@ class CheckboxColumnWrapper extends simpleEventHandler_1.SimpleEventHandler {
|
|
|
99
99
|
if (this.options.header === false) {
|
|
100
100
|
return title;
|
|
101
101
|
}
|
|
102
|
-
const cell = (0, jsx_runtime_1.jsxs)(checkboxHeaderCell_1.CheckboxHeaderCell, { label: this.options.headerTitle || "", actions: true, checked: this.state === SelectionState.CurrentPage || this.state === SelectionState.All, indeterminate: this.state === SelectionState.Partial,
|
|
102
|
+
const cell = (0, jsx_runtime_1.jsxs)(checkboxHeaderCell_1.CheckboxHeaderCell, { label: this.options.headerTitle || "", actions: true, checked: this.state === SelectionState.CurrentPage || this.state === SelectionState.All, indeterminate: this.state === SelectionState.Partial, onChange: this.changeHandlerAll, children: [(0, jsx_runtime_1.jsx)(checkboxHeaderCell_1.CheckboxHeaderCell.Actions, { ref: this.menuTriggerRef, onClick: this.actionsClickHandler }), (0, jsx_runtime_1.jsx)(checkboxHeaderCell_1.CheckboxHeaderCell.Content, { children: title })] });
|
|
103
103
|
return cell;
|
|
104
104
|
}
|
|
105
105
|
}
|
|
@@ -10,6 +10,7 @@ export interface IBulkActionsProps extends IZenComponentProps {
|
|
|
10
10
|
selected: number;
|
|
11
11
|
allSelected?: boolean;
|
|
12
12
|
onClearSelection: () => void;
|
|
13
|
+
onSelectAll?: () => void;
|
|
13
14
|
gridType?: DeviceType;
|
|
14
15
|
children?: ReactElement<TBulkAction> | null | (ReactElement<TBulkAction> | null)[];
|
|
15
16
|
/**
|
|
@@ -14,7 +14,8 @@ const useNonFittingElements_1 = require("../../../../header/hooks/useNonFittingE
|
|
|
14
14
|
const useResizeObserver_1 = require("../../../../commonHelpers/hooks/useResizeObserver");
|
|
15
15
|
const menu_1 = require("../../../../menu/menu");
|
|
16
16
|
const iconDotVertical_1 = require("../../../../icons/iconDotVertical");
|
|
17
|
-
const
|
|
17
|
+
const button_1 = require("../../../../button/button");
|
|
18
|
+
const BulkActions = ({ selected, allSelected, className, onClearSelection, onSelectAll, gridType = deviceType_1.DeviceType.Desktop, children }) => {
|
|
18
19
|
var _a;
|
|
19
20
|
const { translate } = (0, useLanguage_1.useLanguage)();
|
|
20
21
|
const childrenArray = (0, react_1.useMemo)(() => react_1.Children.toArray(children), [children]);
|
|
@@ -26,10 +27,12 @@ const BulkActions = ({ selected, allSelected, className, onClearSelection, gridT
|
|
|
26
27
|
const maxWidth = (result === null || result === void 0 ? void 0 : result.contentRect.width) || 1000;
|
|
27
28
|
const { visibleElements, nonFittingElements, hiddenContainerRef } = (0, useNonFittingElements_1.useNonFittingElements)({ maxWidth, data: childrenArray, hiddenElementsCountToRender: 10, widthDelta });
|
|
28
29
|
const isMobile = gridType === deviceType_1.DeviceType.Mobile;
|
|
29
|
-
const text =
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
const text = translate("{1} selected").replace("{1}", allSelected ? translate("All") : selected.toFixed());
|
|
31
|
+
return (0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-bulk-actions", className || "", isMobile ? "zen-bulk-actions--condensed" : ""]), ref: bulkActionsElement, children: [(0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { className: "zen-bulk-actions__button-clear", icon: iconClose_1.IconClose, iconPosition: textIconButton_1.ButtonIconPosition.Start, iconSize: "large", type: "tertiary-black", title: translate("Clear selection"), "aria-label": translate("Clear selection"), onClick: onClearSelection }), (0, jsx_runtime_1.jsx)("span", { className: "zen-bulk-actions__number-of-selected ellipsis", children: text }), onSelectAll
|
|
32
|
+
? (0, jsx_runtime_1.jsx)(button_1.Button, { type: "tertiary", className: "zen-bulk-actions__select-all", disabled: allSelected, onClick: onSelectAll, children: translate("Select all") })
|
|
33
|
+
: null, (0, jsx_runtime_1.jsxs)("div", { className: "zen-bulk-actions__action-button-holder", ref: buttonHolder, children: [react_1.Children.map(visibleElements, element => (0, react_1.cloneElement)(element, {
|
|
34
|
+
disabled: selected > 0 || allSelected ? element.props.disabled : true
|
|
35
|
+
})), nonFittingElements.length > 0
|
|
33
36
|
? (0, jsx_runtime_1.jsx)(menu_1.Menu, { title: translate("More"), trigger: (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { ref: moreButtonRef, className: "zen-bulk-actions__action-button zen-bulk-actions__action-button-more", icon: iconDotVertical_1.IconDotVertical, iconPosition: textIconButton_1.ButtonIconPosition.Start, iconSize: "large", type: isMobile ? "tertiary-black" : "secondary", title: translate("More"), "aria-label": translate("More") }), children: nonFittingElements.filter(el => el.props).map(child => (0, jsx_runtime_1.jsx)(menu_1.Menu.Item, { id: child.props.id, name: child.props.title, icon: child.props.icon, disabled: child.props.disabled, onClick: child.props.clickHandler, link: child.props.link }, child.props.id)) })
|
|
34
37
|
: null, (0, jsx_runtime_1.jsx)("div", { className: "zen-bulk-actions__hidden-elements", ref: hiddenContainerRef, children: childrenArray })] })] });
|
|
35
38
|
};
|
|
@@ -115,6 +115,16 @@ function InnerList(props, ref) {
|
|
|
115
115
|
});
|
|
116
116
|
}, [selections, entities, options, onSelect, selection === null || selection === void 0 ? void 0 : selection.turnOffSelectAll]);
|
|
117
117
|
const onSelectListener = (0, react_1.useCallback)(([id, checked]) => {
|
|
118
|
+
if (allSelected) {
|
|
119
|
+
const newSelection = new Set(entities.map(entity => entity.id));
|
|
120
|
+
newSelection.delete(id);
|
|
121
|
+
onSelect({
|
|
122
|
+
selected: [...newSelection],
|
|
123
|
+
allSelected: false,
|
|
124
|
+
turnOffSelectAll: selection.turnOffSelectAll
|
|
125
|
+
});
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
118
128
|
if (checked) {
|
|
119
129
|
selections.add(id);
|
|
120
130
|
}
|
|
@@ -129,8 +139,12 @@ function InnerList(props, ref) {
|
|
|
129
139
|
});
|
|
130
140
|
}, [entities, selections, allSelected, options, onSelect, selection === null || selection === void 0 ? void 0 : selection.turnOffSelectAll]);
|
|
131
141
|
const onSelectAll = (0, react_1.useCallback)(([checked]) => {
|
|
132
|
-
|
|
133
|
-
|
|
142
|
+
onSelect({
|
|
143
|
+
selected: [],
|
|
144
|
+
allSelected: checked,
|
|
145
|
+
turnOffSelectAll: selection === null || selection === void 0 ? void 0 : selection.turnOffSelectAll
|
|
146
|
+
});
|
|
147
|
+
}, [onSelect, selection === null || selection === void 0 ? void 0 : selection.turnOffSelectAll]);
|
|
134
148
|
const onTriggerClick = (0, react_1.useCallback)(() => {
|
|
135
149
|
setIsOpen(!isOpen);
|
|
136
150
|
}, [isOpen]);
|
|
@@ -12,20 +12,23 @@ const searchInput_1 = require("../searchInput/searchInput");
|
|
|
12
12
|
const useLanguage_1 = require("../utils/localization/useLanguage");
|
|
13
13
|
const footerButtons_1 = require("../footerButtons/footerButtons");
|
|
14
14
|
const checkbox_1 = require("../checkbox/checkbox");
|
|
15
|
+
const useScrollWithAndroidKeyboard_1 = require("../utils/useScrollWithAndroidKeyboard");
|
|
15
16
|
const DropdownPopup = ({ alignment, triggerRef, classNamePopup, isMobile, inputValue, dialogAriaLabel, disabled, filterName, handleApplyClick, handleClearClick, handleTriggerClick, onInputChange, hasApplyButton, inputId, isClearButtonDisabled, isWithFooter, placeholder, searchField, isApplyButtonDisabled, isOpenCombo, inputRef, contentRef, children, onReadyForFocus, handleCheckboxChange, checkboxLabel, isChecked }) => {
|
|
16
17
|
const { translate } = (0, useLanguage_1.useLanguage)();
|
|
17
18
|
const triggerId = (0, react_1.useId)();
|
|
19
|
+
const { handleFocus, handleBlur, wrapperClass } = (0, useScrollWithAndroidKeyboard_1.useScrollWithAndroidKeyboard)();
|
|
18
20
|
const memoizedHandleHide = (0, react_1.useCallback)(() => {
|
|
19
21
|
handleTriggerClick(false);
|
|
20
22
|
}, [handleTriggerClick]);
|
|
21
|
-
const memoizedMobileContent = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [searchField ? (0, jsx_runtime_1.jsx)("div", { className: "zen-dropdown-mobile-sheet__search-container", children: (0, jsx_runtime_1.jsx)(searchInput_1.SearchInput, { className: "zen-dropdown-mobile-sheet__search", onChange: onInputChange, value: inputValue || "", ref: inputRef, id: inputId || triggerId, disabled: disabled, placeholder: placeholder || translate("Filter by group") }) }) : null, handleCheckboxChange ? (0, jsx_runtime_1.jsx)("div", { className: "zen-dropdown-mobile-sheet__checkbox-container", children: (0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { checked: isChecked, onChange: handleCheckboxChange, children: checkboxLabel }) }) : null, (0, jsx_runtime_1.jsx)("div", { ref: contentRef, children: children })] }), [
|
|
23
|
+
const memoizedMobileContent = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [searchField ? (0, jsx_runtime_1.jsx)("div", { className: "zen-dropdown-mobile-sheet__search-container", children: (0, jsx_runtime_1.jsx)(searchInput_1.SearchInput, { className: "zen-dropdown-mobile-sheet__search", onChange: onInputChange, onBlur: handleBlur, onFocus: handleFocus, value: inputValue || "", ref: inputRef, id: inputId || triggerId, disabled: disabled, placeholder: placeholder || translate("Filter by group") }) }) : null, handleCheckboxChange ? (0, jsx_runtime_1.jsx)("div", { className: "zen-dropdown-mobile-sheet__checkbox-container", children: (0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { checked: isChecked, onChange: handleCheckboxChange, children: checkboxLabel }) }) : null, (0, jsx_runtime_1.jsx)("div", { ref: contentRef, children: children })] }), [searchField, onInputChange, handleBlur, handleFocus, inputValue, inputRef, inputId, triggerId, disabled, placeholder,
|
|
24
|
+
translate, handleCheckboxChange, isChecked, checkboxLabel, contentRef, children]);
|
|
22
25
|
const memoizedMobileFooter = (0, react_1.useMemo)(() => {
|
|
23
26
|
if (!isWithFooter) {
|
|
24
27
|
return null;
|
|
25
28
|
}
|
|
26
29
|
return (0, jsx_runtime_1.jsxs)(footerButtons_1.FooterButtons, { children: [hasApplyButton ? (0, jsx_runtime_1.jsx)(button_1.Button, { onClick: handleApplyClick, type: buttonType_1.ButtonType.Primary, disabled: isApplyButtonDisabled, className: "zen-ellipsis", title: translate("Apply"), children: translate("Apply") }) : null, (0, jsx_runtime_1.jsx)(button_1.Button, { onClick: handleClearClick, disabled: isClearButtonDisabled, className: "zen-ellipsis", type: buttonType_1.ButtonType.Tertiary, title: translate("Clear"), children: translate("Clear") })] });
|
|
27
30
|
}, [handleApplyClick, handleClearClick, hasApplyButton, isApplyButtonDisabled, isClearButtonDisabled, isWithFooter, translate]);
|
|
28
|
-
const memoizedMobileView = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsxs)(mobileSheet_1.MobileSheet, { className: (0, classNames_1.classNames)(["zen-dropdown--mobile", classNamePopup || ""]), label: "label", triggerRef: triggerRef, isOpen: isOpenCombo, onHidePanel: memoizedHandleHide, onCloseClick: memoizedHandleHide, useTrapFocusWithTrigger: true, onReadyForFocus: onReadyForFocus, children: [(0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Title, { className: "zen-dropdown-mobile-sheet__title", children: filterName || placeholder || "" }), (0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Content, { children: memoizedMobileContent }), (0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Footer, { children: memoizedMobileFooter })] }), [classNamePopup,
|
|
31
|
+
const memoizedMobileView = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsxs)(mobileSheet_1.MobileSheet, { className: (0, classNames_1.classNames)(["zen-dropdown--mobile", classNamePopup || ""]), wrapperClassName: wrapperClass, label: "label", triggerRef: triggerRef, isOpen: isOpenCombo, onHidePanel: memoizedHandleHide, onCloseClick: memoizedHandleHide, useTrapFocusWithTrigger: true, onReadyForFocus: onReadyForFocus, children: [(0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Title, { className: "zen-dropdown-mobile-sheet__title", children: filterName || placeholder || "" }), (0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Content, { children: memoizedMobileContent }), (0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Footer, { children: memoizedMobileFooter })] }), [classNamePopup, wrapperClass, triggerRef, isOpenCombo, memoizedHandleHide, onReadyForFocus, filterName, placeholder, memoizedMobileContent, memoizedMobileFooter]);
|
|
29
32
|
const memoizedDesktopView = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(controlledPopup_1.ControlledPopup, { isOpen: isOpenCombo, className: (0, classNames_1.classNames)(["zen-dropdown-popup zen-shadow-dropdown-default", classNamePopup || ""]), onOpenChange: handleTriggerClick, useTrapFocusWithTrigger: "withTrigger", alignment: alignment, shouldHoldScroll: true, triggerRef: triggerRef, ariaLabel: dialogAriaLabel || placeholder || translate("Filter by group"), recalculateOnScroll: true, children: (0, jsx_runtime_1.jsx)("div", { ref: contentRef, children: children }) }), [alignment, children, classNamePopup, contentRef, dialogAriaLabel, handleTriggerClick, isOpenCombo, placeholder, translate, triggerRef]);
|
|
30
33
|
return isMobile ? memoizedMobileView : memoizedDesktopView;
|
|
31
34
|
};
|
|
@@ -95,13 +95,14 @@ const FiltersContainer = ({ className, children, getDefaultFiltersState, ignoreN
|
|
|
95
95
|
window.requestAnimationFrame(animateScroll);
|
|
96
96
|
}
|
|
97
97
|
}, []);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
98
|
+
const filtersForRender = react_1.Children.map(children, (child, index) => {
|
|
99
|
+
if (child.props.hideInBar && !isFilterStateChanged(child.props.id, child.props.state) || (child.props.hideInBar && ignoreNewFunctionality)) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const childComponent = (0, react_1.cloneElement)(child, { useSidePanelView: false });
|
|
103
|
+
return (0, jsx_runtime_1.jsx)("div", { className: "zen-filters-toolbar__filters-item", children: childComponent }, `filtersBarItem_${index}`);
|
|
104
|
+
});
|
|
105
|
+
return filtersForRender.length ? (0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-filters-toolbar__filters-container", className !== null && className !== void 0 ? className : "", `zen-filters-toolbar__filters-container--${scrollButtonType || "none"}`]), children: [scrollButtonType === "start" || scrollButtonType === "both" ? (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: (0, classNames_1.classNames)(["zen-filters-toolbar__gradient", driveClassNameGradient || "", "zen-filters-toolbar__gradient--left"]) }), (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { title: translate("Scroll left"), className: (0, classNames_1.classNames)(["zen-filters-toolbar__scroller", driveClassNameScroller || "", "zen-filters-toolbar__start"]), icon: iconChevronRight_1.IconChevronRight, iconPosition: textIconButton_1.ButtonIconPosition.Start, onClick: handleScrollButtonClick(scrollableRef.current, -scrollableStep), iconClasses: "zen-filters-toolbar__start-icon" })] }) : null, (0, jsx_runtime_1.jsx)("div", { ref: scrollableRef, className: "zen-filters-toolbar__scrollable", children: (0, jsx_runtime_1.jsx)("div", { className: "zen-filters-toolbar__filters", children: filtersForRender }) }), scrollButtonType === "end" || scrollButtonType === "both" ? (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: (0, classNames_1.classNames)(["zen-filters-toolbar__gradient", driveClassNameGradient || "", "zen-filters-toolbar__gradient--right"]) }), (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { title: translate("Scroll right"), className: (0, classNames_1.classNames)(["zen-filters-toolbar__scroller", driveClassNameScroller || "", "zen-filters-toolbar__end"]), icon: iconChevronRight_1.IconChevronRight, onClick: handleScrollButtonClick(scrollableRef.current, scrollableStep), iconPosition: textIconButton_1.ButtonIconPosition.End })] }) : null] }) : null;
|
|
105
106
|
};
|
|
106
107
|
exports.FiltersContainer = FiltersContainer;
|
|
107
108
|
exports.TRANSLATIONS = [
|
|
@@ -6,5 +6,6 @@ export interface IFormStepperButtons extends Pick<IFormStepper, "current" | "set
|
|
|
6
6
|
onCancel: () => void;
|
|
7
7
|
onPrevious?: () => void;
|
|
8
8
|
onContinue?: () => void;
|
|
9
|
+
isNextDisabled?: boolean;
|
|
9
10
|
}
|
|
10
|
-
export declare const FormStepperButtons: ({ onPrevious, onCancel, onContinue, onSubmit, current, setCurrent, steps, className }: IFormStepperButtons) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const FormStepperButtons: ({ onPrevious, onCancel, onContinue, onSubmit, current, setCurrent, steps, isNextDisabled, className }: IFormStepperButtons) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -7,7 +7,7 @@ const button_1 = require("../button/button");
|
|
|
7
7
|
const iconChevronLeft_1 = require("../icons/iconChevronLeft");
|
|
8
8
|
const textIconButton_1 = require("../textIconButton/textIconButton");
|
|
9
9
|
const useLanguage_1 = require("../utils/localization/useLanguage");
|
|
10
|
-
const FormStepperButtons = ({ onPrevious, onCancel, onContinue, onSubmit, current, setCurrent, steps, className = "" }) => {
|
|
10
|
+
const FormStepperButtons = ({ onPrevious, onCancel, onContinue, onSubmit, current, setCurrent, steps, isNextDisabled, className = "" }) => {
|
|
11
11
|
const { translate } = (0, useLanguage_1.useLanguage)();
|
|
12
12
|
const onPreviousHandler = (0, react_1.useCallback)(() => {
|
|
13
13
|
setCurrent((prev) => {
|
|
@@ -31,6 +31,6 @@ const FormStepperButtons = ({ onPrevious, onCancel, onContinue, onSubmit, curren
|
|
|
31
31
|
}, [onContinue, setCurrent, steps]);
|
|
32
32
|
const isFirstStep = steps[0].id === current;
|
|
33
33
|
const isLastStep = steps[steps.length - 1].id === current;
|
|
34
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: `zen-form-step-buttons ${className}`, children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-form-step-buttons__left", children: !isFirstStep && (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { className: "zen-form-step-buttons__previous", icon: iconChevronLeft_1.IconChevronLeft, type: "tertiary-black", onClick: onPreviousHandler, children: translate("Previous step") }) }), (0, jsx_runtime_1.jsxs)("div", { className: "zen-form-step-buttons__right", children: [(0, jsx_runtime_1.jsx)(button_1.Button, { className: "zen-form-step-buttons__cancel", type: "secondary", onClick: onCancel, children: translate("Cancel") }), isLastStep ? ((0, jsx_runtime_1.jsx)(button_1.Button, { className: "zen-form-step-buttons__submit", type: "primary", onClick: onSubmit, children: translate("Submit") })) : ((0, jsx_runtime_1.jsx)(button_1.Button, { className: "zen-form-step-buttons__continue", type: "primary", onClick: onContinueHandler, children: translate("Continue") }))] })] }));
|
|
34
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: `zen-form-step-buttons ${className}`, children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-form-step-buttons__left", children: !isFirstStep && (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { className: "zen-form-step-buttons__previous", icon: iconChevronLeft_1.IconChevronLeft, type: "tertiary-black", onClick: onPreviousHandler, children: translate("Previous step") }) }), (0, jsx_runtime_1.jsxs)("div", { className: "zen-form-step-buttons__right", children: [(0, jsx_runtime_1.jsx)(button_1.Button, { className: "zen-form-step-buttons__cancel", type: "secondary", onClick: onCancel, children: translate("Cancel") }), isLastStep ? ((0, jsx_runtime_1.jsx)(button_1.Button, { disabled: isNextDisabled, className: "zen-form-step-buttons__submit", type: "primary", onClick: onSubmit, children: translate("Submit") })) : ((0, jsx_runtime_1.jsx)(button_1.Button, { disabled: isNextDisabled, className: "zen-form-step-buttons__continue", type: "primary", onClick: onContinueHandler, children: translate("Continue") }))] })] }));
|
|
35
35
|
};
|
|
36
36
|
exports.FormStepperButtons = FormStepperButtons;
|
|
@@ -12,8 +12,6 @@ const headerButton_1 = require("../../headerButton");
|
|
|
12
12
|
const headerMenu_1 = require("../../headerMenu");
|
|
13
13
|
const headerHelpers_1 = require("../../headerHelpers");
|
|
14
14
|
const iconDotVertical_1 = require("../../../icons/iconDotVertical");
|
|
15
|
-
const useMobile_1 = require("../../../commonHelpers/hooks/useMobile");
|
|
16
|
-
const iconChevronDownSmall_1 = require("../../../icons/iconChevronDownSmall");
|
|
17
15
|
const useDrive_1 = require("../../../utils/theme/useDrive");
|
|
18
16
|
const handleCustomMenuWrapper_1 = require("./utils/handleCustomMenuWrapper");
|
|
19
17
|
exports.HeaderCustomContent = (0, react_1.createContext)({
|
|
@@ -25,9 +23,8 @@ exports.HeaderCustomContentProvider = HeaderCustomContentProvider;
|
|
|
25
23
|
const PageToolbarCollapsedItemsControl = ({ children }) => {
|
|
26
24
|
const { translate } = (0, useLanguage_1.useLanguage)();
|
|
27
25
|
const isDrive = (0, useDrive_1.useDrive)();
|
|
28
|
-
const isMobile = (0, useMobile_1.useMobile)();
|
|
29
26
|
const { content } = (0, react_1.useContext)(exports.HeaderCustomContent);
|
|
30
|
-
const adjustmentButton = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { className: "zen-header-more-button",
|
|
27
|
+
const adjustmentButton = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { "aria-label": translate("More"), className: "zen-header-more-button", type: buttonType_1.ButtonType.TertiaryBlack, iconPosition: textIconButton_1.ButtonIconPosition.End, iconSize: isDrive ? svgIconSize_1.SvgIconSize.Huge : svgIconSize_1.SvgIconSize.Large, icon: iconDotVertical_1.IconDotVertical }), [isDrive, translate]);
|
|
31
28
|
const items = [];
|
|
32
29
|
const clickHandler = (0, react_1.useCallback)((propsOnClick) => ((_, e) => { propsOnClick(e); }), []);
|
|
33
30
|
react_1.Children.forEach(children, (child) => {
|
package/dist/header/header.js
CHANGED
|
@@ -142,7 +142,7 @@ const Header = ({ children, className, onFiltersBarOpen }) => {
|
|
|
142
142
|
const maxWidth = middleWidth || ((_b = toolbarRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width) || 0;
|
|
143
143
|
const actionCount = (0, react_1.useMemo)(() => {
|
|
144
144
|
if (!isMobile) {
|
|
145
|
-
return
|
|
145
|
+
return 2;
|
|
146
146
|
}
|
|
147
147
|
if (memoizedFiltersBar && !searchComponent) {
|
|
148
148
|
return 1;
|
package/dist/index.css
CHANGED
|
@@ -3142,6 +3142,9 @@
|
|
|
3142
3142
|
max-width: 100%;
|
|
3143
3143
|
}
|
|
3144
3144
|
}
|
|
3145
|
+
.zen-side-panel--shown-keyboard.zen-side-panel--bottom-positioned {
|
|
3146
|
+
top: 0;
|
|
3147
|
+
}
|
|
3145
3148
|
.zen-side-panel-cell {
|
|
3146
3149
|
box-sizing: border-box;
|
|
3147
3150
|
padding: 16px;
|
|
@@ -3285,6 +3288,10 @@
|
|
|
3285
3288
|
flex: 1 1 auto;
|
|
3286
3289
|
overflow-y: auto;
|
|
3287
3290
|
}
|
|
3291
|
+
.zen-mobile-sheet--mobile-android {
|
|
3292
|
+
overflow-y: hidden;
|
|
3293
|
+
position: fixed;
|
|
3294
|
+
}
|
|
3288
3295
|
.zen-mobile-sheet-wrapper--drive.zen-mobile-sheet-wrapper--drive,
|
|
3289
3296
|
.zen-mobile-sheet-wrapper--drive-tablet.zen-mobile-sheet-wrapper--drive-tablet {
|
|
3290
3297
|
max-width: 520px;
|
|
@@ -6288,6 +6295,9 @@
|
|
|
6288
6295
|
display: flex;
|
|
6289
6296
|
justify-content: flex-end;
|
|
6290
6297
|
}
|
|
6298
|
+
.zen-card--no-header {
|
|
6299
|
+
grid-template-rows: 1fr;
|
|
6300
|
+
}
|
|
6291
6301
|
.zen-menu-button {
|
|
6292
6302
|
box-sizing: border-box;
|
|
6293
6303
|
width: 100%;
|
|
@@ -6354,7 +6364,6 @@
|
|
|
6354
6364
|
.zen-menu-button__action-text {
|
|
6355
6365
|
overflow: hidden;
|
|
6356
6366
|
text-overflow: ellipsis;
|
|
6357
|
-
max-width: 90%;
|
|
6358
6367
|
white-space: nowrap;
|
|
6359
6368
|
margin-left: 0;
|
|
6360
6369
|
margin-right: auto;
|
|
@@ -7563,7 +7572,7 @@ button.zen-summary__clickable {
|
|
|
7563
7572
|
}
|
|
7564
7573
|
.zen-feed-item__values {
|
|
7565
7574
|
display: grid;
|
|
7566
|
-
grid-template-columns: minmax(104px,
|
|
7575
|
+
grid-template-columns: minmax(104px, 104px) 1fr;
|
|
7567
7576
|
align-items: baseline;
|
|
7568
7577
|
gap: 4px;
|
|
7569
7578
|
overflow-wrap: break-word;
|
|
@@ -7650,7 +7659,7 @@ button.zen-summary__clickable {
|
|
|
7650
7659
|
display: flex;
|
|
7651
7660
|
align-items: center;
|
|
7652
7661
|
}
|
|
7653
|
-
.zen-checkbox-column--no-checkbox .zen-checkbox-column__checkbox
|
|
7662
|
+
.zen-checkbox-column--no-checkbox .zen-checkbox-column__checkbox {
|
|
7654
7663
|
display: none;
|
|
7655
7664
|
}
|
|
7656
7665
|
.zen-main-column,
|
|
@@ -7814,7 +7823,7 @@ button.zen-summary__clickable {
|
|
|
7814
7823
|
display: flex;
|
|
7815
7824
|
align-items: center;
|
|
7816
7825
|
}
|
|
7817
|
-
.zen-selectable-column--no-checkbox .zen-checkbox-column__checkbox
|
|
7826
|
+
.zen-selectable-column--no-checkbox .zen-checkbox-column__checkbox {
|
|
7818
7827
|
visibility: hidden;
|
|
7819
7828
|
}
|
|
7820
7829
|
.zen-sortable-column {
|
|
@@ -8134,8 +8143,6 @@ button.zen-summary__clickable {
|
|
|
8134
8143
|
line-height: 16px;
|
|
8135
8144
|
text-transform: none;
|
|
8136
8145
|
flex: 0 1 auto;
|
|
8137
|
-
margin-left: 4px;
|
|
8138
|
-
margin-right: 16px;
|
|
8139
8146
|
overflow: hidden;
|
|
8140
8147
|
text-overflow: ellipsis;
|
|
8141
8148
|
white-space: nowrap;
|
|
@@ -9332,7 +9339,7 @@ button.zen-summary__clickable {
|
|
|
9332
9339
|
.zen-filters-toolbar {
|
|
9333
9340
|
box-sizing: border-box;
|
|
9334
9341
|
display: flex;
|
|
9335
|
-
justify-content:
|
|
9342
|
+
justify-content: flex-start;
|
|
9336
9343
|
height: 56px;
|
|
9337
9344
|
align-items: center;
|
|
9338
9345
|
border-bottom: 1px solid var(--borders-general);
|
|
@@ -12769,27 +12776,10 @@ button.zen-summary__clickable {
|
|
|
12769
12776
|
background: linear-gradient(to right, transparent 0%, color-mix(in srgb, var(--borders-general) 40%, transparent) 10%, var(--borders-general) 50%, color-mix(in srgb, var(--borders-general) 40%, transparent) 90%, transparent 100%);
|
|
12770
12777
|
border: none;
|
|
12771
12778
|
}
|
|
12772
|
-
.
|
|
12773
|
-
box-sizing: border-box;
|
|
12774
|
-
display: flex;
|
|
12775
|
-
gap: 16px;
|
|
12776
|
-
justify-content: space-between;
|
|
12777
|
-
align-items: center;
|
|
12778
|
-
}
|
|
12779
|
-
.zen-nav-header__actions-icon {
|
|
12780
|
-
border-radius: 50%;
|
|
12781
|
-
}
|
|
12782
|
-
.zen-nav-header__actions {
|
|
12779
|
+
.nav-footer-action {
|
|
12783
12780
|
display: flex;
|
|
12784
12781
|
flex-direction: column;
|
|
12785
12782
|
}
|
|
12786
|
-
.zen-nav-header__action {
|
|
12787
|
-
display: flex;
|
|
12788
|
-
}
|
|
12789
|
-
.zen-nav-header--collapsed {
|
|
12790
|
-
align-items: center;
|
|
12791
|
-
flex-direction: column;
|
|
12792
|
-
}
|
|
12793
12783
|
.zen-nav-item {
|
|
12794
12784
|
box-sizing: border-box;
|
|
12795
12785
|
width: 100%;
|
|
@@ -12926,6 +12916,27 @@ button.zen-summary__clickable {
|
|
|
12926
12916
|
border: 1px solid var(--backgrounds-content-0);
|
|
12927
12917
|
border-radius: 50%;
|
|
12928
12918
|
}
|
|
12919
|
+
.zen-nav-header {
|
|
12920
|
+
box-sizing: border-box;
|
|
12921
|
+
display: flex;
|
|
12922
|
+
gap: 16px;
|
|
12923
|
+
justify-content: space-between;
|
|
12924
|
+
align-items: center;
|
|
12925
|
+
}
|
|
12926
|
+
.zen-nav-header__actions-icon {
|
|
12927
|
+
border-radius: 50%;
|
|
12928
|
+
}
|
|
12929
|
+
.zen-nav-header__actions {
|
|
12930
|
+
display: flex;
|
|
12931
|
+
flex-direction: column;
|
|
12932
|
+
}
|
|
12933
|
+
.zen-nav-header__action {
|
|
12934
|
+
display: flex;
|
|
12935
|
+
}
|
|
12936
|
+
.zen-nav-header--collapsed {
|
|
12937
|
+
align-items: center;
|
|
12938
|
+
flex-direction: column;
|
|
12939
|
+
}
|
|
12929
12940
|
.zen-push {
|
|
12930
12941
|
box-sizing: border-box;
|
|
12931
12942
|
font-family: var(--main-font);
|
|
@@ -7,6 +7,8 @@ export interface IInputAdornments {
|
|
|
7
7
|
disabled?: boolean;
|
|
8
8
|
onChange: React.ChangeEventHandler<HTMLInputElement>;
|
|
9
9
|
onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
|
|
10
|
+
onFocus?: React.FocusEventHandler<HTMLInputElement>;
|
|
11
|
+
onBlur?: React.FocusEventHandler<HTMLInputElement>;
|
|
10
12
|
endAdornment?: ReactNode;
|
|
11
13
|
startAdornment?: ReactNode;
|
|
12
14
|
placeholder?: string;
|
|
@@ -30,7 +30,7 @@ const react_1 = require("react");
|
|
|
30
30
|
const classNames_1 = require("../commonHelpers/classNames/classNames");
|
|
31
31
|
const textInputRaw_1 = require("../textInputRaw/textInputRaw");
|
|
32
32
|
const useDriveClassName_1 = require("../utils/theme/useDriveClassName");
|
|
33
|
-
exports.InputAdornments = React.forwardRef(({ id, value, className = "", disabled, isError, maxLength, onChange, onKeyDown, startAdornment, endAdornment, placeholder, inputType = "text", autoFocus }, ref) => {
|
|
33
|
+
exports.InputAdornments = React.forwardRef(({ id, value, className = "", disabled, isError, maxLength, onChange, onKeyDown, onFocus, onBlur, startAdornment, endAdornment, placeholder, inputType = "text", autoFocus }, ref) => {
|
|
34
34
|
const disabledClassName = disabled ? "zen-input-adornments--disabled" : "";
|
|
35
35
|
const driveComponentClass = (0, useDriveClassName_1.useDriveClassName)("zen-input-adornments");
|
|
36
36
|
const classes = (0, react_1.useMemo)(() => (0, classNames_1.classNames)([
|
|
@@ -45,6 +45,6 @@ exports.InputAdornments = React.forwardRef(({ id, value, className = "", disable
|
|
|
45
45
|
!value ? "zen-input-adornments__wrapper--empty" : "",
|
|
46
46
|
className
|
|
47
47
|
]), [className, endAdornment, value]);
|
|
48
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: classes, children: [!!startAdornment && ((0, jsx_runtime_1.jsx)("div", { className: "zen-input-adornments__adornment zen-input-adornments__adornment--start", children: startAdornment })), (0, jsx_runtime_1.jsx)("div", { className: wrapperClasses, children: (0, jsx_runtime_1.jsx)(textInputRaw_1.TextInputRaw, { ref: ref, id: id, value: value, maxLength: maxLength, isError: isError, placeholder: placeholder, onChange: onChange, onKeyDown: onKeyDown, disabled: disabled, type: inputType, autoFocus: autoFocus, className: "zen-input-adornments__input zen-input-adornments__input--border-none" }) }), !!endAdornment && ((0, jsx_runtime_1.jsx)("div", { className: "zen-input-adornments__adornment zen-input-adornments__adornment--end", children: endAdornment }))] }));
|
|
48
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: classes, children: [!!startAdornment && ((0, jsx_runtime_1.jsx)("div", { className: "zen-input-adornments__adornment zen-input-adornments__adornment--start", children: startAdornment })), (0, jsx_runtime_1.jsx)("div", { className: wrapperClasses, children: (0, jsx_runtime_1.jsx)(textInputRaw_1.TextInputRaw, { ref: ref, id: id, value: value, maxLength: maxLength, isError: isError, placeholder: placeholder, onChange: onChange, onKeyDown: onKeyDown, onBlur: onBlur, onFocus: onFocus, disabled: disabled, type: inputType, autoFocus: autoFocus, className: "zen-input-adornments__input zen-input-adornments__input--border-none" }) }), !!endAdornment && ((0, jsx_runtime_1.jsx)("div", { className: "zen-input-adornments__adornment zen-input-adornments__adornment--end", children: endAdornment }))] }));
|
|
49
49
|
});
|
|
50
50
|
exports.InputAdornments.displayName = "InputAdornments";
|
package/dist/lineChart/utils.js
CHANGED
|
@@ -5,11 +5,13 @@ const colorUtils_1 = require("../commonHelpers/colorUtils");
|
|
|
5
5
|
const defaultLineOptions = {
|
|
6
6
|
borderWidth: 2,
|
|
7
7
|
pointRadius: 5,
|
|
8
|
+
pointHoverRadius: 7,
|
|
8
9
|
pointHitRadius: 10
|
|
9
10
|
};
|
|
10
11
|
const defaultThinLineOptions = {
|
|
11
12
|
borderWidth: 1,
|
|
12
13
|
pointRadius: 3,
|
|
14
|
+
pointHoverRadius: 5,
|
|
13
15
|
pointHitRadius: 6
|
|
14
16
|
};
|
|
15
17
|
const baseColors = [
|
|
@@ -32,8 +34,11 @@ const getDefaultDatasetStyle = (dataSet, dsIndex, useThinLines = false) => {
|
|
|
32
34
|
}
|
|
33
35
|
if (!dataSet.pointRadius) {
|
|
34
36
|
const poinRs = Array(dataSet.data.length).fill(0);
|
|
37
|
+
const pointHoverRs = Array(dataSet.data.length).fill(lineStyle.pointRadius);
|
|
35
38
|
poinRs[poinRs.length - 1] = lineStyle.pointRadius;
|
|
36
39
|
newDataSet.pointRadius = poinRs;
|
|
40
|
+
pointHoverRs[pointHoverRs.length - 1] = lineStyle.pointHoverRadius;
|
|
41
|
+
newDataSet.pointHoverRadius = pointHoverRs;
|
|
37
42
|
newDataSet.pointHitRadius = lineStyle.pointHitRadius;
|
|
38
43
|
newDataSet.pointBackgroundColor = dataSet.pointBackgroundColor || baseColor;
|
|
39
44
|
}
|
package/dist/menu/menu.d.ts
CHANGED
package/dist/menu/menu.js
CHANGED
|
@@ -6,10 +6,11 @@ const react_1 = require("react");
|
|
|
6
6
|
const controlledMenu_1 = require("./controlledMenu");
|
|
7
7
|
const menuItem_1 = require("./components/menuItem");
|
|
8
8
|
const menuSeparator_1 = require("./components/menuSeparator");
|
|
9
|
+
const classNames_1 = require("../commonHelpers/classNames/classNames");
|
|
9
10
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
10
11
|
const Menu =
|
|
11
12
|
// eslint-disable-next-line react/prop-types
|
|
12
|
-
({ children, title, trigger, triggerRef, ariaLabel, ariaLabelledBy, alignment = "bottom-left" }) => {
|
|
13
|
+
({ children, title, trigger, triggerRef, ariaLabel, ariaLabelledBy, alignment = "bottom-left", className }) => {
|
|
13
14
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
14
15
|
const innerRef = (0, react_1.useRef)(null);
|
|
15
16
|
const shouldRenderTrigger = !!trigger;
|
|
@@ -30,7 +31,7 @@ const Menu =
|
|
|
30
31
|
}
|
|
31
32
|
}, [triggerRef, isOpen, shouldRenderTrigger]);
|
|
32
33
|
const triggerComp = shouldRenderTrigger ? renderTrigger() : null;
|
|
33
|
-
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [triggerComp, (0, jsx_runtime_1.jsx)(controlledMenu_1.ControlledMenu, { alignment: alignment, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledBy || (triggerComp === null || triggerComp === void 0 ? void 0 : triggerComp.props.id), isOpen: isOpen, setIsOpen: setIsOpen, triggerRef: ref, title: title, className: "zen-menu", children: children })] });
|
|
34
|
+
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [triggerComp, (0, jsx_runtime_1.jsx)(controlledMenu_1.ControlledMenu, { alignment: alignment, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledBy || (triggerComp === null || triggerComp === void 0 ? void 0 : triggerComp.props.id), isOpen: isOpen, setIsOpen: setIsOpen, triggerRef: ref, title: title, className: (0, classNames_1.classNames)(["zen-menu", className || ""]), children: children })] });
|
|
34
35
|
};
|
|
35
36
|
exports.Menu = Menu;
|
|
36
37
|
exports.Menu.Item = menuItem_1.MenuItem;
|
|
@@ -18,6 +18,7 @@ export interface IMobileSheet extends IZenComponentProps, Pick<ISidePanel, "trig
|
|
|
18
18
|
*/
|
|
19
19
|
translate?: (s: string) => string;
|
|
20
20
|
onReadyForFocus?: (currentIsOpen: boolean) => void;
|
|
21
|
+
wrapperClassName?: string;
|
|
21
22
|
}
|
|
22
23
|
export declare const MobileSheet: FC<IMobileSheet> & {
|
|
23
24
|
Footer: FC<IMobileSheetFooter>;
|
|
@@ -22,7 +22,7 @@ const useFadeComponent_1 = require("../utils/useFadeComponent");
|
|
|
22
22
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
23
23
|
const MobileSheet =
|
|
24
24
|
// eslint-disable-next-line react/prop-types
|
|
25
|
-
({ triggerRef, label, isOpen, onHidePanel, className = "", panelPosition = "bottom", onBackClick, onCloseClick, isBackVisible, backButtonAriaLabel, children, useTrapFocusWithTrigger, onReadyForFocus }) => {
|
|
25
|
+
({ triggerRef, label, isOpen, onHidePanel, className = "", panelPosition = "bottom", onBackClick, onCloseClick, isBackVisible, backButtonAriaLabel, children, useTrapFocusWithTrigger, onReadyForFocus, wrapperClassName }) => {
|
|
26
26
|
var _a, _b;
|
|
27
27
|
const { renderComponent, showContent, readyForFocus, setIsOpen, handleTransitionEnd } = (0, useFadeComponent_1.useFadeComponent)(isOpen, onReadyForFocus);
|
|
28
28
|
const dataShieldId = (0, useUniqueId_1.useUniqueId)();
|
|
@@ -78,7 +78,7 @@ const MobileSheet =
|
|
|
78
78
|
if (!renderComponent && !isOpen) {
|
|
79
79
|
return null;
|
|
80
80
|
}
|
|
81
|
-
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(shield_1.Shield, { className: "zen-mobile-sheet-shield", dataShieldId: dataShieldId, isVisible: showContent }), (0, jsx_runtime_1.jsx)(sidePanel_1.SidePanel, { className: (0, classNames_1.classNames)(["zen-mobile-sheet-wrapper", driveWrapperMobileSheetClassName || ""]), panelPosition: panelPosition, triggerRef: triggerRef, label: label, isOpen: showContent, useTrapFocusWithTrigger: useTrapFocusWithTrigger, onHidePanel: onHidePanelAction, onTransitionEnd: handleTransitionEnd, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-mobile-sheet", className]), ref: ref, children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-mobile-sheet__title", driveTitleClassName || ""]), children: [isBackVisible ?
|
|
81
|
+
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(shield_1.Shield, { className: "zen-mobile-sheet-shield", dataShieldId: dataShieldId, isVisible: showContent }), (0, jsx_runtime_1.jsx)(sidePanel_1.SidePanel, { className: (0, classNames_1.classNames)(["zen-mobile-sheet-wrapper", wrapperClassName || "", driveWrapperMobileSheetClassName || ""]), panelPosition: panelPosition, triggerRef: triggerRef, label: label, isOpen: showContent, useTrapFocusWithTrigger: useTrapFocusWithTrigger, onHidePanel: onHidePanelAction, onTransitionEnd: handleTransitionEnd, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-mobile-sheet", className]), ref: ref, children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-mobile-sheet__title", driveTitleClassName || ""]), children: [isBackVisible ?
|
|
82
82
|
(0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { onClick: (e) => {
|
|
83
83
|
e.stopPropagation();
|
|
84
84
|
onBackClick === null || onBackClick === void 0 ? void 0 : onBackClick();
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "./navFooterAction.less";
|
|
2
|
+
interface INavFooterActionLink {
|
|
3
|
+
title: string;
|
|
4
|
+
link: string;
|
|
5
|
+
}
|
|
6
|
+
interface INavFooterActionProps {
|
|
7
|
+
title: string;
|
|
8
|
+
links: INavFooterActionLink[];
|
|
9
|
+
}
|
|
10
|
+
export declare const NavFooterAction: (({ links, title }: INavFooterActionProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
11
|
+
translations: string[];
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NavFooterAction = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const useLanguage_1 = require("../../../utils/localization/useLanguage");
|
|
6
|
+
const navItem_1 = require("../../navItem/navItem");
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const controlledMenu_1 = require("../../../menu/controlledMenu");
|
|
9
|
+
const iconSettings4_1 = require("../../../icons/iconSettings4");
|
|
10
|
+
const NavFooterActionInner = ({ links, title }) => {
|
|
11
|
+
const triggerRef = (0, react_1.useRef)(null);
|
|
12
|
+
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
13
|
+
const { translate } = (0, useLanguage_1.useLanguage)();
|
|
14
|
+
const handlerTriggerClick = (0, react_1.useCallback)(() => setIsOpen(!isOpen), [isOpen, setIsOpen]);
|
|
15
|
+
const handleStateChange = (0, react_1.useCallback)(() => {
|
|
16
|
+
setIsOpen(!isOpen);
|
|
17
|
+
}, [isOpen]);
|
|
18
|
+
const menuItems = (0, react_1.useMemo)(() => links.map(link => {
|
|
19
|
+
const itemId = `${link.title}${link.link}`;
|
|
20
|
+
return (0, jsx_runtime_1.jsx)(controlledMenu_1.ControlledMenu.Item, { name: link.title, link: link.link, id: itemId }, itemId);
|
|
21
|
+
}), [links]);
|
|
22
|
+
if (links.length === 0) {
|
|
23
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
|
24
|
+
}
|
|
25
|
+
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(navItem_1.NavItem, { active: isOpen, primaryIcon: iconSettings4_1.IconSettings4, hasSubmenu: true, ref: triggerRef, onClick: handlerTriggerClick, title: translate("Configure") }), (0, jsx_runtime_1.jsx)(controlledMenu_1.ControlledMenu, { setIsOpen: handleStateChange, title: title, triggerRef: triggerRef, className: "nav-footer-action", isOpen: isOpen, alignment: "right-bottom", children: menuItems })] });
|
|
26
|
+
};
|
|
27
|
+
exports.NavFooterAction = Object.assign(NavFooterActionInner, { translations: [
|
|
28
|
+
"Configure"
|
|
29
|
+
] });
|
|
@@ -19,5 +19,5 @@ interface ILinkNavItem extends INavItemCommon {
|
|
|
19
19
|
interface IButtonNavItem extends INavItemCommon {
|
|
20
20
|
onClick: () => void;
|
|
21
21
|
}
|
|
22
|
-
export declare const NavItem:
|
|
22
|
+
export declare const NavItem: import("react").ForwardRefExoticComponent<(ILinkNavItem | IButtonNavItem) & import("react").RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
23
23
|
export {};
|