vuestic-ui
Version:
Vue 3 UI Framework
40 lines (39 loc) • 1.3 kB
JavaScript
import { c as camelCaseToKebabCase } from "../../utils/text-case.mjs";
import { defineCustomElement } from "vue";
const componentsOrder = [
"VaConfig",
// VaConfig should be registered before any component, because it provides them config
"VaForm",
// VaForm registered before any component, but not before VaConfig
"VaAccordion",
"VaFileUpload",
"VaSidebar",
"VaTabs"
];
const registerVuesticWebComponentsEssential = (options) => {
const { css, components } = options;
Object.entries(components).sort(([nameA], [nameB]) => {
if (!componentsOrder.includes(nameA) && !componentsOrder.includes(nameB)) {
return 0;
}
let indexA = componentsOrder.indexOf(nameA);
let indexB = componentsOrder.indexOf(nameB);
if (indexA === -1) {
indexA = Number.MAX_SAFE_INTEGER;
}
if (indexB === -1) {
indexB = Number.MAX_SAFE_INTEGER;
}
return indexA - indexB;
}).forEach(([name, component]) => {
const customElement = defineCustomElement(component);
if (css && "styles" in component) {
component.styles.push(css);
}
customElements.define(`${camelCaseToKebabCase(name)}`, customElement);
});
};
export {
registerVuesticWebComponentsEssential as r
};
//# sourceMappingURL=register-vuestic-web-components-essential.mjs.map