@ionic/core
Version:
Base components for Ionic
4 lines • 2.44 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 r,f as d}from"./p-4DxY6_gG.js";const a=o=>l(o),s=(o,i)=>("string"==typeof o&&(i=o,o=void 0),a(o).includes(i)),l=(o=window)=>{if(void 0===o)return[];o.Ionic=o.Ionic||{};let i=o.Ionic.platforms;return null==i&&(i=o.Ionic.platforms=c(o),i.forEach((i=>o.document.documentElement.classList.add(`plt-${i}`)))),i},c=i=>{const t=o.get("platform");return Object.keys(j).filter((o=>{const e=null==t?void 0:t[o];return"function"==typeof e?e(i):j[o](i)}))},u=o=>!!h(o,/iPad/i)||!(!h(o,/Macintosh/i)||!m(o)),p=o=>h(o,/android|sink/i),m=o=>w(o,"(any-pointer:coarse)"),v=o=>f(o)||b(o),f=o=>!!(o.cordova||o.phonegap||o.PhoneGap),b=o=>{const i=o.Capacitor;return!!((null==i?void 0:i.isNative)||(null==i?void 0:i.isNativePlatform)&&i.isNativePlatform())},h=(o,i)=>i.test(o.navigator.userAgent),w=(o,i)=>{var t;return null===(t=o.matchMedia)||void 0===t?void 0:t.call(o,i).matches},j={ipad:u,iphone:o=>h(o,/iPhone/i),ios:o=>h(o,/iPhone|iPod/i)||u(o),android:p,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 u(o)||(o=>p(o)&&!h(o,/mobile/i))(o)||e>460&&e<820&&n>780&&n<1400},cordova:f,capacitor:b,electron:o=>h(o,/electron/i),pwa:o=>{var i;return!(!(null===(i=o.matchMedia)||void 0===i?void 0:i.call(o,"(display-mode: standalone)").matches)&&!o.navigator.standalone)},mobile:m,mobileweb:o=>m(o)&&!v(o),desktop:o=>!m(o),hybrid:v};let O;const g=o=>o&&n(o)||O,y=(n={})=>{if("undefined"==typeof window)return;const a=window.document,c=window,u=c.Ionic=c.Ionic||{},p=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},i(c)),{persistConfig:!1}),u.config),t(c)),n);o.reset(p),o.getBoolean("persistConfig")&&e(c,p),l(c),u.config=o,u.mode=O=o.get("mode",a.documentElement.getAttribute("mode")||(s(c,"ios")?"ios":"md")),o.set("mode",O),a.documentElement.setAttribute("mode",O),a.documentElement.classList.add(O),o.getBoolean("_testing")&&o.set("animated",!1);const m=o=>{var i;return null===(i=o.tagName)||void 0===i?void 0:i.startsWith("ION-")},v=o=>["ios","md"].includes(o);r((o=>{for(;o;){const i=o.mode||o.getAttribute("mode");if(i){if(v(i))return i;m(o)&&d('Invalid ionic mode: "'+i+'", expected: "ios" or "md"')}o=o.parentElement}return O}))};export{s as a,g as b,a as g,y as i}