@sapudex/web-components 2.3.0 → 2.4.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.
- package/.eslintignore +3 -0
- package/bundle.esm.js +2 -0
- package/cypress/fixtures/contact-numbers.ts +10 -0
- package/cypress/specs/Accordion.cy.tsx +24 -0
- package/cypress/specs/Contact.cy.tsx +92 -0
- package/cypress/specs/ContactItem.cy.tsx +56 -0
- package/cypress/support/commands.ts +31 -2
- package/cypress/support/component-imports.instrumented.ts +4 -0
- package/cypress/support/component-imports.src.ts +4 -0
- package/dist/Accordion.d.ts +7 -1
- package/dist/Accordion.js +3 -3
- package/dist/Accordion.js.map +1 -1
- package/dist/Assets.js +31 -0
- package/dist/Assets.js.map +1 -1
- package/dist/Contact.d.ts +102 -0
- package/dist/Contact.js +152 -0
- package/dist/Contact.js.map +1 -0
- package/dist/ContactItem.d.ts +67 -0
- package/dist/ContactItem.js +96 -0
- package/dist/ContactItem.js.map +1 -0
- package/dist/ContactItemTemplate.d.ts +2 -0
- package/dist/ContactItemTemplate.js +13 -0
- package/dist/ContactItemTemplate.js.map +1 -0
- package/dist/ContactTemplate.d.ts +4 -0
- package/dist/ContactTemplate.js +29 -0
- package/dist/ContactTemplate.js.map +1 -0
- package/dist/CountrySelector.d.ts +0 -2
- package/dist/CountrySelector.js +0 -4
- package/dist/CountrySelector.js.map +1 -1
- package/dist/Footer.d.ts +0 -1
- package/dist/Footer.js +7 -9
- package/dist/Footer.js.map +1 -1
- package/dist/List.d.ts +1 -1
- package/dist/List.js +1 -1
- package/dist/List.js.map +1 -1
- package/dist/MastheadItem.d.ts +1 -3
- package/dist/MastheadItem.js +6 -11
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +0 -1
- package/dist/MastheadMenu.js +2 -4
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +0 -1
- package/dist/MastheadProfileMenu.js +2 -4
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/SearchableListBase.js +5 -1
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +0 -1
- package/dist/SecondaryNavigation.js +2 -4
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/assets/{InputSuggestions-BgbbJ4tc.js → InputSuggestions-CYW_6A8K.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-onAnn1Tj.js → ListItemStandardExpandableTextTemplate-BDrgWGjT.js} +1 -1
- package/dist/assets/{bundle.esm-CwUfibNQ.js → bundle.esm-DRCvw6Ji.js} +203 -198
- package/dist/assets/messagebundle_en-BK8-Eyic.js +1 -0
- package/dist/css/themes/Accordion.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/Contact.css +1 -0
- package/dist/css/themes/ContactItem.css +1 -0
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/custom-elements-internal.json +482 -100
- package/dist/custom-elements.json +444 -85
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
- package/dist/generated/i18n/i18n-defaults.js +3 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/AccordionTemplate.lit.js +4 -2
- package/dist/generated/templates/AccordionTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.js +25 -22
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Accordion.css.d.ts +1 -1
- package/dist/generated/themes/Accordion.css.js +1 -1
- package/dist/generated/themes/Accordion.css.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Contact.css.d.ts +2 -0
- package/dist/generated/themes/Contact.css.js +8 -0
- package/dist/generated/themes/Contact.css.js.map +1 -0
- package/dist/generated/themes/ContactItem.css.d.ts +2 -0
- package/dist/generated/themes/ContactItem.css.js +8 -0
- package/dist/generated/themes/ContactItem.css.js.map +1 -0
- package/dist/generated/themes/Modal.css.d.ts +1 -1
- package/dist/generated/themes/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/messagebundle.properties +5 -0
- package/dist/messagebundle_en.properties +3 -0
- package/dist/types/ContactItemIcon.d.ts +6 -0
- package/dist/types/ContactItemIcon.js +8 -0
- package/dist/types/ContactItemIcon.js.map +1 -0
- package/dist/utils/parseArrayFromString.d.ts +2 -0
- package/dist/utils/parseArrayFromString.js +5 -0
- package/dist/utils/parseArrayFromString.js.map +1 -0
- package/dist/vscode.html-custom-data.json +84 -1
- package/dist/web-types.json +172 -2
- package/package.json +2 -2
- package/src/Accordion.hbs +13 -9
- package/src/Accordion.ts +7 -4
- package/src/Assets.ts +29 -0
- package/src/Contact.ts +200 -0
- package/src/ContactItem.ts +119 -0
- package/src/ContactItemTemplate.tsx +22 -0
- package/src/ContactTemplate.tsx +105 -0
- package/src/CountrySelector.ts +0 -5
- package/src/Footer.ts +7 -10
- package/src/List.ts +1 -1
- package/src/MastheadItem.hbs +8 -0
- package/src/MastheadItem.ts +8 -16
- package/src/MastheadMenu.ts +2 -5
- package/src/MastheadProfileMenu.ts +2 -5
- package/src/SearchableListBase.ts +6 -1
- package/src/SecondaryNavigation.ts +3 -5
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/AccordionTemplate.lit.ts +4 -2
- package/src/generated/templates/MastheadItemTemplate.lit.ts +25 -22
- package/src/generated/themes/Accordion.css.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/Contact.css.ts +9 -0
- package/src/generated/themes/ContactItem.css.ts +9 -0
- package/src/generated/themes/Modal.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +5 -0
- package/src/i18n/messagebundle_en.properties +3 -0
- package/src/themes/Accordion.css +1 -0
- package/src/themes/Button.css +7 -1
- package/src/themes/Contact.css +184 -0
- package/src/themes/ContactItem.css +44 -0
- package/src/themes/Modal.css +4 -4
- package/src/types/ContactItemIcon.ts +7 -0
- package/src/utils/parseArrayFromString.ts +5 -0
- package/dist/assets/messagebundle_en-CVKgy_9L.js +0 -1
package/.eslintignore
CHANGED
package/bundle.esm.js
CHANGED
|
@@ -32,6 +32,8 @@ import "./dist/BreadcrumbsItem.js";
|
|
|
32
32
|
import "./dist/Button.js";
|
|
33
33
|
import "./dist/Carousel.js";
|
|
34
34
|
import "./dist/Checkbox.js";
|
|
35
|
+
import "./dist/Contact.js";
|
|
36
|
+
import "./dist/ContactItem.js";
|
|
35
37
|
import "./dist/ControlButton.js";
|
|
36
38
|
import "./dist/CountrySelector.js";
|
|
37
39
|
import "./dist/DatePicker.js";
|
|
@@ -18,6 +18,15 @@ const defaultAccordion = <UDExAccordion headline="Test headline" id="accordionCo
|
|
|
18
18
|
</UDExAccordionItem>
|
|
19
19
|
</UDExAccordion>
|
|
20
20
|
|
|
21
|
+
const simpleAccordion = <UDExAccordion hide-expand-button id="accordionComponent">
|
|
22
|
+
<UDExAccordionItem label="Some label for item 1">
|
|
23
|
+
<div>some content<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet aperiam aut eum ipsum natus necessitatibus neque officiis repellendus totam voluptatum!</p></div>
|
|
24
|
+
</UDExAccordionItem>
|
|
25
|
+
<UDExAccordionItem label="Some label for item 2">
|
|
26
|
+
<div>some content<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet aperiam aut eum ipsum natus necessitatibus neque officiis repellendus totam voluptatum!</p></div>
|
|
27
|
+
</UDExAccordionItem>
|
|
28
|
+
</UDExAccordion>
|
|
29
|
+
|
|
21
30
|
describe("Accordion", () => {
|
|
22
31
|
beforeEach(() => {
|
|
23
32
|
cy.mount(defaultAccordion)
|
|
@@ -138,4 +147,19 @@ describe("Accordion", () => {
|
|
|
138
147
|
cy.get("[udex-accordion]").shadow().find(".udex-accordion__btn").click()
|
|
139
148
|
cy.get("@toggleItems").should("have.been.called")
|
|
140
149
|
});
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
describe("Accordion - simplified", () => {
|
|
153
|
+
beforeEach(() => {
|
|
154
|
+
cy.mount(simpleAccordion)
|
|
155
|
+
})
|
|
156
|
+
|
|
157
|
+
it("does not render empty headline", () => {
|
|
158
|
+
cy.get("[udex-accordion]").shadow().find(".udex-accordion__headline").should("not.exist");
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
it("hide expand all button", () => {
|
|
163
|
+
cy.get("[udex-accordion]").shadow().find(".udex-accordion__btn").should("not.exist");
|
|
164
|
+
});
|
|
141
165
|
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { UDExContact, UDExContactItem } from "../support/component-imports.js";
|
|
2
|
+
import { contactNumbers } from "../fixtures/contact-numbers.js";
|
|
3
|
+
|
|
4
|
+
const contactComponent = <UDExContact
|
|
5
|
+
button-text="Contact us"
|
|
6
|
+
local-country-numbers-link="local-country-numbers-link-href"
|
|
7
|
+
contact-numbers={JSON.stringify(contactNumbers)}
|
|
8
|
+
>
|
|
9
|
+
<UDExContactItem label="Call me now" href="www.sap.com" icon="Headset">SAP can call you to discuss any questions you have.</UDExContactItem>
|
|
10
|
+
<UDExContactItem label="Chat now" icon="Discussion-2">Get live help and chat with an SAP representative.</UDExContactItem>
|
|
11
|
+
<UDExContactItem label="Contact us" href="www.sap.com" icon="Email">E-mail us with comments, questions or feedback.</UDExContactItem>
|
|
12
|
+
</UDExContact>
|
|
13
|
+
|
|
14
|
+
describe("Contact component", () => {
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
cy.mount(contactComponent)
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it("component is correctly rendered", () => {
|
|
20
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact").should("be.visible");
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it("renders the text for component", () => {
|
|
24
|
+
cy.get("[udex-contact]").shadow().find("[udex-button]").should("have.text", "Contact us");
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it("test if the popover is closed after pressing \"Escape\" key", () => {
|
|
28
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact__button").click().realPress("Escape");
|
|
29
|
+
cy.get("[udex-contact]").shadow().find("[ui5-responsive-popover]").should("not.visible");
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
describe("Desktop tests", () => {
|
|
33
|
+
beforeEach(() => {
|
|
34
|
+
cy.viewport(1920, 1080);
|
|
35
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact__button").click();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("renders the popover after clicking the button opener", () => {
|
|
39
|
+
cy.get("[udex-contact]").shadow().find("[ui5-responsive-popover]").should("be.visible");
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("renders the popover after clicking the button opener", () => {
|
|
43
|
+
cy.get("[udex-contact]").shadow().find("[ui5-responsive-popover]").should("be.visible");
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("renders right amount of contact items", () => {
|
|
47
|
+
cy.get("[udex-contact]").find("udex-contact-item").should("have.length", 3);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it("renders the title of phone section", () => {
|
|
51
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact__call-us-title").should("have.text", "Call us today!");
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("renders the text of complete list section", () => {
|
|
55
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact__complete-list").should("have.text", "Complete list of local country numbers");
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("renders the href of complete list link", () => {
|
|
59
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact__local-country-link").should("have.attr", "href", "local-country-numbers-link-href");
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it("renders the list of phone numbers", () => {
|
|
63
|
+
const numbers = cy.get("[udex-contact]").shadow().find(".udex-contact__number-wrapper");
|
|
64
|
+
numbers.each(($item, index) => {
|
|
65
|
+
const currentContactNumber = contactNumbers[index];
|
|
66
|
+
const country = $item.find(".udex-contact__country").text();
|
|
67
|
+
const number = $item.find(".udex-contact__number").text();
|
|
68
|
+
expect(country).to.include(currentContactNumber.country);
|
|
69
|
+
expect(number).to.include(currentContactNumber.number);
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
describe("Mobile tests", () => {
|
|
75
|
+
beforeEach(() => {
|
|
76
|
+
cy.simulateDevice();
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("renders the close mobile button", () => {
|
|
80
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact__button").click();
|
|
81
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact__close-btn").should("be.visible");
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
it("renders the tooltip for the opener button", () => {
|
|
85
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact__button").should("have.attr", "tooltip", "Contact us");
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it("renders the accessibleName for the opener button", () => {
|
|
89
|
+
cy.get("[udex-contact]").shadow().find(".udex-contact__button").should("have.attr", "accessible-name", "Contact us");
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { UDExContactItem } from "../support/component-imports.js";
|
|
2
|
+
|
|
3
|
+
const contactItemComponent = <UDExContactItem label="Call me now" href="www.sap.com" icon="Headset">SAP can call you to discuss any questions you have.</UDExContactItem>
|
|
4
|
+
|
|
5
|
+
describe("Contact Item component", () => {
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
cy.mount(contactItemComponent)
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
it("component is correctly rendered", () => {
|
|
11
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item").should("be.visible");
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it("renders the text for the item", () => {
|
|
15
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item__description").should("be.visible");
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it("renders the link text for the item", () => {
|
|
19
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item__link").should("have.text", "Call me now");
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it("renders the href for the link", () => {
|
|
23
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item__link").should("have.attr", "href", "www.sap.com");
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it("renders the icon for the item", () => {
|
|
27
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item__icon").should("be.visible");
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("renders the name for the icon", () => {
|
|
31
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item__icon").should("have.attr", "name", "headset");
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it("test the contact item has custom \"item-click\" event with mouse click on the link", () => {
|
|
35
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item__link")
|
|
36
|
+
.then($link => {
|
|
37
|
+
$link.get(0).addEventListener("item-click", event => {
|
|
38
|
+
expect(event.type).to.equal("item-click");
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item__link").click();
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it("tests the \"item-click\" event is prevented when prevent default is called", () => {
|
|
46
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item__link")
|
|
47
|
+
.then($link => {
|
|
48
|
+
$link.get(0).addEventListener("item-click", event => {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
cy.get("[udex-contact-item]").shadow().find(".udex-contact-item__link").click();
|
|
54
|
+
cy.url().should("not.include", "www.sap.com");
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
// }
|
|
37
37
|
// }
|
|
38
38
|
|
|
39
|
-
import { mount } from '@ui5/cypress-ct-ui5-webc'
|
|
39
|
+
import { mount } from '@ui5/cypress-ct-ui5-webc';
|
|
40
|
+
import { internals, isPhone } from "@ui5/webcomponents-base/dist/Device.js";
|
|
40
41
|
import "cypress-real-events";
|
|
41
42
|
|
|
42
43
|
const realEventCmdCallback = (originalFn: any, element: any, ...args: any) => {
|
|
@@ -52,6 +53,14 @@ const realEventCmdCallback = (originalFn: any, element: any, ...args: any) => {
|
|
|
52
53
|
});
|
|
53
54
|
};
|
|
54
55
|
|
|
56
|
+
const deviceFuncForStub: Record<SimulationDevices, keyof typeof internals> = {
|
|
57
|
+
phone: "_isPhone",
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const deviceName: Record<SimulationDevices, Cypress.ViewportPreset> = {
|
|
61
|
+
phone: "iphone-x",
|
|
62
|
+
};
|
|
63
|
+
|
|
55
64
|
const commands = [
|
|
56
65
|
"realClick",
|
|
57
66
|
"realHover",
|
|
@@ -66,12 +75,32 @@ commands.forEach(cmd => {
|
|
|
66
75
|
Cypress.Commands.overwrite(cmd as any, realEventCmdCallback)
|
|
67
76
|
});
|
|
68
77
|
|
|
78
|
+
type SimulationDevices = "phone"
|
|
79
|
+
|
|
69
80
|
declare global {
|
|
70
81
|
namespace Cypress {
|
|
71
82
|
interface Chainable {
|
|
72
83
|
mount: typeof mount;
|
|
84
|
+
simulateDevice(device?: SimulationDevices): Chainable<void>
|
|
73
85
|
}
|
|
74
86
|
}
|
|
75
87
|
}
|
|
76
88
|
|
|
77
|
-
Cypress.Commands.add('mount', mount)
|
|
89
|
+
Cypress.Commands.add('mount', mount);
|
|
90
|
+
|
|
91
|
+
Cypress.Commands.add("simulateDevice", (device: SimulationDevices = "phone") => {
|
|
92
|
+
cy.stub(internals, deviceFuncForStub[device])
|
|
93
|
+
.callsFake(() => {
|
|
94
|
+
return true;
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
if (device === "phone") {
|
|
98
|
+
cy.stub(internals, "windows").value(false);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
cy.viewport(deviceName[device]);
|
|
102
|
+
|
|
103
|
+
cy.wrap({ isPhone })
|
|
104
|
+
.invoke("isPhone")
|
|
105
|
+
.should("be.true");
|
|
106
|
+
});
|
|
@@ -41,6 +41,8 @@ import UDExRatingIndicator from "../../instrumented/RatingIndicator.js";
|
|
|
41
41
|
import UDExSelectBoxSelectAll from "../../instrumented/SelectBoxSelectAll.js";
|
|
42
42
|
import UDExSelectBoxGroupHeader from "../../instrumented/SelectBoxGroupHeader.js";
|
|
43
43
|
import UDExSelectBoxItem from "../../instrumented/SelectBoxItem.js";
|
|
44
|
+
import UDExContact from "../../instrumented/Contact.js";
|
|
45
|
+
import UDExContactItem from "../../instrumented/ContactItem.js";
|
|
44
46
|
import UDExEventRibbon from "../../instrumented/EventRibbon.js";
|
|
45
47
|
|
|
46
48
|
export {
|
|
@@ -52,6 +54,8 @@ export {
|
|
|
52
54
|
UDExBreadcrumbs,
|
|
53
55
|
UDExBreadcrumbsItem,
|
|
54
56
|
UDExButton,
|
|
57
|
+
UDExContact,
|
|
58
|
+
UDExContactItem,
|
|
55
59
|
UDExCountrySelector,
|
|
56
60
|
UDExEventRibbon,
|
|
57
61
|
UDExFooter,
|
|
@@ -41,6 +41,8 @@ import UDExRatingIndicator from "../../src/RatingIndicator.js";
|
|
|
41
41
|
import UDExSelectBoxSelectAll from "../../src/SelectBoxSelectAll.js";
|
|
42
42
|
import UDExSelectBoxGroupHeader from "../../src/SelectBoxGroupHeader.js";
|
|
43
43
|
import UDExSelectBoxItem from "../../src/SelectBoxItem.js";
|
|
44
|
+
import UDExContact from "../../instrumented/Contact.js";
|
|
45
|
+
import UDExContactItem from "../../instrumented/ContactItem.js";
|
|
44
46
|
import UDExEventRibbon from "../../src/EventRibbon.js";
|
|
45
47
|
|
|
46
48
|
export {
|
|
@@ -52,6 +54,8 @@ export {
|
|
|
52
54
|
UDExBreadcrumbs,
|
|
53
55
|
UDExBreadcrumbsItem,
|
|
54
56
|
UDExButton,
|
|
57
|
+
UDExContact,
|
|
58
|
+
UDExContactItem,
|
|
55
59
|
UDExCountrySelector,
|
|
56
60
|
UDExEventRibbon,
|
|
57
61
|
UDExFooter,
|
package/dist/Accordion.d.ts
CHANGED
|
@@ -34,6 +34,13 @@ declare class UDExAccordion extends UI5Element {
|
|
|
34
34
|
* @private
|
|
35
35
|
*/
|
|
36
36
|
_allExpanded: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Defines if expandAll button should be displayed.
|
|
39
|
+
*
|
|
40
|
+
* @default false
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
hideExpandButton: boolean;
|
|
37
44
|
/**
|
|
38
45
|
* Defines direction of the accordion component.
|
|
39
46
|
*
|
|
@@ -62,7 +69,6 @@ declare class UDExAccordion extends UI5Element {
|
|
|
62
69
|
get items(): {
|
|
63
70
|
item: HTMLElement;
|
|
64
71
|
}[];
|
|
65
|
-
get headlineText(): string;
|
|
66
72
|
toggleAllHandler(e: Event): void;
|
|
67
73
|
toggleOpenItems(isOpen: boolean): void;
|
|
68
74
|
toggleKeyAllHandler(e: KeyboardEvent): void;
|
package/dist/Accordion.js
CHANGED
|
@@ -59,9 +59,6 @@ let UDExAccordion = UDExAccordion_1 = class UDExAccordion extends UI5Element {
|
|
|
59
59
|
};
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
-
get headlineText() {
|
|
63
|
-
return this.headline ? this.headline : "Default headline";
|
|
64
|
-
}
|
|
65
62
|
toggleAllHandler(e) {
|
|
66
63
|
e.preventDefault();
|
|
67
64
|
this._allExpanded = !this._allExpanded;
|
|
@@ -125,6 +122,9 @@ let UDExAccordion = UDExAccordion_1 = class UDExAccordion extends UI5Element {
|
|
|
125
122
|
__decorate([
|
|
126
123
|
property({ type: Boolean, noAttribute: true })
|
|
127
124
|
], UDExAccordion.prototype, "_allExpanded", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
property({ type: Boolean })
|
|
127
|
+
], UDExAccordion.prototype, "hideExpandButton", void 0);
|
|
128
128
|
__decorate([
|
|
129
129
|
property({ type: String })
|
|
130
130
|
], UDExAccordion.prototype, "_direction", void 0);
|
package/dist/Accordion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../src/Accordion.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,+CAA+C,CAAC;AACvD,OAAO,EACL,OAAO,EACP,OAAO,GACR,MAAM,sCAAsC,CAAC;AAC9C,OAAO,iBAAiB,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,SAAS;AACT,OAAO,YAAY,MAAM,qCAAqC,CAAC;AAM/D;;;;;;;;;;;;;;;;;;GAkBG;AAeH,IAAM,aAAa,qBAAnB,MAAM,aAAc,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../src/Accordion.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 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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport \"@ui5/webcomponents-icons/dist/feeder-arrow.js\";\nimport {\n isEnter,\n isSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport AccordionTemplate from \"./generated/templates/AccordionTemplate.lit.js\";\nimport { COLLAPSE_ALL, EXPAND_ALL } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExButton from \"./Button.js\";\n\n// Styles\nimport AccordionCss from \"./generated/themes/Accordion.css.js\";\nimport type UDExAccordionItem from \"./AccordionItem.js\";\n\ntype UDExAccordionToggleItemsEventDetail = {\n isOpen: boolean\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-accordion</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Accordion.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion\n * @public\n */\n@customElement({\n tag: \"udex-accordion\",\n renderer: litRender,\n styles: AccordionCss,\n template: AccordionTemplate,\n dependencies: [UDExButton],\n})\n\n/**\n * Triggered when the user clicks on the Expand/Collapse All button..\n *\n * @public\n */\n@event(\"toggle-items\", { bubbles: true })\nclass UDExAccordion extends UI5Element {\n eventDetails!: {\n \"toggle-items\": UDExAccordionToggleItemsEventDetail,\n };\n /**\n * Used internally to store expand/collapse button state.\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true }) _allExpanded!: boolean;\n /**\n * Defines if expandAll button should be displayed.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean }) hideExpandButton!: boolean;\n\n /**\n * Defines direction of the accordion component.\n *\n * @private\n */\n @property({ type: String }) _direction?: string;\n\n /**\n * Defines the headline text of the accordion component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String }) headline!: string;\n\n /**\n * Slot for accordion items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true }) _items!: Array<UDExAccordionItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _activeItemIndex: number;\n\n constructor() {\n super();\n this._allExpanded = false;\n this._activeItemIndex = -1;\n }\n\n get toggleAllText(): string {\n return this._allExpanded\n ? UDExAccordion.i18nBundle.getText(COLLAPSE_ALL)\n : UDExAccordion.i18nBundle.getText(EXPAND_ALL);\n }\n\n get isExpanded(): boolean {\n return this._allExpanded;\n }\n\n get items(): {item: HTMLElement}[] {\n return this._items.map(el => {\n return {\n item: el,\n };\n });\n }\n\n toggleAllHandler(e: Event) {\n e.preventDefault();\n this._allExpanded = !this._allExpanded;\n this.toggleOpenItems(this._allExpanded);\n this.fireDecoratorEvent(\"toggle-items\", { isOpen: this._allExpanded });\n }\n\n toggleOpenItems(isOpen: boolean) {\n this._items.forEach(item => {\n item.expanded = isOpen;\n });\n }\n\n toggleKeyAllHandler(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n this.toggleAllHandler(e);\n }\n }\n\n keydownHandler(e: KeyboardEvent) {\n if (e.key !== \"Tab\") {\n e.preventDefault();\n }\n const len = this._items.length;\n const focusOnItem = (itemIndex: number) => {\n const item = this._items[itemIndex];\n this._activeItemIndex = itemIndex;\n (item?.shadowRoot?.querySelector(\".udex-accordion-item__header\") as HTMLElement)?.focus();\n };\n\n switch (e.key) {\n case \"Home\":\n focusOnItem(0);\n break;\n case \"End\":\n focusOnItem(len - 1);\n break;\n case \"ArrowUp\":\n if (this._activeItemIndex > 0) {\n focusOnItem(this._activeItemIndex - 1);\n } else if (this._activeItemIndex === 0) {\n focusOnItem(len - 1);\n }\n break;\n case \"ArrowDown\":\n if (this._activeItemIndex < len - 1) {\n focusOnItem(this._activeItemIndex + 1);\n } else if (this._activeItemIndex === len - 1) {\n focusOnItem(0);\n }\n break;\n default:\n break;\n }\n }\n\n itemFocusHandler(e: CustomEvent) {\n const target = e.target as UDExAccordionItem;\n if (target) {\n this._activeItemIndex = this._items?.indexOf(target) ?? -1;\n }\n }\n}\n\nUDExAccordion.define();\n\nexport default UDExAccordion;\n"]}
|
package/dist/Assets.js
CHANGED
|
@@ -6,4 +6,35 @@ import { registerCustomThemePropertiesLoader } from "@ui5/webcomponents-base/dis
|
|
|
6
6
|
import variablesOverwrite from "./AssetsVariables.js";
|
|
7
7
|
const customThemeLoader = () => Promise.resolve(variablesOverwrite);
|
|
8
8
|
registerCustomThemePropertiesLoader("@ui5/webcomponents", "sap_glow", customThemeLoader);
|
|
9
|
+
(function checkThemeCSSLink() {
|
|
10
|
+
if (typeof document === "undefined") {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const runCheck = () => {
|
|
14
|
+
const cssLoaded = Array.from(document.styleSheets).some(sheet => {
|
|
15
|
+
try {
|
|
16
|
+
if (sheet.href && sheet.href.includes("css_variables.css")) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return Array.from(sheet.cssRules || []).some(rule => rule.cssText.includes(".sapThemeMetaData-Base-baseLib"));
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
if (!cssLoaded) {
|
|
26
|
+
const msg = `Required theme CSS not found.
|
|
27
|
+
Please add:
|
|
28
|
+
<link rel="stylesheet" href="path/to/@sapudex/design-tokens/dist/themes/sap_glow/css_variables.css">
|
|
29
|
+
or import '@sapudex/design-tokens/dist/themes/sap_glow/css_variables.css'`;
|
|
30
|
+
console.warn(msg);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
if (document.readyState === "loading") {
|
|
34
|
+
document.addEventListener("DOMContentLoaded", runCheck);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
runCheck();
|
|
38
|
+
}
|
|
39
|
+
})();
|
|
9
40
|
//# sourceMappingURL=Assets.js.map
|
package/dist/Assets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Assets.js","sourceRoot":"","sources":["../src/Assets.ts"],"names":[],"mappings":"AAAA,OAAO,2CAA2C,CAAC,CAAC,UAAU;AAE9D,oCAAoC;AACpC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,kCAAkC,CAAC;AAE1C,OAAO,EAAE,mCAAmC,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEpE,mCAAmC,CAAC,oBAAoB,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC","sourcesContent":["import \"@ui5/webcomponents-theming/dist/Assets.js\"; // Theming\n\n// own web-components package assets\nimport \"./generated/json-imports/Themes.js\";\nimport \"./generated/json-imports/i18n.js\";\n\nimport { registerCustomThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/AssetRegistry.js\";\nimport variablesOverwrite from \"./AssetsVariables.js\";\n\nconst customThemeLoader = () => Promise.resolve(variablesOverwrite);\n\nregisterCustomThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_glow\", customThemeLoader);\n"]}
|
|
1
|
+
{"version":3,"file":"Assets.js","sourceRoot":"","sources":["../src/Assets.ts"],"names":[],"mappings":"AAAA,OAAO,2CAA2C,CAAC,CAAC,UAAU;AAE9D,oCAAoC;AACpC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,kCAAkC,CAAC;AAE1C,OAAO,EAAE,mCAAmC,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEpE,mCAAmC,CAAC,oBAAoB,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAEzF,CAAC,SAAS,iBAAiB;IACzB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9D,IAAI,CAAC;gBACH,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAAC,OAAO,IAAI,CAAC;gBAAC,CAAC;gBAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAChH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,GAAG,GAAG;;;0EAGwD,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,QAAQ,EAAE,CAAC;IACb,CAAC;AACH,CAAC,CAAC,EAAE,CAAC","sourcesContent":["import \"@ui5/webcomponents-theming/dist/Assets.js\"; // Theming\n\n// own web-components package assets\nimport \"./generated/json-imports/Themes.js\";\nimport \"./generated/json-imports/i18n.js\";\n\nimport { registerCustomThemePropertiesLoader } from \"@ui5/webcomponents-base/dist/AssetRegistry.js\";\nimport variablesOverwrite from \"./AssetsVariables.js\";\n\nconst customThemeLoader = () => Promise.resolve(variablesOverwrite);\n\nregisterCustomThemePropertiesLoader(\"@ui5/webcomponents\", \"sap_glow\", customThemeLoader);\n\n(function checkThemeCSSLink() {\n if (typeof document === \"undefined\") { return; }\n\n const runCheck = () => {\n const cssLoaded = Array.from(document.styleSheets).some(sheet => {\n try {\n if (sheet.href && sheet.href.includes(\"css_variables.css\")) { return true; }\n return Array.from(sheet.cssRules || []).some(rule => rule.cssText.includes(\".sapThemeMetaData-Base-baseLib\"));\n } catch {\n return false;\n }\n });\n\n if (!cssLoaded) {\n const msg = `Required theme CSS not found.\nPlease add:\n<link rel=\"stylesheet\" href=\"path/to/@sapudex/design-tokens/dist/themes/sap_glow/css_variables.css\">\nor import '@sapudex/design-tokens/dist/themes/sap_glow/css_variables.css'`;\n console.warn(msg);\n }\n };\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", runCheck);\n } else {\n runCheck();\n }\n})();\n"]}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type UDExContactItem from "./ContactItem.js";
|
|
3
|
+
import type UI5ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
|
|
4
|
+
import type I18nBundle from "@ui5/webcomponents-base/i18nBundle.js";
|
|
5
|
+
export type ContactNumber = {
|
|
6
|
+
number: string;
|
|
7
|
+
country: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @class
|
|
11
|
+
*
|
|
12
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
13
|
+
*
|
|
14
|
+
*
|
|
15
|
+
* <h3>Usage</h3>
|
|
16
|
+
*
|
|
17
|
+
* For the <code>udex-contact</code>
|
|
18
|
+
* <h3>ES6 Module Import</h3>
|
|
19
|
+
*
|
|
20
|
+
* <code>import "@sapudex/web-components/dist/Contact.js";</code>
|
|
21
|
+
*
|
|
22
|
+
* @constructor
|
|
23
|
+
* @extends UI5Element
|
|
24
|
+
* @tagname udex-contact
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
declare class UDExContact extends UI5Element {
|
|
28
|
+
/**
|
|
29
|
+
* Defines the <code>text</code> for the contact button.
|
|
30
|
+
*
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
buttonText: string;
|
|
34
|
+
/**
|
|
35
|
+
* List of the contact numbers
|
|
36
|
+
*
|
|
37
|
+
* @default "[]"
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
40
|
+
contactNumbers: string;
|
|
41
|
+
/**
|
|
42
|
+
* Defines the local country numbers link's href
|
|
43
|
+
*
|
|
44
|
+
* @default ""
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
localCountryNumbersLink: string;
|
|
48
|
+
/**
|
|
49
|
+
* Defines if the initial focus should be prevented.
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
preventInitialFocus: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Defines if the focus should be returned to the previously focused element.
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
preventFocusRestore: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Defines the accessible name of the component.
|
|
60
|
+
* @default undefined
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
accessibleName?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Defines the IDs of the elements that label the component.
|
|
66
|
+
* @default undefined
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
accessibleNameRef?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Slot for list items.
|
|
72
|
+
*
|
|
73
|
+
* @slot items
|
|
74
|
+
* @public
|
|
75
|
+
*/
|
|
76
|
+
items: Array<UDExContactItem>;
|
|
77
|
+
/**
|
|
78
|
+
* Defines the mobile mode for component
|
|
79
|
+
*
|
|
80
|
+
* @private
|
|
81
|
+
*/
|
|
82
|
+
_isMobileMode: boolean;
|
|
83
|
+
_screenResizeHandler: () => void;
|
|
84
|
+
_screenResizeHandlerAttached?: boolean;
|
|
85
|
+
static i18nBundle: I18nBundle;
|
|
86
|
+
constructor();
|
|
87
|
+
onEnterDOM(): void;
|
|
88
|
+
onExitDOM(): void;
|
|
89
|
+
_openPopover(): void;
|
|
90
|
+
_closePopover(): void;
|
|
91
|
+
_screenResize(): void;
|
|
92
|
+
_attachScreenResizeHandler(): void;
|
|
93
|
+
_detachScreenResizeHandler(): void;
|
|
94
|
+
get _contactNumbersArray(): ContactNumber[];
|
|
95
|
+
get _responsivePopover(): UI5ResponsivePopover;
|
|
96
|
+
get _completeListTitle(): string;
|
|
97
|
+
get _localCountryTitle(): string;
|
|
98
|
+
get _numbersTitle(): string;
|
|
99
|
+
get _contactUsTitle(): string;
|
|
100
|
+
get _hasNumbersList(): boolean;
|
|
101
|
+
}
|
|
102
|
+
export default UDExContact;
|