parcoursup/node_modules/riot/esm/core/mount-component.js
lalBi94 7bc56c09b5 $
2023-03-05 13:23:23 +01:00

25 lines
891 B
JavaScript

/* Riot WIP, @license MIT */
import { COMPONENTS_IMPLEMENTATION_MAP, panic } from '@riotjs/util';
import { getName } from '../utils/dom.js';
/**
* Component initialization function starting from a DOM node
* @param {HTMLElement} element - element to upgrade
* @param {Object} initialProps - initial component properties
* @param {string} componentName - component id
* @param {Array} slots - component slots
* @returns {Object} a new component instance bound to a DOM node
*/
function mountComponent(element, initialProps, componentName, slots) {
const name = componentName || getName(element);
if (!COMPONENTS_IMPLEMENTATION_MAP.has(name)) panic(`The component named "${name}" was never registered`);
const component = COMPONENTS_IMPLEMENTATION_MAP.get(name)({
props: initialProps,
slots
});
return component.mount(element);
}
export { mountComponent };