@ionic/core
Version:
Base components for Ionic
4 lines • 2.14 kB
JavaScript
/*!
* (C) Ionic http://ionicframework.com - MIT License
*/
import{e as o,l as i,m as t,n as e,o as n,q as s,p as r}from"./p-Ct2aBEue.js";const a=o=>c(o),d=(o,i)=>("string"==typeof o&&(i=o,o=void 0),a(o).includes(i)),c=(o=window)=>{if(void 0===o)return[];o.Ionic=o.Ionic||{};let i=o.Ionic.platforms;return null==i&&(i=o.Ionic.platforms=p(o),i.forEach((i=>o.document.documentElement.classList.add(`plt-${i}`)))),i},p=i=>{const t=o.get("platform");return Object.keys(g).filter((o=>{const e=t?.[o];return"function"==typeof e?e(i):g[o](i)}))},m=o=>!!b(o,/iPad/i)||!(!b(o,/Macintosh/i)||!f(o)),l=o=>b(o,/android|sink/i),f=o=>y(o,"(any-pointer:coarse)"),u=o=>h(o)||w(o),h=o=>!!(o.cordova||o.phonegap||o.PhoneGap),w=o=>{const i=o.Capacitor;return!!i?.isNativePlatform?.()},b=(o,i)=>i.test(o.navigator.userAgent),y=(o,i)=>o.matchMedia?.(i).matches,g={ipad:m,iphone:o=>b(o,/iPhone/i),ios:o=>b(o,/iPhone|iPod/i)||m(o),android:l,phablet:o=>{const i=o.innerWidth,t=o.innerHeight,e=Math.min(i,t),n=Math.max(i,t);return e>390&&e<520&&n>620&&n<800},tablet:o=>{const i=o.innerWidth,t=o.innerHeight,e=Math.min(i,t),n=Math.max(i,t);return m(o)||(o=>l(o)&&!b(o,/mobile/i))(o)||e>460&&e<820&&n>780&&n<1400},cordova:h,capacitor:w,electron:o=>b(o,/electron/i),pwa:o=>!(!o.matchMedia?.("(display-mode: standalone)").matches&&!o.navigator.standalone),mobile:f,mobileweb:o=>f(o)&&!u(o),desktop:o=>!f(o),hybrid:u};let M;const v=o=>o&&n(o)||M,P=(n={})=>{if("undefined"==typeof window)return;const a=window.document,p=window,m=p.Ionic=p.Ionic||{},l={...t(p),persistConfig:!1,...m.config,...i(p),...n};o.reset(l),o.getBoolean("persistConfig")&&e(p,l),c(p),m.config=o,m.mode=M=o.get("mode",a.documentElement.getAttribute("mode")||(d(p,"ios")?"ios":"md")),o.set("mode",M),a.documentElement.setAttribute("mode",M),a.documentElement.classList.add(M),o.getBoolean("_testing")&&o.set("animated",!1);const f=o=>o.tagName?.startsWith("ION-"),u=o=>["ios","md"].includes(o);s((o=>{for(;o;){const i=o.mode||o.getAttribute("mode");if(i){if(u(i))return i;f(o)&&r('Invalid ionic mode: "'+i+'", expected: "ios" or "md"')}o=o.parentElement}return M}))};export{d as a,v as b,a as g,P as i}