@penn-libraries/web 1.1.0-dev.1 → 1.1.0-dev.2
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/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.cjs.js.map +1 -1
- package/dist/cjs/pennlibs-allow-tracking_4.cjs.entry.js +14 -10
- package/dist/cjs/pennlibs-allow-tracking_4.cjs.entry.js.map +1 -1
- package/dist/cjs/web.cjs.js +1 -1
- package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js +37 -10
- package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js.map +1 -1
- package/dist/components/pennlibs-autocomplete.js +15 -10
- package/dist/components/pennlibs-autocomplete.js.map +1 -1
- package/dist/docs.json +26 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.js.map +1 -1
- package/dist/esm/pennlibs-allow-tracking_4.entry.js +14 -10
- package/dist/esm/pennlibs-allow-tracking_4.entry.js.map +1 -1
- package/dist/esm/web.js +1 -1
- package/dist/types/components/pennlibs-autocomplete/pennlibs-autocomplete.d.ts +4 -0
- package/dist/types/components.d.ts +8 -0
- package/dist/web/{p-36195ae1.entry.js → p-270fd846.entry.js} +15 -11
- package/dist/web/p-270fd846.entry.js.map +1 -0
- package/dist/web/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.esm.js.map +1 -1
- package/dist/web/web.esm.js +1 -1
- package/hydrate/index.js +15 -10
- package/hydrate/index.mjs +15 -10
- package/package.json +1 -1
- package/dist/web/p-36195ae1.entry.js.map +0 -1
|
@@ -94,32 +94,36 @@ const Autocomplete = class {
|
|
|
94
94
|
return {
|
|
95
95
|
id: element.id || `option-${index}`,
|
|
96
96
|
html: element.innerHTML,
|
|
97
|
-
value: element.getAttribute('data-value') || ((_a = element.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || ''
|
|
97
|
+
value: element.getAttribute('data-pl-value') || ((_a = element.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || ''
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
100
|
getInput() {
|
|
101
|
-
var _a
|
|
101
|
+
var _a;
|
|
102
|
+
if (!this.for)
|
|
103
|
+
return null;
|
|
102
104
|
const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="start"]');
|
|
103
|
-
|
|
105
|
+
const input = slot.assignedElements()[0].querySelector(`input#${this.for}`);
|
|
106
|
+
return input || null;
|
|
104
107
|
}
|
|
105
108
|
isInputFocused() {
|
|
106
109
|
return this.getInput() === document.activeElement;
|
|
107
110
|
}
|
|
108
111
|
isTrackedInput(input) {
|
|
109
|
-
return (input === null || input === void 0 ? void 0 : input.getAttribute('data-pl-autocomplete-
|
|
112
|
+
return (input === null || input === void 0 ? void 0 : input.getAttribute('data-pl-autocomplete-connected')) === 'true' &&
|
|
110
113
|
this.el.contains(input);
|
|
111
114
|
}
|
|
112
115
|
setupInput() {
|
|
116
|
+
if (!this.for) {
|
|
117
|
+
console.warn('<pennlibs-autocomplete> Missing "for" attribute. Please add for="input-id" to specify which input to attach to.');
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
113
120
|
const input = this.getInput();
|
|
114
121
|
if (!input) {
|
|
115
|
-
console.warn(
|
|
122
|
+
console.warn(`<pennlibs-autocomplete> No input element found with id="${this.for}". Ensure an input with this id exists.`);
|
|
116
123
|
return;
|
|
117
124
|
}
|
|
118
|
-
if (!input.hasAttribute('data-pl-autocomplete-input')) {
|
|
119
|
-
console.warn('<pennlibs-autocomplete> Input element is missing the data-pl-autocomplete-input attribute. Please add it to your input element.');
|
|
120
|
-
}
|
|
121
125
|
this.setComboboxAttributes(input);
|
|
122
|
-
input.setAttribute('data-pl-autocomplete-
|
|
126
|
+
input.setAttribute('data-pl-autocomplete-connected', 'true');
|
|
123
127
|
}
|
|
124
128
|
setComboboxAttributes(input) {
|
|
125
129
|
input.setAttribute('role', 'combobox');
|
|
@@ -283,7 +287,7 @@ const Autocomplete = class {
|
|
|
283
287
|
return this.showSuggestions && this.options.length > 0 && this.isInputFocused();
|
|
284
288
|
}
|
|
285
289
|
render() {
|
|
286
|
-
return (index.h("div", { key: '
|
|
290
|
+
return (index.h("div", { key: '2091f8acacac10714c4d607e294248f3bd7e5fd7' }, index.h("slot", { key: '628a216ce90ee693a354a74f91bcce2fe61b74a5', name: "start" }), this.shouldShowListbox() && (index.h("ol", { key: '916eba0f4b2148616fac4cc96cac4c7506a9bd0e', role: "listbox", id: "listbox" }, this.options.map((option, index$1) => (index.h("li", { role: "option", id: option.id, "aria-selected": this.currentIndex === index$1 ? 'true' : 'false', tabindex: "-1", onClick: () => this.handleOptionClick(index$1), innerHTML: option.html })))))));
|
|
287
291
|
}
|
|
288
292
|
get el() { return index.getElement(this); }
|
|
289
293
|
};
|