xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 26.6 kB
Source Map (JSON)
{"version":3,"file":"dom.mjs","sources":["../../node_modules/performance-now/lib/performance-now.js","../../node_modules/raf/index.js","../../src/utils/dom.ts"],"sourcesContent":["// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/**\n * Thanks to https://spothero.com/static/main/uniform/docs-js/module-DOMUtils.html\n */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-undef */\nimport { ComponentPublicInstance, VNode } from 'vue';\nimport raf from 'raf';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\nimport isArray from 'lodash/isArray';\nimport { easeInOutCubic, EasingFunction } from './easing';\nimport { ScrollContainer, ScrollContainerElement } from '../common';\n\nexport const isServer = typeof window === 'undefined';\nconst trim = (str: string): string => (str || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n\nexport const on = ((): any => {\n if (!isServer && document.addEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event && handler) {\n element.addEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event && handler) {\n (element as any).attachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport const off = ((): any => {\n if (!isServer && document.removeEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event) {\n element.removeEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event) {\n (element as any).detachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport function once(\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) {\n const handlerFn = isFunction(handler) ? handler : handler.handleEvent;\n const callback = (evt: any) => {\n handlerFn(evt);\n off(element, event, callback, options);\n };\n\n on(element, event, callback, options);\n}\n\nexport function hasClass(el: Element, cls: string): any {\n if (!el || !cls) return false;\n if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n if (el.classList) {\n return el.classList.contains(cls);\n }\n return ` ${el.className} `.indexOf(` ${cls} `) > -1;\n}\n\nexport function addClass(el: Element, cls: string): any {\n if (!el) return;\n let curClass = el.className;\n const classes = (cls || '').split(' ');\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ` ${clsName}`;\n }\n }\n if (!el.classList) {\n el.className = curClass;\n }\n}\n\nexport function removeClass(el: Element, cls: string): any {\n if (!el || !cls) return;\n const classes = cls.split(' ');\n let curClass = ` ${el.className} `;\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(` ${clsName} `, ' ');\n }\n }\n if (!el.classList) {\n el.className = trim(curClass);\n }\n}\n\nexport const getAttach = (node: any, triggerNode?: any): HTMLElement | Element => {\n const attachNode = isFunction(node) ? node(triggerNode) : node;\n if (!attachNode) {\n return document.body;\n }\n if (isString(attachNode)) {\n return document.querySelector(attachNode);\n }\n if (attachNode instanceof HTMLElement) {\n return attachNode;\n }\n return document.body;\n};\n\nexport const getSSRAttach = () => {\n if (process.env.NODE_ENV === 'test-snap') return 'body';\n};\n\n/**\n * window | HTMLElement\n * @param {ScrollContainerElement} [container='body']\n * @returns {ScrollContainer}\n */\nexport const getScrollContainer = (container: ScrollContainer = 'body'): ScrollContainerElement => {\n if (isString(container)) {\n return document.querySelector(container) as HTMLElement;\n }\n if (isFunction(container)) {\n return container();\n }\n return container;\n};\n\n/**\n *\n * @export\n * @param {any} obj\n * @returns\n */\nfunction isWindow(obj: any) {\n return obj && obj === obj.window;\n}\n\ntype ScrollTarget = HTMLElement | Window | Document;\n\n/**\n *\n * @export\n * @param {ScrollTarget} target\n * @param {boolean} isLeft true为获取scrollLeft, false为获取scrollTop\n * @returns {number}\n */\nexport function getScroll(target: ScrollTarget, isLeft?: boolean): number {\n if (isServer || !target) {\n return 0;\n }\n const method = isLeft ? 'scrollLeft' : 'scrollTop';\n let result = 0;\n if (isWindow(target)) {\n result = (target as Window)[isLeft ? 'pageXOffset' : 'pageYOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target) {\n result = (target as HTMLElement)[method];\n }\n return result;\n}\ninterface ScrollTopOptions {\n container?: ScrollTarget;\n duration?: number;\n easing?: EasingFunction;\n}\n\ndeclare type ScrollToResult<T = any> = T | { default: T };\n\nexport function scrollTo(target: number, opt: ScrollTopOptions): Promise<ScrollToResult> {\n const { container = window, duration = 450, easing = easeInOutCubic } = opt;\n const scrollTop = getScroll(container);\n const startTime = Date.now();\n return new Promise((res) => {\n const fnc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easing(Math.min(time, duration), scrollTop, target, duration);\n if (isWindow(container)) {\n (container as Window).scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n (container as Document).documentElement.scrollTop = nextScrollTop;\n } else {\n (container as HTMLElement).scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(fnc);\n } else {\n raf(res);\n }\n };\n raf(fnc);\n });\n}\n\nfunction containerDom(parent: VNode | Element | Iterable<any> | ArrayLike<any>, child: any): boolean {\n if (parent && child) {\n let pNode = child;\n while (pNode) {\n if (parent === pNode) {\n return true;\n }\n const { parentNode } = pNode;\n pNode = parentNode;\n }\n }\n return false;\n}\nexport const clickOut = (els: VNode | Element | Iterable<any> | ArrayLike<any>, cb: () => void): void => {\n on(document, 'click', (event: { target: Element }) => {\n if (isArray(els)) {\n const isFlag = Array.from(els).every((item) => containerDom(item, event.target) === false);\n return isFlag && cb && cb();\n }\n if (containerDom(els, event.target)) {\n return false;\n }\n return cb && cb();\n });\n};\n\nexport const isNodeOverflow = (\n ele: ComponentPublicInstance | Element | ComponentPublicInstance[] | Element[],\n): boolean => {\n const { clientWidth = 0, scrollWidth = 0 } = ele as Element & { clientWidth: number; scrollWidth: number };\n return scrollWidth > clientWidth;\n};\n\nexport const scrollSelectedIntoView = (parentEle: HTMLElement, selected: HTMLElement) => {\n if (isServer) return;\n if (!selected || selected.offsetParent !== parentEle) {\n parentEle.scrollTop = 0;\n return;\n }\n const selectedTop = selected.offsetTop;\n const selectedBottom = selectedTop + selected.offsetHeight;\n const parentScrollTop = parentEle.scrollTop;\n const parentViewBottom = parentScrollTop + parentEle.clientHeight;\n if (selectedTop < parentScrollTop) {\n parentEle.scrollTop = selectedTop;\n } else if (selectedBottom > parentViewBottom) {\n parentEle.scrollTop = selectedBottom - parentEle.clientHeight;\n }\n};\n\nexport const requestSubmit = (target: HTMLFormElement) => {\n if (!(target instanceof HTMLFormElement)) {\n throw new Error('target must be HTMLFormElement');\n }\n const submitter = document.createElement('input');\n submitter.type = 'submit';\n submitter.hidden = true;\n target.appendChild(submitter);\n submitter.click();\n target.removeChild(submitter);\n};\n\n/**\n * http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n * @param elm 元素\n * @param parent\n * @returns boolean\n */\nexport function elementInViewport(elm: HTMLElement, parent?: HTMLElement): boolean {\n const rect = elm.getBoundingClientRect();\n if (parent) {\n const parentRect = parent.getBoundingClientRect();\n return (\n rect.top >= parentRect.top &&\n rect.left >= parentRect.left &&\n rect.bottom <= parentRect.bottom &&\n rect.right <= parentRect.right\n );\n }\n return rect.top >= 0 && rect.left >= 0 && rect.bottom + 80 <= window.innerHeight && rect.right <= window.innerWidth;\n}\n\n/**\n * @param element 元素\n * @param propName css 名\n * @returns string\n */\nexport function getElmCssPropValue(element: HTMLElement, propName: string): string {\n let propValue = '';\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n propValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propName);\n }\n\n if (propValue && propValue.toLowerCase) {\n return propValue.toLowerCase();\n }\n\n return propValue;\n}\n\n/**\n * @param element \n * @returns boolean\n */\nexport function isFixed(element: HTMLElement): boolean {\n const p = element.parentNode as HTMLElement;\n\n if (!p || p.nodeName === 'HTML') {\n return false;\n }\n\n if (getElmCssPropValue(element, 'position') === 'fixed') {\n return true;\n }\n\n return isFixed(p);\n}\n\n/**\n * @returns { scrollTop: number, scrollLeft: number }\n */\nexport function getWindowScroll(): { scrollTop: number; scrollLeft: number } {\n const { body } = document;\n const docElm = document.documentElement;\n const scrollTop = window.pageYOffset || docElm.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docElm.scrollLeft || body.scrollLeft;\n\n return { scrollTop, scrollLeft };\n}\n\n/**\n * @returns { width: number, height: number }\n */\nexport function getWindowSize(): { width: number; height: number } {\n if (window.innerWidth !== undefined) {\n return { width: window.innerWidth, height: window.innerHeight };\n }\n const doc = document.documentElement;\n return { width: doc.clientWidth, height: doc.clientHeight };\n}\n\nexport function getScrollbarWidth() {\n const scrollDiv = document.createElement('div');\n scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\n"],"names":["performance","now","process","hrtime","performanceNowModule","exports","getNanoSeconds","nodeLoadTime","hr","upTime","uptime","moduleLoadTime","Date","loadTime","require$$0","root","window","global","vendors","suffix","raf","caf","i","length","last","id","queue","frameDuration","callback","_now","next","Math","max","setTimeout","cp","slice","_loop","cancelled","e","round","push","handle","rafModule","fn","call","cancel","raf_1","apply","arguments","polyfill","object","requestAnimationFrame","cancelAnimationFrame","el","curClass","isFunction","isString","result","container","duration","easing","pNode","on","isArray","clientWidth","scrollWidth","parentEle","target","propValue","scrollTop","scrollLeft","scrollDiv","document"],"mappings":"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"}