UNPKG

32.2 kBSource Map (JSON)View Raw
1{"version":3,"sources":["ng://primeng/dom/domhandler.ts"],"names":["DomHandler","addClass","element","className","classList","add","addMultipleClasses","styles","split","i","length","removeClass","remove","replace","RegExp","join","hasClass","contains","test","siblings","Array","prototype","filter","call","parentNode","children","child","find","selector","from","querySelectorAll","findSingle","querySelector","index","childNodes","num","nodeType","indexWithinGroup","attributeName","attributes","relativePosition","target","top","left","elementDimensions","offsetParent","width","offsetWidth","height","offsetHeight","this","getHiddenElementDimensions","targetHeight","targetOffset","getBoundingClientRect","viewport","getViewport","style","absolutePosition","elementOuterHeight","elementOuterWidth","targetOuterHeight","targetOuterWidth","windowScrollTop","getWindowScrollTop","windowScrollLeft","getWindowScrollLeft","Math","max","getHiddenElementOuterHeight","visibility","display","elementHeight","getHiddenElementOuterWidth","elementWidth","dimensions","scrollInView","container","item","borderTopValue","getComputedStyle","getPropertyValue","borderTop","parseFloat","paddingTopValue","paddingTop","containerRect","offset","document","body","scrollTop","scroll","clientHeight","itemHeight","getOuterHeight","fadeIn","duration","opacity","last","Date","tick","getTime","window","requestAnimationFrame","setTimeout","fadeOut","ms","gap","fading","setInterval","clearInterval","doc","documentElement","pageYOffset","clientTop","pageXOffset","scrollLeft","clientLeft","matches","p","Element","webkitMatchesSelector","s","indexOf","getOuterWidth","el","margin","marginLeft","marginRight","getHorizontalPadding","paddingLeft","paddingRight","getHorizontalMargin","innerWidth","getInnerHeight","paddingBottom","marginTop","marginBottom","getHeight","borderTopWidth","borderBottomWidth","getWidth","borderLeftWidth","borderRightWidth","win","d","e","g","getElementsByTagName","clientWidth","innerHeight","getOffset","rect","replaceElementWith","replacementElement","replaceChild","getUserAgent","navigator","userAgent","isIE","ua","isIOS","isAndroid","appendChild","isElement","nativeElement","removeChild","obj","HTMLElement","nodeName","calculateScrollbarWidth","calculatedScrollbarWidth","scrollDiv","createElement","scrollbarWidth","calculateScrollbarHeight","calculatedScrollbarHeight","scrollbarHeight","invokeElementMethod","methodName","args","apply","clearSelection","getSelection","empty","removeAllRanges","rangeCount","getRangeAt","getClientRects","error","getBrowser","browser","matched","resolveUserAgent","version","toLowerCase","match","exec","isInteger","value","Number","isFinite","floor","isHidden","getFocusableElements","focusableElements","visibleFocusableElements","focusableElements_1","__values","focusableElements_1_1","next","done","focusableElement","push","zindex"],"mappings":"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","sourcesContent":["/**\n * @dynamic is for runtime initializing DomHandler.browser\n *\n * If delete below comment, we can see this error message:\n * Metadata collected contains an error that will be reported at runtime:\n * Only initialized variables and constants can be referenced\n * because the value of this variable is needed by the template compiler.\n */\n// @dynamic\nexport class DomHandler {\n\n public static zindex: number = 1000;\n\n private static calculatedScrollbarWidth: number = null;\n\n private static calculatedScrollbarHeight: number = null;\n\n private static browser: any;\n\n public static addClass(element: any, className: string): void {\n if (element.classList)\n element.classList.add(className);\n else\n element.className += ' ' + className;\n }\n\n public static addMultipleClasses(element: any, className: string): void {\n if (element.classList) {\n let styles: string[] = className.split(' ');\n for (let i = 0; i < styles.length; i++) {\n element.classList.add(styles[i]);\n }\n\n }\n else {\n let styles: string[] = className.split(' ');\n for (let i = 0; i < styles.length; i++) {\n element.className += ' ' + styles[i];\n }\n }\n }\n\n public static removeClass(element: any, className: string): void {\n if (element.classList)\n element.classList.remove(className);\n else\n element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n\n public static hasClass(element: any, className: string): boolean {\n if (element.classList)\n return element.classList.contains(className);\n else\n return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n\n public static siblings(element: any): any {\n return Array.prototype.filter.call(element.parentNode.children, function (child) {\n return child !== element;\n });\n }\n\n public static find(element: any, selector: string): any[] {\n return Array.from(element.querySelectorAll(selector));\n }\n\n public static findSingle(element: any, selector: string): any {\n if (element) {\n return element.querySelector(selector);\n }\n return null;\n }\n\n public static index(element: any): number {\n let children = element.parentNode.childNodes;\n let num = 0;\n for (var i = 0; i < children.length; i++) {\n if (children[i] == element) return num;\n if (children[i].nodeType == 1) num++;\n }\n return -1;\n }\n \n public static indexWithinGroup(element: any, attributeName: string): number {\n let children = element.parentNode ? element.parentNode.childNodes : [];\n let num = 0;\n for (var i = 0; i < children.length; i++) {\n if (children[i] == element) return num;\n if (children[i].attributes && children[i].attributes[attributeName] && children[i].nodeType == 1) num++;\n }\n return -1;\n }\n\n public static relativePosition(element: any, target: any): void {\n let elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : this.getHiddenElementDimensions(element);\n const targetHeight = target.offsetHeight;\n const targetOffset = target.getBoundingClientRect();\n const viewport = this.getViewport();\n let top: number, left: number;\n\n if ((targetOffset.top + targetHeight + elementDimensions.height) > viewport.height) {\n top = -1 * (elementDimensions.height);\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n }\n else {\n top = targetHeight;\n }\n\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n }\n else if ((targetOffset.left + elementDimensions.width) > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n }\n else {\n // element fits on screen (align with target)\n left = 0;\n }\n\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n\n public static absolutePosition(element: any, target: any): void {\n let elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : this.getHiddenElementDimensions(element);\n let elementOuterHeight = elementDimensions.height;\n let elementOuterWidth = elementDimensions.width;\n let targetOuterHeight = target.offsetHeight;\n let targetOuterWidth = target.offsetWidth;\n let targetOffset = target.getBoundingClientRect();\n let windowScrollTop = this.getWindowScrollTop();\n let windowScrollLeft = this.getWindowScrollLeft();\n let viewport = this.getViewport();\n let top, left;\n\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n if (top < 0) {\n top = windowScrollTop;\n }\n } \n else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n }\n\n if (targetOffset.left + elementOuterWidth > viewport.width)\n left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);\n else\n left = targetOffset.left + windowScrollLeft;\n\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n\n public static getHiddenElementOuterHeight(element: any): number {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n let elementHeight = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n\n return elementHeight;\n }\n\n public static getHiddenElementOuterWidth(element: any): number {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n let elementWidth = element.offsetWidth;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n\n return elementWidth;\n }\n\n public static getHiddenElementDimensions(element: any): any {\n let dimensions: any = {};\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = element.offsetWidth;\n dimensions.height = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n\n return dimensions;\n }\n\n public static scrollInView(container, item) {\n let borderTopValue: string = getComputedStyle(container).getPropertyValue('borderTopWidth');\n let borderTop: number = borderTopValue ? parseFloat(borderTopValue) : 0;\n let paddingTopValue: string = getComputedStyle(container).getPropertyValue('paddingTop');\n let paddingTop: number = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n let containerRect = container.getBoundingClientRect();\n let itemRect = item.getBoundingClientRect();\n let offset = (itemRect.top + document.body.scrollTop) - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n let scroll = container.scrollTop;\n let elementHeight = container.clientHeight;\n let itemHeight = this.getOuterHeight(item);\n\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n }\n else if ((offset + itemHeight) > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n }\n\n public static fadeIn(element, duration: number): void {\n element.style.opacity = 0;\n\n let last = +new Date();\n let opacity = 0;\n let tick = function () {\n opacity = +element.style.opacity.replace(\",\", \".\") + (new Date().getTime() - last) / duration;\n element.style.opacity = opacity;\n last = +new Date();\n\n if (+opacity < 1) {\n (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);\n }\n };\n\n tick();\n }\n\n public static fadeOut(element, ms) {\n var opacity = 1,\n interval = 50,\n duration = ms,\n gap = interval / duration;\n\n let fading = setInterval(() => {\n opacity = opacity - gap;\n\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n \n element.style.opacity = opacity;\n }, interval);\n }\n\n public static getWindowScrollTop(): number {\n let doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n\n public static getWindowScrollLeft(): number {\n let doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n\n public static matches(element, selector: string): boolean {\n var p = Element.prototype;\n var f = p['matches'] || p.webkitMatchesSelector || p['mozMatchesSelector'] || p['msMatchesSelector'] || function (s) {\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\n };\n return f.call(element, selector);\n }\n\n public static getOuterWidth(el, margin?) {\n let width = el.offsetWidth;\n\n if (margin) {\n let style = getComputedStyle(el);\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n public static getHorizontalPadding(el) {\n let style = getComputedStyle(el);\n return parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n }\n\n public static getHorizontalMargin(el) {\n let style = getComputedStyle(el);\n return parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n public static innerWidth(el) {\n let width = el.offsetWidth;\n let style = getComputedStyle(el);\n\n width += parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n\n public static width(el) {\n let width = el.offsetWidth;\n let style = getComputedStyle(el);\n\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n \n public static getInnerHeight(el) {\n let height = el.offsetHeight;\n let style = getComputedStyle(el);\n\n height += parseFloat(style.paddingTop) + parseFloat(style.paddingBottom);\n return height;\n }\n\n public static getOuterHeight(el, margin?) {\n let height = el.offsetHeight;\n\n if (margin) {\n let style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n public static getHeight(el): number {\n let height = el.offsetHeight;\n let style = getComputedStyle(el);\n\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\n return height;\n }\n\n public static getWidth(el): number {\n let width = el.offsetWidth;\n let style = getComputedStyle(el);\n\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n\n return width;\n }\n\n public static getViewport(): any {\n let win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n\n return { width: w, height: h };\n }\n \n public static getOffset(el) {\n let rect = el.getBoundingClientRect();\n \n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n };\n }\n\n public static replaceElementWith(element: any, replacementElement: any): any {\n let parentNode = element.parentNode;\n if (!parentNode) \n throw `Can't replace element`;\n return parentNode.replaceChild(replacementElement, element);\n }\n\n public static getUserAgent(): string {\n return navigator.userAgent;\n }\n\n public static isIE() {\n var ua = window.navigator.userAgent;\n\n var msie = ua.indexOf('MSIE ');\n if (msie > 0) {\n // IE 10 or older => return version number\n return true;\n }\n\n var trident = ua.indexOf('Trident/');\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return true;\n }\n\n var edge = ua.indexOf('Edge/');\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return true;\n }\n\n // other browser\n return false;\n }\n\n public static isIOS() {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\n }\n\n public static isAndroid() {\n return /(android)/i.test(navigator.userAgent);\n }\n \n public static appendChild(element: any, target: any) {\n if (this.isElement(target))\n target.appendChild(element);\n else if (target.el && target.el.nativeElement)\n target.el.nativeElement.appendChild(element);\n else\n throw 'Cannot append ' + target + ' to ' + element;\n }\n \n public static removeChild(element: any, target: any) {\n if (this.isElement(target))\n target.removeChild(element);\n else if (target.el && target.el.nativeElement)\n target.el.nativeElement.removeChild(element);\n else\n throw 'Cannot remove ' + element + ' from ' + target;\n }\n \n public static isElement(obj: any) {\n return (typeof HTMLElement === \"object\" ? obj instanceof HTMLElement :\n obj && typeof obj === \"object\" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === \"string\"\n );\n }\n \n public static calculateScrollbarWidth(el?: HTMLElement): number {\n if (el) {\n let style = getComputedStyle(el);\n return (el.offsetWidth - el.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth));\n }\n else {\n if (this.calculatedScrollbarWidth !== null)\n return this.calculatedScrollbarWidth;\n \n let scrollDiv = document.createElement(\"div\");\n scrollDiv.className = \"ui-scrollbar-measure\";\n document.body.appendChild(scrollDiv);\n\n let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n\n this.calculatedScrollbarWidth = scrollbarWidth;\n \n return scrollbarWidth;\n }\n }\n\n public static calculateScrollbarHeight(): number {\n if (this.calculatedScrollbarHeight !== null)\n return this.calculatedScrollbarHeight;\n \n let scrollDiv = document.createElement(\"div\");\n scrollDiv.className = \"ui-scrollbar-measure\";\n document.body.appendChild(scrollDiv);\n\n let scrollbarHeight = scrollDiv.offsetHeight - scrollDiv.clientHeight;\n document.body.removeChild(scrollDiv);\n\n this.calculatedScrollbarWidth = scrollbarHeight;\n \n return scrollbarHeight;\n }\n \n public static invokeElementMethod(element: any, methodName: string, args?: any[]): void {\n (element as any)[methodName].apply(element, args);\n }\n \n public static clearSelection(): void {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges && window.getSelection().rangeCount > 0 && window.getSelection().getRangeAt(0).getClientRects().length > 0) {\n window.getSelection().removeAllRanges();\n }\n }\n else if (document['selection'] && document['selection'].empty) {\n try {\n document['selection'].empty();\n } catch(error) {\n //ignore IE bug\n }\n }\n }\n\n public static getBrowser() {\n if (!this.browser) {\n let matched = this.resolveUserAgent();\n this.browser = {};\n\n if (matched.browser) {\n this.browser[matched.browser] = true;\n this.browser['version'] = matched.version;\n }\n\n if (this.browser['chrome']) {\n this.browser['webkit'] = true;\n } else if (this.browser['webkit']) {\n this.browser['safari'] = true;\n }\n }\n\n return this.browser;\n }\n\n public static resolveUserAgent() {\n let ua = navigator.userAgent.toLowerCase();\n let match = /(chrome)[ \\/]([\\w.]+)/.exec(ua) ||\n /(webkit)[ \\/]([\\w.]+)/.exec(ua) ||\n /(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(ua) ||\n /(msie) ([\\w.]+)/.exec(ua) ||\n ua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua) ||\n [];\n\n return {\n browser: match[1] || \"\",\n version: match[2] || \"0\"\n };\n }\n\n public static isInteger(value): boolean {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n else {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n }\n }\n\n public static isHidden(element: HTMLElement): boolean {\n return element.offsetParent === null;\n }\n\n public static getFocusableElements(element:HTMLElement) {\n let focusableElements = DomHandler.find(element,`button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden]), \n [href][clientHeight][clientWidth]:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden]), \n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden]), select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden]), \n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden]), [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden]), \n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])`\n );\n\n let visibleFocusableElements = [];\n for(let focusableElement of focusableElements) {\n if (getComputedStyle(focusableElement).display != \"none\" && getComputedStyle(focusableElement).visibility != \"hidden\")\n visibleFocusableElements.push(focusableElement);\n }\n return visibleFocusableElements;\n }\n}\n"]}
\No newline at end of file