@sapudex/web-components 2.14.0 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/cypress/specs/Breadcrumbs.cy.tsx +77 -0
  2. package/cypress/specs/FilterMenu.cy.tsx +19 -43
  3. package/cypress/specs/InputGroup.cy.tsx +47 -0
  4. package/cypress/support/component-imports.instrumented.ts +4 -0
  5. package/cypress/support/component-imports.src.ts +4 -0
  6. package/dist/Breadcrumbs.d.ts +2 -0
  7. package/dist/Breadcrumbs.js +8 -7
  8. package/dist/Breadcrumbs.js.map +1 -1
  9. package/dist/BreadcrumbsItem.d.ts +1 -2
  10. package/dist/BreadcrumbsItem.js.map +1 -1
  11. package/dist/BreadcrumbsPopoverTemplate.d.ts +2 -0
  12. package/dist/BreadcrumbsPopoverTemplate.js +8 -0
  13. package/dist/BreadcrumbsPopoverTemplate.js.map +1 -0
  14. package/dist/BreadcrumbsTemplate.d.ts +2 -0
  15. package/dist/BreadcrumbsTemplate.js +10 -0
  16. package/dist/BreadcrumbsTemplate.js.map +1 -0
  17. package/dist/FilterMenu.js +1 -2
  18. package/dist/FilterMenu.js.map +1 -1
  19. package/dist/FilterMenuSelectAll.d.ts +0 -1
  20. package/dist/FilterMenuSelectAll.js +0 -3
  21. package/dist/FilterMenuSelectAll.js.map +1 -1
  22. package/dist/InputGroup.d.ts +0 -1
  23. package/dist/InputGroup.js +3 -6
  24. package/dist/InputGroup.js.map +1 -1
  25. package/dist/InputGroupTemplate.d.ts +2 -0
  26. package/dist/InputGroupTemplate.js +7 -0
  27. package/dist/InputGroupTemplate.js.map +1 -0
  28. package/dist/MastheadMobileMenu.js +1 -1
  29. package/dist/MastheadMobileMenu.js.map +1 -1
  30. package/dist/Search.js +5 -4
  31. package/dist/Search.js.map +1 -1
  32. package/dist/SearchableListBase.d.ts +2 -1
  33. package/dist/SearchableListBase.js +13 -23
  34. package/dist/SearchableListBase.js.map +1 -1
  35. package/dist/SelectBox.js +1 -2
  36. package/dist/SelectBox.js.map +1 -1
  37. package/dist/TruncatedText.d.ts +0 -1
  38. package/dist/TruncatedText.js +5 -6
  39. package/dist/TruncatedText.js.map +1 -1
  40. package/dist/TruncatedTextTemplate.d.ts +2 -0
  41. package/dist/TruncatedTextTemplate.js +9 -0
  42. package/dist/TruncatedTextTemplate.js.map +1 -0
  43. package/dist/assets/{InputSuggestions-AxcsfuTc.js → InputSuggestions-D5z6eIC2.js} +1 -1
  44. package/dist/assets/{ListItemStandardExpandableTextTemplate-CaS49yZt.js → ListItemStandardExpandableTextTemplate-BKeYxhnX.js} +1 -1
  45. package/dist/assets/{bundle.esm-DzkSPQ0p.js → bundle.esm-DXwtYGLH.js} +210 -210
  46. package/dist/css/themes/MediaPlayer.css +1 -1
  47. package/dist/css/themes/RatingIndicator.css +1 -1
  48. package/dist/css/themes/Slider.css +1 -1
  49. package/dist/custom-elements-internal.json +17 -2
  50. package/dist/custom-elements.json +17 -2
  51. package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
  52. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  53. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  54. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  55. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  56. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  57. package/dist/generated/themes/Slider.css.d.ts +1 -1
  58. package/dist/generated/themes/Slider.css.js +1 -1
  59. package/dist/generated/themes/Slider.css.js.map +1 -1
  60. package/dist/utils/sanitizeString.d.ts +2 -0
  61. package/dist/utils/sanitizeString.js +12 -0
  62. package/dist/utils/sanitizeString.js.map +1 -0
  63. package/dist/web-types.json +2 -2
  64. package/package.json +2 -2
  65. package/src/Breadcrumbs.ts +12 -7
  66. package/src/BreadcrumbsItem.ts +2 -2
  67. package/src/BreadcrumbsPopoverTemplate.tsx +60 -0
  68. package/src/BreadcrumbsTemplate.tsx +53 -0
  69. package/src/FilterMenu.ts +1 -2
  70. package/src/FilterMenuSelectAll.ts +0 -4
  71. package/src/InputGroup.ts +3 -7
  72. package/src/InputGroupTemplate.tsx +31 -0
  73. package/src/MastheadMobileMenu.ts +1 -1
  74. package/src/Search.ts +5 -4
  75. package/src/SearchableListBase.ts +15 -26
  76. package/src/SelectBox.ts +1 -2
  77. package/src/TruncatedText.ts +8 -14
  78. package/src/TruncatedTextTemplate.tsx +21 -0
  79. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  80. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  81. package/src/generated/themes/Slider.css.ts +1 -1
  82. package/src/themes/MediaPlayer.css +133 -186
  83. package/src/utils/sanitizeString.ts +13 -0
  84. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.d.ts +0 -3
  85. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +0 -12
  86. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +0 -1
  87. package/dist/generated/templates/BreadcrumbsTemplate.lit.d.ts +0 -3
  88. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +0 -14
  89. package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +0 -1
  90. package/dist/generated/templates/InputGroupTemplate.lit.d.ts +0 -3
  91. package/dist/generated/templates/InputGroupTemplate.lit.js +0 -9
  92. package/dist/generated/templates/InputGroupTemplate.lit.js.map +0 -1
  93. package/dist/generated/templates/TruncatedTextTemplate.lit.d.ts +0 -3
  94. package/dist/generated/templates/TruncatedTextTemplate.lit.js +0 -7
  95. package/dist/generated/templates/TruncatedTextTemplate.lit.js.map +0 -1
  96. package/src/Breadcrumbs.hbs +0 -38
  97. package/src/BreadcrumbsPopover.hbs +0 -48
  98. package/src/InputGroup.hbs +0 -20
  99. package/src/TruncatedText.hbs +0 -11
  100. package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +0 -16
  101. package/src/generated/templates/BreadcrumbsTemplate.lit.ts +0 -18
  102. package/src/generated/templates/InputGroupTemplate.lit.ts +0 -13
  103. package/src/generated/templates/TruncatedTextTemplate.lit.ts +0 -11
@@ -0,0 +1,77 @@
1
+ import { UDExBreadcrumbs, UDExBreadcrumbsItem } from "../support/component-imports.js";
2
+
3
+ const breadcrumbs = <UDExBreadcrumbs id="breadcrumbs" class="udex-breadcrumbs">
4
+ <UDExBreadcrumbsItem
5
+ href="https://www.sap.com"
6
+ target="_blank"
7
+ icon="home"
8
+ accessible-name="Home page">
9
+ SAP Home
10
+ </UDExBreadcrumbsItem>
11
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Second Level</UDExBreadcrumbsItem>
12
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Third Level</UDExBreadcrumbsItem>
13
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Fourth Level</UDExBreadcrumbsItem>
14
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Fifth level</UDExBreadcrumbsItem>
15
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Sixth Level</UDExBreadcrumbsItem>
16
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Seventh level</UDExBreadcrumbsItem>
17
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Eight Level</UDExBreadcrumbsItem>
18
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Ninth Level</UDExBreadcrumbsItem>
19
+ <UDExBreadcrumbsItem>Current Page</UDExBreadcrumbsItem>
20
+ </UDExBreadcrumbs>
21
+
22
+ const breadcrumbsShowItemsHigher = <UDExBreadcrumbs
23
+ id="breadcrumbs-show-items-higher"
24
+ show-items="10"
25
+ class="udex-breadcrumbs">
26
+ <UDExBreadcrumbsItem
27
+ href="https://www.sap.com"
28
+ target="_blank"
29
+ icon="home"
30
+ accessible-name="Home page">
31
+ SAP Home
32
+ </UDExBreadcrumbsItem>
33
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Second Level</UDExBreadcrumbsItem>
34
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Third Level</UDExBreadcrumbsItem>
35
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Fourth Level</UDExBreadcrumbsItem>
36
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Fifth level</UDExBreadcrumbsItem>
37
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Sixth Level</UDExBreadcrumbsItem>
38
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Seventh level</UDExBreadcrumbsItem>
39
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Eight Level</UDExBreadcrumbsItem>
40
+ <UDExBreadcrumbsItem href="https://www.sap.com" target="_blank">Ninth Level</UDExBreadcrumbsItem>
41
+ <UDExBreadcrumbsItem>Current Page</UDExBreadcrumbsItem>
42
+ </UDExBreadcrumbs>
43
+
44
+ describe("Breadcrumbs", () => {
45
+ beforeEach(() => {
46
+ cy.mount(breadcrumbs);
47
+ });
48
+
49
+ it("tests if web component is correctly rendered", () => {
50
+ cy.get("#breadcrumbs").shadow().find(".ui5-breadcrumbs-root").should("be.visible");
51
+ });
52
+
53
+ it("tests if items that fit the container are visible", () => {
54
+ cy.get("#breadcrumbs").shadow().find(".udex-breadcrumbs__item--visible").should("have.length", 3);
55
+ });
56
+
57
+ it("tests if items that don't fit are rendered in dropdown", () => {
58
+ cy.get("#breadcrumbs").shadow().find(".udex-breadcrumbs__trigger").click();
59
+ cy.get("#breadcrumbs").shadow().find(".udex-breadcrumbs__item--hidden").should("have.length", 10);
60
+ });
61
+
62
+ it("tests if the dropdown is opened after clicking on arrow item", () => {
63
+ cy.get("#breadcrumbs").shadow().find(".udex-breadcrumbs__trigger").click();
64
+ cy.get("#breadcrumbs").shadow().find("[udex-dropdown]").should("have.attr", "open");
65
+ });
66
+
67
+ it("tests if the first arrow item is focused after pressing \"Escape\" key inside the dropdown on the first dropdown item", () => {
68
+ cy.get("#breadcrumbs").shadow().find(".udex-breadcrumbs__trigger").click();
69
+ cy.get("body").realType("{esc}");
70
+ cy.get("#breadcrumbs").shadow().find(".udex-breadcrumbs__trigger").should("be.focused");
71
+ });
72
+
73
+ it("tests if all items are rendered if showItems property is higher than number of available items", () => {
74
+ cy.mount(breadcrumbsShowItemsHigher);
75
+ cy.get("#breadcrumbs-show-items-higher").shadow().find(".udex-breadcrumbs__item--visible").should("have.length", 9);
76
+ });
77
+ });
@@ -124,14 +124,14 @@ const filterMenuSingleWithSearch = <>
124
124
  const filterMenuSelectAll = <>
125
125
  <span id="resultSelectAll"></span>
126
126
  <UDExFilterMenu
127
- id="filter-menu-select-all"
128
- mode={UDExListMode.MultiSelect}
129
- filter-name="Filter Name">
130
- <UDExFilterMenuSelectAll>
131
- <UDExFilterMenuItem label="JavaScript" supporting-text="Frontend web development"></UDExFilterMenuItem>
132
- <UDExFilterMenuItem label="Python" supporting-text="Used in data analysis"></UDExFilterMenuItem>
133
- </UDExFilterMenuSelectAll>
134
- </UDExFilterMenu>
127
+ id="filter-menu-select-all"
128
+ mode={UDExListMode.MultiSelect}
129
+ filter-name="Filter Name">
130
+ <UDExFilterMenuSelectAll>
131
+ <UDExFilterMenuItem label="JavaScript" supporting-text="Frontend web development"></UDExFilterMenuItem>
132
+ <UDExFilterMenuItem label="Python" supporting-text="Used in data analysis"></UDExFilterMenuItem>
133
+ </UDExFilterMenuSelectAll>
134
+ </UDExFilterMenu>
135
135
  </>
136
136
 
137
137
  describe("Filter Menu component", () => {
@@ -559,45 +559,21 @@ describe("Filter Menu component", () => {
559
559
  .shadow().find("udex-list-item").should("have.text", "Select All");
560
560
  });
561
561
 
562
- it("header is not selected if at least one element is selected", () => {
563
- cy.get("[udex-filter-menu]").shadow().find(".udex-filter-menu__list").as("list");
564
- cy.get("@list").find("udex-list-item").eq(0).shadow().find(".udex-list__item").as("firstItem");
565
-
566
- cy.get("@firstItem").click();
567
-
568
- cy.get("@selectAllHeader").should("not.have.attr", "selected");
569
- });
570
-
571
- it("unselect all items when user clicks on select all header", () => {
572
- cy.get("[udex-filter-menu]").shadow()
573
- .find("udex-list-select-all")
574
- .find("udex-list-item").as("item");
575
- cy.get("@item").eq(0).shadow().find(".udex-list__item").as("firstItem");
576
- cy.get("@item").eq(1).shadow().find(".udex-list__item").as("secondItem");
577
-
578
- cy.get("[udex-filter-menu]")
579
- .shadow().find("udex-list-select-all")
580
- .shadow().find("udex-list-item")
581
- .shadow().find(".udex-list__item")
582
- .as("selectAllHeader");
583
-
584
- cy.get("@firstItem").click();
585
- cy.get("@secondItem").click();
586
-
587
- cy.get("@firstItem").should("have.attr", "data-selected", "true");
588
- cy.get("@secondItem").should("have.attr", "data-selected", "true");
589
- cy.get("@selectAllHeader").should("have.attr", "data-selected", "false");
590
-
591
- cy.get("@selectAllHeader").click();
592
-
593
- cy.get("@firstItem").should("have.attr", "data-selected", "false");
594
- cy.get("@secondItem").should("have.attr", "data-selected", "false");
595
- });
596
-
597
562
  it("select all header focus on pressed letter", () => {
598
563
  cy.realPress("p");
599
564
  cy.get("[udex-filter-menu]").shadow().find("udex-list-item").eq(1).should("have.attr", "focused");
600
565
  });
566
+
567
+ it("emit select-all when Select All header clicked", () => {
568
+ let selectAllEmitted = false;
569
+ cy.get("[udex-filter-menu]").then(menu => {
570
+ menu.get(0).addEventListener('ui5-select-all', function() {
571
+ selectAllEmitted = true;
572
+ });
573
+ });
574
+
575
+ cy.get("@selectAllHeader").click().then(() => expect(selectAllEmitted).to.be.true);
576
+ });
601
577
  });
602
578
 
603
579
  describe("Filter Menu focus state tests", () => {
@@ -0,0 +1,47 @@
1
+ import { UDExInputGroup, UDExCheckbox } from "../support/component-imports.js";
2
+
3
+ const groupOrientation = "Horizontal";
4
+ const groupState = "Error";
5
+ const groupText = "Error message";
6
+ const groupName = "test-name"
7
+
8
+ const simpleGroup = <UDExInputGroup></UDExInputGroup>
9
+ const checkboxGroup = <UDExInputGroup orientation={groupOrientation} valueState={groupState} supportingText={groupText} groupName={groupName}>
10
+ <UDExCheckbox text="Text option 1"></UDExCheckbox>
11
+ <UDExCheckbox text="Text option 2"></UDExCheckbox>
12
+ </UDExInputGroup>
13
+
14
+ describe("Input Group", () => {
15
+ beforeEach(() => {
16
+ cy.mount(checkboxGroup);
17
+ });
18
+
19
+ it("renders input group", () => {
20
+ cy.get("[udex-input-group]").shadow().find(".udex-input-group__container").should("be.visible");
21
+ });
22
+
23
+ it("renders input group with error message", () => {
24
+ cy.get("[udex-input-group]").shadow().find("[udex-status-message]").should("be.visible");
25
+ cy.get("[udex-input-group]").shadow().find("[udex-status-message]").shadow().find(".udex-status-message").should("have.text", groupText);
26
+ });
27
+
28
+ it("renders input group with custom name", () => {
29
+ cy.get("[udex-input-group]").find("[udex-checkbox]").should("have.attr", "name", groupName);
30
+ });
31
+
32
+ it("renders input group with horizontal orientation", () => {
33
+ cy.get("[udex-input-group]").should("have.attr", "orientation", groupOrientation);
34
+ });
35
+
36
+ it("renders input group with proper items length", () => {
37
+ cy.get("[udex-input-group]").shadow().find(".udex-input-group__item").should("have.length", 2);
38
+ });
39
+
40
+ it("renders input group with defaults", () => {
41
+ cy.mount(simpleGroup)
42
+ cy.get("[udex-input-group]").shadow().find(".udex-input-group__container").should("exist");
43
+ cy.get("[udex-input-group]").shadow().find(".udex-input-group__content").should("exist");
44
+ cy.get("[udex-input-group]").should("have.attr", "orientation", "Vertical");
45
+ cy.get("[udex-input-group]").shadow().find("[udex-status-message]").should("not.exist");
46
+ });
47
+ });
@@ -57,6 +57,8 @@ import UDExQuote from "../../instrumented/Quote.js";
57
57
  import UDExMastheadProfileMenu from "../../instrumented/MastheadProfileMenu.js";
58
58
  import UDExMessageStrip from "../../instrumented/MessageStrip.js";
59
59
  import UDExHeroBanner from "../../instrumented/HeroBanner.js";
60
+ import UDExCheckbox from "../../instrumented/Checkbox.js";
61
+ import UDExInputGroup from "../../instrumented/InputGroup.js";
60
62
 
61
63
  export {
62
64
  UDExAccordion,
@@ -118,4 +120,6 @@ export {
118
120
  UDExMastheadProfileMenu,
119
121
  UDExMessageStrip,
120
122
  UDExHeroBanner,
123
+ UDExCheckbox,
124
+ UDExInputGroup
121
125
  };
@@ -57,6 +57,8 @@ import UDExQuote from "../../src/Quote.js";
57
57
  import UDExMastheadProfileMenu from "../../src/MastheadProfileMenu.js";
58
58
  import UDExMessageStrip from "../../src/MessageStrip.js";
59
59
  import UDExHeroBanner from "../../src/HeroBanner.js";
60
+ import UDExCheckbox from "../../src/Checkbox.js";
61
+ import UDExInputGroup from "../../src/InputGroup.js";
60
62
 
61
63
  export {
62
64
  UDExAccordion,
@@ -118,4 +120,6 @@ export {
118
120
  UDExMastheadProfileMenu,
119
121
  UDExMessageStrip,
120
122
  UDExHeroBanner,
123
+ UDExCheckbox,
124
+ UDExInputGroup
121
125
  };
@@ -62,6 +62,8 @@ declare class UDExBreadcrumbs extends UI5Element {
62
62
  _responsivePopover?: UDExDropdown;
63
63
  _itemNavigation?: ItemNavigation;
64
64
  _shouldFocusFirstVisibleItem: boolean;
65
+ _rootClass: string;
66
+ constructor();
65
67
  onBeforeRendering(): void;
66
68
  onAfterRendering(): void;
67
69
  _preprocessItems(): void;
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var UDExBreadcrumbs_1;
8
8
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
9
9
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
10
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
10
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
11
11
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
12
12
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
13
13
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
@@ -19,7 +19,7 @@ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
19
19
  import UI5BreadcrumbsCss from "@ui5/webcomponents/dist/generated/themes/Breadcrumbs.css.js";
20
20
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
21
21
  import "@ui5/webcomponents-icons/dist/home.js";
22
- import BreadcrumbsTemplate from "./generated/templates/BreadcrumbsTemplate.lit.js";
22
+ import BreadcrumbsTemplate from "./BreadcrumbsTemplate.js";
23
23
  import UDExBreadcrumbsItem from "./BreadcrumbsItem.js";
24
24
  import UDExDropdown from "./Dropdown.js";
25
25
  import UDExLink from "./Link.js";
@@ -27,7 +27,6 @@ import { BREADCRUMBS_ARIA_LABEL, BREADCRUMBS_OVERFLOW_ARIA_LABEL } from "./gener
27
27
  // Styles
28
28
  import BreadcrumbsCss from "./generated/themes/Breadcrumbs.css.js";
29
29
  import BreadcrumbsPopoverCss from "./generated/themes/BreadcrumbsPopover.css.js";
30
- const triggerActiveClass = "udex-breadcrumbs__trigger--opened";
31
30
  /**
32
31
  * @class
33
32
  *
@@ -47,7 +46,7 @@ const triggerActiveClass = "udex-breadcrumbs__trigger--opened";
47
46
  */
48
47
  let UDExBreadcrumbs = UDExBreadcrumbs_1 = class UDExBreadcrumbs extends UI5Element {
49
48
  constructor() {
50
- super(...arguments);
49
+ super();
51
50
  /**
52
51
  * Defines how many breadcrumb items should be visible
53
52
  *
@@ -55,6 +54,7 @@ let UDExBreadcrumbs = UDExBreadcrumbs_1 = class UDExBreadcrumbs extends UI5Eleme
55
54
  * @public
56
55
  */
57
56
  this.showItems = 3;
57
+ this._rootClass = "udex-breadcrumbs";
58
58
  }
59
59
  onBeforeRendering() {
60
60
  this._preprocessItems();
@@ -139,7 +139,7 @@ let UDExBreadcrumbs = UDExBreadcrumbs_1 = class UDExBreadcrumbs extends UI5Eleme
139
139
  this._itemNavigation?.setCurrentItem(currentItem);
140
140
  }
141
141
  _handleKeydown(e) {
142
- const itemIndex = e.target.getAttribute("index");
142
+ const itemIndex = e.target.getAttribute("data-index");
143
143
  const isLastItem = itemIndex === (this.items.length - 2).toString();
144
144
  const isFirstItem = itemIndex === "0";
145
145
  if (isTabNext(e) && isLastItem) {
@@ -199,7 +199,8 @@ let UDExBreadcrumbs = UDExBreadcrumbs_1 = class UDExBreadcrumbs extends UI5Eleme
199
199
  return this._getItems().filter(i => this._isItemVisible(i));
200
200
  }
201
201
  get _triggerClass() {
202
- return this._dropdownOpened ? triggerActiveClass : "";
202
+ const rootClass = "udex-breadcrumbs";
203
+ return this._dropdownOpened ? `${rootClass} ${rootClass}__trigger--opened` : rootClass;
203
204
  }
204
205
  get _accessibleNameText() {
205
206
  return UDExBreadcrumbs_1.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);
@@ -223,7 +224,7 @@ __decorate([
223
224
  UDExBreadcrumbs = UDExBreadcrumbs_1 = __decorate([
224
225
  customElement({
225
226
  tag: "udex-breadcrumbs",
226
- renderer: litRender,
227
+ renderer: jsxRenderer,
227
228
  styles: [UI5BreadcrumbsCss, BreadcrumbsCss, BreadcrumbsPopoverCss],
228
229
  template: BreadcrumbsTemplate,
229
230
  dependencies: [UDExBreadcrumbsItem, UDExLink, UDExDropdown, UI5Icon],
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["../src/Breadcrumbs.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport { isTabNext, isTabPrevious, isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UI5BreadcrumbsCss from \"@ui5/webcomponents/dist/generated/themes/Breadcrumbs.css.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/home.js\";\nimport BreadcrumbsTemplate from \"./generated/templates/BreadcrumbsTemplate.lit.js\";\nimport UDExBreadcrumbsItem from \"./BreadcrumbsItem.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExLink from \"./Link.js\";\nimport { BREADCRUMBS_ARIA_LABEL, BREADCRUMBS_OVERFLOW_ARIA_LABEL } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport BreadcrumbsCss from \"./generated/themes/Breadcrumbs.css.js\";\nimport BreadcrumbsPopoverCss from \"./generated/themes/BreadcrumbsPopover.css.js\";\n\nconst triggerActiveClass = \"udex-breadcrumbs__trigger--opened\";\n\ntype UDExBreadcrumbsItemClickEventDetail = {\n item: UDExBreadcrumbsItem;\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n shiftKey?: boolean;\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-breadcrumbs</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Breadcrumbs.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-breadcrumbs\",\n renderer: litRender,\n styles: [UI5BreadcrumbsCss, BreadcrumbsCss, BreadcrumbsPopoverCss],\n template: BreadcrumbsTemplate,\n dependencies: [UDExBreadcrumbsItem, UDExLink, UDExDropdown, UI5Icon],\n})\n/**\n * @public\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired after the dropdown is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired after the dropdown is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\nclass UDExBreadcrumbs extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExBreadcrumbsItemClickEventDetail,\n \"open\": void,\n \"close\": void,\n };\n /**\n * Defines how many breadcrumb items should be visible\n *\n * @default 3\n * @public\n */\n @property({ type: Number })\n showItems: number = 3;\n\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the component items.\n *\n * **Note:** Use the `udex-breadcrumbs-item` component to define the desired items.\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n items!: Array<UDExBreadcrumbsItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _responsivePopover?: UDExDropdown;\n _itemNavigation?: ItemNavigation;\n _shouldFocusFirstVisibleItem!: boolean;\n\n onBeforeRendering(): void {\n this._preprocessItems();\n }\n\n onAfterRendering(): void {\n this._responsivePopover = this._getResponsePopover();\n this._initItemNavigation();\n this._dropdownArrowLink.forcedTabIndex = \"0\";\n this._handleOutsideClick();\n\n if (this._shouldFocusFirstVisibleItem) {\n this._getFocusableItems()[1].focus();\n this._shouldFocusFirstVisibleItem = false;\n }\n }\n\n _preprocessItems(): void {\n this.items.forEach(item => {\n item._getRealDomRef = () => this.getDomRef()!.querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)!;\n });\n }\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`#udex-${this.__id!}-breadcrumbs__popover`)!;\n }\n\n _getFocusableItems(): Array<UDExLink> {\n const items = this._links;\n items.unshift(this._dropdownArrowLink);\n\n return items;\n }\n\n _initItemNavigation(): void {\n if (!this._itemNavigation) {\n this._itemNavigation = new ItemNavigation(this, {\n navigationMode: NavigationMode.Horizontal,\n getItemsCallback: () => this._getFocusableItems(),\n });\n }\n }\n\n _getItems(): Array<UDExBreadcrumbsItem> {\n return this.getSlottedNodes<UDExBreadcrumbsItem>(\"items\");\n }\n\n _onDropdownLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const listItem = e.target as HTMLElement,\n items = this._getItems(),\n item = items.find(x => `${x._id}-li` === listItem.id)!;\n\n if (item._isCurrentPageItem) {\n return;\n }\n\n if (this.fireDecoratorEvent(\"item-click\", { item })) {\n window.open(item.href, item.target || \"_self\", \"noopener,noreferrer\");\n this._toggleDropdown();\n }\n\n this.setDropdownCloseState();\n }\n\n _onLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const link = e.target as UDExLink,\n items = this._getItems(),\n item = items.find(x => `${x._id}-link` === link.id)!,\n {\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n } = e.detail;\n\n if (!this.fireDecoratorEvent(\"item-click\", {\n item,\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n })) {\n e.preventDefault();\n }\n\n this.setDropdownCloseState();\n }\n\n _isItemVisible(item: UDExBreadcrumbsItem): boolean {\n return !item.hidden;\n }\n\n _afterDropdownOpen(): void {\n this._dropdownOpened = true;\n this.fireDecoratorEvent(\"open\");\n }\n\n _afterDropdownClose(): void {\n this._dropdownOpened = false;\n this.fireDecoratorEvent(\"close\");\n }\n\n _toggleDropdown(): void {\n if (this._responsivePopover) {\n this._responsivePopover.open = !this._responsivePopover.open;\n this._dropdownOpened = !this._dropdownOpened;\n }\n }\n\n _onfocusin(e: FocusEvent): void {\n const currentItem = e.target as UDExLink;\n\n this._itemNavigation?.setCurrentItem(currentItem);\n }\n\n _handleKeydown(e: KeyboardEvent): void {\n const itemIndex = (e.target as HTMLElement).getAttribute(\"index\");\n const isLastItem = itemIndex === (this.items.length - 2).toString();\n const isFirstItem = itemIndex === \"0\";\n\n if (isTabNext(e) && isLastItem) {\n this._shouldFocusFirstVisibleItem = true;\n this._toggleDropdown();\n return;\n }\n\n if ((isTabNext(e) && isLastItem) || (isTabPrevious(e) && isFirstItem) || isEscape(e)) {\n this._toggleDropdown();\n }\n }\n\n _handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: Event) => {\n if (e.target !== this) {\n this.setDropdownCloseState();\n }\n });\n }\n\n setDropdownCloseState(): void {\n if (this._responsivePopover) {\n this._dropdownOpened = false;\n }\n }\n\n /**\n * Getter for the interactive element that opens the overflow\n * @private\n */\n get _dropdownArrowLink(): UDExLink {\n return this.shadowRoot!.querySelector<UDExLink>(\".udex-breadcrumbs__trigger\")!;\n }\n\n /**\n * Getter for the list of links corresponding to the abstract breadcrumb items\n */\n get _links(): Array<UDExLink> {\n return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(\".udex-breadcrumbs__link-wrapper [udex-link]\"));\n }\n\n /**\n * Getter for the list of abstract breadcrumb items to be rendered as links outside the overflow\n */\n get _linksData(): Array<UDExBreadcrumbsItem> {\n const items = this._visibleItems;\n const itemsCount = items.length;\n\n return items\n .map((item, index) => {\n item._isCurrentPageItem = index === (itemsCount - 1);\n return item;\n });\n }\n\n get _visibleItems(): Array<UDExBreadcrumbsItem> {\n const items = this._getItems();\n const itemsLength = this.showItems ?? 0;\n\n return this._getItems()\n .slice(Math.max(items.length - itemsLength - 1, 0))\n .filter(i => this._isItemVisible(i));\n }\n\n get _dropdownItems(): Array<UDExBreadcrumbsItem> {\n return this._getItems().filter(i => this._isItemVisible(i));\n }\n\n get _triggerClass(): string {\n return this._dropdownOpened ? triggerActiveClass : \"\";\n }\n\n get _accessibleNameText(): string {\n return UDExBreadcrumbs.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);\n }\n\n get _dropdownArrowAccessibleNameText(): string {\n return UDExBreadcrumbs.i18nBundle.getText(BREADCRUMBS_OVERFLOW_ARIA_LABEL);\n }\n}\n\nUDExBreadcrumbs.define();\n\nexport default UDExBreadcrumbs;\nexport type { UDExBreadcrumbsItemClickEventDetail };\n"]}
1
+ {"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["../src/Breadcrumbs.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport { isTabNext, isTabPrevious, isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UI5BreadcrumbsCss from \"@ui5/webcomponents/dist/generated/themes/Breadcrumbs.css.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/home.js\";\nimport BreadcrumbsTemplate from \"./BreadcrumbsTemplate.js\";\nimport UDExBreadcrumbsItem from \"./BreadcrumbsItem.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExLink from \"./Link.js\";\nimport { BREADCRUMBS_ARIA_LABEL, BREADCRUMBS_OVERFLOW_ARIA_LABEL } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport BreadcrumbsCss from \"./generated/themes/Breadcrumbs.css.js\";\nimport BreadcrumbsPopoverCss from \"./generated/themes/BreadcrumbsPopover.css.js\";\n\ntype UDExBreadcrumbsItemClickEventDetail = {\n item: UDExBreadcrumbsItem;\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n shiftKey?: boolean;\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-breadcrumbs</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Breadcrumbs.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-breadcrumbs\",\n renderer: jsxRenderer,\n styles: [UI5BreadcrumbsCss, BreadcrumbsCss, BreadcrumbsPopoverCss],\n template: BreadcrumbsTemplate,\n dependencies: [UDExBreadcrumbsItem, UDExLink, UDExDropdown, UI5Icon],\n})\n/**\n * @public\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired after the dropdown is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired after the dropdown is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\nclass UDExBreadcrumbs extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExBreadcrumbsItemClickEventDetail,\n \"open\": void,\n \"close\": void,\n };\n /**\n * Defines how many breadcrumb items should be visible\n *\n * @default 3\n * @public\n */\n @property({ type: Number })\n showItems: number = 3;\n\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the component items.\n *\n * **Note:** Use the `udex-breadcrumbs-item` component to define the desired items.\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n items!: Array<UDExBreadcrumbsItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _responsivePopover?: UDExDropdown;\n _itemNavigation?: ItemNavigation;\n _shouldFocusFirstVisibleItem!: boolean;\n _rootClass: string;\n\n constructor() {\n super();\n this._rootClass = \"udex-breadcrumbs\";\n }\n\n onBeforeRendering(): void {\n this._preprocessItems();\n }\n\n onAfterRendering(): void {\n this._responsivePopover = this._getResponsePopover();\n this._initItemNavigation();\n this._dropdownArrowLink.forcedTabIndex = \"0\";\n this._handleOutsideClick();\n\n if (this._shouldFocusFirstVisibleItem) {\n this._getFocusableItems()[1].focus();\n this._shouldFocusFirstVisibleItem = false;\n }\n }\n\n _preprocessItems(): void {\n this.items.forEach(item => {\n item._getRealDomRef = () => this.getDomRef()!.querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)!;\n });\n }\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`#udex-${this.__id!}-breadcrumbs__popover`)!;\n }\n\n _getFocusableItems(): Array<UDExLink> {\n const items = this._links;\n items.unshift(this._dropdownArrowLink);\n\n return items;\n }\n\n _initItemNavigation(): void {\n if (!this._itemNavigation) {\n this._itemNavigation = new ItemNavigation(this, {\n navigationMode: NavigationMode.Horizontal,\n getItemsCallback: () => this._getFocusableItems(),\n });\n }\n }\n\n _getItems(): Array<UDExBreadcrumbsItem> {\n return this.getSlottedNodes<UDExBreadcrumbsItem>(\"items\");\n }\n\n _onDropdownLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const listItem = e.target as HTMLElement,\n items = this._getItems(),\n item = items.find(x => `${x._id}-li` === listItem.id)!;\n\n if (item._isCurrentPageItem) {\n return;\n }\n\n if (this.fireDecoratorEvent(\"item-click\", { item })) {\n window.open(item.href, item.target || \"_self\", \"noopener,noreferrer\");\n this._toggleDropdown();\n }\n\n this.setDropdownCloseState();\n }\n\n _onLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const link = e.target as UDExLink,\n items = this._getItems(),\n item = items.find(x => `${x._id}-link` === link.id)!,\n {\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n } = e.detail;\n\n if (!this.fireDecoratorEvent(\"item-click\", {\n item,\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n })) {\n e.preventDefault();\n }\n\n this.setDropdownCloseState();\n }\n\n _isItemVisible(item: UDExBreadcrumbsItem): boolean {\n return !item.hidden;\n }\n\n _afterDropdownOpen(): void {\n this._dropdownOpened = true;\n this.fireDecoratorEvent(\"open\");\n }\n\n _afterDropdownClose(): void {\n this._dropdownOpened = false;\n this.fireDecoratorEvent(\"close\");\n }\n\n _toggleDropdown(): void {\n if (this._responsivePopover) {\n this._responsivePopover.open = !this._responsivePopover.open;\n this._dropdownOpened = !this._dropdownOpened;\n }\n }\n\n _onfocusin(e: FocusEvent): void {\n const currentItem = e.target as UDExLink;\n\n this._itemNavigation?.setCurrentItem(currentItem);\n }\n\n _handleKeydown(e: KeyboardEvent): void {\n const itemIndex = (e.target as HTMLElement).getAttribute(\"data-index\");\n const isLastItem = itemIndex === (this.items.length - 2).toString();\n const isFirstItem = itemIndex === \"0\";\n\n if (isTabNext(e) && isLastItem) {\n this._shouldFocusFirstVisibleItem = true;\n this._toggleDropdown();\n return;\n }\n\n if ((isTabNext(e) && isLastItem) || (isTabPrevious(e) && isFirstItem) || isEscape(e)) {\n this._toggleDropdown();\n }\n }\n\n _handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: Event) => {\n if (e.target !== this) {\n this.setDropdownCloseState();\n }\n });\n }\n\n setDropdownCloseState(): void {\n if (this._responsivePopover) {\n this._dropdownOpened = false;\n }\n }\n\n /**\n * Getter for the interactive element that opens the overflow\n * @private\n */\n get _dropdownArrowLink(): UDExLink {\n return this.shadowRoot!.querySelector<UDExLink>(\".udex-breadcrumbs__trigger\")!;\n }\n\n /**\n * Getter for the list of links corresponding to the abstract breadcrumb items\n */\n get _links(): Array<UDExLink> {\n return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(\".udex-breadcrumbs__link-wrapper [udex-link]\"));\n }\n\n /**\n * Getter for the list of abstract breadcrumb items to be rendered as links outside the overflow\n */\n get _linksData(): Array<UDExBreadcrumbsItem> {\n const items = this._visibleItems;\n const itemsCount = items.length;\n\n return items\n .map((item, index) => {\n item._isCurrentPageItem = index === (itemsCount - 1);\n return item;\n });\n }\n\n get _visibleItems(): Array<UDExBreadcrumbsItem> {\n const items = this._getItems();\n const itemsLength = this.showItems ?? 0;\n\n return this._getItems()\n .slice(Math.max(items.length - itemsLength - 1, 0))\n .filter(i => this._isItemVisible(i));\n }\n\n get _dropdownItems(): Array<UDExBreadcrumbsItem> {\n return this._getItems().filter(i => this._isItemVisible(i));\n }\n\n get _triggerClass(): string {\n const rootClass = \"udex-breadcrumbs\";\n return this._dropdownOpened ? `${rootClass} ${rootClass}__trigger--opened` : rootClass;\n }\n\n get _accessibleNameText(): string {\n return UDExBreadcrumbs.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);\n }\n\n get _dropdownArrowAccessibleNameText(): string {\n return UDExBreadcrumbs.i18nBundle.getText(BREADCRUMBS_OVERFLOW_ARIA_LABEL);\n }\n}\n\nUDExBreadcrumbs.define();\n\nexport default UDExBreadcrumbs;\nexport type { UDExBreadcrumbsItemClickEventDetail };\n"]}
@@ -19,8 +19,7 @@ import BreadcrumbsItem from "@ui5/webcomponents/dist/BreadcrumbsItem.js";
19
19
  declare class UDExBreadcrumbsItem extends BreadcrumbsItem {
20
20
  /**
21
21
  * Defines item icon to be displayed before the item name.
22
- *
23
- * @default ""
22
+ * @default undefined
24
23
  * @public
25
24
  */
26
25
  icon?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbsItem.js","sourceRoot":"","sources":["../src/BreadcrumbsItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,eAAe,MAAM,4CAA4C,CAAC;AAEzE;;;;;;;;;;;;;;;;GAgBG;AAKH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,eAAe;CAShD,CAAA;AADG;IADD,QAAQ,EAAE;iDACK;AARZ,mBAAmB;IAJxB,aAAa,CAAC;QACb,GAAG,EAAE,uBAAuB;QAC5B,QAAQ,EAAE,WAAW;KACtB,CAAC;GACI,mBAAmB,CASxB;AAED,mBAAmB,CAAC,MAAM,EAAE,CAAC;AAE7B,eAAe,mBAAmB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport BreadcrumbsItem from \"@ui5/webcomponents/dist/BreadcrumbsItem.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-breadcrumbs-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/BreadcrumbsItem.js\";</code>\n *\n * @constructor\n * @extends BreadcrumbsItem\n * @public\n */\n@customElement({\n tag: \"udex-breadcrumbs-item\",\n renderer: jsxRenderer,\n})\nclass UDExBreadcrumbsItem extends BreadcrumbsItem {\n /**\n * Defines item icon to be displayed before the item name.\n *\n * @default \"\"\n * @public\n */\n @property()\n icon?: string;\n}\n\nUDExBreadcrumbsItem.define();\n\nexport default UDExBreadcrumbsItem;\n"]}
1
+ {"version":3,"file":"BreadcrumbsItem.js","sourceRoot":"","sources":["../src/BreadcrumbsItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,eAAe,MAAM,4CAA4C,CAAC;AAEzE;;;;;;;;;;;;;;;;GAgBG;AAMH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,eAAe;CAQhD,CAAA;AADG;IADD,QAAQ,EAAE;iDACK;AAPZ,mBAAmB;IALxB,aAAa,CAAC;QACb,GAAG,EAAE,uBAAuB;QAC5B,QAAQ,EAAE,WAAW;KACtB,CAAC;GAEI,mBAAmB,CAQxB;AAED,mBAAmB,CAAC,MAAM,EAAE,CAAC;AAE7B,eAAe,mBAAmB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport BreadcrumbsItem from \"@ui5/webcomponents/dist/BreadcrumbsItem.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-breadcrumbs-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/BreadcrumbsItem.js\";</code>\n *\n * @constructor\n * @extends BreadcrumbsItem\n * @public\n */\n@customElement({\n tag: \"udex-breadcrumbs-item\",\n renderer: jsxRenderer,\n})\n\nclass UDExBreadcrumbsItem extends BreadcrumbsItem {\n /**\n * Defines item icon to be displayed before the item name.\n * @default undefined\n * @public\n */\n @property()\n icon?: string;\n}\n\nUDExBreadcrumbsItem.define();\n\nexport default UDExBreadcrumbsItem;\n"]}
@@ -0,0 +1,2 @@
1
+ import type Breadcrumbs from "./Breadcrumbs.js";
2
+ export default function BreadcrumbsPopoverTemplate(this: Breadcrumbs): import("@ui5/webcomponents-base").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "@ui5/webcomponents-base/jsx-runtime";
2
+ import UDExDropdown from "./Dropdown.js";
3
+ import UDExLink from "./Link.js";
4
+ import { Placement, HorizontalAlign } from "./types/Dropdown.js";
5
+ export default function BreadcrumbsPopoverTemplate() {
6
+ return (_jsx(UDExDropdown, { id: `udex-${this._id}-breadcrumbs__popover`, opener: `udex-${this._id}-breadcrumbs__opener`, class: `${this._rootClass}__popover ui5-breadcrumbs-popover`, placement: Placement.Bottom, horizontalAlign: HorizontalAlign.Start, onKeyDown: this._handleKeydown, onClose: this._afterDropdownClose, onOpen: this._afterDropdownOpen, children: _jsx("div", { className: `${this._rootClass}__popover-content`, children: this._dropdownItems.map((item, index) => (item.icon ? (_jsx(UDExLink, { "data-index": index, id: `${item._id}-li`, onClick: this._onDropdownLinkPress, href: item.href, target: item.target, class: `${this._rootClass}__item ${this._rootClass}__item--with-icon ${this._rootClass}__item--hidden ${this._rootClass}__item--${index}`, icon: item.icon, accessibleName: item.textContent ?? undefined, "data-ui5-stable": item.stableDomRef, children: item.textContent }, index)) : item._isCurrentPageItem ? (_jsx("span", { id: `${item._id}-li`, className: `${this._rootClass}__item ${this._rootClass}__item--current ${this._rootClass}__item--hidden ${this._rootClass}__item--${index}`, "accessible-name": item.accessibleName, "data-ui5-stable": item.stableDomRef, children: item.textContent }, index)) : (_jsx(UDExLink, { "data-index": index, id: `${item._id}-li`, onClick: this._onDropdownLinkPress, href: item.href, target: item.target, class: `${this._rootClass}__item ${this._rootClass}__item--hidden ${this._rootClass}__item--${index}`, accessibleName: item.accessibleName, "data-ui5-stable": item.stableDomRef, children: item.textContent }, index)))) }) }));
7
+ }
8
+ //# sourceMappingURL=BreadcrumbsPopoverTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbsPopoverTemplate.js","sourceRoot":"","sources":["../src/BreadcrumbsPopoverTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,CAAC,OAAO,UAAU,0BAA0B;IAChD,OAAO,CACL,KAAC,YAAY,IACX,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,uBAAuB,EAC3C,MAAM,EAAE,QAAQ,IAAI,CAAC,GAAG,sBAAsB,EAC9C,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,mCAAmC,EAC5D,SAAS,EAAE,SAAS,CAAC,MAAM,EAC3B,eAAe,EAAE,eAAe,CAAC,KAAK,EACtC,SAAS,EAAE,IAAI,CAAC,cAAc,EAC9B,OAAO,EAAE,IAAI,CAAC,mBAAmB,EACjC,MAAM,EAAE,IAAI,CAAC,kBAAkB,YAC/B,cAAK,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,mBAAmB,YAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACxC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACV,KAAC,QAAQ,kBAEK,KAAK,EACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,EACpB,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAClC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,UAAU,IAAI,CAAC,UAAU,qBAAqB,IAAI,CAAC,UAAU,kBAAkB,IAAI,CAAC,UAAU,WAAW,KAAK,EAAE,EACzI,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,cAAc,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS,qBAC5B,IAAI,CAAC,YAAY,YACjC,IAAI,CAAC,WAAW,IAVZ,KAAK,CAWD,CACZ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAC5B,eAEE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,EACpB,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,UAAU,IAAI,CAAC,UAAU,mBAAmB,IAAI,CAAC,UAAU,kBAAkB,IAAI,CAAC,UAAU,WAAW,KAAK,EAAE,qBAC1H,IAAI,CAAC,cAAc,qBACnB,IAAI,CAAC,YAAY,YACjC,IAAI,CAAC,WAAW,IALZ,KAAK,CAML,CACR,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,kBAEK,KAAK,EACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,EACpB,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAClC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,UAAU,IAAI,CAAC,UAAU,kBAAkB,IAAI,CAAC,UAAU,WAAW,KAAK,EAAE,EACrG,cAAc,EAAE,IAAI,CAAC,cAAc,qBAClB,IAAI,CAAC,YAAY,YACjC,IAAI,CAAC,WAAW,IATZ,KAAK,CAUD,CACZ,CACF,CAAC,GACE,GACO,CAChB,CAAC;AACJ,CAAC","sourcesContent":["import type Breadcrumbs from \"./Breadcrumbs.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExLink from \"./Link.js\";\nimport { Placement, HorizontalAlign } from \"./types/Dropdown.js\";\n\nexport default function BreadcrumbsPopoverTemplate(this: Breadcrumbs) {\n return (\n <UDExDropdown\n id={`udex-${this._id}-breadcrumbs__popover`}\n opener={`udex-${this._id}-breadcrumbs__opener`}\n class={`${this._rootClass}__popover ui5-breadcrumbs-popover`}\n placement={Placement.Bottom}\n horizontalAlign={HorizontalAlign.Start}\n onKeyDown={this._handleKeydown}\n onClose={this._afterDropdownClose}\n onOpen={this._afterDropdownOpen}>\n <div className={`${this._rootClass}__popover-content`}>\n {this._dropdownItems.map((item, index) => (\n item.icon ? (\n <UDExLink\n key={index}\n data-index={index}\n id={`${item._id}-li`}\n onClick={this._onDropdownLinkPress}\n href={item.href}\n target={item.target}\n class={`${this._rootClass}__item ${this._rootClass}__item--with-icon ${this._rootClass}__item--hidden ${this._rootClass}__item--${index}`}\n icon={item.icon}\n accessibleName={item.textContent ?? undefined}\n data-ui5-stable={item.stableDomRef}>\n {item.textContent}\n </UDExLink>\n ) : item._isCurrentPageItem ? (\n <span\n key={index}\n id={`${item._id}-li`}\n className={`${this._rootClass}__item ${this._rootClass}__item--current ${this._rootClass}__item--hidden ${this._rootClass}__item--${index}`}\n accessible-name={item.accessibleName}\n data-ui5-stable={item.stableDomRef}>\n {item.textContent}\n </span>\n ) : (\n <UDExLink\n key={index}\n data-index={index}\n id={`${item._id}-li`}\n onClick={this._onDropdownLinkPress}\n href={item.href}\n target={item.target}\n class={`${this._rootClass}__item ${this._rootClass}__item--hidden ${this._rootClass}__item--${index}`}\n accessibleName={item.accessibleName}\n data-ui5-stable={item.stableDomRef}>\n {item.textContent}\n </UDExLink>\n )\n ))}\n </div>\n </UDExDropdown>\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import type Breadcrumbs from "./Breadcrumbs.js";
2
+ export default function BreadcrumbsTemplate(this: Breadcrumbs): import("@ui5/webcomponents-base").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
+ import UDExLink from "./Link.js";
3
+ import UDExButtonAccessibleRole from "./types/ButtonAccessibleRole.js";
4
+ import slimArrowDown from "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
5
+ import BreadcrumbsPopoverTemplate from "./BreadcrumbsPopoverTemplate.js";
6
+ export default function BreadcrumbsTemplate() {
7
+ const rootClass = "udex-breadcrumbs";
8
+ return (_jsxs(_Fragment, { children: [_jsx("nav", { class: `${this._rootClass} ui5-breadcrumbs-root`, "aria-label": this._accessibleNameText, children: _jsxs("ol", { onFocusIn: this._onfocusin, children: [_jsx("li", { class: `${this._rootClass}__arrow-wrapper ui5-breadcrumbs-dropdown-arrow-link-wrapper`, children: _jsx(UDExLink, { id: `udex-${this._id}-breadcrumbs__opener`, class: `${this._rootClass}__trigger ${this._triggerClass}`, onClick: this._toggleDropdown, "aria-label": this._dropdownArrowAccessibleNameText, accessibleRole: UDExButtonAccessibleRole.Button, icon: slimArrowDown, "aria-haspopup": "true" }) }), this._linksData.map(linkData => _jsx("li", { class: `${this._rootClass}__link-wrapper ui5-breadcrumbs-link-wrapper`, id: `${linkData._id}-link-wrapper`, children: !linkData._isCurrentPageItem && (_jsxs(_Fragment, { children: [_jsx("span", { className: `${this._rootClass}__separator`, "aria-hidden": "true" }), _jsx(UDExLink, { onClick: this._onLinkPress, id: `${linkData._id}-link`, class: `${rootClass}__item ${this._rootClass}__item--visible`, href: linkData.href, target: linkData.target, accessibleName: linkData._accessibleNameText, "data-ui5-stable": linkData.stableDomRef, children: linkData.innerText })] })) }))] }) }), BreadcrumbsPopoverTemplate.call(this)] }));
9
+ }
10
+ //# sourceMappingURL=BreadcrumbsTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbsTemplate.js","sourceRoot":"","sources":["../src/BreadcrumbsTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,wBAAwB,MAAM,iCAAiC,CAAC;AACvE,OAAO,aAAa,MAAM,kDAAkD,CAAC;AAC7E,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AAEzE,MAAM,CAAC,OAAO,UAAU,mBAAmB;IACzC,MAAM,SAAS,GAAG,kBAAkB,CAAC;IAErC,OAAO,CACL,8BACE,cACE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,uBAAuB,gBACpC,IAAI,CAAC,mBAAmB,YACpC,cAAI,SAAS,EAAE,IAAI,CAAC,UAAU,aAC5B,aAAI,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,6DAA6D,YACxF,KAAC,QAAQ,IACP,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,sBAAsB,EAC1C,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,aAAa,EAAE,EAC1D,OAAO,EAAE,IAAI,CAAC,eAAe,gBACjB,IAAI,CAAC,gCAAgC,EACjD,cAAc,EAAE,wBAAwB,CAAC,MAAM,EAC/C,IAAI,EAAE,aAAa,mBACL,MAAM,GACX,GACR,EACJ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAC9B,aACE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,6CAA6C,EACtE,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,eAAe,YACjC,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAC/B,8BACE,eAAM,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,aAAa,iBAAc,MAAM,GAAQ,EAC5E,KAAC,QAAQ,IACP,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,OAAO,EAC1B,KAAK,EAAE,GAAG,SAAS,UAAU,IAAI,CAAC,UAAU,iBAAiB,EAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,EACvB,cAAc,EAAE,QAAQ,CAAC,mBAAmB,qBAC3B,QAAQ,CAAC,YAAY,YACrC,QAAQ,CAAC,SAAS,GACV,IACV,CACJ,GACE,CACN,IACE,GACD,EACL,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IACrC,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import type Breadcrumbs from \"./Breadcrumbs.js\";\nimport UDExLink from \"./Link.js\";\nimport UDExButtonAccessibleRole from \"./types/ButtonAccessibleRole.js\";\nimport slimArrowDown from \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport BreadcrumbsPopoverTemplate from \"./BreadcrumbsPopoverTemplate.js\";\n\nexport default function BreadcrumbsTemplate(this: Breadcrumbs) {\n const rootClass = \"udex-breadcrumbs\";\n\n return (\n <>\n <nav\n class={`${this._rootClass} ui5-breadcrumbs-root`}\n aria-label={this._accessibleNameText}>\n <ol onFocusIn={this._onfocusin}>\n <li class={`${this._rootClass}__arrow-wrapper ui5-breadcrumbs-dropdown-arrow-link-wrapper`}>\n <UDExLink\n id={`udex-${this._id}-breadcrumbs__opener`}\n class={`${this._rootClass}__trigger ${this._triggerClass}`}\n onClick={this._toggleDropdown}\n aria-label={this._dropdownArrowAccessibleNameText}\n accessibleRole={UDExButtonAccessibleRole.Button}\n icon={slimArrowDown}\n aria-haspopup=\"true\">\n </UDExLink>\n </li>\n {this._linksData.map(linkData =>\n <li\n class={`${this._rootClass}__link-wrapper ui5-breadcrumbs-link-wrapper`}\n id={`${linkData._id}-link-wrapper`}>\n {!linkData._isCurrentPageItem && (\n <>\n <span className={`${this._rootClass}__separator`} aria-hidden=\"true\"></span>\n <UDExLink\n onClick={this._onLinkPress}\n id={`${linkData._id}-link`}\n class={`${rootClass}__item ${this._rootClass}__item--visible`}\n href={linkData.href}\n target={linkData.target}\n accessibleName={linkData._accessibleNameText}\n data-ui5-stable={linkData.stableDomRef}>\n {linkData.innerText}\n </UDExLink>\n </>\n )}\n </li>\n )}\n </ol>\n </nav>\n {BreadcrumbsPopoverTemplate.call(this)}\n </>\n );\n}\n"]}
@@ -141,8 +141,7 @@ let UDExFilterMenu = UDExFilterMenu_1 = class UDExFilterMenu extends UDExSearcha
141
141
  this._trigger = this.getTriggerButton();
142
142
  }
143
143
  handleSelectAll(e) {
144
- this.onFilterSelectAllHeaderPress(e);
145
- this.fireDecoratorEvent("select-all");
144
+ this.onSelectAllHeaderPress(e);
146
145
  }
147
146
  handleItemPress(e) {
148
147
  this.onItemPress(e);