{"version":3,"names":["validateMinimumDistance","values","step","minStepsBetweenValues","Array","isArray","distances","reduce","acc","val","index","vals","length","push","Math","abs","min"],"sources":["validate-minimum-distance.ts"],"sourcesContent":["/**\n * Returns `true` when every adjacent pair in `values` is at least\n * `step * minStepsBetweenValues` apart. For a scalar input the invariant is\n * vacuous — a single thumb has no neighbour to collide with — so the\n * function short-circuits to `true`.\n */\nexport function validateMinimumDistance(\n\tvalues: number | readonly number[],\n\tstep: number,\n\tminStepsBetweenValues: number,\n): boolean {\n\tif (!Array.isArray(values)) {\n\t\treturn true;\n\t}\n\n\tconst distances = values.reduce((acc: number[], val, index, vals) => {\n\t\tif (index === vals.length - 1) {\n\t\t\treturn acc;\n\t\t}\n\n\t\t// biome-ignore lint/style/noNonNullAssertion: index+1 < length here\n\t\tacc.push(Math.abs(val - vals[index + 1]!));\n\t\treturn acc;\n\t}, []);\n\n\treturn Math.min(...distances) >= step * minStepsBetweenValues;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,uBAAuBA,CACtCC,MAAkC,EAClCC,IAAY,EACZC,qBAA6B,EACnB;EACV,IAAI,CAACC,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,EAAE;IAC3B,OAAO,IAAI;EACZ;EAEA,MAAMK,SAAS,GAAGL,MAAM,CAACM,MAAM,CAAC,CAACC,GAAa,EAAEC,GAAG,EAAEC,KAAK,EAAEC,IAAI,KAAK;IACpE,IAAID,KAAK,KAAKC,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;MAC9B,OAAOJ,GAAG;IACX;;IAEA;IACAA,GAAG,CAACK,IAAI,CAACC,IAAI,CAACC,GAAG,CAACN,GAAG,GAAGE,IAAI,CAACD,KAAK,GAAG,CAAC,CAAE,CAAC,CAAC;IAC1C,OAAOF,GAAG;EACX,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOM,IAAI,CAACE,GAAG,CAAC,GAAGV,SAAS,CAAC,IAAIJ,IAAI,GAAGC,qBAAqB;AAC9D","ignoreList":[]}