@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
1 lines • 7.03 kB
Source Map (JSON)
{"version":3,"file":"taiga-ui-core-utils-dom.mjs","sources":["../../../projects/core/utils/dom/check-fixed-position.ts","../../../projects/core/utils/dom/get-viewport.ts","../../../projects/core/utils/dom/get-word-range.ts","../../../projects/core/utils/dom/taiga-ui-core-utils-dom.ts"],"sourcesContent":["export function tuiCheckFixedPosition(element?: HTMLElement | null): boolean {\n return (\n !!element && (isFixed(element) || tuiCheckFixedPosition(element.parentElement))\n );\n}\n\nfunction isFixed(element: HTMLElement): boolean {\n return (\n element.ownerDocument.defaultView\n ?.getComputedStyle(element)\n .getPropertyValue('position') === 'fixed'\n );\n}\n","/**\n * @description:\n * Cross-browser @media (height/width)\n *\n * 1. window.innerWidth/Width\n * 1.1. gets CSS viewport @media (height/width) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientHeight/Width\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (height) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportHeight({document, innerHeight}: Window): number {\n return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);\n}\n\nexport function tuiGetViewportWidth({document, innerWidth}: Window): number {\n return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);\n}\n","import {\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n svgNodeFilter,\n} from '@taiga-ui/cdk/constants';\n\n/**\n * Creates a cloned range with its boundaries set at word boundaries\n *\n * @param currentRange a range to clone\n * @return modified range\n */\nexport function tuiGetWordRange(currentRange: Range): Range {\n const range = currentRange.cloneRange();\n const {startContainer, startOffset, endContainer, endOffset} = range;\n const {ownerDocument} = startContainer;\n\n if (!ownerDocument) {\n return range;\n }\n\n const treeWalker = ownerDocument.createTreeWalker(\n ownerDocument.body,\n NodeFilter.SHOW_TEXT,\n svgNodeFilter,\n );\n\n treeWalker.currentNode = startContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === startContainer\n ? textContent.slice(0, Math.max(0, startOffset + 1))\n : textContent;\n const offset =\n Math.max(\n content.lastIndexOf(' '),\n content.lastIndexOf('\\n'),\n content.lastIndexOf(CHAR_NO_BREAK_SPACE),\n content.lastIndexOf(CHAR_ZERO_WIDTH_SPACE),\n ) + 1;\n\n range.setStart(container, 0);\n\n if (offset) {\n range.setStart(container, offset);\n break;\n }\n } while (treeWalker.previousNode());\n\n treeWalker.currentNode = endContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === endContainer ? textContent.slice(endOffset + 1) : textContent;\n const offset = [\n content.indexOf(' '),\n content.lastIndexOf('\\n'),\n content.indexOf(CHAR_NO_BREAK_SPACE),\n content.indexOf(CHAR_ZERO_WIDTH_SPACE),\n ].reduce(\n (result, item) =>\n result === -1 || item === -1\n ? Math.max(result, item)\n : Math.min(result, item),\n -1,\n );\n\n range.setEnd(container, textContent.length);\n\n if (offset !== -1) {\n range.setEnd(container, offset + textContent.length - content.length);\n break;\n }\n } while (treeWalker.nextNode());\n\n return range;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}