{"version":3,"file":"roundRect-bNOhDTzS.chunk.mjs","sources":["../node_modules/canvas-roundrect-polyfill/roundRect.js"],"sourcesContent":["/*\n * Implements the .roundRect() method of the CanvasPath mixin\n * as introduced by https://github.com/whatwg/html/pull/6765\n */\n(() => {\n\n \"use strict\";\n\n Path2D.prototype.roundRect ??= roundRect;\n if (globalThis.CanvasRenderingContext2D) {\n\n globalThis.CanvasRenderingContext2D.prototype.roundRect ??= roundRect;\n\n }\n if (globalThis.OffscreenCanvasRenderingContext2D) {\n\n globalThis.OffscreenCanvasRenderingContext2D.prototype.roundRect ??= roundRect;\n\n }\n\n function roundRect(x, y, w, h, radii) {\n\n if (!([x, y, w, h].every((input) => Number.isFinite(input)))) {\n\n return;\n\n }\n\n radii = parseRadiiArgument(radii);\n\n let upperLeft, upperRight, lowerRight, lowerLeft;\n\n if (radii.length === 4) {\n\n upperLeft = toCornerPoint(radii[0]);\n upperRight = toCornerPoint(radii[1]);\n lowerRight = toCornerPoint(radii[2]);\n lowerLeft = toCornerPoint(radii[3]);\n\n } else if (radii.length === 3) {\n\n upperLeft = toCornerPoint(radii[0]);\n upperRight = toCornerPoint(radii[1]);\n lowerLeft = toCornerPoint(radii[1]);\n lowerRight = toCornerPoint(radii[2]);\n\n } else if (radii.length === 2) {\n\n upperLeft = toCornerPoint(radii[0]);\n lowerRight = toCornerPoint(radii[0]);\n upperRight = toCornerPoint(radii[1]);\n lowerLeft = toCornerPoint(radii[1]);\n\n } else if (radii.length === 1) {\n\n upperLeft = toCornerPoint(radii[0]);\n upperRight = toCornerPoint(radii[0]);\n lowerRight = toCornerPoint(radii[0]);\n lowerLeft = toCornerPoint(radii[0]);\n\n } else {\n\n throw new RangeError(`${ getErrorMessageHeader(this) } ${ radii.length } is not a valid size for radii sequence.`);\n\n }\n\n const corners = [upperLeft, upperRight, lowerRight, lowerLeft];\n const negativeCorner = corners.find(({x, y}) => x < 0 || y < 0);\n const negativeValue = negativeCorner?.x < 0 ? negativeCorner.x : negativeCorner?.y\n\n if (corners.some(({x, y}) => !Number.isFinite(x) || !Number.isFinite(y))) {\n\n return;\n\n }\n\n if (negativeCorner) {\n\n throw new RangeError(`${ getErrorMessageHeader(this) } Radius value ${ negativeCorner } is negative.`);\n\n }\n\n fixOverlappingCorners(corners);\n\n if (w < 0 && h < 0) {\n\n this.moveTo(x - upperLeft.x, y);\n this.ellipse(x + w + upperRight.x, y - upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI * 1.5, -Math.PI);\n this.ellipse(x + w + lowerRight.x, y + h + lowerRight.y, lowerRight.x, lowerRight.y, 0, -Math.PI, -Math.PI / 2);\n this.ellipse(x - lowerLeft.x, y + h + lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, -Math.PI / 2, 0);\n this.ellipse(x - upperLeft.x, y - upperLeft.y, upperLeft.x, upperLeft.y, 0, 0, -Math.PI / 2);\n\n } else if (w < 0) {\n\n this.moveTo(x - upperLeft.x, y);\n this.ellipse(x + w + upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI / 2, -Math.PI, 1);\n this.ellipse(x + w + lowerRight.x, y + h - lowerRight.y, lowerRight.x, lowerRight.y, 0, -Math.PI, -Math.PI * 1.5, 1);\n this.ellipse(x - lowerLeft.x, y + h - lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, Math.PI / 2, 0, 1);\n this.ellipse(x - upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, 0, 0, -Math.PI / 2, 1);\n\n } else if (h < 0) {\n\n this.moveTo(x + upperLeft.x, y);\n this.ellipse(x + w - upperRight.x, y - upperRight.y, upperRight.x, upperRight.y, 0, Math.PI / 2, 0, 1);\n this.ellipse(x + w - lowerRight.x, y + h + lowerRight.y, lowerRight.x, lowerRight.y, 0, 0, -Math.PI / 2, 1);\n this.ellipse(x + lowerLeft.x, y + h + lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, -Math.PI / 2, -Math.PI, 1);\n this.ellipse(x + upperLeft.x, y - upperLeft.y, upperLeft.x, upperLeft.y, 0, -Math.PI, -Math.PI * 1.5, 1);\n\n } else {\n\n this.moveTo(x + upperLeft.x, y);\n this.ellipse(x + w - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 0, -Math.PI / 2, 0);\n this.ellipse(x + w - lowerRight.x, y + h - lowerRight.y, lowerRight.x, lowerRight.y, 0, 0, Math.PI / 2);\n this.ellipse(x + lowerLeft.x, y + h - lowerLeft.y, lowerLeft.x, lowerLeft.y, 0, Math.PI / 2, Math.PI);\n this.ellipse(x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, 0, Math.PI, Math.PI * 1.5);\n\n }\n\n this.closePath();\n this.moveTo(x, y);\n\n function toDOMPointInit(value) {\n\n const {x, y, z, w} = value;\n return {x, y, z, w};\n\n }\n\n function parseRadiiArgument(value) {\n\n // https://webidl.spec.whatwg.org/#es-union\n // with 'optional (unrestricted double or DOMPointInit\n // or sequence<(unrestricted double or DOMPointInit)>) radii = 0'\n const type = typeof value;\n\n if (type === \"undefined\" || value === null) {\n\n return [0];\n\n }\n if (type === \"function\") {\n\n return [NaN];\n\n }\n if (type === \"object\") {\n\n if (typeof value[Symbol.iterator] === \"function\") {\n\n return [...value].map((elem) => {\n // https://webidl.spec.whatwg.org/#es-union\n // with '(unrestricted double or DOMPointInit)'\n const elemType = typeof elem;\n if (elemType === \"undefined\" || elem === null) {\n return 0;\n }\n if (elemType === \"function\") {\n return NaN;\n }\n if (elemType === \"object\") {\n return toDOMPointInit(elem);\n }\n return toUnrestrictedNumber(elem);\n });\n\n }\n\n return [toDOMPointInit(value)];\n\n }\n\n return [toUnrestrictedNumber(value)];\n\n }\n\n function toUnrestrictedNumber(value) {\n\n return +value;\n\n }\n\n function toCornerPoint(value) {\n\n const asNumber = toUnrestrictedNumber(value);\n if (Number.isFinite(asNumber)) {\n\n return {\n x: asNumber,\n y: asNumber\n };\n\n }\n if (Object(value) === value) {\n\n return {\n x: toUnrestrictedNumber(value.x ?? 0),\n y: toUnrestrictedNumber(value.y ?? 0)\n };\n\n }\n\n return {\n x: NaN,\n y: NaN\n };\n\n }\n\n function fixOverlappingCorners(corners) {\n\n const [upperLeft, upperRight, lowerRight, lowerLeft] = corners;\n const factors = [\n Math.abs(w) / (upperLeft.x + upperRight.x),\n Math.abs(h) / (upperRight.y + lowerRight.y),\n Math.abs(w) / (lowerRight.x + lowerLeft.x),\n Math.abs(h) / (upperLeft.y + lowerLeft.y)\n ];\n const minFactor = Math.min(...factors);\n if (minFactor <= 1) {\n\n for (const radii of corners) {\n\n radii.x *= minFactor;\n radii.y *= minFactor;\n\n }\n\n }\n\n }\n\n }\n\n function getErrorMessageHeader(instance) {\n\n return `Failed to execute 'roundRect' on '${ getConstructorName(instance) }':`;\n\n }\n\n function getConstructorName(instance) {\n\n return Object(instance) === instance &&\n instance instanceof Path2D ? \"Path2D\" :\n instance instanceof globalThis?.CanvasRenderingContext2D ? \"CanvasRenderingContext2D\" :\n instance instanceof globalThis?.OffscreenCanvasRenderingContext2D ? \"OffscreenCanvasRenderingContext2D\" :\n instance?.constructor.name ||\n instance;\n\n }\n\n})();\n"],"names":["_a","roundRect","_b","_c","x","y","w","h","radii","input","parseRadiiArgument","upperLeft","upperRight","lowerRight","lowerLeft","toCornerPoint","getErrorMessageHeader","corners","negativeCorner","fixOverlappingCorners","toDOMPointInit","value","z","type","elem","elemType","toUnrestrictedNumber","asNumber","factors","minFactor","instance","getConstructorName"],"mappings":"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","x_google_ignoreList":[0]}