@geotab/zenith 3.8.0-beta.1 → 3.9.0-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 +11 -12
- package/dist/button/button.d.ts +2 -1
- package/dist/button/button.js +3 -3
- package/dist/calendar/calendar.js +201 -4
- package/dist/card/card.d.ts +1 -1
- package/dist/card/card.js +1 -1
- package/dist/card/components/cardButton/cardButton.d.ts +2 -1
- package/dist/card/components/cardButton/cardButton.js +5 -3
- package/dist/card/helpers/getIconTypeFromStatus.d.ts +1 -1
- package/dist/chart/barChart/getBarLegendItems.js +3 -5
- package/dist/chart/lineChart/getLineLegendItems.js +7 -7
- package/dist/chart/pieChart/centerTextPlugin.js +13 -5
- package/dist/chart/pieChart/getPieLegendItems.js +8 -12
- package/dist/chart/pieChart.js +13 -11
- package/dist/chart/plugins/legend/interfaces.d.ts +1 -1
- package/dist/commonHelpers/generateId.d.ts +8 -0
- package/dist/commonHelpers/generateId.js +8 -0
- package/dist/commonHelpers/hooks/ssrProvider.d.ts +14 -0
- package/dist/commonHelpers/hooks/ssrProvider.js +12 -0
- package/dist/commonHelpers/hooks/useClientReady.js +3 -1
- package/dist/commonHelpers/hooks/useDeviceType.js +6 -2
- package/dist/commonHelpers/hooks/useIsomorphicLayoutEffect.d.ts +2 -0
- package/dist/commonHelpers/hooks/useIsomorphicLayoutEffect.js +6 -0
- package/dist/commonHelpers/hooks/useMobile.js +4 -3
- package/dist/commonHelpers/hooks/usePortal.js +2 -5
- package/dist/commonHelpers/isDomEnv.js +1 -2
- package/dist/commonHelpers/useUniqueId.d.ts +6 -0
- package/dist/commonHelpers/useUniqueId.js +8 -2
- package/dist/commonHelpers/utils.d.ts +0 -1
- package/dist/commonHelpers/utils.js +1 -3
- package/dist/commonStyles/common.less +13 -1
- package/dist/commonStyles/fonts/notosarabic/LICENSE.txt +93 -0
- package/dist/commonStyles/fonts/notosarabic/NotoSansArabic-Bold.woff +0 -0
- package/dist/commonStyles/fonts/notosarabic/NotoSansArabic-Bold.woff2 +0 -0
- package/dist/commonStyles/fonts/notosarabic/NotoSansArabic-Medium.woff +0 -0
- package/dist/commonStyles/fonts/notosarabic/NotoSansArabic-Medium.woff2 +0 -0
- package/dist/commonStyles/fonts/notosarabic/NotoSansArabic-Regular.woff +0 -0
- package/dist/commonStyles/fonts/notosarabic/NotoSansArabic-Regular.woff2 +0 -0
- package/dist/commonStyles/fonts/notosarabic/NotoSansArabic-SemiBold.woff +0 -0
- package/dist/commonStyles/fonts/notosarabic/NotoSansArabic-SemiBold.woff2 +0 -0
- package/dist/commonStyles/fonts/notosarabic.less +43 -0
- package/dist/commonStyles/pillStyles/pillContent.less +2 -3
- package/dist/commonStyles/pillStyles/pillStyles.less +1 -2
- package/dist/commonStyles/pillStyles/pillTextContent.less +2 -2
- package/dist/commonStyles/typography/typography.less +440 -305
- package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.d.ts +5 -3
- package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +2 -38
- package/dist/dateInputInner/dateInputInnerControlBlock.js +12 -8
- package/dist/dateRangeRaw/dateRangeRaw.js +5 -1
- package/dist/dialog/dialog.js +4 -3
- package/dist/feedbackContainer/feedbackContainer.js +4 -4
- package/dist/fileUpload/fileUpload.js +21 -12
- package/dist/filters/components/filtersSidePanel.d.ts +1 -1
- package/dist/filters/components/filtersSidePanel.js +123 -116
- package/dist/filters/filters.js +1 -2
- package/dist/filtersBar/filtersBar.d.ts +2 -0
- package/dist/filtersBar/filtersBar.js +5 -3
- package/dist/filtersBar/filtersBarActions/filtersBarActions.js +3 -1
- package/dist/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +3 -0
- package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.d.ts +1 -1
- package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +86 -80
- package/dist/formFieldError/formFieldError.d.ts +2 -1
- package/dist/formFieldError/formFieldError.js +2 -2
- package/dist/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +1 -1
- package/dist/index.css +3210 -2238
- package/dist/index.d.ts +3 -5
- package/dist/index.js +24 -29
- package/dist/menu/components/menuItem.js +4 -4
- package/dist/menu/controlledMenu.js +4 -4
- package/dist/nav/nav.js +10 -5
- package/dist/nav/navAddMenu/navAddMenu.js +1 -2
- package/dist/nav/navEditList/navEditListUtils.d.ts +1 -1
- package/dist/nav/navEditList/navEditListUtils.js +2 -1
- package/dist/nav/navItem/navActionItem.js +3 -3
- package/dist/nav/navItem/navItem.js +1 -2
- package/dist/pageHeader/pageHeaderActions.js +4 -3
- package/dist/rangeRaw/rangeRaw.js +7 -1
- package/dist/selectList/selectList.js +11 -7
- package/dist/selectRaw/selectRaw.js +1 -1
- package/dist/shield/shield.js +5 -3
- package/dist/sidePanel/sidePanel.js +9 -8
- package/dist/summaryTile/summaryTile.d.ts +1 -3
- package/dist/summaryTile/summaryTile.js +1 -2
- package/dist/table/children/useTableChildren.d.ts +1 -1
- package/dist/table/children/useTableChildren.js +3 -3
- package/dist/table/flexible/useFlexibleColumns.js +39 -1
- package/dist/table/nested/useNestedRows.d.ts +1 -0
- package/dist/table/nested/useNestedRows.js +3 -3
- package/dist/table/selectable/useSelectableRows.d.ts +9 -0
- package/dist/table/selectable/useSelectableRows.js +18 -11
- package/dist/table/table.js +1 -7
- package/dist/{card/components → title}/title.d.ts +1 -1
- package/dist/title/title.js +27 -0
- package/dist/toggleButtonRaw/toggleButtonRaw.js +3 -1
- package/dist/toggleButtonRaw/types.d.ts +1 -0
- package/dist/tooltip/tooltip.d.ts +2 -1
- package/dist/tooltip/tooltip.js +68 -64
- package/dist/utils/localization/directionContext.d.ts +3 -0
- package/dist/utils/localization/directionContext.js +5 -0
- package/dist/utils/localization/getTextDirection.d.ts +2 -0
- package/dist/utils/localization/getTextDirection.js +6 -0
- package/dist/utils/localization/languageProvider.js +15 -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/en.json +3 -0
- package/dist/utils/localization/useDirection.d.ts +2 -0
- package/dist/utils/localization/useDirection.js +7 -0
- package/esm/button/button.d.ts +2 -1
- package/esm/button/button.js +3 -3
- package/esm/calendar/calendar.js +201 -4
- package/esm/card/card.d.ts +1 -1
- package/esm/card/card.js +1 -1
- package/esm/card/components/cardButton/cardButton.d.ts +2 -1
- package/esm/card/components/cardButton/cardButton.js +5 -3
- package/esm/card/helpers/getIconTypeFromStatus.d.ts +1 -1
- package/esm/chart/barChart/getBarLegendItems.js +3 -5
- package/esm/chart/lineChart/getLineLegendItems.js +7 -7
- package/esm/chart/pieChart/centerTextPlugin.js +13 -5
- package/esm/chart/pieChart/getPieLegendItems.js +8 -12
- package/esm/chart/pieChart.js +14 -12
- package/esm/chart/plugins/legend/interfaces.d.ts +1 -1
- package/esm/commonHelpers/generateId.d.ts +8 -0
- package/esm/commonHelpers/generateId.js +8 -0
- package/esm/commonHelpers/hooks/ssrProvider.d.ts +14 -0
- package/esm/commonHelpers/hooks/ssrProvider.js +6 -0
- package/esm/commonHelpers/hooks/useClientReady.js +4 -2
- package/esm/commonHelpers/hooks/useDeviceType.js +7 -3
- package/esm/commonHelpers/hooks/useIsomorphicLayoutEffect.d.ts +2 -0
- package/esm/commonHelpers/hooks/useIsomorphicLayoutEffect.js +3 -0
- package/esm/commonHelpers/hooks/useMobile.js +4 -3
- package/esm/commonHelpers/hooks/usePortal.js +2 -5
- package/esm/commonHelpers/isDomEnv.js +1 -2
- package/esm/commonHelpers/useUniqueId.d.ts +6 -0
- package/esm/commonHelpers/useUniqueId.js +7 -1
- package/esm/commonHelpers/utils.d.ts +0 -1
- package/esm/commonHelpers/utils.js +0 -1
- package/esm/dataGrid/withSelectableRows/components/bulkActions/bulkActions.d.ts +5 -3
- package/esm/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +2 -38
- package/esm/dateInputInner/dateInputInnerControlBlock.js +13 -9
- package/esm/dateRangeRaw/dateRangeRaw.js +5 -1
- package/esm/dialog/dialog.js +4 -3
- package/esm/feedbackContainer/feedbackContainer.js +4 -4
- package/esm/fileUpload/fileUpload.js +21 -12
- package/esm/filters/components/filtersSidePanel.d.ts +1 -1
- package/esm/filters/components/filtersSidePanel.js +123 -116
- package/esm/filters/filters.js +2 -3
- package/esm/filtersBar/filtersBar.d.ts +2 -0
- package/esm/filtersBar/filtersBar.js +5 -3
- package/esm/filtersBar/filtersBarActions/filtersBarActions.js +3 -1
- package/esm/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +3 -0
- package/esm/filtersBar/filtersBarSidePanel/filtersBarSidePanel.d.ts +1 -1
- package/esm/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +86 -80
- package/esm/formFieldError/formFieldError.d.ts +2 -1
- package/esm/formFieldError/formFieldError.js +2 -2
- package/esm/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +1 -1
- package/esm/index.d.ts +3 -5
- package/esm/index.js +3 -5
- package/esm/menu/components/menuItem.js +1 -1
- package/esm/menu/controlledMenu.js +1 -1
- package/esm/nav/nav.js +10 -5
- package/esm/nav/navAddMenu/navAddMenu.js +2 -3
- package/esm/nav/navEditList/navEditListUtils.d.ts +1 -1
- package/esm/nav/navEditList/navEditListUtils.js +2 -1
- package/esm/nav/navItem/navActionItem.js +3 -2
- package/esm/nav/navItem/navItem.js +2 -3
- package/esm/pageHeader/pageHeaderActions.js +4 -3
- package/esm/rangeRaw/rangeRaw.js +7 -1
- package/esm/selectList/selectList.js +11 -7
- package/esm/selectRaw/selectRaw.js +1 -1
- package/esm/shield/shield.js +5 -3
- package/esm/sidePanel/sidePanel.js +9 -8
- package/esm/summaryTile/summaryTile.d.ts +1 -3
- package/esm/summaryTile/summaryTile.js +1 -2
- package/esm/table/children/useTableChildren.d.ts +1 -1
- package/esm/table/children/useTableChildren.js +3 -3
- package/esm/table/flexible/useFlexibleColumns.js +39 -1
- package/esm/table/nested/useNestedRows.d.ts +1 -0
- package/esm/table/nested/useNestedRows.js +1 -1
- package/esm/table/selectable/useSelectableRows.d.ts +9 -0
- package/esm/table/selectable/useSelectableRows.js +15 -8
- package/esm/table/table.js +1 -7
- package/esm/{card/components → title}/title.d.ts +1 -1
- package/esm/title/title.js +23 -0
- package/esm/toggleButtonRaw/toggleButtonRaw.js +3 -1
- package/esm/toggleButtonRaw/types.d.ts +1 -0
- package/esm/tooltip/tooltip.d.ts +2 -1
- package/esm/tooltip/tooltip.js +68 -64
- package/esm/utils/localization/directionContext.d.ts +3 -0
- package/esm/utils/localization/directionContext.js +2 -0
- package/esm/utils/localization/getTextDirection.d.ts +2 -0
- package/esm/utils/localization/getTextDirection.js +2 -0
- package/esm/utils/localization/languageProvider.js +15 -1
- package/esm/utils/localization/translations/en-json.d.ts +2 -0
- package/esm/utils/localization/translations/en-json.js +3 -1
- package/esm/utils/localization/translations/en.json +3 -0
- package/esm/utils/localization/useDirection.d.ts +2 -0
- package/esm/utils/localization/useDirection.js +3 -0
- package/package.json +33 -31
- package/dist/card/components/title.js +0 -22
- package/dist/commonHelpers/hooks/deviceProvider.d.ts +0 -7
- package/dist/commonHelpers/hooks/deviceProvider.js +0 -11
- package/esm/card/components/title.js +0 -18
- package/esm/commonHelpers/hooks/deviceProvider.d.ts +0 -7
- package/esm/commonHelpers/hooks/deviceProvider.js +0 -4
|
@@ -7,19 +7,21 @@ import { DeviceType } from "../../../../commonHelpers/hooks/deviceType";
|
|
|
7
7
|
type TBulkAction = IBulkActionLink | IBulkActionButton;
|
|
8
8
|
export interface IBulkActionsProps extends IZenComponentProps {
|
|
9
9
|
selected: number;
|
|
10
|
+
/**
|
|
11
|
+
* When `true`, displays "All selected" instead of a count, and enables action buttons
|
|
12
|
+
* even when `selected` is 0 (i.e., cross-page "select all" is active).
|
|
13
|
+
*/
|
|
10
14
|
allSelected?: boolean;
|
|
11
15
|
onClearSelection: () => void;
|
|
12
|
-
onSelectAll?: () => void;
|
|
13
16
|
gridType?: DeviceType;
|
|
14
17
|
children?: ReactElement<TBulkAction> | null | (ReactElement<TBulkAction> | null)[];
|
|
15
|
-
turnOffSelectAll?: boolean;
|
|
16
18
|
}
|
|
17
19
|
export interface IBulkActions extends IBulkActionsProps {
|
|
18
20
|
ActionLink: (props: IBulkActionLink) => ReactNode;
|
|
19
21
|
ActionButton: (props: IBulkActionButton) => ReactNode;
|
|
20
22
|
}
|
|
21
23
|
export declare const BulkActions: {
|
|
22
|
-
({ selected, allSelected, className, onClearSelection,
|
|
24
|
+
({ selected, allSelected, className, onClearSelection, gridType, children }: IBulkActionsProps): import("react/jsx-runtime").JSX.Element;
|
|
23
25
|
ActionLink: ({ title, icon, link, disabled, type, ref }: IBulkActionLink) => import("react/jsx-runtime").JSX.Element;
|
|
24
26
|
ActionButton: ({ title, icon, clickHandler, onClick, disabled, type, ref }: IBulkActionButton) => import("react/jsx-runtime").JSX.Element;
|
|
25
27
|
translations: string[];
|
|
@@ -89,33 +89,6 @@ injectString("zh-Hans", "Clear selection", "\u6E05\u9664\u9009\u62E9");
|
|
|
89
89
|
injectString("zh-TW", "Clear selection", "\u6E05\u9664\u9078\u53D6\u9805\u76EE");
|
|
90
90
|
injectString("ro-RO", "Clear selection", "\u0218terge\u021Bi selec\u021Bia");
|
|
91
91
|
injectString("ar-SA", "Clear selection", "\u0645\u0633\u062D \u0627\u0644\u062A\u062D\u062F\u064A\u062F");
|
|
92
|
-
injectString("cs", "Select all", "Vybrat v\u0161e");
|
|
93
|
-
injectString("da-DK", "Select all", "V\xE6lg alle");
|
|
94
|
-
injectString("de", "Select all", "Alle ausw\xE4hlen");
|
|
95
|
-
injectString("en", "Select all", "Select all");
|
|
96
|
-
injectString("es", "Select all", "Seleccionar todo");
|
|
97
|
-
injectString("fi-FI", "Select all", "Valitse kaikki");
|
|
98
|
-
injectString("fr", "Select all", "S\xE9lectionner tout");
|
|
99
|
-
injectString("fr-FR", "Select all", "S\xE9lectionner tout");
|
|
100
|
-
injectString("hu-HU", "Select all", "V\xE1laszd ki az \xF6sszeset.");
|
|
101
|
-
injectString("id", "Select all", "Pilih semua");
|
|
102
|
-
injectString("it", "Select all", "Selezionare tutto");
|
|
103
|
-
injectString("ja", "Select all", "\u3059\u3079\u3066\u9078\u629E");
|
|
104
|
-
injectString("ko-KR", "Select all", "\uBAA8\uB450 \uC120\uD0DD");
|
|
105
|
-
injectString("ms", "Select all", "Pilih semua");
|
|
106
|
-
injectString("nb-NO", "Select all", "Velg alle");
|
|
107
|
-
injectString("nl", "Select all", "Alles selecteren");
|
|
108
|
-
injectString("pl", "Select all", "Wybierz wszystko");
|
|
109
|
-
injectString("pt-BR", "Select all", "Selecionar tudo");
|
|
110
|
-
injectString("pt-PT", "Select all", "Selecionar tudo");
|
|
111
|
-
injectString("sk-SK", "Select all", "Vyber v\u0161etko.");
|
|
112
|
-
injectString("sv", "Select all", "V\xE4lj alla");
|
|
113
|
-
injectString("th", "Select all", "\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14");
|
|
114
|
-
injectString("tr", "Select all", "T\xFCm\xFCn\xFC se\xE7");
|
|
115
|
-
injectString("zh-Hans", "Select all", "\u5168\u9009");
|
|
116
|
-
injectString("zh-TW", "Select all", "\u5168\u9078");
|
|
117
|
-
injectString("ro-RO", "Select all", "Selecta\u021Bi tot");
|
|
118
|
-
injectString("ar-SA", "Select all", "\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644");
|
|
119
92
|
injectString("cs", "More", "V\xEDce");
|
|
120
93
|
injectString("da-DK", "More", "Mere");
|
|
121
94
|
injectString("de", "More", "Mehr");
|
|
@@ -155,16 +128,13 @@ const useNonFittingElements_1 = require("../../../../header/hooks/useNonFittingE
|
|
|
155
128
|
const useResizeObserver_1 = require("../../../../commonHelpers/hooks/useResizeObserver");
|
|
156
129
|
const menu_1 = require("../../../../menu/menu");
|
|
157
130
|
const iconDotVertical_1 = require("../../../../icons/iconDotVertical");
|
|
158
|
-
const button_1 = require("../../../../button/button");
|
|
159
131
|
const BulkActions = ({
|
|
160
132
|
selected,
|
|
161
133
|
allSelected,
|
|
162
134
|
className,
|
|
163
135
|
onClearSelection,
|
|
164
|
-
onSelectAll,
|
|
165
136
|
gridType = deviceType_1.DeviceType.Desktop,
|
|
166
|
-
children
|
|
167
|
-
turnOffSelectAll
|
|
137
|
+
children
|
|
168
138
|
}) => {
|
|
169
139
|
var _a;
|
|
170
140
|
const {
|
|
@@ -208,13 +178,7 @@ const BulkActions = ({
|
|
|
208
178
|
}), (0, jsx_runtime_1.jsx)("span", {
|
|
209
179
|
className: "zen-bulk-actions__number-of-selected ellipsis",
|
|
210
180
|
children: text
|
|
211
|
-
}),
|
|
212
|
-
type: "tertiary",
|
|
213
|
-
className: "zen-bulk-actions__select-all",
|
|
214
|
-
disabled: allSelected,
|
|
215
|
-
onClick: onSelectAll,
|
|
216
|
-
children: translate("Select all")
|
|
217
|
-
}) : null, (0, jsx_runtime_1.jsxs)("div", {
|
|
181
|
+
}), (0, jsx_runtime_1.jsxs)("div", {
|
|
218
182
|
className: "zen-bulk-actions__action-button-holder",
|
|
219
183
|
ref: buttonHolder,
|
|
220
184
|
children: [react_1.Children.map(visibleElements, element => (0, react_1.cloneElement)(element, {
|
|
@@ -87,23 +87,28 @@ const DateInputInnerControlBlock = props => {
|
|
|
87
87
|
assistiveText,
|
|
88
88
|
ref
|
|
89
89
|
} = props;
|
|
90
|
+
const generatedId = (0, react_1.useId)();
|
|
91
|
+
const fieldId = id || generatedId;
|
|
90
92
|
const {
|
|
91
93
|
translate
|
|
92
94
|
} = (0, useLanguage_1.useLanguage)();
|
|
93
95
|
const driveAssistiveClass = (0, useDriveClassName_1.useDriveClassName)("zen-form-field__text");
|
|
94
96
|
const isHasDateError = requireSelection && !dateText;
|
|
95
97
|
const isHasTimeError = requireSelection && !timePickerValue;
|
|
98
|
+
const dateErrorId = `${fieldId}-date-error`;
|
|
99
|
+
const timeErrorId = `${fieldId}-time-error`;
|
|
96
100
|
const memoizedDateInput = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(textInputRaw_1.TextInputRaw, {
|
|
97
101
|
className: (0, classNames_1.classNames)(["zen-date-input-inner__text-input", isActiveField ? "zen-date-input-inner__text-input--active" : ""]),
|
|
98
|
-
id:
|
|
102
|
+
id: fieldId,
|
|
99
103
|
value: dateText,
|
|
100
104
|
onChange: handleSetDateText,
|
|
101
105
|
onBlur: onBlurDateChangeHandler,
|
|
102
106
|
placeholder: placeholder,
|
|
103
107
|
autocomplete: "off",
|
|
104
108
|
isError: isHasDateError,
|
|
109
|
+
ariaDescribedby: isHasDateError ? dateErrorId : undefined,
|
|
105
110
|
ref: ref
|
|
106
|
-
}), [dateText, handleSetDateText,
|
|
111
|
+
}), [dateText, handleSetDateText, fieldId, isActiveField, isHasDateError, onBlurDateChangeHandler, placeholder, ref, dateErrorId]);
|
|
107
112
|
const memoizedTimeSelect = (0, react_1.useMemo)(() => selectTime ? (0, jsx_runtime_1.jsxs)("div", {
|
|
108
113
|
className: "zen-date-input-inner__inputs-block-item",
|
|
109
114
|
children: [(0, jsx_runtime_1.jsx)(timePicker_1.TimePicker, {
|
|
@@ -111,18 +116,16 @@ const DateInputInnerControlBlock = props => {
|
|
|
111
116
|
value: timePickerValue,
|
|
112
117
|
onChange: timeChangeHandler,
|
|
113
118
|
isMobileView: isMobileView,
|
|
114
|
-
fullWidth: true
|
|
115
|
-
// eslint-disable-next-line
|
|
116
|
-
// @ts-ignore
|
|
117
|
-
dataTimeId: id
|
|
119
|
+
fullWidth: true
|
|
118
120
|
}), isHasTimeError ? (0, jsx_runtime_1.jsx)(formFieldError_1.FormFieldError, {
|
|
121
|
+
id: timeErrorId,
|
|
119
122
|
error: translate("The time must be set")
|
|
120
123
|
}) : null]
|
|
121
|
-
}) : null, [isActiveField, isHasTimeError, isMobileView, selectTime, timeChangeHandler, timePickerValue, translate,
|
|
124
|
+
}) : null, [isActiveField, isHasTimeError, isMobileView, selectTime, timeChangeHandler, timePickerValue, translate, timeErrorId]);
|
|
122
125
|
return (0, jsx_runtime_1.jsxs)("div", {
|
|
123
126
|
className: (0, classNames_1.classNames)(["zen-date-input-inner__control-block", className || ""]),
|
|
124
127
|
children: [title ? (0, jsx_runtime_1.jsx)("label", {
|
|
125
|
-
htmlFor:
|
|
128
|
+
htmlFor: fieldId,
|
|
126
129
|
className: "zen-date-input-inner__label",
|
|
127
130
|
children: title
|
|
128
131
|
}) : null, (0, jsx_runtime_1.jsxs)("div", {
|
|
@@ -130,6 +133,7 @@ const DateInputInnerControlBlock = props => {
|
|
|
130
133
|
children: [(0, jsx_runtime_1.jsxs)("div", {
|
|
131
134
|
className: "zen-date-input-inner__inputs-block-item",
|
|
132
135
|
children: [memoizedDateInput, isHasDateError ? (0, jsx_runtime_1.jsx)(formFieldError_1.FormFieldError, {
|
|
136
|
+
id: dateErrorId,
|
|
133
137
|
error: translate("The date must be set")
|
|
134
138
|
}) : null]
|
|
135
139
|
}), memoizedTimeSelect]
|
|
@@ -197,6 +197,7 @@ injectString("zh-Hans", "Previous", "\u524D\u4E00");
|
|
|
197
197
|
injectString("zh-TW", "Previous", "\u4E0A\u4E00\u500B");
|
|
198
198
|
injectString("ro-RO", "Previous", "\xCEnapoi");
|
|
199
199
|
injectString("ar-SA", "Previous", "\u0627\u0644\u0633\u0627\u0628\u0642");
|
|
200
|
+
injectString("en", "Previous date period", "Previous date period");
|
|
200
201
|
injectString("cs", "Next", "Dal\u0161\xED");
|
|
201
202
|
injectString("da-DK", "Next", "N\xE6ste");
|
|
202
203
|
injectString("de", "Next", "N\xE4chstes");
|
|
@@ -224,6 +225,7 @@ injectString("zh-Hans", "Next", "\u4E0B\u4E00\u4E2A");
|
|
|
224
225
|
injectString("zh-TW", "Next", "\u4E0B\u4E00\u6B65");
|
|
225
226
|
injectString("ro-RO", "Next", "\xCEnainte");
|
|
226
227
|
injectString("ar-SA", "Next", "\u0627\u0644\u062A\u0627\u0644\u064A");
|
|
228
|
+
injectString("en", "Next date period", "Next date period");
|
|
227
229
|
const textIconButton_1 = require("../textIconButton/textIconButton");
|
|
228
230
|
const button_1 = require("../button/button");
|
|
229
231
|
const iconCalendar_1 = require("../icons/iconCalendar");
|
|
@@ -701,6 +703,7 @@ const DateRangeRaw = props => {
|
|
|
701
703
|
onClick: decreaseRange,
|
|
702
704
|
className: (0, classNames_1.classNames)(["zen-date-range__stepper", "zen-date-range__stepper--left"]),
|
|
703
705
|
title: translate("Previous"),
|
|
706
|
+
"aria-label": translate("Previous date period"),
|
|
704
707
|
children: (0, jsx_runtime_1.jsx)(iconChevronLeftSmall_1.IconChevronLeftSmall, {
|
|
705
708
|
size: isDrive || isMobile ? "huge" : "large"
|
|
706
709
|
})
|
|
@@ -710,6 +713,7 @@ const DateRangeRaw = props => {
|
|
|
710
713
|
onClick: increaseRange,
|
|
711
714
|
className: (0, classNames_1.classNames)(["zen-date-range__stepper", "zen-date-range__stepper--right"]),
|
|
712
715
|
title: translate("Next"),
|
|
716
|
+
"aria-label": translate("Next date period"),
|
|
713
717
|
children: (0, jsx_runtime_1.jsx)(iconChevronRightSmall_1.IconChevronRightSmall, {
|
|
714
718
|
size: isDrive || isMobile ? "huge" : "large"
|
|
715
719
|
})
|
|
@@ -718,4 +722,4 @@ const DateRangeRaw = props => {
|
|
|
718
722
|
});
|
|
719
723
|
};
|
|
720
724
|
exports.DateRangeRaw = DateRangeRaw;
|
|
721
|
-
exports.TRANSLATIONS = ["Custom", "Date range", "Clear", "Cancel", "Apply", "Reset", "Today", "Next", "Previous", "Choose dates", "Date range not available", "Choose your date range", "Some of the dates you selected aren
|
|
725
|
+
exports.TRANSLATIONS = ["Custom", "Date range", "Clear", "Cancel", "Apply", "Reset", "Today", "Next", "Previous", "Choose dates", "Date range not available", "Choose your date range", "Some of the dates you selected aren’t available. Please try a different range.", "Please select the dates you want to view.", "Previous date period", "Next date period"];
|
package/dist/dialog/dialog.js
CHANGED
|
@@ -10,7 +10,7 @@ const classNames_1 = require("../commonHelpers/classNames/classNames");
|
|
|
10
10
|
const useBodyScroll_1 = require("../utils/useBodyScroll");
|
|
11
11
|
const useClientReady_1 = require("../commonHelpers/hooks/useClientReady");
|
|
12
12
|
const zen_1 = require("../utils/zen");
|
|
13
|
-
const
|
|
13
|
+
const usePortal_1 = require("../commonHelpers/hooks/usePortal");
|
|
14
14
|
/**
|
|
15
15
|
* @deprecated - use Modal instead
|
|
16
16
|
*/
|
|
@@ -45,10 +45,11 @@ const Dialog = ({ isOpen, children, isElementVisible }) => {
|
|
|
45
45
|
const labeledId = (0, react_1.useId)();
|
|
46
46
|
const darkClass = dark ? "zen-dark" : "";
|
|
47
47
|
const createDialog = id => ((0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-dialog", darkClass]), "aria-modal": "true", role: "dialog", "aria-labelledby": labeledId, style: { top: `${zen_1.zen.pageYOffset || 0}px` }, children: [(0, jsx_runtime_1.jsx)(dialogContent_1.DialogContent, Object.assign({}, children.props, { labeledId: id, isElementVisible: isElementVisible })), (0, jsx_runtime_1.jsx)("div", { className: "zen-dialog__shield" })] }));
|
|
48
|
+
const modalRoot = ((_b = zen_1.zen.document) === null || _b === void 0 ? void 0 : _b.fullscreenElement) || ((_c = zen_1.zen.document) === null || _c === void 0 ? void 0 : _c.body);
|
|
49
|
+
const portal = (0, usePortal_1.usePortal)(isOpen && (0, react_1.isValidElement)(children) ? createDialog(labeledId) : null, modalRoot, "ModalPortal");
|
|
48
50
|
if (!isClientReady) {
|
|
49
51
|
return null;
|
|
50
52
|
}
|
|
51
|
-
|
|
52
|
-
return (0, react_dom_1.createPortal)(isOpen && (0, react_1.isValidElement)(children) ? createDialog(labeledId) : null, modalRoot);
|
|
53
|
+
return portal;
|
|
53
54
|
};
|
|
54
55
|
exports.Dialog = Dialog;
|
|
@@ -35,9 +35,9 @@ const getAlertAnimation_1 = require("./utils/getAlertAnimation");
|
|
|
35
35
|
const getToastAnimation_1 = require("./utils/getToastAnimation");
|
|
36
36
|
const useClientReady_1 = require("../commonHelpers/hooks/useClientReady");
|
|
37
37
|
const zen_1 = require("../utils/zen");
|
|
38
|
-
const
|
|
38
|
+
const usePortal_1 = require("../commonHelpers/hooks/usePortal");
|
|
39
39
|
const FeedbackContainer = () => {
|
|
40
|
-
var _a, _b;
|
|
40
|
+
var _a, _b, _c, _d;
|
|
41
41
|
const { alerts, removeAlert, toasts, removeToast, activeFeedback, removedAlertId, removedToastId, mode } = react_1.default.useContext(feedbackContext_1.FeedbackContext);
|
|
42
42
|
const prevAlertsLength = react_1.default.useRef(alerts.length);
|
|
43
43
|
const prevToastsLength = react_1.default.useRef(toasts.length);
|
|
@@ -74,11 +74,11 @@ const FeedbackContainer = () => {
|
|
|
74
74
|
removedToastId.current = indx;
|
|
75
75
|
toast.onClose();
|
|
76
76
|
}, type: toast.type, hasIcon: toast.hasIcon, action: toast.action }, toast.id))), [toasts, sameToastsLength, isToastAdded, removedToastId, isMobile, activeFeedback, removeToast]);
|
|
77
|
+
const alertsPortal = (0, usePortal_1.usePortal)((0, jsx_runtime_1.jsx)("div", { className: alertClasses, children: alertsToRender }), (_b = (_a = zen_1.zen.document) === null || _a === void 0 ? void 0 : _a.body) !== null && _b !== void 0 ? _b : undefined);
|
|
78
|
+
const toastsPortal = (0, usePortal_1.usePortal)((0, jsx_runtime_1.jsx)("div", { className: toastClasses, children: toastsToRender }), (_d = (_c = zen_1.zen.document) === null || _c === void 0 ? void 0 : _c.body) !== null && _d !== void 0 ? _d : undefined);
|
|
77
79
|
if (!isClientReady) {
|
|
78
80
|
return null;
|
|
79
81
|
}
|
|
80
|
-
const alertsPortal = ((_a = zen_1.zen.document) === null || _a === void 0 ? void 0 : _a.body) ? (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)("div", { className: alertClasses, children: alertsToRender }), zen_1.zen.document.body) : null;
|
|
81
|
-
const toastsPortal = ((_b = zen_1.zen.document) === null || _b === void 0 ? void 0 : _b.body) ? (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)("div", { className: toastClasses, children: toastsToRender }), zen_1.zen.document.body) : null;
|
|
82
82
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [!isAPIMode && alertsPortal, !isAPIMode && toastsPortal] }));
|
|
83
83
|
};
|
|
84
84
|
exports.FeedbackContainer = FeedbackContainer;
|
|
@@ -212,28 +212,37 @@ const FileUpload = ({
|
|
|
212
212
|
const pendingFocusIndexRef = (0, react_1.useRef)(null);
|
|
213
213
|
const driveClasses = (0, useDriveClassName_1.useDriveClassName)("zen-file-upload");
|
|
214
214
|
const classes = (0, react_1.useMemo)(() => (0, classNames_1.classNames)(["zen-file-upload", `zen-file-upload--${size}`, isMobile ? "zen-file-upload--mobile" : "", driveClasses || "", disabled ? "zen-file-upload--disabled" : "", className !== null && className !== void 0 ? className : ""]), [size, isMobile, driveClasses, disabled, className]);
|
|
215
|
-
const
|
|
216
|
-
const isUploadDisabled = disabled || hasReachedLimit;
|
|
215
|
+
const isUploadDisabled = disabled;
|
|
217
216
|
const isInteractionDisabled = isUploadDisabled || isUploading;
|
|
218
217
|
const dropZoneClasses = (0, react_1.useMemo)(() => (0, classNames_1.classNames)(["zen-file-upload__drop-zone", `zen-file-upload__drop-zone--${size}`, isMobile ? "zen-file-upload__drop-zone--mobile" : "", isDragOver ? "zen-file-upload__drop-zone--drag-over" : "", isInteractionDisabled ? "zen-file-upload__drop-zone--disabled" : ""]), [size, isMobile, isDragOver, isInteractionDisabled]);
|
|
219
218
|
const handleFilesAdded = (0, react_1.useCallback)(fileList => {
|
|
220
219
|
if (!onChange) {
|
|
221
220
|
return;
|
|
222
221
|
}
|
|
223
|
-
|
|
224
|
-
|
|
222
|
+
let newFiles = createUploadedFiles(fileList);
|
|
223
|
+
let addedFiles = fileList;
|
|
224
|
+
// when allowMultiple is false, only take first file
|
|
225
|
+
if (!allowMultiple && newFiles.length > 1) {
|
|
226
|
+
newFiles = [newFiles[0]];
|
|
227
|
+
const firstFile = fileList[0];
|
|
228
|
+
const singleFileArray = [firstFile];
|
|
229
|
+
addedFiles = Object.assign(singleFileArray, {
|
|
230
|
+
item: index => singleFileArray[index] || null
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
const merged = allowMultiple ? [...value, ...newFiles] : newFiles;
|
|
225
234
|
onChange(merged, {
|
|
226
235
|
action: "add",
|
|
227
|
-
addedFiles
|
|
236
|
+
addedFiles
|
|
228
237
|
});
|
|
229
|
-
}, [onChange, value]);
|
|
238
|
+
}, [onChange, value, allowMultiple]);
|
|
230
239
|
const handleDragOver = (0, react_1.useCallback)(e => {
|
|
231
240
|
e.preventDefault();
|
|
232
241
|
e.stopPropagation();
|
|
233
|
-
if (!disabled && !isUploading
|
|
242
|
+
if (!disabled && !isUploading) {
|
|
234
243
|
setIsDragOver(true);
|
|
235
244
|
}
|
|
236
|
-
}, [disabled, isUploading
|
|
245
|
+
}, [disabled, isUploading]);
|
|
237
246
|
const handleDragLeave = (0, react_1.useCallback)(e => {
|
|
238
247
|
e.preventDefault();
|
|
239
248
|
e.stopPropagation();
|
|
@@ -243,7 +252,7 @@ const FileUpload = ({
|
|
|
243
252
|
e.preventDefault();
|
|
244
253
|
e.stopPropagation();
|
|
245
254
|
setIsDragOver(false);
|
|
246
|
-
if (!disabled && !isUploading &&
|
|
255
|
+
if (!disabled && !isUploading && onChange && e.dataTransfer.files.length > 0) {
|
|
247
256
|
// DataTransfer.files becomes inaccessible after event, so preserve it
|
|
248
257
|
const filesArray = Array.from(e.dataTransfer.files);
|
|
249
258
|
// Create a simple FileList-like object
|
|
@@ -252,12 +261,12 @@ const FileUpload = ({
|
|
|
252
261
|
});
|
|
253
262
|
handleFilesAdded(fileList);
|
|
254
263
|
}
|
|
255
|
-
}, [disabled, isUploading,
|
|
264
|
+
}, [disabled, isUploading, onChange, handleFilesAdded]);
|
|
256
265
|
const handleBrowseClick = (0, react_1.useCallback)(() => {
|
|
257
|
-
if (!disabled && !isUploading &&
|
|
266
|
+
if (!disabled && !isUploading && fileInputRef.current) {
|
|
258
267
|
fileInputRef.current.click();
|
|
259
268
|
}
|
|
260
|
-
}, [disabled, isUploading
|
|
269
|
+
}, [disabled, isUploading]);
|
|
261
270
|
const handleFileInputChange = (0, react_1.useCallback)(e => {
|
|
262
271
|
if (e.target.files && e.target.files.length > 0 && onChange) {
|
|
263
272
|
handleFilesAdded(e.target.files);
|
|
@@ -12,4 +12,4 @@ export interface IFiltersSidePanel {
|
|
|
12
12
|
setExternalState?: (newState: Partial<Record<string, TFiltersComponentsItemState>>) => void;
|
|
13
13
|
triggerRef: React.RefObject<HTMLElement>;
|
|
14
14
|
}
|
|
15
|
-
export declare const FiltersSidePanel: ({ isOpen, onApply, onClose, onPin, isPinned, filters, externalState, setExternalState, triggerRef }: IFiltersSidePanel) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const FiltersSidePanel: ({ isOpen, onApply, onClose, onPin, isPinned, filters, externalState, setExternalState, triggerRef }: IFiltersSidePanel) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -14,7 +14,8 @@ const useUniqueId_1 = require("../../commonHelpers/useUniqueId");
|
|
|
14
14
|
const useMobile_1 = require("../../commonHelpers/hooks/useMobile");
|
|
15
15
|
const useBodyScroll_1 = require("../../utils/useBodyScroll");
|
|
16
16
|
const shield_1 = require("../../shield/shield");
|
|
17
|
-
const
|
|
17
|
+
const usePortal_1 = require("../../commonHelpers/hooks/usePortal");
|
|
18
|
+
const useClientReady_1 = require("../../commonHelpers/hooks/useClientReady");
|
|
18
19
|
const sidePanel_1 = require("../../sidePanel/sidePanel");
|
|
19
20
|
const classNames_1 = require("../../commonHelpers/classNames/classNames");
|
|
20
21
|
const themeContext_1 = require("../../utils/theme/themeContext");
|
|
@@ -463,131 +464,137 @@ const FiltersSidePanel = ({
|
|
|
463
464
|
}
|
|
464
465
|
}, [isSaveModalOpen, dataShieldId, onClose]);
|
|
465
466
|
const memoizedBigSizeIcon = (0, react_1.useMemo)(() => (iconMobileClassName || iconDriveClassName) !== undefined, [iconMobileClassName, iconDriveClassName]);
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
className:
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
className: (0, classNames_1.classNames)(["zen-side-panel-filters__title", "zen-ellipsis", titleMobileClassName || ""]),
|
|
486
|
-
children: translate("All Filters")
|
|
487
|
-
})
|
|
488
|
-
}), (0, jsx_runtime_1.jsxs)("div", {
|
|
489
|
-
className: (0, classNames_1.classNames)(["zen-side-panel-filters__header-buttons", headerButtonsMobileClassName || ""]),
|
|
490
|
-
children: [onSave && (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
491
|
-
type: "tertiary",
|
|
492
|
-
ref: saveButtonRef,
|
|
493
|
-
className: "zen-side-panel-filters__save-button zen-side-panel-filters__header-button",
|
|
494
|
-
title: translate("Save"),
|
|
495
|
-
"aria-label": translate("Save"),
|
|
496
|
-
onClick: toggleSaveModal,
|
|
497
|
-
children: (0, jsx_runtime_1.jsx)(iconDisk_1.IconDisk, {
|
|
498
|
-
description: translate("Save"),
|
|
499
|
-
className: "svgIcon",
|
|
500
|
-
size: memoizedBigSizeIcon ? "huge" : "large"
|
|
501
|
-
})
|
|
502
|
-
}), onPin && (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
503
|
-
type: "tertiary",
|
|
504
|
-
className: (0, classNames_1.classNames)(["zen-side-panel-filters__pin-button", isPinned ? "zen-side-panel-filters__header-button--active" : "", "zen-side-panel-filters__header-button"]),
|
|
505
|
-
title: translate("Pin"),
|
|
506
|
-
"aria-label": translate("Pin"),
|
|
507
|
-
onClick: onPin,
|
|
508
|
-
children: (0, jsx_runtime_1.jsx)(iconPin2_1.IconPin2, {
|
|
509
|
-
description: translate("Pin"),
|
|
510
|
-
className: "svgIcon",
|
|
511
|
-
size: memoizedBigSizeIcon ? "huge" : "large"
|
|
512
|
-
})
|
|
513
|
-
}), (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, {
|
|
514
|
-
type: "tertiary-black",
|
|
515
|
-
className: "zen-side-panel-filters__close-button",
|
|
516
|
-
icon: iconClose_1.IconClose,
|
|
517
|
-
iconSize: memoizedBigSizeIcon ? "huge" : "large",
|
|
518
|
-
onClick: externalMode ? handleExternalModeClose : onClose,
|
|
519
|
-
iconPosition: textIconButton_1.ButtonIconPosition.Start,
|
|
520
|
-
title: translate("Close")
|
|
521
|
-
})]
|
|
522
|
-
})]
|
|
523
|
-
}), (0, jsx_runtime_1.jsx)(tabs_1.Tabs, {
|
|
524
|
-
activeTabId: activeTabId,
|
|
525
|
-
className: "zen-side-panel-filters__tab-header",
|
|
526
|
-
onTabChange: onTabChange,
|
|
527
|
-
tabs: tabOptions
|
|
467
|
+
const isClientReady = (0, useClientReady_1.useClientReady)();
|
|
468
|
+
const modalRoot = (_b = (_a = zen_1.zen.document) === null || _a === void 0 ? void 0 : _a.fullscreenElement) !== null && _b !== void 0 ? _b : (_c = zen_1.zen.document) === null || _c === void 0 ? void 0 : _c.body;
|
|
469
|
+
const portal = (0, usePortal_1.usePortal)((0, jsx_runtime_1.jsx)(sidePanel_1.SidePanel, {
|
|
470
|
+
triggerRef: triggerRef,
|
|
471
|
+
isOpen: isOpen,
|
|
472
|
+
label: translate("All Filters"),
|
|
473
|
+
onHidePanel: handleHidePanel,
|
|
474
|
+
className: (0, classNames_1.classNames)(["zen-side-panel-filters", dark ? "zen-dark" : ""]),
|
|
475
|
+
onTransitionEnd: handleReadyForFocus,
|
|
476
|
+
children: (0, jsx_runtime_1.jsxs)("div", {
|
|
477
|
+
className: "zen-side-panel-filters-wrapper",
|
|
478
|
+
children: [(0, jsx_runtime_1.jsxs)("div", {
|
|
479
|
+
className: "zen-side-panel-filters__header",
|
|
480
|
+
children: [(0, jsx_runtime_1.jsx)("div", {
|
|
481
|
+
className: "zen-side-panel-filters__title-wrapper",
|
|
482
|
+
children: (0, jsx_runtime_1.jsx)("div", {
|
|
483
|
+
className: (0, classNames_1.classNames)(["zen-side-panel-filters__title", "zen-ellipsis", titleMobileClassName || ""]),
|
|
484
|
+
children: translate("All Filters")
|
|
485
|
+
})
|
|
528
486
|
}), (0, jsx_runtime_1.jsxs)("div", {
|
|
529
|
-
className: "zen-side-panel-
|
|
530
|
-
children: [(0, jsx_runtime_1.jsx)(
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
"
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
487
|
+
className: (0, classNames_1.classNames)(["zen-side-panel-filters__header-buttons", headerButtonsMobileClassName || ""]),
|
|
488
|
+
children: [onSave && (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
489
|
+
type: "tertiary",
|
|
490
|
+
ref: saveButtonRef,
|
|
491
|
+
className: "zen-side-panel-filters__save-button zen-side-panel-filters__header-button",
|
|
492
|
+
title: translate("Save"),
|
|
493
|
+
"aria-label": translate("Save"),
|
|
494
|
+
onClick: toggleSaveModal,
|
|
495
|
+
children: (0, jsx_runtime_1.jsx)(iconDisk_1.IconDisk, {
|
|
496
|
+
description: translate("Save"),
|
|
497
|
+
className: "svgIcon",
|
|
498
|
+
size: memoizedBigSizeIcon ? "huge" : "large"
|
|
499
|
+
})
|
|
500
|
+
}), onPin && (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
501
|
+
type: "tertiary",
|
|
502
|
+
className: (0, classNames_1.classNames)(["zen-side-panel-filters__pin-button", isPinned ? "zen-side-panel-filters__header-button--active" : "", "zen-side-panel-filters__header-button"]),
|
|
503
|
+
title: translate("Pin"),
|
|
504
|
+
"aria-label": translate("Pin"),
|
|
505
|
+
onClick: onPin,
|
|
506
|
+
children: (0, jsx_runtime_1.jsx)(iconPin2_1.IconPin2, {
|
|
507
|
+
description: translate("Pin"),
|
|
508
|
+
className: "svgIcon",
|
|
509
|
+
size: memoizedBigSizeIcon ? "huge" : "large"
|
|
510
|
+
})
|
|
511
|
+
}), (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, {
|
|
512
|
+
type: "tertiary-black",
|
|
513
|
+
className: "zen-side-panel-filters__close-button",
|
|
514
|
+
icon: iconClose_1.IconClose,
|
|
515
|
+
iconSize: memoizedBigSizeIcon ? "huge" : "large",
|
|
516
|
+
onClick: externalMode ? handleExternalModeClose : onClose,
|
|
517
|
+
iconPosition: textIconButton_1.ButtonIconPosition.Start,
|
|
518
|
+
title: translate("Close")
|
|
542
519
|
})]
|
|
520
|
+
})]
|
|
521
|
+
}), (0, jsx_runtime_1.jsx)(tabs_1.Tabs, {
|
|
522
|
+
activeTabId: activeTabId,
|
|
523
|
+
className: "zen-side-panel-filters__tab-header",
|
|
524
|
+
onTabChange: onTabChange,
|
|
525
|
+
tabs: tabOptions
|
|
526
|
+
}), (0, jsx_runtime_1.jsxs)("div", {
|
|
527
|
+
className: "zen-side-panel-filters__content",
|
|
528
|
+
children: [(0, jsx_runtime_1.jsx)("div", {
|
|
529
|
+
id: `panel-${filtersSelect_1.ALL_SELECT_OPTION_ID}`,
|
|
530
|
+
className: (0, classNames_1.classNames)(["zen-side-panel-filters__tab-content", activeTabId === filtersSelect_1.ALL_SELECT_OPTION_ID ? "zen-side-panel-filters__tab-content--active" : "zen-side-panel-filters__tab-content--hidden"]),
|
|
531
|
+
role: "tabpanel",
|
|
532
|
+
"aria-labelledby": filtersSelect_1.ALL_SELECT_OPTION_ID,
|
|
533
|
+
children: activeTabId === filtersSelect_1.ALL_SELECT_OPTION_ID ? tabsContent : null
|
|
543
534
|
}), (0, jsx_runtime_1.jsx)("div", {
|
|
544
|
-
|
|
545
|
-
|
|
535
|
+
id: `panel-${SELECTED_TAB_ID}`,
|
|
536
|
+
className: (0, classNames_1.classNames)(["zen-side-panel-filters__tab-content", activeTabId === SELECTED_TAB_ID ? "zen-side-panel-filters__tab-content--active" : "zen-side-panel-filters__tab-content--hidden"]),
|
|
537
|
+
role: "tabpanel",
|
|
538
|
+
"aria-labelledby": SELECTED_TAB_ID,
|
|
539
|
+
children: activeTabId === SELECTED_TAB_ID ? selectedTabsContent : null
|
|
540
|
+
})]
|
|
541
|
+
}), (0, jsx_runtime_1.jsx)("div", {
|
|
542
|
+
className: (0, classNames_1.classNames)(["zen-side-panel-filters__footer", isMobile ? "zen-side-panel-filters__footer--mobile" : "", isLongTextLanguages && !isMobile ? "zen-side-panel-filters__footer--long-text" : ""]),
|
|
543
|
+
children: isMobile ? (0, jsx_runtime_1.jsxs)(footerButtons_1.FooterButtons, {
|
|
544
|
+
children: [(0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
545
|
+
className: "zen-side-panel-filters__apply-button",
|
|
546
|
+
onClick: handleApplyClick,
|
|
547
|
+
type: "primary",
|
|
548
|
+
disabled: errorItems.size > 0,
|
|
549
|
+
children: translate("Apply")
|
|
550
|
+
}), (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
551
|
+
className: "zen-side-panel-filters__cancel-button",
|
|
552
|
+
type: "secondary",
|
|
553
|
+
onClick: handleCancelClick,
|
|
554
|
+
children: translate("Cancel")
|
|
555
|
+
}), (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
556
|
+
className: "zen-side-panel-filters__clear-button",
|
|
557
|
+
onClick: handleClearClick,
|
|
558
|
+
type: "tertiary",
|
|
559
|
+
children: translate("Reset")
|
|
560
|
+
})]
|
|
561
|
+
}) : (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
|
|
562
|
+
children: [(0, jsx_runtime_1.jsx)("div", {
|
|
563
|
+
className: "zen-side-panel-filters__footer-section",
|
|
564
|
+
children: (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
565
|
+
type: "tertiary",
|
|
566
|
+
className: "zen-side-panel-filters__clear-button",
|
|
567
|
+
onClick: handleClearClick,
|
|
568
|
+
children: translate("Reset")
|
|
569
|
+
})
|
|
570
|
+
}), (0, jsx_runtime_1.jsxs)("div", {
|
|
571
|
+
className: "zen-side-panel-filters__footer-section",
|
|
546
572
|
children: [(0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
547
|
-
className: "zen-side-panel-filters__apply-button",
|
|
548
|
-
onClick: handleApplyClick,
|
|
549
|
-
type: "primary",
|
|
550
|
-
disabled: errorItems.size > 0,
|
|
551
|
-
children: translate("Apply")
|
|
552
|
-
}), (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
553
573
|
className: "zen-side-panel-filters__cancel-button",
|
|
554
574
|
type: "secondary",
|
|
555
575
|
onClick: handleCancelClick,
|
|
556
576
|
children: translate("Cancel")
|
|
557
577
|
}), (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
558
|
-
className: "zen-side-panel-
|
|
559
|
-
onClick:
|
|
560
|
-
type: "
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
}) : (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
|
|
564
|
-
children: [(0, jsx_runtime_1.jsx)("div", {
|
|
565
|
-
className: "zen-side-panel-filters__footer-section",
|
|
566
|
-
children: (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
567
|
-
type: "tertiary",
|
|
568
|
-
className: "zen-side-panel-filters__clear-button",
|
|
569
|
-
onClick: handleClearClick,
|
|
570
|
-
children: translate("Reset")
|
|
571
|
-
})
|
|
572
|
-
}), (0, jsx_runtime_1.jsxs)("div", {
|
|
573
|
-
className: "zen-side-panel-filters__footer-section",
|
|
574
|
-
children: [(0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
575
|
-
className: "zen-side-panel-filters__cancel-button",
|
|
576
|
-
type: "secondary",
|
|
577
|
-
onClick: handleCancelClick,
|
|
578
|
-
children: translate("Cancel")
|
|
579
|
-
}), (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
580
|
-
className: "zen-side-panel-filters__apply-button zen-side-panel-filters__apply-button--desktop",
|
|
581
|
-
onClick: handleApplyClick,
|
|
582
|
-
type: "primary",
|
|
583
|
-
disabled: errorItems.size > 0,
|
|
584
|
-
children: translate("Apply")
|
|
585
|
-
})]
|
|
578
|
+
className: "zen-side-panel-filters__apply-button zen-side-panel-filters__apply-button--desktop",
|
|
579
|
+
onClick: handleApplyClick,
|
|
580
|
+
type: "primary",
|
|
581
|
+
disabled: errorItems.size > 0,
|
|
582
|
+
children: translate("Apply")
|
|
586
583
|
})]
|
|
587
|
-
})
|
|
588
|
-
})
|
|
589
|
-
})
|
|
590
|
-
})
|
|
584
|
+
})]
|
|
585
|
+
})
|
|
586
|
+
})]
|
|
587
|
+
})
|
|
588
|
+
}), modalRoot !== null && modalRoot !== void 0 ? modalRoot : undefined);
|
|
589
|
+
if (!isClientReady) {
|
|
590
|
+
return null;
|
|
591
|
+
}
|
|
592
|
+
return (0, jsx_runtime_1.jsxs)(react_1.Fragment, {
|
|
593
|
+
children: [(0, jsx_runtime_1.jsx)(shield_1.Shield, {
|
|
594
|
+
className: "zen-high-level-shield",
|
|
595
|
+
dataShieldId: dataShieldId,
|
|
596
|
+
isVisible: isOpen
|
|
597
|
+
}), portal, (0, jsx_runtime_1.jsx)(filtersSaveModal_1.FiltersSaveModal, {
|
|
591
598
|
className: sidePanel_1.CUSTOM_POPUP_COMPONENT_CLASSNAME,
|
|
592
599
|
isOpen: isSaveModalOpen,
|
|
593
600
|
onClose: toggleSaveModal,
|
package/dist/filters/filters.js
CHANGED
|
@@ -223,7 +223,6 @@ const chipStatusProvider_1 = require("../chip/chipStatusProvider");
|
|
|
223
223
|
const filtersSavedItemsProvider_1 = require("./components/filtersSavedItemsProvider");
|
|
224
224
|
const filtersHelper_1 = require("./filtersHelper");
|
|
225
225
|
const filtersSearch_1 = require("./components/filtersSearch");
|
|
226
|
-
const useUniqueId_1 = require("../commonHelpers/useUniqueId");
|
|
227
226
|
const isElementsEqual_1 = require("../utils/compareElementsUtils/isElementsEqual");
|
|
228
227
|
const iconFilter_1 = require("../icons/iconFilter");
|
|
229
228
|
const filtersSidePanel_1 = require("./components/filtersSidePanel");
|
|
@@ -265,7 +264,7 @@ const Filters = ({
|
|
|
265
264
|
const isSavedFiltersMode = Boolean(savedFilters && onRemoveSavedFilter && onSaveFilter);
|
|
266
265
|
const isPinMode = Boolean(typeof isPinned === "boolean" && onPinChange);
|
|
267
266
|
const isRecentSearchesMode = Boolean(recentSearches && onRemoveRecentSearchItem && onSaveRecentSearch);
|
|
268
|
-
const uniqueKey = (0,
|
|
267
|
+
const uniqueKey = (0, react_1.useId)();
|
|
269
268
|
const popupId = `${uniqueKey}_popup`;
|
|
270
269
|
const isMobile = (0, useMobile_1.useMobile)();
|
|
271
270
|
const [isSidePanelOpen, setIsSidePanelOpen] = (0, react_1.useState)(false);
|
|
@@ -18,6 +18,8 @@ export interface IFiltersBar extends IZenComponentProps {
|
|
|
18
18
|
toggleAllFilters: (isAllFilters: boolean) => void;
|
|
19
19
|
parentElement?: HTMLElement;
|
|
20
20
|
getDefaultFiltersState: () => IFiltersBarChildrenState;
|
|
21
|
+
/** A single component rendered flush to the right side of the filters bar */
|
|
22
|
+
trailingContent?: ReactElement;
|
|
21
23
|
/**
|
|
22
24
|
* @deprecated
|
|
23
25
|
* @param onClearAllFilters - will be removed in the next major release
|