tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 33.3 kB
Source Map (JSON)
{"version":3,"file":"dom.mjs","sources":["../../../../node_modules/.pnpm/performance-now@2.1.0/node_modules/performance-now/lib/performance-now.js","../../../../node_modules/.pnpm/raf@3.4.1/node_modules/raf/index.js","../../../common/js/utils/easing.ts","../../../components/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 * @file\n * 缓动函数\n * 参考自: https://github.com/bameyrick/js-easing-functions/blob/master/src/index.ts\n */\n\nexport interface EasingFunction {\n (current: number, start: number, end: number, duration: number): number;\n}\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const linear: EasingFunction = (current, start, end, duration) => {\n const change = end - start;\n const offset = (change * current) / duration;\n return offset + start;\n};\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const easeInOutCubic: EasingFunction = (current, start, end, duration) => {\n const change = (end - start) / 2;\n let time = current / (duration / 2);\n if (time < 1) {\n return change * time * time * time + start;\n }\n time -= 2;\n // eslint-disable-next-line no-return-assign\n return change * (time * time * time + 2) + start;\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-es';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { easeInOutCubic, EasingFunction } from '@tdesign/common-js/utils/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 * 获取滚动容器\n * 因为document不存在scroll等属性, 因此排除document\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 * 返回是否window对象\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 *\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 // node环境或者target为空\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 // 由于上面步骤设置了scrollTop, 滚动事件可能未触发完毕\n // 此时应该在下一帧再执行res\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\n// 用于判断节点内容是否溢出\nexport const isTextEllipsis = (\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\n// 将子元素selected滚动到父元素parentEle的可视范围内\nexport const scrollSelectedIntoView = (parentEle: HTMLElement, selected: HTMLElement) => {\n // 服务端不处理\n if (isServer) return;\n // selected不存在或selected父元素不为parentEle则不处理\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 // selected元素滚动过了,则将其向下滚动到可视范围顶部\n parentEle.scrollTop = selectedTop;\n } else if (selectedBottom > parentViewBottom) {\n // selected元素未滚动到,则将其向上滚动到可视范围底部\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 * 检查元素是否在父元素视图\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 * 获取元素某个 css 对应的值\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 * 判断元素是否处在 position fixed 中\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 * 获取当前视图滑动的距离\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 * 获取当前视图的大小\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"],"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","linear","current","start","end","duration","change","offset","easeInOutCubic","time","isServer","trim","str","replace","on","document","addEventListener","element","event","handler","options","attachEvent","concat","off","removeEventListener","detachEvent","once","handlerFn","isFunction","handleEvent","evt","hasClass","el","cls","indexOf","Error","classList","contains","className","addClass","curClass","classes","split","j","clsName","add","removeClass","remove","getAttach","node","triggerNode","attachNode","body","isString","querySelector","HTMLElement","getSSRAttach","env","NODE_ENV","getScrollContainer","container","undefined","isWindow","obj","getScroll","target","isLeft","method","result","Document","documentElement","scrollTo","opt","_opt$container","_opt$duration","_opt$easing","easing","scrollTop","startTime","Promise","res","fnc","timestamp","nextScrollTop","min","pageXOffset","constructor","name","containerDom","parent","child","pNode","_pNode","parentNode","clickOut","els","cb","isArray","isFlag","Array","from","every","item","isTextEllipsis","ele","_ele$clientWidth","clientWidth","_ele$scrollWidth","scrollWidth","scrollSelectedIntoView","parentEle","selected","offsetParent","selectedTop","offsetTop","selectedBottom","offsetHeight","parentScrollTop","parentViewBottom","clientHeight","requestSubmit","HTMLFormElement","submitter","createElement","type","hidden","appendChild","click","removeChild","elementInViewport","elm","rect","getBoundingClientRect","parentRect","top","left","bottom","right","innerHeight","innerWidth","getElmCssPropValue","propName","propValue","defaultView","getComputedStyle","getPropertyValue","toLowerCase","isFixed","p","nodeName","getWindowScroll","_document","docElm","pageYOffset","scrollLeft","getWindowSize","width","height","doc"],"mappings":"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"}