1import { 2 Host, 3 getAssetPath, 4 getElement, 5 h, 6 registerInstance 7} from "./chunk-2VN5LR3O.js"; 8import "./chunk-QQUUYUXS.js"; 9
vendor: 2,630 bytes, lines 10-112
10// node_modules/ionicons/dist/esm/utils-2c56d1c8.js 11var CACHED_MAP; 12var getIconMap = () => { 13 if (typeof window === "undefined") { 14 return /* @__PURE__ */ new Map(); 15 } else { 16 if (!CACHED_MAP) { 17 const win = window; 18 win.Ionicons = win.Ionicons || {}; 19 CACHED_MAP = win.Ionicons.map = win.Ionicons.map || /* @__PURE__ */ new Map(); 20 } 21 return CACHED_MAP; 22 } 23}; 24var getUrl = (i) => { 25 let url = getSrc(i.src); 26 if (url) { 27 return url; 28 } 29 url = getName(i.name, i.icon, i.mode, i.ios, i.md); 30 if (url) { 31 return getNamedUrl(url, i); 32 } 33 if (i.icon) { 34 url = getSrc(i.icon); 35 if (url) { 36 return url; 37 } 38 url = getSrc(i.icon[i.mode]); 39 if (url) { 40 return url; 41 } 42 } 43 return null; 44}; 45var getNamedUrl = (iconName, iconEl) => { 46 const url = getIconMap().get(iconName); 47 if (url) { 48 return url; 49 } 50 try { 51 return getAssetPath(`svg/${iconName}.svg`); 52 } catch (e) { 53 console.warn(`[Ionicons Warning]: Could not load icon with name "${iconName}". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`, iconEl); 54 } 55}; 56var getName = (iconName, icon, mode, ios, md) => { 57 mode = (mode && toLower(mode)) === "ios" ? "ios" : "md"; 58 if (ios && mode === "ios") { 59 iconName = toLower(ios); 60 } else if (md && mode === "md") { 61 iconName = toLower(md); 62 } else { 63 if (!iconName && icon && !isSrc(icon)) { 64 iconName = icon; 65 } 66 if (isStr(iconName)) { 67 iconName = toLower(iconName); 68 } 69 } 70 if (!isStr(iconName) || iconName.trim() === "") { 71 return null; 72 } 73 const invalidChars = iconName.replace(/[a-z]|-|\d/gi, ""); 74 if (invalidChars !== "") { 75 return null; 76 } 77 return iconName; 78}; 79var getSrc = (src) => { 80 if (isStr(src)) { 81 src = src.trim(); 82 if (isSrc(src)) { 83 return src; 84 } 85 } 86 return null; 87}; 88var isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str); 89var isStr = (val) => typeof val === "string"; 90var toLower = (val) => val.toLowerCase(); 91var inheritAttributes = (el, attributes = []) => { 92 const attributeObject = {}; 93 attributes.forEach((attr) => { 94 if (el.hasAttribute(attr)) { 95 const value = el.getAttribute(attr); 96 if (value !== null) { 97 attributeObject[attr] = el.getAttribute(attr); 98 } 99 el.removeAttribute(attr); 100 } 101 }); 102 return attributeObject; 103}; 104var isRTL = (hostEl) => { 105 if (hostEl) { 106 if (hostEl.dir !== "") { 107 return hostEl.dir.toLowerCase() === "rtl"; 108 } 109 } 110 return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === "rtl"; 111}; 112
vendor: 7,279 bytes, lines 113-293
113// node_modules/ionicons/dist/esm/ion-icon.entry.js 114var validateContent = (svgContent) => { 115 const div = document.createElement("div"); 116 div.innerHTML = svgContent; 117 for (let i = div.childNodes.length - 1; i >= 0; i--) { 118 if (div.childNodes[i].nodeName.toLowerCase() !== "svg") { 119 div.removeChild(div.childNodes[i]); 120 } 121 } 122 const svgElm = div.firstElementChild; 123 if (svgElm && svgElm.nodeName.toLowerCase() === "svg") { 124 const svgClass = svgElm.getAttribute("class") || ""; 125 svgElm.setAttribute("class", (svgClass + " s-ion-icon").trim()); 126 if (isValid(svgElm)) { 127 return div.innerHTML; 128 } 129 } 130 return ""; 131}; 132var isValid = (elm) => { 133 if (elm.nodeType === 1) { 134 if (elm.nodeName.toLowerCase() === "script") { 135 return false; 136 } 137 for (let i = 0; i < elm.attributes.length; i++) { 138 const name = elm.attributes[i].name; 139 if (isStr(name) && name.toLowerCase().indexOf("on") === 0) { 140 return false; 141 } 142 } 143 for (let i = 0; i < elm.childNodes.length; i++) { 144 if (!isValid(elm.childNodes[i])) { 145 return false; 146 } 147 } 148 } 149 return true; 150}; 151var isSvgDataUrl = (url) => url.startsWith("data:image/svg+xml"); 152var isEncodedDataUrl = (url) => url.indexOf(";utf8,") !== -1; 153var ioniconContent = /* @__PURE__ */ new Map(); 154var requests = /* @__PURE__ */ new Map(); 155var parser; 156var getSvgContent = (url, sanitize) => { 157 let req = requests.get(url); 158 if (!req) { 159 if (typeof fetch !== "undefined" && typeof document !== "undefined") { 160 if (isSvgDataUrl(url) && isEncodedDataUrl(url)) { 161 if (!parser) { 162 parser = new DOMParser(); 163 } 164 const doc = parser.parseFromString(url, "text/html"); 165 const svg = doc.querySelector("svg"); 166 if (svg) { 167 ioniconContent.set(url, svg.outerHTML); 168 } 169 return Promise.resolve(); 170 } else { 171 req = fetch(url).then((rsp) => { 172 if (rsp.ok) { 173 return rsp.text().then((svgContent) => { 174 if (svgContent && sanitize !== false) { 175 svgContent = validateContent(svgContent); 176 } 177 ioniconContent.set(url, svgContent || ""); 178 }); 179 } 180 ioniconContent.set(url, ""); 181 }); 182 requests.set(url, req); 183 } 184 } else { 185 ioniconContent.set(url, ""); 186 return Promise.resolve(); 187 } 188 } 189 return req; 190}; 191var iconCss = ":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%}@supports (background: -webkit-named-image(i)){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}:host(.flip-rtl):host-context([dir='rtl']) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@supports selector(:dir(rtl)){:host(.flip-rtl:dir(rtl)) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{-webkit-transform:scaleX(1);transform:scaleX(1)}}:host(.icon-small){font-size:1.125rem !important}:host(.icon-large){font-size:2rem !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)}"; 192var Icon = class { 193 constructor(hostRef) { 194 registerInstance(this, hostRef); 195 this.iconName = null; 196 this.inheritedAttributes = {}; 197 this.didLoadIcon = false; 198 this.svgContent = void 0; 199 this.isVisible = false; 200 this.mode = getIonMode(); 201 this.color = void 0; 202 this.ios = void 0; 203 this.md = void 0; 204 this.flipRtl = void 0; 205 this.name = void 0; 206 this.src = void 0; 207 this.icon = void 0; 208 this.size = void 0; 209 this.lazy = false; 210 this.sanitize = true; 211 } 212 componentWillLoad() { 213 this.inheritedAttributes = inheritAttributes(this.el, ["aria-label"]); 214 } 215 connectedCallback() { 216 this.waitUntilVisible(this.el, "50px", () => { 217 this.isVisible = true; 218 this.loadIcon(); 219 }); 220 } 221 componentDidLoad() { 222 if (!this.didLoadIcon) { 223 this.loadIcon(); 224 } 225 } 226 disconnectedCallback() { 227 if (this.io) { 228 this.io.disconnect(); 229 this.io = void 0; 230 } 231 } 232 waitUntilVisible(el, rootMargin, cb) { 233 if (this.lazy && typeof window !== "undefined" && window.IntersectionObserver) { 234 const io = this.io = new window.IntersectionObserver((data) => { 235 if (data[0].isIntersecting) { 236 io.disconnect(); 237 this.io = void 0; 238 cb(); 239 } 240 }, { rootMargin }); 241 io.observe(el); 242 } else { 243 cb(); 244 } 245 } 246 loadIcon() { 247 if (this.isVisible) { 248 const url = getUrl(this); 249 if (url) { 250 if (ioniconContent.has(url)) { 251 this.svgContent = ioniconContent.get(url); 252 } else { 253 getSvgContent(url, this.sanitize).then(() => this.svgContent = ioniconContent.get(url)); 254 } 255 this.didLoadIcon = true; 256 } 257 } 258 this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md); 259 } 260 render() { 261 const { flipRtl, iconName, inheritedAttributes, el } = this; 262 const mode = this.mode || "md"; 263 const shouldAutoFlip = iconName ? (iconName.includes("arrow") || iconName.includes("chevron")) && flipRtl !== false : false; 264 const shouldBeFlippable = flipRtl || shouldAutoFlip; 265 return h(Host, Object.assign({ role: "img", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, "flip-rtl": shouldBeFlippable, "icon-rtl": shouldBeFlippable && isRTL(el) }) }, inheritedAttributes), this.svgContent ? h("div", { class: "icon-inner", innerHTML: this.svgContent }) : h("div", { class: "icon-inner" })); 266 } 267 static get assetsDirs() { 268 return ["svg"]; 269 } 270 get el() { 271 return getElement(this); 272 } 273 static get watchers() { 274 return { 275 "name": ["loadIcon"], 276 "src": ["loadIcon"], 277 "icon": ["loadIcon"], 278 "ios": ["loadIcon"], 279 "md": ["loadIcon"] 280 }; 281 } 282}; 283var getIonMode = () => typeof document !== "undefined" && document.documentElement.getAttribute("mode") || "md"; 284var createColorClasses = (color) => { 285 return color ? { 286 "ion-color": true, 287 [`ion-color-${color}`]: true 288 } : null; 289}; 290Icon.style = iconCss; 291export { 292 Icon as ion_icon 293};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.