UNPKG

@synergy-design-system/components

Version:
65 lines (63 loc) 2.44 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; }; var getValueFromOption = (option) => { const { value } = option; if (value === void 0 || value === null || value === "") { return option.getTextLabel(); } return value; }; var getValuesFromOptions = (options) => options.map(getValueFromOption); var checkValueBelongsToOption = (value, option) => { if (!option || value === void 0 || value === null || value === "") { return false; } const optionValue = option.value; const optionText = option.getTextLabel(); return String(value) === String(optionValue) || String(value) === optionText; }; export { getAssignedElementsForSlot, getOptionOrNestedOptions, isOptgroup, getAllOptions, filterOnlyOptgroups, normalizeString, createElementFromTemplateResult, createOptionFromDifferentTypes, getValueFromOption, getValuesFromOptions, checkValueBelongsToOption }; //# sourceMappingURL=chunk.FVIRHFY6.js.map