@geotab/zenith 3.9.0-beta.ssr.1 → 3.9.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 +29 -8
- package/dist/card/card.d.ts +1 -1
- package/dist/card/card.js +1 -1
- package/dist/{title → card/components}/title.d.ts +1 -1
- package/dist/card/components/title.js +26 -0
- package/dist/card/helpers/getIconTypeFromStatus.d.ts +1 -1
- package/dist/chart/pieChart/centerTextPlugin.js +12 -6
- package/dist/chart/pieChart.js +20 -4
- package/dist/commonHelpers/hooks/useDeviceType.js +2 -1
- package/dist/commonHelpers/hooks/useIsomorphicLayoutEffect.d.ts +2 -0
- package/dist/commonHelpers/hooks/useIsomorphicLayoutEffect.js +6 -0
- package/dist/commonHelpers/isDomEnv.js +1 -2
- package/dist/commonHelpers/useUniqueId.js +2 -2
- package/dist/commonHelpers/utils.d.ts +0 -9
- package/dist/commonHelpers/utils.js +1 -11
- package/dist/commonStyles/common.less +2 -0
- 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 +3 -2
- package/dist/commonStyles/pillStyles/pillStyles.less +2 -1
- package/dist/commonStyles/pillStyles/pillTextContent.less +2 -2
- package/dist/commonStyles/typography/typography.less +310 -435
- package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.d.ts +3 -5
- package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +38 -2
- package/dist/dateInputInner/dateInputInnerControlBlock.js +5 -2
- package/dist/dateRangeRaw/dateRangeRaw.js +5 -1
- package/dist/filtersBar/filtersBarActions/filtersBarActions.js +3 -1
- package/dist/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +1 -1
- package/dist/index.css +3510 -1914
- package/dist/index.d.ts +5 -5
- package/dist/index.js +24 -26
- package/dist/menu/components/menuItem.js +4 -4
- package/dist/menu/controlledMenu.js +4 -4
- package/dist/nav/nav.js +10 -5
- package/dist/selectRaw/selectRaw.js +1 -1
- package/dist/shield/shield.js +5 -3
- package/dist/table/children/useTableChildren.d.ts +1 -1
- package/dist/table/children/useTableChildren.js +3 -3
- package/dist/table/selectable/useSelectableRows.d.ts +0 -8
- package/dist/table/selectable/useSelectableRows.js +7 -14
- package/dist/table/table.js +7 -1
- package/dist/tooltip/tooltip.d.ts +2 -1
- package/dist/tooltip/tooltip.js +51 -55
- package/dist/utils/localization/languageProvider.js +5 -2
- package/dist/utils/localization/translations/ar.json +0 -1
- package/dist/utils/localization/translations/cs.json +0 -1
- package/dist/utils/localization/translations/da-DK.json +0 -1
- package/dist/utils/localization/translations/de.json +0 -1
- package/dist/utils/localization/translations/en.json +3 -1
- package/dist/utils/localization/translations/es.json +0 -1
- package/dist/utils/localization/translations/fi-FI.json +0 -1
- package/dist/utils/localization/translations/fr-FR.json +0 -1
- package/dist/utils/localization/translations/fr.json +0 -1
- package/dist/utils/localization/translations/hu-HU.json +0 -1
- package/dist/utils/localization/translations/id.json +0 -1
- package/dist/utils/localization/translations/it.json +0 -1
- package/dist/utils/localization/translations/ja.json +0 -1
- package/dist/utils/localization/translations/ko-KR.json +0 -1
- package/dist/utils/localization/translations/ms.json +0 -1
- package/dist/utils/localization/translations/nb-NO.json +0 -1
- package/dist/utils/localization/translations/nl.json +0 -1
- package/dist/utils/localization/translations/pl.json +0 -1
- package/dist/utils/localization/translations/pt-BR.json +0 -1
- package/dist/utils/localization/translations/pt-PT.json +0 -1
- package/dist/utils/localization/translations/ro-RO.json +0 -1
- package/dist/utils/localization/translations/sk-SK.json +0 -1
- package/dist/utils/localization/translations/sv.json +0 -1
- package/dist/utils/localization/translations/th.json +0 -1
- package/dist/utils/localization/translations/tr.json +0 -1
- package/dist/utils/localization/translations/zh-Hans.json +0 -1
- package/dist/utils/localization/translations/zh-TW.json +0 -1
- package/esm/card/card.d.ts +1 -1
- package/esm/card/card.js +1 -1
- package/esm/{title → card/components}/title.d.ts +1 -1
- package/esm/card/components/title.js +22 -0
- package/esm/card/helpers/getIconTypeFromStatus.d.ts +1 -1
- package/esm/chart/pieChart/centerTextPlugin.js +12 -6
- package/esm/chart/pieChart.js +21 -5
- package/esm/commonHelpers/hooks/useDeviceType.js +3 -2
- package/esm/commonHelpers/hooks/useIsomorphicLayoutEffect.d.ts +2 -0
- package/esm/commonHelpers/hooks/useIsomorphicLayoutEffect.js +3 -0
- package/esm/commonHelpers/isDomEnv.js +1 -2
- package/esm/commonHelpers/useUniqueId.js +1 -1
- package/esm/commonHelpers/utils.d.ts +0 -9
- package/esm/commonHelpers/utils.js +0 -9
- package/esm/dataGrid/withSelectableRows/components/bulkActions/bulkActions.d.ts +3 -5
- package/esm/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +38 -2
- package/esm/dateInputInner/dateInputInnerControlBlock.js +5 -2
- package/esm/dateRangeRaw/dateRangeRaw.js +5 -1
- package/esm/filtersBar/filtersBarActions/filtersBarActions.js +3 -1
- package/esm/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +1 -1
- package/esm/index.d.ts +5 -5
- package/esm/index.js +5 -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/selectRaw/selectRaw.js +1 -1
- package/esm/shield/shield.js +5 -3
- package/esm/table/children/useTableChildren.d.ts +1 -1
- package/esm/table/children/useTableChildren.js +3 -3
- package/esm/table/selectable/useSelectableRows.d.ts +0 -8
- package/esm/table/selectable/useSelectableRows.js +7 -14
- package/esm/table/table.js +7 -1
- package/esm/tooltip/tooltip.d.ts +2 -1
- package/esm/tooltip/tooltip.js +51 -55
- package/esm/utils/localization/languageProvider.js +5 -2
- package/esm/utils/localization/translations/ar.json +0 -1
- package/esm/utils/localization/translations/cs.json +0 -1
- package/esm/utils/localization/translations/da-DK.json +0 -1
- package/esm/utils/localization/translations/de.json +0 -1
- package/esm/utils/localization/translations/en.json +3 -1
- package/esm/utils/localization/translations/es.json +0 -1
- package/esm/utils/localization/translations/fi-FI.json +0 -1
- package/esm/utils/localization/translations/fr-FR.json +0 -1
- package/esm/utils/localization/translations/fr.json +0 -1
- package/esm/utils/localization/translations/hu-HU.json +0 -1
- package/esm/utils/localization/translations/id.json +0 -1
- package/esm/utils/localization/translations/it.json +0 -1
- package/esm/utils/localization/translations/ja.json +0 -1
- package/esm/utils/localization/translations/ko-KR.json +0 -1
- package/esm/utils/localization/translations/ms.json +0 -1
- package/esm/utils/localization/translations/nb-NO.json +0 -1
- package/esm/utils/localization/translations/nl.json +0 -1
- package/esm/utils/localization/translations/pl.json +0 -1
- package/esm/utils/localization/translations/pt-BR.json +0 -1
- package/esm/utils/localization/translations/pt-PT.json +0 -1
- package/esm/utils/localization/translations/ro-RO.json +0 -1
- package/esm/utils/localization/translations/sk-SK.json +0 -1
- package/esm/utils/localization/translations/sv.json +0 -1
- package/esm/utils/localization/translations/th.json +0 -1
- package/esm/utils/localization/translations/tr.json +0 -1
- package/esm/utils/localization/translations/zh-Hans.json +0 -1
- package/esm/utils/localization/translations/zh-TW.json +0 -1
- package/package.json +38 -35
- package/dist/title/title.js +0 -27
- package/esm/title/title.js +0 -23
|
@@ -7,21 +7,19 @@ 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
|
-
*/
|
|
14
10
|
allSelected?: boolean;
|
|
15
11
|
onClearSelection: () => void;
|
|
12
|
+
onSelectAll?: () => void;
|
|
16
13
|
gridType?: DeviceType;
|
|
17
14
|
children?: ReactElement<TBulkAction> | null | (ReactElement<TBulkAction> | null)[];
|
|
15
|
+
turnOffSelectAll?: boolean;
|
|
18
16
|
}
|
|
19
17
|
export interface IBulkActions extends IBulkActionsProps {
|
|
20
18
|
ActionLink: (props: IBulkActionLink) => ReactNode;
|
|
21
19
|
ActionButton: (props: IBulkActionButton) => ReactNode;
|
|
22
20
|
}
|
|
23
21
|
export declare const BulkActions: {
|
|
24
|
-
({ selected, allSelected, className, onClearSelection, gridType, children }: IBulkActionsProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
({ selected, allSelected, className, onClearSelection, onSelectAll, gridType, children, turnOffSelectAll }: IBulkActionsProps): import("react/jsx-runtime").JSX.Element;
|
|
25
23
|
ActionLink: ({ title, icon, link, disabled, type, ref }: IBulkActionLink) => import("react/jsx-runtime").JSX.Element;
|
|
26
24
|
ActionButton: ({ title, icon, clickHandler, onClick, disabled, type, ref }: IBulkActionButton) => import("react/jsx-runtime").JSX.Element;
|
|
27
25
|
translations: string[];
|
|
@@ -89,6 +89,33 @@ 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");
|
|
92
119
|
injectString("cs", "More", "V\xEDce");
|
|
93
120
|
injectString("da-DK", "More", "Mere");
|
|
94
121
|
injectString("de", "More", "Mehr");
|
|
@@ -128,13 +155,16 @@ const useNonFittingElements_1 = require("../../../../header/hooks/useNonFittingE
|
|
|
128
155
|
const useResizeObserver_1 = require("../../../../commonHelpers/hooks/useResizeObserver");
|
|
129
156
|
const menu_1 = require("../../../../menu/menu");
|
|
130
157
|
const iconDotVertical_1 = require("../../../../icons/iconDotVertical");
|
|
158
|
+
const button_1 = require("../../../../button/button");
|
|
131
159
|
const BulkActions = ({
|
|
132
160
|
selected,
|
|
133
161
|
allSelected,
|
|
134
162
|
className,
|
|
135
163
|
onClearSelection,
|
|
164
|
+
onSelectAll,
|
|
136
165
|
gridType = deviceType_1.DeviceType.Desktop,
|
|
137
|
-
children
|
|
166
|
+
children,
|
|
167
|
+
turnOffSelectAll
|
|
138
168
|
}) => {
|
|
139
169
|
var _a;
|
|
140
170
|
const {
|
|
@@ -178,7 +208,13 @@ const BulkActions = ({
|
|
|
178
208
|
}), (0, jsx_runtime_1.jsx)("span", {
|
|
179
209
|
className: "zen-bulk-actions__number-of-selected ellipsis",
|
|
180
210
|
children: text
|
|
181
|
-
}), (0, jsx_runtime_1.
|
|
211
|
+
}), onSelectAll && !turnOffSelectAll ? (0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
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", {
|
|
182
218
|
className: "zen-bulk-actions__action-button-holder",
|
|
183
219
|
ref: buttonHolder,
|
|
184
220
|
children: [react_1.Children.map(visibleElements, element => (0, react_1.cloneElement)(element, {
|
|
@@ -116,12 +116,15 @@ const DateInputInnerControlBlock = props => {
|
|
|
116
116
|
value: timePickerValue,
|
|
117
117
|
onChange: timeChangeHandler,
|
|
118
118
|
isMobileView: isMobileView,
|
|
119
|
-
fullWidth: true
|
|
119
|
+
fullWidth: true,
|
|
120
|
+
// eslint-disable-next-line
|
|
121
|
+
// @ts-ignore
|
|
122
|
+
dataTimeId: id
|
|
120
123
|
}), isHasTimeError ? (0, jsx_runtime_1.jsx)(formFieldError_1.FormFieldError, {
|
|
121
124
|
id: timeErrorId,
|
|
122
125
|
error: translate("The time must be set")
|
|
123
126
|
}) : null]
|
|
124
|
-
}) : null, [isActiveField, isHasTimeError,
|
|
127
|
+
}) : null, [selectTime, isActiveField, isHasTimeError, timePickerValue, timeChangeHandler, isMobileView, id, timeErrorId, translate]);
|
|
125
128
|
return (0, jsx_runtime_1.jsxs)("div", {
|
|
126
129
|
className: (0, classNames_1.classNames)(["zen-date-input-inner__control-block", className || ""]),
|
|
127
130
|
children: [title ? (0, jsx_runtime_1.jsx)("label", {
|
|
@@ -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"];
|
|
@@ -14,6 +14,7 @@ const buttonType_1 = require("../../button/buttonType");
|
|
|
14
14
|
const textIconButton_1 = require("../../textIconButton/textIconButton");
|
|
15
15
|
const useLanguage_1 = require("../../utils/localization/useLanguage");
|
|
16
16
|
const iconSettings6_1 = require("../../icons/iconSettings6");
|
|
17
|
+
injectString("en", "Active filters: {}", "Active filters: {}");
|
|
17
18
|
injectString("cs", "Filters", "Filtry");
|
|
18
19
|
injectString("da-DK", "Filters", "Filtre");
|
|
19
20
|
injectString("de", "Filters", "Filter");
|
|
@@ -118,6 +119,7 @@ const FiltersBarActions = ({
|
|
|
118
119
|
onClick: onShowAllFilters,
|
|
119
120
|
icon: iconSettings6_1.IconSettings6,
|
|
120
121
|
iconPosition: textIconButton_1.ButtonIconPosition.Start,
|
|
122
|
+
"aria-label": selectedQuantityToDisplay && selectedQuantityToDisplay > 0 ? translate("Active filters: {}").replace("{}", selectedQuantityToDisplay.toString()) : translate("Filters"),
|
|
121
123
|
children: (0, jsx_runtime_1.jsxs)("span", {
|
|
122
124
|
className: "zen-filters-toolbar__action-label",
|
|
123
125
|
children: [translate("Filters"), selectedQuantityToDisplay && selectedQuantityToDisplay > 0 ? (0, jsx_runtime_1.jsx)("span", {
|
|
@@ -143,4 +145,4 @@ const FiltersBarActions = ({
|
|
|
143
145
|
});
|
|
144
146
|
};
|
|
145
147
|
exports.FiltersBarActions = FiltersBarActions;
|
|
146
|
-
exports.TRANSLATIONS = ["Filters", "Clear", "Search"];
|
|
148
|
+
exports.TRANSLATIONS = ["Filters", "Clear", "Search", "Active filters: {}"];
|
|
@@ -36,7 +36,7 @@ const handleCustomMenuWrapper = (reactNode, content, menuItems) => {
|
|
|
36
36
|
const el = (0, react_1.createElement)(menu_1.Menu.Item, {
|
|
37
37
|
id: reactNode.props.id || menu.props.id,
|
|
38
38
|
key: reactNode.props.id || menu.props.id,
|
|
39
|
-
name: reactNode.props.name || "",
|
|
39
|
+
name: reactNode.props.name || menu.props.name || "",
|
|
40
40
|
disabled: reactNode.props.disabled || menu.props.disabled,
|
|
41
41
|
link: reactNode.props.link || menu.props.link,
|
|
42
42
|
target: reactNode.props.target || menu.props.target,
|