@sap-ux/ui-components 1.13.5 → 1.14.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/dist/components/Icons.d.ts +150 -150
- package/dist/components/Icons.js +628 -628
- package/dist/components/UIActionCallout/UIActionCallout.d.ts +64 -64
- package/dist/components/UIActionCallout/UIActionCallout.js +67 -67
- package/dist/components/UIActionCallout/index.d.ts +1 -1
- package/dist/components/UIActionCallout/index.js +17 -17
- package/dist/components/UIBreadcrumb/UIBreadcrumb.d.ts +23 -23
- package/dist/components/UIBreadcrumb/UIBreadcrumb.js +38 -38
- package/dist/components/UIBreadcrumb/index.d.ts +1 -1
- package/dist/components/UIBreadcrumb/index.js +17 -17
- package/dist/components/UIButton/UIActionButton.d.ts +23 -23
- package/dist/components/UIButton/UIActionButton.js +89 -89
- package/dist/components/UIButton/UIDefaultButton.d.ts +41 -23
- package/dist/components/UIButton/UIDefaultButton.d.ts.map +1 -1
- package/dist/components/UIButton/UIDefaultButton.js +255 -237
- package/dist/components/UIButton/UIDefaultButton.js.map +1 -1
- package/dist/components/UIButton/UIIconButton.d.ts +37 -37
- package/dist/components/UIButton/UIIconButton.js +106 -106
- package/dist/components/UIButton/UISmallButton.d.ts +34 -34
- package/dist/components/UIButton/UISmallButton.js +115 -115
- package/dist/components/UIButton/UISplitButton.d.ts +44 -44
- package/dist/components/UIButton/UISplitButton.js +86 -86
- package/dist/components/UIButton/index.d.ts +7 -7
- package/dist/components/UIButton/index.js +21 -21
- package/dist/components/UICallout/CalloutCollisionTransform.d.ts +54 -54
- package/dist/components/UICallout/CalloutCollisionTransform.js +160 -160
- package/dist/components/UICallout/UICallout.d.ts +48 -48
- package/dist/components/UICallout/UICallout.js +122 -122
- package/dist/components/UICallout/index.d.ts +2 -2
- package/dist/components/UICallout/index.js +18 -18
- package/dist/components/UICheckbox/UICheckbox.d.ts +34 -34
- package/dist/components/UICheckbox/UICheckbox.js +135 -135
- package/dist/components/UICheckbox/index.d.ts +1 -1
- package/dist/components/UICheckbox/index.js +17 -17
- package/dist/components/UIChoiceGroup/UIChoiceGroup.d.ts +28 -28
- package/dist/components/UIChoiceGroup/UIChoiceGroup.js +182 -182
- package/dist/components/UIChoiceGroup/index.d.ts +1 -1
- package/dist/components/UIChoiceGroup/index.js +17 -17
- package/dist/components/UIComboBox/UIComboBox.d.ts +208 -200
- package/dist/components/UIComboBox/UIComboBox.d.ts.map +1 -1
- package/dist/components/UIComboBox/UIComboBox.js +563 -541
- package/dist/components/UIComboBox/UIComboBox.js.map +1 -1
- package/dist/components/UIComboBox/index.d.ts +1 -1
- package/dist/components/UIComboBox/index.js +17 -17
- package/dist/components/UIContextualMenu/UIContextualMenu.d.ts +31 -31
- package/dist/components/UIContextualMenu/UIContextualMenu.js +126 -126
- package/dist/components/UIContextualMenu/UIHighlightMenuOption.d.ts +19 -19
- package/dist/components/UIContextualMenu/UIHighlightMenuOption.js +50 -50
- package/dist/components/UIContextualMenu/index.d.ts +2 -2
- package/dist/components/UIContextualMenu/index.js +18 -18
- package/dist/components/UICreateSelect/UICreateSelect.d.ts +36 -36
- package/dist/components/UICreateSelect/UICreateSelect.js +172 -172
- package/dist/components/UICreateSelect/index.d.ts +1 -1
- package/dist/components/UICreateSelect/index.js +17 -17
- package/dist/components/UIDatePicker/UIDatePicker.d.ts +49 -49
- package/dist/components/UIDatePicker/UIDatePicker.js +72 -72
- package/dist/components/UIDatePicker/index.d.ts +1 -1
- package/dist/components/UIDatePicker/index.js +17 -17
- package/dist/components/UIDialog/UIDialog.d.ts +118 -118
- package/dist/components/UIDialog/UIDialog.js +281 -281
- package/dist/components/UIDialog/index.d.ts +1 -1
- package/dist/components/UIDialog/index.js +17 -17
- package/dist/components/UIDropdown/UIDropdown.d.ts +94 -94
- package/dist/components/UIDropdown/UIDropdown.js +224 -224
- package/dist/components/UIDropdown/index.d.ts +2 -2
- package/dist/components/UIDropdown/index.js +18 -18
- package/dist/components/UIDropdown/utils.d.ts +20 -20
- package/dist/components/UIDropdown/utils.js +43 -43
- package/dist/components/UIFlexibleTable/RowActions.d.ts +16 -16
- package/dist/components/UIFlexibleTable/RowActions.js +73 -73
- package/dist/components/UIFlexibleTable/RowData.d.ts +16 -16
- package/dist/components/UIFlexibleTable/RowData.js +111 -111
- package/dist/components/UIFlexibleTable/UIFlexibleTable.d.ts +11 -11
- package/dist/components/UIFlexibleTable/UIFlexibleTable.js +280 -280
- package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.d.ts +20 -20
- package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.js +20 -20
- package/dist/components/UIFlexibleTable/UIFlexibleTableRow.d.ts +26 -26
- package/dist/components/UIFlexibleTable/UIFlexibleTableRow.js +219 -219
- package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.d.ts +20 -20
- package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.js +19 -19
- package/dist/components/UIFlexibleTable/UIFlexibleTableRowNoData.d.ts +15 -15
- package/dist/components/UIFlexibleTable/UIFlexibleTableRowNoData.js +28 -28
- package/dist/components/UIFlexibleTable/index.d.ts +5 -5
- package/dist/components/UIFlexibleTable/index.js +21 -21
- package/dist/components/UIFlexibleTable/types.d.ts +143 -143
- package/dist/components/UIFlexibleTable/types.js +14 -14
- package/dist/components/UIFlexibleTable/utils.d.ts +25 -25
- package/dist/components/UIFlexibleTable/utils.js +49 -49
- package/dist/components/UIFocusZone/UIFocusTrapZone.d.ts +22 -22
- package/dist/components/UIFocusZone/UIFocusTrapZone.js +33 -33
- package/dist/components/UIFocusZone/UIFocusZone.d.ts +23 -23
- package/dist/components/UIFocusZone/UIFocusZone.js +35 -35
- package/dist/components/UIFocusZone/index.d.ts +2 -2
- package/dist/components/UIFocusZone/index.js +18 -18
- package/dist/components/UIIcon/UIIcon.d.ts +24 -24
- package/dist/components/UIIcon/UIIcon.js +37 -37
- package/dist/components/UIIcon/index.d.ts +1 -1
- package/dist/components/UIIcon/index.js +17 -17
- package/dist/components/UIInput/UITextInput.d.ts +51 -51
- package/dist/components/UIInput/UITextInput.js +244 -244
- package/dist/components/UIInput/index.d.ts +1 -1
- package/dist/components/UIInput/index.js +17 -17
- package/dist/components/UILabel/UILabel.d.ts +30 -30
- package/dist/components/UILabel/UILabel.js +64 -64
- package/dist/components/UILabel/index.d.ts +1 -1
- package/dist/components/UILabel/index.js +17 -17
- package/dist/components/UILink/UILink.d.ts +25 -25
- package/dist/components/UILink/UILink.js +71 -71
- package/dist/components/UILink/index.d.ts +1 -1
- package/dist/components/UILink/index.js +17 -17
- package/dist/components/UIList/UIList.d.ts +31 -31
- package/dist/components/UIList/UIList.js +120 -120
- package/dist/components/UIList/index.d.ts +1 -1
- package/dist/components/UIList/index.js +17 -17
- package/dist/components/UILoader/UILoader.d.ts +27 -27
- package/dist/components/UILoader/UILoader.js +78 -78
- package/dist/components/UILoader/index.d.ts +1 -1
- package/dist/components/UILoader/index.js +17 -17
- package/dist/components/UIMessageBar/UIMessageBar.d.ts +25 -25
- package/dist/components/UIMessageBar/UIMessageBar.js +56 -56
- package/dist/components/UIMessageBar/index.d.ts +1 -1
- package/dist/components/UIMessageBar/index.js +17 -17
- package/dist/components/UIModal/UIModal.d.ts +23 -23
- package/dist/components/UIModal/UIModal.js +43 -43
- package/dist/components/UIModal/index.d.ts +1 -1
- package/dist/components/UIModal/index.js +17 -17
- package/dist/components/UIOverlay/UIOverlay.d.ts +22 -22
- package/dist/components/UIOverlay/UIOverlay.js +38 -38
- package/dist/components/UIOverlay/index.d.ts +1 -1
- package/dist/components/UIOverlay/index.js +17 -17
- package/dist/components/UIPersona/UIPersona.d.ts +27 -27
- package/dist/components/UIPersona/UIPersona.js +48 -48
- package/dist/components/UIPersona/index.d.ts +1 -1
- package/dist/components/UIPersona/index.js +17 -17
- package/dist/components/UISearchBox/UISearchBox.d.ts +22 -22
- package/dist/components/UISearchBox/UISearchBox.js +155 -155
- package/dist/components/UISearchBox/index.d.ts +3 -3
- package/dist/components/UISearchBox/index.js +17 -17
- package/dist/components/UISection/UISection.d.ts +34 -34
- package/dist/components/UISection/UISection.js +44 -44
- package/dist/components/UISection/UISections.d.ts +249 -249
- package/dist/components/UISection/UISections.js +707 -707
- package/dist/components/UISection/UISplitter.d.ts +96 -96
- package/dist/components/UISection/UISplitter.js +220 -220
- package/dist/components/UISection/index.d.ts +3 -3
- package/dist/components/UISection/index.js +19 -19
- package/dist/components/UISeparator/UISeparator.d.ts +25 -25
- package/dist/components/UISeparator/UISeparator.js +65 -65
- package/dist/components/UISeparator/index.d.ts +1 -1
- package/dist/components/UISeparator/index.js +17 -17
- package/dist/components/UITable/UITable-helper.d.ts +88 -88
- package/dist/components/UITable/UITable-helper.js +263 -263
- package/dist/components/UITable/UITable.d.ts +213 -213
- package/dist/components/UITable/UITable.js +779 -779
- package/dist/components/UITable/index.d.ts +2 -2
- package/dist/components/UITable/index.js +18 -18
- package/dist/components/UITable/types.d.ts +77 -77
- package/dist/components/UITable/types.js +28 -28
- package/dist/components/UITabs/UITabs.d.ts +28 -28
- package/dist/components/UITabs/UITabs.js +70 -70
- package/dist/components/UITabs/index.d.ts +1 -1
- package/dist/components/UITabs/index.js +17 -17
- package/dist/components/UIToggle/UIToggle.d.ts +39 -39
- package/dist/components/UIToggle/UIToggle.js +181 -181
- package/dist/components/UIToggle/index.d.ts +1 -1
- package/dist/components/UIToggle/index.js +17 -17
- package/dist/components/UIToggleGroup/UIToggleGroup.d.ts +31 -31
- package/dist/components/UIToggleGroup/UIToggleGroup.js +139 -139
- package/dist/components/UIToggleGroup/UIToggleGroup.types.d.ts +22 -22
- package/dist/components/UIToggleGroup/UIToggleGroup.types.js +2 -2
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.d.ts +25 -25
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.js +77 -77
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.d.ts +10 -10
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.js +2 -2
- package/dist/components/UIToggleGroup/UIToggleGroupOption/index.d.ts +2 -2
- package/dist/components/UIToggleGroup/UIToggleGroupOption/index.js +18 -18
- package/dist/components/UIToggleGroup/index.d.ts +2 -2
- package/dist/components/UIToggleGroup/index.js +18 -18
- package/dist/components/UIToolbar/UIToolbar.d.ts +36 -36
- package/dist/components/UIToolbar/UIToolbar.js +104 -104
- package/dist/components/UIToolbar/UIToolbarColumn.d.ts +7 -7
- package/dist/components/UIToolbar/UIToolbarColumn.js +33 -33
- package/dist/components/UIToolbar/UIToolbarDivider.d.ts +27 -27
- package/dist/components/UIToolbar/UIToolbarDivider.js +52 -52
- package/dist/components/UIToolbar/index.d.ts +3 -3
- package/dist/components/UIToolbar/index.js +19 -19
- package/dist/components/UITooltip/UITooltip.d.ts +29 -29
- package/dist/components/UITooltip/UITooltip.js +77 -77
- package/dist/components/UITooltip/UITooltipUtils.d.ts +17 -17
- package/dist/components/UITooltip/UITooltipUtils.js +45 -45
- package/dist/components/UITooltip/index.d.ts +2 -2
- package/dist/components/UITooltip/index.js +18 -18
- package/dist/components/UITranslationInput/UIFormattedText.d.ts +46 -46
- package/dist/components/UITranslationInput/UIFormattedText.js +121 -121
- package/dist/components/UITranslationInput/UILoadButton.d.ts +52 -52
- package/dist/components/UITranslationInput/UILoadButton.js +109 -109
- package/dist/components/UITranslationInput/UITranslationButton.d.ts +14 -14
- package/dist/components/UITranslationInput/UITranslationButton.js +88 -88
- package/dist/components/UITranslationInput/UITranslationButton.types.d.ts +67 -67
- package/dist/components/UITranslationInput/UITranslationButton.types.js +21 -21
- package/dist/components/UITranslationInput/UITranslationInput.d.ts +25 -25
- package/dist/components/UITranslationInput/UITranslationInput.js +169 -169
- package/dist/components/UITranslationInput/UITranslationUtils.d.ts +64 -64
- package/dist/components/UITranslationInput/UITranslationUtils.js +168 -168
- package/dist/components/UITranslationInput/defaults.d.ts +2 -2
- package/dist/components/UITranslationInput/defaults.js +15 -15
- package/dist/components/UITranslationInput/index.d.ts +2 -2
- package/dist/components/UITranslationInput/index.js +18 -18
- package/dist/components/UITreeDropdown/UITreeDropdown.d.ts +265 -265
- package/dist/components/UITreeDropdown/UITreeDropdown.js +660 -660
- package/dist/components/UITreeDropdown/index.d.ts +1 -1
- package/dist/components/UITreeDropdown/index.js +17 -17
- package/dist/components/UIVerticalDivider/UIVerticalDivider.d.ts +23 -23
- package/dist/components/UIVerticalDivider/UIVerticalDivider.js +41 -41
- package/dist/components/UIVerticalDivider/index.d.ts +1 -1
- package/dist/components/UIVerticalDivider/index.js +17 -17
- package/dist/components/UIVirtualList/UIAutoSizer.d.ts +22 -22
- package/dist/components/UIVirtualList/UIAutoSizer.js +33 -33
- package/dist/components/UIVirtualList/UICellMeasurer.d.ts +23 -23
- package/dist/components/UIVirtualList/UICellMeasurer.js +33 -33
- package/dist/components/UIVirtualList/UIVirtualList.d.ts +43 -43
- package/dist/components/UIVirtualList/UIVirtualList.js +70 -70
- package/dist/components/UIVirtualList/index.d.ts +3 -3
- package/dist/components/UIVirtualList/index.js +19 -19
- package/dist/components/index.d.ts +38 -38
- package/dist/components/index.js +54 -54
- package/dist/helper/ValidationMessage/MessageWrapper.d.ts +17 -17
- package/dist/helper/ValidationMessage/MessageWrapper.js +34 -34
- package/dist/helper/ValidationMessage/index.d.ts +2 -2
- package/dist/helper/ValidationMessage/index.js +18 -18
- package/dist/helper/ValidationMessage/utils.d.ts +31 -31
- package/dist/helper/ValidationMessage/utils.js +121 -121
- package/dist/index.d.ts +2 -2
- package/dist/index.js +18 -18
- package/dist/utilities/DeepMerge.d.ts +10 -10
- package/dist/utilities/DeepMerge.js +48 -48
- package/dist/utilities/Dom.d.ts +14 -7
- package/dist/utilities/Dom.d.ts.map +1 -1
- package/dist/utilities/Dom.js +23 -13
- package/dist/utilities/Dom.js.map +1 -1
- package/dist/utilities/Focus.d.ts +14 -14
- package/dist/utilities/Focus.js +34 -34
- package/dist/utilities/Id.d.ts +2 -2
- package/dist/utilities/Id.js +5 -5
- package/dist/utilities/Keys.d.ts +2 -2
- package/dist/utilities/Keys.js +5 -5
- package/dist/utilities/index.d.ts +4 -4
- package/dist/utilities/index.js +20 -20
- package/package.json +1 -1
- package/storybook/494.d8aaa4d7.iframe.bundle.js +1 -0
- package/storybook/580.057c85e9.iframe.bundle.js +1 -0
- package/storybook/{930.1b3c5615.iframe.bundle.js → 930.3177b0dc.iframe.bundle.js} +2 -2
- package/storybook/UIActionCallout-story.9ee56c83.iframe.bundle.js +2 -0
- package/storybook/UIToggleGroup-story.573848ba.iframe.bundle.js +2 -0
- package/storybook/iframe.html +3 -3
- package/storybook/main.5f68bcca.iframe.bundle.js +1 -0
- package/storybook/project.json +1 -1
- package/storybook/{runtime~main.7c93d414.iframe.bundle.js → runtime~main.a213c0ae.iframe.bundle.js} +1 -1
- package/storybook/494.1829058d.iframe.bundle.js +0 -1
- package/storybook/580.c5ddde6e.iframe.bundle.js +0 -1
- package/storybook/UIActionCallout-story.13bdf055.iframe.bundle.js +0 -2
- package/storybook/UIToggleGroup-story.6f3e7d06.iframe.bundle.js +0 -2
- package/storybook/main.4ed99289.iframe.bundle.js +0 -1
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import './UISplitter.scss';
|
|
3
|
-
export interface UISplitterProps {
|
|
4
|
-
type: UISplitterType;
|
|
5
|
-
vertical?: boolean;
|
|
6
|
-
hidden?: boolean;
|
|
7
|
-
onResizeStart?: () => void;
|
|
8
|
-
onResize: (position: number) => boolean;
|
|
9
|
-
onResizeEnd?: () => void;
|
|
10
|
-
onToggle?: () => void;
|
|
11
|
-
title?: string;
|
|
12
|
-
splitterLayoutType?: UISplitterLayoutType;
|
|
13
|
-
}
|
|
14
|
-
export declare enum UISplitterType {
|
|
15
|
-
Resize = "resize",
|
|
16
|
-
Toggle = "toggle"
|
|
17
|
-
}
|
|
18
|
-
export declare enum UISplitterLayoutType {
|
|
19
|
-
Standard = "standard",
|
|
20
|
-
Compact = "compact"
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
*/
|
|
25
|
-
export declare class UISplitter extends React.Component<UISplitterProps> {
|
|
26
|
-
private readonly splitterOverlay;
|
|
27
|
-
private readonly mousedownPosition;
|
|
28
|
-
private readonly rootRef;
|
|
29
|
-
private readonly size;
|
|
30
|
-
private readonly compactSize;
|
|
31
|
-
private animationFrame?;
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
34
|
-
* @param props
|
|
35
|
-
*/
|
|
36
|
-
constructor(props: UISplitterProps);
|
|
37
|
-
/**
|
|
38
|
-
* Method called on mousedown over splitter.
|
|
39
|
-
* Method would start resize session.
|
|
40
|
-
*
|
|
41
|
-
* @param {React.MouseEvent} event Mouse.
|
|
42
|
-
*/
|
|
43
|
-
private startSplitterMove;
|
|
44
|
-
/**
|
|
45
|
-
* Method called when resize session is in progress and user moves mouse.
|
|
46
|
-
*
|
|
47
|
-
* @param {React.MouseEvent} event Mouse event.
|
|
48
|
-
*/
|
|
49
|
-
private doMousemoveResize;
|
|
50
|
-
/**
|
|
51
|
-
* Method which receives new delta position of splitter and updates DOM with calling callback.
|
|
52
|
-
*
|
|
53
|
-
* @param {number} deltaPosition Delta position of splitter.
|
|
54
|
-
*/
|
|
55
|
-
private doResize;
|
|
56
|
-
/**
|
|
57
|
-
* Method called on mouseup or mouseleave events.
|
|
58
|
-
* Method would end resize session.
|
|
59
|
-
*/
|
|
60
|
-
private stopMousemoveResize;
|
|
61
|
-
/**
|
|
62
|
-
* Method to update splitter DOM and events depending on if resize started or ended.
|
|
63
|
-
*
|
|
64
|
-
* @param {boolean} start Resize is started or ended.
|
|
65
|
-
*/
|
|
66
|
-
private updateSplitterEvents;
|
|
67
|
-
/**
|
|
68
|
-
* Method called when clicked over splitter and splitter type is 'Toggle'.
|
|
69
|
-
*/
|
|
70
|
-
private toggleSplitter;
|
|
71
|
-
/**
|
|
72
|
-
* Gets icon.
|
|
73
|
-
*
|
|
74
|
-
* @param type
|
|
75
|
-
* @param splitterLayoutType
|
|
76
|
-
* @returns {string}
|
|
77
|
-
*/
|
|
78
|
-
private getIcon;
|
|
79
|
-
/**
|
|
80
|
-
* Method called when keydown events fired while splitter is focused.
|
|
81
|
-
* Method enables support for resize using keyboard.
|
|
82
|
-
*
|
|
83
|
-
* @param {React.KeyboardEvent<HTMLDivElement>} event KeyDown event.
|
|
84
|
-
*/
|
|
85
|
-
private onKeyDown;
|
|
86
|
-
/**
|
|
87
|
-
* Method returns class names string depending on props and component state.
|
|
88
|
-
*
|
|
89
|
-
* @returns {number} Minimal size of section.
|
|
90
|
-
*/
|
|
91
|
-
getClassNames(): string;
|
|
92
|
-
/**
|
|
93
|
-
* @returns {React.ReactElement}
|
|
94
|
-
*/
|
|
95
|
-
render(): React.ReactElement;
|
|
96
|
-
}
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './UISplitter.scss';
|
|
3
|
+
export interface UISplitterProps {
|
|
4
|
+
type: UISplitterType;
|
|
5
|
+
vertical?: boolean;
|
|
6
|
+
hidden?: boolean;
|
|
7
|
+
onResizeStart?: () => void;
|
|
8
|
+
onResize: (position: number) => boolean;
|
|
9
|
+
onResizeEnd?: () => void;
|
|
10
|
+
onToggle?: () => void;
|
|
11
|
+
title?: string;
|
|
12
|
+
splitterLayoutType?: UISplitterLayoutType;
|
|
13
|
+
}
|
|
14
|
+
export declare enum UISplitterType {
|
|
15
|
+
Resize = "resize",
|
|
16
|
+
Toggle = "toggle"
|
|
17
|
+
}
|
|
18
|
+
export declare enum UISplitterLayoutType {
|
|
19
|
+
Standard = "standard",
|
|
20
|
+
Compact = "compact"
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
export declare class UISplitter extends React.Component<UISplitterProps> {
|
|
26
|
+
private readonly splitterOverlay;
|
|
27
|
+
private readonly mousedownPosition;
|
|
28
|
+
private readonly rootRef;
|
|
29
|
+
private readonly size;
|
|
30
|
+
private readonly compactSize;
|
|
31
|
+
private animationFrame?;
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* @param props
|
|
35
|
+
*/
|
|
36
|
+
constructor(props: UISplitterProps);
|
|
37
|
+
/**
|
|
38
|
+
* Method called on mousedown over splitter.
|
|
39
|
+
* Method would start resize session.
|
|
40
|
+
*
|
|
41
|
+
* @param {React.MouseEvent} event Mouse.
|
|
42
|
+
*/
|
|
43
|
+
private startSplitterMove;
|
|
44
|
+
/**
|
|
45
|
+
* Method called when resize session is in progress and user moves mouse.
|
|
46
|
+
*
|
|
47
|
+
* @param {React.MouseEvent} event Mouse event.
|
|
48
|
+
*/
|
|
49
|
+
private doMousemoveResize;
|
|
50
|
+
/**
|
|
51
|
+
* Method which receives new delta position of splitter and updates DOM with calling callback.
|
|
52
|
+
*
|
|
53
|
+
* @param {number} deltaPosition Delta position of splitter.
|
|
54
|
+
*/
|
|
55
|
+
private doResize;
|
|
56
|
+
/**
|
|
57
|
+
* Method called on mouseup or mouseleave events.
|
|
58
|
+
* Method would end resize session.
|
|
59
|
+
*/
|
|
60
|
+
private stopMousemoveResize;
|
|
61
|
+
/**
|
|
62
|
+
* Method to update splitter DOM and events depending on if resize started or ended.
|
|
63
|
+
*
|
|
64
|
+
* @param {boolean} start Resize is started or ended.
|
|
65
|
+
*/
|
|
66
|
+
private updateSplitterEvents;
|
|
67
|
+
/**
|
|
68
|
+
* Method called when clicked over splitter and splitter type is 'Toggle'.
|
|
69
|
+
*/
|
|
70
|
+
private toggleSplitter;
|
|
71
|
+
/**
|
|
72
|
+
* Gets icon.
|
|
73
|
+
*
|
|
74
|
+
* @param type
|
|
75
|
+
* @param splitterLayoutType
|
|
76
|
+
* @returns {string}
|
|
77
|
+
*/
|
|
78
|
+
private getIcon;
|
|
79
|
+
/**
|
|
80
|
+
* Method called when keydown events fired while splitter is focused.
|
|
81
|
+
* Method enables support for resize using keyboard.
|
|
82
|
+
*
|
|
83
|
+
* @param {React.KeyboardEvent<HTMLDivElement>} event KeyDown event.
|
|
84
|
+
*/
|
|
85
|
+
private onKeyDown;
|
|
86
|
+
/**
|
|
87
|
+
* Method returns class names string depending on props and component state.
|
|
88
|
+
*
|
|
89
|
+
* @returns {number} Minimal size of section.
|
|
90
|
+
*/
|
|
91
|
+
getClassNames(): string;
|
|
92
|
+
/**
|
|
93
|
+
* @returns {React.ReactElement}
|
|
94
|
+
*/
|
|
95
|
+
render(): React.ReactElement;
|
|
96
|
+
}
|
|
97
97
|
//# sourceMappingURL=UISplitter.d.ts.map
|
|
@@ -1,221 +1,221 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.UISplitter = exports.UISplitterLayoutType = exports.UISplitterType = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
require("./UISplitter.scss");
|
|
9
|
-
const Icons_1 = require("../Icons");
|
|
10
|
-
const UIIcon_1 = require("../UIIcon");
|
|
11
|
-
var UISplitterType;
|
|
12
|
-
(function (UISplitterType) {
|
|
13
|
-
UISplitterType["Resize"] = "resize";
|
|
14
|
-
UISplitterType["Toggle"] = "toggle";
|
|
15
|
-
})(UISplitterType = exports.UISplitterType || (exports.UISplitterType = {}));
|
|
16
|
-
var UISplitterLayoutType;
|
|
17
|
-
(function (UISplitterLayoutType) {
|
|
18
|
-
UISplitterLayoutType["Standard"] = "standard";
|
|
19
|
-
UISplitterLayoutType["Compact"] = "compact";
|
|
20
|
-
})(UISplitterLayoutType = exports.UISplitterLayoutType || (exports.UISplitterLayoutType = {}));
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
*/
|
|
24
|
-
class UISplitter extends react_1.default.Component {
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
* @param props
|
|
28
|
-
*/
|
|
29
|
-
constructor(props) {
|
|
30
|
-
super(props);
|
|
31
|
-
this.mousedownPosition = {
|
|
32
|
-
x: 0,
|
|
33
|
-
y: 0
|
|
34
|
-
};
|
|
35
|
-
this.size = 14;
|
|
36
|
-
this.compactSize = 8;
|
|
37
|
-
this.rootRef = react_1.default.createRef();
|
|
38
|
-
this.stopMousemoveResize = this.stopMousemoveResize.bind(this);
|
|
39
|
-
this.doMousemoveResize = this.doMousemoveResize.bind(this);
|
|
40
|
-
// Splitter overlay DOM for block dom during resize
|
|
41
|
-
this.splitterOverlay = document.createElement('div');
|
|
42
|
-
this.splitterOverlay.setAttribute('class', `splitter__overlay ${props.vertical ? 'splitter__overlay--vertical' : 'splitter__overlay--horizontal'}`);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Method called on mousedown over splitter.
|
|
46
|
-
* Method would start resize session.
|
|
47
|
-
*
|
|
48
|
-
* @param {React.MouseEvent} event Mouse.
|
|
49
|
-
*/
|
|
50
|
-
startSplitterMove(event) {
|
|
51
|
-
this.mousedownPosition.x = event.clientX;
|
|
52
|
-
this.mousedownPosition.y = event.clientY;
|
|
53
|
-
// Update DOM
|
|
54
|
-
this.updateSplitterEvents(true);
|
|
55
|
-
// Stop event bubbling
|
|
56
|
-
event.stopPropagation();
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Method called when resize session is in progress and user moves mouse.
|
|
60
|
-
*
|
|
61
|
-
* @param {React.MouseEvent} event Mouse event.
|
|
62
|
-
*/
|
|
63
|
-
doMousemoveResize(event) {
|
|
64
|
-
const propertyName = this.props.vertical ? 'clientY' : 'clientX';
|
|
65
|
-
const coordinateNameName = this.props.vertical ? 'y' : 'x';
|
|
66
|
-
const newPosition = event[propertyName] - this.mousedownPosition[coordinateNameName];
|
|
67
|
-
this.doResize(newPosition);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Method which receives new delta position of splitter and updates DOM with calling callback.
|
|
71
|
-
*
|
|
72
|
-
* @param {number} deltaPosition Delta position of splitter.
|
|
73
|
-
*/
|
|
74
|
-
doResize(deltaPosition) {
|
|
75
|
-
const cssPropertyName = this.props.vertical ? 'top' : 'left';
|
|
76
|
-
if (this.animationFrame) {
|
|
77
|
-
window.cancelAnimationFrame(this.animationFrame);
|
|
78
|
-
}
|
|
79
|
-
this.animationFrame = window.requestAnimationFrame(() => {
|
|
80
|
-
// Call callback
|
|
81
|
-
if (this.props.onResize(deltaPosition)) {
|
|
82
|
-
// Update resizer DOM
|
|
83
|
-
const dom = this.rootRef.current;
|
|
84
|
-
if (dom) {
|
|
85
|
-
dom.style[cssPropertyName] = `${deltaPosition - this.size / 2}px`;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Method called on mouseup or mouseleave events.
|
|
92
|
-
* Method would end resize session.
|
|
93
|
-
*/
|
|
94
|
-
stopMousemoveResize() {
|
|
95
|
-
this.updateSplitterEvents(false);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Method to update splitter DOM and events depending on if resize started or ended.
|
|
99
|
-
*
|
|
100
|
-
* @param {boolean} start Resize is started or ended.
|
|
101
|
-
*/
|
|
102
|
-
updateSplitterEvents(start) {
|
|
103
|
-
if (start) {
|
|
104
|
-
document.body.addEventListener('mouseup', this.stopMousemoveResize);
|
|
105
|
-
document.body.addEventListener('mouseleave', this.stopMousemoveResize);
|
|
106
|
-
document.body.addEventListener('mousemove', this.doMousemoveResize);
|
|
107
|
-
document.body.appendChild(this.splitterOverlay);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
document.body.removeEventListener('mouseup', this.stopMousemoveResize);
|
|
111
|
-
document.body.removeEventListener('mouseleave', this.stopMousemoveResize);
|
|
112
|
-
document.body.removeEventListener('mousemove', this.doMousemoveResize);
|
|
113
|
-
document.body.removeChild(this.splitterOverlay);
|
|
114
|
-
}
|
|
115
|
-
if (start && this.props.onResizeStart) {
|
|
116
|
-
this.props.onResizeStart();
|
|
117
|
-
}
|
|
118
|
-
else if (!start && this.props.onResizeEnd) {
|
|
119
|
-
this.props.onResizeEnd();
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Method called when clicked over splitter and splitter type is 'Toggle'.
|
|
124
|
-
*/
|
|
125
|
-
toggleSplitter() {
|
|
126
|
-
if (this.props.onToggle) {
|
|
127
|
-
this.props.onToggle();
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Gets icon.
|
|
132
|
-
*
|
|
133
|
-
* @param type
|
|
134
|
-
* @param splitterLayoutType
|
|
135
|
-
* @returns {string}
|
|
136
|
-
*/
|
|
137
|
-
getIcon(type, splitterLayoutType = UISplitterLayoutType.Standard) {
|
|
138
|
-
if (type === UISplitterType.Toggle) {
|
|
139
|
-
return Icons_1.UiIcons.ArrowLeft;
|
|
140
|
-
}
|
|
141
|
-
else if (splitterLayoutType === UISplitterLayoutType.Compact) {
|
|
142
|
-
return Icons_1.UiIcons.Grabber;
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
return Icons_1.UiIcons.VerticalGrip;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Method called when keydown events fired while splitter is focused.
|
|
150
|
-
* Method enables support for resize using keyboard.
|
|
151
|
-
*
|
|
152
|
-
* @param {React.KeyboardEvent<HTMLDivElement>} event KeyDown event.
|
|
153
|
-
*/
|
|
154
|
-
onKeyDown(event) {
|
|
155
|
-
if (this.props.type === UISplitterType.Resize) {
|
|
156
|
-
const stepSize = 10;
|
|
157
|
-
let deltaPosition = 0;
|
|
158
|
-
if (['ArrowLeft', 'ArrowUp'].includes(event.key)) {
|
|
159
|
-
deltaPosition = -stepSize;
|
|
160
|
-
}
|
|
161
|
-
else if (['ArrowRight', 'ArrowDown'].includes(event.key)) {
|
|
162
|
-
deltaPosition = stepSize;
|
|
163
|
-
}
|
|
164
|
-
if (deltaPosition === 0) {
|
|
165
|
-
// There no resize with keyboard
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
// Do full resize cycle - start, move and end
|
|
169
|
-
if (this.props.onResizeStart) {
|
|
170
|
-
this.props.onResizeStart();
|
|
171
|
-
}
|
|
172
|
-
this.doResize(deltaPosition);
|
|
173
|
-
if (this.props.onResizeEnd) {
|
|
174
|
-
this.props.onResizeEnd();
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
else if (this.props.type === UISplitterType.Toggle && event.key === 'Enter') {
|
|
178
|
-
this.toggleSplitter();
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Method returns class names string depending on props and component state.
|
|
183
|
-
*
|
|
184
|
-
* @returns {number} Minimal size of section.
|
|
185
|
-
*/
|
|
186
|
-
getClassNames() {
|
|
187
|
-
const { type, vertical, hidden, splitterLayoutType } = this.props;
|
|
188
|
-
let classNames = `splitter splitter--${type}`;
|
|
189
|
-
// vertical or horizontal
|
|
190
|
-
classNames += ` ${vertical ? 'splitter--vertical' : 'splitter--horizontal'}`;
|
|
191
|
-
if (hidden && type === UISplitterType.Resize) {
|
|
192
|
-
classNames += ' splitter--hidden';
|
|
193
|
-
}
|
|
194
|
-
classNames += ` ${splitterLayoutType === UISplitterLayoutType.Standard ? 'splitter--standard' : 'splitter--compact'}`;
|
|
195
|
-
return classNames;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* @returns {React.ReactElement}
|
|
199
|
-
*/
|
|
200
|
-
render() {
|
|
201
|
-
const { type, vertical, hidden, title, splitterLayoutType } = this.props;
|
|
202
|
-
const size = splitterLayoutType === UISplitterLayoutType.Standard ? this.size : this.compactSize;
|
|
203
|
-
const splitterOffset = type === UISplitterType.Toggle ? -size : -size / 2;
|
|
204
|
-
const role = type === UISplitterType.Toggle ? 'button' : 'separator';
|
|
205
|
-
const orientation = vertical ? 'horizontal' : 'vertical';
|
|
206
|
-
let ariaPressed;
|
|
207
|
-
if (type === UISplitterType.Toggle) {
|
|
208
|
-
ariaPressed = hidden ? false : true;
|
|
209
|
-
}
|
|
210
|
-
return (react_1.default.createElement("div", { ref: this.rootRef, role: role, "aria-orientation": orientation, "aria-pressed": ariaPressed, title: title, tabIndex: type === UISplitterType.Toggle ? 0 : -1, onKeyDown: this.onKeyDown.bind(this), style: {
|
|
211
|
-
...(vertical && { height: size, top: splitterOffset }),
|
|
212
|
-
...(!vertical && { width: size, left: splitterOffset })
|
|
213
|
-
}, onMouseDown: type === UISplitterType.Resize
|
|
214
|
-
? (event) => this.startSplitterMove(event)
|
|
215
|
-
: undefined, onClick: type === UISplitterType.Toggle ? () => this.toggleSplitter() : undefined, className: this.getClassNames() },
|
|
216
|
-
react_1.default.createElement("div", { className: "splitter__grip" },
|
|
217
|
-
react_1.default.createElement(UIIcon_1.UIIcon, { iconName: this.getIcon(type, splitterLayoutType) }))));
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
exports.UISplitter = UISplitter;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UISplitter = exports.UISplitterLayoutType = exports.UISplitterType = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
require("./UISplitter.scss");
|
|
9
|
+
const Icons_1 = require("../Icons");
|
|
10
|
+
const UIIcon_1 = require("../UIIcon");
|
|
11
|
+
var UISplitterType;
|
|
12
|
+
(function (UISplitterType) {
|
|
13
|
+
UISplitterType["Resize"] = "resize";
|
|
14
|
+
UISplitterType["Toggle"] = "toggle";
|
|
15
|
+
})(UISplitterType = exports.UISplitterType || (exports.UISplitterType = {}));
|
|
16
|
+
var UISplitterLayoutType;
|
|
17
|
+
(function (UISplitterLayoutType) {
|
|
18
|
+
UISplitterLayoutType["Standard"] = "standard";
|
|
19
|
+
UISplitterLayoutType["Compact"] = "compact";
|
|
20
|
+
})(UISplitterLayoutType = exports.UISplitterLayoutType || (exports.UISplitterLayoutType = {}));
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
class UISplitter extends react_1.default.Component {
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param props
|
|
28
|
+
*/
|
|
29
|
+
constructor(props) {
|
|
30
|
+
super(props);
|
|
31
|
+
this.mousedownPosition = {
|
|
32
|
+
x: 0,
|
|
33
|
+
y: 0
|
|
34
|
+
};
|
|
35
|
+
this.size = 14;
|
|
36
|
+
this.compactSize = 8;
|
|
37
|
+
this.rootRef = react_1.default.createRef();
|
|
38
|
+
this.stopMousemoveResize = this.stopMousemoveResize.bind(this);
|
|
39
|
+
this.doMousemoveResize = this.doMousemoveResize.bind(this);
|
|
40
|
+
// Splitter overlay DOM for block dom during resize
|
|
41
|
+
this.splitterOverlay = document.createElement('div');
|
|
42
|
+
this.splitterOverlay.setAttribute('class', `splitter__overlay ${props.vertical ? 'splitter__overlay--vertical' : 'splitter__overlay--horizontal'}`);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Method called on mousedown over splitter.
|
|
46
|
+
* Method would start resize session.
|
|
47
|
+
*
|
|
48
|
+
* @param {React.MouseEvent} event Mouse.
|
|
49
|
+
*/
|
|
50
|
+
startSplitterMove(event) {
|
|
51
|
+
this.mousedownPosition.x = event.clientX;
|
|
52
|
+
this.mousedownPosition.y = event.clientY;
|
|
53
|
+
// Update DOM
|
|
54
|
+
this.updateSplitterEvents(true);
|
|
55
|
+
// Stop event bubbling
|
|
56
|
+
event.stopPropagation();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Method called when resize session is in progress and user moves mouse.
|
|
60
|
+
*
|
|
61
|
+
* @param {React.MouseEvent} event Mouse event.
|
|
62
|
+
*/
|
|
63
|
+
doMousemoveResize(event) {
|
|
64
|
+
const propertyName = this.props.vertical ? 'clientY' : 'clientX';
|
|
65
|
+
const coordinateNameName = this.props.vertical ? 'y' : 'x';
|
|
66
|
+
const newPosition = event[propertyName] - this.mousedownPosition[coordinateNameName];
|
|
67
|
+
this.doResize(newPosition);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Method which receives new delta position of splitter and updates DOM with calling callback.
|
|
71
|
+
*
|
|
72
|
+
* @param {number} deltaPosition Delta position of splitter.
|
|
73
|
+
*/
|
|
74
|
+
doResize(deltaPosition) {
|
|
75
|
+
const cssPropertyName = this.props.vertical ? 'top' : 'left';
|
|
76
|
+
if (this.animationFrame) {
|
|
77
|
+
window.cancelAnimationFrame(this.animationFrame);
|
|
78
|
+
}
|
|
79
|
+
this.animationFrame = window.requestAnimationFrame(() => {
|
|
80
|
+
// Call callback
|
|
81
|
+
if (this.props.onResize(deltaPosition)) {
|
|
82
|
+
// Update resizer DOM
|
|
83
|
+
const dom = this.rootRef.current;
|
|
84
|
+
if (dom) {
|
|
85
|
+
dom.style[cssPropertyName] = `${deltaPosition - this.size / 2}px`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Method called on mouseup or mouseleave events.
|
|
92
|
+
* Method would end resize session.
|
|
93
|
+
*/
|
|
94
|
+
stopMousemoveResize() {
|
|
95
|
+
this.updateSplitterEvents(false);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Method to update splitter DOM and events depending on if resize started or ended.
|
|
99
|
+
*
|
|
100
|
+
* @param {boolean} start Resize is started or ended.
|
|
101
|
+
*/
|
|
102
|
+
updateSplitterEvents(start) {
|
|
103
|
+
if (start) {
|
|
104
|
+
document.body.addEventListener('mouseup', this.stopMousemoveResize);
|
|
105
|
+
document.body.addEventListener('mouseleave', this.stopMousemoveResize);
|
|
106
|
+
document.body.addEventListener('mousemove', this.doMousemoveResize);
|
|
107
|
+
document.body.appendChild(this.splitterOverlay);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
document.body.removeEventListener('mouseup', this.stopMousemoveResize);
|
|
111
|
+
document.body.removeEventListener('mouseleave', this.stopMousemoveResize);
|
|
112
|
+
document.body.removeEventListener('mousemove', this.doMousemoveResize);
|
|
113
|
+
document.body.removeChild(this.splitterOverlay);
|
|
114
|
+
}
|
|
115
|
+
if (start && this.props.onResizeStart) {
|
|
116
|
+
this.props.onResizeStart();
|
|
117
|
+
}
|
|
118
|
+
else if (!start && this.props.onResizeEnd) {
|
|
119
|
+
this.props.onResizeEnd();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Method called when clicked over splitter and splitter type is 'Toggle'.
|
|
124
|
+
*/
|
|
125
|
+
toggleSplitter() {
|
|
126
|
+
if (this.props.onToggle) {
|
|
127
|
+
this.props.onToggle();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Gets icon.
|
|
132
|
+
*
|
|
133
|
+
* @param type
|
|
134
|
+
* @param splitterLayoutType
|
|
135
|
+
* @returns {string}
|
|
136
|
+
*/
|
|
137
|
+
getIcon(type, splitterLayoutType = UISplitterLayoutType.Standard) {
|
|
138
|
+
if (type === UISplitterType.Toggle) {
|
|
139
|
+
return Icons_1.UiIcons.ArrowLeft;
|
|
140
|
+
}
|
|
141
|
+
else if (splitterLayoutType === UISplitterLayoutType.Compact) {
|
|
142
|
+
return Icons_1.UiIcons.Grabber;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
return Icons_1.UiIcons.VerticalGrip;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Method called when keydown events fired while splitter is focused.
|
|
150
|
+
* Method enables support for resize using keyboard.
|
|
151
|
+
*
|
|
152
|
+
* @param {React.KeyboardEvent<HTMLDivElement>} event KeyDown event.
|
|
153
|
+
*/
|
|
154
|
+
onKeyDown(event) {
|
|
155
|
+
if (this.props.type === UISplitterType.Resize) {
|
|
156
|
+
const stepSize = 10;
|
|
157
|
+
let deltaPosition = 0;
|
|
158
|
+
if (['ArrowLeft', 'ArrowUp'].includes(event.key)) {
|
|
159
|
+
deltaPosition = -stepSize;
|
|
160
|
+
}
|
|
161
|
+
else if (['ArrowRight', 'ArrowDown'].includes(event.key)) {
|
|
162
|
+
deltaPosition = stepSize;
|
|
163
|
+
}
|
|
164
|
+
if (deltaPosition === 0) {
|
|
165
|
+
// There no resize with keyboard
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
// Do full resize cycle - start, move and end
|
|
169
|
+
if (this.props.onResizeStart) {
|
|
170
|
+
this.props.onResizeStart();
|
|
171
|
+
}
|
|
172
|
+
this.doResize(deltaPosition);
|
|
173
|
+
if (this.props.onResizeEnd) {
|
|
174
|
+
this.props.onResizeEnd();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else if (this.props.type === UISplitterType.Toggle && event.key === 'Enter') {
|
|
178
|
+
this.toggleSplitter();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Method returns class names string depending on props and component state.
|
|
183
|
+
*
|
|
184
|
+
* @returns {number} Minimal size of section.
|
|
185
|
+
*/
|
|
186
|
+
getClassNames() {
|
|
187
|
+
const { type, vertical, hidden, splitterLayoutType } = this.props;
|
|
188
|
+
let classNames = `splitter splitter--${type}`;
|
|
189
|
+
// vertical or horizontal
|
|
190
|
+
classNames += ` ${vertical ? 'splitter--vertical' : 'splitter--horizontal'}`;
|
|
191
|
+
if (hidden && type === UISplitterType.Resize) {
|
|
192
|
+
classNames += ' splitter--hidden';
|
|
193
|
+
}
|
|
194
|
+
classNames += ` ${splitterLayoutType === UISplitterLayoutType.Standard ? 'splitter--standard' : 'splitter--compact'}`;
|
|
195
|
+
return classNames;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* @returns {React.ReactElement}
|
|
199
|
+
*/
|
|
200
|
+
render() {
|
|
201
|
+
const { type, vertical, hidden, title, splitterLayoutType } = this.props;
|
|
202
|
+
const size = splitterLayoutType === UISplitterLayoutType.Standard ? this.size : this.compactSize;
|
|
203
|
+
const splitterOffset = type === UISplitterType.Toggle ? -size : -size / 2;
|
|
204
|
+
const role = type === UISplitterType.Toggle ? 'button' : 'separator';
|
|
205
|
+
const orientation = vertical ? 'horizontal' : 'vertical';
|
|
206
|
+
let ariaPressed;
|
|
207
|
+
if (type === UISplitterType.Toggle) {
|
|
208
|
+
ariaPressed = hidden ? false : true;
|
|
209
|
+
}
|
|
210
|
+
return (react_1.default.createElement("div", { ref: this.rootRef, role: role, "aria-orientation": orientation, "aria-pressed": ariaPressed, title: title, tabIndex: type === UISplitterType.Toggle ? 0 : -1, onKeyDown: this.onKeyDown.bind(this), style: {
|
|
211
|
+
...(vertical && { height: size, top: splitterOffset }),
|
|
212
|
+
...(!vertical && { width: size, left: splitterOffset })
|
|
213
|
+
}, onMouseDown: type === UISplitterType.Resize
|
|
214
|
+
? (event) => this.startSplitterMove(event)
|
|
215
|
+
: undefined, onClick: type === UISplitterType.Toggle ? () => this.toggleSplitter() : undefined, className: this.getClassNames() },
|
|
216
|
+
react_1.default.createElement("div", { className: "splitter__grip" },
|
|
217
|
+
react_1.default.createElement(UIIcon_1.UIIcon, { iconName: this.getIcon(type, splitterLayoutType) }))));
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
exports.UISplitter = UISplitter;
|
|
221
221
|
//# sourceMappingURL=UISplitter.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './UISections';
|
|
2
|
-
export * from './UISection';
|
|
3
|
-
export * from './UISplitter';
|
|
1
|
+
export * from './UISections';
|
|
2
|
+
export * from './UISection';
|
|
3
|
+
export * from './UISplitter';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|