@sap-ux/ui-components 1.0.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/LICENSE +201 -0
- package/README.md +20 -0
- package/dist/components/Icons.d.ts +105 -0
- package/dist/components/Icons.d.ts.map +1 -0
- package/dist/components/Icons.js +401 -0
- package/dist/components/Icons.js.map +1 -0
- package/dist/components/UIBreadcrumb/UIBreadcrumb.d.ts +23 -0
- package/dist/components/UIBreadcrumb/UIBreadcrumb.d.ts.map +1 -0
- package/dist/components/UIBreadcrumb/UIBreadcrumb.js +38 -0
- package/dist/components/UIBreadcrumb/UIBreadcrumb.js.map +1 -0
- package/dist/components/UIBreadcrumb/index.d.ts +2 -0
- package/dist/components/UIBreadcrumb/index.d.ts.map +1 -0
- package/dist/components/UIBreadcrumb/index.js +14 -0
- package/dist/components/UIBreadcrumb/index.js.map +1 -0
- package/dist/components/UIButton/UIActionButton.d.ts +23 -0
- package/dist/components/UIButton/UIActionButton.d.ts.map +1 -0
- package/dist/components/UIButton/UIActionButton.js +97 -0
- package/dist/components/UIButton/UIActionButton.js.map +1 -0
- package/dist/components/UIButton/UIDefaultButton.d.ts +23 -0
- package/dist/components/UIButton/UIDefaultButton.d.ts.map +1 -0
- package/dist/components/UIButton/UIDefaultButton.js +227 -0
- package/dist/components/UIButton/UIDefaultButton.js.map +1 -0
- package/dist/components/UIButton/UIIconButton.d.ts +37 -0
- package/dist/components/UIButton/UIIconButton.d.ts.map +1 -0
- package/dist/components/UIButton/UIIconButton.js +106 -0
- package/dist/components/UIButton/UIIconButton.js.map +1 -0
- package/dist/components/UIButton/UISplitButton.d.ts +36 -0
- package/dist/components/UIButton/UISplitButton.d.ts.map +1 -0
- package/dist/components/UIButton/UISplitButton.js +67 -0
- package/dist/components/UIButton/UISplitButton.js.map +1 -0
- package/dist/components/UIButton/index.d.ts +7 -0
- package/dist/components/UIButton/index.d.ts.map +1 -0
- package/dist/components/UIButton/index.js +17 -0
- package/dist/components/UIButton/index.js.map +1 -0
- package/dist/components/UICallout/UICallout.d.ts +37 -0
- package/dist/components/UICallout/UICallout.d.ts.map +1 -0
- package/dist/components/UICallout/UICallout.js +90 -0
- package/dist/components/UICallout/UICallout.js.map +1 -0
- package/dist/components/UICallout/index.d.ts +2 -0
- package/dist/components/UICallout/index.d.ts.map +1 -0
- package/dist/components/UICallout/index.js +14 -0
- package/dist/components/UICallout/index.js.map +1 -0
- package/dist/components/UICheckbox/UICheckbox.d.ts +34 -0
- package/dist/components/UICheckbox/UICheckbox.d.ts.map +1 -0
- package/dist/components/UICheckbox/UICheckbox.js +135 -0
- package/dist/components/UICheckbox/UICheckbox.js.map +1 -0
- package/dist/components/UICheckbox/index.d.ts +2 -0
- package/dist/components/UICheckbox/index.d.ts.map +1 -0
- package/dist/components/UICheckbox/index.js +14 -0
- package/dist/components/UICheckbox/index.js.map +1 -0
- package/dist/components/UIChoiceGroup/UIChoiceGroup.d.ts +28 -0
- package/dist/components/UIChoiceGroup/UIChoiceGroup.d.ts.map +1 -0
- package/dist/components/UIChoiceGroup/UIChoiceGroup.js +182 -0
- package/dist/components/UIChoiceGroup/UIChoiceGroup.js.map +1 -0
- package/dist/components/UIChoiceGroup/index.d.ts +2 -0
- package/dist/components/UIChoiceGroup/index.d.ts.map +1 -0
- package/dist/components/UIChoiceGroup/index.js +14 -0
- package/dist/components/UIChoiceGroup/index.js.map +1 -0
- package/dist/components/UIComboBox/Callout.scss +7 -0
- package/dist/components/UIComboBox/UIComboBox.d.ts +190 -0
- package/dist/components/UIComboBox/UIComboBox.d.ts.map +1 -0
- package/dist/components/UIComboBox/UIComboBox.js +468 -0
- package/dist/components/UIComboBox/UIComboBox.js.map +1 -0
- package/dist/components/UIComboBox/UIComboBox.scss +245 -0
- package/dist/components/UIComboBox/_mixins.scss +24 -0
- package/dist/components/UIComboBox/index.d.ts +2 -0
- package/dist/components/UIComboBox/index.d.ts.map +1 -0
- package/dist/components/UIComboBox/index.js +14 -0
- package/dist/components/UIComboBox/index.js.map +1 -0
- package/dist/components/UIContextualMenu/UIContextualMenu.d.ts +32 -0
- package/dist/components/UIContextualMenu/UIContextualMenu.d.ts.map +1 -0
- package/dist/components/UIContextualMenu/UIContextualMenu.js +124 -0
- package/dist/components/UIContextualMenu/UIContextualMenu.js.map +1 -0
- package/dist/components/UIContextualMenu/UIContextualMenu.scss +211 -0
- package/dist/components/UIContextualMenu/UIHighlightMenuOption.d.ts +20 -0
- package/dist/components/UIContextualMenu/UIHighlightMenuOption.d.ts.map +1 -0
- package/dist/components/UIContextualMenu/UIHighlightMenuOption.js +51 -0
- package/dist/components/UIContextualMenu/UIHighlightMenuOption.js.map +1 -0
- package/dist/components/UIContextualMenu/UIHighlightMenuOption.scss +23 -0
- package/dist/components/UIContextualMenu/_variables.scss +30 -0
- package/dist/components/UIContextualMenu/index.d.ts +3 -0
- package/dist/components/UIContextualMenu/index.d.ts.map +1 -0
- package/dist/components/UIContextualMenu/index.js +15 -0
- package/dist/components/UIContextualMenu/index.js.map +1 -0
- package/dist/components/UIDatePicker/UIDatePicker.d.ts +49 -0
- package/dist/components/UIDatePicker/UIDatePicker.d.ts.map +1 -0
- package/dist/components/UIDatePicker/UIDatePicker.js +72 -0
- package/dist/components/UIDatePicker/UIDatePicker.js.map +1 -0
- package/dist/components/UIDatePicker/UIDatePicker.scss +38 -0
- package/dist/components/UIDatePicker/index.d.ts +2 -0
- package/dist/components/UIDatePicker/index.d.ts.map +1 -0
- package/dist/components/UIDatePicker/index.js +14 -0
- package/dist/components/UIDatePicker/index.js.map +1 -0
- package/dist/components/UIDialog/UIDialog.d.ts +102 -0
- package/dist/components/UIDialog/UIDialog.d.ts.map +1 -0
- package/dist/components/UIDialog/UIDialog.js +250 -0
- package/dist/components/UIDialog/UIDialog.js.map +1 -0
- package/dist/components/UIDialog/index.d.ts +2 -0
- package/dist/components/UIDialog/index.d.ts.map +1 -0
- package/dist/components/UIDialog/index.js +14 -0
- package/dist/components/UIDialog/index.js.map +1 -0
- package/dist/components/UIDropdown/UIDropdown.d.ts +76 -0
- package/dist/components/UIDropdown/UIDropdown.d.ts.map +1 -0
- package/dist/components/UIDropdown/UIDropdown.js +166 -0
- package/dist/components/UIDropdown/UIDropdown.js.map +1 -0
- package/dist/components/UIDropdown/UIDropdown.scss +80 -0
- package/dist/components/UIDropdown/index.d.ts +2 -0
- package/dist/components/UIDropdown/index.d.ts.map +1 -0
- package/dist/components/UIDropdown/index.js +14 -0
- package/dist/components/UIDropdown/index.js.map +1 -0
- package/dist/components/UIFlexibleTable/RowActions.d.ts +17 -0
- package/dist/components/UIFlexibleTable/RowActions.d.ts.map +1 -0
- package/dist/components/UIFlexibleTable/RowActions.js +68 -0
- package/dist/components/UIFlexibleTable/RowActions.js.map +1 -0
- package/dist/components/UIFlexibleTable/RowData.d.ts +16 -0
- package/dist/components/UIFlexibleTable/RowData.d.ts.map +1 -0
- package/dist/components/UIFlexibleTable/RowData.js +109 -0
- package/dist/components/UIFlexibleTable/RowData.js.map +1 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTable.d.ts +12 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTable.d.ts.map +1 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTable.js +256 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTable.js.map +1 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTable.scss +408 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.d.ts +20 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.d.ts.map +1 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.js +20 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.js.map +1 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableRow.d.ts +28 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableRow.d.ts.map +1 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableRow.js +165 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableRow.js.map +1 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.d.ts +21 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.d.ts.map +1 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.js +20 -0
- package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.js.map +1 -0
- package/dist/components/UIFlexibleTable/index.d.ts +6 -0
- package/dist/components/UIFlexibleTable/index.d.ts.map +1 -0
- package/dist/components/UIFlexibleTable/index.js +18 -0
- package/dist/components/UIFlexibleTable/index.js.map +1 -0
- package/dist/components/UIFlexibleTable/types.d.ts +103 -0
- package/dist/components/UIFlexibleTable/types.d.ts.map +1 -0
- package/dist/components/UIFlexibleTable/types.js +9 -0
- package/dist/components/UIFlexibleTable/types.js.map +1 -0
- package/dist/components/UIFlexibleTable/utils.d.ts +29 -0
- package/dist/components/UIFlexibleTable/utils.d.ts.map +1 -0
- package/dist/components/UIFlexibleTable/utils.js +53 -0
- package/dist/components/UIFlexibleTable/utils.js.map +1 -0
- package/dist/components/UIFocusZone/UIFocusTrapZone.d.ts +22 -0
- package/dist/components/UIFocusZone/UIFocusTrapZone.d.ts.map +1 -0
- package/dist/components/UIFocusZone/UIFocusTrapZone.js +33 -0
- package/dist/components/UIFocusZone/UIFocusTrapZone.js.map +1 -0
- package/dist/components/UIFocusZone/UIFocusZone.d.ts +23 -0
- package/dist/components/UIFocusZone/UIFocusZone.d.ts.map +1 -0
- package/dist/components/UIFocusZone/UIFocusZone.js +35 -0
- package/dist/components/UIFocusZone/UIFocusZone.js.map +1 -0
- package/dist/components/UIFocusZone/index.d.ts +3 -0
- package/dist/components/UIFocusZone/index.d.ts.map +1 -0
- package/dist/components/UIFocusZone/index.js +15 -0
- package/dist/components/UIFocusZone/index.js.map +1 -0
- package/dist/components/UIIcon/UIIcon.d.ts +24 -0
- package/dist/components/UIIcon/UIIcon.d.ts.map +1 -0
- package/dist/components/UIIcon/UIIcon.js +37 -0
- package/dist/components/UIIcon/UIIcon.js.map +1 -0
- package/dist/components/UIIcon/UIIcon.scss +3 -0
- package/dist/components/UIIcon/index.d.ts +2 -0
- package/dist/components/UIIcon/index.d.ts.map +1 -0
- package/dist/components/UIIcon/index.js +14 -0
- package/dist/components/UIIcon/index.js.map +1 -0
- package/dist/components/UIInput/UITextInput.d.ts +25 -0
- package/dist/components/UIInput/UITextInput.d.ts.map +1 -0
- package/dist/components/UIInput/UITextInput.js +180 -0
- package/dist/components/UIInput/UITextInput.js.map +1 -0
- package/dist/components/UIInput/index.d.ts +2 -0
- package/dist/components/UIInput/index.d.ts.map +1 -0
- package/dist/components/UIInput/index.js +14 -0
- package/dist/components/UIInput/index.js.map +1 -0
- package/dist/components/UILabel/UILabel.d.ts +30 -0
- package/dist/components/UILabel/UILabel.d.ts.map +1 -0
- package/dist/components/UILabel/UILabel.js +64 -0
- package/dist/components/UILabel/UILabel.js.map +1 -0
- package/dist/components/UILabel/index.d.ts +2 -0
- package/dist/components/UILabel/index.d.ts.map +1 -0
- package/dist/components/UILabel/index.js +14 -0
- package/dist/components/UILabel/index.js.map +1 -0
- package/dist/components/UILink/UILink.d.ts +22 -0
- package/dist/components/UILink/UILink.d.ts.map +1 -0
- package/dist/components/UILink/UILink.js +58 -0
- package/dist/components/UILink/UILink.js.map +1 -0
- package/dist/components/UILink/index.d.ts +2 -0
- package/dist/components/UILink/index.d.ts.map +1 -0
- package/dist/components/UILink/index.js +14 -0
- package/dist/components/UILink/index.js.map +1 -0
- package/dist/components/UIList/UIList.d.ts +31 -0
- package/dist/components/UIList/UIList.d.ts.map +1 -0
- package/dist/components/UIList/UIList.js +120 -0
- package/dist/components/UIList/UIList.js.map +1 -0
- package/dist/components/UIList/UIList.scss +16 -0
- package/dist/components/UIList/index.d.ts +2 -0
- package/dist/components/UIList/index.d.ts.map +1 -0
- package/dist/components/UIList/index.js +14 -0
- package/dist/components/UIList/index.js.map +1 -0
- package/dist/components/UILoader/UILoader.d.ts +27 -0
- package/dist/components/UILoader/UILoader.d.ts.map +1 -0
- package/dist/components/UILoader/UILoader.js +78 -0
- package/dist/components/UILoader/UILoader.js.map +1 -0
- package/dist/components/UILoader/UILoader.scss +32 -0
- package/dist/components/UILoader/index.d.ts +2 -0
- package/dist/components/UILoader/index.d.ts.map +1 -0
- package/dist/components/UILoader/index.js +14 -0
- package/dist/components/UILoader/index.js.map +1 -0
- package/dist/components/UIMessageBar/UIMessageBar.d.ts +25 -0
- package/dist/components/UIMessageBar/UIMessageBar.d.ts.map +1 -0
- package/dist/components/UIMessageBar/UIMessageBar.js +59 -0
- package/dist/components/UIMessageBar/UIMessageBar.js.map +1 -0
- package/dist/components/UIMessageBar/index.d.ts +2 -0
- package/dist/components/UIMessageBar/index.d.ts.map +1 -0
- package/dist/components/UIMessageBar/index.js +14 -0
- package/dist/components/UIMessageBar/index.js.map +1 -0
- package/dist/components/UIModal/UIModal.d.ts +23 -0
- package/dist/components/UIModal/UIModal.d.ts.map +1 -0
- package/dist/components/UIModal/UIModal.js +43 -0
- package/dist/components/UIModal/UIModal.js.map +1 -0
- package/dist/components/UIModal/index.d.ts +2 -0
- package/dist/components/UIModal/index.d.ts.map +1 -0
- package/dist/components/UIModal/index.js +14 -0
- package/dist/components/UIModal/index.js.map +1 -0
- package/dist/components/UIOverlay/UIOverlay.d.ts +22 -0
- package/dist/components/UIOverlay/UIOverlay.d.ts.map +1 -0
- package/dist/components/UIOverlay/UIOverlay.js +38 -0
- package/dist/components/UIOverlay/UIOverlay.js.map +1 -0
- package/dist/components/UIOverlay/index.d.ts +2 -0
- package/dist/components/UIOverlay/index.d.ts.map +1 -0
- package/dist/components/UIOverlay/index.js +14 -0
- package/dist/components/UIOverlay/index.js.map +1 -0
- package/dist/components/UISearchBox/UISearchBox.d.ts +22 -0
- package/dist/components/UISearchBox/UISearchBox.d.ts.map +1 -0
- package/dist/components/UISearchBox/UISearchBox.js +155 -0
- package/dist/components/UISearchBox/UISearchBox.js.map +1 -0
- package/dist/components/UISearchBox/index.d.ts +4 -0
- package/dist/components/UISearchBox/index.d.ts.map +1 -0
- package/dist/components/UISearchBox/index.js +14 -0
- package/dist/components/UISearchBox/index.js.map +1 -0
- package/dist/components/UISection/UISection.d.ts +33 -0
- package/dist/components/UISection/UISection.d.ts.map +1 -0
- package/dist/components/UISection/UISection.js +47 -0
- package/dist/components/UISection/UISection.js.map +1 -0
- package/dist/components/UISection/UISection.scss +76 -0
- package/dist/components/UISection/UISections.d.ts +251 -0
- package/dist/components/UISection/UISections.d.ts.map +1 -0
- package/dist/components/UISection/UISections.js +709 -0
- package/dist/components/UISection/UISections.js.map +1 -0
- package/dist/components/UISection/UISections.scss +62 -0
- package/dist/components/UISection/UISplitter.d.ts +97 -0
- package/dist/components/UISection/UISplitter.d.ts.map +1 -0
- package/dist/components/UISection/UISplitter.js +221 -0
- package/dist/components/UISection/UISplitter.js.map +1 -0
- package/dist/components/UISection/UISplitter.scss +212 -0
- package/dist/components/UISection/_mixins.scss +14 -0
- package/dist/components/UISection/_variables.scss +1 -0
- package/dist/components/UISection/index.d.ts +4 -0
- package/dist/components/UISection/index.d.ts.map +1 -0
- package/dist/components/UISection/index.js +16 -0
- package/dist/components/UISection/index.js.map +1 -0
- package/dist/components/UITable/UITable-helper.d.ts +85 -0
- package/dist/components/UITable/UITable-helper.d.ts.map +1 -0
- package/dist/components/UITable/UITable-helper.js +267 -0
- package/dist/components/UITable/UITable-helper.js.map +1 -0
- package/dist/components/UITable/UITable.d.ts +212 -0
- package/dist/components/UITable/UITable.d.ts.map +1 -0
- package/dist/components/UITable/UITable.js +762 -0
- package/dist/components/UITable/UITable.js.map +1 -0
- package/dist/components/UITable/UITable.scss +194 -0
- package/dist/components/UITable/index.d.ts +3 -0
- package/dist/components/UITable/index.d.ts.map +1 -0
- package/dist/components/UITable/index.js +15 -0
- package/dist/components/UITable/index.js.map +1 -0
- package/dist/components/UITable/types.d.ts +76 -0
- package/dist/components/UITable/types.d.ts.map +1 -0
- package/dist/components/UITable/types.js +27 -0
- package/dist/components/UITable/types.js.map +1 -0
- package/dist/components/UITabs/UITabs.d.ts +28 -0
- package/dist/components/UITabs/UITabs.d.ts.map +1 -0
- package/dist/components/UITabs/UITabs.js +70 -0
- package/dist/components/UITabs/UITabs.js.map +1 -0
- package/dist/components/UITabs/index.d.ts +2 -0
- package/dist/components/UITabs/index.d.ts.map +1 -0
- package/dist/components/UITabs/index.js +14 -0
- package/dist/components/UITabs/index.js.map +1 -0
- package/dist/components/UIToggle/UIToggle.d.ts +39 -0
- package/dist/components/UIToggle/UIToggle.d.ts.map +1 -0
- package/dist/components/UIToggle/UIToggle.js +181 -0
- package/dist/components/UIToggle/UIToggle.js.map +1 -0
- package/dist/components/UIToggle/index.d.ts +2 -0
- package/dist/components/UIToggle/index.d.ts.map +1 -0
- package/dist/components/UIToggle/index.js +14 -0
- package/dist/components/UIToggle/index.js.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroup.d.ts +31 -0
- package/dist/components/UIToggleGroup/UIToggleGroup.d.ts.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroup.js +132 -0
- package/dist/components/UIToggleGroup/UIToggleGroup.js.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroup.scss +13 -0
- package/dist/components/UIToggleGroup/UIToggleGroup.types.d.ts +23 -0
- package/dist/components/UIToggleGroup/UIToggleGroup.types.d.ts.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroup.types.js +3 -0
- package/dist/components/UIToggleGroup/UIToggleGroup.types.js.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.d.ts +26 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.d.ts.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.js +74 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.js.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.scss +74 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.d.ts +11 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.d.ts.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.js +3 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.js.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/index.d.ts +3 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/index.d.ts.map +1 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/index.js +15 -0
- package/dist/components/UIToggleGroup/UIToggleGroupOption/index.js.map +1 -0
- package/dist/components/UIToggleGroup/index.d.ts +3 -0
- package/dist/components/UIToggleGroup/index.d.ts.map +1 -0
- package/dist/components/UIToggleGroup/index.js +15 -0
- package/dist/components/UIToggleGroup/index.js.map +1 -0
- package/dist/components/UIToolbar/UIToolbar.d.ts +37 -0
- package/dist/components/UIToolbar/UIToolbar.d.ts.map +1 -0
- package/dist/components/UIToolbar/UIToolbar.js +101 -0
- package/dist/components/UIToolbar/UIToolbar.js.map +1 -0
- package/dist/components/UIToolbar/UIToolbar.scss +48 -0
- package/dist/components/UIToolbar/UIToolbarColumn.d.ts +8 -0
- package/dist/components/UIToolbar/UIToolbarColumn.d.ts.map +1 -0
- package/dist/components/UIToolbar/UIToolbarColumn.js +30 -0
- package/dist/components/UIToolbar/UIToolbarColumn.js.map +1 -0
- package/dist/components/UIToolbar/UIToolbarDivider.d.ts +26 -0
- package/dist/components/UIToolbar/UIToolbarDivider.d.ts.map +1 -0
- package/dist/components/UIToolbar/UIToolbarDivider.js +51 -0
- package/dist/components/UIToolbar/UIToolbarDivider.js.map +1 -0
- package/dist/components/UIToolbar/index.d.ts +4 -0
- package/dist/components/UIToolbar/index.d.ts.map +1 -0
- package/dist/components/UIToolbar/index.js +16 -0
- package/dist/components/UIToolbar/index.js.map +1 -0
- package/dist/components/UITooltip/UITooltip.d.ts +29 -0
- package/dist/components/UITooltip/UITooltip.d.ts.map +1 -0
- package/dist/components/UITooltip/UITooltip.js +79 -0
- package/dist/components/UITooltip/UITooltip.js.map +1 -0
- package/dist/components/UITooltip/UITooltipUtils.d.ts +17 -0
- package/dist/components/UITooltip/UITooltipUtils.d.ts.map +1 -0
- package/dist/components/UITooltip/UITooltipUtils.js +47 -0
- package/dist/components/UITooltip/UITooltipUtils.js.map +1 -0
- package/dist/components/UITooltip/index.d.ts +3 -0
- package/dist/components/UITooltip/index.d.ts.map +1 -0
- package/dist/components/UITooltip/index.js +15 -0
- package/dist/components/UITooltip/index.js.map +1 -0
- package/dist/components/UITreeDropdown/UITreeDropdown.d.ts +255 -0
- package/dist/components/UITreeDropdown/UITreeDropdown.d.ts.map +1 -0
- package/dist/components/UITreeDropdown/UITreeDropdown.js +638 -0
- package/dist/components/UITreeDropdown/UITreeDropdown.js.map +1 -0
- package/dist/components/UITreeDropdown/UITreeDropdown.scss +82 -0
- package/dist/components/UITreeDropdown/index.d.ts +2 -0
- package/dist/components/UITreeDropdown/index.d.ts.map +1 -0
- package/dist/components/UITreeDropdown/index.js +14 -0
- package/dist/components/UITreeDropdown/index.js.map +1 -0
- package/dist/components/UIVerticalDivider/UIVerticalDivider.d.ts +24 -0
- package/dist/components/UIVerticalDivider/UIVerticalDivider.d.ts.map +1 -0
- package/dist/components/UIVerticalDivider/UIVerticalDivider.js +42 -0
- package/dist/components/UIVerticalDivider/UIVerticalDivider.js.map +1 -0
- package/dist/components/UIVerticalDivider/index.d.ts +2 -0
- package/dist/components/UIVerticalDivider/index.d.ts.map +1 -0
- package/dist/components/UIVerticalDivider/index.js +14 -0
- package/dist/components/UIVerticalDivider/index.js.map +1 -0
- package/dist/components/UIVirtualList/UIAutoSizer.d.ts +22 -0
- package/dist/components/UIVirtualList/UIAutoSizer.d.ts.map +1 -0
- package/dist/components/UIVirtualList/UIAutoSizer.js +33 -0
- package/dist/components/UIVirtualList/UIAutoSizer.js.map +1 -0
- package/dist/components/UIVirtualList/UICellMeasurer.d.ts +23 -0
- package/dist/components/UIVirtualList/UICellMeasurer.d.ts.map +1 -0
- package/dist/components/UIVirtualList/UICellMeasurer.js +33 -0
- package/dist/components/UIVirtualList/UICellMeasurer.js.map +1 -0
- package/dist/components/UIVirtualList/UIVirtualList.d.ts +43 -0
- package/dist/components/UIVirtualList/UIVirtualList.d.ts.map +1 -0
- package/dist/components/UIVirtualList/UIVirtualList.js +70 -0
- package/dist/components/UIVirtualList/UIVirtualList.js.map +1 -0
- package/dist/components/UIVirtualList/index.d.ts +4 -0
- package/dist/components/UIVirtualList/index.d.ts.map +1 -0
- package/dist/components/UIVirtualList/index.js +16 -0
- package/dist/components/UIVirtualList/index.js.map +1 -0
- package/dist/components/index.d.ts +34 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +46 -0
- package/dist/components/index.js.map +1 -0
- package/dist/helper/ValidationMessage/MessageWrapper.d.ts +18 -0
- package/dist/helper/ValidationMessage/MessageWrapper.d.ts.map +1 -0
- package/dist/helper/ValidationMessage/MessageWrapper.js +35 -0
- package/dist/helper/ValidationMessage/MessageWrapper.js.map +1 -0
- package/dist/helper/ValidationMessage/MessageWrapper.scss +44 -0
- package/dist/helper/ValidationMessage/index.d.ts +3 -0
- package/dist/helper/ValidationMessage/index.d.ts.map +1 -0
- package/dist/helper/ValidationMessage/index.js +15 -0
- package/dist/helper/ValidationMessage/index.js.map +1 -0
- package/dist/helper/ValidationMessage/utils.d.ts +32 -0
- package/dist/helper/ValidationMessage/utils.d.ts.map +1 -0
- package/dist/helper/ValidationMessage/utils.js +124 -0
- package/dist/helper/ValidationMessage/utils.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/_color.scss +435 -0
- package/dist/styles/_mixins.scss +15 -0
- package/dist/styles/_theia_materialcolors.scss +279 -0
- package/dist/styles/_typography.scss +72 -0
- package/dist/styles/_variables.scss +24 -0
- package/dist/styles/ui-components.scss +5 -0
- package/dist/utilities/DeepMerge.d.ts +10 -0
- package/dist/utilities/DeepMerge.d.ts.map +1 -0
- package/dist/utilities/DeepMerge.js +43 -0
- package/dist/utilities/DeepMerge.js.map +1 -0
- package/dist/utilities/Focus.d.ts +5 -0
- package/dist/utilities/Focus.d.ts.map +1 -0
- package/dist/utilities/Focus.js +8 -0
- package/dist/utilities/Focus.js.map +1 -0
- package/dist/utilities/Id.d.ts +3 -0
- package/dist/utilities/Id.d.ts.map +1 -0
- package/dist/utilities/Id.js +6 -0
- package/dist/utilities/Id.js.map +1 -0
- package/dist/utilities/Keys.d.ts +3 -0
- package/dist/utilities/Keys.d.ts.map +1 -0
- package/dist/utilities/Keys.js +6 -0
- package/dist/utilities/Keys.js.map +1 -0
- package/dist/utilities/index.d.ts +4 -0
- package/dist/utilities/index.d.ts.map +1 -0
- package/dist/utilities/index.js +16 -0
- package/dist/utilities/index.js.map +1 -0
- package/package.json +78 -0
- package/storybook/509.1060f8f464e74d7e89e3.manager.bundle.js +17 -0
- package/storybook/685.6d7c03ae84f4f4910fd8.manager.bundle.js +10 -0
- package/storybook/720.3f79f56f8617ba9b098b.manager.bundle.js +1 -0
- package/storybook/730.e07ff5529508942d85d4.manager.bundle.js +15 -0
- package/storybook/759.8ae5af3b1b3b446a9919.manager.bundle.js +296 -0
- package/storybook/906.cf93a831.iframe.bundle.js +1 -0
- package/storybook/93.4e7a890e.iframe.bundle.js +301 -0
- package/storybook/975.15c711f75c0452ae9e9f.manager.bundle.js +2 -0
- package/storybook/978.a517622963996a3b8256.manager.bundle.js +894 -0
- package/storybook/983.515d3eedbfaed61e9ae7.manager.bundle.js +1 -0
- package/storybook/favicon.ico +0 -0
- package/storybook/iframe.html +380 -0
- package/storybook/index.html +177 -0
- package/storybook/main.e843f431b2692c06059a.manager.bundle.js +1 -0
- package/storybook/main.fd2077c6.iframe.bundle.js +98 -0
- package/storybook/project.json +1 -0
- package/storybook/runtime~main.1118f177d5097a42d314.manager.bundle.js +2 -0
- package/storybook/runtime~main.e0688c57.iframe.bundle.js +2 -0
|
@@ -0,0 +1,638 @@
|
|
|
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.UITreeDropdown = exports.EdgePosition = exports.UIDirectionalHint = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const uuid_1 = __importDefault(require("uuid"));
|
|
9
|
+
const react_2 = require("@fluentui/react");
|
|
10
|
+
Object.defineProperty(exports, "UIDirectionalHint", { enumerable: true, get: function () { return react_2.DirectionalHint; } });
|
|
11
|
+
const UIInput_1 = require("../UIInput");
|
|
12
|
+
const UIContextualMenu_1 = require("../UIContextualMenu");
|
|
13
|
+
const UIIconButton_1 = require("../UIButton/UIIconButton");
|
|
14
|
+
const Icons_1 = require("../Icons");
|
|
15
|
+
require("./UITreeDropdown.scss");
|
|
16
|
+
const SELECTOR_CLASSES = {
|
|
17
|
+
callout: 'ui-tree-callout',
|
|
18
|
+
scrollArea: 'ms-ContextualMenu-container',
|
|
19
|
+
splitButton: 'ms-ContextualMenu-splitMenu'
|
|
20
|
+
};
|
|
21
|
+
var EdgePosition;
|
|
22
|
+
(function (EdgePosition) {
|
|
23
|
+
EdgePosition["First"] = "First";
|
|
24
|
+
EdgePosition["Last"] = "Last";
|
|
25
|
+
})(EdgePosition = exports.EdgePosition || (exports.EdgePosition = {}));
|
|
26
|
+
const KEYBOARD_KEYS = {
|
|
27
|
+
ArrowUp: 'ArrowUp',
|
|
28
|
+
ArrowDown: 'ArrowDown',
|
|
29
|
+
Enter: 'Enter',
|
|
30
|
+
Escape: 'Escape'
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* UITreeDropdown component.
|
|
34
|
+
* @exports
|
|
35
|
+
* @class UIVerticalDivider
|
|
36
|
+
* @extends {React.Component<UITreeDropdownProps, UITreeDropdownState>}
|
|
37
|
+
*/
|
|
38
|
+
class UITreeDropdown extends react_1.default.Component {
|
|
39
|
+
/**
|
|
40
|
+
* Initializes component properties.
|
|
41
|
+
* @param {UITreeDropdownProps} props
|
|
42
|
+
*/
|
|
43
|
+
constructor(props) {
|
|
44
|
+
super(props);
|
|
45
|
+
this.UITreeDropdownRef = react_1.default.createRef();
|
|
46
|
+
this.UITreeDropdownFocusZoneRef = react_1.default.createRef();
|
|
47
|
+
this.inputRef = react_1.default.createRef();
|
|
48
|
+
this.submenuRefs = {};
|
|
49
|
+
// Calculated offset for submenu positions
|
|
50
|
+
// It is added because root menu can have scrollbar - in result root menu's items width is smaller than root menu.
|
|
51
|
+
// In such case(when scrollbar) submenu is positioned near to expand/hovered item and position is not on the edge of root menu.
|
|
52
|
+
// Using offset/margin we can do corrections to position of submenu and place it one the edge of root menu.
|
|
53
|
+
this.submenuOffset = 0;
|
|
54
|
+
this.lastKeyDown = '';
|
|
55
|
+
this.componentDidMount = () => {
|
|
56
|
+
if (this.props.items.length) {
|
|
57
|
+
this.buildItems(this.props.items);
|
|
58
|
+
this.setState({ isDisabled: false });
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
this.componentDidUpdate = (prevProps) => {
|
|
62
|
+
if (this.props.items.length !== prevProps.items.length) {
|
|
63
|
+
this.setState({ isHidden: true });
|
|
64
|
+
this.setState({ isDisabled: this.props.items.length ? false : true });
|
|
65
|
+
this.buildItems(this.props.items);
|
|
66
|
+
}
|
|
67
|
+
if (this.props.value !== prevProps.value) {
|
|
68
|
+
this.setState({ value: this.props.value });
|
|
69
|
+
}
|
|
70
|
+
// Calculate size for submenu offset
|
|
71
|
+
this.calculateSubmenuOffset();
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Map the payload.
|
|
75
|
+
*
|
|
76
|
+
* @param {ItemsProps[]} items
|
|
77
|
+
*/
|
|
78
|
+
this.buildItems = (items) => {
|
|
79
|
+
if (this.state.items.length !== items.length) {
|
|
80
|
+
items = items.map(this.buildSubItems);
|
|
81
|
+
const mapedItems = this.mapValuesToContextMenu(items);
|
|
82
|
+
this.setState({
|
|
83
|
+
originalItems: mapedItems,
|
|
84
|
+
items: mapedItems
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Sub items values and style.
|
|
90
|
+
*
|
|
91
|
+
* @param {ItemsProps} item
|
|
92
|
+
* @returns {ItemsProps}
|
|
93
|
+
*/
|
|
94
|
+
this.buildSubItems = (item) => {
|
|
95
|
+
if (item.children && item.children.length) {
|
|
96
|
+
item.children = item.children.map((el) => {
|
|
97
|
+
const regex = new RegExp(item.value, 'ig');
|
|
98
|
+
const value = el.value.search(regex) === -1 ? `${item.value}${this.state.valueSeparator}${el.value}` : el.value;
|
|
99
|
+
return {
|
|
100
|
+
...el,
|
|
101
|
+
split: false,
|
|
102
|
+
value
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return item;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Map GD payload to ContextMenu payload.
|
|
110
|
+
*
|
|
111
|
+
* @param {ItemsProps[]} items
|
|
112
|
+
* @param {number} level
|
|
113
|
+
* @returns {IContextualMenuItem[]}
|
|
114
|
+
*/
|
|
115
|
+
this.mapValuesToContextMenu = (items, level = 0) => {
|
|
116
|
+
return items.map((item) => {
|
|
117
|
+
if (item.children && item.children.length) {
|
|
118
|
+
item.split = true;
|
|
119
|
+
const refId = this.getRefId(item.value, level);
|
|
120
|
+
if (!this.submenuRefs[refId]) {
|
|
121
|
+
this.submenuRefs[refId] = react_1.default.createRef();
|
|
122
|
+
}
|
|
123
|
+
item.subMenuProps = {
|
|
124
|
+
componentRef: this.submenuRefs[refId],
|
|
125
|
+
items: this.mapValuesToContextMenu(item.children, level + 1),
|
|
126
|
+
focusZoneProps: {
|
|
127
|
+
handleTabKey: react_2.FocusZoneTabbableElements.none,
|
|
128
|
+
onFocus: () => {
|
|
129
|
+
const openerItem = this.defaultSubmenuFocus?.parent;
|
|
130
|
+
if (openerItem && openerItem.item.value === item.value && openerItem.level === level) {
|
|
131
|
+
this.focusItemWithValue(this.state.value, this.defaultSubmenuFocus?.parent?.item.subMenuProps?.items);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
...item,
|
|
139
|
+
key: item.value,
|
|
140
|
+
text: item.label,
|
|
141
|
+
className: 'ui-tree-dropdown-list-item',
|
|
142
|
+
onClick: () => this.handleSelection(item.value),
|
|
143
|
+
onRenderContent: this.handleRenderContent
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Handle the selected value.
|
|
149
|
+
*
|
|
150
|
+
* @param {string} value
|
|
151
|
+
*/
|
|
152
|
+
this.handleSelection = (value) => {
|
|
153
|
+
this.setState({ hasSelected: true, value: value, valueChanged: false }, () => this.props.onParameterValueChange(value));
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Handle the keypress value.
|
|
157
|
+
*
|
|
158
|
+
* @param {React.KeyboardEvent<HTMLInputElement>} event
|
|
159
|
+
*/
|
|
160
|
+
this.handleKeyPress = (event) => {
|
|
161
|
+
switch (event.key) {
|
|
162
|
+
case 'Enter':
|
|
163
|
+
if (!this.state.isMenuOpen) {
|
|
164
|
+
this.toggleMenu(false, event);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
this.setState({ valueChanged: true });
|
|
168
|
+
this.handleSelection(this.state.value ? this.state.value : '');
|
|
169
|
+
}
|
|
170
|
+
break;
|
|
171
|
+
case 'ArrowDown':
|
|
172
|
+
if (!this.state.isMenuOpen) {
|
|
173
|
+
// Open dropdown contextMenu if closed
|
|
174
|
+
this.toggleMenu(false, event);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
this.focusDropdown(event, event.key);
|
|
178
|
+
}
|
|
179
|
+
break;
|
|
180
|
+
case 'Tab':
|
|
181
|
+
if (this.state.isMenuOpen) {
|
|
182
|
+
// Close Dropdown if open
|
|
183
|
+
this.toggleMenu(true);
|
|
184
|
+
}
|
|
185
|
+
this.handleSelection(this.state.value ? this.state.value : '');
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
this.lastKeyDown = event.key;
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Handle ContextMenu focus.
|
|
192
|
+
*
|
|
193
|
+
* @param {React.KeyboardEvent<HTMLInputElement>} event
|
|
194
|
+
* @param {string} key
|
|
195
|
+
*/
|
|
196
|
+
this.focusDropdown = (event, key) => {
|
|
197
|
+
if (this.UITreeDropdownFocusZoneRef) {
|
|
198
|
+
if (key === KEYBOARD_KEYS.Enter) {
|
|
199
|
+
this.focusItemWithValue(this.state.value, this.state.items);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
this.UITreeDropdownFocusZoneRef.current?.focus(true);
|
|
203
|
+
}
|
|
204
|
+
// disable scroll which sometimes triggers
|
|
205
|
+
event.preventDefault();
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Custom handle the render from subMenu to control the highlight and the .is-selected.
|
|
210
|
+
*
|
|
211
|
+
* @param {IContextualMenuListProps} props
|
|
212
|
+
* @param {IContextualMenuItemRenderFunctions} defaultRenders
|
|
213
|
+
* @returns { React.ReactNode | null}
|
|
214
|
+
*/
|
|
215
|
+
this.handleRenderContent = (props, defaultRenders) => {
|
|
216
|
+
props.item.className = props.item.value === this.props.value ? 'is-selected' : '';
|
|
217
|
+
props.item.text = this.highlightQuery(props.item.label, this.state.query);
|
|
218
|
+
this.applySubmenuPosition(props.item);
|
|
219
|
+
return defaultRenders ? defaultRenders.renderItemName(props) : null;
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* Custom handle the render to control the highlight and the .is-selected.
|
|
223
|
+
*
|
|
224
|
+
* @param {IContextualMenuListProps} props
|
|
225
|
+
* @param {IRenderFunction<IContextualMenuListProps>} defaultRender
|
|
226
|
+
* @returns {JSX.Element | null}
|
|
227
|
+
*/
|
|
228
|
+
this.handleRenderMenuList = (props, defaultRender) => {
|
|
229
|
+
let mappedItems = [];
|
|
230
|
+
if (props?.items) {
|
|
231
|
+
mappedItems = props.items.map((item) => {
|
|
232
|
+
item.className = item.value === this.props.value ? 'is-selected' : '';
|
|
233
|
+
item.text = this.highlightQuery(item.label, this.state.query);
|
|
234
|
+
this.applySubmenuPosition(item);
|
|
235
|
+
item.subMenuProps?.items.map((subItem) => {
|
|
236
|
+
subItem.className = subItem.value === this.props.value ? 'is-selected' : '';
|
|
237
|
+
return subItem;
|
|
238
|
+
});
|
|
239
|
+
return { ...item };
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
return defaultRender ? defaultRender({ ...props, items: mappedItems }) : null;
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* Handle on/off ContextualMenu.
|
|
246
|
+
*
|
|
247
|
+
* @param {boolean} status
|
|
248
|
+
* @param {React.KeyboardEvent<HTMLInputElement>} event
|
|
249
|
+
*/
|
|
250
|
+
this.toggleMenu = (status, event) => {
|
|
251
|
+
this.setState({
|
|
252
|
+
isHidden: status
|
|
253
|
+
});
|
|
254
|
+
const key = event?.key;
|
|
255
|
+
//select first item after contextMenu is opened
|
|
256
|
+
if (event) {
|
|
257
|
+
setTimeout(() => {
|
|
258
|
+
event.persist();
|
|
259
|
+
this.focusDropdown(event, key);
|
|
260
|
+
}, 0);
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
/**
|
|
264
|
+
* Highlight the search string.
|
|
265
|
+
*
|
|
266
|
+
* @param {string} text
|
|
267
|
+
* @param {string} query
|
|
268
|
+
* @returns {JSX.Element}
|
|
269
|
+
*/
|
|
270
|
+
this.highlightQuery = (text, query) => {
|
|
271
|
+
return react_1.default.createElement(UIContextualMenu_1.UIHighlightMenuOption, { text: text, query: query });
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Filter all options that match the query string.
|
|
275
|
+
*
|
|
276
|
+
* @param {string} input
|
|
277
|
+
* @param {IContextualMenuItem} item
|
|
278
|
+
* @returns {boolean}
|
|
279
|
+
*/
|
|
280
|
+
this.filterElement = (input, item) => {
|
|
281
|
+
const regex = new RegExp(input, 'ig');
|
|
282
|
+
if (item?.children?.length) {
|
|
283
|
+
return item.children.filter((item) => this.filterElement(input, item)).length > 0;
|
|
284
|
+
}
|
|
285
|
+
if (item?.value) {
|
|
286
|
+
return item.value.search(regex) !== -1;
|
|
287
|
+
}
|
|
288
|
+
return false;
|
|
289
|
+
};
|
|
290
|
+
/**
|
|
291
|
+
* Update the query string and the prop value.
|
|
292
|
+
*
|
|
293
|
+
* @param {React.FormEvent<HTMLInputElement | HTMLTextAreaElement>} event
|
|
294
|
+
*/
|
|
295
|
+
this.handleOnChangeValue = (event) => {
|
|
296
|
+
const query = event.target;
|
|
297
|
+
const list = this.state.originalItems.filter((item) => this.filterElement(query.value, item));
|
|
298
|
+
this.setState({
|
|
299
|
+
hasSelected: false,
|
|
300
|
+
value: query.value,
|
|
301
|
+
items: list,
|
|
302
|
+
query: query.value,
|
|
303
|
+
valueChanged: true
|
|
304
|
+
});
|
|
305
|
+
if (!this.state.isMenuOpen) {
|
|
306
|
+
this.toggleMenu(false);
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* Method reset states.
|
|
311
|
+
*
|
|
312
|
+
* @param {Event | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent} event
|
|
313
|
+
*/
|
|
314
|
+
this.handleDismiss = (event) => {
|
|
315
|
+
if (event && 'key' in event && event.key === KEYBOARD_KEYS.Escape) {
|
|
316
|
+
this.resetValue();
|
|
317
|
+
}
|
|
318
|
+
else if (!this.state.hasSelected) {
|
|
319
|
+
this.props.onParameterValueChange('');
|
|
320
|
+
}
|
|
321
|
+
this.setState({
|
|
322
|
+
items: this.state.originalItems,
|
|
323
|
+
query: ''
|
|
324
|
+
});
|
|
325
|
+
this.toggleMenu(true);
|
|
326
|
+
this.originalValue = undefined;
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Method applies additional styling for submnu callout.
|
|
330
|
+
* It is used to apply scroll width offset - in result submenu should be displayed on the edge of root menu.
|
|
331
|
+
*
|
|
332
|
+
* @param {IContextualMenuItem} item Context menu item.
|
|
333
|
+
*/
|
|
334
|
+
this.applySubmenuPosition = (item) => {
|
|
335
|
+
if (item.subMenuProps?.items) {
|
|
336
|
+
if (!item.subMenuProps.calloutProps) {
|
|
337
|
+
item.subMenuProps.calloutProps = {};
|
|
338
|
+
}
|
|
339
|
+
item.subMenuProps.calloutProps.styles = {
|
|
340
|
+
root: {
|
|
341
|
+
marginLeft: this.submenuOffset
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
this.getCalloutDomRef = (submenu = false) => {
|
|
347
|
+
const menuLayerClass = `${SELECTOR_CLASSES.callout}${this.state.uiidInput}`;
|
|
348
|
+
const callout = document.querySelector(`.${menuLayerClass}`);
|
|
349
|
+
return submenu && callout ? callout.nextSibling : callout;
|
|
350
|
+
};
|
|
351
|
+
/**
|
|
352
|
+
* Method calculates offset size for submenus.
|
|
353
|
+
* Calculated offset should be used to position submenu right to edge of root menu.
|
|
354
|
+
* - Detects if scrollbar exists.
|
|
355
|
+
* - Calculates size of scrollbar and stores it as value for offset.
|
|
356
|
+
*/
|
|
357
|
+
this.calculateSubmenuOffset = () => {
|
|
358
|
+
const callout = this.getCalloutDomRef();
|
|
359
|
+
if (callout) {
|
|
360
|
+
const scrollContainer = callout.querySelector(`.${SELECTOR_CLASSES.scrollArea}`);
|
|
361
|
+
this.submenuOffset = 0;
|
|
362
|
+
if (scrollContainer && scrollContainer.scrollHeight > scrollContainer.clientHeight) {
|
|
363
|
+
this.submenuOffset = scrollContainer.offsetWidth - scrollContainer.clientWidth;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
/**
|
|
368
|
+
* Method updates state, if focus visible, using arrow keys.
|
|
369
|
+
*
|
|
370
|
+
* @param {HTMLElement|React.FocusEvent<HTMLElement>} ev
|
|
371
|
+
*/
|
|
372
|
+
this.onFocusElementChanged = (ev) => {
|
|
373
|
+
const menuOption = ev.getElementsByClassName('ts-Menu-option');
|
|
374
|
+
const isFocusVisible = document.getElementsByClassName('ms-Fabric--isFocusVisible');
|
|
375
|
+
if (isFocusVisible.length > 0 && menuOption.length > 0) {
|
|
376
|
+
this.setState({
|
|
377
|
+
value: ev.value ? ev.value : menuOption[0].innerText,
|
|
378
|
+
valueChanged: true
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
/**
|
|
383
|
+
* Method handles window keydown event.
|
|
384
|
+
* 1. Stores last keyboard pressed event.
|
|
385
|
+
* 2. Disables CircularNavigation for menus.
|
|
386
|
+
*
|
|
387
|
+
* @param {KeyboardEvent | React.KeyboardEvent<HTMLInputElement>} event
|
|
388
|
+
*/
|
|
389
|
+
this.onWindowKeyDown = (event) => {
|
|
390
|
+
this.lastKeyDown = event.key;
|
|
391
|
+
// Avoid circular navigation
|
|
392
|
+
const activeElement = document.activeElement;
|
|
393
|
+
if ([KEYBOARD_KEYS.ArrowDown, KEYBOARD_KEYS.ArrowUp].includes(event.key) && activeElement) {
|
|
394
|
+
// Disable CircularNavigation
|
|
395
|
+
// There is property in focusZoneProps, but it is overwritten by fluent ui and we can not change it from outside
|
|
396
|
+
const positions = this.getEdgePosition(activeElement);
|
|
397
|
+
const fromFirst = positions.includes(EdgePosition.First) && event.key === KEYBOARD_KEYS.ArrowUp;
|
|
398
|
+
const fromLast = positions.includes(EdgePosition.Last) && event.key === KEYBOARD_KEYS.ArrowDown;
|
|
399
|
+
if (fromFirst || fromLast) {
|
|
400
|
+
// Circular navigation case.
|
|
401
|
+
// Check if first item focused in root menu.
|
|
402
|
+
if (fromFirst && activeElement.closest(`.${SELECTOR_CLASSES.callout}${this.state.uiidInput}`)) {
|
|
403
|
+
// Focus input field if navigation triggered from first item using ArrowUp
|
|
404
|
+
this.inputRef.current?.focus();
|
|
405
|
+
}
|
|
406
|
+
event.stopPropagation();
|
|
407
|
+
event.preventDefault();
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
};
|
|
411
|
+
/**
|
|
412
|
+
* Method handles focus logic if arrow key was pressed.
|
|
413
|
+
*
|
|
414
|
+
* @param {FocusEvent} event
|
|
415
|
+
*/
|
|
416
|
+
this.handleCustomDownKey = (event) => {
|
|
417
|
+
if (this.lastKeyDown.includes('Arrow')) {
|
|
418
|
+
this.lastKeyDown = '';
|
|
419
|
+
this.onFocusElementChanged(event.target);
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
/**
|
|
423
|
+
* Method appends custom keydown and focus event listeners when context menu is opened.
|
|
424
|
+
*/
|
|
425
|
+
this.applyCustomKeyDownHandlingEvents = () => {
|
|
426
|
+
window.addEventListener('keydown', this.onWindowKeyDown, true);
|
|
427
|
+
window.addEventListener('focus', this.handleCustomDownKey, true);
|
|
428
|
+
};
|
|
429
|
+
/**
|
|
430
|
+
* Method removes custom keydown and focus event listeners when context menu is dismissed.
|
|
431
|
+
*/
|
|
432
|
+
this.removeCustomKeyDownHandlingEvents = () => {
|
|
433
|
+
window.removeEventListener('keydown', this.onWindowKeyDown, true);
|
|
434
|
+
window.removeEventListener('focus', this.handleCustomDownKey, true);
|
|
435
|
+
};
|
|
436
|
+
/**
|
|
437
|
+
* Method receives any menu child element and returns edge positions if item is first or last in rendered menu.
|
|
438
|
+
*
|
|
439
|
+
* @param {Element} itemElement Item's DOM to check position.
|
|
440
|
+
* @returns {EdgePosition[]} Returns positions if element is first or last in menu - also can be both.
|
|
441
|
+
*/
|
|
442
|
+
this.getEdgePosition = (itemElement) => {
|
|
443
|
+
const container = itemElement.closest('ul');
|
|
444
|
+
const item = itemElement.closest('li');
|
|
445
|
+
const position = [];
|
|
446
|
+
if (container && item) {
|
|
447
|
+
if (container.children[0] === item) {
|
|
448
|
+
position.push(EdgePosition.First);
|
|
449
|
+
}
|
|
450
|
+
if (container.children[container.children.length - 1] === item) {
|
|
451
|
+
position.push(EdgePosition.Last);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
return position;
|
|
455
|
+
};
|
|
456
|
+
/**
|
|
457
|
+
* Recursive method finds menu item info object in tree menu items by passed value/key of item.
|
|
458
|
+
*
|
|
459
|
+
* @param {string} [value] Value/key of item.
|
|
460
|
+
* @param {IContextualMenuItem[]} [items=[]] Menu items.
|
|
461
|
+
* @param {TreeItemInfo} [parent] Item's parent object.
|
|
462
|
+
* @param {number} [level=0] Level of item in tree structure.
|
|
463
|
+
* @returns {TreeItemInfo | undefined} Found menu item.
|
|
464
|
+
*/
|
|
465
|
+
this.findItemByValue = (value, items = [], parent, level = 0) => {
|
|
466
|
+
let selectedItem;
|
|
467
|
+
for (let i = 0; i < items.length; i++) {
|
|
468
|
+
const item = items[i];
|
|
469
|
+
const selectedItemTemp = {
|
|
470
|
+
item,
|
|
471
|
+
index: i,
|
|
472
|
+
parent,
|
|
473
|
+
level
|
|
474
|
+
};
|
|
475
|
+
if (item.value === value) {
|
|
476
|
+
selectedItem = selectedItemTemp;
|
|
477
|
+
}
|
|
478
|
+
else if (item.subMenuProps?.items?.length) {
|
|
479
|
+
selectedItem = this.findItemByValue(value, item.subMenuProps.items, selectedItemTemp, level + 1);
|
|
480
|
+
}
|
|
481
|
+
if (selectedItem) {
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
return selectedItem;
|
|
486
|
+
};
|
|
487
|
+
/**
|
|
488
|
+
* Method finds DOM node of menu item based on received item object and container DOM.
|
|
489
|
+
*
|
|
490
|
+
* @param {HTMLElement} container Menu container DOM.
|
|
491
|
+
* @param {TreeItemInfo} item Menu item info object.
|
|
492
|
+
* @returns {HTMLElement | undefined} Found DOM element of item.
|
|
493
|
+
*/
|
|
494
|
+
this.getItemTarget = (container, item) => {
|
|
495
|
+
let itemDom;
|
|
496
|
+
const listDom = container.querySelector('.ms-ContextualMenu-list');
|
|
497
|
+
if (listDom && listDom.childNodes[item.index]) {
|
|
498
|
+
const listItemDom = listDom.childNodes[item.index];
|
|
499
|
+
const itemElement = listItemDom.firstChild;
|
|
500
|
+
itemDom = itemElement;
|
|
501
|
+
}
|
|
502
|
+
return itemDom;
|
|
503
|
+
};
|
|
504
|
+
/**
|
|
505
|
+
* Method focuses context menu item based on recieved value/key and menude data(items and hoisted object).
|
|
506
|
+
* Method works with any level menu.
|
|
507
|
+
*
|
|
508
|
+
* @param {string} [value] Value/key of item.
|
|
509
|
+
* @param {IContextualMenuItem[]} [items=[]] Target menu items.
|
|
510
|
+
*/
|
|
511
|
+
this.focusItemWithValue = (value, items = []) => {
|
|
512
|
+
const selectedItem = this.findItemByValue(value, items);
|
|
513
|
+
const callout = this.getCalloutDomRef(!!this.defaultSubmenuFocus);
|
|
514
|
+
this.defaultSubmenuFocus = undefined;
|
|
515
|
+
if (selectedItem && callout) {
|
|
516
|
+
let itemDom;
|
|
517
|
+
if (selectedItem.parent) {
|
|
518
|
+
// Item is in next level of menu - we need open submenu
|
|
519
|
+
const parentItemDom = this.getItemTarget(callout, selectedItem.parent);
|
|
520
|
+
if (parentItemDom) {
|
|
521
|
+
this.defaultSubmenuFocus = selectedItem;
|
|
522
|
+
parentItemDom.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 39, which: 39, bubbles: true }));
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
else {
|
|
526
|
+
// Item is in first level
|
|
527
|
+
itemDom = this.getItemTarget(callout, selectedItem);
|
|
528
|
+
}
|
|
529
|
+
// Focus target item or focus container while submenu is not opened
|
|
530
|
+
if (itemDom) {
|
|
531
|
+
itemDom.focus();
|
|
532
|
+
}
|
|
533
|
+
else {
|
|
534
|
+
const menuContainer = callout.querySelector(`.${SELECTOR_CLASSES.scrollArea}`);
|
|
535
|
+
menuContainer?.focus();
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
};
|
|
539
|
+
/**
|
|
540
|
+
* Generate unique id for menu component references.
|
|
541
|
+
*
|
|
542
|
+
* @param {string} value Value of item.
|
|
543
|
+
* @param {number} level Level of item in tree structure.
|
|
544
|
+
* @returns {string} Id containing value andf level in format "${value}__${level}".
|
|
545
|
+
*/
|
|
546
|
+
this.getRefId = (value, level) => {
|
|
547
|
+
return `${value}__${level}`;
|
|
548
|
+
};
|
|
549
|
+
this.state = {
|
|
550
|
+
query: '',
|
|
551
|
+
hasSelected: this.props.value ? true : false,
|
|
552
|
+
// value has to be set, otherwise react treats this as "uncontrolled" component
|
|
553
|
+
// and displays warnings when value is set later on
|
|
554
|
+
value: this.props.value || '',
|
|
555
|
+
isHidden: true,
|
|
556
|
+
originalItems: [],
|
|
557
|
+
items: [],
|
|
558
|
+
valueSeparator: this.props.valueSeparator || '.',
|
|
559
|
+
uiidInput: uuid_1.default.v4(),
|
|
560
|
+
isDisabled: this.props.items.length ? false : true,
|
|
561
|
+
isMenuOpen: false,
|
|
562
|
+
valueChanged: false
|
|
563
|
+
};
|
|
564
|
+
this.toggleMenu = this.toggleMenu.bind(this);
|
|
565
|
+
this.onWindowKeyDown = this.onWindowKeyDown.bind(this);
|
|
566
|
+
this.handleCustomDownKey = this.handleCustomDownKey.bind(this);
|
|
567
|
+
// Suppress icon warnings, as they are irrelevant
|
|
568
|
+
react_2.setIconOptions({ disableWarnings: true });
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Method resets value of dropdown input to original value, which was stored after open.
|
|
572
|
+
*/
|
|
573
|
+
resetValue() {
|
|
574
|
+
this.setState({
|
|
575
|
+
value: this.originalValue,
|
|
576
|
+
valueChanged: false
|
|
577
|
+
});
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* @returns {JSX.Element}
|
|
581
|
+
*/
|
|
582
|
+
render() {
|
|
583
|
+
let useTargetWidth = true;
|
|
584
|
+
if (this.props.useTargetWidth) {
|
|
585
|
+
useTargetWidth = false;
|
|
586
|
+
}
|
|
587
|
+
return (react_1.default.createElement("div", { className: `ui-treeDropdown ui-treeDropDown-${this.state.uiidInput} ${this.props.label ? 'ui-treeDropdown-with-label' : ''}` },
|
|
588
|
+
this.props.label && (react_1.default.createElement("label", { className: `${this.props.required ? 'required' : ''} ${this.state.isDisabled ? 'disabled' : ''}` }, this.props.label)),
|
|
589
|
+
react_1.default.createElement("div", { className: `ui-treeDropdown-wrapper${this.state.isDisabled ? ' disabled' : ''}
|
|
590
|
+
ui-treeDropdown-wrapper-menu${this.state.isMenuOpen ? '-open' : '-close'} ui-treeDropdown-wrapper-${this.state.uiidInput}` },
|
|
591
|
+
react_1.default.createElement(UIInput_1.UITextInput, { componentRef: this.inputRef, disabled: this.state.isDisabled, autoComplete: "off", value: this.state.value, placeholder: this.props.placeholderText, onKeyDown: this.handleKeyPress, onChange: this.handleOnChangeValue, onClick: () => {
|
|
592
|
+
this.toggleMenu(false);
|
|
593
|
+
}, onFocus: (event) => {
|
|
594
|
+
// Select the text of the input
|
|
595
|
+
event.target.select();
|
|
596
|
+
} }),
|
|
597
|
+
react_1.default.createElement(UIIconButton_1.UIIconButton, { tabIndex: -1, allowDisabledFocus: true, className: "ui-treeDropdown-caret", iconProps: { iconName: Icons_1.UiIcons.ArrowDown }, onClick: () => {
|
|
598
|
+
if (this.state.isHidden) {
|
|
599
|
+
// Menu would become visible - focus input
|
|
600
|
+
this.inputRef.current?.focus();
|
|
601
|
+
}
|
|
602
|
+
this.toggleMenu(!this.state.isHidden);
|
|
603
|
+
} })),
|
|
604
|
+
!this.state.isHidden && (react_1.default.createElement(UIContextualMenu_1.UIContextualMenu, { componentRef: this.UITreeDropdownRef, onRenderMenuList: this.handleRenderMenuList, className: "ui-treeDropDown-context-menu", target: `.ui-treeDropDown-${this.state.uiidInput}`, onMenuOpened: () => {
|
|
605
|
+
this.originalValue = this.state.value;
|
|
606
|
+
this.applyCustomKeyDownHandlingEvents();
|
|
607
|
+
this.setState({
|
|
608
|
+
isMenuOpen: true
|
|
609
|
+
});
|
|
610
|
+
}, onMenuDismissed: () => {
|
|
611
|
+
this.removeCustomKeyDownHandlingEvents();
|
|
612
|
+
this.setState({ isMenuOpen: false });
|
|
613
|
+
if (this.state.valueChanged) {
|
|
614
|
+
this.handleSelection(this.state.value ? this.state.value : '');
|
|
615
|
+
}
|
|
616
|
+
}, useTargetWidth: useTargetWidth, useTargetAsMinWidth: true, onRestoreFocus: (params) => {
|
|
617
|
+
params.originalElement?.focus();
|
|
618
|
+
}, shouldUpdateWhenHidden: true, items: this.state.items, onDismiss: this.handleDismiss, shouldFocusOnContainer: false, focusZoneProps: {
|
|
619
|
+
componentRef: this.UITreeDropdownFocusZoneRef,
|
|
620
|
+
handleTabKey: react_2.FocusZoneTabbableElements.none,
|
|
621
|
+
isCircularNavigation: false
|
|
622
|
+
}, shouldFocusOnMount: false, directionalHint: this.props.directionalHint, calloutProps: {
|
|
623
|
+
layerProps: {
|
|
624
|
+
className: `${SELECTOR_CLASSES.callout}${this.state.uiidInput}`
|
|
625
|
+
},
|
|
626
|
+
onLayerMounted: () => {
|
|
627
|
+
this.calculateSubmenuOffset();
|
|
628
|
+
}
|
|
629
|
+
}, styles: {
|
|
630
|
+
container: {
|
|
631
|
+
maxHeight: 192,
|
|
632
|
+
overflowY: 'auto'
|
|
633
|
+
}
|
|
634
|
+
}, maxWidth: this.props.maxWidth }))));
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
exports.UITreeDropdown = UITreeDropdown;
|
|
638
|
+
//# sourceMappingURL=UITreeDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UITreeDropdown.js","sourceRoot":"","sources":["../../../src/components/UITreeDropdown/UITreeDropdown.tsx"],"names":[],"mappings":"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"}
|