@ui5/webcomponents 2.0.0-rc.3 → 2.0.0-rc.4
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/.env.testing +4 -0
- package/CHANGELOG.md +215 -0
- package/README.md +0 -33
- package/dist/.tsbuildinfo +1 -1
- package/dist/Avatar.d.ts +2 -2
- package/dist/AvatarGroup.d.ts +4 -4
- package/dist/Breadcrumbs.d.ts +1 -1
- package/dist/Breadcrumbs.js +10 -5
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Button.d.ts +26 -13
- package/dist/Button.js +34 -18
- package/dist/Button.js.map +1 -1
- package/dist/Calendar.d.ts +10 -5
- package/dist/Calendar.js +81 -26
- package/dist/Calendar.js.map +1 -1
- package/dist/CalendarDate.d.ts +2 -1
- package/dist/CalendarDate.js +1 -0
- package/dist/CalendarDate.js.map +1 -1
- package/dist/CalendarDateRange.d.ts +31 -0
- package/dist/CalendarDateRange.js +36 -0
- package/dist/CalendarDateRange.js.map +1 -0
- package/dist/CalendarHeader.js +8 -8
- package/dist/CalendarHeader.js.map +1 -1
- package/dist/CheckBox.d.ts +8 -17
- package/dist/CheckBox.js +14 -22
- package/dist/CheckBox.js.map +1 -1
- package/dist/ColorPalette.d.ts +19 -0
- package/dist/ColorPalette.js +112 -13
- package/dist/ColorPalette.js.map +1 -1
- package/dist/ColorPaletteItem.d.ts +16 -0
- package/dist/ColorPaletteItem.js +10 -0
- package/dist/ColorPaletteItem.js.map +1 -1
- package/dist/ColorPalettePopover.d.ts +5 -0
- package/dist/ColorPalettePopover.js +15 -0
- package/dist/ColorPalettePopover.js.map +1 -1
- package/dist/ColorPicker.d.ts +13 -1
- package/dist/ColorPicker.js +10 -0
- package/dist/ColorPicker.js.map +1 -1
- package/dist/ComboBox.d.ts +23 -11
- package/dist/ComboBox.js +156 -58
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBoxItem.d.ts +5 -5
- package/dist/ComboBoxItem.js +3 -7
- package/dist/ComboBoxItem.js.map +1 -1
- package/dist/{ComboBoxGroupItem.d.ts → ComboBoxItemGroup.d.ts} +11 -3
- package/dist/{ComboBoxGroupItem.js → ComboBoxItemGroup.js} +24 -9
- package/dist/ComboBoxItemGroup.js.map +1 -0
- package/dist/CustomListItem.d.ts +7 -0
- package/dist/CustomListItem.js +7 -2
- package/dist/CustomListItem.js.map +1 -1
- package/dist/DatePicker.d.ts +9 -18
- package/dist/DatePicker.js +19 -15
- package/dist/DatePicker.js.map +1 -1
- package/dist/DateRangePicker.d.ts +5 -1
- package/dist/DateRangePicker.js +21 -0
- package/dist/DateRangePicker.js.map +1 -1
- package/dist/DateTimePicker.d.ts +4 -1
- package/dist/DateTimePicker.js +14 -0
- package/dist/DateTimePicker.js.map +1 -1
- package/dist/DayPicker.js +6 -4
- package/dist/DayPicker.js.map +1 -1
- package/dist/Dialog.d.ts +0 -16
- package/dist/Dialog.js +0 -21
- package/dist/Dialog.js.map +1 -1
- package/dist/FileUploader.d.ts +6 -23
- package/dist/FileUploader.js +15 -46
- package/dist/FileUploader.js.map +1 -1
- package/dist/Form.d.ts +198 -0
- package/dist/Form.js +358 -0
- package/dist/Form.js.map +1 -0
- package/dist/FormGroup.d.ts +63 -0
- package/dist/FormGroup.js +86 -0
- package/dist/FormGroup.js.map +1 -0
- package/dist/FormItem.d.ts +62 -0
- package/dist/FormItem.js +76 -0
- package/dist/FormItem.js.map +1 -0
- package/dist/Input.d.ts +17 -30
- package/dist/Input.js +46 -48
- package/dist/Input.js.map +1 -1
- package/dist/Label.d.ts +1 -1
- package/dist/Label.js +1 -1
- package/dist/Label.js.map +1 -1
- package/dist/Link.d.ts +4 -3
- package/dist/Link.js +2 -1
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +3 -2
- package/dist/List.js +45 -0
- package/dist/List.js.map +1 -1
- package/dist/ListItem.d.ts +8 -15
- package/dist/ListItem.js +25 -34
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +24 -2
- package/dist/ListItemBase.js +48 -13
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemGroup.d.ts +6 -1
- package/dist/ListItemGroup.js +4 -1
- package/dist/ListItemGroup.js.map +1 -1
- package/dist/ListItemGroupHeader.d.ts +2 -0
- package/dist/ListItemGroupHeader.js +9 -0
- package/dist/ListItemGroupHeader.js.map +1 -1
- package/dist/Menu.d.ts +11 -90
- package/dist/Menu.js +62 -324
- package/dist/Menu.js.map +1 -1
- package/dist/MenuItem.d.ts +57 -22
- package/dist/MenuItem.js +106 -24
- package/dist/MenuItem.js.map +1 -1
- package/dist/MonthPicker.d.ts +1 -0
- package/dist/MonthPicker.js +10 -6
- package/dist/MonthPicker.js.map +1 -1
- package/dist/MultiComboBox.d.ts +17 -3
- package/dist/MultiComboBox.js +63 -25
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiInput.d.ts +18 -4
- package/dist/MultiInput.js +56 -31
- package/dist/MultiInput.js.map +1 -1
- package/dist/NavigationMenu.d.ts +1 -6
- package/dist/NavigationMenu.js +3 -47
- package/dist/NavigationMenu.js.map +1 -1
- package/dist/NavigationMenuItem.d.ts +22 -3
- package/dist/NavigationMenuItem.js +29 -4
- package/dist/NavigationMenuItem.js.map +1 -1
- package/dist/Option.d.ts +20 -33
- package/dist/Option.js +31 -19
- package/dist/Option.js.map +1 -1
- package/dist/OptionCustom.d.ts +51 -0
- package/dist/OptionCustom.js +63 -0
- package/dist/OptionCustom.js.map +1 -0
- package/dist/Panel.d.ts +1 -1
- package/dist/Popover.d.ts +8 -21
- package/dist/Popover.js +32 -44
- package/dist/Popover.js.map +1 -1
- package/dist/Popup.d.ts +20 -23
- package/dist/Popup.js +53 -57
- package/dist/Popup.js.map +1 -1
- package/dist/RadioButton.d.ts +16 -27
- package/dist/RadioButton.js +19 -31
- package/dist/RadioButton.js.map +1 -1
- package/dist/RadioButtonGroup.js +6 -5
- package/dist/RadioButtonGroup.js.map +1 -1
- package/dist/RangeSlider.d.ts +3 -1
- package/dist/RangeSlider.js +7 -0
- package/dist/RangeSlider.js.map +1 -1
- package/dist/ResponsivePopover.d.ts +4 -16
- package/dist/ResponsivePopover.js +17 -30
- package/dist/ResponsivePopover.js.map +1 -1
- package/dist/SegmentedButtonItem.d.ts +6 -1
- package/dist/SegmentedButtonItem.js +7 -4
- package/dist/SegmentedButtonItem.js.map +1 -1
- package/dist/Select.d.ts +27 -82
- package/dist/Select.js +83 -231
- package/dist/Select.js.map +1 -1
- package/dist/Slider.d.ts +3 -1
- package/dist/Slider.js +4 -0
- package/dist/Slider.js.map +1 -1
- package/dist/SliderBase.d.ts +11 -1
- package/dist/SliderBase.js +6 -0
- package/dist/SliderBase.js.map +1 -1
- package/dist/StandardListItem.d.ts +7 -0
- package/dist/StandardListItem.js +3 -0
- package/dist/StandardListItem.js.map +1 -1
- package/dist/StepInput.d.ts +6 -15
- package/dist/StepInput.js +7 -11
- package/dist/StepInput.js.map +1 -1
- package/dist/Switch.d.ts +8 -17
- package/dist/Switch.js +13 -21
- package/dist/Switch.js.map +1 -1
- package/dist/TabContainer.js +11 -5
- package/dist/TabContainer.js.map +1 -1
- package/dist/Tag.d.ts +1 -1
- package/dist/Tag.js.map +1 -1
- package/dist/TextArea.d.ts +9 -18
- package/dist/TextArea.js +22 -15
- package/dist/TextArea.js.map +1 -1
- package/dist/TimePicker.d.ts +24 -24
- package/dist/TimePicker.js +32 -59
- package/dist/TimePicker.js.map +1 -1
- package/dist/TimeSelectionClocks.js +2 -0
- package/dist/TimeSelectionClocks.js.map +1 -1
- package/dist/TimeSelectionInputs.js +2 -0
- package/dist/TimeSelectionInputs.js.map +1 -1
- package/dist/Toast.d.ts +1 -1
- package/dist/Toast.js +2 -2
- package/dist/Toast.js.map +1 -1
- package/dist/ToggleSpinButton.d.ts +1 -1
- package/dist/ToggleSpinButton.js +1 -1
- package/dist/ToggleSpinButton.js.map +1 -1
- package/dist/Token.d.ts +5 -0
- package/dist/Token.js +3 -0
- package/dist/Token.js.map +1 -1
- package/dist/Tokenizer.d.ts +11 -5
- package/dist/Tokenizer.js +93 -71
- package/dist/Tokenizer.js.map +1 -1
- package/dist/Toolbar.d.ts +5 -0
- package/dist/Toolbar.js +16 -4
- package/dist/Toolbar.js.map +1 -1
- package/dist/ToolbarButton.d.ts +11 -3
- package/dist/ToolbarButton.js +2 -2
- package/dist/ToolbarButton.js.map +1 -1
- package/dist/TreeItemBase.d.ts +8 -1
- package/dist/TreeItemBase.js +3 -1
- package/dist/TreeItemBase.js.map +1 -1
- package/dist/TreeItemCustom.js +4 -2
- package/dist/TreeItemCustom.js.map +1 -1
- package/dist/bundle.esm.d.ts +0 -1
- package/dist/bundle.esm.js +5 -3
- package/dist/bundle.esm.js.map +1 -1
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/AvatarGroup.css +1 -1
- package/dist/css/themes/Bar.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/Calendar.css +1 -1
- package/dist/css/themes/CalendarHeader.css +1 -1
- package/dist/css/themes/CalendarLegend.css +1 -1
- package/dist/css/themes/CalendarLegendItem.css +1 -1
- package/dist/css/themes/Card.css +1 -1
- package/dist/css/themes/CardHeader.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/CheckBox.css +1 -1
- package/dist/css/themes/ColorPalette.css +1 -1
- package/dist/css/themes/ColorPaletteItem.css +1 -1
- package/dist/css/themes/ColorPalettePopover.css +1 -1
- package/dist/css/themes/ColorPicker.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/CustomListItem.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DateTimePickerPopover.css +1 -1
- package/dist/css/themes/DayPicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Form.css +1 -0
- package/dist/css/themes/FormItem.css +1 -0
- package/dist/css/themes/FormLabelSpan.css +1 -0
- package/dist/css/themes/FormLayout.css +1 -0
- package/dist/css/themes/GrowingButton.css +1 -1
- package/dist/css/themes/Icon.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/InputIcon.css +1 -1
- package/dist/css/themes/InputSharedStyles.css +1 -1
- package/dist/css/themes/Label.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/ListItemAdditionalText.css +1 -0
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/ListItemGroup.css +1 -1
- package/dist/css/themes/ListItemGroupHeader.css +1 -1
- package/dist/css/themes/ListItemIcon.css +1 -0
- package/dist/css/themes/Menu.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -0
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/MonthPicker.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiComboBoxPopover.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/NavigationMenu.css +1 -1
- package/dist/css/themes/NavigationMenuItem.css +1 -0
- package/dist/css/themes/OptionBase.css +1 -0
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/Popup.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ProgressIndicator.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RangeSlider.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SelectPopover.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSemanticIcon.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/Text.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/ToggleButton.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -1
- package/dist/css/themes/Toolbar.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +2414 -1795
- package/dist/custom-elements.json +1979 -1523
- package/dist/features/InputSuggestions.js +3 -1
- package/dist/features/InputSuggestions.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +6 -2
- package/dist/generated/i18n/i18n-defaults.js +6 -2
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/BusyIndicatorTemplate.lit.js +2 -2
- package/dist/generated/templates/BusyIndicatorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ButtonTemplate.lit.js +3 -2
- package/dist/generated/templates/ButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
- package/dist/generated/templates/CalendarTemplate.lit.js.map +1 -1
- package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
- package/dist/generated/templates/CheckBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +2 -2
- package/dist/generated/templates/ColorPaletteItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ColorPaletteTemplate.lit.js +1 -1
- package/dist/generated/templates/ColorPaletteTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +12 -9
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ComboBoxTemplate.lit.js +14 -11
- package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerInputTemplate.lit.js +2 -2
- package/dist/generated/templates/DatePickerInputTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js +2 -2
- package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DateRangePickerTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/DateRangePickerTemplate.lit.js +9 -0
- package/dist/generated/templates/DateRangePickerTemplate.lit.js.map +1 -0
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DateTimePickerTemplate.lit.js +2 -2
- package/dist/generated/templates/DateTimePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FileUploaderTemplate.lit.js +5 -7
- package/dist/generated/templates/FileUploaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FormItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/FormItemTemplate.lit.js +6 -0
- package/dist/generated/templates/FormItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/FormTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/FormTemplate.lit.js +13 -0
- package/dist/generated/templates/FormTemplate.lit.js.map +1 -0
- package/dist/generated/templates/InputPopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/InputPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/InputTemplate.lit.js +4 -4
- package/dist/generated/templates/InputTemplate.lit.js.map +1 -1
- package/dist/generated/templates/{MenuListItemTemplate.lit.d.ts → ListItemBaseTemplate.lit.d.ts} +2 -2
- package/dist/generated/templates/ListItemBaseTemplate.lit.js +5 -0
- package/dist/generated/templates/ListItemBaseTemplate.lit.js.map +1 -0
- package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js +1 -1
- package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemGroupTemplate.lit.js +1 -1
- package/dist/generated/templates/ListItemGroupTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MenuItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/{MenuListItemTemplate.lit.js → MenuItemTemplate.lit.js} +21 -15
- package/dist/generated/templates/MenuItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/MenuTemplate.lit.js +6 -8
- package/dist/generated/templates/MenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js +4 -4
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MultiInputTemplate.lit.js +28 -27
- package/dist/generated/templates/MultiInputTemplate.lit.js.map +1 -1
- package/dist/generated/templates/NavigationMenuItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/NavigationMenuItemTemplate.lit.js +57 -0
- package/dist/generated/templates/NavigationMenuItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/NavigationMenuTemplate.lit.js +6 -19
- package/dist/generated/templates/NavigationMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/OptionCustomTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/OptionCustomTemplate.lit.js +5 -0
- package/dist/generated/templates/OptionCustomTemplate.lit.js.map +1 -0
- package/dist/generated/templates/OptionTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/OptionTemplate.lit.js +7 -0
- package/dist/generated/templates/OptionTemplate.lit.js.map +1 -0
- package/dist/generated/templates/RadioButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/RadioButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +6 -7
- package/dist/generated/templates/SelectPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SelectTemplate.lit.js +8 -9
- package/dist/generated/templates/SelectTemplate.lit.js.map +1 -1
- package/dist/generated/templates/StepInputTemplate.lit.js +3 -3
- package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
- package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabContainerTemplate.lit.js +2 -2
- package/dist/generated/templates/TabContainerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js +2 -2
- package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TimePickerTemplate.lit.js +3 -3
- package/dist/generated/templates/TimePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +3 -2
- package/dist/generated/templates/ToggleButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js +3 -2
- package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +4 -3
- package/dist/generated/templates/TokenizerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TokenizerTemplate.lit.js +4 -3
- package/dist/generated/templates/TokenizerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToolbarButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/ToolbarButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToolbarPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ToolbarPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToolbarTemplate.lit.js +1 -1
- package/dist/generated/templates/ToolbarTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/AvatarGroup.css.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/CalendarHeader.css.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegend.css.js +1 -1
- package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
- package/dist/generated/themes/Card.css.js +1 -1
- package/dist/generated/themes/Card.css.js.map +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/CustomListItem.css.js +1 -1
- package/dist/generated/themes/CustomListItem.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/DayPicker.css.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +1 -1
- package/dist/generated/themes/Form.css.js +9 -0
- package/dist/generated/themes/Form.css.js.map +1 -0
- package/dist/generated/themes/FormItem.css.js +9 -0
- package/dist/generated/themes/FormItem.css.js.map +1 -0
- package/dist/generated/themes/FormLabelSpan.css.js +9 -0
- package/dist/generated/themes/FormLabelSpan.css.js.map +1 -0
- package/dist/generated/themes/FormLayout.css.d.ts +3 -0
- package/dist/generated/themes/FormLayout.css.js +9 -0
- package/dist/generated/themes/FormLayout.css.js.map +1 -0
- package/dist/generated/themes/GrowingButton.css.js +1 -1
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Icon.css.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/Input.css.js.map +1 -1
- package/dist/generated/themes/InputIcon.css.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
- package/dist/generated/themes/Label.css.js +1 -1
- package/dist/generated/themes/Label.css.js.map +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/ListItemAdditionalText.css.d.ts +3 -0
- package/dist/generated/themes/{SelectMenu.css.js → ListItemAdditionalText.css.js} +2 -2
- package/dist/generated/themes/ListItemAdditionalText.css.js.map +1 -0
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroup.css.js +1 -1
- package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItemIcon.css.d.ts +3 -0
- package/dist/generated/themes/ListItemIcon.css.js +9 -0
- package/dist/generated/themes/ListItemIcon.css.js.map +1 -0
- package/dist/generated/themes/Menu.css.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +1 -1
- package/dist/generated/themes/MenuItem.css.d.ts +3 -0
- package/dist/generated/themes/MenuItem.css.js +9 -0
- package/dist/generated/themes/MenuItem.css.js.map +1 -0
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/MonthPicker.css.js +1 -1
- package/dist/generated/themes/MonthPicker.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenu.css.js +1 -1
- package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.d.ts +3 -0
- package/dist/generated/themes/NavigationMenuItem.css.js +9 -0
- package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -0
- package/dist/generated/themes/OptionBase.css.d.ts +3 -0
- package/dist/generated/themes/{SelectMenuOption.css.js → OptionBase.css.js} +3 -2
- package/dist/generated/themes/{SelectMenu.css.js.map → OptionBase.css.js.map} +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +1 -1
- package/dist/generated/themes/Popover.css.js +1 -1
- package/dist/generated/themes/Popover.css.js.map +1 -1
- package/dist/generated/themes/Popup.css.js +1 -1
- package/dist/generated/themes/Popup.css.js.map +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RangeSlider.css.js +1 -1
- package/dist/generated/themes/RangeSlider.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/SelectPopover.css.js +1 -1
- package/dist/generated/themes/SelectPopover.css.js.map +1 -1
- package/dist/generated/themes/SliderBase.css.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +1 -1
- package/dist/generated/themes/SplitButton.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabContainer.css.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/Text.css.js +1 -1
- package/dist/generated/themes/Text.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TimePicker.css.js +1 -1
- package/dist/generated/themes/TimePicker.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/ToggleButton.css.js +1 -1
- package/dist/generated/themes/ToggleButton.css.js.map +1 -1
- package/dist/generated/themes/Token.css.js +1 -1
- package/dist/generated/themes/Token.css.js.map +1 -1
- package/dist/generated/themes/Tokenizer.css.js +1 -1
- package/dist/generated/themes/Tokenizer.css.js.map +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.css.js.map +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
- package/dist/generated/themes/TreeItem.css.js +1 -1
- package/dist/generated/themes/TreeItem.css.js.map +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
- package/dist/generated/themes/YearPicker.css.js +1 -1
- package/dist/generated/themes/YearPicker.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
- package/dist/popup-utils/OpenedPopupsRegistry.js +1 -1
- package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -1
- package/dist/popup-utils/PopoverRegistry.js +5 -4
- package/dist/popup-utils/PopoverRegistry.js.map +1 -1
- package/dist/styles/Icon.css +33 -0
- package/dist/styles/Icon.module.css +33 -0
- package/dist/types/FormItemSpacing.d.ts +19 -0
- package/dist/types/FormItemSpacing.js +21 -0
- package/dist/types/FormItemSpacing.js.map +1 -0
- package/dist/types/{HighlightTypes.d.ts → Highlight.d.ts} +3 -3
- package/dist/types/Highlight.js +30 -0
- package/dist/types/Highlight.js.map +1 -0
- package/dist/types/InputType.d.ts +7 -1
- package/dist/types/InputType.js +6 -0
- package/dist/types/InputType.js.map +1 -1
- package/dist/types/LinkAccessibleRole.d.ts +19 -0
- package/dist/types/LinkAccessibleRole.js +21 -0
- package/dist/types/LinkAccessibleRole.js.map +1 -0
- package/dist/vscode.html-custom-data.json +306 -157
- package/dist/web-types.json +698 -364
- package/package.json +10 -10
- package/src/BusyIndicator.hbs +1 -1
- package/src/Button.hbs +10 -1
- package/src/Calendar.hbs +2 -2
- package/src/CheckBox.hbs +0 -2
- package/src/ColorPalette.hbs +3 -1
- package/src/ColorPaletteItem.hbs +1 -1
- package/src/ColorPalettePopover.hbs +2 -1
- package/src/ComboBox.hbs +2 -2
- package/src/ComboBoxPopover.hbs +15 -4
- package/src/DatePickerInput.hbs +1 -3
- package/src/DatePickerPopover.hbs +3 -3
- package/src/DateRangePicker.hbs +23 -0
- package/src/DateTimePickerPopover.hbs +2 -2
- package/src/FileUploader.hbs +10 -16
- package/src/FileUploaderPopover.hbs +1 -1
- package/src/Form.hbs +37 -0
- package/src/FormItem.hbs +14 -0
- package/src/Input.hbs +1 -3
- package/src/InputPopover.hbs +5 -5
- package/src/ListItemBase.hbs +21 -0
- package/src/ListItemGroup.hbs +12 -12
- package/src/ListItemGroupHeader.hbs +0 -1
- package/src/Menu.hbs +17 -49
- package/src/MenuItem.hbs +109 -0
- package/src/MonthPicker.hbs +1 -1
- package/src/MultiComboBox.hbs +2 -2
- package/src/MultiComboBoxPopover.hbs +4 -4
- package/src/MultiInput.hbs +4 -2
- package/src/NavigationMenu.hbs +14 -101
- package/src/NavigationMenuItem.hbs +124 -0
- package/src/Option.hbs +15 -0
- package/src/OptionCustom.hbs +5 -0
- package/src/RadioButton.hbs +0 -1
- package/src/ResponsivePopover.hbs +6 -5
- package/src/SegmentedButtonItem.hbs +1 -1
- package/src/Select.hbs +2 -3
- package/src/SelectPopover.hbs +7 -20
- package/src/StepInput.hbs +2 -4
- package/src/Switch.hbs +0 -1
- package/src/TabContainer.hbs +4 -4
- package/src/TextArea.hbs +0 -2
- package/src/TextAreaPopover.hbs +1 -1
- package/src/TimePicker.hbs +4 -5
- package/src/TimePickerPopover.hbs +6 -5
- package/src/TokenizerPopover.hbs +9 -7
- package/src/ToolbarButton.hbs +1 -1
- package/src/ToolbarPopover.hbs +2 -2
- package/src/ToolbarPopoverButton.hbs +1 -1
- package/src/i18n/messagebundle.properties +11 -3
- package/src/i18n/messagebundle_en.properties +13 -3
- package/src/i18n/messagebundle_en_US_saprigi.properties +13 -3
- package/src/styles/Icon.module.css +1 -0
- package/src/themes/Button.css +7 -10
- package/src/themes/Calendar.css +1 -0
- package/src/themes/CalendarLegendItem.css +4 -1
- package/src/themes/ColorPalette.css +11 -6
- package/src/themes/ColorPaletteItem.css +55 -27
- package/src/themes/Form.css +50 -0
- package/src/themes/FormItem.css +65 -0
- package/src/themes/FormLabelSpan.css +267 -0
- package/src/themes/FormLayout.css +159 -0
- package/src/themes/GrowingButton.css +1 -1
- package/src/themes/Input.css +20 -20
- package/src/themes/InputIcon.css +6 -13
- package/src/themes/InputSharedStyles.css +15 -16
- package/src/themes/Label.css +7 -4
- package/src/themes/ListItem.css +6 -57
- package/src/themes/ListItemAdditionalText.css +10 -0
- package/src/themes/ListItemBase.css +61 -46
- package/src/themes/ListItemIcon.css +6 -0
- package/src/themes/Menu.css +0 -10
- package/src/themes/{MenuListItem.css → MenuItem.css} +12 -0
- package/src/themes/MonthPicker.css +23 -0
- package/src/themes/NavigationMenu.css +7 -65
- package/src/themes/NavigationMenuItem.css +54 -0
- package/src/themes/OptionBase.css +3 -0
- package/src/themes/Popover.css +1 -1
- package/src/themes/Popup.css +1 -1
- package/src/themes/ResponsivePopover.css +3 -3
- package/src/themes/ResponsivePopoverCommon.css +3 -3
- package/src/themes/SegmentedButton.css +2 -3
- package/src/themes/SegmentedButtonItem.css +0 -8
- package/src/themes/SelectPopover.css +1 -9
- package/src/themes/TimePicker.css +1 -24
- package/src/themes/base/ColorPalette-parameters.css +10 -4
- package/src/themes/base/Form-parameters.css +20 -0
- package/src/themes/base/sizes-parameters.css +25 -7
- package/src/themes/sap_fiori_3/parameters-bundle.css +2 -2
- package/src/themes/sap_fiori_3/sizes-parameters.css +6 -0
- package/src/themes/sap_fiori_3_dark/parameters-bundle.css +2 -2
- package/src/themes/sap_fiori_3_dark/sizes-parameters.css +6 -0
- package/src/themes/sap_fiori_3_hcb/Tag-parameters.css +102 -0
- package/src/themes/sap_fiori_3_hcw/Tag-parameters.css +102 -0
- package/src/themes/sap_horizon/ColorPalette-parameters.css +7 -4
- package/src/themes/sap_horizon/parameters-bundle.css +1 -0
- package/src/themes/sap_horizon/sizes-parameters.css +4 -2
- package/src/themes/sap_horizon_dark/ColorPalette-parameters.css +7 -4
- package/src/themes/sap_horizon_dark/sizes-parameters.css +4 -2
- package/src/themes/sap_horizon_dark_exp/ColorPalette-parameters.css +5 -4
- package/src/themes/sap_horizon_dark_exp/sizes-parameters.css +1 -2
- package/src/themes/sap_horizon_exp/ColorPalette-parameters.css +5 -4
- package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_exp/sizes-parameters.css +1 -2
- package/src/themes/sap_horizon_hcb/ColorPalette-parameters.css +8 -0
- package/src/themes/sap_horizon_hcb/Tag-parameters.css +9 -9
- package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_hcw/ColorPalette-parameters.css +8 -0
- package/src/themes/sap_horizon_hcw/Tag-parameters.css +9 -9
- package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/ComboBoxGroupItem.js.map +0 -1
- package/dist/MenuListItem.d.ts +0 -61
- package/dist/MenuListItem.js +0 -71
- package/dist/MenuListItem.js.map +0 -1
- package/dist/SelectMenu.d.ts +0 -102
- package/dist/SelectMenu.js +0 -237
- package/dist/SelectMenu.js.map +0 -1
- package/dist/SelectMenuOption.d.ts +0 -94
- package/dist/SelectMenuOption.js +0 -78
- package/dist/SelectMenuOption.js.map +0 -1
- package/dist/css/themes/MenuListItem.css +0 -1
- package/dist/css/themes/SelectMenu.css +0 -1
- package/dist/css/themes/SelectMenuOption.css +0 -0
- package/dist/features/InputElementsFormSupport.d.ts +0 -41
- package/dist/features/InputElementsFormSupport.js +0 -134
- package/dist/features/InputElementsFormSupport.js.map +0 -1
- package/dist/generated/templates/MenuListItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SelectMenuTemplate.lit.d.ts +0 -4
- package/dist/generated/templates/SelectMenuTemplate.lit.js +0 -15
- package/dist/generated/templates/SelectMenuTemplate.lit.js.map +0 -1
- package/dist/generated/themes/MenuListItem.css.js +0 -9
- package/dist/generated/themes/MenuListItem.css.js.map +0 -1
- package/dist/generated/themes/SelectMenuOption.css.js.map +0 -1
- package/dist/styles/Input.css +0 -0
- package/dist/styles/Input.module.css +0 -0
- package/dist/types/HighlightTypes.js +0 -30
- package/dist/types/HighlightTypes.js.map +0 -1
- package/src/MenuListItem.hbs +0 -35
- package/src/SelectMenu.hbs +0 -57
- package/src/styles/Input.module.css +0 -0
- package/src/themes/SelectMenu.css +0 -16
- package/src/themes/SelectMenuOption.css +0 -0
- /package/dist/generated/themes/{MenuListItem.css.d.ts → Form.css.d.ts} +0 -0
- /package/dist/generated/themes/{SelectMenu.css.d.ts → FormItem.css.d.ts} +0 -0
- /package/dist/generated/themes/{SelectMenuOption.css.d.ts → FormLabelSpan.css.d.ts} +0 -0
package/dist/Form.d.ts
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import FormItemSpacing from "./types/FormItemSpacing.js";
|
|
3
|
+
interface IFormItem extends HTMLElement {
|
|
4
|
+
labelSpan: string;
|
|
5
|
+
itemSpacing: `${FormItemSpacing}`;
|
|
6
|
+
readonly isGroup: boolean;
|
|
7
|
+
colsXl?: number;
|
|
8
|
+
colsL?: number;
|
|
9
|
+
colsM?: number;
|
|
10
|
+
colsS?: number;
|
|
11
|
+
columnSpan?: number;
|
|
12
|
+
}
|
|
13
|
+
type GroupItemsInfo = {
|
|
14
|
+
groupItem: IFormItem;
|
|
15
|
+
classes: string;
|
|
16
|
+
items: Array<ItemsInfo>;
|
|
17
|
+
};
|
|
18
|
+
type ItemsInfo = {
|
|
19
|
+
item: IFormItem;
|
|
20
|
+
classes: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @class
|
|
24
|
+
*
|
|
25
|
+
* ### Overview
|
|
26
|
+
*
|
|
27
|
+
* The Form is a layout component that arranges labels and form fields (like input fields) pairs
|
|
28
|
+
* into a specific number of columns.
|
|
29
|
+
*
|
|
30
|
+
* ### Structure
|
|
31
|
+
*
|
|
32
|
+
* - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.
|
|
33
|
+
* - **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.
|
|
34
|
+
* - **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.
|
|
35
|
+
*
|
|
36
|
+
* The simplest Form (`ui5-form`) consists of a header area on top,
|
|
37
|
+
* displaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),
|
|
38
|
+
* representing the pairs of label and form fields.
|
|
39
|
+
*
|
|
40
|
+
* And, there is also "grouping" available to assist the implementation of richer UIs.
|
|
41
|
+
* This is enabled by the FormGroup (`ui5-form-group`) component.
|
|
42
|
+
* In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.
|
|
43
|
+
*
|
|
44
|
+
* ### Responsiveness
|
|
45
|
+
*
|
|
46
|
+
* The Form component reacts and changes its layout on predefined breakpoints.
|
|
47
|
+
* Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:
|
|
48
|
+
* - **S** (< 600px) – 1 column is recommended (default: 1)
|
|
49
|
+
* - **M** (600px - 1022px) – up to 2 columns are recommended (default: 1)
|
|
50
|
+
* - **L** (1023px - 1439px) - up to 3 columns are recommended (default: 2)
|
|
51
|
+
* - **XL** (> 1439px) – up to 6 columns are recommended (default: 2)
|
|
52
|
+
*
|
|
53
|
+
* To change the layout, use the `layout` property - f.e. layout="S1 M2 L3 XL6".
|
|
54
|
+
*
|
|
55
|
+
* ### Groups
|
|
56
|
+
*
|
|
57
|
+
* To make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.
|
|
58
|
+
*
|
|
59
|
+
* - **Example #1** (perfect match):
|
|
60
|
+
* 4 columns and 4 groups: each group will use 1 column.
|
|
61
|
+
*
|
|
62
|
+
* - **Example #2** (balanced distribution):
|
|
63
|
+
* 4 columns and 2 groups: each group will use 2 columns.
|
|
64
|
+
* 6 columns and 2 groups: each group will use 3 columns.
|
|
65
|
+
*
|
|
66
|
+
* - **Example #3** (unbalanced distribution):
|
|
67
|
+
* 3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.
|
|
68
|
+
* 5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.
|
|
69
|
+
*
|
|
70
|
+
* **Note:** The size of a group element is determined by the number of FormItems assigned to it.
|
|
71
|
+
* In the case of equality, the first in the DOM will use more columns, and the last - fewer columns.
|
|
72
|
+
*
|
|
73
|
+
* - **Example #4** (more groups than columns):
|
|
74
|
+
* 3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.
|
|
75
|
+
*
|
|
76
|
+
* ### Groups Column Span
|
|
77
|
+
*
|
|
78
|
+
* To influence the built-in group distribution, described in the previous section,
|
|
79
|
+
* you can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.
|
|
80
|
+
*
|
|
81
|
+
* ### Items Column Span
|
|
82
|
+
*
|
|
83
|
+
* FormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.
|
|
84
|
+
*
|
|
85
|
+
* ### Items Label Span
|
|
86
|
+
*
|
|
87
|
+
* The placement of the labels depends on the size of the used column.
|
|
88
|
+
* If there is enough space, the labels are next to their associated fields, otherwise - above the fields.
|
|
89
|
+
* By default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.
|
|
90
|
+
* You can control what space the labels should take via the `labelSpan` property.
|
|
91
|
+
*
|
|
92
|
+
* **For example:** To always place the labels on top set: `labelSpan="S12 M12 L12 XL12"` property.
|
|
93
|
+
*
|
|
94
|
+
* ### ES6 Module Import
|
|
95
|
+
*
|
|
96
|
+
* - import @ui5/webcomponents/dist/Form.js";
|
|
97
|
+
* - import @ui5/webcomponents/dist/FormGroup.js";
|
|
98
|
+
* - import @ui5/webcomponents/dist/FormItem.js";
|
|
99
|
+
*
|
|
100
|
+
* @csspart header - Used to style the wrapper of the header.
|
|
101
|
+
* @csspart layout - Used to style the element defining the form column layout.
|
|
102
|
+
* @csspart column - Used to style a single column of the form column layout.
|
|
103
|
+
*
|
|
104
|
+
* @public
|
|
105
|
+
* @since 2.0.0
|
|
106
|
+
*/
|
|
107
|
+
declare class Form extends UI5Element {
|
|
108
|
+
/**
|
|
109
|
+
* Defines the number of columns to distribute the form content by breakpoint.
|
|
110
|
+
*
|
|
111
|
+
* Supported values:
|
|
112
|
+
* - `S` - 1 column by default (1 column is recommended)
|
|
113
|
+
* - `M` - 1 column by default (up to 2 columns are recommended)
|
|
114
|
+
* - `L` - 2 columns by default (up to 3 columns are recommended)
|
|
115
|
+
* - `XL` - 2 columns by default (up to 6 columns are recommended)
|
|
116
|
+
*
|
|
117
|
+
* @default "S1 M1 L2 XL2"
|
|
118
|
+
* @public
|
|
119
|
+
*/
|
|
120
|
+
layout: string;
|
|
121
|
+
/**
|
|
122
|
+
* Defines the width proportion of the labels and fields of a FormItem by breakpoint.
|
|
123
|
+
*
|
|
124
|
+
* By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,
|
|
125
|
+
* and 12/12 in S size, e.g in S the label is on top of its associated field.
|
|
126
|
+
*
|
|
127
|
+
* The supported values are between 1 and 12. Greater the number, more space the label will use.
|
|
128
|
+
*
|
|
129
|
+
* **Note:** If "12" is set, the label will be displayed on top of its assosiated field.
|
|
130
|
+
* @default "S12 M4 L4 XL4"
|
|
131
|
+
* @public
|
|
132
|
+
*/
|
|
133
|
+
labelSpan: string;
|
|
134
|
+
/**
|
|
135
|
+
* Defines the header text of the component.
|
|
136
|
+
*
|
|
137
|
+
* **Note:** The property gets overridden by the `header` slot.
|
|
138
|
+
*
|
|
139
|
+
* @default ""
|
|
140
|
+
* @public
|
|
141
|
+
*/
|
|
142
|
+
headerText: string;
|
|
143
|
+
/**
|
|
144
|
+
* Defines the vertical spacing between form items.
|
|
145
|
+
*
|
|
146
|
+
* **Note:** If the Form is meant to be switched between "non-edit" and "edit" modes,
|
|
147
|
+
* we recommend using "Large" item spacing in "non-edit" mode, and "Normal" - for "edit" mode,
|
|
148
|
+
* to avoid "jumping" effect, caused by the hight difference between texts in "non-edit" mode and the input fields in "edit" mode.
|
|
149
|
+
*
|
|
150
|
+
* @default "Normal"
|
|
151
|
+
* @public
|
|
152
|
+
*/
|
|
153
|
+
itemSpacing: `${FormItemSpacing}`;
|
|
154
|
+
/**
|
|
155
|
+
* Defines the component header area.
|
|
156
|
+
*
|
|
157
|
+
* **Note:** When a `header` is provided, the `headerText` property is ignored.
|
|
158
|
+
* @public
|
|
159
|
+
*/
|
|
160
|
+
header: Array<HTMLElement>;
|
|
161
|
+
/**
|
|
162
|
+
* Defines the component content - FormGroups or FormItems.
|
|
163
|
+
*
|
|
164
|
+
* **Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.
|
|
165
|
+
* Either use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.
|
|
166
|
+
* @public
|
|
167
|
+
*/
|
|
168
|
+
items: Array<IFormItem>;
|
|
169
|
+
/**
|
|
170
|
+
* @private
|
|
171
|
+
*/
|
|
172
|
+
columnsS: number;
|
|
173
|
+
labelSpanS: number;
|
|
174
|
+
columnsM: number;
|
|
175
|
+
labelSpanM: number;
|
|
176
|
+
columnsL: number;
|
|
177
|
+
labelSpanL: number;
|
|
178
|
+
columnsXl: number;
|
|
179
|
+
labelSpanXl: number;
|
|
180
|
+
onBeforeRendering(): void;
|
|
181
|
+
onAfterRendering(): void;
|
|
182
|
+
setColumnLayout(): void;
|
|
183
|
+
setLabelSpan(): void;
|
|
184
|
+
setGroupsColSpan(): void;
|
|
185
|
+
getGroupsColSpan(cols: number, groups: number, index: number, group: IFormItem): number;
|
|
186
|
+
get hasGroupItems(): boolean;
|
|
187
|
+
get hasHeader(): boolean;
|
|
188
|
+
get hasCustomHeader(): boolean;
|
|
189
|
+
get ariaLabelledByID(): string | undefined;
|
|
190
|
+
get groupItemsInfo(): Array<GroupItemsInfo>;
|
|
191
|
+
get itemsInfo(): Array<ItemsInfo>;
|
|
192
|
+
getItemsInfo(items?: Array<IFormItem>): Array<ItemsInfo>;
|
|
193
|
+
createAdditionalCSSStyleSheet(): void;
|
|
194
|
+
getAdditionalCSS(step: string, colsNumber: number): string | undefined;
|
|
195
|
+
getCSSStyleSheet(cssText: string): CSSStyleSheet;
|
|
196
|
+
}
|
|
197
|
+
export default Form;
|
|
198
|
+
export { IFormItem, };
|
package/dist/Form.js
ADDED
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
10
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
11
|
+
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
12
|
+
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
13
|
+
// Template
|
|
14
|
+
import FormTemplate from "./generated/templates/FormTemplate.lit.js";
|
|
15
|
+
// Styles
|
|
16
|
+
import FormCss from "./generated/themes/Form.css.js";
|
|
17
|
+
import Title from "./Title.js";
|
|
18
|
+
import FormItemSpacing from "./types/FormItemSpacing.js";
|
|
19
|
+
const additionalStylesMap = new Map();
|
|
20
|
+
const StepColumn = {
|
|
21
|
+
"S": 1,
|
|
22
|
+
"M": 2,
|
|
23
|
+
"L": 3,
|
|
24
|
+
"XL": 6,
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @class
|
|
28
|
+
*
|
|
29
|
+
* ### Overview
|
|
30
|
+
*
|
|
31
|
+
* The Form is a layout component that arranges labels and form fields (like input fields) pairs
|
|
32
|
+
* into a specific number of columns.
|
|
33
|
+
*
|
|
34
|
+
* ### Structure
|
|
35
|
+
*
|
|
36
|
+
* - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.
|
|
37
|
+
* - **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.
|
|
38
|
+
* - **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.
|
|
39
|
+
*
|
|
40
|
+
* The simplest Form (`ui5-form`) consists of a header area on top,
|
|
41
|
+
* displaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),
|
|
42
|
+
* representing the pairs of label and form fields.
|
|
43
|
+
*
|
|
44
|
+
* And, there is also "grouping" available to assist the implementation of richer UIs.
|
|
45
|
+
* This is enabled by the FormGroup (`ui5-form-group`) component.
|
|
46
|
+
* In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.
|
|
47
|
+
*
|
|
48
|
+
* ### Responsiveness
|
|
49
|
+
*
|
|
50
|
+
* The Form component reacts and changes its layout on predefined breakpoints.
|
|
51
|
+
* Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:
|
|
52
|
+
* - **S** (< 600px) – 1 column is recommended (default: 1)
|
|
53
|
+
* - **M** (600px - 1022px) – up to 2 columns are recommended (default: 1)
|
|
54
|
+
* - **L** (1023px - 1439px) - up to 3 columns are recommended (default: 2)
|
|
55
|
+
* - **XL** (> 1439px) – up to 6 columns are recommended (default: 2)
|
|
56
|
+
*
|
|
57
|
+
* To change the layout, use the `layout` property - f.e. layout="S1 M2 L3 XL6".
|
|
58
|
+
*
|
|
59
|
+
* ### Groups
|
|
60
|
+
*
|
|
61
|
+
* To make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.
|
|
62
|
+
*
|
|
63
|
+
* - **Example #1** (perfect match):
|
|
64
|
+
* 4 columns and 4 groups: each group will use 1 column.
|
|
65
|
+
*
|
|
66
|
+
* - **Example #2** (balanced distribution):
|
|
67
|
+
* 4 columns and 2 groups: each group will use 2 columns.
|
|
68
|
+
* 6 columns and 2 groups: each group will use 3 columns.
|
|
69
|
+
*
|
|
70
|
+
* - **Example #3** (unbalanced distribution):
|
|
71
|
+
* 3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.
|
|
72
|
+
* 5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.
|
|
73
|
+
*
|
|
74
|
+
* **Note:** The size of a group element is determined by the number of FormItems assigned to it.
|
|
75
|
+
* In the case of equality, the first in the DOM will use more columns, and the last - fewer columns.
|
|
76
|
+
*
|
|
77
|
+
* - **Example #4** (more groups than columns):
|
|
78
|
+
* 3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.
|
|
79
|
+
*
|
|
80
|
+
* ### Groups Column Span
|
|
81
|
+
*
|
|
82
|
+
* To influence the built-in group distribution, described in the previous section,
|
|
83
|
+
* you can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.
|
|
84
|
+
*
|
|
85
|
+
* ### Items Column Span
|
|
86
|
+
*
|
|
87
|
+
* FormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.
|
|
88
|
+
*
|
|
89
|
+
* ### Items Label Span
|
|
90
|
+
*
|
|
91
|
+
* The placement of the labels depends on the size of the used column.
|
|
92
|
+
* If there is enough space, the labels are next to their associated fields, otherwise - above the fields.
|
|
93
|
+
* By default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.
|
|
94
|
+
* You can control what space the labels should take via the `labelSpan` property.
|
|
95
|
+
*
|
|
96
|
+
* **For example:** To always place the labels on top set: `labelSpan="S12 M12 L12 XL12"` property.
|
|
97
|
+
*
|
|
98
|
+
* ### ES6 Module Import
|
|
99
|
+
*
|
|
100
|
+
* - import @ui5/webcomponents/dist/Form.js";
|
|
101
|
+
* - import @ui5/webcomponents/dist/FormGroup.js";
|
|
102
|
+
* - import @ui5/webcomponents/dist/FormItem.js";
|
|
103
|
+
*
|
|
104
|
+
* @csspart header - Used to style the wrapper of the header.
|
|
105
|
+
* @csspart layout - Used to style the element defining the form column layout.
|
|
106
|
+
* @csspart column - Used to style a single column of the form column layout.
|
|
107
|
+
*
|
|
108
|
+
* @public
|
|
109
|
+
* @since 2.0.0
|
|
110
|
+
*/
|
|
111
|
+
let Form = class Form extends UI5Element {
|
|
112
|
+
onBeforeRendering() {
|
|
113
|
+
// Parse the layout and set it to the FormGroups/FormItems.
|
|
114
|
+
this.setColumnLayout();
|
|
115
|
+
// Parse the labelSpan and set it to the FormGroups/FormItems.
|
|
116
|
+
this.setLabelSpan();
|
|
117
|
+
// Define how many columns a group should take.
|
|
118
|
+
this.setGroupsColSpan();
|
|
119
|
+
}
|
|
120
|
+
onAfterRendering() {
|
|
121
|
+
// Create additional CSS for number of columns that are not supported by default.
|
|
122
|
+
this.createAdditionalCSSStyleSheet();
|
|
123
|
+
}
|
|
124
|
+
setColumnLayout() {
|
|
125
|
+
const layoutArr = this.layout.split(" ");
|
|
126
|
+
layoutArr.forEach((breakpoint) => {
|
|
127
|
+
if (breakpoint.startsWith("S")) {
|
|
128
|
+
this.columnsS = parseInt(breakpoint.slice(1));
|
|
129
|
+
}
|
|
130
|
+
else if (breakpoint.startsWith("M")) {
|
|
131
|
+
this.columnsM = parseInt(breakpoint.slice(1));
|
|
132
|
+
}
|
|
133
|
+
else if (breakpoint.startsWith("L")) {
|
|
134
|
+
this.columnsL = parseInt(breakpoint.slice(1));
|
|
135
|
+
}
|
|
136
|
+
else if (breakpoint.startsWith("XL")) {
|
|
137
|
+
this.columnsXl = parseInt(breakpoint.slice(2));
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
setLabelSpan() {
|
|
142
|
+
this.labelSpan.split(" ").forEach((breakpoint) => {
|
|
143
|
+
if (breakpoint.startsWith("S")) {
|
|
144
|
+
this.labelSpanS = parseInt(breakpoint.slice(1));
|
|
145
|
+
}
|
|
146
|
+
else if (breakpoint.startsWith("M")) {
|
|
147
|
+
this.labelSpanM = parseInt(breakpoint.slice(1));
|
|
148
|
+
}
|
|
149
|
+
else if (breakpoint.startsWith("L")) {
|
|
150
|
+
this.labelSpanL = parseInt(breakpoint.slice(1));
|
|
151
|
+
}
|
|
152
|
+
else if (breakpoint.startsWith("XL")) {
|
|
153
|
+
this.labelSpanXl = parseInt(breakpoint.slice(2));
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
this.items.forEach((item) => {
|
|
157
|
+
item.labelSpan = this.labelSpan;
|
|
158
|
+
item.itemSpacing = this.itemSpacing;
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
setGroupsColSpan() {
|
|
162
|
+
if (!this.hasGroupItems) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const itemsCount = this.items.length;
|
|
166
|
+
const sortedItems = [...this.items].sort((itemA, itemB) => {
|
|
167
|
+
return itemB?.items.length - itemA?.items.length;
|
|
168
|
+
});
|
|
169
|
+
sortedItems.forEach((item, idx) => {
|
|
170
|
+
item.colsXl = this.getGroupsColSpan(this.columnsXl, itemsCount, idx, item);
|
|
171
|
+
item.colsL = this.getGroupsColSpan(this.columnsL, itemsCount, idx, item);
|
|
172
|
+
item.colsM = this.getGroupsColSpan(this.columnsM, itemsCount, idx, item);
|
|
173
|
+
item.colsS = this.getGroupsColSpan(this.columnsS, itemsCount, idx, item);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
getGroupsColSpan(cols, groups, index, group) {
|
|
177
|
+
// Case 0: column span is set from outside.
|
|
178
|
+
if (group.columnSpan) {
|
|
179
|
+
return group.columnSpan;
|
|
180
|
+
}
|
|
181
|
+
// CASE 1: The number of available columns match the number of groups, or only 1 column is available - each group takes 1 column.
|
|
182
|
+
// For example: 1 column - 1 group, 2 columns - 2 groups, 3 columns - 3 groups, 4columns - 4 groups
|
|
183
|
+
if (cols === 1 || cols <= groups) {
|
|
184
|
+
return 1;
|
|
185
|
+
}
|
|
186
|
+
// CASE 2: The number of available columns IS multiple of the number of groups.
|
|
187
|
+
// For example: 2 column - 1 group, 3 columns - 1 groups, 4 columns - 1 group, 4 columns - 2 groups
|
|
188
|
+
if (cols % groups === 0) {
|
|
189
|
+
return cols / groups;
|
|
190
|
+
}
|
|
191
|
+
// CASE 3: The number of available columns IS NOT multiple of the number of groups.
|
|
192
|
+
const MIN_COL_SPAN = 1;
|
|
193
|
+
const delta = cols - groups;
|
|
194
|
+
// 7 cols & 4 groups => 2, 2, 2, 1
|
|
195
|
+
if (delta <= groups) {
|
|
196
|
+
return index < delta ? MIN_COL_SPAN + 1 : MIN_COL_SPAN;
|
|
197
|
+
}
|
|
198
|
+
// 7 cols & 3 groups => 3, 2, 2
|
|
199
|
+
return index === 0 ? MIN_COL_SPAN + (delta - groups) + 1 : MIN_COL_SPAN + 1;
|
|
200
|
+
}
|
|
201
|
+
get hasGroupItems() {
|
|
202
|
+
return this.items.some((item) => item.isGroup);
|
|
203
|
+
}
|
|
204
|
+
get hasHeader() {
|
|
205
|
+
return this.hasCustomHeader || !!this.headerText;
|
|
206
|
+
}
|
|
207
|
+
get hasCustomHeader() {
|
|
208
|
+
return !!this.header.length;
|
|
209
|
+
}
|
|
210
|
+
get ariaLabelledByID() {
|
|
211
|
+
return this.hasCustomHeader ? undefined : `${this._id}-header-text`;
|
|
212
|
+
}
|
|
213
|
+
get groupItemsInfo() {
|
|
214
|
+
return this.items.map((groupItem) => {
|
|
215
|
+
return {
|
|
216
|
+
groupItem,
|
|
217
|
+
classes: `ui5-form-column-spanL-${groupItem.colsL} ui5-form-column-spanXL-${groupItem.colsXl} ui5-form-column-spanM-${groupItem.colsM} ui5-form-column-spanS-${groupItem.colsS}`,
|
|
218
|
+
items: this.getItemsInfo(Array.from(groupItem.children)),
|
|
219
|
+
};
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
get itemsInfo() {
|
|
223
|
+
return this.getItemsInfo();
|
|
224
|
+
}
|
|
225
|
+
getItemsInfo(items) {
|
|
226
|
+
return (items || this.items).map((item) => {
|
|
227
|
+
return {
|
|
228
|
+
item,
|
|
229
|
+
classes: item.columnSpan ? `ui5-form-item-span-${item.columnSpan}` : "",
|
|
230
|
+
};
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
createAdditionalCSSStyleSheet() {
|
|
234
|
+
[
|
|
235
|
+
{ breakpoint: "S", columns: this.columnsS },
|
|
236
|
+
{ breakpoint: "M", columns: this.columnsM },
|
|
237
|
+
{ breakpoint: "L", columns: this.columnsL },
|
|
238
|
+
{ breakpoint: "XL", columns: this.columnsXl },
|
|
239
|
+
].forEach(step => {
|
|
240
|
+
const additionalStyle = this.getAdditionalCSS(step.breakpoint, step.columns);
|
|
241
|
+
if (additionalStyle) {
|
|
242
|
+
this.shadowRoot.adoptedStyleSheets = [...this.shadowRoot.adoptedStyleSheets, this.getCSSStyleSheet(additionalStyle)];
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
getAdditionalCSS(step, colsNumber) {
|
|
247
|
+
if (StepColumn[step] >= colsNumber) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const key = `${step}-${colsNumber}`;
|
|
251
|
+
if (!additionalStylesMap.has(key)) {
|
|
252
|
+
let containerQuery;
|
|
253
|
+
let supporedColumnsNumber;
|
|
254
|
+
let stepSpanCSS = "";
|
|
255
|
+
let cols = colsNumber;
|
|
256
|
+
if (step === "S") {
|
|
257
|
+
supporedColumnsNumber = StepColumn.S;
|
|
258
|
+
containerQuery = `@container (max-width: 599px) {`;
|
|
259
|
+
}
|
|
260
|
+
else if (step === "M") {
|
|
261
|
+
supporedColumnsNumber = StepColumn.M;
|
|
262
|
+
containerQuery = `@container (width > 599px) and (width < 1024px) {`;
|
|
263
|
+
}
|
|
264
|
+
else if (step === "L") {
|
|
265
|
+
supporedColumnsNumber = StepColumn.L;
|
|
266
|
+
containerQuery = `@container (width > 1023px) and (width < 1439px) {`;
|
|
267
|
+
}
|
|
268
|
+
else if (step === "XL") {
|
|
269
|
+
containerQuery = `@container (min-width: 1440px) {`;
|
|
270
|
+
supporedColumnsNumber = StepColumn.XL;
|
|
271
|
+
}
|
|
272
|
+
while (cols > supporedColumnsNumber) {
|
|
273
|
+
stepSpanCSS += `
|
|
274
|
+
:host([columns-${step.toLocaleLowerCase()}="${cols}"]) .ui5-form-layout {
|
|
275
|
+
grid-template-columns: repeat(${cols}, 1fr);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.ui5-form-column-span${step}-${cols},
|
|
279
|
+
.ui5-form-item-span-${cols} {
|
|
280
|
+
grid-column: span ${cols};
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.ui5-form-column-span${step}-${cols} .ui5-form-group-layout {
|
|
284
|
+
grid-template-columns: repeat(${cols}, 1fr);
|
|
285
|
+
}
|
|
286
|
+
`;
|
|
287
|
+
cols--;
|
|
288
|
+
}
|
|
289
|
+
const css = `${containerQuery}${stepSpanCSS}}`;
|
|
290
|
+
additionalStylesMap.set(key, css);
|
|
291
|
+
}
|
|
292
|
+
return additionalStylesMap.get(key);
|
|
293
|
+
}
|
|
294
|
+
getCSSStyleSheet(cssText) {
|
|
295
|
+
const style = new CSSStyleSheet();
|
|
296
|
+
style.replaceSync(cssText);
|
|
297
|
+
return style;
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
__decorate([
|
|
301
|
+
property({ type: String, defaultValue: "S1 M1 L2 XL2" })
|
|
302
|
+
], Form.prototype, "layout", void 0);
|
|
303
|
+
__decorate([
|
|
304
|
+
property({ type: String, defaultValue: "S12 M4 L4 XL4" })
|
|
305
|
+
], Form.prototype, "labelSpan", void 0);
|
|
306
|
+
__decorate([
|
|
307
|
+
property()
|
|
308
|
+
], Form.prototype, "headerText", void 0);
|
|
309
|
+
__decorate([
|
|
310
|
+
property({ type: FormItemSpacing, defaultValue: FormItemSpacing.Normal })
|
|
311
|
+
], Form.prototype, "itemSpacing", void 0);
|
|
312
|
+
__decorate([
|
|
313
|
+
slot({ type: HTMLElement })
|
|
314
|
+
], Form.prototype, "header", void 0);
|
|
315
|
+
__decorate([
|
|
316
|
+
slot({
|
|
317
|
+
type: HTMLElement,
|
|
318
|
+
"default": true,
|
|
319
|
+
individualSlots: true,
|
|
320
|
+
invalidateOnChildChange: true,
|
|
321
|
+
})
|
|
322
|
+
], Form.prototype, "items", void 0);
|
|
323
|
+
__decorate([
|
|
324
|
+
property({ validator: Integer, defaultValue: 1 })
|
|
325
|
+
], Form.prototype, "columnsS", void 0);
|
|
326
|
+
__decorate([
|
|
327
|
+
property({ validator: Integer, defaultValue: 12 })
|
|
328
|
+
], Form.prototype, "labelSpanS", void 0);
|
|
329
|
+
__decorate([
|
|
330
|
+
property({ validator: Integer, defaultValue: 1 })
|
|
331
|
+
], Form.prototype, "columnsM", void 0);
|
|
332
|
+
__decorate([
|
|
333
|
+
property({ validator: Integer, defaultValue: 4 })
|
|
334
|
+
], Form.prototype, "labelSpanM", void 0);
|
|
335
|
+
__decorate([
|
|
336
|
+
property({ validator: Integer, defaultValue: 2 })
|
|
337
|
+
], Form.prototype, "columnsL", void 0);
|
|
338
|
+
__decorate([
|
|
339
|
+
property({ validator: Integer, defaultValue: 4 })
|
|
340
|
+
], Form.prototype, "labelSpanL", void 0);
|
|
341
|
+
__decorate([
|
|
342
|
+
property({ validator: Integer, defaultValue: 2 })
|
|
343
|
+
], Form.prototype, "columnsXl", void 0);
|
|
344
|
+
__decorate([
|
|
345
|
+
property({ validator: Integer, defaultValue: 4 })
|
|
346
|
+
], Form.prototype, "labelSpanXl", void 0);
|
|
347
|
+
Form = __decorate([
|
|
348
|
+
customElement({
|
|
349
|
+
tag: "ui5-form",
|
|
350
|
+
renderer: litRender,
|
|
351
|
+
styles: FormCss,
|
|
352
|
+
template: FormTemplate,
|
|
353
|
+
dependencies: [Title],
|
|
354
|
+
})
|
|
355
|
+
], Form);
|
|
356
|
+
Form.define();
|
|
357
|
+
export default Form;
|
|
358
|
+
//# sourceMappingURL=Form.js.map
|
package/dist/Form.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.js","sourceRoot":"","sources":["../src/Form.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\n\n// Template\nimport FormTemplate from \"./generated/templates/FormTemplate.lit.js\";\n\n// Styles\nimport FormCss from \"./generated/themes/Form.css.js\";\n\nimport Title from \"./Title.js\";\nimport FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type FormGroup from \"./FormGroup.js\";\n\nconst additionalStylesMap = new Map<string, string>();\n\nconst StepColumn = {\n\t\"S\": 1,\n\t\"M\": 2,\n\t\"L\": 3,\n\t\"XL\": 6,\n};\n\ninterface IFormItem extends HTMLElement {\n\tlabelSpan: string\n\titemSpacing: `${FormItemSpacing}`;\n\treadonly isGroup: boolean;\n\tcolsXl?: number;\n\tcolsL?: number;\n\tcolsM?: number;\n\tcolsS?: number;\n\tcolumnSpan?: number;\n}\n\ntype GroupItemsInfo = {\n\tgroupItem: IFormItem,\n\tclasses: string,\n\titems: Array<ItemsInfo>,\n}\n\ntype ItemsInfo = {\n\titem: IFormItem,\n\tclasses: string,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The Form is a layout component that arranges labels and form fields (like input fields) pairs\n * into a specific number of columns.\n *\n * ### Structure\n *\n * - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.\n * - **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.\n * - **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.\n *\n * The simplest Form (`ui5-form`) consists of a header area on top,\n * displaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),\n * representing the pairs of label and form fields.\n *\n * And, there is also \"grouping\" available to assist the implementation of richer UIs.\n * This is enabled by the FormGroup (`ui5-form-group`) component.\n * In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.\n *\n * ### Responsiveness\n *\n * The Form component reacts and changes its layout on predefined breakpoints.\n * Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:\n * - **S** (< 600px) – 1 column is recommended (default: 1)\n * - **M** (600px - 1022px) – up to 2 columns are recommended (default: 1)\n * - **L** (1023px - 1439px) - up to 3 columns are recommended (default: 2)\n * - **XL** (> 1439px) – up to 6 columns are recommended (default: 2)\n *\n * To change the layout, use the `layout` property - f.e. layout=\"S1 M2 L3 XL6\".\n *\n * ### Groups\n *\n * To make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.\n *\n * - **Example #1** (perfect match):\n * 4 columns and 4 groups: each group will use 1 column.\n *\n * - **Example #2** (balanced distribution):\n * 4 columns and 2 groups: each group will use 2 columns.\n * 6 columns and 2 groups: each group will use 3 columns.\n *\n * - **Example #3** (unbalanced distribution):\n * 3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.\n * 5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.\n *\n * **Note:** The size of a group element is determined by the number of FormItems assigned to it.\n * In the case of equality, the first in the DOM will use more columns, and the last - fewer columns.\n *\n * - **Example #4** (more groups than columns):\n * 3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.\n *\n * ### Groups Column Span\n *\n * To influence the built-in group distribution, described in the previous section,\n * you can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.\n *\n * ### Items Column Span\n *\n * FormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.\n *\n * ### Items Label Span\n *\n * The placement of the labels depends on the size of the used column.\n * If there is enough space, the labels are next to their associated fields, otherwise - above the fields.\n * By default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.\n * You can control what space the labels should take via the `labelSpan` property.\n *\n * **For example:** To always place the labels on top set: `labelSpan=\"S12 M12 L12 XL12\"` property.\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/Form.js\";\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n * - import @ui5/webcomponents/dist/FormItem.js\";\n *\n * @csspart header - Used to style the wrapper of the header.\n * @csspart layout - Used to style the element defining the form column layout.\n * @csspart column - Used to style a single column of the form column layout.\n *\n * @public\n * @since 2.0.0\n */\n@customElement({\n\ttag: \"ui5-form\",\n\trenderer: litRender,\n\tstyles: FormCss,\n\ttemplate: FormTemplate,\n\tdependencies: [Title],\n})\nclass Form extends UI5Element {\n\t/**\n\t * Defines the number of columns to distribute the form content by breakpoint.\n\t *\n\t * Supported values:\n\t * - `S` - 1 column by default (1 column is recommended)\n\t * - `M` - 1 column by default (up to 2 columns are recommended)\n\t * - `L` - 2 columns by default (up to 3 columns are recommended)\n\t * - `XL` - 2 columns by default (up to 6 columns are recommended)\n\t *\n\t * @default \"S1 M1 L2 XL2\"\n\t * @public\n\t */\n\t@property({ type: String, defaultValue: \"S1 M1 L2 XL2\" })\n\tlayout!: string;\n\n\t/**\n\t * Defines the width proportion of the labels and fields of a FormItem by breakpoint.\n\t *\n\t * By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,\n\t * and 12/12 in S size, e.g in S the label is on top of its associated field.\n\t *\n\t * The supported values are between 1 and 12. Greater the number, more space the label will use.\n\t *\n\t * **Note:** If \"12\" is set, the label will be displayed on top of its assosiated field.\n\t * @default \"S12 M4 L4 XL4\"\n\t * @public\n\t */\n\t@property({ type: String, defaultValue: \"S12 M4 L4 XL4\" })\n\tlabelSpan!: string;\n\n\t/**\n\t * Defines the header text of the component.\n\t *\n\t * **Note:** The property gets overridden by the `header` slot.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\theaderText!: string;\n\n\t/**\n\t * Defines the vertical spacing between form items.\n\t *\n\t * **Note:** If the Form is meant to be switched between \"non-edit\" and \"edit\" modes,\n\t * we recommend using \"Large\" item spacing in \"non-edit\" mode, and \"Normal\" - for \"edit\" mode,\n\t * to avoid \"jumping\" effect, caused by the hight difference between texts in \"non-edit\" mode and the input fields in \"edit\" mode.\n\t *\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property({ type: FormItemSpacing, defaultValue: FormItemSpacing.Normal })\n\titemSpacing!: `${FormItemSpacing}`;\n\n\t/**\n\t * Defines the component header area.\n\t *\n\t * **Note:** When a `header` is provided, the `headerText` property is ignored.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\theader!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the component content - FormGroups or FormItems.\n\t *\n\t * **Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\n\t * Either use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: Array<IFormItem>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\tcolumnsS!: number;\n\t@property({ validator: Integer, defaultValue: 12 })\n\tlabelSpanS!: number;\n\n\t@property({ validator: Integer, defaultValue: 1 })\n\tcolumnsM!: number;\n\t@property({ validator: Integer, defaultValue: 4 })\n\tlabelSpanM!: number;\n\n\t@property({ validator: Integer, defaultValue: 2 })\n\tcolumnsL!: number;\n\t@property({ validator: Integer, defaultValue: 4 })\n\tlabelSpanL!: number;\n\n\t@property({ validator: Integer, defaultValue: 2 })\n\tcolumnsXl!: number;\n\t@property({ validator: Integer, defaultValue: 4 })\n\tlabelSpanXl!: number;\n\n\tonBeforeRendering() {\n\t\t// Parse the layout and set it to the FormGroups/FormItems.\n\t\tthis.setColumnLayout();\n\n\t\t// Parse the labelSpan and set it to the FormGroups/FormItems.\n\t\tthis.setLabelSpan();\n\n\t\t// Define how many columns a group should take.\n\t\tthis.setGroupsColSpan();\n\t}\n\n\tonAfterRendering() {\n\t\t// Create additional CSS for number of columns that are not supported by default.\n\t\tthis.createAdditionalCSSStyleSheet();\n\t}\n\n\tsetColumnLayout() {\n\t\tconst layoutArr = this.layout.split(\" \");\n\t\tlayoutArr.forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.columnsS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.columnsM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.columnsL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.columnsXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\t}\n\n\tsetLabelSpan() {\n\t\tthis.labelSpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.labelSpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.labelSpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.labelSpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.labelSpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\n\t\tthis.items.forEach((item: IFormItem) => {\n\t\t\titem.labelSpan = this.labelSpan;\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t});\n\t}\n\n\tsetGroupsColSpan() {\n\t\tif (!this.hasGroupItems) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsCount = this.items.length;\n\t\tconst sortedItems = [...this.items].sort((itemA: IFormItem, itemB: IFormItem) => {\n\t\t\treturn (itemB as FormGroup)?.items.length - (itemA as FormGroup)?.items.length;\n\t\t});\n\n\t\tsortedItems.forEach((item: IFormItem, idx: number) => {\n\t\t\titem.colsXl = this.getGroupsColSpan(this.columnsXl, itemsCount, idx, item);\n\t\t\titem.colsL = this.getGroupsColSpan(this.columnsL, itemsCount, idx, item);\n\t\t\titem.colsM = this.getGroupsColSpan(this.columnsM, itemsCount, idx, item);\n\t\t\titem.colsS = this.getGroupsColSpan(this.columnsS, itemsCount, idx, item);\n\t\t});\n\t}\n\n\tgetGroupsColSpan(cols: number, groups: number, index: number, group: IFormItem): number {\n\t\t// Case 0: column span is set from outside.\n\t\tif (group.columnSpan) {\n\t\t\treturn group.columnSpan;\n\t\t}\n\n\t\t// CASE 1: The number of available columns match the number of groups, or only 1 column is available - each group takes 1 column.\n\t\t// For example: 1 column - 1 group, 2 columns - 2 groups, 3 columns - 3 groups, 4columns - 4 groups\n\t\tif (cols === 1 || cols <= groups) {\n\t\t\treturn 1;\n\t\t}\n\n\t\t// CASE 2: The number of available columns IS multiple of the number of groups.\n\t\t// For example: 2 column - 1 group, 3 columns - 1 groups, 4 columns - 1 group, 4 columns - 2 groups\n\t\tif (cols % groups === 0) {\n\t\t\treturn cols / groups;\n\t\t}\n\n\t\t// CASE 3: The number of available columns IS NOT multiple of the number of groups.\n\t\tconst MIN_COL_SPAN = 1;\n\t\tconst delta = cols - groups;\n\n\t\t// 7 cols & 4 groups => 2, 2, 2, 1\n\t\tif (delta <= groups) {\n\t\t\treturn index < delta ? MIN_COL_SPAN + 1 : MIN_COL_SPAN;\n\t\t}\n\n\t\t// 7 cols & 3 groups => 3, 2, 2\n\t\treturn index === 0 ? MIN_COL_SPAN + (delta - groups) + 1 : MIN_COL_SPAN + 1;\n\t}\n\n\tget hasGroupItems(): boolean {\n\t\treturn this.items.some((item: IFormItem) => item.isGroup);\n\t}\n\n\tget hasHeader(): boolean {\n\t\treturn this.hasCustomHeader || !!this.headerText;\n\t}\n\n\tget hasCustomHeader(): boolean {\n\t\treturn !!this.header.length;\n\t}\n\n\tget ariaLabelledByID(): string | undefined {\n\t\treturn this.hasCustomHeader ? undefined : `${this._id}-header-text`;\n\t}\n\n\tget groupItemsInfo(): Array<GroupItemsInfo> {\n\t\treturn this.items.map((groupItem: IFormItem) => {\n\t\t\treturn {\n\t\t\t\tgroupItem,\n\t\t\t\tclasses: `ui5-form-column-spanL-${groupItem.colsL} ui5-form-column-spanXL-${groupItem.colsXl} ui5-form-column-spanM-${groupItem.colsM} ui5-form-column-spanS-${groupItem.colsS}`,\n\t\t\t\titems: this.getItemsInfo((Array.from(groupItem.children) as Array<IFormItem>)),\n\t\t\t};\n\t\t});\n\t}\n\n\tget itemsInfo(): Array<ItemsInfo> {\n\t\treturn this.getItemsInfo();\n\t}\n\n\tgetItemsInfo(items?: Array<IFormItem>): Array<ItemsInfo> {\n\t\treturn (items || this.items).map((item: IFormItem) => {\n\t\t\treturn {\n\t\t\t\titem,\n\t\t\t\tclasses: item.columnSpan ? `ui5-form-item-span-${item.columnSpan}` : \"\",\n\t\t\t};\n\t\t});\n\t}\n\n\tcreateAdditionalCSSStyleSheet() {\n\t\t[\n\t\t\t{ breakpoint: \"S\", columns: this.columnsS },\n\t\t\t{ breakpoint: \"M\", columns: this.columnsM },\n\t\t\t{ breakpoint: \"L\", columns: this.columnsL },\n\t\t\t{ breakpoint: \"XL\", columns: this.columnsXl },\n\t\t].forEach(step => {\n\t\t\tconst additionalStyle: string | undefined = this.getAdditionalCSS(step.breakpoint, step.columns);\n\n\t\t\tif (additionalStyle) {\n\t\t\t\tthis.shadowRoot!.adoptedStyleSheets = [...this.shadowRoot!.adoptedStyleSheets, this.getCSSStyleSheet(additionalStyle)];\n\t\t\t}\n\t\t});\n\t}\n\n\tgetAdditionalCSS(step: string, colsNumber: number): string | undefined {\n\t\tif (StepColumn[step as keyof typeof StepColumn] >= colsNumber) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst key = `${step}-${colsNumber}`;\n\n\t\tif (!additionalStylesMap.has(key)) {\n\t\t\tlet containerQuery;\n\t\t\tlet supporedColumnsNumber!: number;\n\t\t\tlet stepSpanCSS = \"\";\n\t\t\tlet cols = colsNumber;\n\n\t\t\tif (step === \"S\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.S;\n\t\t\t\tcontainerQuery = `@container (max-width: 599px) {`;\n\t\t\t} else if (step === \"M\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.M;\n\t\t\t\tcontainerQuery = `@container (width > 599px) and (width < 1024px) {`;\n\t\t\t} else if (step === \"L\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.L;\n\t\t\t\tcontainerQuery = `@container (width > 1023px) and (width < 1439px) {`;\n\t\t\t} else if (step === \"XL\") {\n\t\t\t\tcontainerQuery = `@container (min-width: 1440px) {`;\n\t\t\t\tsupporedColumnsNumber = StepColumn.XL;\n\t\t\t}\n\n\t\t\twhile (cols > supporedColumnsNumber) {\n\t\t\t\tstepSpanCSS += `\n\t\t\t\t:host([columns-${step.toLocaleLowerCase()}=\"${cols}\"]) .ui5-form-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t.ui5-form-column-span${step}-${cols},\n\t\t\t\t.ui5-form-item-span-${cols} {\n\t\t\t\t\tgrid-column: span ${cols};\n\t\t\t\t}\n\n\t\t\t\t.ui5-form-column-span${step}-${cols} .ui5-form-group-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tcols--;\n\t\t\t}\n\n\t\t\tconst css = `${containerQuery}${stepSpanCSS}}`;\n\t\t\tadditionalStylesMap.set(key, css);\n\t\t}\n\n\t\treturn additionalStylesMap.get(key)!;\n\t}\n\n\tgetCSSStyleSheet(cssText: string): CSSStyleSheet {\n\t\tconst style = new CSSStyleSheet();\n\t\tstyle.replaceSync(cssText);\n\t\treturn style;\n\t}\n}\n\nForm.define();\n\nexport default Form;\nexport {\n\tIFormItem,\n};\n"]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type FormItem from "./FormItem.js";
|
|
3
|
+
import type { IFormItem } from "./Form.js";
|
|
4
|
+
import FormItemSpacing from "./types/FormItemSpacing.js";
|
|
5
|
+
/**
|
|
6
|
+
* @class
|
|
7
|
+
*
|
|
8
|
+
* ### Overview
|
|
9
|
+
*
|
|
10
|
+
* The FormGroup (ui5-form-group) represents a group inside the Form (ui5-form) component
|
|
11
|
+
* and it consists of FormItem (ui5-form-item) components.
|
|
12
|
+
*
|
|
13
|
+
* The layout of the FormGroup is mostly defined and controlled by the overarching Form (ui5-form) component.
|
|
14
|
+
* Still, one can influence the layout via the FormGroup's `columnSpan` property,
|
|
15
|
+
* that defines how many columns the group should expand to.
|
|
16
|
+
*
|
|
17
|
+
* ### Usage
|
|
18
|
+
*
|
|
19
|
+
* Тhe FormGroup (ui5-form-group) allows to split a Form into groups,
|
|
20
|
+
* e.g to group FormItems that logically belong together.
|
|
21
|
+
*
|
|
22
|
+
* ### ES6 Module Import
|
|
23
|
+
*
|
|
24
|
+
* - import @ui5/webcomponents/dist/FormGroup.js";
|
|
25
|
+
*
|
|
26
|
+
* @public
|
|
27
|
+
* @since 2.0.0
|
|
28
|
+
*/
|
|
29
|
+
declare class FormGroup extends UI5Element implements IFormItem {
|
|
30
|
+
/**
|
|
31
|
+
* Defines header text of the component.
|
|
32
|
+
*
|
|
33
|
+
* @default ""
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
headerText: string;
|
|
37
|
+
/**
|
|
38
|
+
* Defines column span of the component,
|
|
39
|
+
* e.g how many columns the group should span to.
|
|
40
|
+
*
|
|
41
|
+
* @default undefined
|
|
42
|
+
* @public
|
|
43
|
+
*/
|
|
44
|
+
columnSpan?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Defines the items of the component.
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
items: Array<FormItem>;
|
|
50
|
+
/**
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
colsS: number;
|
|
54
|
+
colsM: number;
|
|
55
|
+
colsL: number;
|
|
56
|
+
colsXl: number;
|
|
57
|
+
itemSpacing: `${FormItemSpacing}`;
|
|
58
|
+
labelSpan: string;
|
|
59
|
+
onBeforeRendering(): void;
|
|
60
|
+
processFormItems(): void;
|
|
61
|
+
get isGroup(): boolean;
|
|
62
|
+
}
|
|
63
|
+
export default FormGroup;
|