@ui5/webcomponents 2.23.0-rc.2 → 2.23.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.
Files changed (96) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/ExpandableTextTemplate.js +1 -1
  4. package/dist/ExpandableTextTemplate.js.map +1 -1
  5. package/dist/Form.d.ts +1 -1
  6. package/dist/Form.js +1 -1
  7. package/dist/Form.js.map +1 -1
  8. package/dist/FormGroup.d.ts +1 -0
  9. package/dist/FormGroup.js.map +1 -1
  10. package/dist/FormTemplate.js +1 -1
  11. package/dist/FormTemplate.js.map +1 -1
  12. package/dist/ListBoxItemGroupTemplate.js +1 -2
  13. package/dist/ListBoxItemGroupTemplate.js.map +1 -1
  14. package/dist/ListItem.d.ts +2 -2
  15. package/dist/ListItem.js.map +1 -1
  16. package/dist/ListItemBase.d.ts +1 -1
  17. package/dist/ListItemBase.js +1 -2
  18. package/dist/ListItemBase.js.map +1 -1
  19. package/dist/ListItemGroupHeader.d.ts +1 -1
  20. package/dist/ListItemGroupHeader.js.map +1 -1
  21. package/dist/PopoverResize.js +1 -1
  22. package/dist/PopoverResize.js.map +1 -1
  23. package/dist/RangeSlider.d.ts +4 -0
  24. package/dist/RangeSlider.js +32 -8
  25. package/dist/RangeSlider.js.map +1 -1
  26. package/dist/RangeSliderTemplate.js +5 -5
  27. package/dist/RangeSliderTemplate.js.map +1 -1
  28. package/dist/RatingIndicatorTemplate.js +1 -4
  29. package/dist/RatingIndicatorTemplate.js.map +1 -1
  30. package/dist/Select.d.ts +1 -0
  31. package/dist/Select.js +4 -1
  32. package/dist/Select.js.map +1 -1
  33. package/dist/SelectPopoverTemplate.js +3 -3
  34. package/dist/SelectPopoverTemplate.js.map +1 -1
  35. package/dist/Slider.d.ts +2 -0
  36. package/dist/Slider.js +20 -11
  37. package/dist/Slider.js.map +1 -1
  38. package/dist/SliderBase.d.ts +28 -0
  39. package/dist/SliderBase.js +36 -0
  40. package/dist/SliderBase.js.map +1 -1
  41. package/dist/SliderScale.js +3 -0
  42. package/dist/SliderScale.js.map +1 -1
  43. package/dist/SliderTemplate.js +3 -3
  44. package/dist/SliderTemplate.js.map +1 -1
  45. package/dist/Tab.d.ts +0 -1
  46. package/dist/Tab.js +1 -2
  47. package/dist/Tab.js.map +1 -1
  48. package/dist/TabContainer.js +1 -1
  49. package/dist/TabContainer.js.map +1 -1
  50. package/dist/TableGroupRow.d.ts +1 -1
  51. package/dist/TableGroupRow.js +1 -1
  52. package/dist/TableGroupRow.js.map +1 -1
  53. package/dist/css/themes/ExpandableText.css +1 -1
  54. package/dist/css/themes/Popover.css +1 -1
  55. package/dist/css/themes/RatingIndicator.css +1 -1
  56. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  57. package/dist/css/themes/Text.css +1 -1
  58. package/dist/custom-elements-internal.json +180 -312
  59. package/dist/custom-elements.json +148 -14
  60. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  61. package/dist/generated/i18n/i18n-defaults.js +2 -1
  62. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  63. package/dist/generated/themes/ExpandableText.css.d.ts +1 -1
  64. package/dist/generated/themes/ExpandableText.css.js +1 -1
  65. package/dist/generated/themes/ExpandableText.css.js.map +1 -1
  66. package/dist/generated/themes/Popover.css.d.ts +1 -1
  67. package/dist/generated/themes/Popover.css.js +1 -1
  68. package/dist/generated/themes/Popover.css.js.map +1 -1
  69. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  70. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  71. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  72. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  73. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  74. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  75. package/dist/generated/themes/Text.css.d.ts +1 -1
  76. package/dist/generated/themes/Text.css.js +1 -1
  77. package/dist/generated/themes/Text.css.js.map +1 -1
  78. package/dist/types/ListItemAccessibleRole.d.ts +0 -5
  79. package/dist/types/ListItemAccessibleRole.js +0 -5
  80. package/dist/types/ListItemAccessibleRole.js.map +1 -1
  81. package/dist/vscode.html-custom-data.json +18 -3
  82. package/dist/web-types.json +25 -5
  83. package/package.json +9 -9
  84. package/src/ExpandableTextTemplate.tsx +1 -1
  85. package/src/FormTemplate.tsx +1 -1
  86. package/src/ListBoxItemGroupTemplate.tsx +1 -2
  87. package/src/RangeSliderTemplate.tsx +7 -4
  88. package/src/RatingIndicatorTemplate.tsx +1 -5
  89. package/src/SelectPopoverTemplate.tsx +12 -6
  90. package/src/SliderTemplate.tsx +5 -3
  91. package/src/i18n/messagebundle.properties +3 -0
  92. package/src/themes/ExpandableText.css +8 -0
  93. package/src/themes/Popover.css +1 -4
  94. package/src/themes/RatingIndicator.css +0 -1
  95. package/src/themes/ResponsivePopoverCommon.css +3 -3
  96. package/src/themes/Text.css +4 -9
@@ -5,6 +5,6 @@ import Button from "./Button.js";
5
5
  import ResponsivePopover from "./ResponsivePopover.js";
6
6
  export default function ExpandableTextTemplate() {
7
7
  return (_jsxs("div", { children: [_jsx(Text, { class: "ui5-exp-text-text", emptyIndicatorMode: this.emptyIndicatorMode, children: this._displayedText }), this._maxCharactersExceeded && _jsxs(_Fragment, { children: [_jsx("span", { class: "ui5-exp-text-ellipsis", children: this._ellipsisText }), _jsx(Link, { id: "toggle", class: "ui5-exp-text-toggle", accessibleRole: "Button", accessibleName: this._accessibleNameForToggle, accessibilityAttributes: this._accessibilityAttributesForToggle, onClick: this._handleToggleClick, children: this._textForToggle }), this._usePopover &&
8
- _jsxs(ResponsivePopover, { open: this._expanded, opener: "toggle", accessibleNameRef: "popover-text", contentOnlyOnDesktop: true, _hideHeader: true, class: "ui5-exp-text-popover", onClose: this._handlePopoverClose, children: [_jsx(Text, { id: "popover-text", children: this.text }), _jsx("div", { slot: "footer", class: "ui5-exp-text-footer", children: _jsx(Button, { design: "Transparent", onClick: this._handleCloseButtonClick, children: this._closeButtonText }) })] })] })] }));
8
+ _jsxs(ResponsivePopover, { open: this._expanded, opener: "toggle", accessibleNameRef: "popover-text", contentOnlyOnDesktop: true, _hideHeader: true, class: "ui5-exp-text-popover", onClose: this._handlePopoverClose, children: [_jsx(Text, { class: "ui5-exp-text-popover-text", id: "popover-text", children: this.text }), _jsx("div", { slot: "footer", class: "ui5-exp-text-footer", children: _jsx(Button, { design: "Transparent", onClick: this._handleCloseButtonClick, children: this._closeButtonText }) })] })] })] }));
9
9
  }
10
10
  //# sourceMappingURL=ExpandableTextTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandableTextTemplate.js","sourceRoot":"","sources":["../src/ExpandableTextTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,sBAAsB;IAC7C,OAAO,CACN,0BACC,KAAC,IAAI,IACJ,KAAK,EAAC,mBAAmB,EACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,YAE1C,IAAI,CAAC,cAAc,GACd,EAEN,IAAI,CAAC,sBAAsB,IAAI,8BAC/B,eAAM,KAAK,EAAC,uBAAuB,YAAE,IAAI,CAAC,aAAa,GAAQ,EAC/D,KAAC,IAAI,IACJ,EAAE,EAAC,QAAQ,EACX,KAAK,EAAC,qBAAqB,EAC3B,cAAc,EAAC,QAAQ,EACvB,cAAc,EAAE,IAAI,CAAC,wBAAwB,EAC7C,uBAAuB,EAAE,IAAI,CAAC,iCAAiC,EAC/D,OAAO,EAAE,IAAI,CAAC,kBAAkB,YAE/B,IAAI,CAAC,cAAc,GACd,EAEN,IAAI,CAAC,WAAW;wBAChB,MAAC,iBAAiB,IACjB,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,MAAM,EAAC,QAAQ,EACf,iBAAiB,EAAC,cAAc,EAChC,oBAAoB,EAAE,IAAI,EAC1B,WAAW,EAAE,IAAI,EACjB,KAAK,EAAC,sBAAsB,EAC5B,OAAO,EAAE,IAAI,CAAC,mBAAmB,aAEjC,KAAC,IAAI,IAAC,EAAE,EAAC,cAAc,YAAE,IAAI,CAAC,IAAI,GAAQ,EAC1C,cACC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,qBAAqB,YAE3B,KAAC,MAAM,IACN,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,uBAAuB,YAEpC,IAAI,CAAC,gBAAgB,GACd,GACJ,IACa,IAEnB,IAEE,CACN,CAAC;AACH,CAAC","sourcesContent":["import type ExpandableText from \"./ExpandableText.js\";\nimport Text from \"./Text.js\";\nimport Link from \"./Link.js\";\nimport Button from \"./Button.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\n\nexport default function ExpandableTextTemplate(this: ExpandableText) {\n\treturn (\n\t\t<div>\n\t\t\t<Text\n\t\t\t\tclass=\"ui5-exp-text-text\"\n\t\t\t\temptyIndicatorMode={this.emptyIndicatorMode}\n\t\t\t>\n\t\t\t\t{this._displayedText}\n\t\t\t</Text>\n\n\t\t\t{this._maxCharactersExceeded && <>\n\t\t\t\t<span class=\"ui5-exp-text-ellipsis\">{this._ellipsisText}</span>\n\t\t\t\t<Link\n\t\t\t\t\tid=\"toggle\"\n\t\t\t\t\tclass=\"ui5-exp-text-toggle\"\n\t\t\t\t\taccessibleRole=\"Button\"\n\t\t\t\t\taccessibleName={this._accessibleNameForToggle}\n\t\t\t\t\taccessibilityAttributes={this._accessibilityAttributesForToggle}\n\t\t\t\t\tonClick={this._handleToggleClick}\n\t\t\t\t>\n\t\t\t\t\t{this._textForToggle}\n\t\t\t\t</Link>\n\n\t\t\t\t{this._usePopover &&\n\t\t\t\t\t<ResponsivePopover\n\t\t\t\t\t\topen={this._expanded}\n\t\t\t\t\t\topener=\"toggle\"\n\t\t\t\t\t\taccessibleNameRef=\"popover-text\"\n\t\t\t\t\t\tcontentOnlyOnDesktop={true}\n\t\t\t\t\t\t_hideHeader={true}\n\t\t\t\t\t\tclass=\"ui5-exp-text-popover\"\n\t\t\t\t\t\tonClose={this._handlePopoverClose}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text id=\"popover-text\">{this.text}</Text>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tslot=\"footer\"\n\t\t\t\t\t\t\tclass=\"ui5-exp-text-footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\t\tonClick={this._handleCloseButtonClick}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this._closeButtonText}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ResponsivePopover>\n\t\t\t\t}\n\t\t\t</>\n\t\t\t}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"ExpandableTextTemplate.js","sourceRoot":"","sources":["../src/ExpandableTextTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,sBAAsB;IAC7C,OAAO,CACN,0BACC,KAAC,IAAI,IACJ,KAAK,EAAC,mBAAmB,EACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,YAE1C,IAAI,CAAC,cAAc,GACd,EAEN,IAAI,CAAC,sBAAsB,IAAI,8BAC/B,eAAM,KAAK,EAAC,uBAAuB,YAAE,IAAI,CAAC,aAAa,GAAQ,EAC/D,KAAC,IAAI,IACJ,EAAE,EAAC,QAAQ,EACX,KAAK,EAAC,qBAAqB,EAC3B,cAAc,EAAC,QAAQ,EACvB,cAAc,EAAE,IAAI,CAAC,wBAAwB,EAC7C,uBAAuB,EAAE,IAAI,CAAC,iCAAiC,EAC/D,OAAO,EAAE,IAAI,CAAC,kBAAkB,YAE/B,IAAI,CAAC,cAAc,GACd,EAEN,IAAI,CAAC,WAAW;wBAChB,MAAC,iBAAiB,IACjB,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,MAAM,EAAC,QAAQ,EACf,iBAAiB,EAAC,cAAc,EAChC,oBAAoB,EAAE,IAAI,EAC1B,WAAW,EAAE,IAAI,EACjB,KAAK,EAAC,sBAAsB,EAC5B,OAAO,EAAE,IAAI,CAAC,mBAAmB,aAEjC,KAAC,IAAI,IAAC,KAAK,EAAC,2BAA2B,EAAC,EAAE,EAAC,cAAc,YAAE,IAAI,CAAC,IAAI,GAAQ,EAC5E,cACC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,qBAAqB,YAE3B,KAAC,MAAM,IACN,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,uBAAuB,YAEpC,IAAI,CAAC,gBAAgB,GACd,GACJ,IACa,IAEnB,IAEE,CACN,CAAC;AACH,CAAC","sourcesContent":["import type ExpandableText from \"./ExpandableText.js\";\nimport Text from \"./Text.js\";\nimport Link from \"./Link.js\";\nimport Button from \"./Button.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\n\nexport default function ExpandableTextTemplate(this: ExpandableText) {\n\treturn (\n\t\t<div>\n\t\t\t<Text\n\t\t\t\tclass=\"ui5-exp-text-text\"\n\t\t\t\temptyIndicatorMode={this.emptyIndicatorMode}\n\t\t\t>\n\t\t\t\t{this._displayedText}\n\t\t\t</Text>\n\n\t\t\t{this._maxCharactersExceeded && <>\n\t\t\t\t<span class=\"ui5-exp-text-ellipsis\">{this._ellipsisText}</span>\n\t\t\t\t<Link\n\t\t\t\t\tid=\"toggle\"\n\t\t\t\t\tclass=\"ui5-exp-text-toggle\"\n\t\t\t\t\taccessibleRole=\"Button\"\n\t\t\t\t\taccessibleName={this._accessibleNameForToggle}\n\t\t\t\t\taccessibilityAttributes={this._accessibilityAttributesForToggle}\n\t\t\t\t\tonClick={this._handleToggleClick}\n\t\t\t\t>\n\t\t\t\t\t{this._textForToggle}\n\t\t\t\t</Link>\n\n\t\t\t\t{this._usePopover &&\n\t\t\t\t\t<ResponsivePopover\n\t\t\t\t\t\topen={this._expanded}\n\t\t\t\t\t\topener=\"toggle\"\n\t\t\t\t\t\taccessibleNameRef=\"popover-text\"\n\t\t\t\t\t\tcontentOnlyOnDesktop={true}\n\t\t\t\t\t\t_hideHeader={true}\n\t\t\t\t\t\tclass=\"ui5-exp-text-popover\"\n\t\t\t\t\t\tonClose={this._handlePopoverClose}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text class=\"ui5-exp-text-popover-text\" id=\"popover-text\">{this.text}</Text>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tslot=\"footer\"\n\t\t\t\t\t\t\tclass=\"ui5-exp-text-footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\t\tonClick={this._handleCloseButtonClick}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this._closeButtonText}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ResponsivePopover>\n\t\t\t\t}\n\t\t\t</>\n\t\t\t}\n\t\t</div>\n\t);\n}\n"]}
package/dist/Form.d.ts CHANGED
@@ -313,7 +313,7 @@ declare class Form extends UI5Element {
313
313
  get hasHeaderText(): boolean;
314
314
  get hasCustomHeader(): boolean;
315
315
  get effectiveAccessibleName(): string | undefined;
316
- get effectiveАccessibleNameRef(): string | undefined;
316
+ get effectiveAccessibleNameRef(): string | undefined;
317
317
  get effectiveAccessibleRole(): "form" | "region";
318
318
  get groupItemsInfo(): Array<GroupItemsInfo>;
319
319
  get itemsInfo(): Array<ItemsInfo>;
package/dist/Form.js CHANGED
@@ -366,7 +366,7 @@ let Form = Form_1 = class Form extends UI5Element {
366
366
  }
367
367
  return this.hasHeader ? undefined : Form_1.i18nBundle.getText(FORM_ACCESSIBLE_NAME);
368
368
  }
369
- get effectiveАccessibleNameRef() {
369
+ get effectiveAccessibleNameRef() {
370
370
  if (this.accessibleName || this.accessibleNameRef) {
371
371
  return;
372
372
  }
package/dist/Form.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","sourceRoot":"","sources":["../src/Form.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAG/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAE1G,QAAQ;AACR,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGrF,WAAW;AACX,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,SAAS;AACT,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAOrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAmCzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiIG;AAOH,IAAM,IAAI,YAAV,MAAM,IAAK,SAAQ,UAAU;IAA7B;;QAmBC;;;;;;;;;;;;;WAaG;QAEH,mBAAc,GAA4B,SAAS,CAAC;QAEpD;;;;;;;;;;;WAWG;QAEH,WAAM,GAAG,cAAc,CAAA;QAEvB;;;;;;;;;;;;WAYG;QAEH,cAAS,GAAG,eAAe,CAAC;QAE5B;;;;;;;;;;;;;WAaG;QAEH,cAAS,GAAG,cAAc,CAAC;QAa3B;;;;;;UAME;QAEF,gBAAW,GAAoB,IAAI,CAAC;QAEpC;;;;;;;;;WASG;QAEH,gBAAW,GAAyB,QAAQ,CAAC;QAiC7C;;WAEG;QAEH,aAAQ,GAAG,CAAC,CAAC;QAEb,eAAU,GAAG,EAAE,CAAA;QAEf,eAAU,GAAG,CAAC,CAAA;QAGd,aAAQ,GAAG,CAAC,CAAC;QAEb,eAAU,GAAG,CAAC,CAAC;QAEf,eAAU,GAAG,CAAC,CAAA;QAGd,aAAQ,GAAG,CAAC,CAAC;QAEb,eAAU,GAAG,CAAC,CAAC;QAEf,eAAU,GAAG,CAAC,CAAA;QAGd,cAAS,GAAG,CAAC,CAAC;QAEd,gBAAW,GAAG,CAAC,CAAC;QAEhB,gBAAW,GAAG,CAAC,CAAC;IA4KjB,CAAC;IA1KA,iBAAiB;QAChB,2DAA2D;QAC3D,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,+CAA+C;QAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,mBAAmB;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;IAED,wBAAwB;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;YACrD,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;YACxD,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;YACxD,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,UAAsB;QACvC,IAAI,SAAS,EACZ,SAAS,CAAC;QAEX,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACxB,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,CAAC;aAAM,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YAC/B,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,CAAC;aAAM,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YAC/B,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,CAAC;aAAM,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YAChC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;YAC7B,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,CAAC;QAED,OAAO,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,eAAe;QACd,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACrC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAgB,EAAE,KAAgB,EAAE,EAAE;YAC/E,OAAQ,KAAmB,EAAE,KAAK,CAAC,MAAM,GAAI,KAAmB,EAAE,KAAK,CAAC,MAAM,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,GAAW,EAAE,EAAE;YACpD,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5E,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC;IACnD,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1B,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,uBAAuB;QAC1B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACnD,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,0BAA0B;QAC7B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACnD,OAAO;QACR,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAoB,EAAE,KAAa,EAAE,EAAE;YAC7D,MAAM,iBAAiB,GAAI,SAAuB,CAAC,0BAA0B,CAAC;YAE9E,OAAO;gBACN,SAAS;gBACT,cAAc,EAAE,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAE,SAAuB,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBACvH,mBAAmB,EAAE,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,SAAuB,CAAC,0BAA0B,CAAC,KAAK,CAAC;gBAC5H,iBAAiB,EAAE,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;gBACjF,sBAAsB,EAAE,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB;gBACtF,KAAK,EAAE,IAAI,CAAC,YAAY,CAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAsB,CAAC;gBAC9E,IAAI,EAAE,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,KAAwB;QACpC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAe,EAAE,EAAE;YACpD,OAAO;gBACN,IAAI;aACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAtVA;IADC,QAAQ,EAAE;4CACa;AASxB;IADC,QAAQ,EAAE;+CACgB;AAiB3B;IADC,QAAQ,EAAE;4CACyC;AAepD;IADC,QAAQ,EAAE;oCACY;AAgBvB;IADC,QAAQ,EAAE;uCACiB;AAiB5B;IADC,QAAQ,EAAE;uCACgB;AAW3B;IADC,QAAQ,EAAE;wCACS;AAUpB;IADC,QAAQ,EAAE;yCACyB;AAapC;IADC,QAAQ,EAAE;yCACkC;AAS7C;IADC,IAAI,EAAE;oCACoB;AAmB3B;IANC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,uBAAuB,EAAE,IAAI;KAC7B,CAAC;mCAC6B;AAS/B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;sCACjC;AAEb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wCAC/B;AAEf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wCAChC;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;sCACjC;AAEb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wCAC/B;AAEf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wCAChC;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;sCACjC;AAEb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wCAC/B;AAEf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wCAChC;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;uCAChC;AAEd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;yCAC9B;AAEhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;yCAC9B;AA/BT;IADN,IAAI,CAAC,oBAAoB,CAAC;8BACG;AAnJzB,IAAI;IANT,aAAa,CAAC;QACd,GAAG,EAAE,UAAU;QACf,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,YAAY;KACtB,CAAC;GACI,IAAI,CA8VT;AAED,IAAI,CAAC,MAAM,EAAE,CAAC;AAEd,eAAe,IAAI,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\n\n// Utils\nimport { getFormItemLayoutValue, getGroupsColSpan } from \"./form-utils/FormUtils.js\";\nimport type { Breakpoint } from \"./form-utils/FormUtils.js\";\n\n// Template\nimport FormTemplate from \"./FormTemplate.js\";\n\n// Styles\nimport FormCss from \"./generated/themes/Form.css.js\";\n\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type FormAccessibleMode from \"./types/FormAccessibleMode.js\";\nimport type FormGroup from \"./FormGroup.js\";\nimport type TitleLevel from \"./types/TitleLevel.js\";\n\nimport { FORM_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * Interface for components that can be slotted inside `ui5-form` as items.\n * @public\n * @since 2.0.0\n */\ninterface IFormItem extends UI5Element {\n\titemSpacing: `${FormItemSpacing}`;\n\treadonly isGroup: boolean;\n\tcolsXl?: number;\n\tcolsL?: number;\n\tcolsM?: number;\n\tcolsS?: number;\n\tcolSpan?: string;\n\tcolumnSpan?: number;\n\theaderText?: string;\n\theaderLevel?: `${TitleLevel}`;\n\taccessibleMode?: `${FormAccessibleMode}`;\n}\n\ntype GroupItemsInfo = {\n\tgroupItem: IFormItem,\n\titems: Array<ItemsInfo>,\n\taccessibleName: string | undefined,\n\taccessibleNameInner: string | undefined,\n\taccessibleNameRef: string | undefined,\n\taccessibleNameRefInner: string | undefined,\n\trole: AriaRole | undefined,\n}\n\ntype ItemsInfo = {\n\titem: IFormItem,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The Form is a layout component that arranges labels and form fields (like input fields) pairs\n * into a specific number of columns.\n *\n * **Note:** The Form web component is a layout component, it isn't a replacement for the native `form` HTML element.\n * The Form web component does not provide any APIs for form submission.\n *\n * ### Structure\n *\n * - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.\n * - **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.\n * - **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.\n *\n * The simplest Form (`ui5-form`) consists of a header area on top,\n * displaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),\n * representing the pairs of label and form fields.\n *\n * And, there is also \"grouping\" available to assist the implementation of richer UIs.\n * This is enabled by the FormGroup (`ui5-form-group`) component.\n * In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.\n *\n * ### Responsiveness\n *\n * The Form component reacts and changes its layout on predefined breakpoints.\n * Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:\n * - **S** (0 - 599px) – 1 column is recommended (default: 1)\n * - **M** (600px - 1023px) – up to 2 columns are recommended (default: 1)\n * - **L** (1024px - 1439px) - up to 3 columns are recommended (default: 2)\n * - **XL** (>= 1440px) – up to 6 columns are recommended (default: 3)\n *\n * To change the layout, use the `layout` property - f.e. layout=\"S1 M2 L3 XL6\".\n *\n * ### Groups\n *\n * To make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.\n *\n * - **Example #1** (perfect match):\n * 4 columns and 4 groups: each group will use 1 column.\n *\n * - **Example #2** (balanced distribution):\n * 4 columns and 2 groups: each group will use 2 columns.\n * 6 columns and 2 groups: each group will use 3 columns.\n *\n * - **Example #3** (unbalanced distribution):\n * 3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.\n * 5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.\n *\n * **Note:** The size of a group element is determined by the number of FormItems assigned to it.\n * In the case of equality, the first in the DOM will use more columns, and the last - fewer columns.\n *\n * - **Example #4** (more groups than columns):\n * 3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.\n *\n * ### Groups Column Span\n *\n * To influence the built-in group distribution, described in the previous section,\n * you can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.\n *\n * ### Items Column Span\n *\n * FormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.\n *\n * ### Items Label Span\n *\n * The placement of the labels depends on the size of the used column.\n * If there is enough space, the labels are next to their associated fields, otherwise - above the fields.\n * By default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.\n * You can control what space the labels should take via the `labelSpan` property.\n *\n * **For example:** To always place the labels on top set: `labelSpan=\"S12 M12 L12 XL12\"` property.\n *\n * ### Items Empty Span\n *\n * By default, a form item spans 12 cells, fully divided between its label and field, with no empty space at the end:\n * - **Label:** occupies 4 cells.\n * - **Field:** occupies 8 cells.\n *\n * The `emptySpan` property provides additional layout flexibility by defining empty space at the form item’s end.\n *\n * **For example:** Setting \"S0 M0 L3 XL3\" (or just \"L3 XL3\") adjusts the layout as follows:\n * - **Label:** remains 4 cells.\n * - **Field:** is reduced to 5 cells.\n * - **Empty space:** 3 cells are added at the end.\n *\n * Greater values increase the empty space at the end of the form item, reducing the space available for the label and its field.\n * However, setting `emptySpan` to 1 cell is recommended and typically sufficient to achieve a balanced layout.\n *\n * ### Navigation flow\n *\n * Items are grouped into `ui5-form-group` elements, allowing the following navigation:\n *\n * - **Single-Column Group**: Focus moves vertically down from one item to the next.\n * ```\n * | 1 |\n * | 2 |\n * | 3 |\n * ```\n *\n * - **Multi-Column Group**: Focus moves horizontally within each row, advancing to the next row after completing the current one.\n * ```\n * | 1 | 4 |\n * | 2 | 5 |\n * | 3 | 6 |\n * ```\n *\n * ### Keyboard Handling\n *\n * - [Tab] - Moves the focus to the next interactive element within the Form/FormGroup (if available) or to the next element in the tab chain outside the Form\n * - [Shift] + [Tab] - Moves the focus to the previous interactive element within the Form/FormGroup (if available) or to the previous element in the tab chain outside the Form\n * - [F6] - Moves the focus to the first interactive element of the next FormGroup (if available) or to the next element in the tab chain outside the Form\n * - [Shift] + [F6] - Moves the focus to the first interactive element of the previous FormGroup (if available) or to the previous element in the tab chain outside the Form\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/Form.js\";\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n * - import @ui5/webcomponents/dist/FormItem.js\";\n *\n * @csspart header - Used to style the wrapper of the header.\n * @csspart layout - Used to style the element defining the form column layout.\n * @csspart column - Used to style a single column of the form column layout.\n *\n * @public\n * @since 2.0.0\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form\",\n\trenderer: jsxRenderer,\n\tstyles: FormCss,\n\ttemplate: FormTemplate,\n})\nclass Form extends UI5Element {\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines id (or many ids) of the element (or elements) that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessibility mode of the component in \"edit\" and \"display\" use-cases.\n\t *\n\t * Based on the mode, the component renders different HTML elements and ARIA attributes,\n\t * which are appropriate for the use-case.\n\t *\n\t * **Usage:**\n\t * - Set this property to \"Display\", when the form consists of non-editable (e.g. texts) form items.\n\t * - Set this property to \"Edit\", when the form consists of editable (e.g. input fields) form items.\n\t *\n\t * @default \"Display\"\n\t * @since 2.16.0\n\t * @public\n\t */\n\t@property()\n\taccessibleMode: `${FormAccessibleMode}` = \"Display\";\n\n\t/**\n\t * Defines the number of columns to distribute the form content by breakpoint.\n\t *\n\t * Supported values:\n\t * - `S` - 1 column by default (1 column is recommended)\n\t * - `M` - 1 column by default (up to 2 columns are recommended)\n\t * - `L` - 2 columns by default (up to 3 columns are recommended)\n\t * - `XL` - 3 columns by default (up to 6 columns are recommended)\n\t *\n\t * @default \"S1 M1 L2 XL3\"\n\t * @public\n\t */\n\t@property()\n\tlayout = \"S1 M1 L2 XL3\"\n\n\t/**\n\t * Defines the width proportion of the labels and fields of a form item by breakpoint.\n\t *\n\t * By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,\n\t * and 12/12 in S size, e.g in S the label is on top of its associated field.\n\t *\n\t * The supported values are between 1 and 12. Greater the number, more space the label will use.\n\t *\n\t * **Note:** If \"12\" is set, the label will be displayed on top of its assosiated field.\n\t *\n\t * @default \"S12 M4 L4 XL4\"\n\t * @public\n\t */\n\t@property()\n\tlabelSpan = \"S12 M4 L4 XL4\";\n\n\t/**\n\t * Defines the number of cells that are empty at the end of each form item, configurable by breakpoint.\n\t *\n\t * By default, a form item spans 12 cells, fully divided between its label (4 cells) and field (8 cells), with no empty space at the end.\n\t * The `emptySpan` provides additional layout flexibility by defining empty space at the form item’s end.\n\t *\n\t * **Note:**\n\t * - The maximum allowable empty space is 10 cells. At least 1 cell each must remain for the label and the field.\n\t * - When `emptySpan` is specified (greater than 0), ensure that the combined value of `emptySpan` and `labelSpan` does not exceed 11. This guarantees a minimum of 1 cell for the field.\n\t *\n\t * @default \"S0 M0 L0 XL0\"\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property()\n\temptySpan = \"S0 M0 L0 XL0\";\n\n\t/**\n\t * Defines the header text of the component.\n\t *\n\t * **Note:** The property gets overridden by the `header` slot.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the compoennt heading level,\n\t * set by the `headerText`.\n\t * @default \"H2\"\n\t * @since 2.10.0\n\t * @public\n\t*/\n\t@property()\n\theaderLevel: `${TitleLevel}` = \"H2\";\n\n\t/**\n\t * Defines the vertical spacing between form items.\n\t *\n\t * **Note:** If the Form is meant to be switched between \"display\"(\"non-edit\") and \"edit\" modes,\n\t * we recommend using \"Large\" item spacing in \"display\"(\"non-edit\") mode, and \"Normal\" - for \"edit\" mode,\n\t * to avoid \"jumping\" effect, caused by the hight difference between texts in \"display\"(\"non-edit\") mode and the input fields in \"edit\" mode.\n\t *\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\t/**\n\t * Defines the component header area.\n\t *\n\t * **Note:** When a `header` is provided, the `headerText` property is ignored.\n\t * @public\n\t */\n\t@slot()\n\theader!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the component content - FormGroups or FormItems.\n\t *\n\t * **Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\n\t * Either use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n\t *\n\t * **Note:** As of version 2.23.0 the support for standalone FormItems (not belonging to a group) is deprecated.\n\t * We recommend using FormGroups, as they provide better accessibility and layout options.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: DefaultSlot<IFormItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tcolumnsS = 1;\n\t@property({ type: Number, noAttribute: true })\n\tlabelSpanS = 12\n\t@property({ type: Number, noAttribute: true })\n\temptySpanS = 0\n\n\t@property({ type: Number, noAttribute: true })\n\tcolumnsM = 1;\n\t@property({ type: Number, noAttribute: true })\n\tlabelSpanM = 4;\n\t@property({ type: Number, noAttribute: true })\n\temptySpanM = 0\n\n\t@property({ type: Number, noAttribute: true })\n\tcolumnsL = 2;\n\t@property({ type: Number, noAttribute: true })\n\tlabelSpanL = 4;\n\t@property({ type: Number, noAttribute: true })\n\temptySpanL = 0\n\n\t@property({ type: Number, noAttribute: true })\n\tcolumnsXl = 3;\n\t@property({ type: Number, noAttribute: true })\n\tlabelSpanXl = 4;\n\t@property({ type: Number, noAttribute: true })\n\temptySpanXl = 0;\n\n\tonBeforeRendering() {\n\t\t// Parse the layout and set it to the FormGroups/FormItems.\n\t\tthis.parseLayoutConfiguration();\n\n\t\t// Define how many columns a group should take.\n\t\tthis.setGroupsColSpan();\n\n\t\t// Set item spacing\n\t\tthis.setItemsState();\n\t}\n\n\tonAfterRendering() {\n\t\tthis.setFastNavGroup();\n\t}\n\n\tparseLayoutConfiguration() {\n\t\tthis.layout.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.columnsS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.columnsM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.columnsL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.columnsXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\n\t\tthis.labelSpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.labelSpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.labelSpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.labelSpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.labelSpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\n\t\tthis.emptySpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.emptySpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.emptySpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.emptySpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.emptySpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\t}\n\n\tgetFormItemLayout(breakpoint: Breakpoint) {\n\t\tlet labelSpan,\n\t\t\temptySpan;\n\n\t\tif (breakpoint === \"S\") {\n\t\t\tlabelSpan = this.labelSpanS;\n\t\t\temptySpan = this.emptySpanS;\n\t\t} else if (breakpoint === \"M\") {\n\t\t\tlabelSpan = this.labelSpanM;\n\t\t\temptySpan = this.emptySpanM;\n\t\t} else if (breakpoint === \"L\") {\n\t\t\tlabelSpan = this.labelSpanL;\n\t\t\temptySpan = this.emptySpanL;\n\t\t} else if (breakpoint === \"XL\") {\n\t\t\tlabelSpan = this.labelSpanXl;\n\t\t\temptySpan = this.emptySpanXl;\n\t\t}\n\n\t\treturn getFormItemLayoutValue(breakpoint, labelSpan, emptySpan);\n\t}\n\n\tsetFastNavGroup() {\n\t\tif (this.hasGroupItems) {\n\t\t\tthis.removeAttribute(\"data-sap-ui-fastnavgroup\");\n\t\t} else {\n\t\t\tthis.setAttribute(\"data-sap-ui-fastnavgroup\", \"true\");\n\t\t}\n\t}\n\n\tsetGroupsColSpan() {\n\t\tif (!this.hasGroupItems) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsCount = this.items.length;\n\t\tconst sortedItems = [...this.items].sort((itemA: IFormItem, itemB: IFormItem) => {\n\t\t\treturn (itemB as FormGroup)?.items.length - (itemA as FormGroup)?.items.length;\n\t\t});\n\n\t\tsortedItems.forEach((item: IFormItem, idx: number) => {\n\t\t\titem.colsXl = getGroupsColSpan(this.columnsXl, itemsCount, idx, item, \"XL\");\n\t\t\titem.colsL = getGroupsColSpan(this.columnsL, itemsCount, idx, item, \"L\");\n\t\t\titem.colsM = getGroupsColSpan(this.columnsM, itemsCount, idx, item, \"M\");\n\t\t\titem.colsS = getGroupsColSpan(this.columnsS, itemsCount, idx, item, \"S\");\n\t\t});\n\t}\n\n\tsetItemsState() {\n\t\tthis.items.forEach((item: IFormItem) => {\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t\titem.accessibleMode = this.accessibleMode;\n\t\t});\n\t}\n\n\tget hasGroupItems(): boolean {\n\t\treturn this.items.some((item: IFormItem) => item.isGroup);\n\t}\n\n\tget hasHeader(): boolean {\n\t\treturn this.hasCustomHeader || this.hasHeaderText;\n\t}\n\n\tget hasHeaderText(): boolean {\n\t\treturn !!this.headerText;\n\t}\n\n\tget hasCustomHeader(): boolean {\n\t\treturn !!this.header.length;\n\t}\n\n\tget effectiveAccessibleName() {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn getEffectiveAriaLabelText(this);\n\t\t}\n\n\t\treturn this.hasHeader ? undefined : Form.i18nBundle.getText(FORM_ACCESSIBLE_NAME);\n\t}\n\n\tget effectiveАccessibleNameRef(): string | undefined {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.hasHeaderText && !this.hasCustomHeader ? `${this._id}-header-text` : undefined;\n\t}\n\n\tget effectiveAccessibleRole() {\n\t\treturn this.hasGroupItems ? \"region\" : \"form\";\n\t}\n\n\tget groupItemsInfo(): Array<GroupItemsInfo> {\n\t\treturn this.items.map((groupItem: IFormItem, index: number) => {\n\t\t\tconst accessibleNameRef = (groupItem as FormGroup).effectiveAccessibleNameRef;\n\n\t\t\treturn {\n\t\t\t\tgroupItem,\n\t\t\t\taccessibleName: this.accessibleMode === \"Edit\" ? (groupItem as FormGroup).getEffectiveAccessibleName(index) : undefined,\n\t\t\t\taccessibleNameInner: this.accessibleMode === \"Edit\" ? undefined : (groupItem as FormGroup).getEffectiveAccessibleName(index),\n\t\t\t\taccessibleNameRef: this.accessibleMode === \"Edit\" ? accessibleNameRef : undefined,\n\t\t\t\taccessibleNameRefInner: this.accessibleMode === \"Edit\" ? undefined : accessibleNameRef,\n\t\t\t\titems: this.getItemsInfo((Array.from(groupItem.children) as Array<IFormItem>)),\n\t\t\t\trole: this.accessibleMode === \"Edit\" ? \"form\" : undefined,\n\t\t\t};\n\t\t});\n\t}\n\n\tget itemsInfo(): Array<ItemsInfo> {\n\t\treturn this.getItemsInfo();\n\t}\n\n\tgetItemsInfo(items?: Array<IFormItem>): Array<ItemsInfo> {\n\t\treturn (items || this.items).map((item: IFormItem) => {\n\t\t\treturn {\n\t\t\t\titem,\n\t\t\t};\n\t\t});\n\t}\n}\n\nForm.define();\n\nexport default Form;\nexport type {\n\tIFormItem,\n};\n"]}
1
+ {"version":3,"file":"Form.js","sourceRoot":"","sources":["../src/Form.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\n\n// Utils\nimport { getFormItemLayoutValue, getGroupsColSpan } from \"./form-utils/FormUtils.js\";\nimport type { Breakpoint } from \"./form-utils/FormUtils.js\";\n\n// Template\nimport FormTemplate from \"./FormTemplate.js\";\n\n// Styles\nimport FormCss from \"./generated/themes/Form.css.js\";\n\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type FormAccessibleMode from \"./types/FormAccessibleMode.js\";\nimport type FormGroup from \"./FormGroup.js\";\nimport type TitleLevel from \"./types/TitleLevel.js\";\n\nimport { FORM_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * Interface for components that can be slotted inside `ui5-form` as items.\n * @public\n * @since 2.0.0\n */\ninterface IFormItem extends UI5Element {\n\titemSpacing: `${FormItemSpacing}`;\n\treadonly isGroup: boolean;\n\tcolsXl?: number;\n\tcolsL?: number;\n\tcolsM?: number;\n\tcolsS?: number;\n\tcolSpan?: string;\n\tcolumnSpan?: number;\n\theaderText?: string;\n\theaderLevel?: `${TitleLevel}`;\n\taccessibleMode?: `${FormAccessibleMode}`;\n}\n\ntype GroupItemsInfo = {\n\tgroupItem: IFormItem,\n\titems: Array<ItemsInfo>,\n\taccessibleName: string | undefined,\n\taccessibleNameInner: string | undefined,\n\taccessibleNameRef: string | undefined,\n\taccessibleNameRefInner: string | undefined,\n\trole: AriaRole | undefined,\n}\n\ntype ItemsInfo = {\n\titem: IFormItem,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The Form is a layout component that arranges labels and form fields (like input fields) pairs\n * into a specific number of columns.\n *\n * **Note:** The Form web component is a layout component, it isn't a replacement for the native `form` HTML element.\n * The Form web component does not provide any APIs for form submission.\n *\n * ### Structure\n *\n * - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.\n * - **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.\n * - **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.\n *\n * The simplest Form (`ui5-form`) consists of a header area on top,\n * displaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),\n * representing the pairs of label and form fields.\n *\n * And, there is also \"grouping\" available to assist the implementation of richer UIs.\n * This is enabled by the FormGroup (`ui5-form-group`) component.\n * In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.\n *\n * ### Responsiveness\n *\n * The Form component reacts and changes its layout on predefined breakpoints.\n * Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:\n * - **S** (0 - 599px) – 1 column is recommended (default: 1)\n * - **M** (600px - 1023px) – up to 2 columns are recommended (default: 1)\n * - **L** (1024px - 1439px) - up to 3 columns are recommended (default: 2)\n * - **XL** (>= 1440px) – up to 6 columns are recommended (default: 3)\n *\n * To change the layout, use the `layout` property - f.e. layout=\"S1 M2 L3 XL6\".\n *\n * ### Groups\n *\n * To make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.\n *\n * - **Example #1** (perfect match):\n * 4 columns and 4 groups: each group will use 1 column.\n *\n * - **Example #2** (balanced distribution):\n * 4 columns and 2 groups: each group will use 2 columns.\n * 6 columns and 2 groups: each group will use 3 columns.\n *\n * - **Example #3** (unbalanced distribution):\n * 3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.\n * 5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.\n *\n * **Note:** The size of a group element is determined by the number of FormItems assigned to it.\n * In the case of equality, the first in the DOM will use more columns, and the last - fewer columns.\n *\n * - **Example #4** (more groups than columns):\n * 3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.\n *\n * ### Groups Column Span\n *\n * To influence the built-in group distribution, described in the previous section,\n * you can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.\n *\n * ### Items Column Span\n *\n * FormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.\n *\n * ### Items Label Span\n *\n * The placement of the labels depends on the size of the used column.\n * If there is enough space, the labels are next to their associated fields, otherwise - above the fields.\n * By default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.\n * You can control what space the labels should take via the `labelSpan` property.\n *\n * **For example:** To always place the labels on top set: `labelSpan=\"S12 M12 L12 XL12\"` property.\n *\n * ### Items Empty Span\n *\n * By default, a form item spans 12 cells, fully divided between its label and field, with no empty space at the end:\n * - **Label:** occupies 4 cells.\n * - **Field:** occupies 8 cells.\n *\n * The `emptySpan` property provides additional layout flexibility by defining empty space at the form item’s end.\n *\n * **For example:** Setting \"S0 M0 L3 XL3\" (or just \"L3 XL3\") adjusts the layout as follows:\n * - **Label:** remains 4 cells.\n * - **Field:** is reduced to 5 cells.\n * - **Empty space:** 3 cells are added at the end.\n *\n * Greater values increase the empty space at the end of the form item, reducing the space available for the label and its field.\n * However, setting `emptySpan` to 1 cell is recommended and typically sufficient to achieve a balanced layout.\n *\n * ### Navigation flow\n *\n * Items are grouped into `ui5-form-group` elements, allowing the following navigation:\n *\n * - **Single-Column Group**: Focus moves vertically down from one item to the next.\n * ```\n * | 1 |\n * | 2 |\n * | 3 |\n * ```\n *\n * - **Multi-Column Group**: Focus moves horizontally within each row, advancing to the next row after completing the current one.\n * ```\n * | 1 | 4 |\n * | 2 | 5 |\n * | 3 | 6 |\n * ```\n *\n * ### Keyboard Handling\n *\n * - [Tab] - Moves the focus to the next interactive element within the Form/FormGroup (if available) or to the next element in the tab chain outside the Form\n * - [Shift] + [Tab] - Moves the focus to the previous interactive element within the Form/FormGroup (if available) or to the previous element in the tab chain outside the Form\n * - [F6] - Moves the focus to the first interactive element of the next FormGroup (if available) or to the next element in the tab chain outside the Form\n * - [Shift] + [F6] - Moves the focus to the first interactive element of the previous FormGroup (if available) or to the previous element in the tab chain outside the Form\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/Form.js\";\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n * - import @ui5/webcomponents/dist/FormItem.js\";\n *\n * @csspart header - Used to style the wrapper of the header.\n * @csspart layout - Used to style the element defining the form column layout.\n * @csspart column - Used to style a single column of the form column layout.\n *\n * @public\n * @since 2.0.0\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form\",\n\trenderer: jsxRenderer,\n\tstyles: FormCss,\n\ttemplate: FormTemplate,\n})\nclass Form extends UI5Element {\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines id (or many ids) of the element (or elements) that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessibility mode of the component in \"edit\" and \"display\" use-cases.\n\t *\n\t * Based on the mode, the component renders different HTML elements and ARIA attributes,\n\t * which are appropriate for the use-case.\n\t *\n\t * **Usage:**\n\t * - Set this property to \"Display\", when the form consists of non-editable (e.g. texts) form items.\n\t * - Set this property to \"Edit\", when the form consists of editable (e.g. input fields) form items.\n\t *\n\t * @default \"Display\"\n\t * @since 2.16.0\n\t * @public\n\t */\n\t@property()\n\taccessibleMode: `${FormAccessibleMode}` = \"Display\";\n\n\t/**\n\t * Defines the number of columns to distribute the form content by breakpoint.\n\t *\n\t * Supported values:\n\t * - `S` - 1 column by default (1 column is recommended)\n\t * - `M` - 1 column by default (up to 2 columns are recommended)\n\t * - `L` - 2 columns by default (up to 3 columns are recommended)\n\t * - `XL` - 3 columns by default (up to 6 columns are recommended)\n\t *\n\t * @default \"S1 M1 L2 XL3\"\n\t * @public\n\t */\n\t@property()\n\tlayout = \"S1 M1 L2 XL3\"\n\n\t/**\n\t * Defines the width proportion of the labels and fields of a form item by breakpoint.\n\t *\n\t * By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,\n\t * and 12/12 in S size, e.g in S the label is on top of its associated field.\n\t *\n\t * The supported values are between 1 and 12. Greater the number, more space the label will use.\n\t *\n\t * **Note:** If \"12\" is set, the label will be displayed on top of its assosiated field.\n\t *\n\t * @default \"S12 M4 L4 XL4\"\n\t * @public\n\t */\n\t@property()\n\tlabelSpan = \"S12 M4 L4 XL4\";\n\n\t/**\n\t * Defines the number of cells that are empty at the end of each form item, configurable by breakpoint.\n\t *\n\t * By default, a form item spans 12 cells, fully divided between its label (4 cells) and field (8 cells), with no empty space at the end.\n\t * The `emptySpan` provides additional layout flexibility by defining empty space at the form item’s end.\n\t *\n\t * **Note:**\n\t * - The maximum allowable empty space is 10 cells. At least 1 cell each must remain for the label and the field.\n\t * - When `emptySpan` is specified (greater than 0), ensure that the combined value of `emptySpan` and `labelSpan` does not exceed 11. This guarantees a minimum of 1 cell for the field.\n\t *\n\t * @default \"S0 M0 L0 XL0\"\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property()\n\temptySpan = \"S0 M0 L0 XL0\";\n\n\t/**\n\t * Defines the header text of the component.\n\t *\n\t * **Note:** The property gets overridden by the `header` slot.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the compoennt heading level,\n\t * set by the `headerText`.\n\t * @default \"H2\"\n\t * @since 2.10.0\n\t * @public\n\t*/\n\t@property()\n\theaderLevel: `${TitleLevel}` = \"H2\";\n\n\t/**\n\t * Defines the vertical spacing between form items.\n\t *\n\t * **Note:** If the Form is meant to be switched between \"display\"(\"non-edit\") and \"edit\" modes,\n\t * we recommend using \"Large\" item spacing in \"display\"(\"non-edit\") mode, and \"Normal\" - for \"edit\" mode,\n\t * to avoid \"jumping\" effect, caused by the hight difference between texts in \"display\"(\"non-edit\") mode and the input fields in \"edit\" mode.\n\t *\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\t/**\n\t * Defines the component header area.\n\t *\n\t * **Note:** When a `header` is provided, the `headerText` property is ignored.\n\t * @public\n\t */\n\t@slot()\n\theader!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the component content - FormGroups or FormItems.\n\t *\n\t * **Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\n\t * Either use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n\t *\n\t * **Note:** As of version 2.23.0 the support for standalone FormItems (not belonging to a group) is deprecated.\n\t * We recommend using FormGroups, as they provide better accessibility and layout options.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: DefaultSlot<IFormItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tcolumnsS = 1;\n\t@property({ type: Number, noAttribute: true })\n\tlabelSpanS = 12\n\t@property({ type: Number, noAttribute: true })\n\temptySpanS = 0\n\n\t@property({ type: Number, noAttribute: true })\n\tcolumnsM = 1;\n\t@property({ type: Number, noAttribute: true })\n\tlabelSpanM = 4;\n\t@property({ type: Number, noAttribute: true })\n\temptySpanM = 0\n\n\t@property({ type: Number, noAttribute: true })\n\tcolumnsL = 2;\n\t@property({ type: Number, noAttribute: true })\n\tlabelSpanL = 4;\n\t@property({ type: Number, noAttribute: true })\n\temptySpanL = 0\n\n\t@property({ type: Number, noAttribute: true })\n\tcolumnsXl = 3;\n\t@property({ type: Number, noAttribute: true })\n\tlabelSpanXl = 4;\n\t@property({ type: Number, noAttribute: true })\n\temptySpanXl = 0;\n\n\tonBeforeRendering() {\n\t\t// Parse the layout and set it to the FormGroups/FormItems.\n\t\tthis.parseLayoutConfiguration();\n\n\t\t// Define how many columns a group should take.\n\t\tthis.setGroupsColSpan();\n\n\t\t// Set item spacing\n\t\tthis.setItemsState();\n\t}\n\n\tonAfterRendering() {\n\t\tthis.setFastNavGroup();\n\t}\n\n\tparseLayoutConfiguration() {\n\t\tthis.layout.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.columnsS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.columnsM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.columnsL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.columnsXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\n\t\tthis.labelSpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.labelSpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.labelSpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.labelSpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.labelSpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\n\t\tthis.emptySpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.emptySpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.emptySpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.emptySpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.emptySpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\t}\n\n\tgetFormItemLayout(breakpoint: Breakpoint) {\n\t\tlet labelSpan,\n\t\t\temptySpan;\n\n\t\tif (breakpoint === \"S\") {\n\t\t\tlabelSpan = this.labelSpanS;\n\t\t\temptySpan = this.emptySpanS;\n\t\t} else if (breakpoint === \"M\") {\n\t\t\tlabelSpan = this.labelSpanM;\n\t\t\temptySpan = this.emptySpanM;\n\t\t} else if (breakpoint === \"L\") {\n\t\t\tlabelSpan = this.labelSpanL;\n\t\t\temptySpan = this.emptySpanL;\n\t\t} else if (breakpoint === \"XL\") {\n\t\t\tlabelSpan = this.labelSpanXl;\n\t\t\temptySpan = this.emptySpanXl;\n\t\t}\n\n\t\treturn getFormItemLayoutValue(breakpoint, labelSpan, emptySpan);\n\t}\n\n\tsetFastNavGroup() {\n\t\tif (this.hasGroupItems) {\n\t\t\tthis.removeAttribute(\"data-sap-ui-fastnavgroup\");\n\t\t} else {\n\t\t\tthis.setAttribute(\"data-sap-ui-fastnavgroup\", \"true\");\n\t\t}\n\t}\n\n\tsetGroupsColSpan() {\n\t\tif (!this.hasGroupItems) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsCount = this.items.length;\n\t\tconst sortedItems = [...this.items].sort((itemA: IFormItem, itemB: IFormItem) => {\n\t\t\treturn (itemB as FormGroup)?.items.length - (itemA as FormGroup)?.items.length;\n\t\t});\n\n\t\tsortedItems.forEach((item: IFormItem, idx: number) => {\n\t\t\titem.colsXl = getGroupsColSpan(this.columnsXl, itemsCount, idx, item, \"XL\");\n\t\t\titem.colsL = getGroupsColSpan(this.columnsL, itemsCount, idx, item, \"L\");\n\t\t\titem.colsM = getGroupsColSpan(this.columnsM, itemsCount, idx, item, \"M\");\n\t\t\titem.colsS = getGroupsColSpan(this.columnsS, itemsCount, idx, item, \"S\");\n\t\t});\n\t}\n\n\tsetItemsState() {\n\t\tthis.items.forEach((item: IFormItem) => {\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t\titem.accessibleMode = this.accessibleMode;\n\t\t});\n\t}\n\n\tget hasGroupItems(): boolean {\n\t\treturn this.items.some((item: IFormItem) => item.isGroup);\n\t}\n\n\tget hasHeader(): boolean {\n\t\treturn this.hasCustomHeader || this.hasHeaderText;\n\t}\n\n\tget hasHeaderText(): boolean {\n\t\treturn !!this.headerText;\n\t}\n\n\tget hasCustomHeader(): boolean {\n\t\treturn !!this.header.length;\n\t}\n\n\tget effectiveAccessibleName() {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn getEffectiveAriaLabelText(this);\n\t\t}\n\n\t\treturn this.hasHeader ? undefined : Form.i18nBundle.getText(FORM_ACCESSIBLE_NAME);\n\t}\n\n\tget effectiveAccessibleNameRef(): string | undefined {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.hasHeaderText && !this.hasCustomHeader ? `${this._id}-header-text` : undefined;\n\t}\n\n\tget effectiveAccessibleRole() {\n\t\treturn this.hasGroupItems ? \"region\" : \"form\";\n\t}\n\n\tget groupItemsInfo(): Array<GroupItemsInfo> {\n\t\treturn this.items.map((groupItem: IFormItem, index: number) => {\n\t\t\tconst accessibleNameRef = (groupItem as FormGroup).effectiveAccessibleNameRef;\n\n\t\t\treturn {\n\t\t\t\tgroupItem,\n\t\t\t\taccessibleName: this.accessibleMode === \"Edit\" ? (groupItem as FormGroup).getEffectiveAccessibleName(index) : undefined,\n\t\t\t\taccessibleNameInner: this.accessibleMode === \"Edit\" ? undefined : (groupItem as FormGroup).getEffectiveAccessibleName(index),\n\t\t\t\taccessibleNameRef: this.accessibleMode === \"Edit\" ? accessibleNameRef : undefined,\n\t\t\t\taccessibleNameRefInner: this.accessibleMode === \"Edit\" ? undefined : accessibleNameRef,\n\t\t\t\titems: this.getItemsInfo((Array.from(groupItem.children) as Array<IFormItem>)),\n\t\t\t\trole: this.accessibleMode === \"Edit\" ? \"form\" : undefined,\n\t\t\t};\n\t\t});\n\t}\n\n\tget itemsInfo(): Array<ItemsInfo> {\n\t\treturn this.getItemsInfo();\n\t}\n\n\tgetItemsInfo(items?: Array<IFormItem>): Array<ItemsInfo> {\n\t\treturn (items || this.items).map((item: IFormItem) => {\n\t\t\treturn {\n\t\t\t\titem,\n\t\t\t};\n\t\t});\n\t}\n}\n\nForm.define();\n\nexport default Form;\nexport type {\n\tIFormItem,\n};\n"]}
@@ -63,6 +63,7 @@ declare class FormGroup extends UI5Element implements IFormItem {
63
63
  * **Note:** This property is ignored if `columnSpan` is set, as it is expected that the column span is defined.
64
64
  *
65
65
  * @default undefined
66
+ * @since 2.23.0
66
67
  * @public
67
68
  */
68
69
  colSpan?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"FormGroup.js","sourceRoot":"","sources":["../src/FormGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\n\nimport type FormItem from \"./FormItem.js\";\nimport type { IFormItem } from \"./Form.js\";\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type TitleLevel from \"./types/TitleLevel.js\";\n\nimport { FORM_GROUP_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The FormGroup (ui5-form-group) represents a group inside the Form (ui5-form) component\n * and it consists of FormItem (ui5-form-item) components.\n *\n * The layout of the FormGroup is mostly defined and controlled by the overarching Form (ui5-form) component.\n * Still, one can influence the layout via the FormGroup's `columnSpan` property,\n * that defines how many columns the group should expand to.\n *\n * ### Usage\n *\n * Тhe FormGroup (ui5-form-group) allows to split a Form into groups,\n * e.g to group FormItems that logically belong together.\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n *\n * @public\n * @implements {IFormItem}\n * @since 2.0.0\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form-group\",\n\tfastNavigation: true,\n})\nclass FormGroup extends UI5Element implements IFormItem {\n\t/**\n\t * Defines header text of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the compoennt heading level,\n\t * set by the `headerText`.\n\t * @default \"H3\"\n\t * @public\n\t * @since 2.10.0\n\t*/\n\t@property()\n\theaderLevel: `${TitleLevel}` = \"H3\";\n\n\t/**\n\t * Defines column span of the component,\n\t * e.g how many columns the group should span to.\n\t *\n\t * **Note:** If this property is set, it has higher priority than `colSpan` and `colSpan` will be ignored.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ type: Number })\n\tcolumnSpan?: number;\n\n\t/**\n\t * Defines the number of columns to distribute the form content by breakpoint (S1 M2 L3 XL4 for example).\n\t *\n\t * **Note:** This property is ignored if `columnSpan` is set, as it is expected that the column span is defined.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tcolSpan?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines id (or many ids) of the element (or elements) that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the items of the component.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t})\n\titems!: DefaultSlot<FormItem>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\tcolsS = 1;\n\n\t@property({ type: Number })\n\tcolsM = 1;\n\n\t@property({ type: Number })\n\tcolsL = 1;\n\n\t@property({ type: Number })\n\tcolsXl = 1;\n\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tthis.processFormItems();\n\t}\n\n\tprocessFormItems() {\n\t\tthis.items.forEach((item: FormItem) => {\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t});\n\t}\n\n\tgetEffectiveAccessibleName(index: number) {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn getEffectiveAriaLabelText(this);\n\t\t}\n\n\t\tif (this.headerText) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn FormGroup.i18nBundle.getText(FORM_GROUP_ACCESSIBLE_NAME, index + 1);\n\t}\n\n\tget effectiveAccessibleNameRef() {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn this.headerText ? `${this._id}-group-header-text` : undefined;\n\t}\n\n\tget isGroup() {\n\t\treturn true;\n\t}\n}\n\nFormGroup.define();\n\nexport default FormGroup;\n"]}
1
+ {"version":3,"file":"FormGroup.js","sourceRoot":"","sources":["../src/FormGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\n\nimport type FormItem from \"./FormItem.js\";\nimport type { IFormItem } from \"./Form.js\";\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type TitleLevel from \"./types/TitleLevel.js\";\n\nimport { FORM_GROUP_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The FormGroup (ui5-form-group) represents a group inside the Form (ui5-form) component\n * and it consists of FormItem (ui5-form-item) components.\n *\n * The layout of the FormGroup is mostly defined and controlled by the overarching Form (ui5-form) component.\n * Still, one can influence the layout via the FormGroup's `columnSpan` property,\n * that defines how many columns the group should expand to.\n *\n * ### Usage\n *\n * Тhe FormGroup (ui5-form-group) allows to split a Form into groups,\n * e.g to group FormItems that logically belong together.\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n *\n * @public\n * @implements {IFormItem}\n * @since 2.0.0\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form-group\",\n\tfastNavigation: true,\n})\nclass FormGroup extends UI5Element implements IFormItem {\n\t/**\n\t * Defines header text of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the compoennt heading level,\n\t * set by the `headerText`.\n\t * @default \"H3\"\n\t * @public\n\t * @since 2.10.0\n\t*/\n\t@property()\n\theaderLevel: `${TitleLevel}` = \"H3\";\n\n\t/**\n\t * Defines column span of the component,\n\t * e.g how many columns the group should span to.\n\t *\n\t * **Note:** If this property is set, it has higher priority than `colSpan` and `colSpan` will be ignored.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ type: Number })\n\tcolumnSpan?: number;\n\n\t/**\n\t * Defines the number of columns to distribute the form content by breakpoint (S1 M2 L3 XL4 for example).\n\t *\n\t * **Note:** This property is ignored if `columnSpan` is set, as it is expected that the column span is defined.\n\t *\n\t * @default undefined\n\t * @since 2.23.0\n\t * @public\n\t */\n\t@property()\n\tcolSpan?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines id (or many ids) of the element (or elements) that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the items of the component.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t})\n\titems!: DefaultSlot<FormItem>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\tcolsS = 1;\n\n\t@property({ type: Number })\n\tcolsM = 1;\n\n\t@property({ type: Number })\n\tcolsL = 1;\n\n\t@property({ type: Number })\n\tcolsXl = 1;\n\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tthis.processFormItems();\n\t}\n\n\tprocessFormItems() {\n\t\tthis.items.forEach((item: FormItem) => {\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t});\n\t}\n\n\tgetEffectiveAccessibleName(index: number) {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn getEffectiveAriaLabelText(this);\n\t\t}\n\n\t\tif (this.headerText) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn FormGroup.i18nBundle.getText(FORM_GROUP_ACCESSIBLE_NAME, index + 1);\n\t}\n\n\tget effectiveAccessibleNameRef() {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn this.headerText ? `${this._id}-group-header-text` : undefined;\n\t}\n\n\tget isGroup() {\n\t\treturn true;\n\t}\n}\n\nFormGroup.define();\n\nexport default FormGroup;\n"]}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import Title from "./Title.js";
3
3
  export default function FormTemplate() {
4
- return (_jsxs("div", { class: "ui5-form-root", role: this.effectiveAccessibleRole, "aria-label": this.effectiveAccessibleName, "aria-labelledby": this.effectiveАccessibleNameRef, style: {
4
+ return (_jsxs("div", { class: "ui5-form-root", role: this.effectiveAccessibleRole, "aria-label": this.effectiveAccessibleName, "aria-labelledby": this.effectiveAccessibleNameRef, style: {
5
5
  "--ui5-form-columns-s": this.columnsS,
6
6
  "--ui5-form-columns-m": this.columnsM,
7
7
  "--ui5-form-columns-l": this.columnsL,
@@ -1 +1 @@
1
- {"version":3,"file":"FormTemplate.js","sourceRoot":"","sources":["../src/FormTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Form from \"./Form.js\";\nimport Title from \"./Title.js\";\n\nexport default function FormTemplate(this: Form) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-form-root\"\n\t\t\trole={this.effectiveAccessibleRole}\n\t\t\taria-label={this.effectiveAccessibleName}\n\t\t\taria-labelledby={this.effectiveАccessibleNameRef}\n\t\t\tstyle={{\n\t\t\t\t\"--ui5-form-columns-s\": this.columnsS,\n\t\t\t\t\"--ui5-form-columns-m\": this.columnsM,\n\t\t\t\t\"--ui5-form-columns-l\": this.columnsL,\n\t\t\t\t\"--ui5-form-columns-xl\": this.columnsXl,\n\t\t\t\t\"--ui5-form-item-layout-S\": this.getFormItemLayout(\"S\"),\n\t\t\t\t\"--ui5-form-item-layout-M\": this.getFormItemLayout(\"M\"),\n\t\t\t\t\"--ui5-form-item-layout-L\": this.getFormItemLayout(\"L\"),\n\t\t\t\t\"--ui5-form-item-layout-XL\": this.getFormItemLayout(\"XL\"),\n\t\t\t}}\n\t\t>\n\t\t\t{this.hasHeader &&\n\t\t\t\t<div class=\"ui5-form-header\" part=\"header\">\n\t\t\t\t\t{this.hasCustomHeader ?\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<Title id={`${this._id}-header-text`} level={this.headerLevel}>{this.headerText}</Title>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t{this.hasGroupItems ? groupedItemsLayout.call(this) : standaloneItemsLayout.call(this)}\n\t\t</div>\n\t);\n}\n\nfunction groupedItemsLayout(this: Form) {\n\treturn <div class=\"ui5-form-layout\" part=\"layout\">\n\t\t{this.groupItemsInfo.map(groupItemInfo => {\n\t\t\tconst groupItem = groupItemInfo.groupItem;\n\t\t\treturn <div\n\t\t\t\tclass=\"ui5-form-column\"\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--ui5-form-column-span-s\": groupItem.colsS,\n\t\t\t\t\t\"--ui5-form-column-span-m\": groupItem.colsM,\n\t\t\t\t\t\"--ui5-form-column-span-l\": groupItem.colsL,\n\t\t\t\t\t\"--ui5-form-column-span-xl\": groupItem.colsXl,\n\t\t\t\t}}\n\t\t\t\tpart=\"column\"\n\t\t\t>\n\t\t\t\t<div class=\"ui5-form-group\"\n\t\t\t\t\trole={groupItemInfo.role}\n\t\t\t\t\taria-labelledby={groupItemInfo.accessibleNameRef}\n\t\t\t\t\taria-label={groupItemInfo.accessibleName}\n\t\t\t\t>\n\t\t\t\t\t{groupItem.headerText &&\n\t\t\t\t\t\t<div class=\"ui5-form-group-heading\">\n\t\t\t\t\t\t\t<Title id={`${groupItem._id}-group-header-text`} level={groupItem.headerLevel} size=\"H6\">{groupItem.headerText}</Title>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t{this.accessibleMode === \"Edit\" ?\n\t\t\t\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<dl class=\"ui5-form-group-layout\" aria-labelledby={groupItemInfo.accessibleNameRefInner} aria-label={groupItemInfo.accessibleNameInner}>\n\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>;\n\t\t})}\n\t</div>;\n}\n\nfunction standaloneItemsLayout(this: Form) {\n\tconst column = <div\n\t\tclass=\"ui5-form-column\"\n\t\tstyle={{\n\t\t\t\"--ui5-form-column-span-s\": this.columnsS,\n\t\t\t\"--ui5-form-column-span-m\": this.columnsM,\n\t\t\t\"--ui5-form-column-span-l\": this.columnsL,\n\t\t\t\"--ui5-form-column-span-xl\": this.columnsXl,\n\t\t}}\n\t\tpart=\"column\"\n\t>\n\t\t{this.accessibleMode === \"Edit\" ?\n\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t{standaloneItemsLayoutContent.call(this)}\n\t\t\t</div>\n\t\t\t:\n\t\t\t<dl class=\"ui5-form-group-layout\">\n\t\t\t\t{standaloneItemsLayoutContent.call(this)}\n\t\t\t</dl>\n\t\t}\n\t</div>;\n\n\treturn <div class=\"ui5-form-layout\" part=\"layout\">{column}</div>;\n}\n\nfunction standaloneItemsLayoutContent(this: Form) {\n\treturn this.itemsInfo.map(itemInfo => {\n\t\tconst item = itemInfo.item;\n\t\treturn (\n\t\t\t<div class=\"ui5-form-item\">\n\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t</div >\n\t\t);\n\t});\n}\n"]}
1
+ {"version":3,"file":"FormTemplate.js","sourceRoot":"","sources":["../src/FormTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Form from \"./Form.js\";\nimport Title from \"./Title.js\";\n\nexport default function FormTemplate(this: Form) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-form-root\"\n\t\t\trole={this.effectiveAccessibleRole}\n\t\t\taria-label={this.effectiveAccessibleName}\n\t\t\taria-labelledby={this.effectiveAccessibleNameRef}\n\t\t\tstyle={{\n\t\t\t\t\"--ui5-form-columns-s\": this.columnsS,\n\t\t\t\t\"--ui5-form-columns-m\": this.columnsM,\n\t\t\t\t\"--ui5-form-columns-l\": this.columnsL,\n\t\t\t\t\"--ui5-form-columns-xl\": this.columnsXl,\n\t\t\t\t\"--ui5-form-item-layout-S\": this.getFormItemLayout(\"S\"),\n\t\t\t\t\"--ui5-form-item-layout-M\": this.getFormItemLayout(\"M\"),\n\t\t\t\t\"--ui5-form-item-layout-L\": this.getFormItemLayout(\"L\"),\n\t\t\t\t\"--ui5-form-item-layout-XL\": this.getFormItemLayout(\"XL\"),\n\t\t\t}}\n\t\t>\n\t\t\t{this.hasHeader &&\n\t\t\t\t<div class=\"ui5-form-header\" part=\"header\">\n\t\t\t\t\t{this.hasCustomHeader ?\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<Title id={`${this._id}-header-text`} level={this.headerLevel}>{this.headerText}</Title>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t{this.hasGroupItems ? groupedItemsLayout.call(this) : standaloneItemsLayout.call(this)}\n\t\t</div>\n\t);\n}\n\nfunction groupedItemsLayout(this: Form) {\n\treturn <div class=\"ui5-form-layout\" part=\"layout\">\n\t\t{this.groupItemsInfo.map(groupItemInfo => {\n\t\t\tconst groupItem = groupItemInfo.groupItem;\n\t\t\treturn <div\n\t\t\t\tclass=\"ui5-form-column\"\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--ui5-form-column-span-s\": groupItem.colsS,\n\t\t\t\t\t\"--ui5-form-column-span-m\": groupItem.colsM,\n\t\t\t\t\t\"--ui5-form-column-span-l\": groupItem.colsL,\n\t\t\t\t\t\"--ui5-form-column-span-xl\": groupItem.colsXl,\n\t\t\t\t}}\n\t\t\t\tpart=\"column\"\n\t\t\t>\n\t\t\t\t<div class=\"ui5-form-group\"\n\t\t\t\t\trole={groupItemInfo.role}\n\t\t\t\t\taria-labelledby={groupItemInfo.accessibleNameRef}\n\t\t\t\t\taria-label={groupItemInfo.accessibleName}\n\t\t\t\t>\n\t\t\t\t\t{groupItem.headerText &&\n\t\t\t\t\t\t<div class=\"ui5-form-group-heading\">\n\t\t\t\t\t\t\t<Title id={`${groupItem._id}-group-header-text`} level={groupItem.headerLevel} size=\"H6\">{groupItem.headerText}</Title>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t{this.accessibleMode === \"Edit\" ?\n\t\t\t\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<dl class=\"ui5-form-group-layout\" aria-labelledby={groupItemInfo.accessibleNameRefInner} aria-label={groupItemInfo.accessibleNameInner}>\n\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>;\n\t\t})}\n\t</div>;\n}\n\nfunction standaloneItemsLayout(this: Form) {\n\tconst column = <div\n\t\tclass=\"ui5-form-column\"\n\t\tstyle={{\n\t\t\t\"--ui5-form-column-span-s\": this.columnsS,\n\t\t\t\"--ui5-form-column-span-m\": this.columnsM,\n\t\t\t\"--ui5-form-column-span-l\": this.columnsL,\n\t\t\t\"--ui5-form-column-span-xl\": this.columnsXl,\n\t\t}}\n\t\tpart=\"column\"\n\t>\n\t\t{this.accessibleMode === \"Edit\" ?\n\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t{standaloneItemsLayoutContent.call(this)}\n\t\t\t</div>\n\t\t\t:\n\t\t\t<dl class=\"ui5-form-group-layout\">\n\t\t\t\t{standaloneItemsLayoutContent.call(this)}\n\t\t\t</dl>\n\t\t}\n\t</div>;\n\n\treturn <div class=\"ui5-form-layout\" part=\"layout\">{column}</div>;\n}\n\nfunction standaloneItemsLayoutContent(this: Form) {\n\treturn this.itemsInfo.map(itemInfo => {\n\t\tconst item = itemInfo.item;\n\t\treturn (\n\t\t\t<div class=\"ui5-form-item\">\n\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t</div >\n\t\t);\n\t});\n}\n"]}
@@ -1,11 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import ListItemGroupHeader from "./ListItemGroupHeader.js";
3
3
  import DropIndicator from "./DropIndicator.js";
4
- import ListItemAccessibleRole from "./types/ListItemAccessibleRole.js";
5
4
  export default function ListItemGroupTemplate(hooks) {
6
5
  const items = hooks?.items || defaultItems;
7
6
  return (_jsxs("ul", { role: "group", class: "ui5-group-li-root", onDragEnter: this._ondragenter, onDragOver: this._ondragover, onDrop: this._ondrop, onDragLeave: this._ondragleave, children: [this.hasHeader &&
8
- _jsx(ListItemGroupHeader, { focused: this.focused, part: "header", accessibleRole: ListItemAccessibleRole.Group, wrappingType: this.getGroupHeaderWrapping(), children: this.hasFormattedHeader ? _jsx("slot", { name: "header" }) : this.headerText }), items.call(this), _jsx(DropIndicator, { orientation: "Horizontal", ownerReference: this })] }));
7
+ _jsx(ListItemGroupHeader, { focused: this.focused, part: "header", accessibleRole: "Group", wrappingType: this.getGroupHeaderWrapping(), children: this.hasFormattedHeader ? _jsx("slot", { name: "header" }) : this.headerText }), items.call(this), _jsx(DropIndicator, { orientation: "Horizontal", ownerReference: this })] }));
9
8
  }
10
9
  function defaultItems() {
11
10
  return _jsx("slot", {});
@@ -1 +1 @@
1
- {"version":3,"file":"ListBoxItemGroupTemplate.js","sourceRoot":"","sources":["../src/ListBoxItemGroupTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AAEvE,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAsB,KAA6B;IAC/F,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,YAAY,CAAC;IAE3C,OAAO,CACN,cACC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,mBAAmB,EACzB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,MAAM,EAAE,IAAI,CAAC,OAAO,EACpB,WAAW,EAAE,IAAI,CAAC,YAAY,aAE7B,IAAI,CAAC,SAAS;gBACd,KAAC,mBAAmB,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAC,QAAQ,EAAC,cAAc,EAAE,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAChJ,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAM,IAAI,EAAC,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GACpD,EAGrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAElB,KAAC,aAAa,IAAC,WAAW,EAAC,YAAY,EAAC,cAAc,EAAE,IAAI,GAAG,IAC3D,CACL,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACpB,OAAO,gBAAa,CAAC;AACtB,CAAC","sourcesContent":["import type ListItemGroup from \"./ListItemGroup.js\";\nimport ListItemGroupHeader from \"./ListItemGroupHeader.js\";\nimport DropIndicator from \"./DropIndicator.js\";\nimport ListItemAccessibleRole from \"./types/ListItemAccessibleRole.js\";\n\nexport default function ListItemGroupTemplate(this: ListItemGroup, hooks?: { items: () => void }) {\n\tconst items = hooks?.items || defaultItems;\n\n\treturn (\n\t\t<ul\n\t\t\trole=\"group\"\n\t\t\tclass=\"ui5-group-li-root\"\n\t\t\tonDragEnter={this._ondragenter}\n\t\t\tonDragOver={this._ondragover}\n\t\t\tonDrop={this._ondrop}\n\t\t\tonDragLeave={this._ondragleave}\n\t\t>\n\t\t\t{this.hasHeader &&\n\t\t\t\t<ListItemGroupHeader focused={this.focused} part=\"header\" accessibleRole={ListItemAccessibleRole.Group} wrappingType={this.getGroupHeaderWrapping()} >\n\t\t\t\t\t{ this.hasFormattedHeader ? <slot name=\"header\"></slot> : this.headerText }\n\t\t\t\t</ListItemGroupHeader>\n\t\t\t}\n\n\t\t\t{ items.call(this) }\n\n\t\t\t<DropIndicator orientation=\"Horizontal\" ownerReference={this}/>\n\t\t</ul>\n\t);\n}\n\nfunction defaultItems(this: ListItemGroup) {\n\treturn <slot></slot>;\n}\n"]}
1
+ {"version":3,"file":"ListBoxItemGroupTemplate.js","sourceRoot":"","sources":["../src/ListBoxItemGroupTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAsB,KAA6B;IAC/F,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,YAAY,CAAC;IAE3C,OAAO,CACN,cACC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,mBAAmB,EACzB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,MAAM,EAAE,IAAI,CAAC,OAAO,EACpB,WAAW,EAAE,IAAI,CAAC,YAAY,aAE7B,IAAI,CAAC,SAAS;gBACd,KAAC,mBAAmB,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAC,QAAQ,EAAC,cAAc,EAAC,OAAO,EAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,EAAE,YACzH,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAM,IAAI,EAAC,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GACpD,EAGrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAElB,KAAC,aAAa,IAAC,WAAW,EAAC,YAAY,EAAC,cAAc,EAAE,IAAI,GAAG,IAC3D,CACL,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACpB,OAAO,gBAAa,CAAC;AACtB,CAAC","sourcesContent":["import type ListItemGroup from \"./ListItemGroup.js\";\nimport ListItemGroupHeader from \"./ListItemGroupHeader.js\";\nimport DropIndicator from \"./DropIndicator.js\";\n\nexport default function ListItemGroupTemplate(this: ListItemGroup, hooks?: { items: () => void }) {\n\tconst items = hooks?.items || defaultItems;\n\n\treturn (\n\t\t<ul\n\t\t\trole=\"group\"\n\t\t\tclass=\"ui5-group-li-root\"\n\t\t\tonDragEnter={this._ondragenter}\n\t\t\tonDragOver={this._ondragover}\n\t\t\tonDrop={this._ondrop}\n\t\t\tonDragLeave={this._ondragleave}\n\t\t>\n\t\t\t{this.hasHeader &&\n\t\t\t\t<ListItemGroupHeader focused={this.focused} part=\"header\" accessibleRole=\"Group\" wrappingType={this.getGroupHeaderWrapping()} >\n\t\t\t\t\t{ this.hasFormattedHeader ? <slot name=\"header\"></slot> : this.headerText }\n\t\t\t\t</ListItemGroupHeader>\n\t\t\t}\n\n\t\t\t{ items.call(this) }\n\n\t\t\t<DropIndicator orientation=\"Horizontal\" ownerReference={this}/>\n\t\t</ul>\n\t);\n}\n\nfunction defaultItems(this: ListItemGroup) {\n\treturn <slot></slot>;\n}\n"]}
@@ -123,9 +123,9 @@ declare abstract class ListItem extends ListItemBase {
123
123
  * An explicitly set `accessible-role` on the list item takes precedence over the inherited role.
124
124
  * @default undefined
125
125
  * @public
126
- * @since 1.3.0
126
+ * @since 2.23.0
127
127
  */
128
- accessibleRole?: `${Exclude<ListItemAccessibleRole, ListItemAccessibleRole.Group>}`;
128
+ accessibleRole?: `${ListItemAccessibleRole}`;
129
129
  _forcedAccessibleRole?: string;
130
130
  _inheritedAccessibleRole?: string;
131
131
  _selectionMode: `${ListSelectionMode}`;
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../src/ListItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport {\n\tisSpace, isEnter, isDelete, isF2,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport type { AccessibilityAttributes, AriaRole, AriaHasPopup } from \"@ui5/webcomponents-base\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport DragRegistry from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport Highlight from \"./types/Highlight.js\";\nimport ListItemType from \"./types/ListItemType.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport type RadioButton from \"./RadioButton.js\";\nimport type CheckBox from \"./CheckBox.js\";\nimport type { IButton } from \"./Button.js\";\nimport {\n\tDELETE,\n\tARIA_LABEL_LIST_ITEM_CHECKBOX,\n\tARIA_LABEL_LIST_ITEM_RADIO_BUTTON,\n\tLIST_ITEM_ACTIVE,\n\tLIST_ITEM_SELECTED,\n\tLIST_ITEM_NOT_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type ListItemAccessibleRole from \"./types/ListItemAccessibleRole.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItem.css.js\";\nimport listItemAdditionalTextCss from \"./generated/themes/ListItemAdditionalText.css.js\";\n\n// Icons\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\ninterface IAccessibleListItem {\n\taccessibleName?: string;\n\taccessibleNameRef?: string;\n}\n\ntype SelectionRequestEventDetail = {\n\titem: ListItemBase,\n\tselectionComponentPressed: boolean,\n\tselected?: boolean,\n\tkey?: string,\n}\n\ntype AccInfo = {\n\trole?: AriaRole | undefined;\n\tariaExpanded?: boolean;\n\tariaLevel?: number;\n\tariaLabel: string;\n\tariaLabelRadioButton: string;\n\tariaSelectedText?: string;\n\tariaHaspopup?: `${AriaHasPopup}`;\n\tposinset?: number;\n\tsetsize?: number;\n\tariaSelected?: boolean;\n\tariaChecked?: boolean;\n\tlistItemAriaLabel?: string;\n\tariaOwns?: string;\n\ttooltip?: string;\n\tariaKeyShortcuts?: string;\n\tariaDescribedBy?: string;\n}\n\ntype ListItemAccessibilityAttributes = Pick<AccessibilityAttributes, \"hasPopup\" | \"ariaSetsize\" | \"ariaPosinset\">;\n\n/**\n * @class\n * A class to serve as a base\n * for the `ListItemStandard` and `ListItemCustom` classes.\n * @constructor\n * @abstract\n * @extends ListItemBase\n * @public\n */\n@customElement({\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tlistItemAdditionalTextCss,\n\t\tstyles,\n\t],\n})\n/**\n * Fired when the user clicks on the detail button when type is `Detail`.\n * @public\n */\n@event(\"detail-click\", {\n\tbubbles: true,\n})\n@event(\"selection-requested\", {\n\tbubbles: true,\n})\nabstract class ListItem extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"] & {\n\t\t\"detail-click\": { item: ListItem, selected: boolean };\n\t\t\"selection-requested\": SelectionRequestEventDetail,\n\t}\n\t/**\n\t * Defines the visual indication and behavior of the list items.\n\t * Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.\n\t *\n\t * **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,\n\t * while with type `Inactive` and `Detail` - will not.\n\t * @default \"Active\"\n\t * @public\n\t*/\n\t@property()\n\ttype: `${ListItemType}` = \"Active\";\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **ariaSetsize**: Defines the number of items in the current set when not all items in the set are present in the DOM.\n\t * **Note:** The value is an integer reflecting the number of items in the complete set. If the size of the entire set is unknown, set `-1`.\n\t *\n\t * \t- **ariaPosinset**: Defines an element's number or position in the current set when not all items are present in the DOM.\n\t * \t**Note:** The value is an integer greater than or equal to 1, and less than or equal to the size of the set when that size is known.\n\t *\n\t * @default {}\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ListItemAccessibilityAttributes = {};\n\n\t/**\n\t * The navigated state of the list item.\n\t * If set to `true`, a navigation indicator is displayed at the end of the list item.\n\t * @default false\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines the text of the tooltip that would be displayed for the list item.\n\t * @default undefined\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Indicates if the list item is active, e.g pressed down with the mouse or the keyboard keys.\n\t * @private\n\t*/\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines the highlight state of the list items.\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\thighlight: `${Highlight}` = \"None\";\n\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdeclare selected: boolean;\n\n\t/**\n\t * Used to define the role of the list item.\n\t *\n\t * **Note:** If not set, the role is automatically inherited from the parent `ui5-list` based on its `accessible-role` property\n\t * (e.g. `Menu` -> `MenuItem`, `Tree` -> `TreeItem`, `ListBox` -> `Option`).\n\t * An explicitly set `accessible-role` on the list item takes precedence over the inherited role.\n\t * @default undefined\n\t * @public\n\t * @since 1.3.0\n\t */\n\t@property()\n\taccessibleRole?: `${Exclude<ListItemAccessibleRole, ListItemAccessibleRole.Group>}`;\n\n\t@property()\n\t_forcedAccessibleRole?: string;\n\n\t@property({ noAttribute: true })\n\t_inheritedAccessibleRole?: string;\n\n\t@property()\n\t_selectionMode: `${ListSelectionMode}` = \"None\";\n\n\t/**\n\t * Indicates whether the list item is in edit mode.\n\t * When active, Tab cycles through internal focusable elements\n\t * instead of navigating to the next list item.\n\t * Toggled by F2; also set by the parent List on F7.\n\t * @private\n\t */\n\t_editMode = false;\n\n\t/**\n\t * Defines the current media query size.\n\t * @default \"S\"\n\t * @private\n\t */\n\t@property()\n\tmediaRange = \"S\";\n\n\t/**\n\t * Defines the delete button, displayed in \"Delete\" mode.\n\t * **Note:** While the slot allows custom buttons, to match\n\t * design guidelines, please use the `ui5-button` component.\n\t * **Note:** When the slot is not present, a built-in delete button will be displayed.\n\t * @since 1.9.0\n\t * @public\n\t*/\n\t@slot()\n\tdeleteButton!: Slot<IButton>;\n\n\tdeactivateByKey: (e: KeyboardEvent) => void;\n\tdeactivate: () => void;\n\t// used in template, implemented in TreeItemBase, ListItemStandard\n\taccessibleName?: string;\n\t// used in ListItem template but implemented in TreeItemBase\n\tindeterminate?: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.deactivateByKey = (e: KeyboardEvent) => {\n\t\t\tif (isEnter(e)) {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t};\n\n\t\tthis.deactivate = () => {\n\t\t\tif (this.active) {\n\t\t\t\tthis.active = false;\n\t\t\t}\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.actionable = (this.type === ListItemType.Active || this.type === ListItemType.Navigation) && (this._selectionMode !== ListSelectionMode.Delete);\n\t}\n\n\tonEnterDOM() {\n\t\tsuper.onEnterDOM();\n\t\tdocument.addEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.addEventListener(\"touchend\", this.deactivate);\n\t\tdocument.addEventListener(\"keyup\", this.deactivateByKey);\n\t}\n\n\tonExitDOM() {\n\t\tdocument.removeEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.removeEventListener(\"keyup\", this.deactivateByKey);\n\t\tdocument.removeEventListener(\"touchend\", this.deactivate);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isInternalElementFocused = e.target !== this.getFocusDomRef();\n\n\t\tif ((isSpace(e) || isEnter(e)) && isInternalElementFocused) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._onkeydown(e);\n\n\t\tconst itemActive = this.type === ListItemType.Active,\n\t\t\titemNavigated = this.typeNavigation;\n\n\t\tif ((isSpace(e) || isEnter(e)) && (itemActive || itemNavigated)) {\n\t\t\tthis.activate();\n\t\t}\n\n\t\tif (isF2(e)) {\n\t\t\tthis._handleF2();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis.deactivate();\n\t\t}\n\n\t\tif (this.modeDelete && isDelete(e)) {\n\t\t\tthis.onDelete();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tthis.activate();\n\t}\n\n\t_onmouseup() {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\t\tthis.deactivate();\n\t}\n\n\t_ontouchend() {\n\t\tthis._onmouseup();\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\tthis.deactivate();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tif (this._editMode) {\n\t\t\tconst relatedTarget = e.relatedTarget as Node;\n\t\t\tif (!relatedTarget || !(this.contains(relatedTarget) || this.shadowRoot!.contains(relatedTarget))) {\n\t\t\t\tthis._editMode = false;\n\t\t\t}\n\t\t}\n\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.deactivate();\n\t}\n\n\t_ondragstart(e: DragEvent) {\n\t\tif (!e.dataTransfer) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.target === this._listItem) {\n\t\t\tDragRegistry.setDraggedElement(this, e);\n\t\t\tthis.setAttribute(\"data-moving\", \"\");\n\t\t\te.dataTransfer.dropEffect = \"move\";\n\t\t\te.dataTransfer.effectAllowed = \"move\";\n\t\t}\n\t}\n\n\t_ondragend(e: DragEvent) {\n\t\tif (e.target === this._listItem) {\n\t\t\tDragRegistry.clearDraggedElement();\n\t\t\tthis.removeAttribute(\"data-moving\");\n\t\t}\n\t}\n\n\t/**\n\t * Called when selection components in Single (ui5-radio-button)\n\t * and Multi (ui5-checkbox) selection modes are used.\n\t */\n\tonMultiSelectionComponentPress(e: CustomEvent) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selected: (e.target as CheckBox).checked, selectionComponentPressed: true });\n\t}\n\n\tonSingleSelectionComponentPress(e: CustomEvent) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selected: !(e.target as RadioButton).checked, selectionComponentPressed: true });\n\t}\n\n\tactivate() {\n\t\tif (this.type === ListItemType.Active || this.type === ListItemType.Navigation) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\tonDelete() {\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selectionComponentPressed: false });\n\t}\n\n\tonDetailClick() {\n\t\tthis.fireDecoratorEvent(\"detail-click\", { item: this, selected: this.selected });\n\t}\n\n\tfireItemPress(e: Event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.fireItemPress(e);\n\t\tif (document.activeElement !== this) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\tget isInactive() {\n\t\treturn this.type === ListItemType.Inactive || this.type === ListItemType.Detail;\n\t}\n\n\tget placeSelectionElementBefore() {\n\t\treturn this._selectionMode === ListSelectionMode.Multiple\n\t\t\t|| this._selectionMode === ListSelectionMode.SingleStart;\n\t}\n\n\tget placeSelectionElementAfter() {\n\t\treturn !this.placeSelectionElementBefore\n\t\t\t&& (this._selectionMode === ListSelectionMode.SingleEnd || this._selectionMode === ListSelectionMode.Delete);\n\t}\n\n\tget modeSingleSelect() {\n\t\treturn [\n\t\t\tListSelectionMode.SingleStart,\n\t\t\tListSelectionMode.SingleEnd,\n\t\t\tListSelectionMode.Single,\n\t\t].includes(this._selectionMode as ListSelectionMode);\n\t}\n\n\tget modeMultiple() {\n\t\treturn this._selectionMode === ListSelectionMode.Multiple;\n\t}\n\n\tget modeDelete() {\n\t\treturn this._selectionMode === ListSelectionMode.Delete;\n\t}\n\n\tget typeDetail() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n\n\tget typeNavigation() {\n\t\treturn this.type === ListItemType.Navigation;\n\t}\n\n\tget typeActive() {\n\t\treturn this.type === ListItemType.Active;\n\t}\n\n\tget _ariaSelected() {\n\t\tif (this.modeMultiple || this.modeSingleSelect) {\n\t\t\treturn this.selected;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget listItemAccessibleRole() {\n\t\tif (this._forcedAccessibleRole) {\n\t\t\treturn this._forcedAccessibleRole as AriaRole;\n\t\t}\n\t\tif (this.accessibleRole) {\n\t\t\treturn this.accessibleRole.toLowerCase() as AriaRole;\n\t\t}\n\t\treturn (this._inheritedAccessibleRole || \"listitem\") as AriaRole;\n\t}\n\n\tget ariaSelectedText() {\n\t\tlet ariaSelectedText;\n\n\t\t// Selected state needs to be supported separately since now the role mapping is list -> listitem[]\n\t\t// to avoid the issue of nesting interactive elements, ex. (option -> radio/checkbox);\n\t\t// The text is added to aria-describedby because as part of the aria-labelledby\n\t\t// the whole content of the item is readout when the aria-labelledby value is changed.\n\t\tif (this._ariaSelected !== undefined) {\n\t\t\tariaSelectedText = this._ariaSelected ? ListItem.i18nBundle.getText(LIST_ITEM_SELECTED) : ListItem.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);\n\t\t}\n\n\t\treturn ariaSelectedText;\n\t}\n\n\tget deleteText() {\n\t\treturn ListItem.i18nBundle.getText(DELETE);\n\t}\n\n\tget hasDeleteButtonSlot() {\n\t\treturn !!this.deleteButton.length;\n\t}\n\n\tget _accessibleNameRef(): string {\n\t\tif ((this as IAccessibleListItem).accessibleName) {\n\t\t\t// accessibleName is set - return labels excluding content\n\t\t\treturn `${this._id}-invisibleText`;\n\t\t}\n\n\t\t// accessibleName is not set - return _accInfo.listItemAriaLabel including content\n\t\treturn `${this._id}-content ${this._id}-invisibleText`;\n\t}\n\n\tget ariaLabelledByText() {\n\t\tconst texts = [\n\t\t\tthis._accInfo.listItemAriaLabel,\n\t\t\tthis.accessibleName,\n\t\t\tthis.typeActive ? ListItem.i18nBundle.getText(LIST_ITEM_ACTIVE) : undefined,\n\t\t].filter(Boolean);\n\n\t\treturn texts.join(\" \");\n\t}\n\n\tget _ariaDescribedByIds() {\n\t\treturn `${this._id}-invisibleText-describedby`;\n\t}\n\n\tget _accInfo(): AccInfo {\n\t\treturn {\n\t\t\trole: this.listItemAccessibleRole,\n\t\t\tariaExpanded: undefined,\n\t\t\tariaLevel: undefined,\n\t\t\tariaLabel: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_CHECKBOX),\n\t\t\tariaLabelRadioButton: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_RADIO_BUTTON),\n\t\t\tariaSelectedText: this.ariaSelectedText,\n\t\t\tariaHaspopup: this.accessibilityAttributes.hasPopup,\n\t\t\tsetsize: this.accessibilityAttributes.ariaSetsize,\n\t\t\tposinset: this.accessibilityAttributes.ariaPosinset,\n\t\t\ttooltip: this.tooltip,\n\t\t\tariaDescribedBy: this._ariaDescribedByIds || undefined,\n\t\t};\n\t}\n\n\tget _hasHighlightColor() {\n\t\treturn this.highlight !== Highlight.None;\n\t}\n\n\tget hasConfigurableMode() {\n\t\treturn true;\n\t}\n\n\tget _listItem() {\n\t\treturn this.shadowRoot!.querySelector(\"li\");\n\t}\n\n\t_handleF2() {\n\t\tconst focusDomRef = this.getFocusDomRef()!;\n\n\t\tif (getActiveElement() === focusDomRef) {\n\t\t\tconst focusables = this._getFocusableElements();\n\t\t\tif (!focusables.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._editMode = true;\n\t\t\tfocusables[0].focus();\n\t\t} else {\n\t\t\tthis._editMode = false;\n\t\t\tfocusDomRef.focus();\n\t\t}\n\t}\n\n\t_handleTabNext(e: KeyboardEvent) {\n\t\tif (this._editMode) {\n\t\t\tconst focusables = this._getFocusableElements();\n\t\t\tconst currentIndex = this._indexOfActiveElement(focusables);\n\t\t\tconst nextIndex = currentIndex + 1;\n\n\t\t\tif (currentIndex !== -1 && nextIndex < focusables.length) {\n\t\t\t\te.preventDefault();\n\t\t\t\tfocusables[nextIndex].focus();\n\t\t\t} else if (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_handleTabPrevious(e: KeyboardEvent) {\n\t\tif (this._editMode) {\n\t\t\tconst focusables = this._getFocusableElements();\n\t\t\tconst currentIndex = this._indexOfActiveElement(focusables);\n\t\t\tif (currentIndex > 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\tfocusables[currentIndex - 1].focus();\n\t\t\t} else if (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_getFocusableElements(): HTMLElement[] {\n\t\tconst focusDomRef = this.getFocusDomRef()!;\n\t\treturn getTabbableElements(focusDomRef);\n\t}\n\n\t_indexOfActiveElement(focusables: HTMLElement[]): number {\n\t\tconst activeElement = getActiveElement() as HTMLElement;\n\t\treturn focusables.findIndex(el => el === activeElement || (el.shadowRoot !== null && el.shadowRoot.contains(activeElement)));\n\t}\n\n\t_getFocusedElementIndex(): number {\n\t\treturn this._indexOfActiveElement(this._getFocusableElements());\n\t}\n\n\t_hasFocusableElements(): boolean {\n\t\treturn this._getFocusableElements().length > 0;\n\t}\n\n\t_isFocusOnInternalElement(): boolean {\n\t\treturn this._indexOfActiveElement(this._getFocusableElements()) !== -1;\n\t}\n\n\t_focusInternalElement(targetIndex: number) {\n\t\tconst focusables = this._getFocusableElements();\n\t\tif (!focusables.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst safeIndex = Math.min(targetIndex, focusables.length - 1);\n\t\tconst elementToFocus = focusables[safeIndex];\n\n\t\telementToFocus.focus();\n\n\t\treturn safeIndex;\n\t}\n}\n\nexport default ListItem;\nexport type {\n\tIAccessibleListItem,\n\tSelectionRequestEventDetail,\n\tListItemAccessibilityAttributes,\n};\n"]}
1
+ {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../src/ListItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport {\n\tisSpace, isEnter, isDelete, isF2,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport type { AccessibilityAttributes, AriaRole, AriaHasPopup } from \"@ui5/webcomponents-base\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport DragRegistry from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport Highlight from \"./types/Highlight.js\";\nimport ListItemType from \"./types/ListItemType.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport type RadioButton from \"./RadioButton.js\";\nimport type CheckBox from \"./CheckBox.js\";\nimport type { IButton } from \"./Button.js\";\nimport {\n\tDELETE,\n\tARIA_LABEL_LIST_ITEM_CHECKBOX,\n\tARIA_LABEL_LIST_ITEM_RADIO_BUTTON,\n\tLIST_ITEM_ACTIVE,\n\tLIST_ITEM_SELECTED,\n\tLIST_ITEM_NOT_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type ListItemAccessibleRole from \"./types/ListItemAccessibleRole.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItem.css.js\";\nimport listItemAdditionalTextCss from \"./generated/themes/ListItemAdditionalText.css.js\";\n\n// Icons\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\ninterface IAccessibleListItem {\n\taccessibleName?: string;\n\taccessibleNameRef?: string;\n}\n\ntype SelectionRequestEventDetail = {\n\titem: ListItemBase,\n\tselectionComponentPressed: boolean,\n\tselected?: boolean,\n\tkey?: string,\n}\n\ntype AccInfo = {\n\trole?: AriaRole | undefined;\n\tariaExpanded?: boolean;\n\tariaLevel?: number;\n\tariaLabel: string;\n\tariaLabelRadioButton: string;\n\tariaSelectedText?: string;\n\tariaHaspopup?: `${AriaHasPopup}`;\n\tposinset?: number;\n\tsetsize?: number;\n\tariaSelected?: boolean;\n\tariaChecked?: boolean;\n\tlistItemAriaLabel?: string;\n\tariaOwns?: string;\n\ttooltip?: string;\n\tariaKeyShortcuts?: string;\n\tariaDescribedBy?: string;\n}\n\ntype ListItemAccessibilityAttributes = Pick<AccessibilityAttributes, \"hasPopup\" | \"ariaSetsize\" | \"ariaPosinset\">;\n\n/**\n * @class\n * A class to serve as a base\n * for the `ListItemStandard` and `ListItemCustom` classes.\n * @constructor\n * @abstract\n * @extends ListItemBase\n * @public\n */\n@customElement({\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tlistItemAdditionalTextCss,\n\t\tstyles,\n\t],\n})\n/**\n * Fired when the user clicks on the detail button when type is `Detail`.\n * @public\n */\n@event(\"detail-click\", {\n\tbubbles: true,\n})\n@event(\"selection-requested\", {\n\tbubbles: true,\n})\nabstract class ListItem extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"] & {\n\t\t\"detail-click\": { item: ListItem, selected: boolean };\n\t\t\"selection-requested\": SelectionRequestEventDetail,\n\t}\n\t/**\n\t * Defines the visual indication and behavior of the list items.\n\t * Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.\n\t *\n\t * **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,\n\t * while with type `Inactive` and `Detail` - will not.\n\t * @default \"Active\"\n\t * @public\n\t*/\n\t@property()\n\ttype: `${ListItemType}` = \"Active\";\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **ariaSetsize**: Defines the number of items in the current set when not all items in the set are present in the DOM.\n\t * **Note:** The value is an integer reflecting the number of items in the complete set. If the size of the entire set is unknown, set `-1`.\n\t *\n\t * \t- **ariaPosinset**: Defines an element's number or position in the current set when not all items are present in the DOM.\n\t * \t**Note:** The value is an integer greater than or equal to 1, and less than or equal to the size of the set when that size is known.\n\t *\n\t * @default {}\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ListItemAccessibilityAttributes = {};\n\n\t/**\n\t * The navigated state of the list item.\n\t * If set to `true`, a navigation indicator is displayed at the end of the list item.\n\t * @default false\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines the text of the tooltip that would be displayed for the list item.\n\t * @default undefined\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Indicates if the list item is active, e.g pressed down with the mouse or the keyboard keys.\n\t * @private\n\t*/\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines the highlight state of the list items.\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.24\n\t */\n\t@property()\n\thighlight: `${Highlight}` = \"None\";\n\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdeclare selected: boolean;\n\n\t/**\n\t * Used to define the role of the list item.\n\t *\n\t * **Note:** If not set, the role is automatically inherited from the parent `ui5-list` based on its `accessible-role` property\n\t * (e.g. `Menu` -> `MenuItem`, `Tree` -> `TreeItem`, `ListBox` -> `Option`).\n\t * An explicitly set `accessible-role` on the list item takes precedence over the inherited role.\n\t * @default undefined\n\t * @public\n\t * @since 2.23.0\n\t */\n\t@property()\n\taccessibleRole?: `${ListItemAccessibleRole}`;\n\n\t@property()\n\t_forcedAccessibleRole?: string;\n\n\t@property({ noAttribute: true })\n\t_inheritedAccessibleRole?: string;\n\n\t@property()\n\t_selectionMode: `${ListSelectionMode}` = \"None\";\n\n\t/**\n\t * Indicates whether the list item is in edit mode.\n\t * When active, Tab cycles through internal focusable elements\n\t * instead of navigating to the next list item.\n\t * Toggled by F2; also set by the parent List on F7.\n\t * @private\n\t */\n\t_editMode = false;\n\n\t/**\n\t * Defines the current media query size.\n\t * @default \"S\"\n\t * @private\n\t */\n\t@property()\n\tmediaRange = \"S\";\n\n\t/**\n\t * Defines the delete button, displayed in \"Delete\" mode.\n\t * **Note:** While the slot allows custom buttons, to match\n\t * design guidelines, please use the `ui5-button` component.\n\t * **Note:** When the slot is not present, a built-in delete button will be displayed.\n\t * @since 1.9.0\n\t * @public\n\t*/\n\t@slot()\n\tdeleteButton!: Slot<IButton>;\n\n\tdeactivateByKey: (e: KeyboardEvent) => void;\n\tdeactivate: () => void;\n\t// used in template, implemented in TreeItemBase, ListItemStandard\n\taccessibleName?: string;\n\t// used in ListItem template but implemented in TreeItemBase\n\tindeterminate?: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.deactivateByKey = (e: KeyboardEvent) => {\n\t\t\tif (isEnter(e)) {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t};\n\n\t\tthis.deactivate = () => {\n\t\t\tif (this.active) {\n\t\t\t\tthis.active = false;\n\t\t\t}\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.actionable = (this.type === ListItemType.Active || this.type === ListItemType.Navigation) && (this._selectionMode !== ListSelectionMode.Delete);\n\t}\n\n\tonEnterDOM() {\n\t\tsuper.onEnterDOM();\n\t\tdocument.addEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.addEventListener(\"touchend\", this.deactivate);\n\t\tdocument.addEventListener(\"keyup\", this.deactivateByKey);\n\t}\n\n\tonExitDOM() {\n\t\tdocument.removeEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.removeEventListener(\"keyup\", this.deactivateByKey);\n\t\tdocument.removeEventListener(\"touchend\", this.deactivate);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isInternalElementFocused = e.target !== this.getFocusDomRef();\n\n\t\tif ((isSpace(e) || isEnter(e)) && isInternalElementFocused) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._onkeydown(e);\n\n\t\tconst itemActive = this.type === ListItemType.Active,\n\t\t\titemNavigated = this.typeNavigation;\n\n\t\tif ((isSpace(e) || isEnter(e)) && (itemActive || itemNavigated)) {\n\t\t\tthis.activate();\n\t\t}\n\n\t\tif (isF2(e)) {\n\t\t\tthis._handleF2();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis.deactivate();\n\t\t}\n\n\t\tif (this.modeDelete && isDelete(e)) {\n\t\t\tthis.onDelete();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tthis.activate();\n\t}\n\n\t_onmouseup() {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\t\tthis.deactivate();\n\t}\n\n\t_ontouchend() {\n\t\tthis._onmouseup();\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\tthis.deactivate();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tif (this._editMode) {\n\t\t\tconst relatedTarget = e.relatedTarget as Node;\n\t\t\tif (!relatedTarget || !(this.contains(relatedTarget) || this.shadowRoot!.contains(relatedTarget))) {\n\t\t\t\tthis._editMode = false;\n\t\t\t}\n\t\t}\n\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.deactivate();\n\t}\n\n\t_ondragstart(e: DragEvent) {\n\t\tif (!e.dataTransfer) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.target === this._listItem) {\n\t\t\tDragRegistry.setDraggedElement(this, e);\n\t\t\tthis.setAttribute(\"data-moving\", \"\");\n\t\t\te.dataTransfer.dropEffect = \"move\";\n\t\t\te.dataTransfer.effectAllowed = \"move\";\n\t\t}\n\t}\n\n\t_ondragend(e: DragEvent) {\n\t\tif (e.target === this._listItem) {\n\t\t\tDragRegistry.clearDraggedElement();\n\t\t\tthis.removeAttribute(\"data-moving\");\n\t\t}\n\t}\n\n\t/**\n\t * Called when selection components in Single (ui5-radio-button)\n\t * and Multi (ui5-checkbox) selection modes are used.\n\t */\n\tonMultiSelectionComponentPress(e: CustomEvent) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selected: (e.target as CheckBox).checked, selectionComponentPressed: true });\n\t}\n\n\tonSingleSelectionComponentPress(e: CustomEvent) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selected: !(e.target as RadioButton).checked, selectionComponentPressed: true });\n\t}\n\n\tactivate() {\n\t\tif (this.type === ListItemType.Active || this.type === ListItemType.Navigation) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\tonDelete() {\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { item: this, selectionComponentPressed: false });\n\t}\n\n\tonDetailClick() {\n\t\tthis.fireDecoratorEvent(\"detail-click\", { item: this, selected: this.selected });\n\t}\n\n\tfireItemPress(e: Event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\t\tsuper.fireItemPress(e);\n\t\tif (document.activeElement !== this) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\tget isInactive() {\n\t\treturn this.type === ListItemType.Inactive || this.type === ListItemType.Detail;\n\t}\n\n\tget placeSelectionElementBefore() {\n\t\treturn this._selectionMode === ListSelectionMode.Multiple\n\t\t\t|| this._selectionMode === ListSelectionMode.SingleStart;\n\t}\n\n\tget placeSelectionElementAfter() {\n\t\treturn !this.placeSelectionElementBefore\n\t\t\t&& (this._selectionMode === ListSelectionMode.SingleEnd || this._selectionMode === ListSelectionMode.Delete);\n\t}\n\n\tget modeSingleSelect() {\n\t\treturn [\n\t\t\tListSelectionMode.SingleStart,\n\t\t\tListSelectionMode.SingleEnd,\n\t\t\tListSelectionMode.Single,\n\t\t].includes(this._selectionMode as ListSelectionMode);\n\t}\n\n\tget modeMultiple() {\n\t\treturn this._selectionMode === ListSelectionMode.Multiple;\n\t}\n\n\tget modeDelete() {\n\t\treturn this._selectionMode === ListSelectionMode.Delete;\n\t}\n\n\tget typeDetail() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n\n\tget typeNavigation() {\n\t\treturn this.type === ListItemType.Navigation;\n\t}\n\n\tget typeActive() {\n\t\treturn this.type === ListItemType.Active;\n\t}\n\n\tget _ariaSelected() {\n\t\tif (this.modeMultiple || this.modeSingleSelect) {\n\t\t\treturn this.selected;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget listItemAccessibleRole() {\n\t\tif (this._forcedAccessibleRole) {\n\t\t\treturn this._forcedAccessibleRole as AriaRole;\n\t\t}\n\t\tif (this.accessibleRole) {\n\t\t\treturn this.accessibleRole.toLowerCase() as AriaRole;\n\t\t}\n\t\treturn (this._inheritedAccessibleRole || \"listitem\") as AriaRole;\n\t}\n\n\tget ariaSelectedText() {\n\t\tlet ariaSelectedText;\n\n\t\t// Selected state needs to be supported separately since now the role mapping is list -> listitem[]\n\t\t// to avoid the issue of nesting interactive elements, ex. (option -> radio/checkbox);\n\t\t// The text is added to aria-describedby because as part of the aria-labelledby\n\t\t// the whole content of the item is readout when the aria-labelledby value is changed.\n\t\tif (this._ariaSelected !== undefined) {\n\t\t\tariaSelectedText = this._ariaSelected ? ListItem.i18nBundle.getText(LIST_ITEM_SELECTED) : ListItem.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);\n\t\t}\n\n\t\treturn ariaSelectedText;\n\t}\n\n\tget deleteText() {\n\t\treturn ListItem.i18nBundle.getText(DELETE);\n\t}\n\n\tget hasDeleteButtonSlot() {\n\t\treturn !!this.deleteButton.length;\n\t}\n\n\tget _accessibleNameRef(): string {\n\t\tif ((this as IAccessibleListItem).accessibleName) {\n\t\t\t// accessibleName is set - return labels excluding content\n\t\t\treturn `${this._id}-invisibleText`;\n\t\t}\n\n\t\t// accessibleName is not set - return _accInfo.listItemAriaLabel including content\n\t\treturn `${this._id}-content ${this._id}-invisibleText`;\n\t}\n\n\tget ariaLabelledByText() {\n\t\tconst texts = [\n\t\t\tthis._accInfo.listItemAriaLabel,\n\t\t\tthis.accessibleName,\n\t\t\tthis.typeActive ? ListItem.i18nBundle.getText(LIST_ITEM_ACTIVE) : undefined,\n\t\t].filter(Boolean);\n\n\t\treturn texts.join(\" \");\n\t}\n\n\tget _ariaDescribedByIds() {\n\t\treturn `${this._id}-invisibleText-describedby`;\n\t}\n\n\tget _accInfo(): AccInfo {\n\t\treturn {\n\t\t\trole: this.listItemAccessibleRole,\n\t\t\tariaExpanded: undefined,\n\t\t\tariaLevel: undefined,\n\t\t\tariaLabel: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_CHECKBOX),\n\t\t\tariaLabelRadioButton: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_RADIO_BUTTON),\n\t\t\tariaSelectedText: this.ariaSelectedText,\n\t\t\tariaHaspopup: this.accessibilityAttributes.hasPopup,\n\t\t\tsetsize: this.accessibilityAttributes.ariaSetsize,\n\t\t\tposinset: this.accessibilityAttributes.ariaPosinset,\n\t\t\ttooltip: this.tooltip,\n\t\t\tariaDescribedBy: this._ariaDescribedByIds || undefined,\n\t\t};\n\t}\n\n\tget _hasHighlightColor() {\n\t\treturn this.highlight !== Highlight.None;\n\t}\n\n\tget hasConfigurableMode() {\n\t\treturn true;\n\t}\n\n\tget _listItem() {\n\t\treturn this.shadowRoot!.querySelector(\"li\");\n\t}\n\n\t_handleF2() {\n\t\tconst focusDomRef = this.getFocusDomRef()!;\n\n\t\tif (getActiveElement() === focusDomRef) {\n\t\t\tconst focusables = this._getFocusableElements();\n\t\t\tif (!focusables.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._editMode = true;\n\t\t\tfocusables[0].focus();\n\t\t} else {\n\t\t\tthis._editMode = false;\n\t\t\tfocusDomRef.focus();\n\t\t}\n\t}\n\n\t_handleTabNext(e: KeyboardEvent) {\n\t\tif (this._editMode) {\n\t\t\tconst focusables = this._getFocusableElements();\n\t\t\tconst currentIndex = this._indexOfActiveElement(focusables);\n\t\t\tconst nextIndex = currentIndex + 1;\n\n\t\t\tif (currentIndex !== -1 && nextIndex < focusables.length) {\n\t\t\t\te.preventDefault();\n\t\t\t\tfocusables[nextIndex].focus();\n\t\t\t} else if (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_handleTabPrevious(e: KeyboardEvent) {\n\t\tif (this._editMode) {\n\t\t\tconst focusables = this._getFocusableElements();\n\t\t\tconst currentIndex = this._indexOfActiveElement(focusables);\n\t\t\tif (currentIndex > 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\tfocusables[currentIndex - 1].focus();\n\t\t\t} else if (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_getFocusableElements(): HTMLElement[] {\n\t\tconst focusDomRef = this.getFocusDomRef()!;\n\t\treturn getTabbableElements(focusDomRef);\n\t}\n\n\t_indexOfActiveElement(focusables: HTMLElement[]): number {\n\t\tconst activeElement = getActiveElement() as HTMLElement;\n\t\treturn focusables.findIndex(el => el === activeElement || (el.shadowRoot !== null && el.shadowRoot.contains(activeElement)));\n\t}\n\n\t_getFocusedElementIndex(): number {\n\t\treturn this._indexOfActiveElement(this._getFocusableElements());\n\t}\n\n\t_hasFocusableElements(): boolean {\n\t\treturn this._getFocusableElements().length > 0;\n\t}\n\n\t_isFocusOnInternalElement(): boolean {\n\t\treturn this._indexOfActiveElement(this._getFocusableElements()) !== -1;\n\t}\n\n\t_focusInternalElement(targetIndex: number) {\n\t\tconst focusables = this._getFocusableElements();\n\t\tif (!focusables.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst safeIndex = Math.min(targetIndex, focusables.length - 1);\n\t\tconst elementToFocus = focusables[safeIndex];\n\n\t\telementToFocus.focus();\n\n\t\treturn safeIndex;\n\t}\n}\n\nexport default ListItem;\nexport type {\n\tIAccessibleListItem,\n\tSelectionRequestEventDetail,\n\tListItemAccessibilityAttributes,\n};\n"]}
@@ -7,7 +7,7 @@ type ListItemBasePressEventDetail = {
7
7
  key?: string;
8
8
  };
9
9
  type ListItemBaseClickEventDetail = {
10
- item: ListItemBase;
10
+ item?: ListItemBase;
11
11
  originalEvent: Event;
12
12
  };
13
13
  /**
@@ -259,9 +259,8 @@ ListItemBase = __decorate([
259
259
  *
260
260
  * **Note:** The event will not be fired if the `disabled` property is set to `true`.
261
261
  *
262
- * @since 2.22.0
262
+ * @since 2.23.0
263
263
  * @public
264
- * @param {ListItemBase} item The activated item.
265
264
  * @param {Event} originalEvent The original event from the user interaction.
266
265
  */
267
266
  ,
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemBase.js","sourceRoot":"","sources":["../src/ListItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n\tisEnter,\n\tisSpace,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItemBase.css.js\";\nimport draggableElementStyles from \"./generated/themes/DraggableElement.css.js\";\n\ntype ListItemBasePressEventDetail = {\n\titem: ListItemBase,\n\tselected?: boolean,\n\tkey?: string,\n}\n\ntype ListItemBaseClickEventDetail = {\n\titem: ListItemBase,\n\toriginalEvent: Event,\n}\n\n/**\n * @class\n * A class to serve as a foundation\n * for the `ListItem` and `ListItemGroupHeader` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: [styles, draggableElementStyles],\n})\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `disabled` property is set to `true`.\n *\n * @since 2.22.0\n * @public\n * @param {ListItemBase} item The activated item.\n * @param {Event} originalEvent The original event from the user interaction.\n */\n@event(\"click\", {\n\tbubbles: true,\n})\n@event(\"request-tabindex-change\", {\n\tbubbles: true,\n})\n@event(\"_press\", {\n\tbubbles: true,\n})\n@event(\"_focused\", {\n\tbubbles: true,\n})\n@event(\"forward-after\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n@event(\"forward-before\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass ListItemBase extends UI5Element implements ITabbable {\n\teventDetails!: {\n\t\t\"click\": ListItemBaseClickEventDetail,\n\t\t\"request-tabindex-change\": FocusEvent,\n\t\t\"_press\": ListItemBasePressEventDetail,\n\t\t\"_focused\": FocusEvent,\n\t\t\"forward-after\": void,\n\t\t\"forward-before\": void,\n\t}\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t* Defines if the list item should display its bottom border.\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\thasBorder = false;\n\n\t@property()\n\tforcedTabIndex?: string;\n\n\t/**\n\t* Defines whether `ui5-li` is in disabled state.\n\t*\n\t* **Note:** A disabled `ui5-li` is noninteractive.\n\t* @default false\n\t* @protected\n\t* @since 1.0.0-rc.12\n\t*/\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Indicates if the element is on focus\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Indicates if the list item is actionable, e.g has hover and pressed effects.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactionable = false;\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonBeforeRendering(): void {\n\t\tthis.actionable = true;\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tthis.fireDecoratorEvent(\"request-tabindex-change\", e);\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"_focused\", e);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e)) {\n\t\t\treturn this._handleTabNext(e);\n\t\t}\n\n\t\tif (isTabPrevious(e)) {\n\t\t\treturn this._handleTabPrevious(e);\n\t\t}\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (this._isEnter(e)) {\n\t\t\tthis.fireItemPress(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._isSpace(e)) {\n\t\t\tthis.fireItemPress(e);\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\") || this._isDisabledInteractiveContentClicked(e)) {\n\t\t\treturn;\n\t\t}\n\t\te.stopPropagation();\n\t\tthis.fireItemPress(e);\n\t}\n\n\t_isDisabledInteractiveContentClicked(e: MouseEvent): boolean {\n\t\tconst path = e.composedPath();\n\t\tconst focusDomRef = this.getFocusDomRef();\n\n\t\treturn path.some(target => {\n\t\t\tif (!(target instanceof HTMLElement)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (target === this || target === focusDomRef) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!this._isNativeInteractiveElement(target) && !this._isCustomInteractiveElement(target)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this._isElementDisabled(target);\n\t\t});\n\t}\n\n\t_isNativeInteractiveElement(target: HTMLElement): boolean {\n\t\treturn target.matches(\"button, input, select, textarea\");\n\t}\n\n\t_isCustomInteractiveElement(target: HTMLElement): boolean {\n\t\tconst targetWithDisabled = target as HTMLElement & { disabled?: boolean };\n\n\t\treturn target.tagName.includes(\"-\")\n\t\t\t&& (\"disabled\" in targetWithDisabled || target.hasAttribute(\"aria-disabled\"));\n\t}\n\n\t_isElementDisabled(target: HTMLElement): boolean {\n\t\tconst targetWithDisabled = target as HTMLElement & { disabled?: boolean };\n\t\tif (typeof targetWithDisabled.disabled === \"boolean\") {\n\t\t\treturn targetWithDisabled.disabled;\n\t\t}\n\n\t\treturn target.getAttribute(\"aria-disabled\") === \"true\";\n\t}\n\n\t/**\n\t * Override from subcomponent, if needed\n\t */\n\t_isSpace(e: KeyboardEvent) {\n\t\treturn isSpace(e);\n\t}\n\n\t/**\n\t * Override from subcomponent, if needed\n\t */\n\t_isEnter(e: KeyboardEvent) {\n\t\treturn isEnter(e);\n\t}\n\n\tfireItemPress(e: Event) {\n\t\tif (this.disabled || !this._pressable) {\n\t\t\treturn;\n\t\t}\n\t\tif (isEnter(e as KeyboardEvent)) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tthis.fireDecoratorEvent(\"click\", { item: this, originalEvent: e });\n\t\tthis.fireDecoratorEvent(\"_press\", { item: this, selected: this.selected, key: (e as KeyboardEvent).key });\n\t}\n\n\t_handleTabNext(e: KeyboardEvent) {\n\t\tif (this.shouldForwardTabAfter()) {\n\t\t\tif (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleTabPrevious(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (this.shouldForwardTabBefore(target)) {\n\t\t\tif (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Determines if th current list item either has no tabbable content or\n\t * [Tab] is performed onto the last tabbale content item.\n\t */\n\tshouldForwardTabAfter() {\n\t\tconst aContent = getTabbableElements(this.getFocusDomRef()!);\n\n\t\treturn aContent.length === 0 || (aContent[aContent.length - 1] === getActiveElement());\n\t}\n\n\t/**\n\t * Determines if the current list item is target of [SHIFT+TAB].\n\t */\n\tshouldForwardTabBefore(target: HTMLElement) {\n\t\treturn this.getFocusDomRef() === target;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-li-root\": true,\n\t\t\t\t\"ui5-li--focusable\": this._focusable,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled ? true : undefined;\n\t}\n\n\tget _focusable() {\n\t\treturn !this.disabled;\n\t}\n\n\tget _pressable() {\n\t\treturn true;\n\t}\n\n\tget hasConfigurableMode() {\n\t\treturn false;\n\t}\n\n\tget _effectiveTabIndex() {\n\t\tif (!this._focusable) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (this.selected) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined;\n\t}\n\n\tget isListItemBase() {\n\t\treturn true;\n\t}\n}\n\nexport default ListItemBase;\n\nexport type {\n\tListItemBasePressEventDetail,\n\tListItemBaseClickEventDetail,\n};\n"]}
1
+ {"version":3,"file":"ListItemBase.js","sourceRoot":"","sources":["../src/ListItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n\tisEnter,\n\tisSpace,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItemBase.css.js\";\nimport draggableElementStyles from \"./generated/themes/DraggableElement.css.js\";\n\ntype ListItemBasePressEventDetail = {\n\titem: ListItemBase,\n\tselected?: boolean,\n\tkey?: string,\n}\n\ntype ListItemBaseClickEventDetail = {\n\titem?: ListItemBase,\n\toriginalEvent: Event,\n}\n\n/**\n * @class\n * A class to serve as a foundation\n * for the `ListItem` and `ListItemGroupHeader` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @public\n */\n@customElement({\n\trenderer: jsxRenderer,\n\tstyles: [styles, draggableElementStyles],\n})\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `disabled` property is set to `true`.\n *\n * @since 2.23.0\n * @public\n * @param {Event} originalEvent The original event from the user interaction.\n */\n@event(\"click\", {\n\tbubbles: true,\n})\n@event(\"request-tabindex-change\", {\n\tbubbles: true,\n})\n@event(\"_press\", {\n\tbubbles: true,\n})\n@event(\"_focused\", {\n\tbubbles: true,\n})\n@event(\"forward-after\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n@event(\"forward-before\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass ListItemBase extends UI5Element implements ITabbable {\n\teventDetails!: {\n\t\t\"click\": ListItemBaseClickEventDetail,\n\t\t\"request-tabindex-change\": FocusEvent,\n\t\t\"_press\": ListItemBasePressEventDetail,\n\t\t\"_focused\": FocusEvent,\n\t\t\"forward-after\": void,\n\t\t\"forward-before\": void,\n\t}\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t* Defines if the list item should display its bottom border.\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\thasBorder = false;\n\n\t@property()\n\tforcedTabIndex?: string;\n\n\t/**\n\t* Defines whether `ui5-li` is in disabled state.\n\t*\n\t* **Note:** A disabled `ui5-li` is noninteractive.\n\t* @default false\n\t* @protected\n\t* @since 1.0.0-rc.12\n\t*/\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Indicates if the element is on focus\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Indicates if the list item is actionable, e.g has hover and pressed effects.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactionable = false;\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonBeforeRendering(): void {\n\t\tthis.actionable = true;\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tthis.fireDecoratorEvent(\"request-tabindex-change\", e);\n\t\tif (e.target !== this.getFocusDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"_focused\", e);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e)) {\n\t\t\treturn this._handleTabNext(e);\n\t\t}\n\n\t\tif (isTabPrevious(e)) {\n\t\t\treturn this._handleTabPrevious(e);\n\t\t}\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (this._isEnter(e)) {\n\t\t\tthis.fireItemPress(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._isSpace(e)) {\n\t\t\tthis.fireItemPress(e);\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\") || this._isDisabledInteractiveContentClicked(e)) {\n\t\t\treturn;\n\t\t}\n\t\te.stopPropagation();\n\t\tthis.fireItemPress(e);\n\t}\n\n\t_isDisabledInteractiveContentClicked(e: MouseEvent): boolean {\n\t\tconst path = e.composedPath();\n\t\tconst focusDomRef = this.getFocusDomRef();\n\n\t\treturn path.some(target => {\n\t\t\tif (!(target instanceof HTMLElement)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (target === this || target === focusDomRef) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!this._isNativeInteractiveElement(target) && !this._isCustomInteractiveElement(target)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this._isElementDisabled(target);\n\t\t});\n\t}\n\n\t_isNativeInteractiveElement(target: HTMLElement): boolean {\n\t\treturn target.matches(\"button, input, select, textarea\");\n\t}\n\n\t_isCustomInteractiveElement(target: HTMLElement): boolean {\n\t\tconst targetWithDisabled = target as HTMLElement & { disabled?: boolean };\n\n\t\treturn target.tagName.includes(\"-\")\n\t\t\t&& (\"disabled\" in targetWithDisabled || target.hasAttribute(\"aria-disabled\"));\n\t}\n\n\t_isElementDisabled(target: HTMLElement): boolean {\n\t\tconst targetWithDisabled = target as HTMLElement & { disabled?: boolean };\n\t\tif (typeof targetWithDisabled.disabled === \"boolean\") {\n\t\t\treturn targetWithDisabled.disabled;\n\t\t}\n\n\t\treturn target.getAttribute(\"aria-disabled\") === \"true\";\n\t}\n\n\t/**\n\t * Override from subcomponent, if needed\n\t */\n\t_isSpace(e: KeyboardEvent) {\n\t\treturn isSpace(e);\n\t}\n\n\t/**\n\t * Override from subcomponent, if needed\n\t */\n\t_isEnter(e: KeyboardEvent) {\n\t\treturn isEnter(e);\n\t}\n\n\tfireItemPress(e: Event) {\n\t\tif (this.disabled || !this._pressable) {\n\t\t\treturn;\n\t\t}\n\t\tif (isEnter(e as KeyboardEvent)) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tthis.fireDecoratorEvent(\"click\", { item: this, originalEvent: e });\n\t\tthis.fireDecoratorEvent(\"_press\", { item: this, selected: this.selected, key: (e as KeyboardEvent).key });\n\t}\n\n\t_handleTabNext(e: KeyboardEvent) {\n\t\tif (this.shouldForwardTabAfter()) {\n\t\t\tif (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleTabPrevious(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (this.shouldForwardTabBefore(target)) {\n\t\t\tif (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Determines if th current list item either has no tabbable content or\n\t * [Tab] is performed onto the last tabbale content item.\n\t */\n\tshouldForwardTabAfter() {\n\t\tconst aContent = getTabbableElements(this.getFocusDomRef()!);\n\n\t\treturn aContent.length === 0 || (aContent[aContent.length - 1] === getActiveElement());\n\t}\n\n\t/**\n\t * Determines if the current list item is target of [SHIFT+TAB].\n\t */\n\tshouldForwardTabBefore(target: HTMLElement) {\n\t\treturn this.getFocusDomRef() === target;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-li-root\": true,\n\t\t\t\t\"ui5-li--focusable\": this._focusable,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled ? true : undefined;\n\t}\n\n\tget _focusable() {\n\t\treturn !this.disabled;\n\t}\n\n\tget _pressable() {\n\t\treturn true;\n\t}\n\n\tget hasConfigurableMode() {\n\t\treturn false;\n\t}\n\n\tget _effectiveTabIndex() {\n\t\tif (!this._focusable) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (this.selected) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined;\n\t}\n\n\tget isListItemBase() {\n\t\treturn true;\n\t}\n}\n\nexport default ListItemBase;\n\nexport type {\n\tListItemBasePressEventDetail,\n\tListItemBaseClickEventDetail,\n};\n"]}
@@ -26,7 +26,7 @@ declare class ListItemGroupHeader extends ListItemBase {
26
26
  * @public
27
27
  */
28
28
  accessibleName?: string;
29
- accessibleRole: `${ListItemAccessibleRole}`;
29
+ accessibleRole: `${ListItemAccessibleRole}` | "Group";
30
30
  /**
31
31
  * Defines if the text of the component should wrap when it's too long.
32
32
  * When set to "Normal", the content (title, description) will be wrapped