@ptcwebops/ptcw-design 7.0.3-upgrade → 7.0.5-upgrade
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/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/my-component.ptc-button.ptc-select.ptc-spacer.entry.cjs.js.map +1 -0
- package/dist/cjs/{ptc-multi-select_2.cjs.entry.js → my-component_4.cjs.entry.js} +296 -558
- package/dist/cjs/ptc-multi-select.cjs.entry.js +326 -0
- package/dist/cjs/ptc-multi-select.entry.cjs.js.map +1 -0
- package/dist/cjs/ptcw-design.cjs.js +1 -1
- package/dist/collection/components/atoms/ptc-select/ptc-select.js +74 -258
- package/dist/collection/components/atoms/ptc-select/ptc-select.js.map +1 -1
- package/dist/components/academic-form-test.js +1 -1
- package/dist/components/embedded-form.js +1 -1
- package/dist/components/{p-D12rZh_N.js → p-1BqkHLLN.js} +76 -259
- package/dist/components/p-1BqkHLLN.js.map +1 -0
- package/dist/components/ptc-form.js +1 -1
- package/dist/components/ptc-select.js +1 -1
- package/dist/esm/blog-detail-content.entry.js +1 -1
- package/dist/esm/blog-detail-layout.entry.js +1 -1
- package/dist/esm/blogs-search-section.entry.js +1 -1
- package/dist/esm/homepage-jumbotron.entry.js +1 -1
- package/dist/esm/homepage-toggled-content.entry.js +1 -1
- package/dist/esm/{index-CeGWP728.js → index-BQ-J1lHr.js} +3 -3
- package/dist/esm/{index-CeGWP728.js.map → index-BQ-J1lHr.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/innovator-toggle-container.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/most-popular-news.entry.js +1 -1
- package/dist/esm/my-component.ptc-button.ptc-select.ptc-spacer.entry.js.map +1 -0
- package/dist/esm/{ptc-multi-select_2.entry.js → my-component_4.entry.js} +296 -560
- package/dist/esm/ptc-accordion-item.entry.js +1 -1
- package/dist/esm/ptc-background-video.entry.js +1 -1
- package/dist/esm/ptc-collapse-list.entry.js +1 -1
- package/dist/esm/ptc-form-checkbox_2.entry.js +1 -1
- package/dist/esm/ptc-homepage-image-feature.entry.js +1 -1
- package/dist/esm/ptc-homepage-video-background.entry.js +1 -1
- package/dist/esm/ptc-icon-card.entry.js +1 -1
- package/dist/esm/ptc-link.entry.js +1 -1
- package/dist/esm/ptc-media-card.entry.js +1 -1
- package/dist/esm/ptc-multi-select.entry.js +324 -0
- package/dist/esm/ptc-multi-select.entry.js.map +1 -0
- package/dist/esm/ptc-para.entry.js +1 -1
- package/dist/esm/ptc-pricing-packaging-table.entry.js +1 -1
- package/dist/esm/ptc-pricing-tabs.entry.js +1 -1
- package/dist/esm/ptc-social-icons-footer.entry.js +1 -1
- package/dist/esm/ptc-title.entry.js +1 -1
- package/dist/esm/ptcw-design.js +1 -1
- package/dist/ptcw-design/index.esm.js +1 -1
- package/dist/ptcw-design/my-component.ptc-button.ptc-select.ptc-spacer.entry.esm.js.map +1 -0
- package/dist/ptcw-design/{p-d50fafce.entry.js → p-030050c6.entry.js} +2 -2
- package/dist/ptcw-design/{p-8ac60356.entry.js → p-03e35969.entry.js} +2 -2
- package/dist/ptcw-design/{p-691a8eda.entry.js → p-094f1ed3.entry.js} +2 -2
- package/dist/ptcw-design/{p-8d804339.entry.js → p-0acf6720.entry.js} +2 -2
- package/dist/ptcw-design/{p-78d69f8f.entry.js → p-125a12d0.entry.js} +2 -2
- package/dist/ptcw-design/{p-beff3a27.entry.js → p-17a89ad7.entry.js} +2 -2
- package/dist/ptcw-design/{p-f23e33af.entry.js → p-42d10c1c.entry.js} +2 -2
- package/dist/ptcw-design/{p-bb3383e9.entry.js → p-45a93565.entry.js} +2 -2
- package/dist/ptcw-design/{p-de6c1bff.entry.js → p-4b8d6128.entry.js} +2 -2
- package/dist/ptcw-design/p-4ffc00bc.entry.js +2 -0
- package/dist/ptcw-design/p-4ffc00bc.entry.js.map +1 -0
- package/dist/ptcw-design/{p-2f7aa5e0.entry.js → p-56099bda.entry.js} +2 -2
- package/dist/ptcw-design/{p-2556892b.entry.js → p-5a290808.entry.js} +2 -2
- package/dist/ptcw-design/{p-8bf6c17b.entry.js → p-659210c6.entry.js} +2 -2
- package/dist/ptcw-design/{p-5e0430a3.entry.js → p-67a04fd5.entry.js} +2 -2
- package/dist/ptcw-design/{p-59c2ac1e.entry.js → p-6ce2bfc0.entry.js} +2 -2
- package/dist/ptcw-design/{p-378c5cb0.entry.js → p-70a4ca49.entry.js} +2 -2
- package/dist/ptcw-design/p-893ac2ab.entry.js +2 -0
- package/dist/ptcw-design/p-893ac2ab.entry.js.map +1 -0
- package/dist/ptcw-design/{p-3885d818.entry.js → p-8e11fe26.entry.js} +2 -2
- package/dist/ptcw-design/{p-CeGWP728.js → p-BQ-J1lHr.js} +2 -2
- package/dist/ptcw-design/{p-CeGWP728.js.map → p-BQ-J1lHr.js.map} +1 -1
- package/dist/ptcw-design/{p-11e6acb7.entry.js → p-b37d3919.entry.js} +2 -2
- package/dist/ptcw-design/{p-26c3da78.entry.js → p-b95cdf15.entry.js} +2 -2
- package/dist/ptcw-design/{p-4395d3fd.entry.js → p-da5def0e.entry.js} +2 -2
- package/dist/ptcw-design/{p-6a8084c2.entry.js → p-de741ac8.entry.js} +2 -2
- package/dist/ptcw-design/{p-611cee92.entry.js → p-fc0afcf1.entry.js} +2 -2
- package/dist/ptcw-design/ptc-multi-select.entry.esm.js.map +1 -0
- package/dist/ptcw-design/ptcw-design.esm.js +1 -1
- package/dist/types/components/atoms/ptc-select/ptc-select.d.ts +3 -0
- package/package.json +1 -1
- package/dist/cjs/my-component.ptc-button.ptc-spacer.entry.cjs.js.map +0 -1
- package/dist/cjs/my-component_3.cjs.entry.js +0 -247
- package/dist/cjs/ptc-multi-select.ptc-select.entry.cjs.js.map +0 -1
- package/dist/components/p-D12rZh_N.js.map +0 -1
- package/dist/esm/my-component.ptc-button.ptc-spacer.entry.js.map +0 -1
- package/dist/esm/my-component_3.entry.js +0 -243
- package/dist/esm/ptc-multi-select.ptc-select.entry.js.map +0 -1
- package/dist/ptcw-design/my-component.ptc-button.ptc-spacer.entry.esm.js.map +0 -1
- package/dist/ptcw-design/p-71c42440.entry.js +0 -2
- package/dist/ptcw-design/p-71c42440.entry.js.map +0 -1
- package/dist/ptcw-design/p-c58a65cb.entry.js +0 -2
- package/dist/ptcw-design/p-c58a65cb.entry.js.map +0 -1
- package/dist/ptcw-design/ptc-multi-select.ptc-select.entry.esm.js.map +0 -1
- /package/dist/ptcw-design/{p-d50fafce.entry.js.map → p-030050c6.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-8ac60356.entry.js.map → p-03e35969.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-691a8eda.entry.js.map → p-094f1ed3.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-8d804339.entry.js.map → p-0acf6720.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-78d69f8f.entry.js.map → p-125a12d0.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-beff3a27.entry.js.map → p-17a89ad7.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-f23e33af.entry.js.map → p-42d10c1c.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-bb3383e9.entry.js.map → p-45a93565.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-de6c1bff.entry.js.map → p-4b8d6128.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-2f7aa5e0.entry.js.map → p-56099bda.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-2556892b.entry.js.map → p-5a290808.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-8bf6c17b.entry.js.map → p-659210c6.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-5e0430a3.entry.js.map → p-67a04fd5.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-59c2ac1e.entry.js.map → p-6ce2bfc0.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-378c5cb0.entry.js.map → p-70a4ca49.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-3885d818.entry.js.map → p-8e11fe26.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-11e6acb7.entry.js.map → p-b37d3919.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-26c3da78.entry.js.map → p-b95cdf15.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-4395d3fd.entry.js.map → p-da5def0e.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-6a8084c2.entry.js.map → p-de741ac8.entry.js.map} +0 -0
- /package/dist/ptcw-design/{p-611cee92.entry.js.map → p-fc0afcf1.entry.js.map} +0 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-ByQUzqQb.js');
|
|
4
|
+
var index$1 = require('./index-QQdgqPAW.js');
|
|
5
|
+
|
|
6
|
+
const ptcMultiSelectCss = ".ptc-multi-select{position:relative;display:block;margin-bottom:var(--ptc-element-spacing-04)}.ptc-multi-select.invalid::before{content:\"\";position:absolute;width:calc(100% + 16px);height:calc(100% + 8px);background:#fef3f3;display:flex;flex-direction:column;justify-content:center;z-index:0;left:50%;top:50%;transform:translate(-50%, -50%)}.ptc-multi-select.invalid .mdc-select-helper-text--validation-msg{z-index:2;opacity:1;position:relative;color:#af3231;font-family:var(--ptc-font-latin);font-size:var(--ptc-font-size-xx-small);font-style:normal;font-weight:var(--ptc-font-weight-semibold);line-height:var(--ptc-line-height-densest);opacity:1;height:auto;margin-left:8px;margin-top:var(--ptc-element-spacing-02)}.ptc-multi-select.invalid .mdc-select-helper-text--validation-msg svg{transform:translate(-8px, 3px)}.ptc-multi-select .multi-select-label{display:block;font-size:var(--ptc-font-size-xx-small);font-weight:var(--ptc-font-weight-semibold);line-height:normal;margin-bottom:var(--ptc-element-spacing-01);z-index:1;position:relative;color:#40434a}.ptc-multi-select .selected-items{cursor:pointer;background-color:#fff;border:1px solid rgba(0, 0, 0, 0.38);padding:8px;border-radius:0px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--color-gray-12);font-family:var(--ptc-font-latin);font-size:var(--ptc-font-size-xx-small);font-weight:var(--ptc-font-weight-regular);max-width:100%;max-height:34px;overflow:hidden;line-height:24px;display:flex;align-items:center}.ptc-multi-select .selected-items:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline);outline-offset:-4px}.ptc-multi-select .selected-items:focus{border:2px solid var(--color-blue-07)}.ptc-multi-select .selected-items[aria-expanded]{border:2px solid var(--color-blue-07)}.ptc-multi-select .selected-items .input-text{width:calc(100% - 18px);display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;text-overflow:ellipsis}.ptc-multi-select .multi-select-icon{fill:rgba(0, 0, 0, 0.54);position:absolute;right:var(--ptc-element-spacing-02);width:18px;height:18px;margin:0 auto}.ptc-multi-select .multi-select-icon .multi-arrow-svg{transform:translate(-50%, 25%);position:relative;left:50%;bottom:25%}.ptc-multi-select .dropdown{display:none;list-style:none;padding:0;margin:0;border:1px solid #ccc;max-height:350px;overflow-y:auto;position:absolute;width:100%;background-color:#fff;z-index:1000}.ptc-multi-select .dropdown.show{display:block}.ptc-multi-select .dropdown li{display:flex;align-items:center;padding:5px 8px;cursor:pointer;color:var(--color-gray-10);position:relative}.ptc-multi-select .dropdown li:hover,.ptc-multi-select .dropdown li:focus-within{background-color:var(--color-gray-02)}.ptc-multi-select .dropdown li.selected{background-color:var(--color-gray-02)}.ptc-multi-select .dropdown li.selected:hover{background-color:var(--color-gray-04)}.ptc-multi-select .dropdown li label{display:-webkit-box;font-family:var(--ptc-font-latin);font-size:var(--ptc-font-size-xx-small);position:relative;padding-left:22px;cursor:pointer;width:100%;overflow:hidden;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;text-overflow:ellipsis;line-height:24px}.ptc-multi-select .dropdown li{}.ptc-multi-select .dropdown li:focus-within{background-color:var(--color-gray-02);outline:none}.ptc-multi-select .dropdown li:last-child{border-bottom:none}.ptc-multi-select .dropdown input[type=checkbox]{position:absolute;opacity:0;cursor:pointer}.ptc-multi-select .dropdown input[type=checkbox]:checked{background-color:var(--color-green-07)}.ptc-multi-select .dropdown{}.ptc-multi-select .dropdown label::before{content:\"\";position:absolute;left:0;top:5px;width:14px;height:14px;background-color:#fff;border:1px solid #ccc;box-sizing:border-box}.ptc-multi-select .dropdown{}.ptc-multi-select .dropdown input[type=checkbox]:checked+label::before{background-color:var(--color-green-07);border-color:var(--color-green-07)}.ptc-multi-select .dropdown input[type=checkbox]:checked+label::after{content:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.15341 1.14134C7.0572 1.04719 6.94024 1 6.80262 1C6.66499 1 6.54771 1.04719 6.45158 1.14134L3.06571 4.45979L1.5485 2.96965C1.45197 2.8755 1.33501 2.82831 1.19738 2.82831C1.05976 2.82831 0.942797 2.8755 0.846348 2.96965L0.144437 3.65645C0.0482247 3.75091 0 3.86528 0 4.00004C0 4.13472 0.0482247 4.2494 0.144437 4.34355L2.01277 6.17186L2.71492 6.85866C2.81113 6.95312 2.92809 7 3.06571 7C3.20334 7 3.3203 6.95312 3.41675 6.85866L4.11866 6.17186L7.85556 2.51525C7.95177 2.42086 8 2.30641 8 2.17173C8 2.03705 7.95177 1.9226 7.85556 1.82814L7.15341 1.14134Z' fill='white'/%3E%3C/svg%3E\");position:absolute;left:3px;top:0px;color:white;width:8px;height:24px}.ptc-multi-select button.ddl-click-text{all:unset;cursor:pointer;color:var(--color-gray-7);text-decoration:underline;font-size:var(--ptc-font-size-xx-small);font-weight:var(--ptc-font-weight-semibold)}.ptc-multi-select .tooltip{position:absolute;transform:translate(0, -12px);z-index:1001;padding:8px;color:var(--color-white);font-size:var(--ptc-font-size-xxx-small);font-weight:var(--ptc-font-weight-semibold);background:var(--color-gray-09);box-shadow:0px 2px 4px rgba(0, 0, 0, 0.3);border:none;border-radius:2px;width:auto;height:-moz-fit-content;height:fit-content;text-align:left;text-shadow:none;white-space:normal}.ptc-multi-select .tooltip::after{position:absolute;content:\"\";bottom:0px;border:8px solid transparent;border-top:8px solid var(--color-gray-09);left:50%;transform:translate(-50%, 100%)}@media only screen and (min-width: 992px){.ptc-multi-select .tooltip{width:273px;transform:translate(-100%, 80%)}.ptc-multi-select .tooltip::after{right:8px;left:auto;transform:translateY(100%)}}.ptc-multi-select .tooltip span{word-break:initial}";
|
|
7
|
+
|
|
8
|
+
const PtcMultiSelect = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
index.registerInstance(this, hostRef);
|
|
11
|
+
this.ptcMultiSelectLoaded = index.createEvent(this, "ptcMultiSelectLoaded");
|
|
12
|
+
}
|
|
13
|
+
get el() { return index.getElement(this); }
|
|
14
|
+
items = [
|
|
15
|
+
// Initialize with your items, setting 'selected' to false
|
|
16
|
+
{
|
|
17
|
+
text: "Lorem Ipsum dolor sit amet",
|
|
18
|
+
selected: false,
|
|
19
|
+
ptcDataEloquaName: "data-eloqua-name",
|
|
20
|
+
ptcDataTargetEloquaName: "data-target-eloqua-name",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
text: "Consectetur adipiscing elit",
|
|
24
|
+
selected: false,
|
|
25
|
+
ptcDataEloquaName: "data-eloqua-name",
|
|
26
|
+
ptcDataTargetEloquaName: "data-target-eloqua-name",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
text: "Sed do eiusmod tempor",
|
|
30
|
+
selected: false,
|
|
31
|
+
ptcDataEloquaName: "data-eloqua-name",
|
|
32
|
+
ptcDataTargetEloquaName: "data-target-eloqua-name",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
text: "Incididunt ut labore",
|
|
36
|
+
selected: false,
|
|
37
|
+
ptcDataEloquaName: "data-eloqua-name",
|
|
38
|
+
ptcDataTargetEloquaName: "data-target-eloqua-name",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
text: "Et dolore magna aliqua",
|
|
42
|
+
selected: false,
|
|
43
|
+
ptcDataEloquaName: "data-eloqua-name",
|
|
44
|
+
ptcDataTargetEloquaName: "data-target-eloqua-name",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
text: "Duis aute irure dolor",
|
|
48
|
+
selected: false,
|
|
49
|
+
ptcDataEloquaName: "data-eloqua-name",
|
|
50
|
+
ptcDataTargetEloquaName: "data-target-eloqua-name",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
text: "In reprehenderit in voluptate",
|
|
54
|
+
selected: false,
|
|
55
|
+
ptcDataEloquaName: "data-eloqua-name",
|
|
56
|
+
ptcDataTargetEloquaName: "data-target-eloqua-name",
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
label = "label";
|
|
60
|
+
selectAllText = "Select All";
|
|
61
|
+
clearAllText = "Clear Selected Items";
|
|
62
|
+
isRequired = false;
|
|
63
|
+
helpertext = "This field is required";
|
|
64
|
+
placeholderText = "Please select a company";
|
|
65
|
+
showDropdown = false;
|
|
66
|
+
language = "en";
|
|
67
|
+
isValid = true;
|
|
68
|
+
selectedItemsCount = 0;
|
|
69
|
+
hasInteracted = false;
|
|
70
|
+
tooltipText = "";
|
|
71
|
+
tooltipVisible = false;
|
|
72
|
+
tooltipPosition = {
|
|
73
|
+
top: 0,
|
|
74
|
+
left: 0,
|
|
75
|
+
};
|
|
76
|
+
ptcMultiSelectLoaded;
|
|
77
|
+
// To track the index of the focused item
|
|
78
|
+
focusedItemIndex = -1;
|
|
79
|
+
componentWillLoad() {
|
|
80
|
+
this.language = index$1.getLanguageFromURL();
|
|
81
|
+
// Initialize selectedItemsCount based on initial selections
|
|
82
|
+
this.selectedItemsCount = this.items.filter((item) => item.selected).length;
|
|
83
|
+
}
|
|
84
|
+
componentDidLoad() {
|
|
85
|
+
this.ptcMultiSelectLoaded.emit();
|
|
86
|
+
}
|
|
87
|
+
handleDocumentClick(event) {
|
|
88
|
+
const clickedInside = this.el.contains(event.target);
|
|
89
|
+
if (!clickedInside) {
|
|
90
|
+
this.showDropdown = false;
|
|
91
|
+
this.selectedItemsCount = this.items.filter((item) => item.selected).length;
|
|
92
|
+
this.updateValidity();
|
|
93
|
+
this.focusedItemIndex = -1;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
toggleDropdown() {
|
|
97
|
+
this.showDropdown = !this.showDropdown;
|
|
98
|
+
this.hasInteracted = true;
|
|
99
|
+
if (this.showDropdown) {
|
|
100
|
+
requestAnimationFrame(() => {
|
|
101
|
+
this.focusFirstItem();
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.selectedItemsCount = this.items.filter((item) => item.selected).length;
|
|
106
|
+
this.updateValidity();
|
|
107
|
+
this.focusedItemIndex = -1;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async focusToggleButton() {
|
|
111
|
+
const toggleButton = this.el.querySelector(".selected-items");
|
|
112
|
+
if (toggleButton) {
|
|
113
|
+
toggleButton.focus();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
handleBlur = () => {
|
|
117
|
+
this.hasInteracted = true;
|
|
118
|
+
this.updateValidity();
|
|
119
|
+
};
|
|
120
|
+
toggleItemSelection(index) {
|
|
121
|
+
this.items = [
|
|
122
|
+
...this.items.slice(0, index),
|
|
123
|
+
{ ...this.items[index], selected: !this.items[index].selected },
|
|
124
|
+
...this.items.slice(index + 1),
|
|
125
|
+
];
|
|
126
|
+
this.selectedItemsCount = this.items.filter((item) => item.selected).length;
|
|
127
|
+
this.updateValidity();
|
|
128
|
+
}
|
|
129
|
+
updateValidity = () => {
|
|
130
|
+
if (this.hasInteracted && this.isRequired && !this.showDropdown) {
|
|
131
|
+
this.isValid = this.selectedItemsCount > 0;
|
|
132
|
+
this.setHelperText();
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.isValid = true;
|
|
136
|
+
this.setHelperText();
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
selectAllItems = (event) => {
|
|
140
|
+
event.preventDefault();
|
|
141
|
+
event.stopPropagation();
|
|
142
|
+
this.items = this.items.map((item) => ({ ...item, selected: true }));
|
|
143
|
+
this.selectedItemsCount = this.items.length;
|
|
144
|
+
this.updateValidity();
|
|
145
|
+
};
|
|
146
|
+
clearSelectedItems = (event) => {
|
|
147
|
+
event.preventDefault();
|
|
148
|
+
event.stopPropagation();
|
|
149
|
+
this.items = this.items.map((item) => ({ ...item, selected: false }));
|
|
150
|
+
this.selectedItemsCount = 0;
|
|
151
|
+
this.updateValidity();
|
|
152
|
+
};
|
|
153
|
+
getValidationMessage(type) {
|
|
154
|
+
return index.ValidationMessages[this.language][type];
|
|
155
|
+
}
|
|
156
|
+
setHelperText() {
|
|
157
|
+
this.helpertext = this.getValidationMessage("select");
|
|
158
|
+
}
|
|
159
|
+
showTooltip(event, text) {
|
|
160
|
+
this.tooltipText = text;
|
|
161
|
+
// this.tooltipPosition = {
|
|
162
|
+
// top: 100, // Adjust as necessary to position above the item
|
|
163
|
+
// left: -rect.left + 624.1,
|
|
164
|
+
// };
|
|
165
|
+
this.tooltipVisible = true;
|
|
166
|
+
}
|
|
167
|
+
hideTooltip() {
|
|
168
|
+
this.tooltipVisible = false;
|
|
169
|
+
}
|
|
170
|
+
// Keyboard Accessibility Handlers
|
|
171
|
+
handleKeyDownToggle(event) {
|
|
172
|
+
switch (event.key) {
|
|
173
|
+
case "Enter":
|
|
174
|
+
case " ":
|
|
175
|
+
event.preventDefault();
|
|
176
|
+
this.toggleDropdown();
|
|
177
|
+
break;
|
|
178
|
+
case "ArrowDown":
|
|
179
|
+
event.preventDefault();
|
|
180
|
+
if (!this.showDropdown) {
|
|
181
|
+
this.toggleDropdown();
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this.focusNextItem();
|
|
185
|
+
}
|
|
186
|
+
break;
|
|
187
|
+
case "ArrowUp":
|
|
188
|
+
event.preventDefault();
|
|
189
|
+
if (!this.showDropdown) {
|
|
190
|
+
this.toggleDropdown();
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
this.focusPreviousItem();
|
|
194
|
+
}
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
handleKeyDownItem(event, index) {
|
|
199
|
+
const isAllSelected = this.selectedItemsCount === this.items.length &&
|
|
200
|
+
this.items.length > 0;
|
|
201
|
+
switch (event.key) {
|
|
202
|
+
case "ArrowDown":
|
|
203
|
+
event.preventDefault();
|
|
204
|
+
this.focusNextItem();
|
|
205
|
+
break;
|
|
206
|
+
case "ArrowUp":
|
|
207
|
+
event.preventDefault();
|
|
208
|
+
this.focusPreviousItem();
|
|
209
|
+
break;
|
|
210
|
+
case "Enter":
|
|
211
|
+
case " ":
|
|
212
|
+
event.preventDefault();
|
|
213
|
+
if (index === 0) {
|
|
214
|
+
// First item is "Select All/Clear Selected Items"
|
|
215
|
+
if (isAllSelected) {
|
|
216
|
+
this.clearSelectedItems(event);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
this.selectAllItems(event);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
this.toggleItemSelection(index - 1);
|
|
224
|
+
}
|
|
225
|
+
break;
|
|
226
|
+
case "Escape":
|
|
227
|
+
event.preventDefault();
|
|
228
|
+
this.showDropdown = false;
|
|
229
|
+
this.focusToggleButton();
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
focusFirstItem() {
|
|
234
|
+
if (this.items.length + 1 > 0) {
|
|
235
|
+
this.focusedItemIndex = 0;
|
|
236
|
+
this.focusItem(this.focusedItemIndex);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
focusLastItem() {
|
|
240
|
+
if (this.items.length + 1 > 0) {
|
|
241
|
+
this.focusedItemIndex = this.items.length;
|
|
242
|
+
this.focusItem(this.focusedItemIndex);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
focusNextItem() {
|
|
246
|
+
if (this.focusedItemIndex < this.items.length) {
|
|
247
|
+
this.focusedItemIndex += 1;
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
this.focusedItemIndex = 0;
|
|
251
|
+
}
|
|
252
|
+
this.focusItem(this.focusedItemIndex);
|
|
253
|
+
}
|
|
254
|
+
focusPreviousItem() {
|
|
255
|
+
if (this.focusedItemIndex > 0) {
|
|
256
|
+
this.focusedItemIndex -= 1;
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
this.focusedItemIndex = this.items.length; // Loop to last
|
|
260
|
+
}
|
|
261
|
+
this.focusItem(this.focusedItemIndex);
|
|
262
|
+
}
|
|
263
|
+
focusItem(index) {
|
|
264
|
+
if (index === 0) {
|
|
265
|
+
const selectAllButton = this.el.querySelector(`#multi-select-item-0 > button`);
|
|
266
|
+
if (selectAllButton) {
|
|
267
|
+
selectAllButton.focus();
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
const checkbox = this.el.querySelector(`#multi-select-item-${index} input[type="checkbox"]`);
|
|
272
|
+
if (checkbox) {
|
|
273
|
+
checkbox.focus();
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
render() {
|
|
278
|
+
const selectedItems = this.items.filter((item) => item.selected);
|
|
279
|
+
const selectedItemsCount = selectedItems.length;
|
|
280
|
+
const isAllSelected = selectedItemsCount === this.items.length && this.items.length > 0;
|
|
281
|
+
const buttonLabel = isAllSelected
|
|
282
|
+
? this.clearAllText
|
|
283
|
+
: this.selectAllText;
|
|
284
|
+
const buttonAction = isAllSelected
|
|
285
|
+
? this.clearSelectedItems
|
|
286
|
+
: this.selectAllItems;
|
|
287
|
+
let displayText = `${selectedItemsCount} selected`;
|
|
288
|
+
if (selectedItemsCount === 0) {
|
|
289
|
+
displayText = this.placeholderText;
|
|
290
|
+
}
|
|
291
|
+
if (selectedItemsCount === 1) {
|
|
292
|
+
displayText = selectedItems[0].text;
|
|
293
|
+
}
|
|
294
|
+
return (index.h(index.Host, { key: '8de6eea9194b0ce0d3e5da4d833cdb27702afcac', class: {
|
|
295
|
+
"ptc-multi-select": true,
|
|
296
|
+
invalid: !this.isValid,
|
|
297
|
+
"mf-listen": true,
|
|
298
|
+
} }, index.h("label", { key: '3fc69c9626bf733cd1d3c03291bd82ea7852c56c', class: "multi-select-label", id: `multi-select-label-${this.label}` }, this.label), index.h("div", { key: '549d752ae8d127096a8512858fa07ad9e8950fc3', class: "selected-items multi-selected-items", role: "button", "aria-haspopup": "listbox", "aria-expanded": this.showDropdown, "aria-labelledby": `multi-select-label-${this.label}`, tabIndex: 0, onClick: () => this.toggleDropdown(), onKeyDown: (event) => this.handleKeyDownToggle(event) }, index.h("div", { key: 'd2edd3be98022ddde774ce6c1f14ba70b1f393e8', class: "input-text" }, displayText), index.h("span", { key: '6d287f1409fd76b5e317983b140015c6cd180d3b', class: "multi-select-icon" }, index.h("svg", { key: 'e1141e611b39f7de2723c29d8faecbef69a96d8a', class: "multi-arrow-svg", width: "10", height: "10", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { key: 'e20dd52b64e757d4fac42f82a63c2fbbd4eb9fd2', d: "M1.375 1.875L5 5.5L8.625 1.875L9.9375 3.1875L5 8.125L0.0625 3.1875L1.375 1.875Z" })))), index.h("ul", { key: '8d920bf39f083c74c4b567a25983c4a281ad6c43', class: "dropdown" + (this.showDropdown ? " show" : ""), role: "listbox", "aria-labelledby": `multi-select-label-${this.label}`, tabIndex: -1 }, index.h("li", { key: 'fdcc2f4c76094b1a191896685bfad12cdb386186', id: `multi-select-item-0`, role: "option", "aria-selected": isAllSelected, class: { selected: isAllSelected }, tabIndex: -1, onKeyDown: (event) => this.handleKeyDownItem(event, 0) }, index.h("button", { key: '3aeff2dde4b50d979783a64437bbf2309e817f19', onClick: (event) => {
|
|
299
|
+
event.preventDefault();
|
|
300
|
+
event.stopPropagation();
|
|
301
|
+
buttonAction(event);
|
|
302
|
+
}, class: "ddl-click-text" }, buttonLabel)), this.items.map((item, index$1) => (index.h("li", { key: index$1 + 1, id: `multi-select-item-${index$1 + 1}`, role: "option", "aria-selected": item.selected, class: { selected: item.selected }, tabIndex: -1, onMouseEnter: (event) => this.checkOverflow(event, item.text), onMouseLeave: () => this.hideTooltip(), onKeyDown: (event) => this.handleKeyDownItem(event, index$1 + 1), onClick: (event) => {
|
|
303
|
+
event.preventDefault();
|
|
304
|
+
event.stopPropagation();
|
|
305
|
+
this.toggleItemSelection(index$1);
|
|
306
|
+
} }, index.h("input", { class: "multi-checkbox", type: "checkbox", id: `checkbox-${index$1}`, checked: item.selected, "data-eloqua-name": item.ptcDataEloquaName, "data-target-eloqua-name": item.ptcDataTargetEloquaName, required: this.isRequired, onClick: (event) => {
|
|
307
|
+
event.stopPropagation(); // Prevents the dropdown from closing
|
|
308
|
+
this.toggleItemSelection(index$1);
|
|
309
|
+
}, onBlur: this.handleBlur }), index.h("label", { htmlFor: `checkbox-${index$1}` }, item.text))))), this.tooltipVisible && (index.h("div", { key: 'fe4606ca2952d820e63ee3f23784bf95e5e9e628', class: "tooltip", style: {
|
|
310
|
+
top: `${this.tooltipPosition.top}px`,
|
|
311
|
+
left: `${this.tooltipPosition.left}px`,
|
|
312
|
+
} }, this.tooltipText)), index.h("div", { key: 'e145e438265fca4e030328599c984796ba1448cb', id: "tbd", class: "mdc-select-helper-text mdc-select-helper-text--validation-msg" }, index.h("svg", { key: '2a430f8564b808ee0a78c9543f2533fa28698c7c', class: "select-error-svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, index.h("g", { key: '05ff97a893b39a320e55da04b06826ed1599c9af', "clip-path": "url(#clip0_12_1424)" }, index.h("path", { key: '7185785667f302a1c432ba0611f643e2e58d0364', "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M11.3156 0L16 4.68444V11.3156L11.3156 16H4.68444L0 11.3156V4.68444L4.68444 0H11.3156ZM8 10.4C7.36 10.4 6.84444 10.9156 6.84444 11.5556C6.84444 12.1956 7.36 12.7111 8 12.7111C8.64 12.7111 9.15556 12.1956 9.15556 11.5556C9.15556 10.9156 8.64 10.4 8 10.4ZM8.88889 3.55556H7.11111V8.88889H8.88889V3.55556Z", fill: "#AF3231" })), index.h("defs", { key: '0ed202fb9fa9e52a259e7e5e7a37ee4ba78f8740' }, index.h("clipPath", { key: '860b09eb1e58bd9cc8efccaeaffb7f3e4fe21444', id: "clip0_12_1424" }, index.h("rect", { key: '22cb212fd2bf6f839f7f9d433ba8256405f3d72a', width: "16", height: "16", fill: "white" })))), this.helpertext)));
|
|
313
|
+
}
|
|
314
|
+
// Ensure that checkOverflow is inside the class
|
|
315
|
+
checkOverflow(event, text) {
|
|
316
|
+
const target = event.currentTarget;
|
|
317
|
+
const label = target.querySelector("label");
|
|
318
|
+
if (label && label.scrollHeight > label.clientHeight) {
|
|
319
|
+
this.showTooltip(event, text);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
PtcMultiSelect.style = ptcMultiSelectCss;
|
|
324
|
+
|
|
325
|
+
exports.ptc_multi_select = PtcMultiSelect;
|
|
326
|
+
//# sourceMappingURL=ptc-multi-select.entry.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ptc-multi-select.entry.cjs.js","sources":["src/components/molecules/ptc-multi-select/ptc-multi-select.scss?tag=ptc-multi-select","src/components/molecules/ptc-multi-select/ptc-multi-select.tsx"],"sourcesContent":["@use 'mixins' as *;\r\n.ptc-multi-select {\r\n\tposition: relative;\r\n\tdisplay: block;\r\n\tmargin-bottom: var(--ptc-element-spacing-04);\r\n\r\n\t&.invalid {\r\n\t\t&::before {\r\n\t\t\tcontent: \"\";\r\n\t\t\tposition: absolute;\r\n\t\t\twidth: calc(100% + 16px);\r\n\t\t\theight: calc(100% + 8px);\r\n\t\t\tbackground: #fef3f3;\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\tjustify-content: center;\r\n\t\t\tz-index: 0;\r\n\t\t\tleft: 50%;\r\n\t\t\ttop: 50%;\r\n\t\t\ttransform: translate(-50%, -50%);\r\n\t\t}\r\n\r\n\t\t.mdc-select-helper-text--validation-msg {\r\n\t\t\tz-index: 2;\r\n\t\t\topacity: 1;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\tcolor: #af3231;\r\n\t\t\tfont-family: var(--ptc-font-latin);\r\n\t\t\tfont-size: var(--ptc-font-size-xx-small);\r\n\t\t\tfont-style: normal;\r\n\t\t\tfont-weight: var(--ptc-font-weight-semibold);\r\n\t\t\tline-height: var(--ptc-line-height-densest);\r\n\t\t\topacity: 1;\r\n\t\t\theight: auto;\r\n\t\t\tmargin-left: 8px;\r\n\t\t\tmargin-top: var(--ptc-element-spacing-02);\r\n\r\n\t\t\tsvg {\r\n\t\t\t\ttransform: translate(-8px, 3px);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.multi-select-label {\r\n\t\tdisplay: block;\r\n\t\tfont-size: var(--ptc-font-size-xx-small);\r\n\t\tfont-weight: var(--ptc-font-weight-semibold);\r\n\t\tline-height: normal;\r\n\t\tmargin-bottom: var(--ptc-element-spacing-01);\r\n\t\tz-index: 1;\r\n\t\tposition: relative;\r\n\t\tcolor: #40434a;\r\n\t}\r\n\r\n\t.selected-items {\r\n\t\tcursor: pointer;\r\n\t\tbackground-color: #fff;\r\n\t\tborder: 1px solid rgba(0, 0, 0, 0.38);\r\n\t\tpadding: 8px;\r\n\t\tborder-radius: 0px;\r\n\t\tposition: relative;\r\n\t\tuser-select: none;\r\n\t\tcolor: var(--color-gray-12);\r\n\t\tfont-family: var(--ptc-font-latin);\r\n\t\tfont-size: var(--ptc-font-size-xx-small);\r\n\t\tfont-weight: var(--ptc-font-weight-regular);\r\n\t\tmax-width: 100%;\r\n\t\tmax-height: 34px;\r\n\t\toverflow: hidden;\r\n\t\tline-height: 24px;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\r\n\t\t&:focus-visible {\r\n\t\t\t@include base-focus-state;\r\n\t\t\toutline-offset: -4px;\r\n\t\t}\r\n\r\n\t\t&:focus {\r\n\t\t\tborder: 2px solid var(--color-blue-07);\r\n\t\t}\r\n\r\n\t\t&[aria-expanded] {\r\n\t\t\tborder: 2px solid var(--color-blue-07);\r\n\t\t}\r\n\r\n\t\t.input-text {\r\n\t\t\twidth: calc(100% - 18px);\r\n\t\t\tdisplay: -webkit-box;\r\n\t\t\t-webkit-line-clamp: 1;\r\n\t\t\tline-clamp: 1;\r\n\t\t\t-webkit-box-orient: vertical;\r\n\t\t\ttext-overflow: ellipsis;\r\n\t\t}\r\n\t}\r\n\r\n\t.multi-select-icon {\r\n\t\tfill: rgba(0, 0, 0, 0.54);\r\n\t\tposition: absolute;\r\n\t\tright: var(--ptc-element-spacing-02);\r\n\t\twidth: 18px;\r\n\t\theight: 18px;\r\n\t\tmargin: 0 auto;\r\n\r\n\t\t.multi-arrow-svg {\r\n\t\t\ttransform: translate(-50%, 25%);\r\n\t\t\tposition: relative;\r\n\t\t\tleft: 50%;\r\n\t\t\tbottom: 25%;\r\n\t\t}\r\n\t}\r\n\r\n\t.dropdown {\r\n\t\tdisplay: none;\r\n\t\tlist-style: none;\r\n\t\tpadding: 0;\r\n\t\tmargin: 0;\r\n\t\tborder: 1px solid #ccc;\r\n\t\tmax-height: 350px;\r\n\t\toverflow-y: auto;\r\n\t\tposition: absolute;\r\n\t\twidth: 100%;\r\n\t\tbackground-color: #fff;\r\n\t\tz-index: 1000;\r\n\r\n\t\t&.show {\r\n\t\t\tdisplay: block;\r\n\t\t}\r\n\r\n\t\tli {\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tpadding: 5px 8px;\r\n\t\t\tcursor: pointer;\r\n\t\t\tcolor: var(--color-gray-10);\r\n\t\t\tposition: relative; // Ensure positioning for child elements\r\n\r\n\t\t\t&:hover,\r\n\t\t\t&:focus-within {\r\n\t\t\t\tbackground-color: var(--color-gray-02);\r\n\t\t\t}\r\n\r\n\t\t\t&.selected {\r\n\t\t\t\tbackground-color: var(--color-gray-02);\r\n\r\n\t\t\t\t&:hover {\r\n\t\t\t\t\tbackground-color: var(--color-gray-04);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlabel {\r\n\t\t\t\tdisplay: -webkit-box;\r\n\t\t\t\tfont-family: var(--ptc-font-latin);\r\n\t\t\t\tfont-size: var(--ptc-font-size-xx-small);\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tpadding-left: 22px; //(22-14=8)\r\n\t\t\t\tcursor: pointer;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\toverflow: hidden;\r\n\t\t\t\t-webkit-line-clamp: 4;\r\n\t\t\t\tline-clamp: 4;\r\n\t\t\t\t-webkit-box-orient: vertical;\r\n\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\tline-height: 24px;\r\n\t\t\t}\r\n\r\n\t\t\t/* Focused item styles */\r\n\t\t\t&:focus-within {\r\n\t\t\t\tbackground-color: var(--color-gray-02);\r\n\t\t\t\toutline: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tli:last-child {\r\n\t\t\tborder-bottom: none;\r\n\t\t}\r\n\r\n\t\tinput[type=\"checkbox\"] {\r\n\t\t\tposition: absolute;\r\n\t\t\topacity: 0;\r\n\t\t\tcursor: pointer;\r\n\r\n\t\t\t&:checked {\r\n\t\t\t\tbackground-color: var(--color-green-07);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/* Custom square for the checkbox */\r\n\t\tlabel::before {\r\n\t\t\tcontent: \"\";\r\n\t\t\tposition: absolute;\r\n\t\t\tleft: 0;\r\n\t\t\ttop: 5px;\r\n\t\t\twidth: 14px;\r\n\t\t\theight: 14px;\r\n\t\t\tbackground-color: #fff;\r\n\t\t\tborder: 1px solid #ccc;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t}\r\n\r\n\t\t/* When checkbox is checked, change background color */\r\n\t\tinput[type=\"checkbox\"]:checked + label::before {\r\n\t\t\tbackground-color: var(--color-green-07);\r\n\t\t\tborder-color: var(--color-green-07);\r\n\t\t}\r\n\r\n\t\tinput[type=\"checkbox\"]:checked + label::after {\r\n\t\t\tcontent: url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.15341 1.14134C7.0572 1.04719 6.94024 1 6.80262 1C6.66499 1 6.54771 1.04719 6.45158 1.14134L3.06571 4.45979L1.5485 2.96965C1.45197 2.8755 1.33501 2.82831 1.19738 2.82831C1.05976 2.82831 0.942797 2.8755 0.846348 2.96965L0.144437 3.65645C0.0482247 3.75091 0 3.86528 0 4.00004C0 4.13472 0.0482247 4.2494 0.144437 4.34355L2.01277 6.17186L2.71492 6.85866C2.81113 6.95312 2.92809 7 3.06571 7C3.20334 7 3.3203 6.95312 3.41675 6.85866L4.11866 6.17186L7.85556 2.51525C7.95177 2.42086 8 2.30641 8 2.17173C8 2.03705 7.95177 1.9226 7.85556 1.82814L7.15341 1.14134Z' fill='white'/%3E%3C/svg%3E\");\r\n\t\t\tposition: absolute;\r\n\t\t\tleft: 3px;\r\n\t\t\ttop: 0px;\r\n\t\t\tcolor: white;\r\n\t\t\twidth: 8px;\r\n\t\t\theight: 24px;\r\n\t\t}\r\n\t}\r\n\r\n\tbutton {\r\n\t\t&.ddl-click-text {\r\n\t\t\tall: unset;\r\n\t\t\tcursor: pointer;\r\n\t\t\tcolor: var(--color-gray-7);\r\n\t\t\ttext-decoration: underline;\r\n\t\t\tfont-size: var(--ptc-font-size-xx-small);\r\n\t\t\tfont-weight: var(--ptc-font-weight-semibold);\r\n\t\t}\r\n\t}\r\n\r\n\t.tooltip {\r\n\t\tposition: absolute;\r\n\t\ttransform: translate(0, -12px);\r\n\t\tz-index: 1001;\r\n\t\tpadding: 8px;\r\n\t\tcolor: var(--color-white);\r\n\t\tfont-size: var(--ptc-font-size-xxx-small);\r\n\t\tfont-weight: var(--ptc-font-weight-semibold);\r\n\t\tbackground: var(--color-gray-09);\r\n\t\tbox-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);\r\n\t\tborder: none;\r\n\t\tborder-radius: 2px; //not standard\r\n\t\twidth: auto;\r\n\t\theight: fit-content;\r\n\t\ttext-align: left;\r\n\t\ttext-shadow: none;\r\n\t\twhite-space: normal;\r\n\r\n\t\t&::after {\r\n\t\t\tposition: absolute;\r\n\t\t\tcontent: \"\";\r\n\t\t\tbottom: 0px;\r\n\t\t\tborder: 8px solid transparent;\r\n\t\t\tborder-top: 8px solid var(--color-gray-09);\r\n\t\t\tleft: 50%;\r\n\t\t\ttransform: translate(-50%, 100%);\r\n\t\t}\r\n\r\n\t\t@include screen-md {\r\n\t\t\twidth: 273px;\r\n\t\t\ttransform: translate(-100%, 80%);\r\n\t\t\t&::after {\r\n\t\t\t\tright: 8px;\r\n\t\t\t\tleft: auto;\r\n\t\t\t\ttransform: translateY(100%);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tspan {\r\n\t\t\tword-break: initial;\r\n\t\t}\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\th,\r\n\tState,\r\n\tHost,\r\n\tProp,\r\n\tListen,\r\n\tElement,\r\n\tMethod,\r\n\tEvent,\r\n\tEventEmitter,\r\n} from \"@stencil/core\";\r\nimport { ValidationMessages } from \"../../../utils/validation-messages\";\r\nimport { getLanguageFromURL } from \"../../../utils/utils\";\r\n\r\n@Component({\r\n\ttag: \"ptc-multi-select\",\r\n\tstyleUrl: \"ptc-multi-select.scss\",\r\n\tshadow: false,\r\n})\r\nexport class PtcMultiSelect {\r\n\t@Element() el: HTMLElement;\r\n\t@Prop({ mutable: true }) items: Array<{\r\n\t\ttext: string;\r\n\t\tselected: boolean;\r\n\t\tptcDataEloquaName: string;\r\n\t\tptcDataTargetEloquaName: string;\r\n\t}> = [\r\n\t\t// Initialize with your items, setting 'selected' to false\r\n\t\t{\r\n\t\t\ttext: \"Lorem Ipsum dolor sit amet\",\r\n\t\t\tselected: false,\r\n\t\t\tptcDataEloquaName: \"data-eloqua-name\",\r\n\t\t\tptcDataTargetEloquaName: \"data-target-eloqua-name\",\r\n\t\t},\r\n\t\t{\r\n\t\t\ttext: \"Consectetur adipiscing elit\",\r\n\t\t\tselected: false,\r\n\t\t\tptcDataEloquaName: \"data-eloqua-name\",\r\n\t\t\tptcDataTargetEloquaName: \"data-target-eloqua-name\",\r\n\t\t},\r\n\t\t{\r\n\t\t\ttext: \"Sed do eiusmod tempor\",\r\n\t\t\tselected: false,\r\n\t\t\tptcDataEloquaName: \"data-eloqua-name\",\r\n\t\t\tptcDataTargetEloquaName: \"data-target-eloqua-name\",\r\n\t\t},\r\n\t\t{\r\n\t\t\ttext: \"Incididunt ut labore\",\r\n\t\t\tselected: false,\r\n\t\t\tptcDataEloquaName: \"data-eloqua-name\",\r\n\t\t\tptcDataTargetEloquaName: \"data-target-eloqua-name\",\r\n\t\t},\r\n\t\t{\r\n\t\t\ttext: \"Et dolore magna aliqua\",\r\n\t\t\tselected: false,\r\n\t\t\tptcDataEloquaName: \"data-eloqua-name\",\r\n\t\t\tptcDataTargetEloquaName: \"data-target-eloqua-name\",\r\n\t\t},\r\n\t\t{\r\n\t\t\ttext: \"Duis aute irure dolor\",\r\n\t\t\tselected: false,\r\n\t\t\tptcDataEloquaName: \"data-eloqua-name\",\r\n\t\t\tptcDataTargetEloquaName: \"data-target-eloqua-name\",\r\n\t\t},\r\n\t\t{\r\n\t\t\ttext: \"In reprehenderit in voluptate\",\r\n\t\t\tselected: false,\r\n\t\t\tptcDataEloquaName: \"data-eloqua-name\",\r\n\t\t\tptcDataTargetEloquaName: \"data-target-eloqua-name\",\r\n\t\t},\r\n\t];\r\n\t@Prop() label: string = \"label\";\r\n\t@Prop() selectAllText: string = \"Select All\";\r\n\t@Prop() clearAllText: string = \"Clear Selected Items\";\r\n\t@Prop() isRequired: boolean = false;\r\n\t@Prop() helpertext: string = \"This field is required\";\r\n\t@Prop() placeholderText: string = \"Please select a company\";\r\n\t@State() showDropdown: boolean = false;\r\n\t@State() language: string = \"en\";\r\n\t@State() isValid: boolean = true;\r\n\r\n\t@State() selectedItemsCount: number = 0;\r\n\t@State() hasInteracted: boolean = false;\r\n\t@State() tooltipText: string = \"\";\r\n\t@State() tooltipVisible: boolean = false;\r\n\t@State() tooltipPosition: { top: number; left: number } = {\r\n\t\ttop: 0,\r\n\t\tleft: 0,\r\n\t};\r\n\r\n\t@Event() ptcMultiSelectLoaded: EventEmitter<void>;\r\n\r\n\t// To track the index of the focused item\r\n\t@State() focusedItemIndex: number = -1;\r\n\r\n\tcomponentWillLoad() {\r\n\t\tthis.language = getLanguageFromURL();\r\n\t\t// Initialize selectedItemsCount based on initial selections\r\n\t\tthis.selectedItemsCount = this.items.filter(\r\n\t\t\t(item) => item.selected,\r\n\t\t).length;\r\n\t}\r\n\r\n\tcomponentDidLoad() {\r\n\t\tthis.ptcMultiSelectLoaded.emit();\r\n\t}\r\n\r\n\t@Listen(\"click\", { target: \"document\" })\r\n\thandleDocumentClick(event: MouseEvent) {\r\n\t\tconst clickedInside = this.el.contains(event.target as Node);\r\n\t\tif (!clickedInside) {\r\n\t\t\tthis.showDropdown = false;\r\n\t\t\tthis.selectedItemsCount = this.items.filter(\r\n\t\t\t\t(item) => item.selected,\r\n\t\t\t).length;\r\n\t\t\tthis.updateValidity();\r\n\t\t\tthis.focusedItemIndex = -1;\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleDropdown() {\r\n\t\tthis.showDropdown = !this.showDropdown;\r\n\t\tthis.hasInteracted = true;\r\n\t\tif (this.showDropdown) {\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tthis.focusFirstItem();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.selectedItemsCount = this.items.filter(\r\n\t\t\t\t(item) => item.selected,\r\n\t\t\t).length;\r\n\t\t\tthis.updateValidity();\r\n\t\t\tthis.focusedItemIndex = -1;\r\n\t\t}\r\n\t}\r\n\r\n\t@Method()\r\n\tasync focusToggleButton() {\r\n\t\tconst toggleButton = this.el.querySelector(\r\n\t\t\t\".selected-items\",\r\n\t\t) as HTMLElement;\r\n\t\tif (toggleButton) {\r\n\t\t\ttoggleButton.focus();\r\n\t\t}\r\n\t}\r\n\r\n\thandleBlur = () => {\r\n\t\tthis.hasInteracted = true;\r\n\t\tthis.updateValidity();\r\n\t};\r\n\r\n\ttoggleItemSelection(index: number) {\r\n\t\tthis.items = [\r\n\t\t\t...this.items.slice(0, index),\r\n\t\t\t{ ...this.items[index], selected: !this.items[index].selected },\r\n\t\t\t...this.items.slice(index + 1),\r\n\t\t];\r\n\t\tthis.selectedItemsCount = this.items.filter(\r\n\t\t\t(item) => item.selected,\r\n\t\t).length;\r\n\t\tthis.updateValidity();\r\n\t}\r\n\r\n\tupdateValidity = () => {\r\n\t\tif (this.hasInteracted && this.isRequired && !this.showDropdown) {\r\n\t\t\tthis.isValid = this.selectedItemsCount > 0;\r\n\t\t\tthis.setHelperText();\r\n\t\t} else {\r\n\t\t\tthis.isValid = true;\r\n\t\t\tthis.setHelperText();\r\n\t\t}\r\n\t};\r\n\r\n\tselectAllItems = (event: Event) => {\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\t\tthis.items = this.items.map((item) => ({ ...item, selected: true }));\r\n\t\tthis.selectedItemsCount = this.items.length;\r\n\t\tthis.updateValidity();\r\n\t};\r\n\r\n\tclearSelectedItems = (event: Event) => {\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\t\tthis.items = this.items.map((item) => ({ ...item, selected: false }));\r\n\t\tthis.selectedItemsCount = 0;\r\n\t\tthis.updateValidity();\r\n\t};\r\n\r\n\tgetValidationMessage(type: string) {\r\n\t\treturn ValidationMessages[this.language][type];\r\n\t}\r\n\r\n\tsetHelperText() {\r\n\t\tthis.helpertext = this.getValidationMessage(\"select\");\r\n\t}\r\n\r\n\tshowTooltip(event: MouseEvent, text: string) {\r\n\t\tif (event) {\r\n\t\t}\r\n\t\tthis.tooltipText = text;\r\n\t\t// this.tooltipPosition = {\r\n\t\t// top: 100, // Adjust as necessary to position above the item\r\n\t\t// left: -rect.left + 624.1,\r\n\t\t// };\r\n\t\tthis.tooltipVisible = true;\r\n\t}\r\n\r\n\thideTooltip() {\r\n\t\tthis.tooltipVisible = false;\r\n\t}\r\n\r\n\t// Keyboard Accessibility Handlers\r\n\thandleKeyDownToggle(event: KeyboardEvent) {\r\n\t\tswitch (event.key) {\r\n\t\t\tcase \"Enter\":\r\n\t\t\tcase \" \":\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tthis.toggleDropdown();\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"ArrowDown\":\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tif (!this.showDropdown) {\r\n\t\t\t\t\tthis.toggleDropdown();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.focusNextItem();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"ArrowUp\":\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tif (!this.showDropdown) {\r\n\t\t\t\t\tthis.toggleDropdown();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.focusPreviousItem();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\thandleKeyDownItem(event: KeyboardEvent, index: number) {\r\n\t\tconst isAllSelected =\r\n\t\t\tthis.selectedItemsCount === this.items.length &&\r\n\t\t\tthis.items.length > 0;\r\n\r\n\t\tswitch (event.key) {\r\n\t\t\tcase \"ArrowDown\":\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tthis.focusNextItem();\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"ArrowUp\":\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tthis.focusPreviousItem();\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"Enter\":\r\n\t\t\tcase \" \":\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tif (index === 0) {\r\n\t\t\t\t\t// First item is \"Select All/Clear Selected Items\"\r\n\t\t\t\t\tif (isAllSelected) {\r\n\t\t\t\t\t\tthis.clearSelectedItems(event);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.selectAllItems(event);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.toggleItemSelection(index - 1);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"Escape\":\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tthis.showDropdown = false;\r\n\t\t\t\tthis.focusToggleButton();\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tfocusFirstItem() {\r\n\t\tif (this.items.length + 1 > 0) {\r\n\t\t\tthis.focusedItemIndex = 0;\r\n\t\t\tthis.focusItem(this.focusedItemIndex);\r\n\t\t}\r\n\t}\r\n\r\n\tfocusLastItem() {\r\n\t\tif (this.items.length + 1 > 0) {\r\n\t\t\tthis.focusedItemIndex = this.items.length;\r\n\t\t\tthis.focusItem(this.focusedItemIndex);\r\n\t\t}\r\n\t}\r\n\r\n\tfocusNextItem() {\r\n\t\tif (this.focusedItemIndex < this.items.length) {\r\n\t\t\tthis.focusedItemIndex += 1;\r\n\t\t} else {\r\n\t\t\tthis.focusedItemIndex = 0;\r\n\t\t}\r\n\t\tthis.focusItem(this.focusedItemIndex);\r\n\t}\r\n\r\n\tfocusPreviousItem() {\r\n\t\tif (this.focusedItemIndex > 0) {\r\n\t\t\tthis.focusedItemIndex -= 1;\r\n\t\t} else {\r\n\t\t\tthis.focusedItemIndex = this.items.length; // Loop to last\r\n\t\t}\r\n\t\tthis.focusItem(this.focusedItemIndex);\r\n\t}\r\n\r\n\tfocusItem(index: number) {\r\n\t\tif (index === 0) {\r\n\t\t\tconst selectAllButton = this.el.querySelector(\r\n\t\t\t\t`#multi-select-item-0 > button`,\r\n\t\t\t) as HTMLElement;\r\n\t\t\tif (selectAllButton) {\r\n\t\t\t\tselectAllButton.focus();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst checkbox = this.el.querySelector(\r\n\t\t\t\t`#multi-select-item-${index} input[type=\"checkbox\"]`,\r\n\t\t\t) as HTMLElement;\r\n\t\t\tif (checkbox) {\r\n\t\t\t\tcheckbox.focus();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst selectedItems = this.items.filter((item) => item.selected);\r\n\t\tconst selectedItemsCount = selectedItems.length;\r\n\t\tconst isAllSelected =\r\n\t\t\tselectedItemsCount === this.items.length && this.items.length > 0;\r\n\t\tconst buttonLabel = isAllSelected\r\n\t\t\t? this.clearAllText\r\n\t\t\t: this.selectAllText;\r\n\t\tconst buttonAction = isAllSelected\r\n\t\t\t? this.clearSelectedItems\r\n\t\t\t: this.selectAllItems;\r\n\r\n\t\tlet displayText = `${selectedItemsCount} selected`;\r\n\t\tif (selectedItemsCount === 0) {\r\n\t\t\tdisplayText = this.placeholderText;\r\n\t\t}\r\n\t\tif (selectedItemsCount === 1) {\r\n\t\t\tdisplayText = selectedItems[0].text;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<Host\r\n\t\t\t\tclass={{\r\n\t\t\t\t\t\"ptc-multi-select\": true,\r\n\t\t\t\t\tinvalid: !this.isValid,\r\n\t\t\t\t\t\"mf-listen\": true,\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<label\r\n\t\t\t\t\tclass=\"multi-select-label\"\r\n\t\t\t\t\tid={`multi-select-label-${this.label}`}\r\n\t\t\t\t>\r\n\t\t\t\t\t{this.label}\r\n\t\t\t\t</label>\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"selected-items multi-selected-items\"\r\n\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\taria-haspopup=\"listbox\"\r\n\t\t\t\t\taria-expanded={this.showDropdown}\r\n\t\t\t\t\taria-labelledby={`multi-select-label-${this.label}`}\r\n\t\t\t\t\ttabIndex={0}\r\n\t\t\t\t\tonClick={() => this.toggleDropdown()}\r\n\t\t\t\t\tonKeyDown={(event: KeyboardEvent) =>\r\n\t\t\t\t\t\tthis.handleKeyDownToggle(event)\r\n\t\t\t\t\t}\r\n\t\t\t\t>\r\n\t\t\t\t\t<div class=\"input-text\">{displayText}</div>\r\n\t\t\t\t\t<span class=\"multi-select-icon\">\r\n\t\t\t\t\t\t<svg\r\n\t\t\t\t\t\t\tclass=\"multi-arrow-svg\"\r\n\t\t\t\t\t\t\twidth=\"10\"\r\n\t\t\t\t\t\t\theight=\"10\"\r\n\t\t\t\t\t\t\tviewBox=\"0 0 10 10\"\r\n\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<path d=\"M1.375 1.875L5 5.5L8.625 1.875L9.9375 3.1875L5 8.125L0.0625 3.1875L1.375 1.875Z\"></path>\r\n\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<ul\r\n\t\t\t\t\tclass={\"dropdown\" + (this.showDropdown ? \" show\" : \"\")}\r\n\t\t\t\t\trole=\"listbox\"\r\n\t\t\t\t\taria-labelledby={`multi-select-label-${this.label}`}\r\n\t\t\t\t\ttabIndex={-1}\r\n\t\t\t\t>\r\n\t\t\t\t\t{/* \"Select All/Clear Selected Items\" as the first list item */}\r\n\t\t\t\t\t<li\r\n\t\t\t\t\t\tid={`multi-select-item-0`}\r\n\t\t\t\t\t\trole=\"option\"\r\n\t\t\t\t\t\taria-selected={isAllSelected}\r\n\t\t\t\t\t\tclass={{ selected: isAllSelected }}\r\n\t\t\t\t\t\ttabIndex={-1}\r\n\t\t\t\t\t\tonKeyDown={(event: KeyboardEvent) =>\r\n\t\t\t\t\t\t\tthis.handleKeyDownItem(event, 0)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\tonClick={(event) => {\r\n\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\tbuttonAction(event);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tclass=\"ddl-click-text\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{buttonLabel}\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</li>\r\n\r\n\t\t\t\t\t{/* Map through the items starting from index 1 */}\r\n\t\t\t\t\t{this.items.map((item, index) => (\r\n\t\t\t\t\t\t<li\r\n\t\t\t\t\t\t\tkey={index + 1}\r\n\t\t\t\t\t\t\tid={`multi-select-item-${index + 1}`}\r\n\t\t\t\t\t\t\trole=\"option\"\r\n\t\t\t\t\t\t\taria-selected={item.selected}\r\n\t\t\t\t\t\t\tclass={{ selected: item.selected }}\r\n\t\t\t\t\t\t\ttabIndex={-1}\r\n\t\t\t\t\t\t\tonMouseEnter={(event) =>\r\n\t\t\t\t\t\t\t\tthis.checkOverflow(event, item.text)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tonMouseLeave={() => this.hideTooltip()}\r\n\t\t\t\t\t\t\tonKeyDown={(event: KeyboardEvent) =>\r\n\t\t\t\t\t\t\t\tthis.handleKeyDownItem(event, index + 1)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tonClick={(event) => {\r\n\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\tthis.toggleItemSelection(index);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tclass=\"multi-checkbox\"\r\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\tid={`checkbox-${index}`}\r\n\t\t\t\t\t\t\t\tchecked={item.selected}\r\n\t\t\t\t\t\t\t\tdata-eloqua-name={item.ptcDataEloquaName}\r\n\t\t\t\t\t\t\t\tdata-target-eloqua-name={\r\n\t\t\t\t\t\t\t\t\titem.ptcDataTargetEloquaName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\trequired={this.isRequired}\r\n\t\t\t\t\t\t\t\tonClick={(event) => {\r\n\t\t\t\t\t\t\t\t\tevent.stopPropagation(); // Prevents the dropdown from closing\r\n\t\t\t\t\t\t\t\t\tthis.toggleItemSelection(index);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonBlur={this.handleBlur}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<label htmlFor={`checkbox-${index}`}>\r\n\t\t\t\t\t\t\t\t{item.text}\r\n\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t</li>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</ul>\r\n\r\n\t\t\t\t{this.tooltipVisible && (\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclass=\"tooltip\"\r\n\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\ttop: `${this.tooltipPosition.top}px`,\r\n\t\t\t\t\t\t\tleft: `${this.tooltipPosition.left}px`,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{this.tooltipText}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{/* Validation message */}\r\n\t\t\t\t<div\r\n\t\t\t\t\tid=\"tbd\"\r\n\t\t\t\t\tclass=\"mdc-select-helper-text mdc-select-helper-text--validation-msg\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<svg\r\n\t\t\t\t\t\tclass=\"select-error-svg\"\r\n\t\t\t\t\t\twidth=\"16\"\r\n\t\t\t\t\t\theight=\"16\"\r\n\t\t\t\t\t\tviewBox=\"0 0 16 16\"\r\n\t\t\t\t\t\tfill=\"none\"\r\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<g clip-path=\"url(#clip0_12_1424)\">\r\n\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\tfill-rule=\"evenodd\"\r\n\t\t\t\t\t\t\t\tclip-rule=\"evenodd\"\r\n\t\t\t\t\t\t\t\td=\"M11.3156 0L16 4.68444V11.3156L11.3156 16H4.68444L0 11.3156V4.68444L4.68444 0H11.3156ZM8 10.4C7.36 10.4 6.84444 10.9156 6.84444 11.5556C6.84444 12.1956 7.36 12.7111 8 12.7111C8.64 12.7111 9.15556 12.1956 9.15556 11.5556C9.15556 10.9156 8.64 10.4 8 10.4ZM8.88889 3.55556H7.11111V8.88889H8.88889V3.55556Z\"\r\n\t\t\t\t\t\t\t\tfill=\"#AF3231\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<defs>\r\n\t\t\t\t\t\t\t<clipPath id=\"clip0_12_1424\">\r\n\t\t\t\t\t\t\t\t<rect width=\"16\" height=\"16\" fill=\"white\" />\r\n\t\t\t\t\t\t\t</clipPath>\r\n\t\t\t\t\t\t</defs>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t\t{this.helpertext}\r\n\t\t\t\t</div>\r\n\t\t\t</Host>\r\n\t\t);\r\n\t}\r\n\r\n\t// Ensure that checkOverflow is inside the class\r\n\tcheckOverflow(event: MouseEvent, text: string) {\r\n\t\tconst target = event.currentTarget as HTMLElement;\r\n\t\tconst label = target.querySelector(\"label\");\r\n\t\tif (label && label.scrollHeight > label.clientHeight) {\r\n\t\t\tthis.showTooltip(event, text);\r\n\t\t}\r\n\t}\r\n}\r\n"],"names":["getLanguageFromURL","ValidationMessages","h","Host","index"],"mappings":"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"}
|