page-annotation 0.1.0-alpha.0 → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/annotator.d.ts +0 -1
- package/dist/capture/color-sanitizer.d.ts +0 -1
- package/dist/capture/dom-capture.d.ts +0 -1
- package/dist/clipboard.d.ts +0 -1
- package/dist/defaults.d.ts +0 -1
- package/dist/download.d.ts +0 -1
- package/dist/export/compose.d.ts +0 -1
- package/dist/geometry.d.ts +0 -1
- package/dist/icons.d.ts +0 -1
- package/dist/id.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/page-annotation.es.js +0 -1
- package/dist/page-annotation.iife.js +0 -1
- package/dist/render.d.ts +0 -1
- package/dist/store.d.ts +0 -1
- package/dist/types.d.ts +0 -1
- package/package.json +4 -2
- package/dist/annotator.d.ts.map +0 -1
- package/dist/capture/color-sanitizer.d.ts.map +0 -1
- package/dist/capture/dom-capture.d.ts.map +0 -1
- package/dist/clipboard.d.ts.map +0 -1
- package/dist/defaults.d.ts.map +0 -1
- package/dist/download.d.ts.map +0 -1
- package/dist/export/compose.d.ts.map +0 -1
- package/dist/geometry.d.ts.map +0 -1
- package/dist/icons.d.ts.map +0 -1
- package/dist/id.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/page-annotation.es.js.map +0 -1
- package/dist/page-annotation.iife.js.map +0 -1
- package/dist/render.d.ts.map +0 -1
- package/dist/store.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
package/dist/annotator.d.ts
CHANGED
package/dist/clipboard.d.ts
CHANGED
package/dist/defaults.d.ts
CHANGED
package/dist/download.d.ts
CHANGED
package/dist/export/compose.d.ts
CHANGED
package/dist/geometry.d.ts
CHANGED
package/dist/icons.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export type ToolbarIconName = "arrow" | "close" | "copy" | "download" | "eraser" | "move" | "pen" | "rectangle" | "redo" | "send" | "text" | "trash" | "undo";
|
|
2
2
|
export declare function iconSvg(name: ToolbarIconName): string;
|
|
3
3
|
export declare function createIcon(name: ToolbarIconName): HTMLSpanElement;
|
|
4
|
-
//# sourceMappingURL=icons.d.ts.map
|
package/dist/id.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -6,4 +6,3 @@ export { iconSvg } from "./icons";
|
|
|
6
6
|
export { AnnotationStore } from "./store";
|
|
7
7
|
export type { AnnotationDocument, AnnotationExport, AnnotationItem, AnnotationPoint, AnnotationTool, CaptureOptions, CaptureProvider, PageAnnotator, PageAnnotatorLabels, PageAnnotatorLauncherOffset, PageAnnotatorLauncherOptions, PageAnnotatorLauncherPosition, PageAnnotatorOptions } from "./types";
|
|
8
8
|
export type { ToolbarIconName } from "./icons";
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -3,4 +3,3 @@ var PageAnnotation=(function(Y){"use strict";var Tl=Object.defineProperty;var Sl
|
|
|
3
3
|
display: none !important;
|
|
4
4
|
}`,Uc=function(e){Fc(e,"."+sr+Cc+cs+`
|
|
5
5
|
.`+Br+hc+cs)},Fc=function(e,A){var t=e.ownerDocument;if(t){var r=t.createElement("style");r.textContent=A,e.appendChild(r)}},ls=(function(){function e(){}return e.getOrigin=function(A){var t=e._link;return t?(t.href=A,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},e.isSameOrigin=function(A){return e.getOrigin(A)===e._origin},e.setContext=function(A){e._link=A.document.createElement("a"),e._origin=e.getOrigin(A.location.href)},e._origin="about:blank",e})(),dc=(function(){function e(A,t){this.context=A,this._options=t,this._cache={}}return e.prototype.addImage=function(A){var t=Promise.resolve();return this.has(A)||(ar(A)||vc(A))&&(this._cache[A]=this.loadImage(A)).catch(function(){}),t},e.prototype.match=function(A){return this._cache[A]},e.prototype.loadImage=function(A){return W(this,void 0,void 0,function(){var t,r,n,s,B=this;return _(this,function(i){switch(i.label){case 0:return t=ls.isSameOrigin(A),r=!ir(A)&&this._options.useCORS===!0&&P.SUPPORT_CORS_IMAGES&&!t,n=!ir(A)&&!t&&!ar(A)&&typeof this._options.proxy=="string"&&P.SUPPORT_CORS_XHR&&!r,!t&&this._options.allowTaint===!1&&!ir(A)&&!ar(A)&&!n&&!r?[2]:(s=A,n?[4,this.proxy(s)]:[3,2]);case 1:s=i.sent(),i.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise(function(a,o){var c=new Image;c.onload=function(){return a(c)},c.onerror=o,(Ic(s)||r)&&(c.crossOrigin="anonymous"),c.src=s,c.complete===!0&&setTimeout(function(){return a(c)},500),B._options.imageTimeout>0&&setTimeout(function(){return o("Timed out ("+B._options.imageTimeout+"ms) loading image")},B._options.imageTimeout)})];case 3:return[2,i.sent()]}})})},e.prototype.has=function(A){return typeof this._cache[A]!="undefined"},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(A){var t=this,r=this._options.proxy;if(!r)throw new Error("No proxy defined");var n=A.substring(0,256);return new Promise(function(s,B){var i=P.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=function(){if(a.status===200)if(i==="text")s(a.response);else{var l=new FileReader;l.addEventListener("load",function(){return s(l.result)},!1),l.addEventListener("error",function(Q){return B(Q)},!1),l.readAsDataURL(a.response)}else B("Failed to proxy resource "+n+" with status code "+a.status)},a.onerror=B;var o=r.indexOf("?")>-1?"&":"?";if(a.open("GET",""+r+o+"url="+encodeURIComponent(A)+"&responseType="+i),i!=="text"&&a instanceof XMLHttpRequest&&(a.responseType=i),t._options.imageTimeout){var c=t._options.imageTimeout;a.timeout=c,a.ontimeout=function(){return B("Timed out ("+c+"ms) proxying "+n)}}a.send()})},e})(),pc=/^data:image\/svg\+xml/i,Ec=/^data:image\/.*;base64,/i,Hc=/^data:image\/.*/i,vc=function(e){return P.SUPPORT_SVG_DRAWING||!yc(e)},ir=function(e){return Hc.test(e)},Ic=function(e){return Ec.test(e)},ar=function(e){return e.substr(0,4)==="blob"},yc=function(e){return e.substr(-3).toLowerCase()==="svg"||pc.test(e)},u=(function(){function e(A,t){this.type=0,this.x=A,this.y=t}return e.prototype.add=function(A,t){return new e(this.x+A,this.y+t)},e})(),YA=function(e,A,t){return new u(e.x+(A.x-e.x)*t,e.y+(A.y-e.y)*t)},it=(function(){function e(A,t,r,n){this.type=1,this.start=A,this.startControl=t,this.endControl=r,this.end=n}return e.prototype.subdivide=function(A,t){var r=YA(this.start,this.startControl,A),n=YA(this.startControl,this.endControl,A),s=YA(this.endControl,this.end,A),B=YA(r,n,A),i=YA(n,s,A),a=YA(B,i,A);return t?new e(this.start,r,B,a):new e(a,i,s,this.end)},e.prototype.add=function(A,t){return new e(this.start.add(A,t),this.startControl.add(A,t),this.endControl.add(A,t),this.end.add(A,t))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e})(),rA=function(e){return e.type===1},mc=(function(){function e(A){var t=A.styles,r=A.bounds,n=le(t.borderTopLeftRadius,r.width,r.height),s=n[0],B=n[1],i=le(t.borderTopRightRadius,r.width,r.height),a=i[0],o=i[1],c=le(t.borderBottomRightRadius,r.width,r.height),l=c[0],Q=c[1],C=le(t.borderBottomLeftRadius,r.width,r.height),g=C[0],w=C[1],E=[];E.push((s+a)/r.width),E.push((g+l)/r.width),E.push((B+w)/r.height),E.push((o+Q)/r.height);var F=Math.max.apply(Math,E);F>1&&(s/=F,B/=F,a/=F,o/=F,l/=F,Q/=F,g/=F,w/=F);var U=r.width-a,m=r.height-Q,H=r.width-l,d=r.height-w,f=t.borderTopWidth,I=t.borderRightWidth,y=t.borderBottomWidth,p=t.borderLeftWidth,R=x(t.paddingTop,A.bounds.width),q=x(t.paddingRight,A.bounds.width),AA=x(t.paddingBottom,A.bounds.width),b=x(t.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=s>0||B>0?D(r.left+p/3,r.top+f/3,s-p/3,B-f/3,K.TOP_LEFT):new u(r.left+p/3,r.top+f/3),this.topRightBorderDoubleOuterBox=s>0||B>0?D(r.left+U,r.top+f/3,a-I/3,o-f/3,K.TOP_RIGHT):new u(r.left+r.width-I/3,r.top+f/3),this.bottomRightBorderDoubleOuterBox=l>0||Q>0?D(r.left+H,r.top+m,l-I/3,Q-y/3,K.BOTTOM_RIGHT):new u(r.left+r.width-I/3,r.top+r.height-y/3),this.bottomLeftBorderDoubleOuterBox=g>0||w>0?D(r.left+p/3,r.top+d,g-p/3,w-y/3,K.BOTTOM_LEFT):new u(r.left+p/3,r.top+r.height-y/3),this.topLeftBorderDoubleInnerBox=s>0||B>0?D(r.left+p*2/3,r.top+f*2/3,s-p*2/3,B-f*2/3,K.TOP_LEFT):new u(r.left+p*2/3,r.top+f*2/3),this.topRightBorderDoubleInnerBox=s>0||B>0?D(r.left+U,r.top+f*2/3,a-I*2/3,o-f*2/3,K.TOP_RIGHT):new u(r.left+r.width-I*2/3,r.top+f*2/3),this.bottomRightBorderDoubleInnerBox=l>0||Q>0?D(r.left+H,r.top+m,l-I*2/3,Q-y*2/3,K.BOTTOM_RIGHT):new u(r.left+r.width-I*2/3,r.top+r.height-y*2/3),this.bottomLeftBorderDoubleInnerBox=g>0||w>0?D(r.left+p*2/3,r.top+d,g-p*2/3,w-y*2/3,K.BOTTOM_LEFT):new u(r.left+p*2/3,r.top+r.height-y*2/3),this.topLeftBorderStroke=s>0||B>0?D(r.left+p/2,r.top+f/2,s-p/2,B-f/2,K.TOP_LEFT):new u(r.left+p/2,r.top+f/2),this.topRightBorderStroke=s>0||B>0?D(r.left+U,r.top+f/2,a-I/2,o-f/2,K.TOP_RIGHT):new u(r.left+r.width-I/2,r.top+f/2),this.bottomRightBorderStroke=l>0||Q>0?D(r.left+H,r.top+m,l-I/2,Q-y/2,K.BOTTOM_RIGHT):new u(r.left+r.width-I/2,r.top+r.height-y/2),this.bottomLeftBorderStroke=g>0||w>0?D(r.left+p/2,r.top+d,g-p/2,w-y/2,K.BOTTOM_LEFT):new u(r.left+p/2,r.top+r.height-y/2),this.topLeftBorderBox=s>0||B>0?D(r.left,r.top,s,B,K.TOP_LEFT):new u(r.left,r.top),this.topRightBorderBox=a>0||o>0?D(r.left+U,r.top,a,o,K.TOP_RIGHT):new u(r.left+r.width,r.top),this.bottomRightBorderBox=l>0||Q>0?D(r.left+H,r.top+m,l,Q,K.BOTTOM_RIGHT):new u(r.left+r.width,r.top+r.height),this.bottomLeftBorderBox=g>0||w>0?D(r.left,r.top+d,g,w,K.BOTTOM_LEFT):new u(r.left,r.top+r.height),this.topLeftPaddingBox=s>0||B>0?D(r.left+p,r.top+f,Math.max(0,s-p),Math.max(0,B-f),K.TOP_LEFT):new u(r.left+p,r.top+f),this.topRightPaddingBox=a>0||o>0?D(r.left+Math.min(U,r.width-I),r.top+f,U>r.width+I?0:Math.max(0,a-I),Math.max(0,o-f),K.TOP_RIGHT):new u(r.left+r.width-I,r.top+f),this.bottomRightPaddingBox=l>0||Q>0?D(r.left+Math.min(H,r.width-p),r.top+Math.min(m,r.height-y),Math.max(0,l-I),Math.max(0,Q-y),K.BOTTOM_RIGHT):new u(r.left+r.width-I,r.top+r.height-y),this.bottomLeftPaddingBox=g>0||w>0?D(r.left+p,r.top+Math.min(d,r.height-y),Math.max(0,g-p),Math.max(0,w-y),K.BOTTOM_LEFT):new u(r.left+p,r.top+r.height-y),this.topLeftContentBox=s>0||B>0?D(r.left+p+b,r.top+f+R,Math.max(0,s-(p+b)),Math.max(0,B-(f+R)),K.TOP_LEFT):new u(r.left+p+b,r.top+f+R),this.topRightContentBox=a>0||o>0?D(r.left+Math.min(U,r.width+p+b),r.top+f+R,U>r.width+p+b?0:a-p+b,o-(f+R),K.TOP_RIGHT):new u(r.left+r.width-(I+q),r.top+f+R),this.bottomRightContentBox=l>0||Q>0?D(r.left+Math.min(H,r.width-(p+b)),r.top+Math.min(m,r.height+f+R),Math.max(0,l-(I+q)),Q-(y+AA),K.BOTTOM_RIGHT):new u(r.left+r.width-(I+q),r.top+r.height-(y+AA)),this.bottomLeftContentBox=g>0||w>0?D(r.left+p+b,r.top+d,Math.max(0,g-(p+b)),w-(y+AA),K.BOTTOM_LEFT):new u(r.left+p+b,r.top+r.height-(y+AA))}return e})(),K;(function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"})(K||(K={}));var D=function(e,A,t,r,n){var s=4*((Math.sqrt(2)-1)/3),B=t*s,i=r*s,a=e+t,o=A+r;switch(n){case K.TOP_LEFT:return new it(new u(e,o),new u(e,o-i),new u(a-B,A),new u(a,A));case K.TOP_RIGHT:return new it(new u(e,A),new u(e+B,A),new u(a,o-i),new u(a,o));case K.BOTTOM_RIGHT:return new it(new u(a,A),new u(a,A+i),new u(e+B,o),new u(e,o));case K.BOTTOM_LEFT:default:return new it(new u(a,o),new u(a-B,o),new u(e,A+i),new u(e,A))}},at=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},Kc=function(e){return[e.topLeftContentBox,e.topRightContentBox,e.bottomRightContentBox,e.bottomLeftContentBox]},ot=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},Lc=(function(){function e(A,t,r){this.offsetX=A,this.offsetY=t,this.matrix=r,this.type=0,this.target=6}return e})(),ct=(function(){function e(A,t){this.path=A,this.target=t,this.type=1}return e})(),bc=(function(){function e(A){this.opacity=A,this.type=2,this.target=6}return e})(),xc=function(e){return e.type===0},Qs=function(e){return e.type===1},Dc=function(e){return e.type===2},gs=function(e,A){return e.length===A.length?e.some(function(t,r){return t===A[r]}):!1},Tc=function(e,A,t,r,n){return e.map(function(s,B){switch(B){case 0:return s.add(A,t);case 1:return s.add(A+r,t);case 2:return s.add(A+r,t+n);case 3:return s.add(A,t+n)}return s})},ws=(function(){function e(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}return e})(),us=(function(){function e(A,t){if(this.container=A,this.parent=t,this.effects=[],this.curves=new mc(this.container),this.container.styles.opacity<1&&this.effects.push(new bc(this.container.styles.opacity)),this.container.styles.transform!==null){var r=this.container.bounds.left+this.container.styles.transformOrigin[0].number,n=this.container.bounds.top+this.container.styles.transformOrigin[1].number,s=this.container.styles.transform;this.effects.push(new Lc(r,n,s))}if(this.container.styles.overflowX!==0){var B=at(this.curves),i=ot(this.curves);gs(B,i)?this.effects.push(new ct(B,6)):(this.effects.push(new ct(B,2)),this.effects.push(new ct(i,4)))}}return e.prototype.getEffects=function(A){for(var t=[2,3].indexOf(this.container.styles.position)===-1,r=this.parent,n=this.effects.slice(0);r;){var s=r.effects.filter(function(a){return!Qs(a)});if(t||r.container.styles.position!==0||!r.parent){if(n.unshift.apply(n,s),t=[2,3].indexOf(r.container.styles.position)===-1,r.container.styles.overflowX!==0){var B=at(r.curves),i=ot(r.curves);gs(B,i)||n.unshift(new ct(i,6))}}else n.unshift.apply(n,s);r=r.parent}return n.filter(function(a){return G(a.target,A)})},e})(),or=function(e,A,t,r){e.container.elements.forEach(function(n){var s=G(n.flags,4),B=G(n.flags,2),i=new us(n,e);G(n.styles.display,2048)&&r.push(i);var a=G(n.flags,8)?[]:r;if(s||B){var o=s||n.styles.isPositioned()?t:A,c=new ws(i);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var l=n.styles.zIndex.order;if(l<0){var Q=0;o.negativeZIndex.some(function(g,w){return l>g.element.container.styles.zIndex.order?(Q=w,!1):Q>0}),o.negativeZIndex.splice(Q,0,c)}else if(l>0){var C=0;o.positiveZIndex.some(function(g,w){return l>=g.element.container.styles.zIndex.order?(C=w+1,!1):C>0}),o.positiveZIndex.splice(C,0,c)}else o.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?o.nonPositionedFloats.push(c):o.nonPositionedInlineLevel.push(c);or(i,c,s?c:t,a)}else n.styles.isInlineLevel()?A.inlineLevel.push(i):A.nonInlineLevel.push(i),or(i,A,t,a);G(n.flags,8)&&fs(n,a)})},fs=function(e,A){for(var t=e instanceof zt?e.start:1,r=e instanceof zt?e.reversed:!1,n=0;n<A.length;n++){var s=A[n];s.container instanceof Nn&&typeof s.container.value=="number"&&s.container.value!==0&&(t=s.container.value),s.listValue=Ce(t,s.container.styles.listStyleType,!0),t+=r?-1:1}},Sc=function(e){var A=new us(e,null),t=new ws(A),r=[];return or(A,t,t,r),fs(A.container,r),t},Cs=function(e,A){switch(A){case 0:return nA(e.topLeftBorderBox,e.topLeftPaddingBox,e.topRightBorderBox,e.topRightPaddingBox);case 1:return nA(e.topRightBorderBox,e.topRightPaddingBox,e.bottomRightBorderBox,e.bottomRightPaddingBox);case 2:return nA(e.bottomRightBorderBox,e.bottomRightPaddingBox,e.bottomLeftBorderBox,e.bottomLeftPaddingBox);default:return nA(e.bottomLeftBorderBox,e.bottomLeftPaddingBox,e.topLeftBorderBox,e.topLeftPaddingBox)}},Mc=function(e,A){switch(A){case 0:return nA(e.topLeftBorderBox,e.topLeftBorderDoubleOuterBox,e.topRightBorderBox,e.topRightBorderDoubleOuterBox);case 1:return nA(e.topRightBorderBox,e.topRightBorderDoubleOuterBox,e.bottomRightBorderBox,e.bottomRightBorderDoubleOuterBox);case 2:return nA(e.bottomRightBorderBox,e.bottomRightBorderDoubleOuterBox,e.bottomLeftBorderBox,e.bottomLeftBorderDoubleOuterBox);default:return nA(e.bottomLeftBorderBox,e.bottomLeftBorderDoubleOuterBox,e.topLeftBorderBox,e.topLeftBorderDoubleOuterBox)}},Oc=function(e,A){switch(A){case 0:return nA(e.topLeftBorderDoubleInnerBox,e.topLeftPaddingBox,e.topRightBorderDoubleInnerBox,e.topRightPaddingBox);case 1:return nA(e.topRightBorderDoubleInnerBox,e.topRightPaddingBox,e.bottomRightBorderDoubleInnerBox,e.bottomRightPaddingBox);case 2:return nA(e.bottomRightBorderDoubleInnerBox,e.bottomRightPaddingBox,e.bottomLeftBorderDoubleInnerBox,e.bottomLeftPaddingBox);default:return nA(e.bottomLeftBorderDoubleInnerBox,e.bottomLeftPaddingBox,e.topLeftBorderDoubleInnerBox,e.topLeftPaddingBox)}},Rc=function(e,A){switch(A){case 0:return lt(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return lt(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return lt(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return lt(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}},lt=function(e,A){var t=[];return rA(e)?t.push(e.subdivide(.5,!1)):t.push(e),rA(A)?t.push(A.subdivide(.5,!0)):t.push(A),t},nA=function(e,A,t,r){var n=[];return rA(e)?n.push(e.subdivide(.5,!1)):n.push(e),rA(t)?n.push(t.subdivide(.5,!0)):n.push(t),rA(r)?n.push(r.subdivide(.5,!0).reverse()):n.push(r),rA(A)?n.push(A.subdivide(.5,!1).reverse()):n.push(A),n},hs=function(e){var A=e.bounds,t=e.styles;return A.add(t.borderLeftWidth,t.borderTopWidth,-(t.borderRightWidth+t.borderLeftWidth),-(t.borderTopWidth+t.borderBottomWidth))},Qt=function(e){var A=e.styles,t=e.bounds,r=x(A.paddingLeft,t.width),n=x(A.paddingRight,t.width),s=x(A.paddingTop,t.width),B=x(A.paddingBottom,t.width);return t.add(r+A.borderLeftWidth,s+A.borderTopWidth,-(A.borderRightWidth+A.borderLeftWidth+r+n),-(A.borderTopWidth+A.borderBottomWidth+s+B))},Gc=function(e,A){return e===0?A.bounds:e===2?Qt(A):hs(A)},Vc=function(e,A){return e===0?A.bounds:e===2?Qt(A):hs(A)},cr=function(e,A,t){var r=Gc(qA(e.styles.backgroundOrigin,A),e),n=Vc(qA(e.styles.backgroundClip,A),e),s=Nc(qA(e.styles.backgroundSize,A),t,r),B=s[0],i=s[1],a=le(qA(e.styles.backgroundPosition,A),r.width-B,r.height-i),o=Pc(qA(e.styles.backgroundRepeat,A),a,s,r,n),c=Math.round(r.left+a[0]),l=Math.round(r.top+a[1]);return[o,c,l,B,i]},ZA=function(e){return L(e)&&e.value===XA.AUTO},gt=function(e){return typeof e=="number"},Nc=function(e,A,t){var r=A[0],n=A[1],s=A[2],B=e[0],i=e[1];if(!B)return[0,0];if(O(B)&&i&&O(i))return[x(B,t.width),x(i,t.height)];var a=gt(s);if(L(B)&&(B.value===XA.CONTAIN||B.value===XA.COVER)){if(gt(s)){var o=t.width/t.height;return o<s!=(B.value===XA.COVER)?[t.width,t.width/s]:[t.height*s,t.height]}return[t.width,t.height]}var c=gt(r),l=gt(n),Q=c||l;if(ZA(B)&&(!i||ZA(i))){if(c&&l)return[r,n];if(!a&&!Q)return[t.width,t.height];if(Q&&a){var C=c?r:n*s,g=l?n:r/s;return[C,g]}var w=c?r:t.width,E=l?n:t.height;return[w,E]}if(a){var F=0,U=0;return O(B)?F=x(B,t.width):O(i)&&(U=x(i,t.height)),ZA(B)?F=U*s:(!i||ZA(i))&&(U=F/s),[F,U]}var m=null,H=null;if(O(B)?m=x(B,t.width):i&&O(i)&&(H=x(i,t.height)),m!==null&&(!i||ZA(i))&&(H=c&&l?m/r*n:t.height),H!==null&&ZA(B)&&(m=c&&l?H/n*r:t.width),m!==null&&H!==null)return[m,H];throw new Error("Unable to calculate background-size for element")},qA=function(e,A){var t=e[A];return typeof t=="undefined"?e[0]:t},Pc=function(e,A,t,r,n){var s=A[0],B=A[1],i=t[0],a=t[1];switch(e){case 2:return[new u(Math.round(r.left),Math.round(r.top+B)),new u(Math.round(r.left+r.width),Math.round(r.top+B)),new u(Math.round(r.left+r.width),Math.round(a+r.top+B)),new u(Math.round(r.left),Math.round(a+r.top+B))];case 3:return[new u(Math.round(r.left+s),Math.round(r.top)),new u(Math.round(r.left+s+i),Math.round(r.top)),new u(Math.round(r.left+s+i),Math.round(r.height+r.top)),new u(Math.round(r.left+s),Math.round(r.height+r.top))];case 1:return[new u(Math.round(r.left+s),Math.round(r.top+B)),new u(Math.round(r.left+s+i),Math.round(r.top+B)),new u(Math.round(r.left+s+i),Math.round(r.top+B+a)),new u(Math.round(r.left+s),Math.round(r.top+B+a))];default:return[new u(Math.round(n.left),Math.round(n.top)),new u(Math.round(n.left+n.width),Math.round(n.top)),new u(Math.round(n.left+n.width),Math.round(n.height+n.top)),new u(Math.round(n.left),Math.round(n.height+n.top))]}},kc="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",Us="Hidden Text",Xc=(function(){function e(A){this._data={},this._document=A}return e.prototype.parseMetrics=function(A,t){var r=this._document.createElement("div"),n=this._document.createElement("img"),s=this._document.createElement("span"),B=this._document.body;r.style.visibility="hidden",r.style.fontFamily=A,r.style.fontSize=t,r.style.margin="0",r.style.padding="0",r.style.whiteSpace="nowrap",B.appendChild(r),n.src=kc,n.width=1,n.height=1,n.style.margin="0",n.style.padding="0",n.style.verticalAlign="baseline",s.style.fontFamily=A,s.style.fontSize=t,s.style.margin="0",s.style.padding="0",s.appendChild(this._document.createTextNode(Us)),r.appendChild(s),r.appendChild(n);var i=n.offsetTop-s.offsetTop+2;r.removeChild(s),r.appendChild(this._document.createTextNode(Us)),r.style.lineHeight="normal",n.style.verticalAlign="super";var a=n.offsetTop-r.offsetTop+2;return B.removeChild(r),{baseline:i,middle:a}},e.prototype.getMetrics=function(A,t){var r=A+" "+t;return typeof this._data[r]=="undefined"&&(this._data[r]=this.parseMetrics(A,t)),this._data[r]},e})(),Fs=(function(){function e(A,t){this.context=A,this.options=t}return e})(),_c=1e4,Jc=(function(e){X(A,e);function A(t,r){var n=e.call(this,t,r)||this;return n._activeEffects=[],n.canvas=r.canvas?r.canvas:document.createElement("canvas"),n.ctx=n.canvas.getContext("2d"),r.canvas||(n.canvas.width=Math.floor(r.width*r.scale),n.canvas.height=Math.floor(r.height*r.scale),n.canvas.style.width=r.width+"px",n.canvas.style.height=r.height+"px"),n.fontMetrics=new Xc(document),n.ctx.scale(n.options.scale,n.options.scale),n.ctx.translate(-r.x,-r.y),n.ctx.textBaseline="bottom",n._activeEffects=[],n.context.logger.debug("Canvas renderer initialized ("+r.width+"x"+r.height+") with scale "+r.scale),n}return A.prototype.applyEffects=function(t){for(var r=this;this._activeEffects.length;)this.popEffect();t.forEach(function(n){return r.applyEffect(n)})},A.prototype.applyEffect=function(t){this.ctx.save(),Dc(t)&&(this.ctx.globalAlpha=t.opacity),xc(t)&&(this.ctx.translate(t.offsetX,t.offsetY),this.ctx.transform(t.matrix[0],t.matrix[1],t.matrix[2],t.matrix[3],t.matrix[4],t.matrix[5]),this.ctx.translate(-t.offsetX,-t.offsetY)),Qs(t)&&(this.path(t.path),this.ctx.clip()),this._activeEffects.push(t)},A.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},A.prototype.renderStack=function(t){return W(this,void 0,void 0,function(){var r;return _(this,function(n){switch(n.label){case 0:return r=t.element.container.styles,r.isVisible()?[4,this.renderStackContent(t)]:[3,2];case 1:n.sent(),n.label=2;case 2:return[2]}})})},A.prototype.renderNode=function(t){return W(this,void 0,void 0,function(){return _(this,function(r){switch(r.label){case 0:if(G(t.container.flags,16))debugger;return t.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(t)]:[3,3];case 1:return r.sent(),[4,this.renderNodeContent(t)];case 2:r.sent(),r.label=3;case 3:return[2]}})})},A.prototype.renderTextWithLetterSpacing=function(t,r,n){var s=this;if(r===0)this.ctx.fillText(t.text,t.bounds.left,t.bounds.top+n);else{var B=jt(t.text);B.reduce(function(i,a){return s.ctx.fillText(a,i,t.bounds.top+n),i+s.ctx.measureText(a).width},t.bounds.left)}},A.prototype.createFontStyle=function(t){var r=t.fontVariant.filter(function(B){return B==="normal"||B==="small-caps"}).join(""),n=jc(t.fontFamily).join(", "),s=ce(t.fontSize)?""+t.fontSize.number+t.fontSize.unit:t.fontSize.number+"px";return[[t.fontStyle,r,t.fontWeight,s,n].join(" "),n,s]},A.prototype.renderTextNode=function(t,r){return W(this,void 0,void 0,function(){var n,s,B,i,a,o,c,l,Q=this;return _(this,function(C){return n=this.createFontStyle(r),s=n[0],B=n[1],i=n[2],this.ctx.font=s,this.ctx.direction=r.direction===1?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",a=this.fontMetrics.getMetrics(B,i),o=a.baseline,c=a.middle,l=r.paintOrder,t.textBounds.forEach(function(g){l.forEach(function(w){switch(w){case 0:Q.ctx.fillStyle=V(r.color),Q.renderTextWithLetterSpacing(g,r.letterSpacing,o);var E=r.textShadow;E.length&&g.text.trim().length&&(E.slice(0).reverse().forEach(function(F){Q.ctx.shadowColor=V(F.color),Q.ctx.shadowOffsetX=F.offsetX.number*Q.options.scale,Q.ctx.shadowOffsetY=F.offsetY.number*Q.options.scale,Q.ctx.shadowBlur=F.blur.number,Q.renderTextWithLetterSpacing(g,r.letterSpacing,o)}),Q.ctx.shadowColor="",Q.ctx.shadowOffsetX=0,Q.ctx.shadowOffsetY=0,Q.ctx.shadowBlur=0),r.textDecorationLine.length&&(Q.ctx.fillStyle=V(r.textDecorationColor||r.color),r.textDecorationLine.forEach(function(F){switch(F){case 1:Q.ctx.fillRect(g.bounds.left,Math.round(g.bounds.top+o),g.bounds.width,1);break;case 2:Q.ctx.fillRect(g.bounds.left,Math.round(g.bounds.top),g.bounds.width,1);break;case 3:Q.ctx.fillRect(g.bounds.left,Math.ceil(g.bounds.top+c),g.bounds.width,1);break}}));break;case 1:r.webkitTextStrokeWidth&&g.text.trim().length&&(Q.ctx.strokeStyle=V(r.webkitTextStrokeColor),Q.ctx.lineWidth=r.webkitTextStrokeWidth,Q.ctx.lineJoin=window.chrome?"miter":"round",Q.ctx.strokeText(g.text,g.bounds.left,g.bounds.top+o)),Q.ctx.strokeStyle="",Q.ctx.lineWidth=0,Q.ctx.lineJoin="miter";break}})}),[2]})})},A.prototype.renderReplacedElement=function(t,r,n){if(n&&t.intrinsicWidth>0&&t.intrinsicHeight>0){var s=Qt(t),B=ot(r);this.path(B),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(n,0,0,t.intrinsicWidth,t.intrinsicHeight,s.left,s.top,s.width,s.height),this.ctx.restore()}},A.prototype.renderNodeContent=function(t){return W(this,void 0,void 0,function(){var r,n,s,B,i,a,U,U,o,c,l,Q,H,C,g,d,w,E,F,U,m,H,d;return _(this,function(f){switch(f.label){case 0:this.applyEffects(t.getEffects(4)),r=t.container,n=t.curves,s=r.styles,B=0,i=r.textNodes,f.label=1;case 1:return B<i.length?(a=i[B],[4,this.renderTextNode(a,s)]):[3,4];case 2:f.sent(),f.label=3;case 3:return B++,[3,1];case 4:if(!(r instanceof Rn))return[3,8];f.label=5;case 5:return f.trys.push([5,7,,8]),[4,this.context.cache.match(r.src)];case 6:return U=f.sent(),this.renderReplacedElement(r,n,U),[3,8];case 7:return f.sent(),this.context.logger.error("Error loading image "+r.src),[3,8];case 8:if(r instanceof Gn&&this.renderReplacedElement(r,n,r.canvas),!(r instanceof Vn))return[3,12];f.label=9;case 9:return f.trys.push([9,11,,12]),[4,this.context.cache.match(r.svg)];case 10:return U=f.sent(),this.renderReplacedElement(r,n,U),[3,12];case 11:return f.sent(),this.context.logger.error("Error loading svg "+r.svg.substring(0,255)),[3,12];case 12:return r instanceof _n&&r.tree?(o=new A(this.context,{scale:this.options.scale,backgroundColor:r.backgroundColor,x:0,y:0,width:r.width,height:r.height}),[4,o.render(r.tree)]):[3,14];case 13:c=f.sent(),r.width&&r.height&&this.ctx.drawImage(c,0,0,r.width,r.height,r.bounds.left,r.bounds.top,r.bounds.width,r.bounds.height),f.label=14;case 14:if(r instanceof $t&&(l=Math.min(r.bounds.width,r.bounds.height),r.type===et?r.checked&&(this.ctx.save(),this.path([new u(r.bounds.left+l*.39363,r.bounds.top+l*.79),new u(r.bounds.left+l*.16,r.bounds.top+l*.5549),new u(r.bounds.left+l*.27347,r.bounds.top+l*.44071),new u(r.bounds.left+l*.39694,r.bounds.top+l*.5649),new u(r.bounds.left+l*.72983,r.bounds.top+l*.23),new u(r.bounds.left+l*.84,r.bounds.top+l*.34085),new u(r.bounds.left+l*.39363,r.bounds.top+l*.79)]),this.ctx.fillStyle=V(Pn),this.ctx.fill(),this.ctx.restore()):r.type===tt&&r.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(r.bounds.left+l/2,r.bounds.top+l/2,l/4,0,Math.PI*2,!0),this.ctx.fillStyle=V(Pn),this.ctx.fill(),this.ctx.restore())),Wc(r)&&r.value.length){switch(Q=this.createFontStyle(s),H=Q[0],C=Q[1],g=this.fontMetrics.getMetrics(H,C).baseline,this.ctx.font=H,this.ctx.fillStyle=V(s.color),this.ctx.textBaseline="alphabetic",this.ctx.textAlign=Zc(r.styles.textAlign),d=Qt(r),w=0,r.styles.textAlign){case 1:w+=d.width/2;break;case 2:w+=d.width;break}E=d.add(w,0,0,-d.height/2+1),this.ctx.save(),this.path([new u(d.left,d.top),new u(d.left+d.width,d.top),new u(d.left+d.width,d.top+d.height),new u(d.left,d.top+d.height)]),this.ctx.clip(),this.renderTextWithLetterSpacing(new ue(r.value,E),s.letterSpacing,g),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(!G(r.styles.display,2048))return[3,20];if(r.styles.listStyleImage===null)return[3,19];if(F=r.styles.listStyleImage,F.type!==0)return[3,18];U=void 0,m=F.url,f.label=15;case 15:return f.trys.push([15,17,,18]),[4,this.context.cache.match(m)];case 16:return U=f.sent(),this.ctx.drawImage(U,r.bounds.left-(U.width+10),r.bounds.top),[3,18];case 17:return f.sent(),this.context.logger.error("Error loading list-style-image "+m),[3,18];case 18:return[3,20];case 19:t.listValue&&r.styles.listStyleType!==-1&&(H=this.createFontStyle(s)[0],this.ctx.font=H,this.ctx.fillStyle=V(s.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right",d=new lA(r.bounds.left,r.bounds.top+x(r.styles.paddingTop,r.bounds.width),r.bounds.width,Un(s.lineHeight,s.fontSize.number)/2+1),this.renderTextWithLetterSpacing(new ue(t.listValue,d),s.letterSpacing,Un(s.lineHeight,s.fontSize.number)/2+2),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"),f.label=20;case 20:return[2]}})})},A.prototype.renderStackContent=function(t){return W(this,void 0,void 0,function(){var r,n,F,s,B,F,i,a,F,o,c,F,l,Q,F,C,g,F,w,E,F;return _(this,function(U){switch(U.label){case 0:if(G(t.element.container.flags,16))debugger;return[4,this.renderNodeBackgroundAndBorders(t.element)];case 1:U.sent(),r=0,n=t.negativeZIndex,U.label=2;case 2:return r<n.length?(F=n[r],[4,this.renderStack(F)]):[3,5];case 3:U.sent(),U.label=4;case 4:return r++,[3,2];case 5:return[4,this.renderNodeContent(t.element)];case 6:U.sent(),s=0,B=t.nonInlineLevel,U.label=7;case 7:return s<B.length?(F=B[s],[4,this.renderNode(F)]):[3,10];case 8:U.sent(),U.label=9;case 9:return s++,[3,7];case 10:i=0,a=t.nonPositionedFloats,U.label=11;case 11:return i<a.length?(F=a[i],[4,this.renderStack(F)]):[3,14];case 12:U.sent(),U.label=13;case 13:return i++,[3,11];case 14:o=0,c=t.nonPositionedInlineLevel,U.label=15;case 15:return o<c.length?(F=c[o],[4,this.renderStack(F)]):[3,18];case 16:U.sent(),U.label=17;case 17:return o++,[3,15];case 18:l=0,Q=t.inlineLevel,U.label=19;case 19:return l<Q.length?(F=Q[l],[4,this.renderNode(F)]):[3,22];case 20:U.sent(),U.label=21;case 21:return l++,[3,19];case 22:C=0,g=t.zeroOrAutoZIndexOrTransformedOrOpacity,U.label=23;case 23:return C<g.length?(F=g[C],[4,this.renderStack(F)]):[3,26];case 24:U.sent(),U.label=25;case 25:return C++,[3,23];case 26:w=0,E=t.positiveZIndex,U.label=27;case 27:return w<E.length?(F=E[w],[4,this.renderStack(F)]):[3,30];case 28:U.sent(),U.label=29;case 29:return w++,[3,27];case 30:return[2]}})})},A.prototype.mask=function(t){this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.lineTo(this.canvas.width,0),this.ctx.lineTo(this.canvas.width,this.canvas.height),this.ctx.lineTo(0,this.canvas.height),this.ctx.lineTo(0,0),this.formatPath(t.slice(0).reverse()),this.ctx.closePath()},A.prototype.path=function(t){this.ctx.beginPath(),this.formatPath(t),this.ctx.closePath()},A.prototype.formatPath=function(t){var r=this;t.forEach(function(n,s){var B=rA(n)?n.start:n;s===0?r.ctx.moveTo(B.x,B.y):r.ctx.lineTo(B.x,B.y),rA(n)&&r.ctx.bezierCurveTo(n.startControl.x,n.startControl.y,n.endControl.x,n.endControl.y,n.end.x,n.end.y)})},A.prototype.renderRepeat=function(t,r,n,s){this.path(t),this.ctx.fillStyle=r,this.ctx.translate(n,s),this.ctx.fill(),this.ctx.translate(-n,-s)},A.prototype.resizeImage=function(t,r,n){var s;if(t.width===r&&t.height===n)return t;var B=(s=this.canvas.ownerDocument)!==null&&s!==void 0?s:document,i=B.createElement("canvas");i.width=Math.max(1,r),i.height=Math.max(1,n);var a=i.getContext("2d");return a.drawImage(t,0,0,t.width,t.height,0,0,r,n),i},A.prototype.renderBackgroundImage=function(t){return W(this,void 0,void 0,function(){var r,n,s,B,i,a;return _(this,function(o){switch(o.label){case 0:r=t.styles.backgroundImage.length-1,n=function(c){var l,Q,C,R,j,z,b,k,y,g,R,j,z,b,k,w,E,F,U,m,H,d,f,I,y,p,R,q,AA,b,k,yA,j,z,SA,cA,mA,MA,OA,uA,RA,fA;return _(this,function(jA){switch(jA.label){case 0:if(c.type!==0)return[3,5];l=void 0,Q=c.url,jA.label=1;case 1:return jA.trys.push([1,3,,4]),[4,s.context.cache.match(Q)];case 2:return l=jA.sent(),[3,4];case 3:return jA.sent(),s.context.logger.error("Error loading background-image "+Q),[3,4];case 4:return l&&(C=cr(t,r,[l.width,l.height,l.width/l.height]),R=C[0],j=C[1],z=C[2],b=C[3],k=C[4],y=s.ctx.createPattern(s.resizeImage(l,b,k),"repeat"),s.renderRepeat(R,y,j,z)),[3,6];case 5:bi(c)?(g=cr(t,r,[null,null,null]),R=g[0],j=g[1],z=g[2],b=g[3],k=g[4],w=Ii(c.angle,b,k),E=w[0],F=w[1],U=w[2],m=w[3],H=w[4],d=document.createElement("canvas"),d.width=b,d.height=k,f=d.getContext("2d"),I=f.createLinearGradient(F,m,U,H),an(c.stops,E).forEach(function(Fe){return I.addColorStop(Fe.stop,V(Fe.color))}),f.fillStyle=I,f.fillRect(0,0,b,k),b>0&&k>0&&(y=s.ctx.createPattern(d,"repeat"),s.renderRepeat(R,y,j,z))):xi(c)&&(p=cr(t,r,[null,null,null]),R=p[0],q=p[1],AA=p[2],b=p[3],k=p[4],yA=c.position.length===0?[Mt]:c.position,j=x(yA[0],b),z=x(yA[yA.length-1],k),SA=yi(c,j,z,b,k),cA=SA[0],mA=SA[1],cA>0&&mA>0&&(MA=s.ctx.createRadialGradient(q+j,AA+z,0,q+j,AA+z,cA),an(c.stops,cA*2).forEach(function(Fe){return MA.addColorStop(Fe.stop,V(Fe.color))}),s.path(R),s.ctx.fillStyle=MA,cA!==mA?(OA=t.bounds.left+.5*t.bounds.width,uA=t.bounds.top+.5*t.bounds.height,RA=mA/cA,fA=1/RA,s.ctx.save(),s.ctx.translate(OA,uA),s.ctx.transform(1,0,0,RA,0,0),s.ctx.translate(-OA,-uA),s.ctx.fillRect(q,fA*(AA-uA)+uA,b,k*fA),s.ctx.restore()):s.ctx.fill())),jA.label=6;case 6:return r--,[2]}})},s=this,B=0,i=t.styles.backgroundImage.slice(0).reverse(),o.label=1;case 1:return B<i.length?(a=i[B],[5,n(a)]):[3,4];case 2:o.sent(),o.label=3;case 3:return B++,[3,1];case 4:return[2]}})})},A.prototype.renderSolidBorder=function(t,r,n){return W(this,void 0,void 0,function(){return _(this,function(s){return this.path(Cs(n,r)),this.ctx.fillStyle=V(t),this.ctx.fill(),[2]})})},A.prototype.renderDoubleBorder=function(t,r,n,s){return W(this,void 0,void 0,function(){var B,i;return _(this,function(a){switch(a.label){case 0:return r<3?[4,this.renderSolidBorder(t,n,s)]:[3,2];case 1:return a.sent(),[2];case 2:return B=Mc(s,n),this.path(B),this.ctx.fillStyle=V(t),this.ctx.fill(),i=Oc(s,n),this.path(i),this.ctx.fill(),[2]}})})},A.prototype.renderNodeBackgroundAndBorders=function(t){return W(this,void 0,void 0,function(){var r,n,s,B,i,a,o,c,l=this;return _(this,function(Q){switch(Q.label){case 0:return this.applyEffects(t.getEffects(2)),r=t.container.styles,n=!pA(r.backgroundColor)||r.backgroundImage.length,s=[{style:r.borderTopStyle,color:r.borderTopColor,width:r.borderTopWidth},{style:r.borderRightStyle,color:r.borderRightColor,width:r.borderRightWidth},{style:r.borderBottomStyle,color:r.borderBottomColor,width:r.borderBottomWidth},{style:r.borderLeftStyle,color:r.borderLeftColor,width:r.borderLeftWidth}],B=Yc(qA(r.backgroundClip,0),t.curves),n||r.boxShadow.length?(this.ctx.save(),this.path(B),this.ctx.clip(),pA(r.backgroundColor)||(this.ctx.fillStyle=V(r.backgroundColor),this.ctx.fill()),[4,this.renderBackgroundImage(t.container)]):[3,2];case 1:Q.sent(),this.ctx.restore(),r.boxShadow.slice(0).reverse().forEach(function(C){l.ctx.save();var g=at(t.curves),w=C.inset?0:_c,E=Tc(g,-w+(C.inset?1:-1)*C.spread.number,(C.inset?1:-1)*C.spread.number,C.spread.number*(C.inset?-2:2),C.spread.number*(C.inset?-2:2));C.inset?(l.path(g),l.ctx.clip(),l.mask(E)):(l.mask(g),l.ctx.clip(),l.path(E)),l.ctx.shadowOffsetX=C.offsetX.number+w,l.ctx.shadowOffsetY=C.offsetY.number,l.ctx.shadowColor=V(C.color),l.ctx.shadowBlur=C.blur.number,l.ctx.fillStyle=C.inset?V(C.color):"rgba(0,0,0,1)",l.ctx.fill(),l.ctx.restore()}),Q.label=2;case 2:i=0,a=0,o=s,Q.label=3;case 3:return a<o.length?(c=o[a],c.style!==0&&!pA(c.color)&&c.width>0?c.style!==2?[3,5]:[4,this.renderDashedDottedBorder(c.color,c.width,i,t.curves,2)]:[3,11]):[3,13];case 4:return Q.sent(),[3,11];case 5:return c.style!==3?[3,7]:[4,this.renderDashedDottedBorder(c.color,c.width,i,t.curves,3)];case 6:return Q.sent(),[3,11];case 7:return c.style!==4?[3,9]:[4,this.renderDoubleBorder(c.color,c.width,i,t.curves)];case 8:return Q.sent(),[3,11];case 9:return[4,this.renderSolidBorder(c.color,i,t.curves)];case 10:Q.sent(),Q.label=11;case 11:i++,Q.label=12;case 12:return a++,[3,3];case 13:return[2]}})})},A.prototype.renderDashedDottedBorder=function(t,r,n,s,B){return W(this,void 0,void 0,function(){var i,a,o,c,l,Q,C,g,w,E,F,U,m,H,d,f,d,f;return _(this,function(I){return this.ctx.save(),i=Rc(s,n),a=Cs(s,n),B===2&&(this.path(a),this.ctx.clip()),rA(a[0])?(o=a[0].start.x,c=a[0].start.y):(o=a[0].x,c=a[0].y),rA(a[1])?(l=a[1].end.x,Q=a[1].end.y):(l=a[1].x,Q=a[1].y),n===0||n===2?C=Math.abs(o-l):C=Math.abs(c-Q),this.ctx.beginPath(),B===3?this.formatPath(i):this.formatPath(a.slice(0,2)),g=r<3?r*3:r*2,w=r<3?r*2:r,B===3&&(g=r,w=r),E=!0,C<=g*2?E=!1:C<=g*2+w?(F=C/(2*g+w),g*=F,w*=F):(U=Math.floor((C+w)/(g+w)),m=(C-U*g)/(U-1),H=(C-(U+1)*g)/U,w=H<=0||Math.abs(w-m)<Math.abs(w-H)?m:H),E&&(B===3?this.ctx.setLineDash([0,g+w]):this.ctx.setLineDash([g,w])),B===3?(this.ctx.lineCap="round",this.ctx.lineWidth=r):this.ctx.lineWidth=r*2+1.1,this.ctx.strokeStyle=V(t),this.ctx.stroke(),this.ctx.setLineDash([]),B===2&&(rA(a[0])&&(d=a[3],f=a[0],this.ctx.beginPath(),this.formatPath([new u(d.end.x,d.end.y),new u(f.start.x,f.start.y)]),this.ctx.stroke()),rA(a[1])&&(d=a[1],f=a[2],this.ctx.beginPath(),this.formatPath([new u(d.end.x,d.end.y),new u(f.start.x,f.start.y)]),this.ctx.stroke())),this.ctx.restore(),[2]})})},A.prototype.render=function(t){return W(this,void 0,void 0,function(){var r;return _(this,function(n){switch(n.label){case 0:return this.options.backgroundColor&&(this.ctx.fillStyle=V(this.options.backgroundColor),this.ctx.fillRect(this.options.x,this.options.y,this.options.width,this.options.height)),r=Sc(t),[4,this.renderStack(r)];case 1:return n.sent(),this.applyEffects([]),[2,this.canvas]}})})},A})(Fs),Wc=function(e){return e instanceof Xn||e instanceof kn?!0:e instanceof $t&&e.type!==tt&&e.type!==et},Yc=function(e,A){switch(e){case 0:return at(A);case 2:return Kc(A);default:return ot(A)}},Zc=function(e){switch(e){case 1:return"center";case 2:return"right";default:return"left"}},qc=["-apple-system","system-ui"],jc=function(e){return/iPhone OS 15_(0|1)/.test(window.navigator.userAgent)?e.filter(function(A){return qc.indexOf(A)===-1}):e},zc=(function(e){X(A,e);function A(t,r){var n=e.call(this,t,r)||this;return n.canvas=r.canvas?r.canvas:document.createElement("canvas"),n.ctx=n.canvas.getContext("2d"),n.options=r,n.canvas.width=Math.floor(r.width*r.scale),n.canvas.height=Math.floor(r.height*r.scale),n.canvas.style.width=r.width+"px",n.canvas.style.height=r.height+"px",n.ctx.scale(n.options.scale,n.options.scale),n.ctx.translate(-r.x,-r.y),n.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized ("+r.width+"x"+r.height+" at "+r.x+","+r.y+") with scale "+r.scale),n}return A.prototype.render=function(t){return W(this,void 0,void 0,function(){var r,n;return _(this,function(s){switch(s.label){case 0:return r=qt(this.options.width*this.options.scale,this.options.height*this.options.scale,this.options.scale,this.options.scale,t),[4,$c(r)];case 1:return n=s.sent(),this.options.backgroundColor&&(this.ctx.fillStyle=V(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(n,-this.options.x*this.options.scale,-this.options.y*this.options.scale),[2,this.canvas]}})})},A})(Fs),$c=function(e){return new Promise(function(A,t){var r=new Image;r.onload=function(){A(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(new XMLSerializer().serializeToString(e))})},Al=(function(){function e(A){var t=A.id,r=A.enabled;this.id=t,this.enabled=r,this.start=Date.now()}return e.prototype.debug=function(){for(var A=[],t=0;t<arguments.length;t++)A[t]=arguments[t];this.enabled&&(typeof window!="undefined"&&window.console&&typeof console.debug=="function"?console.debug.apply(console,de([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},e.prototype.getTime=function(){return Date.now()-this.start},e.prototype.info=function(){for(var A=[],t=0;t<arguments.length;t++)A[t]=arguments[t];this.enabled&&typeof window!="undefined"&&window.console&&typeof console.info=="function"&&console.info.apply(console,de([this.id,this.getTime()+"ms"],A))},e.prototype.warn=function(){for(var A=[],t=0;t<arguments.length;t++)A[t]=arguments[t];this.enabled&&(typeof window!="undefined"&&window.console&&typeof console.warn=="function"?console.warn.apply(console,de([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},e.prototype.error=function(){for(var A=[],t=0;t<arguments.length;t++)A[t]=arguments[t];this.enabled&&(typeof window!="undefined"&&window.console&&typeof console.error=="function"?console.error.apply(console,de([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},e.instances={},e})(),el=(function(){function e(A,t){var r;this.windowBounds=t,this.instanceName="#"+e.instanceCount++,this.logger=new Al({id:this.instanceName,enabled:A.logging}),this.cache=(r=A.cache)!==null&&r!==void 0?r:new dc(this,A)}return e.instanceCount=1,e})(),tl=function(e,A){return A===void 0&&(A={}),rl(e,A)};typeof window!="undefined"&&ls.setContext(window);var rl=function(e,A){return W(void 0,void 0,void 0,function(){var t,r,n,s,B,i,a,o,c,l,Q,C,g,w,E,F,U,m,H,d,I,f,I,y,p,R,q,AA,b,k,yA,j,z,SA,cA,mA,MA,OA,uA,RA;return _(this,function(fA){switch(fA.label){case 0:if(!e||typeof e!="object")return[2,Promise.reject("Invalid element provided as first argument")];if(t=e.ownerDocument,!t)throw new Error("Element is not attached to a Document");if(r=t.defaultView,!r)throw new Error("Document is not attached to a Window");return n={allowTaint:(y=A.allowTaint)!==null&&y!==void 0?y:!1,imageTimeout:(p=A.imageTimeout)!==null&&p!==void 0?p:15e3,proxy:A.proxy,useCORS:(R=A.useCORS)!==null&&R!==void 0?R:!1},s=ut({logging:(q=A.logging)!==null&&q!==void 0?q:!0,cache:A.cache},n),B={windowWidth:(AA=A.windowWidth)!==null&&AA!==void 0?AA:r.innerWidth,windowHeight:(b=A.windowHeight)!==null&&b!==void 0?b:r.innerHeight,scrollX:(k=A.scrollX)!==null&&k!==void 0?k:r.pageXOffset,scrollY:(yA=A.scrollY)!==null&&yA!==void 0?yA:r.pageYOffset},i=new lA(B.scrollX,B.scrollY,B.windowWidth,B.windowHeight),a=new el(s,i),o=(j=A.foreignObjectRendering)!==null&&j!==void 0?j:!1,c={allowTaint:(z=A.allowTaint)!==null&&z!==void 0?z:!1,onclone:A.onclone,ignoreElements:A.ignoreElements,inlineImages:o,copyStyles:o},a.logger.debug("Starting document clone with size "+i.width+"x"+i.height+" scrolled to "+-i.left+","+-i.top),l=new os(a,e,c),Q=l.clonedReferenceElement,Q?[4,l.toIFrame(t,i)]:[2,Promise.reject("Unable to find element in cloned iframe")];case 1:return C=fA.sent(),g=er(Q)||nc(Q)?Ds(Q.ownerDocument):pe(a,Q),w=g.width,E=g.height,F=g.left,U=g.top,m=nl(a,Q,A.backgroundColor),H={canvas:A.canvas,backgroundColor:m,scale:(cA=(SA=A.scale)!==null&&SA!==void 0?SA:r.devicePixelRatio)!==null&&cA!==void 0?cA:1,x:((mA=A.x)!==null&&mA!==void 0?mA:0)+F,y:((MA=A.y)!==null&&MA!==void 0?MA:0)+U,width:(OA=A.width)!==null&&OA!==void 0?OA:Math.ceil(w),height:(uA=A.height)!==null&&uA!==void 0?uA:Math.ceil(E)},o?(a.logger.debug("Document cloned, using foreign object rendering"),I=new zc(a,H),[4,I.render(Q)]):[3,3];case 2:return d=fA.sent(),[3,5];case 3:return a.logger.debug("Document cloned, element located at "+F+","+U+" with size "+w+"x"+E+" using computed rendering"),a.logger.debug("Starting DOM parsing"),f=Wn(a,Q),m===f.styles.backgroundColor&&(f.styles.backgroundColor=gA.TRANSPARENT),a.logger.debug("Starting renderer for element at "+H.x+","+H.y+" with size "+H.width+"x"+H.height),I=new Jc(a,H),[4,I.render(f)];case 4:d=fA.sent(),fA.label=5;case 5:return(!((RA=A.removeContainer)!==null&&RA!==void 0)||RA)&&(os.destroy(C)||a.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")),a.logger.debug("Finished rendering"),[2,d]}})})},nl=function(e,A,t){var r=A.ownerDocument,n=r.documentElement?Qe(e,getComputedStyle(r.documentElement).backgroundColor):gA.TRANSPARENT,s=r.body?Qe(e,getComputedStyle(r.body).backgroundColor):gA.TRANSPARENT,B=typeof t=="string"?Qe(e,t):t===null?gA.TRANSPARENT:4294967295;return A===r.documentElement?pA(n)?pA(s)?B:s:n:B};const sl=/\b(?:oklab|oklch|color-mix|lab|lch)\(/i,Bl=["color","background-color","border-top-color","border-right-color","border-bottom-color","border-left-color","outline-color","text-decoration-color","-webkit-text-stroke-color","fill","stroke"],il=["background-image","border-image-source","box-shadow","text-shadow"];let TA;const Ue=new Map;function lr(e){return sl.test(e)}function al(e){const A=e.ownerDocument.documentElement;A instanceof HTMLElement&&A!==e&&Qr(A),Qr(e);for(const t of e.querySelectorAll("*"))Qr(t)}function Qr(e){var r,n,s;const A=e.ownerDocument.defaultView;if(!A)return;const t=A.getComputedStyle(e);for(const B of Bl){const i=t.getPropertyValue(B);lr(i)&&e.style.setProperty(B,(r=gr(i))!=null?r:ds(B),"important")}for(const B of il){const i=t.getPropertyValue(B);lr(i)&&e.style.setProperty(B,"none","important")}for(let B=0;B<t.length;B+=1){const i=t.item(B),a=t.getPropertyValue(i);lr(a)&&(i.startsWith("--")?e.style.setProperty(i,(n=gr(a))!=null?n:"rgb(0, 0, 0)","important"):Ql(i,a)?e.style.setProperty(i,"none","important"):ll(i)&&e.style.setProperty(i,(s=gr(a))!=null?s:ds(i),"important"))}}function gr(e){var a;const A=e.trim();if(Ue.has(A))return(a=Ue.get(A))!=null?a:null;const t=ol();if(!t)return Ue.set(A,null),null;t.clearRect(0,0,1,1),t.fillStyle="rgb(1, 2, 3)",t.fillStyle=A,t.fillRect(0,0,1,1);const[r,n,s,B]=t.getImageData(0,0,1,1).data;if(r===1&&n===2&&s===3&&B===255)return Ue.set(A,null),null;const i=B===255?`rgb(${r}, ${n}, ${s})`:`rgba(${r}, ${n}, ${s}, ${cl(B/255)})`;return Ue.set(A,i),i}function ol(){if(TA!==void 0)return TA;if(typeof navigator!="undefined"&&navigator.userAgent.includes("jsdom"))return TA=null,TA;const e=document.createElement("canvas");e.width=1,e.height=1;try{TA=e.getContext("2d")}catch{TA=null}return TA}function ds(e){return e==="color"||e==="fill"||e==="stroke"||e.includes("text")||e.includes("caret")||e.includes("accent")?"rgb(17, 24, 39)":"rgba(0, 0, 0, 0)"}function cl(e){return String(Math.round(e*1e3)/1e3)}function ll(e){return e.includes("color")||e==="fill"||e==="stroke"||e.includes("caret")||e.includes("accent")}function Ql(e,A){return e.includes("shadow")||e.includes("image")||e.includes("filter")||A.includes("gradient(")}async function gl(e,A){var n,s,B;const t=(n=A.ignoreSelectors)!=null?n:[];return{canvas:await tl(e,{backgroundColor:A.backgroundColor===void 0?null:A.backgroundColor,useCORS:!0,allowTaint:!1,logging:!1,scale:(B=(s=A.scale)!=null?s:window.devicePixelRatio)!=null?B:1,x:window.scrollX,y:window.scrollY,width:window.innerWidth,height:window.innerHeight,windowWidth:Math.max(document.documentElement.scrollWidth,window.innerWidth),windowHeight:Math.max(document.documentElement.scrollHeight,window.innerHeight),scrollX:window.scrollX,scrollY:window.scrollY,onclone:(i,a)=>{A.sanitizeUnsupportedColors!==!1&&al(i.documentElement)},ignoreElements:i=>i.closest("[data-page-annotation-root]")?!0:t.some(a=>i.matches(a)||!!i.closest(a))})}}function wr(){var e;return typeof navigator!="undefined"&&!!((e=navigator.clipboard)!=null&&e.write)&&typeof ClipboardItem!="undefined"}async function ps(e){if(!wr())throw new Error("Image clipboard copy is not supported in this browser.");await navigator.clipboard.write([new ClipboardItem({[e.png.type||"image/png"]:e.png})])}const wl=["pen","eraser","text","rectangle","arrow"],ul={launcher:"Annotate",pen:"Pen",eraser:"Eraser",text:"Text",rectangle:"Rectangle",arrow:"Arrow",undo:"Undo",redo:"Redo",clear:"Clear",moveToolbar:"Move toolbar",copy:"Copy",download:"Download",submit:"Submit",close:"Close",addText:"Add note",cancelText:"Cancel",color:"Color",strokeWidth:"Stroke width",textPlaceholder:"Type a note"},fl="#ef4444",Cl=4;function Es(e){const A=URL.createObjectURL(e.png),t=document.createElement("a");t.href=A,t.download=`page-annotation-${hl(e.createdAt)}.png`,document.body.appendChild(t),t.click(),t.remove(),window.setTimeout(()=>URL.revokeObjectURL(A),500)}function hl(e){return e.replace(/[^0-9A-Za-z]+/g,"-").replace(/^-|-$/g,"")}function ur(e,A,t,r){const n=t<0?e+t:e,s=r<0?A+r:A;return{x:n,y:s,width:Math.abs(t),height:Math.abs(r)}}function Ul(e,A,t=12){switch(e.type){case"path":return e.points.some((r,n)=>{const s=e.points[n+1];return s?Hs(A,r,s)<=t+e.width:fr(A,r)<=t+e.width});case"rectangle":{const r=ur(e.x,e.y,e.width,e.height),n=Math.abs(A.x-r.x)<=t&&A.y>=r.y-t&&A.y<=r.y+r.height+t,s=Math.abs(A.x-(r.x+r.width))<=t&&A.y>=r.y-t&&A.y<=r.y+r.height+t,B=Math.abs(A.y-r.y)<=t&&A.x>=r.x-t&&A.x<=r.x+r.width+t,i=Math.abs(A.y-(r.y+r.height))<=t&&A.x>=r.x-t&&A.x<=r.x+r.width+t;return n||s||B||i}case"arrow":return Hs(A,e.start,e.end)<=t+e.strokeWidth;case"text":{const r=Math.max(80,e.text.length*e.fontSize*.55),n=e.fontSize*1.4;return A.x>=e.x-t&&A.x<=e.x+r+t&&A.y>=e.y-e.fontSize-t&&A.y<=e.y+n+t}}}function fr(e,A){return Math.hypot(e.x-A.x,e.y-A.y)}function Hs(e,A,t){const r=(t.x-A.x)**2+(t.y-A.y)**2;if(r===0)return fr(e,A);const n=Math.max(0,Math.min(1,((e.x-A.x)*(t.x-A.x)+(e.y-A.y)*(t.y-A.y))/r));return fr(e,{x:A.x+n*(t.x-A.x),y:A.y+n*(t.y-A.y)})}function Cr(e){const A=window.devicePixelRatio||1,t=window.innerWidth,r=window.innerHeight;return e.width=Math.max(1,Math.floor(t*A)),e.height=Math.max(1,Math.floor(r*A)),e.style.width=`${t}px`,e.style.height=`${r}px`,A}function vs(e,A,t=1){const r=Array.isArray(A)?A:A.items;e.save(),e.scale(t,t);for(const n of r)Is(e,n);e.restore()}function Is(e,A){switch(e.save(),e.lineCap="round",e.lineJoin="round",A.type){case"path":Fl(e,A);break;case"rectangle":dl(e,A);break;case"arrow":pl(e,A);break;case"text":El(e,A);break}e.restore()}function Fl(e,A){if(A.points.length!==0){e.strokeStyle=A.color,e.lineWidth=A.width,e.beginPath(),e.moveTo(A.points[0].x,A.points[0].y);for(const t of A.points.slice(1))e.lineTo(t.x,t.y);e.stroke()}}function dl(e,A){const t=ur(A.x,A.y,A.width,A.height);e.strokeStyle=A.color,e.lineWidth=A.strokeWidth,e.strokeRect(t.x,t.y,t.width,t.height)}function pl(e,A){const t=Math.atan2(A.end.y-A.start.y,A.end.x-A.start.x),r=Math.max(14,A.strokeWidth*4);e.strokeStyle=A.color,e.fillStyle=A.color,e.lineWidth=A.strokeWidth,e.beginPath(),e.moveTo(A.start.x,A.start.y),e.lineTo(A.end.x,A.end.y),e.stroke(),e.beginPath(),e.moveTo(A.end.x,A.end.y),e.lineTo(A.end.x-r*Math.cos(t-Math.PI/6),A.end.y-r*Math.sin(t-Math.PI/6)),e.lineTo(A.end.x-r*Math.cos(t+Math.PI/6),A.end.y-r*Math.sin(t+Math.PI/6)),e.closePath(),e.fill()}function El(e,A){const t=A.fontSize*1.25;e.fillStyle=A.color,e.font=`600 ${A.fontSize}px ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,e.textBaseline="top",A.text.split(/\r?\n/).forEach((r,n)=>{e.fillText(r,A.x,A.y+n*t)})}async function Hl(e,A){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const r=t.getContext("2d");if(!r)throw new Error("Unable to create export canvas context.");r.drawImage(e,0,0);const n=t.width/Math.max(1,A.viewportWidth);return vs(r,A,n),await new Promise((s,B)=>{t.toBlob(i=>{if(i){s(i);return}B(new Error("Unable to export annotation PNG."))},"image/png")})}let ys=0;function wt(e="annotation"){return ys+=1,`${e}-${Date.now().toString(36)}-${ys.toString(36)}`}const vl={arrow:['<path d="M5 19 19 5" />','<path d="M10 5h9v9" />'].join(""),close:['<path d="m7 7 10 10" />','<path d="m17 7-10 10" />'].join(""),copy:['<rect x="8" y="8" width="10" height="10" rx="2" />','<path d="M6 14H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1" />'].join(""),download:['<path d="M12 4v10" />','<path d="m8 10 4 4 4-4" />','<path d="M5 19h14" />'].join(""),eraser:['<path d="m7 16-3-3 8-8a2 2 0 0 1 3 0l4 4a2 2 0 0 1 0 3l-4 4" />','<path d="M7 16h8" />','<path d="m9 11 4 4" />'].join(""),move:['<circle cx="9" cy="6" r="1.2" fill="currentColor" stroke="none" />','<circle cx="15" cy="6" r="1.2" fill="currentColor" stroke="none" />','<circle cx="9" cy="12" r="1.2" fill="currentColor" stroke="none" />','<circle cx="15" cy="12" r="1.2" fill="currentColor" stroke="none" />','<circle cx="9" cy="18" r="1.2" fill="currentColor" stroke="none" />','<circle cx="15" cy="18" r="1.2" fill="currentColor" stroke="none" />'].join(""),pen:['<path d="M16.5 4.5 19.5 7.5 9 18l-4 1 1-4 10.5-10.5Z" />','<path d="m14 7 3 3" />'].join(""),rectangle:['<rect x="5" y="6" width="14" height="12" rx="1.5" />'].join(""),redo:['<path d="m16 7 4 4-4 4" />','<path d="M4 18v-2a5 5 0 0 1 5-5h11" />'].join(""),send:['<path d="M4 5 20 12 4 19l3-7-3-7Z" />','<path d="M7 12h13" />'].join(""),text:['<path d="M5 5h14" />','<path d="M12 5v14" />','<path d="M9 19h6" />'].join(""),trash:['<path d="M5 7h14" />','<path d="M10 11v6" />','<path d="M14 11v6" />','<path d="M7 7l1 13h8l1-13" />','<path d="M9 7V4h6v3" />'].join(""),undo:['<path d="m8 7-4 4 4 4" />','<path d="M20 18v-2a5 5 0 0 0-5-5H4" />'].join("")};function ms(e){return`<svg class="pa-icon" viewBox="0 0 24 24" aria-hidden="true" focusable="false">${vl[e]}</svg>`}function Ks(e){const A=document.createElement("span");return A.className="pa-icon-wrap",A.innerHTML=ms(e),A}class Ls{constructor(){T(this,"items",[]);T(this,"undoStack",[]);T(this,"redoStack",[]);T(this,"listeners",new Set)}subscribe(A){return this.listeners.add(A),()=>this.listeners.delete(A)}all(){return this.items.map(IA)}add(A){this.captureUndoState(),this.items=[...this.items,IA(A)],this.redoStack=[],this.notify()}replaceAll(A){this.captureUndoState(),this.items=A.map(IA),this.redoStack=[],this.notify()}removeById(A){return this.items.some(t=>t.id===A)?(this.captureUndoState(),this.items=this.items.filter(t=>t.id!==A),this.redoStack=[],this.notify(),!0):!1}clear(){this.items.length!==0&&(this.captureUndoState(),this.items=[],this.redoStack=[],this.notify())}undo(){const A=this.undoStack.pop();A&&(this.redoStack.push(this.items.map(IA)),this.items=A.map(IA),this.notify())}redo(){const A=this.redoStack.pop();A&&(this.undoStack.push(this.items.map(IA)),this.items=A.map(IA),this.notify())}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}toDocument(A,t){return{version:1,viewportWidth:A,viewportHeight:t,items:this.all()}}captureUndoState(){this.undoStack.push(this.items.map(IA)),this.undoStack.length>100&&this.undoStack.shift()}notify(){this.listeners.forEach(A=>A())}}function IA(e){return JSON.parse(JSON.stringify(e))}function Il(e={}){return new yl(e)}class yl{constructor(A){T(this,"options");T(this,"labels");T(this,"tools");T(this,"target");T(this,"store",new Ls);T(this,"root");T(this,"canvas");T(this,"context");T(this,"toolbar");T(this,"launcher");T(this,"activeTool");T(this,"color");T(this,"strokeWidth");T(this,"draft",null);T(this,"isPointerDown",!1);T(this,"textEditor",null);T(this,"toolbarDrag",null);T(this,"unsubscribeStore",null);var t,r,n;this.options=A,this.labels={...ul,...A.labels},this.tools=A.tools&&A.tools.length>0?A.tools:wl,this.target=ml(A.target),this.activeTool=(t=this.tools[0])!=null?t:"pen",this.color=(r=A.initialColor)!=null?r:fl,this.strokeWidth=(n=A.initialStrokeWidth)!=null?n:Cl,this.root=document.createElement("div"),this.root.className="pa-overlay",this.root.dataset.open="false",this.root.dataset.pageAnnotationRoot="true",this.canvas=document.createElement("canvas"),this.canvas.className="pa-canvas",this.context=Kl(this.canvas),this.toolbar=this.buildToolbar(),this.root.append(this.canvas,this.toolbar),document.body.append(this.root),this.launcher=this.buildLauncher(),this.bindEvents()}open(){var A;this.root.dataset.open="true",Cr(this.canvas),this.redraw(),(A=this.toolbar.querySelector("[data-pa-tool]"))==null||A.focus()}close(){this.commitTextEditor(),this.root.dataset.open="false",this.draft=null,this.isPointerDown=!1,this.redraw()}destroy(){var A;this.commitTextEditor(),(A=this.unsubscribeStore)==null||A.call(this),this.root.remove(),this.launcher&&!bl(this.options.launcher)&&this.launcher.remove()}clear(){this.store.clear()}setTool(A){this.tools.includes(A)&&(this.commitTextEditor(),this.activeTool=A,this.updateToolbarState())}async export(){var s;this.commitTextEditor();const A=this.store.toDocument(window.innerWidth,window.innerHeight),t=await gl(this.target,(s=this.options.capture)!=null?s:{}),r=await Hl(t.canvas,A),n=new Date().toISOString();return{png:r,annotations:A,createdAt:n,page:{url:window.location.href,title:document.title,scrollX:window.scrollX,scrollY:window.scrollY,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,devicePixelRatio:window.devicePixelRatio||1}}}async copyToClipboard(){const A=await this.export();return await ps(A),A}bindEvents(){this.unsubscribeStore=this.store.subscribe(()=>{this.redraw(),this.updateToolbarState()}),window.addEventListener("resize",()=>{this.root.dataset.open==="true"&&(Cr(this.canvas),this.redraw())}),this.canvas.addEventListener("pointerdown",A=>this.handlePointerDown(A)),this.canvas.addEventListener("pointermove",A=>this.handlePointerMove(A)),this.canvas.addEventListener("pointerup",A=>this.handlePointerUp(A)),this.canvas.addEventListener("pointercancel",()=>this.cancelPointer()),document.addEventListener("keydown",A=>{if(this.root.dataset.open==="true"){if(A.key==="Escape"){A.preventDefault(),this.close();return}if((A.metaKey||A.ctrlKey)&&A.key.toLowerCase()==="z"){A.preventDefault(),A.shiftKey?this.store.redo():this.store.undo();return}(A.metaKey||A.ctrlKey)&&A.key.toLowerCase()==="y"&&(A.preventDefault(),this.store.redo())}})}buildLauncher(){var r,n,s;if(!this.options.launcher)return null;if(this.options.launcher instanceof HTMLElement)return this.options.launcher.addEventListener("click",()=>this.open()),this.options.launcher;const A=typeof this.options.launcher=="object"?this.options.launcher:{},t=document.createElement("button");return t.type="button",t.className=["pa-launcher",A.className].filter(Boolean).join(" "),t.dataset.position=(r=A.position)!=null?r:"bottom-right",xl(t,A.offset),t.textContent=(n=A.label)!=null?n:this.labels.launcher,t.addEventListener("click",()=>this.open()),((s=A.container)!=null?s:document.body).append(t),t}buildToolbar(){const A=document.createElement("div");A.className="pa-toolbar",A.addEventListener("pointerdown",s=>s.stopPropagation()),A.addEventListener("click",s=>s.stopPropagation());const t={pen:{label:this.labels.pen,icon:"pen"},eraser:{label:this.labels.eraser,icon:"eraser"},text:{label:this.labels.text,icon:"text"},rectangle:{label:this.labels.rectangle,icon:"rectangle"},arrow:{label:this.labels.arrow,icon:"arrow"}};for(const s of this.tools)A.append(this.button(t[s].label,{icon:t[s].icon,tool:s,pressed:s===this.activeTool,onClick:()=>this.setTool(s)}));const r=document.createElement("input");r.className="pa-color",r.type="color",r.value=this.color,r.title=this.labels.color,r.ariaLabel=this.labels.color,r.addEventListener("input",()=>{this.color=r.value}),A.append(r);const n=document.createElement("input");return n.className="pa-range",n.type="range",n.min="1",n.max="14",n.value=String(this.strokeWidth),n.title=this.labels.strokeWidth,n.ariaLabel=this.labels.strokeWidth,n.addEventListener("input",()=>{this.strokeWidth=Number(n.value)}),A.append(n),A.append(this.button(this.labels.undo,{icon:"undo",action:"undo",onClick:()=>this.store.undo()}),this.button(this.labels.redo,{icon:"redo",action:"redo",onClick:()=>this.store.redo()}),this.button(this.labels.clear,{icon:"trash",kind:"danger",onClick:()=>this.store.clear()}),this.button(this.labels.download,{icon:"download",onClick:async()=>{await this.runWithErrors(async()=>Es(await this.export()))}})),wr()&&A.append(this.button(this.labels.copy,{icon:"copy",onClick:async()=>{await this.runWithErrors(async()=>{await this.copyToClipboard()})}})),this.options.onExport&&A.append(this.button(this.labels.submit,{icon:"send",showLabel:!0,onClick:async()=>{await this.runWithErrors(async()=>{var B,i;const s=await this.export();await((i=(B=this.options).onExport)==null?void 0:i.call(B,s))})}})),A.append(this.button(this.labels.close,{icon:"close",onClick:()=>this.close()}),this.buildToolbarHandle()),A}buildToolbarHandle(){const A=document.createElement("button");return A.type="button",A.className="pa-toolbar-handle",A.title=this.labels.moveToolbar,A.ariaLabel=this.labels.moveToolbar,A.append(Ks("move")),A.addEventListener("pointerdown",t=>this.startToolbarDrag(t)),A.addEventListener("pointermove",t=>this.moveToolbar(t)),A.addEventListener("pointerup",t=>this.endToolbarDrag(t)),A.addEventListener("pointercancel",t=>this.endToolbarDrag(t)),A}button(A,t){var n;const r=document.createElement("button");return r.type="button",r.className="pa-button",r.title=A,r.ariaLabel=A,t.icon?(r.append(Ks(t.icon)),t.showLabel?(r.append(this.buttonText(A)),r.dataset.showLabel="true"):r.dataset.iconOnly="true"):r.textContent=A,t.kind&&(r.dataset.kind=t.kind),t.tool&&(r.dataset.paTool=t.tool,r.setAttribute("aria-pressed",String((n=t.pressed)!=null?n:!1))),t.action&&(r.dataset.paAction=t.action),r.addEventListener("click",()=>{t.onClick()}),r}buttonText(A){const t=document.createElement("span");return t.className="pa-button-text",t.textContent=A,t}updateToolbarState(){for(const r of this.toolbar.querySelectorAll("[data-pa-tool]"))r.setAttribute("aria-pressed",String(r.dataset.paTool===this.activeTool));const A=this.toolbar.querySelector("[data-pa-action='undo']"),t=this.toolbar.querySelector("[data-pa-action='redo']");A&&(A.disabled=!this.store.canUndo()),t&&(t.disabled=!this.store.canRedo())}startToolbarDrag(A){A.preventDefault(),A.stopPropagation(),this.commitTextEditor();const t=this.toolbar.getBoundingClientRect();this.toolbar.style.left=`${t.left}px`,this.toolbar.style.top=`${t.top}px`,this.toolbar.style.transform="none",this.toolbar.dataset.dragged="true",this.toolbarDrag={pointerId:A.pointerId,startX:A.clientX,startY:A.clientY,startLeft:t.left,startTop:t.top,toolbarWidth:t.width,toolbarHeight:t.height},A.currentTarget.setPointerCapture(A.pointerId)}moveToolbar(A){if(!this.toolbarDrag||this.toolbarDrag.pointerId!==A.pointerId)return;A.preventDefault(),A.stopPropagation();const t=this.toolbarDrag.startLeft+A.clientX-this.toolbarDrag.startX,r=this.toolbarDrag.startTop+A.clientY-this.toolbarDrag.startY;this.toolbar.style.left=`${xs(t,8,window.innerWidth-this.toolbarDrag.toolbarWidth-8)}px`,this.toolbar.style.top=`${xs(r,8,window.innerHeight-this.toolbarDrag.toolbarHeight-8)}px`}endToolbarDrag(A){!this.toolbarDrag||this.toolbarDrag.pointerId!==A.pointerId||(A.preventDefault(),A.stopPropagation(),A.currentTarget.hasPointerCapture(A.pointerId)&&A.currentTarget.releasePointerCapture(A.pointerId),this.toolbarDrag=null)}handlePointerDown(A){this.commitTextEditor();const t=bs(A);if(this.activeTool==="text"){this.openTextEditor(t);return}if(this.canvas.setPointerCapture(A.pointerId),this.isPointerDown=!0,this.activeTool==="eraser"){this.eraseAt(t);return}this.activeTool==="pen"?this.draft={id:wt("path"),type:"path",points:[t],color:this.color,width:this.strokeWidth}:this.activeTool==="rectangle"?this.draft={id:wt("rect"),type:"rectangle",x:t.x,y:t.y,width:0,height:0,color:this.color,strokeWidth:this.strokeWidth}:this.activeTool==="arrow"&&(this.draft={id:wt("arrow"),type:"arrow",start:t,end:t,color:this.color,strokeWidth:this.strokeWidth}),this.redraw()}handlePointerMove(A){if(!this.isPointerDown)return;const t=bs(A);if(this.activeTool==="eraser"){this.eraseAt(t);return}this.draft&&(this.draft.type==="path"?this.draft.points.push(t):this.draft.type==="rectangle"?(this.draft.width=t.x-this.draft.x,this.draft.height=t.y-this.draft.y):this.draft.type==="arrow"&&(this.draft.end=t),this.redraw())}handlePointerUp(A){if(this.isPointerDown){if(this.canvas.releasePointerCapture(A.pointerId),this.isPointerDown=!1,this.draft&&Ll(this.draft)){if(this.draft.type==="rectangle"){const t=ur(this.draft.x,this.draft.y,this.draft.width,this.draft.height);this.draft={...this.draft,...t}}this.store.add(this.draft)}this.draft=null,this.redraw()}}cancelPointer(){this.isPointerDown=!1,this.draft=null,this.redraw()}eraseAt(A){const t=[...this.store.all()].reverse().find(r=>Ul(r,A));t&&this.store.removeById(t.id)}openTextEditor(A){this.discardTextEditor();const t=document.createElement("div");t.className="pa-text-popover",t.style.left=`${Math.min(A.x,window.innerWidth-248)}px`,t.style.top=`${Math.min(A.y,window.innerHeight-132)}px`,t.addEventListener("pointerdown",i=>i.stopPropagation()),t.addEventListener("click",i=>i.stopPropagation());const r=document.createElement("textarea");r.className="pa-text-editor",r.placeholder=this.labels.textPlaceholder,r.style.color=this.color,r.addEventListener("keydown",i=>{(i.metaKey||i.ctrlKey)&&i.key==="Enter"&&(i.preventDefault(),this.commitTextEditor()),i.key==="Escape"&&(i.preventDefault(),this.discardTextEditor())});const n=document.createElement("div");n.className="pa-text-actions";const s=document.createElement("button");s.type="button",s.className="pa-text-action pa-text-action-primary",s.textContent=this.labels.addText,s.addEventListener("click",()=>this.commitTextEditor());const B=document.createElement("button");B.type="button",B.className="pa-text-action",B.textContent=this.labels.cancelText,B.addEventListener("click",()=>this.discardTextEditor()),n.append(s,B),t.append(r,n),this.root.append(t),this.textEditor={wrapper:t,textarea:r,x:Number.parseFloat(t.style.left||"0"),y:Number.parseFloat(t.style.top||"0"),color:this.color},r.focus()}commitTextEditor(){if(!this.textEditor)return;const A=this.textEditor,t=A.textarea.value.trim();A.wrapper.remove(),this.textEditor=null,t.length!==0&&this.store.add({id:wt("text"),type:"text",x:A.x,y:A.y,text:t,color:A.color,fontSize:18})}discardTextEditor(){var A;(A=this.textEditor)==null||A.wrapper.remove(),this.textEditor=null}redraw(){const A=Cr(this.canvas);this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.save(),this.context.scale(A,A),vs(this.context,this.store.all()),this.draft&&Is(this.context,this.draft),this.context.restore()}async runWithErrors(A){try{await A()}catch(t){if(this.options.onError){this.options.onError(t);return}throw t}}}function ml(e){if(!e)return document.body;if(typeof e!="string")return e;const A=document.querySelector(e);if(!A)throw new Error(`Page annotation target not found: ${e}`);return A}function Kl(e){const A=e.getContext("2d");if(!A)throw new Error("Unable to create annotation canvas context.");return A}function bs(e){return{x:e.clientX,y:e.clientY}}function Ll(e){return e.type==="path"?e.points.length>1:e.type==="rectangle"?Math.abs(e.width)>3&&Math.abs(e.height)>3:e.type==="arrow"?Math.hypot(e.end.x-e.start.x,e.end.y-e.start.y)>6:e.text.trim().length>0}function bl(e){return e instanceof HTMLElement}function xs(e,A,t){return Math.max(A,Math.min(e,Math.max(A,t)))}function xl(e,A){const t=Dl(A);e.style.setProperty("--pa-launcher-offset-x",`${t.x}px`),e.style.setProperty("--pa-launcher-offset-y",`${t.y}px`)}function Dl(e){if(typeof e=="number"&&Number.isFinite(e))return{x:e,y:e};if(e&&typeof e=="object"){const A=e;return{x:typeof A.x=="number"&&Number.isFinite(A.x)?A.x:18,y:typeof A.y=="number"&&Number.isFinite(A.y)?A.y:18}}return{x:18,y:18}}return Y.AnnotationStore=Ls,Y.canCopyExportToClipboard=wr,Y.copyExportToClipboard=ps,Y.createAnnotator=Il,Y.downloadExport=Es,Y.iconSvg=ms,Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"}),Y})({});
|
|
6
|
-
//# sourceMappingURL=page-annotation.iife.js.map
|
package/dist/render.d.ts
CHANGED
|
@@ -2,4 +2,3 @@ import type { AnnotationDocument, AnnotationItem } from "./types";
|
|
|
2
2
|
export declare function resizeCanvas(canvas: HTMLCanvasElement): number;
|
|
3
3
|
export declare function renderAnnotations(context: CanvasRenderingContext2D, annotations: AnnotationItem[] | AnnotationDocument, scale?: number): void;
|
|
4
4
|
export declare function renderAnnotation(context: CanvasRenderingContext2D, annotation: AnnotationItem): void;
|
|
5
|
-
//# sourceMappingURL=render.d.ts.map
|
package/dist/store.d.ts
CHANGED
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "page-annotation",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.1",
|
|
4
4
|
"description": "Framework-neutral browser page annotation tools for screenshot-backed feedback.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,7 +34,9 @@
|
|
|
34
34
|
"./styles.css": "./dist/page-annotation.css"
|
|
35
35
|
},
|
|
36
36
|
"files": [
|
|
37
|
-
"dist",
|
|
37
|
+
"dist/**/*.css",
|
|
38
|
+
"dist/**/*.d.ts",
|
|
39
|
+
"dist/**/*.js",
|
|
38
40
|
"README.md",
|
|
39
41
|
"LICENSE"
|
|
40
42
|
],
|
package/dist/annotator.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"annotator.d.ts","sourceRoot":"","sources":["../src/annotator.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAKV,aAAa,EAGb,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAcjB,wBAAgB,eAAe,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAEjF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"color-sanitizer.d.ts","sourceRoot":"","sources":["../../src/capture/color-sanitizer.ts"],"names":[],"mappings":"AA0BA,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAUjE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dom-capture.d.ts","sourceRoot":"","sources":["../../src/capture/dom-capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7D,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CA+BhH"}
|
package/dist/clipboard.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,wBAAwB,IAAI,OAAO,CAMlD;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUnF"}
|
package/dist/defaults.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnE,eAAO,MAAM,YAAY,EAAE,cAAc,EAAoD,CAAC;AAE9F,eAAO,MAAM,aAAa,EAAE,mBAoB3B,CAAC;AAEF,eAAO,MAAM,YAAY,YAAY,CAAC;AAEtC,eAAO,MAAM,kBAAkB,IAAI,CAAC"}
|
package/dist/download.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAS7D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/export/compose.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAsB,UAAU,CAAC,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB9G"}
|
package/dist/geometry.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../src/geometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/D,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;EASrF;AAED,wBAAgB,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,SAAK,GAAG,OAAO,CA4BnG"}
|
package/dist/icons.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,OAAO,GACP,MAAM,GACN,UAAU,GACV,QAAQ,GACR,MAAM,GACN,KAAK,GACL,WAAW,GACX,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,CAAC;AAkEX,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAErD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAKjE"}
|
package/dist/id.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,MAAM,SAAe,GAAG,MAAM,CAG1D"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,oBAAoB,EACrB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
|