[UI5 Web Components 2.0] Changes suggestion list [Topic P]
Issue Description
The goal is to gather a list with breaking changes that you are willing to do to improve/simplify the components API.
- list deprecated APIs within your components that should be removed with 2.0
- list APIs that we would like to improve and change before releasing 2.0
There is already this issue https://github.com/SAP/ui5-webcomponents/issues/4460 with changes we already identified, so first take a look of it - it could be that some of your suggestions are already proposed.
Internal Reference: BGSOFUIPIRIN-6407
IllustratedMessage
- title property deprecate prior 2.0 and remove after 2.0 (slot is available)
- subtitle property deprecate prior 2.0 and remove after 2.0 (slot is available)
Decision
- slots
title,subtitleremain
Changes suggested
- remove
titleLevel(as long we refactor the template and styles, so thetitleslot receives the responsive styling, because then users can use the ui5-title with level from outside) - add part="title" on the wrapper element (similar to subtitle) to allow complete customisation. (this is not a breaking change, but enhancement)
Progress Indicator
disabledproperty removal
Changes => remove disabled property
Select Option
disabledproperty removal
Changes => remove disabled property
SelectMenu
- the component has been developed to allow adding custom options, but with the popover API, the standard options will allow custom content and the component becomes obsolete
Changes => remove the component and its associated compoennts.
Toolbar
-
Toolbar Popover API Redesign: (not sure here because items need to be displayed differently in both places, maybe a hybrid solution) The introduction of the popover API can replace abstract items concept for the Toolbar popover. This will enable a more flexible and dynamic approach to managing toolbar items.
-
ToolbarItem Class Structure: We are considering the replacement of the base class for ToolbarItem with an interface. This should be done if the popover API is implemented. Physical items can implement the new interface and fit toolbar API as supported components.
TODO [Team Pirin] => New design is evaluated that can affect the API decision, so deeper research needed - explore the design, follow up with SAP Design if needed to learn more.
TreeItem
- A custom TreeItem component was developed that allows for custom content. The existing TreeItem capabilities can also be covered by it. (perhaps the content slot should be made default and sub nodes slot may need to be introduced)
Decision => remains as it is to avoid fighting properties - the slot vs the props
Flexible Column Layout
- The
hideArrowsfeature will become redundant and therefore removed following the introduction of drag-and-resize functionality.
Decision => remains as it is, as the drag and drop feature is unlikely to become available for 2.0. Remains candidate for later major version.
ShellBar
- deprecation or rename of
copilot,copilotDomRef, andshowCoPilotproperties. Also refactoring can increase customisability through slots. (Not sure about the customisation impacts and risks)
TODO [Team Pirin]
=> property to show/hide (as showCoPilot) or to get Joule's Dom ref (as copilotDomRef) may remain, but we need to check how to name it properly avoiding using "Joule" as concepts often changes. Explore the options to keep using co-pilot, if this will cause confusion or digital assistant. => the option to provide slot is the most flexible, the users should then provide toggle-button with "da" icon, which is not bad, but you have to maintain certain position and make sure it never overflow and again give the slot name, which we could not find a generic name for. Feel free to suggest solution in this direction as well.
- CoPilot Animation removal - coPilot animation is no longer used and needed
Changes => remove CoPilot Animation feature
Investigate how we can simplify ListItems' hierarchy
With the modern themes, the List modes values seems to be just 3 now. Deprecate the redundant ones:
Decision: => options remain as it turns out SingleSelect and SingleSelectAuto have different behaviour.
Changes:
=> rename
SingleSelectBegin to SingleStart
SingleSelect to Single
MultiSelect to Multiple
SingleSelectEnd to SingleEnd
Transferring from the central item
"Deprecate and remove the image property of the standard list item, since new slot avatar will be introduced.
https://github.com/SAP/ui5-webcomponents/issues/5594"
Changes:
=> remove property image
=> rename slot imageContent to image
Extarnal feedback
ui5-breadcrumbs:
-
design: is used to differentiate between showing or hiding the current page. It would be safer to use a boolean attribute here that could be called hide-current-page. This would from my perspective be more consistent with other attributes. => remain as it is
-
separator-style: there is another attribute for the ui5-list called separator that accepts setting the separator style, maybe this could also be used here instead of having a similar attribute.
Changes:
=> rename separator-style to separators.
ui5-illustrated-message:
- size: the ui5-illustrated-message component also offers a size attribute which is set with semantic values “Auto”, “Base”, “Spot”, “Dialog”, “Scene”, which for me could also be values for a mode or design attribute instead as the size aspect of this property is not directly clear.
Changes:
=> change size to design.
ui5-list
- busy: how to handle the busy state with the components is very different. Only 3 components have a busy state, all others require the combination with the busy-indicator component. It would be good to have more consistency here.
Changes: => rename busy to loading => rename mode to selectionMode => ListMode : SingleSelect -> Single, MultiSelect -> Multiple => rename ListMode to ListSelectionMode