libpag
Version:
Portable Animated Graphics
1 lines • 134 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).libpag={})}(this,function(e){"use strict";const t=(()=>{if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;if("undefined"!=typeof self)return self;throw new Error("unable to locate global object")})();let r;void 0===t.globalThis&&Object.defineProperty(t,"globalThis",{get:()=>t});function n(e){let t=Object.getOwnPropertyNames(e.prototype).filter(t=>"constructor"!==t&&"function"==typeof e.prototype[t]);const r=(t,r)=>{const n=t[r];t[r]=function(...t){if(!this.isDestroyed)return n.call(this,...t);console.error(`Don't call ${r} of the ${e.name} that is destroyed.`)}};t.forEach(t=>r(e.prototype,t))}var s=(e=>(e[e.None=0]="None",e[e.Stretch=1]="Stretch",e[e.LetterBox=2]="LetterBox",e[e.Zoom=3]="Zoom",e))(s||{}),a=(e=>(e.onAnimationStart="onAnimationStart",e.onAnimationEnd="onAnimationEnd",e.onAnimationCancel="onAnimationCancel",e.onAnimationRepeat="onAnimationRepeat",e.onAnimationUpdate="onAnimationUpdate",e.onAnimationPlay="onAnimationPlay",e.onAnimationPause="onAnimationPause",e.onAnimationFlushed="onAnimationFlushed",e))(a||{}),i=(e=>(e[e.LeftJustify=0]="LeftJustify",e[e.CenterJustify=1]="CenterJustify",e[e.RightJustify=2]="RightJustify",e[e.FullJustifyLastLineLeft=3]="FullJustifyLastLineLeft",e[e.FullJustifyLastLineRight=4]="FullJustifyLastLineRight",e[e.FullJustifyLastLineCenter=5]="FullJustifyLastLineCenter",e[e.FullJustifyLastLineFull=6]="FullJustifyLastLineFull",e))(i||{}),o=(e=>(e[e.Default=0]="Default",e[e.Horizontal=1]="Horizontal",e[e.Vertical=2]="Vertical",e))(o||{}),l=(e=>(e[e.Unknown=0]="Unknown",e[e.Null=1]="Null",e[e.Solid=2]="Solid",e[e.Text=3]="Text",e[e.Shape=4]="Shape",e[e.Image=5]="Image",e[e.PreCompose=6]="PreCompose",e))(l||{}),u=(e=>(e[e.None=0]="None",e[e.Scale=1]="Scale",e[e.Repeat=2]="Repeat",e[e.RepeatInverted=3]="RepeatInverted",e))(u||{}),c=(e=>(e[e.a=0]="a",e[e.c=1]="c",e[e.tx=2]="tx",e[e.b=3]="b",e[e.d=4]="d",e[e.ty=5]="ty",e))(c||{}),h=(e=>(e[e.Success=0]="Success",e[e.TryAgainLater=-1]="TryAgainLater",e[e.Error=-2]="Error",e))(h||{}),d=(e=>(e[e.Unknown=0]="Unknown",e[e.ALPHA_8=1]="ALPHA_8",e[e.RGBA_8888=2]="RGBA_8888",e[e.BGRA_8888=3]="BGRA_8888",e))(d||{}),m=(e=>(e[e.Unknown=0]="Unknown",e[e.Opaque=1]="Opaque",e[e.Premultiplied=2]="Premultiplied",e[e.Unpremultiplied=3]="Unpremultiplied",e))(m||{});class f extends Array{constructor(...e){super(...e),this.isDeleted=!1,Object.setPrototypeOf(this,f.prototype)}static create(){return new f}get(e){if(this.ensureNotDeleted(),e<0||e>=this.length)throw new RangeError("Index out of bounds");return this[e]}push_back(e){this.ensureNotDeleted(),this.push(e)}size(){return this.ensureNotDeleted(),this.length}delete(){this.ensureNotDeleted(),this.length=0,this.isDeleted=!0}ensureNotDeleted(){if(this.isDeleted)throw new Error("This VecArray instance has been deleted.")}}var p=Object.freeze({__proto__:null,PAGScaleMode:s,PAGViewListenerEvent:a,ParagraphJustification:i,TextDirection:o,LayerType:l,PAGTimeStretchMode:u,MatrixIndex:c,DecoderResult:h,ColorType:d,AlphaType:m,VecArray:f}),g=Object.defineProperty,w=Object.getOwnPropertyDescriptor;let v=class{constructor(e){this.isDestroyed=!1,this.wasmIns=e}static makeAll(e,t,n,s,a,i,o=0,l=0,u=1){const c=r._Matrix._MakeAll(e,t,n,s,a,i,o,l,u);if(!c)throw new Error("Matrix.makeAll fail, please check parameters valid!");return new v(c)}static makeScale(e,t){let n;if(n=void 0!==t?r._Matrix._MakeScale(e,t):r._Matrix._MakeScale(e),!n)throw new Error("Matrix.makeScale fail, please check parameters valid!");return new v(n)}static makeTrans(e,t){const n=r._Matrix._MakeTrans(e,t);if(!n)throw new Error("Matrix.makeTrans fail, please check parameters valid!");return new v(n)}get a(){return this.wasmIns?this.wasmIns._get(c.a):0}set a(e){this.wasmIns?._set(c.a,e)}get b(){return this.wasmIns?this.wasmIns._get(c.b):0}set b(e){this.wasmIns?._set(c.b,e)}get c(){return this.wasmIns?this.wasmIns._get(c.c):0}set c(e){this.wasmIns?._set(c.c,e)}get d(){return this.wasmIns?this.wasmIns._get(c.d):0}set d(e){this.wasmIns?._set(c.d,e)}get tx(){return this.wasmIns?this.wasmIns._get(c.tx):0}set tx(e){this.wasmIns?._set(c.tx,e)}get ty(){return this.wasmIns?this.wasmIns._get(c.ty):0}set ty(e){this.wasmIns?._set(c.ty,e)}get(e){return this.wasmIns?this.wasmIns._get(e):0}set(e,t){this.wasmIns?._set(e,t)}setAll(e,t,r,n,s,a){this.wasmIns?._setAll(e,t,r,n,s,a,0,0,1)}setAffine(e,t,r,n,s,a){this.wasmIns?._setAffine(e,t,r,n,s,a)}reset(){this.wasmIns?._reset()}setTranslate(e,t){this.wasmIns?._setTranslate(e,t)}setScale(e,t,r=0,n=0){this.wasmIns?._setScale(e,t,r,n)}setRotate(e,t=0,r=0){this.wasmIns?._setRotate(e,t,r)}setSinCos(e,t,r=0,n=0){this.wasmIns?._setSinCos(e,t,r,n)}setSkew(e,t,r=0,n=0){this.wasmIns?._setSkew(e,t,r,n)}setConcat(e,t){this.wasmIns?._setConcat(e.wasmIns,t.wasmIns)}preTranslate(e,t){this.wasmIns?._preTranslate(e,t)}preScale(e,t,r=0,n=0){this.wasmIns?._preScale(e,t,r,n)}preRotate(e,t=0,r=0){this.wasmIns?._preRotate(e,t,r)}preSkew(e,t,r=0,n=0){this.wasmIns?._preSkew(e,t,r,n)}preConcat(e){this.wasmIns?._preConcat(e.wasmIns)}postTranslate(e,t){this.wasmIns?._postTranslate(e,t)}postScale(e,t,r=0,n=0){this.wasmIns?._postScale(e,t,r,n)}postRotate(e,t=0,r=0){this.wasmIns?._postRotate(e,t,r)}postSkew(e,t,r=0,n=0){this.wasmIns?._postSkew(e,t,r,n)}postConcat(e){this.wasmIns?._postConcat(e.wasmIns)}destroy(){this.wasmIns.delete()}};v=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?w(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&g(t,r,a),a})([n],v);const y=(e,t,...r)=>e.call(t,...r),b=(e,t)=>new Proxy(e,{get(e,r,n){switch(r){case"get":return r=>{const n=y(e.get,e,r);return n?t(n):n};case"push_back":return t=>{y(e.push_back,e,t.wasmIns||t)};case"size":return()=>y(e.size,e);default:return Reflect.get(e,r,n)}}}),_=e=>{switch(y(e._layerType,e)){case l.Solid:return new r.PAGSolidLayer(e);case l.Text:return new r.PAGTextLayer(e);case l.Image:return new r.PAGImageLayer(e);default:return new r.PAGLayer(e)}},E=e=>e?.wasmIns?e.wasmIns:e,x=(e,t)=>void 0!==t&&e instanceof t;var I=Object.defineProperty,P=Object.getOwnPropertyDescriptor;let T=class{constructor(e){this.isDestroyed=!1,this.wasmIns=e}uniqueID(){return this.wasmIns._uniqueID()}layerType(){return this.wasmIns._layerType()}layerName(){return this.wasmIns._layerName()}matrix(){const e=this.wasmIns._matrix();if(!e)throw new Error("Get matrix fail!");return new v(e)}setMatrix(e){this.wasmIns._setMatrix(e.wasmIns)}resetMatrix(){this.wasmIns._resetMatrix()}getTotalMatrix(){if(!this.wasmIns._getTotalMatrix())throw new Error("Get total matrix fail!");return new v(this.wasmIns._getTotalMatrix())}alpha(){return this.wasmIns._alpha()}setAlpha(e){this.wasmIns._setAlpha(e)}visible(){return this.wasmIns._visible()}setVisible(e){this.wasmIns._setVisible(e)}editableIndex(){return this.wasmIns._editableIndex()}parent(){const e=this.wasmIns._parent();if(!e)throw new Error("Get total matrix fail!");return new S(e)}markers(){const e=this.wasmIns._markers();if(!e)throw new Error("Get markers fail!");return b(e,e=>e)}localTimeToGlobal(e){return this.wasmIns._localTimeToGlobal(e)}globalToLocalTime(e){return this.wasmIns._globalToLocalTime(e)}duration(){return this.wasmIns._duration()}frameRate(){return this.wasmIns._frameRate()}startTime(){return this.wasmIns._startTime()}setStartTime(e){this.wasmIns._setStartTime(e)}currentTime(){return this.wasmIns._currentTime()}setCurrentTime(e){this.wasmIns._setCurrentTime(e)}getProgress(){return this.wasmIns._getProgress()}setProgress(e){this.wasmIns._setProgress(e)}preFrame(){this.wasmIns._preFrame()}nextFrame(){this.wasmIns._nextFrame()}getBounds(){return this.wasmIns._getBounds()}trackMatteLayer(){const e=this.wasmIns._trackMatteLayer();if(!e)throw new Error("Get track matte layer fail!");return _(e)}excludedFromTimeline(){return this.wasmIns._excludedFromTimeline()}setExcludedFromTimeline(e){this.wasmIns._setExcludedFromTimeline(e)}isPAGFile(){return this.wasmIns._isPAGFile()}asTypeLayer(){return _(this.wasmIns)}isDelete(){return this.wasmIns.isDelete()}destroy(){this.wasmIns.delete(),this.isDestroyed=!0}};T=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?P(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&I(t,r,a),a})([n],T);var C=Object.defineProperty,k=Object.getOwnPropertyDescriptor;let S=class extends T{static make(e,t){const n=r._PAGComposition._Make(e,t);if(!n)throw new Error("Make PAGComposition fail!");return new S(n)}width(){return this.wasmIns._width()}height(){return this.wasmIns._height()}setContentSize(e,t){this.wasmIns._setContentSize(e,t)}numChildren(){return this.wasmIns._numChildren()}getLayerAt(e){const t=this.wasmIns._getLayerAt(e);if(!t)throw new Error(`Get layer at ${e} fail!`);return _(t)}getLayerIndex(e){return this.wasmIns._getLayerIndex(e.wasmIns)}setLayerIndex(e,t){return this.wasmIns._setLayerIndex(e.wasmIns,t)}addLayer(e){return this.wasmIns._addLayer(e.wasmIns)}addLayerAt(e,t){return this.wasmIns._addLayerAt(e.wasmIns,t)}contains(e){return this.wasmIns._contains(e.wasmIns)}removeLayer(e){const t=this.wasmIns._removeLayer(e.wasmIns);if(!t)throw new Error("Remove layer fail!");return _(t)}removeLayerAt(e){const t=this.wasmIns._removeLayerAt(e);if(!t)throw new Error(`Remove layer at ${e} fail!`);return _(t)}removeAllLayers(){this.wasmIns._removeAllLayers()}swapLayer(e,t){this.wasmIns._swapLayer(e.wasmIns,t.wasmIns)}swapLayerAt(e,t){this.wasmIns._swapLayerAt(e,t)}audioBytes(){return this.wasmIns._audioBytes()}audioMarkers(){const e=this.wasmIns._audioMarkers();if(!e)throw new Error("Get audioMarkers fail!");return b(e,e=>e)}audioStartTime(){return this.wasmIns._audioStartTime()}getLayersByName(e){const t=this.wasmIns._getLayersByName(e);if(!t)throw new Error(`Get layers by ${e} fail!`);const r=f.create();for(const e of t)r.push(_(e));return r}getLayersUnderPoint(e,t){const r=this.wasmIns._getLayersUnderPoint(e,t);if(!r)throw new Error(`Get layers under point ${e},${t} fail!`);const n=f.create();for(const e of r)n.push(_(e));return n}};S=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?k(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&C(t,r,a),a})([n],S);const A=e=>new Promise(t=>{const r=new FileReader;r.onload=()=>{t(r.result)},r.onerror=()=>{console.error(r.error.message)},r.readAsArrayBuffer(e)});var D=Object.defineProperty,F=Object.getOwnPropertyDescriptor;let L=class extends S{static async load(e){const t=await(e=>x(e,globalThis.File)?A(e):x(e,globalThis.Blob)?A(new File([e],"")):x(e,globalThis.ArrayBuffer)?Promise.resolve(e):Promise.resolve(null))(e);if(!t)throw new Error("Initialize PAGFile data type error, please put check data type must to be File | Blob | ArrayBuffer!");return L.loadFromBuffer(t)}static loadFromBuffer(e){if(!(e&&e.byteLength>0))throw new Error("Initialize PAGFile data not be empty!");const t=new Uint8Array(e),n=r._PAGFile._Load(t);if(!n)throw new Error("Load PAGFile fail!");return new L(n)}static maxSupportedTagLevel(){return r._PAGFile._MaxSupportedTagLevel()}tagLevel(){return this.wasmIns._tagLevel()}numTexts(){return this.wasmIns._numTexts()}numImages(){return this.wasmIns._numImages()}numVideos(){return this.wasmIns._numVideos()}getTextData(e){return this.wasmIns._getTextData(e)}replaceText(e,t){this.wasmIns._replaceText(e,t)}replaceImage(e,t){this.wasmIns._replaceImage(e,t.wasmIns)}getLayersByEditableIndex(e,t){const r=this.wasmIns._getLayersByEditableIndex(e,t);if(!r)throw new Error(`Get ${(e=>{switch(e){case l.Solid:return"Solid";case l.Text:return"Text";case l.Shape:return"Shape";case l.Image:return"Image";case l.PreCompose:return"PreCompose";default:return"Unknown"}})(t)} layers by ${e} fail!`);const n=f.create();for(const e of r)n.push(_(e));return n}getEditableIndices(e){return this.wasmIns._getEditableIndices(e)}timeStretchMode(){return this.wasmIns._timeStretchMode()}setTimeStretchMode(e){this.wasmIns._setTimeStretchMode(e)}setDuration(e){this.wasmIns._setDuration(e)}copyOriginal(){const e=this.wasmIns._copyOriginal();if(!e)throw new Error("Copy original fail!");return new L(e)}};L=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?F(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&D(t,r,a),a})([n],L);var $=Object.defineProperty,M=Object.getOwnPropertyDescriptor;let R=class{constructor(e){this.isDestroyed=!1,this.wasmIns=e}static fromCanvas(e){const t=r._PAGSurface._FromCanvas(e);if(!t)throw new Error(`Make PAGSurface from canvas ${e} fail!`);return new R(t)}static fromTexture(e,t,n,s){const a=r._PAGSurface._FromTexture(e,t,n,s);if(!a)throw new Error(`Make PAGSurface from texture ${e} fail!`);return new R(a)}static fromRenderTarget(e,t,n,s){const a=r._PAGSurface._FromRenderTarget(e,t,n,s);if(!a)throw new Error(`Make PAGSurface from frameBuffer ${e} fail!`);return new R(a)}width(){return this.wasmIns._width()}height(){return this.wasmIns._height()}updateSize(){this.wasmIns._updateSize()}clearAll(){return this.wasmIns._clearAll()}freeCache(){this.wasmIns._freeCache()}readPixels(e,t){if(e===d.Unknown)return null;const r=this.wasmIns._width()*(e===d.ALPHA_8?1:4);return this.wasmIns._readPixels(e,t,r)}destroy(){this.wasmIns.delete(),this.isDestroyed=!0}};R=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?M(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&$(t,r,a),a})([n],R);var B=Object.defineProperty,G=Object.getOwnPropertyDescriptor;let O=class{constructor(e){if(this.videoIDs=[],this.isDestroyed=!1,this.videoReaderMap=new Map,this.wasmIns=r._videoInfoManager._Make(e),!this.wasmIns)throw new Error("create VideoReaderManager fail!");this.videoIDs=this.wasmIns._getVideoIDs(),this.wasmIns._hasTimeRangeOverlap()&&console.error("The current file contains multiple layers referencing the same video with overlapping timelines. This scenario is not supported, and the rendered result may not match expectations. It is recommended to offset the timelines of these layers.")}static HasVideo(e){return r._videoInfoManager._HasVideo(e)}static async make(e){const t=new O(e);return await t.createVideoReader(),t}async createVideoReader(){for(const e of this.videoIDs){const t=this.wasmIns._getMp4DataByID(e);null!==t&&(this.videoReaderMap.set(e,await r.VideoReader.create(t,this.wasmIns._getWidthByID(e),this.wasmIns._getHeightByID(e),this.wasmIns._getFrameRateByID(e),this.wasmIns._getStaticTimeRangesByID(e))),await(this.videoReaderMap.get(e)?.prepare(0,this.wasmIns._getPlaybackRateByID(e))))}}getVideoReaderByID(e){if(void 0!==this.videoReaderMap.get(e))return this.videoReaderMap.get(e);console.error(`get VideoReader fail!,id:${e}`)}async prepareTargetFrame(){for(const e of this.videoIDs){if(this.isDestroyed)return;const t=this.wasmIns._getTargetFrameByID(e);t<0||(void 0!==this.videoReaderMap.get(e)?await(this.videoReaderMap.get(e)?.prepare(t,this.wasmIns._getPlaybackRateByID(e))):console.error("videoReader is undefined,id:",e))}}destroy(){this.wasmIns.delete();for(const e of this.videoReaderMap.keys())this.videoReaderMap.get(e)?.onDestroy();this.videoReaderMap.clear(),this.isDestroyed=!0}};O=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?G(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&B(t,r,a),a})([n],O);var N=Object.defineProperty,j=Object.getOwnPropertyDescriptor;let V=class{constructor(e){this.isDestroyed=!1,this.videoReaders=[],this.pagComposition=null,this.videoReaderManager=null,this.wasmIns=e}static create(){const e=new r._PAGPlayer;if(!e)throw new Error("Create PAGPlayer fail!");return new V(e)}setProgress(e){this.wasmIns._setProgress(e)}async flush(){return r.currentPlayer=this,await this.prepareVideoFrame(),r.webAssemblyQueue.exec(async()=>{const e=await this.wasmIns._flush();return r.currentPlayer=null,e},this.wasmIns)}async flushInternal(e){r.currentPlayer=this,await this.prepareVideoFrame();const t=await r.webAssemblyQueue.exec(async()=>{const t=await this.wasmIns._flush();return r.currentPlayer=null,e(t),t},this.wasmIns);for(const e of this.videoReaders){const t=await e.getError();null!==t&&console.warn("[PAGPlayer] VideoReader error:",t)}return t}duration(){return this.wasmIns._duration()}getProgress(){return this.wasmIns._getProgress()}currentFrame(){return this.wasmIns._currentFrame()}videoEnabled(){return this.wasmIns._videoEnabled()}setVideoEnabled(e){this.wasmIns._setVideoEnabled(e)}cacheEnabled(){return this.wasmIns._cacheEnabled()}setCacheEnabled(e){this.wasmIns._setCacheEnabled(e)}cacheScale(){return this.wasmIns._cacheScale()}setCacheScale(e){this.wasmIns._setCacheScale(e)}maxFrameRate(){return this.wasmIns._maxFrameRate()}setMaxFrameRate(e){this.wasmIns._setMaxFrameRate(e)}scaleMode(){return this.wasmIns._scaleMode()}setScaleMode(e){this.wasmIns._setScaleMode(e)}setSurface(e){this.wasmIns._setSurface(E(e))}getComposition(){const e=this.wasmIns._getComposition();if(!e)throw new Error("Get composition fail!");return e._isPAGFile()?new L(e):new S(e)}setComposition(e){this.destroyVideoReaderManager(),this.pagComposition=e,this.wasmIns._setComposition(E(e))}getSurface(){const e=this.wasmIns._getSurface();if(!e)throw new Error("Get surface fail!");return new R(e)}matrix(){const e=this.wasmIns._matrix();if(!e)throw new Error("Get matrix fail!");return new v(e)}setMatrix(e){this.wasmIns._setMatrix(e.wasmIns)}nextFrame(){this.wasmIns._nextFrame()}preFrame(){this.wasmIns._preFrame()}autoClear(){return this.wasmIns._autoClear()}setAutoClear(e){this.wasmIns._setAutoClear(e)}getBounds(e){return this.wasmIns._getBounds(e.wasmIns)}getLayersUnderPoint(e,t){const r=this.wasmIns._getLayersUnderPoint(e,t);if(!r)throw new Error(`Get layers under point, x: ${e} y:${t} fail!`);const n=f.create();for(const e of r)n.push(_(e));return n}hitTestPoint(e,t,r,n=!1){return this.wasmIns._hitTestPoint(e.wasmIns,t,r,n)}renderingTime(){return this.wasmIns._renderingTime()}imageDecodingTime(){return this.wasmIns._imageDecodingTime()}presentingTime(){return this.wasmIns._presentingTime()}graphicsMemory(){return this.wasmIns._graphicsMemory()}prepare(){return r.webAssemblyQueue.exec(async()=>{r.currentPlayer=this,await this.wasmIns._prepare(),r.currentPlayer=null},this.wasmIns)}destroy(){this.destroyVideoReaderManager(),this.wasmIns.delete(),this.isDestroyed=!0}linkVideoReader(e){this.videoReaders.push(e)}unlinkVideoReader(e){const t=this.videoReaders.indexOf(e);-1!==t&&this.videoReaders.splice(t,1)}async prepareVideoFrame(){void 0===r._useSoftwareDecoder||r._useSoftwareDecoder||(null!==this.pagComposition?(null===this.videoReaderManager&&O.HasVideo(this.pagComposition?.wasmIns)&&(this.videoReaderManager=await O.make(this.pagComposition?.wasmIns),r.videoReaderManager=this.videoReaderManager),null!==this.videoReaderManager&&await this.videoReaderManager.prepareTargetFrame()):console.error("PAGComposition is null. A valid PAG file is missing."))}destroyVideoReaderManager(){null!==this.videoReaderManager&&(this.videoReaderManager.destroy(),this.videoReaderManager=null,r.videoReaderManage=null)}};V=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?j(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&N(t,r,a),a})([n],V);var W=Object.defineProperty,U=Object.getOwnPropertyDescriptor;let z=class{constructor(e){this.isDestroyed=!1,this.wasmIns=e}static async fromFile(e){return new Promise((t,r)=>{const n=new Image;n.onload=async()=>{t(z.fromSource(n))},n.onerror=e=>{r(e)},n.src=URL.createObjectURL(e)})}static fromSource(e){const t=r._PAGImage._FromNativeImage(e);if(!t)throw new Error("Make PAGImage from source fail!");return new z(t)}static fromPixels(e,t,n,s,a){const i=t*(s===d.ALPHA_8?1:4),o=r._PAGImage._FromPixels(e,t,n,i,s,a);if(!o)throw new Error("Make PAGImage from pixels fail!");return new z(o)}static fromTexture(e,t,n,s){const a=r._PAGImage._FromTexture(e,t,n,s);if(!a)throw new Error("Make PAGImage from texture fail!");return new z(a)}width(){return this.wasmIns._width()}height(){return this.wasmIns._height()}scaleMode(){return this.wasmIns._scaleMode()}setScaleMode(e){this.wasmIns._setScaleMode(e)}matrix(){const e=this.wasmIns._matrix();if(!e)throw new Error("Get matrix fail!");return new v(e)}setMatrix(e){this.wasmIns._setMatrix(e.wasmIns)}destroy(){this.wasmIns.delete(),this.isDestroyed=!0}};z=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?U(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&W(t,r,a),a})([n],z);class H{constructor(){this.listenerMap=new Map}on(e,t){let r=[];this.listenerMap.has(e)&&(r=this.listenerMap.get(e)),r.push(t),this.listenerMap.set(e,r)}off(e,t){if(!this.listenerMap.has(e))return!1;const r=this.listenerMap.get(e);if(0===r.length)return!1;if(!t)return this.listenerMap.delete(e),!0;const n=r.indexOf(t);return-1!==n&&(r.splice(n,1),!0)}emit(e,t){if(!this.listenerMap.has(e))return!1;const r=this.listenerMap.get(e);return 0!==r.length&&(r.forEach(e=>e(t)),!0)}}const X=2560,q={depth:!1,stencil:!1,antialias:!1};class J{constructor(e,t=!1){this.isDestroyed=!1,this.oldHandle=0,this.handle=e,this.externallyOwned=t}static from(e){if(e instanceof J)return new J(e.handle,!0);{const t=x(e,globalThis.WebGL2RenderingContext)?2:1,{GL:n}=r;let s=0;return n.contexts.length>0&&(s=n.contexts.findIndex(t=>t?.GLctx===e)),s<1?(s=n.registerContext(e,{majorVersion:t,minorVersion:0,...q}),new J(s)):new J(s,!0)}}getContext(){return r.GL.getContext(this.handle).GLctx}makeCurrent(){return!this.isDestroyed&&(this.oldHandle=r.GL.currentContext?.handle||0,this.oldHandle===this.handle||r.GL.makeContextCurrent(this.handle))}clearCurrent(){this.isDestroyed||this.oldHandle!==this.handle&&(r.GL.makeContextCurrent(0),this.oldHandle&&r.GL.makeContextCurrent(this.oldHandle))}registerTexture(e){return this.register(r.GL.textures,e)}getTexture(e){return r.GL.textures[e]}unregisterTexture(e){r.GL.textures[e]=null}registerRenderTarget(e){return this.register(r.GL.framebuffers,e)}getRenderTarget(e){return r.GL.framebuffers[e]}unregisterRenderTarget(e){r.GL.framebuffers[e]=null}destroy(){this.externallyOwned||r.GL.deleteContext(this.handle)}register(e,t){const n=r.GL.getNewId(e);return e[n]=t,n}}const K=[];class Q{constructor(e,t){this._canvas=null,this._glContext=null,this.retainCount=0,this._canvas=e;const r=e.getContext("webgl",{...q,...t});if(!r)throw new Error("Canvas context is not WebGL!");this._glContext=J.from(r)}static from(e,t){let r=K.find(t=>t.canvas===e);return r||(r=new Q(e,t),K.push(r),r)}retain(){this.retainCount+=1}release(){if(this.retainCount-=1,0===this.retainCount){if(!this._glContext)return;this._glContext.destroy(),this._glContext=null,this._canvas=null}}get canvas(){return this._canvas}get glContext(){return this._glContext}}let Y;try{Y=performance.now.bind(performance)}catch(e){Y=Date.now.bind(Date)}class Z{constructor(){this.startTime=Y(),this.markers={}}reset(){this.startTime=Y(),this.markers={}}mark(e){e?Object.keys(this.markers).find(t=>t===e)?console.log(`Clock.mark(): The specified marker name '${e}' already exists!`):this.markers[e]=Y():console.log("Clock.mark(): An empty marker name was specified!")}measure(e,t){let r,n;if(e){if(!Object.keys(this.markers).find(t=>t===e))return console.log(`Clock.measure(): The specified makerFrom '${e}' does not exist!`),0;r=this.markers[e]}else r=this.startTime;if(t){if(!Object.keys(this.markers).find(e=>e===t))return console.log(`Clock.measure(): The specified makerTo '${t}' does not exist!`),0;n=this.markers[t]}else n=Y();return n-r}}const ee=(e,t)=>void 0!==t&&e instanceof t,te=navigator?.userAgent||"",re=/android|adr/i.test(te),ne=/(mobile)/i.test(te)&&re;!/(mobile)/i.test(te)&&!ne&&/Mac OS X/i.test(te);const se=/(iphone|ipad|ipod)/i.test(te);/MicroMessenger/i.test(te);const ae=/^((?!chrome|android).)*safari/i.test(te)||se,ie="function"==typeof globalThis.importScripts,oe=new Array,le=e=>ee(e,globalThis.OffscreenCanvas),ue=(e,t)=>{let r=oe.pop()||he();return null!==r&&(r.width=e,r.height=t),r},ce=e=>{oe.length<10&&oe.push(e)},he=()=>{if(ae&&!ie)return document.createElement("canvas");try{const e=new OffscreenCanvas(0,0);return"function"==typeof e.getContext("2d").measureText?e:document.createElement("canvas")}catch(e){return document.createElement("canvas")}};var de=Object.defineProperty,me=Object.getOwnPropertyDescriptor;let fe=class{constructor(e,t){this.repeatCount=0,this.isPlaying=!1,this.isDestroyed=!1,this.pagViewOptions={useScale:!0,useCanvas2D:!1,firstFrame:!0},this.renderCanvas=null,this.pagGlContext=null,this.frameRate=0,this.pagSurface=null,this.playFrame=-1,this.timer=null,this.flushingNextFrame=!1,this.playTime=0,this.startTime=0,this.repeatedTimes=0,this.eventManager=new H,this.rawWidth=0,this.rawHeight=0,this.debugData={FPS:0,flushTime:0},this.fpsBuffer=[],this.player=e,this.canvasElement=t}static async init(e,t,n={}){let s=null;if("string"==typeof t?s=document.getElementById(t.substr(1)):("undefined"!=typeof window&&x(t,globalThis.HTMLCanvasElement)||le(t))&&(s=t),!s)throw new Error("Canvas is not found!");const a=r.PAGPlayer.create(),i=new fe(a,s);return i.pagViewOptions={...i.pagViewOptions,...n},i.pagViewOptions.useCanvas2D?(r.globalCanvas.retain(),i.pagGlContext=J.from(r.globalCanvas.glContext)):(i.renderCanvas=Q.from(s),i.renderCanvas.retain(),i.pagGlContext=J.from(i.renderCanvas.glContext)),i.resetSize(i.pagViewOptions.useScale),i.frameRate=e.frameRate(),i.pagSurface=this.makePAGSurface(i.pagGlContext,i.rawWidth,i.rawHeight),i.player.setSurface(i.pagSurface),i.player.setComposition(e),i.setProgress(0),i.pagViewOptions.firstFrame&&(await i.flush(),i.playFrame=0),i}static makePAGSurface(e,t,r){if(!e.makeCurrent())throw new Error("Make context current fail!");const n=R.fromRenderTarget(0,t,r,!0);return e.clearCurrent(),n}duration(){return this.player.duration()}addListener(e,t){return this.eventManager.on(e,t)}removeListener(e,t){return this.eventManager.off(e,t)}async play(){if(this.isPlaying)return;this.isPlaying=!0,this.startTime=1e3*this.getNowTime()-this.playTime;for(const e of this.player.videoReaders)e.isPlaying=!0;const e=this.playTime;await this.flushLoop(!0),0===e&&this.eventManager.emit("onAnimationStart",this),this.eventManager.emit("onAnimationPlay",this),0===this.playFrame&&this.eventManager.emit("onAnimationUpdate",this)}pause(){if(this.isPlaying){this.clearTimer();for(const e of this.player.videoReaders)e.pause();this.isPlaying=!1,this.eventManager.emit("onAnimationPause",this)}}async stop(e=!0){this.clearTimer(),this.playTime=0,this.player.setProgress(0),this.playFrame=0,await this.flush();for(const e of this.player.videoReaders)e.stop();this.isPlaying=!1,e&&this.eventManager.emit("onAnimationCancel",this)}setRepeatCount(e){this.repeatCount=e<0?0:e-1}getProgress(){return this.player.getProgress()}currentFrame(){return this.player.currentFrame()}setProgress(e){return this.playTime=e*this.duration(),this.startTime=1e3*this.getNowTime()-this.playTime,this.isPlaying||this.player.setProgress(e),e}videoEnabled(){return this.player.videoEnabled()}setVideoEnabled(e){this.player.setVideoEnabled(e)}cacheEnabled(){return this.player.cacheEnabled()}setCacheEnabled(e){this.player.setCacheEnabled(e)}cacheScale(){return this.player.cacheScale()}setCacheScale(e){this.player.setCacheScale(e)}maxFrameRate(){return this.player.maxFrameRate()}setMaxFrameRate(e){this.player.setMaxFrameRate(e)}scaleMode(){return this.player.scaleMode()}setScaleMode(e){this.player.setScaleMode(e)}async flush(){const e=new Z,t=await this.player.flushInternal(t=>{if(this.pagViewOptions.useCanvas2D&&t&&r.globalCanvas.canvas){this.canvasContext||(this.canvasContext=this.canvasElement?.getContext("2d"));const e=this.canvasContext.globalCompositeOperation;this.canvasContext.globalCompositeOperation="copy",this.canvasContext?.drawImage(r.globalCanvas.canvas,0,r.globalCanvas.canvas.height-this.rawHeight,this.rawWidth,this.rawHeight,0,0,this.canvasContext.canvas.width,this.canvasContext.canvas.height),this.canvasContext.globalCompositeOperation=e}e.mark("flush"),this.setDebugData({flushTime:e.measure("","flush")}),this.updateFPS()});return this.eventManager.emit("onAnimationUpdate",this),t&&this.eventManager.emit("onAnimationFlushed",this),t}freeCache(){this.pagSurface?.freeCache()}getComposition(){return this.player.getComposition()}setComposition(e){this.player.setComposition(e)}matrix(){return this.player.matrix()}setMatrix(e){this.player.setMatrix(e)}getLayersUnderPoint(e,t){return this.player.getLayersUnderPoint(e,t)}updateSize(){if(!this.canvasElement)throw new Error("Canvas element is not found!");if(this.rawWidth=this.canvasElement.width,this.rawHeight=this.canvasElement.height,!this.pagGlContext)return;const e=fe.makePAGSurface(this.pagGlContext,this.rawWidth,this.rawHeight);this.player.setSurface(e),this.pagSurface?.destroy(),this.pagSurface=e}prepare(){return this.player.prepare()}async makeSnapshot(){return await createImageBitmap(this.canvasElement)}destroy(){this.clearTimer(),this.player.destroy(),this.pagSurface?.destroy(),this.pagViewOptions.useCanvas2D?r.globalCanvas.release():this.renderCanvas?.release(),this.pagGlContext?.destroy(),this.pagGlContext=null,this.canvasContext=null,this.canvasElement=null,this.isDestroyed=!0}getDebugData(){return this.debugData}setDebugData(e){this.debugData={...this.debugData,...e}}async flushLoop(e=!1){if(this.isPlaying&&!this.isDestroyed&&(this.setTimer(),!this.flushingNextFrame))try{this.flushingNextFrame=!0,await this.flushNextFrame(e),this.flushingNextFrame=!1}catch(e){this.flushingNextFrame=!1,"The play() request was interrupted because the document was hidden!"!==e.message&&this.clearTimer(),console.error(e)}}async flushNextFrame(e=!1){const t=this.duration();this.playTime=1e3*this.getNowTime()-this.startTime;const r=Math.floor(this.playTime/1e6*this.frameRate),n=Math.floor(this.playTime/t);if(!e&&this.repeatCount>=0&&n>this.repeatCount)return this.clearTimer(),this.player.setProgress(1),await this.flush(),this.playTime=0,this.isPlaying=!1,this.repeatedTimes=0,this.eventManager.emit("onAnimationEnd",this),!0;if(!e&&this.repeatedTimes===n&&this.playFrame===r)return!1;this.repeatedTimes<n&&this.eventManager.emit("onAnimationRepeat",this),this.player.setProgress(this.playTime%t/t);const s=await this.flush();return this.needResetStartTime()&&(this.startTime=1e3*this.getNowTime()-this.playTime),this.playFrame=r,this.repeatedTimes=n,s}getNowTime(){try{return performance.now()}catch{return Date.now()}}setTimer(){this.timer=globalThis.requestAnimationFrame(()=>{this.flushLoop()})}clearTimer(){this.timer&&(globalThis.cancelAnimationFrame(this.timer),this.timer=null)}resetSize(e=!0){if(!this.canvasElement)throw new Error("Canvas element is not found!");if(!e||le(this.canvasElement))return this.rawWidth=this.canvasElement.width,void(this.rawHeight=this.canvasElement.height);const t=this.canvasElement,r=(e=>{const t=globalThis.getComputedStyle(e,null),r={width:Number(t.width.replace("px","")),height:Number(t.height.replace("px",""))};if(r.width>0&&r.height>0)return r;{const t={width:Number(e.style.width.replace("px","")),height:Number(e.style.height.replace("px",""))};return t.width>0&&t.height>0?t:{width:e.width,height:e.height}}})(t);t.style.width=`${r.width}px`,t.style.height=`${r.height}px`,this.rawWidth=r.width*globalThis.devicePixelRatio,this.rawHeight=r.height*globalThis.devicePixelRatio,t.width=this.rawWidth,t.height=this.rawHeight}needResetStartTime(){for(const e of this.player.videoReaders)if(e.isSought)return!0;return!1}updateFPS(){let e;try{e=performance.now()}catch{e=Date.now()}this.fpsBuffer=this.fpsBuffer.filter(t=>e-t<=1e3),this.fpsBuffer.push(e),this.setDebugData({FPS:this.fpsBuffer.length})}};fe=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?me(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&de(t,r,a),a})([n],fe);const pe=["emoji"].concat(...["Arial",'"Courier New"',"Georgia",'"Times New Roman"','"Trebuchet MS"',"Verdana"]);var ge=Object.defineProperty,we=Object.getOwnPropertyDescriptor;let ve=class{constructor(e){this.isDestroyed=!1,this.wasmIns=e,this.fontFamily=this.wasmIns.fontFamily,this.fontStyle=this.wasmIns.fontStyle}static create(e,t){const n=r._PAGFont._create(e,t);if(!n)throw new Error("Create PAGFont fail!");return new ve(n)}static async registerFont(e,t){const r=await A(t);if(!(r&&r.byteLength>0))throw new Error("Initialize PAGFont data not be empty!");const n=new Uint8Array(r),s=new FontFace(e,n);document.fonts.add(s),await s.load()}static registerFallbackFontNames(e=[]){const t=new r.VectorString,n=e.concat(pe);for(const e of n)t.push_back(e);r._PAGFont._SetFallbackFontNames(t),t.delete()}destroy(){this.wasmIns.delete(),this.isDestroyed=!0}};ve=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?we(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&ge(t,r,a),a})([n],ve);let ye={};const be=(e,t,r,n=!1)=>{t in ye||(ye[t]=[]),ye[t]?.push({node:e,handler:r,capture:n}),e.addEventListener(t,r,n)},_e=(e,t,r)=>{t in ye&&ye[t]?.filter(({node:t,handler:n})=>t===e&&n===r).forEach(({node:e,handler:r,capture:n})=>e.removeEventListener(t,r,n))},Ee=(e,t)=>{t in ye&&(ye[t]?.filter(({node:t})=>t===e).forEach(({node:e,handler:r,capture:n})=>e.removeEventListener(t,r,n)),ye[t]=ye[t]?.filter(({node:t})=>t!==e))},xe=navigator?.userAgent||"",Ie=/android|adr/i.test(xe),Pe=/(mobile)/i.test(xe)&&Ie;!/(mobile)/i.test(xe)&&!Pe&&/Mac OS X/i.test(xe);const Te=/(iphone|ipad|ipod)/i.test(xe),Ce=/MicroMessenger/i.test(xe),ke=/^((?!chrome|android).)*safari/i.test(xe)||Te;var Se=Object.defineProperty,Ae=Object.getOwnPropertyDescriptor;const De=e=>new Promise(t=>{const r=()=>{_e(e,"canplay",r),clearTimeout(n),t(!0)};be(e,"canplay",r);const n=setTimeout(()=>{_e(e,"canplay",r),t(!1)},1e3)});let Fe=class{constructor(e,t,n,s,a){if(this.isSought=!1,this.isPlaying=!1,this.bitmap=null,this.isDestroyed=!1,this.videoEl=null,this.frameRate=0,this.canplay=!1,this.staticTimeRanges=null,this.disablePlaybackRate=!1,this.error=null,this.player=null,this.width=0,this.height=0,this.bitmapCanvas=null,this.bitmapCtx=null,this.currentFrame=-1,this.targetFrame=-1,this.visibilityHandle=null,x(e,globalThis.HTMLVideoElement))this.videoEl=e,this.canplay=!0;else{this.videoEl=document.createElement("video"),this.videoEl.style.display="none",this.videoEl.muted=!0,this.videoEl.playsInline=!0,this.videoEl.preload="auto",this.videoEl.width=t,this.videoEl.height=n,De(this.videoEl).then(()=>{this.canplay=!0});const r=e.slice(),s=new Blob([r],{type:"video/mp4"});this.videoEl.src=URL.createObjectURL(s),Te&&this.videoEl.load()}this.frameRate=s,this.width=t,this.height=n,this.staticTimeRanges=new Le(a),(3840<t||3840<n)&&(this.disablePlaybackRate=!0),this.linkPlayer(r.currentPlayer)}static async create(e,t,r,n,s){return new Fe(e,t,r,n,s)}async prepare(e,t){if(this.isDestroyed||e===this.currentFrame)return;const r=new Promise(async r=>{this.setError(null),this.isSought=!1;const{currentTime:n}=this.videoEl,s=e/this.frameRate;if(0===n&&0===s)if(this.canplay||ke){try{await De(this.videoEl),await this.play()}catch(t){return this.setError(t),this.currentFrame=e,void r()}await new Promise(e=>{requestAnimationFrame(()=>{this.isDestroyed||this.pause(),e()})})}else await De(this.videoEl);else if(Math.round(s*this.frameRate)===Math.round(n*this.frameRate));else{if(this.staticTimeRanges?.contains(e))return await this.seek(s,!1),this.currentFrame=e,void r();if(!(Math.abs(n-s)<1/this.frameRate*1)||this.videoEl.paused)return this.isSought=!0,await this.seek(s),this.currentFrame=e,void r()}if(this.isDestroyed||!this.videoEl)return void r();const a=Math.min(Math.max(t,.125),4);if(this.disablePlaybackRate||this.videoEl.playbackRate===a||(this.videoEl.playbackRate=a),this.isPlaying&&this.videoEl.paused)try{await this.play()}catch(t){return this.setError(t),this.currentFrame=e,void r()}this.currentFrame=e,r()});await r}getCurrentFrame(){return this.currentFrame}getVideo(){return this.videoEl}async play(){if(this.videoEl.paused){if(Ce&&window.WeixinJSBridge&&await new Promise(e=>{window.WeixinJSBridge.invoke("getNetworkType",{},()=>{e()},()=>{e()})}),"visible"!==document.visibilityState)throw this.clearVisibilityListener(),this.visibilityHandle=()=>{this.isDestroyed?this.clearVisibilityListener():"visible"===document.visibilityState&&(this.videoEl&&this.videoEl.play().catch(e=>{this.setError(e)}),this.clearVisibilityListener())},window.addEventListener("visibilitychange",this.visibilityHandle),new Error("The play() request was interrupted because the document was hidden!");await(this.videoEl?.play())}}pause(){this.isPlaying=!1,this.videoEl.paused||this.videoEl?.pause()}stop(){this.isPlaying=!1,this.videoEl.paused||this.videoEl?.pause()}getError(){return this.error}onDestroy(){this.isDestroyed=!0,this.player&&(this.player.unlinkVideoReader(this),this.player=null),this.clearVisibilityListener(),Ee(this.videoEl,"playing"),Ee(this.videoEl,"timeupdate"),Ee(this.videoEl,"seeked"),Ee(this.videoEl,"canplay"),this.videoEl=null,this.bitmapCanvas=null,this.bitmapCtx=null}seek(e,t=!0){return new Promise((r,n)=>{if(!this.videoEl)return void n(new Error("Video element is not initialized."));const s=()=>{if(!this.videoEl||this.isDestroyed)return clearTimeout(i),void r();_e(this.videoEl,"seeked",s),clearTimeout(i),t?(this.videoEl.ended&&(this.videoEl.currentTime=this.videoEl.currentTime),this.videoEl.play().catch(e=>{this.setError(e)})):t||this.videoEl.paused||this.videoEl.pause(),r()},a=()=>{if(!this.videoEl||this.isDestroyed)return clearTimeout(i),void r();_e(this.videoEl,"canplay",a),this.videoEl.currentTime=e,be(this.videoEl,"seeked",s)},i=setTimeout(()=>{this.videoEl&&(_e(this.videoEl,"canplay",a),_e(this.videoEl,"seeked",s)),this.setError("Seek operation timed out."),r()},1e3/this.frameRate*12);this.videoEl.readyState<HTMLMediaElement.HAVE_FUTURE_DATA?be(this.videoEl,"canplay",a):(this.videoEl.currentTime=e,be(this.videoEl,"seeked",s))})}setError(e){this.error=e}clearVisibilityListener(){this.visibilityHandle&&(window.removeEventListener("visibilitychange",this.visibilityHandle),this.visibilityHandle=null)}linkPlayer(e){this.player=e,e&&e.linkVideoReader(this)}};Fe=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?Ae(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&Se(t,r,a),a})([n],Fe);class Le{constructor(e){this.timeRanges=e}contains(e){if(0===this.timeRanges.length)return!1;for(let t of this.timeRanges)if(t.start<=e&&e<t.end)return!0;return!1}}class $e{constructor(){this._canvas=null,this._glContext=null,this.width=X,this.height=X,this.retainCount=0}retain(){if(0===this.retainCount){try{this._canvas=new OffscreenCanvas(0,0)}catch(e){this._canvas=document.createElement("canvas")}this._canvas.width=this.width,this._canvas.height=this.height;const e=this._canvas.getContext("webgl",q);if(!e)throw new Error("Canvas context is not WebGL!");this._glContext=J.from(e)}this.retainCount+=1}release(){if(this.retainCount-=1,0===this.retainCount){if(!this._glContext)return;this._glContext.destroy(),this._glContext=null,this._canvas=null}}get canvas(){return this._canvas}get glContext(){return this._glContext}setCanvasSize(e=2560,t=2560){this.width=e,this.height=t,this._glContext&&this._canvas&&(this._canvas.width=e,this._canvas.height=t)}}var Me=Object.defineProperty,Re=Object.getOwnPropertyDescriptor;let Be=class extends T{static make(e,t,n=0,s="",a=""){return new Be("string"==typeof t?r._PAGTextLayer._Make(e,t,n,s,a):r._PAGTextLayer._Make(e,t))}fillColor(){return this.wasmIns._fillColor()}setFillColor(e){this.wasmIns._setFillColor(e)}font(){return new ve(this.wasmIns._font())}setFont(e){this.wasmIns._setFont(e.wasmIns)}fontSize(){return this.wasmIns._fontSize()}setFontSize(e){this.wasmIns._setFontSize(e)}strokeColor(){return this.wasmIns._strokeColor()}setStrokeColor(e){this.wasmIns._setStrokeColor(e)}text(){return this.wasmIns._text()}setText(e){this.wasmIns._setText(e)}reset(){this.wasmIns._reset()}};Be=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?Re(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&Me(t,r,a),a})([n],Be);var Ge=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor;let Ne=class extends T{static make(e,t,n){const s=r._PAGImageLayer._Make(e,t,n);if(!s)throw new Error("Make PAGImageLayer fail!");return new Ne(s)}contentDuration(){return this.wasmIns._contentDuration()}getVideoRanges(){return this.wasmIns._getVideoRanges()}replaceImage(e){this.wasmIns._replaceImage(e.wasmIns)}setImage(e){this.wasmIns._setImage(e.wasmIns)}layerTimeToContent(e){return this.wasmIns._layerTimeToContent(e)}contentTimeToLayer(e){return this.wasmIns._contentTimeToLayer(e)}imageBytes(){return this.wasmIns._imageBytes()}};Ne=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?Oe(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&Ge(t,r,a),a})([n],Ne);var je=Object.defineProperty,Ve=Object.getOwnPropertyDescriptor;let We=class extends T{static make(e,t,n,s,a){const i=r._PAGSolidLayer._Make(e,t,n,s,a);if(!i)throw new Error("Make PAGSolidLayer fail!");return new We(i)}solidColor(){return this.wasmIns._solidColor()}setSolidColor(e){this.wasmIns._setSolidColor(e)}};We=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?Ve(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&je(t,r,a),a})([n],We);let Ue;class ze{constructor(e){this.bitmap=e}setBitmap(e){this.bitmap&&this.bitmap.close(),this.bitmap=e}}const He=e=>new Promise(t=>{const r=new Image;r.onload=function(){t(r)},r.onerror=function(){console.error("image create from bytes error."),t(null)},r.src=e});var Xe=Object.freeze({__proto__:null,createImage:He,createImageFromBytes:e=>{const t=new Uint8Array(e),r=new Blob([t],{type:"image/*"});return He(URL.createObjectURL(r))},readImagePixels:(e,t,r,n)=>{if(!t)return null;const s=ue(r,n),a=s.getContext("2d",{willReadFrequently:!0});if(!a)return null;a.drawImage(t,0,0,r,n);const{data:i}=a.getImageData(0,0,r,n);return ce(s),0===i.length?null:new Uint8Array(i)},hasWebpSupport:()=>{try{return 0===document.createElement("canvas").toDataURL("image/webp",.5).indexOf("data:image/webp")}catch(e){return!1}},getSourceSize:e=>ee(e,globalThis.HTMLVideoElement)?{width:e.videoWidth,height:e.videoHeight}:{width:e.width,height:e.height},uploadToTexture:(e,t,r,n)=>{let s=t instanceof ze?t.bitmap:t;if(!s)return;const a=e.currentContext?.GLctx;a.bindTexture(a.TEXTURE_2D,e.textures[r]),n?(a.pixelStorei(a.UNPACK_ALIGNMENT,1),a.texSubImage2D(a.TEXTURE_2D,0,0,0,a.ALPHA,a.UNSIGNED_BYTE,s)):(a.pixelStorei(a.UNPACK_ALIGNMENT,4),a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),a.texSubImage2D(a.TEXTURE_2D,0,0,0,a.RGBA,a.UNSIGNED_BYTE,s),a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1))},isAndroidMiniprogram:()=>{if("undefined"!=typeof wx&&wx.getSystemInfoSync)return"android"===wx.getSystemInfoSync().platform},releaseNativeImage:e=>{var t;ee(e,globalThis.ImageBitmap)?e.close():(le(t=e)||ee(t,globalThis.HTMLCanvasElement))&&ce(e)},getBytesFromPath:async(e,t)=>{const r=await fetch(t).then(e=>e.arrayBuffer());return new Uint8Array(r)},createCanvas2D:ue});var qe=(e=>(e[e.a=0]="a",e[e.c=1]="c",e[e.tx=2]="tx",e[e.b=3]="b",e[e.d=4]="d",e[e.ty=5]="ty",e))(qe||{}),Je=Object.defineProperty,Ke=Object.getOwnPropertyDescriptor;let Qe=class{constructor(e){this.isDestroyed=!1,this.wasmIns=e}get a(){return this.wasmIns?this.wasmIns._get(qe.a):0}set a(e){this.wasmIns?._set(qe.a,e)}get b(){return this.wasmIns?this.wasmIns._get(qe.b):0}set b(e){this.wasmIns?._set(qe.b,e)}get c(){return this.wasmIns?this.wasmIns._get(qe.c):0}set c(e){this.wasmIns?._set(qe.c,e)}get d(){return this.wasmIns?this.wasmIns._get(qe.d):0}set d(e){this.wasmIns?._set(qe.d,e)}get tx(){return this.wasmIns?this.wasmIns._get(qe.tx):0}set tx(e){this.wasmIns?._set(qe.tx,e)}get ty(){return this.wasmIns?this.wasmIns._get(qe.ty):0}set ty(e){this.wasmIns?._set(qe.ty,e)}get(e){return this.wasmIns?this.wasmIns._get(e):0}set(e,t){this.wasmIns?._set(e,t)}destroy(){this.wasmIns.delete()}};Qe=((e,t,r,n)=>{for(var s,a=n>1?void 0:n?Ke(t,r):t,i=e.length-1;i>=0;i--)(s=e[i])&&(a=(n?s(t,r,a):s(a))||a);return n&&a&&Je(t,r,a),a})([function(e){let t=Object.getOwnPropertyNames(e.prototype).filter(t=>"constructor"!==t&&"function"==typeof e.prototype[t]);const r=(t,r)=>{const n=t[r];t[r]=function(...t){if(!this.isDestroyed)return n.call(this,...t);console.error(`Don't call ${r} of the ${e.name} that is destroyed.`)}};t.forEach(t=>r(e.prototype,t))}],Qe);const Ye=e=>{const t=new Int32Array(e.data.buffer);let r=Ze(t,e.width,e.height),n=et(t,e.width,e.height),s=tt(t,e.width,e.height),a=rt(t,e.width,e.height);return(r>s||n>a)&&(r=0,n=0,s=0,a=0),{left:r,top:n,right:s,bottom:a}},Ze=(e,t,r)=>{const n=e.length/t,s=e.length/r;for(let r=0;r<s;r++)for(let s=0;s<n;s++)if(0!==e[r+s*t])return r;return s},et=(e,t,r)=>{const n=e.length/t,s=e.length/r;for(let r=0;r<n;r++)for(let n=0;n<s;n++)if(0!==e[r*t+n])return r;return n},tt=(e,t,r)=>{const n=e.length/t;for(let s=e.length/r-1;s>0;s--)for(let r=n-1;r>0;r--)if(0!==e[s+t*r])return s;return 0},rt=(e,t,r)=>{const n=e.length/t,s=e.length/r;for(let r=n-1;r>0;r--)for(let n=s-1;n>0;n--)if(0!==e[r*t+n])return r;return 0},nt=class{constructor(e,t,r){this.fontBoundingBoxMap=[],this.fontName=e,this.fontStyle=t,this.size=r,this.loadCanvas()}static getLineCap(e){switch(e){case Ue.TGFXLineCap.Round:return"round";case Ue.TGFXLineCap.Square:return"square";default:return"butt"}}static getLineJoin(e){switch(e){case Ue.TGFXLineJoin.Round:return"round";case Ue.TGFXLineJoin.Bevel:return"bevel";default:return"miter"}}static setCanvas(e){nt.canvas=e}static setContext(e){nt.context=e}static isUnicodePropertyEscapeSupported(){try{new RegExp("\\p{L}","u");return!0}catch(e){return!1}}static isEmoji(e){let t;return t=this.isUnicodePropertyEscapeSupported()?/\p{Extended_Pictographic}|[#*0-9]\uFE0F?\u20E3|[\uD83C\uDDE6-\uD83C\uDDFF]/u:/(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/,t.test(e)}static measureDirectly(e){if(void 0===nt.hasMeasureBoundsAPI){const t=e.measureText("x");nt.hasMeasureBoundsAPI=t&&t.actualBoundingBoxAscent>0}return nt.hasMeasureBoundsAPI}fontString(e,t){const r=[];t&&r.push("italic"),e&&r.push("bold"),r.push(`${this.size}px`);const n=pe.concat();return n.unshift(...((e,t="")=>{if(!e)return[];const r=e.split(" ");let n=[];1===r.length?n.push(e):(n.push(r.join("")),n.push(r.join(" ")));const s=n.reduce((e,r)=>(t?(e.push(`"${r} ${t}"`),e.push(`"${r}-${t}"`)):e.push(`"${r}"`),e),[]);return""!==t&&s.push(`"${e}"`),s})(this.fontName,this.fontStyle)),r.push(`${n.join(",")}`),r.join(" ")}getFontMetrics(){if(this.fontMetrics)return this.fontMetrics;const{context:e}=nt;e.font=this.fontString(!1,!1);const t=this.measureText(e,"H"),r=t.actualBoundingBoxAscent,n=this.measureText(e,"x").actualBoundingBoxAscent;return this.fontMetrics={ascent:-t.fontBoundingBoxAscent,descent:t.fontBoundingBoxDescent,xHeight:n,capHeight:r},this.fontMetrics}getBounds(e,t,r){const{context:n}=nt;n.font=this.fontString(t,r);const s=this.measureText(n,e),a={left:Math.floor(-s.actualBoundingBoxLeft),top:Math.floor(-s.actualBoundingBoxAscent),right:Math.ceil(s.actualBoundingBoxRight),bottom:Math.ceil(s.actualBoundingBoxDescent)};return(a.left>=a.right||a.top>=a.bottom)&&(a.left=0,a.top=0,a.right=0,a.bottom=0),a}getAdvance(e){const{context:t}=nt;return t.font=this.fontString(!1,!1),t.measureText(e).width}readPixels(e,t,r,n){const s=t.right-t.left,a=t.bottom-t.top,i=ue(s,a),o=i.getContext("2d",{willReadFrequently:!0});o.clearRect(0,0,s,a),o.font=this.fontString(r,!1),n?(o.lineJoin=nt.getLineJoin(n.join),o.miterLimit=n.miterLimit,o.lineCap=nt.getLineCap(n.cap),o.lineWidth=n.width,o.strokeText(e,-t.left,-t.top)):o.fillText(e,-t.left,-t.top);const{data:l}=o.getImageData(0,0,s,a);return ce(i),0===l.length?null:new Uint8Array(l)}loadCanvas(){nt.canvas||(nt.setCanvas(ue(10,10)),nt.setContext(nt.canvas.getContext("2d",{willReadFrequently:!0})))}measureText(e,t){if(nt.measureDirectly(e))return e.measureText(t);e.canvas.width=1.5*this.size,e.canvas.height=1.5*this.size;const r=[0,this.size];e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,r[0],r[1]);const n=e.getImageData(0,0,e.canvas.width,e.canvas.height),{left:s,top:a,right:i,bottom:o}=Ye(n);let l;e.clearRect(0,0,e.canvas.width,e.canvas.height);const u=this.fontBoundingBoxMap.find(e=>e.key===this.fontName);if(u)l=u.value;else{e.fillText("测",r[0],r[1]);const t=e.getImageData(0,0,e.canvas.width,e.canvas.height);l=Ye(t),this.fontBoundingBoxMap.push({key:this.fontName,value:l}),e.clearRect(0,0,e.canvas.width,e.canvas.height)}return{actualBoundingBoxAscent:r[1]-a,actualBoundingBoxRight:i-r[0],actualBoundingBoxDescent:o-r[1],actualBoundingBoxLeft:r[0]-s,fontBoundingBoxAscent:l.bottom-l.top,fontBoundingBoxDescent:0,width:l.right-l.left}}};let st=nt;st.hasMeasureBoundsAPI=void 0;class at{static readPixels(e,t,r,n){let s=ue(e,t);if(null==s)return null;let a=s.getContext("2d",{willReadFrequently:!0});a.setTransform(1,0,0,1,0,0),n===Ue.TGFXPathFillType.InverseWinding||n===Ue.TGFXPathFillType.InverseEvenOdd?(a.clip(r,n===Ue.TGFXPathFillType.InverseEvenOdd?"evenodd":"nonzero"),a.fillRect(0,0,e,t)):a.fill(r,n===Ue.TGFXPathFillType.EvenOdd?"evenodd":"nonzero");const{data:i}=a.getImageData(0,0,e,t);return ce(s),0===i.length?null:new Uint8Array(i)}}const it=e=>{(e=>{Ue=e})(e),e.module=e,e.ScalerContext=st,e.WebMask=at,e.Matrix=Qe,e.tgfx={...Xe}},ot=e=>{it(e),(e=>{r=e})(e),e.module=e,e.PAGFile=L,e.PAGPlayer=V,e.PAGView=fe,e.PAGFont=ve,e.PAGImage=z,e.PAGLayer=T,e.PAGComposition=S,e.PAGSurface=R,e.PAGTextLayer=Be,e.PAGImageLayer=Ne,e.PAGSolidLayer=We,e.VideoReader=Fe,e.GlobalCanvas=$e,e.BackendContext=J,e.Matrix=v,e.RenderCanvas=Q,e._useSoftwareDecoder=!1,(e=>{e.traceImage=function(e,t){const r=document.createElement("canvas");r.width=e.width,r.height=e.height;const n=r.getContext("2d"),s=new ImageData(new Uint8ClampedArray(t),r.width,r.height);n.putImageData(s,0,0),document.body.appendChild(r)},e.registerSoftwareDecoderFactory=function(t=null){e._registerSoftwareDecoderFactory(t),e._useSof