@ionic/core
Version:
Base components for Ionic
4 lines • 1.39 kB
JavaScript
/*!
* (C) Ionic http://ionicframework.com - MIT License
*/
import{c as e}from"./p-B4IBdPVJ.js";const t=async(t,o,r,n,i,s)=>{if(t)return t.attachViewToDom(o,r,i,n);if(!(s||"string"==typeof r||r instanceof HTMLElement))throw new Error("framework delegate is missing");const a="string"==typeof r?o.ownerDocument?.createElement(r):r;return n&&n.forEach((e=>a.classList.add(e))),i&&Object.assign(a,i),o.appendChild(a),await new Promise((t=>e(a,t))),a},o=(e,t)=>{if(t){if(e)return e.removeViewFromDom(t.parentElement,t);t.remove()}return Promise.resolve()},r=()=>{let t,o;return{attachViewToDom:async(r,n,i={},s=[])=>{let a;if(t=r,n){const o="string"==typeof n?t.ownerDocument?.createElement(n):n;s.forEach((e=>o.classList.add(e))),Object.assign(o,i),t.appendChild(o),a=o,await new Promise((t=>e(o,t)))}else if(t.children.length>0&&("ION-MODAL"===t.tagName||"ION-POPOVER"===t.tagName)&&!(a=t.children[0]).classList.contains("ion-delegate-host")){const e=t.ownerDocument?.createElement("div");e.classList.add("ion-delegate-host"),s.forEach((t=>e.classList.add(t))),e.append(...t.children),t.appendChild(e),a=e}const c=document.querySelector("ion-app")||document.body;return o=document.createComment("ionic teleport"),t.parentNode.insertBefore(o,t),c.appendChild(t),a??t},removeViewFromDom:()=>(t&&o&&(o.parentNode.insertBefore(t,o),o.remove()),Promise.resolve())}};export{r as C,t as a,o as d}