{"version":3,"file":"get-index-from-drag-point.cjs","names":[],"sources":["../../../src/utils/get-index-from-drag-point/get-index-from-drag-point.ts"],"sourcesContent":["/**\n * Finds the index of the element whose horizontal bounds contain `clientX`.\n * When `clientX` falls outside every element, it clamps to the first or last\n * element; returns `null` when no element matches and the row is empty.\n */\nexport function getIndexFromDragPoint(\n  elements: (HTMLElement | null)[],\n  clientX: number\n): number | null {\n  const index = elements.findIndex((node) => {\n    if (!node) {\n      return false;\n    }\n    const rect = node.getBoundingClientRect();\n    return clientX >= rect.left && clientX <= rect.right;\n  });\n\n  if (index >= 0) {\n    return index;\n  }\n\n  const first = elements[0];\n  const last = elements[elements.length - 1];\n\n  if (!first || !last) {\n    return null;\n  }\n\n  const firstRect = first.getBoundingClientRect();\n  const lastRect = last.getBoundingClientRect();\n\n  if (clientX < firstRect.left) {\n    return 0;\n  }\n\n  if (clientX > lastRect.right) {\n    return elements.length - 1;\n  }\n\n  return null;\n}\n"],"mappings":";;;;;;;AAKA,SAAgB,sBACd,UACA,SACe;CACf,MAAM,QAAQ,SAAS,WAAW,SAAS;EACzC,IAAI,CAAC,MACH,OAAO;EAET,MAAM,OAAO,KAAK,sBAAsB;EACxC,OAAO,WAAW,KAAK,QAAQ,WAAW,KAAK;CACjD,CAAC;CAED,IAAI,SAAS,GACX,OAAO;CAGT,MAAM,QAAQ,SAAS;CACvB,MAAM,OAAO,SAAS,SAAS,SAAS;CAExC,IAAI,CAAC,SAAS,CAAC,MACb,OAAO;CAGT,MAAM,YAAY,MAAM,sBAAsB;CAC9C,MAAM,WAAW,KAAK,sBAAsB;CAE5C,IAAI,UAAU,UAAU,MACtB,OAAO;CAGT,IAAI,UAAU,SAAS,OACrB,OAAO,SAAS,SAAS;CAG3B,OAAO;AACT"}