projecte_ionic/node_modules/@ionic/core/components/framework-delegate.js
2022-02-09 18:30:03 +01:00

35 lines
1.1 KiB
JavaScript
Executable file

import { c as componentOnReady } from './helpers.js';
const attachComponent = async (delegate, container, component, cssClasses, componentProps) => {
if (delegate) {
return delegate.attachViewToDom(container, component, componentProps, cssClasses);
}
if (typeof component !== 'string' && !(component instanceof HTMLElement)) {
throw new Error('framework delegate is missing');
}
const el = (typeof component === 'string')
? container.ownerDocument && container.ownerDocument.createElement(component)
: component;
if (cssClasses) {
cssClasses.forEach(c => el.classList.add(c));
}
if (componentProps) {
Object.assign(el, componentProps);
}
container.appendChild(el);
await new Promise(resolve => componentOnReady(el, resolve));
return el;
};
const detachComponent = (delegate, element) => {
if (element) {
if (delegate) {
const container = element.parentElement;
return delegate.removeViewFromDom(container, element);
}
element.remove();
}
return Promise.resolve();
};
export { attachComponent as a, detachComponent as d };