UNPKG

ionicons

Version:

Premium icons for Ionic.

1 lines 3.83 kB
import{r as o,h as i,H as t,c as n}from"./p-6f4eae92.js";import{i as r,g as s,b as e}from"./p-27972752.js";const c=o=>{if(1===o.nodeType){if("script"===o.nodeName.toLowerCase())return!1;for(let i=0;i<o.attributes.length;i++){const t=o.attributes[i].value;if(r(t)&&0===t.toLowerCase().indexOf("on"))return!1}for(let i=0;i<o.childNodes.length;i++)if(!c(o.childNodes[i]))return!1}return!0},a=new Map,l=new Map,h=class{constructor(i){o(this,i),this.isVisible=!1,this.mode=d(),this.lazy=!1,this.sanitize=!0}connectedCallback(){this.waitUntilVisible(this.el,"50px",()=>{this.isVisible=!0,this.loadIcon()})}disconnectedCallback(){this.io&&(this.io.disconnect(),this.io=void 0)}waitUntilVisible(o,i,t){if(this.lazy&&"undefined"!=typeof window&&window.IntersectionObserver){const n=this.io=new window.IntersectionObserver(o=>{o[0].isIntersecting&&(n.disconnect(),this.io=void 0,t())},{rootMargin:i});n.observe(o)}else t()}loadIcon(){if(this.isVisible){const o=s(this);o&&(a.has(o)?this.svgContent=a.get(o):((o,i)=>{let t=l.get(o);if(!t){if("undefined"==typeof fetch||"undefined"==typeof document)return a.set(o,""),Promise.resolve();t=fetch(o).then(t=>{if(t.ok)return t.text().then(t=>{t&&!1!==i&&(t=(o=>{const i=document.createElement("div");i.innerHTML=o;for(let n=i.childNodes.length-1;n>=0;n--)"svg"!==i.childNodes[n].nodeName.toLowerCase()&&i.removeChild(i.childNodes[n]);const t=i.firstElementChild;if(t&&"svg"===t.nodeName.toLowerCase()){const o=t.getAttribute("class")||"";if(t.setAttribute("class",(o+" s-ion-icon").trim()),c(t))return i.innerHTML}return""})(t)),a.set(o,t||"")});a.set(o,"")}),l.set(o,t)}return t})(o,this.sanitize).then(()=>this.svgContent=a.get(o)))}if(!this.ariaLabel&&"true"!==this.ariaHidden){const o=e(this.name,this.icon,this.mode,this.ios,this.md);o&&(this.ariaLabel=o.replace(/\-/g," "))}}render(){const o=this.mode||"md",n=this.flipRtl||this.ariaLabel&&(this.ariaLabel.indexOf("arrow")>-1||this.ariaLabel.indexOf("chevron")>-1)&&!1!==this.flipRtl;return i(t,{role:"img",class:Object.assign(Object.assign({[o]:!0},f(this.color)),{["icon-"+this.size]:!!this.size,"flip-rtl":!!n&&"rtl"===this.el.ownerDocument.dir})},i("div",this.svgContent?{class:"icon-inner",innerHTML:this.svgContent}:{class:"icon-inner"}))}static get assetsDirs(){return["svg"]}get el(){return n(this)}static get watchers(){return{name:["loadIcon"],src:["loadIcon"],icon:["loadIcon"]}}},d=()=>"undefined"!=typeof document&&document.documentElement.getAttribute("mode")||"md",f=o=>o?{"ion-color":!0,["ion-color-"+o]:!0}:null;h.style=":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}:host(.flip-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.icon-small){font-size:18px !important}:host(.icon-large){font-size:32px !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}";export{h as ion_icon}