UNPKG

@synergy-design-system/components

Version:

This package provides the base of the Synergy Design System as native web components. It uses [lit](https://www.lit.dev) and parts of [shoelace](https://shoelace.style/). Synergy officially supports the latest two versions of all major browsers (as define

46 lines (44 loc) 1.8 kB
// src/components/combobox/utils.ts import { html, render } from "lit"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; var getAssignedElementsForSlot = (slot) => Array.from( slot.assignedElements({ flatten: true }) ); var getOptionOrNestedOptions = (item) => item.tagName.toLocaleLowerCase() === "syn-option" ? item : Array.from(item.querySelectorAll(":scope > syn-option")); var isOptgroup = (item) => item.tagName.toLocaleLowerCase() === "syn-optgroup"; var getAllOptions = (items) => items.map(getOptionOrNestedOptions); var filterOnlyOptgroups = (items) => items.filter(isOptgroup); var normalizeString = (str) => str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase(); var createElementFromTemplateResult = (template) => { const container = document.createElement("div"); render(template, container); return container.firstElementChild; }; var getOptionOrUndefined = (element) => element.tagName.toLocaleLowerCase() === "syn-option" ? element : void 0; var createOptionFromDifferentTypes = (option) => { if (!option) return void 0; if (option instanceof HTMLElement) { return getOptionOrUndefined(option); } if (typeof option === "string") { const template = html`${unsafeHTML(option)}`; const element = createElementFromTemplateResult(template); return getOptionOrUndefined(element); } if (Object.prototype.hasOwnProperty.call(option, "_$litType$")) { const element = createElementFromTemplateResult(option); return getOptionOrUndefined(element); } return void 0; }; export { getAssignedElementsForSlot, getOptionOrNestedOptions, isOptgroup, getAllOptions, filterOnlyOptgroups, normalizeString, createElementFromTemplateResult, createOptionFromDifferentTypes }; //# sourceMappingURL=chunk.S6AC4UW6.js.map