@progress/kendo-react-layout 13.3.0 → 13.4.0-develop.1
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/actionsheet/ActionSheet.d.ts +242 -0
- package/actionsheet/ActionSheetContent.d.ts +17 -0
- package/actionsheet/ActionSheetFooter.d.ts +42 -0
- package/actionsheet/ActionSheetHeader.d.ts +17 -0
- package/actionsheet/ActionSheetItem.d.ts +13 -0
- package/actionsheet/ActionSheetView.d.ts +16 -0
- package/actionsheet/interfaces/ActionSheetChildrenProps.d.ts +20 -0
- package/actionsheet/interfaces/ActionSheetItemProps.d.ts +76 -0
- package/appbar/AppBar.d.ts +56 -0
- package/appbar/AppBar.js +1 -1
- package/appbar/AppBar.mjs +10 -10
- package/appbar/AppBarSection.d.ts +55 -0
- package/appbar/AppBarSpacer.d.ts +56 -0
- package/appbar/interfaces/AppBarProps.d.ts +143 -0
- package/appbar/interfaces/AppBarSectionProps.d.ts +25 -0
- package/appbar/interfaces/AppBarSpacerProps.d.ts +26 -0
- package/bottomnavigation/BottomNavigation.d.ts +44 -0
- package/bottomnavigation/BottomNavigation.js +1 -1
- package/bottomnavigation/BottomNavigation.mjs +13 -13
- package/bottomnavigation/BottomNavigationItem.d.ts +19 -0
- package/bottomnavigation/BottomNavigationItem.mjs +3 -3
- package/bottomnavigation/BottomNavigationItemProps.d.ts +120 -0
- package/bottomnavigation/BottomNavigationProps.d.ts +238 -0
- package/bottomnavigation/models/events.d.ts +27 -0
- package/bottomnavigation/models/utils.d.ts +43 -0
- package/breadcrumb/Breadcrumb.d.ts +276 -0
- package/breadcrumb/Breadcrumb.js +1 -1
- package/breadcrumb/Breadcrumb.mjs +0 -1
- package/breadcrumb/BreadcrumbDelimiter.d.ts +50 -0
- package/breadcrumb/BreadcrumbLink.d.ts +136 -0
- package/breadcrumb/BreadcrumbLink.mjs +3 -3
- package/breadcrumb/BreadcrumbListItem.d.ts +58 -0
- package/breadcrumb/BreadcrumbOrderedList.d.ts +62 -0
- package/breadcrumb/BreadcrumbOrderedList.mjs +5 -5
- package/card/Avatar.d.ts +10 -0
- package/card/Avatar.js +1 -1
- package/card/Avatar.mjs +20 -22
- package/card/Card.d.ts +11 -0
- package/card/CardActions.d.ts +10 -0
- package/card/CardActions.mjs +1 -1
- package/card/CardBody.d.ts +10 -0
- package/card/CardFooter.d.ts +10 -0
- package/card/CardHeader.d.ts +10 -0
- package/card/CardImage.d.ts +10 -0
- package/card/CardSubtitle.d.ts +10 -0
- package/card/CardTitle.d.ts +10 -0
- package/card/interfaces/AvatarProps.d.ts +141 -0
- package/card/interfaces/CardActionsProps.d.ts +76 -0
- package/card/interfaces/CardBodyProps.d.ts +36 -0
- package/card/interfaces/CardFooterProps.d.ts +36 -0
- package/card/interfaces/CardHandle.d.ts +21 -0
- package/card/interfaces/CardHeaderProps.d.ts +36 -0
- package/card/interfaces/CardImageProps.d.ts +45 -0
- package/card/interfaces/CardProps.d.ts +91 -0
- package/card/interfaces/CardSubtitleProps.d.ts +36 -0
- package/card/interfaces/CardTitleProps.d.ts +21 -0
- package/card/interfaces/Enums.d.ts +30 -0
- package/contextmenu/ContextMenu.d.ts +50 -0
- package/dist/cdn/js/kendo-react-layout.js +1 -1
- package/drawer/Drawer.d.ts +52 -0
- package/drawer/DrawerContent.d.ts +48 -0
- package/drawer/DrawerItem.d.ts +37 -0
- package/drawer/DrawerNavigation.d.ts +49 -0
- package/drawer/DrawerNavigation.js +1 -1
- package/drawer/DrawerNavigation.mjs +27 -27
- package/drawer/context/DrawerContext.d.ts +27 -0
- package/drawer/interfaces/DrawerAnimation.d.ts +21 -0
- package/drawer/interfaces/DrawerContentProps.d.ts +24 -0
- package/drawer/interfaces/DrawerItemHandle.d.ts +24 -0
- package/drawer/interfaces/DrawerItemProps.d.ts +129 -0
- package/drawer/interfaces/DrawerNavigationProps.d.ts +24 -0
- package/drawer/interfaces/DrawerProps.d.ts +171 -0
- package/drawer/interfaces/DrawerSelectEvent.d.ts +22 -0
- package/expansionpanel/ExpansionPanel.d.ts +13 -0
- package/expansionpanel/ExpansionPanel.mjs +1 -1
- package/expansionpanel/ExpansionPanelContent.d.ts +12 -0
- package/expansionpanel/index.d.ts +10 -0
- package/expansionpanel/interfaces.d.ts +99 -0
- package/gridlayout/GridLayout.d.ts +45 -0
- package/gridlayout/GridLayoutItem.d.ts +44 -0
- package/gridlayout/interfaces/GridLayoutColumnProps.d.ts +21 -0
- package/gridlayout/interfaces/GridLayoutItemProps.d.ts +87 -0
- package/gridlayout/interfaces/GridLayoutProps.d.ts +144 -0
- package/gridlayout/interfaces/GridLayoutRowProps.d.ts +21 -0
- package/index.d.mts +101 -6278
- package/index.d.ts +101 -6278
- package/menu/BaseMenuItemInternalProps.d.ts +29 -0
- package/menu/MenuProps.d.ts +189 -0
- package/menu/components/Menu.d.ts +132 -0
- package/menu/components/Menu.mjs +1 -1
- package/menu/components/MenuItem.d.ts +43 -0
- package/menu/components/MenuItemArrow.d.ts +53 -0
- package/menu/components/MenuItemInternal.d.ts +70 -0
- package/menu/components/MenuItemLink.d.ts +37 -0
- package/menu/consts.d.ts +65 -0
- package/menu/events.d.ts +45 -0
- package/menu/models/BaseMenuItem.d.ts +65 -0
- package/menu/models/MenuItemModel.d.ts +30 -0
- package/menu/utils/DirectionHolder.d.ts +18 -0
- package/menu/utils/MouseOverHandler.d.ts +24 -0
- package/menu/utils/getNewItemIdUponKeyboardNavigation.d.ts +14 -0
- package/menu/utils/hoverDelay.d.ts +16 -0
- package/menu/utils/itemsIdsUtils.d.ts +71 -0
- package/menu/utils/itemsIdsUtils.mjs +49 -49
- package/menu/utils/misc.d.ts +23 -0
- package/menu/utils/prepareInputItemsForInternalWork.d.ts +13 -0
- package/package-metadata.d.ts +12 -0
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +10 -16
- package/package.json +8 -8
- package/panelbar/PanelBar.d.ts +89 -0
- package/panelbar/PanelBarItem.d.ts +61 -0
- package/panelbar/interfaces/NavigationAction.d.ts +19 -0
- package/panelbar/interfaces/PanelBarItemClickEventArguments.d.ts +15 -0
- package/panelbar/interfaces/PanelBarItemProps.d.ts +116 -0
- package/panelbar/interfaces/PanelBarProps.d.ts +140 -0
- package/panelbar/interfaces/PanelBarSelectEventArguments.d.ts +21 -0
- package/panelbar/interfaces/RenderPanelBarItem.d.ts +22 -0
- package/panelbar/util.d.ts +63 -0
- package/splitter/Splitter.d.ts +150 -0
- package/splitter/SplitterBar.d.ts +51 -0
- package/splitter/SplitterPane.d.ts +76 -0
- package/splitter/messages/index.d.ts +17 -0
- package/stacklayout/StackLayout.d.ts +43 -0
- package/stacklayout/StackLayoutProps.d.ts +97 -0
- package/stepper/Step.d.ts +29 -0
- package/stepper/Stepper.d.ts +29 -0
- package/stepper/contants.d.ts +15 -0
- package/stepper/context/StepperContext.d.ts +30 -0
- package/stepper/interfaces/StepChangeEvent.d.ts +18 -0
- package/stepper/interfaces/StepFocusEvent.d.ts +14 -0
- package/stepper/interfaces/StepHandle.d.ts +20 -0
- package/stepper/interfaces/StepProps.d.ts +95 -0
- package/stepper/interfaces/StepperChangeEvent.d.ts +18 -0
- package/stepper/interfaces/StepperFocusEvent.d.ts +14 -0
- package/stepper/interfaces/StepperHandle.d.ts +20 -0
- package/stepper/interfaces/StepperOnNavigateEvent.d.ts +38 -0
- package/stepper/interfaces/StepperProps.d.ts +216 -0
- package/stepper/messages/index.d.ts +22 -0
- package/tabstrip/TabStrip.d.ts +297 -0
- package/tabstrip/TabStrip.js +1 -1
- package/tabstrip/TabStrip.mjs +1 -1
- package/tabstrip/TabStripContent.d.ts +70 -0
- package/tabstrip/TabStripNavigation.d.ts +144 -0
- package/tabstrip/TabStripNavigation.mjs +6 -6
- package/tabstrip/TabStripNavigationItem.d.ts +82 -0
- package/tabstrip/TabStripTab.d.ts +50 -0
- package/tabstrip/messages/index.d.ts +22 -0
- package/tilelayout/InternalTile.d.ts +112 -0
- package/tilelayout/ResizeHandlers.d.ts +27 -0
- package/tilelayout/TileLayout.d.ts +228 -0
- package/tilelayout/interfaces/index.d.ts +159 -0
- package/timeline/Timeline.d.ts +205 -0
- package/timeline/TimelineCard.d.ts +44 -0
- package/timeline/TimelineHorizontal.d.ts +10 -0
- package/timeline/TimelineHorizontal.js +1 -1
- package/timeline/TimelineHorizontal.mjs +0 -2
- package/timeline/TimelineVertical.d.ts +19 -0
- package/timeline/utils.d.ts +22 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
import { StepProps } from './StepProps.js';
|
|
9
|
+
import { StepperChangeEvent } from './StepperChangeEvent.js';
|
|
10
|
+
import { StepperFocusEvent } from './StepperFocusEvent.js';
|
|
11
|
+
import { SVGIcon } from '@progress/kendo-react-common';
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
/**
|
|
14
|
+
* Represents the props of the [KendoReact Stepper component](https://www.telerik.com/kendo-react-ui/components/layout/stepper).
|
|
15
|
+
*/
|
|
16
|
+
export interface StepperProps {
|
|
17
|
+
/**
|
|
18
|
+
* Sets the Stepper animation duration in milliseconds.
|
|
19
|
+
*
|
|
20
|
+
* @default 400
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```jsx
|
|
24
|
+
* <Stepper animationDuration={400} />
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
animationDuration?: boolean | number;
|
|
28
|
+
/**
|
|
29
|
+
* Represents the child elements passed to the Stepper.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```jsx
|
|
33
|
+
* <Stepper>
|
|
34
|
+
* <Step label="Step 1" />
|
|
35
|
+
* <Step label="Step 2" />
|
|
36
|
+
* </Stepper>
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
children?: any;
|
|
40
|
+
/**
|
|
41
|
+
* Specifies a list of CSS classes that will be added to the Stepper.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```jsx
|
|
45
|
+
* <Stepper className="custom-stepper" />
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
className?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Represents the `dir` HTML attribute, used to switch between LTR and RTL.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```jsx
|
|
54
|
+
* <Stepper dir="rtl" />
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
dir?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Disables the entire Stepper.
|
|
60
|
+
*
|
|
61
|
+
* @default false
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```jsx
|
|
65
|
+
* <Stepper disabled />
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
disabled?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Specifies a custom icon rendered inside the step for invalid steps.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```jsx
|
|
74
|
+
* <Stepper errorIcon="k-icon k-i-warning" />
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
errorIcon?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Specifies a custom SVG icon rendered inside the step for invalid steps.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```jsx
|
|
83
|
+
* import { gearIcon } from '@progress/kendo-svg-icons';
|
|
84
|
+
*
|
|
85
|
+
* <Stepper errorSVGIcon={gearIcon} />
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
errorSVGIcon?: SVGIcon;
|
|
89
|
+
/**
|
|
90
|
+
* Overrides the default component responsible for rendering a single step ([see example](https://www.telerik.com/kendo-react-ui/components/layout/stepper/custom_rendering)).
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```jsx
|
|
94
|
+
* const CustomStep = (props) => <div>{props.label}</div>;
|
|
95
|
+
* <Stepper item={CustomStep} />
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
item?: React.ComponentType<StepProps>;
|
|
99
|
+
/**
|
|
100
|
+
* The collection of steps rendered in the Stepper ([see example](https://www.telerik.com/kendo-react-ui/components/layout/stepper)).
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```jsx
|
|
104
|
+
* <Stepper items={[{ label: 'Step 1' }, { label: 'Step 2' }]} />
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
items: Array<StepProps>;
|
|
108
|
+
/**
|
|
109
|
+
* Specifies whether the Stepper enforces a linear flow ([see example](https://www.telerik.com/kendo-react-ui/components/layout/stepper/linear_mode)).
|
|
110
|
+
*
|
|
111
|
+
* @default false
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```jsx
|
|
115
|
+
* <Stepper linear />
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
linear?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Specifies the Stepper display mode ([see example](https://www.telerik.com/kendo-react-ui/components/layout/stepper/display_modes)).
|
|
121
|
+
*
|
|
122
|
+
* The possible values are:
|
|
123
|
+
* * (Default) `steps`—Renders step indicators and optional labels.
|
|
124
|
+
* * `labels`—Renders labels only.
|
|
125
|
+
*
|
|
126
|
+
* @default steps
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```jsx
|
|
130
|
+
* <Stepper mode="labels" />
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
mode?: 'steps' | 'labels';
|
|
134
|
+
/**
|
|
135
|
+
* Specifies the Stepper orientation ([see example](https://www.telerik.com/kendo-react-ui/components/layout/stepper/orientation)).
|
|
136
|
+
*
|
|
137
|
+
* The possible values are:
|
|
138
|
+
* * (Default) `horizontal`
|
|
139
|
+
* * `vertical`
|
|
140
|
+
*
|
|
141
|
+
* @default horizontal
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```jsx
|
|
145
|
+
* <Stepper orientation="vertical" />
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
orientation?: 'horizontal' | 'vertical';
|
|
149
|
+
/**
|
|
150
|
+
* Indicates whether the selection changes upon focus change or requires additional action (Enter or Space key press) to select the focused step.
|
|
151
|
+
*
|
|
152
|
+
* @default false
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```jsx
|
|
156
|
+
* <Stepper selectOnFocus />
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
selectOnFocus?: boolean;
|
|
160
|
+
/**
|
|
161
|
+
* Sets additional CSS styles to the Stepper.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```jsx
|
|
165
|
+
* <Stepper style={{ backgroundColor: 'lightblue' }} />
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
style?: React.CSSProperties;
|
|
169
|
+
/**
|
|
170
|
+
* Specifies a custom icon rendered inside the step for valid steps.
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```jsx
|
|
174
|
+
* <Stepper successIcon="k-icon k-i-check" />
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
successIcon?: string;
|
|
178
|
+
/**
|
|
179
|
+
* Specifies a custom SVG icon rendered inside the step for valid steps.
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```jsx
|
|
183
|
+
* import { gearIcon } from '@progress/kendo-svg-icons';
|
|
184
|
+
*
|
|
185
|
+
* <Stepper successSVGIcon={gearIcon} />
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
successSVGIcon?: SVGIcon;
|
|
189
|
+
/**
|
|
190
|
+
* Specifies the index of the selected step.
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```jsx
|
|
194
|
+
* <Stepper value={1} />
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
value: number;
|
|
198
|
+
/**
|
|
199
|
+
* Fires when the value is changed.
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```jsx
|
|
203
|
+
* <Stepper onChange={(event) => console.log(event.value)} />
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
onChange?: (event: StepperChangeEvent) => void;
|
|
207
|
+
/**
|
|
208
|
+
* Fires when a step is focused.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```jsx
|
|
212
|
+
* <Stepper onFocus={(event) => console.log(event.step)} />
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
onFocus?: (event: StepperFocusEvent) => void;
|
|
216
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @hidden
|
|
10
|
+
*/
|
|
11
|
+
export declare const optionalText = "stepper.optionalText";
|
|
12
|
+
/**
|
|
13
|
+
* @hidden
|
|
14
|
+
*/
|
|
15
|
+
export declare const progBarAriaLabel = "stepper.progBarAriaLabel";
|
|
16
|
+
/**
|
|
17
|
+
* @hidden
|
|
18
|
+
*/
|
|
19
|
+
export declare const messages: {
|
|
20
|
+
"stepper.optionalText": string;
|
|
21
|
+
"stepper.progBarAriaLabel": string;
|
|
22
|
+
};
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
import { default as PropTypes } from 'prop-types';
|
|
9
|
+
import { KendoReactComponentBaseProps } from '@progress/kendo-react-common';
|
|
10
|
+
import { ButtonProps } from '@progress/kendo-react-buttons';
|
|
11
|
+
import * as React from 'react';
|
|
12
|
+
/**
|
|
13
|
+
* Represents the values of the size property of the TabStrip.
|
|
14
|
+
*/
|
|
15
|
+
export type TabStripSize = 'small' | 'medium' | 'large';
|
|
16
|
+
/**
|
|
17
|
+
* Represents the values of the scrollButtons property of the TabStrip.
|
|
18
|
+
*/
|
|
19
|
+
export type ScrollButtons = 'auto' | 'visible' | 'hidden';
|
|
20
|
+
/**
|
|
21
|
+
* Represents the values of the scrollButtonsPosition property of the TabStrip.
|
|
22
|
+
*/
|
|
23
|
+
export type ScrollButtonsPosition = 'split' | 'start' | 'end' | 'around' | 'before' | 'after';
|
|
24
|
+
/**
|
|
25
|
+
* @hidden
|
|
26
|
+
*/
|
|
27
|
+
export interface TabStripScrollableProps {
|
|
28
|
+
/**
|
|
29
|
+
* Determines whether the TabStrip will be scrollable.
|
|
30
|
+
*
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
scrollable?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Sets the tab list scroll speed in pixels when scrolling via clicking the previous or next button.
|
|
36
|
+
*
|
|
37
|
+
* @default 100
|
|
38
|
+
*/
|
|
39
|
+
buttonScrollSpeed?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Sets the visibility of the scroll buttons.
|
|
42
|
+
*
|
|
43
|
+
* @default `auto`
|
|
44
|
+
*/
|
|
45
|
+
scrollButtons?: ScrollButtons;
|
|
46
|
+
/**
|
|
47
|
+
* Sets the scroll buttons position according to the tab list.
|
|
48
|
+
* The previous options 'around', 'before', 'after' are going to be deprecated in favor of 'split', 'start', 'end'.
|
|
49
|
+
*
|
|
50
|
+
* @default `split`
|
|
51
|
+
*/
|
|
52
|
+
scrollButtonsPosition?: ScrollButtonsPosition;
|
|
53
|
+
/**
|
|
54
|
+
* Defines the custom component that will be rendered as a previous button.
|
|
55
|
+
* To remove the button, set a function which returns null `() => null`.
|
|
56
|
+
*/
|
|
57
|
+
prevButton?: React.ComponentType<ButtonProps>;
|
|
58
|
+
/**
|
|
59
|
+
* Defines the custom component that will be rendered as a next button.
|
|
60
|
+
* To remove the button, set a function which returns null `() => null`.
|
|
61
|
+
*/
|
|
62
|
+
nextButton?: React.ComponentType<ButtonProps>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The arguments that are passed to the `onSelect` callback function of the TabStrip.
|
|
66
|
+
*/
|
|
67
|
+
export interface TabStripSelectEventArguments {
|
|
68
|
+
/**
|
|
69
|
+
* The index of the selected TabStrip tab.
|
|
70
|
+
*/
|
|
71
|
+
selected: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Represents the props of the [KendoReact TabStrip component](https://www.telerik.com/kendo-react-ui/components/layout/tabstrip).
|
|
75
|
+
*/
|
|
76
|
+
export interface TabStripProps extends KendoReactComponentBaseProps, TabStripScrollableProps {
|
|
77
|
+
/**
|
|
78
|
+
* Enables the tab animation.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```jsx
|
|
82
|
+
* <TabStrip animation={true} />
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
animation?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Sets the index of the selected TabStripTab component ([see example](https://www.telerik.com/kendo-react-ui/components/layout/tabstrip/tabs#toc-tabs-on-initial-loading)).
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```jsx
|
|
91
|
+
* <TabStrip selected={0} />
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
selected?: number;
|
|
95
|
+
/**
|
|
96
|
+
* @hidden
|
|
97
|
+
*/
|
|
98
|
+
style?: any;
|
|
99
|
+
/**
|
|
100
|
+
* Sets the style of the TabStripContent component.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```jsx
|
|
104
|
+
* <TabStrip tabContentStyle={{ padding: '10px' }} />
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
tabContentStyle?: any;
|
|
108
|
+
/**
|
|
109
|
+
* Sets the position of the tabs. Defaults to `top`.
|
|
110
|
+
*
|
|
111
|
+
* The available options are:
|
|
112
|
+
* - `"top"`—Renders the `TabStripNavigation` to the top of the TabStrip.
|
|
113
|
+
* - `"bottom"`—Renders the `TabStripNavigation` to the bottom of the TabStrip.
|
|
114
|
+
* - `"left"`—Renders the `TabStripNavigation` to the left of the TabStrip.
|
|
115
|
+
* - `"right"`—Renders the `TabStripNavigation` to the right of the TabStrip.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```jsx
|
|
119
|
+
* <TabStrip tabPosition="bottom" />
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
tabPosition?: string;
|
|
123
|
+
/**
|
|
124
|
+
* Sets the alignment of the tabs. Defaults to `start`.
|
|
125
|
+
*
|
|
126
|
+
* The available options are:
|
|
127
|
+
* - `"start"`—Aligns the tabs at the start of the `TabStripNavigation`.
|
|
128
|
+
* - `"center"`—Aligns the tabs in the center of the `TabStripNavigation`.
|
|
129
|
+
* - `"end"`—Aligns the tabs at the end of the `TabStripNavigation`.
|
|
130
|
+
* - `"justify"`—Justifies the tabs inside the `TabStripNavigation`.
|
|
131
|
+
* - `"stretched"`—Stretches the tabs inside the `TabStripNavigation`.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```jsx
|
|
135
|
+
* <TabStrip tabAlignment="center" />
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
tabAlignment?: string;
|
|
139
|
+
/**
|
|
140
|
+
* Sets the `tabIndex` of the TabStripNavigation.
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```jsx
|
|
144
|
+
* <TabStrip tabIndex={0} />
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
tabIndex?: number;
|
|
148
|
+
/**
|
|
149
|
+
* Sets the direction of the TabStrip component.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```jsx
|
|
153
|
+
* <TabStrip dir="rtl" />
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
dir?: string;
|
|
157
|
+
/**
|
|
158
|
+
* Specifies the CSS class names of the TabStrip component.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```jsx
|
|
162
|
+
* <TabStrip className="custom-class" />
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
className?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Specifies the possible sizes of the TabStrip.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```jsx
|
|
171
|
+
* <TabStrip size="small" />
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
size?: TabStripSize;
|
|
175
|
+
/**
|
|
176
|
+
* Defines if the tabs will remain mounted after another tab is selected. Defaults to `false`.
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```jsx
|
|
180
|
+
* <TabStrip keepTabsMounted={true} />
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
keepTabsMounted?: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* @default false
|
|
186
|
+
* Defines if all component tabs will be rendered by default. Defaults to `false`.
|
|
187
|
+
* If set to `false`, the component will render only the currently selected tab. This can be useful when the content of the tabs is heavy and you want to improve the initial loading time. Check also the [keepTabsMounted](https://www.telerik.com/kendo-react-ui/components/layout/api/tabstripprops#toc-keeptabsmounted) prop.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```jsx
|
|
191
|
+
* <TabStrip renderAllContent={true} />
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
renderAllContent?: boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Fires each time the user makes a selection.
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```jsx
|
|
200
|
+
* <TabStrip onSelect={(e) => console.log(e.selected)} />
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
onSelect?: (e: TabStripSelectEventArguments) => void;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* @hidden
|
|
207
|
+
*/
|
|
208
|
+
export type StateScrollPosition = 'start' | 'end' | 'top' | 'bottom' | 'middle' | null;
|
|
209
|
+
/**
|
|
210
|
+
* @hidden
|
|
211
|
+
*/
|
|
212
|
+
export interface TabStripStateProps {
|
|
213
|
+
containerScrollPosition: StateScrollPosition;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Represents the TabStrip component.
|
|
217
|
+
*
|
|
218
|
+
* @remarks
|
|
219
|
+
* Supported children components are: {@link TabStripTab}.
|
|
220
|
+
*/
|
|
221
|
+
export declare class TabStrip extends React.Component<TabStripProps, TabStripStateProps, {}> {
|
|
222
|
+
/**
|
|
223
|
+
* @hidden
|
|
224
|
+
*/
|
|
225
|
+
static propTypes: {
|
|
226
|
+
id: PropTypes.Requireable<string>;
|
|
227
|
+
animation: PropTypes.Requireable<boolean>;
|
|
228
|
+
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
229
|
+
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
230
|
+
selected: PropTypes.Requireable<number>;
|
|
231
|
+
style: PropTypes.Requireable<object>;
|
|
232
|
+
tabContentStyle: PropTypes.Requireable<object>;
|
|
233
|
+
tabPosition: PropTypes.Requireable<string>;
|
|
234
|
+
tabAlignment: PropTypes.Requireable<string>;
|
|
235
|
+
tabIndex: PropTypes.Requireable<number>;
|
|
236
|
+
className: PropTypes.Requireable<string>;
|
|
237
|
+
dir: PropTypes.Requireable<string>;
|
|
238
|
+
renderAllContent: PropTypes.Requireable<boolean>;
|
|
239
|
+
size: PropTypes.Requireable<string | null>;
|
|
240
|
+
scrollButtons: PropTypes.Requireable<string>;
|
|
241
|
+
scrollButtonsPosition: PropTypes.Requireable<string>;
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* @hidden
|
|
245
|
+
*/
|
|
246
|
+
static defaultProps: {
|
|
247
|
+
animation: boolean;
|
|
248
|
+
tabPosition: string;
|
|
249
|
+
tabAlignment: string;
|
|
250
|
+
keepTabsMounted: boolean;
|
|
251
|
+
buttonScrollSpeed: number;
|
|
252
|
+
mouseScrollSpeed: number;
|
|
253
|
+
scrollButtons: string;
|
|
254
|
+
scrollButtonsPosition: string;
|
|
255
|
+
size: undefined;
|
|
256
|
+
renderAllContent: boolean;
|
|
257
|
+
};
|
|
258
|
+
private tabStripRef;
|
|
259
|
+
private itemsNavRef;
|
|
260
|
+
private resizeObserver?;
|
|
261
|
+
private get contentPanelId();
|
|
262
|
+
private get navItemId();
|
|
263
|
+
private navigation?;
|
|
264
|
+
constructor(props: TabStripProps);
|
|
265
|
+
/** @hidden */
|
|
266
|
+
componentDidMount(): void;
|
|
267
|
+
/** @hidden */
|
|
268
|
+
componentWillUnmount(): void;
|
|
269
|
+
private horizontalScroll;
|
|
270
|
+
/**
|
|
271
|
+
* @hidden
|
|
272
|
+
*/
|
|
273
|
+
private onScroll;
|
|
274
|
+
/**
|
|
275
|
+
* @hidden
|
|
276
|
+
*/
|
|
277
|
+
onSelect: (index: any) => void;
|
|
278
|
+
/**
|
|
279
|
+
* @hidden
|
|
280
|
+
*/
|
|
281
|
+
onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;
|
|
282
|
+
/**
|
|
283
|
+
* @hidden
|
|
284
|
+
*/
|
|
285
|
+
onKeyboardSelect: (index: number) => void;
|
|
286
|
+
/**
|
|
287
|
+
* @hidden
|
|
288
|
+
*/
|
|
289
|
+
render(): React.JSX.Element;
|
|
290
|
+
private renderContent;
|
|
291
|
+
private children;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Represent the `ref` of the TabStrip component.
|
|
295
|
+
*/
|
|
296
|
+
export interface TabStripHandle extends Pick<TabStrip, keyof TabStrip> {
|
|
297
|
+
}
|
package/tabstrip/TabStrip.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("react"),l=require("prop-types"),S=require("./TabStripNavigation.js"),y=require("./TabStripContent.js"),b=require("@progress/kendo-react-common");function P(p){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(p){for(const s in p)if(s!=="default"){const o=Object.getOwnPropertyDescriptor(p,s);Object.defineProperty(r,s,o.get?o:{enumerable:!0,get:()=>p[s]})}}return r.default=p,Object.freeze(r)}const d=P(v),u=class u extends d.Component{constructor(r){super(r),this.tabStripRef=d.createRef(),this.itemsNavRef=d.createRef(),this.onScroll=()=>{const s=this.horizontalScroll(),o=this.itemsNavRef.current;if(!o)return;const e=o.scrollLeft,t=o.clientWidth,i=o.scrollWidth,n=o.scrollTop,c=o.scrollHeight,h=o.clientHeight;let a=null;const g=s?i>t:c>h,m=this.props.dir==="rtl";g?s?e+t===i||(m&&t-e)===i?a="end":e===0||m&&-e===0?a="start":e>0&&e+t<i||-e>0&&t-e<i?a="middle":a=null:c-(n+h)===0?a="bottom":n===0?a="top":n>0&&c-(n+h)>0?a="middle":a=null:a=null,this.setState({containerScrollPosition:a})},this.onSelect=s=>{this.props.selected!==s&&this.props.onSelect&&this.props.onSelect({selected:s})},this.onKeyDown=s=>{this.navigation&&this.navigation.triggerKeyboardEvent(s)},this.onKeyboardSelect=s=>{const o=this.children();o&&o[s].props.disabled||this.onSelect(s)},this.renderContent=s=>{const{selected:o,children:e,tabContentStyle:t}=s,i=d.Children.count(e);return o<i&&o>-1?d.createElement(y.TabStripContent,{index:o,...s,style:t}):null},this.state={containerScrollPosition:null},this.itemsNavRef=d.createRef()}get contentPanelId(){return this.props.id+"-content-panel-id"}get navItemId(){return this.props.id+"-nav-item-id"}componentDidMount(){var o;const r=this.tabStripRef.current,s=r&&getComputedStyle(r).direction==="rtl"||!1;r&&(this.navigation=new b.Navigation({tabIndex:0,root:this.tabStripRef,rovingTabIndex:!0,focusClass:"k-focus",selectors:[".k-tabstrip .k-tabstrip-item"],keyboardEvents:{keydown:{ArrowLeft:(e,t,i)=>{i.preventDefault();const n=t.elements.indexOf(e),c=n!==0?n-1:t.elements.length-1,h=n!==t.elements.length-1?n+1:0;s?(t.focusNext(e),this.onKeyboardSelect(h)):(t.focusPrevious(e),this.onKeyboardSelect(c))},ArrowRight:(e,t,i)=>{i.preventDefault();const n=t.elements.indexOf(e),c=n!==0?n-1:t.elements.length-1,h=n!==t.elements.length-1?n+1:0;s?(t.focusPrevious(e),this.onKeyboardSelect(c)):(t.focusNext(e),this.onKeyboardSelect(h))},ArrowDown:(e,t,i)=>{i.preventDefault();const n=t.elements.indexOf(e),c=n!==t.elements.length-1?n+1:0;t.focusNext(e),this.onKeyboardSelect(c)},ArrowUp:(e,t,i)=>{i.preventDefault();const n=t.elements.indexOf(e),c=n!==0?n-1:t.elements.length-1;t.focusPrevious(e),this.onKeyboardSelect(c)},Home:(e,t,i)=>{i.preventDefault(),t.focusElement(t.first,e),this.onKeyboardSelect(0)},End:(e,t,i)=>{i.preventDefault(),t.focusElement(t.last,e),this.onKeyboardSelect(t.elements.length-1)}}}}),(o=this.navigation)==null||o.initializeRovingTab(this.props.selected),this.onScroll(),this.resizeObserver=window.ResizeObserver&&new ResizeObserver(()=>this.onScroll()),this.tabStripRef.current&&this.resizeObserver&&this.resizeObserver.observe(this.tabStripRef.current))}componentWillUnmount(){var r;(r=this.navigation)==null||r.removeFocusListener(),this.resizeObserver&&this.resizeObserver.disconnect()}horizontalScroll(){return/top|bottom/.test(this.props.tabPosition||"top")}render(){const r={itemsNavRef:this.itemsNavRef,...this.props,children:this.children(),contentPanelId:this.contentPanelId,renderAllContent:this.props.renderAllContent,navItemId:this.navItemId,onKeyDown:this.onKeyDown,onSelect:this.onSelect,onScroll:this.onScroll,containerScrollPosition:this.state.containerScrollPosition,scrollButtons:this.props.scrollButtons==="hidden"||this.state.containerScrollPosition===null&&this.props.scrollButtons==="auto"?"hidden":"visible"},{scrollable:s,scrollButtons:o,size:e,tabPosition:t,tabIndex:i}=r,n=t==="bottom",c=b.classNames("k-tabstrip k-pos-relative",{[`k-tabstrip-${b.kendoThemeMaps.sizeMap[e]||e}`]:e,"k-tabstrip-left":t==="left","k-tabstrip-right":t==="right","k-tabstrip-bottom":t==="bottom","k-tabstrip-top":t==="top","k-tabstrip-scrollable":s,"k-tabstrip-scrollable-start k-tabstrip-scrollable-end":s&&o==="visible","k-tabstrip-scrollable-start":s&&(o==="auto"||!o)&&(this.state.containerScrollPosition==="end"||this.state.containerScrollPosition==="middle"),"k-tabstrip-scrollable-end":s&&o==="auto"&&(this.state.containerScrollPosition==="start"||this.state.containerScrollPosition==="middle")},this.props.className);return d.createElement("div",{id:this.props.id,ref:this.tabStripRef,dir:this.props.dir,className:c,style:this.props.style,onScroll:this.onScroll},!n&&d.createElement(S.TabStripNavigation,{...r,tabIndex:i}),this.renderContent(r),n&&d.createElement(S.TabStripNavigation,{...r,tabIndex:i}))}children(){return d.Children.toArray(this.props.children).filter(r=>r)}};u.propTypes={id:l.string,animation:l.bool,children:l.node,onSelect:l.func,selected:l.number,style:l.object,tabContentStyle:l.object,tabPosition:l.string,tabAlignment:l.string,tabIndex:l.number,className:l.string,dir:l.string,renderAllContent:l.bool,size:l.oneOf(["small","medium","large",null]),scrollButtons:l.oneOf(["auto","visible","hidden"]),scrollButtonsPosition:l.oneOf(["split","start","end","around","before","after"])},u.defaultProps={animation:!0,tabPosition:"top",tabAlignment:"start",keepTabsMounted:!1,buttonScrollSpeed:100,mouseScrollSpeed:10,scrollButtons:"auto",scrollButtonsPosition:"split",size:
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("react"),l=require("prop-types"),S=require("./TabStripNavigation.js"),y=require("./TabStripContent.js"),b=require("@progress/kendo-react-common");function P(p){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(p){for(const s in p)if(s!=="default"){const o=Object.getOwnPropertyDescriptor(p,s);Object.defineProperty(r,s,o.get?o:{enumerable:!0,get:()=>p[s]})}}return r.default=p,Object.freeze(r)}const d=P(v),u=class u extends d.Component{constructor(r){super(r),this.tabStripRef=d.createRef(),this.itemsNavRef=d.createRef(),this.onScroll=()=>{const s=this.horizontalScroll(),o=this.itemsNavRef.current;if(!o)return;const e=o.scrollLeft,t=o.clientWidth,i=o.scrollWidth,n=o.scrollTop,c=o.scrollHeight,h=o.clientHeight;let a=null;const g=s?i>t:c>h,m=this.props.dir==="rtl";g?s?e+t===i||(m&&t-e)===i?a="end":e===0||m&&-e===0?a="start":e>0&&e+t<i||-e>0&&t-e<i?a="middle":a=null:c-(n+h)===0?a="bottom":n===0?a="top":n>0&&c-(n+h)>0?a="middle":a=null:a=null,this.setState({containerScrollPosition:a})},this.onSelect=s=>{this.props.selected!==s&&this.props.onSelect&&this.props.onSelect({selected:s})},this.onKeyDown=s=>{this.navigation&&this.navigation.triggerKeyboardEvent(s)},this.onKeyboardSelect=s=>{const o=this.children();o&&o[s].props.disabled||this.onSelect(s)},this.renderContent=s=>{const{selected:o,children:e,tabContentStyle:t}=s,i=d.Children.count(e);return o<i&&o>-1?d.createElement(y.TabStripContent,{index:o,...s,style:t}):null},this.state={containerScrollPosition:null},this.itemsNavRef=d.createRef()}get contentPanelId(){return this.props.id+"-content-panel-id"}get navItemId(){return this.props.id+"-nav-item-id"}componentDidMount(){var o;const r=this.tabStripRef.current,s=r&&getComputedStyle(r).direction==="rtl"||!1;r&&(this.navigation=new b.Navigation({tabIndex:0,root:this.tabStripRef,rovingTabIndex:!0,focusClass:"k-focus",selectors:[".k-tabstrip .k-tabstrip-item"],keyboardEvents:{keydown:{ArrowLeft:(e,t,i)=>{i.preventDefault();const n=t.elements.indexOf(e),c=n!==0?n-1:t.elements.length-1,h=n!==t.elements.length-1?n+1:0;s?(t.focusNext(e),this.onKeyboardSelect(h)):(t.focusPrevious(e),this.onKeyboardSelect(c))},ArrowRight:(e,t,i)=>{i.preventDefault();const n=t.elements.indexOf(e),c=n!==0?n-1:t.elements.length-1,h=n!==t.elements.length-1?n+1:0;s?(t.focusPrevious(e),this.onKeyboardSelect(c)):(t.focusNext(e),this.onKeyboardSelect(h))},ArrowDown:(e,t,i)=>{i.preventDefault();const n=t.elements.indexOf(e),c=n!==t.elements.length-1?n+1:0;t.focusNext(e),this.onKeyboardSelect(c)},ArrowUp:(e,t,i)=>{i.preventDefault();const n=t.elements.indexOf(e),c=n!==0?n-1:t.elements.length-1;t.focusPrevious(e),this.onKeyboardSelect(c)},Home:(e,t,i)=>{i.preventDefault(),t.focusElement(t.first,e),this.onKeyboardSelect(0)},End:(e,t,i)=>{i.preventDefault(),t.focusElement(t.last,e),this.onKeyboardSelect(t.elements.length-1)}}}}),(o=this.navigation)==null||o.initializeRovingTab(this.props.selected),this.onScroll(),this.resizeObserver=window.ResizeObserver&&new ResizeObserver(()=>this.onScroll()),this.tabStripRef.current&&this.resizeObserver&&this.resizeObserver.observe(this.tabStripRef.current))}componentWillUnmount(){var r;(r=this.navigation)==null||r.removeFocusListener(),this.resizeObserver&&this.resizeObserver.disconnect()}horizontalScroll(){return/top|bottom/.test(this.props.tabPosition||"top")}render(){const r={itemsNavRef:this.itemsNavRef,...this.props,children:this.children(),contentPanelId:this.contentPanelId,renderAllContent:this.props.renderAllContent,navItemId:this.navItemId,onKeyDown:this.onKeyDown,onSelect:this.onSelect,onScroll:this.onScroll,containerScrollPosition:this.state.containerScrollPosition,scrollButtons:this.props.scrollButtons==="hidden"||this.state.containerScrollPosition===null&&this.props.scrollButtons==="auto"?"hidden":"visible"},{scrollable:s,scrollButtons:o,size:e,tabPosition:t,tabIndex:i}=r,n=t==="bottom",c=b.classNames("k-tabstrip k-pos-relative",{[`k-tabstrip-${b.kendoThemeMaps.sizeMap[e]||e}`]:e,"k-tabstrip-left":t==="left","k-tabstrip-right":t==="right","k-tabstrip-bottom":t==="bottom","k-tabstrip-top":t==="top","k-tabstrip-scrollable":s,"k-tabstrip-scrollable-start k-tabstrip-scrollable-end":s&&o==="visible","k-tabstrip-scrollable-start":s&&(o==="auto"||!o)&&(this.state.containerScrollPosition==="end"||this.state.containerScrollPosition==="middle"),"k-tabstrip-scrollable-end":s&&o==="auto"&&(this.state.containerScrollPosition==="start"||this.state.containerScrollPosition==="middle")},this.props.className);return d.createElement("div",{id:this.props.id,ref:this.tabStripRef,dir:this.props.dir,className:c,style:this.props.style,onScroll:this.onScroll},!n&&d.createElement(S.TabStripNavigation,{...r,tabIndex:i}),this.renderContent(r),n&&d.createElement(S.TabStripNavigation,{...r,tabIndex:i}))}children(){return d.Children.toArray(this.props.children).filter(r=>r)}};u.propTypes={id:l.string,animation:l.bool,children:l.node,onSelect:l.func,selected:l.number,style:l.object,tabContentStyle:l.object,tabPosition:l.string,tabAlignment:l.string,tabIndex:l.number,className:l.string,dir:l.string,renderAllContent:l.bool,size:l.oneOf(["small","medium","large",null]),scrollButtons:l.oneOf(["auto","visible","hidden"]),scrollButtonsPosition:l.oneOf(["split","start","end","around","before","after"])},u.defaultProps={animation:!0,tabPosition:"top",tabAlignment:"start",keepTabsMounted:!1,buttonScrollSpeed:100,mouseScrollSpeed:10,scrollButtons:"auto",scrollButtonsPosition:"split",size:void 0,renderAllContent:!1};let f=u;exports.TabStrip=f;
|
package/tabstrip/TabStrip.mjs
CHANGED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
import { default as PropTypes } from 'prop-types';
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
/**
|
|
11
|
+
* The props that are passed to the TabStripContent by the TabStrip.
|
|
12
|
+
*/
|
|
13
|
+
export interface TabStripContentProps {
|
|
14
|
+
/**
|
|
15
|
+
* Defines whether the content appearance will be animated.
|
|
16
|
+
*/
|
|
17
|
+
animation?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* The index of the selected tab. Used to indicate which child to render.
|
|
20
|
+
*/
|
|
21
|
+
selected?: number;
|
|
22
|
+
/**
|
|
23
|
+
* @hidden
|
|
24
|
+
*/
|
|
25
|
+
style?: any;
|
|
26
|
+
/**
|
|
27
|
+
* @hidden
|
|
28
|
+
*/
|
|
29
|
+
index?: number;
|
|
30
|
+
/**
|
|
31
|
+
* @hidden
|
|
32
|
+
*/
|
|
33
|
+
keepTabsMounted?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* @hidden
|
|
36
|
+
*/
|
|
37
|
+
renderAllContent?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* @hidden
|
|
40
|
+
*/
|
|
41
|
+
children?: React.ReactNode;
|
|
42
|
+
/**
|
|
43
|
+
* @hidden
|
|
44
|
+
*/
|
|
45
|
+
contentPanelId?: string;
|
|
46
|
+
/**
|
|
47
|
+
* @hidden
|
|
48
|
+
*/
|
|
49
|
+
navItemId?: string;
|
|
50
|
+
}
|
|
51
|
+
export declare class TabStripContent extends React.Component<TabStripContentProps, {}> {
|
|
52
|
+
/**
|
|
53
|
+
* @hidden
|
|
54
|
+
*/
|
|
55
|
+
static propTypes: {
|
|
56
|
+
animation: PropTypes.Requireable<boolean>;
|
|
57
|
+
children: PropTypes.Requireable<NonNullable<PropTypes.ReactElementLike | (PropTypes.ReactElementLike | null | undefined)[] | null | undefined>>;
|
|
58
|
+
selected: PropTypes.Requireable<number>;
|
|
59
|
+
style: PropTypes.Requireable<object>;
|
|
60
|
+
};
|
|
61
|
+
private contentId;
|
|
62
|
+
/**
|
|
63
|
+
* @hidden
|
|
64
|
+
*/
|
|
65
|
+
render(): React.JSX.Element | React.JSX.Element[] | null | undefined;
|
|
66
|
+
private renderContent;
|
|
67
|
+
private renderAllContent;
|
|
68
|
+
private renderChild;
|
|
69
|
+
private childFactory;
|
|
70
|
+
}
|