@ui5/webcomponents 2.25.0-rc.0 → 2.25.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/CarouselTemplate.js +1 -1
- package/dist/CarouselTemplate.js.map +1 -1
- package/dist/DynamicDateRange.d.ts +11 -0
- package/dist/DynamicDateRange.js +12 -0
- package/dist/DynamicDateRange.js.map +1 -1
- package/dist/DynamicDateRangeInputTemplate.js +1 -1
- package/dist/DynamicDateRangeInputTemplate.js.map +1 -1
- package/dist/IToolbarArrowNavProvider.d.ts +32 -0
- package/dist/IToolbarArrowNavProvider.js +4 -0
- package/dist/IToolbarArrowNavProvider.js.map +1 -0
- package/dist/Input.d.ts +3 -1
- package/dist/Input.js +26 -0
- package/dist/Input.js.map +1 -1
- package/dist/InputIcon.d.ts +105 -0
- package/dist/InputIcon.js +189 -0
- package/dist/InputIcon.js.map +1 -0
- package/dist/InputIconTemplate.d.ts +2 -0
- package/dist/InputIconTemplate.js +13 -0
- package/dist/InputIconTemplate.js.map +1 -0
- package/dist/ListItemCustom.js.map +1 -1
- package/dist/MenuItem.js +1 -1
- package/dist/MenuItem.js.map +1 -1
- package/dist/MenuSeparator.d.ts +7 -14
- package/dist/MenuSeparator.js +5 -24
- package/dist/MenuSeparator.js.map +1 -1
- package/dist/MenuSeparatorTemplate.js +1 -2
- package/dist/MenuSeparatorTemplate.js.map +1 -1
- package/dist/MultiComboBoxItem.d.ts +1 -0
- package/dist/MultiComboBoxItem.js +7 -1
- package/dist/MultiComboBoxItem.js.map +1 -1
- package/dist/MultiComboBoxItemTemplate.js +4 -2
- package/dist/MultiComboBoxItemTemplate.js.map +1 -1
- package/dist/RatingIndicator.d.ts +2 -0
- package/dist/RatingIndicator.js +2 -0
- package/dist/RatingIndicator.js.map +1 -1
- package/dist/SliderTemplate.js +1 -1
- package/dist/SliderTemplate.js.map +1 -1
- package/dist/Table.js +4 -2
- package/dist/Table.js.map +1 -1
- package/dist/Toolbar.d.ts +40 -3
- package/dist/Toolbar.js +225 -6
- package/dist/Toolbar.js.map +1 -1
- package/dist/ToolbarItem.d.ts +30 -0
- package/dist/ToolbarItem.js +202 -0
- package/dist/ToolbarItem.js.map +1 -1
- package/dist/ToolbarItemBase.d.ts +10 -0
- package/dist/ToolbarItemBase.js +19 -0
- package/dist/ToolbarItemBase.js.map +1 -1
- package/dist/ToolbarSelect.d.ts +4 -2
- package/dist/ToolbarSelect.js +7 -4
- package/dist/ToolbarSelect.js.map +1 -1
- package/dist/ToolbarSelectOption.d.ts +7 -0
- package/dist/ToolbarSelectOption.js +4 -1
- package/dist/ToolbarSelectOption.js.map +1 -1
- package/dist/ToolbarSelectTemplate.js +1 -1
- package/dist/ToolbarSelectTemplate.js.map +1 -1
- package/dist/TreeItemBase.js.map +1 -1
- package/dist/bundle.esm.js +1 -0
- package/dist/bundle.esm.js.map +1 -1
- package/dist/css/themes/ColorPalette.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DynamicDateRange.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/InputIcon.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiComboBoxItem.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +240 -40
- package/dist/custom-elements.json +223 -25
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.d.ts +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.d.ts +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
- package/dist/generated/themes/DynamicDateRange.css.js +1 -1
- package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.d.ts +1 -1
- package/dist/generated/themes/FileUploader.css.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +1 -1
- package/dist/generated/themes/Input.css.d.ts +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/Input.css.js.map +1 -1
- package/dist/generated/themes/InputIcon.css.d.ts +1 -1
- package/dist/generated/themes/InputIcon.css.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/MultiInput.css.d.ts +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/Select.css.d.ts +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.d.ts +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/TimePicker.css.d.ts +1 -1
- package/dist/generated/themes/TimePicker.css.js +1 -1
- package/dist/generated/themes/TimePicker.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +57 -4
- package/dist/web-types.json +117 -22
- package/package.json +11 -11
- package/src/CarouselTemplate.tsx +0 -1
- package/src/DynamicDateRangeInputTemplate.tsx +1 -0
- package/src/InputIconTemplate.tsx +42 -0
- package/src/MenuSeparatorTemplate.tsx +2 -4
- package/src/MultiComboBoxItemTemplate.tsx +4 -1
- package/src/SliderTemplate.tsx +1 -0
- package/src/ToolbarSelectTemplate.tsx +1 -0
- package/src/i18n/messagebundle.properties +1 -1
- package/src/themes/ColorPalette.css +1 -0
- package/src/themes/DatePicker.css +1 -2
- package/src/themes/Input.css +4 -0
- package/src/themes/InputIcon.css +104 -3
- package/src/themes/MultiComboBoxItem.css +2 -0
- package/src/themes/sap_horizon/Card-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/Card-parameters.css +1 -1
package/dist/MenuSeparator.js
CHANGED
|
@@ -5,48 +5,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
8
|
-
import
|
|
8
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
9
9
|
import menuSeparatorTemplate from "./MenuSeparatorTemplate.js";
|
|
10
10
|
import menuSeparatorCss from "./generated/themes/MenuSeparator.css.js";
|
|
11
|
-
import
|
|
11
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
12
12
|
import createInstanceChecker from "@ui5/webcomponents-base/dist/util/createInstanceChecker.js";
|
|
13
13
|
/**
|
|
14
14
|
* @class
|
|
15
15
|
* The `ui5-menu-separator` represents a horizontal line to separate menu items inside a `ui5-menu`.
|
|
16
16
|
* @constructor
|
|
17
|
-
* @extends
|
|
17
|
+
* @extends UI5Element
|
|
18
18
|
* @implements {IMenuItem}
|
|
19
19
|
* @public
|
|
20
20
|
* @since 2.0.0
|
|
21
21
|
*/
|
|
22
|
-
let MenuSeparator = class MenuSeparator extends
|
|
22
|
+
let MenuSeparator = class MenuSeparator extends UI5Element {
|
|
23
23
|
get isSeparator() {
|
|
24
24
|
return true;
|
|
25
25
|
}
|
|
26
|
-
get classes() {
|
|
27
|
-
return {
|
|
28
|
-
main: {
|
|
29
|
-
"ui5-menu-separator": true,
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* @override
|
|
35
|
-
*/
|
|
36
|
-
get _focusable() {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @override
|
|
41
|
-
*/
|
|
42
|
-
get _pressable() {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
26
|
};
|
|
46
27
|
MenuSeparator = __decorate([
|
|
47
28
|
customElement({
|
|
48
29
|
tag: "ui5-menu-separator",
|
|
49
|
-
renderer:
|
|
30
|
+
renderer: jsxRenderer,
|
|
50
31
|
styles: [menuSeparatorCss],
|
|
51
32
|
template: menuSeparatorTemplate,
|
|
52
33
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuSeparator.js","sourceRoot":"","sources":["../src/MenuSeparator.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,
|
|
1
|
+
{"version":3,"file":"MenuSeparator.js","sourceRoot":"","sources":["../src/MenuSeparator.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AACvE,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,qBAAqB,MAAM,4DAA4D,CAAC;AAG/F;;;;;;;;GAQG;AAQH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAGrC,IAAI,WAAW;QACd,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AANK,aAAa;IAPlB,aAAa,CAAC;QACd,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,CAAC,gBAAgB,CAAC;QAC1B,QAAQ,EAAE,qBAAqB;KAC/B,CAAC;GAEI,aAAa,CAMlB;AAED,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC;AAE7B,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAgB,aAAa,CAAC,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport menuSeparatorTemplate from \"./MenuSeparatorTemplate.js\";\nimport menuSeparatorCss from \"./generated/themes/MenuSeparator.css.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { IMenuItem } from \"./Menu.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\nimport type { ListItemBaseClickEventDetail } from \"./ListItemBase.js\";\n\n/**\n * @class\n * The `ui5-menu-separator` represents a horizontal line to separate menu items inside a `ui5-menu`.\n * @constructor\n * @extends UI5Element\n * @implements {IMenuItem}\n * @public\n * @since 2.0.0\n */\n@customElement({\n\ttag: \"ui5-menu-separator\",\n\trenderer: jsxRenderer,\n\tstyles: [menuSeparatorCss],\n\ttemplate: menuSeparatorTemplate,\n})\n\nclass MenuSeparator extends UI5Element implements IMenuItem {\n\teventDetails!: { click?: ListItemBaseClickEventDetail };\n\n\tget isSeparator() {\n\t\treturn true;\n\t}\n}\n\nMenuSeparator.define();\n\nexport default MenuSeparator;\n\nexport const isInstanceOfMenuSeparator = createInstanceChecker<MenuSeparator>(\"isSeparator\");\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
-
import ListItemCustom from "./ListItemCustom.js";
|
|
3
2
|
export default function MenuSeparatorTemplate() {
|
|
4
|
-
return (_jsx(
|
|
3
|
+
return (_jsx("li", { role: "separator", class: "ui5-menu-separator" }));
|
|
5
4
|
}
|
|
6
5
|
//# sourceMappingURL=MenuSeparatorTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuSeparatorTemplate.js","sourceRoot":"","sources":["../src/MenuSeparatorTemplate.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"MenuSeparatorTemplate.js","sourceRoot":"","sources":["../src/MenuSeparatorTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC5C,OAAO,CACN,aACC,IAAI,EAAC,WAAW,EAChB,KAAK,EAAC,oBAAoB,GACzB,CACF,CAAC;AACH,CAAC","sourcesContent":["import type MenuSeparator from \"./MenuSeparator.js\";\n\nexport default function MenuSeparatorTemplate(this: MenuSeparator) {\n\treturn (\n\t\t<li\n\t\t\trole=\"separator\"\n\t\t\tclass=\"ui5-menu-separator\"\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -41,6 +41,7 @@ declare class MultiComboBoxItem extends ComboBoxItem implements IMultiComboBoxIt
|
|
|
41
41
|
_readonly: boolean;
|
|
42
42
|
static i18nBundle: I18nBundle;
|
|
43
43
|
get isMultiComboBoxItem(): boolean;
|
|
44
|
+
get _selectionStateText(): string;
|
|
44
45
|
_onclick(e: MouseEvent): boolean | undefined;
|
|
45
46
|
get _accessibleName(): string;
|
|
46
47
|
get checkBoxAccInfo(): {
|
|
@@ -10,7 +10,7 @@ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
|
10
10
|
import { property, eventStrict as event, } from "@ui5/webcomponents-base/dist/decorators.js";
|
|
11
11
|
import ComboBoxItem from "./ComboBoxItem.js";
|
|
12
12
|
import CheckBox from "./CheckBox.js";
|
|
13
|
-
import { ARIA_LABEL_LIST_ITEM_CHECKBOX, } from "./generated/i18n/i18n-defaults.js";
|
|
13
|
+
import { ARIA_LABEL_LIST_ITEM_CHECKBOX, LIST_ITEM_SELECTED, LIST_ITEM_NOT_SELECTED, } from "./generated/i18n/i18n-defaults.js";
|
|
14
14
|
import styles from "./generated/themes/MultiComboBoxItem.css.js";
|
|
15
15
|
import MultiComboBoxItemTemplate from "./MultiComboBoxItemTemplate.js";
|
|
16
16
|
import createInstanceChecker from "@ui5/webcomponents-base/dist/util/createInstanceChecker.js";
|
|
@@ -35,6 +35,12 @@ let MultiComboBoxItem = MultiComboBoxItem_1 = class MultiComboBoxItem extends Co
|
|
|
35
35
|
get isMultiComboBoxItem() {
|
|
36
36
|
return true;
|
|
37
37
|
}
|
|
38
|
+
get _selectionStateText() {
|
|
39
|
+
const stateText = this.selected
|
|
40
|
+
? MultiComboBoxItem_1.i18nBundle.getText(LIST_ITEM_SELECTED)
|
|
41
|
+
: MultiComboBoxItem_1.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);
|
|
42
|
+
return `${stateText},`;
|
|
43
|
+
}
|
|
38
44
|
_onclick(e) {
|
|
39
45
|
if (e.target?.hasAttribute("ui5-checkbox")) {
|
|
40
46
|
return this.fireDecoratorEvent("selection-requested", { item: this, selected: e.target.checked, selectionComponentPressed: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiComboBoxItem.js","sourceRoot":"","sources":["../src/MultiComboBoxItem.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAErF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,EACN,QAAQ,EACR,WAAW,IAAI,KAAK,GACpB,MAAM,4CAA4C,CAAC;AACpD,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,OAAO,EACN,6BAA6B,
|
|
1
|
+
{"version":3,"file":"MultiComboBoxItem.js","sourceRoot":"","sources":["../src/MultiComboBoxItem.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAErF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,EACN,QAAQ,EACR,WAAW,IAAI,KAAK,GACpB,MAAM,4CAA4C,CAAC;AACpD,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,OAAO,EACN,6BAA6B,EAC7B,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,MAAM,MAAM,6CAA6C,CAAC;AACjE,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AAGvE,OAAO,qBAAqB,MAAM,4DAA4D,CAAC;AAE/F;;;;;;;GAOG;AAWH,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,YAAY;IAA5C;;QA0BC;;;WAGG;QAEH,eAAU,GAAG,KAAK,CAAC;QAGnB,cAAS,GAAG,KAAK,CAAC;IAiCnB,CAAC;IA5BA,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,mBAAmB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ;YAC9B,CAAC,CAAC,mBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC1D,CAAC,CAAC,mBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAChE,OAAO,GAAG,SAAS,GAAG,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,CAAa;QACrB,IAAK,CAAC,CAAC,MAAsB,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAG,CAAC,CAAC,MAAmB,CAAC,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;QAClJ,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,mBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,eAAe;QAClB,OAAO;YACN,IAAI,EAAE,cAA0B;SAChC,CAAC;IACH,CAAC;CACD,CAAA;AAxDQ;IADP,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACF;AAa1B;IADC,QAAQ,EAAE;gDACI;AAOf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;qDAC5B;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;oDAC7B;AAGX;IADN,IAAI,CAAC,oBAAoB,CAAC;2CACG;AArCzB,iBAAiB;IAVtB,aAAa,CAAC;QACd,GAAG,EAAE,cAAc;QACnB,QAAQ,EAAE,yBAAyB;QACnC,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;QACrC,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;KACtD,CAAC;IAED,KAAK,CAAC,qBAAqB,EAAE;QAC7B,OAAO,EAAE,IAAI;KACb,CAAC;GACI,iBAAiB,CAmEtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC;AACjC,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAoB,qBAAqB,CAAC,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport {\n\tproperty,\n\teventStrict as event,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport ComboBoxItem from \"./ComboBoxItem.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport type { IMultiComboBoxItem } from \"./MultiComboBox.js\";\nimport {\n\tARIA_LABEL_LIST_ITEM_CHECKBOX,\n\tLIST_ITEM_SELECTED,\n\tLIST_ITEM_NOT_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport styles from \"./generated/themes/MultiComboBoxItem.css.js\";\nimport MultiComboBoxItemTemplate from \"./MultiComboBoxItemTemplate.js\";\nimport type { SelectionRequestEventDetail } from \"./ListItem.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\n\n/**\n * @class\n * The `ui5-mcb-item` represents the item for a `ui5-multi-combobox`.\n * @constructor\n * @extends ComboBoxItem\n * @implements {IMultiComboBoxItem}\n * @public\n */\n@customElement({\n\ttag: \"ui5-mcb-item\",\n\ttemplate: MultiComboBoxItemTemplate,\n\tstyles: [ComboBoxItem.styles, styles],\n\tdependencies: [...ComboBoxItem.dependencies, CheckBox],\n})\n\n@event(\"selection-requested\", {\n\tbubbles: true,\n})\nclass MultiComboBoxItem extends ComboBoxItem implements IMultiComboBoxItem {\n\teventDetails!: ComboBoxItem[\"eventDetails\"] & {\n\t\t\"selection-requested\": SelectionRequestEventDetail,\n\t}\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @public\n\t * @deprecated Set the `value` property on items and use the `selectedValues` property on the parent `ui5-multi-combobox` instead for programmatic selection.\n\t */\n\t@property({ type: Boolean })\n\tdeclare selected: boolean;\n\n\t/**\n\t * Defines the value of the component.\n\t *\n\t * Use this property to associate a unique identifier with the item,\n\t * separate from the display text. This enables selecting items\n\t * programmatically via `selectedValues` on the parent MultiComboBox.\n\t * @default undefined\n\t * @public\n\t * @since 2.20.0\n\t */\n\t@property()\n\tvalue?: string;\n\n\t/**\n\t * Defines whether the item is filtered\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_isVisible = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_readonly = false;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget isMultiComboBoxItem() {\n\t\treturn true;\n\t}\n\n\tget _selectionStateText(): string {\n\t\tconst stateText = this.selected\n\t\t\t? MultiComboBoxItem.i18nBundle.getText(LIST_ITEM_SELECTED)\n\t\t\t: MultiComboBoxItem.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);\n\t\treturn `${stateText},`;\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement)?.hasAttribute(\"ui5-checkbox\")) {\n\t\t\treturn this.fireDecoratorEvent(\"selection-requested\", { item: this, selected: (e.target as CheckBox).checked, selectionComponentPressed: true });\n\t\t}\n\n\t\tsuper._onclick(e);\n\t}\n\n\tget _accessibleName() {\n\t\treturn MultiComboBoxItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_CHECKBOX);\n\t}\n\n\tget checkBoxAccInfo() {\n\t\treturn {\n\t\t\trole: \"presentation\" as AriaRole,\n\t\t};\n\t}\n}\n\nMultiComboBoxItem.define();\n\nexport default MultiComboBoxItem;\nexport const isInstanceOfMultiComboBoxItem = createInstanceChecker<MultiComboBoxItem>(\"isMultiComboBoxItem\");\n"]}
|
|
@@ -2,9 +2,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcompo
|
|
|
2
2
|
import CheckBox from "./CheckBox.js";
|
|
3
3
|
import ListItemBaseTemplate from "./ListItemBaseTemplate.js";
|
|
4
4
|
export default function MultiComboBoxItemTemplate() {
|
|
5
|
-
return ListItemBaseTemplate.call(this, { listItemContent }, {
|
|
5
|
+
return ListItemBaseTemplate.call(this, { listItemContent }, {
|
|
6
|
+
role: "option",
|
|
7
|
+
});
|
|
6
8
|
}
|
|
7
9
|
function listItemContent() {
|
|
8
|
-
return (_jsxs(_Fragment, { children: [_jsx(CheckBox, { disabled: this._readonly, checked: this.selected, _accInfo: this.checkBoxAccInfo }), _jsx("div", { part: "content", id: "content", class: "ui5-li-content", children: _jsxs("div", { class: "ui5-li-text-wrapper", children: [this.text && _jsx("span", { part: "title", className: "ui5-li-title", children: this.text }), this.additionalText && _jsx("span", { part: "additional-text", class: "ui5-li-additional-text", children: this.additionalText })] }) })] }));
|
|
10
|
+
return (_jsxs(_Fragment, { children: [_jsx("span", { class: "ui5-hidden-text", children: this._selectionStateText }), _jsx(CheckBox, { disabled: this._readonly, checked: this.selected, _accInfo: this.checkBoxAccInfo }), _jsx("div", { part: "content", id: "content", class: "ui5-li-content", children: _jsxs("div", { class: "ui5-li-text-wrapper", children: [this.text && _jsx("span", { part: "title", className: "ui5-li-title", children: this.text }), this.additionalText && _jsx("span", { part: "additional-text", class: "ui5-li-additional-text", children: this.additionalText })] }) })] }));
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=MultiComboBoxItemTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiComboBoxItemTemplate.js","sourceRoot":"","sources":["../src/MultiComboBoxItemTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,OAAO,UAAU,yBAAyB;IAChD,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"MultiComboBoxItemTemplate.js","sourceRoot":"","sources":["../src/MultiComboBoxItemTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,OAAO,UAAU,yBAAyB;IAChD,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE;QAC3D,IAAI,EAAE,QAAQ;KACd,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,CACN,8BACC,eAAM,KAAK,EAAC,iBAAiB,YAAE,IAAI,CAAC,mBAAmB,GAAQ,EAC/D,KAAC,QAAQ,IACR,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,QAAQ,EAAI,IAAI,CAAC,eAAe,GAC/B,EACF,cAAK,IAAI,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS,EAAC,KAAK,EAAC,gBAAgB,YACtD,eAAK,KAAK,EAAC,qBAAqB,aAC7B,IAAI,CAAC,IAAI,IAAI,eAAM,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,cAAc,YAAE,IAAI,CAAC,IAAI,GAAQ,EAC3E,IAAI,CAAC,cAAc,IAAI,eAAM,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,wBAAwB,YAAE,IAAI,CAAC,cAAc,GAAQ,IAC5G,GACD,IACJ,CACH,CAAC;AACH,CAAC","sourcesContent":["import CheckBox from \"./CheckBox.js\";\nimport ListItemBaseTemplate from \"./ListItemBaseTemplate.js\";\nimport type MultiComboBoxItem from \"./MultiComboBoxItem.js\";\n\nexport default function MultiComboBoxItemTemplate(this: MultiComboBoxItem) {\n\treturn ListItemBaseTemplate.call(this, { listItemContent }, {\n\t\trole: \"option\",\n\t});\n}\n\nfunction listItemContent(this: MultiComboBoxItem) {\n\treturn (\n\t\t<>\n\t\t\t<span class=\"ui5-hidden-text\">{this._selectionStateText}</span>\n\t\t\t<CheckBox\n\t\t\t\tdisabled={this._readonly}\n\t\t\t\tchecked={this.selected}\n\t\t\t\t_accInfo = {this.checkBoxAccInfo}\n\t\t\t/>\n\t\t\t<div part=\"content\" id=\"content\" class=\"ui5-li-content\">\n\t\t\t\t<div class=\"ui5-li-text-wrapper\">\n\t\t\t\t\t{ this.text && <span part=\"title\" className=\"ui5-li-title\">{this.text}</span> }\n\t\t\t\t\t{ this.additionalText && <span part=\"additional-text\" class=\"ui5-li-additional-text\">{this.additionalText}</span> }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
3
|
+
import "@ui5/webcomponents-icons/dist/favorite.js";
|
|
4
|
+
import "@ui5/webcomponents-icons/dist/unfavorite.js";
|
|
3
5
|
import type RatingIndicatorSize from "./types/RatingIndicatorSize.js";
|
|
4
6
|
type Star = {
|
|
5
7
|
selected: boolean;
|
package/dist/RatingIndicator.js
CHANGED
|
@@ -14,6 +14,8 @@ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
|
14
14
|
import { isDown, isUp, isLeft, isRight, isSpace, isEnter, isHome, isEnd, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
15
15
|
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
|
|
16
16
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
17
|
+
import "@ui5/webcomponents-icons/dist/favorite.js";
|
|
18
|
+
import "@ui5/webcomponents-icons/dist/unfavorite.js";
|
|
17
19
|
import { RATING_INDICATOR_TEXT, RATING_INDICATOR_TOOLTIP_TEXT, RATING_INDICATOR_ARIA_DESCRIPTION, } from "./generated/i18n/i18n-defaults.js";
|
|
18
20
|
import RatingIndicatorTemplate from "./RatingIndicatorTemplate.js";
|
|
19
21
|
// Styles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingIndicator.js","sourceRoot":"","sources":["../src/RatingIndicator.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport { getEnableDefaultTooltips } from \"@ui5/webcomponents-base/dist/config/Tooltips.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisSpace,\n\tisEnter,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tRATING_INDICATOR_TEXT,\n\tRATING_INDICATOR_TOOLTIP_TEXT,\n\tRATING_INDICATOR_ARIA_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport RatingIndicatorTemplate from \"./RatingIndicatorTemplate.js\";\n\n// Styles\nimport RatingIndicatorCss from \"./generated/themes/RatingIndicator.css.js\";\nimport type RatingIndicatorSize from \"./types/RatingIndicatorSize.js\";\n\ntype Star = {\n\tselected: boolean,\n\tindex: number,\n\thalfStar: boolean\n}\n\n/**\n * @class\n *\n * ### Overview\n * The Rating Indicator is used to display a specific number of icons that are used to rate an item.\n * Additionally, it is also used to display the average and overall ratings.\n *\n * ### Usage\n * The recommended number of icons is between 5 and 7.\n *\n * ### Responsive Behavior\n * You can change the size of the Rating Indicator by changing its `font-size` CSS property.\n *\n * Example: `<ui5-rating-indicator style=\"font-size: 3rem;\"></ui5-rating-indicator>`\n *\n * ### Keyboard Handling\n * When the `ui5-rating-indicator` is focused, the user can change the rating\n * with the following keyboard shortcuts:\n *\n * - [RIGHT/UP] - Increases the value of the rating by one step. If the highest value is reached, does nothing\n * - [LEFT/DOWN] - Decreases the value of the rating by one step. If the lowest value is reached, does nothing.\n * - [Home] - Sets the lowest value.\n * - [End] - Sets the highest value.\n * - [SPACE/ENTER/RETURN] - Increases the value of the rating by one step. If the highest value is reached, sets the rating to the lowest value.\n * - Any number - Changes value to the corresponding number. If typed number is larger than the number of values, sets the highest value.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/RatingIndicator.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.8\n */\n\n@customElement({\n\ttag: \"ui5-rating-indicator\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: RatingIndicatorCss,\n\ttemplate: RatingIndicatorTemplate,\n})\n/**\n * The event is fired when the value changes.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass RatingIndicator extends UI5Element {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\t/**\n\t * The indicated value of the rating.\n\t *\n\t * **Note:** If you set a number which is not round, it would be shown as follows:\n\t *\n\t * - 1.0 - 1.2 -> 1\n\t * - 1.3 - 1.7 -> 1.5\n\t * - 1.8 - 1.9 -> 2\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tvalue: number = 0;\n\n\t/**\n\t * The number of displayed rating symbols.\n\t * @default 5\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Number })\n\tmax: number = 5;\n\n\t/**\n\t * Defines the size of the component.\n\t * @default \"M\"\n\t * @public\n\t * @since 2.6.0\n\t */\n\t@property()\n\tsize: `${RatingIndicatorSize}` = \"M\";\n\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.15.0\n\t */\n\t @property()\n\t accessibleNameRef?: string;\n\n\t /**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.19.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the icon to be displayed for the selected (filled) rating symbol.\n\t *\n\t * @default \"favorite\"\n\t * @public\n\t * @since 2.20\n\t */\n\t@property()\n\tratedIcon = \"favorite\";\n\n\t/**\n\t * Defines the icon to be displayed for the unselected (empty) rating symbol.\n\t * @default \"unfavorite\"\n\t * @public\n\t * @since 2.20\n\t */\n\t@property()\n\tunratedIcon = \"unfavorite\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array, noAttribute: true })\n\t_stars: Array<Star> = [];\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_focused = false;\n\n\t_liveValue?: number;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.calcState();\n\t}\n\n\tcalcState() {\n\t\tthis._stars = [];\n\n\t\tfor (let i = 1; i < this.max + 1; i++) {\n\t\t\tconst remainder = Math.round((this.value - Math.floor(this.value)) * 10);\n\t\t\tlet halfStar = false,\n\t\t\t\ttempValue = this.value;\n\n\t\t\tif (Math.floor(this.value) + 1 === i && remainder > 2 && remainder < 8) {\n\t\t\t\thalfStar = true;\n\t\t\t} else if (remainder <= 2) {\n\t\t\t\ttempValue = Math.floor(this.value);\n\t\t\t} else if (remainder >= 8) {\n\t\t\t\ttempValue = Math.ceil(this.value);\n\t\t\t}\n\n\t\t\tthis._stars.push({\n\t\t\t\tselected: i <= tempValue,\n\t\t\t\tindex: i,\n\t\t\t\thalfStar,\n\t\t\t});\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tconst target = e.target as UI5Element;\n\n\t\tif (!(target instanceof HTMLElement) || this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst targetValue = target.getAttribute(\"data-ui5-value\");\n\n\t\tif (targetValue !== null) {\n\t\t\tthis.value = parseInt(targetValue);\n\t\t\tif (this.value === this._liveValue) {\n\t\t\t\tthis.value = 0;\n\t\t\t}\n\n\t\t\tif (this._liveValue !== this.value) {\n\t\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t\t\tthis._liveValue = this.value;\n\t\t\t}\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (this.disabled || this.readonly) {\n\t\t\t// prevent page scrolling\n\t\t\tif (isSpace(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst isDecrease = isDown(e) || isLeft(e);\n\t\tconst isIncrease = isRight(e) || isUp(e);\n\t\tconst isIncreaseWithReset = isSpace(e) || isEnter(e);\n\t\tconst isMin = isHome(e);\n\t\tconst isMax = isEnd(e);\n\t\tconst isNumber = (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105);\n\n\t\tif (isDecrease || isIncrease || isIncreaseWithReset || isMin || isMax || isNumber) {\n\t\t\te.preventDefault();\n\n\t\t\tif (isDecrease && this.value > 0) {\n\t\t\t\tthis.value = Math.round(this.value - 1);\n\t\t\t} else if (isIncrease && this.value < this.max) {\n\t\t\t\tthis.value = Math.round(this.value + 1);\n\t\t\t} else if (isIncreaseWithReset) {\n\t\t\t\tconst proposedValue = Math.round(this.value + 1);\n\t\t\t\tthis.value = proposedValue > this.max ? 0 : proposedValue;\n\t\t\t} else if (isMin) {\n\t\t\t\tthis.value = 0;\n\t\t\t} else if (isMax) {\n\t\t\t\tthis.value = this.max;\n\t\t\t} else if (isNumber) {\n\t\t\t\tconst pressedNumber = parseInt(e.key);\n\t\t\t\tthis.value = pressedNumber > this.max ? this.max : pressedNumber;\n\t\t\t}\n\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focused = true;\n\t\tthis._liveValue = this.value;\n\t}\n\n\t_onfocusout() {\n\t\tthis._focused = false;\n\t}\n\n\tget effectiveTabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn -1;\n\t\t}\n\n\t\treturn tabindex ? parseInt(tabindex) : 0;\n\t}\n\n\tget ratingTooltip(): string | undefined {\n\t\tif (this.tooltip) {\n\t\t\treturn this.tooltip;\n\t\t}\n\t\treturn getEnableDefaultTooltips() ? this.defaultTooltip : undefined;\n\t}\n\n\tget defaultTooltip() {\n\t\treturn RatingIndicator.i18nBundle.getText(RATING_INDICATOR_TOOLTIP_TEXT);\n\t}\n\n\tget _ariaRoleDescription() {\n\t\treturn RatingIndicator.i18nBundle.getText(RATING_INDICATOR_TEXT);\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaLabel() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget _ariaDescription() {\n\t\treturn this.required ? RatingIndicator.i18nBundle.getText(RATING_INDICATOR_ARIA_DESCRIPTION) : undefined;\n\t}\n\n\tget ariaReadonly() {\n\t\treturn this.readonly ? \"true\" : undefined;\n\t}\n}\n\nRatingIndicator.define();\n\nexport default RatingIndicator;\nexport type { Star };\n"]}
|
|
1
|
+
{"version":3,"file":"RatingIndicator.js","sourceRoot":"","sources":["../src/RatingIndicator.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport { getEnableDefaultTooltips } from \"@ui5/webcomponents-base/dist/config/Tooltips.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisSpace,\n\tisEnter,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/favorite.js\";\nimport \"@ui5/webcomponents-icons/dist/unfavorite.js\";\nimport {\n\tRATING_INDICATOR_TEXT,\n\tRATING_INDICATOR_TOOLTIP_TEXT,\n\tRATING_INDICATOR_ARIA_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport RatingIndicatorTemplate from \"./RatingIndicatorTemplate.js\";\n\n// Styles\nimport RatingIndicatorCss from \"./generated/themes/RatingIndicator.css.js\";\nimport type RatingIndicatorSize from \"./types/RatingIndicatorSize.js\";\n\ntype Star = {\n\tselected: boolean,\n\tindex: number,\n\thalfStar: boolean\n}\n\n/**\n * @class\n *\n * ### Overview\n * The Rating Indicator is used to display a specific number of icons that are used to rate an item.\n * Additionally, it is also used to display the average and overall ratings.\n *\n * ### Usage\n * The recommended number of icons is between 5 and 7.\n *\n * ### Responsive Behavior\n * You can change the size of the Rating Indicator by changing its `font-size` CSS property.\n *\n * Example: `<ui5-rating-indicator style=\"font-size: 3rem;\"></ui5-rating-indicator>`\n *\n * ### Keyboard Handling\n * When the `ui5-rating-indicator` is focused, the user can change the rating\n * with the following keyboard shortcuts:\n *\n * - [RIGHT/UP] - Increases the value of the rating by one step. If the highest value is reached, does nothing\n * - [LEFT/DOWN] - Decreases the value of the rating by one step. If the lowest value is reached, does nothing.\n * - [Home] - Sets the lowest value.\n * - [End] - Sets the highest value.\n * - [SPACE/ENTER/RETURN] - Increases the value of the rating by one step. If the highest value is reached, sets the rating to the lowest value.\n * - Any number - Changes value to the corresponding number. If typed number is larger than the number of values, sets the highest value.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/RatingIndicator.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.8\n */\n\n@customElement({\n\ttag: \"ui5-rating-indicator\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: RatingIndicatorCss,\n\ttemplate: RatingIndicatorTemplate,\n})\n/**\n * The event is fired when the value changes.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass RatingIndicator extends UI5Element {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\t/**\n\t * The indicated value of the rating.\n\t *\n\t * **Note:** If you set a number which is not round, it would be shown as follows:\n\t *\n\t * - 1.0 - 1.2 -> 1\n\t * - 1.3 - 1.7 -> 1.5\n\t * - 1.8 - 1.9 -> 2\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tvalue: number = 0;\n\n\t/**\n\t * The number of displayed rating symbols.\n\t * @default 5\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Number })\n\tmax: number = 5;\n\n\t/**\n\t * Defines the size of the component.\n\t * @default \"M\"\n\t * @public\n\t * @since 2.6.0\n\t */\n\t@property()\n\tsize: `${RatingIndicatorSize}` = \"M\";\n\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.15.0\n\t */\n\t @property()\n\t accessibleNameRef?: string;\n\n\t /**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.19.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the icon to be displayed for the selected (filled) rating symbol.\n\t *\n\t * @default \"favorite\"\n\t * @public\n\t * @since 2.20\n\t */\n\t@property()\n\tratedIcon = \"favorite\";\n\n\t/**\n\t * Defines the icon to be displayed for the unselected (empty) rating symbol.\n\t * @default \"unfavorite\"\n\t * @public\n\t * @since 2.20\n\t */\n\t@property()\n\tunratedIcon = \"unfavorite\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array, noAttribute: true })\n\t_stars: Array<Star> = [];\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_focused = false;\n\n\t_liveValue?: number;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.calcState();\n\t}\n\n\tcalcState() {\n\t\tthis._stars = [];\n\n\t\tfor (let i = 1; i < this.max + 1; i++) {\n\t\t\tconst remainder = Math.round((this.value - Math.floor(this.value)) * 10);\n\t\t\tlet halfStar = false,\n\t\t\t\ttempValue = this.value;\n\n\t\t\tif (Math.floor(this.value) + 1 === i && remainder > 2 && remainder < 8) {\n\t\t\t\thalfStar = true;\n\t\t\t} else if (remainder <= 2) {\n\t\t\t\ttempValue = Math.floor(this.value);\n\t\t\t} else if (remainder >= 8) {\n\t\t\t\ttempValue = Math.ceil(this.value);\n\t\t\t}\n\n\t\t\tthis._stars.push({\n\t\t\t\tselected: i <= tempValue,\n\t\t\t\tindex: i,\n\t\t\t\thalfStar,\n\t\t\t});\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tconst target = e.target as UI5Element;\n\n\t\tif (!(target instanceof HTMLElement) || this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst targetValue = target.getAttribute(\"data-ui5-value\");\n\n\t\tif (targetValue !== null) {\n\t\t\tthis.value = parseInt(targetValue);\n\t\t\tif (this.value === this._liveValue) {\n\t\t\t\tthis.value = 0;\n\t\t\t}\n\n\t\t\tif (this._liveValue !== this.value) {\n\t\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t\t\tthis._liveValue = this.value;\n\t\t\t}\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (this.disabled || this.readonly) {\n\t\t\t// prevent page scrolling\n\t\t\tif (isSpace(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst isDecrease = isDown(e) || isLeft(e);\n\t\tconst isIncrease = isRight(e) || isUp(e);\n\t\tconst isIncreaseWithReset = isSpace(e) || isEnter(e);\n\t\tconst isMin = isHome(e);\n\t\tconst isMax = isEnd(e);\n\t\tconst isNumber = (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105);\n\n\t\tif (isDecrease || isIncrease || isIncreaseWithReset || isMin || isMax || isNumber) {\n\t\t\te.preventDefault();\n\n\t\t\tif (isDecrease && this.value > 0) {\n\t\t\t\tthis.value = Math.round(this.value - 1);\n\t\t\t} else if (isIncrease && this.value < this.max) {\n\t\t\t\tthis.value = Math.round(this.value + 1);\n\t\t\t} else if (isIncreaseWithReset) {\n\t\t\t\tconst proposedValue = Math.round(this.value + 1);\n\t\t\t\tthis.value = proposedValue > this.max ? 0 : proposedValue;\n\t\t\t} else if (isMin) {\n\t\t\t\tthis.value = 0;\n\t\t\t} else if (isMax) {\n\t\t\t\tthis.value = this.max;\n\t\t\t} else if (isNumber) {\n\t\t\t\tconst pressedNumber = parseInt(e.key);\n\t\t\t\tthis.value = pressedNumber > this.max ? this.max : pressedNumber;\n\t\t\t}\n\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focused = true;\n\t\tthis._liveValue = this.value;\n\t}\n\n\t_onfocusout() {\n\t\tthis._focused = false;\n\t}\n\n\tget effectiveTabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn -1;\n\t\t}\n\n\t\treturn tabindex ? parseInt(tabindex) : 0;\n\t}\n\n\tget ratingTooltip(): string | undefined {\n\t\tif (this.tooltip) {\n\t\t\treturn this.tooltip;\n\t\t}\n\t\treturn getEnableDefaultTooltips() ? this.defaultTooltip : undefined;\n\t}\n\n\tget defaultTooltip() {\n\t\treturn RatingIndicator.i18nBundle.getText(RATING_INDICATOR_TOOLTIP_TEXT);\n\t}\n\n\tget _ariaRoleDescription() {\n\t\treturn RatingIndicator.i18nBundle.getText(RATING_INDICATOR_TEXT);\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaLabel() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget _ariaDescription() {\n\t\treturn this.required ? RatingIndicator.i18nBundle.getText(RATING_INDICATOR_ARIA_DESCRIPTION) : undefined;\n\t}\n\n\tget ariaReadonly() {\n\t\treturn this.readonly ? \"true\" : undefined;\n\t}\n}\n\nRatingIndicator.define();\n\nexport default RatingIndicator;\nexport type { Star };\n"]}
|
package/dist/SliderTemplate.js
CHANGED
|
@@ -15,6 +15,6 @@ const handle = (slider) => {
|
|
|
15
15
|
};
|
|
16
16
|
const tooltip = (slider) => (_jsx(SliderTooltip, { open: slider._isTooltipVisible, value: slider.tooltipValue, min: slider.min, max: slider.max, editable: slider.editableTooltip, followRef: slider.shadowRoot?.querySelector("[ui5-slider-handle]"), valueState: slider.tooltipValueState, onChange: slider._onTooltipChange, onKeyDown: slider._onTooltipKeydown, onFocusChange: slider._onTooltipFocusChange, onOpen: slider._onTooltipOpen, onInput: slider._onTooltipInput }));
|
|
17
17
|
export default function SliderTemplate() {
|
|
18
|
-
return (_jsx(_Fragment, { children: _jsx("div", { class: "ui5-slider-evo-root", part: "root-container", onMouseDown: this._onmousedown, onTouchStart: this._onmousedown, onMouseOver: this._onmouseover, onMouseOut: this._onmouseout, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, children: _jsxs(SliderScale, { endValue: this.value, min: this.min, max: this.max, step: this.step, startValue: this.min, showTickmarks: this.showTickmarks || this._hasCustomTickmarks, labelInterval: this._hasCustomTickmarks ? 1 : this.labelInterval, tickmarks: this.tickmarks, onFocusOut: this._onfocusout, onFocusIn: this._onfocusin, part: "scale", exportparts: "inner: scale-inner, progress: progress", children: [handle(this), this.editableTooltip && _jsx(_Fragment, { children: _jsx("span", { id: "ui5-slider-InputDesc", class: "ui5-hidden-text", children: this._ariaDescribedByInputText }) })] }) }) }));
|
|
18
|
+
return (_jsx(_Fragment, { children: _jsx("div", { class: "ui5-slider-evo-root", part: "root-container", onMouseDown: this._onmousedown, onTouchStart: this._onmousedown, onMouseOver: this._onmouseover, onMouseOut: this._onmouseout, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, children: _jsxs(SliderScale, { endValue: this.value, min: this.min, max: this.max, step: this.step, startValue: this.min, progressAriaValueNow: this.value, showTickmarks: this.showTickmarks || this._hasCustomTickmarks, labelInterval: this._hasCustomTickmarks ? 1 : this.labelInterval, tickmarks: this.tickmarks, onFocusOut: this._onfocusout, onFocusIn: this._onfocusin, part: "scale", exportparts: "inner: scale-inner, progress: progress", children: [handle(this), this.editableTooltip && _jsx(_Fragment, { children: _jsx("span", { id: "ui5-slider-InputDesc", class: "ui5-hidden-text", children: this._ariaDescribedByInputText }) })] }) }) }));
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=SliderTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SliderTemplate.js","sourceRoot":"","sources":["../src/SliderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Slider from \"./Slider.js\";\nimport SliderTooltip from \"./SliderTooltip.js\";\nimport SliderHandle from \"./SliderHandle.js\";\nimport SliderScale from \"./SliderScale.js\";\n\nconst _handlePosition = (min: number, max: number, value: number) => {\n\tconst range = max - min;\n\tconst position = ((value - min) / range) * 100;\n\treturn position;\n};\n\nconst handle = (slider: Slider) => {\n\tconst position = _handlePosition(slider.min, slider.max, slider.value);\n\n\treturn (\n\t\t<>\n\t\t\t<SliderHandle\n\t\t\t\tdata-sap-focus-ref\n\t\t\t\tvalue={slider.value}\n\t\t\t\tmin={slider.min}\n\t\t\t\tmax={slider.max}\n\t\t\t\ttabIndex={slider.disabled ? -1 : 0}\n\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\tpart=\"handle\"\n\t\t\t\texportparts=\"icon: handle-icon\"\n\t\t\t\trole=\"slider\"\n\t\t\t\taria-valuemin={slider.min}\n\t\t\t\taria-valuemax={slider.max}\n\t\t\t\taria-valuenow={slider.value}\n\t\t\t\taria-valuetext={slider._ariaValueText}\n\t\t\t\taria-label={slider._ariaLabel}\n\t\t\t\taria-disabled={slider._ariaDisabled}\n\t\t\t\taria-describedby={slider._ariaDescribedByHandleText}\n\t\t\t\tstyle={{\n\t\t\t\t\t\"inset-inline-start\": `clamp(0%, ${position}%, 100%)`,\n\t\t\t\t}}\n\t\t\t></SliderHandle>\n\n\t\t\t{tooltip(slider)}\n\t\t</>\n\t);\n};\n\nconst tooltip = (slider: Slider) => (\n\t<SliderTooltip\n\t\topen={slider._isTooltipVisible}\n\t\tvalue={slider.tooltipValue}\n\t\tmin={slider.min}\n\t\tmax={slider.max}\n\t\teditable={slider.editableTooltip}\n\t\tfollowRef={slider.shadowRoot?.querySelector(\"[ui5-slider-handle]\") as HTMLElement}\n\t\tvalueState={slider.tooltipValueState}\n\t\tonChange={slider._onTooltipChange}\n\t\tonKeyDown={slider._onTooltipKeydown}\n\t\tonFocusChange={slider._onTooltipFocusChange}\n\t\tonOpen={slider._onTooltipOpen}\n\t\tonInput={slider._onTooltipInput}\n\t>\n\t</SliderTooltip>\n);\n\nexport default function SliderTemplate(this: Slider) {\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-slider-evo-root\"\n\t\t\t\tpart=\"root-container\"\n\t\t\t\tonMouseDown={this._onmousedown}\n\t\t\t\tonTouchStart={this._onmousedown}\n\t\t\t\tonMouseOver={this._onmouseover}\n\t\t\t\tonMouseOut={this._onmouseout}\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\tonKeyUp={this._onkeyup}\n\t\t\t>\n\t\t\t\t<SliderScale\n\t\t\t\t\tendValue={this.value}\n\t\t\t\t\tmin={this.min}\n\t\t\t\t\tmax={this.max}\n\t\t\t\t\tstep={this.step}\n\t\t\t\t\tstartValue={this.min}\n\t\t\t\t\tshowTickmarks={this.showTickmarks || this._hasCustomTickmarks}\n\t\t\t\t\tlabelInterval={this._hasCustomTickmarks ? 1 : this.labelInterval}\n\t\t\t\t\ttickmarks={this.tickmarks}\n\t\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\t\tpart=\"scale\"\n\t\t\t\t\texportparts=\"inner: scale-inner, progress: progress\"\n\t\t\t\t>\n\t\t\t\t\t{handle(this)}\n\n\t\t\t\t\t{this.editableTooltip && <>\n\t\t\t\t\t\t<span id=\"ui5-slider-InputDesc\" class=\"ui5-hidden-text\">{this._ariaDescribedByInputText}</span>\n\t\t\t\t\t</>}\n\t\t\t\t</SliderScale>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SliderTemplate.js","sourceRoot":"","sources":["../src/SliderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Slider from \"./Slider.js\";\nimport SliderTooltip from \"./SliderTooltip.js\";\nimport SliderHandle from \"./SliderHandle.js\";\nimport SliderScale from \"./SliderScale.js\";\n\nconst _handlePosition = (min: number, max: number, value: number) => {\n\tconst range = max - min;\n\tconst position = ((value - min) / range) * 100;\n\treturn position;\n};\n\nconst handle = (slider: Slider) => {\n\tconst position = _handlePosition(slider.min, slider.max, slider.value);\n\n\treturn (\n\t\t<>\n\t\t\t<SliderHandle\n\t\t\t\tdata-sap-focus-ref\n\t\t\t\tvalue={slider.value}\n\t\t\t\tmin={slider.min}\n\t\t\t\tmax={slider.max}\n\t\t\t\ttabIndex={slider.disabled ? -1 : 0}\n\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\tpart=\"handle\"\n\t\t\t\texportparts=\"icon: handle-icon\"\n\t\t\t\trole=\"slider\"\n\t\t\t\taria-valuemin={slider.min}\n\t\t\t\taria-valuemax={slider.max}\n\t\t\t\taria-valuenow={slider.value}\n\t\t\t\taria-valuetext={slider._ariaValueText}\n\t\t\t\taria-label={slider._ariaLabel}\n\t\t\t\taria-disabled={slider._ariaDisabled}\n\t\t\t\taria-describedby={slider._ariaDescribedByHandleText}\n\t\t\t\tstyle={{\n\t\t\t\t\t\"inset-inline-start\": `clamp(0%, ${position}%, 100%)`,\n\t\t\t\t}}\n\t\t\t></SliderHandle>\n\n\t\t\t{tooltip(slider)}\n\t\t</>\n\t);\n};\n\nconst tooltip = (slider: Slider) => (\n\t<SliderTooltip\n\t\topen={slider._isTooltipVisible}\n\t\tvalue={slider.tooltipValue}\n\t\tmin={slider.min}\n\t\tmax={slider.max}\n\t\teditable={slider.editableTooltip}\n\t\tfollowRef={slider.shadowRoot?.querySelector(\"[ui5-slider-handle]\") as HTMLElement}\n\t\tvalueState={slider.tooltipValueState}\n\t\tonChange={slider._onTooltipChange}\n\t\tonKeyDown={slider._onTooltipKeydown}\n\t\tonFocusChange={slider._onTooltipFocusChange}\n\t\tonOpen={slider._onTooltipOpen}\n\t\tonInput={slider._onTooltipInput}\n\t>\n\t</SliderTooltip>\n);\n\nexport default function SliderTemplate(this: Slider) {\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-slider-evo-root\"\n\t\t\t\tpart=\"root-container\"\n\t\t\t\tonMouseDown={this._onmousedown}\n\t\t\t\tonTouchStart={this._onmousedown}\n\t\t\t\tonMouseOver={this._onmouseover}\n\t\t\t\tonMouseOut={this._onmouseout}\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\tonKeyUp={this._onkeyup}\n\t\t\t>\n\t\t\t\t<SliderScale\n\t\t\t\t\tendValue={this.value}\n\t\t\t\t\tmin={this.min}\n\t\t\t\t\tmax={this.max}\n\t\t\t\t\tstep={this.step}\n\t\t\t\t\tstartValue={this.min}\n\t\t\t\t\tprogressAriaValueNow={this.value}\n\t\t\t\t\tshowTickmarks={this.showTickmarks || this._hasCustomTickmarks}\n\t\t\t\t\tlabelInterval={this._hasCustomTickmarks ? 1 : this.labelInterval}\n\t\t\t\t\ttickmarks={this.tickmarks}\n\t\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\t\tpart=\"scale\"\n\t\t\t\t\texportparts=\"inner: scale-inner, progress: progress\"\n\t\t\t\t>\n\t\t\t\t\t{handle(this)}\n\n\t\t\t\t\t{this.editableTooltip && <>\n\t\t\t\t\t\t<span id=\"ui5-slider-InputDesc\" class=\"ui5-hidden-text\">{this._ariaDescribedByInputText}</span>\n\t\t\t\t\t</>}\n\t\t\t\t</SliderScale>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
package/dist/Table.js
CHANGED
|
@@ -239,9 +239,11 @@ let Table = Table_1 = class Table extends UI5Element {
|
|
|
239
239
|
}
|
|
240
240
|
_onResize() {
|
|
241
241
|
const { clientWidth, scrollWidth } = this._tableElement;
|
|
242
|
-
|
|
242
|
+
// Safari can report scrollWidth 1px greater than clientWidth during zoom transitions
|
|
243
|
+
// due to subpixel rounding, so a strict > check triggers spurious popin cycles.
|
|
244
|
+
const overflow = scrollWidth - clientWidth;
|
|
245
|
+
if (overflow > 1) {
|
|
243
246
|
// Overflow Handling: Move columns into the popin until overflow is resolved
|
|
244
|
-
const overflow = scrollWidth - clientWidth;
|
|
245
247
|
const headers = this._getPopinOrderedColumns(false);
|
|
246
248
|
const poppedInWidth = headers.reduce((totalPoppedInWidth, headerCell) => {
|
|
247
249
|
if (totalPoppedInWidth < overflow && !headerCell._popin) {
|
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\n\t\tif (scrollWidth > clientWidth) {\n\t\t\t// Overflow Handling: Move columns into the popin until overflow is resolved\n\t\t\tconst overflow = scrollWidth - clientWidth;\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":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,EACN,aAAa,EAAE,UAAU,IAAI,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,GAC9D,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAC1D,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAC7D,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,EACN,2BAA2B,EAAE,qBAAqB,EAAE,SAAS,EAAE,kBAAkB,GACjF,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAa1G,OAAO,EACN,aAAa,GACb,MAAM,mCAAmC,CAAC;AAqE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAuEH,IAAM,KAAK,aAAX,MAAM,KAAM,SAAQ,UAAU;IAmL7B;QACC,KAAK,EAAE,CAAC;QAtGT;;;;;;;;;;WAUG;QAEH,iBAAY,GAA2B,QAAQ,CAAC;QAEhD;;;;;;;WAOG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;;WAKG;QAEH,iBAAY,GAAG,IAAI,CAAC;QAEpB;;;;;;;;WAQG;QAEH,mBAAc,GAAG,CAAC,CAAC;QAEnB;;;;;;WAMG;QAEH,uBAAkB,GAAG,KAAK,CAAC;QAE3B;;WAEG;QAEH,cAAS,GAAG,GAAG,CAAC;QAGhB,gBAAW,GAAG,CAAC,CAAC;QAGhB,qBAAgB,GAAG,KAAK,CAAC;QA0BzB,YAAO,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAMpJ,cAAS,GAAmD,EAAE,CAAC;QAC/D,oBAAe,GAAG,CAAC,CAAC;QAInB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU;QACT,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,wBAAwB,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,SAAS;QACR,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,iBAAiB;QAChB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7D,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC/C,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;gBACvB,GAAG,CAAC,eAAe,GAAG,cAAc,CAAC;gBACrC,GAAG,CAAC,gBAAgB,GAAG,CAAC,kBAAkB,CAAC;gBAC3C,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC7C,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,IAAI,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,gBAAgB,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC9D,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC7B,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;gBACvB,cAAc,GAAG,CAAC,CAAC;YACpB,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACtB,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC;IACF,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,YAAY,KAAK,iBAAiB,CAAC,KAAK,EAAE,CAAC;YACnD,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IAED,YAAY,CAAI,WAAmB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAI,OAAO,EAAE,WAAW,CAAC,CAAM,CAAC;IAC/E,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,YAAY,CAAqB,oBAAoB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAiB,gBAAgB,CAAC,CAAC;IAC3H,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,YAAY,CAAmB,kBAAkB,CAAC,CAAC;IAChE,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,YAAY,CAAe,cAAc,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ,CAAC,CAAQ;QAChB,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAgB,CAAC;QACnD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAuD,CAAC;QACzM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1B,IAAI,OAAO,YAAY,cAAc,IAAI,CAAC,OAAO,YAAY,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBACtH,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,IAAI,EAA0B,CAAC;gBAChE,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAmD,CAAC;gBACjG,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;oBACxC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC5C,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS;QACR,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QACxD,qFAAqF;QACrF,gFAAgF;QAChF,MAAM,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;QAE3C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAClB,4EAA4E;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,UAAU,EAAE,EAAE;gBACvE,IAAI,kBAAkB,GAAG,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;oBACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC;oBACxE,kBAAkB,IAAI,WAAW,CAAC;oBAClC,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,kBAAkB,CAAC;YAC3B,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,0DAA0D;YAC1D,MAAM,cAAc,GAAG,aAAa,GAAG,QAAQ,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,WAAW,GAAG,cAAc,CAAC;QACrD,CAAC;aAAM,CAAC;YACP,8EAA8E;YAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAE3E,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBAC1B,MAAM,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC;gBACrD,IAAI,SAAS,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;oBACzC,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC,WAAW,CAAC;oBAC/C,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAChD,OAAO,IAAI,CAAC;gBACb,CAAC;gBACD,OAAO,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO;QACR,CAAC;QAED,uEAAuE;QACvE,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAqB,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;IAC1H,CAAC;IAED,OAAO;QACN,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,uBAAuB,CAAC,OAAgB;QACvC,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,6BAA6B;QAC1D,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B;QAC1F,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,gEAAgE;QAE/E,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,kBAAkB;QACjB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,UAA2B,EAAE,OAAgB,EAAE,UAAkB;QACrF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChE,UAAU,CAAC,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,iBAAiB,CAAC,KAAK,CAAC;QAC7E,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC;gBAC3C,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACjC,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,OAAY;QAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,mBAAmB,IAAI,SAAS,CAAgB,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACtH,CAAC;IAED,WAAW,CAAC,GAAa;QACxB,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,iBAAiB,CAAC,MAA0B;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,aAAyB,CAAC;QAC7C,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM;QACT,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,MAAM,cAAc,GAA2B,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC7C,cAAc,CAAC,YAAY,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,eAAe,IAAI,SAAS,CAAC;QACxF,CAAC,CAAC,CAAC;QACH,OAAO;YACN,KAAK,EAAE;gBACN,uBAAuB,EAAE,IAAI,CAAC,oBAAoB;gBAClD,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,MAAM;gBACnE,GAAG,cAAc;aACjB;YACD,MAAM,EAAE;gBACP,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE;gBACzC,aAAa,EAAE,WAAW,IAAI,WAAW;aACzC;SACD,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAE3D,uBAAuB;QACvB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5B,CAAC;QAED,gBAAgB;QAChB,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;YACzC,IAAI,KAAK,GAAG,UAAU,QAAQ,QAAQ,CAAC,CAAC,gBAAgB;YACxD,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,QAAQ,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACnF,CAAC;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC,CAAC;QAEJ,0EAA0E;QAC1E,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAEhC,IAAI,gBAAgB,IAAI,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,4CAA4C,IAAI,CAAC,cAAc,0CAA0C,IAAI,CAAC,cAAc,GAAG,CAAC,mDAAmD,CAAC,CAAC;QAClM,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,YAAY,KAAK,iBAAiB,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;IACxF,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,qBAAqB,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,eAAe;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAiC,CAAC;QAC1E,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,UAAU,IAAI,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,UAAU;QACb,OAAO,yBAAyB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;IACrD,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,0BAA0B,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,aAAa;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACV,CAAC;QAED,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;QAC1D,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,YAAY,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,YAAY,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,YAAY,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,IAAI,oBAAoB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AA3dA;IARC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;QACf,uBAAuB,EAAE;YACxB,UAAU,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;YACrC,KAAK,EAAE,KAAK;SACZ;KACD,CAAC;mCAC2B;AAU7B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;wCACxD;AAQjC;IADC,IAAI,EAAE;qCACoB;AAQ3B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;uCACpB;AAS/B;IADC,QAAQ,EAAE;6CACa;AASxB;IADC,QAAQ,EAAE;gDACgB;AAS3B;IADC,QAAQ,EAAE;yCACS;AAcpB;IADC,QAAQ,EAAE;2CACqC;AAWhD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sCACZ;AAShB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CACP;AAYpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACR;AAUnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACD;AAM3B;IADC,QAAQ,EAAE;wCACK;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;0CAC9B;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;+CACtB;AAGzB;IADC,KAAK,CAAC,sBAAsB,CAAC;+CACG;AAGjC;IADC,KAAK,CAAC,cAAc,CAAC;yCACA;AAGtB;IADC,KAAK,CAAC,gBAAgB,CAAC;sCACL;AAGnB;IADC,KAAK,CAAC,QAAQ,CAAC;4CACY;AAG5B;IADC,KAAK,CAAC,SAAS,CAAC;6CACY;AAG7B;IADC,KAAK,CAAC,QAAQ,CAAC;4CACY;AAG5B;IADC,KAAK,CAAC,UAAU,CAAC;8CACY;AAGvB;IADN,IAAI,CAAC,oBAAoB,CAAC;+BACG;AAxKzB,KAAK;IAtEV,aAAa,CAAC;QACd,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;KACpB,CAAC;IAEF;;;;;;;;OAQG;;IACF,WAAW,CAAC,WAAW,EAAE;QACzB,OAAO,EAAE,KAAK;KACd,CAAC;IAEF;;;;;;;;;;;;OAYG;;IACF,WAAW,CAAC,WAAW,EAAE;QACzB,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;;;;;;;;;;;OAcG;;IACF,WAAW,CAAC,MAAM,EAAE;QACpB,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;;;;OAOG;;IACF,WAAW,CAAC,kBAAkB,EAAE;QAChC,OAAO,EAAE,KAAK;KACd,CAAC;GAEI,KAAK,CAkfV;AAED,KAAK,CAAC,MAAM,EAAE,CAAC;AAEf,eAAe,KAAK,CAAC","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"]}
|