5a8dbe8030
* feat: Add a mid point for linear elements * fix tests * show mid point only on hover * hacky fix :( * don't add mid points if present and only add outside editor * improve styling and always show phantom point instead of just on hover * fix tests * fix * only add polyfill for test * add hover state for phantom point * fix tests * fix * Add Array.at polyfill * reuse `centerPoint()` helper * reuse `distance2d` * use `Point` type Co-authored-by: dwelle <luzar.david@gmail.com>
27 lines
790 B
TypeScript
27 lines
790 B
TypeScript
const polyfill = () => {
|
|
if (!Array.prototype.at) {
|
|
// Taken from https://github.com/tc39/proposal-relative-indexing-method#polyfill so that it works in tests
|
|
/* eslint-disable */
|
|
Object.defineProperty(Array.prototype, "at", {
|
|
value: function (n: number) {
|
|
// ToInteger() abstract op
|
|
n = Math.trunc(n) || 0;
|
|
// Allow negative indexing from the end
|
|
if (n < 0) {
|
|
n += this.length;
|
|
}
|
|
// OOB access is guaranteed to return undefined
|
|
if (n < 0 || n >= this.length) {
|
|
return undefined;
|
|
}
|
|
// Otherwise, this is just normal property access
|
|
return this[n];
|
|
},
|
|
writable: true,
|
|
enumerable: false,
|
|
configurable: true,
|
|
});
|
|
}
|
|
};
|
|
export default polyfill;
|