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.min.js.map
{"version":3,"sources":["../../src/mirror.js","../../src/utils.js","../../src/input.js","../../src/editable.js","../../src/main.js"],"names":["createMirror","element","html","css","styles","mirror","document","createElement","position","left","top","zIndex","tagName","attributes","push","forEach","attr","getComputedStyle","Object","keys","key","style","innerHTML","parentNode","insertBefore","nextSibling","rect","marker","ownerDocument","getElementById","boundingRect","offsetLeft","offsetTop","height","offsetHeight","removeChild","getContext","settings","arguments","length","undefined","customPos","iframe","noShadowCaret","window","contentWindow","contentDocument","getOffset","ctx","win","doc","getBoundingClientRect","docEl","documentElement","scrollLeft","pageXOffset","scrollTop","pageYOffset","isObject","value","_typeof","createInputCaret","getPos","selectionStart","getPosition","pos","format","val","replace","startRange","slice","endRange","concat","setPos","setSelectionRange","elementOffset","body","createEditableCaret","range","getRange","offset","right","hasCustomPos","endOffset","endContainer","clonedRange","cloneRange","fixedPosition","setStart","setEnd","width","detach","shadowCaret","createTextNode","insertNode","selectNode","clientTop","clientLeft","getSelection","sel","rangeCount","getRangeAt","selectNodeContents","toString","found","find","parent","i","childNodes","node","nodeType","createRange","removeAllRanges","addRange","inputOffset","createCaret","contentEditable","getAttribute","options","caret"],"mappings":"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","file":"main.min.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"]}