mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
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>
This commit is contained in:
parent
731093f631
commit
5a8dbe8030
10 changed files with 266 additions and 43 deletions
26
src/polyfill.ts
Normal file
26
src/polyfill.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
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;
|
Loading…
Add table
Add a link
Reference in a new issue