@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/dist/Contact.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var UDExContact_1;
|
|
8
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
12
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
13
|
+
import ContactTemplate from "./ContactTemplate.js";
|
|
14
|
+
import parseArrayFromString from "./utils/parseArrayFromString.js";
|
|
15
|
+
import { LOCAL_COUNTRY_NAMES, COMPLETE_LIST_OF, CALL_US_TODAY, CONTACT_US, } from "./generated/i18n/i18n-defaults.js";
|
|
16
|
+
import i18n from "@ui5/webcomponents-base/decorators/i18n.js";
|
|
17
|
+
// Styles
|
|
18
|
+
import ContactCss from "./generated/themes/Contact.css.js";
|
|
19
|
+
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
20
|
+
/**
|
|
21
|
+
* @class
|
|
22
|
+
*
|
|
23
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
24
|
+
*
|
|
25
|
+
*
|
|
26
|
+
* <h3>Usage</h3>
|
|
27
|
+
*
|
|
28
|
+
* For the <code>udex-contact</code>
|
|
29
|
+
* <h3>ES6 Module Import</h3>
|
|
30
|
+
*
|
|
31
|
+
* <code>import "@sapudex/web-components/dist/Contact.js";</code>
|
|
32
|
+
*
|
|
33
|
+
* @constructor
|
|
34
|
+
* @extends UI5Element
|
|
35
|
+
* @tagname udex-contact
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
let UDExContact = UDExContact_1 = class UDExContact extends UI5Element {
|
|
39
|
+
constructor() {
|
|
40
|
+
super();
|
|
41
|
+
/**
|
|
42
|
+
* List of the contact numbers
|
|
43
|
+
*
|
|
44
|
+
* @default "[]"
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
this.contactNumbers = "";
|
|
48
|
+
/**
|
|
49
|
+
* Defines the local country numbers link's href
|
|
50
|
+
*
|
|
51
|
+
* @default ""
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
this.localCountryNumbersLink = "";
|
|
55
|
+
/**
|
|
56
|
+
* Defines the mobile mode for component
|
|
57
|
+
*
|
|
58
|
+
* @private
|
|
59
|
+
*/
|
|
60
|
+
this._isMobileMode = BreakpointUtils.isAtMost("M");
|
|
61
|
+
this._screenResizeHandler = this._screenResize.bind(this);
|
|
62
|
+
}
|
|
63
|
+
onEnterDOM() {
|
|
64
|
+
this._attachScreenResizeHandler();
|
|
65
|
+
}
|
|
66
|
+
onExitDOM() {
|
|
67
|
+
this._detachScreenResizeHandler();
|
|
68
|
+
}
|
|
69
|
+
_openPopover() {
|
|
70
|
+
this._responsivePopover.open = !this._responsivePopover.open;
|
|
71
|
+
}
|
|
72
|
+
_closePopover() {
|
|
73
|
+
this._responsivePopover.open = false;
|
|
74
|
+
}
|
|
75
|
+
_screenResize() {
|
|
76
|
+
this._isMobileMode = BreakpointUtils.isAtMost("M");
|
|
77
|
+
}
|
|
78
|
+
_attachScreenResizeHandler() {
|
|
79
|
+
if (!this._screenResizeHandlerAttached) {
|
|
80
|
+
window.addEventListener("resize", this._screenResizeHandler);
|
|
81
|
+
this._screenResizeHandlerAttached = true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
_detachScreenResizeHandler() {
|
|
85
|
+
if (this._screenResizeHandlerAttached) {
|
|
86
|
+
window.removeEventListener("resize", this._screenResizeHandler);
|
|
87
|
+
this._screenResizeHandlerAttached = false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
get _contactNumbersArray() {
|
|
91
|
+
return parseArrayFromString(this.contactNumbers);
|
|
92
|
+
}
|
|
93
|
+
get _responsivePopover() {
|
|
94
|
+
return this.shadowRoot.querySelector(".udex-contact__popover");
|
|
95
|
+
}
|
|
96
|
+
get _completeListTitle() {
|
|
97
|
+
return `${UDExContact_1.i18nBundle.getText(COMPLETE_LIST_OF)} `;
|
|
98
|
+
}
|
|
99
|
+
get _localCountryTitle() {
|
|
100
|
+
return UDExContact_1.i18nBundle.getText(LOCAL_COUNTRY_NAMES);
|
|
101
|
+
}
|
|
102
|
+
get _numbersTitle() {
|
|
103
|
+
return UDExContact_1.i18nBundle.getText(CALL_US_TODAY);
|
|
104
|
+
}
|
|
105
|
+
get _contactUsTitle() {
|
|
106
|
+
return UDExContact_1.i18nBundle.getText(CONTACT_US);
|
|
107
|
+
}
|
|
108
|
+
get _hasNumbersList() {
|
|
109
|
+
return this._contactNumbersArray.length > 0;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
__decorate([
|
|
113
|
+
property({ type: String })
|
|
114
|
+
], UDExContact.prototype, "buttonText", void 0);
|
|
115
|
+
__decorate([
|
|
116
|
+
property({ type: String })
|
|
117
|
+
], UDExContact.prototype, "contactNumbers", void 0);
|
|
118
|
+
__decorate([
|
|
119
|
+
property({ type: String })
|
|
120
|
+
], UDExContact.prototype, "localCountryNumbersLink", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
property({ type: Boolean })
|
|
123
|
+
], UDExContact.prototype, "preventInitialFocus", void 0);
|
|
124
|
+
__decorate([
|
|
125
|
+
property({ type: Boolean })
|
|
126
|
+
], UDExContact.prototype, "preventFocusRestore", void 0);
|
|
127
|
+
__decorate([
|
|
128
|
+
property({ type: String })
|
|
129
|
+
], UDExContact.prototype, "accessibleName", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
property({ type: String })
|
|
132
|
+
], UDExContact.prototype, "accessibleNameRef", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
slot({ type: HTMLElement, "default": true })
|
|
135
|
+
], UDExContact.prototype, "items", void 0);
|
|
136
|
+
__decorate([
|
|
137
|
+
property({ type: Boolean })
|
|
138
|
+
], UDExContact.prototype, "_isMobileMode", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
i18n("@sapudex/web-components")
|
|
141
|
+
], UDExContact, "i18nBundle", void 0);
|
|
142
|
+
UDExContact = UDExContact_1 = __decorate([
|
|
143
|
+
customElement({
|
|
144
|
+
tag: "udex-contact",
|
|
145
|
+
renderer: jsxRenderer,
|
|
146
|
+
styles: ContactCss,
|
|
147
|
+
template: ContactTemplate,
|
|
148
|
+
})
|
|
149
|
+
], UDExContact);
|
|
150
|
+
UDExContact.define();
|
|
151
|
+
export default UDExContact;
|
|
152
|
+
//# sourceMappingURL=Contact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Contact.js","sourceRoot":"","sources":["../src/Contact.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 jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ContactTemplate from \"./ContactTemplate.js\";\nimport type UDExContactItem from \"./ContactItem.js\";\nimport type UI5ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport {\n LOCAL_COUNTRY_NAMES, COMPLETE_LIST_OF, CALL_US_TODAY, CONTACT_US,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport i18n from \"@ui5/webcomponents-base/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/i18nBundle.js\";\n\n// Styles\nimport ContactCss from \"./generated/themes/Contact.css.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\n\nexport type ContactNumber = {\n number: string;\n country: string;\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-contact</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Contact.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-contact\n * @public\n */\n@customElement({\n tag: \"udex-contact\",\n renderer: jsxRenderer,\n styles: ContactCss,\n template: ContactTemplate,\n})\n\nclass UDExContact extends UI5Element {\n /**\n * Defines the <code>text</code> for the contact button.\n *\n * @public\n */\n @property({ type: String })\n buttonText!: string;\n\n /**\n * List of the contact numbers\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String })\n contactNumbers: string = \"\";\n\n /**\n * Defines the local country numbers link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n localCountryNumbersLink: string = \"\";\n\n /**\n * Defines if the initial focus should be prevented.\n * @public\n */\n @property({ type: Boolean })\n preventInitialFocus!: boolean;\n\n /**\n * Defines if the focus should be returned to the previously focused element.\n * @public\n */\n @property({ type: Boolean })\n preventFocusRestore!: boolean;\n\n /**\n * Defines the accessible name of the component.\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Defines the IDs of the elements that label the component.\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleNameRef?: string;\n\n /**\n * Slot for list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExContactItem>;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode: boolean = BreakpointUtils.isAtMost(\"M\");\n\n _screenResizeHandler: () => void;\n _screenResizeHandlerAttached?: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._screenResizeHandler = this._screenResize.bind(this);\n }\n\n onEnterDOM() {\n this._attachScreenResizeHandler();\n }\n\n onExitDOM() {\n this._detachScreenResizeHandler();\n }\n\n _openPopover(): void {\n this._responsivePopover.open = !this._responsivePopover.open;\n }\n\n _closePopover(): void {\n this._responsivePopover.open = false;\n }\n\n _screenResize(): void {\n this._isMobileMode = BreakpointUtils.isAtMost(\"M\");\n }\n\n _attachScreenResizeHandler(): void {\n if (!this._screenResizeHandlerAttached) {\n window.addEventListener(\"resize\", this._screenResizeHandler);\n this._screenResizeHandlerAttached = true;\n }\n }\n\n _detachScreenResizeHandler(): void {\n if (this._screenResizeHandlerAttached) {\n window.removeEventListener(\"resize\", this._screenResizeHandler);\n this._screenResizeHandlerAttached = false;\n }\n }\n\n get _contactNumbersArray(): ContactNumber[] {\n return parseArrayFromString<ContactNumber>(this.contactNumbers);\n }\n\n get _responsivePopover(): UI5ResponsivePopover {\n return this.shadowRoot!.querySelector<UI5ResponsivePopover>(\".udex-contact__popover\")!;\n }\n\n get _completeListTitle(): string {\n return `${UDExContact.i18nBundle.getText(COMPLETE_LIST_OF)} `;\n }\n\n get _localCountryTitle(): string {\n return UDExContact.i18nBundle.getText(LOCAL_COUNTRY_NAMES);\n }\n\n get _numbersTitle(): string {\n return UDExContact.i18nBundle.getText(CALL_US_TODAY);\n }\n\n get _contactUsTitle(): string {\n return UDExContact.i18nBundle.getText(CONTACT_US);\n }\n\n get _hasNumbersList(): boolean {\n return this._contactNumbersArray.length > 0;\n }\n}\n\nUDExContact.define();\n\nexport default UDExContact;\n"]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import { UDExTarget } from "./types/common.js";
|
|
3
|
+
import UDExContactItemIcon from "./types/ContactItemIcon.js";
|
|
4
|
+
import "@ui5/webcomponents-icons/dist/headset.js";
|
|
5
|
+
import "@ui5/webcomponents-icons/dist/discussion-2.js";
|
|
6
|
+
import "@ui5/webcomponents-icons/dist/email.js";
|
|
7
|
+
type UDExContactItemClickEventDetail = {
|
|
8
|
+
originalEvent: Event;
|
|
9
|
+
item: UDExContactItem;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @class
|
|
13
|
+
*
|
|
14
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
15
|
+
*
|
|
16
|
+
*
|
|
17
|
+
* <h3>Usage</h3>
|
|
18
|
+
*
|
|
19
|
+
* For the <code>udex-contact-item</code>
|
|
20
|
+
* <h3>ES6 Module Import</h3>
|
|
21
|
+
*
|
|
22
|
+
* <code>import "@sapudex/web-components/dist/ContactItem.js";</code>
|
|
23
|
+
*
|
|
24
|
+
* @constructor
|
|
25
|
+
* @extends UI5Element
|
|
26
|
+
* @tagname udex-contact-item
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
declare class UDExContactItem extends UI5Element {
|
|
30
|
+
eventDetails: {
|
|
31
|
+
"item-click": UDExContactItemClickEventDetail;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Defines the label for the item.
|
|
35
|
+
*
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
label: string;
|
|
39
|
+
/**
|
|
40
|
+
* Defines the href for the item.
|
|
41
|
+
*
|
|
42
|
+
* @public
|
|
43
|
+
*/
|
|
44
|
+
href: string;
|
|
45
|
+
/**
|
|
46
|
+
* Defines the icon name for the item.
|
|
47
|
+
*
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
icon?: `${UDExContactItemIcon}`;
|
|
51
|
+
/**
|
|
52
|
+
* Defines target for the item
|
|
53
|
+
*
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
target: `${UDExTarget}`;
|
|
57
|
+
/**
|
|
58
|
+
* Slot for the item content.
|
|
59
|
+
*
|
|
60
|
+
* @slot
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
content: Array<Node>;
|
|
64
|
+
_fireItemClickEvent(e: Event): void;
|
|
65
|
+
get _iconName(): string | undefined;
|
|
66
|
+
}
|
|
67
|
+
export default UDExContactItem;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
|
+
import slot from "@ui5/webcomponents-base/decorators/slot.js";
|
|
10
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
12
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
13
|
+
import ContactItemTemplate from "./ContactItemTemplate.js";
|
|
14
|
+
import { UDExTarget } from "./types/common.js";
|
|
15
|
+
import UDExContactItemIcon from "./types/ContactItemIcon.js";
|
|
16
|
+
import "@ui5/webcomponents-icons/dist/headset.js";
|
|
17
|
+
import "@ui5/webcomponents-icons/dist/discussion-2.js";
|
|
18
|
+
import "@ui5/webcomponents-icons/dist/email.js";
|
|
19
|
+
// Styles
|
|
20
|
+
import ContactItemCss from "./generated/themes/ContactItem.css.js";
|
|
21
|
+
/**
|
|
22
|
+
* @class
|
|
23
|
+
*
|
|
24
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
25
|
+
*
|
|
26
|
+
*
|
|
27
|
+
* <h3>Usage</h3>
|
|
28
|
+
*
|
|
29
|
+
* For the <code>udex-contact-item</code>
|
|
30
|
+
* <h3>ES6 Module Import</h3>
|
|
31
|
+
*
|
|
32
|
+
* <code>import "@sapudex/web-components/dist/ContactItem.js";</code>
|
|
33
|
+
*
|
|
34
|
+
* @constructor
|
|
35
|
+
* @extends UI5Element
|
|
36
|
+
* @tagname udex-contact-item
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
let UDExContactItem = class UDExContactItem extends UI5Element {
|
|
40
|
+
constructor() {
|
|
41
|
+
super(...arguments);
|
|
42
|
+
/**
|
|
43
|
+
* Defines target for the item
|
|
44
|
+
*
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
this.target = UDExTarget._self;
|
|
48
|
+
}
|
|
49
|
+
_fireItemClickEvent(e) {
|
|
50
|
+
this.fireDecoratorEvent("item-click", {
|
|
51
|
+
item: this,
|
|
52
|
+
originalEvent: e,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
get _iconName() {
|
|
56
|
+
if (this.icon) {
|
|
57
|
+
return UDExContactItemIcon[this.icon].toLowerCase();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
__decorate([
|
|
62
|
+
property({ type: String })
|
|
63
|
+
], UDExContactItem.prototype, "label", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
property({ type: String })
|
|
66
|
+
], UDExContactItem.prototype, "href", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
property({ type: String })
|
|
69
|
+
], UDExContactItem.prototype, "icon", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
property({ type: String })
|
|
72
|
+
], UDExContactItem.prototype, "target", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
slot({ type: Node, "default": true })
|
|
75
|
+
], UDExContactItem.prototype, "content", void 0);
|
|
76
|
+
UDExContactItem = __decorate([
|
|
77
|
+
customElement({
|
|
78
|
+
tag: "udex-contact-item",
|
|
79
|
+
renderer: jsxRenderer,
|
|
80
|
+
styles: ContactItemCss,
|
|
81
|
+
template: ContactItemTemplate,
|
|
82
|
+
})
|
|
83
|
+
/**
|
|
84
|
+
* Fires when item is clicked
|
|
85
|
+
*
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
,
|
|
89
|
+
event("item-click", {
|
|
90
|
+
bubbles: true,
|
|
91
|
+
cancelable: true,
|
|
92
|
+
})
|
|
93
|
+
], UDExContactItem);
|
|
94
|
+
UDExContactItem.define();
|
|
95
|
+
export default UDExContactItem;
|
|
96
|
+
//# sourceMappingURL=ContactItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContactItem.js","sourceRoot":"","sources":["../src/ContactItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,4CAA4C,CAAC;AAC9D,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,0CAA0C,CAAC;AAClD,OAAO,+CAA+C,CAAC;AACvD,OAAO,wCAAwC,CAAC;AAEhD,SAAS;AACT,OAAO,cAAc,MAAM,uCAAuC,CAAC;AAOnE;;;;;;;;;;;;;;;;;GAiBG;AAkBH,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;QA6BE;;;;WAIG;QAED,WAAM,GAAoB,UAAU,CAAC,KAAK,CAAC;IAuB/C,CAAC;IAZC,mBAAmB,CAAC,CAAQ;QAC1B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACpC,IAAI,EAAE,IAAI;YACV,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS;QACX,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;CACF,CAAA;AA/CG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACV;AAQf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACX;AAQd;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACO;AAQhC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACkB;AAS3C;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gDACd;AA5CpB,eAAe;IAjBpB,aAAa,CAAC;QACb,GAAG,EAAE,mBAAmB;QACxB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,YAAY,EAAE;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KACjB,CAAC;GAEI,eAAe,CA0DpB;AAED,eAAe,CAAC,MAAM,EAAE,CAAC;AAEzB,eAAe,eAAe,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ContactItemTemplate from \"./ContactItemTemplate.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport UDExContactItemIcon from \"./types/ContactItemIcon.js\";\nimport \"@ui5/webcomponents-icons/dist/headset.js\";\nimport \"@ui5/webcomponents-icons/dist/discussion-2.js\";\nimport \"@ui5/webcomponents-icons/dist/email.js\";\n\n// Styles\nimport ContactItemCss from \"./generated/themes/ContactItem.css.js\";\n\ntype UDExContactItemClickEventDetail = {\n originalEvent: Event,\n item: UDExContactItem,\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-contact-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/ContactItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-contact-item\n * @public\n */\n@customElement({\n tag: \"udex-contact-item\",\n renderer: jsxRenderer,\n styles: ContactItemCss,\n template: ContactItemTemplate,\n})\n\n/**\n * Fires when item is clicked\n *\n * @public\n */\n@event(\"item-click\", {\n bubbles: true,\n cancelable: true,\n})\n\nclass UDExContactItem extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExContactItemClickEventDetail,\n };\n\n /**\n * Defines the label for the item.\n *\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the href for the item.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Defines the icon name for the item.\n *\n * @public\n */\n @property({ type: String })\n icon?: `${UDExContactItemIcon}`;\n\n /**\n * Defines target for the item\n *\n * @public\n */\n @property({ type: String })\n target: `${UDExTarget}` = UDExTarget._self;\n\n /**\n * Slot for the item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: Array<Node>;\n\n _fireItemClickEvent(e: Event): void {\n this.fireDecoratorEvent(\"item-click\", {\n item: this,\n originalEvent: e,\n });\n }\n\n get _iconName(): string | undefined {\n if (this.icon) {\n return UDExContactItemIcon[this.icon].toLowerCase();\n }\n }\n}\n\nUDExContactItem.define();\n\nexport default UDExContactItem;\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
3
|
+
import UDExLink from "./Link.js";
|
|
4
|
+
export default function ContactItemTemplate() {
|
|
5
|
+
return (_jsxs("div", { class: "udex-contact-item", children: [this.icon && _jsx(UI5Icon, { class: "udex-contact-item__icon", name: this._iconName, mode: "Decorative" }), _jsxs("div", { class: "udex-contact-item__content", children: [labelContent.call(this), _jsx("p", { class: "udex-contact-item__description", children: _jsx("slot", {}) })] })] }));
|
|
6
|
+
}
|
|
7
|
+
function labelContent() {
|
|
8
|
+
if (this.href) {
|
|
9
|
+
return _jsx(UDExLink, { onClick: this._fireItemClickEvent, target: this.target, class: "udex-contact-item__link", href: this.href, children: this.label });
|
|
10
|
+
}
|
|
11
|
+
return _jsx("span", { class: "udex-contact-item__text", children: this.label });
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ContactItemTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContactItemTemplate.js","sourceRoot":"","sources":["../src/ContactItemTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,mBAAmB;IACzC,OAAO,CACL,eAAK,KAAK,EAAC,mBAAmB,aAC3B,IAAI,CAAC,IAAI,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,yBAAyB,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAC,YAAY,GAAW,EACzG,eAAK,KAAK,EAAC,4BAA4B,aACpC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACxB,YAAG,KAAK,EAAC,gCAAgC,YAAC,gBAAa,GAAI,IACvD,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,KAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAC,yBAAyB,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,YAAG,IAAI,CAAC,KAAK,GAAY,CAAC;IACpJ,CAAC;IACD,OAAO,eAAM,KAAK,EAAC,yBAAyB,YAAE,IAAI,CAAC,KAAK,GAAQ,CAAC;AACnE,CAAC","sourcesContent":["import type ContactItem from \"./ContactItem.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExLink from \"./Link.js\";\n\nexport default function ContactItemTemplate(this: ContactItem) {\n return (\n <div class=\"udex-contact-item\">\n {this.icon && <UI5Icon class=\"udex-contact-item__icon\" name={this._iconName} mode=\"Decorative\"></UI5Icon>}\n <div class=\"udex-contact-item__content\">\n {labelContent.call(this)}\n <p class=\"udex-contact-item__description\"><slot></slot></p>\n </div>\n </div>\n );\n}\n\nfunction labelContent(this: ContactItem) {\n if (this.href) {\n return <UDExLink onClick={this._fireItemClickEvent} target={this.target} class=\"udex-contact-item__link\" href={this.href}>{this.label}</UDExLink>;\n }\n return <span class=\"udex-contact-item__text\">{this.label}</span>;\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
3
|
+
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
4
|
+
import UDExButton from "./Button.js";
|
|
5
|
+
import UDExLink from "./Link.js";
|
|
6
|
+
import ButtonType from "@ui5/webcomponents/dist/types/ButtonType.js";
|
|
7
|
+
import UI5ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
|
|
8
|
+
import PopoverPlacement from "@ui5/webcomponents/dist/types/PopoverPlacement.js";
|
|
9
|
+
import PopoverHorizontalAlign from "@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js";
|
|
10
|
+
import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
|
|
11
|
+
import UDExButtonAccessibleRole from "./types/ButtonAccessibleRole.js";
|
|
12
|
+
import "@ui5/webcomponents-icons/dist/discussion-2.js";
|
|
13
|
+
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
14
|
+
export default function ContactTemplate() {
|
|
15
|
+
return (_jsxs("div", { class: "udex-contact", children: [responsivePopover.call(this), openerButton.call(this)] }));
|
|
16
|
+
}
|
|
17
|
+
function responsivePopover() {
|
|
18
|
+
return (_jsxs(UI5ResponsivePopover, { id: `${this._id}-popover`, opener: `${this._id}-opener`, class: "udex-contact__popover", placement: PopoverPlacement.Top, horizontalAlign: PopoverHorizontalAlign.End, "accessible-role": PopupAccessibleRole.Dialog, preventInitialFocus: this.preventInitialFocus, preventFocusRestore: this.preventFocusRestore, accessibleName: this.accessibleName, accessibleNameRef: this.accessibleNameRef, hideArrow: true, children: [_jsxs("div", { class: {
|
|
19
|
+
"udex-contact__call-us": true,
|
|
20
|
+
"udex-contact__call-us_empty": !this._hasNumbersList,
|
|
21
|
+
}, children: [!this._hasNumbersList && _jsx("span", { class: "udex-contact__call-us-heading", children: this._contactUsTitle }), _jsx(UDExButton, { class: "udex-contact__close-btn", icon: "sap-icon://decline", type: "Button", onClick: this._closePopover, size: UDExButtonSize.Medium, design: UDExButtonDesign.Invisible, "accessible-role": UDExButtonAccessibleRole.Button, "icon-only": true }), this._hasNumbersList && callUsSection.call(this)] }), _jsx("div", { class: "udex-contact__items", children: _jsx("slot", {}) })] }));
|
|
22
|
+
}
|
|
23
|
+
function openerButton() {
|
|
24
|
+
return (_jsx("div", { id: `${this._id}-opener`, class: "udex-contact__opener", children: _jsx(UDExButton, { onClick: this._openPopover, class: "udex-contact__button", design: UDExButtonDesign.Primary, size: UDExButtonSize.Large, type: ButtonType.Button, accessibleName: this._isMobileMode ? this.buttonText : undefined, tooltip: this._isMobileMode ? this.buttonText : undefined, icon: "sap-icon://discussion-2", children: !this._isMobileMode && this.buttonText }) }));
|
|
25
|
+
}
|
|
26
|
+
function callUsSection() {
|
|
27
|
+
return (_jsxs(_Fragment, { children: [_jsx("h4", { class: "udex-contact__call-us-title", children: this._numbersTitle }), _jsx("div", { class: "udex-contact__numbers", children: this._contactNumbersArray.map(({ number, country }) => (_jsxs("div", { class: "udex-contact__number-wrapper", children: [_jsx("span", { class: "udex-contact__country", children: country }), _jsx(UDExLink, { class: "udex-contact__number", href: "tel:".concat(number), children: number })] }))) }), _jsxs("p", { class: "udex-contact__complete-list", children: [this._completeListTitle, _jsx(UDExLink, { class: "udex-contact__local-country-link", href: this.localCountryNumbersLink, children: this._localCountryTitle })] })] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=ContactTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContactTemplate.js","sourceRoot":"","sources":["../src/ContactTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,UAAU,MAAM,6CAA6C,CAAC;AACrE,OAAO,oBAAoB,MAAM,8CAA8C,CAAC;AAChF,OAAO,gBAAgB,MAAM,mDAAmD,CAAC;AACjF,OAAO,sBAAsB,MAAM,yDAAyD,CAAC;AAC7F,OAAO,mBAAmB,MAAM,sDAAsD,CAAC;AACvF,OAAO,wBAAwB,MAAM,iCAAiC,CAAC;AACvE,OAAO,+CAA+C,CAAC;AACvD,OAAO,0CAA0C,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,eAAe;IACrC,OAAO,CACL,eAAK,KAAK,EAAC,cAAc,aACtB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IACpB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,CACL,MAAC,oBAAoB,IACnB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EACzB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,EAC5B,KAAK,EAAC,uBAAuB,EAC7B,SAAS,EAAE,gBAAgB,CAAC,GAAG,EAC/B,eAAe,EAAE,sBAAsB,CAAC,GAAG,qBAC1B,mBAAmB,CAAC,MAAM,EAC3C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAC7C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAC7C,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,SAAS,EAAE,IAAI,aACf,eACE,KAAK,EAAE;oBACL,uBAAuB,EAAE,IAAI;oBAC7B,6BAA6B,EAAE,CAAC,IAAI,CAAC,eAAe;iBACrD,aACA,CAAC,IAAI,CAAC,eAAe,IAAI,eAAM,KAAK,EAAC,+BAA+B,YAAE,IAAI,CAAC,eAAe,GAAQ,EACnG,KAAC,UAAU,IACT,KAAK,EAAC,yBAAyB,EAC/B,IAAI,EAAC,oBAAoB,EACzB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,IAAI,EAAE,cAAc,CAAC,MAAM,EAC3B,MAAM,EAAE,gBAAgB,CAAC,SAAS,qBACjB,wBAAwB,CAAC,MAAM,sBAErC,EACZ,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAC7C,EACN,cAAK,KAAK,EAAC,qBAAqB,YAAC,gBAAa,GAAM,IAC/B,CACxB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,CACL,cAAK,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,EAAE,KAAK,EAAC,sBAAsB,YACzD,KAAC,UAAU,IACT,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAC,sBAAsB,EAC5B,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAChC,IAAI,EAAE,cAAc,CAAC,KAAK,EAC1B,IAAI,EAAE,UAAU,CAAC,MAAM,EACvB,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAChE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACzD,IAAI,EAAC,yBAAyB,YAC7B,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,GAC5B,GACT,CACP,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,CACL,8BACE,aAAI,KAAK,EAAC,6BAA6B,YAAE,IAAI,CAAC,aAAa,GAAM,EACjE,cAAK,KAAK,EAAC,uBAAuB,YAC/B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACtD,eAAK,KAAK,EAAC,8BAA8B,aACvC,eAAM,KAAK,EAAC,uBAAuB,YAAE,OAAO,GAAQ,EACpD,KAAC,QAAQ,IACP,KAAK,EAAC,sBAAsB,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAC1B,MAAM,GACE,IACP,CACP,CAAC,GACE,EACN,aAAG,KAAK,EAAC,6BAA6B,aACnC,IAAI,CAAC,kBAAkB,EACxB,KAAC,QAAQ,IACP,KAAK,EAAC,kCAAkC,EACxC,IAAI,EAAE,IAAI,CAAC,uBAAuB,YACjC,IAAI,CAAC,kBAAkB,GACf,IACT,IACH,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import type Contact from \"./Contact.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExLink from \"./Link.js\";\nimport ButtonType from \"@ui5/webcomponents/dist/types/ButtonType.js\";\nimport UI5ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport PopoverHorizontalAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport UDExButtonAccessibleRole from \"./types/ButtonAccessibleRole.js\";\nimport \"@ui5/webcomponents-icons/dist/discussion-2.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\n\nexport default function ContactTemplate(this: Contact) {\n return (\n <div class=\"udex-contact\">\n {responsivePopover.call(this)}\n {openerButton.call(this)}\n </div>\n );\n}\n\nfunction responsivePopover(this: Contact) {\n return (\n <UI5ResponsivePopover\n id={`${this._id}-popover`}\n opener={`${this._id}-opener`}\n class=\"udex-contact__popover\"\n placement={PopoverPlacement.Top}\n horizontalAlign={PopoverHorizontalAlign.End}\n accessible-role={PopupAccessibleRole.Dialog}\n preventInitialFocus={this.preventInitialFocus}\n preventFocusRestore={this.preventFocusRestore}\n accessibleName={this.accessibleName}\n accessibleNameRef={this.accessibleNameRef}\n hideArrow={true}>\n <div\n class={{\n \"udex-contact__call-us\": true,\n \"udex-contact__call-us_empty\": !this._hasNumbersList,\n }}>\n {!this._hasNumbersList && <span class=\"udex-contact__call-us-heading\">{this._contactUsTitle}</span>}\n <UDExButton\n class=\"udex-contact__close-btn\"\n icon=\"sap-icon://decline\"\n type=\"Button\"\n onClick={this._closePopover}\n size={UDExButtonSize.Medium}\n design={UDExButtonDesign.Invisible}\n accessible-role={UDExButtonAccessibleRole.Button}\n icon-only>\n </UDExButton>\n {this._hasNumbersList && callUsSection.call(this)}\n </div>\n <div class=\"udex-contact__items\"><slot></slot></div>\n </UI5ResponsivePopover>\n );\n}\n\nfunction openerButton(this: Contact) {\n return (\n <div id={`${this._id}-opener`} class=\"udex-contact__opener\">\n <UDExButton\n onClick={this._openPopover}\n class=\"udex-contact__button\"\n design={UDExButtonDesign.Primary}\n size={UDExButtonSize.Large}\n type={ButtonType.Button}\n accessibleName={this._isMobileMode ? this.buttonText : undefined}\n tooltip={this._isMobileMode ? this.buttonText : undefined}\n icon=\"sap-icon://discussion-2\">\n {!this._isMobileMode && this.buttonText}\n </UDExButton>\n </div>\n );\n}\n\nfunction callUsSection(this: Contact) {\n return (\n <>\n <h4 class=\"udex-contact__call-us-title\">{this._numbersTitle}</h4>\n <div class=\"udex-contact__numbers\">\n {this._contactNumbersArray.map(({ number, country }) => (\n <div class=\"udex-contact__number-wrapper\">\n <span class=\"udex-contact__country\">{country}</span>\n <UDExLink\n class=\"udex-contact__number\"\n href={\"tel:\".concat(number)}>\n {number}\n </UDExLink>\n </div>\n ))}\n </div>\n <p class=\"udex-contact__complete-list\">\n {this._completeListTitle}\n <UDExLink\n class=\"udex-contact__local-country-link\"\n href={this.localCountryNumbersLink}>\n {this._localCountryTitle}\n </UDExLink>\n </p>\n </>\n );\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
2
1
|
import type Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
3
2
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
4
3
|
import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
|
|
@@ -150,7 +149,6 @@ declare class UDExCountrySelector extends UDExSearchableListBase {
|
|
|
150
149
|
_dropdown: UDExDropdown;
|
|
151
150
|
_search: Search;
|
|
152
151
|
_handleResizeBound: ResizeObserverCallback;
|
|
153
|
-
static i18nBundle: I18nBundle;
|
|
154
152
|
constructor();
|
|
155
153
|
onEnterDOM(): void;
|
|
156
154
|
onExitDOM(): void;
|
package/dist/CountrySelector.js
CHANGED
|
@@ -8,7 +8,6 @@ var UDExCountrySelector_1;
|
|
|
8
8
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
9
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
|
-
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
12
11
|
import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
|
|
13
12
|
import { isEscape, isTabPrevious, isTabNext, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
14
13
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
@@ -301,9 +300,6 @@ __decorate([
|
|
|
301
300
|
__decorate([
|
|
302
301
|
property({ type: Boolean })
|
|
303
302
|
], UDExCountrySelector.prototype, "_open", void 0);
|
|
304
|
-
__decorate([
|
|
305
|
-
i18n("@sapudex/web-components")
|
|
306
|
-
], UDExCountrySelector, "i18nBundle", void 0);
|
|
307
303
|
UDExCountrySelector = UDExCountrySelector_1 = __decorate([
|
|
308
304
|
customElement({
|
|
309
305
|
tag: "udex-country-selector",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CountrySelector.js","sourceRoot":"","sources":["../src/CountrySelector.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,eAAe,MAAM,0DAA0D,CAAC;AACvF,OAAO,EACL,QAAQ,EACR,aAAa,EACb,SAAS,GACV,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAEvD,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,wDAAwD,CAAC;AAChE,OAAO,sDAAsD,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,sBAAsB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,uBAAuB,MAAM,sDAAsD,CAAC;AAC3F,OAAO,0BAA0B,MAAM,yDAAyD,CAAC;AAEjG,SAAS;AACT,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAM3E;;;;;;;;;;;;;;;;;GAiBG;AAkEH,IAAM,mBAAmB,2BAAzB,MAAM,mBAAoB,SAAQ,sBAAsB;IA0JtD;QACE,KAAK,EAAE,CAAC;QAhIV;;;;WAIG;QAED,sBAAiB,GAAW,EAAE,CAAC;QAkFjC;;;;;WAKG;QAED,eAAU,GAAwB,cAAc,CAAC,QAAQ,CAAC;QAmB1D,UAAK,GAAa,KAAK,CAAC;QAE1B,gBAAW,GAAc,aAAa,CAAC;QAarC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC;IAED,SAAS;QACP,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;YACrC,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5G,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACxH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE,CAAC,CAAC;QAChI,CAAC;QAED,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAgB,mBAAmB,CAAE,CAAC;IAC7E,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;QACvC,OAAO,eAAe,CAAC,qBAAmB,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,KAAK,0BAA0B;QACnC,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC;IACnG,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAW,CAAC,aAAa,CAAS,uBAAuB,CAAC,EAAE,KAAK,EAAE,CAAC;IACvF,CAAC;IAED,eAAe,CAAC,CAAc;QAC5B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,MAAM,IAAI,GAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,eAAe,CAAW,CAAC,CAAC;QACxF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;QAClF,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,cAAc,CAAC,QAAuB;QACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,oBAAoB,CAAC,CAAc;QACjC,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,CAAc;QAC9B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,mBAAmB,CAAC,QAAmD;QACrE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC;QAEnC,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,CAAgB;QACpC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;YACvF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC;gBACnE,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gBACxC,QAAQ;gBACR,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;aACf,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,OAAgB;QAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8EAA8E,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3I,CAAC;IAED,eAAe,CAAC,WAAoB,EAAE,SAAkB;QACtD,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;IAC3E,CAAC;IAED,IAAI,YAAY;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAW,aAAa,CAAC,CAAC;QACrE,OAAO,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC;IACrC,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC;IACrC,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5H,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC;IAC5G,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IACtE,CAAC;IAED,IAAI,sBAAsB;QACxB,MAAM,SAAS,GAAG,iCAAiC,CAAC;QACpD,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,CAAC;IAED,IAAI,6BAA6B;QAC/B,MAAM,SAAS,GAAG,gCAAgC,CAAC;QACnD,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;IAC9B,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC;IAC5D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAS,eAAe,CAAE,CAAC;IAClE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAW,CAAC,aAAa,CAAU,eAAe,CAAE,CAAC;IAC7E,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAe,iBAAiB,CAAE,CAAC;IAC1E,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAgB,mBAAmB,CAAE,CAAC;IAC7E,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,IAAI,qBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrG,CAAC;CACF,CAAA;AA3XG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACV;AASf;IADD,QAAQ,EAAE;2DACe;AAQxB;IADD,QAAQ,EAAE;8DACsB;AAS/B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qDACP;AAQnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDACT;AAWhB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qDACP;AAYnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qDACP;AAanB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wDACJ;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+DACG;AAS5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gEACI;AAS7B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACE;AAS3B;IADD,QAAQ,EAAE;uDACiD;AAS1D;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DACD;AAOxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2DACD;AAGzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACF;AAWnB;IADN,IAAI,CAAC,yBAAyB,CAAC;6CACF;AAxJ1B,mBAAmB;IAjExB,aAAa,CAAC;QACb,GAAG,EAAE,uBAAuB;QAC5B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,uBAAuB;QACjC,YAAY,EAAE;YACZ,MAAM;YACN,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,YAAY;YACZ,aAAa;YACb,aAAa;SACd;KACF,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAExC;;;;OAIG;;IACF,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEjC;;;;OAIG;;IACF,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEzC;;;;OAIG;;IACF,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAElC;;;;OAIG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;OAIG;;IACF,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEzC;;;;OAIG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAEpC,mBAAmB,CA2YxB;AAED,mBAAmB,CAAC,MAAM,EAAE,CAAC;AAE7B,eAAe,mBAAmB,CAAC","sourcesContent":["import 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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport {\n isEscape,\n isTabPrevious,\n isTabNext,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-up-arrow.js\";\nimport type { Country } from \"./data/CountryListISO3166.js\";\nimport { CountryListDB } from \"./data/CountryListISO3166.js\";\nimport { COUNTRY_SELECT } from \"./generated/i18n/i18n-defaults.js\";\nimport Search from \"./Search.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExList from \"./List.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExTextField from \"./TextField.js\";\nimport UDExValueState from \"./types/common.js\";\nimport StatusMessage from \"./StatusMessage.js\";\nimport type { UDExSearchKeydownEventDetail } from \"./Search.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport CountrySelectorTemplate from \"./generated/templates/CountrySelectorTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\n\n// Styles\nimport CountrySelectorCss from \"./generated/themes/CountrySelector.css.js\";\n\ntype UDExCountrySelectorChangeSearchEventDetail = {\n value: string,\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-country-selector</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/CountrySelector.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-country-selector\n * @public\n */\n@customElement({\n tag: \"udex-country-selector\",\n renderer: litRender,\n styles: CountrySelectorCss,\n template: CountrySelectorTemplate,\n dependencies: [\n Search,\n Button,\n UDExList,\n UDExListItem,\n UDExDropdown,\n UDExTextField,\n StatusMessage,\n ],\n})\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @public\n */\n@event(\"before-open\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @public\n */\n@event(\"before-close\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @public\n */\n@event(\"change-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @public\n */\n@event(\"reset-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @public\n */\n@event(\"submit-search\", { bubbles: true })\n\nclass UDExCountrySelector extends UDExSearchableListBase {\n eventDetails!: {\n \"open\": void,\n \"close\": void,\n \"before-close\": void,\n \"before-open\": void,\n \"change-search\": UDExCountrySelectorChangeSearchEventDetail,\n } & Omit<UDExSearchableListBaseEvents, \"change-search\">;\n\n /**\n * Defines label text for the input field.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n label?: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Allows to define the initially preselected country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n preselectedCountry!: string;\n\n /**\n * Allows to define the list of blocked country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n blockedCountryCodes?: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n searchPlaceholder!: string;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the country selector.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n supportingText?: string;\n\n /**\n *\n * @public\n */\n @property({ type: Boolean })\n hideFlagImages?: boolean;\n\n @property({ type: Boolean })\n _open?: boolean = false;\n\n countryList: Country[] = CountryListDB;\n selectedCountry!: Country | undefined;\n _trigger!: UDExTextField;\n\n _dropdown!: UDExDropdown;\n _search!: Search;\n _handleResizeBound: ResizeObserverCallback;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._handleResizeBound = this._handleResize.bind(this);\n this._filteredItems = [];\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onBeforeRendering(): void {\n if (this.blockedCountryCodes?.length) {\n const blockedCountryCodesArray = this.blockedCountryCodes.split(\",\").map(code => code.trim().toUpperCase());\n this.countryList = this.countryList.filter(country => !blockedCountryCodesArray?.includes(country.iso.toUpperCase()));\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.countryList.find(country => country.iso.toUpperCase() === this.preselectedCountry?.toUpperCase());\n }\n\n this.prepareCountrySelectorItems();\n\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onAfterRendering() {\n this._dropdown = this.getDropdown();\n this._search = this.getSearch();\n this._trigger = this.getTrigger();\n }\n\n getTrigger(): UDExTextField {\n return this.shadowRoot!.querySelector<UDExTextField>(\"[udex-text-field]\")!;\n }\n\n _dropdownClose() {\n this.fireDecoratorEvent(\"close\");\n this._trigger.iconActive = false;\n }\n\n _dropdownOpen() {\n this.fireDecoratorEvent(\"open\");\n this._trigger.iconActive = true;\n }\n\n _dropdownBeforeOpen() {\n this._open = true;\n this.onResetSearch();\n this.fireDecoratorEvent(\"before-open\");\n }\n\n _dropdownBeforeClose() {\n this._open = false;\n this.fireDecoratorEvent(\"before-close\");\n }\n\n get searchableList() {\n this.defaultAccessibleRole = \"listbox\";\n return executeTemplate(UDExCountrySelector.searchableListBaseTemplate, this);\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n\n _handleResize() {\n this._dropdown.style.setProperty(\"--udex-dropdown-pane-width\", `${this._trigger.offsetWidth}px`);\n }\n\n handleCloseSearch() {\n this.getInput()?.shadowRoot!.querySelector<Button>(\"[udex-control-button]\")?.focus();\n }\n\n handleItemPress(e: CustomEvent) {\n this.onItemPress(e);\n const target = e.target as HTMLElement;\n const item: any = this.getItemFromList(target?.getAttribute(\"data-token-id\") as string);\n this.selectedCountry = this.countryList.find(country => country.iso === item._id);\n this.dropDownClose();\n }\n\n handleKeyPress(keyEvent: KeyboardEvent) {\n const key = keyEvent.key;\n this._dropdown.open = true;\n this._search.focus();\n this._search.value = key;\n this.onValueSearch(key);\n }\n\n handleInputMouseDown(e: CustomEvent): void {\n e.preventDefault();\n }\n\n onValueSearch(searchValue: string) {\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n this.fireDecoratorEvent(\"change-search\", { value: searchValue });\n }\n\n handleTriggerClick() {\n if (!this.isOpenerDisabled) {\n this._dropdown.open = !this._dropdown.open;\n }\n }\n\n handleValueSearch(e: CustomEvent) {\n this.onValueSearch(e.detail.value as string);\n }\n\n handleSubmitSearch() {\n this.onSubmitSearch();\n }\n\n handleKeyDownSearch(keyEvent: CustomEvent<UDExSearchKeydownEventDetail>) {\n const { detail: { e } } = keyEvent;\n\n if (isTabPrevious(e) || isEscape(e)) {\n e.preventDefault();\n this.dropDownClose();\n this.handleCloseSearch();\n }\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n if ((isTabNext(e) && (e.target !== this._search || this.isListEmpty))) {\n this.dropDownClose();\n }\n }\n\n dropDownClose(): void {\n this._dropdown.open = false;\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n prepareCountrySelectorItems(): void {\n this.items.length = 0;\n this.countryList.forEach(country => {\n const selected = country.iso.toUpperCase() === this.selectedCountry?.iso.toUpperCase();\n this.items.push({\n label: this.getCountryLabel(country.countryName, country.localName),\n innerHTML: this.getItemTemplate(country),\n selected,\n _id: country.iso.toUpperCase(),\n } as UDExListItem);\n });\n }\n\n getItemTemplate(country: Country) {\n return this.hideFlagImages ? undefined : `<span class=\"udex-country-selector-item__image\" style=\"background-position:${country.flagX}\">`;\n }\n\n getCountryLabel(countryName?: string, localName?: string): string | null {\n return localName ? `${countryName} (${localName})` : countryName || null;\n }\n\n get ariaControls(): string | null | undefined {\n const list = this.shadowRoot!.querySelector<UDExList>(\"[udex-list]\");\n return list?.getAttribute(\"id\");\n }\n\n get selectedCountryFlagX(): string | undefined {\n return this.selectedCountry?.flagX;\n }\n\n get selectedCountryFlagY(): string | undefined {\n return this.selectedCountry?.flagY;\n }\n\n get selectedCountryName(): string | null {\n return this.selectedCountry ? this.getCountryLabel(this.selectedCountry.countryName, this.selectedCountry.localName) : \"\";\n }\n\n get flagAriaLabel(): string {\n return this.getCountryLabel(this.selectedCountry?.countryName, this.selectedCountry?.localName) || \"None\";\n }\n\n get triggerIcon(): string {\n return this._open ? \"navigation-up-arrow\" : \"navigation-down-arrow\";\n }\n\n get countrySelectorClasses(): string {\n const baseClass = \"udex-country-selector__dropdown\";\n return this.hideFlagImages ? `${baseClass} ${baseClass}--hide-flag` : baseClass;\n }\n\n get countrySelectorTriggerClasses(): string {\n const baseClass = \"udex-country-selector__trigger\";\n const classes = [baseClass];\n\n if (this.disabled) {\n classes.push(`${baseClass}--disabled`);\n }\n\n if (this.readonly) {\n classes.push(`${baseClass}--readonly`);\n }\n\n if (this.displayonly) {\n classes.push(`${baseClass}--displayonly`);\n }\n\n return classes.join(\" \");\n }\n\n get showFlagImages(): boolean {\n return !this.hideFlagImages;\n }\n\n get isOpenerDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"[udex-search]\")!;\n }\n\n getDropdownPopover(): Popover {\n return this._dropdown.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getDropdown(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"[udex-dropdown]\")!;\n }\n\n getInput(): UDExTextField {\n return this.shadowRoot!.querySelector<UDExTextField>(\"[udex-text-field]\")!;\n }\n\n get effectiveAriaLabel(): string {\n return this.label || this.accessibleName || UDExCountrySelector.i18nBundle.getText(COUNTRY_SELECT);\n }\n}\n\nUDExCountrySelector.define();\n\nexport default UDExCountrySelector;\n"]}
|
|
1
|
+
{"version":3,"file":"CountrySelector.js","sourceRoot":"","sources":["../src/CountrySelector.ts"],"names":[],"mappings":"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","sourcesContent":["import 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 executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport {\n isEscape,\n isTabPrevious,\n isTabNext,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-up-arrow.js\";\nimport type { Country } from \"./data/CountryListISO3166.js\";\nimport { CountryListDB } from \"./data/CountryListISO3166.js\";\nimport { COUNTRY_SELECT } from \"./generated/i18n/i18n-defaults.js\";\nimport Search from \"./Search.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExList from \"./List.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExTextField from \"./TextField.js\";\nimport UDExValueState from \"./types/common.js\";\nimport StatusMessage from \"./StatusMessage.js\";\nimport type { UDExSearchKeydownEventDetail } from \"./Search.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport CountrySelectorTemplate from \"./generated/templates/CountrySelectorTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\n\n// Styles\nimport CountrySelectorCss from \"./generated/themes/CountrySelector.css.js\";\n\ntype UDExCountrySelectorChangeSearchEventDetail = {\n value: string,\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-country-selector</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/CountrySelector.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-country-selector\n * @public\n */\n@customElement({\n tag: \"udex-country-selector\",\n renderer: litRender,\n styles: CountrySelectorCss,\n template: CountrySelectorTemplate,\n dependencies: [\n Search,\n Button,\n UDExList,\n UDExListItem,\n UDExDropdown,\n UDExTextField,\n StatusMessage,\n ],\n})\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @public\n */\n@event(\"before-open\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @public\n */\n@event(\"before-close\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @public\n */\n@event(\"change-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @public\n */\n@event(\"reset-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @public\n */\n@event(\"submit-search\", { bubbles: true })\n\nclass UDExCountrySelector extends UDExSearchableListBase {\n eventDetails!: {\n \"open\": void,\n \"close\": void,\n \"before-close\": void,\n \"before-open\": void,\n \"change-search\": UDExCountrySelectorChangeSearchEventDetail,\n } & Omit<UDExSearchableListBaseEvents, \"change-search\">;\n\n /**\n * Defines label text for the input field.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n label?: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Allows to define the initially preselected country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n preselectedCountry!: string;\n\n /**\n * Allows to define the list of blocked country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n blockedCountryCodes?: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n searchPlaceholder!: string;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the country selector.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n supportingText?: string;\n\n /**\n *\n * @public\n */\n @property({ type: Boolean })\n hideFlagImages?: boolean;\n\n @property({ type: Boolean })\n _open?: boolean = false;\n\n countryList: Country[] = CountryListDB;\n selectedCountry!: Country | undefined;\n _trigger!: UDExTextField;\n\n _dropdown!: UDExDropdown;\n _search!: Search;\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._handleResizeBound = this._handleResize.bind(this);\n this._filteredItems = [];\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onBeforeRendering(): void {\n if (this.blockedCountryCodes?.length) {\n const blockedCountryCodesArray = this.blockedCountryCodes.split(\",\").map(code => code.trim().toUpperCase());\n this.countryList = this.countryList.filter(country => !blockedCountryCodesArray?.includes(country.iso.toUpperCase()));\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.countryList.find(country => country.iso.toUpperCase() === this.preselectedCountry?.toUpperCase());\n }\n\n this.prepareCountrySelectorItems();\n\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onAfterRendering() {\n this._dropdown = this.getDropdown();\n this._search = this.getSearch();\n this._trigger = this.getTrigger();\n }\n\n getTrigger(): UDExTextField {\n return this.shadowRoot!.querySelector<UDExTextField>(\"[udex-text-field]\")!;\n }\n\n _dropdownClose() {\n this.fireDecoratorEvent(\"close\");\n this._trigger.iconActive = false;\n }\n\n _dropdownOpen() {\n this.fireDecoratorEvent(\"open\");\n this._trigger.iconActive = true;\n }\n\n _dropdownBeforeOpen() {\n this._open = true;\n this.onResetSearch();\n this.fireDecoratorEvent(\"before-open\");\n }\n\n _dropdownBeforeClose() {\n this._open = false;\n this.fireDecoratorEvent(\"before-close\");\n }\n\n get searchableList() {\n this.defaultAccessibleRole = \"listbox\";\n return executeTemplate(UDExCountrySelector.searchableListBaseTemplate, this);\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n\n _handleResize() {\n this._dropdown.style.setProperty(\"--udex-dropdown-pane-width\", `${this._trigger.offsetWidth}px`);\n }\n\n handleCloseSearch() {\n this.getInput()?.shadowRoot!.querySelector<Button>(\"[udex-control-button]\")?.focus();\n }\n\n handleItemPress(e: CustomEvent) {\n this.onItemPress(e);\n const target = e.target as HTMLElement;\n const item: any = this.getItemFromList(target?.getAttribute(\"data-token-id\") as string);\n this.selectedCountry = this.countryList.find(country => country.iso === item._id);\n this.dropDownClose();\n }\n\n handleKeyPress(keyEvent: KeyboardEvent) {\n const key = keyEvent.key;\n this._dropdown.open = true;\n this._search.focus();\n this._search.value = key;\n this.onValueSearch(key);\n }\n\n handleInputMouseDown(e: CustomEvent): void {\n e.preventDefault();\n }\n\n onValueSearch(searchValue: string) {\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n this.fireDecoratorEvent(\"change-search\", { value: searchValue });\n }\n\n handleTriggerClick() {\n if (!this.isOpenerDisabled) {\n this._dropdown.open = !this._dropdown.open;\n }\n }\n\n handleValueSearch(e: CustomEvent) {\n this.onValueSearch(e.detail.value as string);\n }\n\n handleSubmitSearch() {\n this.onSubmitSearch();\n }\n\n handleKeyDownSearch(keyEvent: CustomEvent<UDExSearchKeydownEventDetail>) {\n const { detail: { e } } = keyEvent;\n\n if (isTabPrevious(e) || isEscape(e)) {\n e.preventDefault();\n this.dropDownClose();\n this.handleCloseSearch();\n }\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n if ((isTabNext(e) && (e.target !== this._search || this.isListEmpty))) {\n this.dropDownClose();\n }\n }\n\n dropDownClose(): void {\n this._dropdown.open = false;\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n prepareCountrySelectorItems(): void {\n this.items.length = 0;\n this.countryList.forEach(country => {\n const selected = country.iso.toUpperCase() === this.selectedCountry?.iso.toUpperCase();\n this.items.push({\n label: this.getCountryLabel(country.countryName, country.localName),\n innerHTML: this.getItemTemplate(country),\n selected,\n _id: country.iso.toUpperCase(),\n } as UDExListItem);\n });\n }\n\n getItemTemplate(country: Country) {\n return this.hideFlagImages ? undefined : `<span class=\"udex-country-selector-item__image\" style=\"background-position:${country.flagX}\">`;\n }\n\n getCountryLabel(countryName?: string, localName?: string): string | null {\n return localName ? `${countryName} (${localName})` : countryName || null;\n }\n\n get ariaControls(): string | null | undefined {\n const list = this.shadowRoot!.querySelector<UDExList>(\"[udex-list]\");\n return list?.getAttribute(\"id\");\n }\n\n get selectedCountryFlagX(): string | undefined {\n return this.selectedCountry?.flagX;\n }\n\n get selectedCountryFlagY(): string | undefined {\n return this.selectedCountry?.flagY;\n }\n\n get selectedCountryName(): string | null {\n return this.selectedCountry ? this.getCountryLabel(this.selectedCountry.countryName, this.selectedCountry.localName) : \"\";\n }\n\n get flagAriaLabel(): string {\n return this.getCountryLabel(this.selectedCountry?.countryName, this.selectedCountry?.localName) || \"None\";\n }\n\n get triggerIcon(): string {\n return this._open ? \"navigation-up-arrow\" : \"navigation-down-arrow\";\n }\n\n get countrySelectorClasses(): string {\n const baseClass = \"udex-country-selector__dropdown\";\n return this.hideFlagImages ? `${baseClass} ${baseClass}--hide-flag` : baseClass;\n }\n\n get countrySelectorTriggerClasses(): string {\n const baseClass = \"udex-country-selector__trigger\";\n const classes = [baseClass];\n\n if (this.disabled) {\n classes.push(`${baseClass}--disabled`);\n }\n\n if (this.readonly) {\n classes.push(`${baseClass}--readonly`);\n }\n\n if (this.displayonly) {\n classes.push(`${baseClass}--displayonly`);\n }\n\n return classes.join(\" \");\n }\n\n get showFlagImages(): boolean {\n return !this.hideFlagImages;\n }\n\n get isOpenerDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"[udex-search]\")!;\n }\n\n getDropdownPopover(): Popover {\n return this._dropdown.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getDropdown(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"[udex-dropdown]\")!;\n }\n\n getInput(): UDExTextField {\n return this.shadowRoot!.querySelector<UDExTextField>(\"[udex-text-field]\")!;\n }\n\n get effectiveAriaLabel(): string {\n return this.label || this.accessibleName || UDExCountrySelector.i18nBundle.getText(COUNTRY_SELECT);\n }\n}\n\nUDExCountrySelector.define();\n\nexport default UDExCountrySelector;\n"]}
|
package/dist/Footer.d.ts
CHANGED
|
@@ -208,7 +208,6 @@ declare class UDExFooter extends UI5Element {
|
|
|
208
208
|
onEnterDOM(): void;
|
|
209
209
|
_handleResize(): void;
|
|
210
210
|
onBackToTopClick(e: PointerEvent): void;
|
|
211
|
-
parseArrayFromString<T>(string: string): T[];
|
|
212
211
|
get parsedRef(): string | undefined;
|
|
213
212
|
get quickLinksArray(): FooterLink[];
|
|
214
213
|
get trendingLinksArray(): FooterLink[];
|
package/dist/Footer.js
CHANGED
|
@@ -20,6 +20,7 @@ import UDExAccordion from "./Accordion.js";
|
|
|
20
20
|
import UDExLink from "./Link.js";
|
|
21
21
|
import UDExDivider from "./Divider.js";
|
|
22
22
|
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
23
|
+
import parseArrayFromString from "./utils/parseArrayFromString.js";
|
|
23
24
|
// Template
|
|
24
25
|
import FooterTemplate from "./generated/templates/FooterTemplate.lit.js";
|
|
25
26
|
// Styles
|
|
@@ -176,29 +177,26 @@ let UDExFooter = UDExFooter_1 = class UDExFooter extends UI5Element {
|
|
|
176
177
|
this.fireFooterBaseEvent(e, "back-to-top-click");
|
|
177
178
|
window.scrollTo(0, 0);
|
|
178
179
|
}
|
|
179
|
-
parseArrayFromString(string) {
|
|
180
|
-
return string ? JSON.parse(string) : [];
|
|
181
|
-
}
|
|
182
180
|
get parsedRef() {
|
|
183
181
|
return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;
|
|
184
182
|
}
|
|
185
183
|
get quickLinksArray() {
|
|
186
|
-
return
|
|
184
|
+
return parseArrayFromString(this.quickLinks);
|
|
187
185
|
}
|
|
188
186
|
get trendingLinksArray() {
|
|
189
|
-
return
|
|
187
|
+
return parseArrayFromString(this.trendingLinks);
|
|
190
188
|
}
|
|
191
189
|
get aboutLinksArray() {
|
|
192
|
-
return
|
|
190
|
+
return parseArrayFromString(this.aboutLinks);
|
|
193
191
|
}
|
|
194
192
|
get siteInformationLinksArray() {
|
|
195
|
-
return
|
|
193
|
+
return parseArrayFromString(this.siteInformationLinks);
|
|
196
194
|
}
|
|
197
195
|
get contactNumbersArray() {
|
|
198
|
-
return
|
|
196
|
+
return parseArrayFromString(this.contactNumbersList);
|
|
199
197
|
}
|
|
200
198
|
get socialLinksArray() {
|
|
201
|
-
return
|
|
199
|
+
return parseArrayFromString(this.socialLinks);
|
|
202
200
|
}
|
|
203
201
|
get isContactContainerVisible() {
|
|
204
202
|
return !!this.contactNumbersArray.length || !!this.contactUsLink || !!this.chatWithUsLink;
|