UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 2.16 kB
{"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;CAChB,KAAK,IAAI,IAAI,eAAe,GAAG,KAAK,GAAG,KAAK,GAC1C,IAAI,CAAC,iBAAiB,CAAC,GACrB,OAAO;CAIX,IAAI;OACG,IAAI,IAAI,oBAAoB,GAAG,IAAI,IAAI,KAAK,GAC/C,IAAI,CAAC,iBAAiB,CAAC,GACrB,OAAO;CAAA;CAKb,OAAO;AACT;AAEA,SAAgB,aAAa,EAC3B,cACA,kBACA,mBACA,QACgB;CAChB,KAAK,IAAI,IAAI,eAAe,GAAG,IAAI,mBAAmB,KAAK,GACzD,IAAI,CAAC,iBAAiB,CAAC,GACrB,OAAO;CAIX,IAAI;OACG,IAAI,IAAI,GAAG,IAAI,mBAAmB,KAAK,GAC1C,IAAI,CAAC,iBAAiB,CAAC,GACrB,OAAO;CAAA;CAKb,OAAO;AACT;AAOA,SAAgB,cAAc,EAAE,mBAAmB,oBAA0C;CAC3F,KAAK,IAAI,IAAI,GAAG,IAAI,mBAAmB,KAAK,GAC1C,IAAI,CAAC,iBAAiB,CAAC,GACrB,OAAO;CAIX,OAAO;AACT"}