1// node_modules/@ionic/core/components/helpers.js 2var transitionEndAsync = (el, expectedDuration = 0) => { 3 return new Promise((resolve) => { 4 transitionEnd(el, expectedDuration, resolve); 5 }); 6}; 7var transitionEnd = (el, expectedDuration = 0, callback) => { 8 let unRegTrans; 9 let animationTimeout; 10 const opts = { 11 passive: true 12 }; 13 const ANIMATION_FALLBACK_TIMEOUT = 500; 14 const unregister = () => { 15 if (unRegTrans) { 16 unRegTrans(); 17 } 18 }; 19 const onTransitionEnd = (ev) => { 20 if (ev === void 0 || el === ev.target) { 21 unregister(); 22 callback(ev); 23 } 24 }; 25 if (el) { 26 el.addEventListener("webkitTransitionEnd", onTransitionEnd, opts); 27 el.addEventListener("transitionend", onTransitionEnd, opts); 28 animationTimeout = setTimeout(onTransitionEnd, expectedDuration + ANIMATION_FALLBACK_TIMEOUT); 29 unRegTrans = () => { 30 if (animationTimeout !== void 0) { 31 clearTimeout(animationTimeout); 32 animationTimeout = void 0; 33 } 34 el.removeEventListener("webkitTransitionEnd", onTransitionEnd, opts); 35 el.removeEventListener("transitionend", onTransitionEnd, opts); 36 }; 37 } 38 return unregister; 39}; 40var componentOnReady = (el, callback) => { 41 if (el.componentOnReady) { 42 el.componentOnReady().then((resolvedEl) => callback(resolvedEl)); 43 } else { 44 raf(() => callback(el)); 45 } 46}; 47var hasLazyBuild = (stencilEl) => { 48 return stencilEl.componentOnReady !== void 0; 49}; 50var inheritAttributes = (el, attributes = []) => { 51 const attributeObject = {}; 52 attributes.forEach((attr) => { 53 if (el.hasAttribute(attr)) { 54 const value = el.getAttribute(attr); 55 if (value !== null) { 56 attributeObject[attr] = el.getAttribute(attr); 57 } 58 el.removeAttribute(attr); 59 } 60 }); 61 return attributeObject; 62}; 63var ariaAttributes = ["role", "aria-activedescendant", "aria-atomic", "aria-autocomplete", "aria-braillelabel", "aria-brailleroledescription", "aria-busy", "aria-checked", "aria-colcount", "aria-colindex", "aria-colindextext", "aria-colspan", "aria-controls", "aria-current", "aria-describedby", "aria-description", "aria-details", "aria-disabled", "aria-errormessage", "aria-expanded", "aria-flowto", "aria-haspopup", "aria-hidden", "aria-invalid", "aria-keyshortcuts", "aria-label", "aria-labelledby", "aria-level", "aria-live", "aria-multiline", "aria-multiselectable", "aria-orientation", "aria-owns", "aria-placeholder", "aria-posinset", "aria-pressed", "aria-readonly", "aria-relevant", "aria-required", "aria-roledescription", "aria-rowcount", "aria-rowindex", "aria-rowindextext", "aria-rowspan", "aria-selected", "aria-setsize", "aria-sort", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext"]; 64var inheritAriaAttributes = (el, ignoreList) => { 65 let attributesToInherit = ariaAttributes; 66 if (ignoreList && ignoreList.length > 0) { 67 attributesToInherit = attributesToInherit.filter((attr) => !ignoreList.includes(attr)); 68 } 69 return inheritAttributes(el, attributesToInherit); 70}; 71var addEventListener = (el, eventName, callback, opts) => { 72 var _a; 73 if (typeof window !== "undefined") { 74 const win = window; 75 const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config; 76 if (config) { 77 const ael = config.get("_ael"); 78 if (ael) { 79 return ael(el, eventName, callback, opts); 80 } else if (config._ael) { 81 return config._ael(el, eventName, callback, opts); 82 } 83 } 84 } 85 return el.addEventListener(eventName, callback, opts); 86}; 87var removeEventListener = (el, eventName, callback, opts) => { 88 var _a; 89 if (typeof window !== "undefined") { 90 const win = window; 91 const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config; 92 if (config) { 93 const rel = config.get("_rel"); 94 if (rel) { 95 return rel(el, eventName, callback, opts); 96 } else if (config._rel) { 97 return config._rel(el, eventName, callback, opts); 98 } 99 } 100 } 101 return el.removeEventListener(eventName, callback, opts); 102}; 103var getElementRoot = (el, fallback = el) => { 104 return el.shadowRoot || fallback; 105}; 106var raf = (h) => { 107 if (typeof __zone_symbol__requestAnimationFrame === "function") { 108 return __zone_symbol__requestAnimationFrame(h); 109 } 110 if (typeof requestAnimationFrame === "function") { 111 return requestAnimationFrame(h); 112 } 113 return setTimeout(h); 114}; 115var hasShadowDom = (el) => { 116 return !!el.shadowRoot && !!el.attachShadow; 117}; 118var focusVisibleElement = (el) => { 119 el.focus(); 120 if (el.classList.contains("ion-focusable")) { 121 const app = el.closest("ion-app"); 122 if (app) { 123 app.setFocus([el]); 124 } 125 } 126}; 127var renderHiddenInput = (always, container, name, value, disabled) => { 128 if (always || hasShadowDom(container)) { 129 let input = container.querySelector("input.aux-input"); 130 if (!input) { 131 input = container.ownerDocument.createElement("input"); 132 input.type = "hidden"; 133 input.classList.add("aux-input"); 134 container.appendChild(input); 135 } 136 input.disabled = disabled; 137 input.name = name; 138 input.value = value || ""; 139 } 140}; 141var clamp = (min, n, max) => { 142 return Math.max(min, Math.min(n, max)); 143}; 144var assert = (actual, reason) => { 145 if (!actual) { 146 const message = "ASSERT: " + reason; 147 console.error(message); 148 debugger; 149 throw new Error(message); 150 } 151}; 152var pointerCoord = (ev) => { 153 if (ev) { 154 const changedTouches = ev.changedTouches; 155 if (changedTouches && changedTouches.length > 0) { 156 const touch = changedTouches[0]; 157 return { 158 x: touch.clientX, 159 y: touch.clientY 160 }; 161 } 162 if (ev.pageX !== void 0) { 163 return { 164 x: ev.pageX, 165 y: ev.pageY 166 }; 167 } 168 } 169 return { 170 x: 0, 171 y: 0 172 }; 173}; 174var isEndSide = (side) => { 175 const isRTL = document.dir === "rtl"; 176 switch (side) { 177 case "start": 178 return isRTL; 179 case "end": 180 return !isRTL; 181 default: 182 throw new Error(`"${side}" is not a valid value for [side]. Use "start" or "end" instead.`); 183 } 184}; 185var debounceEvent = (event, wait) => { 186 const original = event._original || event; 187 return { 188 _original: event, 189 emit: debounce(original.emit.bind(original), wait) 190 }; 191}; 192var debounce = (func, wait = 0) => { 193 let timer; 194 return (...args) => { 195 clearTimeout(timer); 196 timer = setTimeout(func, wait, ...args); 197 }; 198}; 199var shallowEqualStringMap = (map1, map2) => { 200 map1 !== null && map1 !== void 0 ? map1 : map1 = {}; 201 map2 !== null && map2 !== void 0 ? map2 : map2 = {}; 202 if (map1 === map2) { 203 return true; 204 } 205 const keys1 = Object.keys(map1); 206 if (keys1.length !== Object.keys(map2).length) { 207 return false;
208 } 209 for (const k1 of keys1) { 210 if (!(k1 in map2)) { 211 return false; 212 } 213 if (map1[k1] !== map2[k1]) { 214 return false; 215 } 216 } 217 return true; 218}; 219 220export { 221 transitionEndAsync, 222 componentOnReady, 223 hasLazyBuild, 224 inheritAttributes, 225 inheritAriaAttributes, 226 addEventListener, 227 removeEventListener, 228 getElementRoot, 229 raf, 230 hasShadowDom, 231 focusVisibleElement, 232 renderHiddenInput, 233 clamp, 234 assert, 235 pointerCoord, 236 isEndSide, 237 debounceEvent, 238 shallowEqualStringMap 239}; 240/*! Bundled license information: 241 242@ionic/core/components/helpers.js: 243 (*! 244 * (C) Ionic http://ionicframework.com - MIT License 245 *) 246*/ 247//# sourceMappingURL=chunk-4WT7J3YM.js.map
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.