UNPKG

@ionic/core

Version:
87 lines (84 loc) 2.63 kB
import { h } from '../ionic.core.js'; function rIC(callback) { if ('requestIdleCallback' in window) { window.requestIdleCallback(callback); } else { setTimeout(callback, 32); } } function hasShadowDom(el) { return !!el.shadowRoot && !!el.attachShadow; } function findItemLabel(componentEl) { const itemEl = componentEl.closest('ion-item'); if (itemEl) { return itemEl.querySelector('ion-label'); } return null; } function renderHiddenInput(always, container, name, value, disabled) { if (always || hasShadowDom(container)) { let input = container.querySelector('input.aux-input'); if (!input) { input = container.ownerDocument.createElement('input'); input.type = 'hidden'; input.classList.add('aux-input'); container.appendChild(input); } input.disabled = disabled; input.name = name; input.value = value || ''; } } function clamp(min, n, max) { return Math.max(min, Math.min(n, max)); } function assert(actual, reason) { if (!actual) { const message = 'ASSERT: ' + reason; console.error(message); debugger; throw new Error(message); } } function now(ev) { return ev.timeStamp || Date.now(); } function pointerCoord(ev) { if (ev) { const changedTouches = ev.changedTouches; if (changedTouches && changedTouches.length > 0) { const touch = changedTouches[0]; return { x: touch.clientX, y: touch.clientY }; } if (ev.pageX !== undefined) { return { x: ev.pageX, y: ev.pageY }; } } return { x: 0, y: 0 }; } function isEndSide(win, side) { const isRTL = win.document.dir === 'rtl'; switch (side) { case 'start': return isRTL; case 'end': return !isRTL; default: throw new Error(`"${side}" is not a valid value for [side]. Use "start" or "end" instead.`); } } function debounceEvent(event, wait) { const original = event._original || event; return { _original: event, emit: debounce(original.emit.bind(original), wait) }; } function debounce(func, wait = 0) { let timer; return (...args) => { clearTimeout(timer); timer = setTimeout(func, wait, ...args); }; } export { rIC as a, now as b, hasShadowDom as c, findItemLabel as d, renderHiddenInput as e, debounceEvent as f, isEndSide as g, assert as h, clamp as i, debounce as j, pointerCoord as k };