@openui5/sap.m 1.103.1 → 1.106.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/.eslintrc.json +2 -3
- package/.reuse/dep5 +35 -15
- package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
- package/THIRDPARTY.txt +64 -21
- package/package.json +4 -4
- package/src/sap/m/.library +17 -1
- package/src/sap/m/AccButton.js +1 -1
- package/src/sap/m/ActionListItem.js +1 -1
- package/src/sap/m/ActionSelect.js +1 -1
- package/src/sap/m/ActionSheet.js +1 -1
- package/src/sap/m/App.js +2 -3
- package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
- package/src/sap/m/Avatar.js +2 -2
- package/src/sap/m/BadgeEnabler.js +1 -2
- package/src/sap/m/Bar.js +11 -10
- package/src/sap/m/Breadcrumbs.js +2 -2
- package/src/sap/m/BusyDialog.js +1 -1
- package/src/sap/m/BusyIndicator.js +1 -1
- package/src/sap/m/Button.js +49 -10
- package/src/sap/m/ButtonRenderer.js +10 -2
- package/src/sap/m/Carousel.js +3 -4
- package/src/sap/m/CarouselLayout.js +1 -1
- package/src/sap/m/CarouselRenderer.js +3 -3
- package/src/sap/m/CheckBox.js +46 -6
- package/src/sap/m/CheckBoxRenderer.js +1 -0
- package/src/sap/m/ColorPalette.js +1 -1
- package/src/sap/m/ColorPalettePopover.js +1 -1
- package/src/sap/m/Column.js +5 -5
- package/src/sap/m/ColumnHeaderPopover.js +5 -7
- package/src/sap/m/ColumnListItem.js +1 -4
- package/src/sap/m/ColumnListItemRenderer.js +1 -2
- package/src/sap/m/ColumnPopoverActionItem.js +3 -3
- package/src/sap/m/ColumnPopoverCustomItem.js +3 -3
- package/src/sap/m/ColumnPopoverItem.js +3 -3
- package/src/sap/m/ColumnPopoverSelectListItem.js +3 -5
- package/src/sap/m/ColumnPopoverSortItem.js +3 -3
- package/src/sap/m/ComboBox.js +6 -5
- package/src/sap/m/ComboBoxBase.js +3 -7
- package/src/sap/m/ComboBoxBaseRenderer.js +2 -2
- package/src/sap/m/ComboBoxTextField.js +1 -7
- package/src/sap/m/ComboBoxTextFieldRenderer.js +19 -4
- package/src/sap/m/CustomDynamicDateOption.js +1 -1
- package/src/sap/m/CustomListItem.js +1 -1
- package/src/sap/m/CustomTile.js +1 -1
- package/src/sap/m/CustomTreeItem.js +3 -3
- package/src/sap/m/CustomTreeItemRenderer.js +2 -2
- package/src/sap/m/DatePicker.js +16 -26
- package/src/sap/m/DateRangeSelection.js +45 -38
- package/src/sap/m/DateTimeField.js +87 -20
- package/src/sap/m/DateTimeInput.js +1 -1
- package/src/sap/m/DateTimePicker.js +58 -32
- package/src/sap/m/DateTimePickerRenderer.js +1 -1
- package/src/sap/m/Dialog.js +44 -2
- package/src/sap/m/DisplayListItem.js +1 -1
- package/src/sap/m/DraftIndicator.js +1 -1
- package/src/sap/m/DynamicDate.js +1 -1
- package/src/sap/m/DynamicDateFormat.js +2 -5
- package/src/sap/m/DynamicDateOption.js +43 -16
- package/src/sap/m/DynamicDateRange.js +49 -7
- package/src/sap/m/DynamicDateRangeRenderer.js +5 -2
- package/src/sap/m/DynamicDateUtil.js +23 -2
- package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
- package/src/sap/m/ExpandableText.js +1 -1
- package/src/sap/m/FacetFilter.js +2 -2
- package/src/sap/m/FacetFilterItem.js +1 -1
- package/src/sap/m/FacetFilterList.js +4 -4
- package/src/sap/m/FeedContent.js +1 -1
- package/src/sap/m/FeedInput.js +1 -1
- package/src/sap/m/FeedListItem.js +1 -1
- package/src/sap/m/FeedListItemAction.js +1 -1
- package/src/sap/m/Fiori20Adapter.js +2 -2
- package/src/sap/m/FlexBox.js +1 -1
- package/src/sap/m/FlexItemData.js +1 -1
- package/src/sap/m/FormattedText.js +1 -1
- package/src/sap/m/GenericTag.js +1 -1
- package/src/sap/m/GenericTile.js +116 -23
- package/src/sap/m/GenericTileLineModeRenderer.js +4 -4
- package/src/sap/m/GenericTileRenderer.js +23 -10
- package/src/sap/m/GroupHeaderListItem.js +1 -1
- package/src/sap/m/GrowingEnablement.js +60 -36
- package/src/sap/m/GrowingList.js +1 -1
- package/src/sap/m/HBox.js +1 -1
- package/src/sap/m/HeaderContainer.js +34 -32
- package/src/sap/m/HeaderContainerItemNavigator.js +3 -6
- package/src/sap/m/IconTabBar.js +54 -22
- package/src/sap/m/IconTabBarSelectList.js +1 -1
- package/src/sap/m/IconTabFilter.js +1 -1
- package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
- package/src/sap/m/IconTabHeader.js +6 -19
- package/src/sap/m/IconTabSeparator.js +1 -1
- package/src/sap/m/IllustratedMessage.js +98 -25
- package/src/sap/m/IllustratedMessageRenderer.js +10 -6
- package/src/sap/m/Illustration.js +8 -1
- package/src/sap/m/IllustrationPool.js +1 -0
- package/src/sap/m/IllustrationRenderer.js +2 -1
- package/src/sap/m/Image.js +73 -3
- package/src/sap/m/ImageContent.js +1 -1
- package/src/sap/m/ImageRenderer.js +66 -2
- package/src/sap/m/Input.js +62 -7
- package/src/sap/m/InputBase.js +1 -1
- package/src/sap/m/InputBaseRenderer.js +2 -2
- package/src/sap/m/InputListItem.js +1 -1
- package/src/sap/m/InputRenderer.js +4 -0
- package/src/sap/m/InstanceManager.js +6 -6
- package/src/sap/m/Label.js +34 -4
- package/src/sap/m/LabelRenderer.js +7 -2
- package/src/sap/m/LightBox.js +2 -2
- package/src/sap/m/LightBoxItem.js +1 -1
- package/src/sap/m/Link.js +74 -10
- package/src/sap/m/LinkRenderer.js +26 -12
- package/src/sap/m/List.js +38 -1
- package/src/sap/m/ListBase.js +109 -44
- package/src/sap/m/ListBaseRenderer.js +7 -15
- package/src/sap/m/ListItemBase.js +40 -11
- package/src/sap/m/ListItemBaseRenderer.js +17 -6
- package/src/sap/m/ListRenderer.js +2 -2
- package/src/sap/m/MaskEnabler.js +52 -2
- package/src/sap/m/MaskInput.js +23 -1
- package/src/sap/m/MaskInputRule.js +1 -1
- package/src/sap/m/Menu.js +1 -1
- package/src/sap/m/MenuButton.js +1 -1
- package/src/sap/m/MenuItem.js +1 -1
- package/src/sap/m/MenuListItem.js +1 -1
- package/src/sap/m/MessageBox.js +1 -1
- package/src/sap/m/MessageItem.js +3 -4
- package/src/sap/m/MessageListItem.js +10 -6
- package/src/sap/m/MessagePage.js +1 -1
- package/src/sap/m/MessagePopover.js +4 -1
- package/src/sap/m/MessagePopoverItem.js +1 -1
- package/src/sap/m/MessageStrip.js +1 -1
- package/src/sap/m/MessageToast.js +1 -1
- package/src/sap/m/MessageView.js +1 -1
- package/src/sap/m/MultiComboBox.js +5 -16
- package/src/sap/m/MultiEditField.js +1 -1
- package/src/sap/m/MultiInput.js +1 -15
- package/src/sap/m/NavContainer.js +21 -19
- package/src/sap/m/NewsContent.js +2 -3
- package/src/sap/m/NotificationList.js +1 -1
- package/src/sap/m/NotificationListBase.js +1 -1
- package/src/sap/m/NotificationListGroup.js +3 -7
- package/src/sap/m/NotificationListGroupRenderer.js +1 -1
- package/src/sap/m/NotificationListItem.js +1 -1
- package/src/sap/m/NumericContent.js +1 -1
- package/src/sap/m/NumericInput.js +1 -1
- package/src/sap/m/ObjectAttribute.js +1 -1
- package/src/sap/m/ObjectHeader.js +3 -3
- package/src/sap/m/ObjectIdentifier.js +8 -5
- package/src/sap/m/ObjectListItem.js +7 -1
- package/src/sap/m/ObjectMarker.js +1 -1
- package/src/sap/m/ObjectNumber.js +2 -3
- package/src/sap/m/ObjectNumberRenderer.js +10 -3
- package/src/sap/m/ObjectStatus.js +2 -3
- package/src/sap/m/ObjectStatusRenderer.js +2 -2
- package/src/sap/m/OverflowToolbar.js +3 -8
- package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
- package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +3 -8
- package/src/sap/m/OverflowToolbarAssociativePopoverRenderer.js +2 -2
- package/src/sap/m/OverflowToolbarButton.js +2 -2
- package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
- package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
- package/src/sap/m/P13nAnyFilterItem.js +3 -3
- package/src/sap/m/P13nColumnsItem.js +3 -3
- package/src/sap/m/P13nColumnsPanel.js +3 -3
- package/src/sap/m/P13nConditionPanel.js +10 -3
- package/src/sap/m/P13nDialog.js +3 -3
- package/src/sap/m/P13nDimMeasureItem.js +3 -3
- package/src/sap/m/P13nDimMeasurePanel.js +3 -3
- package/src/sap/m/P13nFilterItem.js +3 -3
- package/src/sap/m/P13nFilterPanel.js +3 -3
- package/src/sap/m/P13nGroupItem.js +3 -3
- package/src/sap/m/P13nGroupPanel.js +3 -3
- package/src/sap/m/P13nItem.js +3 -3
- package/src/sap/m/P13nOperationsHelper.js +2 -2
- package/src/sap/m/P13nPanel.js +3 -3
- package/src/sap/m/P13nSelectionItem.js +3 -3
- package/src/sap/m/P13nSelectionPanel.js +3 -3
- package/src/sap/m/P13nSortItem.js +3 -3
- package/src/sap/m/P13nSortPanel.js +3 -3
- package/src/sap/m/PDFViewer.js +2 -2
- package/src/sap/m/PDFViewerRenderer.js +1 -0
- package/src/sap/m/Page.js +1 -3
- package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
- package/src/sap/m/PagingButton.js +1 -1
- package/src/sap/m/Panel.js +1 -1
- package/src/sap/m/PlanningCalendar.js +4 -16
- package/src/sap/m/PlanningCalendarHeader.js +1 -5
- package/src/sap/m/PlanningCalendarLegend.js +1 -1
- package/src/sap/m/PlanningCalendarRow.js +1 -1
- package/src/sap/m/PlanningCalendarView.js +1 -1
- package/src/sap/m/Popover.js +11 -4
- package/src/sap/m/ProgressIndicator.js +1 -1
- package/src/sap/m/ProgressIndicatorRenderer.js +6 -3
- package/src/sap/m/PullToRefresh.js +1 -1
- package/src/sap/m/QuickView.js +3 -3
- package/src/sap/m/QuickViewBase.js +3 -3
- package/src/sap/m/QuickViewCard.js +3 -3
- package/src/sap/m/QuickViewGroup.js +1 -1
- package/src/sap/m/QuickViewGroupElement.js +3 -3
- package/src/sap/m/QuickViewPage.js +3 -3
- package/src/sap/m/RadioButton.js +47 -20
- package/src/sap/m/RadioButtonGroup.js +29 -26
- package/src/sap/m/RangeSlider.js +1 -3
- package/src/sap/m/RatingIndicator.js +8 -1
- package/src/sap/m/RatingIndicatorRenderer.js +13 -4
- package/src/sap/m/ResponsivePopover.js +3 -3
- package/src/sap/m/ResponsiveScale.js +1 -1
- package/src/sap/m/ScrollBar.js +1 -1
- package/src/sap/m/ScrollContainer.js +1 -1
- package/src/sap/m/SearchField.js +1 -1
- package/src/sap/m/SearchFieldRenderer.js +1 -0
- package/src/sap/m/SegmentedButton.js +1 -1
- package/src/sap/m/SegmentedButtonItem.js +1 -1
- package/src/sap/m/Select.js +8 -14
- package/src/sap/m/SelectDialog.js +2 -1
- package/src/sap/m/SelectDialogBase.js +1 -1
- package/src/sap/m/SelectList.js +1 -1
- package/src/sap/m/SelectListRenderer.js +2 -2
- package/src/sap/m/SelectionDetails.js +2 -2
- package/src/sap/m/SelectionDetailsFacade.js +2 -2
- package/src/sap/m/SelectionDetailsItem.js +1 -1
- package/src/sap/m/SelectionDetailsItemLine.js +1 -1
- package/src/sap/m/Shell.js +1 -1
- package/src/sap/m/SimpleFixFlex.js +1 -1
- package/src/sap/m/SinglePlanningCalendar.js +7 -9
- package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarGrid.js +1 -7
- package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
- package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +0 -2
- package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarView.js +1 -1
- package/src/sap/m/SinglePlanningCalendarWeekView.js +12 -13
- package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
- package/src/sap/m/SlideTile.js +30 -5
- package/src/sap/m/Slider.js +1 -1
- package/src/sap/m/SliderTooltip.js +1 -3
- package/src/sap/m/SliderTooltipBase.js +1 -1
- package/src/sap/m/SliderTooltipBaseRenderer.js +2 -2
- package/src/sap/m/SliderTooltipContainer.js +1 -1
- package/src/sap/m/SliderTooltipContainerRenderer.js +2 -2
- package/src/sap/m/SliderTooltipRenderer.js +2 -2
- package/src/sap/m/SplitApp.js +1 -1
- package/src/sap/m/SplitButton.js +1 -3
- package/src/sap/m/SplitContainer.js +3 -7
- package/src/sap/m/StandardDynamicDateOption.js +9 -15
- package/src/sap/m/StandardListItem.js +1 -1
- package/src/sap/m/StandardListItemRenderer.js +2 -2
- package/src/sap/m/StandardTile.js +1 -1
- package/src/sap/m/StandardTreeItem.js +1 -1
- package/src/sap/m/StepInput.js +1 -1
- package/src/sap/m/SuggestionItem.js +1 -1
- package/src/sap/m/SuggestionsPopover.js +4 -2
- package/src/sap/m/Switch.js +1 -1
- package/src/sap/m/TabContainer.js +1 -1
- package/src/sap/m/TabContainerItem.js +1 -1
- package/src/sap/m/TabStrip.js +1 -1
- package/src/sap/m/TabStripItem.js +1 -1
- package/src/sap/m/Table.js +11 -9
- package/src/sap/m/TablePersoController.js +1 -1
- package/src/sap/m/TablePersoDialog.js +6 -15
- package/src/sap/m/TablePersoProvider.js +1 -1
- package/src/sap/m/TableRenderer.js +2 -9
- package/src/sap/m/TableSelectDialog.js +1 -1
- package/src/sap/m/Text.js +1 -1
- package/src/sap/m/TextArea.js +1 -1
- package/src/sap/m/TextAreaRenderer.js +1 -2
- package/src/sap/m/Tile.js +1 -1
- package/src/sap/m/TileContainer.js +1 -1
- package/src/sap/m/TileContent.js +8 -9
- package/src/sap/m/TileContentRenderer.js +3 -3
- package/src/sap/m/TimePicker.js +45 -8
- package/src/sap/m/TimePickerClock.js +2 -3
- package/src/sap/m/TimePickerClocks.js +5 -3
- package/src/sap/m/TimePickerClocksRenderer.js +4 -2
- package/src/sap/m/TimePickerInputs.js +1 -1
- package/src/sap/m/TimePickerInputsRenderer.js +1 -1
- package/src/sap/m/TimePickerInternals.js +1 -1
- package/src/sap/m/TimePickerSlider.js +1 -1
- package/src/sap/m/TimePickerSliders.js +3 -5
- package/src/sap/m/Title.js +1 -1
- package/src/sap/m/TitlePropagationSupport.js +1 -1
- package/src/sap/m/ToggleButton.js +2 -2
- package/src/sap/m/Token.js +1 -3
- package/src/sap/m/Tokenizer.js +1 -1
- package/src/sap/m/Toolbar.js +1 -1
- package/src/sap/m/ToolbarLayoutData.js +1 -1
- package/src/sap/m/ToolbarSeparator.js +1 -1
- package/src/sap/m/ToolbarSpacer.js +1 -1
- package/src/sap/m/Tree.js +8 -1
- package/src/sap/m/TreeItemBase.js +1 -1
- package/src/sap/m/TreeRenderer.js +0 -10
- package/src/sap/m/UploadCollection.js +2 -2
- package/src/sap/m/UploadCollectionItem.js +1 -1
- package/src/sap/m/UploadCollectionParameter.js +1 -1
- package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
- package/src/sap/m/VBox.js +1 -1
- package/src/sap/m/ValueStateHeader.js +1 -1
- package/src/sap/m/VariantItem.js +160 -0
- package/src/sap/m/VariantManagement.js +717 -571
- package/src/sap/m/ViewSettingsCustomItem.js +1 -1
- package/src/sap/m/ViewSettingsCustomTab.js +1 -1
- package/src/sap/m/ViewSettingsDialog.js +1 -1
- package/src/sap/m/ViewSettingsFilterItem.js +1 -1
- package/src/sap/m/ViewSettingsItem.js +1 -1
- package/src/sap/m/VisibleItem.js +1 -1
- package/src/sap/m/WheelSlider.js +1 -1
- package/src/sap/m/WheelSliderContainer.js +1 -1
- package/src/sap/m/Wizard.js +10 -3
- package/src/sap/m/WizardProgressNavigator.js +1 -1
- package/src/sap/m/WizardStep.js +3 -1
- package/src/sap/m/_thirdparty/purify.js +1622 -0
- package/src/sap/m/changeHandler/AddTableColumn.js +12 -13
- package/src/sap/m/changeHandler/ChangeLinkTarget.js +2 -3
- package/src/sap/m/changeHandler/CombineButtons.js +19 -22
- package/src/sap/m/changeHandler/MoveTableColumns.js +6 -6
- package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +5 -5
- package/src/sap/m/changeHandler/SplitMenuButton.js +7 -6
- package/src/sap/m/delegate/DateNavigation.js +0 -4
- package/src/sap/m/designtime/Link.designtime.js +19 -11
- package/src/sap/m/designtime/VariantManagement.designtime.js +36 -26
- package/src/sap/m/flexibility/EngineFlex.js +48 -0
- package/src/sap/m/inputUtils/selectionRange.js +1 -2
- package/src/sap/m/library.js +60 -7
- package/src/sap/m/messagebundle.properties +57 -6
- package/src/sap/m/messagebundle_ar.properties +39 -9
- package/src/sap/m/messagebundle_bg.properties +33 -3
- package/src/sap/m/messagebundle_ca.properties +32 -2
- package/src/sap/m/messagebundle_cs.properties +32 -2
- package/src/sap/m/messagebundle_cy.properties +34 -4
- package/src/sap/m/messagebundle_da.properties +32 -2
- package/src/sap/m/messagebundle_de.properties +32 -2
- package/src/sap/m/messagebundle_el.properties +35 -5
- package/src/sap/m/messagebundle_en.properties +34 -4
- package/src/sap/m/messagebundle_en_GB.properties +34 -4
- package/src/sap/m/messagebundle_en_US_sappsd.properties +33 -3
- package/src/sap/m/messagebundle_en_US_saprigi.properties +31 -3
- package/src/sap/m/messagebundle_en_US_saptrc.properties +33 -3
- package/src/sap/m/messagebundle_es.properties +33 -3
- package/src/sap/m/messagebundle_es_MX.properties +32 -2
- package/src/sap/m/messagebundle_et.properties +32 -2
- package/src/sap/m/messagebundle_fi.properties +36 -6
- package/src/sap/m/messagebundle_fr.properties +33 -3
- package/src/sap/m/messagebundle_fr_CA.properties +34 -4
- package/src/sap/m/messagebundle_hi.properties +34 -4
- package/src/sap/m/messagebundle_hr.properties +36 -6
- package/src/sap/m/messagebundle_hu.properties +34 -4
- package/src/sap/m/messagebundle_id.properties +34 -4
- package/src/sap/m/messagebundle_it.properties +33 -3
- package/src/sap/m/messagebundle_iw.properties +34 -4
- package/src/sap/m/messagebundle_ja.properties +33 -3
- package/src/sap/m/messagebundle_kk.properties +32 -2
- package/src/sap/m/messagebundle_ko.properties +40 -10
- package/src/sap/m/messagebundle_lt.properties +32 -2
- package/src/sap/m/messagebundle_lv.properties +32 -2
- package/src/sap/m/messagebundle_ms.properties +33 -3
- package/src/sap/m/messagebundle_nl.properties +46 -16
- package/src/sap/m/messagebundle_no.properties +34 -4
- package/src/sap/m/messagebundle_pl.properties +33 -3
- package/src/sap/m/messagebundle_pt.properties +37 -7
- package/src/sap/m/messagebundle_pt_PT.properties +32 -2
- package/src/sap/m/messagebundle_ro.properties +33 -3
- package/src/sap/m/messagebundle_ru.properties +33 -3
- package/src/sap/m/messagebundle_sh.properties +33 -3
- package/src/sap/m/messagebundle_sk.properties +32 -2
- package/src/sap/m/messagebundle_sl.properties +33 -3
- package/src/sap/m/messagebundle_sv.properties +32 -2
- package/src/sap/m/messagebundle_th.properties +65 -35
- package/src/sap/m/messagebundle_tr.properties +36 -6
- package/src/sap/m/messagebundle_uk.properties +33 -3
- package/src/sap/m/messagebundle_vi.properties +33 -3
- package/src/sap/m/messagebundle_zh_CN.properties +33 -3
- package/src/sap/m/messagebundle_zh_TW.properties +32 -2
- package/src/sap/m/p13n/AbstractContainer.js +7 -7
- package/src/sap/m/p13n/AbstractContainerItem.js +4 -4
- package/src/sap/m/p13n/BasePanel.js +24 -13
- package/src/sap/m/p13n/Container.js +3 -3
- package/src/sap/m/p13n/Engine.js +1254 -0
- package/src/sap/m/p13n/FlexUtil.js +161 -0
- package/src/sap/m/p13n/GroupController.js +145 -0
- package/src/sap/m/p13n/GroupPanel.js +12 -5
- package/src/sap/m/p13n/MetadataHelper.js +35 -0
- package/src/sap/m/p13n/PersistenceProvider.js +160 -0
- package/src/sap/m/p13n/Popup.js +49 -12
- package/src/sap/m/p13n/QueryPanel.js +3 -3
- package/src/sap/m/p13n/SelectionController.js +548 -0
- package/src/sap/m/p13n/SelectionPanel.js +23 -5
- package/src/sap/m/p13n/SortController.js +153 -0
- package/src/sap/m/p13n/SortPanel.js +15 -5
- package/src/sap/m/p13n/enum/PersistenceMode.js +43 -0
- package/src/sap/m/p13n/handler/xConfigHandler.js +166 -0
- package/src/sap/m/p13n/modification/FlexModificationHandler.js +90 -0
- package/src/sap/m/p13n/modification/LocalStorageModificationHandler.js +75 -0
- package/src/sap/m/p13n/modification/ModificationHandler.js +143 -0
- package/src/sap/m/p13n/modules/AdaptationProvider.js +67 -0
- package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +147 -0
- package/src/sap/m/p13n/modules/StateHandlerRegistry.js +101 -0
- package/src/sap/m/p13n/modules/UIManager.js +230 -0
- package/src/sap/m/p13n/modules/xConfigAPI.js +288 -0
- package/src/sap/m/plugins/CellSelector.js +741 -0
- package/src/sap/m/plugins/ColumnResizer.js +15 -1
- package/src/sap/m/plugins/DataStateIndicator.js +2 -2
- package/src/sap/m/plugins/PasteProvider.js +1 -1
- package/src/sap/m/plugins/PluginBase.js +4 -3
- package/src/sap/m/rules/CheckBox.support.js +1 -1
- package/src/sap/m/rules/Image.support.js +1 -1
- package/src/sap/m/rules/Link.support.js +1 -1
- package/src/sap/m/rules/MessagePage.support.js +1 -1
- package/src/sap/m/rules/ObjectHeader.support.js +6 -6
- package/src/sap/m/rules/ObjectListItem.support.js +1 -1
- package/src/sap/m/rules/ObjectMarker.support.js +1 -1
- package/src/sap/m/rules/ObjectStatus.support.js +1 -1
- package/src/sap/m/rules/Panel.support.js +1 -1
- package/src/sap/m/rules/Select.support.js +1 -1
- package/src/sap/m/rules/Table.support.js +3 -3
- package/src/sap/m/semantic/AddAction.js +1 -1
- package/src/sap/m/semantic/CancelAction.js +1 -1
- package/src/sap/m/semantic/DeleteAction.js +1 -1
- package/src/sap/m/semantic/DetailPage.js +1 -1
- package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
- package/src/sap/m/semantic/EditAction.js +1 -1
- package/src/sap/m/semantic/FavoriteAction.js +1 -1
- package/src/sap/m/semantic/FilterAction.js +1 -1
- package/src/sap/m/semantic/FilterSelect.js +1 -1
- package/src/sap/m/semantic/FlagAction.js +1 -1
- package/src/sap/m/semantic/ForwardAction.js +1 -1
- package/src/sap/m/semantic/FullscreenPage.js +1 -1
- package/src/sap/m/semantic/GroupAction.js +1 -1
- package/src/sap/m/semantic/GroupSelect.js +1 -1
- package/src/sap/m/semantic/MainAction.js +1 -1
- package/src/sap/m/semantic/MasterPage.js +1 -1
- package/src/sap/m/semantic/MessagesIndicator.js +1 -1
- package/src/sap/m/semantic/MultiSelectAction.js +1 -1
- package/src/sap/m/semantic/NegativeAction.js +1 -1
- package/src/sap/m/semantic/OpenInAction.js +1 -1
- package/src/sap/m/semantic/PositiveAction.js +1 -1
- package/src/sap/m/semantic/PrintAction.js +1 -1
- package/src/sap/m/semantic/SaveAction.js +1 -1
- package/src/sap/m/semantic/Segment.js +1 -1
- package/src/sap/m/semantic/SegmentedContainer.js +1 -1
- package/src/sap/m/semantic/SemanticButton.js +1 -1
- package/src/sap/m/semantic/SemanticConfiguration.js +3 -4
- package/src/sap/m/semantic/SemanticControl.js +1 -1
- package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
- package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
- package/src/sap/m/semantic/SemanticPage.js +1 -1
- package/src/sap/m/semantic/SemanticSelect.js +1 -1
- package/src/sap/m/semantic/SemanticToggleButton.js +1 -3
- package/src/sap/m/semantic/SendEmailAction.js +1 -1
- package/src/sap/m/semantic/SendMessageAction.js +1 -1
- package/src/sap/m/semantic/ShareInJamAction.js +1 -1
- package/src/sap/m/semantic/ShareMenu.js +1 -1
- package/src/sap/m/semantic/ShareMenuPage.js +1 -1
- package/src/sap/m/semantic/SortAction.js +1 -1
- package/src/sap/m/semantic/SortSelect.js +1 -1
- package/src/sap/m/table/Util.js +30 -11
- package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
- package/src/sap/m/table/columnmenu/Entry.js +1 -1
- package/src/sap/m/table/columnmenu/Item.js +1 -1
- package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
- package/src/sap/m/table/columnmenu/Menu.js +50 -13
- package/src/sap/m/table/columnmenu/QuickAction.js +16 -8
- package/src/sap/m/table/columnmenu/QuickActionBase.js +18 -3
- package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -6
- package/src/sap/m/table/columnmenu/QuickGroup.js +29 -5
- package/src/sap/m/table/columnmenu/QuickGroupItem.js +13 -1
- package/src/sap/m/table/columnmenu/QuickSort.js +1 -3
- package/src/sap/m/table/columnmenu/QuickSortItem.js +8 -7
- package/src/sap/m/table/columnmenu/QuickTotal.js +29 -5
- package/src/sap/m/table/columnmenu/QuickTotalItem.js +13 -1
- package/src/sap/m/themes/base/Breadcrumbs.less +6 -0
- package/src/sap/m/themes/base/Button.less +0 -1
- package/src/sap/m/themes/base/Carousel.less +8 -8
- package/src/sap/m/themes/base/CellSelector.less +9 -0
- package/src/sap/m/themes/base/CheckBox.less +1 -0
- package/src/sap/m/themes/base/Dialog.less +1 -0
- package/src/sap/m/themes/base/DisplayListItem.less +3 -3
- package/src/sap/m/themes/base/DynamicDateRange.less +4 -0
- package/src/sap/m/themes/base/FeedContent.less +13 -5
- package/src/sap/m/themes/base/GenericTile.less +56 -9
- package/src/sap/m/themes/base/IllustratedMessage.less +7 -0
- package/src/sap/m/themes/base/NewsContent.less +6 -0
- package/src/sap/m/themes/base/NumericContent.less +1 -1
- package/src/sap/m/themes/base/ObjectStatus.less +2 -1
- package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +5 -1
- package/src/sap/m/themes/base/SelectList.less +0 -5
- package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +7 -0
- package/src/sap/m/themes/base/SlideTile.less +35 -4
- package/src/sap/m/themes/base/Table.less +11 -2
- package/src/sap/m/themes/base/TileContent.less +17 -0
- package/src/sap/m/themes/base/library.source.less +1 -0
- package/src/sap/m/upload/UploadSet.js +300 -23
- package/src/sap/m/upload/UploadSetItem.js +18 -7
- package/src/sap/m/upload/UploadSetRenderer.js +8 -16
- package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
- package/src/sap/m/upload/Uploader.js +1 -2
package/src/sap/m/ListBase.js
CHANGED
|
@@ -22,6 +22,7 @@ sap.ui.define([
|
|
|
22
22
|
"sap/base/strings/capitalize",
|
|
23
23
|
"sap/ui/thirdparty/jquery",
|
|
24
24
|
"sap/base/Log",
|
|
25
|
+
"sap/ui/core/InvisibleMessage",
|
|
25
26
|
"sap/ui/dom/jquery/control", // jQuery Plugin "control"
|
|
26
27
|
"sap/ui/dom/jquery/Selectors", // jQuery custom selectors ":sapTabbable"
|
|
27
28
|
"sap/ui/dom/jquery/Aria" // jQuery Plugin "addAriaLabelledBy", "removeAriaLabelledBy"
|
|
@@ -42,7 +43,8 @@ function(
|
|
|
42
43
|
ListBaseRenderer,
|
|
43
44
|
capitalize,
|
|
44
45
|
jQuery,
|
|
45
|
-
Log
|
|
46
|
+
Log,
|
|
47
|
+
InvisibleMessage
|
|
46
48
|
) {
|
|
47
49
|
"use strict";
|
|
48
50
|
|
|
@@ -90,7 +92,7 @@ function(
|
|
|
90
92
|
* @extends sap.ui.core.Control
|
|
91
93
|
*
|
|
92
94
|
* @author SAP SE
|
|
93
|
-
* @version 1.
|
|
95
|
+
* @version 1.106.0
|
|
94
96
|
*
|
|
95
97
|
* @constructor
|
|
96
98
|
* @public
|
|
@@ -590,7 +592,6 @@ function(
|
|
|
590
592
|
};
|
|
591
593
|
|
|
592
594
|
ListBase.prototype.exit = function () {
|
|
593
|
-
this._oSelectedItem = null;
|
|
594
595
|
this._aNavSections = [];
|
|
595
596
|
this._aSelectedPaths = [];
|
|
596
597
|
this._destroyGrowingDelegate();
|
|
@@ -624,6 +625,9 @@ function(
|
|
|
624
625
|
// Special handling for "AutoExpandSelect" of the V4 ODataModel.
|
|
625
626
|
if (oEventInfo && oEventInfo.detailedReason === "AddVirtualContext") {
|
|
626
627
|
createVirtualItem(this);
|
|
628
|
+
if (this._oGrowingDelegate) {
|
|
629
|
+
this._oGrowingDelegate.reset(true);
|
|
630
|
+
}
|
|
627
631
|
return;
|
|
628
632
|
} else if (oEventInfo && oEventInfo.detailedReason === "RemoveVirtualContext") {
|
|
629
633
|
destroyVirtualItem(this);
|
|
@@ -759,9 +763,6 @@ function(
|
|
|
759
763
|
return this;
|
|
760
764
|
}
|
|
761
765
|
|
|
762
|
-
// clean up the selection
|
|
763
|
-
this._oSelectedItem = null;
|
|
764
|
-
|
|
765
766
|
// suppress the synchronous DOM removal of the aggregation destroy
|
|
766
767
|
this.destroyAggregation("items", "KeepDom");
|
|
767
768
|
|
|
@@ -777,20 +778,6 @@ function(
|
|
|
777
778
|
return this;
|
|
778
779
|
};
|
|
779
780
|
|
|
780
|
-
|
|
781
|
-
ListBase.prototype.removeAllItems = function(sAggregationName) {
|
|
782
|
-
this._oSelectedItem = null;
|
|
783
|
-
return this.removeAllAggregation("items");
|
|
784
|
-
};
|
|
785
|
-
|
|
786
|
-
ListBase.prototype.removeItem = function(vItem) {
|
|
787
|
-
var oItem = this.removeAggregation("items", vItem);
|
|
788
|
-
if (oItem && oItem === this._oSelectedItem) {
|
|
789
|
-
this._oSelectedItem = null;
|
|
790
|
-
}
|
|
791
|
-
return oItem;
|
|
792
|
-
};
|
|
793
|
-
|
|
794
781
|
ListBase.prototype.getItems = function(bReadOnly) {
|
|
795
782
|
if (bReadOnly) {
|
|
796
783
|
return this.mAggregations["items"] || [];
|
|
@@ -824,9 +811,7 @@ function(
|
|
|
824
811
|
|
|
825
812
|
ListBase.prototype.setEnableBusyIndicator = function(bEnable) {
|
|
826
813
|
this.setProperty("enableBusyIndicator", bEnable, true);
|
|
827
|
-
|
|
828
|
-
this._hideBusyIndicator();
|
|
829
|
-
}
|
|
814
|
+
this._hideBusyIndicator();
|
|
830
815
|
return this;
|
|
831
816
|
};
|
|
832
817
|
|
|
@@ -1085,7 +1070,7 @@ function(
|
|
|
1085
1070
|
* Returns growing information as object with "actual" and "total" keys.
|
|
1086
1071
|
* Note: This function returns "null" if "growing" feature is disabled.
|
|
1087
1072
|
*
|
|
1088
|
-
* @
|
|
1073
|
+
* @returns {{actual: int, total: int} | null}
|
|
1089
1074
|
* @public
|
|
1090
1075
|
* @since 1.16
|
|
1091
1076
|
* @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
|
|
@@ -1383,7 +1368,10 @@ function(
|
|
|
1383
1368
|
if (this._bBusy) {
|
|
1384
1369
|
// revert busy state
|
|
1385
1370
|
this._bBusy = false;
|
|
1386
|
-
this.
|
|
1371
|
+
if (this.getEnableBusyIndicator()) {
|
|
1372
|
+
// only call the setBusy method if enableBusyIndicator=true
|
|
1373
|
+
this.setBusy(false, "listUl");
|
|
1374
|
+
}
|
|
1387
1375
|
}
|
|
1388
1376
|
};
|
|
1389
1377
|
|
|
@@ -1449,7 +1437,22 @@ function(
|
|
|
1449
1437
|
}
|
|
1450
1438
|
};
|
|
1451
1439
|
|
|
1440
|
+
ListBase.prototype.onItemRemoved = function(oItem) {
|
|
1441
|
+
oItem._bGroupHeader = false;
|
|
1442
|
+
if (this._oLastGroupHeader == oItem) {
|
|
1443
|
+
this._oLastGroupHeader = null;
|
|
1444
|
+
}
|
|
1445
|
+
if (this._oSelectedItem == oItem) {
|
|
1446
|
+
this._oSelectedItem = null;
|
|
1447
|
+
}
|
|
1448
|
+
};
|
|
1449
|
+
|
|
1452
1450
|
ListBase.prototype.onItemInserted = function(oItem, bSelectedDelayed) {
|
|
1451
|
+
// trigger is also an item of the ListBase which should not me mapped to the groupHeaders
|
|
1452
|
+
if (this._oLastGroupHeader && !oItem.isGroupHeader()) {
|
|
1453
|
+
this._oLastGroupHeader.setGroupedItem(oItem);
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1453
1456
|
if (bSelectedDelayed) {
|
|
1454
1457
|
// item was already selected before inserted to the list
|
|
1455
1458
|
this.onItemSelectedChange(oItem, true);
|
|
@@ -1523,10 +1526,15 @@ function(
|
|
|
1523
1526
|
return;
|
|
1524
1527
|
}
|
|
1525
1528
|
|
|
1526
|
-
if (sMode === ListMode.MultiSelect) {
|
|
1527
|
-
this._fireSelectionChangeEvent([oListItem]);
|
|
1528
|
-
} else if (this._bSelectionMode && bSelected) {
|
|
1529
|
+
if (sMode === ListMode.MultiSelect || (this._bSelectionMode && bSelected)) {
|
|
1529
1530
|
this._fireSelectionChangeEvent([oListItem]);
|
|
1531
|
+
|
|
1532
|
+
// announce the selection state changes
|
|
1533
|
+
// but only announce if the document.activeElement is the listItem control, else selection control should announce the selection change
|
|
1534
|
+
if (this.getAriaRole() === "list" && document.activeElement === oListItem.getDomRef()) {
|
|
1535
|
+
var oResourceBundle = Core.getLibraryResourceBundle("sap.m");
|
|
1536
|
+
InvisibleMessage.getInstance().announce(bSelected ? oResourceBundle.getText("LIST_ITEM_SELECTED") : oResourceBundle.getText("LIST_ITEM_NOT_SELECTED"), "Assertive");
|
|
1537
|
+
}
|
|
1530
1538
|
}
|
|
1531
1539
|
};
|
|
1532
1540
|
|
|
@@ -1928,17 +1936,31 @@ function(
|
|
|
1928
1936
|
|
|
1929
1937
|
ListBase.prototype.addItemGroup = function(oGroup, oHeader, bSuppressInvalidate) {
|
|
1930
1938
|
if (!oHeader) {
|
|
1931
|
-
oHeader =
|
|
1932
|
-
// setter is used to avoid complex binding parser checks which happens when setting values in constructor (ManagedObject)
|
|
1933
|
-
// i.e., to ignore binding strings "{" "[" from the value being set
|
|
1934
|
-
oHeader.setTitle(oGroup.text || oGroup.key);
|
|
1939
|
+
oHeader = this.getGroupHeaderTemplate(oGroup);
|
|
1935
1940
|
}
|
|
1936
1941
|
|
|
1937
1942
|
oHeader._bGroupHeader = true;
|
|
1938
1943
|
this.addAggregation("items", oHeader, bSuppressInvalidate);
|
|
1944
|
+
this.setLastGroupHeader(oHeader);
|
|
1945
|
+
return oHeader;
|
|
1946
|
+
};
|
|
1947
|
+
|
|
1948
|
+
ListBase.prototype.getGroupHeaderTemplate = function(oGroup) {
|
|
1949
|
+
var oHeader = new GroupHeaderListItem();
|
|
1950
|
+
// setter is used to avoid complex binding parser checks which happens when setting values in constructor (ManagedObject)
|
|
1951
|
+
// i.e., to ignore binding strings "{" "[" from the value being set
|
|
1952
|
+
oHeader.setTitle(oGroup.text || oGroup.key);
|
|
1939
1953
|
return oHeader;
|
|
1940
1954
|
};
|
|
1941
1955
|
|
|
1956
|
+
ListBase.prototype.setLastGroupHeader = function(oGroupHeader) {
|
|
1957
|
+
this._oLastGroupHeader = oGroupHeader;
|
|
1958
|
+
};
|
|
1959
|
+
|
|
1960
|
+
ListBase.prototype.getLastGroupHeader = function() {
|
|
1961
|
+
return this._oLastGroupHeader;
|
|
1962
|
+
};
|
|
1963
|
+
|
|
1942
1964
|
ListBase.prototype.removeGroupHeaders = function(bSuppressInvalidate) {
|
|
1943
1965
|
this.getItems(true).forEach(function(oItem) {
|
|
1944
1966
|
if (oItem.isGroupHeader()) {
|
|
@@ -1990,15 +2012,25 @@ function(
|
|
|
1990
2012
|
ListBase.prototype.getAccessbilityPosition = function(oItem) {
|
|
1991
2013
|
var iSetSize = 0,
|
|
1992
2014
|
aItems = this.getVisibleItems(),
|
|
1993
|
-
|
|
2015
|
+
sAriaRole = this.getAriaRole(),
|
|
2016
|
+
// exclude group headers from item count for role="list" || role="listbox" only
|
|
2017
|
+
bExcludeGroupHeaderFromCount = sAriaRole === "list" || sAriaRole === "listbox";
|
|
2018
|
+
|
|
2019
|
+
if (bExcludeGroupHeaderFromCount) {
|
|
2020
|
+
aItems = aItems.filter(function(oItem) {
|
|
2021
|
+
return !oItem.isGroupHeader();
|
|
2022
|
+
});
|
|
2023
|
+
}
|
|
2024
|
+
|
|
2025
|
+
var iPosInset = aItems.indexOf(oItem) + 1,
|
|
1994
2026
|
oBinding = this.getBinding("items");
|
|
1995
2027
|
|
|
1996
2028
|
// use binding length if list is in scroll to load growing mode
|
|
1997
2029
|
if (this.getGrowing() && this.getGrowingScrollToLoad() && oBinding && oBinding.isLengthFinal()) {
|
|
1998
2030
|
iSetSize = oBinding.getLength();
|
|
1999
|
-
if (oBinding.isGrouped()) {
|
|
2031
|
+
if (oBinding.isGrouped() && !bExcludeGroupHeaderFromCount) {
|
|
2000
2032
|
iSetSize += aItems.filter(function(oItem) {
|
|
2001
|
-
return oItem.isGroupHeader()
|
|
2033
|
+
return oItem.isGroupHeader();
|
|
2002
2034
|
}).length;
|
|
2003
2035
|
}
|
|
2004
2036
|
} else {
|
|
@@ -2021,25 +2053,26 @@ function(
|
|
|
2021
2053
|
return;
|
|
2022
2054
|
}
|
|
2023
2055
|
|
|
2024
|
-
var oItemDomRef = oItem.getDomRef()
|
|
2025
|
-
mPosition = this.getAccessbilityPosition(oItem);
|
|
2056
|
+
var oItemDomRef = oItem.getDomRef();
|
|
2026
2057
|
|
|
2027
2058
|
if (!oItem.getContentAnnouncement) {
|
|
2028
2059
|
// let the screen reader announce the whole content
|
|
2029
2060
|
this.getNavigationRoot().setAttribute("aria-activedescendant", oItemDomRef.id);
|
|
2030
|
-
oItemDomRef.setAttribute("aria-posinset", mPosition.posInset);
|
|
2031
|
-
oItemDomRef.setAttribute("aria-setsize", mPosition.setSize);
|
|
2032
2061
|
} else {
|
|
2033
2062
|
// prepare the announcement for the screen reader
|
|
2034
2063
|
var oAccInfo = oItem.getAccessibilityInfo(),
|
|
2035
2064
|
oBundle = Core.getLibraryResourceBundle("sap.m"),
|
|
2036
|
-
sDescription =
|
|
2065
|
+
sDescription = "";
|
|
2037
2066
|
|
|
2038
|
-
|
|
2067
|
+
// when items have the role="listitem", aria-roledescription attribute containing the "type" info is already added to DOM,
|
|
2068
|
+
// hence there is no need to add this information again to the custom announcement
|
|
2069
|
+
if (this.getAriaRole() !== "list") {
|
|
2070
|
+
sDescription += oAccInfo.type + " . ";
|
|
2071
|
+
}
|
|
2072
|
+
|
|
2073
|
+
if (this.isA("sap.m.Table")) {
|
|
2074
|
+
var mPosition = this.getAccessbilityPosition(oItem);
|
|
2039
2075
|
sDescription += oBundle.getText("LIST_ITEM_POSITION", [mPosition.posInset, mPosition.setSize]) + " . ";
|
|
2040
|
-
} else {
|
|
2041
|
-
oItemDomRef.setAttribute("aria-posinset", mPosition.posInset);
|
|
2042
|
-
oItemDomRef.setAttribute("aria-setsize", mPosition.setSize);
|
|
2043
2076
|
}
|
|
2044
2077
|
|
|
2045
2078
|
sDescription += oAccInfo.description;
|
|
@@ -2860,6 +2893,38 @@ function(
|
|
|
2860
2893
|
}
|
|
2861
2894
|
};
|
|
2862
2895
|
|
|
2896
|
+
/**
|
|
2897
|
+
* Return the <code>role</code> attribute of the control.
|
|
2898
|
+
* @returns {string} the <code>role</code> attribute of the control
|
|
2899
|
+
* @protected
|
|
2900
|
+
* @ui5-restricted
|
|
2901
|
+
* @since 1.105
|
|
2902
|
+
*/
|
|
2903
|
+
ListBase.prototype.getAriaRole = function() {
|
|
2904
|
+
return "list";
|
|
2905
|
+
};
|
|
2906
|
+
|
|
2907
|
+
/**
|
|
2908
|
+
* This method is a hook for the RenderManager that gets called
|
|
2909
|
+
* during the rendering of child Controls. It allows to add,
|
|
2910
|
+
* remove and update existing accessibility attributes (ARIA) of
|
|
2911
|
+
* those controls.
|
|
2912
|
+
*
|
|
2913
|
+
* @param {sap.ui.core.Control} oElement - The Control that gets rendered by the RenderManager
|
|
2914
|
+
* @param {object} mAriaProps - The mapping of "aria-" prefixed attributes
|
|
2915
|
+
* @protected
|
|
2916
|
+
*/
|
|
2917
|
+
ListBase.prototype.enhanceAccessibilityState = function(oElement, mAriaProps) {
|
|
2918
|
+
if (!oElement.isA("sap.m.ListItemBase") || oElement.isGroupHeader()) {
|
|
2919
|
+
return;
|
|
2920
|
+
}
|
|
2921
|
+
|
|
2922
|
+
// add aria-posinset & aria-setsize attributes to listitem DOM (not for group headers)
|
|
2923
|
+
var mPosition = this.getAccessbilityPosition(oElement);
|
|
2924
|
+
mAriaProps.posinset = mPosition.posInset;
|
|
2925
|
+
mAriaProps.setsize = mPosition.setSize;
|
|
2926
|
+
};
|
|
2927
|
+
|
|
2863
2928
|
return ListBase;
|
|
2864
2929
|
|
|
2865
2930
|
});
|
|
@@ -236,22 +236,13 @@ sap.ui.define(["sap/m/library", "sap/ui/Device", "sap/ui/core/InvisibleText", ".
|
|
|
236
236
|
rm.accessibilityState(oControl, this.getAccessibilityState(oControl));
|
|
237
237
|
};
|
|
238
238
|
|
|
239
|
-
/**
|
|
240
|
-
* Returns aria accessibility role
|
|
241
|
-
*
|
|
242
|
-
* @param {sap.m.ListBase} oControl an object representation of the control
|
|
243
|
-
* @returns {string}
|
|
244
|
-
*/
|
|
245
|
-
ListBaseRenderer.getAriaRole = function(oControl) {
|
|
246
|
-
return "listbox";
|
|
247
|
-
};
|
|
248
|
-
|
|
249
239
|
/**
|
|
250
240
|
* Returns aria accessibility role for the no data entry.
|
|
241
|
+
* @param {sap.m.ListBase} oControl the control instance
|
|
251
242
|
*
|
|
252
|
-
* @returns {string}
|
|
243
|
+
* @returns {string|null} the no data role attribute
|
|
253
244
|
*/
|
|
254
|
-
ListBaseRenderer.getNoDataAriaRole = function() {
|
|
245
|
+
ListBaseRenderer.getNoDataAriaRole = function(oControl) {
|
|
255
246
|
return null;
|
|
256
247
|
};
|
|
257
248
|
|
|
@@ -292,12 +283,13 @@ sap.ui.define(["sap/m/library", "sap/ui/Device", "sap/ui/core/InvisibleText", ".
|
|
|
292
283
|
* Returns the accessibility state of the control
|
|
293
284
|
*
|
|
294
285
|
* @param {sap.m.ListBase} oControl an object representation of the control
|
|
286
|
+
* @returns {object} the accessibility state object
|
|
295
287
|
*/
|
|
296
288
|
ListBaseRenderer.getAccessibilityState = function(oControl) {
|
|
297
|
-
var sRole =
|
|
289
|
+
var sRole = oControl.getAriaRole();
|
|
298
290
|
return {
|
|
299
291
|
role : sRole,
|
|
300
|
-
multiselectable : (sRole && oControl._bSelectionMode) ? oControl.getMode() == "MultiSelect" : undefined,
|
|
292
|
+
multiselectable : (sRole === "listbox" && oControl._bSelectionMode) ? oControl.getMode() == "MultiSelect" : undefined,
|
|
301
293
|
labelledby : {
|
|
302
294
|
value : this.getAriaLabelledBy(oControl),
|
|
303
295
|
append : true
|
|
@@ -328,7 +320,7 @@ sap.ui.define(["sap/m/library", "sap/ui/Device", "sap/ui/core/InvisibleText", ".
|
|
|
328
320
|
ListBaseRenderer.renderNoData = function(rm, oControl) {
|
|
329
321
|
rm.openStart("li", oControl.getId("nodata"));
|
|
330
322
|
rm.attr("tabindex", oControl.getKeyboardMode() == ListKeyboardMode.Navigation ? -1 : 0);
|
|
331
|
-
var sAriaRole = this.getNoDataAriaRole();
|
|
323
|
+
var sAriaRole = this.getNoDataAriaRole(oControl);
|
|
332
324
|
if (sAriaRole) {
|
|
333
325
|
rm.attr("role", sAriaRole);
|
|
334
326
|
}
|
|
@@ -10,6 +10,7 @@ sap.ui.define([
|
|
|
10
10
|
"sap/ui/events/KeyCodes",
|
|
11
11
|
"sap/ui/model/BindingMode",
|
|
12
12
|
"sap/ui/Device",
|
|
13
|
+
"sap/ui/core/Core",
|
|
13
14
|
"sap/ui/core/library",
|
|
14
15
|
"sap/ui/core/Control",
|
|
15
16
|
"sap/ui/core/IconPool",
|
|
@@ -31,6 +32,7 @@ function(
|
|
|
31
32
|
KeyCodes,
|
|
32
33
|
BindingMode,
|
|
33
34
|
Device,
|
|
35
|
+
Core,
|
|
34
36
|
coreLibrary,
|
|
35
37
|
Control,
|
|
36
38
|
IconPool,
|
|
@@ -76,7 +78,7 @@ function(
|
|
|
76
78
|
* @extends sap.ui.core.Control
|
|
77
79
|
*
|
|
78
80
|
* @author SAP SE
|
|
79
|
-
* @version 1.
|
|
81
|
+
* @version 1.106.0
|
|
80
82
|
*
|
|
81
83
|
* @constructor
|
|
82
84
|
* @public
|
|
@@ -188,7 +190,7 @@ function(
|
|
|
188
190
|
}});
|
|
189
191
|
|
|
190
192
|
ListItemBase.getAccessibilityText = function(oControl, bDetectEmpty) {
|
|
191
|
-
var oBundle =
|
|
193
|
+
var oBundle = Core.getLibraryResourceBundle("sap.m");
|
|
192
194
|
|
|
193
195
|
if (!oControl || !oControl.getVisible || !oControl.getVisible()) {
|
|
194
196
|
return bDetectEmpty ? oBundle.getText("CONTROL_EMPTY") : "";
|
|
@@ -265,6 +267,9 @@ function(
|
|
|
265
267
|
// defines the root tag name for rendering purposes
|
|
266
268
|
ListItemBase.prototype.TagName = "li";
|
|
267
269
|
|
|
270
|
+
// enable the ACC announcement for "not selected"
|
|
271
|
+
ListItemBase.prototype._bAnnounceNotSelected = true;
|
|
272
|
+
|
|
268
273
|
// internal active state of the listitem
|
|
269
274
|
ListItemBase.prototype.init = function() {
|
|
270
275
|
this._active = false;
|
|
@@ -273,8 +278,15 @@ function(
|
|
|
273
278
|
this._bNeedsNavigated = false;
|
|
274
279
|
};
|
|
275
280
|
|
|
281
|
+
ListItemBase.prototype.onBeforeRendering = function() {
|
|
282
|
+
this._oDomRef = this.getDomRef();
|
|
283
|
+
};
|
|
284
|
+
|
|
276
285
|
ListItemBase.prototype.onAfterRendering = function() {
|
|
277
|
-
this.
|
|
286
|
+
if (!this._oDomRef || this._oDomRef !== this.getDomRef()) {
|
|
287
|
+
this.informList("DOMUpdate", true);
|
|
288
|
+
}
|
|
289
|
+
this._oDomRef = undefined;
|
|
278
290
|
this._checkHighlight();
|
|
279
291
|
this._checkNavigated();
|
|
280
292
|
};
|
|
@@ -444,7 +456,7 @@ function(
|
|
|
444
456
|
};
|
|
445
457
|
|
|
446
458
|
ListItemBase.prototype.getAccessibilityInfo = function() {
|
|
447
|
-
var oBundle =
|
|
459
|
+
var oBundle = Core.getLibraryResourceBundle("sap.m");
|
|
448
460
|
return {
|
|
449
461
|
type: this.getAccessibilityType(oBundle),
|
|
450
462
|
description: this.getAccessibilityDescription(oBundle),
|
|
@@ -515,7 +527,7 @@ function(
|
|
|
515
527
|
id: this.getId() + "-imgDel",
|
|
516
528
|
icon: this.DeleteIconURI,
|
|
517
529
|
type: ButtonType.Transparent,
|
|
518
|
-
tooltip:
|
|
530
|
+
tooltip: Core.getLibraryResourceBundle("sap.m").getText("LIST_ITEM_DELETE")
|
|
519
531
|
}).addStyleClass("sapMLIBIconDel sapMLIBSelectD").setParent(this, null, true).attachPress(function(oEvent) {
|
|
520
532
|
this.informList("Delete");
|
|
521
533
|
}, this);
|
|
@@ -552,7 +564,7 @@ function(
|
|
|
552
564
|
id: this.getId() + "-imgDet",
|
|
553
565
|
icon: this.DetailIconURI,
|
|
554
566
|
type: ButtonType.Transparent,
|
|
555
|
-
tooltip:
|
|
567
|
+
tooltip: Core.getLibraryResourceBundle("sap.m").getText("LIST_ITEM_EDIT")
|
|
556
568
|
}).addStyleClass("sapMLIBType sapMLIBIconDet").setParent(this, null, true).attachPress(function() {
|
|
557
569
|
this.fireDetailTap();
|
|
558
570
|
this.fireDetailPress();
|
|
@@ -723,6 +735,7 @@ function(
|
|
|
723
735
|
};
|
|
724
736
|
|
|
725
737
|
ListItemBase.prototype.exit = function() {
|
|
738
|
+
this._oDomRef = null;
|
|
726
739
|
this._oLastFocused = null;
|
|
727
740
|
this._checkHighlight(false);
|
|
728
741
|
this._checkNavigated(false);
|
|
@@ -808,16 +821,18 @@ function(
|
|
|
808
821
|
// Updates the selected state of the DOM
|
|
809
822
|
ListItemBase.prototype.updateSelectedDOM = function(bSelected, $This) {
|
|
810
823
|
$This.toggleClass("sapMLIBSelected", bSelected);
|
|
811
|
-
|
|
824
|
+
|
|
825
|
+
if ($This.attr("role") !== "listitem") {
|
|
826
|
+
$This.attr("aria-selected", bSelected);
|
|
827
|
+
}
|
|
812
828
|
};
|
|
813
829
|
|
|
814
830
|
ListItemBase.prototype.setParent = function(oParent) {
|
|
815
|
-
Control.prototype.setParent.apply(this, arguments);
|
|
816
831
|
if (!oParent) {
|
|
817
|
-
this.
|
|
818
|
-
return;
|
|
832
|
+
this.informList("Removed");
|
|
819
833
|
}
|
|
820
834
|
|
|
835
|
+
Control.prototype.setParent.apply(this, arguments);
|
|
821
836
|
this.informList("Inserted", this.bSelectedDelayed);
|
|
822
837
|
return this;
|
|
823
838
|
};
|
|
@@ -837,6 +852,20 @@ function(
|
|
|
837
852
|
return this._bGroupHeader;
|
|
838
853
|
};
|
|
839
854
|
|
|
855
|
+
/**
|
|
856
|
+
* This gets called from the ListBase for the GroupHeader items to inform the connected sub items
|
|
857
|
+
*
|
|
858
|
+
* @param {sap.m.ListItemBase} oLI The list item
|
|
859
|
+
*/
|
|
860
|
+
ListItemBase.prototype.setGroupedItem = function(oLI) {
|
|
861
|
+
this._aGroupedItems = this._aGroupedItems || [];
|
|
862
|
+
this._aGroupedItems.push(oLI.getId());
|
|
863
|
+
};
|
|
864
|
+
|
|
865
|
+
ListItemBase.prototype.getGroupedItems = function() {
|
|
866
|
+
return this._aGroupedItems;
|
|
867
|
+
};
|
|
868
|
+
|
|
840
869
|
/**
|
|
841
870
|
* Determines whether item is in SingleSelectMaster mode or
|
|
842
871
|
* other selection modes when includeItemInSelection is true
|
|
@@ -922,7 +951,7 @@ function(
|
|
|
922
951
|
/**
|
|
923
952
|
* Detect text selection.
|
|
924
953
|
*
|
|
925
|
-
* @param {
|
|
954
|
+
* @param {HTMLElement} oDomRef DOM element of the control
|
|
926
955
|
* @returns {boolean} true if text selection is done within the control else false
|
|
927
956
|
* @private
|
|
928
957
|
*/
|
|
@@ -221,7 +221,7 @@ sap.ui.define(["./library", "sap/ui/core/Core", "sap/ui/Device", "sap/ui/core/In
|
|
|
221
221
|
* @protected
|
|
222
222
|
*/
|
|
223
223
|
ListItemBaseRenderer.getAriaRole = function(oLI) {
|
|
224
|
-
return "
|
|
224
|
+
return "listitem";
|
|
225
225
|
};
|
|
226
226
|
|
|
227
227
|
/**
|
|
@@ -283,14 +283,12 @@ sap.ui.define(["./library", "sap/ui/core/Core", "sap/ui/Device", "sap/ui/core/In
|
|
|
283
283
|
ListItemBaseRenderer.getAccessibilityState = function(oLI) {
|
|
284
284
|
var sAriaLabelledBy = this.getAriaLabelledBy(oLI),
|
|
285
285
|
sAriaDescribedBy = this.getAriaDescribedBy(oLI),
|
|
286
|
+
sRole = this.getAriaRole(oLI),
|
|
286
287
|
mAccessibilityState = {
|
|
287
|
-
role:
|
|
288
|
+
role: sRole,
|
|
289
|
+
roledescription: sRole === "listitem" ? oLI.getAccessibilityType(Core.getLibraryResourceBundle("sap.m")) : null
|
|
288
290
|
};
|
|
289
291
|
|
|
290
|
-
if (oLI.isSelectable()) {
|
|
291
|
-
mAccessibilityState.selected = oLI.getProperty("selected");
|
|
292
|
-
}
|
|
293
|
-
|
|
294
292
|
if (sAriaLabelledBy) {
|
|
295
293
|
mAccessibilityState.labelledby = {
|
|
296
294
|
value: sAriaLabelledBy.trim(),
|
|
@@ -309,6 +307,19 @@ sap.ui.define(["./library", "sap/ui/core/Core", "sap/ui/Device", "sap/ui/core/In
|
|
|
309
307
|
mAccessibilityState.current = true;
|
|
310
308
|
}
|
|
311
309
|
|
|
310
|
+
if (sRole === "listitem") {
|
|
311
|
+
mAccessibilityState.selected = null;
|
|
312
|
+
if (oLI.isGroupHeader()) {
|
|
313
|
+
mAccessibilityState.role = "group";
|
|
314
|
+
var aGroupedItems = oLI.getGroupedItems();
|
|
315
|
+
if (aGroupedItems && aGroupedItems.length) {
|
|
316
|
+
mAccessibilityState.owns = aGroupedItems.join(" ");
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
} else if (oLI.isSelectable()) {
|
|
320
|
+
mAccessibilityState.selected = oLI.getSelected();
|
|
321
|
+
}
|
|
322
|
+
|
|
312
323
|
return mAccessibilityState;
|
|
313
324
|
};
|
|
314
325
|
|
|
@@ -19,8 +19,8 @@ sap.ui.define(["sap/ui/core/Renderer", "./ListBaseRenderer"],
|
|
|
19
19
|
var ListRenderer = Renderer.extend(ListBaseRenderer);
|
|
20
20
|
ListRenderer.apiVersion = 2;
|
|
21
21
|
|
|
22
|
-
ListRenderer.getNoDataAriaRole = function() {
|
|
23
|
-
return "option";
|
|
22
|
+
ListRenderer.getNoDataAriaRole = function(oControl) {
|
|
23
|
+
return oControl.getAriaRole() === "listbox" ? "option" : "listitem";
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
return ListRenderer;
|
package/src/sap/m/MaskEnabler.js
CHANGED
|
@@ -26,7 +26,7 @@ sap.ui.define([
|
|
|
26
26
|
* Applies mask support for input controls.
|
|
27
27
|
* It should should be applied to the prototype of a <code>sap.m.InputBase</code>.
|
|
28
28
|
*
|
|
29
|
-
* @version 1.
|
|
29
|
+
* @version 1.106.0
|
|
30
30
|
* @private
|
|
31
31
|
* @mixin
|
|
32
32
|
* @alias sap.m.MaskEnabler
|
|
@@ -164,6 +164,12 @@ sap.ui.define([
|
|
|
164
164
|
this._applyMask();
|
|
165
165
|
this._positionCaret(false);
|
|
166
166
|
}
|
|
167
|
+
|
|
168
|
+
var sValue = this.getDOMValue();
|
|
169
|
+
if (!this._isMaskEnabled() && sValue !== this._sPreviousValue) {
|
|
170
|
+
this._fireLiveChange(sValue, this._sPreviousValue);
|
|
171
|
+
this._sPreviousValue = sValue;
|
|
172
|
+
}
|
|
167
173
|
};
|
|
168
174
|
|
|
169
175
|
/**
|
|
@@ -231,6 +237,7 @@ sap.ui.define([
|
|
|
231
237
|
if (this._oTempValue._aContent.join("") !== this._oTempValue._aInitial.join("")) {
|
|
232
238
|
InputBase.prototype.onsapescape.call(this, oEvent);
|
|
233
239
|
}
|
|
240
|
+
this._bCheckForLiveChange = true;
|
|
234
241
|
};
|
|
235
242
|
|
|
236
243
|
/**
|
|
@@ -611,6 +618,28 @@ sap.ui.define([
|
|
|
611
618
|
return this._aRules[iIndex].test(sChar);
|
|
612
619
|
};
|
|
613
620
|
|
|
621
|
+
this.updateDomValue = function(sValue) {
|
|
622
|
+
InputBase.prototype.updateDomValue.call(this, sValue);
|
|
623
|
+
|
|
624
|
+
if (this._bCheckForLiveChange && sValue !== this._sPreviousValue) {
|
|
625
|
+
this._fireLiveChange(sValue, this._sPreviousValue);
|
|
626
|
+
this._sPreviousValue = sValue;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
this._bCheckForLiveChange = false;
|
|
630
|
+
};
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* Fires liveChange event.
|
|
634
|
+
* @private
|
|
635
|
+
*/
|
|
636
|
+
this._fireLiveChange = function(sNewValue, sPreviousValue) {
|
|
637
|
+
this.fireLiveChange && this.fireLiveChange({
|
|
638
|
+
value: sNewValue,
|
|
639
|
+
previousValue: sPreviousValue
|
|
640
|
+
});
|
|
641
|
+
};
|
|
642
|
+
|
|
614
643
|
/**
|
|
615
644
|
* Sets up default mask rules.
|
|
616
645
|
* @private
|
|
@@ -859,6 +888,13 @@ sap.ui.define([
|
|
|
859
888
|
* @private
|
|
860
889
|
*/
|
|
861
890
|
this._applyAndUpdate = function (sMaskInputValue) {
|
|
891
|
+
if (this._oTempValue && (this._sPreviousValue === undefined || this._sPreviousValue === "")) {
|
|
892
|
+
this._sPreviousValue = this._oTempValue.toString();
|
|
893
|
+
this._bCheckForLiveChange = false;
|
|
894
|
+
} else if (!this._bCutInProgress) {
|
|
895
|
+
this._bCheckForLiveChange = true;
|
|
896
|
+
}
|
|
897
|
+
|
|
862
898
|
this._applyRules(sMaskInputValue);
|
|
863
899
|
this.updateDomValue(this._oTempValue.toString());
|
|
864
900
|
};
|
|
@@ -984,6 +1020,8 @@ sap.ui.define([
|
|
|
984
1020
|
iEnd = iEnd - 1;
|
|
985
1021
|
this._resetTempValue(iBegin, iEnd);
|
|
986
1022
|
|
|
1023
|
+
this._bCutInProgress = true;
|
|
1024
|
+
|
|
987
1025
|
//oncut happens before the input event fires (before oninput)
|
|
988
1026
|
//we want to use the values from this point of time
|
|
989
1027
|
//but set them after the input event is handled (after oninput)
|
|
@@ -994,6 +1032,8 @@ sap.ui.define([
|
|
|
994
1032
|
//update the temp value back
|
|
995
1033
|
//because oninput breaks it
|
|
996
1034
|
this._oTempValue._aContent = aOldTempValueContent;
|
|
1035
|
+
this._bCheckForLiveChange = true;
|
|
1036
|
+
this._bCutInProgress = false;
|
|
997
1037
|
this.updateDomValue(sValue);
|
|
998
1038
|
|
|
999
1039
|
//we want that shortly after updateDomValue
|
|
@@ -1008,6 +1048,14 @@ sap.ui.define([
|
|
|
1008
1048
|
), iMinBrowserDelay);
|
|
1009
1049
|
};
|
|
1010
1050
|
|
|
1051
|
+
/**
|
|
1052
|
+
* Handle paste event.
|
|
1053
|
+
* @private
|
|
1054
|
+
*/
|
|
1055
|
+
this.onpaste = function() {
|
|
1056
|
+
this._bCheckForLiveChange = true;
|
|
1057
|
+
};
|
|
1058
|
+
|
|
1011
1059
|
/**
|
|
1012
1060
|
* Handles <code>onKeyDown</code> event.
|
|
1013
1061
|
* @param {jQuery.Event} oEvent The jQuery event object
|
|
@@ -1029,7 +1077,6 @@ sap.ui.define([
|
|
|
1029
1077
|
iCursorPos = this._getCursorPosition();
|
|
1030
1078
|
oSelection = this._getTextSelection();
|
|
1031
1079
|
|
|
1032
|
-
|
|
1033
1080
|
// Determine the correct direction based on RTL mode, input characters and selection state
|
|
1034
1081
|
sDirection = this._determineArrowKeyDirection(oKey, oSelection);
|
|
1035
1082
|
|
|
@@ -1095,6 +1142,7 @@ sap.ui.define([
|
|
|
1095
1142
|
}
|
|
1096
1143
|
|
|
1097
1144
|
this._resetTempValue(iBegin, iEnd);
|
|
1145
|
+
this._bCheckForLiveChange = true;
|
|
1098
1146
|
this.updateDomValue(this._oTempValue.toString());
|
|
1099
1147
|
this._setCursorPosition(Math.max(this._iUserInputStartPosition, iBegin));
|
|
1100
1148
|
};
|
|
@@ -1120,6 +1168,7 @@ sap.ui.define([
|
|
|
1120
1168
|
|
|
1121
1169
|
if (bAtLeastOneSuccessfulCharPlacement) {
|
|
1122
1170
|
iNextPos = iPos; //because the cycle above already found the next pos
|
|
1171
|
+
this._bCheckForLiveChange = true;
|
|
1123
1172
|
this.updateDomValue(this._oTempValue.toString());
|
|
1124
1173
|
this._setCursorPosition(iNextPos);
|
|
1125
1174
|
}
|
|
@@ -1514,6 +1563,7 @@ sap.ui.define([
|
|
|
1514
1563
|
*/
|
|
1515
1564
|
// Should be called from within the input handler(not in a delayed call), otherwise a flickering between
|
|
1516
1565
|
// the old and new value will be observed
|
|
1566
|
+
|
|
1517
1567
|
this.updateDomValue(this._oKeyDownStateAndroid.sValue);
|
|
1518
1568
|
|
|
1519
1569
|
setTimeout(function(oInputEvent, oKeyDownState, oKey) {
|