@ui5/webcomponents 2.27.2 → 2.28.0-rc.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/CHANGELOG.md +27 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/Avatar.d.ts +13 -7
- package/dist/Avatar.js +10 -6
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarGroup.d.ts +2 -2
- package/dist/AvatarGroup.js +3 -3
- package/dist/AvatarGroup.js.map +1 -1
- package/dist/Bar.d.ts +1 -1
- package/dist/Bar.js +1 -1
- package/dist/Bar.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +2 -1
- package/dist/Breadcrumbs.js +2 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BreadcrumbsItem.d.ts +1 -1
- package/dist/BreadcrumbsItem.js +1 -1
- package/dist/BreadcrumbsItem.js.map +1 -1
- package/dist/BusyIndicator.d.ts +2 -2
- package/dist/BusyIndicator.js +1 -1
- package/dist/BusyIndicator.js.map +1 -1
- package/dist/Button.d.ts +4 -3
- package/dist/Button.js +3 -2
- package/dist/Button.js.map +1 -1
- package/dist/Calendar.d.ts +4 -1
- package/dist/Calendar.js +4 -1
- package/dist/Calendar.js.map +1 -1
- package/dist/CalendarLegend.d.ts +1 -0
- package/dist/CalendarLegend.js +1 -0
- package/dist/CalendarLegend.js.map +1 -1
- package/dist/Card.d.ts +4 -3
- package/dist/Card.js +1 -0
- package/dist/Card.js.map +1 -1
- package/dist/CardHeader.d.ts +1 -1
- package/dist/CardHeader.js +1 -1
- package/dist/CardHeader.js.map +1 -1
- package/dist/Carousel.d.ts +13 -13
- package/dist/Carousel.js +12 -12
- package/dist/Carousel.js.map +1 -1
- package/dist/CheckBox.d.ts +1 -1
- package/dist/CheckBox.js +1 -1
- package/dist/CheckBox.js.map +1 -1
- package/dist/ColorPalette.d.ts +9 -5
- package/dist/ColorPalette.js +12 -5
- package/dist/ColorPalette.js.map +1 -1
- package/dist/ColorPaletteItem.d.ts +2 -2
- package/dist/ColorPaletteItem.js +2 -2
- package/dist/ColorPaletteItem.js.map +1 -1
- package/dist/ColorPalettePopover.d.ts +2 -2
- package/dist/ColorPalettePopover.js +2 -2
- package/dist/ColorPalettePopover.js.map +1 -1
- package/dist/ColorPicker.d.ts +3 -1
- package/dist/ColorPicker.js +7 -1
- package/dist/ColorPicker.js.map +1 -1
- package/dist/ComboBox.d.ts +35 -7
- package/dist/ComboBox.js +134 -8
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBoxItem.d.ts +1 -1
- package/dist/ComboBoxItem.js.map +1 -1
- package/dist/ComboBoxItemGroup.d.ts +1 -1
- package/dist/ComboBoxItemGroup.js +1 -1
- package/dist/ComboBoxItemGroup.js.map +1 -1
- package/dist/ComboBoxPopoverTemplate.js +43 -20
- package/dist/ComboBoxPopoverTemplate.js.map +1 -1
- package/dist/ComboBoxTemplate.js +4 -2
- package/dist/ComboBoxTemplate.js.map +1 -1
- package/dist/DateComponentBase.d.ts +3 -3
- package/dist/DateComponentBase.js +2 -2
- package/dist/DateComponentBase.js.map +1 -1
- package/dist/DatePicker.d.ts +5 -5
- package/dist/DatePicker.js +2 -2
- package/dist/DatePicker.js.map +1 -1
- package/dist/DateRangePicker.d.ts +1 -1
- package/dist/DateRangePicker.js +1 -1
- package/dist/DateRangePicker.js.map +1 -1
- package/dist/DateTimePicker.d.ts +1 -1
- package/dist/DateTimePicker.js +1 -1
- package/dist/DateTimePicker.js.map +1 -1
- package/dist/DayPicker.d.ts +1 -1
- package/dist/DayPicker.js +4 -3
- package/dist/DayPicker.js.map +1 -1
- package/dist/Dialog.d.ts +3 -3
- package/dist/Dialog.js +3 -3
- package/dist/Dialog.js.map +1 -1
- package/dist/FileUploader.d.ts +2 -2
- package/dist/FileUploader.js +1 -1
- package/dist/FileUploader.js.map +1 -1
- package/dist/Form.d.ts +2 -0
- package/dist/Form.js +2 -0
- package/dist/Form.js.map +1 -1
- package/dist/GridWalker.d.ts +1 -0
- package/dist/GridWalker.js +3 -0
- package/dist/GridWalker.js.map +1 -1
- package/dist/Input.d.ts +10 -6
- package/dist/Input.js +7 -3
- package/dist/Input.js.map +1 -1
- package/dist/InputIcon.d.ts +12 -1
- package/dist/InputIcon.js +15 -1
- package/dist/InputIcon.js.map +1 -1
- package/dist/Link.d.ts +17 -2
- package/dist/Link.js +16 -1
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +9 -6
- package/dist/List.js +9 -6
- package/dist/List.js.map +1 -1
- package/dist/ListItem.d.ts +1 -1
- package/dist/ListItem.js +1 -1
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +1 -1
- package/dist/ListItemBase.js +1 -1
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemCustom.d.ts +1 -1
- package/dist/ListItemCustom.js.map +1 -1
- package/dist/ListItemStandard.d.ts +4 -4
- package/dist/ListItemStandard.js +1 -1
- package/dist/ListItemStandard.js.map +1 -1
- package/dist/Menu.d.ts +3 -0
- package/dist/Menu.js +3 -0
- package/dist/Menu.js.map +1 -1
- package/dist/MessageStrip.d.ts +3 -3
- package/dist/MessageStrip.js +3 -3
- package/dist/MessageStrip.js.map +1 -1
- package/dist/MonthPicker.js +1 -1
- package/dist/MonthPicker.js.map +1 -1
- package/dist/MultiComboBox.d.ts +7 -4
- package/dist/MultiComboBox.js +5 -2
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiInput.d.ts +1 -1
- package/dist/MultiInput.js +1 -1
- package/dist/MultiInput.js.map +1 -1
- package/dist/{NumberInput.d.ts → NumericInput.d.ts} +9 -9
- package/dist/{NumberInput.js → NumericInput.js} +50 -50
- package/dist/NumericInput.js.map +1 -0
- package/dist/NumericInputTemplate.d.ts +2 -0
- package/dist/{NumberInputTemplate.js → NumericInputTemplate.js} +6 -6
- package/dist/NumericInputTemplate.js.map +1 -0
- package/dist/Option.d.ts +1 -1
- package/dist/Option.js.map +1 -1
- package/dist/Panel.d.ts +3 -3
- package/dist/Panel.js +2 -2
- package/dist/Panel.js.map +1 -1
- package/dist/Popover.d.ts +13 -2
- package/dist/Popover.js +50 -3
- package/dist/Popover.js.map +1 -1
- package/dist/PopoverResize.d.ts +3 -0
- package/dist/PopoverResize.js +53 -23
- package/dist/PopoverResize.js.map +1 -1
- package/dist/PopoverTemplate.js +3 -1
- package/dist/PopoverTemplate.js.map +1 -1
- package/dist/Popup.d.ts +2 -2
- package/dist/Popup.js +2 -2
- package/dist/Popup.js.map +1 -1
- package/dist/ProgressIndicator.d.ts +1 -1
- package/dist/ProgressIndicator.js +1 -1
- package/dist/ProgressIndicator.js.map +1 -1
- package/dist/RadioButton.d.ts +1 -1
- package/dist/RadioButton.js +2 -2
- package/dist/RadioButton.js.map +1 -1
- package/dist/RangeSlider.d.ts +1 -1
- package/dist/RangeSlider.js +5 -4
- package/dist/RangeSlider.js.map +1 -1
- package/dist/RangeSliderTemplate.js +3 -3
- package/dist/RangeSliderTemplate.js.map +1 -1
- package/dist/RatingIndicator.d.ts +5 -5
- package/dist/RatingIndicator.js +4 -4
- package/dist/RatingIndicator.js.map +1 -1
- package/dist/ResponsivePopover.d.ts +2 -2
- package/dist/ResponsivePopover.js +2 -2
- package/dist/ResponsivePopover.js.map +1 -1
- package/dist/SegmentedButton.d.ts +2 -1
- package/dist/SegmentedButton.js +2 -1
- package/dist/SegmentedButton.js.map +1 -1
- package/dist/SegmentedButtonItem.d.ts +1 -1
- package/dist/SegmentedButtonItem.js.map +1 -1
- package/dist/Select.d.ts +7 -4
- package/dist/Select.js +5 -2
- package/dist/Select.js.map +1 -1
- package/dist/Slider.d.ts +2 -1
- package/dist/Slider.js +5 -1
- package/dist/Slider.js.map +1 -1
- package/dist/SliderBase.d.ts +1 -0
- package/dist/SliderBase.js +7 -1
- package/dist/SliderBase.js.map +1 -1
- package/dist/SliderHandle.d.ts +4 -0
- package/dist/SliderHandle.js +7 -0
- package/dist/SliderHandle.js.map +1 -1
- package/dist/SliderScale.d.ts +4 -0
- package/dist/SliderScale.js +13 -0
- package/dist/SliderScale.js.map +1 -1
- package/dist/SliderScaleTemplate.js +1 -1
- package/dist/SliderScaleTemplate.js.map +1 -1
- package/dist/SliderTemplate.js +1 -1
- package/dist/SliderTemplate.js.map +1 -1
- package/dist/StepInput.d.ts +8 -7
- package/dist/StepInput.js +6 -2
- package/dist/StepInput.js.map +1 -1
- package/dist/StepInputTemplate.js +2 -2
- package/dist/StepInputTemplate.js.map +1 -1
- package/dist/SuggestionItem.d.ts +1 -1
- package/dist/SuggestionItem.js.map +1 -1
- package/dist/SuggestionListItem.d.ts +1 -1
- package/dist/SuggestionListItem.js.map +1 -1
- package/dist/Switch.d.ts +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.d.ts +1 -1
- package/dist/Tab.js +1 -1
- package/dist/Tab.js.map +1 -1
- package/dist/TabContainer.d.ts +4 -2
- package/dist/TabContainer.js +3 -1
- package/dist/TabContainer.js.map +1 -1
- package/dist/Table.d.ts +16 -3
- package/dist/Table.js +40 -4
- package/dist/Table.js.map +1 -1
- package/dist/TableGrowing.d.ts +1 -0
- package/dist/TableGrowing.js +12 -10
- package/dist/TableGrowing.js.map +1 -1
- package/dist/TableHeaderRow.d.ts +0 -6
- package/dist/TableHeaderRow.js +1 -19
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableHeaderRowTemplate.js +2 -12
- package/dist/TableHeaderRowTemplate.js.map +1 -1
- package/dist/TableNavigation.d.ts +1 -0
- package/dist/TableNavigation.js +7 -2
- package/dist/TableNavigation.js.map +1 -1
- package/dist/TableRow.js +2 -11
- package/dist/TableRow.js.map +1 -1
- package/dist/TableRowBase.d.ts +3 -7
- package/dist/TableRowBase.js +10 -26
- package/dist/TableRowBase.js.map +1 -1
- package/dist/TableRowTemplate.js +1 -3
- package/dist/TableRowTemplate.js.map +1 -1
- package/dist/TableSelection.d.ts +5 -6
- package/dist/TableSelection.js +28 -12
- package/dist/TableSelection.js.map +1 -1
- package/dist/TableSelectionBase.d.ts +15 -10
- package/dist/TableSelectionBase.js +33 -20
- package/dist/TableSelectionBase.js.map +1 -1
- package/dist/TableSelectionMulti.d.ts +5 -7
- package/dist/TableSelectionMulti.js +14 -10
- package/dist/TableSelectionMulti.js.map +1 -1
- package/dist/TableSelectionSingle.d.ts +3 -2
- package/dist/TableSelectionSingle.js +8 -2
- package/dist/TableSelectionSingle.js.map +1 -1
- package/dist/TableUtils.d.ts +3 -1
- package/dist/TableUtils.js +4 -1
- package/dist/TableUtils.js.map +1 -1
- package/dist/TextArea.d.ts +52 -5
- package/dist/TextArea.js +67 -6
- package/dist/TextArea.js.map +1 -1
- package/dist/TextAreaTemplate.js +2 -2
- package/dist/TextAreaTemplate.js.map +1 -1
- package/dist/TimePicker.d.ts +2 -2
- package/dist/TimePicker.js +1 -1
- package/dist/TimePicker.js.map +1 -1
- package/dist/Toast.d.ts +1 -1
- package/dist/Toast.js +1 -1
- package/dist/Toast.js.map +1 -1
- package/dist/Token.d.ts +2 -2
- package/dist/Token.js +1 -1
- package/dist/Token.js.map +1 -1
- package/dist/Tokenizer.d.ts +1 -0
- package/dist/Tokenizer.js +18 -1
- package/dist/Tokenizer.js.map +1 -1
- package/dist/Toolbar.d.ts +6 -0
- package/dist/Toolbar.js +6 -0
- package/dist/Toolbar.js.map +1 -1
- package/dist/Tree.d.ts +3 -1
- package/dist/Tree.js +5 -3
- package/dist/Tree.js.map +1 -1
- package/dist/TreeItem.d.ts +2 -2
- package/dist/TreeItem.js +1 -1
- package/dist/TreeItem.js.map +1 -1
- package/dist/TreeItemBase.d.ts +3 -3
- package/dist/TreeItemBase.js +3 -3
- package/dist/TreeItemBase.js.map +1 -1
- package/dist/YearPicker.js +1 -1
- package/dist/YearPicker.js.map +1 -1
- package/dist/bundle.esm.js +1 -1
- 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/ComboBox.css +1 -1
- package/dist/css/themes/ComboBoxPopover.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/NumericInput.css +1 -0
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderHandle.css +1 -1
- package/dist/css/themes/SliderScale.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -2
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -2
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -2
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -2
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +786 -513
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +742 -494
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +2708 -259
- package/dist/custom-elements.json +2394 -98
- package/dist/features/ColorPaletteMoreColorsTemplate.js +1 -1
- package/dist/features/ColorPaletteMoreColorsTemplate.js.map +1 -1
- package/dist/features/ComboBoxLazyLoading.d.ts +26 -0
- package/dist/features/ComboBoxLazyLoading.js +48 -0
- package/dist/features/ComboBoxLazyLoading.js.map +1 -0
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.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_auto/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_hc_auto/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_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +9 -1
- package/dist/generated/i18n/i18n-defaults.js +10 -2
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Avatar.css.d.ts +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.d.ts +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/ComboBox.css.d.ts +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/ComboBoxPopover.css.d.ts +1 -1
- package/dist/generated/themes/ComboBoxPopover.css.js +1 -1
- package/dist/generated/themes/ComboBoxPopover.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.d.ts +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/Input.css.d.ts +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/MultiComboBox.css.d.ts +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/NumericInput.css.d.ts +2 -0
- package/dist/generated/themes/NumericInput.css.js +8 -0
- package/dist/generated/themes/NumericInput.css.js.map +1 -0
- package/dist/generated/themes/Popover.css.d.ts +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/RatingIndicator.css.d.ts +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/Select.css.d.ts +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/SliderHandle.css.d.ts +1 -1
- package/dist/generated/themes/SliderHandle.css.js +1 -1
- package/dist/generated/themes/SliderHandle.css.js.map +1 -1
- package/dist/generated/themes/SliderScale.css.d.ts +1 -1
- package/dist/generated/themes/SliderScale.css.js +1 -1
- package/dist/generated/themes/SliderScale.css.js.map +1 -1
- package/dist/generated/themes/SplitButton.css.d.ts +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/TextArea.css.d.ts +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/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -2
- 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.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -2
- 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.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -2
- 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.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -2
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +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_auto/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +786 -513
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +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_hc_auto/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +742 -494
- package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +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_hcw/parameters-bundle.css.d.ts +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/types/ButtonAccessibleRole.d.ts +1 -1
- package/dist/types/ButtonAccessibleRole.js +1 -1
- package/dist/types/ButtonAccessibleRole.js.map +1 -1
- package/dist/types/TableSelectionBehavior.d.ts +1 -1
- package/dist/types/TableSelectionBehavior.js +1 -1
- package/dist/types/TableSelectionBehavior.js.map +1 -1
- package/dist/types/TableSelectionMultiHeaderSelector.d.ts +1 -1
- package/dist/types/TableSelectionMultiHeaderSelector.js +1 -1
- package/dist/types/TableSelectionMultiHeaderSelector.js.map +1 -1
- package/dist/types/TextAreaCounterMode.d.ts +27 -0
- package/dist/types/TextAreaCounterMode.js +29 -0
- package/dist/types/TextAreaCounterMode.js.map +1 -0
- package/dist/vscode.html-custom-data.json +22 -8
- package/dist/web-types.json +44 -13
- package/package.json +9 -9
- package/src/ComboBoxPopoverTemplate.tsx +140 -106
- package/src/ComboBoxTemplate.tsx +4 -2
- package/src/{NumberInputTemplate.tsx → NumericInputTemplate.tsx} +6 -6
- package/src/PopoverTemplate.tsx +19 -0
- package/src/RangeSliderTemplate.tsx +3 -0
- package/src/SliderScaleTemplate.tsx +1 -1
- package/src/SliderTemplate.tsx +1 -0
- package/src/StepInputTemplate.tsx +3 -3
- package/src/TableHeaderRowTemplate.tsx +1 -26
- package/src/TableRowTemplate.tsx +1 -9
- package/src/TableSelection.tsx +464 -0
- package/src/TableSelectionMulti.tsx +396 -0
- package/src/TableSelectionSingle.tsx +91 -0
- package/src/TextAreaTemplate.tsx +2 -2
- package/src/features/ColorPaletteMoreColorsTemplate.tsx +1 -1
- package/src/i18n/messagebundle.properties +25 -1
- package/src/i18n/messagebundle_ar.properties +1 -1
- package/src/i18n/messagebundle_bg.properties +1 -1
- package/src/i18n/messagebundle_ca.properties +1 -1
- package/src/i18n/messagebundle_cnr.properties +1 -1
- package/src/i18n/messagebundle_cy.properties +1 -1
- package/src/i18n/messagebundle_da.properties +1 -1
- package/src/i18n/messagebundle_de.properties +1 -1
- package/src/i18n/messagebundle_el.properties +1 -1
- package/src/i18n/messagebundle_en.properties +1 -1
- package/src/i18n/messagebundle_en_GB.properties +1 -1
- package/src/i18n/messagebundle_en_US_sappsd.properties +1 -1
- package/src/i18n/messagebundle_en_US_saprigi.properties +1 -1
- package/src/i18n/messagebundle_en_US_saptrc.properties +1 -1
- package/src/i18n/messagebundle_es.properties +1 -1
- package/src/i18n/messagebundle_es_MX.properties +1 -1
- package/src/i18n/messagebundle_et.properties +1 -1
- package/src/i18n/messagebundle_fi.properties +1 -1
- package/src/i18n/messagebundle_fr.properties +1 -1
- package/src/i18n/messagebundle_fr_CA.properties +1 -1
- package/src/i18n/messagebundle_hi.properties +1 -1
- package/src/i18n/messagebundle_hr.properties +1 -1
- package/src/i18n/messagebundle_hu.properties +1 -1
- package/src/i18n/messagebundle_id.properties +1 -1
- package/src/i18n/messagebundle_it.properties +1 -1
- package/src/i18n/messagebundle_iw.properties +1 -1
- package/src/i18n/messagebundle_ja.properties +1 -1
- package/src/i18n/messagebundle_kk.properties +1 -1
- package/src/i18n/messagebundle_ko.properties +1 -1
- package/src/i18n/messagebundle_lt.properties +1 -1
- package/src/i18n/messagebundle_lv.properties +1 -1
- package/src/i18n/messagebundle_mk.properties +1 -1
- package/src/i18n/messagebundle_ms.properties +1 -1
- package/src/i18n/messagebundle_nl.properties +1 -1
- package/src/i18n/messagebundle_no.properties +1 -1
- package/src/i18n/messagebundle_pl.properties +1 -1
- package/src/i18n/messagebundle_pt.properties +2 -2
- package/src/i18n/messagebundle_pt_PT.properties +1 -1
- package/src/i18n/messagebundle_ro.properties +1 -1
- package/src/i18n/messagebundle_ru.properties +1 -1
- package/src/i18n/messagebundle_sh.properties +1 -1
- package/src/i18n/messagebundle_sk.properties +1 -1
- package/src/i18n/messagebundle_sl.properties +1 -1
- package/src/i18n/messagebundle_sr.properties +1 -1
- package/src/i18n/messagebundle_sv.properties +1 -1
- package/src/i18n/messagebundle_th.properties +1 -1
- package/src/i18n/messagebundle_tr.properties +1 -1
- package/src/i18n/messagebundle_uk.properties +1 -1
- package/src/i18n/messagebundle_vi.properties +1 -1
- package/src/i18n/messagebundle_zh_CN.properties +1 -1
- package/src/i18n/messagebundle_zh_TW.properties +1 -1
- package/src/themes/Avatar.css +1 -0
- package/src/themes/AvatarGroup.css +21 -0
- package/src/themes/ComboBox.css +5 -0
- package/src/themes/ComboBoxPopover.css +6 -0
- package/src/themes/Input.css +1 -1
- package/src/themes/{NumberInput.css → NumericInput.css} +63 -58
- package/src/themes/Popover.css +47 -14
- package/src/themes/RatingIndicator.css +1 -0
- package/src/themes/SliderHandle.css +12 -7
- package/src/themes/SliderScale.css +4 -2
- package/src/themes/SplitButton.css +4 -1
- package/src/themes/TextArea.css +17 -1
- package/src/themes/base/NumericInput-parameters.css +31 -0
- package/src/themes/base/Popover-parameters.css +5 -0
- package/src/themes/base/sizes-parameters.css +3 -3
- package/src/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon/AvatarGroup-parameters.css +7 -19
- package/src/themes/sap_horizon/NumericInput-parameters.css +26 -0
- package/src/themes/sap_horizon/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_dark/NumericInput-parameters.css +26 -0
- package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_hcb/NumericInput-parameters.css +14 -0
- package/src/themes/sap_horizon_hcb/parameters-bundle.css +2 -2
- package/src/themes/sap_horizon_hcw/NumericInput-parameters.css +14 -0
- package/src/themes/sap_horizon_hcw/parameters-bundle.css +2 -2
- package/dist/NumberInput.js.map +0 -1
- package/dist/NumberInputTemplate.d.ts +0 -2
- package/dist/NumberInputTemplate.js.map +0 -1
- package/dist/css/themes/NumberInput.css +0 -1
- package/dist/generated/themes/NumberInput.css.d.ts +0 -2
- package/dist/generated/themes/NumberInput.css.js +0 -8
- package/dist/generated/themes/NumberInput.css.js.map +0 -1
- package/src/themes/base/NumberInput-parameters.css +0 -31
- package/src/themes/sap_horizon/NumberInput-parameters.css +0 -26
- package/src/themes/sap_horizon_dark/NumberInput-parameters.css +0 -26
- package/src/themes/sap_horizon_hcb/NumberInput-parameters.css +0 -14
- package/src/themes/sap_horizon_hcw/NumberInput-parameters.css +0 -14
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
import { customElement, property } from "@ui5/webcomponents-base/dist/decorators.js";
|
|
2
|
+
import TableSelectionBase from "./TableSelectionBase.js";
|
|
3
|
+
import CheckBox from "./CheckBox.js";
|
|
4
|
+
import Icon from "./Icon.js";
|
|
5
|
+
import ClearAll from "@ui5/webcomponents-icons/dist/clear-all.js";
|
|
6
|
+
import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
|
|
7
|
+
import { isSelectionCell, isHeaderSelectionCell, findRowInPath } from "./TableUtils.js";
|
|
8
|
+
import { isUpShift } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
9
|
+
import type { VNode } from "@ui5/webcomponents-base/dist/jsx-runtime.js";
|
|
10
|
+
import type Table from "./Table.js";
|
|
11
|
+
import type TableRow from "./TableRow.js";
|
|
12
|
+
import type TableRowBase from "./TableRowBase.js";
|
|
13
|
+
import type TableSelectionMultiHeaderSelector from "./types/TableSelectionMultiHeaderSelector.js";
|
|
14
|
+
import {
|
|
15
|
+
TABLE_COLUMNHEADER_SELECTALL_DESCRIPTION,
|
|
16
|
+
TABLE_COLUMNHEADER_CLEARALL_DESCRIPTION,
|
|
17
|
+
CHECKBOX_CHECKED,
|
|
18
|
+
CHECKBOX_NOT_CHECKED,
|
|
19
|
+
ACC_STATE_DISABLED,
|
|
20
|
+
TABLE_ROW_SELECTOR,
|
|
21
|
+
TABLE_SELECT_ALL_ROWS,
|
|
22
|
+
TABLE_DESELECT_ALL_ROWS,
|
|
23
|
+
} from "./generated/i18n/i18n-defaults.js";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @class
|
|
27
|
+
*
|
|
28
|
+
* ### Overview
|
|
29
|
+
*
|
|
30
|
+
* The `ui5-table-selection-multi` component is used inside the `ui5-table` to add multi-selection capabilities to the `ui5-table`.
|
|
31
|
+
* Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.
|
|
32
|
+
*
|
|
33
|
+
* ### Usage
|
|
34
|
+
*
|
|
35
|
+
* The `ui5-table-selection-multi` component is a feature designed exclusively for use within the `ui5-table` component.
|
|
36
|
+
* It must be placed inside the `features` slot of `ui5-table`.
|
|
37
|
+
* This component is not intended for standalone use.
|
|
38
|
+
*
|
|
39
|
+
* ```html
|
|
40
|
+
* <ui5-table>
|
|
41
|
+
* <ui5-table-selection-multi slot="features" selected="Row1 Row3"></ui5-table-selection-multi>
|
|
42
|
+
* </ui5-table>
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* ### ES6 Module Import
|
|
46
|
+
*
|
|
47
|
+
* `import "@ui5/webcomponents/dist/TableSelectionMulti.js";`
|
|
48
|
+
*
|
|
49
|
+
* @constructor
|
|
50
|
+
* @extends TableSelectionBase
|
|
51
|
+
* @since 2.8.0
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
@customElement({ tag: "ui5-table-selection-multi" })
|
|
55
|
+
|
|
56
|
+
class TableSelectionMulti extends TableSelectionBase {
|
|
57
|
+
/**
|
|
58
|
+
* Defines the `row-key` values of selected rows, with each value separated by a space.
|
|
59
|
+
*
|
|
60
|
+
* @default undefined
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
@property()
|
|
64
|
+
selected?: string;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Defines the selector of the header row.
|
|
68
|
+
*
|
|
69
|
+
* @default "SelectAll"
|
|
70
|
+
* @public
|
|
71
|
+
* @since 2.12.0
|
|
72
|
+
*/
|
|
73
|
+
@property()
|
|
74
|
+
headerSelector: `${TableSelectionMultiHeaderSelector}` = "SelectAll";
|
|
75
|
+
|
|
76
|
+
private _rangeSelection?: {
|
|
77
|
+
selected: boolean,
|
|
78
|
+
isUp: boolean | null,
|
|
79
|
+
rows: TableRow[],
|
|
80
|
+
isMouse: boolean,
|
|
81
|
+
shiftPressed: boolean
|
|
82
|
+
} | null;
|
|
83
|
+
|
|
84
|
+
_onClickCaptureBound: (e: MouseEvent) => void;
|
|
85
|
+
|
|
86
|
+
constructor() {
|
|
87
|
+
super();
|
|
88
|
+
this._onClickCaptureBound = this._onclickCapture.bind(this);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
onTableBeforeRendering() {
|
|
92
|
+
super.onTableBeforeRendering();
|
|
93
|
+
this._table?.removeEventListener("click", this._onClickCaptureBound);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
onTableAfterRendering() {
|
|
97
|
+
this._table?.addEventListener("click", this._onClickCaptureBound, { capture: true });
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
isMultiSelectable(): boolean {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
renderRowSelectionCell(row: TableRow): VNode {
|
|
105
|
+
const i18nBundle = (row.constructor as typeof TableRowBase).i18nBundle;
|
|
106
|
+
return <CheckBox id="selection-component"
|
|
107
|
+
tabindex={-1}
|
|
108
|
+
checked={this.isSelected(row)}
|
|
109
|
+
onChange={() => this._onRowSelectionChange(row)}
|
|
110
|
+
accessibleName={i18nBundle.getText(TABLE_ROW_SELECTOR)}
|
|
111
|
+
></CheckBox>;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
renderHeaderSelectionCell(row: TableRowBase): VNode {
|
|
115
|
+
const i18nBundle = (row.constructor as typeof TableRowBase).i18nBundle;
|
|
116
|
+
if (this.headerSelector === "ClearAll") {
|
|
117
|
+
return <Icon
|
|
118
|
+
name={ClearAll}
|
|
119
|
+
mode="Decorative"
|
|
120
|
+
showTooltip={true}
|
|
121
|
+
accessibleName={i18nBundle.getText(TABLE_DESELECT_ALL_ROWS)}
|
|
122
|
+
design={this.getSelectedRows().length > 0 ? "Default" : "NonInteractive"}
|
|
123
|
+
onClick={() => this._onRowSelectionChange(row)}
|
|
124
|
+
></Icon>;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return <CheckBox id="selection-component"
|
|
128
|
+
tabindex={-1}
|
|
129
|
+
checked={this.isSelected(row)}
|
|
130
|
+
onChange={() => this._onRowSelectionChange(row)}
|
|
131
|
+
accessibleName={i18nBundle.getText(TABLE_ROW_SELECTOR)}
|
|
132
|
+
title={this.isSelected(row) ? i18nBundle.getText(TABLE_DESELECT_ALL_ROWS) : i18nBundle.getText(TABLE_SELECT_ALL_ROWS)}
|
|
133
|
+
></CheckBox>;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
isSelected(row: TableRowBase): boolean {
|
|
137
|
+
if (row.isHeaderRow()) {
|
|
138
|
+
return this.headerSelector === "ClearAll" ? true : this.areAllRowsSelected();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const rowKey = this.getRowKey(row as TableRow);
|
|
142
|
+
return this.getSelectedAsSet().has(rowKey);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
setSelected(row: TableRowBase, selected: boolean, fireEvent: boolean = false) {
|
|
146
|
+
if (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const tableRows = row.isHeaderRow() ? this._table!.rows : [row as TableRow];
|
|
151
|
+
const selectedSet = this.getSelectedAsSet();
|
|
152
|
+
const selectionChanged = tableRows.reduce((selectedSetChanged, tableRow) => {
|
|
153
|
+
const rowKey = this.getRowKey(tableRow);
|
|
154
|
+
if (!rowKey) {
|
|
155
|
+
return selectedSetChanged;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const setSize = selectedSet.size;
|
|
159
|
+
selectedSet[selected ? "add" : "delete"](rowKey);
|
|
160
|
+
return selectedSetChanged || setSize !== selectedSet.size;
|
|
161
|
+
}, false);
|
|
162
|
+
|
|
163
|
+
if (selectionChanged) {
|
|
164
|
+
this.setSelectedAsSet(selectedSet);
|
|
165
|
+
fireEvent && this.fireDecoratorEvent("change");
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Returns an array of the selected rows.
|
|
171
|
+
*
|
|
172
|
+
* @public
|
|
173
|
+
*/
|
|
174
|
+
getSelectedRows(): TableRow[] {
|
|
175
|
+
return this._table ? this._table.rows.filter(row => this.isSelected(row)) : [];
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Determines whether all rows are selected.
|
|
180
|
+
*/
|
|
181
|
+
areAllRowsSelected(): boolean {
|
|
182
|
+
if (!this._table || !this._table.rows.length) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const selectedSet = this.getSelectedAsSet();
|
|
187
|
+
return this._table.rows.filter(row => row._isSelectable).every(row => {
|
|
188
|
+
const rowKey = this.getRowKey(row);
|
|
189
|
+
return selectedSet.has(rowKey);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Returns the `selected` property as a set of unique `row-key` values.
|
|
195
|
+
*
|
|
196
|
+
* @public
|
|
197
|
+
*/
|
|
198
|
+
getSelectedAsSet(): Set<string> {
|
|
199
|
+
const selected = this.selected || "";
|
|
200
|
+
const selectedArray = selected.split(" ").filter(String);
|
|
201
|
+
return new Set(selectedArray);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Sets the `selected` property using the provided set of unique `row-key` values.
|
|
206
|
+
*
|
|
207
|
+
* @param selectedSet A set of `row-key` values
|
|
208
|
+
* @public
|
|
209
|
+
*/
|
|
210
|
+
setSelectedAsSet(selectedSet: Set<string>): void {
|
|
211
|
+
this.selected = [...selectedSet].join(" ");
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Returns the ARIA description of the selection component displayed in the column header.
|
|
216
|
+
*/
|
|
217
|
+
getAriaDescriptionForColumnHeader(): string | undefined {
|
|
218
|
+
if (!this._table || !this._table.rows.length || this.behavior === "RowOnly") {
|
|
219
|
+
return undefined;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
let description = "";
|
|
223
|
+
const seperator = " ";
|
|
224
|
+
const i18nBundle = (this._table.constructor as typeof Table).i18nBundle;
|
|
225
|
+
if (this.headerSelector === "SelectAll") {
|
|
226
|
+
description = i18nBundle.getText(TABLE_COLUMNHEADER_SELECTALL_DESCRIPTION);
|
|
227
|
+
description += seperator + i18nBundle.getText(this.areAllRowsSelected() ? CHECKBOX_CHECKED : CHECKBOX_NOT_CHECKED);
|
|
228
|
+
} else {
|
|
229
|
+
description = i18nBundle.getText(TABLE_COLUMNHEADER_CLEARALL_DESCRIPTION);
|
|
230
|
+
description += this.getSelectedRows().length === 0 ? seperator + i18nBundle.getText(ACC_STATE_DISABLED) : "";
|
|
231
|
+
}
|
|
232
|
+
return description;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {
|
|
236
|
+
super._onkeydown(e, eventOrigin);
|
|
237
|
+
|
|
238
|
+
if (!this._table || !e.shiftKey) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const focusedElement = getActiveElement(); // Assumption: The focused element is always the "next" row after navigation.
|
|
243
|
+
|
|
244
|
+
if (!(focusedElement?.hasAttribute("ui5-table-row") || this._rangeSelection?.isMouse)) {
|
|
245
|
+
this._stopRangeSelection();
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
if (!this._rangeSelection) {
|
|
250
|
+
// If no range selection is active, start one
|
|
251
|
+
const row = focusedElement as TableRow;
|
|
252
|
+
this._startRangeSelection(row, this.isSelected(row));
|
|
253
|
+
} else if (e.key === "ArrowUp" || e.key === "ArrowDown") {
|
|
254
|
+
const change = isUpShift(e) ? -1 : 1;
|
|
255
|
+
this._handleRangeSelection(focusedElement as TableRow, change);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
if (this._rangeSelection) {
|
|
259
|
+
this._rangeSelection.shiftPressed = e.shiftKey;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement) {
|
|
264
|
+
if (!this._table) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
if (!eventOrigin.hasAttribute("ui5-table-row") || !this._rangeSelection || !e.shiftKey) {
|
|
269
|
+
// Stop range selection if a) Shift is relased or b) the event target is not a row
|
|
270
|
+
this._stopRangeSelection();
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (this._rangeSelection) {
|
|
274
|
+
this._rangeSelection.shiftPressed = e.shiftKey;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
_onclickCapture(e: MouseEvent) {
|
|
279
|
+
if (!this._table) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
if (isHeaderSelectionCell(e)) {
|
|
284
|
+
this._stopRangeSelection();
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
if (!isSelectionCell(e)) {
|
|
289
|
+
this._stopRangeSelection();
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
const row = findRowInPath(e.composedPath());
|
|
294
|
+
|
|
295
|
+
if (e.shiftKey && this._rangeSelection?.isMouse) {
|
|
296
|
+
const startRow = this._rangeSelection.rows[0];
|
|
297
|
+
const startIndex = this._table.rows.indexOf(startRow);
|
|
298
|
+
const endIndex = this._table.rows.indexOf(row);
|
|
299
|
+
|
|
300
|
+
// Set checkbox to the selection state of the start row (if it is selected)
|
|
301
|
+
const selectionState = this.isSelected(startRow);
|
|
302
|
+
|
|
303
|
+
// When doing a range selection and clicking on an already selected row, the checked status should not change
|
|
304
|
+
// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to
|
|
305
|
+
// a visual inconsistency.
|
|
306
|
+
row.shadowRoot?.querySelector("#selection-component")?.toggleAttribute("checked", selectionState);
|
|
307
|
+
e.stopPropagation();
|
|
308
|
+
|
|
309
|
+
if (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
const change = endIndex - startIndex;
|
|
314
|
+
this._handleRangeSelection(row, change);
|
|
315
|
+
} else if (row) {
|
|
316
|
+
this._startRangeSelection(row, !this.isSelected(row), true);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Start the range selection and initialises the range selection state
|
|
322
|
+
* @param row starting row
|
|
323
|
+
* @private
|
|
324
|
+
*/
|
|
325
|
+
_startRangeSelection(row: TableRow, selected: boolean, isMouse = false) {
|
|
326
|
+
this._rangeSelection = {
|
|
327
|
+
selected,
|
|
328
|
+
isUp: null,
|
|
329
|
+
rows: [row],
|
|
330
|
+
isMouse,
|
|
331
|
+
shiftPressed: false,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Handles the range selection
|
|
337
|
+
* @param targetRow Row that is currently focused
|
|
338
|
+
* @param change indicates direction
|
|
339
|
+
* @private
|
|
340
|
+
*/
|
|
341
|
+
_handleRangeSelection(targetRow: TableRow, change: number) {
|
|
342
|
+
if (!this._rangeSelection) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
const isUp = change > 0;
|
|
347
|
+
this._rangeSelection.isUp ??= isUp;
|
|
348
|
+
|
|
349
|
+
const shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;
|
|
350
|
+
let selectionChanged = shouldReverseSelection && this.isSelected(targetRow);
|
|
351
|
+
|
|
352
|
+
if (shouldReverseSelection) {
|
|
353
|
+
this._reverseRangeSelection();
|
|
354
|
+
} else {
|
|
355
|
+
const rowIndex = this._table!.rows.indexOf(targetRow);
|
|
356
|
+
const [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);
|
|
357
|
+
const selectedSet = this.getSelectedAsSet();
|
|
358
|
+
|
|
359
|
+
selectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {
|
|
360
|
+
const isRowNotInSelection = !this._rangeSelection?.rows.includes(row);
|
|
361
|
+
const isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection!.selected;
|
|
362
|
+
|
|
363
|
+
if (isRowNotInSelection) {
|
|
364
|
+
this._rangeSelection?.rows.push(row);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
selectedSet[this._rangeSelection!.selected ? "add" : "delete"](this.getRowKey(row));
|
|
368
|
+
|
|
369
|
+
return changed || isRowSelectionDifferent;
|
|
370
|
+
}, selectionChanged) || false;
|
|
371
|
+
|
|
372
|
+
this.setSelectedAsSet(selectedSet);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
selectionChanged && this.fireDecoratorEvent("change");
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
_stopRangeSelection() {
|
|
379
|
+
this._rangeSelection = null;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
_reverseRangeSelection() {
|
|
383
|
+
const row = this._rangeSelection?.rows.pop();
|
|
384
|
+
if (row) {
|
|
385
|
+
this.setSelected(row, false);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
if (this._rangeSelection?.rows.length === 1) {
|
|
389
|
+
this._rangeSelection.isUp = null;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
TableSelectionMulti.define();
|
|
395
|
+
|
|
396
|
+
export default TableSelectionMulti;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { customElement, property } from "@ui5/webcomponents-base/dist/decorators.js";
|
|
2
|
+
import TableSelectionBase from "./TableSelectionBase.js";
|
|
3
|
+
import RadioButton from "./RadioButton.js";
|
|
4
|
+
import type { VNode } from "@ui5/webcomponents-base/dist/jsx-runtime.js";
|
|
5
|
+
import type TableRow from "./TableRow.js";
|
|
6
|
+
import type TableRowBase from "./TableRowBase.js";
|
|
7
|
+
import {
|
|
8
|
+
TABLE_ROW_SELECTOR,
|
|
9
|
+
} from "./generated/i18n/i18n-defaults.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @class
|
|
13
|
+
*
|
|
14
|
+
* ### Overview
|
|
15
|
+
*
|
|
16
|
+
* The `ui5-table-selection-single` component is used inside the `ui5-table` to add single selection capabilities to the `ui5-table`.
|
|
17
|
+
* Since selection is key-based, each `ui5-table-row` must define a unique `row-key` property.
|
|
18
|
+
*
|
|
19
|
+
* ### Usage
|
|
20
|
+
*
|
|
21
|
+
* The `ui5-table-selection-single` component is a feature designed exclusively for use within the `ui5-table` component.
|
|
22
|
+
* It must be placed inside the `features` slot of `ui5-table`.
|
|
23
|
+
* This component is not intended for standalone use.
|
|
24
|
+
*
|
|
25
|
+
* ```html
|
|
26
|
+
* <ui5-table>
|
|
27
|
+
* <ui5-table-selection-single slot="features" selected="Row1"></ui5-table-selection-single>
|
|
28
|
+
* </ui5-table>
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* ### ES6 Module Import
|
|
32
|
+
*
|
|
33
|
+
* `import "@ui5/webcomponents/dist/TableSelectionSingle.js";`
|
|
34
|
+
*
|
|
35
|
+
* @constructor
|
|
36
|
+
* @extends TableSelectionBase
|
|
37
|
+
* @since 2.8.0
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
40
|
+
@customElement({ tag: "ui5-table-selection-single" })
|
|
41
|
+
|
|
42
|
+
class TableSelectionSingle extends TableSelectionBase {
|
|
43
|
+
/**
|
|
44
|
+
* Defines the `row-key` value of the selected row.
|
|
45
|
+
*
|
|
46
|
+
* @default undefined
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
@property()
|
|
50
|
+
selected?: string;
|
|
51
|
+
|
|
52
|
+
isSelected(row: TableRow): boolean {
|
|
53
|
+
const rowKey = this.getRowKey(row);
|
|
54
|
+
return rowKey ? this.selected === rowKey : false;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
renderRowSelectionCell(row: TableRow): VNode {
|
|
58
|
+
const i18nBundle = (row.constructor as typeof TableRowBase).i18nBundle;
|
|
59
|
+
return <RadioButton id="selection-component"
|
|
60
|
+
tabindex={-1}
|
|
61
|
+
checked={this.isSelected(row)}
|
|
62
|
+
onChange={() => this._onRowSelectionChange(row)}
|
|
63
|
+
accessibleName={i18nBundle.getText(TABLE_ROW_SELECTOR)}
|
|
64
|
+
></RadioButton>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
renderHeaderSelectionCell(): undefined {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
setSelected(row: TableRow, selected: boolean, fireEvent: boolean = false) {
|
|
72
|
+
const rowKey = this.getRowKey(row);
|
|
73
|
+
if (rowKey) {
|
|
74
|
+
this.selected = selected ? rowKey : undefined;
|
|
75
|
+
fireEvent && this.fireDecoratorEvent("change");
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Returns the selected row.
|
|
81
|
+
*
|
|
82
|
+
* @public
|
|
83
|
+
*/
|
|
84
|
+
getSelectedRow(): TableRow | undefined {
|
|
85
|
+
return this._table?.rows.find(row => this.isSelected(row));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
TableSelectionSingle.define();
|
|
90
|
+
|
|
91
|
+
export default TableSelectionSingle;
|
package/src/TextAreaTemplate.tsx
CHANGED
|
@@ -47,8 +47,8 @@ export default function TextAreaTemplate(this: TextArea) {
|
|
|
47
47
|
|
|
48
48
|
{ afterTextarea.call(this) }
|
|
49
49
|
|
|
50
|
-
{this.
|
|
51
|
-
<span class=
|
|
50
|
+
{this._effectiveCounterMode !== "None" &&
|
|
51
|
+
<span class={this.classes.exceededText}>{this._exceededTextProps.exceededText}</span>
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
{this.ariaDescriptionText &&
|
|
@@ -5,7 +5,7 @@ import ColorPicker from "../ColorPicker.js";
|
|
|
5
5
|
|
|
6
6
|
export default function ColorPaletteMoreColorsTemplate(this: ColorPalette) {
|
|
7
7
|
return (
|
|
8
|
-
<Dialog open={this.dialogOpen} headerText={this.colorPaletteDialogTitle} onClose={this._closeDialog}>
|
|
8
|
+
<Dialog open={this.dialogOpen} headerText={this.colorPaletteDialogTitle} onClose={this._closeDialog} onOpen={this._onColorPickerDialogOpen}>
|
|
9
9
|
<div class="ui5-cp-dialog-content">
|
|
10
10
|
<ColorPicker value={this.colorPickerValue} onChange={this.onColorPickerChange} />
|
|
11
11
|
</div>
|
|
@@ -453,6 +453,18 @@ MULTICOMBOBOX_DIALOG_CANCEL_BUTTON=Cancel
|
|
|
453
453
|
#XACT: ARIA announcement for Combo Box and Multi Combo Box available options
|
|
454
454
|
COMBOBOX_AVAILABLE_OPTIONS=Available Options
|
|
455
455
|
|
|
456
|
+
#XACT: ARIA announcement when ComboBox starts loading items
|
|
457
|
+
COMBOBOX_LOADING=Loading data
|
|
458
|
+
|
|
459
|
+
#XACT: ARIA announcement when ComboBox ends loading items
|
|
460
|
+
COMBOBOX_LOADED=Data loaded
|
|
461
|
+
|
|
462
|
+
#XACT: ARIA announcement when ComboBox finishes loading, {0} is the number of loaded items
|
|
463
|
+
COMBOBOX_LOADED_ITEMS={0} results are available
|
|
464
|
+
|
|
465
|
+
#XACT: ARIA announcement when ComboBox finishes loading and there is 1 item
|
|
466
|
+
COMBOBOX_LOADED_ITEM=1 result is available
|
|
467
|
+
|
|
456
468
|
#XBUT: Combobox Dialog OK button on mobile devices
|
|
457
469
|
COMBOBOX_DIALOG_OK_BUTTON=OK
|
|
458
470
|
|
|
@@ -574,7 +586,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Cancel
|
|
|
574
586
|
TABCONTAINER_SUBTABS_DESCRIPTION=Press down arrow key to open subitems menu
|
|
575
587
|
|
|
576
588
|
#XTXT: Text for characters left
|
|
577
|
-
TEXTAREA_CHARACTERS_LEFT={0} characters
|
|
589
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
578
590
|
|
|
579
591
|
#XTXT: Text for characters over
|
|
580
592
|
TEXTAREA_CHARACTERS_EXCEEDED={0} characters over limit
|
|
@@ -897,6 +909,18 @@ DIALOG_FULLSCREEN_MAXIMIZE=Maximize (Shift+Ctrl+F)
|
|
|
897
909
|
#XACT: Tooltip for dialog fullscreen button (restore)
|
|
898
910
|
DIALOG_FULLSCREEN_RESTORE=Restore (Shift+Ctrl+F)
|
|
899
911
|
|
|
912
|
+
#XACT: ARIA label for the popover resize handle
|
|
913
|
+
POPOVER_RESIZE_HANDLE_ARIA_LABEL=Resize popover
|
|
914
|
+
|
|
915
|
+
#XACT: ARIA role description for the popover resize handle
|
|
916
|
+
POPOVER_HANDLE_ARIA_ROLEDESCRIPTION=Handle
|
|
917
|
+
|
|
918
|
+
#XACT: ARIA describedby text with keyboard instructions for the popover resize handle
|
|
919
|
+
POPOVER_ARIA_DESCRIBEDBY_RESIZABLE=Use Shift+Arrow keys to resize
|
|
920
|
+
|
|
921
|
+
#XACT: Tooltip for the resize handle icon in the popover
|
|
922
|
+
POPOVER_RESIZE_HANDLE_TOOLTIP=Drag handle to resize (Shift+Arrow)
|
|
923
|
+
|
|
900
924
|
#XFLD: A colon to separate the "label" from an input. In some languages there might be a different symbol used for such a colon
|
|
901
925
|
LABEL_COLON=:
|
|
902
926
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=إلغاء
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=اضغط على مفتاح السهم لأسفل لفتح قائمة البنود الفرعية
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED=تم تجاوز الحد بمقدار {0} من الحروف
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Отказ
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Натиснете клавиша със стрелка надолу, за да отворите менюто с подпозиции
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED={0} символа над ограничението
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Cancel·lar
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Premeu la tecla de fletxa avall per obrir el menú de subposicions
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT={0}
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED=S''han excedit {0} caràcters
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Odustani
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Pritisnite strelicu za dolje da otvorite meni podstavki
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT={0} znakova
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT=Preostalo je {0} znakova
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED={0} znakova prekoračeno
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Canslo
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Pwyswch y bysell saeth i agor y ddewislen is-eitemau
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT={0}
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED={0} nod dros yr uchafswm
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Afbryd
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Tryk på pil ned for at åbne underelementmenu
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT={0}
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED={0} tegn overskredet
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Abbrechen
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Zum Öffnen des Unterelementemenüs Pfeiltaste nach unten drücken
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT={0} Zeichen
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} Zeichen übrig
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED={0} Zeichen über Limit
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Ακύρωση
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Πατήστε το πλήκτρο κάτω βέλους για να ανοίξετε το μενού των υποστοιχείων
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT={0}
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED={0} Πλεονάζοντες χαρακτήρες
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Cancel
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Press down arrow key to open subitems menu
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT={0} characters
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED={0} characters over limit
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=Cancel
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Press down arrow key to open subitems menu
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT={0} characters
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED={0} characters over limit
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=[[[Ĉąŋċēĺ∙∙∙∙∙∙∙∙]]]
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=[[[Ƥŗēşş ƌŏŵŋ ąŗŗŏŵ ķēŷ ţŏ ŏρēŋ şűƃįţēɱş ɱēŋű∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙]]]
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT=[[[{0} ċĥąŗąċţēŗş
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT=[[[{0} ċĥąŗąċţēŗş ĺēƒţ]]]
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED=[[[{0} ċĥąŗąċţēŗş ŏʋēŗ ĺįɱįţ]]]
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=Press down arrow key to open subitems menu
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT={0} characters
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT={0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED={0} characters over limit
|
|
396
396
|
|
|
@@ -390,7 +390,7 @@ TABCONTAINER_POPOVER_CANCEL_BUTTON=/2pCl6rPvRW+9gxMEL5luQ_Cancel
|
|
|
390
390
|
|
|
391
391
|
TABCONTAINER_SUBTABS_DESCRIPTION=mzg89HIlZWO0dIpx1+BfFA_Press down arrow key to open subitems menu
|
|
392
392
|
|
|
393
|
-
TEXTAREA_CHARACTERS_LEFT=
|
|
393
|
+
TEXTAREA_CHARACTERS_LEFT=1LE8jjR3bhsOFr8XU7AM3w_{0} characters left
|
|
394
394
|
|
|
395
395
|
TEXTAREA_CHARACTERS_EXCEEDED=/Z3Pts2XifhYVPMwMqP2/Q_{0} characters over limit
|
|
396
396
|
|