import type { JsxTemplate } from "@ui5/webcomponents-base/dist/index.js"; import type ListItem from "./ListItem.js"; import Button from "./Button.js"; import Icon from "./Icon.js"; import editIcon from "@ui5/webcomponents-icons/dist/edit.js"; import slimArrowRightIcon from "@ui5/webcomponents-icons/dist/slim-arrow-right.js"; import declineIcon from "@ui5/webcomponents-icons/dist/decline.js"; import RadioButton from "./RadioButton.js"; import CheckBox from "./CheckBox.js"; export type ListItemHooks = { listItemPreContent: JsxTemplate listItemContent: JsxTemplate imageBegin: JsxTemplate iconBegin: JsxTemplate iconEnd: JsxTemplate selectionElement: JsxTemplate } const predefinedHooks: ListItemHooks = { listItemPreContent, listItemContent, imageBegin, iconBegin, iconEnd, selectionElement, }; export default function ListItemTemplate(this: ListItem, hooks?: Partial) { const currentHooks = { ...predefinedHooks, ...hooks }; return
  • {currentHooks.listItemPreContent.call(this)} {this.placeSelectionElementBefore && selectionElement.call(this)} {this._hasHighlightColor &&
    }
    {currentHooks.imageBegin.call(this)} {currentHooks.iconBegin.call(this)} {currentHooks.listItemContent.call(this)}
    {currentHooks.iconEnd.call(this)} {this.typeDetail && (
    )} {this.typeNavigation && ( )} {this.navigated && (
    )} {this.placeSelectionElementAfter && (currentHooks.selectionElement.call(this))} {this.ariaLabelledByText} {this._accInfo.ariaSelectedText}
  • ; } function listItemPreContent(this: ListItem) { } function listItemContent(this: ListItem) { } function imageBegin(this: ListItem) { } function iconBegin(this: ListItem) { } function iconEnd(this: ListItem) { } function selectionElement(this: ListItem) { switch (true) { case this.modeSingleSelect: return ( ); case this.modeMultiple: return ( ); case this.modeDelete: return (
    { this.hasDeleteButtonSlot ? ( ) : (
    ); } }