excalidraw/src/polyfill.ts
Aakansha Doshi 5a8dbe8030
feat: show a mid point for linear elements (#5534)
* 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>
2022-08-11 20:16:25 +05:30

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;