Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | 28x 28x 1x 1x 1x 1x 1x 1x 28x 28x 10x 4x 6x 6x 6x 28x 12x 21x 12x 54x 12x 12x 28x 14x 30x 14x 37x 19x 28x 21x 21x 17x 4x | import uniq from "lodash/uniq"; export const chunk = <T>(arr: T[], len?: number): T[][] => { Iif (!len) { return [arr]; } const chunks: T[][] = []; const n = arr.length; let i = 0; while (i < n) { chunks.push(arr.slice(i, (i += len))); } return chunks; }; export const filterUndefined = <T>(arr: (T | undefined)[]): T[] => { return arr.filter((t) => t !== undefined); }; export const moveArrayElement = <T>( x: number, y: number, [...xs]: T[] ): T[] => { if ( xs.length <= 1 || x === y || x < 0 || x >= xs.length || y < 0 || y >= xs.length ) { return xs; } const [element] = xs.splice(x, 1); xs.splice(y, 0, element); return xs; }; export const moveArrayElements = <T>( fromIndexes: number[], to: number, arr: T[] ): T[] => { const sortedIndexes = uniq([...fromIndexes].sort((a, b) => a - b)); const selectedItems = sortedIndexes.map((index) => arr[index]); const remainingItems = arr.filter( (_, index) => !sortedIndexes.includes(index) ); const adjustedIndex = to > sortedIndexes[sortedIndexes.length - 1] ? to - sortedIndexes.length + 1 : to; return [ ...remainingItems.slice(0, adjustedIndex), ...selectedItems, ...remainingItems.slice(adjustedIndex), ]; }; export const sortSubsetStringArray = ( arr: string[], sortOrder: string[] ): string[] => { const orderMap = new Map<string, number>(); sortOrder.forEach((element, index) => orderMap.set(element, index)); return arr .filter((element) => orderMap.has(element)) .sort((a, b) => (orderMap.get(a) ?? 0) - (orderMap.get(b) ?? 0)); }; export const insertAfterElement = <T>( arr: T[], insertElement: T, afterElement: T ): T[] => { const insertIndex = arr.indexOf(afterElement); if (insertIndex !== -1) { return [ ...arr.slice(0, insertIndex + 1), insertElement, ...arr.slice(insertIndex + 1), ]; } else { return arr.concat(insertElement); } }; |