@ui5/webcomponents 2.25.1-rc.0 → 2.26.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/ComboBox.js +0 -6
  4. package/dist/ComboBox.js.map +1 -1
  5. package/dist/InputPopoverTemplate.js +1 -1
  6. package/dist/InputPopoverTemplate.js.map +1 -1
  7. package/dist/List.d.ts +31 -4
  8. package/dist/List.js +37 -4
  9. package/dist/List.js.map +1 -1
  10. package/dist/ListItemCustom.d.ts +22 -0
  11. package/dist/ListItemCustom.js +22 -0
  12. package/dist/ListItemCustom.js.map +1 -1
  13. package/dist/Menu.d.ts +1 -0
  14. package/dist/Menu.js +18 -0
  15. package/dist/Menu.js.map +1 -1
  16. package/dist/RangeSlider.d.ts +1 -0
  17. package/dist/RangeSlider.js +3 -0
  18. package/dist/RangeSlider.js.map +1 -1
  19. package/dist/RangeSliderTemplate.js +1 -1
  20. package/dist/RangeSliderTemplate.js.map +1 -1
  21. package/dist/RatingIndicator.d.ts +10 -0
  22. package/dist/RatingIndicator.js +21 -5
  23. package/dist/RatingIndicator.js.map +1 -1
  24. package/dist/RatingIndicatorTemplate.js +1 -1
  25. package/dist/RatingIndicatorTemplate.js.map +1 -1
  26. package/dist/Select.d.ts +2 -0
  27. package/dist/Select.js +13 -2
  28. package/dist/Select.js.map +1 -1
  29. package/dist/SelectPopoverTemplate.js +2 -2
  30. package/dist/SelectPopoverTemplate.js.map +1 -1
  31. package/dist/SliderScale.d.ts +2 -1
  32. package/dist/SliderScale.js.map +1 -1
  33. package/dist/SliderScaleTemplate.js +1 -1
  34. package/dist/SliderScaleTemplate.js.map +1 -1
  35. package/dist/Tab.d.ts +1 -1
  36. package/dist/Table.d.ts +1 -1
  37. package/dist/Table.js +16 -8
  38. package/dist/Table.js.map +1 -1
  39. package/dist/TableRow.d.ts +1 -1
  40. package/dist/TableRow.js +4 -4
  41. package/dist/TableRow.js.map +1 -1
  42. package/dist/TableRowBase.d.ts +2 -1
  43. package/dist/TableRowBase.js +4 -1
  44. package/dist/TableRowBase.js.map +1 -1
  45. package/dist/TableRowTemplate.js +1 -1
  46. package/dist/TableRowTemplate.js.map +1 -1
  47. package/dist/TableUtils.d.ts +4 -3
  48. package/dist/TableUtils.js +40 -31
  49. package/dist/TableUtils.js.map +1 -1
  50. package/dist/Tokenizer.js +24 -9
  51. package/dist/Tokenizer.js.map +1 -1
  52. package/dist/css/themes/CheckBox.css +1 -1
  53. package/dist/css/themes/DatePicker.css +1 -1
  54. package/dist/css/themes/RatingIndicator.css +1 -1
  55. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  56. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  57. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  58. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  59. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  60. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +4 -5
  61. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  62. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +4 -5
  63. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  64. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  65. package/dist/custom-elements-internal.json +26 -6
  66. package/dist/custom-elements.json +25 -6
  67. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  68. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  69. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  70. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  71. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  72. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  73. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  74. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  75. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  76. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  77. package/dist/generated/i18n/i18n-defaults.d.ts +4 -1
  78. package/dist/generated/i18n/i18n-defaults.js +4 -1
  79. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  80. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  81. package/dist/generated/themes/CheckBox.css.js +1 -1
  82. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  83. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  84. package/dist/generated/themes/DatePicker.css.js +1 -1
  85. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  86. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  87. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  88. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  89. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  90. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  91. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  92. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  93. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  94. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  95. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  96. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  97. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  98. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  99. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  100. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  101. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  102. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  103. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  104. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  105. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +4 -5
  106. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  107. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  108. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  109. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  110. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  111. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +4 -5
  112. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  113. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  114. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  115. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  116. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  117. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  118. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  119. package/dist/vscode.html-custom-data.json +5 -0
  120. package/dist/web-types.json +11 -1
  121. package/package.json +9 -9
  122. package/src/InputPopoverTemplate.tsx +1 -0
  123. package/src/RangeSliderTemplate.tsx +1 -0
  124. package/src/RatingIndicatorTemplate.tsx +1 -1
  125. package/src/SelectPopoverTemplate.tsx +2 -1
  126. package/src/SliderScaleTemplate.tsx +8 -8
  127. package/src/TableRowTemplate.tsx +1 -0
  128. package/src/i18n/messagebundle.properties +8 -0
  129. package/src/themes/CheckBox.css +10 -10
  130. package/src/themes/DatePicker.css +5 -0
  131. package/src/themes/RatingIndicator.css +5 -3
  132. package/src/themes/base/CheckBox-parameters.css +2 -3
  133. package/src/themes/base/sizes-parameters.css +4 -5
  134. package/src/themes/sap_fiori_3/CheckBox-parameters.css +0 -1
  135. package/src/themes/sap_fiori_3_dark/CheckBox-parameters.css +0 -1
  136. package/src/themes/sap_horizon/CheckBox-parameters.css +1 -2
  137. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +1 -2
  138. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +1 -2
  139. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"SelectPopoverTemplate.js","sourceRoot":"","sources":["../src/SelectPopoverTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Select from \"./Select.js\";\nimport List from \"./List.js\";\nimport Button from \"./Button.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Popover from \"./Popover.js\";\nimport Icon from \"./Icon.js\";\nimport Title from \"./Title.js\";\n\nexport default function SelectPopoverTemplate(this: Select) {\n\treturn (\n\t\t<>\n\t\t\t{this.options.length > 0 &&\n\t\t\t\t<ResponsivePopover\n\t\t\t\t\tid={this.responsivePopoverId}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t\"ui5-select-popover\": true,\n\t\t\t\t\t\t...this.classes.popover\n\t\t\t\t\t}}\n\t\t\t\t\tpart=\"popover\"\n\t\t\t\t\tstyle={this.styles.responsivePopover}\n\t\t\t\t\tplacement=\"Bottom\"\n\t\t\t\t\thorizontalAlign=\"Start\"\n\t\t\t\t\thideArrow={true}\n\t\t\t\t\tpreventInitialFocus={true}\n\t\t\t\t\tonOpen={this._afterOpen}\n\t\t\t\t\tonBeforeOpen={this._beforeOpen}\n\t\t\t\t\tonClose={this._afterClose}\n\t\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\t\taccessibleName={this._isPhone ? this._headerTitleText : undefined}\n\t\t\t\t>\n\t\t\t\t\t{this._isPhone &&\n\t\t\t\t\t\t<div slot=\"header\" class=\"ui5-responsive-popover-header\">\n\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t<Title>{this._headerTitleText}</Title>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{this.hasValueStateText &&\n\t\t\t\t\t\t\t\t<div class={{\n\t\t\t\t\t\t\t\t\t\"row\": true,\n\t\t\t\t\t\t\t\t\t\"ui5-select-value-state-dialog-header\": true,\n\t\t\t\t\t\t\t\t\t...this.classes.popoverValueState\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t{this._isPickerOpen && valueStateMessage.call(this)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\n\t\t\t\t\t{!this._isPhone && this.hasValueStateText &&\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={this.classes.popoverValueState}\n\t\t\t\t\t\t\tstyle={this.styles.responsivePopoverHeader}>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclass=\"ui5-input-value-state-message-icon\"\n\t\t\t\t\t\t\t\tname={this._valueStateMessageInputIcon} />\n\t\t\t\t\t\t\t{this._isPickerOpen && valueStateMessage.call(this)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\n\t\t\t\t\t<List\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\tonMouseDown={this._itemMousedown}\n\t\t\t\t\t\tonItemClick={this._handleItemPress}\n\t\t\t\t\t\taccessibleRole=\"ListBox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>\n\n\t\t\t\t\t{this._isPhone &&\n\t\t\t\t\t\t<div slot=\"footer\" class=\"ui5-responsive-popover-footer\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclass=\"ui5-responsive-popover-close-btn\"\n\t\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\t\tonClick={this._toggleRespPopover}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this._cancelButtonText}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</ResponsivePopover>\n\t\t\t}\n\n\t\t\t{this.shouldOpenValueStateMessagePopover &&\n\t\t\t\t<Popover\n\t\t\t\t\tpart=\"popover\"\n\t\t\t\t\tclass=\"ui5-valuestatemessage-popover\"\n\t\t\t\t\tpreventInitialFocus={true}\n\t\t\t\t\tpreventFocusRestore={true}\n\t\t\t\t\thideArrow={true}\n\t\t\t\t\tplacement=\"Bottom\"\n\t\t\t\t\thorizontalAlign=\"Start\"\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={this.classes.popoverValueState}\n\t\t\t\t\t\tstyle={this.styles.popoverHeader}>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclass=\"ui5-input-value-state-message-icon\"\n\t\t\t\t\t\t\tname={this._valueStateMessageInputIcon} />\n\t\t\t\t\t\t{valueStateMessage.call(this)}\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t}\n\t\t</>\n\t);\n}\n\nfunction valueStateMessage(this: Select) {\n\treturn (\n\t\t<>\n\t\t\t{this.shouldDisplayDefaultValueStateMessage\n\t\t\t\t? this.valueStateText\n\t\t\t\t: <slot onClick={this._applyFocus} name=\"valueStateMessage\"></slot>\n\t\t\t}\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"file":"SelectPopoverTemplate.js","sourceRoot":"","sources":["../src/SelectPopoverTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Select from \"./Select.js\";\nimport List from \"./List.js\";\nimport Button from \"./Button.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Popover from \"./Popover.js\";\nimport Icon from \"./Icon.js\";\nimport Title from \"./Title.js\";\n\nexport default function SelectPopoverTemplate(this: Select) {\n\treturn (\n\t\t<>\n\t\t\t{this.options.length > 0 &&\n\t\t\t\t<ResponsivePopover\n\t\t\t\t\tid={this.responsivePopoverId}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t\"ui5-select-popover\": true,\n\t\t\t\t\t\t...this.classes.popover\n\t\t\t\t\t}}\n\t\t\t\t\tpart=\"popover\"\n\t\t\t\t\tstyle={this.styles.responsivePopover}\n\t\t\t\t\tplacement=\"Bottom\"\n\t\t\t\t\thorizontalAlign=\"Start\"\n\t\t\t\t\thideArrow={true}\n\t\t\t\t\tpreventInitialFocus={true}\n\t\t\t\t\tonOpen={this._afterOpen}\n\t\t\t\t\tonBeforeOpen={this._beforeOpen}\n\t\t\t\t\tonClose={this._afterClose}\n\t\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\t\taccessibleName={this._isPhone ? this._effectivePopoverAccessibleName : undefined}\n\t\t\t\t>\n\t\t\t\t\t{this._isPhone &&\n\t\t\t\t\t\t<div slot=\"header\" class=\"ui5-responsive-popover-header\">\n\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t<Title>{this._headerTitleText}</Title>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{this.hasValueStateText &&\n\t\t\t\t\t\t\t\t<div class={{\n\t\t\t\t\t\t\t\t\t\"row\": true,\n\t\t\t\t\t\t\t\t\t\"ui5-select-value-state-dialog-header\": true,\n\t\t\t\t\t\t\t\t\t...this.classes.popoverValueState\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t{this._isPickerOpen && valueStateMessage.call(this)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\n\t\t\t\t\t{!this._isPhone && this.hasValueStateText &&\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={this.classes.popoverValueState}\n\t\t\t\t\t\t\tstyle={this.styles.responsivePopoverHeader}>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclass=\"ui5-input-value-state-message-icon\"\n\t\t\t\t\t\t\t\tname={this._valueStateMessageInputIcon} />\n\t\t\t\t\t\t\t{this._isPickerOpen && valueStateMessage.call(this)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\n\t\t\t\t\t<List\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\tonMouseDown={this._itemMousedown}\n\t\t\t\t\t\tonItemClick={this._handleItemPress}\n\t\t\t\t\t\taccessibleRole=\"ListBox\"\n\t\t\t\t\t\taccessibleName={this._effectiveListAccessibleName}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>\n\n\t\t\t\t\t{this._isPhone &&\n\t\t\t\t\t\t<div slot=\"footer\" class=\"ui5-responsive-popover-footer\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclass=\"ui5-responsive-popover-close-btn\"\n\t\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\t\tonClick={this._toggleRespPopover}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this._cancelButtonText}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</ResponsivePopover>\n\t\t\t}\n\n\t\t\t{this.shouldOpenValueStateMessagePopover &&\n\t\t\t\t<Popover\n\t\t\t\t\tpart=\"popover\"\n\t\t\t\t\tclass=\"ui5-valuestatemessage-popover\"\n\t\t\t\t\tpreventInitialFocus={true}\n\t\t\t\t\tpreventFocusRestore={true}\n\t\t\t\t\thideArrow={true}\n\t\t\t\t\tplacement=\"Bottom\"\n\t\t\t\t\thorizontalAlign=\"Start\"\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={this.classes.popoverValueState}\n\t\t\t\t\t\tstyle={this.styles.popoverHeader}>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclass=\"ui5-input-value-state-message-icon\"\n\t\t\t\t\t\t\tname={this._valueStateMessageInputIcon} />\n\t\t\t\t\t\t{valueStateMessage.call(this)}\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t}\n\t\t</>\n\t);\n}\n\nfunction valueStateMessage(this: Select) {\n\treturn (\n\t\t<>\n\t\t\t{this.shouldDisplayDefaultValueStateMessage\n\t\t\t\t? this.valueStateText\n\t\t\t\t: <slot onClick={this._applyFocus} name=\"valueStateMessage\"></slot>\n\t\t\t}\n\t\t</>\n\t);\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
3
3
  import type SliderHandle from "./SliderHandle.js";
4
+ import type { AriaRole } from "@ui5/webcomponents-base/dist/types.js";
4
5
  type Tickmark = {
5
6
  value: number;
6
7
  label?: string;
@@ -82,7 +83,7 @@ declare class SliderScale extends UI5Element {
82
83
  * ARIA role for the progress bar.
83
84
  * @private
84
85
  */
85
- progressRole?: string;
86
+ progressRole?: AriaRole;
86
87
  /**
87
88
  * ARIA aria-valuenow for the progress bar.
88
89
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"SliderScale.js","sourceRoot":"","sources":["../src/SliderScale.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport SliderBase from \"./SliderBase.js\";\nimport SliderScaleTemplate from \"./SliderScaleTemplate.js\";\n\nimport SliderScaleCss from \"./generated/themes/SliderScale.css.js\";\nimport type SliderHandle from \"./SliderHandle.js\";\n\ntype Tickmark = {\n\tvalue: number;\n\tlabel?: string;\n};\n\nenum SliderScaleOrientation {\n\t/**\n\t * Horizontal orientation\n\t * @public\n\t */\n\tHorizontal = \"Horizontal\",\n\n\t/**\n\t * Vertical orientation\n\t * @private\n\t */\n\tVertical = \"Vertical\",\n}\n\n@customElement({\n\ttag: \"ui5-slider-scale\",\n\trenderer: jsxRenderer,\n\tstyles: SliderScaleCss,\n\ttemplate: SliderScaleTemplate,\n})\nclass SliderScale extends UI5Element {\n\t/**\n\t * Defines the start value of the progress bar.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number })\n\tstartValue = 0;\n\n\t/**\n\t * Defines the end value of the progress bar.\n\t * @default 100\n\t * @private\n\t */\n\t@property({ type: Number })\n\tendValue = 100;\n\n\t/**\n\t * Defines the minimum value of the scale.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number })\n\tmin = 0;\n\n\t/**\n\t * Defines the maximum value of the scale.\n\t * @default 100\n\t * @private\n\t */\n\t@property({ type: Number })\n\tmax = 100;\n\n\t/**\n\t * Defines the step value for tickmarks.\n\t * @default 1\n\t * @private\n\t */\n\t@property({ type: Number })\n\tstep = 1;\n\n\t/**\n\t * Determines whether tickmarks should be displayed.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tshowTickmarks = false;\n\n\t/**\n\t * Defines the orientation of the scale.\n\t * @default \"Horizontal\"\n\t * @private\n\t */\n\t@property()\n\torientation: `${SliderScaleOrientation}` = \"Horizontal\";\n\n\t/**\n\t * Defines custom tickmarks to be displayed on the scale.\n\t * @default []\n\t * @private\n\t */\n\t@property({ type: Array })\n\ttickmarks: Array<Tickmark> = [];\n\n\t/**\n\t * Defines the interval for displaying labels on tickmarks.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number })\n\tlabelInterval = 0;\n\n\t/**\n\t * Tab index for the progress bar.\n\t * @default -1\n\t * @private\n\t */\n\t@property({ type: Number })\n\tprogressTabIndex = -1;\n\n\t/**\n\t * ARIA role for the progress bar.\n\t * @private\n\t */\n\t@property()\n\tprogressRole?: string;\n\n\t/**\n\t * ARIA aria-valuenow for the progress bar.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tprogressAriaValueNow?: number;\n\n\t/**\n\t * ARIA aria-valuetext for the progress bar.\n\t * @private\n\t */\n\t@property()\n\tprogressAriaValueText?: string;\n\n\t/**\n\t * ARIA aria-label for the progress bar.\n\t * @private\n\t */\n\t@property()\n\tprogressAriaLabel?: string;\n\n\t/**\n\t * ARIA aria-disabled for the progress bar.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tprogressAriaDisabled?: boolean;\n\n\t/**\n\t * Indicates that the progress bar is being pressed/dragged.\n\t * Used to show the focus outline during mouse interaction.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tprogressPressed = false;\n\n\t/**\n\t * Indicates that the progress bar should show as focused.\n\t * Set by parent component (RangeSlider) when the progress bar has focus.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tprogressFocused = false;\n\n\t/**\n\t * Indicates that the progress bar is being hovered.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tprogressHovered = false;\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_labelInterval = 1;\n\n\t@property({ type: Boolean })\n\t_labelsOverlapping = false;\n\n\t@property({ type: Boolean })\n\t_hiddenTickmarks = false;\n\n\t_resizeHandler: ResizeObserverCallback;\n\t_notResized = true;\n\n\t/**\n\t * Defines the component items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t})\n\thandles!: Array<SliderHandle>;\n\n\tstatic get MIN_LABEL_DISTANCE() {\n\t\treturn 16;\n\t}\n\n\tstatic get MIN_SPACE_BETWEEN_TICKMARKS() {\n\t\treturn 8;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t}\n\n\tonAfterRendering() {\n\t\tif (this._notResized) {\n\t\t\tthis._handleResize();\n\t\t}\n\t}\n\n\t/**\n\t * Handle the responsiveness of the SliderScale's UI elements when resizing\n\t * @private\n\t */\n\t_handleResize() {\n\t\tif (!this.showTickmarks) {\n\t\t\tthis._hiddenTickmarks = false;\n\t\t\tthis._labelsOverlapping = false;\n\t\t\treturn;\n\t\t}\n\n\t\t// Mark resizing to avoid unnecessary calls to that function after rendering\n\t\tthis._notResized = false;\n\n\t\tconst containerSize = this.orientation === SliderScaleOrientation.Horizontal\n\t\t\t? this.getBoundingClientRect().width\n\t\t\t: this.getBoundingClientRect().height;\n\n\t\tconst tickmarksCount = this._tickmarksCount;\n\n\t\t// Check if tickmarks should be hidden due to insufficient space\n\t\tif (tickmarksCount > 1) {\n\t\t\tconst spaceBetweenTickmarks = containerSize / tickmarksCount;\n\t\t\tthis._hiddenTickmarks = spaceBetweenTickmarks < SliderScale.MIN_SPACE_BETWEEN_TICKMARKS;\n\t\t} else {\n\t\t\tthis._hiddenTickmarks = false;\n\t\t}\n\n\t\t// Check if labels should be hidden due to insufficient space or overlapping\n\t\tif (this.labelInterval <= 0 || this._hiddenTickmarks) {\n\t\t\tthis._labelsOverlapping = true;\n\t\t} else {\n\t\t\t// Calculate if labels would overlap based on their estimated width\n\t\t\tconst visibleLabelCount = Math.ceil((tickmarksCount - 1) / this.labelInterval) + 1;\n\t\t\tconst estimatedLabelWidth = 32; // Estimated width in pixels for a label (2rem = ~32px)\n\t\t\tconst requiredWidth = visibleLabelCount * estimatedLabelWidth;\n\t\t\tthis._labelsOverlapping = containerSize < requiredWidth;\n\t\t}\n\t}\n\n\t/**\n\t * Calculates space between tickmarks\n\t * @private\n\t */\n\t_spaceBetweenTickmarks() {\n\t\tconst tickmarksCount = this._tickmarksCount;\n\t\tif (tickmarksCount <= 1) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst containerSize = this.orientation === SliderScaleOrientation.Horizontal\n\t\t\t? this.getBoundingClientRect().width\n\t\t\t: this.getBoundingClientRect().height;\n\n\t\treturn containerSize / tickmarksCount;\n\t}\n\n\t_onProgressMouseEnter() {\n\t\tthis.progressHovered = true;\n\t\tthis.handles.forEach(handle => {\n\t\t\tif (!handle.active) {\n\t\t\t\thandle.hovered = true;\n\t\t\t}\n\t\t});\n\t}\n\n\t_onProgressMouseLeave() {\n\t\tthis.progressHovered = false;\n\t\tthis.handles.forEach(handle => {\n\t\t\thandle.hovered = false;\n\t\t});\n\t}\n\n\tget _tickmarksCount() {\n\t\tif (this.tickmarks.length > 0) {\n\t\t\treturn this.tickmarks.length - 1;\n\t\t}\n\n\t\tif (this.step === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn (this.max - this.min) / this.step;\n\t}\n\n\tget _visibleLabels() {\n\t\treturn this._tickmarks.filter(tick => tick.showLabel);\n\t}\n\n\tget _progressStyle() {\n\t\tconst range = this.max - this.min;\n\t\t// Clamp startValue and endValue to be within min/max bounds\n\t\tconst clampedStartValue = Math.max(this.min, Math.min(this.startValue, this.max));\n\t\tconst clampedEndValue = Math.max(this.min, Math.min(this.endValue, this.max));\n\n\t\tconst start = ((clampedStartValue - this.min) / range) * 100;\n\t\tconst end = ((clampedEndValue - this.min) / range) * 100;\n\n\t\tif (this.orientation === SliderScaleOrientation.Vertical) {\n\t\t\treturn {\n\t\t\t\ttop: \"auto\",\n\t\t\t\tbottom: `${start}%`,\n\t\t\t\theight: `${end - start}%`,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tinsetInlineStart: `${start}%`,\n\t\t\twidth: `${end - start}%`,\n\t\t};\n\t}\n\n\tget _allTickmarks() {\n\t\t// If custom tickmarks are provided, use them\n\t\tif (this.tickmarks.length > 0) {\n\t\t\treturn this.tickmarks;\n\t\t}\n\n\t\t// Otherwise, generate tickmarks based on step\n\t\tif (!this.showTickmarks) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (this.step === 0) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst values = [];\n\t\tfor (let value = this.min; value <= this.max; value += this.step) {\n\t\t\tvalues.push({ value });\n\t\t}\n\t\treturn values;\n\t}\n\n\tget _tickmarks() {\n\t\tconst allTickmarks = this._allTickmarks;\n\t\tconst stepPrecision = SliderBase._getDecimalPrecisionOfNumber(this.step);\n\t\tconst formatLabelPrecision = stepPrecision > 0 ? stepPrecision : 0;\n\n\t\tif (allTickmarks.length === 0) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn allTickmarks.map((tm, index) => {\n\t\t\tconst value = tm.value;\n\t\t\tconst isFirstOrLast = index === 0 || index === allTickmarks.length - 1;\n\t\t\tconst position = ((value - this.min) / (this.max - this.min)) * 100;\n\n\t\t\t// Determine if this tickmark should be visible\n\t\t\tconst shouldShowTickmark = this._hiddenTickmarks ? isFirstOrLast : true;\n\n\t\t\t// Determine if the label should be visible\n\t\t\tlet showLabel = false;\n\t\t\tif (shouldShowTickmark && !this._labelsOverlapping) {\n\t\t\t\tif (this.labelInterval > 0) {\n\t\t\t\t\tshowLabel = index % this.labelInterval === 0;\n\t\t\t\t} else {\n\t\t\t\t\tshowLabel = true;\n\t\t\t\t}\n\t\t\t} else if (shouldShowTickmark && this._labelsOverlapping && this.labelInterval > 0) {\n\t\t\t\t// When labels overlap, only show first and last\n\t\t\t\tshowLabel = isFirstOrLast;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tvalue,\n\t\t\t\tlabel: tm.label || value.toFixed(formatLabelPrecision),\n\t\t\t\tisInRange: value >= this.startValue && value <= this.endValue,\n\t\t\t\tposition,\n\t\t\t\tshowLabel,\n\t\t\t\tvisible: shouldShowTickmark,\n\t\t\t};\n\t\t}).filter(tick => tick.visible);\n\t}\n}\n\nSliderScale.define();\n\nexport default SliderScale;\nexport { SliderScaleOrientation };\nexport type { Tickmark };\n"]}
1
+ {"version":3,"file":"SliderScale.js","sourceRoot":"","sources":["../src/SliderScale.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport SliderBase from \"./SliderBase.js\";\nimport SliderScaleTemplate from \"./SliderScaleTemplate.js\";\n\nimport SliderScaleCss from \"./generated/themes/SliderScale.css.js\";\nimport type SliderHandle from \"./SliderHandle.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\n\ntype Tickmark = {\n\t\tvalue: number;\n\t\tlabel?: string;\n};\n\nenum SliderScaleOrientation {\n\t/**\n\t * Horizontal orientation\n\t * @public\n\t */\n\tHorizontal = \"Horizontal\",\n\n\t/**\n\t * Vertical orientation\n\t * @private\n\t */\n\tVertical = \"Vertical\",\n}\n\n@customElement({\n\ttag: \"ui5-slider-scale\",\n\trenderer: jsxRenderer,\n\tstyles: SliderScaleCss,\n\ttemplate: SliderScaleTemplate,\n})\nclass SliderScale extends UI5Element {\n\t/**\n\t * Defines the start value of the progress bar.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number })\n\tstartValue = 0;\n\n\t/**\n\t * Defines the end value of the progress bar.\n\t * @default 100\n\t * @private\n\t */\n\t@property({ type: Number })\n\tendValue = 100;\n\n\t/**\n\t * Defines the minimum value of the scale.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number })\n\tmin = 0;\n\n\t/**\n\t * Defines the maximum value of the scale.\n\t * @default 100\n\t * @private\n\t */\n\t@property({ type: Number })\n\tmax = 100;\n\n\t/**\n\t * Defines the step value for tickmarks.\n\t * @default 1\n\t * @private\n\t */\n\t@property({ type: Number })\n\tstep = 1;\n\n\t/**\n\t * Determines whether tickmarks should be displayed.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tshowTickmarks = false;\n\n\t/**\n\t * Defines the orientation of the scale.\n\t * @default \"Horizontal\"\n\t * @private\n\t */\n\t@property()\n\torientation: `${SliderScaleOrientation}` = \"Horizontal\";\n\n\t/**\n\t * Defines custom tickmarks to be displayed on the scale.\n\t * @default []\n\t * @private\n\t */\n\t@property({ type: Array })\n\ttickmarks: Array<Tickmark> = [];\n\n\t/**\n\t * Defines the interval for displaying labels on tickmarks.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number })\n\tlabelInterval = 0;\n\n\t/**\n\t * Tab index for the progress bar.\n\t * @default -1\n\t * @private\n\t */\n\t@property({ type: Number })\n\tprogressTabIndex = -1;\n\n\t/**\n\t * ARIA role for the progress bar.\n\t * @private\n\t */\n\t@property()\n\tprogressRole?: AriaRole;\n\n\t/**\n\t * ARIA aria-valuenow for the progress bar.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tprogressAriaValueNow?: number;\n\n\t/**\n\t * ARIA aria-valuetext for the progress bar.\n\t * @private\n\t */\n\t@property()\n\tprogressAriaValueText?: string;\n\n\t/**\n\t * ARIA aria-label for the progress bar.\n\t * @private\n\t */\n\t@property()\n\tprogressAriaLabel?: string;\n\n\t/**\n\t * ARIA aria-disabled for the progress bar.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tprogressAriaDisabled?: boolean;\n\n\t/**\n\t * Indicates that the progress bar is being pressed/dragged.\n\t * Used to show the focus outline during mouse interaction.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tprogressPressed = false;\n\n\t/**\n\t * Indicates that the progress bar should show as focused.\n\t * Set by parent component (RangeSlider) when the progress bar has focus.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tprogressFocused = false;\n\n\t/**\n\t * Indicates that the progress bar is being hovered.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tprogressHovered = false;\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_labelInterval = 1;\n\n\t@property({ type: Boolean })\n\t_labelsOverlapping = false;\n\n\t@property({ type: Boolean })\n\t_hiddenTickmarks = false;\n\n\t_resizeHandler: ResizeObserverCallback;\n\t_notResized = true;\n\n\t/**\n\t * Defines the component items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t})\n\thandles!: Array<SliderHandle>;\n\n\tstatic get MIN_LABEL_DISTANCE() {\n\t\treturn 16;\n\t}\n\n\tstatic get MIN_SPACE_BETWEEN_TICKMARKS() {\n\t\treturn 8;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t}\n\n\tonAfterRendering() {\n\t\tif (this._notResized) {\n\t\t\tthis._handleResize();\n\t\t}\n\t}\n\n\t/**\n\t * Handle the responsiveness of the SliderScale's UI elements when resizing\n\t * @private\n\t */\n\t_handleResize() {\n\t\tif (!this.showTickmarks) {\n\t\t\tthis._hiddenTickmarks = false;\n\t\t\tthis._labelsOverlapping = false;\n\t\t\treturn;\n\t\t}\n\n\t\t// Mark resizing to avoid unnecessary calls to that function after rendering\n\t\tthis._notResized = false;\n\n\t\tconst containerSize = this.orientation === SliderScaleOrientation.Horizontal\n\t\t\t? this.getBoundingClientRect().width\n\t\t\t: this.getBoundingClientRect().height;\n\n\t\tconst tickmarksCount = this._tickmarksCount;\n\n\t\t// Check if tickmarks should be hidden due to insufficient space\n\t\tif (tickmarksCount > 1) {\n\t\t\tconst spaceBetweenTickmarks = containerSize / tickmarksCount;\n\t\t\tthis._hiddenTickmarks = spaceBetweenTickmarks < SliderScale.MIN_SPACE_BETWEEN_TICKMARKS;\n\t\t} else {\n\t\t\tthis._hiddenTickmarks = false;\n\t\t}\n\n\t\t// Check if labels should be hidden due to insufficient space or overlapping\n\t\tif (this.labelInterval <= 0 || this._hiddenTickmarks) {\n\t\t\tthis._labelsOverlapping = true;\n\t\t} else {\n\t\t\t// Calculate if labels would overlap based on their estimated width\n\t\t\tconst visibleLabelCount = Math.ceil((tickmarksCount - 1) / this.labelInterval) + 1;\n\t\t\tconst estimatedLabelWidth = 32; // Estimated width in pixels for a label (2rem = ~32px)\n\t\t\tconst requiredWidth = visibleLabelCount * estimatedLabelWidth;\n\t\t\tthis._labelsOverlapping = containerSize < requiredWidth;\n\t\t}\n\t}\n\n\t/**\n\t * Calculates space between tickmarks\n\t * @private\n\t */\n\t_spaceBetweenTickmarks() {\n\t\tconst tickmarksCount = this._tickmarksCount;\n\t\tif (tickmarksCount <= 1) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst containerSize = this.orientation === SliderScaleOrientation.Horizontal\n\t\t\t? this.getBoundingClientRect().width\n\t\t\t: this.getBoundingClientRect().height;\n\n\t\treturn containerSize / tickmarksCount;\n\t}\n\n\t_onProgressMouseEnter() {\n\t\tthis.progressHovered = true;\n\t\tthis.handles.forEach(handle => {\n\t\t\tif (!handle.active) {\n\t\t\t\thandle.hovered = true;\n\t\t\t}\n\t\t});\n\t}\n\n\t_onProgressMouseLeave() {\n\t\tthis.progressHovered = false;\n\t\tthis.handles.forEach(handle => {\n\t\t\thandle.hovered = false;\n\t\t});\n\t}\n\n\tget _tickmarksCount() {\n\t\tif (this.tickmarks.length > 0) {\n\t\t\treturn this.tickmarks.length - 1;\n\t\t}\n\n\t\tif (this.step === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn (this.max - this.min) / this.step;\n\t}\n\n\tget _visibleLabels() {\n\t\treturn this._tickmarks.filter(tick => tick.showLabel);\n\t}\n\n\tget _progressStyle() {\n\t\tconst range = this.max - this.min;\n\t\t// Clamp startValue and endValue to be within min/max bounds\n\t\tconst clampedStartValue = Math.max(this.min, Math.min(this.startValue, this.max));\n\t\tconst clampedEndValue = Math.max(this.min, Math.min(this.endValue, this.max));\n\n\t\tconst start = ((clampedStartValue - this.min) / range) * 100;\n\t\tconst end = ((clampedEndValue - this.min) / range) * 100;\n\n\t\tif (this.orientation === SliderScaleOrientation.Vertical) {\n\t\t\treturn {\n\t\t\t\ttop: \"auto\",\n\t\t\t\tbottom: `${start}%`,\n\t\t\t\theight: `${end - start}%`,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tinsetInlineStart: `${start}%`,\n\t\t\twidth: `${end - start}%`,\n\t\t};\n\t}\n\n\tget _allTickmarks() {\n\t\t// If custom tickmarks are provided, use them\n\t\tif (this.tickmarks.length > 0) {\n\t\t\treturn this.tickmarks;\n\t\t}\n\n\t\t// Otherwise, generate tickmarks based on step\n\t\tif (!this.showTickmarks) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (this.step === 0) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst values = [];\n\t\tfor (let value = this.min; value <= this.max; value += this.step) {\n\t\t\tvalues.push({ value });\n\t\t}\n\t\treturn values;\n\t}\n\n\tget _tickmarks() {\n\t\tconst allTickmarks = this._allTickmarks;\n\t\tconst stepPrecision = SliderBase._getDecimalPrecisionOfNumber(this.step);\n\t\tconst formatLabelPrecision = stepPrecision > 0 ? stepPrecision : 0;\n\n\t\tif (allTickmarks.length === 0) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn allTickmarks.map((tm, index) => {\n\t\t\tconst value = tm.value;\n\t\t\tconst isFirstOrLast = index === 0 || index === allTickmarks.length - 1;\n\t\t\tconst position = ((value - this.min) / (this.max - this.min)) * 100;\n\n\t\t\t// Determine if this tickmark should be visible\n\t\t\tconst shouldShowTickmark = this._hiddenTickmarks ? isFirstOrLast : true;\n\n\t\t\t// Determine if the label should be visible\n\t\t\tlet showLabel = false;\n\t\t\tif (shouldShowTickmark && !this._labelsOverlapping) {\n\t\t\t\tif (this.labelInterval > 0) {\n\t\t\t\t\tshowLabel = index % this.labelInterval === 0;\n\t\t\t\t} else {\n\t\t\t\t\tshowLabel = true;\n\t\t\t\t}\n\t\t\t} else if (shouldShowTickmark && this._labelsOverlapping && this.labelInterval > 0) {\n\t\t\t\t// When labels overlap, only show first and last\n\t\t\t\tshowLabel = isFirstOrLast;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tvalue,\n\t\t\t\tlabel: tm.label || value.toFixed(formatLabelPrecision),\n\t\t\t\tisInRange: value >= this.startValue && value <= this.endValue,\n\t\t\t\tposition,\n\t\t\t\tshowLabel,\n\t\t\t\tvisible: shouldShowTickmark,\n\t\t\t};\n\t\t}).filter(tick => tick.visible);\n\t}\n}\n\nSliderScale.define();\n\nexport default SliderScale;\nexport { SliderScaleOrientation };\nexport type { Tickmark };\n"]}
@@ -10,6 +10,6 @@ export default function SliderScaleTemplate() {
10
10
  "ui5-slider-scale-progress": true,
11
11
  "ui5-slider-progress": true,
12
12
  "ui5-slider-progress--focused": this.progressFocused || this.progressPressed,
13
- }, part: "progress", style: this._progressStyle, tabIndex: this.progressTabIndex, role: "slider", "aria-orientation": "horizontal", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this.progressAriaValueNow, "aria-valuetext": this.progressAriaValueText, "aria-label": this.progressAriaLabel, "aria-disabled": this.progressAriaDisabled, onMouseEnter: this._onProgressMouseEnter, onMouseLeave: this._onProgressMouseLeave }), _jsx("div", { class: "ui5-slider-scale-progress-hover-area", style: this._progressStyle, onMouseEnter: this._onProgressMouseEnter, onMouseLeave: this._onProgressMouseLeave }), _jsx("slot", {})] }));
13
+ }, part: "progress", style: this._progressStyle, tabIndex: this.progressTabIndex, role: this.progressRole, "aria-orientation": this.progressRole ? "horizontal" : undefined, "aria-valuemin": this.progressRole ? this.min : undefined, "aria-valuemax": this.progressRole ? this.max : undefined, "aria-valuenow": this.progressRole ? this.progressAriaValueNow : undefined, "aria-valuetext": this.progressRole ? this.progressAriaValueText : undefined, "aria-label": this.progressRole ? this.progressAriaLabel : undefined, "aria-disabled": this.progressRole ? this.progressAriaDisabled : undefined, onMouseEnter: this._onProgressMouseEnter, onMouseLeave: this._onProgressMouseLeave }), _jsx("div", { class: "ui5-slider-scale-progress-hover-area", style: this._progressStyle, onMouseEnter: this._onProgressMouseEnter, onMouseLeave: this._onProgressMouseLeave }), _jsx("slot", {})] }));
14
14
  }
15
15
  //# sourceMappingURL=SliderScaleTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliderScaleTemplate.js","sourceRoot":"","sources":["../src/SliderScaleTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,eAAK,KAAK,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,aAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,cAAK,KAAK,EAAC,sCAAsC,YAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC5B,cACC,KAAK,EAAE;wBACN,2BAA2B,EAAE,IAAI;wBACjC,oCAAoC,EAAE,IAAI,CAAC,SAAS;qBACpD,EACD,KAAK,EAAE;wBACN,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG;wBAChF,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG;qBACtE,YAEA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,CAChC,eAAM,KAAK,EAAC,iCAAiC,YAC3C,IAAI,CAAC,KAAK,GACL,CACP,GACI,CACN,CAAC,GACG,CACN,EACD,cACC,KAAK,EAAE;oBACN,2BAA2B,EAAE,IAAI;oBACjC,qBAAqB,EAAE,IAAI;oBAC3B,8BAA8B,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe;iBAC5E,EACD,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,IAAI,CAAC,cAAc,EAC1B,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,IAAI,EAAC,QAAQ,sBACI,YAAY,mBACd,IAAI,CAAC,GAAG,mBACR,IAAI,CAAC,GAAG,mBACR,IAAI,CAAC,oBAAoB,oBACxB,IAAI,CAAC,qBAAqB,gBAC9B,IAAI,CAAC,iBAAiB,mBACnB,IAAI,CAAC,oBAAoB,EACxC,YAAY,EAAE,IAAI,CAAC,qBAAqB,EACxC,YAAY,EAAE,IAAI,CAAC,qBAAqB,GAClC,EACP,cACC,KAAK,EAAC,sCAAsC,EAC5C,KAAK,EAAE,IAAI,CAAC,cAAc,EAC1B,YAAY,EAAE,IAAI,CAAC,qBAAqB,EACxC,YAAY,EAAE,IAAI,CAAC,qBAAqB,GAClC,EACP,gBAAa,IACR,CACN,CAAC;AACH,CAAC","sourcesContent":["import type SliderScale from \"./SliderScale.js\";\n\nexport default function SliderScaleTemplate(this: SliderScale) {\n\treturn (\n\t\t<div class=\"ui5-slider-scale-root\" part=\"inner\">\n\t\t\t{this._tickmarks.length > 0 && (\n\t\t\t\t<div class=\"ui5-slider-scale-tickmarks-container\">\n\t\t\t\t\t{this._tickmarks.map(tick => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t\"ui5-slider-scale-tickmark\": true,\n\t\t\t\t\t\t\t\t\"ui5-slider-scale-tickmark-in-range\": tick.isInRange,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tinsetInlineStart: `${this.orientation === \"Horizontal\" ? tick.position : \"50\"}%`,\n\t\t\t\t\t\t\t\tbottom: `${this.orientation === \"Vertical\" ? tick.position : \"auto\"}%`\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{tick.label && tick.showLabel && (\n\t\t\t\t\t\t\t\t<span class=\"ui5-slider-scale-tickmark-label\">\n\t\t\t\t\t\t\t\t\t{tick.label}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-slider-scale-progress\": true,\n\t\t\t\t\t\"ui5-slider-progress\": true,\n\t\t\t\t\t\"ui5-slider-progress--focused\": this.progressFocused || this.progressPressed,\n\t\t\t\t}}\n\t\t\t\tpart=\"progress\"\n\t\t\t\tstyle={this._progressStyle}\n\t\t\t\ttabIndex={this.progressTabIndex}\n\t\t\t\trole=\"slider\"\n\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\taria-valuemin={this.min}\n\t\t\t\taria-valuemax={this.max}\n\t\t\t\taria-valuenow={this.progressAriaValueNow}\n\t\t\t\taria-valuetext={this.progressAriaValueText}\n\t\t\t\taria-label={this.progressAriaLabel}\n\t\t\t\taria-disabled={this.progressAriaDisabled}\n\t\t\t\tonMouseEnter={this._onProgressMouseEnter}\n\t\t\t\tonMouseLeave={this._onProgressMouseLeave}\n\t\t\t></div>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-slider-scale-progress-hover-area\"\n\t\t\t\tstyle={this._progressStyle}\n\t\t\t\tonMouseEnter={this._onProgressMouseEnter}\n\t\t\t\tonMouseLeave={this._onProgressMouseLeave}\n\t\t\t></div>\n\t\t\t<slot></slot>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"SliderScaleTemplate.js","sourceRoot":"","sources":["../src/SliderScaleTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,eAAK,KAAK,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,aAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,cAAK,KAAK,EAAC,sCAAsC,YAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC5B,cACC,KAAK,EAAE;wBACN,2BAA2B,EAAE,IAAI;wBACjC,oCAAoC,EAAE,IAAI,CAAC,SAAS;qBACpD,EACD,KAAK,EAAE;wBACN,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG;wBAChF,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG;qBACtE,YAEA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,CAChC,eAAM,KAAK,EAAC,iCAAiC,YAC3C,IAAI,CAAC,KAAK,GACL,CACP,GACI,CACN,CAAC,GACG,CACN,EACD,cACC,KAAK,EAAE;oBACN,2BAA2B,EAAE,IAAI;oBACjC,qBAAqB,EAAE,IAAI;oBAC3B,8BAA8B,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe;iBAC5E,EACD,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,IAAI,CAAC,cAAc,EAC1B,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,IAAI,EAAE,IAAI,CAAC,YAAY,sBACL,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,mBAC/C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,mBACxC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,mBACxC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,oBACxD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,gBAC9D,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,mBACnD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EACxE,YAAY,EAAE,IAAI,CAAC,qBAAqB,EACxC,YAAY,EAAE,IAAI,CAAC,qBAAqB,GAClC,EACP,cACC,KAAK,EAAC,sCAAsC,EAC5C,KAAK,EAAE,IAAI,CAAC,cAAc,EAC1B,YAAY,EAAE,IAAI,CAAC,qBAAqB,EACxC,YAAY,EAAE,IAAI,CAAC,qBAAqB,GAClC,EACP,gBAAa,IACR,CACN,CAAC;AACH,CAAC","sourcesContent":["import type SliderScale from \"./SliderScale.js\";\n\nexport default function SliderScaleTemplate(this: SliderScale) {\n\treturn (\n\t\t<div class=\"ui5-slider-scale-root\" part=\"inner\">\n\t\t\t{this._tickmarks.length > 0 && (\n\t\t\t\t<div class=\"ui5-slider-scale-tickmarks-container\">\n\t\t\t\t\t{this._tickmarks.map(tick => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t\"ui5-slider-scale-tickmark\": true,\n\t\t\t\t\t\t\t\t\"ui5-slider-scale-tickmark-in-range\": tick.isInRange,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tinsetInlineStart: `${this.orientation === \"Horizontal\" ? tick.position : \"50\"}%`,\n\t\t\t\t\t\t\t\tbottom: `${this.orientation === \"Vertical\" ? tick.position : \"auto\"}%`\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{tick.label && tick.showLabel && (\n\t\t\t\t\t\t\t\t<span class=\"ui5-slider-scale-tickmark-label\">\n\t\t\t\t\t\t\t\t\t{tick.label}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-slider-scale-progress\": true,\n\t\t\t\t\t\"ui5-slider-progress\": true,\n\t\t\t\t\t\"ui5-slider-progress--focused\": this.progressFocused || this.progressPressed,\n\t\t\t\t}}\n\t\t\t\tpart=\"progress\"\n\t\t\t\tstyle={this._progressStyle}\n\t\t\t\ttabIndex={this.progressTabIndex}\n\t\t\t\trole={this.progressRole}\n\t\t\t\taria-orientation={this.progressRole ? \"horizontal\" : undefined}\n\t\t\t\taria-valuemin={this.progressRole ? this.min : undefined}\n\t\t\t\taria-valuemax={this.progressRole ? this.max : undefined}\n\t\t\t\taria-valuenow={this.progressRole ? this.progressAriaValueNow : undefined}\n\t\t\t\taria-valuetext={this.progressRole ? this.progressAriaValueText : undefined}\n\t\t\t\taria-label={this.progressRole ? this.progressAriaLabel : undefined}\n\t\t\t\taria-disabled={this.progressRole ? this.progressAriaDisabled : undefined}\n\t\t\t\tonMouseEnter={this._onProgressMouseEnter}\n\t\t\t\tonMouseLeave={this._onProgressMouseLeave}\n\t\t\t></div>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-slider-scale-progress-hover-area\"\n\t\t\t\tstyle={this._progressStyle}\n\t\t\t\tonMouseEnter={this._onProgressMouseEnter}\n\t\t\t\tonMouseLeave={this._onProgressMouseLeave}\n\t\t\t></div>\n\t\t\t<slot></slot>\n\t\t</div>\n\t);\n}\n"]}
package/dist/Tab.d.ts CHANGED
@@ -159,7 +159,7 @@ declare class Tab extends UI5Element implements ITabbable, ITab {
159
159
  get expandButtonTitle(): string;
160
160
  get _roleDescription(): string | undefined;
161
161
  get _ariaHasPopup(): "menu" | undefined;
162
- get semanticIconName(): "alert" | "sys-enter-2" | "error" | null;
162
+ get semanticIconName(): "alert" | "error" | "sys-enter-2" | null;
163
163
  get _designDescription(): string | null;
164
164
  get semanticIconClasses(): string;
165
165
  get overflowClasses(): string;
package/dist/Table.d.ts CHANGED
@@ -302,6 +302,7 @@ declare class Table extends UI5Element {
302
302
  _onEvent(e: Event): void;
303
303
  _onResize(): void;
304
304
  _onfocusin(e: FocusEvent): void;
305
+ _scrollElementIntoView(element: HTMLElement): void;
305
306
  _onGrow(): void;
306
307
  _getPopinOrderedColumns(reverse: boolean): TableHeaderCell[];
307
308
  /**
@@ -330,7 +331,6 @@ declare class Table extends UI5Element {
330
331
  get _hasFlexibleColumns(): boolean;
331
332
  get _isRowSelectorRequired(): boolean | undefined;
332
333
  get _scrollContainer(): HTMLElement;
333
- get _stickyElements(): (TableHeaderRow | TableHeaderCell)[];
334
334
  get _effectiveNoDataText(): string;
335
335
  get _ariaLabel(): string | undefined;
336
336
  get _ariaDescription(): string | undefined;
package/dist/Table.js CHANGED
@@ -17,7 +17,7 @@ import TableOverflowMode from "./types/TableOverflowMode.js";
17
17
  import TableDragAndDrop from "./TableDragAndDrop.js";
18
18
  import TableCustomAnnouncement from "./TableCustomAnnouncement.js";
19
19
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
20
- import { findVerticalScrollContainer, scrollElementIntoView, isFeature, isValidColumnWidth, } from "./TableUtils.js";
20
+ import { findVerticalScrollContainer, computeAxisScrollDelta, isFeature, isValidColumnWidth, } from "./TableUtils.js";
21
21
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
22
22
  import { TABLE_NO_DATA, } from "./generated/i18n/i18n-defaults.js";
23
23
  /**
@@ -275,8 +275,21 @@ let Table = Table_1 = class Table extends UI5Element {
275
275
  if (e.target === this) {
276
276
  return;
277
277
  }
278
- // Handles focus in the table, when the focus is below a sticky element
279
- scrollElementIntoView(this._scrollContainer, e.target, this._stickyElements, this.effectiveDir === "rtl");
278
+ this._scrollElementIntoView(e.target);
279
+ }
280
+ _scrollElementIntoView(element) {
281
+ const verticalStickyElements = this.headerRow.filter(row => row.sticky);
282
+ if (verticalStickyElements.length) {
283
+ const verticalScrollContainer = findVerticalScrollContainer(this._tableElement, true);
284
+ const deltaY = computeAxisScrollDelta(element, verticalScrollContainer, verticalStickyElements, "y");
285
+ verticalScrollContainer.scrollBy({ top: deltaY });
286
+ }
287
+ const horizontalStickyElements = this.overflowMode === "Scroll" ? this.headerRow[0]._stickyCells : [];
288
+ if (horizontalStickyElements.length) {
289
+ const horizontalScrollContainer = this._tableElement;
290
+ const deltaX = computeAxisScrollDelta(element, horizontalScrollContainer, horizontalStickyElements, "x");
291
+ horizontalScrollContainer.scrollBy({ left: deltaX });
292
+ }
280
293
  }
281
294
  _onGrow() {
282
295
  this._getGrowing()?.loadMore();
@@ -392,11 +405,6 @@ let Table = Table_1 = class Table extends UI5Element {
392
405
  get _scrollContainer() {
393
406
  return this._getVirtualizer() ? this._tableElement : findVerticalScrollContainer(this);
394
407
  }
395
- get _stickyElements() {
396
- const stickyRows = this.headerRow.filter(row => row.sticky);
397
- const stickyColumns = this.headerRow[0]._stickyCells;
398
- return [...stickyRows, ...stickyColumns];
399
- }
400
408
  get _effectiveNoDataText() {
401
409
  return this.noDataText || Table_1.i18nBundle.getText(TABLE_NO_DATA);
402
410
  }
package/dist/Table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.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 {\n\tcustomElement, slotStrict as slot, property, eventStrict, i18n,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport TableTemplate from \"./TableTemplate.js\";\nimport TableStyles from \"./generated/themes/Table.css.js\";\nimport TableExtension from \"./TableExtension.js\";\nimport TableNavigation from \"./TableNavigation.js\";\nimport TableOverflowMode from \"./types/TableOverflowMode.js\";\nimport TableDragAndDrop from \"./TableDragAndDrop.js\";\nimport TableCustomAnnouncement from \"./TableCustomAnnouncement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n\tfindVerticalScrollContainer, scrollElementIntoView, isFeature, isValidColumnWidth,\n} from \"./TableUtils.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type DropIndicator from \"./DropIndicator.js\";\nimport type TableHeaderRow from \"./TableHeaderRow.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { MoveEventDetail } from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport type TableHeaderCell from \"./TableHeaderCell.js\";\nimport type TableSelection from \"./TableSelection.js\";\nimport type TableSelectionBase from \"./TableSelectionBase.js\";\nimport type TableRowActionBase from \"./TableRowActionBase.js\";\nimport type TableVirtualizer from \"./TableVirtualizer.js\";\nimport type TableGrowing from \"./TableGrowing.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tTABLE_NO_DATA,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * Interface for components that can be slotted inside the `features` slot of the `ui5-table`.\n *\n * @public\n * @experimental\n */\ninterface ITableFeature extends UI5Element {\n\treadonly identifier: string;\n\t/**\n\t * Called when the table is activated.\n\t * @param table Table instance\n\t */\n\tonTableActivate?(table: Table): void;\n\t/**\n\t * Called every time before the table renders.\n\t * @param table Table instance\n\t */\n\tonTableBeforeRendering?(table?: Table): void;\n\t/**\n\t * Called every time after the table renders.\n\t * @param table Table instance\n\t */\n\tonTableAfterRendering?(table?: Table): void;\n}\n\n/**\n * Interface for components that can be slotted inside the `features` slot of the `ui5-table`\n * and provide growing/data loading functionality.\n * @public\n * @experimental\n */\ninterface ITableGrowing extends ITableFeature {\n\t/**\n\t * Called when the table needs to load more data.\n\t */\n\tloadMore(): void;\n\t/**\n\t * Determines whether the table has a growing control, that should be rendered in the table.\n\t */\n\thasGrowingComponent(): boolean;\n\t_individualSlot?: string;\n}\n\n/**\n * Fired when an interactive row is clicked.\n *\n * @param {TableRow} row The clicked row instance\n * @public\n */\ntype TableRowClickEventDetail = {\n\trow: TableRow,\n};\n\ntype TableMoveEventDetail = MoveEventDetail;\n\n/**\n * Fired when a row action is clicked.\n *\n * @param {TableRowActionBase} action The row action instance\n * @param {TableRow} row The row instance\n * @public\n */\ntype TableRowActionClickEventDetail = {\n\taction: TableRowActionBase,\n\trow: TableRow,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table` component provides a set of sophisticated features for displaying and dealing with vast amounts of data in a responsive manner.\n * To render the `ui5-table`, you need to define the columns and rows. You can use the provided `ui5-table-header-row` and `ui5-table-row` components for this purpose.\n *\n * ### Features\n *\n * The `ui5-table` can be enhanced in its functionalities by applying different features.\n * Features can be slotted into the `features` slot, to enable them in the component.\n * Features need to be imported separately, as they are not enabled by default.\n *\n * The following features are currently available:\n *\n * * [TableSelectionMulti](../TableSelectionMulti) - adds multi-selection capabilities to the table\n * * [TableSelectionSingle](../TableSelectionSingle) - adds single-selection capabilities to the table\n * * [TableGrowing](../TableGrowing) - provides growing capabilities to load more data\n * * [TableVirtualizer](../TableVirtualizer) - adds virtualization capabilities to the table\n *\n * ### Keyboard Handling\n *\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * Furthermore, you can interact with `ui5-table` via the following keys:\n *\n * If the focus is on a row, the following keyboard shortcuts are available:\n * * <kbd>Down</kbd> - Navigates down\n * * <kbd>Up</kbd> - Navigates up\n * * <kbd>Right</kbd> - Selects the first cell of the row\n * * <kbd>Space</kbd> - Toggles the selection of the row\n * * <kbd>Ctrl/Cmd + A</kbd> - In multi selection mode, toggles the selection of all rows\n * * <kbd>Home</kbd> - Navigates to the first row, if the focus is on the first row, navigates to the header row\n * * <kbd>End</kbd> - Navigates to the last row, if the focus is on the last row, navigates to the growing button\n * * <kbd>Page Up</kbd> - Navigates one page up, if the focus is on the first row, navigates to the header row\n * * <kbd>Page Down</kbd> - Navigates one page down, if the focus is on the last row, navigates to the growing button\n * * <kbd>F2</kbd> - Focuses the first tabbable element in the row\n * * <kbd>F7</kbd> - If focus position is remembered, moves focus to the corresponding focus position row, otherwise to the first tabbable element within the row\n * * <kbd>[Shift]Tab</kbd> - Move focus to the element in the tab chain outside the table\n *\n * If the focus is on a cell, the following keyboard shortcuts are available:\n * * <kbd>Down</kbd> - Navigates down\n * * <kbd>Up</kbd> - Navigates up\n * * <kbd>Right</kbd> - Navigates right\n * * <kbd>Left</kbd> - Navigates left, if the focus is on the first cell of the row, the focus is moved to the row.\n * * <kbd>Home</kbd> - Navigates to the first cell of the current row, if the focus is on the first cell, navigates to the corresponding row\n * * <kbd>End</kbd> - Navigates to the last cell of the current row, if the focus is on the last cell, navigates to the corresponding row\n * * <kbd>Page Up</kbd> - Navigates one page up while keeping the focus in same column\n * * <kbd>Page Down</kbd> - Navigates one page down while keeping the focus in same column\n * * <kbd>F2</kbd> - Toggles the focus between the first tabbable cell content and the cell\n * * <kbd>Enter</kbd> - Focuses the first tabbable cell content\n * * <kbd>F7</kbd> - If the focus is on an interactive element inside a row, moves focus to the corresponding row and remembers the focus position of the element within the row\n * * <kbd>[Shift]Tab</kbd> - Move focus to the element in the tab chain outside the table\n *\n * If the focus is on an interactive cell content, the following keyboard shortcuts are available:\n * * <kbd>Down</kbd> - Move the focus to the interactive element in the same column of the previous row, unless the focused element prevents the default\n * * <kbd>Up</kbd> - Move the focus to the interactive element in the same column of the next row, unless the focused element prevents the default\n * * <kbd>[Shift]Tab</kbd> - Move the focus to the element in the tab chain\n *\n * ### Accessibility\n *\n * The `ui5-table` follows the [ARIA grid design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/grid/).\n * This pattern enables cell-based keyboard navigation and, as explained above, we also support row-based keyboard navigation.\n * Since the grid design pattern does not inherently provide row-based keyboard behavior, if the focus is on a row, not only the row information but also the corresponding column headers for each cell must be announced.\n * This can only be achieved through a custom accessibility announcement.\n * To support this, UI5 Web Components expose its own accessibility metadata via the `accessibilityInfo` property.\n * The `ui5-table` uses this information to create the required custom announcements dynamically.\n * If you include custom web components inside table cells that are not part of the standard UI5 Web Components set, their accessibility information can be provided using the `data-ui5-acc-text` attribute.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Table.js\";` (`ui5-table`)\\\n * `import \"@ui5/webcomponents/dist/TableRow.js\";` (`ui5-table-row`)\\\n * `import \"@ui5/webcomponents/dist/TableCell.js\";` (`ui5-table-cell`)\\\n * `import \"@ui5/webcomponents/dist/TableHeaderRow.js\";` (`ui5-table-header-row`)\\\n * `import \"@ui5/webcomponents/dist/TableHeaderCell.js\";` (`ui5-table-header-cell`)\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-table\",\n\trenderer: jsxRenderer,\n\tstyles: TableStyles,\n\ttemplate: TableTemplate,\n\tfastNavigation: true,\n})\n\n/**\n * Fired when an interactive row is clicked.\n *\n * **Note:** This event is not fired if the `behavior` property of the selection component is set to `RowOnly`.\n * In that case, use the `change` event of the selection component instead.\n *\n * @param {TableRow} row The row instance\n * @public\n */\n@eventStrict(\"row-click\", {\n\tbubbles: false,\n})\n\n/**\n * Fired when a movable item is moved over a potential drop target during a dragging operation.\n *\n * If the new position is valid, prevent the default action of the event using `preventDefault()`.\n *\n * **Note:** If the dragging operation is a cross-browser operation or files are moved to a potential drop target,\n * the `source` parameter will be `null`.\n *\n * @param {Event} originalEvent The original `dragover` event\n * @param {object} source The source object\n * @param {object} destination The destination object\n * @public\n */\n@eventStrict(\"move-over\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired when a movable list item is dropped onto a drop target.\n *\n * **Notes:**\n *\n * The `move` event is fired only if there was a preceding `move-over` with prevented default action.\n *\n * If the dragging operation is a cross-browser operation or files are moved to a potential drop target,\n * the `source` parameter will be `null`.\n *\n * @param {Event} originalEvent The original `drop` event\n * @param {object} source The source object\n * @param {object} destination The destination object\n * @public\n */\n@eventStrict(\"move\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when a row action is clicked.\n *\n * @param {TableRowActionBase} action The row action instance\n * @param {TableRow} row The row instance\n * @since 2.6.0\n * @public\n */\n@eventStrict(\"row-action-click\", {\n\tbubbles: false,\n})\n\nclass Table extends UI5Element {\n\teventDetails!: {\n\t\t\"row-click\": TableRowClickEventDetail;\n\t\t\"move-over\": TableMoveEventDetail;\n\t\t\"move\": TableMoveEventDetail;\n\t\t\"row-action-click\": TableRowActionClickEventDetail;\n\t}\n\n\t/**\n\t * Defines the rows of the component.\n\t *\n\t * **Note:** Use `ui5-table-row` for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: [\"navigated\", \"position\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\trows!: DefaultSlot<TableRow>;\n\n\t/**\n\t * Defines the header row of the component.\n\t *\n\t * **Note:** Use `ui5-table-header-row` for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: { properties: false, slots: true } })\n\theaderRow!: Slot<TableHeaderRow>;\n\n\t/**\n\t * Defines the custom visualization if there is no data available.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tnoData!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the features of the component.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, individualSlots: true })\n\tfeatures!: Slot<ITableFeature>;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Identifies the element (or elements) that labels the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the text to be displayed when there are no rows in the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tnoDataText?: string;\n\n\t/**\n\t * Defines the mode of the <code>ui5-table</code> overflow behavior.\n\t *\n\t * Available options are:\n\t *\n\t * <code>Scroll</code> - Columns are shown as regular columns and horizontal scrolling is enabled.\n\t * <code>Popin</code> - Columns are shown as pop-ins instead of regular columns.\n\t *\n\t * @default \"Scroll\"\n\t * @public\n\t */\n\t@property()\n\toverflowMode: `${TableOverflowMode}` = \"Scroll\";\n\n\t/**\n\t * Defines if the loading indicator should be shown.\n\t *\n\t * **Note:** When the component is loading, it is not interactive.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will show up for this component.\n\t *\n\t * @default 1000\n\t * @public\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines the maximum number of row actions that is displayed, which determines the width of the row action column.\n\t *\n\t * **Note:** It is recommended to use a maximum of 3 row actions, as exceeding this limit may take up too much space on smaller screens.\n\t *\n\t * @default 0\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\trowActionCount = 0;\n\n\t/**\n\t * Determines whether the table rows are displayed with alternating background colors.\n\t *\n\t * @default false\n\t * @since 2.17\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\talternateRowColors = false;\n\n\t/**\n\t * Defines the sticky top offset of the table, if other sticky elements outside of the table exist.\n\t */\n\t@property()\n\tstickyTop = \"0\";\n\n\t@property({ type: Number, noAttribute: true })\n\t_invalidate = 0;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_renderNavigated = false;\n\n\t@query(\"[ui5-drop-indicator]\")\n\tdropIndicatorDOM!: DropIndicator;\n\n\t@query(\"#no-data-row\")\n\t_noDataRow?: TableRow;\n\n\t@query(\"#table-end-row\")\n\t_endRow!: TableRow;\n\n\t@query(\"#table\")\n\t_tableElement!: HTMLElement;\n\n\t@query(\"#before\")\n\t_beforeElement!: HTMLElement;\n\n\t@query(\"#after\")\n\t_afterElement!: HTMLElement;\n\n\t@query(\"#loading\")\n\t_loadingElement!: HTMLElement;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_events = [\"keydown\", \"keyup\", \"click\", \"focusin\", \"focusout\", \"pointerdown\", \"dragstart\", \"dragenter\", \"dragleave\", \"dragover\", \"drop\", \"dragend\"];\n\t_onEventBound: (e: Event) => void;\n\t_onResizeBound: ResizeObserverCallback;\n\t_tableNavigation?: TableNavigation;\n\t_tableDragAndDrop?: TableDragAndDrop;\n\t_tableCustomAnnouncement?: TableCustomAnnouncement;\n\t_poppedIn: Array<{ col: TableHeaderCell, width: number }> = [];\n\t_containerWidth = 0;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._onResizeBound = this._onResize.bind(this);\n\t\tthis._onEventBound = this._onEvent.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tthis._events.forEach(eventType => this.addEventListener(eventType, this._onEventBound));\n\t\tthis.features.forEach(feature => feature.onTableActivate?.(this));\n\t\tthis._tableNavigation = new TableNavigation(this);\n\t\tthis._tableDragAndDrop = new TableDragAndDrop(this);\n\t\tthis._tableCustomAnnouncement = new TableCustomAnnouncement(this);\n\t}\n\n\tonExitDOM() {\n\t\tthis._tableNavigation = undefined;\n\t\tthis._tableDragAndDrop = undefined;\n\t\tthis._events.forEach(eventType => this.removeEventListener(eventType, this._onEventBound));\n\t}\n\n\tonBeforeRendering(): void {\n\t\tlet alternateIndex = 0;\n\t\tconst hasFlexibleColumns = this._hasFlexibleColumns;\n\t\tconst rowActionCount = this.rowActionCount > 0 && this.rows.length > 0 ? this.rowActionCount : 0;\n\t\tthis._renderNavigated = this.rows.some(row => row.navigated);\n\t\t[...this.headerRow, ...this.rows].forEach(row => {\n\t\t\tif (!row.isGroupRow()) {\n\t\t\t\trow._rowActionCount = rowActionCount;\n\t\t\t\trow._renderDummyCell = !hasFlexibleColumns;\n\t\t\t\trow._renderNavigated = this._renderNavigated;\n\t\t\t\trow._alternate = this.alternateRowColors && alternateIndex++ % 2 === 0;\n\t\t\t} else {\n\t\t\t\trow._rowActionCount = 0;\n\t\t\t\trow._renderDummyCell = !hasFlexibleColumns && !this._hasPopin;\n\t\t\t\trow._renderNavigated = false;\n\t\t\t\trow._alternate = false;\n\t\t\t\talternateIndex = 1;\n\t\t\t}\n\t\t});\n\n\t\tthis.style.setProperty(\"--ui5_grid_sticky_top\", this.stickyTop);\n\t\tthis._refreshPopinState();\n\t\tthis.features.forEach(feature => feature.onTableBeforeRendering?.(this));\n\n\t\tif (this.getDomRef()) {\n\t\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t\t}\n\t}\n\n\tonAfterRendering(): void {\n\t\tthis.features.forEach(feature => feature.onTableAfterRendering?.(this));\n\t\tif (this.overflowMode === TableOverflowMode.Popin) {\n\t\t\tResizeHandler.register(this, this._onResizeBound);\n\t\t}\n\t}\n\n\t_findFeature<T>(featureName: string): T {\n\t\treturn this.features.find(feature => isFeature<T>(feature, featureName)) as T;\n\t}\n\n\t_getSelection(): TableSelectionBase | TableSelection | undefined {\n\t\treturn this._findFeature<TableSelectionBase>(\"TableSelectionBase\") || this._findFeature<TableSelection>(\"TableSelection\");\n\t}\n\n\t_getVirtualizer(): TableVirtualizer | undefined {\n\t\treturn this._findFeature<TableVirtualizer>(\"TableVirtualizer\");\n\t}\n\n\t_getGrowing(): TableGrowing | undefined {\n\t\treturn this._findFeature<TableGrowing>(\"TableGrowing\");\n\t}\n\n\t_onEvent(e: Event) {\n\t\tconst composedPath = e.composedPath();\n\t\tconst eventOrigin = composedPath[0] as HTMLElement;\n\t\tconst elements = [this._tableCustomAnnouncement, this._tableNavigation, this._tableDragAndDrop, ...composedPath, ...this.features].filter(Boolean) as Array<ITableFeature | TableExtension | UI5Element>;\n\t\telements.forEach(element => {\n\t\t\tif (element instanceof TableExtension || (element instanceof HTMLElement && element.localName.includes(\"ui5-table\"))) {\n\t\t\t\tconst eventHandlerName = `_on${e.type}` as keyof typeof element;\n\t\t\t\tconst eventHandler = element[eventHandlerName] as (e?: Event, eventOrigin?: HTMLElement) => void;\n\t\t\t\tif (typeof eventHandler === \"function\") {\n\t\t\t\t\teventHandler.call(element, e, eventOrigin);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t_onResize() {\n\t\tconst { clientWidth, scrollWidth } = this._tableElement;\n\t\t// Safari can report scrollWidth 1px greater than clientWidth during zoom transitions\n\t\t// due to subpixel rounding, so a strict > check triggers spurious popin cycles.\n\t\tconst overflow = scrollWidth - clientWidth;\n\n\t\tif (overflow > 1) {\n\t\t\t// Overflow Handling: Move columns into the popin until overflow is resolved\n\t\t\tconst headers = this._getPopinOrderedColumns(false);\n\t\t\tconst poppedInWidth = headers.reduce((totalPoppedInWidth, headerCell) => {\n\t\t\t\tif (totalPoppedInWidth < overflow && !headerCell._popin) {\n\t\t\t\t\tconst headerWidth = Math.ceil(headerCell.getBoundingClientRect().width);\n\t\t\t\t\ttotalPoppedInWidth += headerWidth;\n\t\t\t\t\tthis._setHeaderPopinState(headerCell, true, headerWidth);\n\t\t\t\t}\n\t\t\t\treturn totalPoppedInWidth;\n\t\t\t}, 0);\n\t\t\t// Calculate container width considering popped-in columns\n\t\t\tconst columnOverflow = poppedInWidth - overflow;\n\t\t\tthis._containerWidth = clientWidth - columnOverflow;\n\t\t} else {\n\t\t\t// Underflow Handling: Restore columns from popin until container width is met\n\t\t\tconst headers = this._getPopinOrderedColumns(true).filter(it => it._popin);\n\n\t\t\theaders.every(headerCell => {\n\t\t\t\tconst underflow = clientWidth - this._containerWidth;\n\t\t\t\tif (underflow >= headerCell._popinWidth) {\n\t\t\t\t\tthis._containerWidth += headerCell._popinWidth;\n\t\t\t\t\tthis._setHeaderPopinState(headerCell, false, 0);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tif (e.target === this) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Handles focus in the table, when the focus is below a sticky element\n\t\tscrollElementIntoView(this._scrollContainer, e.target as HTMLElement, this._stickyElements, this.effectiveDir === \"rtl\");\n\t}\n\n\t_onGrow() {\n\t\tthis._getGrowing()?.loadMore();\n\t}\n\n\t_getPopinOrderedColumns(reverse: boolean) {\n\t\tlet headers = [...this.headerRow[0].cells];\n\t\theaders = headers.reverse(); // reverse the \"visual\" order\n\t\theaders = headers.sort((a, b) => a.importance - b.importance); // sort by importance (asc)\n\t\theaders.pop(); // remove the most important column, as it will not be popped in\n\n\t\tif (reverse) {\n\t\t\theaders = headers.reverse();\n\t\t}\n\n\t\treturn headers;\n\t}\n\n\t/**\n\t * Refreshes the popin state of the columns.\n\t * Syncs the popin state of the columns with the popin state of the header cells.\n\t * This is needed when additional rows are manually added and no resize happens.\n\t * @private\n\t */\n\t_refreshPopinState() {\n\t\tthis.headerRow[0]?.cells.forEach(header => {\n\t\t\tthis._setHeaderPopinState(header, header._popin, header._popinWidth);\n\t\t});\n\t}\n\n\t_setHeaderPopinState(headerCell: TableHeaderCell, inPopin: boolean, popinWidth: number) {\n\t\tconst headerIndex = this.headerRow[0].cells.indexOf(headerCell);\n\t\theaderCell._popin = inPopin && this.overflowMode === TableOverflowMode.Popin;\n\t\theaderCell._popinWidth = popinWidth;\n\t\tthis.rows.forEach(row => {\n\t\t\tconst cell = row.cells[headerIndex];\n\t\t\tif (cell) {\n\t\t\t\tcell._popinHidden = headerCell.popinHidden;\n\t\t\t\tcell._popin = headerCell._popin;\n\t\t\t}\n\t\t});\n\t}\n\n\t_isGrowingFeature(feature: any) {\n\t\treturn Boolean(feature.loadMore && feature.hasGrowingComponent && isFeature<ITableGrowing>(feature, \"TableGrowing\"));\n\t}\n\n\t_onRowClick(row: TableRow) {\n\t\tthis.fireDecoratorEvent(\"row-click\", { row });\n\t}\n\n\t_onRowActionClick(action: TableRowActionBase) {\n\t\tconst row = action.parentElement as TableRow;\n\t\tthis.fireDecoratorEvent(\"row-action-click\", { action, row });\n\t}\n\n\tget styles() {\n\t\tconst virtualizer = this._getVirtualizer();\n\t\tconst headerStyleMap: Record<string, string> = {};\n\t\tthis.headerRow[0]?.cells.forEach(headerCell => {\n\t\t\theaderStyleMap[`--halign-${headerCell._id}`] = headerCell.horizontalAlign || \"initial\";\n\t\t});\n\t\treturn {\n\t\t\ttable: {\n\t\t\t\t\"grid-template-columns\": this._gridTemplateColumns,\n\t\t\t\t\"--row-height\": virtualizer ? `${virtualizer.rowHeight}px` : \"auto\",\n\t\t\t\t...headerStyleMap,\n\t\t\t},\n\t\t\tspacer: {\n\t\t\t\t\"transform\": virtualizer?._getTransform(),\n\t\t\t\t\"will-change\": virtualizer && \"transform\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget _gridTemplateColumns() {\n\t\tif (!this.headerRow[0]) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst widths = [];\n\t\tconst visibleHeaderCells = this.headerRow[0]._visibleCells;\n\n\t\t// Selection Cell Width\n\t\tif (this._isRowSelectorRequired) {\n\t\t\twidths.push(\"min-content\");\n\t\t}\n\n\t\t// Column Widths\n\t\twidths.push(...visibleHeaderCells.map(cell => {\n\t\t\tconst minWidth = cell.minWidth ?? \"3rem\";\n\t\t\tlet width = `minmax(${minWidth}, 1fr)`; // default width\n\t\t\tif (isValidColumnWidth(cell.width)) {\n\t\t\t\twidth = cell.width.includes(\"%\") ? `max(${minWidth}, ${cell.width})` : cell.width;\n\t\t\t}\n\t\t\treturn width;\n\t\t}));\n\n\t\t// Dummy Cell Width (before actions when popin, after navigated otherwise)\n\t\tconst dummyColumnWidth = !this._hasFlexibleColumns ? \"minmax(0, 1fr)\" : \"\";\n\t\tconst hasPopin = this._hasPopin;\n\n\t\tif (dummyColumnWidth && hasPopin) {\n\t\t\twidths.push(dummyColumnWidth);\n\t\t}\n\n\t\t// Row Action Cell Width\n\t\tif (this.rowActionCount > 0 && this.rows.length > 0) {\n\t\t\twidths.push(`calc(var(--_ui5_button_base_min_width) * ${this.rowActionCount} + var(--_ui5_table_row_actions_gap) * ${this.rowActionCount - 1} + var(--_ui5_table_cell_horizontal_padding) * 2)`);\n\t\t}\n\n\t\t// Navigated Cell Width\n\t\tif (this._renderNavigated) {\n\t\t\twidths.push(`var(--_ui5_table_navigated_cell_width)`);\n\t\t}\n\n\t\tif (dummyColumnWidth && !hasPopin) {\n\t\t\twidths.push(dummyColumnWidth);\n\t\t}\n\n\t\treturn widths.join(\" \");\n\t}\n\n\tget _hasPopin() {\n\t\treturn this.overflowMode === TableOverflowMode.Popin && this.headerRow?.[0]?._hasPopin;\n\t}\n\n\tget _hasFlexibleColumns(): boolean {\n\t\treturn this.headerRow?.[0]?._visibleCells.some(cell => !isValidColumnWidth(cell.width));\n\t}\n\n\tget _isRowSelectorRequired() {\n\t\treturn this.rows.length > 0 && this._getSelection()?.isRowSelectorRequired();\n\t}\n\n\tget _scrollContainer() {\n\t\treturn this._getVirtualizer() ? this._tableElement : findVerticalScrollContainer(this);\n\t}\n\n\tget _stickyElements() {\n\t\tconst stickyRows = this.headerRow.filter(row => row.sticky);\n\t\tconst stickyColumns = this.headerRow[0]._stickyCells as TableHeaderCell[];\n\t\treturn [...stickyRows, ...stickyColumns];\n\t}\n\n\tget _effectiveNoDataText() {\n\t\treturn this.noDataText || Table.i18nBundle.getText(TABLE_NO_DATA);\n\t}\n\n\tget _ariaLabel() {\n\t\treturn getEffectiveAriaLabelText(this) || undefined;\n\t}\n\n\tget _ariaDescription() {\n\t\treturn this._getSelection()?.getAriaDescriptionForTable();\n\t}\n\n\tget _ariaRowCount() {\n\t\treturn this._getVirtualizer()?.rowCount || this.rows.length + 1;\n\t}\n\n\tget _ariaColCount() {\n\t\tif (!this.headerRow[0]) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet ariaColCount = this.headerRow[0]._visibleCells.length;\n\t\tif (this._isRowSelectorRequired) {\n\t\t\tariaColCount++;\n\t\t}\n\t\tif (this.rowActionCount > 0 && this.rows.length > 0) {\n\t\t\tariaColCount++;\n\t\t}\n\t\tif (this.headerRow[0]._popinCells.length > 0) {\n\t\t\tariaColCount++;\n\t\t}\n\n\t\treturn ariaColCount;\n\t}\n\n\tget _ariaMultiSelectable() {\n\t\tconst selection = this._getSelection();\n\t\treturn (selection?.isSelectable() && this.rows.length) ? selection.isMultiSelectable() : undefined;\n\t}\n\n\tget isTable() {\n\t\treturn true;\n\t}\n}\n\nTable.define();\n\nexport default Table;\n\nexport type {\n\tITableFeature,\n\tITableGrowing,\n\tTableRowClickEventDetail,\n\tTableMoveEventDetail,\n\tTableRowActionClickEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.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 {\n\tcustomElement, slotStrict as slot, property, eventStrict, i18n,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport TableTemplate from \"./TableTemplate.js\";\nimport TableStyles from \"./generated/themes/Table.css.js\";\nimport TableExtension from \"./TableExtension.js\";\nimport TableNavigation from \"./TableNavigation.js\";\nimport TableOverflowMode from \"./types/TableOverflowMode.js\";\nimport TableDragAndDrop from \"./TableDragAndDrop.js\";\nimport TableCustomAnnouncement from \"./TableCustomAnnouncement.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n\tfindVerticalScrollContainer, computeAxisScrollDelta, isFeature, isValidColumnWidth,\n} from \"./TableUtils.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type DropIndicator from \"./DropIndicator.js\";\nimport type TableHeaderRow from \"./TableHeaderRow.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { MoveEventDetail } from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport type TableHeaderCell from \"./TableHeaderCell.js\";\nimport type TableSelection from \"./TableSelection.js\";\nimport type TableSelectionBase from \"./TableSelectionBase.js\";\nimport type TableRowActionBase from \"./TableRowActionBase.js\";\nimport type TableVirtualizer from \"./TableVirtualizer.js\";\nimport type TableGrowing from \"./TableGrowing.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tTABLE_NO_DATA,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * Interface for components that can be slotted inside the `features` slot of the `ui5-table`.\n *\n * @public\n * @experimental\n */\ninterface ITableFeature extends UI5Element {\n\treadonly identifier: string;\n\t/**\n\t * Called when the table is activated.\n\t * @param table Table instance\n\t */\n\tonTableActivate?(table: Table): void;\n\t/**\n\t * Called every time before the table renders.\n\t * @param table Table instance\n\t */\n\tonTableBeforeRendering?(table?: Table): void;\n\t/**\n\t * Called every time after the table renders.\n\t * @param table Table instance\n\t */\n\tonTableAfterRendering?(table?: Table): void;\n}\n\n/**\n * Interface for components that can be slotted inside the `features` slot of the `ui5-table`\n * and provide growing/data loading functionality.\n * @public\n * @experimental\n */\ninterface ITableGrowing extends ITableFeature {\n\t/**\n\t * Called when the table needs to load more data.\n\t */\n\tloadMore(): void;\n\t/**\n\t * Determines whether the table has a growing control, that should be rendered in the table.\n\t */\n\thasGrowingComponent(): boolean;\n\t_individualSlot?: string;\n}\n\n/**\n * Fired when an interactive row is clicked.\n *\n * @param {TableRow} row The clicked row instance\n * @public\n */\ntype TableRowClickEventDetail = {\n\trow: TableRow,\n};\n\ntype TableMoveEventDetail = MoveEventDetail;\n\n/**\n * Fired when a row action is clicked.\n *\n * @param {TableRowActionBase} action The row action instance\n * @param {TableRow} row The row instance\n * @public\n */\ntype TableRowActionClickEventDetail = {\n\taction: TableRowActionBase,\n\trow: TableRow,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table` component provides a set of sophisticated features for displaying and dealing with vast amounts of data in a responsive manner.\n * To render the `ui5-table`, you need to define the columns and rows. You can use the provided `ui5-table-header-row` and `ui5-table-row` components for this purpose.\n *\n * ### Features\n *\n * The `ui5-table` can be enhanced in its functionalities by applying different features.\n * Features can be slotted into the `features` slot, to enable them in the component.\n * Features need to be imported separately, as they are not enabled by default.\n *\n * The following features are currently available:\n *\n * * [TableSelectionMulti](../TableSelectionMulti) - adds multi-selection capabilities to the table\n * * [TableSelectionSingle](../TableSelectionSingle) - adds single-selection capabilities to the table\n * * [TableGrowing](../TableGrowing) - provides growing capabilities to load more data\n * * [TableVirtualizer](../TableVirtualizer) - adds virtualization capabilities to the table\n *\n * ### Keyboard Handling\n *\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * Furthermore, you can interact with `ui5-table` via the following keys:\n *\n * If the focus is on a row, the following keyboard shortcuts are available:\n * * <kbd>Down</kbd> - Navigates down\n * * <kbd>Up</kbd> - Navigates up\n * * <kbd>Right</kbd> - Selects the first cell of the row\n * * <kbd>Space</kbd> - Toggles the selection of the row\n * * <kbd>Ctrl/Cmd + A</kbd> - In multi selection mode, toggles the selection of all rows\n * * <kbd>Home</kbd> - Navigates to the first row, if the focus is on the first row, navigates to the header row\n * * <kbd>End</kbd> - Navigates to the last row, if the focus is on the last row, navigates to the growing button\n * * <kbd>Page Up</kbd> - Navigates one page up, if the focus is on the first row, navigates to the header row\n * * <kbd>Page Down</kbd> - Navigates one page down, if the focus is on the last row, navigates to the growing button\n * * <kbd>F2</kbd> - Focuses the first tabbable element in the row\n * * <kbd>F7</kbd> - If focus position is remembered, moves focus to the corresponding focus position row, otherwise to the first tabbable element within the row\n * * <kbd>[Shift]Tab</kbd> - Move focus to the element in the tab chain outside the table\n *\n * If the focus is on a cell, the following keyboard shortcuts are available:\n * * <kbd>Down</kbd> - Navigates down\n * * <kbd>Up</kbd> - Navigates up\n * * <kbd>Right</kbd> - Navigates right\n * * <kbd>Left</kbd> - Navigates left, if the focus is on the first cell of the row, the focus is moved to the row.\n * * <kbd>Home</kbd> - Navigates to the first cell of the current row, if the focus is on the first cell, navigates to the corresponding row\n * * <kbd>End</kbd> - Navigates to the last cell of the current row, if the focus is on the last cell, navigates to the corresponding row\n * * <kbd>Page Up</kbd> - Navigates one page up while keeping the focus in same column\n * * <kbd>Page Down</kbd> - Navigates one page down while keeping the focus in same column\n * * <kbd>F2</kbd> - Toggles the focus between the first tabbable cell content and the cell\n * * <kbd>Enter</kbd> - Focuses the first tabbable cell content\n * * <kbd>F7</kbd> - If the focus is on an interactive element inside a row, moves focus to the corresponding row and remembers the focus position of the element within the row\n * * <kbd>[Shift]Tab</kbd> - Move focus to the element in the tab chain outside the table\n *\n * If the focus is on an interactive cell content, the following keyboard shortcuts are available:\n * * <kbd>Down</kbd> - Move the focus to the interactive element in the same column of the previous row, unless the focused element prevents the default\n * * <kbd>Up</kbd> - Move the focus to the interactive element in the same column of the next row, unless the focused element prevents the default\n * * <kbd>[Shift]Tab</kbd> - Move the focus to the element in the tab chain\n *\n * ### Accessibility\n *\n * The `ui5-table` follows the [ARIA grid design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/grid/).\n * This pattern enables cell-based keyboard navigation and, as explained above, we also support row-based keyboard navigation.\n * Since the grid design pattern does not inherently provide row-based keyboard behavior, if the focus is on a row, not only the row information but also the corresponding column headers for each cell must be announced.\n * This can only be achieved through a custom accessibility announcement.\n * To support this, UI5 Web Components expose its own accessibility metadata via the `accessibilityInfo` property.\n * The `ui5-table` uses this information to create the required custom announcements dynamically.\n * If you include custom web components inside table cells that are not part of the standard UI5 Web Components set, their accessibility information can be provided using the `data-ui5-acc-text` attribute.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Table.js\";` (`ui5-table`)\\\n * `import \"@ui5/webcomponents/dist/TableRow.js\";` (`ui5-table-row`)\\\n * `import \"@ui5/webcomponents/dist/TableCell.js\";` (`ui5-table-cell`)\\\n * `import \"@ui5/webcomponents/dist/TableHeaderRow.js\";` (`ui5-table-header-row`)\\\n * `import \"@ui5/webcomponents/dist/TableHeaderCell.js\";` (`ui5-table-header-cell`)\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-table\",\n\trenderer: jsxRenderer,\n\tstyles: TableStyles,\n\ttemplate: TableTemplate,\n\tfastNavigation: true,\n})\n\n/**\n * Fired when an interactive row is clicked.\n *\n * **Note:** This event is not fired if the `behavior` property of the selection component is set to `RowOnly`.\n * In that case, use the `change` event of the selection component instead.\n *\n * @param {TableRow} row The row instance\n * @public\n */\n@eventStrict(\"row-click\", {\n\tbubbles: false,\n})\n\n/**\n * Fired when a movable item is moved over a potential drop target during a dragging operation.\n *\n * If the new position is valid, prevent the default action of the event using `preventDefault()`.\n *\n * **Note:** If the dragging operation is a cross-browser operation or files are moved to a potential drop target,\n * the `source` parameter will be `null`.\n *\n * @param {Event} originalEvent The original `dragover` event\n * @param {object} source The source object\n * @param {object} destination The destination object\n * @public\n */\n@eventStrict(\"move-over\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired when a movable list item is dropped onto a drop target.\n *\n * **Notes:**\n *\n * The `move` event is fired only if there was a preceding `move-over` with prevented default action.\n *\n * If the dragging operation is a cross-browser operation or files are moved to a potential drop target,\n * the `source` parameter will be `null`.\n *\n * @param {Event} originalEvent The original `drop` event\n * @param {object} source The source object\n * @param {object} destination The destination object\n * @public\n */\n@eventStrict(\"move\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when a row action is clicked.\n *\n * @param {TableRowActionBase} action The row action instance\n * @param {TableRow} row The row instance\n * @since 2.6.0\n * @public\n */\n@eventStrict(\"row-action-click\", {\n\tbubbles: false,\n})\n\nclass Table extends UI5Element {\n\teventDetails!: {\n\t\t\"row-click\": TableRowClickEventDetail;\n\t\t\"move-over\": TableMoveEventDetail;\n\t\t\"move\": TableMoveEventDetail;\n\t\t\"row-action-click\": TableRowActionClickEventDetail;\n\t}\n\n\t/**\n\t * Defines the rows of the component.\n\t *\n\t * **Note:** Use `ui5-table-row` for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: [\"navigated\", \"position\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\trows!: DefaultSlot<TableRow>;\n\n\t/**\n\t * Defines the header row of the component.\n\t *\n\t * **Note:** Use `ui5-table-header-row` for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: { properties: false, slots: true } })\n\theaderRow!: Slot<TableHeaderRow>;\n\n\t/**\n\t * Defines the custom visualization if there is no data available.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tnoData!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the features of the component.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, individualSlots: true })\n\tfeatures!: Slot<ITableFeature>;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Identifies the element (or elements) that labels the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the text to be displayed when there are no rows in the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tnoDataText?: string;\n\n\t/**\n\t * Defines the mode of the <code>ui5-table</code> overflow behavior.\n\t *\n\t * Available options are:\n\t *\n\t * <code>Scroll</code> - Columns are shown as regular columns and horizontal scrolling is enabled.\n\t * <code>Popin</code> - Columns are shown as pop-ins instead of regular columns.\n\t *\n\t * @default \"Scroll\"\n\t * @public\n\t */\n\t@property()\n\toverflowMode: `${TableOverflowMode}` = \"Scroll\";\n\n\t/**\n\t * Defines if the loading indicator should be shown.\n\t *\n\t * **Note:** When the component is loading, it is not interactive.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will show up for this component.\n\t *\n\t * @default 1000\n\t * @public\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines the maximum number of row actions that is displayed, which determines the width of the row action column.\n\t *\n\t * **Note:** It is recommended to use a maximum of 3 row actions, as exceeding this limit may take up too much space on smaller screens.\n\t *\n\t * @default 0\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\trowActionCount = 0;\n\n\t/**\n\t * Determines whether the table rows are displayed with alternating background colors.\n\t *\n\t * @default false\n\t * @since 2.17\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\talternateRowColors = false;\n\n\t/**\n\t * Defines the sticky top offset of the table, if other sticky elements outside of the table exist.\n\t */\n\t@property()\n\tstickyTop = \"0\";\n\n\t@property({ type: Number, noAttribute: true })\n\t_invalidate = 0;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_renderNavigated = false;\n\n\t@query(\"[ui5-drop-indicator]\")\n\tdropIndicatorDOM!: DropIndicator;\n\n\t@query(\"#no-data-row\")\n\t_noDataRow?: TableRow;\n\n\t@query(\"#table-end-row\")\n\t_endRow!: TableRow;\n\n\t@query(\"#table\")\n\t_tableElement!: HTMLElement;\n\n\t@query(\"#before\")\n\t_beforeElement!: HTMLElement;\n\n\t@query(\"#after\")\n\t_afterElement!: HTMLElement;\n\n\t@query(\"#loading\")\n\t_loadingElement!: HTMLElement;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_events = [\"keydown\", \"keyup\", \"click\", \"focusin\", \"focusout\", \"pointerdown\", \"dragstart\", \"dragenter\", \"dragleave\", \"dragover\", \"drop\", \"dragend\"];\n\t_onEventBound: (e: Event) => void;\n\t_onResizeBound: ResizeObserverCallback;\n\t_tableNavigation?: TableNavigation;\n\t_tableDragAndDrop?: TableDragAndDrop;\n\t_tableCustomAnnouncement?: TableCustomAnnouncement;\n\t_poppedIn: Array<{ col: TableHeaderCell, width: number }> = [];\n\t_containerWidth = 0;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._onResizeBound = this._onResize.bind(this);\n\t\tthis._onEventBound = this._onEvent.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tthis._events.forEach(eventType => this.addEventListener(eventType, this._onEventBound));\n\t\tthis.features.forEach(feature => feature.onTableActivate?.(this));\n\t\tthis._tableNavigation = new TableNavigation(this);\n\t\tthis._tableDragAndDrop = new TableDragAndDrop(this);\n\t\tthis._tableCustomAnnouncement = new TableCustomAnnouncement(this);\n\t}\n\n\tonExitDOM() {\n\t\tthis._tableNavigation = undefined;\n\t\tthis._tableDragAndDrop = undefined;\n\t\tthis._events.forEach(eventType => this.removeEventListener(eventType, this._onEventBound));\n\t}\n\n\tonBeforeRendering(): void {\n\t\tlet alternateIndex = 0;\n\t\tconst hasFlexibleColumns = this._hasFlexibleColumns;\n\t\tconst rowActionCount = this.rowActionCount > 0 && this.rows.length > 0 ? this.rowActionCount : 0;\n\t\tthis._renderNavigated = this.rows.some(row => row.navigated);\n\t\t[...this.headerRow, ...this.rows].forEach(row => {\n\t\t\tif (!row.isGroupRow()) {\n\t\t\t\trow._rowActionCount = rowActionCount;\n\t\t\t\trow._renderDummyCell = !hasFlexibleColumns;\n\t\t\t\trow._renderNavigated = this._renderNavigated;\n\t\t\t\trow._alternate = this.alternateRowColors && alternateIndex++ % 2 === 0;\n\t\t\t} else {\n\t\t\t\trow._rowActionCount = 0;\n\t\t\t\trow._renderDummyCell = !hasFlexibleColumns && !this._hasPopin;\n\t\t\t\trow._renderNavigated = false;\n\t\t\t\trow._alternate = false;\n\t\t\t\talternateIndex = 1;\n\t\t\t}\n\t\t});\n\n\t\tthis.style.setProperty(\"--ui5_grid_sticky_top\", this.stickyTop);\n\t\tthis._refreshPopinState();\n\t\tthis.features.forEach(feature => feature.onTableBeforeRendering?.(this));\n\n\t\tif (this.getDomRef()) {\n\t\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t\t}\n\t}\n\n\tonAfterRendering(): void {\n\t\tthis.features.forEach(feature => feature.onTableAfterRendering?.(this));\n\t\tif (this.overflowMode === TableOverflowMode.Popin) {\n\t\t\tResizeHandler.register(this, this._onResizeBound);\n\t\t}\n\t}\n\n\t_findFeature<T>(featureName: string): T {\n\t\treturn this.features.find(feature => isFeature<T>(feature, featureName)) as T;\n\t}\n\n\t_getSelection(): TableSelectionBase | TableSelection | undefined {\n\t\treturn this._findFeature<TableSelectionBase>(\"TableSelectionBase\") || this._findFeature<TableSelection>(\"TableSelection\");\n\t}\n\n\t_getVirtualizer(): TableVirtualizer | undefined {\n\t\treturn this._findFeature<TableVirtualizer>(\"TableVirtualizer\");\n\t}\n\n\t_getGrowing(): TableGrowing | undefined {\n\t\treturn this._findFeature<TableGrowing>(\"TableGrowing\");\n\t}\n\n\t_onEvent(e: Event) {\n\t\tconst composedPath = e.composedPath();\n\t\tconst eventOrigin = composedPath[0] as HTMLElement;\n\t\tconst elements = [this._tableCustomAnnouncement, this._tableNavigation, this._tableDragAndDrop, ...composedPath, ...this.features].filter(Boolean) as Array<ITableFeature | TableExtension | UI5Element>;\n\t\telements.forEach(element => {\n\t\t\tif (element instanceof TableExtension || (element instanceof HTMLElement && element.localName.includes(\"ui5-table\"))) {\n\t\t\t\tconst eventHandlerName = `_on${e.type}` as keyof typeof element;\n\t\t\t\tconst eventHandler = element[eventHandlerName] as (e?: Event, eventOrigin?: HTMLElement) => void;\n\t\t\t\tif (typeof eventHandler === \"function\") {\n\t\t\t\t\teventHandler.call(element, e, eventOrigin);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t_onResize() {\n\t\tconst { clientWidth, scrollWidth } = this._tableElement;\n\t\t// Safari can report scrollWidth 1px greater than clientWidth during zoom transitions\n\t\t// due to subpixel rounding, so a strict > check triggers spurious popin cycles.\n\t\tconst overflow = scrollWidth - clientWidth;\n\n\t\tif (overflow > 1) {\n\t\t\t// Overflow Handling: Move columns into the popin until overflow is resolved\n\t\t\tconst headers = this._getPopinOrderedColumns(false);\n\t\t\tconst poppedInWidth = headers.reduce((totalPoppedInWidth, headerCell) => {\n\t\t\t\tif (totalPoppedInWidth < overflow && !headerCell._popin) {\n\t\t\t\t\tconst headerWidth = Math.ceil(headerCell.getBoundingClientRect().width);\n\t\t\t\t\ttotalPoppedInWidth += headerWidth;\n\t\t\t\t\tthis._setHeaderPopinState(headerCell, true, headerWidth);\n\t\t\t\t}\n\t\t\t\treturn totalPoppedInWidth;\n\t\t\t}, 0);\n\t\t\t// Calculate container width considering popped-in columns\n\t\t\tconst columnOverflow = poppedInWidth - overflow;\n\t\t\tthis._containerWidth = clientWidth - columnOverflow;\n\t\t} else {\n\t\t\t// Underflow Handling: Restore columns from popin until container width is met\n\t\t\tconst headers = this._getPopinOrderedColumns(true).filter(it => it._popin);\n\n\t\t\theaders.every(headerCell => {\n\t\t\t\tconst underflow = clientWidth - this._containerWidth;\n\t\t\t\tif (underflow >= headerCell._popinWidth) {\n\t\t\t\t\tthis._containerWidth += headerCell._popinWidth;\n\t\t\t\t\tthis._setHeaderPopinState(headerCell, false, 0);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tif (e.target === this) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._scrollElementIntoView(e.target as HTMLElement);\n\t}\n\n\t_scrollElementIntoView(element: HTMLElement) {\n\t\tconst verticalStickyElements = this.headerRow.filter(row => row.sticky);\n\t\tif (verticalStickyElements.length) {\n\t\t\tconst verticalScrollContainer = findVerticalScrollContainer(this._tableElement, true);\n\t\t\tconst deltaY = computeAxisScrollDelta(element, verticalScrollContainer, verticalStickyElements, \"y\");\n\t\t\tverticalScrollContainer.scrollBy({ top: deltaY });\n\t\t}\n\n\t\tconst horizontalStickyElements = this.overflowMode === \"Scroll\" ? this.headerRow[0]._stickyCells : [];\n\t\tif (horizontalStickyElements.length) {\n\t\t\tconst horizontalScrollContainer = this._tableElement;\n\t\t\tconst deltaX = computeAxisScrollDelta(element, horizontalScrollContainer, horizontalStickyElements, \"x\");\n\t\t\thorizontalScrollContainer.scrollBy({ left: deltaX });\n\t\t}\n\t}\n\n\t_onGrow() {\n\t\tthis._getGrowing()?.loadMore();\n\t}\n\n\t_getPopinOrderedColumns(reverse: boolean) {\n\t\tlet headers = [...this.headerRow[0].cells];\n\t\theaders = headers.reverse(); // reverse the \"visual\" order\n\t\theaders = headers.sort((a, b) => a.importance - b.importance); // sort by importance (asc)\n\t\theaders.pop(); // remove the most important column, as it will not be popped in\n\n\t\tif (reverse) {\n\t\t\theaders = headers.reverse();\n\t\t}\n\n\t\treturn headers;\n\t}\n\n\t/**\n\t * Refreshes the popin state of the columns.\n\t * Syncs the popin state of the columns with the popin state of the header cells.\n\t * This is needed when additional rows are manually added and no resize happens.\n\t * @private\n\t */\n\t_refreshPopinState() {\n\t\tthis.headerRow[0]?.cells.forEach(header => {\n\t\t\tthis._setHeaderPopinState(header, header._popin, header._popinWidth);\n\t\t});\n\t}\n\n\t_setHeaderPopinState(headerCell: TableHeaderCell, inPopin: boolean, popinWidth: number) {\n\t\tconst headerIndex = this.headerRow[0].cells.indexOf(headerCell);\n\t\theaderCell._popin = inPopin && this.overflowMode === TableOverflowMode.Popin;\n\t\theaderCell._popinWidth = popinWidth;\n\t\tthis.rows.forEach(row => {\n\t\t\tconst cell = row.cells[headerIndex];\n\t\t\tif (cell) {\n\t\t\t\tcell._popinHidden = headerCell.popinHidden;\n\t\t\t\tcell._popin = headerCell._popin;\n\t\t\t}\n\t\t});\n\t}\n\n\t_isGrowingFeature(feature: any) {\n\t\treturn Boolean(feature.loadMore && feature.hasGrowingComponent && isFeature<ITableGrowing>(feature, \"TableGrowing\"));\n\t}\n\n\t_onRowClick(row: TableRow) {\n\t\tthis.fireDecoratorEvent(\"row-click\", { row });\n\t}\n\n\t_onRowActionClick(action: TableRowActionBase) {\n\t\tconst row = action.parentElement as TableRow;\n\t\tthis.fireDecoratorEvent(\"row-action-click\", { action, row });\n\t}\n\n\tget styles() {\n\t\tconst virtualizer = this._getVirtualizer();\n\t\tconst headerStyleMap: Record<string, string> = {};\n\t\tthis.headerRow[0]?.cells.forEach(headerCell => {\n\t\t\theaderStyleMap[`--halign-${headerCell._id}`] = headerCell.horizontalAlign || \"initial\";\n\t\t});\n\t\treturn {\n\t\t\ttable: {\n\t\t\t\t\"grid-template-columns\": this._gridTemplateColumns,\n\t\t\t\t\"--row-height\": virtualizer ? `${virtualizer.rowHeight}px` : \"auto\",\n\t\t\t\t...headerStyleMap,\n\t\t\t},\n\t\t\tspacer: {\n\t\t\t\t\"transform\": virtualizer?._getTransform(),\n\t\t\t\t\"will-change\": virtualizer && \"transform\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget _gridTemplateColumns() {\n\t\tif (!this.headerRow[0]) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst widths = [];\n\t\tconst visibleHeaderCells = this.headerRow[0]._visibleCells;\n\n\t\t// Selection Cell Width\n\t\tif (this._isRowSelectorRequired) {\n\t\t\twidths.push(\"min-content\");\n\t\t}\n\n\t\t// Column Widths\n\t\twidths.push(...visibleHeaderCells.map(cell => {\n\t\t\tconst minWidth = cell.minWidth ?? \"3rem\";\n\t\t\tlet width = `minmax(${minWidth}, 1fr)`; // default width\n\t\t\tif (isValidColumnWidth(cell.width)) {\n\t\t\t\twidth = cell.width.includes(\"%\") ? `max(${minWidth}, ${cell.width})` : cell.width;\n\t\t\t}\n\t\t\treturn width;\n\t\t}));\n\n\t\t// Dummy Cell Width (before actions when popin, after navigated otherwise)\n\t\tconst dummyColumnWidth = !this._hasFlexibleColumns ? \"minmax(0, 1fr)\" : \"\";\n\t\tconst hasPopin = this._hasPopin;\n\n\t\tif (dummyColumnWidth && hasPopin) {\n\t\t\twidths.push(dummyColumnWidth);\n\t\t}\n\n\t\t// Row Action Cell Width\n\t\tif (this.rowActionCount > 0 && this.rows.length > 0) {\n\t\t\twidths.push(`calc(var(--_ui5_button_base_min_width) * ${this.rowActionCount} + var(--_ui5_table_row_actions_gap) * ${this.rowActionCount - 1} + var(--_ui5_table_cell_horizontal_padding) * 2)`);\n\t\t}\n\n\t\t// Navigated Cell Width\n\t\tif (this._renderNavigated) {\n\t\t\twidths.push(`var(--_ui5_table_navigated_cell_width)`);\n\t\t}\n\n\t\tif (dummyColumnWidth && !hasPopin) {\n\t\t\twidths.push(dummyColumnWidth);\n\t\t}\n\n\t\treturn widths.join(\" \");\n\t}\n\n\tget _hasPopin() {\n\t\treturn this.overflowMode === TableOverflowMode.Popin && this.headerRow?.[0]?._hasPopin;\n\t}\n\n\tget _hasFlexibleColumns(): boolean {\n\t\treturn this.headerRow?.[0]?._visibleCells.some(cell => !isValidColumnWidth(cell.width));\n\t}\n\n\tget _isRowSelectorRequired() {\n\t\treturn this.rows.length > 0 && this._getSelection()?.isRowSelectorRequired();\n\t}\n\n\tget _scrollContainer() {\n\t\treturn this._getVirtualizer() ? this._tableElement : findVerticalScrollContainer(this);\n\t}\n\n\tget _effectiveNoDataText() {\n\t\treturn this.noDataText || Table.i18nBundle.getText(TABLE_NO_DATA);\n\t}\n\n\tget _ariaLabel() {\n\t\treturn getEffectiveAriaLabelText(this) || undefined;\n\t}\n\n\tget _ariaDescription() {\n\t\treturn this._getSelection()?.getAriaDescriptionForTable();\n\t}\n\n\tget _ariaRowCount() {\n\t\treturn this._getVirtualizer()?.rowCount || this.rows.length + 1;\n\t}\n\n\tget _ariaColCount() {\n\t\tif (!this.headerRow[0]) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet ariaColCount = this.headerRow[0]._visibleCells.length;\n\t\tif (this._isRowSelectorRequired) {\n\t\t\tariaColCount++;\n\t\t}\n\t\tif (this.rowActionCount > 0 && this.rows.length > 0) {\n\t\t\tariaColCount++;\n\t\t}\n\t\tif (this.headerRow[0]._popinCells.length > 0) {\n\t\t\tariaColCount++;\n\t\t}\n\n\t\treturn ariaColCount;\n\t}\n\n\tget _ariaMultiSelectable() {\n\t\tconst selection = this._getSelection();\n\t\treturn (selection?.isSelectable() && this.rows.length) ? selection.isMultiSelectable() : undefined;\n\t}\n\n\tget isTable() {\n\t\treturn true;\n\t}\n}\n\nTable.define();\n\nexport default Table;\n\nexport type {\n\tITableFeature,\n\tITableGrowing,\n\tTableRowClickEventDetail,\n\tTableMoveEventDetail,\n\tTableRowActionClickEventDetail,\n};\n"]}
@@ -78,7 +78,6 @@ declare class TableRow extends TableRowBase<TableCell> {
78
78
  */
79
79
  movable: boolean;
80
80
  _popinCell?: TableCell;
81
- _actionsCell?: TableCell;
82
81
  onBeforeRendering(): void;
83
82
  _onpointerdown(e: PointerEvent): Promise<void>;
84
83
  _onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement): void;
@@ -89,6 +88,7 @@ declare class TableRow extends TableRowBase<TableCell> {
89
88
  get _isNavigable(): boolean;
90
89
  get _rowIndex(): number;
91
90
  get _hasOverflowActions(): boolean;
91
+ get _overflowButtonTooltip(): string;
92
92
  get _flexibleActions(): TableRowActionBase[];
93
93
  get _fixedActions(): TableRowActionBase[];
94
94
  get _overflowActions(): TableRowActionBase[];
package/dist/TableRow.js CHANGED
@@ -12,7 +12,7 @@ import { toggleAttribute } from "./TableUtils.js";
12
12
  import TableRowTemplate from "./TableRowTemplate.js";
13
13
  import TableRowBase from "./TableRowBase.js";
14
14
  import TableRowCss from "./generated/themes/TableRow.css.js";
15
- import { TABLE_ROW_MULTIPLE_ACTIONS, TABLE_ROW_SINGLE_ACTION, } from "./generated/i18n/i18n-defaults.js";
15
+ import { TABLE_ROW_MULTIPLE_ACTIONS, TABLE_ROW_SINGLE_ACTION, TABLE_ROW_OVERFLOW_BUTTON, } from "./generated/i18n/i18n-defaults.js";
16
16
  /**
17
17
  * @class
18
18
  *
@@ -131,6 +131,9 @@ let TableRow = class TableRow extends TableRowBase {
131
131
  return renderableActionsCount > this._rowActionCount;
132
132
  });
133
133
  }
134
+ get _overflowButtonTooltip() {
135
+ return TableRowBase.i18nBundle.getText(TABLE_ROW_OVERFLOW_BUTTON);
136
+ }
134
137
  get _flexibleActions() {
135
138
  const flexibleActions = this.actions.filter(action => !action.isFixedAction());
136
139
  const fixedActionsCount = this.actions.length - flexibleActions.length;
@@ -217,9 +220,6 @@ __decorate([
217
220
  __decorate([
218
221
  query("#popin-cell")
219
222
  ], TableRow.prototype, "_popinCell", void 0);
220
- __decorate([
221
- query("#actions-cell")
222
- ], TableRow.prototype, "_actionsCell", void 0);
223
223
  TableRow = __decorate([
224
224
  customElement({
225
225
  tag: "ui5-table-row",
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, slotStrict as slot, property } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport { toggleAttribute } from \"./TableUtils.js\";\nimport TableRowTemplate from \"./TableRowTemplate.js\";\nimport TableRowBase from \"./TableRowBase.js\";\nimport TableRowCss from \"./generated/themes/TableRow.css.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type TableRowActionBase from \"./TableRowActionBase.js\";\nimport type Button from \"./Button.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tTABLE_ROW_MULTIPLE_ACTIONS, TABLE_ROW_SINGLE_ACTION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-row` component represents a row in the `ui5-table`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableRow.js\";`\n *\n * @constructor\n * @extends TableRowBase\n * @since 2.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-table-row\",\n\tstyles: [TableRowBase.styles, TableRowCss],\n\ttemplate: TableRowTemplate,\n})\nclass TableRow extends TableRowBase<TableCell> {\n\t/**\n\t * Defines the cells of the component.\n\t *\n\t * **Note:** Use `ui5-table-cell` for the intended design.\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: {\n\t\t\tproperties: [\"merged\", \"_popin\", \"_popinHidden\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\tcells!: DefaultSlot<TableCell>;\n\n\t/**\n\t * Defines the actions of the component.\n\t *\n\t * **Note:** Use `ui5-table-row-action` or `ui5-table-row-action-navigation` for the intended design.\n\t *\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t})\n\tactions!: Slot<TableRowActionBase>;\n\n\t/**\n\t * Unique identifier of the row.\n\t *\n\t * **Note:** For selection features to work properly, this property is mandatory, and its value must not contain spaces.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\trowKey?: string;\n\n\t/**\n\t * Defines the 0-based position of the row related to the total number of rows within the table when the `ui5-table-virtualizer` feature is used.\n\t *\n\t * @default undefined\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tposition?: number;\n\n\t/**\n\t * Defines the interactive state of the row.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t/**\n\t * Defines the navigated state of the row.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines whether the row is movable.\n\t *\n\t * @default false\n\t * @since 2.6.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t@query(\"#popin-cell\")\n\t_popinCell?: TableCell;\n\n\t@query(\"#actions-cell\")\n\t_actionsCell?: TableCell;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.ariaRowIndex = (this.role === \"row\") ? `${this._rowIndex + 2}` : null;\n\t\ttoggleAttribute(this, \"draggable\", this.movable, \"true\");\n\t\ttoggleAttribute(this, \"_interactive\", this._isInteractive);\n\t\ttoggleAttribute(this, \"_alternate\", this._alternate);\n\t}\n\n\tasync _onpointerdown(e: PointerEvent) {\n\t\tif (e.button !== 0 || !this._isInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst composedPath = e.composedPath();\n\t\tcomposedPath.splice(composedPath.indexOf(this));\n\t\tawait new Promise(resolve => setTimeout(resolve)); // wait for the focus to be set\n\t\tconst activeElement = getActiveElement() as Element;\n\t\tif (!composedPath.includes(activeElement)) {\n\t\t\tthis._setActive(\"pointerup\");\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tsuper._onkeydown(e, eventOrigin);\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventOrigin === this && this._isInteractive && isEnter(e)) {\n\t\t\tthis._setActive(\"keyup\");\n\t\t\tthis._onclick();\n\t\t}\n\t}\n\n\t_onclick() {\n\t\tif (this === getActiveElement()) {\n\t\t\tif (this._isSelectable && !this._hasSelector) {\n\t\t\t\tthis._onSelectionChange();\n\t\t\t} else \tif (this.interactive || this._isNavigable) {\n\t\t\t\tthis._table?._onRowClick(this);\n\t\t\t}\n\t\t}\n\t}\n\n\t_setActive(deactivationEvent: string) {\n\t\tthis.toggleAttribute(\"_active\", true);\n\t\tdocument.addEventListener(deactivationEvent, () => {\n\t\t\tthis.removeAttribute(\"_active\");\n\t\t}, { once: true });\n\t}\n\n\t_onOverflowButtonClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\tconst ctor = this.actions[0].constructor as typeof TableRowActionBase;\n\t\tctor.showMenu(this._overflowActions, e.target as HTMLElement);\n\t\te.stopPropagation();\n\t}\n\n\tget _isInteractive() {\n\t\treturn this.interactive || (this._isSelectable && !this._hasSelector) || this._isNavigable;\n\t}\n\n\tget _isNavigable() {\n\t\treturn this._fixedActions.find(action => {\n\t\t\treturn action.hasAttribute(\"ui5-table-row-action-navigation\") && !action.invisible && !action._isInteractive;\n\t\t}) !== undefined;\n\t}\n\n\tget _rowIndex() {\n\t\tif (this.position !== undefined) {\n\t\t\treturn this.position;\n\t\t}\n\t\tif (this._table) {\n\t\t\treturn this._table.rows.indexOf(this);\n\t\t}\n\t\treturn -1;\n\t}\n\n\tget _hasOverflowActions() {\n\t\tlet renderableActionsCount = 0;\n\t\treturn this.actions.some(action => {\n\t\t\tif (action.isFixedAction() || !action.invisible) {\n\t\t\t\trenderableActionsCount++;\n\t\t\t}\n\t\t\treturn renderableActionsCount > this._rowActionCount;\n\t\t});\n\t}\n\n\tget _flexibleActions() {\n\t\tconst flexibleActions = this.actions.filter(action => !action.isFixedAction());\n\t\tconst fixedActionsCount = this.actions.length - flexibleActions.length;\n\t\tlet maxFlexibleActionsCount = this._rowActionCount - fixedActionsCount;\n\t\tif (maxFlexibleActionsCount < 1) {\n\t\t\treturn []; // fixed actions occupy all the available space\n\t\t}\n\t\tif (flexibleActions.length <= maxFlexibleActionsCount) {\n\t\t\treturn flexibleActions; // all actions fit the available space\n\t\t}\n\n\t\tconst visibleFlexibleActions = flexibleActions.filter(action => !action.invisible);\n\t\tif (visibleFlexibleActions.length > maxFlexibleActionsCount) {\n\t\t\tmaxFlexibleActionsCount--;\t// preserve space for the overflow button\n\t\t}\n\n\t\treturn visibleFlexibleActions.slice(0, maxFlexibleActionsCount);\n\t}\n\n\tget _fixedActions() {\n\t\tlet maxFixedActionsCount = this._rowActionCount;\n\t\tif (this._hasOverflowActions) {\n\t\t\tmaxFixedActionsCount--;\n\t\t}\n\n\t\tconst fixedActions = this.actions.filter(action => action.isFixedAction());\n\t\treturn fixedActions.slice(0, maxFixedActionsCount);\n\t}\n\n\tget _overflowActions() {\n\t\tconst fixedActions = this._fixedActions;\n\t\tconst flexibleActions = this._flexibleActions;\n\t\tconst overflowActions: Array<TableRowActionBase> = [];\n\t\tthis.actions.forEach(action => {\n\t\t\tif (!action.invisible && !fixedActions.includes(action) && !flexibleActions.includes(action)) {\n\t\t\t\toverflowActions.push(action);\n\t\t\t}\n\t\t});\n\n\t\treturn overflowActions;\n\t}\n\n\tget _availableActionsCount() {\n\t\tif (this._rowActionCount < 1) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn [...this._flexibleActions, ...this._fixedActions].filter(action => {\n\t\t\treturn !action.invisible && action._isInteractive;\n\t\t}).length + (this._hasOverflowActions ? 1 : 0);\n\t}\n\n\tget _actionCellAccText() {\n\t\tconst availableActionsCount = this._availableActionsCount;\n\t\tif (availableActionsCount > 0) {\n\t\t\tconst bundleKey = availableActionsCount === 1 ? TABLE_ROW_SINGLE_ACTION : TABLE_ROW_MULTIPLE_ACTIONS;\n\t\t\treturn TableRowBase.i18nBundle.getText(bundleKey, availableActionsCount);\n\t\t}\n\t}\n}\n\nTableRow.define();\n\nexport default TableRow;\n"]}
1
+ {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, slotStrict as slot, property } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport { toggleAttribute } from \"./TableUtils.js\";\nimport TableRowTemplate from \"./TableRowTemplate.js\";\nimport TableRowBase from \"./TableRowBase.js\";\nimport TableRowCss from \"./generated/themes/TableRow.css.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type TableRowActionBase from \"./TableRowActionBase.js\";\nimport type Button from \"./Button.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tTABLE_ROW_MULTIPLE_ACTIONS, TABLE_ROW_SINGLE_ACTION, TABLE_ROW_OVERFLOW_BUTTON,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-row` component represents a row in the `ui5-table`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableRow.js\";`\n *\n * @constructor\n * @extends TableRowBase\n * @since 2.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-table-row\",\n\tstyles: [TableRowBase.styles, TableRowCss],\n\ttemplate: TableRowTemplate,\n})\nclass TableRow extends TableRowBase<TableCell> {\n\t/**\n\t * Defines the cells of the component.\n\t *\n\t * **Note:** Use `ui5-table-cell` for the intended design.\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: {\n\t\t\tproperties: [\"merged\", \"_popin\", \"_popinHidden\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\tcells!: DefaultSlot<TableCell>;\n\n\t/**\n\t * Defines the actions of the component.\n\t *\n\t * **Note:** Use `ui5-table-row-action` or `ui5-table-row-action-navigation` for the intended design.\n\t *\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t})\n\tactions!: Slot<TableRowActionBase>;\n\n\t/**\n\t * Unique identifier of the row.\n\t *\n\t * **Note:** For selection features to work properly, this property is mandatory, and its value must not contain spaces.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\trowKey?: string;\n\n\t/**\n\t * Defines the 0-based position of the row related to the total number of rows within the table when the `ui5-table-virtualizer` feature is used.\n\t *\n\t * @default undefined\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tposition?: number;\n\n\t/**\n\t * Defines the interactive state of the row.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t/**\n\t * Defines the navigated state of the row.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines whether the row is movable.\n\t *\n\t * @default false\n\t * @since 2.6.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t@query(\"#popin-cell\")\n\t_popinCell?: TableCell;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.ariaRowIndex = (this.role === \"row\") ? `${this._rowIndex + 2}` : null;\n\t\ttoggleAttribute(this, \"draggable\", this.movable, \"true\");\n\t\ttoggleAttribute(this, \"_interactive\", this._isInteractive);\n\t\ttoggleAttribute(this, \"_alternate\", this._alternate);\n\t}\n\n\tasync _onpointerdown(e: PointerEvent) {\n\t\tif (e.button !== 0 || !this._isInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst composedPath = e.composedPath();\n\t\tcomposedPath.splice(composedPath.indexOf(this));\n\t\tawait new Promise(resolve => setTimeout(resolve)); // wait for the focus to be set\n\t\tconst activeElement = getActiveElement() as Element;\n\t\tif (!composedPath.includes(activeElement)) {\n\t\t\tthis._setActive(\"pointerup\");\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tsuper._onkeydown(e, eventOrigin);\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (eventOrigin === this && this._isInteractive && isEnter(e)) {\n\t\t\tthis._setActive(\"keyup\");\n\t\t\tthis._onclick();\n\t\t}\n\t}\n\n\t_onclick() {\n\t\tif (this === getActiveElement()) {\n\t\t\tif (this._isSelectable && !this._hasSelector) {\n\t\t\t\tthis._onSelectionChange();\n\t\t\t} else \tif (this.interactive || this._isNavigable) {\n\t\t\t\tthis._table?._onRowClick(this);\n\t\t\t}\n\t\t}\n\t}\n\n\t_setActive(deactivationEvent: string) {\n\t\tthis.toggleAttribute(\"_active\", true);\n\t\tdocument.addEventListener(deactivationEvent, () => {\n\t\t\tthis.removeAttribute(\"_active\");\n\t\t}, { once: true });\n\t}\n\n\t_onOverflowButtonClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\tconst ctor = this.actions[0].constructor as typeof TableRowActionBase;\n\t\tctor.showMenu(this._overflowActions, e.target as HTMLElement);\n\t\te.stopPropagation();\n\t}\n\n\tget _isInteractive() {\n\t\treturn this.interactive || (this._isSelectable && !this._hasSelector) || this._isNavigable;\n\t}\n\n\tget _isNavigable() {\n\t\treturn this._fixedActions.find(action => {\n\t\t\treturn action.hasAttribute(\"ui5-table-row-action-navigation\") && !action.invisible && !action._isInteractive;\n\t\t}) !== undefined;\n\t}\n\n\tget _rowIndex() {\n\t\tif (this.position !== undefined) {\n\t\t\treturn this.position;\n\t\t}\n\t\tif (this._table) {\n\t\t\treturn this._table.rows.indexOf(this);\n\t\t}\n\t\treturn -1;\n\t}\n\n\tget _hasOverflowActions() {\n\t\tlet renderableActionsCount = 0;\n\t\treturn this.actions.some(action => {\n\t\t\tif (action.isFixedAction() || !action.invisible) {\n\t\t\t\trenderableActionsCount++;\n\t\t\t}\n\t\t\treturn renderableActionsCount > this._rowActionCount;\n\t\t});\n\t}\n\n\tget _overflowButtonTooltip() {\n\t\treturn TableRowBase.i18nBundle.getText(TABLE_ROW_OVERFLOW_BUTTON);\n\t}\n\n\tget _flexibleActions() {\n\t\tconst flexibleActions = this.actions.filter(action => !action.isFixedAction());\n\t\tconst fixedActionsCount = this.actions.length - flexibleActions.length;\n\t\tlet maxFlexibleActionsCount = this._rowActionCount - fixedActionsCount;\n\t\tif (maxFlexibleActionsCount < 1) {\n\t\t\treturn []; // fixed actions occupy all the available space\n\t\t}\n\t\tif (flexibleActions.length <= maxFlexibleActionsCount) {\n\t\t\treturn flexibleActions; // all actions fit the available space\n\t\t}\n\n\t\tconst visibleFlexibleActions = flexibleActions.filter(action => !action.invisible);\n\t\tif (visibleFlexibleActions.length > maxFlexibleActionsCount) {\n\t\t\tmaxFlexibleActionsCount--;\t// preserve space for the overflow button\n\t\t}\n\n\t\treturn visibleFlexibleActions.slice(0, maxFlexibleActionsCount);\n\t}\n\n\tget _fixedActions() {\n\t\tlet maxFixedActionsCount = this._rowActionCount;\n\t\tif (this._hasOverflowActions) {\n\t\t\tmaxFixedActionsCount--;\n\t\t}\n\n\t\tconst fixedActions = this.actions.filter(action => action.isFixedAction());\n\t\treturn fixedActions.slice(0, maxFixedActionsCount);\n\t}\n\n\tget _overflowActions() {\n\t\tconst fixedActions = this._fixedActions;\n\t\tconst flexibleActions = this._flexibleActions;\n\t\tconst overflowActions: Array<TableRowActionBase> = [];\n\t\tthis.actions.forEach(action => {\n\t\t\tif (!action.invisible && !fixedActions.includes(action) && !flexibleActions.includes(action)) {\n\t\t\t\toverflowActions.push(action);\n\t\t\t}\n\t\t});\n\n\t\treturn overflowActions;\n\t}\n\n\tget _availableActionsCount() {\n\t\tif (this._rowActionCount < 1) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn [...this._flexibleActions, ...this._fixedActions].filter(action => {\n\t\t\treturn !action.invisible && action._isInteractive;\n\t\t}).length + (this._hasOverflowActions ? 1 : 0);\n\t}\n\n\tget _actionCellAccText() {\n\t\tconst availableActionsCount = this._availableActionsCount;\n\t\tif (availableActionsCount > 0) {\n\t\t\tconst bundleKey = availableActionsCount === 1 ? TABLE_ROW_SINGLE_ACTION : TABLE_ROW_MULTIPLE_ACTIONS;\n\t\t\treturn TableRowBase.i18nBundle.getText(bundleKey, availableActionsCount);\n\t\t}\n\t}\n}\n\nTableRow.define();\n\nexport default TableRow;\n"]}
@@ -19,6 +19,7 @@ declare abstract class TableRowBase<TCell extends TableCellBase = TableCellBase>
19
19
  _alternate: boolean;
20
20
  _renderDummyCell: boolean;
21
21
  _selectionCell?: HTMLElement;
22
+ _actionsCell?: HTMLElement;
22
23
  _navigatedCell?: HTMLElement;
23
24
  static i18nBundle: I18nBundle;
24
25
  isHeaderRow(): boolean;
@@ -42,7 +43,7 @@ declare abstract class TableRowBase<TCell extends TableCellBase = TableCellBase>
42
43
  get _firstVisibleCell(): TCell | undefined;
43
44
  get _popinCells(): TCell[];
44
45
  get _hasPopin(): boolean;
45
- get _stickyCells(): (HTMLElement | undefined)[];
46
+ get _stickyCells(): HTMLElement[];
46
47
  get _i18nRowSelector(): string;
47
48
  }
48
49
  export default TableRowBase;