{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/SeparatedIterator/index.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { Iterator, IteratorProps } from '../Iterator';\n\ninterface SeparatedIteratorProps<T> extends IteratorProps<T> {\n  separator: React.JSX.Element;\n  separatorInterval?: number;\n  includeLastSeparator?: boolean;\n}\n\nexport const SeparatedIterator = <T,>({\n  itemKey,\n  items,\n  separator,\n  renderItem,\n  separatorInterval = 1,\n  includeLastSeparator = false,\n}: SeparatedIteratorProps<T>) => {\n  const isRenderSeparator = useCallback(\n    (index: number) => {\n      if (index === items.length - 1) {\n        return includeLastSeparator;\n      }\n      return (index + 1) % separatorInterval === 0;\n    },\n    [includeLastSeparator, separatorInterval, items.length]\n  );\n\n  return (\n    <Iterator\n      items={items}\n      itemKey={itemKey}\n      renderItem={(item, index) => (\n        <>\n          {renderItem(item, index)}\n          {isRenderSeparator(index) && separator}\n        </>\n      )}\n    />\n  );\n};\n"],"mappings":";;;;AASA,MAAa,qBAAyB,EACpC,SACA,OACA,WACA,YACA,oBAAoB,GACpB,uBAAuB,YACQ;CAC/B,MAAM,oBAAoB,aACvB,UAAkB;EACjB,IAAI,UAAU,MAAM,SAAS,GAC3B,OAAO;EAET,QAAQ,QAAQ,KAAK,sBAAsB;IAE7C;EAAC;EAAsB;EAAmB,MAAM;EAAO,CACxD;CAED,OACE,oBAAC,UAAD;EACS;EACE;EACT,aAAa,MAAM,UACjB,qBAAA,YAAA,EAAA,UAAA,CACG,WAAW,MAAM,MAAM,EACvB,kBAAkB,MAAM,IAAI,UAC5B,EAAA,CAAA;EAEL,CAAA"}