@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 2.14 kB
Source Map (JSON)
{"version":3,"file":"get-virtualized-index.cjs","names":[],"sources":["../../../../../src/components/Combobox/use-combobox/get-index/get-virtualized-index.ts"],"sourcesContent":["interface GetIndexProps {\n currentIndex: number;\n isOptionDisabled: (index: number) => boolean;\n totalOptionsCount: number;\n loop: boolean;\n}\n\nexport function getPreviousIndex({\n currentIndex,\n isOptionDisabled,\n totalOptionsCount,\n loop,\n}: GetIndexProps) {\n for (let i = currentIndex - 1; i >= 0; i -= 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n\n if (loop) {\n for (let i = totalOptionsCount - 1; i > -1; i -= 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n }\n\n return currentIndex;\n}\n\nexport function getNextIndex({\n currentIndex,\n isOptionDisabled,\n totalOptionsCount,\n loop,\n}: GetIndexProps) {\n for (let i = currentIndex + 1; i < totalOptionsCount; i += 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n\n if (loop) {\n for (let i = 0; i < totalOptionsCount; i += 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n }\n\n return currentIndex;\n}\n\ninterface GetFirstIndexOptions {\n totalOptionsCount: number;\n isOptionDisabled: (index: number) => boolean;\n}\n\nexport function getFirstIndex({ totalOptionsCount, isOptionDisabled }: GetFirstIndexOptions) {\n for (let i = 0; i < totalOptionsCount; i += 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n\n return -1;\n}\n"],"mappings":";;AAOA,SAAgB,iBAAiB,EAC/B,cACA,kBACA,mBACA,QACgB;AAChB,MAAK,IAAI,IAAI,eAAe,GAAG,KAAK,GAAG,KAAK,EAC1C,KAAI,CAAC,iBAAiB,EAAE,CACtB,QAAO;AAIX,KAAI;OACG,IAAI,IAAI,oBAAoB,GAAG,IAAI,IAAI,KAAK,EAC/C,KAAI,CAAC,iBAAiB,EAAE,CACtB,QAAO;;AAKb,QAAO;;AAGT,SAAgB,aAAa,EAC3B,cACA,kBACA,mBACA,QACgB;AAChB,MAAK,IAAI,IAAI,eAAe,GAAG,IAAI,mBAAmB,KAAK,EACzD,KAAI,CAAC,iBAAiB,EAAE,CACtB,QAAO;AAIX,KAAI;OACG,IAAI,IAAI,GAAG,IAAI,mBAAmB,KAAK,EAC1C,KAAI,CAAC,iBAAiB,EAAE,CACtB,QAAO;;AAKb,QAAO;;AAQT,SAAgB,cAAc,EAAE,mBAAmB,oBAA0C;AAC3F,MAAK,IAAI,IAAI,GAAG,IAAI,mBAAmB,KAAK,EAC1C,KAAI,CAAC,iBAAiB,EAAE,CACtB,QAAO;AAIX,QAAO"}