MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //home/cafsindia/snap.cafsinfotech.in/node_modules/caret-pos/lib/bundle/main.js.map
{"version":3,"file":"main.js","sources":["../../src/mirror.js","../../src/utils.js","../../src/input.js","../../src/editable.js","../../src/main.js"],"sourcesContent":["const attributes = [\n  'borderBottomWidth',\n  'borderLeftWidth',\n  'borderRightWidth',\n  'borderTopStyle',\n  'borderRightStyle',\n  'borderBottomStyle',\n  'borderLeftStyle',\n  'borderTopWidth',\n  'boxSizing',\n  'fontFamily',\n  'fontSize',\n  'fontWeight',\n  'height',\n  'letterSpacing',\n  'lineHeight',\n  'marginBottom',\n  'marginLeft',\n  'marginRight',\n  'marginTop',\n  'outlineWidth',\n  'overflow',\n  'overflowX',\n  'overflowY',\n  'paddingBottom',\n  'paddingLeft',\n  'paddingRight',\n  'paddingTop',\n  'textAlign',\n  'textOverflow',\n  'textTransform',\n  'whiteSpace',\n  'wordBreak',\n  'wordWrap',\n];\n\n/**\n * Create a mirror\n *\n * @param {Element} element The element\n * @param {string} html The html\n *\n * @return {object} The mirror object\n */\nconst createMirror = (element, html) => {\n\n  /**\n   * The mirror element\n   */\n  const mirror = document.createElement('div');\n\n  /**\n   * Create the CSS for the mirror object\n   *\n   * @return {object} The style object\n   */\n  const mirrorCss = () => {\n    const css = {\n      position: 'absolute',\n      left: -9999,\n      top: 0,\n      zIndex: -2000\n    };\n\n    if (element.tagName === 'TEXTAREA') {\n      attributes.push('width');\n    }\n\n    attributes.forEach((attr) => {\n      css[attr] = getComputedStyle(element)[attr];\n    });\n\n    return css;\n  };\n\n  /**\n   * Initialize the mirror\n   *\n   * @param {string} html The html\n   *\n   * @return {void}\n   */\n  const initialize = (html) => {\n    const styles = mirrorCss();\n    Object.keys(styles).forEach(key => {\n      mirror.style[key] = styles[key];\n    });\n    mirror.innerHTML = html;\n    element.parentNode.insertBefore(mirror, element.nextSibling);\n  };\n\n  /**\n   * Get the rect\n   *\n   * @return {Rect} The bounding rect\n   */\n  const rect = () => {\n    const marker = mirror.ownerDocument.getElementById('caret-position-marker');\n    const boundingRect = {\n      left: marker.offsetLeft,\n      top: marker.offsetTop,\n      height: marker.offsetHeight\n    };\n    mirror.parentNode.removeChild(mirror);\n\n    return boundingRect;\n  };\n\n  initialize(html);\n\n  return {\n    rect,\n  };\n};\n\nexport default createMirror;\n","/**\n * Check if a DOM Element is content editable\n *\n * @param {Element} element  The DOM element\n *\n * @return {bool} If it is content editable\n */\nexport const isContentEditable = (element) => !!(\n  element.contentEditable ?\n    element.contentEditable === 'true' :\n    element.getAttribute('contenteditable') === 'true'\n);\n\n/**\n * Get the context from settings passed in\n *\n * @param {object} settings The settings object\n *\n * @return {object} window and document\n */\nexport const getContext = (settings = {}) => {\n  const { customPos, iframe, noShadowCaret } = settings;\n  if (iframe) {\n    return {\n      iframe,\n      window: iframe.contentWindow,\n      document: iframe.contentDocument || iframe.contentWindow.document,\n      noShadowCaret,\n      customPos,\n    };\n  }\n\n  return {\n    window,\n    document,\n    noShadowCaret,\n    customPos,\n  };\n};\n\n/**\n * Get the offset of an element\n *\n * @param {Element} element The DOM element\n * @param {object} ctx The context\n *\n * @return {object} top and left\n */\nexport const getOffset = (element, ctx) => {\n  const win = ctx && ctx.window || window;\n  const doc = ctx && ctx.document || document;\n  const rect = element.getBoundingClientRect();\n  const docEl = doc.documentElement;\n  const scrollLeft = win.pageXOffset || docEl.scrollLeft;\n  const scrollTop = win.pageYOffset || docEl.scrollTop;\n\n  return {\n    top: rect.top + scrollTop,\n    left: rect.left + scrollLeft\n  };\n};\n\n/**\n * Check if a value is an object\n *\n * @param {any} value The value to check\n *\n * @return {bool} If it is an object\n */\nexport const isObject = (value) => typeof value === 'object' && value !== null;\n","import createMirror from './mirror';\nimport { getOffset as elementOffset } from './utils';\n\n/**\n * Create a Input caret object.\n *\n * @param {Element} element The element\n * @param {Object} ctx The context\n */\nconst createInputCaret = (element, ctx) => {\n\n  /**\n   * Get the current position\n   *\n   * @returns {int} The caret position\n   */\n  const getPos = () => {\n    return element.selectionStart;\n  };\n\n  /**\n   * Set the position\n   *\n   * @param {int} pos The position\n   *\n   * @return {Element} The element\n   */\n  const setPos = (pos) => {\n    element.setSelectionRange(pos, pos);\n\n    return element;\n  };\n\n  /**\n   * The offset\n   *\n   * @param {int} pos The position\n   *\n   * @return {object} The offset\n   */\n  const getOffset = (pos) => {\n    const rect = elementOffset(element);\n    const position = getPosition(pos);\n\n    return {\n      top: rect.top + position.top + ctx.document.body.scrollTop,\n      left: rect.left + position.left + ctx.document.body.scrollLeft,\n      height: position.height,\n    };\n  };\n\n  /**\n   * Get the current position\n   *\n   * @param {int} pos The position\n   *\n   * @return {object} The position\n   */\n  const getPosition = (pos) => {\n    const format = (val) => {\n      let value = val.replace(/<|>|`|\"|&/g, '?')\n        .replace(/\\r\\n|\\r|\\n/g,'<br/>');\n      return value;\n    };\n\n    if (ctx.customPos || ctx.customPos === 0) {\n      pos = ctx.customPos;\n    }\n\n    const position = pos === undefined ? getPos() : pos;\n    const startRange = element.value.slice(0, position);\n    const endRange = element.value.slice(position);\n    let html = `<span style=\"position: relative; display: inline;\">${format(startRange)}</span>`;\n    html += '<span id=\"caret-position-marker\" style=\"position: relative; display: inline;\">|</span>';\n    html += `<span style=\"position: relative; display: inline;\">${format(endRange)}</span>`;\n\n    const mirror = createMirror(element, html);\n    const rect = mirror.rect();\n    rect.pos = getPos();\n\n    return rect;\n  };\n\n  return {\n    getPos,\n    setPos,\n    getOffset,\n    getPosition,\n  };\n};\n\nexport default createInputCaret;\n","/**\n * Create an Editable Caret\n * @param {Element} element The editable element\n * @param {object|null} ctx The context\n *\n * @return {EditableCaret}\n */\nconst createEditableCaret = (element, ctx) => {\n\n  /**\n   * Set the caret position\n   *\n   * @param {int} pos The position to se\n   *\n   * @return {Element} The element\n   */\n  const setPos = (pos) => {\n    const sel = ctx.window.getSelection();\n    if (sel) {\n      let offset = 0;\n      let found = false;\n      const find = (position, parent) => {\n        for (let i = 0; i < parent.childNodes.length; i++) {\n          const node = parent.childNodes[i];\n          if (found) {\n            break;\n          }\n          if (node.nodeType === 3) {\n            if (offset + node.length >= position) {\n              found = true;\n              const range = ctx.document.createRange();\n              range.setStart(node, position - offset);\n              sel.removeAllRanges();\n              sel.addRange(range);\n              break;\n            } else {\n              offset += node.length;\n            }\n          } else {\n            find(pos, node);\n          }\n        }\n      };\n      find(pos, element);\n    }\n\n    return element;\n  };\n\n  /**\n   * Get the offset\n   *\n   * @return {object} The offset\n   */\n  const getOffset = () => {\n    const range = getRange();\n    let offset = {\n      height: 0,\n      left: 0,\n      right: 0,\n    };\n\n    if (!range) {\n      return offset;\n    }\n\n    const hasCustomPos = ctx.customPos || ctx.customPos === 0;\n\n    // endContainer in Firefox would be the element at the start of\n    // the line\n    if ((range.endOffset - 1 > 0 && range.endContainer !== element) || hasCustomPos) {\n      const clonedRange = range.cloneRange();\n      const fixedPosition = hasCustomPos ? ctx.customPos : range.endOffset;\n      clonedRange.setStart(range.endContainer, fixedPosition - 1 < 0 ? 0 : fixedPosition - 1);\n      clonedRange.setEnd(range.endContainer, fixedPosition);\n      const rect = clonedRange.getBoundingClientRect();\n      offset = {\n        height: rect.height,\n        left: rect.left + rect.width,\n        top: rect.top,\n      };\n      clonedRange.detach();\n    }\n\n    if ((!offset || (offset && offset.height === 0)) && !ctx.noShadowCaret) {\n      const clonedRange = range.cloneRange();\n      const shadowCaret = ctx.document.createTextNode('|');\n      clonedRange.insertNode(shadowCaret);\n      clonedRange.selectNode(shadowCaret);\n      const rect = clonedRange.getBoundingClientRect();\n      offset = {\n        height: rect.height,\n        left: rect.left,\n        top: rect.top,\n      };\n      shadowCaret.parentNode.removeChild(shadowCaret);\n      clonedRange.detach();\n    }\n\n    if (offset) {\n      const doc = ctx.document.documentElement;\n      offset.top += ctx.window.pageYOffset - (doc.clientTop || 0);\n      offset.left += ctx.window.pageXOffset - (doc.clientLeft || 0);\n    }\n\n    return offset;\n  };\n\n  /**\n   * Get the position\n   *\n   * @return {object} The position\n   */\n  const getPosition = () => {\n    const offset = getOffset();\n    const pos = getPos();\n    const rect = element.getBoundingClientRect();\n    const inputOffset = {\n      top: rect.top + ctx.document.body.scrollTop,\n      left: rect.left + ctx.document.body.scrollLeft\n    };\n    offset.left -= inputOffset.left;\n    offset.top -= inputOffset.top;\n    offset.pos = pos;\n\n    return offset;\n  };\n\n  /**\n   * Get the range\n   *\n   * @return {Range|null}\n   */\n  const getRange = () => {\n    if (!ctx.window.getSelection) {\n      return;\n    }\n    const sel = ctx.window.getSelection();\n\n    return sel.rangeCount > 0 ? sel.getRangeAt(0) : null;\n  };\n\n  /**\n   * Get the caret position\n   *\n   * @return {int} The position\n   */\n  const getPos = () => {\n    const range = getRange();\n    const clonedRange = range.cloneRange();\n    clonedRange.selectNodeContents(element);\n    clonedRange.setEnd(range.endContainer, range.endOffset);\n    const pos = clonedRange.toString().length;\n    clonedRange.detach();\n\n    return pos;\n  };\n\n  return {\n    getPos,\n    setPos,\n    getPosition,\n    getOffset,\n    getRange,\n  };\n};\n\nexport default createEditableCaret;\n","import createInputCaret from './input';\nimport createEditableCaret from './editable';\nimport {\n  isContentEditable,\n  getContext,\n  isObject,\n} from './utils';\n\nexport { getOffset } from './utils';\n\nconst createCaret = (element, ctx) => {\n  if (isContentEditable(element)) {\n    return createEditableCaret(element, ctx);\n  }\n\n  return createInputCaret(element, ctx);\n};\n\nexport const position = (element, value, settings = {}) => {\n  let options = settings;\n  if (isObject(value)) {\n    options = value;\n    value = null;\n  }\n  const ctx = getContext(options);\n  const caret = createCaret(element, ctx);\n\n  if (value || value === 0) {\n    return caret.setPos(value);\n  }\n\n  return caret.getPosition();\n};\n\n/**\n *\n * @param {Element} element The DOM element\n * @param {number|undefined} value The value to set\n * @param {object} settings Any settings for context\n */\nexport const offset = (element, value, settings = {}) => {\n  let options = settings;\n  if (isObject(value)) {\n    options = value;\n    value = null;\n  }\n\n  const ctx = getContext(options);\n  const caret = createCaret(element, ctx);\n  return caret.getOffset(value);\n};\n"],"names":["attributes","createMirror","element","html","mirror","document","createElement","mirrorCss","css","position","left","top","zIndex","tagName","push","forEach","attr","getComputedStyle","initialize","styles","Object","keys","key","style","innerHTML","parentNode","insertBefore","nextSibling","rect","marker","ownerDocument","getElementById","boundingRect","offsetLeft","offsetTop","height","offsetHeight","removeChild","isContentEditable","contentEditable","getAttribute","getContext","settings","customPos","iframe","noShadowCaret","window","contentWindow","contentDocument","getOffset","ctx","win","doc","getBoundingClientRect","docEl","documentElement","scrollLeft","pageXOffset","scrollTop","pageYOffset","isObject","value","createInputCaret","getPos","selectionStart","setPos","pos","setSelectionRange","elementOffset","getPosition","body","format","val","replace","undefined","startRange","slice","endRange","createEditableCaret","sel","getSelection","offset","found","find","parent","i","childNodes","length","node","nodeType","range","createRange","setStart","removeAllRanges","addRange","getRange","right","hasCustomPos","endOffset","endContainer","clonedRange","cloneRange","fixedPosition","setEnd","width","detach","shadowCaret","createTextNode","insertNode","selectNode","clientTop","clientLeft","inputOffset","rangeCount","getRangeAt","selectNodeContents","toString","createCaret","options","caret"],"mappings":"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"}