@vertexvis/viewer 0.13.1 → 0.13.2-canary.10
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/cjs/{browser.esm-31b03292.js → browser.esm-075810bf.js} +1 -1
- package/dist/cjs/{bundle.esm-dc0a8361.js → bundle.esm-618a5fe9.js} +80 -28
- package/dist/cjs/{config-90ee43d5.js → config-fb124bac.js} +2 -2
- package/dist/cjs/{cursors-ad2fd395.js → cursors-d71f6a74.js} +1 -1
- package/dist/cjs/{dom-dd265f48.js → dom-57ef84e9.js} +1 -1
- package/dist/cjs/{entities-aa59890e.js → entities-90f1347a.js} +3 -3
- package/dist/cjs/index.cjs.js +14 -12
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{mapper-f6e6cafe.js → mapper-80ee2957.js} +2 -2
- package/dist/cjs/{markup-fb1553b1.js → markup-7f7de5f2.js} +2 -2
- package/dist/cjs/{measurement-aba1e0e8.js → measurement-f1ae9248.js} +2 -2
- package/dist/cjs/{model-4ec0c36e.js → model-55abd9ab.js} +1 -1
- package/dist/cjs/{overlays-40c6cbc7.js → overlays-68e8eff2.js} +2 -2
- package/dist/cjs/{png-decoder-27d25eed.js → png-decoder-076131d8.js} +1 -1
- package/dist/cjs/{results-bc325974.js → results-e9496869.js} +1 -1
- package/dist/cjs/{scene-d420fd26.js → scene-92728420.js} +188 -90
- package/dist/cjs/{streamAttributes-d6236448.js → streamAttributes-81eb52f2.js} +1508 -43
- package/dist/cjs/{utils-545b1865.js → utils-463cd52e.js} +1 -1
- package/dist/cjs/{utils-f80be307.js → utils-6397efca.js} +1 -1
- package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +8 -7
- package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +20 -15
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +6 -6
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +10 -10
- package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +8 -8
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer.cjs.entry.js +287 -80
- package/dist/cjs/viewer.cjs.js +1 -1
- package/dist/cjs/{viewport-8c39089f.js → viewport-54b1389d.js} +34 -2
- package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +1 -1
- package/dist/collection/components/viewer/viewer.js +68 -4
- package/dist/collection/components/viewer-dom-renderer/renderer2d.js +1 -1
- package/dist/collection/components/viewer-dom-renderer/renderer3d.js +4 -2
- package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js +5 -6
- package/dist/collection/components/viewer-measurement-distance/hitTest.js +9 -4
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +5 -5
- package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js +3 -3
- package/dist/collection/index.js +2 -2
- package/dist/collection/lib/errors.js +8 -1
- package/dist/collection/lib/interactions/index.js +3 -1
- package/dist/collection/lib/interactions/interactionApi.js +4 -25
- package/dist/collection/lib/interactions/interactionApiOrthographic.js +136 -0
- package/dist/collection/lib/interactions/interactionApiPerspective.js +51 -0
- package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +3 -2
- package/dist/collection/lib/mappers/frameStreaming.js +27 -5
- package/dist/collection/lib/rendering/matrices.js +13 -4
- package/dist/collection/lib/rendering/vectors.js +7 -0
- package/dist/collection/lib/scenes/__mocks__/mocks.js +2 -2
- package/dist/collection/lib/scenes/camera.js +163 -83
- package/dist/collection/lib/scenes/mapper.js +3 -2
- package/dist/collection/lib/scenes/scene.js +22 -9
- package/dist/collection/lib/types/clippingPlanes.js +48 -20
- package/dist/collection/lib/types/depthBuffer.js +32 -3
- package/dist/collection/lib/types/frame.js +133 -24
- package/dist/collection/lib/types/frameCamera.js +87 -6
- package/dist/collection/lib/types/viewport.js +34 -2
- package/dist/collection/testing/fixtures.js +28 -15
- package/dist/collection/testing/viewer.js +5 -3
- package/dist/custom-elements/index.js +2135 -283
- package/dist/esm/{browser.esm-59e914f6.js → browser.esm-e72d80ad.js} +1 -1
- package/dist/esm/{bundle.esm-d899b2d5.js → bundle.esm-8ceccb91.js} +80 -29
- package/dist/esm/{config-604c644e.js → config-fb7cd8ff.js} +2 -2
- package/dist/esm/{cursors-a7ec4adb.js → cursors-fc2deed7.js} +1 -1
- package/dist/esm/{dom-780d25be.js → dom-2cd18856.js} +1 -1
- package/dist/esm/{entities-759d97cd.js → entities-78557270.js} +3 -3
- package/dist/esm/index.js +12 -12
- package/dist/esm/index.mjs +12 -12
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.mjs +1 -1
- package/dist/esm/{mapper-4b815e31.js → mapper-da36de17.js} +2 -2
- package/dist/esm/{markup-1d177b4a.js → markup-c313d99c.js} +2 -2
- package/dist/esm/{measurement-12cdbf5c.js → measurement-544b69d5.js} +2 -2
- package/dist/esm/{model-e5a4f00f.js → model-2a34b443.js} +1 -1
- package/dist/esm/{overlays-1919b192.js → overlays-354e275c.js} +2 -2
- package/dist/esm/{png-decoder-3f1fa486.js → png-decoder-07de80d1.js} +1 -1
- package/dist/esm/{results-994bdb50.js → results-4d0c3568.js} +1 -1
- package/dist/esm/{scene-2c2460d5.js → scene-2bfcce74.js} +188 -90
- package/dist/esm/{streamAttributes-d623bb60.js → streamAttributes-d0b384b3.js} +1502 -44
- package/dist/esm/{utils-83a19677.js → utils-3ea0acdd.js} +1 -1
- package/dist/esm/{utils-5e57bf24.js → utils-e0941c61.js} +1 -1
- package/dist/esm/vertex-scene-tree-search_3.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
- package/dist/esm/vertex-scene-tree.entry.js +4 -4
- package/dist/esm/vertex-viewer-dom-element_3.entry.js +8 -7
- package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +3 -3
- package/dist/esm/vertex-viewer-markup-tool.entry.js +4 -4
- package/dist/esm/vertex-viewer-markup.entry.js +4 -4
- package/dist/esm/vertex-viewer-measurement-details.entry.js +3 -3
- package/dist/esm/vertex-viewer-measurement-distance.entry.js +20 -15
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +6 -6
- package/dist/esm/vertex-viewer-measurement-precise.entry.js +10 -10
- package/dist/esm/vertex-viewer-measurement-tool.entry.js +5 -5
- package/dist/esm/vertex-viewer-measurements.entry.js +8 -8
- package/dist/esm/vertex-viewer-view-cube.entry.js +3 -3
- package/dist/esm/vertex-viewer.entry.js +287 -80
- package/dist/esm/viewer.js +1 -1
- package/dist/esm/{viewport-01c886ea.js → viewport-5cc7b128.js} +34 -2
- package/dist/types/components/scene-tree-table-cell/scene-tree-table-cell.d.ts +1 -1
- package/dist/types/components/viewer/viewer.d.ts +8 -0
- package/dist/types/components/viewer-dom-renderer/renderer2d.d.ts +2 -2
- package/dist/types/components/viewer-dom-renderer/renderer3d.d.ts +3 -3
- package/dist/types/components/viewer-dom-renderer/viewer-dom-renderer.d.ts +2 -2
- package/dist/types/components/viewer-measurement-distance/hitTest.d.ts +3 -2
- package/dist/types/components/viewer-measurement-distance/utils.d.ts +2 -2
- package/dist/types/components/viewer-measurement-distance/viewer-measurement-distance.d.ts +2 -2
- package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays-components.d.ts +2 -2
- package/dist/types/components/viewer-measurement-overlays/viewer-measurement-overlays.d.ts +2 -2
- package/dist/types/components.d.ts +15 -7
- package/dist/types/index.d.ts +1 -1
- package/dist/types/lib/errors.d.ts +3 -0
- package/dist/types/lib/interactions/index.d.ts +2 -0
- package/dist/types/lib/interactions/interactionApi.d.ts +34 -26
- package/dist/types/lib/interactions/interactionApiOrthographic.d.ts +35 -0
- package/dist/types/lib/interactions/interactionApiPerspective.d.ts +21 -0
- package/dist/types/lib/mappers/frameStreaming.d.ts +2 -0
- package/dist/types/lib/rendering/vectors.d.ts +2 -0
- package/dist/types/lib/scenes/__mocks__/mocks.d.ts +2 -2
- package/dist/types/lib/scenes/camera.d.ts +101 -38
- package/dist/types/lib/scenes/scene.d.ts +1 -1
- package/dist/types/lib/types/clippingPlanes.d.ts +3 -1
- package/dist/types/lib/types/depthBuffer.d.ts +28 -6
- package/dist/types/lib/types/frame.d.ts +80 -11
- package/dist/types/lib/types/frameCamera.d.ts +22 -3
- package/dist/types/lib/types/viewport.d.ts +24 -4
- package/dist/types/testing/fixtures.d.ts +8 -5
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/{p-f8d01b8a.entry.js → p-0a189e62.entry.js} +1 -1
- package/dist/viewer/{p-e07377fa.entry.js → p-1ca95f9a.entry.js} +1 -1
- package/dist/viewer/{p-d00e9203.js → p-3561d910.js} +1 -1
- package/dist/viewer/p-388a43f7.js +4 -0
- package/dist/viewer/{p-3810c24d.js → p-3f0f83ad.js} +1 -1
- package/dist/viewer/{p-8decee06.entry.js → p-41028d3b.entry.js} +1 -1
- package/dist/viewer/{p-439220c6.js → p-487e054a.js} +1 -1
- package/dist/viewer/p-49d36e94.entry.js +4 -0
- package/dist/viewer/{p-da2f4a56.js → p-5b342e97.js} +1 -1
- package/dist/viewer/p-661f0612.js +18 -0
- package/dist/viewer/{p-364ce21c.js → p-69058178.js} +1 -1
- package/dist/viewer/{p-353cfc7a.entry.js → p-73a5eacc.entry.js} +1 -1
- package/dist/viewer/p-77be081a.js +4 -0
- package/dist/viewer/{p-a0df0e0c.js → p-809d09d9.js} +1 -1
- package/dist/viewer/{p-d90f2f6d.entry.js → p-858bd2c7.entry.js} +1 -1
- package/dist/viewer/{p-25eaab00.entry.js → p-89b66838.entry.js} +1 -1
- package/dist/viewer/p-a93a63a9.js +4 -0
- package/dist/viewer/{p-df292b56.entry.js → p-b043b076.entry.js} +1 -1
- package/dist/viewer/{p-915d95ad.entry.js → p-b0ac6b3c.entry.js} +1 -1
- package/dist/viewer/{p-fec1a8d0.entry.js → p-b7624ff2.entry.js} +1 -1
- package/dist/viewer/{p-f7cb7e59.js → p-b8774c9c.js} +1 -1
- package/dist/viewer/{p-67446e35.js → p-bcb66f97.js} +1 -1
- package/dist/viewer/p-bcde5521.entry.js +4 -0
- package/dist/viewer/{p-7cad9bf4.js → p-d1584404.js} +1 -1
- package/dist/viewer/p-d32b54cb.js +4 -0
- package/dist/viewer/{p-f755af5a.entry.js → p-d3a20af4.entry.js} +1 -1
- package/dist/viewer/{p-c62cb926.entry.js → p-d9f99f4d.entry.js} +1 -1
- package/dist/viewer/p-e38458da.js +4 -0
- package/dist/viewer/{p-301660cf.js → p-e75bba97.js} +2 -2
- package/dist/viewer/{p-6e80f8b0.entry.js → p-ebd55df7.entry.js} +1 -1
- package/dist/viewer/{p-671c113c.entry.js → p-f0411993.entry.js} +1 -1
- package/dist/viewer/{p-2cefb1b0.js → p-fa9a0bed.js} +1 -1
- package/dist/viewer/p-ffdeb08c.js +4 -0
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +8 -8
- package/dist/viewer/p-081e6873.js +0 -4
- package/dist/viewer/p-085e908a.js +0 -4
- package/dist/viewer/p-0aba71fd.js +0 -18
- package/dist/viewer/p-3f6ac74f.js +0 -4
- package/dist/viewer/p-423410be.js +0 -4
- package/dist/viewer/p-432267bc.entry.js +0 -4
- package/dist/viewer/p-4985fad5.js +0 -4
- package/dist/viewer/p-e2297df2.entry.js +0 -4
- package/dist/viewer/p-fe11d694.js +0 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import{c as t,e,g as n}from"./p-661f0612.js";import{c as r}from"./p-112455b1.js";const i=t=>Object.assign(Error(t.message),{name:t.name,stack:t.stack}),a=t=>({__error_marker:"$$error",message:t.message,name:t.name,stack:t.stack});let s,o={deserialize(t){return(e=t)&&"object"==typeof e&&"__error_marker"in e&&"$$error"===e.__error_marker?i(t):t;var e},serialize:t=>t instanceof Error?a(t):t};function h(t){return o.deserialize(t)}function l(t){return o.serialize(t)}function d(){return s||(s=function(){try{throw new Error}catch(t){const e=(""+t.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\/\/[^)\n]+/g);if(e)return(""+e[0]).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\/\/.+)?\/[^/]+(?:\?.*)?$/,"$1")+"/"}return"/"}()),s}const c="undefined"!=typeof navigator&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:4,u=t=>/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(t);function f(t){const e=new Blob([t],{type:"application/javascript"});return URL.createObjectURL(e)}let _;function p(){return _||(_=function(){if("undefined"==typeof Worker)return class{constructor(){throw Error("No web worker implementation available. You might have tried to spawn a worker within a worker in a browser that doesn't support workers in workers.")}};class t extends Worker{constructor(t,e){var n,r;"string"==typeof t&&e&&e._baseURL?t=new URL(t,e._baseURL):"string"==typeof t&&!u(t)&&d().match(/^file:\/\//i)&&(t=new URL(t,d().replace(/\/[^\/]+$/,"/")),(null===(n=null==e?void 0:e.CORSWorkaround)||void 0===n||n)&&(t=f(`importScripts(${JSON.stringify(t)});`))),"string"==typeof t&&u(t)&&(null===(r=null==e?void 0:e.CORSWorkaround)||void 0===r||r)&&(t=f(`importScripts(${JSON.stringify(t)});`)),super(t,e)}}class e extends t{constructor(t,e){super(window.URL.createObjectURL(t),e)}static fromText(t,n){const r=new window.Blob([t],{type:"text/javascript"});return new e(r,n)}}return{blob:e,default:t}}()),_}var w=1e3,m=60*w,g=60*m,b=24*g,y=function(t,e){e=e||{};var n=typeof t;if("string"===n&&t.length>0)return function(t){if(!((t=String(t)).length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*n;case"weeks":case"week":case"w":return 6048e5*n;case"days":case"day":case"d":return n*b;case"hours":case"hour":case"hrs":case"hr":case"h":return n*g;case"minutes":case"minute":case"mins":case"min":case"m":return n*m;case"seconds":case"second":case"secs":case"sec":case"s":return n*w;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}(t);if("number"===n&&isFinite(t))return e.long?function(t){var e=Math.abs(t);return e>=b?v(t,e,b,"day"):e>=g?v(t,e,g,"hour"):e>=m?v(t,e,m,"minute"):e>=w?v(t,e,w,"second"):t+" ms"}(t):function(t){var e=Math.abs(t);return e>=b?Math.round(t/b)+"d":e>=g?Math.round(t/g)+"h":e>=m?Math.round(t/m)+"m":e>=w?Math.round(t/w)+"s":t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function v(t,e,n,r){var i=e>=1.5*n;return Math.round(t/n)+" "+r+(i?"s":"")}var k=r((function(t,e){e.formatArgs=function(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;e.splice(1,0,n,"color: inherit");let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,(t=>{"%%"!==t&&(r++,"%c"===t&&(i=r))})),e.splice(i,0,n)},e.save=function(t){try{t?e.storage.setItem("debug",t):e.storage.removeItem("debug")}catch(t){}},e.load=function(){let t;try{t=e.storage.getItem("debug")}catch(t){}return!t&&"undefined"!=typeof process&&"env"in process&&(t=process.env.DEBUG),t},e.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},e.storage=function(){try{return localStorage}catch(t){}}(),e.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.log=console.debug||console.log||(()=>{}),t.exports=function(t){function e(t){let r,i,a,s=null;function o(...t){if(!o.enabled)return;const n=o,i=Number(new Date);n.diff=i-(r||i),n.prev=r,n.curr=i,r=i,t[0]=e.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");let a=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,((r,i)=>{if("%%"===r)return"%";a++;const s=e.formatters[i];return"function"==typeof s&&(r=s.call(n,t[a]),t.splice(a,1),a--),r})),e.formatArgs.call(n,t),(n.log||e.log).apply(n,t)}return o.namespace=t,o.useColors=e.useColors(),o.color=e.selectColor(t),o.extend=n,o.destroy=e.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(i!==e.namespaces&&(i=e.namespaces,a=e.enabled(t)),a),set:t=>{s=t}}),"function"==typeof e.init&&e.init(o),o}function n(t,n){const r=e(this.namespace+(void 0===n?":":n)+t);return r.log=this.log,r}function r(t){return t.toString().substring(2,t.toString().length-2).replace(/\.\*\?$/,"*")}return e.debug=e,e.default=e,e.coerce=function(t){return t instanceof Error?t.stack||t.message:t},e.disable=function(){const t=[...e.names.map(r),...e.skips.map(r).map((t=>"-"+t))].join(",");return e.enable(""),t},e.enable=function(t){let n;e.save(t),e.namespaces=t,e.names=[],e.skips=[];const r=("string"==typeof t?t:"").split(/[\s,]+/),i=r.length;for(n=0;n<i;n++)r[n]&&("-"===(t=r[n].replace(/\*/g,".*?"))[0]?e.skips.push(new RegExp("^"+t.substr(1)+"$")):e.names.push(new RegExp("^"+t+"$")))},e.enabled=function(t){if("*"===t[t.length-1])return!0;let n,r;for(n=0,r=e.skips.length;n<r;n++)if(e.skips[n].test(t))return!1;for(n=0,r=e.names.length;n<r;n++)if(e.names[n].test(t))return!0;return!1},e.humanize=y,e.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(t).forEach((n=>{e[n]=t[n]})),e.names=[],e.skips=[],e.formatters={},e.selectColor=function(t){let n=0;for(let e=0;e<t.length;e++)n=(n<<5)-n+t.charCodeAt(e),n|=0;return e.colors[Math.abs(n)%e.colors.length]},e.enable(e.load()),e}(e);const{formatters:n}=t.exports;n.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}));const E=()=>"function"==typeof Symbol,A=t=>E()&&Boolean(Symbol[t]),x=t=>A(t)?Symbol[t]:"@@"+t;A("asyncIterator")||(Symbol.asyncIterator=Symbol.asyncIterator||Symbol.for("Symbol.asyncIterator"));const C=x("iterator"),U=x("observable"),R=x("species");function T(t,e){const n=t[e];if(null!=n){if("function"!=typeof n)throw new TypeError(n+" is not a function");return n}}function z(t){let e=t.constructor;return void 0!==e&&(e=e[R],null===e&&(e=void 0)),void 0!==e?e:Z}function O(t){O.log?O.log(t):setTimeout((()=>{throw t}),0)}function S(t){Promise.resolve().then((()=>{try{t()}catch(t){O(t)}}))}function F(t){const e=t._cleanup;if(void 0!==e&&(t._cleanup=void 0,e))try{if("function"==typeof e)e();else{const t=T(e,"unsubscribe");t&&t.call(e)}}catch(t){O(t)}}function N(t){t._observer=void 0,t._queue=void 0,t._state="closed"}function I(t,e,n){t._state="running";const r=t._observer;try{const i=r?T(r,e):void 0;switch(e){case"next":i&&i.call(r,n);break;case"error":if(N(t),!i)throw n;i.call(r,n);break;case"complete":N(t),i&&i.call(r)}}catch(t){O(t)}"closed"===t._state?F(t):"running"===t._state&&(t._state="ready")}function L(t,e,n){if("closed"!==t._state)return"buffering"===t._state?(t._queue=t._queue||[],void t._queue.push({type:e,value:n})):"ready"!==t._state?(t._state="buffering",t._queue=[{type:e,value:n}],void S((()=>function(t){const e=t._queue;if(e){t._queue=void 0,t._state="ready";for(const n of e)if(I(t,n.type,n.value),"closed"===t._state)break}}(t)))):void I(t,e,n)}class D{constructor(t,e){this._cleanup=void 0,this._observer=t,this._queue=void 0,this._state="initializing";const n=new B(this);try{this._cleanup=e.call(void 0,n)}catch(t){n.error(t)}"initializing"===this._state&&(this._state="ready")}get closed(){return"closed"===this._state}unsubscribe(){"closed"!==this._state&&(N(this),F(this))}}class B{constructor(t){this._subscription=t}get closed(){return"closed"===this._subscription._state}next(t){L(this._subscription,"next",t)}error(t){L(this._subscription,"error",t)}complete(){L(this._subscription,"complete")}}class Z{constructor(t){if(!(this instanceof Z))throw new TypeError("Observable cannot be called as a function");if("function"!=typeof t)throw new TypeError("Observable initializer must be a function");this._subscriber=t}subscribe(t,e,n){return"object"==typeof t&&null!==t||(t={next:t,error:e,complete:n}),new D(t,this._subscriber)}pipe(t,...e){let n=this;for(const r of[t,...e])n=r(n);return n}tap(t,e,n){const r="object"!=typeof t||null===t?{next:t,error:e,complete:n}:t;return new Z((t=>this.subscribe({next(e){r.next&&r.next(e),t.next(e)},error(e){r.error&&r.error(e),t.error(e)},complete(){r.complete&&r.complete(),t.complete()},start(t){r.start&&r.start(t)}})))}forEach(t){return new Promise(((e,n)=>{if("function"!=typeof t)return void n(new TypeError(t+" is not a function"));function r(){i.unsubscribe(),e(void 0)}const i=this.subscribe({next(e){try{t(e,r)}catch(t){n(t),i.unsubscribe()}},error(t){n(t)},complete(){e(void 0)}})}))}map(t){if("function"!=typeof t)throw new TypeError(t+" is not a function");return new(z(this))((e=>this.subscribe({next(n){let r=n;try{r=t(n)}catch(t){return e.error(t)}e.next(r)},error(t){e.error(t)},complete(){e.complete()}})))}filter(t){if("function"!=typeof t)throw new TypeError(t+" is not a function");return new(z(this))((e=>this.subscribe({next(n){try{if(!t(n))return}catch(t){return e.error(t)}e.next(n)},error(t){e.error(t)},complete(){e.complete()}})))}reduce(t,e){if("function"!=typeof t)throw new TypeError(t+" is not a function");const n=z(this),r=arguments.length>1;let i=!1,a=e;return new n((e=>this.subscribe({next(n){const s=!i;if(i=!0,!s||r)try{a=t(a,n)}catch(t){return e.error(t)}else a=n},error(t){e.error(t)},complete(){if(!i&&!r)return e.error(new TypeError("Cannot reduce an empty sequence"));e.next(a),e.complete()}})))}concat(...t){const e=z(this);return new e((n=>{let r,i=0;return function a(s){r=s.subscribe({next(t){n.next(t)},error(t){n.error(t)},complete(){i===t.length?(r=void 0,n.complete()):a(e.from(t[i++]))}})}(this),()=>{r&&(r.unsubscribe(),r=void 0)}}))}flatMap(t){if("function"!=typeof t)throw new TypeError(t+" is not a function");const e=z(this);return new e((n=>{const r=[],i=this.subscribe({next(i){let s;if(t)try{s=t(i)}catch(t){return n.error(t)}else s=i;const o=e.from(s).subscribe({next(t){n.next(t)},error(t){n.error(t)},complete(){const t=r.indexOf(o);t>=0&&r.splice(t,1),a()}});r.push(o)},error(t){n.error(t)},complete(){a()}});function a(){i.closed&&0===r.length&&n.complete()}return()=>{r.forEach((t=>t.unsubscribe())),i.unsubscribe()}}))}[U](){return this}static from(t){const e="function"==typeof this?this:Z;if(null==t)throw new TypeError(t+" is not an object");const n=T(t,U);if(n){const r=n.call(t);if(Object(r)!==r)throw new TypeError(r+" is not an object");return function(t){return t instanceof Z}(r)&&r.constructor===e?r:new e((t=>r.subscribe(t)))}if(A("iterator")){const n=T(t,C);if(n)return new e((e=>{S((()=>{if(!e.closed){for(const r of n.call(t))if(e.next(r),e.closed)return;e.complete()}}))}))}if(Array.isArray(t))return new e((e=>{S((()=>{if(!e.closed){for(const n of t)if(e.next(n),e.closed)return;e.complete()}}))}));throw new TypeError(t+" is not observable")}static of(...t){return new("function"==typeof this?this:Z)((e=>{S((()=>{if(!e.closed){for(const n of t)if(e.next(n),e.closed)return;e.complete()}}))}))}static get[R](){return this}}E()&&Object.defineProperty(Z,Symbol("extensions"),{value:{symbol:U,hostReportError:O},configurable:!0});class P extends Z{constructor(){super((t=>(this._observers.add(t),()=>this._observers.delete(t)))),this._observers=new Set}next(t){for(const e of this._observers)e.next(t)}error(t){for(const e of this._observers)e.error(t)}complete(){for(const t of this._observers)t.complete()}}function M(t){const e=new P;let n,r=0;return new Z((i=>{n||(n=t.subscribe(e));const a=e.subscribe(i);return r++,()=>{r--,a.unsubscribe(),0===r&&(function(t){"function"==typeof t?t():t&&"function"==typeof t.unsubscribe&&t.unsubscribe()}(n),n=void 0)}}))}function j(t){return Promise.all(t.map((t=>{const e=t=>({status:"fulfilled",value:t}),n=t=>({status:"rejected",reason:t}),r=Promise.resolve(t);try{return r.then(e,n)}catch(t){return Promise.reject(t)}})))}var W;!function(t){t.initialized="initialized",t.taskCanceled="taskCanceled",t.taskCompleted="taskCompleted",t.taskFailed="taskFailed",t.taskQueued="taskQueued",t.taskQueueDrained="taskQueueDrained",t.taskStart="taskStart",t.terminated="terminated"}(W||(W={}));const H=Symbol("thread.errors"),$=Symbol("thread.events"),K=Symbol("thread.terminate"),G=Symbol("thread.transferable"),Y=Symbol("thread.worker");const Q=t=>t[K]();var X=function(t,e,n,r){return new(n||(n=Promise))((function(i,a){function s(t){try{h(r.next(t))}catch(t){a(t)}}function o(t){try{h(r.throw(t))}catch(t){a(t)}}function h(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,o)}h((r=r.apply(t,e||[])).next())}))};let q=1;class J{constructor(t,e){this.eventSubject=new P,this.initErrors=[],this.isClosing=!1,this.nextTaskID=1,this.taskQueue=[];const n="number"==typeof e?{size:e}:e||{},{size:r=c}=n;var i;this.debug=k(`threads:pool:${i=n.name||String(q++),i.replace(/\W/g," ").trim().replace(/\s+/g,"-")}`),this.options=n,this.workers=function(t,e){return function(t){const e=[];for(let n=0;n<t;n++)e.push(n);return e}(e).map((()=>({init:t(),runningTasks:[]})))}(t,r),this.eventObservable=M(Z.from(this.eventSubject)),Promise.all(this.workers.map((t=>t.init))).then((()=>this.eventSubject.next({type:W.initialized,size:this.workers.length})),(t=>{this.debug("Error while initializing pool worker:",t),this.eventSubject.error(t),this.initErrors.push(t)}))}findIdlingWorker(){const{concurrency:t=1}=this.options;return this.workers.find((e=>e.runningTasks.length<t))}runPoolTask(t,e){return X(this,void 0,void 0,(function*(){const n=this.workers.indexOf(t)+1;this.debug(`Running task #${e.id} on worker #${n}...`),this.eventSubject.next({type:W.taskStart,taskID:e.id,workerID:n});try{const r=yield e.run(yield t.init);this.debug(`Task #${e.id} completed successfully`),this.eventSubject.next({type:W.taskCompleted,returnValue:r,taskID:e.id,workerID:n})}catch(t){this.debug(`Task #${e.id} failed`),this.eventSubject.next({type:W.taskFailed,taskID:e.id,error:t,workerID:n})}}))}run(t,e){return X(this,void 0,void 0,(function*(){const n=(()=>X(this,void 0,void 0,(function*(){yield new Promise((t=>setTimeout(t,0)));try{yield this.runPoolTask(t,e)}finally{t.runningTasks=t.runningTasks.filter((t=>t!==n)),this.isClosing||this.scheduleWork()}})))();t.runningTasks.push(n)}))}scheduleWork(){this.debug("Attempt de-queueing a task in order to run it...");const t=this.findIdlingWorker();if(!t)return;const e=this.taskQueue.shift();if(!e)return this.debug("Task queue is empty"),void this.eventSubject.next({type:W.taskQueueDrained});this.run(t,e)}taskCompletion(t){return new Promise(((e,n)=>{const r=this.events().subscribe((i=>{i.type===W.taskCompleted&&i.taskID===t?(r.unsubscribe(),e(i.returnValue)):i.type===W.taskFailed&&i.taskID===t?(r.unsubscribe(),n(i.error)):i.type===W.terminated&&(r.unsubscribe(),n(Error("Pool has been terminated before task was run.")))}))}))}settled(t=!1){return X(this,void 0,void 0,(function*(){const e=()=>{return t=t=>t.runningTasks,this.workers.reduce(((e,n)=>[...e,...t(n)]),[]);var t},n=[],r=this.eventObservable.subscribe((t=>{t.type===W.taskFailed&&n.push(t.error)}));return this.initErrors.length>0?Promise.reject(this.initErrors[0]):t&&0===this.taskQueue.length?(yield j(e()),n):(yield new Promise(((t,e)=>{const n=this.eventObservable.subscribe({next(e){e.type===W.taskQueueDrained&&(n.unsubscribe(),t(void 0))},error:e})})),yield j(e()),r.unsubscribe(),n)}))}completed(t=!1){return X(this,void 0,void 0,(function*(){const e=this.settled(t),n=new Promise(((t,n)=>{const r=this.eventObservable.subscribe({next(i){i.type===W.taskQueueDrained?(r.unsubscribe(),t(e)):i.type===W.taskFailed&&(r.unsubscribe(),n(i.error))},error:n})})),r=yield Promise.race([e,n]);if(r.length>0)throw r[0]}))}events(){return this.eventObservable}queue(t){const{maxQueuedJobs:e=1/0}=this.options;if(this.isClosing)throw Error("Cannot schedule pool tasks after terminate() has been called.");if(this.initErrors.length>0)throw this.initErrors[0];const n=this.nextTaskID++,r=this.taskCompletion(n);r.catch((t=>{this.debug(`Task #${n} errored:`,t)}));const i={id:n,run:t,cancel:()=>{-1!==this.taskQueue.indexOf(i)&&(this.taskQueue=this.taskQueue.filter((t=>t!==i)),this.eventSubject.next({type:W.taskCanceled,taskID:i.id}))},then:r.then.bind(r)};if(this.taskQueue.length>=e)throw Error("Maximum number of pool tasks queued. Refusing to queue another one.\nThis usually happens for one of two reasons: We are either at peak workload right now or some tasks just won't finish, thus blocking the pool.");return this.debug(`Queueing task #${i.id}...`),this.taskQueue.push(i),this.eventSubject.next({type:W.taskQueued,taskID:i.id}),this.scheduleWork(),i}terminate(t){return X(this,void 0,void 0,(function*(){this.isClosing=!0,t||(yield this.completed(!0)),this.eventSubject.next({type:W.terminated,remainingQueue:[...this.taskQueue]}),this.eventSubject.complete(),yield Promise.all(this.workers.map((t=>X(this,void 0,void 0,(function*(){return Q(yield t.init)})))))}))}}function V(t,e){return new J(t,e)}J.EventType=W,V.EventType=W;const tt=V,et=()=>{};var nt;!function(t){t.internalError="internalError",t.message="message",t.termination="termination"}(nt||(nt={}));const rt=()=>{},it=t=>t,at=t=>Promise.resolve().then(t);function st(t){throw t}class ot extends Z{constructor(t){super((e=>{const n=this,r=Object.assign(Object.assign({},e),{complete(){e.complete(),n.onCompletion()},error(t){e.error(t),n.onError(t)},next(t){e.next(t),n.onNext(t)}});try{return this.initHasRun=!0,t(r)}catch(t){r.error(t)}})),this.initHasRun=!1,this.fulfillmentCallbacks=[],this.rejectionCallbacks=[],this.firstValueSet=!1,this.state="pending"}onNext(t){this.firstValueSet||(this.firstValue=t,this.firstValueSet=!0)}onError(t){this.state="rejected",this.rejection=t;for(const e of this.rejectionCallbacks)at((()=>e(t)))}onCompletion(){this.state="fulfilled";for(const t of this.fulfillmentCallbacks)at((()=>t(this.firstValue)))}then(t,e){const n=t||it,r=e||st;let i=!1;return new Promise(((t,e)=>{const a=n=>{if(!i){i=!0;try{t(r(n))}catch(t){e(t)}}};return this.initHasRun||this.subscribe({error:a}),"fulfilled"===this.state?t(n(this.firstValue)):"rejected"===this.state?(i=!0,t(r(this.rejection))):(this.fulfillmentCallbacks.push((e=>{try{t(n(e))}catch(t){a(t)}})),void this.rejectionCallbacks.push(a))}))}catch(t){return this.then(void 0,t)}finally(t){const e=t||rt;return this.then((t=>(e(),t)),(()=>e()))}static from(t){return function(t){return t&&"function"==typeof t.then}(t)?new ot((e=>{t.then((t=>{e.next(t),e.complete()}),(t=>{e.error(t)}))})):super.from(t)}}function ht(t,e){if(!e){if(!(n=t)||"object"!=typeof n)throw Error();e=[t]}var n;return{[G]:!0,send:t,transferables:e}}var lt,dt;!function(t){t.cancel="cancel",t.run="run"}(lt||(lt={})),function(t){t.error="error",t.init="init",t.result="result",t.running="running",t.uncaughtError="uncaughtError"}(dt||(dt={}));const ct=k("threads:master:messages");let ut=1;function ft(t,e){return(...n)=>{const r=ut++,{args:i,transferables:a}=function(t){if(0===t.length)return{args:[],transferables:[]};const e=[],n=[];for(const i of t)(r=i)&&"object"==typeof r&&r[G]?(e.push(l(i.send)),n.push(...i.transferables)):e.push(l(i));var r,i;return{args:e,transferables:0===n.length?n:(i=n,Array.from(new Set(i)))}}(n),s={type:lt.run,uid:r,method:e,args:i};ct("Sending command to run function to worker:",s);try{t.postMessage(s,a)}catch(t){return ot.from(Promise.reject(t))}return ot.from(M(function(t,e){return new Z((n=>{let r;const i=a=>{var s;if(ct("Message from worker:",a.data),a.data&&a.data.uid===e)if((s=a.data)&&s.type===dt.running)r=a.data.resultType;else if((t=>t&&t.type===dt.result)(a.data))"promise"===r?(void 0!==a.data.payload&&n.next(h(a.data.payload)),n.complete(),t.removeEventListener("message",i)):(a.data.payload&&n.next(h(a.data.payload)),a.data.complete&&(n.complete(),t.removeEventListener("message",i)));else if((t=>t&&t.type===dt.error)(a.data)){const e=h(a.data.error);n.error(e),t.removeEventListener("message",i)}};return t.addEventListener("message",i),()=>{"observable"!==r&&r||t.postMessage({type:lt.cancel,uid:e}),t.removeEventListener("message",i)}}))}(t,r)))}}var _t=function(t,e,n,r){return new(n||(n=Promise))((function(i,a){function s(t){try{h(r.next(t))}catch(t){a(t)}}function o(t){try{h(r.throw(t))}catch(t){a(t)}}function h(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,o)}h((r=r.apply(t,e||[])).next())}))};const pt=k("threads:master:messages"),wt=k("threads:master:spawn"),mt=k("threads:master:thread-utils"),gt="undefined"!=typeof process&&process.env.THREADS_WORKER_INIT_TIMEOUT?Number.parseInt(process.env.THREADS_WORKER_INIT_TIMEOUT,10):1e4;function bt(t,e,n,r){const i=n.filter((t=>t.type===nt.internalError)).map((t=>t.error));return Object.assign(t,{[H]:i,[$]:n,[K]:r,[Y]:e})}function yt(t,e){return _t(this,void 0,void 0,(function*(){wt("Initializing new thread");const n=e&&e.timeout?e.timeout:gt,r=(yield function(t,e,n){return _t(this,void 0,void 0,(function*(){let r;const i=new Promise(((t,i)=>{r=setTimeout((()=>i(Error(n))),e)})),a=yield Promise.race([t,i]);return clearTimeout(r),a}))}(function(t){return new Promise(((e,n)=>{const r=i=>{var a;pt("Message from worker before finishing initialization:",i.data),(a=i.data)&&"init"===a.type?(t.removeEventListener("message",r),e(i.data)):(t=>t&&"uncaughtError"===t.type)(i.data)&&(t.removeEventListener("message",r),n(h(i.data.error)))};t.addEventListener("message",r)}))}(t),n,`Timeout: Did not receive an init message from worker after ${n}ms. Make sure the worker calls expose().`)).exposed,{termination:i,terminate:a}=function(t){const[e,n]=function(){let t,e=!1,n=et;return[new Promise((r=>{e?r(t):n=r})),r=>{e=!0,t=r,n(t)}]}();return{terminate:()=>_t(this,void 0,void 0,(function*(){mt("Terminating worker"),yield t.terminate(),n()})),termination:e}}(t),s=function(t,e){return new Z((n=>{const r=t=>{n.next({type:nt.message,data:t.data})},i=t=>{mt("Unhandled promise rejection event in thread:",t);const e={type:nt.internalError,error:Error(t.reason)};n.next(e)};t.addEventListener("message",r),t.addEventListener("unhandledrejection",i),e.then((()=>{const e={type:nt.termination};t.removeEventListener("message",r),t.removeEventListener("unhandledrejection",i),n.next(e),n.complete()}))}))}(t,i);if("function"===r.type)return bt(ft(t),t,s,a);if("module"===r.type)return bt(function(t,e){const n={};for(const r of e)n[r]=ft(t,r);return n}(t,r.methods),t,s,a);throw Error(`Worker init message states unexpected type of expose(): ${r.type}`)}))}const vt=p().blob;p();var kt=function(){function r(){this.threads=[],this.pools=[]}return r.prototype.addThread=function(t){this.threads.push(t)},r.prototype.addPool=function(t){this.pools.push(t)},r.prototype.terminate=function(r){return void 0===r&&(r=!1),t(this,void 0,void 0,(function(){return e(this,(function(t){switch(t.label){case 0:return[4,Promise.all(n(n([],this.threads.map((function(t){return Q(t)}))),this.pools.map((function(t){return t.terminate(r)}))))];case 1:return t.sent(),[2]}}))}))},r}(),Et=function(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();function At(t,e){var n=Et[e];return null!=n&&t instanceof n}function xt(t){return At(t,"ArrayBuffer")||At(t,"MessagePort")||At(t,"ImageBitmap")||At(t,"OffscreenCanvas")}function Ct(t){return xt(t)?ht(t):null!=t&&"object"==typeof t?ht(t,Ut(t)):t}function Ut(t){if(xt(t))return[t];if("object"==typeof t){if(Array.isArray(t)){var e=[];return t.forEach((function(t){return e.push.apply(e,Ut(t))})),e}return function(t){return At(t,"Int8Array")||At(t,"Uint8Array")||At(t,"Uint8ClampedArray")||At(t,"Int16Array")||At(t,"Uint16Array")||At(t,"Int32Array")||At(t,"Uint32Array")||At(t,"Float32Array")||At(t,"Float64Array")||At(t,"BigInt64Array")||At(t,"BigUint64Array")}(t)?[t.buffer]:null!=t?Object.values(t).reduce((function(t,e){return t.push.apply(t,Ut(e)),t}),[]):[]}return[]}function Rt(){return new kt}function Tt(){return vt.fromText('!function(){"use strict";\n/*! *****************************************************************************\n Copyright (c) Microsoft Corporation.\n\n Permission to use, copy, modify, and/or distribute this software for any\n purpose with or without fee is hereby granted.\n\n THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n PERFORMANCE OF THIS SOFTWARE.\n ***************************************************************************** */function t(t,e,n,i){return new(n||(n=Promise))((function(r,a){function s(t){try{l(i.next(t))}catch(t){a(t)}}function o(t){try{l(i.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,o)}l((i=i.apply(t,e||[])).next())}))}function e(t,e){var n,i,r,a,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,i&&(r=2&a[0]?i.return:a[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,a[1])).done)return r;switch(i=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,i=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(r=s.trys,(r=r.length>0&&r[r.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){s.label=a[1];break}if(6===a[0]&&s.label<r[1]){s.label=r[1],r=a;break}if(r&&s.label<r[2]){s.label=r[2],s.ops.push(a);break}r[2]&&s.ops.pop(),s.trys.pop();continue}a=e.call(t,s)}catch(t){a=[6,t],i=0}finally{n=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}}const n={deserialize:t=>Object.assign(Error(t.message),{name:t.name,stack:t.stack}),serialize:t=>({__error_marker:"$$error",message:t.message,name:t.name,stack:t.stack})};let i={deserialize(t){return(e=t)&&"object"==typeof e&&"__error_marker"in e&&"$$error"===e.__error_marker?n.deserialize(t):t;var e},serialize:t=>t instanceof Error?n.serialize(t):t};function r(t){return i.deserialize(t)}function a(t){return i.serialize(t)}const s=Symbol("thread.transferable");function o(t,e){if(!e){if(!(n=t)||"object"!=typeof n)throw Error();e=[t]}var n;return{[s]:!0,send:t,transferables:e}}var l,h;!function(t){t.cancel="cancel",t.run="run"}(l||(l={})),function(t){t.error="error",t.init="init",t.result="result",t.running="running",t.uncaughtError="uncaughtError"}(h||(h={}));var d=function(){const t="undefined"!=typeof self&&"undefined"!=typeof Window&&self instanceof Window;return!("undefined"==typeof self||!self.postMessage||t)},f=function(t,e){self.postMessage(t,e)},c=function(t){const e=e=>{t(e.data)};return self.addEventListener("message",e),()=>{self.removeEventListener("message",e)}},u=function(t,e,n,i){return new(n||(n=Promise))((function(r,a){function s(t){try{l(i.next(t))}catch(t){a(t)}}function o(t){try{l(i.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,o)}l((i=i.apply(t,e||[])).next())}))};let _=!1;const p=new Map,w=t=>t&&t.type===l.run,b=t=>{return!!(e=t)&&("symbol"==typeof Symbol.observable&&"function"==typeof e[Symbol.observable]?e===e[Symbol.observable]():"function"==typeof e["@@observable"]&&e===e["@@observable"]())||function(t){return t&&"object"==typeof t&&"function"==typeof t.subscribe}(t);var e};function g(t){return function(t){return t&&"object"==typeof t&&t[s]}(t)?{payload:t.send,transferables:t.transferables}:{payload:t,transferables:void 0}}function m(t,e){const{payload:n,transferables:i}=g(e),r={type:h.error,uid:t,error:a(n)};f(r,i)}function y(t,e,n){const{payload:i,transferables:r}=g(n),a={type:h.result,uid:t,complete:!!e||void 0,payload:i};f(a,r)}function k(t){try{const e={type:h.uncaughtError,error:a(t)};f(e)}catch(e){console.error("Not reporting uncaught error back to master thread as it occured while reporting an uncaught error already.Latest error:",e,"Original error:",t)}}function v(t,e,n){return u(this,void 0,void 0,(function*(){let i;try{i=e(...n)}catch(e){return m(t,e)}const r=b(i)?"observable":"promise";if(function(t,e){const n={type:h.running,uid:t,resultType:e};f(n)}(t,r),b(i)){const e=i.subscribe((e=>y(t,!1,a(e))),(e=>{m(t,a(e)),p.delete(t)}),(()=>{y(t,!0),p.delete(t)}));p.set(t,e)}else try{const e=yield i;y(t,!0,a(e))}catch(e){m(t,a(e))}}))}function E(t){if(!d())throw Error("expose() called in the master thread.");if(_)throw Error("expose() called more than once. This is not possible. Pass an object to expose() if you want to expose multiple functions.");if(_=!0,"function"==typeof t)c((e=>{w(e)&&!e.method&&v(e.uid,t,e.args.map(r))})),function(){const t={type:h.init,exposed:{type:"function"}};f(t)}();else{if("object"!=typeof t||!t)throw Error(`Invalid argument passed to expose(). Expected a function or an object, got: ${t}`);c((e=>{w(e)&&e.method&&v(e.uid,t[e.method],e.args.map(r))}));!function(t){const e={type:h.init,exposed:{type:"module",methods:t}};f(e)}(Object.keys(t).filter((e=>"function"==typeof t[e])))}c((t=>{if((e=t)&&e.type===l.cancel){const e=t.uid,n=p.get(e);n&&(n.unsubscribe(),p.delete(e))}var e}))}"undefined"!=typeof self&&"function"==typeof self.addEventListener&&d()&&(self.addEventListener("error",(t=>{setTimeout((()=>k(t.error||t)),250)})),self.addEventListener("unhandledrejection",(t=>{const e=t.reason;e&&"string"==typeof e.message&&setTimeout((()=>k(e)),250)}))),"undefined"!=typeof process&&"function"==typeof process.on&&d()&&(process.on("uncaughtException",(t=>{setTimeout((()=>k(t)),250)})),process.on("unhandledRejection",(t=>{t&&"string"==typeof t.message&&setTimeout((()=>k(t)),250)})));var A=function(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();function x(t,e){var n=A[e];return null!=n&&t instanceof n}function U(t){return x(t,"ArrayBuffer")||x(t,"MessagePort")||x(t,"ImageBitmap")||x(t,"OffscreenCanvas")}function z(t){return U(t)?o(t):null!=t&&"object"==typeof t?o(t,R(t)):t}function R(t){if(U(t))return[t];if("object"==typeof t){if(Array.isArray(t)){var e=[];return t.forEach((function(t){return e.push.apply(e,R(t))})),e}return function(t){return x(t,"Int8Array")||x(t,"Uint8Array")||x(t,"Uint8ClampedArray")||x(t,"Int16Array")||x(t,"Uint16Array")||x(t,"Int32Array")||x(t,"Uint32Array")||x(t,"Float32Array")||x(t,"Float64Array")||x(t,"BigInt64Array")||x(t,"BigUint64Array")}(t)?[t.buffer]:null!=t?Object.values(t).reduce((function(t,e){return t.push.apply(t,R(e)),t}),[]):[]}return[]}!function(t){if(t.TextEncoder&&t.TextDecoder)return!1;function e(t="utf-8"){if("utf-8"!==t)throw new RangeError(`Failed to construct \'TextEncoder\': The encoding label provided (\'${t}\') is invalid.`)}function n(t="utf-8",e={fatal:!1}){if("utf-8"!==t)throw new RangeError(`Failed to construct \'TextDecoder\': The encoding label provided (\'${t}\') is invalid.`);if(e.fatal)throw new Error("Failed to construct \'TextDecoder\': the \'fatal\' option is unsupported.")}Object.defineProperty(e.prototype,"encoding",{value:"utf-8"}),e.prototype.encode=function(t,e={stream:!1}){if(e.stream)throw new Error("Failed to encode: the \'stream\' option is unsupported.");let n=0;const i=t.length;let r=0,a=Math.max(32,i+(i>>1)+7),s=new Uint8Array(a>>3<<3);for(;n<i;){let e=t.charCodeAt(n++);if(e>=55296&&e<=56319){if(n<i){const i=t.charCodeAt(n);56320==(64512&i)&&(++n,e=((1023&e)<<10)+(1023&i)+65536)}if(e>=55296&&e<=56319)continue}if(r+4>s.length){a+=8,a*=1+n/t.length*2,a=a>>3<<3;const e=new Uint8Array(a);e.set(s),s=e}if(0!=(4294967168&e)){if(0==(4294965248&e))s[r++]=e>>6&31|192;else if(0==(4294901760&e))s[r++]=e>>12&15|224,s[r++]=e>>6&63|128;else{if(0!=(4292870144&e))continue;s[r++]=e>>18&7|240,s[r++]=e>>12&63|128,s[r++]=e>>6&63|128}s[r++]=63&e|128}else s[r++]=e}return s.slice(0,r)},Object.defineProperty(n.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(n.prototype,"fatal",{value:!1}),Object.defineProperty(n.prototype,"ignoreBOM",{value:!1}),n.prototype.decode=function(t,e={stream:!1}){if(e.stream)throw new Error("Failed to decode: the \'stream\' option is unsupported.");const n=new Uint8Array(t);let i=0;const r=n.length,a=[];for(;i<r;){const t=n[i++];if(0===t)break;if(0==(128&t))a.push(t);else if(192==(224&t)){const e=63&n[i++];a.push((31&t)<<6|e)}else if(224==(240&t)){const e=63&n[i++],r=63&n[i++];a.push((31&t)<<12|e<<6|r)}else if(240==(248&t)){let e=(7&t)<<18|(63&n[i++])<<12|(63&n[i++])<<6|63&n[i++];e>65535&&(e-=65536,a.push(e>>>10&1023|55296),e=56320|1023&e),a.push(e)}}return String.fromCharCode.apply(null,a)},t.TextEncoder=e,t.TextDecoder=n}("undefined"!=typeof window?window:"undefined"!=typeof self?self:void 0);const L=new TextDecoder("utf-8");const T=new TextEncoder;class N{constructor(t=8192,e={}){let n=!1;"number"==typeof t?t=new ArrayBuffer(t):(n=!0,this.lastWrittenByte=t.byteLength);const i=e.offset?e.offset>>>0:0,r=t.byteLength-i;let a=i;(ArrayBuffer.isView(t)||t instanceof N)&&(t.byteLength!==t.buffer.byteLength&&(a=t.byteOffset+i),t=t.buffer),this.lastWrittenByte=n?r:0,this.buffer=t,this.length=r,this.byteLength=r,this.byteOffset=a,this.offset=0,this.littleEndian=!0,this._data=new DataView(this.buffer,a,r),this._mark=0,this._marks=[]}available(t=1){return this.offset+t<=this.length}isLittleEndian(){return this.littleEndian}setLittleEndian(){return this.littleEndian=!0,this}isBigEndian(){return!this.littleEndian}setBigEndian(){return this.littleEndian=!1,this}skip(t=1){return this.offset+=t,this}seek(t){return this.offset=t,this}mark(){return this._mark=this.offset,this}reset(){return this.offset=this._mark,this}pushMark(){return this._marks.push(this.offset),this}popMark(){const t=this._marks.pop();if(void 0===t)throw new Error("Mark stack empty");return this.seek(t),this}rewind(){return this.offset=0,this}ensureAvailable(t=1){if(!this.available(t)){const e=2*(this.offset+t),n=new Uint8Array(e);n.set(new Uint8Array(this.buffer)),this.buffer=n.buffer,this.length=this.byteLength=e,this._data=new DataView(this.buffer)}return this}readBoolean(){return 0!==this.readUint8()}readInt8(){return this._data.getInt8(this.offset++)}readUint8(){return this._data.getUint8(this.offset++)}readByte(){return this.readUint8()}readBytes(t=1){const e=new Uint8Array(t);for(let n=0;n<t;n++)e[n]=this.readByte();return e}readInt16(){const t=this._data.getInt16(this.offset,this.littleEndian);return this.offset+=2,t}readUint16(){const t=this._data.getUint16(this.offset,this.littleEndian);return this.offset+=2,t}readInt32(){const t=this._data.getInt32(this.offset,this.littleEndian);return this.offset+=4,t}readUint32(){const t=this._data.getUint32(this.offset,this.littleEndian);return this.offset+=4,t}readFloat32(){const t=this._data.getFloat32(this.offset,this.littleEndian);return this.offset+=4,t}readFloat64(){const t=this._data.getFloat64(this.offset,this.littleEndian);return this.offset+=8,t}readChar(){return String.fromCharCode(this.readInt8())}readChars(t=1){let e="";for(let n=0;n<t;n++)e+=this.readChar();return e}readUtf8(t=1){return e=this.readBytes(t),L.decode(e);var e}writeBoolean(t){return this.writeUint8(t?255:0),this}writeInt8(t){return this.ensureAvailable(1),this._data.setInt8(this.offset++,t),this._updateLastWrittenByte(),this}writeUint8(t){return this.ensureAvailable(1),this._data.setUint8(this.offset++,t),this._updateLastWrittenByte(),this}writeByte(t){return this.writeUint8(t)}writeBytes(t){this.ensureAvailable(t.length);for(let e=0;e<t.length;e++)this._data.setUint8(this.offset++,t[e]);return this._updateLastWrittenByte(),this}writeInt16(t){return this.ensureAvailable(2),this._data.setInt16(this.offset,t,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeUint16(t){return this.ensureAvailable(2),this._data.setUint16(this.offset,t,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeInt32(t){return this.ensureAvailable(4),this._data.setInt32(this.offset,t,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeUint32(t){return this.ensureAvailable(4),this._data.setUint32(this.offset,t,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat32(t){return this.ensureAvailable(4),this._data.setFloat32(this.offset,t,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat64(t){return this.ensureAvailable(8),this._data.setFloat64(this.offset,t,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeChar(t){return this.writeUint8(t.charCodeAt(0))}writeChars(t){for(let e=0;e<t.length;e++)this.writeUint8(t.charCodeAt(e));return this}writeUtf8(t){return this.writeBytes(function(t){return T.encode(t)}(t))}toArray(){return new Uint8Array(this.buffer,this.byteOffset,this.lastWrittenByte)}_updateLastWrittenByte(){this.offset>this.lastWrittenByte&&(this.lastWrittenByte=this.offset)}}\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function O(t){let e=t.length;for(;--e>=0;)t[e]=0}const S=256,C=286,D=30,I=15,B=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Z=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),F=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),P=new Array(576);O(P);const H=new Array(60);O(H);const j=new Array(512);O(j);const W=new Array(256);O(W);const K=new Array(29);O(K);const $=new Array(D);function Y(t,e,n,i,r){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=t&&t.length}let G,X,V;function q(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}O($);const J=t=>t<256?j[t]:j[256+(t>>>7)],Q=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},tt=(t,e,n)=>{t.bi_valid>16-n?(t.bi_buf|=e<<t.bi_valid&65535,Q(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=n-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},et=(t,e,n)=>{tt(t,n[2*e],n[2*e+1])},nt=(t,e)=>{let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1},it=(t,e,n)=>{const i=new Array(16);let r,a,s=0;for(r=1;r<=I;r++)i[r]=s=s+n[r-1]<<1;for(a=0;a<=e;a++){let e=t[2*a+1];0!==e&&(t[2*a]=nt(i[e]++,e))}},rt=t=>{let e;for(e=0;e<C;e++)t.dyn_ltree[2*e]=0;for(e=0;e<D;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0},at=t=>{t.bi_valid>8?Q(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},st=(t,e,n,i)=>{const r=2*e,a=2*n;return t[r]<t[a]||t[r]===t[a]&&i[e]<=i[n]},ot=(t,e,n)=>{const i=t.heap[n];let r=n<<1;for(;r<=t.heap_len&&(r<t.heap_len&&st(e,t.heap[r+1],t.heap[r],t.depth)&&r++,!st(e,i,t.heap[r],t.depth));)t.heap[n]=t.heap[r],n=r,r<<=1;t.heap[n]=i},lt=(t,e,n)=>{let i,r,a,s,o=0;if(0!==t.last_lit)do{i=t.pending_buf[t.d_buf+2*o]<<8|t.pending_buf[t.d_buf+2*o+1],r=t.pending_buf[t.l_buf+o],o++,0===i?et(t,r,e):(a=W[r],et(t,a+S+1,e),s=B[a],0!==s&&(r-=K[a],tt(t,r,s)),i--,a=J(i),et(t,a,n),s=Z[a],0!==s&&(i-=$[a],tt(t,i,s)))}while(o<t.last_lit);et(t,256,e)},ht=(t,e)=>{const n=e.dyn_tree,i=e.stat_desc.static_tree,r=e.stat_desc.has_stree,a=e.stat_desc.elems;let s,o,l,h=-1;for(t.heap_len=0,t.heap_max=573,s=0;s<a;s++)0!==n[2*s]?(t.heap[++t.heap_len]=h=s,t.depth[s]=0):n[2*s+1]=0;for(;t.heap_len<2;)l=t.heap[++t.heap_len]=h<2?++h:0,n[2*l]=1,t.depth[l]=0,t.opt_len--,r&&(t.static_len-=i[2*l+1]);for(e.max_code=h,s=t.heap_len>>1;s>=1;s--)ot(t,n,s);l=a;do{s=t.heap[1],t.heap[1]=t.heap[t.heap_len--],ot(t,n,1),o=t.heap[1],t.heap[--t.heap_max]=s,t.heap[--t.heap_max]=o,n[2*l]=n[2*s]+n[2*o],t.depth[l]=(t.depth[s]>=t.depth[o]?t.depth[s]:t.depth[o])+1,n[2*s+1]=n[2*o+1]=l,t.heap[1]=l++,ot(t,n,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const n=e.dyn_tree,i=e.max_code,r=e.stat_desc.static_tree,a=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,l=e.stat_desc.max_length;let h,d,f,c,u,_,p=0;for(c=0;c<=I;c++)t.bl_count[c]=0;for(n[2*t.heap[t.heap_max]+1]=0,h=t.heap_max+1;h<573;h++)d=t.heap[h],c=n[2*n[2*d+1]+1]+1,c>l&&(c=l,p++),n[2*d+1]=c,d>i||(t.bl_count[c]++,u=0,d>=o&&(u=s[d-o]),_=n[2*d],t.opt_len+=_*(c+u),a&&(t.static_len+=_*(r[2*d+1]+u)));if(0!==p){do{for(c=l-1;0===t.bl_count[c];)c--;t.bl_count[c]--,t.bl_count[c+1]+=2,t.bl_count[l]--,p-=2}while(p>0);for(c=l;0!==c;c--)for(d=t.bl_count[c];0!==d;)f=t.heap[--h],f>i||(n[2*f+1]!==c&&(t.opt_len+=(c-n[2*f+1])*n[2*f],n[2*f+1]=c),d--)}})(t,e),it(n,h,t.bl_count)},dt=(t,e,n)=>{let i,r,a=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),e[2*(n+1)+1]=65535,i=0;i<=n;i++)r=s,s=e[2*(i+1)+1],++o<l&&r===s||(o<h?t.bl_tree[2*r]+=o:0!==r?(r!==a&&t.bl_tree[2*r]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,a=r,0===s?(l=138,h=3):r===s?(l=6,h=3):(l=7,h=4))},ft=(t,e,n)=>{let i,r,a=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),i=0;i<=n;i++)if(r=s,s=e[2*(i+1)+1],!(++o<l&&r===s)){if(o<h)do{et(t,r,t.bl_tree)}while(0!=--o);else 0!==r?(r!==a&&(et(t,r,t.bl_tree),o--),et(t,16,t.bl_tree),tt(t,o-3,2)):o<=10?(et(t,17,t.bl_tree),tt(t,o-3,3)):(et(t,18,t.bl_tree),tt(t,o-11,7));o=0,a=r,0===s?(l=138,h=3):r===s?(l=6,h=3):(l=7,h=4)}};let ct=!1;const ut=(t,e,n,i)=>{tt(t,0+(i?1:0),3),((t,e,n,i)=>{at(t),i&&(Q(t,n),Q(t,~n)),t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n})(t,e,n,!0)};var _t=(t,e,n,i)=>{let r,a,s=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<S;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),ht(t,t.l_desc),ht(t,t.d_desc),s=(t=>{let e;for(dt(t,t.dyn_ltree,t.l_desc.max_code),dt(t,t.dyn_dtree,t.d_desc.max_code),ht(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*M[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),r=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=r&&(r=a)):r=a=n+5,n+4<=r&&-1!==e?ut(t,e,n,i):4===t.strategy||a===r?(tt(t,2+(i?1:0),3),lt(t,P,H)):(tt(t,4+(i?1:0),3),((t,e,n,i)=>{let r;for(tt(t,e-257,5),tt(t,n-1,5),tt(t,i-4,4),r=0;r<i;r++)tt(t,t.bl_tree[2*M[r]+1],3);ft(t,t.dyn_ltree,e-1),ft(t,t.dyn_dtree,n-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),lt(t,t.dyn_ltree,t.dyn_dtree)),rt(t),i&&at(t)},pt={_tr_init:t=>{ct||((()=>{let t,e,n,i,r;const a=new Array(16);for(n=0,i=0;i<28;i++)for(K[i]=n,t=0;t<1<<B[i];t++)W[n++]=i;for(W[n-1]=i,r=0,i=0;i<16;i++)for($[i]=r,t=0;t<1<<Z[i];t++)j[r++]=i;for(r>>=7;i<D;i++)for($[i]=r<<7,t=0;t<1<<Z[i]-7;t++)j[256+r++]=i;for(e=0;e<=I;e++)a[e]=0;for(t=0;t<=143;)P[2*t+1]=8,t++,a[8]++;for(;t<=255;)P[2*t+1]=9,t++,a[9]++;for(;t<=279;)P[2*t+1]=7,t++,a[7]++;for(;t<=287;)P[2*t+1]=8,t++,a[8]++;for(it(P,287,a),t=0;t<D;t++)H[2*t+1]=5,H[2*t]=nt(t,5);G=new Y(P,B,257,C,I),X=new Y(H,Z,0,D,I),V=new Y(new Array(0),F,0,19,7)})(),ct=!0),t.l_desc=new q(t.dyn_ltree,G),t.d_desc=new q(t.dyn_dtree,X),t.bl_desc=new q(t.bl_tree,V),t.bi_buf=0,t.bi_valid=0,rt(t)},_tr_stored_block:ut,_tr_flush_block:_t,_tr_tally:(t,e,n)=>(t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(W[n]+S+1)]++,t.dyn_dtree[2*J(e)]++),t.last_lit===t.lit_bufsize-1),_tr_align:t=>{tt(t,2,3),et(t,256,P),(t=>{16===t.bi_valid?(Q(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var wt=(t,e,n,i)=>{let r=65535&t|0,a=t>>>16&65535|0,s=0;for(;0!==n;){s=n>2e3?2e3:n,n-=s;do{r=r+e[i++]|0,a=a+r|0}while(--s);r%=65521,a%=65521}return r|a<<16|0};const bt=new Uint32Array((()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e})());var gt=(t,e,n,i)=>{const r=bt,a=i+n;t^=-1;for(let n=i;n<a;n++)t=t>>>8^r[255&(t^e[n])];return-1^t},mt={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},yt={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:kt,_tr_stored_block:vt,_tr_flush_block:Et,_tr_tally:At,_tr_align:xt}=pt,{Z_NO_FLUSH:Ut,Z_PARTIAL_FLUSH:zt,Z_FULL_FLUSH:Rt,Z_FINISH:Lt,Z_BLOCK:Tt,Z_OK:Nt,Z_STREAM_END:Ot,Z_STREAM_ERROR:St,Z_DATA_ERROR:Ct,Z_BUF_ERROR:Dt,Z_DEFAULT_COMPRESSION:It,Z_FILTERED:Bt,Z_HUFFMAN_ONLY:Zt,Z_RLE:Ft,Z_FIXED:Mt,Z_DEFAULT_STRATEGY:Pt,Z_UNKNOWN:Ht,Z_DEFLATED:jt}=yt,Wt=258,Kt=262,$t=103,Yt=113,Gt=666,Xt=(t,e)=>(t.msg=mt[e],e),Vt=t=>(t<<1)-(t>4?9:0),qt=t=>{let e=t.length;for(;--e>=0;)t[e]=0};let Jt=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask;const Qt=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))},te=(t,e)=>{Et(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,Qt(t.strm)},ee=(t,e)=>{t.pending_buf[t.pending++]=e},ne=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},ie=(t,e,n,i)=>{let r=t.avail_in;return r>i&&(r=i),0===r?0:(t.avail_in-=r,e.set(t.input.subarray(t.next_in,t.next_in+r),n),1===t.state.wrap?t.adler=wt(t.adler,e,r,n):2===t.state.wrap&&(t.adler=gt(t.adler,e,r,n)),t.next_in+=r,t.total_in+=r,r)},re=(t,e)=>{let n,i,r=t.max_chain_length,a=t.strstart,s=t.prev_length,o=t.nice_match;const l=t.strstart>t.w_size-Kt?t.strstart-(t.w_size-Kt):0,h=t.window,d=t.w_mask,f=t.prev,c=t.strstart+Wt;let u=h[a+s-1],_=h[a+s];t.prev_length>=t.good_match&&(r>>=2),o>t.lookahead&&(o=t.lookahead);do{if(n=e,h[n+s]===_&&h[n+s-1]===u&&h[n]===h[a]&&h[++n]===h[a+1]){a+=2,n++;do{}while(h[++a]===h[++n]&&h[++a]===h[++n]&&h[++a]===h[++n]&&h[++a]===h[++n]&&h[++a]===h[++n]&&h[++a]===h[++n]&&h[++a]===h[++n]&&h[++a]===h[++n]&&a<c);if(i=Wt-(c-a),a=c-Wt,i>s){if(t.match_start=e,s=i,i>=o)break;u=h[a+s-1],_=h[a+s]}}}while((e=f[e&d])>l&&0!=--r);return s<=t.lookahead?s:t.lookahead},ae=t=>{const e=t.w_size;let n,i,r,a,s;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Kt)){t.window.set(t.window.subarray(e,e+e),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,i=t.hash_size,n=i;do{r=t.head[--n],t.head[n]=r>=e?r-e:0}while(--i);i=e,n=i;do{r=t.prev[--n],t.prev[n]=r>=e?r-e:0}while(--i);a+=e}if(0===t.strm.avail_in)break;if(i=ie(t.strm,t.window,t.strstart+t.lookahead,a),t.lookahead+=i,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=Jt(t,t.ins_h,t.window[s+1]);t.insert&&(t.ins_h=Jt(t,t.ins_h,t.window[s+3-1]),t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<Kt&&0!==t.strm.avail_in)},se=(t,e)=>{let n,i;for(;;){if(t.lookahead<Kt){if(ae(t),t.lookahead<Kt&&e===Ut)return 1;if(0===t.lookahead)break}if(n=0,t.lookahead>=3&&(t.ins_h=Jt(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==n&&t.strstart-n<=t.w_size-Kt&&(t.match_length=re(t,n)),t.match_length>=3)if(i=At(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=Jt(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=Jt(t,t.ins_h,t.window[t.strstart+1]);else i=At(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(te(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===Lt?(te(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(te(t,!1),0===t.strm.avail_out)?1:2},oe=(t,e)=>{let n,i,r;for(;;){if(t.lookahead<Kt){if(ae(t),t.lookahead<Kt&&e===Ut)return 1;if(0===t.lookahead)break}if(n=0,t.lookahead>=3&&(t.ins_h=Jt(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-Kt&&(t.match_length=re(t,n),t.match_length<=5&&(t.strategy===Bt||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-3,i=At(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=Jt(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(te(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=At(t,0,t.window[t.strstart-1]),i&&te(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=At(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===Lt?(te(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(te(t,!1),0===t.strm.avail_out)?1:2};function le(t,e,n,i,r){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=i,this.func=r}const he=[new le(0,0,0,0,((t,e)=>{let n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(ae(t),0===t.lookahead&&e===Ut)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;const i=t.block_start+n;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,te(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-Kt&&(te(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Lt?(te(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(te(t,!1),t.strm.avail_out),1)})),new le(4,4,8,4,se),new le(4,5,16,8,se),new le(4,6,32,32,se),new le(4,4,16,16,oe),new le(8,16,32,32,oe),new le(8,16,128,128,oe),new le(8,32,128,256,oe),new le(32,128,258,1024,oe),new le(32,258,258,4096,oe)];function de(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=jt,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),qt(this.dyn_ltree),qt(this.dyn_dtree),qt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),qt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),qt(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const fe=t=>{if(!t||!t.state)return Xt(t,St);t.total_in=t.total_out=0,t.data_type=Ht;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:Yt,t.adler=2===e.wrap?0:1,e.last_flush=Ut,kt(e),Nt},ce=t=>{const e=fe(t);var n;return e===Nt&&((n=t.state).window_size=2*n.w_size,qt(n.head),n.max_lazy_match=he[n.level].max_lazy,n.good_match=he[n.level].good_length,n.nice_match=he[n.level].nice_length,n.max_chain_length=he[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0),e},ue=(t,e,n,i,r,a)=>{if(!t)return St;let s=1;if(e===It&&(e=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),r<1||r>9||n!==jt||i<8||i>15||e<0||e>9||a<0||a>Mt)return Xt(t,St);8===i&&(i=9);const o=new de;return t.state=o,o.strm=t,o.wrap=s,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=e,o.strategy=a,o.method=n,ce(t)};var _e={deflateInit:(t,e)=>ue(t,e,jt,15,8,Pt),deflateInit2:ue,deflateReset:ce,deflateResetKeep:fe,deflateSetHeader:(t,e)=>t&&t.state?2!==t.state.wrap?St:(t.state.gzhead=e,Nt):St,deflate:(t,e)=>{let n,i;if(!t||!t.state||e>Tt||e<0)return t?Xt(t,St):St;const r=t.state;if(!t.output||!t.input&&0!==t.avail_in||r.status===Gt&&e!==Lt)return Xt(t,0===t.avail_out?Dt:St);r.strm=t;const a=r.last_flush;if(r.last_flush=e,42===r.status)if(2===r.wrap)t.adler=0,ee(r,31),ee(r,139),ee(r,8),r.gzhead?(ee(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),ee(r,255&r.gzhead.time),ee(r,r.gzhead.time>>8&255),ee(r,r.gzhead.time>>16&255),ee(r,r.gzhead.time>>24&255),ee(r,9===r.level?2:r.strategy>=Zt||r.level<2?4:0),ee(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(ee(r,255&r.gzhead.extra.length),ee(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=gt(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(ee(r,0),ee(r,0),ee(r,0),ee(r,0),ee(r,0),ee(r,9===r.level?2:r.strategy>=Zt||r.level<2?4:0),ee(r,3),r.status=Yt);else{let e=jt+(r.w_bits-8<<4)<<8,n=-1;n=r.strategy>=Zt||r.level<2?0:r.level<6?1:6===r.level?2:3,e|=n<<6,0!==r.strstart&&(e|=32),e+=31-e%31,r.status=Yt,ne(r,e),0!==r.strstart&&(ne(r,t.adler>>>16),ne(r,65535&t.adler)),t.adler=1}if(69===r.status)if(r.gzhead.extra){for(n=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>n&&(t.adler=gt(t.adler,r.pending_buf,r.pending-n,n)),Qt(t),n=r.pending,r.pending!==r.pending_buf_size));)ee(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>n&&(t.adler=gt(t.adler,r.pending_buf,r.pending-n,n)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){n=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(t.adler=gt(t.adler,r.pending_buf,r.pending-n,n)),Qt(t),n=r.pending,r.pending===r.pending_buf_size)){i=1;break}i=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,ee(r,i)}while(0!==i);r.gzhead.hcrc&&r.pending>n&&(t.adler=gt(t.adler,r.pending_buf,r.pending-n,n)),0===i&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){n=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>n&&(t.adler=gt(t.adler,r.pending_buf,r.pending-n,n)),Qt(t),n=r.pending,r.pending===r.pending_buf_size)){i=1;break}i=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,ee(r,i)}while(0!==i);r.gzhead.hcrc&&r.pending>n&&(t.adler=gt(t.adler,r.pending_buf,r.pending-n,n)),0===i&&(r.status=$t)}else r.status=$t;if(r.status===$t&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Qt(t),r.pending+2<=r.pending_buf_size&&(ee(r,255&t.adler),ee(r,t.adler>>8&255),t.adler=0,r.status=Yt)):r.status=Yt),0!==r.pending){if(Qt(t),0===t.avail_out)return r.last_flush=-1,Nt}else if(0===t.avail_in&&Vt(e)<=Vt(a)&&e!==Lt)return Xt(t,Dt);if(r.status===Gt&&0!==t.avail_in)return Xt(t,Dt);if(0!==t.avail_in||0!==r.lookahead||e!==Ut&&r.status!==Gt){let n=r.strategy===Zt?((t,e)=>{let n;for(;;){if(0===t.lookahead&&(ae(t),0===t.lookahead)){if(e===Ut)return 1;break}if(t.match_length=0,n=At(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(te(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Lt?(te(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(te(t,!1),0===t.strm.avail_out)?1:2})(r,e):r.strategy===Ft?((t,e)=>{let n,i,r,a;const s=t.window;for(;;){if(t.lookahead<=Wt){if(ae(t),t.lookahead<=Wt&&e===Ut)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=t.strstart-1,i=s[r],i===s[++r]&&i===s[++r]&&i===s[++r])){a=t.strstart+Wt;do{}while(i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&r<a);t.match_length=Wt-(a-r),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(n=At(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=At(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(te(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Lt?(te(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(te(t,!1),0===t.strm.avail_out)?1:2})(r,e):he[r.level].func(r,e);if(3!==n&&4!==n||(r.status=Gt),1===n||3===n)return 0===t.avail_out&&(r.last_flush=-1),Nt;if(2===n&&(e===zt?xt(r):e!==Tt&&(vt(r,0,0,!1),e===Rt&&(qt(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),Qt(t),0===t.avail_out))return r.last_flush=-1,Nt}return e!==Lt?Nt:r.wrap<=0?Ot:(2===r.wrap?(ee(r,255&t.adler),ee(r,t.adler>>8&255),ee(r,t.adler>>16&255),ee(r,t.adler>>24&255),ee(r,255&t.total_in),ee(r,t.total_in>>8&255),ee(r,t.total_in>>16&255),ee(r,t.total_in>>24&255)):(ne(r,t.adler>>>16),ne(r,65535&t.adler)),Qt(t),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?Nt:Ot)},deflateEnd:t=>{if(!t||!t.state)return St;const e=t.state.status;return 42!==e&&69!==e&&73!==e&&91!==e&&e!==$t&&e!==Yt&&e!==Gt?Xt(t,St):(t.state=null,e===Yt?Xt(t,Ct):Nt)},deflateSetDictionary:(t,e)=>{let n=e.length;if(!t||!t.state)return St;const i=t.state,r=i.wrap;if(2===r||1===r&&42!==i.status||i.lookahead)return St;if(1===r&&(t.adler=wt(t.adler,e,n,0)),i.wrap=0,n>=i.w_size){0===r&&(qt(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(n-i.w_size,n),0),e=t,n=i.w_size}const a=t.avail_in,s=t.next_in,o=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,ae(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=Jt(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,ae(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=s,t.input=o,t.avail_in=a,i.wrap=r,Nt},deflateInfo:"pako deflate (from Nodeca project)"};const pe=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var we=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const n=e.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const e in n)pe(n,e)&&(t[e]=n[e])}}return t},be=t=>{let e=0;for(let n=0,i=t.length;n<i;n++)e+=t[n].length;const n=new Uint8Array(e);for(let e=0,i=0,r=t.length;e<r;e++){let r=t[e];n.set(r,i),i+=r.length}return n};let ge=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){ge=!1}const me=new Uint8Array(256);for(let t=0;t<256;t++)me[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;me[254]=me[254]=1;var ye=t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,n,i,r,a,s=t.length,o=0;for(r=0;r<s;r++)n=t.charCodeAt(r),55296==(64512&n)&&r+1<s&&(i=t.charCodeAt(r+1),56320==(64512&i)&&(n=65536+(n-55296<<10)+(i-56320),r++)),o+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(o),a=0,r=0;a<o;r++)n=t.charCodeAt(r),55296==(64512&n)&&r+1<s&&(i=t.charCodeAt(r+1),56320==(64512&i)&&(n=65536+(n-55296<<10)+(i-56320),r++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|63&n):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},ke=(t,e)=>{const n=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,r;const a=new Array(2*n);for(r=0,i=0;i<n;){let e=t[i++];if(e<128){a[r++]=e;continue}let s=me[e];if(s>4)a[r++]=65533,i+=s-1;else{for(e&=2===s?31:3===s?15:7;s>1&&i<n;)e=e<<6|63&t[i++],s--;s>1?a[r++]=65533:e<65536?a[r++]=e:(e-=65536,a[r++]=55296|e>>10&1023,a[r++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&ge)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let n="";for(let i=0;i<e;i++)n+=String.fromCharCode(t[i]);return n})(a,r)},ve=(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let n=e-1;for(;n>=0&&128==(192&t[n]);)n--;return n<0||0===n?e:n+me[t[n]]>e?n:e};var Ee=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Ae=Object.prototype.toString,{Z_NO_FLUSH:xe,Z_SYNC_FLUSH:Ue,Z_FULL_FLUSH:ze,Z_FINISH:Re,Z_OK:Le,Z_STREAM_END:Te,Z_DEFAULT_COMPRESSION:Ne,Z_DEFAULT_STRATEGY:Oe,Z_DEFLATED:Se}=yt;function Ce(t){this.options=we({level:Ne,method:Se,chunkSize:16384,windowBits:15,memLevel:8,strategy:Oe},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ee,this.strm.avail_out=0;let n=_e.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==Le)throw new Error(mt[n]);if(e.header&&_e.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?ye(e.dictionary):"[object ArrayBuffer]"===Ae.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,n=_e.deflateSetDictionary(this.strm,t),n!==Le)throw new Error(mt[n]);this._dict_set=!0}}Ce.prototype.push=function(t,e){const n=this.strm,i=this.options.chunkSize;let r,a;if(this.ended)return!1;for(a=e===~~e?e:!0===e?Re:xe,"string"==typeof t?n.input=ye(t):"[object ArrayBuffer]"===Ae.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),(a===Ue||a===ze)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(r=_e.deflate(n,a),r===Te)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=_e.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Le;if(0!==n.avail_out){if(a>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},Ce.prototype.onData=function(t){this.chunks.push(t)},Ce.prototype.onEnd=function(t){t===Le&&(this.result=be(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var De=function(t,e){let n,i,r,a,s,o,l,h,d,f,c,u,_,p,w,b,g,m,y,k,v,E,A,x;const U=t.state;n=t.next_in,A=t.input,i=n+(t.avail_in-5),r=t.next_out,x=t.output,a=r-(e-t.avail_out),s=r+(t.avail_out-257),o=U.dmax,l=U.wsize,h=U.whave,d=U.wnext,f=U.window,c=U.hold,u=U.bits,_=U.lencode,p=U.distcode,w=(1<<U.lenbits)-1,b=(1<<U.distbits)-1;t:do{u<15&&(c+=A[n++]<<u,u+=8,c+=A[n++]<<u,u+=8),g=_[c&w];e:for(;;){if(m=g>>>24,c>>>=m,u-=m,m=g>>>16&255,0===m)x[r++]=65535&g;else{if(!(16&m)){if(0==(64&m)){g=_[(65535&g)+(c&(1<<m)-1)];continue e}if(32&m){U.mode=12;break t}t.msg="invalid literal/length code",U.mode=30;break t}y=65535&g,m&=15,m&&(u<m&&(c+=A[n++]<<u,u+=8),y+=c&(1<<m)-1,c>>>=m,u-=m),u<15&&(c+=A[n++]<<u,u+=8,c+=A[n++]<<u,u+=8),g=p[c&b];n:for(;;){if(m=g>>>24,c>>>=m,u-=m,m=g>>>16&255,!(16&m)){if(0==(64&m)){g=p[(65535&g)+(c&(1<<m)-1)];continue n}t.msg="invalid distance code",U.mode=30;break t}if(k=65535&g,m&=15,u<m&&(c+=A[n++]<<u,u+=8,u<m&&(c+=A[n++]<<u,u+=8)),k+=c&(1<<m)-1,k>o){t.msg="invalid distance too far back",U.mode=30;break t}if(c>>>=m,u-=m,m=r-a,k>m){if(m=k-m,m>h&&U.sane){t.msg="invalid distance too far back",U.mode=30;break t}if(v=0,E=f,0===d){if(v+=l-m,m<y){y-=m;do{x[r++]=f[v++]}while(--m);v=r-k,E=x}}else if(d<m){if(v+=l+d-m,m-=d,m<y){y-=m;do{x[r++]=f[v++]}while(--m);if(v=0,d<y){m=d,y-=m;do{x[r++]=f[v++]}while(--m);v=r-k,E=x}}}else if(v+=d-m,m<y){y-=m;do{x[r++]=f[v++]}while(--m);v=r-k,E=x}for(;y>2;)x[r++]=E[v++],x[r++]=E[v++],x[r++]=E[v++],y-=3;y&&(x[r++]=E[v++],y>1&&(x[r++]=E[v++]))}else{v=r-k;do{x[r++]=x[v++],x[r++]=x[v++],x[r++]=x[v++],y-=3}while(y>2);y&&(x[r++]=x[v++],y>1&&(x[r++]=x[v++]))}break}}break}}while(n<i&&r<s);y=u>>3,n-=y,u-=y<<3,c&=(1<<u)-1,t.next_in=n,t.next_out=r,t.avail_in=n<i?i-n+5:5-(n-i),t.avail_out=r<s?s-r+257:257-(r-s),U.hold=c,U.bits=u};const Ie=15,Be=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ze=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Fe=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Me=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Pe=(t,e,n,i,r,a,s,o)=>{const l=o.bits;let h,d,f,c,u,_,p=0,w=0,b=0,g=0,m=0,y=0,k=0,v=0,E=0,A=0,x=null,U=0;const z=new Uint16Array(16),R=new Uint16Array(16);let L,T,N,O=null,S=0;for(p=0;p<=Ie;p++)z[p]=0;for(w=0;w<i;w++)z[e[n+w]]++;for(m=l,g=Ie;g>=1&&0===z[g];g--);if(m>g&&(m=g),0===g)return r[a++]=20971520,r[a++]=20971520,o.bits=1,0;for(b=1;b<g&&0===z[b];b++);for(m<b&&(m=b),v=1,p=1;p<=Ie;p++)if(v<<=1,v-=z[p],v<0)return-1;if(v>0&&(0===t||1!==g))return-1;for(R[1]=0,p=1;p<Ie;p++)R[p+1]=R[p]+z[p];for(w=0;w<i;w++)0!==e[n+w]&&(s[R[e[n+w]]++]=w);if(0===t?(x=O=s,_=19):1===t?(x=Be,U-=257,O=Ze,S-=257,_=256):(x=Fe,O=Me,_=-1),A=0,w=0,p=b,u=a,y=m,k=0,f=-1,E=1<<m,c=E-1,1===t&&E>852||2===t&&E>592)return 1;for(;;){L=p-k,s[w]<_?(T=0,N=s[w]):s[w]>_?(T=O[S+s[w]],N=x[U+s[w]]):(T=96,N=0),h=1<<p-k,d=1<<y,b=d;do{d-=h,r[u+(A>>k)+d]=L<<24|T<<16|N|0}while(0!==d);for(h=1<<p-1;A&h;)h>>=1;if(0!==h?(A&=h-1,A+=h):A=0,w++,0==--z[p]){if(p===g)break;p=e[n+s[w]]}if(p>m&&(A&c)!==f){for(0===k&&(k=m),u+=b,y=p-k,v=1<<y;y+k<g&&(v-=z[y+k],!(v<=0));)y++,v<<=1;if(E+=1<<y,1===t&&E>852||2===t&&E>592)return 1;f=A&c,r[f]=m<<24|y<<16|u-a|0}}return 0!==A&&(r[u+A]=p-k<<24|64<<16|0),o.bits=m,0};const{Z_FINISH:He,Z_BLOCK:je,Z_TREES:We,Z_OK:Ke,Z_STREAM_END:$e,Z_NEED_DICT:Ye,Z_STREAM_ERROR:Ge,Z_DATA_ERROR:Xe,Z_MEM_ERROR:Ve,Z_BUF_ERROR:qe,Z_DEFLATED:Je}=yt,Qe=12,tn=30,en=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function nn(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const rn=t=>{if(!t||!t.state)return Ge;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,Ke},an=t=>{if(!t||!t.state)return Ge;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,rn(t)},sn=(t,e)=>{let n;if(!t||!t.state)return Ge;const i=t.state;return e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Ge:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=n,i.wbits=e,an(t))},on=(t,e)=>{if(!t)return Ge;const n=new nn;t.state=n,n.window=null;const i=sn(t,e);return i!==Ke&&(t.state=null),i};let ln,hn,dn=!0;const fn=t=>{if(dn){ln=new Int32Array(512),hn=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Pe(1,t.lens,0,288,ln,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Pe(2,t.lens,0,32,hn,0,t.work,{bits:5}),dn=!1}t.lencode=ln,t.lenbits=9,t.distcode=hn,t.distbits=5},cn=(t,e,n,i)=>{let r;const a=t.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),i>=a.wsize?(a.window.set(e.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>i&&(r=i),a.window.set(e.subarray(n-i,n-i+r),a.wnext),(i-=r)?(a.window.set(e.subarray(n-i,n),0),a.wnext=i,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0};var un={inflateReset:an,inflateReset2:sn,inflateResetKeep:rn,inflateInit:t=>on(t,15),inflateInit2:on,inflate:(t,e)=>{let n,i,r,a,s,o,l,h,d,f,c,u,_,p,w,b,g,m,y,k,v,E,A=0;const x=new Uint8Array(4);let U,z;const R=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return Ge;n=t.state,n.mode===Qe&&(n.mode=13),s=t.next_out,r=t.output,l=t.avail_out,a=t.next_in,i=t.input,o=t.avail_in,h=n.hold,d=n.bits,f=o,c=l,E=Ke;t:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;d<16;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if(2&n.wrap&&35615===h){n.check=0,x[0]=255&h,x[1]=h>>>8&255,n.check=gt(n.check,x,2,0),h=0,d=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",n.mode=tn;break}if((15&h)!==Je){t.msg="unknown compression method",n.mode=tn;break}if(h>>>=4,d-=4,v=8+(15&h),0===n.wbits)n.wbits=v;else if(v>n.wbits){t.msg="invalid window size",n.mode=tn;break}n.dmax=1<<n.wbits,t.adler=n.check=1,n.mode=512&h?10:Qe,h=0,d=0;break;case 2:for(;d<16;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if(n.flags=h,(255&n.flags)!==Je){t.msg="unknown compression method",n.mode=tn;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=tn;break}n.head&&(n.head.text=h>>8&1),512&n.flags&&(x[0]=255&h,x[1]=h>>>8&255,n.check=gt(n.check,x,2,0)),h=0,d=0,n.mode=3;case 3:for(;d<32;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}n.head&&(n.head.time=h),512&n.flags&&(x[0]=255&h,x[1]=h>>>8&255,x[2]=h>>>16&255,x[3]=h>>>24&255,n.check=gt(n.check,x,4,0)),h=0,d=0,n.mode=4;case 4:for(;d<16;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}n.head&&(n.head.xflags=255&h,n.head.os=h>>8),512&n.flags&&(x[0]=255&h,x[1]=h>>>8&255,n.check=gt(n.check,x,2,0)),h=0,d=0,n.mode=5;case 5:if(1024&n.flags){for(;d<16;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}n.length=h,n.head&&(n.head.extra_len=h),512&n.flags&&(x[0]=255&h,x[1]=h>>>8&255,n.check=gt(n.check,x,2,0)),h=0,d=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(u=n.length,u>o&&(u=o),u&&(n.head&&(v=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(i.subarray(a,a+u),v)),512&n.flags&&(n.check=gt(n.check,i,u,a)),o-=u,a+=u,n.length-=u),n.length))break t;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===o)break t;u=0;do{v=i[a+u++],n.head&&v&&n.length<65536&&(n.head.name+=String.fromCharCode(v))}while(v&&u<o);if(512&n.flags&&(n.check=gt(n.check,i,u,a)),o-=u,a+=u,v)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===o)break t;u=0;do{v=i[a+u++],n.head&&v&&n.length<65536&&(n.head.comment+=String.fromCharCode(v))}while(v&&u<o);if(512&n.flags&&(n.check=gt(n.check,i,u,a)),o-=u,a+=u,v)break t}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;d<16;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if(h!==(65535&n.check)){t.msg="header crc mismatch",n.mode=tn;break}h=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=Qe;break;case 10:for(;d<32;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}t.adler=n.check=en(h),h=0,d=0,n.mode=11;case 11:if(0===n.havedict)return t.next_out=s,t.avail_out=l,t.next_in=a,t.avail_in=o,n.hold=h,n.bits=d,Ye;t.adler=n.check=1,n.mode=Qe;case Qe:if(e===je||e===We)break t;case 13:if(n.last){h>>>=7&d,d-=7&d,n.mode=27;break}for(;d<3;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}switch(n.last=1&h,h>>>=1,d-=1,3&h){case 0:n.mode=14;break;case 1:if(fn(n),n.mode=20,e===We){h>>>=2,d-=2;break t}break;case 2:n.mode=17;break;case 3:t.msg="invalid block type",n.mode=tn}h>>>=2,d-=2;break;case 14:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if((65535&h)!=(h>>>16^65535)){t.msg="invalid stored block lengths",n.mode=tn;break}if(n.length=65535&h,h=0,d=0,n.mode=15,e===We)break t;case 15:n.mode=16;case 16:if(u=n.length,u){if(u>o&&(u=o),u>l&&(u=l),0===u)break t;r.set(i.subarray(a,a+u),s),o-=u,a+=u,l-=u,s+=u,n.length-=u;break}n.mode=Qe;break;case 17:for(;d<14;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if(n.nlen=257+(31&h),h>>>=5,d-=5,n.ndist=1+(31&h),h>>>=5,d-=5,n.ncode=4+(15&h),h>>>=4,d-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=tn;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;d<3;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}n.lens[R[n.have++]]=7&h,h>>>=3,d-=3}for(;n.have<19;)n.lens[R[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,U={bits:n.lenbits},E=Pe(0,n.lens,0,19,n.lencode,0,n.work,U),n.lenbits=U.bits,E){t.msg="invalid code lengths set",n.mode=tn;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;A=n.lencode[h&(1<<n.lenbits)-1],w=A>>>24,b=A>>>16&255,g=65535&A,!(w<=d);){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if(g<16)h>>>=w,d-=w,n.lens[n.have++]=g;else{if(16===g){for(z=w+2;d<z;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if(h>>>=w,d-=w,0===n.have){t.msg="invalid bit length repeat",n.mode=tn;break}v=n.lens[n.have-1],u=3+(3&h),h>>>=2,d-=2}else if(17===g){for(z=w+3;d<z;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}h>>>=w,d-=w,v=0,u=3+(7&h),h>>>=3,d-=3}else{for(z=w+7;d<z;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}h>>>=w,d-=w,v=0,u=11+(127&h),h>>>=7,d-=7}if(n.have+u>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=tn;break}for(;u--;)n.lens[n.have++]=v}}if(n.mode===tn)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=tn;break}if(n.lenbits=9,U={bits:n.lenbits},E=Pe(1,n.lens,0,n.nlen,n.lencode,0,n.work,U),n.lenbits=U.bits,E){t.msg="invalid literal/lengths set",n.mode=tn;break}if(n.distbits=6,n.distcode=n.distdyn,U={bits:n.distbits},E=Pe(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,U),n.distbits=U.bits,E){t.msg="invalid distances set",n.mode=tn;break}if(n.mode=20,e===We)break t;case 20:n.mode=21;case 21:if(o>=6&&l>=258){t.next_out=s,t.avail_out=l,t.next_in=a,t.avail_in=o,n.hold=h,n.bits=d,De(t,c),s=t.next_out,r=t.output,l=t.avail_out,a=t.next_in,i=t.input,o=t.avail_in,h=n.hold,d=n.bits,n.mode===Qe&&(n.back=-1);break}for(n.back=0;A=n.lencode[h&(1<<n.lenbits)-1],w=A>>>24,b=A>>>16&255,g=65535&A,!(w<=d);){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if(b&&0==(240&b)){for(m=w,y=b,k=g;A=n.lencode[k+((h&(1<<m+y)-1)>>m)],w=A>>>24,b=A>>>16&255,g=65535&A,!(m+w<=d);){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}h>>>=m,d-=m,n.back+=m}if(h>>>=w,d-=w,n.back+=w,n.length=g,0===b){n.mode=26;break}if(32&b){n.back=-1,n.mode=Qe;break}if(64&b){t.msg="invalid literal/length code",n.mode=tn;break}n.extra=15&b,n.mode=22;case 22:if(n.extra){for(z=n.extra;d<z;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}n.length+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;A=n.distcode[h&(1<<n.distbits)-1],w=A>>>24,b=A>>>16&255,g=65535&A,!(w<=d);){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if(0==(240&b)){for(m=w,y=b,k=g;A=n.distcode[k+((h&(1<<m+y)-1)>>m)],w=A>>>24,b=A>>>16&255,g=65535&A,!(m+w<=d);){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}h>>>=m,d-=m,n.back+=m}if(h>>>=w,d-=w,n.back+=w,64&b){t.msg="invalid distance code",n.mode=tn;break}n.offset=g,n.extra=15&b,n.mode=24;case 24:if(n.extra){for(z=n.extra;d<z;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}n.offset+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=tn;break}n.mode=25;case 25:if(0===l)break t;if(u=c-l,n.offset>u){if(u=n.offset-u,u>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=tn;break}u>n.wnext?(u-=n.wnext,_=n.wsize-u):_=n.wnext-u,u>n.length&&(u=n.length),p=n.window}else p=r,_=s-n.offset,u=n.length;u>l&&(u=l),l-=u,n.length-=u;do{r[s++]=p[_++]}while(--u);0===n.length&&(n.mode=21);break;case 26:if(0===l)break t;r[s++]=n.length,l--,n.mode=21;break;case 27:if(n.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[a++]<<d,d+=8}if(c-=l,t.total_out+=c,n.total+=c,c&&(t.adler=n.check=n.flags?gt(n.check,r,c,s-c):wt(n.check,r,c,s-c)),c=l,(n.flags?h:en(h))!==n.check){t.msg="incorrect data check",n.mode=tn;break}h=0,d=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;d<32;){if(0===o)break t;o--,h+=i[a++]<<d,d+=8}if(h!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=tn;break}h=0,d=0}n.mode=29;case 29:E=$e;break t;case tn:E=Xe;break t;case 31:return Ve;default:return Ge}return t.next_out=s,t.avail_out=l,t.next_in=a,t.avail_in=o,n.hold=h,n.bits=d,(n.wsize||c!==t.avail_out&&n.mode<tn&&(n.mode<27||e!==He))&&cn(t,t.output,t.next_out,c-t.avail_out),f-=t.avail_in,c-=t.avail_out,t.total_in+=f,t.total_out+=c,n.total+=c,n.wrap&&c&&(t.adler=n.check=n.flags?gt(n.check,r,c,t.next_out-c):wt(n.check,r,c,t.next_out-c)),t.data_type=n.bits+(n.last?64:0)+(n.mode===Qe?128:0)+(20===n.mode||15===n.mode?256:0),(0===f&&0===c||e===He)&&E===Ke&&(E=qe),E},inflateEnd:t=>{if(!t||!t.state)return Ge;let e=t.state;return e.window&&(e.window=null),t.state=null,Ke},inflateGetHeader:(t,e)=>{if(!t||!t.state)return Ge;const n=t.state;return 0==(2&n.wrap)?Ge:(n.head=e,e.done=!1,Ke)},inflateSetDictionary:(t,e)=>{const n=e.length;let i,r,a;return t&&t.state?(i=t.state,0!==i.wrap&&11!==i.mode?Ge:11===i.mode&&(r=1,r=wt(r,e,n,0),r!==i.check)?Xe:(a=cn(t,e,n,n),a?(i.mode=31,Ve):(i.havedict=1,Ke))):Ge},inflateInfo:"pako inflate (from Nodeca project)"};var _n=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const pn=Object.prototype.toString,{Z_NO_FLUSH:wn,Z_FINISH:bn,Z_OK:gn,Z_STREAM_END:mn,Z_NEED_DICT:yn,Z_STREAM_ERROR:kn,Z_DATA_ERROR:vn,Z_MEM_ERROR:En}=yt;function An(t){this.options=we({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ee,this.strm.avail_out=0;let n=un.inflateInit2(this.strm,e.windowBits);if(n!==gn)throw new Error(mt[n]);if(this.header=new _n,un.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=ye(e.dictionary):"[object ArrayBuffer]"===pn.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=un.inflateSetDictionary(this.strm,e.dictionary),n!==gn)))throw new Error(mt[n])}function xn(t,e){const n=new An(e);if(n.push(t),n.err)throw n.msg||mt[n.err];return n.result}An.prototype.push=function(t,e){const n=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let a,s,o;if(this.ended)return!1;for(s=e===~~e?e:!0===e?bn:wn,"[object ArrayBuffer]"===pn.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),a=un.inflate(n,s),a===yn&&r&&(a=un.inflateSetDictionary(n,r),a===gn?a=un.inflate(n,s):a===vn&&(a=yn));n.avail_in>0&&a===mn&&n.state.wrap>0&&0!==t[n.next_in];)un.inflateReset(n),a=un.inflate(n,s);switch(a){case kn:case vn:case yn:case En:return this.onEnd(a),this.ended=!0,!1}if(o=n.avail_out,n.next_out&&(0===n.avail_out||a===mn))if("string"===this.options.to){let t=ve(n.output,n.next_out),e=n.next_out-t,r=ke(n.output,t);n.next_out=e,n.avail_out=i-e,e&&n.output.set(n.output.subarray(t,t+e),0),this.onData(r)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(a!==gn||0!==o){if(a===mn)return a=un.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},An.prototype.onData=function(t){this.chunks.push(t)},An.prototype.onEnd=function(t){t===gn&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=be(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Un={Inflate:An,inflate:xn,inflateRaw:function(t,e){return(e=e||{}).raw=!0,xn(t,e)},ungzip:xn,constants:yt};const{Inflate:zn,inflate:Rn,inflateRaw:Ln,ungzip:Tn}=Un;var Nn=zn,On=Rn;const Sn=[137,80,78,71,13,10,26,10],Cn=[];for(let t=0;t<256;t++){let e=t;for(let t=0;t<8;t++)1&e?e=3988292384^e>>>1:e>>>=1;Cn[t]=e}const Dn=4294967295;function In(t,e){return(function(t,e,n){let i=t;for(let t=0;t<n;t++)i=Cn[255&(i^e[t])]^i>>>8;return i}(Dn,t,e)^Dn)>>>0}var Bn,Zn,Fn,Mn;!function(t){t[t.UNKNOWN=-1]="UNKNOWN",t[t.GREYSCALE=0]="GREYSCALE",t[t.TRUECOLOUR=2]="TRUECOLOUR",t[t.INDEXED_COLOUR=3]="INDEXED_COLOUR",t[t.GREYSCALE_ALPHA=4]="GREYSCALE_ALPHA",t[t.TRUECOLOUR_ALPHA=6]="TRUECOLOUR_ALPHA"}(Bn||(Bn={})),function(t){t[t.UNKNOWN=-1]="UNKNOWN",t[t.DEFLATE=0]="DEFLATE"}(Zn||(Zn={})),function(t){t[t.UNKNOWN=-1]="UNKNOWN",t[t.ADAPTIVE=0]="ADAPTIVE"}(Fn||(Fn={})),function(t){t[t.UNKNOWN=-1]="UNKNOWN",t[t.NO_INTERLACE=0]="NO_INTERLACE",t[t.ADAM7=1]="ADAM7"}(Mn||(Mn={}));const Pn=new Uint8Array(0),Hn=new Uint16Array([255]),jn=255===new Uint8Array(Hn.buffer)[0];class Wn extends N{constructor(t,e={}){super(t);const{checkCrc:n=!1}=e;this._checkCrc=n,this._inflator=new Nn,this._png={width:-1,height:-1,channels:-1,data:new Uint8Array(0),depth:1,text:{}},this._end=!1,this._hasPalette=!1,this._palette=[],this._compressionMethod=Zn.UNKNOWN,this._filterMethod=Fn.UNKNOWN,this._interlaceMethod=Mn.UNKNOWN,this._colorType=-1,this.setBigEndian()}decode(){for(this.decodeSignature();!this._end;)this.decodeChunk();return this.decodeImage(),this._png}decodeSignature(){for(let t=0;t<Sn.length;t++)if(this.readUint8()!==Sn[t])throw new Error(`wrong PNG signature. Byte at ${t} should be ${Sn[t]}.`)}decodeChunk(){const t=this.readUint32(),e=this.readChars(4),n=this.offset;switch(e){case"IHDR":this.decodeIHDR();break;case"PLTE":this.decodePLTE(t);break;case"IDAT":this.decodeIDAT(t);break;case"IEND":this._end=!0;break;case"tRNS":this.decodetRNS(t);break;case"iCCP":this.decodeiCCP(t);break;case"tEXt":this.decodetEXt(t);break;case"pHYs":this.decodepHYs();break;default:this.skip(t)}if(this.offset-n!==t)throw new Error(`Length mismatch while decoding chunk ${e}`);if(this._checkCrc){const n=this.readUint32(),i=t+4,r=In(new Uint8Array(this.buffer,this.byteOffset+this.offset-i-4,i),i);if(r!==n)throw new Error(`CRC mismatch for chunk ${e}. Expected ${n}, found ${r}`)}else this.skip(4)}decodeIHDR(){const t=this._png;t.width=this.readUint32(),t.height=this.readUint32(),t.depth=function(t){if(1!==t&&2!==t&&4!==t&&8!==t&&16!==t)throw new Error(`invalid bit depth: ${t}`);return t}(this.readUint8());const e=this.readUint8();let n;switch(this._colorType=e,e){case Bn.GREYSCALE:n=1;break;case Bn.TRUECOLOUR:n=3;break;case Bn.INDEXED_COLOUR:n=1;break;case Bn.GREYSCALE_ALPHA:n=2;break;case Bn.TRUECOLOUR_ALPHA:n=4;break;default:throw new Error(`Unknown color type: ${e}`)}if(this._png.channels=n,this._compressionMethod=this.readUint8(),this._compressionMethod!==Zn.DEFLATE)throw new Error(`Unsupported compression method: ${this._compressionMethod}`);this._filterMethod=this.readUint8(),this._interlaceMethod=this.readUint8()}decodePLTE(t){if(t%3!=0)throw new RangeError(`PLTE field length must be a multiple of 3. Got ${t}`);const e=t/3;this._hasPalette=!0;const n=[];this._palette=n;for(let t=0;t<e;t++)n.push([this.readUint8(),this.readUint8(),this.readUint8()])}decodeIDAT(t){this._inflator.push(new Uint8Array(this.buffer,this.offset+this.byteOffset,t)),this.skip(t)}decodetRNS(t){if(3===this._colorType){if(t>this._palette.length)throw new Error(`tRNS chunk contains more alpha values than there are palette colors (${t} vs ${this._palette.length})`);let e=0;for(;e<t;e++){const t=this.readByte();this._palette[e].push(t)}for(;e<this._palette.length;e++)this._palette[e].push(255)}}decodeiCCP(t){let e,n="";for(;"\0"!==(e=this.readChar());)n+=e;const i=this.readUint8();if(i!==Zn.DEFLATE)throw new Error(`Unsupported iCCP compression method: ${i}`);const r=this.readBytes(t-n.length-2);this._png.iccEmbeddedProfile={name:n,profile:On(r)}}decodetEXt(t){let e,n="";for(;"\0"!==(e=this.readChar());)n+=e;this._png.text[n]=this.readChars(t-n.length-1)}decodepHYs(){const t=this.readUint32(),e=this.readUint32(),n=this.readByte();this._png.resolution={x:t,y:e,unit:n}}decodeImage(){if(this._inflator.err)throw new Error(`Error while decompressing the data: ${this._inflator.err}`);const t=this._inflator.result;if(this._filterMethod!==Fn.ADAPTIVE)throw new Error(`Filter method ${this._filterMethod} not supported`);if(this._interlaceMethod!==Mn.NO_INTERLACE)throw new Error(`Interlace method ${this._interlaceMethod} not supported`);this.decodeInterlaceNull(t)}decodeInterlaceNull(t){const e=this._png.height,n=this._png.channels*this._png.depth/8,i=this._png.width*n,r=new Uint8Array(this._png.height*i);let a,s,o=Pn,l=0;for(let h=0;h<e;h++){switch(a=t.subarray(l+1,l+1+i),s=r.subarray(h*i,(h+1)*i),t[l]){case 0:Kn(a,s,i);break;case 1:$n(a,s,i,n);break;case 2:Yn(a,s,o,i);break;case 3:Gn(a,s,o,i,n);break;case 4:Xn(a,s,o,i,n);break;default:throw new Error(`Unsupported filter: ${t[l]}`)}o=s,l+=i+1}if(this._hasPalette&&(this._png.palette=this._palette),16===this._png.depth){const t=new Uint16Array(r.buffer);if(jn)for(let e=0;e<t.length;e++)t[e]=(255&(h=t[e]))<<8|h>>8&255;this._png.data=t}else this._png.data=r;var h}}function Kn(t,e,n){for(let i=0;i<n;i++)e[i]=t[i]}function $n(t,e,n,i){let r=0;for(;r<i;r++)e[r]=t[r];for(;r<n;r++)e[r]=t[r]+e[r-i]&255}function Yn(t,e,n,i){let r=0;if(0===n.length)for(;r<i;r++)e[r]=t[r];else for(;r<i;r++)e[r]=t[r]+n[r]&255}function Gn(t,e,n,i,r){let a=0;if(0===n.length){for(;a<r;a++)e[a]=t[a];for(;a<i;a++)e[a]=t[a]+(e[a-r]>>1)&255}else{for(;a<r;a++)e[a]=t[a]+(n[a]>>1)&255;for(;a<i;a++)e[a]=t[a]+(e[a-r]+n[a]>>1)&255}}function Xn(t,e,n,i,r){let a=0;if(0===n.length){for(;a<r;a++)e[a]=t[a];for(;a<i;a++)e[a]=t[a]+e[a-r]&255}else{for(;a<r;a++)e[a]=t[a]+n[a]&255;for(;a<i;a++)e[a]=t[a]+Vn(e[a-r],n[a],n[a-r])&255}}function Vn(t,e,n){const i=t+e-n,r=Math.abs(i-t),a=Math.abs(i-e),s=Math.abs(i-n);return r<=a&&r<=s?t:a<=s?e:n}var qn;!function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.METRE=1]="METRE"}(qn||(qn={}));!function(n,i){var r=(void 0===i?{}:i).expose,a=void 0===r?E:r;function s(n){var i=this;return function(){for(var r=[],a=0;a<arguments.length;a++)r[a]=arguments[a];return t(i,void 0,void 0,(function(){return e(this,(function(t){switch(t.label){case 0:return[4,n.apply(void 0,r)];case 1:return[2,z(t.sent())]}}))}))}}if("function"==typeof n)return a(s(n));var o=Object.entries(n).reduce((function(t,e){var n=e[0],i=e[1];return t[n]=s(i),t}),{});a(o)}((async t=>{return new Wn(t,e).decode();var e}))}();\n',{name:"png-decoder-worker.js"})}async function zt(t){const e=await yt(Tt());return null!=t&&t.addThread(e),(...t)=>e.apply(null,[...t.map((t=>Ct(t)))])}function Ot(t){return tt((()=>zt(t.terminate)),t)}export{Rt as makeController,Tt as makeWorker,Ot as spawnPool,zt as spawnWorker}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{v as t}from"./p-
|
|
4
|
+
import{v as t}from"./p-661f0612.js";import{E as s,b as e}from"./p-e75bba97.js";class r{constructor(){this.overlays=new Map,this.overlaysChanged=new s}addLineFromResult(t){return this.addLine(t.point1,t.point2)}addLine(t,s){const r=e.create(),i={type:"line",id:r,start:t,end:s,dispose:()=>this.remove(r)};return this.addOverlay(i),i}addDistanceVectorFromResult(t){return this.addDistanceVector(t.point1,t.point2)}addDistanceVector(s,r){const i=e.create(),a=t.subtract(s,r),n=t.add(s,t.create(0,-a.y,0)),d={start:s,end:n},h=t.add(n,t.create(0,0,-a.z)),o={start:n,end:h},c=t.add(h,t.create(-a.x,0,0)),p={type:"distance-vector",id:i,x:{start:h,end:c},y:d,z:o,dispose:()=>this.remove(i)};return this.addOverlay(p),p}addOverlay(t){this.overlays.has(t.id)||(this.overlays.set(t.id,t),this.overlaysChanged.emit(this.getOverlays()))}getOverlays(){return Array.from(this.overlays.values())}remove(t){return!!this.overlays.has(t)&&(this.overlays.delete(t),this.overlaysChanged.emit(this.getOverlays()),!0)}onOverlaysChanged(t){return this.overlaysChanged.on(t)}}export{r as M}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{r as e,c as t,h as r,H as n,g as i}from"./p-cafa57a6.js";import{s}from"./p-c738296e.js";import{F as a,C as o,A as l}from"./p-
|
|
4
|
+
import{r as e,c as t,h as r,H as n,g as i}from"./p-cafa57a6.js";import{s}from"./p-c738296e.js";import{F as a,C as o,A as l}from"./p-e38458da.js";import{b as h,a as d,i as m}from"./p-d1584404.js";import"./p-661f0612.js";import"./p-e75bba97.js";let u=class{constructor(r){e(this,r),this.markupBegin=t(this,"markupBegin",7),this.markupEnd=t(this,"markupEnd",7),this.tool="arrow",this.disabled=!1,this.stateMap={},this.handleMarkupEditBegin=()=>{this.markupBegin.emit()},this.handleMarkupEditEnd=()=>{const{markupElement:e}=this.stateMap;if(h(e)){const{points:t,bounds:r}=e;null!=t&&t.length>0&&null!=r&&this.markupEnd.emit(new a({points:t,bounds:r}))}else if(d(e)){const{bounds:t}=e;null!=t&&this.markupEnd.emit(new o({bounds:t}))}else if(m(e)){const{start:t,end:r}=e;null!=t&&null!=r&&this.markupEnd.emit(new l({start:t,end:r}))}}}async handleViewerChanged(){null!=this.stateMap.markupElement&&(this.stateMap.markupElement.viewer=this.viewer)}handleToolChanged(){this.updateMarkupElement()}handleArrowTemplateIdChanged(){this.updateMarkupElement()}handleCircleTemplateIdChanged(){this.updateMarkupElement()}handleFreeformTemplateIdChanged(){this.updateMarkupElement()}handleDisabledChanged(){this.updateMarkupElement()}componentDidLoad(){this.updateMarkupElement()}async reset(){const{markupElement:e}=this.stateMap;h(e)?(e.points=void 0,e.bounds=void 0,e.mode="create"):d(e)?(e.bounds=void 0,e.mode="create"):m(e)&&(e.start=void 0,e.end=void 0,e.mode="create")}render(){return this.disabled?r(n,null):r(n,null,"arrow"===this.tool||"circle"===this.tool||"freeform"===this.tool?r("slot",null):`Unsupported tool type '${this.tool}'.`)}createArrowMarkupElement(){if(null!=this.arrowTemplateId){const e=s(window.document.body,this.arrowTemplateId,m,(()=>console.warn(`Arrow template with ID ${this.arrowTemplateId} not found. Using default arrow element.`)),(()=>console.warn("Arrow template does not contain a vertex-viewer-markup-arrow. Using default arrow element.")));if(null!=e)return e}return document.createElement("vertex-viewer-markup-arrow")}createCircleMarkupElement(){if(null!=this.circleTemplateId){const e=s(window.document.body,this.circleTemplateId,d,(()=>console.warn(`Circle template with ID ${this.circleTemplateId} not found. Using default circle element.`)),(()=>console.warn("Circle template does not contain a vertex-viewer-markup-circle. Using default circle element.")));if(null!=e)return e}return document.createElement("vertex-viewer-markup-circle")}createFreeformMarkupElement(){if(null!=this.freeformTemplateId){const e=s(window.document.body,this.freeformTemplateId,h,(()=>console.warn(`Freeform template with ID ${this.freeformTemplateId} not found. Using default freeform element.`)),(()=>console.warn("Freeform template does not contain a vertex-viewer-markup-freeform. Using default freeform element.")));if(null!=e)return e}return document.createElement("vertex-viewer-markup-freeform")}createNewMarkupElement(){switch(this.tool){case"arrow":return this.createArrowMarkupElement();case"circle":return this.createCircleMarkupElement();case"freeform":return this.createFreeformMarkupElement()}}updateMarkupElement(){const{markupElement:e}=this.stateMap;if(null!=e&&(e.remove(),e.dispose(),e.viewer=void 0,e.removeEventListener("editBegin",this.handleMarkupEditBegin),e.removeEventListener("editEnd",this.handleMarkupEditEnd)),!this.disabled){const e=this.createNewMarkupElement();e.mode="create",e.viewer=this.viewer,e.addEventListener("editBegin",this.handleMarkupEditBegin),e.addEventListener("editEnd",this.handleMarkupEditEnd),this.stateMap.markupElement=e,this.hostEl.append(e)}}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],tool:["handleToolChanged"],arrowTemplateId:["handleArrowTemplateIdChanged"],circleTemplateId:["handleCircleTemplateIdChanged"],freeformTemplateId:["handleFreeformTemplateIdChanged"],disabled:["handleDisabledChanged"]}}};u.style=':host{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}:host([elevated=""]){z-index:100}';export{u as vertex_viewer_markup_tool}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{p as n}from"./p-
|
|
4
|
+
import{p as n}from"./p-661f0612.js";function t(t,r){const o=n.create(t.clientX,t.clientY);return null==r?o:n.subtract(o,n.create(r.left,r.top))}function r(n){const{x:t,y:r}=n;return`translate(-50%, -50%) translate(${t}px, ${r}px)`}function o(n){var t,r;return"string"==typeof n?n:[`url("${n.url}")`,null!==(t=n.offsetX)&&void 0!==t?t:0,null!==(r=n.offsetY)&&void 0!==r?r:0,", auto"].join(" ")}export{r as a,o as c,t as g}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import{r as t,c as i,h as s,H as n,g as e}from"./p-cafa57a6.js";import{p as h,v as o,h as r,j as a,r as l,b as c,q as u,d}from"./p-661f0612.js";import{l as v,m as w,n as f,t as p,E as m,p as g,o as y,q as b,S as C,r as P,s as T,u as I,x,y as D,z as S,B as k,W as E,g as M,C as O,G as j}from"./p-77be081a.js";import{E as A,m as R,c as F,o as B,u as z,a as N,b as $}from"./p-e75bba97.js";import{c as L}from"./p-f482325b.js";import{p as K}from"./p-809d09d9.js";import{C as W}from"./p-3561d910.js";import{g as V,c as q}from"./p-487e054a.js";import{I as H,f as U,C as G,W as J,a as _,b as X,d as Y,V as Q,e as Z,g as tt,h as it,i as st,S as nt}from"./p-d32b54cb.js";import{V as et}from"./p-a93a63a9.js";import"./p-112455b1.js";class ht{constructor(t){this.viewer=t,this.handleInteractionStarted=()=>{this.invalidateStencilBuffer(),this.pendingInteractionFinished=new Promise((t=>{this.pendingInteractionFinishedResolver=t}))},this.handleInteractionFinished=()=>{var t;null===(t=this.pendingInteractionFinishedResolver)||void 0===t||t.call(this),this.pendingInteractionFinished=void 0,this.pendingInteractionFinishedResolver=void 0},this.invalidateStencilBuffer=()=>{this.pendingStencilBuffer=void 0},t.addEventListener("interactionStarted",this.handleInteractionStarted),t.addEventListener("interactionFinished",this.handleInteractionFinished),t.addEventListener("frameReceived",(()=>{this.invalidateStencilBuffer()}))}async fetch(){var t;const i=await this.viewer.isSceneReady()?await this.viewer.scene():void 0,s=null!=i&&(i.crossSectioning().current().sectionPlanes.length>0||null!=this.viewer.featureLines),n=null===(t=this.viewer.frame)||void 0===t?void 0:t.scene.camera;if(s&&null!=this.viewer.stream&&null!=n){const t=await this.viewer.stream.getStencilBuffer({includeDepthBuffer:!0}),{stencilBuffer:i,depthBuffer:s,imageAttributes:e}=v(t),[h,o]=await Promise.all([w(new Uint8Array(i)),w(new Uint8Array(s))]);return ot.fromPng(h,e,i,f.fromPng(o,n,e))}}latest(){return null==this.pendingStencilBuffer&&(this.pendingStencilBuffer=this.fetch()),this.pendingStencilBuffer}async latestAfterInteraction(){return await this.pendingInteractionFinished,this.latest()}}class ot{constructor(t,i,s,n,e){this.imageAttr=t,this.imageBytes=i,this.pixelBytes=s,this.imageChannels=n,this.depthBuffer=e}static fromPng(t,i,s,n){if(t.data instanceof Uint8Array){if(1!==t.channels)throw new Error("Expected stencil PNG to have 1 color channel");return new ot(i,s,t.data,t.channels,n)}throw new Error("Expected stencil PNG to have depth of 8-bit")}getValue(t){const{width:i,height:s}=this.imageAttr.imageRect,n=h.subtract(t,this.imageAttr.imageRect),e=1/this.imageAttr.imageScale,o=h.scale(n,e,e);if(o.x>=0&&o.y>=0&&o.x<i&&o.y<s){const t=Math.floor(o.x)+Math.floor(o.y)*i;return this.pixelBytes[t]}return 0}hitTest(t){return 0!==this.getValue(t)}snapToNearestPixel(t,i,s=(()=>!0)){const n=2*i,e=h.create(t.x-i,t.y-i),o=[];for(let r=0;r<n*n;r++){const a=r%n,l=Math.floor(r/n),c=h.add(e,{x:a,y:l});if(h.distance(c,t)<=i){const t=this.getValue(c);255===t&&s(t)&&o.push(c)}}const r=o.sort(((i,s)=>h.distance(i,t)-h.distance(s,t)))[0];return null!=r?h.create(Math.floor(r.x)+.5,Math.floor(r.y)+.5):t}}class rt{constructor(t,i,s){this.stream=t,this.configProvider=i,this.imageScaleProvider=s}predicate(t){return t.altKey&&!t.shiftKey}async fn(t){var i;const s=this.imageScaleProvider(),n=await this.stream.hitItems({point:h.scale(t.position,(null==s?void 0:s.x)||1,(null==s?void 0:s.y)||1)},!0);null!=(null===(i=n.hitItems)||void 0===i?void 0:i.hits)&&n.hitItems.hits.length>0?await this.stream.flyTo({itemId:n.hitItems.hits[0].itemId,animation:{duration:p(this.configProvider().animation.durationMs)}}):console.debug(`No hit results found for fly to part [position={x: ${t.position.x}, y: ${t.position.y}}]`)}}class at{constructor(t,i,s,n,e,h,o,r,a,l,c){this.stream=t,this.cursors=i,this.getConfig=s,this.getScene=n,this.getFrame=e,this.getViewport=h,this.tapEmitter=o,this.doubleTapEmitter=r,this.longPressEmitter=a,this.interactionStartedEmitter=l,this.interactionFinishedEmitter=c,this.tap=this.tap.bind(this),this.doubleTap=this.doubleTap.bind(this),this.longPress=this.longPress.bind(this),this.emitTapEvent=this.emitTapEvent.bind(this)}addCursor(t,i){return this.cursors.add(t,i)}async getWorldPointFromViewport(t){const i=this.getViewport(),s=this.getFrame();if(null==s)throw new Error("Cannot get world point. Frame is undefined.");const n=await s.depthBuffer();return null!=n?i.transformPointToWorldSpace(t,n,.5):void 0}async getEntityTypeAtPoint(t){var i;const s=this.getViewport(),n=await(null===(i=this.getFrame())||void 0===i?void 0:i.featureMap());if(null!=n){const i=s.transformPointToFrame(t,n);return n.getEntityType(i)}return m.NO_GEOMETRY}getRayFromPoint(t){const i=this.getViewport(),s=this.getFrame();if(null!=s)return i.transformPointToRay(t,s.image,s.scene.camera);throw new Error("Cannot get camera. Frame is undefined.")}async tap(t,i={},s=0){this.emitTapEvent(this.tapEmitter.emit,t,i,s)}async doubleTap(t,i={},s=0){this.emitTapEvent(this.doubleTapEmitter.emit,t,i,s)}async longPress(t,i={},s=0){this.emitTapEvent(this.longPressEmitter.emit,t,i,s)}async beginInteraction(){this.isInteracting()||(this.interactionStartedEmitter.emit(),this.currentCamera=this.getScene().camera(),await this.stream.beginInteraction())}async transformCamera(t){var i;if(this.isInteracting()){const s=this.getScene(),n=this.getViewport(),e=this.getFrame(),h=await(null==e?void 0:e.depthBuffer());this.currentCamera=null!=this.currentCamera&&null!=n&&null!=e?t({camera:this.currentCamera,viewport:n,scale:s.scale(),boundingBox:s.boundingBox(),frame:e,depthBuffer:h}):void 0,await(null===(i=this.currentCamera)||void 0===i?void 0:i.render())}}async twistCamera(...t){return this.transformCamera((({camera:i,viewport:s})=>{const n=o.normalize(o.subtract(i.lookAt,i.position));if(1===t.length&&"number"==typeof t[0]){const s=r.toRadians(-t[0]);return i.rotateAroundAxis(s,n)}if(1===t.length){const n=h.create(s.width/2,s.height/2),e=r.toDegrees(r.fromPoints(n,t[0])),a=null!=this.lastAngle?e-this.lastAngle:0;this.lastAngle=e;const l=o.normalize(o.subtract(i.lookAt,i.position)),c=r.toRadians(-a);return i.rotateAroundAxis(c,l)}return i}))}async panCameraToScreenPoint(t){return this.transformCamera((({camera:i,frame:s,viewport:n,depthBuffer:e})=>{if(null==this.panData){const h=i.toFrameCamera(),o=h.direction,r=n.transformPointToRay(t,s.image,h),c=a.fromNormalAndCoplanarPoint(o,i.lookAt),u=l.intersectPlane(r,c);if(null==u)return console.warn("Cannot determine fallback for pan. Ray does not intersect plane."),i;const d=null!=e?this.getWorldPoint(t,e,u):u,v=a.fromNormalAndCoplanarPoint(o,d);this.panData={hitPt:d,hitPlane:v,startingCamera:h}}if(null!=this.panData){const{hitPt:e,hitPlane:h,startingCamera:r}=this.panData,a=n.transformPointToRay(t,s.image,r),c=l.intersectPlane(a,h);if(null!=c){const t=o.subtract(e,c);return i.update(r).moveBy(t)}}return i}))}async viewAll(){await this.getScene().camera().viewAll().render()}async rotateCamera(t){return this.transformCamera((({camera:i,viewport:s})=>{const n=o.normalize(i.up),e=o.normalize(o.subtract(i.lookAt,i.position)),h=o.cross(n,e),r=o.cross(e,h),a=o.normalize({x:t.x*h.x+t.y*r.x,y:t.x*h.y+t.y*r.y,z:t.x*h.z+t.y*r.z}),l=o.cross(a,e),c=3*Math.PI*t.x/s.width,u=3*Math.PI*t.y/s.height,d=Math.abs(c)+Math.abs(u);return i.rotateAroundAxis(d,l)}))}async rotateCameraAtPoint(t,i){return this.transformCamera((({camera:s,viewport:n,boundingBox:e,depthBuffer:h})=>{if(null==this.worldRotationPoint){const t=c.center(e);this.worldRotationPoint=null!=h?this.getWorldPoint(i,h,t):s.lookAt}const r=o.normalize(s.up),a=o.normalize(o.subtract(s.lookAt,s.position)),l=o.cross(r,a),u=o.cross(a,l),d=o.normalize({x:t.x*l.x+t.y*u.x,y:t.x*l.y+t.y*u.y,z:t.x*l.z+t.y*u.z}),v=o.cross(d,a),w=3*Math.PI*t.x/n.width,f=3*Math.PI*t.y/n.height,p=Math.abs(w)+Math.abs(f),m=s.rotateAroundAxisAtPoint(p,this.worldRotationPoint,v);return m.update({lookAt:o.add(o.scale(Math.abs(s.signedDistanceToBoundingBoxCenter())/o.magnitude(m.viewVector),m.viewVector),m.position)})}))}async zoomCamera(t){return this.transformCamera((({camera:i,viewport:s})=>{const n=i.viewVector,e=o.normalize(n),h=o.magnitude(n),r=o.add(i.position,o.scale(3*h*t/s.height,e));return i.update({position:r})}))}async zoomCameraToPoint(t,i){return this.transformCamera((({camera:s,viewport:n,frame:e,depthBuffer:h})=>{const r=e.scene.camera,c=r.direction,u=s.toFrameCamera(),d=n.transformPointToRay(t,e.image,u);if(null==this.zoomData){const i=a.fromNormalAndCoplanarPoint(c,r.lookAt),n=l.intersectPlane(d,i);if(null==n)return console.warn("Cannot determine fallback point for zoom. Ray does not intersect plane."),s;const e=null!=h?this.getWorldPoint(t,h,n):n,o=a.fromNormalAndCoplanarPoint(c,e);this.zoomData={hitPt:e,hitPlane:o}}if(null!=this.zoomData){const{hitPt:t,hitPlane:e}=this.zoomData,h=o.distance(s.position,t),r=l.at(d,6*h*i/n.height),c=a.projectPoint(e,r),u=s.update({position:r,lookAt:c});if(o.distance(r,c)>=u.near)return u}return s}))}async endInteraction(){this.isInteracting()&&(this.currentCamera=void 0,this.worldRotationPoint=void 0,this.panData=void 0,this.zoomData=void 0,this.resetLastAngle(),this.interactionFinishedEmitter.emit(),await this.stream.endInteraction())}resetLastAngle(){this.lastAngle=void 0}isInteracting(){return null!=this.currentCamera}pixelThreshold(t){return(this.isCoarseInputDevice(t)?this.getConfig().coarsePointerThreshold:this.getConfig().finePointerThreshold)*window.devicePixelRatio}async hitItems(t){var i;const s=await this.getScene().raycaster().hitItems(t);return null!==(i=null==s?void 0:s.hits)&&void 0!==i?i:[]}emitTapEvent(t,i,s={},n=0){const{altKey:e=!1,ctrlKey:h=!1,metaKey:o=!1,shiftKey:r=!1}=s;t({position:i,altKey:e,ctrlKey:h,metaKey:o,shiftKey:r,buttons:n})}isCoarseInputDevice(t){return t||window.matchMedia("(pointer: coarse)").matches}getWorldPoint(t,i,s){const n=this.getViewport(),e=n.transformPointToFrame(t,i);return i.hitTest(e)?n.transformPointToWorldSpace(t,i):s}}class lt extends at{constructor(t,i,s,n,e,h,o,r,a,l,c){super(t,i,s,n,e,h,o,r,a,l,c)}async panCameraByDelta(t){return this.transformCamera((({camera:i,viewport:s})=>{const n=i.viewVector,e=o.normalize(i.up),h=o.normalize(n),r=o.magnitude(n)*Math.tan(i.fovHeight),a=t.x*r/s.width,l=t.y/s.width*r,c=o.cross(e,h),u=o.cross(h,c),d=o.add(o.scale(a,c),o.scale(l,u));return i.moveBy(d)}))}async panCameraToScreenPoint(t){return this.transformCamera((({camera:i,frame:s,viewport:n})=>{if(null==this.panData){const e=i.toFrameCamera(),h=e.direction,o=n.transformPointToOrthographicRay(t,s.image,e),r=a.fromNormalAndCoplanarPoint(h,i.lookAt),c=l.intersectPlane(o,r);if(null==c)return console.warn("Cannot determine fallback for pan. Ray does not intersect plane."),i;this.panData={hitPt:c,hitPlane:r,startingCamera:e}}if(null!=this.panData){const{hitPt:e,hitPlane:h,startingCamera:r}=this.panData,a=n.transformPointToOrthographicRay(t,s.image,r),c=l.intersectPlane(a,h);if(null!=c){const t=o.subtract(e,c);return i.update({lookAt:o.add(r.lookAt,t)})}}return i}))}async zoomCameraToPoint(t,i){return this.transformCamera((({camera:s,viewport:n,frame:e,depthBuffer:r})=>{if(null==this.orthographicZoomData||h.distance(t,this.orthographicZoomData.startingScreenPt)>2){const i=s.toFrameCamera(),h=i.direction,o=n.transformPointToOrthographicRay(t,e.image,i),c=a.fromNormalAndCoplanarPoint(h,i.lookAt),u=l.intersectPlane(o,c);if(null==u)return console.warn("Cannot determine fallback point for zoom. Ray does not intersect plane."),s;const d=null!=r?this.getWorldPoint(t,r,u):u,v=a.fromNormalAndCoplanarPoint(h,d);this.orthographicZoomData={hitPt:d,hitPlane:v,startingScreenPt:t}}if(null!=this.orthographicZoomData){const{hitPt:t,hitPlane:e}=this.orthographicZoomData,h=s.fovHeight/n.height*2*i,r=Math.max(1,s.fovHeight-h),l=a.projectPoint(e,s.lookAt),c=o.scale((s.fovHeight-r)/s.fovHeight,o.subtract(t,l));return s.update({lookAt:o.add(s.lookAt,c),fovHeight:Math.max(1,s.fovHeight-h)})}return s}))}getWorldPoint(t,i,s){const n=this.getViewport(),e=n.transformPointToFrame(t,i);return i.hitTest(e)?n.transformPointToOrthographicWorldSpace(t,i):s}async transformCamera(t){var i;if(this.isInteracting()){const s=this.getScene(),n=this.getViewport(),e=this.getFrame(),h=await(null==e?void 0:e.depthBuffer());this.currentCamera=null!=this.currentCamera&&null!=n&&null!=e?t({camera:this.currentCamera,viewport:n,scale:s.scale(),boundingBox:s.boundingBox(),frame:e,depthBuffer:h}):void 0,await(null===(i=this.currentCamera)||void 0===i?void 0:i.render())}}}class ct extends at{constructor(t,i,s,n,e,h,o,r,a,l,c){super(t,i,s,n,e,h,o,r,a,l,c)}async panCameraByDelta(t){return this.transformCamera((({camera:i,viewport:s})=>{var n;const e=i.viewVector,h=o.normalize(i.up),r=o.normalize(e),a=o.magnitude(e)*Math.tan(null!==(n=i.fovY)&&void 0!==n?n:45),l=t.x*a/s.width,c=t.y/s.width*a,u=o.cross(h,r),d=o.cross(r,u),v=o.add(o.scale(l,u),o.scale(c,d));return i.moveBy(v)}))}async transformCamera(t){var i;if(this.isInteracting()){const s=this.getScene(),n=this.getViewport(),e=this.getFrame(),h=await(null==e?void 0:e.depthBuffer());this.currentCamera=null!=this.currentCamera&&null!=n&&null!=e?t({camera:this.currentCamera,viewport:n,scale:s.scale(),boundingBox:s.boundingBox(),frame:e,depthBuffer:h}):void 0,await(null===(i=this.currentCamera)||void 0===i?void 0:i.render())}}}class ut{constructor(t,i,s,n){this.stream=t,this.configProvider=i,this.imageScaleProvider=s,this.sceneProvider=n}predicate(t){return t.altKey&&t.shiftKey}async fn(t){var i,s;const n=this.imageScaleProvider(),e=await this.stream.hitItems({point:h.scale(t.position,(null==n?void 0:n.x)||1,(null==n?void 0:n.y)||1)},!0);if(null!=(null===(i=e.hitItems)||void 0===i?void 0:i.hits)&&e.hitItems.hits.length>0&&null!=e.hitItems.hits[0].hitPoint){const i=this.sceneProvider().camera(),n=e.hitItems.hits[0];null!=n.hitPoint&&null!=n.hitPoint.x&&null!=n.hitPoint.y&&null!=n.hitPoint.z?await this.stream.flyTo({camera:i.update({lookAt:o.create(n.hitPoint.x,n.hitPoint.y,n.hitPoint.z)}).toFrameCamera(),animation:{duration:p(this.configProvider().animation.durationMs)}}):console.debug(`No hit position found for fly to position [position={x: ${t.position.x}, y: ${t.position.y}}, hit-id={${null===(s=n.itemId)||void 0===s?void 0:s.hex}}]`)}else console.debug(`No hit results found for fly to position [position={x: ${t.position.x}, y: ${t.position.y}}]`)}}const dt=[.2,.15,.25,.25,.15];class vt{constructor(t,i,s,n,e,h,o,r,a){this.downEvent=t,this.upEvent=i,this.moveEvent=s,this.rotateInteraction=n,this.rotatePointInteraction=e,this.zoomInteraction=h,this.panInteraction=o,this.twistInteraction=r,this.getConfig=a,this.primaryInteraction=this.rotateInteraction,this.isDragging=!1,this.keyboardControls=!1,this.disableIndividualInteractions=!1,this.primaryInteractionTypeChange=new A,this.handleDownEvent=this.handleDownEvent.bind(this),this.handleMouseWheel=this.handleMouseWheel.bind(this),this.handleWindowMove=this.handleWindowMove.bind(this),this.handleWindowUp=this.handleWindowUp.bind(this),this.handleDoubleClick=this.handleDoubleClick.bind(this)}initialize(t,i){this.element=t,this.interactionApi=i,t.addEventListener(this.downEvent,this.handleDownEvent),t.addEventListener("mousedown",this.handleDoubleClick),t.addEventListener("wheel",this.handleMouseWheel)}dispose(){var t,i,s;null===(t=this.element)||void 0===t||t.removeEventListener(this.downEvent,this.handleDownEvent),null===(i=this.element)||void 0===i||i.removeEventListener("mousedown",this.handleDoubleClick),null===(s=this.element)||void 0===s||s.removeEventListener("wheel",this.handleMouseWheel),this.element=void 0}onPrimaryInteractionTypeChange(t){return this.primaryInteractionTypeChange.on(t)}setCurrentInteractionType(t){var i;switch(t){case"rotate":this.currentInteraction=this.rotateInteraction;break;case"zoom":this.currentInteraction=this.zoomInteraction;break;case"pan":this.currentInteraction=this.panInteraction;break;case"twist":this.currentInteraction=this.twistInteraction;break;case"rotate-point":this.currentInteraction=this.rotatePointInteraction;break;default:this.currentInteraction=void 0}if(this.draggingInteraction){const t=this.draggingInteraction.getPosition();this.draggingInteraction=this.currentInteraction||this.primaryInteraction,null===(i=this.interactionApi)||void 0===i||i.resetLastAngle(),this.draggingInteraction.setPosition(t)}}getPrimaryInteractionType(){return this.primaryInteraction.getType()}getCurrentInteractionType(){return(this.currentInteraction||this.primaryInteraction).getType()}setPrimaryInteractionType(t){switch(t){case"rotate":this.primaryInteraction=this.rotateInteraction;break;case"rotate-point":this.primaryInteraction=this.rotatePointInteraction;break;case"zoom":this.primaryInteraction=this.zoomInteraction;break;case"pan":this.primaryInteraction=this.panInteraction}this.primaryInteractionTypeChange.emit()}setDefaultKeyboardControls(t){this.keyboardControls=t}handleDownEvent(t){this.interactionTimer=window.setTimeout((()=>{this.downPosition=h.create(t.screenX,t.screenY),this.downPositionCanvas=this.getCanvasPosition(t),this.interactionTimer=void 0,null!=this.lastMoveEvent&&this.handleWindowMove(this.lastMoveEvent)}),this.getConfig().interactions.interactionDelay),window.addEventListener(this.moveEvent,this.handleWindowMove),window.addEventListener(this.upEvent,this.handleWindowUp)}handleWindowMove(t){if(null==this.interactionTimer){if(this.disableIndividualInteractions)return;const i=h.create(t.screenX,t.screenY),s=null!=this.interactionApi?this.interactionApi.pixelThreshold(this.isTouch(t)):2;null!=this.downPosition&&h.distance(i,this.downPosition)>=s&&!this.isDragging&&(this.beginDrag(t),this.isDragging=!0),this.isDragging&&this.drag(t)}this.lastMoveEvent=t}async handleWindowUp(t){this.isDragging&&(this.endDrag(t),this.isDragging=!1),null!=this.interactionTimer&&(window.clearTimeout(this.interactionTimer),this.interactionTimer=void 0),window.removeEventListener(this.moveEvent,this.handleWindowMove),window.removeEventListener(this.upEvent,this.handleWindowUp),this.lastMoveEvent=void 0}async handleDoubleClick(t){2===t.detail&&4===t.buttons&&null!=this.interactionApi&&this.interactionApi.viewAll()}beginDrag(t){this.keyboardControls&&t.metaKey&&t.shiftKey?this.currentInteraction=this.rotatePointInteraction:this.keyboardControls&&t.shiftKey?this.currentInteraction=this.zoomInteraction:this.keyboardControls&&(t.metaKey||t.ctrlKey)?this.currentInteraction=this.panInteraction:this.keyboardControls&&t.altKey&&(this.currentInteraction=this.rotateInteraction),1===t.buttons||4===t.buttons?this.draggingInteraction=this.currentInteraction||this.primaryInteraction:2===t.buttons&&(this.draggingInteraction=this.panInteraction),null!=this.draggingInteraction&&null!=this.interactionApi&&null!=this.element&&(this.zoomInteraction.endDrag(t,this.interactionApi),this.draggingInteraction.beginDrag(t,this.downPositionCanvas||h.create(t.clientX,t.clientY),this.interactionApi,this.element))}drag(t){this.currentInteraction=this.keyboardControls&&t.altKey&&t.shiftKey?this.twistInteraction:void 0,this.draggingInteraction=this.currentInteraction||this.draggingInteraction||this.primaryInteraction,null!=this.draggingInteraction&&null!=this.interactionApi&&this.draggingInteraction.drag(t,this.interactionApi)}endDrag(t){this.keyboardControls&&this.currentInteraction===this.twistInteraction&&(this.currentInteraction=void 0),null!=this.draggingInteraction&&null!=this.interactionApi&&(this.draggingInteraction.endDrag(t,this.interactionApi),this.draggingInteraction=void 0)}handleMouseWheel(t){if(t.preventDefault(),null!=this.element&&null!=this.interactionApi&&4!==t.buttons){const i=-this.wheelDeltaToPixels(t.deltaY,t.deltaMode)/10,s=this.element.getBoundingClientRect(),n=V(t,s);dt.forEach(((t,s)=>{window.setTimeout((()=>{null!=this.interactionApi&&this.zoomInteraction.zoomToPoint(n,i*t,this.interactionApi)}),2*s)}))}}wheelDeltaToPixels(t,i){null==this.computedBodyStyle&&(this.computedBodyStyle=window.getComputedStyle(document.body));const s=null==this.computedBodyStyle.fontSize||""===this.computedBodyStyle.fontSize||isNaN(parseFloat(this.computedBodyStyle.fontSize))?19.2:1.2*parseFloat(this.computedBodyStyle.fontSize);return 1===i?null==this.computedBodyStyle.lineHeight||""===this.computedBodyStyle.lineHeight||isNaN(parseFloat(this.computedBodyStyle.lineHeight))?t*s:t*parseFloat(this.computedBodyStyle.lineHeight):2===i?null==this.computedBodyStyle.height||""===this.computedBodyStyle.height||isNaN(parseFloat(this.computedBodyStyle.height))?t*window.innerHeight:t*parseFloat(this.computedBodyStyle.height):t}getCanvasPosition(t){var i;const s=null===(i=this.element)||void 0===i?void 0:i.getBoundingClientRect(),n=null!=s?h.create(s.left,s.top):void 0;return null!=n?h.subtract(h.create(t.clientX,t.clientY),n):void 0}isTouch(t){return null!=window.PointerEvent&&t instanceof PointerEvent&&"touch"===t.pointerType}}class wt{setPosition(t){this.currentPosition=t}getPosition(){return this.currentPosition}getType(){return this.type}beginDrag(t,i,s,n){}drag(t,i){}endDrag(t,i){null!=this.currentPosition&&(i.endInteraction(),this.currentPosition=void 0)}zoom(t,i){}}class ft extends wt{constructor(){super(...arguments),this.type="rotate"}beginDrag(t,i,s){null==this.currentPosition&&(this.currentPosition=h.create(t.screenX,t.screenY),s.beginInteraction())}drag(t,i){if(null!=this.currentPosition){const s=h.create(t.screenX,t.screenY),n=h.subtract(s,this.currentPosition);i.rotateCamera(n),this.currentPosition=s}}endDrag(t,i){super.endDrag(t,i)}}class pt extends wt{constructor(){super(...arguments),this.type="rotate-point"}beginDrag(t,i,s){null==this.currentPosition&&(this.currentPosition=h.create(t.screenX,t.screenY),this.startingPosition=i,s.beginInteraction())}drag(t,i){if(null!=this.currentPosition&&null!=this.startingPosition){const s=h.create(t.screenX,t.screenY),n=h.subtract(s,this.currentPosition);i.rotateCameraAtPoint(n,this.startingPosition),this.currentPosition=s}}endDrag(t,i){super.endDrag(t,i)}}class mt extends wt{constructor(t=1e3){super(),this.interactionTimeout=t,this.type="zoom",this.didTransformBegin=!1}beginDrag(t,i,s,n){if(null==this.currentPosition){this.currentPosition=h.create(t.clientX,t.clientY);const i=n.getBoundingClientRect(),e=V(t,i);this.startPt=e,s.beginInteraction()}}drag(t,i){if(null!=this.currentPosition){const s=h.create(t.clientX,t.clientY),n=h.subtract(s,this.currentPosition);null!=this.startPt&&(i.zoomCameraToPoint(this.startPt,n.y),this.currentPosition=s)}}endDrag(t,i){super.endDrag(t,i),this.stopInteractionTimer(),this.didTransformBegin=!1,this.startPt=void 0}zoom(t,i){this.operateWithTimer(i,(()=>i.zoomCamera(t)))}zoomToPoint(t,i,s){this.operateWithTimer(s,(()=>s.zoomCameraToPoint(t,i)))}beginInteraction(t){this.didTransformBegin=!0,t.beginInteraction()}endInteraction(t){this.didTransformBegin=!1,t.endInteraction()}resetInteractionTimer(t){this.stopInteractionTimer(),this.startInteractionTimer(t)}startInteractionTimer(t){this.interactionTimer=window.setTimeout((()=>{this.interactionTimer=void 0,this.endInteraction(t)}),this.interactionTimeout)}stopInteractionTimer(){null!=this.interactionTimer&&(window.clearTimeout(this.interactionTimer),this.interactionTimer=void 0)}operateWithTimer(t,i){this.didTransformBegin||this.beginInteraction(t),this.resetInteractionTimer(t),i()}}class gt extends wt{constructor(){super(...arguments),this.type="pan"}beginDrag(t,i,s,n){null==this.currentPosition&&(this.currentPosition=h.create(t.screenX,t.screenY),this.canvasRect=n.getBoundingClientRect(),s.beginInteraction())}drag(t,i){if(null!=this.currentPosition&&null!=this.canvasRect){const s=V(t,this.canvasRect);i.panCameraToScreenPoint(s),this.currentPosition=s}}endDrag(t,i){super.endDrag(t,i)}}class yt extends wt{constructor(){super(...arguments),this.type="twist"}beginDrag(t,i,s){this.currentPosition=h.create(t.clientX,t.clientY),s.beginInteraction()}drag(t,i){const s=h.create(t.clientX,t.clientY);this.currentPosition=s,i.twistCamera(s)}endDrag(t,i){super.endDrag(t,i)}}class bt extends vt{constructor(t,i=new ft,s=new pt,n=new mt,e=new gt,h=new yt){super("mousedown","mouseup","mousemove",i,s,n,e,h,t)}}class Ct{initialize(t,i){this.element=t,this.interactionApi=i}dispose(){this.element=void 0}handleTwoPointTouchMove(t,i){var s,n,e,o;if(null!=this.currentPosition1&&null!=this.currentPosition2){const a=h.scale(h.add(h.subtract(t,this.currentPosition1),h.subtract(i,this.currentPosition2)),.25,.25),l=.5*(h.distance(t,i)-h.distance(this.currentPosition1,this.currentPosition2)),c=u.create(h.subtract(this.currentPosition1,this.currentPosition2),h.subtract(t,i)),d=r.toDegrees(Math.atan2(u.determinant(c),u.dot(c)));null===(s=this.interactionApi)||void 0===s||s.beginInteraction(),null===(n=this.interactionApi)||void 0===n||n.zoomCamera(l),null===(e=this.interactionApi)||void 0===e||e.panCameraByDelta(a),console.log(Math.abs(d)),Math.abs(d)>.5&&(null===(o=this.interactionApi)||void 0===o||o.twistCamera(d))}this.currentPosition1=t,this.currentPosition2=i}}class Pt extends Ct{constructor(){super(),this.touchPoints={},this.handlePointerDown=this.handlePointerDown.bind(this),this.handlePointerMove=this.handlePointerMove.bind(this),this.handlePointerUp=this.handlePointerUp.bind(this)}dispose(){var t;null===(t=this.element)||void 0===t||t.removeEventListener("pointerdown",this.handlePointerDown),super.dispose()}initialize(t,i){super.initialize(t,i),t.addEventListener("pointerdown",this.handlePointerDown)}handlePointerDown(t){const i=h.create(t.screenX,t.screenY);this.touchPoints=Object.assign(Object.assign({},this.touchPoints),{[t.pointerId]:i}),1===Object.keys(this.touchPoints).length&&(window.addEventListener("pointermove",this.handlePointerMove),window.addEventListener("pointerup",this.handlePointerUp))}handlePointerMove(t){null!=this.touchPoints[t.pointerId]&&(this.touchPoints[t.pointerId]=h.create(t.screenX,t.screenY));const i=Object.keys(this.touchPoints);2===i.length&&this.handleTwoPointTouchMove(this.touchPoints[i[0]],this.touchPoints[i[1]])}handlePointerUp(t){var i;delete this.touchPoints[t.pointerId];const s=Object.keys(this.touchPoints);1===s.length&&(null===(i=this.interactionApi)||void 0===i||i.endInteraction(),this.currentPosition1=void 0,this.currentPosition2=void 0),0===s.length&&(window.removeEventListener("pointermove",this.handlePointerMove),window.removeEventListener("pointerup",this.handlePointerUp))}}class Tt extends vt{constructor(t){super("pointerdown","pointerup","pointermove",new ft,new pt,new mt,new gt,new yt,t),this.touchPoints=new Set,this.handlePointerDown=this.handlePointerDown.bind(this),this.handlePointerUp=this.handlePointerUp.bind(this)}initialize(t,i){super.initialize(t,i),t.addEventListener("pointerdown",this.handlePointerDown)}handlePointerDown(t){this.downPosition=h.create(t.screenX,t.screenY),this.touchPoints.add(t.pointerId),1===this.touchPoints.size&&window.addEventListener("pointerup",this.handlePointerUp),2===this.touchPoints.size&&(this.disableIndividualInteractions=!0)}handlePointerUp(t){this.touchPoints.delete(t.pointerId),this.touchPoints.size<2&&(this.disableIndividualInteractions=!1),0===this.touchPoints.size&&window.removeEventListener("pointerup",this.handlePointerUp)}}class It{constructor(t,i,s,n){this.downEvent=t,this.upEvent=i,this.moveEvent=s,this.getConfig=n,this.handleDown=this.handleDown.bind(this),this.handleUp=this.handleUp.bind(this),this.handleMove=this.handleMove.bind(this),this.handleTouchStart=this.handleTouchStart.bind(this),this.handleTouchMove=this.handleTouchMove.bind(this),this.handleTouchEnd=this.handleTouchEnd.bind(this),this.handlePointerMove=this.handlePointerMove.bind(this),this.handlePointerEnd=this.handlePointerEnd.bind(this),this.clearPositions=this.clearPositions.bind(this),this.restartDoubleTapTimer=this.restartDoubleTapTimer.bind(this),this.clearDoubleTapTimer=this.clearDoubleTapTimer.bind(this),this.restartLongPressTimer=this.restartLongPressTimer.bind(this),this.clearLongPressTimer=this.clearLongPressTimer.bind(this),this.setPointerPositions=this.setPointerPositions.bind(this),this.emit=this.emit.bind(this)}dispose(){var t,i;null===(t=this.element)||void 0===t||t.removeEventListener(this.downEvent,this.handleDown),null===(i=this.element)||void 0===i||i.removeEventListener("touchstart",this.handleTouchStart),this.element=void 0,this.clearDoubleTapTimer(),this.clearLongPressTimer()}initialize(t,i){this.element=t,this.interactionApi=i,t.addEventListener(this.downEvent,this.handleDown),t.addEventListener("touchstart",this.handleTouchStart)}handleTouchStart(t){1===t.touches.length&&(this.setPointerPositions(h.create(t.touches[0].clientX,t.touches[0].clientY)),this.restartLongPressTimer(),window.addEventListener("touchend",this.handleTouchEnd),window.addEventListener("touchmove",this.handleTouchMove))}handleTouchMove(t){t.touches.length>0&&this.handlePointerMove(h.create(t.touches[0].clientX,t.touches[0].clientY),!0)}handleTouchEnd(t){null!=this.pointerDownPosition&&(window.removeEventListener("touchend",this.handleTouchEnd),window.removeEventListener("touchmove",this.handleTouchMove)),this.handlePointerEnd(this.pointerDownPosition)}handleDown(t){this.setPointerPositions(h.create(t.clientX,t.clientY)),this.buttons=t.buttons,this.restartLongPressTimer({altKey:t.altKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,shiftKey:t.shiftKey}),window.addEventListener(this.upEvent,this.handleUp),window.addEventListener(this.moveEvent,this.handleMove)}handleMove(t){this.handlePointerMove(h.create(t.clientX,t.clientY),this.isTouch(t))}handleUp(t){null!=this.pointerDownPosition&&(window.removeEventListener(this.upEvent,this.handleUp),window.removeEventListener(this.moveEvent,this.handleMove)),this.handlePointerEnd(h.create(t.clientX,t.clientY),{altKey:t.altKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,shiftKey:t.shiftKey},this.buttons,this.isTouch(t)),this.buttons=void 0}handlePointerMove(t,i){var s;const n=(null===(s=this.interactionApi)||void 0===s?void 0:s.pixelThreshold(i))||2;null!=this.pointerDownPosition&&h.distance(t,this.pointerDownPosition)>=n&&null==this.interactionTimer&&this.clearPositions()}handlePointerEnd(t,i={},s=0,n=!1){var e,h;null!=t&&(null!=this.longPressTimer&&this.emit(null===(e=this.interactionApi)||void 0===e?void 0:e.tap)(t,i,s),null!=this.doubleTapTimer&&null!=this.secondPointerDownPosition&&(this.emit(null===(h=this.interactionApi)||void 0===h?void 0:h.doubleTap)(t,i,s,this.secondPointerDownPosition),this.clearDoubleTapTimer())),this.pointerDownPosition=void 0,this.clearLongPressTimer()}emit(t){return(i,s={},n=0,e,o=!1)=>{var r;const a=e||this.pointerDownPosition,l=(null===(r=this.interactionApi)||void 0===r?void 0:r.pixelThreshold(o))||1;let c;null!=this.interactionTimer?c=this.getCanvasPosition(a||i):null!=a&&h.distance(a,i)<=l&&(c=this.getCanvasPosition(i)),null!=c&&null!=t&&t(c,s,n)}}getCanvasPosition(t){var i;const s=null===(i=this.element)||void 0===i?void 0:i.getBoundingClientRect(),n=null!=s?h.create(s.left,s.top):void 0;return null!=n?h.subtract(h.create(t.x,t.y),n):void 0}clearPositions(){this.pointerDownPosition=void 0,this.firstPointerDownPosition=void 0,this.secondPointerDownPosition=void 0,this.clearDoubleTapTimer(),this.clearLongPressTimer(),this.clearInteractionTimer()}clearDoubleTapTimer(){null!=this.doubleTapTimer&&window.clearTimeout(this.doubleTapTimer),this.doubleTapTimer=void 0,this.firstPointerDownPosition=void 0,this.secondPointerDownPosition=void 0}restartDoubleTapTimer(){this.clearDoubleTapTimer(),this.doubleTapTimer=window.setTimeout((()=>this.clearDoubleTapTimer()),this.getConfig().events.doubleTapThreshold)}clearLongPressTimer(){null!=this.longPressTimer&&window.clearTimeout(this.longPressTimer),this.longPressTimer=void 0}restartLongPressTimer(t={}){this.clearLongPressTimer(),this.longPressTimer=window.setTimeout((()=>{var i;this.pointerDownPosition&&this.emit(null===(i=this.interactionApi)||void 0===i?void 0:i.longPress)(this.pointerDownPosition,t,this.buttons),this.clearLongPressTimer()}),this.getConfig().events.longPressThreshold)}restartInteractionTimer(){this.clearInteractionTimer(),this.interactionTimer=window.setTimeout((()=>{this.interactionTimer=void 0}),this.getConfig().interactions.interactionDelay)}clearInteractionTimer(){null!=this.interactionTimer&&(window.clearTimeout(this.interactionTimer),this.interactionTimer=void 0)}setPointerPositions(t){this.pointerDownPosition=t,this.restartInteractionTimer(),null==this.firstPointerDownPosition?(this.restartDoubleTapTimer(),this.firstPointerDownPosition=t):this.secondPointerDownPosition=t}isTouch(t){return null!=window.PointerEvent&&t instanceof PointerEvent&&"touch"===t.pointerType}}class xt extends Ct{constructor(){super(),this.handleTouchStart=this.handleTouchStart.bind(this),this.handleTouchMove=this.handleTouchMove.bind(this),this.handleTouchEnd=this.handleTouchEnd.bind(this)}dispose(){var t;null===(t=this.element)||void 0===t||t.removeEventListener("touchstart",this.handleTouchStart),super.dispose()}initialize(t,i){super.initialize(t,i),t.addEventListener("touchstart",this.handleTouchStart)}handleTouchStart(t){if(t.touches.length>=1){const i=t.touches[0],s=t.touches[1];this.currentPosition1=h.create(i.screenX,i.screenY),this.currentPosition2=null!=s?h.create(s.screenX,s.screenY):void 0,window.addEventListener("touchmove",this.handleTouchMove,{passive:!1}),window.addEventListener("touchend",this.handleTouchEnd)}}handleTouchMove(t){if(1===t.touches.length)this.handleOnePointTouchMove(t.touches[0]);else if(2===t.touches.length){const i=h.create(t.touches[0].clientX,t.touches[0].clientY),s=h.create(t.touches[1].clientX,t.touches[1].clientY);this.handleTwoPointTouchMove(i,s)}}handleTouchEnd(t){var i;null===(i=this.interactionApi)||void 0===i||i.endInteraction(),this.isInteracting=!1,window.removeEventListener("touchmove",this.handleTouchMove),window.removeEventListener("touchend",this.handleTouchEnd)}handleOnePointTouchMove(t){var i,s,n;const e=h.create(t.screenX,t.screenY);if(null!=this.currentPosition1){const t=h.subtract(e,this.currentPosition1),o=(null===(i=this.interactionApi)||void 0===i?void 0:i.pixelThreshold(!0))||2;(h.distance(e,this.currentPosition1)>=o||this.isInteracting)&&(null===(s=this.interactionApi)||void 0===s||s.beginInteraction(),null===(n=this.interactionApi)||void 0===n||n.rotateCamera(t),this.isInteracting=!0)}this.currentPosition1=e}}const Dt=new class{constructor(t,i=window.performance){this.name=t,this.perf=i,this.measures=new Set,this.nextId=0}clearMeasurements(){this.perf.clearMeasures(this.name)}measure(t){if(null!=(i=t)&&i.then instanceof Function&&i.catch instanceof Function&&i.finally instanceof Function){const i=this.begin();return t.finally((()=>this.end(i)))}if("function"==typeof t){const i=this.begin(),s=t();return this.end(i),s}throw new Error("Input must be a function or Promise");var i}takeMeasurements(){const t=this.perf.getEntriesByName(this.name);return this.clearMeasurements(),t}takeLastMeasurement(){const t=this.takeMeasurements();return t[t.length-1]}begin(){const t=`${this.name}-${this.nextId++}`;return this.measures.add(t),this.perf.mark(t),t}end(t){this.perf.measure(this.name,t),this.perf.clearMarks(t),this.measures.delete(t)}}("paint_time");function St(t){return null!=window.createImageBitmap?async function(t){const i=new Blob([t]),s=await window.createImageBitmap(i);return{image:s,dispose:()=>s.close()}}(t):(i=t,new Promise(((t,s)=>{const n=new Blob([i]),e=URL.createObjectURL(n),h=new Image;h.addEventListener("load",(()=>{t({image:h,dispose:()=>{}}),URL.revokeObjectURL(e)})),h.addEventListener("error",(()=>{s(new H("Failed to load image data")),URL.revokeObjectURL(e)})),h.src=e})));var i}function kt(t,i){const s=i.viewport.calculateDrawRect(i.frame.image);i.canvas.clearRect(0,0,i.canvasDimensions.width,i.canvasDimensions.height),i.canvas.drawImage(t.image,s.x,s.y,s.width,s.height)}function Et(t,i,s,n,e=1e3){let h,o,r=0,a=[];return s&&setInterval((()=>{if(null!=o){5===a.length?a=[...a.slice(1),o]:a.push(o);const t=a.reduce(((t,i)=>t+i))/a.length;console.debug(`Paint rate: ${o}fps`),console.debug(`Paint rate (avg): ${t}`),o=void 0}}),1e3),s=>(r++,null==h&&(h=setInterval((()=>{!function(t,i){const s=t.takeMeasurements();s.length>0&&i(s)}(t,n),0===r&&null!=h&&(clearInterval(h),h=void 0)}),e)),t.measure((async()=>{const t=await i(s);return o=null==o?1:o+1,t})).finally((()=>{r--})))}var Mt;!function(t){t.DEVICE_ID="vertexvis:device-id"}(Mt||(Mt={}));class Ot extends C{constructor(t,i={}){var s,n,e;super(t,{loggingEnabled:i.loggingEnabled}),this.state={type:"disconnected"},this.stateChanged=new A,this.dimensions=d.create(0,0),this.streamAttributes={},this.frameBgColor=F.create(255,255,255),this.config=K("platprod"),this.options={tokenRefreshOffsetInSeconds:null!==(s=i.tokenRefreshOffsetInSeconds)&&void 0!==s?s:30,offlineThresholdInSeconds:null!==(n=i.offlineThresholdInSeconds)&&void 0!==n?n:30,loadTimeoutInSeconds:null!==(e=i.loadTimeoutInSeconds)&&void 0!==e?e:15}}getState(){return this.state}disconnect(){"disconnected"!==this.state.type&&"connection-failed"!==this.state.type&&(console.debug("Disconnecting websocket"),this.state.connection.dispose(),this.updateState({type:"disconnected"}))}async load(t,i,s,n=K("platprod")){return this.clientId=i,this.deviceId=s,this.config=n,"disconnected"===this.state.type||"connection-failed"===this.state.type?this.loadIfDisconnected(t):this.loadIfConnectingOrConnected(t,this.state)}update(t){this.frameBgColor=t.frameBgColor?t.frameBgColor:this.frameBgColor,null!=t.dimensions&&t.dimensions!==this.dimensions&&(this.dimensions=t.dimensions,this.ifState("connected",(()=>this.updateDimensions({dimensions:this.dimensions})))),null!=t.streamAttributes&&this.streamAttributes!==t.streamAttributes&&(this.streamAttributes=t.streamAttributes,this.ifState("connected",(()=>this.updateStream({streamAttributes:jt(this.streamAttributes)}))))}async loadIfConnectingOrConnected(t,i){const{resource:s,queries:n}=i.resource,e=U(t),h=!B.isEqual(s,e.resource),o=!B.isEqual(n,e.queries),r=null!=e.queries[0],a="connected"===i.type;if(h||("connecting"===i.type||"reconnecting"===i.type)&&o)return this.disconnect(),this.loadIfDisconnected(t);a&&r&&o&&(await this.loadSceneViewState({sceneViewStateId:{hex:e.queries[0].id}}),this.updateState(Object.assign(Object.assign({},i),{resource:e})))}async loadIfDisconnected(t){try{await this.connectWithNewStream(U(t))}catch(t){throw this.updateState(t instanceof G?{type:"connection-failed",message:`Cannot load scene. ${t.message}`,error:t}:t instanceof P?{type:"connection-failed",message:"Cannot load scene. Stream request failed to start stream.",error:t}:{type:"connection-failed",message:"Cannot load scene for unknown reason. See console logs.",error:t}),t}}connectWithNewStream(t){return this.openWebsocketStream(t,"connecting",(()=>this.requestNewStream(t)))}connectToExistingStream(t){return this.openWebsocketStream(t.resource,"reconnecting",(()=>this.requestReconnectStream(t)),{maxRetries:Number.POSITIVE_INFINITY})}async openWebsocketStream(t,i,s,{maxRetries:n=3}={}){const e=(h=function(t,i,s,n){return z.appendPath(null!=s?z.toString(z.parseAndAddParams("/ws",{clientId:s,deviceId:n})):`/stream-keys/${i.id}/session`,z.parse(t.network.renderingHost))}(this.config,t.resource,this.clientId,this.deviceId),{url:z.toString(h),protocols:["ws.vertexvis.com"]});var h;console.debug(`Initiating WS connection [uri=${e.url}]`);const o=new AbortController,r=(a=this.config,{EXPERIMENTAL_frameDelivery:Object.assign(Object.assign({},a.EXPERIMENTAL_frameDelivery),{rateLimitingEnabled:a.flags.throttleFrameDelivery}),EXPERIMENTAL_adaptiveRendering:Object.assign(Object.assign({},a.EXPERIMENTAL_adaptiveRendering),{enabled:a.flags.adaptiveRendering}),EXPERIMENTAL_qualityOfService:Object.assign({},a.EXPERIMENTAL_qualityOfService)});var a;this.updateState({type:i,resource:t,connection:{dispose:()=>{this.dispose(),o.abort()}}});const l=await N.abort(o.signal,N.retry((()=>this.connect(e,r)),{maxRetries:n,delaysInMs:Ot.WS_RECONNECT_DELAYS})).catch((t=>{throw new J("Websocket connection failed.",t instanceof Error?t:void 0)}));if(!l.aborted)return this.requestNewOrExistingStream(t,l.result,s);this.updateState({type:"disconnected"})}async requestNewOrExistingStream(t,i,s){const n=this.requestClock(),e=await s();console.debug(`Stream connected [stream-id=${e.streamId}, scene-view-id=${e.sceneViewId}]`);const h=this.onRequest((t=>{const i=t.request.drawFrame;if(null!=i){const t=T(e.worldOrientation)(i);"connected"===this.state.type&&this.updateState(Object.assign(Object.assign({},this.state),{frame:t}))}})),o=this.reconnectWhenNeeded(),r=this.refreshTokenWhenExpired(e.token),a=this.acknowledgeFrameRequests(),l=null==e.frame?await this.waitForFrame(e.worldOrientation,this.options.loadTimeoutInSeconds):e.frame,c=await n;console.debug(`Synchronized clocks [local-time=${c.knownLocalTime.toISOString()}, remote-time=${c.knownRemoteTime.toISOString()}]`),this.updateState({type:"connected",connection:{dispose:()=>{o.dispose(),h.dispose(),r.dispose(),a.dispose(),i.dispose()}},resource:t,streamId:e.streamId,deviceId:e.deviceId,sceneViewId:e.sceneViewId,worldOrientation:e.worldOrientation,token:e.token,frame:l,clock:c})}async requestNewStream(t){var i;const s=I(await this.startStream({streamKey:{value:t.resource.id},dimensions:this.dimensions,frameBackgroundColor:At(this.frameBgColor),streamAttributes:jt(this.streamAttributes),sceneViewStateId:"scene-view-state"===(null===(i=t.queries[0])||void 0===i?void 0:i.type)?{hex:t.queries[0].id}:void 0}));return{resource:t,streamId:s.streamId,sceneViewId:s.sceneViewId,deviceId:s.sessionId,token:s.token,worldOrientation:s.worldOrientation,frame:void 0}}async requestReconnectStream(t){const i=x(await this.reconnect({streamId:{hex:t.streamId},dimensions:this.dimensions,frameBackgroundColor:At(this.frameBgColor),streamAttributes:jt(this.streamAttributes)}));return Object.assign(Object.assign({},t),{token:i.token})}async requestClock(){const t=D(await this.syncTime({requestTime:S()}));return new _(t)}reconnectWhenNeeded(){const t=this.onClose((()=>{"connected"===this.state.type&&this.closeAndReconnect(this.state)})),i=this.onRequest((t=>{null!=t.request.gracefulReconnection&&"connected"===this.state.type&&(console.debug("Received request for graceful reconnect. Closing connection and attempting reconnect."),this.closeAndReconnect(this.state))})),s=this.reconnectWhenOffline();return{dispose:()=>{t.dispose(),i.dispose(),s.dispose()}}}refreshTokenWhenExpired(t){let i;const s=t=>{const{tokenRefreshOffsetInSeconds:n}=this.options,e=t.remainingTimeInMs(n);i=window.setTimeout((async()=>{const t=await this.refreshToken(),i=k(t);s(i),"connected"===this.state.type&&this.updateState(Object.assign(Object.assign({},this.state),{token:i}))}),e)};return s(t),{dispose:()=>clearTimeout(i)}}reconnectWhenOffline(){let t;const i=()=>window.clearTimeout(t),s=()=>{i();const s=this.options.offlineThresholdInSeconds;console.debug(`Detected that host is offline. Will attempt reconnect in ${s}s.`),t=window.setTimeout((()=>{"connected"===this.state.type&&this.closeAndReconnect(this.state)}),1e3*s)};return window.addEventListener("offline",(()=>s())),window.addEventListener("online",(()=>{console.debug("Detected that host is online."),i()})),{dispose:()=>{i(),window.removeEventListener("offline",s),window.removeEventListener("online",i)}}}closeAndReconnect(t){return t.connection.dispose(),this.connectToExistingStream(t)}async waitForFrame(t,i){let s;try{return await N.timeout(1e3*i,new Promise((i=>{s=this.onRequest((n=>{try{const e=n.request.drawFrame;if(null!=e){const s=T(t)(e);i(s)}}finally{null==s||s.dispose()}}))})))}catch(t){throw new X(`Frame timed out after ${i/1e3}s`,t instanceof Error?t:void 0)}finally{null==s||s.dispose()}}acknowledgeFrameRequests(){return this.onRequest(function(t,i){const s=function(t){let i=!1;return s=>{const n=t();if(null!=n){const t=n.remoteTime(new Date(Date.now())),e=p(s,t);return g(e).getTime()>=0?e:void(i||(console.warn(`Possible erroneous send to receive timing. Muting for 60s. [sent-at=${s.toISOString()}, received-at=${t.toISOString()}, remote-time=${n.knownRemoteTime.toISOString()}]`),i=!0,setTimeout((()=>i=!1),6e4)))}}}(i);return n=i=>{return n=()=>n=>{const e=g(n.sentAtTime);null!=e&&t.replyResult(i,{drawFrame:{sendToReceiveDuration:s(e)}})},t=>{const{drawFrame:i}=t.request;null!=i&&n()(t)};var n},t=>{var i;const s=null===(i=t.request.requestId)||void 0===i?void 0:i.value;null!=s&&n(s)(t)};var n}(this,(()=>"connected"===this.state.type?this.state.clock:void 0)))}updateState(t){this.state!==t&&(this.state=t,this.stateChanged.emit(this.state))}ifState(t,i){if(this.state.type===t)return i()}onStateChanged(t){return this.stateChanged.on(t)}}Ot.WS_RECONNECT_DELAYS=[0,1e3,1e3,5e3];const jt=R.ifInvalidThrow(y),At=R.ifInvalidThrow(b);let Rt=class{constructor(s){t(this,s),this.tap=i(this,"tap",7),this.doubletap=i(this,"doubletap",7),this.longpress=i(this,"longpress",7),this.frameReceived=i(this,"frameReceived",7),this.frameDrawn=i(this,"frameDrawn",7),this.tokenExpired=i(this,"tokenExpired",7),this.connectionChange=i(this,"connectionChange",7),this.sceneReady=i(this,"sceneReady",7),this.sceneChanged=i(this,"sceneChanged",7),this.interactionStarted=i(this,"interactionStarted",7),this.interactionFinished=i(this,"interactionFinished",7),this.deviceIdChange=i(this,"deviceIdChange",7),this.dimensionschange=i(this,"dimensionschange",7),this.configEnv="platprod",this.cameraControls=!0,this.cameraType="perspective",this.keyboardControls=!0,this.rotateAroundTapPoint=!0,this.experimentalGhostingOpacity=0,this.selectionMaterial=Y,this.resizeDebounce=100,this.stencilBuffer=new ht(this.hostElement),this.viewport=et.fromDimensions(d.create(0,0)),this.stateMap={cursorManager:new W,streamState:{type:"disconnected"}},this.interactionHandlers=[],this.tapKeyInteractions=[],this.internalFrameDrawnDispatcher=new A,this.handleElementResize=this.handleElementResize.bind(this)}componentWillLoad(){var t;this.updateResolvedConfig(),this.calculateComponentDimensions(),this.resizeObserver=new ResizeObserver(this.handleElementResize),this.registerSlotChangeListeners(),this.stream=null!==(t=this.stream)&&void 0!==t?t:new Ot(new E,{loggingEnabled:this.getResolvedConfig().flags.logWsMessages}),this.addStreamListeners(),this.updateStreamAttributes(),this.stateMap.cursorManager.onChanged.on((()=>this.handleCursorChanged()))}componentDidLoad(){var t,i,s;if(this.interactionApi=this.createInteractionApi(),null!=this.containerElement&&(null===(t=this.resizeObserver)||void 0===t||t.observe(this.containerElement)),null!=this.src)try{this.load(this.src)}catch(t){console.error("Error loading scene",t)}if(this.cameraControls)if(null!=window.PointerEvent){const t=new It("pointerdown","pointerup","pointermove",(()=>this.getResolvedConfig()));this.baseInteractionHandler=new Tt((()=>this.getResolvedConfig())),this.registerInteractionHandler(this.baseInteractionHandler),this.registerInteractionHandler(new Pt),this.registerInteractionHandler(t)}else{const t=new It("mousedown","mouseup","mousemove",(()=>this.getResolvedConfig()));this.baseInteractionHandler=new bt((()=>this.getResolvedConfig())),this.registerInteractionHandler(this.baseInteractionHandler),this.registerInteractionHandler(new xt),this.registerInteractionHandler(t)}this.keyboardControls&&null!=this.stream&&(null===(i=this.baseInteractionHandler)||void 0===i||i.setDefaultKeyboardControls(this.keyboardControls),this.registerTapKeyInteraction(new rt(this.stream,(()=>this.getResolvedConfig()),(()=>this.getImageScale()))),this.registerTapKeyInteraction(new ut(this.stream,(()=>this.getResolvedConfig()),(()=>this.getImageScale()),(()=>this.createScene())))),this.rotateAroundTapPoint&&(null===(s=this.baseInteractionHandler)||void 0===s||s.setPrimaryInteractionType("rotate-point")),this.injectViewerApi()}render(){var t;return s(n,null,s("div",{class:"viewer-container",style:{cursor:q(null!==(t=this.cursor)&&void 0!==t?t:"")},onContextMenu:t=>t.preventDefault()},s("div",{ref:t=>this.containerElement=t,class:L("canvas-container",{"enable-pointer-events ":null!=window.PointerEvent})},s("canvas",{ref:t=>{this.canvasElement=t,this.stateMap.interactionTarget=t},class:"canvas"}),null!=this.errorMessage?s("div",{class:"error-message"},this.errorMessage):null),s("slot",null)))}async dispatchFrameDrawn(t){this.frame=t,this.internalFrameDrawnDispatcher.emit(t),this.frameDrawn.emit(t)}async registerInteractionHandler(t){return this.interactionHandlers.push(t),this.initializeInteractionHandler(t),{dispose:()=>{const i=this.interactionHandlers.indexOf(t);-1!==i&&(this.interactionHandlers[i].dispose(),this.interactionHandlers.splice(i,1))}}}async registerTapKeyInteraction(t){this.tapKeyInteractions=[...this.tapKeyInteractions,t]}async getInteractionTarget(){if(null!=this.stateMap.interactionTarget)return this.stateMap.interactionTarget;throw new Error("Interaction target is undefined.")}async addCursor(t,i){return this.stateMap.cursorManager.add(t,i)}async getInteractionHandlers(){return this.interactionHandlers}async getBaseInteractionHandler(){return this.baseInteractionHandler}async getJwt(){return this.token}handleSrcChanged(t){null!=t?this.load(t):this.unload()}handleRotateAboutTapPointChanged(){var t,i;this.updateStreamAttributes(),this.rotateAroundTapPoint?null===(t=this.baseInteractionHandler)||void 0===t||t.setPrimaryInteractionType("rotate-point"):null===(i=this.baseInteractionHandler)||void 0===i||i.setPrimaryInteractionType("rotate")}handleCameraTypeChanged(t,i){t!==i&&this.updateCameraType()}handleDepthBuffersChanged(){this.updateStreamAttributes()}handleExperimentalGhostingOpacityChanged(){this.updateStreamAttributes()}handleFeatureLinesChanged(){this.updateStreamAttributes()}handleFeatureHighlightingChanged(){this.updateStreamAttributes()}handleFeatureMapsChanged(){this.updateStreamAttributes()}handleConfigChanged(){this.updateResolvedConfig()}handleConfigEnvChanged(){this.updateResolvedConfig()}async load(t){var i;if(null==this.stream||null==this.dimensions)throw new Q("Cannot load scene. Viewer has not been initialized.");this.calculateComponentDimensions(),this.stream.update({streamAttributes:this.getStreamAttributes(),config:K(this.configEnv,this.config),dimensions:this.dimensions,frameBgColor:this.getBackgroundColor()}),await(null===(i=this.stream)||void 0===i?void 0:i.load(t,this.clientId,this.getDeviceId(),this.getResolvedConfig())),this.sceneReady.emit()}async unload(){if(null!=this.stream&&(this.stream.disconnect(),this.frame=void 0,this.errorMessage=void 0),null!=this.canvasElement){const t=this.canvasElement.getContext("2d");null!=t&&t.clearRect(0,0,this.canvasElement.width,this.canvasElement.height)}}async scene(){return this.createScene()}async isSceneReady(){return"connected"===this.stateMap.streamState.type}async handleTapEvent(t){this.tapKeyInteractions.filter((i=>i.predicate(t.detail))).forEach((i=>i.fn(t.detail)))}emitConnectionChange(t){this.connectionChange.emit(t)}handleElementResize(t){t.length>=0&&null!=this.dimensions&&!d.isEqual(t[0].contentRect,this.viewport)&&(null!=this.resizeTimer&&(clearTimeout(this.resizeTimer),this.resizeTimer=void 0),this.isResizing||(this.resizeTimer=setTimeout((()=>{this.isResizing=!0,this.isResizeUpdate=!0,this.recalculateComponentDimensions()}),this.resizeDebounce)))}registerSlotChangeListeners(){this.mutationObserver=new MutationObserver((()=>this.injectViewerApi())),this.mutationObserver.observe(this.hostElement,{childList:!0,subtree:!0})}injectViewerApi(){function t(t){return Array.from(t.querySelectorAll("*"))}t(this.hostElement).filter((t=>t.nodeName.startsWith("VERTEX-"))).reduce(((i,s)=>[...i,s,...t(s)]),[]).forEach((t=>{t.viewer=this.hostElement}))}calculateComponentDimensions(){var t;const i=this.getBounds();if(null!=(null==i?void 0:i.width)&&null!=(null==i?void 0:i.height)){const s=d.create(i.width,i.height),n=d.scaleFit(2073600,s);this.hostDimensions=s,this.dimensions=null!=n?d.create(n.width,n.height):void 0,this.viewport=et.fromDimensions(null!==(t=this.getCanvasDimensions())&&void 0!==t?t:d.create(0,0))}}recalculateComponentDimensions(){var t;this.isResizing&&(this.calculateComponentDimensions(),this.isResizing=!1,null===(t=this.stream)||void 0===t||t.update({dimensions:this.dimensions}),this.dimensionschange.emit(this.dimensions))}reportPerformance(t){if("connected"===this.stateMap.streamState.type){const i={timings:t.map((t=>({receiveToPaintDuration:p(t.duration)})))};this.getStream().recordPerformance(i,!1)}}addStreamListeners(){this.stateMap.streamListeners=this.getStream().stateChanged.on((t=>{this.handleStreamStateChanged(this.stateMap.streamState,t)}))}handleStreamStateChanged(t,i){this.stateMap.streamState=i,"connecting"===i.type?this.handleConnecting(t,i):"connected"===i.type?this.handleConnected(t,i):"connection-failed"===i.type?this.handleConnectionFailed(t,i):"disconnected"===i.type&&this.handleDisconnected(t,i)}handleConnecting(t,i){"connecting"!==t.type&&(this.token=void 0,this.errorMessage=void 0,this.emitConnectionChange({status:"connecting"}))}handleConnected(t,i){this.token=i.token.token,"connected"!==t.type&&(this.errorMessage=void 0,this.canvasRenderer=Et(Dt,function(){let t;return async i=>{var s;const n=i.frame.sequenceNumber,e=await St(i.frame.image.imageBytes);return(null==t||n>t)&&(t=n,null===(s=i.beforeDraw)||void 0===s||s.call(i),kt(e,i)),e.dispose(),i.frame}}(),this.getResolvedConfig().flags.logFrameRate,(t=>this.reportPerformance(t))),this.resizeRenderer=Et(Dt,function(){const t=document.createElement("canvas");let i;return async s=>{var n;const e=s.frame.sequenceNumber,h=null==i||e>i,o=null==s.dimensions||d.isEqual(s.dimensions,s.frame.image.imageAttr.frameDimensions),r=await St(s.frame.image.imageBytes);t.width=s.canvasDimensions.width,t.height=s.canvasDimensions.height;const a=t.getContext("2d");return null!=a&&h&&o&&(i=e,kt(r,Object.assign(Object.assign({},s),{canvas:a})),null===(n=s.beforeDraw)||void 0===n||n.call(s),s.canvas.drawImage(t,0,0)),r.dispose(),s.frame}}(),this.getResolvedConfig().flags.logFrameRate,(t=>this.reportPerformance(t))),this.emitConnectionChange({status:"connected",jwt:i.token.token}),this.deviceIdChange.emit(i.deviceId)),this.frame!==i.frame&&this.updateFrame(i.frame)}handleConnectionFailed(t,i){"connection-failed"!==t.type&&(this.token=void 0,this.errorMessage=i.message)}handleDisconnected(t,i){"disconnected"!==t.type&&(this.token=void 0,this.errorMessage=void 0,this.emitConnectionChange({status:"disconnected"}))}async updateFrame(t){const i=this.getCanvasDimensions();if(null!=this.canvasElement&&null!=i&&this.frame!==t){const s=this.canvasElement.getContext("2d");if(null!=s){const n=this.frame;this.frame=t,this.updateInteractionApi(n);const e={canvas:s,canvasDimensions:i,dimensions:this.dimensions,frame:this.frame,viewport:this.viewport,beforeDraw:()=>{this.updateCanvasDimensions(i),this.isResizeUpdate=!1}};this.frameReceived.emit(this.frame),this.frame.scene.hasChanged&&this.sceneChanged.emit();const h=this.isResizeUpdate?await this.resizeRenderer(e):await this.canvasRenderer(e);this.dispatchFrameDrawn(h)}}}initializeInteractionHandler(t){if(null==this.stateMap.interactionTarget)throw new Z("Cannot initialize interaction handler. Interaction target is undefined.");if(null==this.interactionApi)throw new Z("Cannot initialize interaction handler. Interaction APi is undefined.");t.initialize(this.stateMap.interactionTarget,this.interactionApi)}createInteractionApi(){if(null==this.stream)throw new tt("Cannot create interaction API. Component has not been initialized.");return null==this.frame||this.frame.scene.camera.isPerspective()?new ct(this.stream,this.stateMap.cursorManager,(()=>this.getResolvedConfig().interactions),(()=>this.createScene()),(()=>this.frame),(()=>this.viewport),this.tap,this.doubletap,this.longpress,this.interactionStarted,this.interactionFinished):new lt(this.stream,this.stateMap.cursorManager,(()=>this.getResolvedConfig().interactions),(()=>this.createScene()),(()=>this.frame),(()=>this.viewport),this.tap,this.doubletap,this.longpress,this.interactionStarted,this.interactionFinished)}handleCursorChanged(){window.requestAnimationFrame((()=>{this.cursor=this.stateMap.cursorManager.getActiveCursor()}))}createScene(){if("connected"!==this.stateMap.streamState.type)throw new it("Cannot create scene. Viewer stream is not connected.");const{frame:t,sceneViewId:i,worldOrientation:s}=this.stateMap.streamState,n="string"==typeof this.selectionMaterial?st(this.selectionMaterial):this.selectionMaterial;return new nt(this.getStream(),t,T(s),(()=>this.getImageScale()),this.viewport,i,n)}getBackgroundColor(){if(null!=this.containerElement)return function(t){const i=window.getComputedStyle(t);return F.fromCss(i.backgroundColor)}(this.containerElement)}getBounds(){return this.hostElement.getBoundingClientRect()}getCanvasDimensions(){return this.getResolvedConfig().flags.letterboxFrames?this.dimensions:this.hostDimensions}getImageScale(){const t=this.getCanvasDimensions();if(null!=this.dimensions&&null!=t)return h.create(this.dimensions.width/t.width,this.dimensions.height/t.height)}getStreamAttributes(){return{depthBuffers:this.getDepthBufferStreamAttributesValue(),experimentalGhosting:this.experimentalGhostingOpacity,featureLines:this.featureLines,featureHighlighting:this.featureHighlighting,featureMaps:this.featureMaps}}updateCanvasDimensions(t){null!=this.canvasElement&&(this.canvasElement.width=t.width,this.canvasElement.height=t.height)}updateStreamAttributes(){var t;null===(t=this.stream)||void 0===t||t.update({streamAttributes:this.getStreamAttributes()})}updateInteractionApi(t){if(null!=t&&null!=this.frame){const i=t.scene.camera.isPerspective()&&this.frame.scene.camera.isOrthographic(),s=t.scene.camera.isOrthographic()&&this.frame.scene.camera.isPerspective();(i||s)&&(this.interactionApi=this.createInteractionApi(),this.interactionHandlers.forEach((t=>this.initializeInteractionHandler(t))))}}updateCameraType(){var t,i;null!=this.frame&&("orthographic"===this.cameraType&&this.frame.scene.camera.isPerspective()?null===(t=this.stream)||void 0===t||t.replaceCamera({camera:M(O(this.frame.scene.camera,this.frame.scene.boundingBox))}):"perspective"===this.cameraType&&this.frame.scene.camera.isOrthographic()&&(null===(i=this.stream)||void 0===i||i.replaceCamera({camera:M(j(this.frame.scene.camera))})))}getDepthBufferStreamAttributesValue(){var t;return null!==(t=this.depthBuffers)&&void 0!==t?t:this.rotateAroundTapPoint?"final":void 0}updateResolvedConfig(){this.resolvedConfig=K(this.configEnv,this.config)}getResolvedConfig(){return Ft("Resolved config is undefined",(()=>this.resolvedConfig))}getStream(){return Ft("Stream is undefined",(()=>this.stream))}getDeviceId(){if(null==this.deviceId){try{this.deviceId=function(t,i,s=window.localStorage){const n=s.getItem(Mt.DEVICE_ID);if(null!=n)return i(JSON.parse(n))}(0,(t=>t["device-id"]))}catch(t){console.warn("Cannot read device ID. Local storage is not supported.")}if(null==this.deviceId){this.deviceId=$.create();try{!function(t,i,s=window.localStorage){const n=s.getItem(t);if(null!=n){const e=Object.assign(Object.assign({},JSON.parse(n)),i);s.setItem(t,JSON.stringify(e))}else s.setItem(t,JSON.stringify(i))}(Mt.DEVICE_ID,{"device-id":this.deviceId})}catch(t){console.warn("Cannot write device ID. Local storage is not supported.")}}}return this.deviceId}get hostElement(){return e(this)}static get watchers(){return{src:["handleSrcChanged"],rotateAroundTapPoint:["handleRotateAboutTapPointChanged"],cameraType:["handleCameraTypeChanged"],depthBuffers:["handleDepthBuffersChanged"],experimentalGhostingOpacity:["handleExperimentalGhostingOpacityChanged"],featureLines:["handleFeatureLinesChanged"],featureHighlighting:["handleFeatureHighlightingChanged"],featureMaps:["handleFeatureMapsChanged"],config:["handleConfigChanged"],configEnv:["handleConfigEnvChanged"]}}};function Ft(t,i){const s=i();if(null!=s)return s;throw new Error(t)}Rt.style=":host{--image-background:var(--image-background);--viewer-background:var(--viewer-background);display:block;position:relative;width:300px;height:300px;min-width:1px;min-height:1px}.canvas-container{display:flex;justify-content:center;align-items:center;width:100%;height:100%;position:relative;background:var(--image-background, var(--viewer-background, #ffffff))}.enable-pointer-events{touch-action:none}.viewer-container{width:100%;height:100%;overflow:hidden;background:var(--viewer-background, #ffffff)}.error-message{position:absolute;top:50%;width:100%;transform:translateY(-50%);text-align:center}";export{Rt as vertex_viewer}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{E as t,o as s}from"./p-
|
|
4
|
+
import{E as t,o as s}from"./p-e75bba97.js";class i{constructor(){this.entities=new Set,this.results=new Set,this.entitiesChanged=new t,this.outcomeChanged=new t}addEntity(t){return!this.entities.has(t)&&(this.entities.add(t),this.entitiesChanged.emit(this.getEntities()),!0)}clearEntities(){this.entities.forEach((t=>this.removeEntity(t)))}clearOutcome(){this.setOutcome(void 0)}setOutcome(t){s.isEqual(this.outcome,t)||(this.outcome=t,this.outcomeChanged.emit(t))}getEntities(){return Array.from(this.entities)}getOutcome(){return this.outcome}getResults(){return Array.from(this.results)}removeEntity(t){return!!this.entities.has(t)&&(this.entities.delete(t),this.entitiesChanged.emit(this.getEntities()),!0)}setEntities(t){return this.entities.clear(),t.forEach((t=>this.entities.add(t))),this.entitiesChanged.emit(this.getEntities()),!0}onOutcomeChanged(t){return this.outcomeChanged.on(t)}onEntitiesChanged(t){return this.entitiesChanged.on(t)}}export{i as M}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/*! *****************************************************************************
|
|
5
|
+
Copyright (c) Microsoft Corporation.
|
|
6
|
+
|
|
7
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
8
|
+
purpose with or without fee is hereby granted.
|
|
9
|
+
|
|
10
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
11
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
12
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
13
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
14
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
15
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
16
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
17
|
+
***************************************************************************** */
|
|
18
|
+
var n=function(t,r){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])})(t,r)};function t(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function u(){this.constructor=t}n(t,r),t.prototype=null===r?Object.create(r):(u.prototype=r.prototype,new u)}var r=function(){return(r=Object.assign||function(n){for(var t,r=1,u=arguments.length;r<u;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o]);return n}).apply(this,arguments)};function u(n,t){var r={};for(var u in n)Object.prototype.hasOwnProperty.call(n,u)&&t.indexOf(u)<0&&(r[u]=n[u]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(u=Object.getOwnPropertySymbols(n);o<u.length;o++)t.indexOf(u[o])<0&&Object.prototype.propertyIsEnumerable.call(n,u[o])&&(r[u[o]]=n[u[o]])}return r}function o(n,t,r,u){return new(r||(r=Promise))((function(o,e){function i(n){try{c(u.next(n))}catch(n){e(n)}}function a(n){try{c(u.throw(n))}catch(n){e(n)}}function c(n){var t;n.done?o(n.value):(t=n.value,t instanceof r?t:new r((function(n){n(t)}))).then(i,a)}c((u=u.apply(n,t||[])).next())}))}function e(n,t){var r,u,o,e,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return e={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function a(e){return function(a){return function(e){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,u&&(o=2&e[0]?u.return:e[0]?u.throw||((o=u.return)&&o.call(u),0):u.next)&&!(o=o.call(u,e[1])).done)return o;switch(u=0,o&&(e=[2&e[0],o.value]),e[0]){case 0:case 1:o=e;break;case 4:return i.label++,{value:e[1],done:!1};case 5:i.label++,u=e[1],e=[0];continue;case 7:e=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==e[0]&&2!==e[0])){i=0;continue}if(3===e[0]&&(!o||e[1]>o[0]&&e[1]<o[3])){i.label=e[1];break}if(6===e[0]&&i.label<o[1]){i.label=o[1],o=e;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(e);break}o[2]&&i.ops.pop(),i.trys.pop();continue}e=t.call(n,i)}catch(n){e=[6,n],u=0}finally{r=o=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,a])}}}function i(n,t){var r="function"==typeof Symbol&&n[Symbol.iterator];if(!r)return n;var u,o,e=r.call(n),i=[];try{for(;(void 0===t||t-- >0)&&!(u=e.next()).done;)i.push(u.value)}catch(n){o={error:n}}finally{try{u&&!u.done&&(r=e.return)&&r.call(e)}finally{if(o)throw o.error}}return i}function a(n,t,r){if(r||2===arguments.length)for(var u,o=0,e=t.length;o<e;o++)!u&&o in t||(u||(u=Array.prototype.slice.call(t,0,o)),u[o]=t[o]);return n.concat(u||Array.prototype.slice.call(t))}function c(n,t,r){return Math.max(t,Math.min(r,n))}function f(n,t,r){return(r=c(r,0,1))*(t-n)+n}function h(n,t){return void 0===n&&(n=0),void 0===t&&(t=0),{x:n,y:t}}function l(n,t){return{x:n.x-t.x,y:n.y-t.y}}function v(n,t){return{x:n.x+t.x,y:n.y+t.y}}function s(n,t){return n.x===t.x&&n.y===t.y}var d=Object.freeze({__proto__:null,create:h,polar:function(n,t){return h(Math.cos(t)*n,Math.sin(t)*n)},distance:function(n,t){var r=l(n,t);return Math.sqrt(r.x*r.x+r.y*r.y)},subtract:l,add:v,isEqual:s,lerp:function(n,t,r){return{x:f(n.x,t.x,r),y:f(n.y,t.y,r)}},negate:function(n){return h(-n.x,-n.y)},scale:function(n,t,r){return{x:n.x*t,y:n.y*r}},fromJson:function(n){var t=JSON.parse(n);return Array.isArray(t)?h(t[0],t[1]):h(t.x,t.y)}});function M(n){return(n+3600)%360}function y(n){return n*(180/Math.PI)}function m(n){return n*(Math.PI/180)}var x=Object.freeze({__proto__:null,fromPoints:function(n,t){var r=l(t,n);return Math.atan2(r.y,r.x)},fromPointsInDegrees:function(n,t){var r=l(t,n);return M(y(Math.atan2(r.y,r.x))-270)},normalize:M,toDegrees:y,toRadians:m});function _(n,t,r,u,o,e,i,a,c,f,h,l,v,s,d,M){return[n,o,c,v,t,e,f,s,r,i,h,d,u,a,l,M]}function p(n){return[1,0,0,0,0,1,0,0,0,0,1,0,n.x,n.y,n.z,1]}function z(n){var t=n.x,r=n.y,u=n.z,o=n.w,e=t+t,i=r+r,a=u+u,c=t*e,f=t*i,h=t*a,l=r*i,v=r*a,s=u*a,d=o*e,M=o*i,y=o*a;return[1-(l+s),f+y,h-M,0,f-y,1-(c+s),v+d,0,h+M,v-d,1-(c+l),0,0,0,0,1]}function b(n){return[n.x,0,0,0,0,n.y,0,0,0,0,n.z,0,0,0,0,1]}function w(n,t,r,u,o,e){return[2*o/(t-n),0,0,0,0,2*o/(r-u),0,0,(t+n)/(t-n),(r+u)/(r-u),-(e+o)/(e-o),-1,0,0,-2*e*o/(e-o),0]}function O(n,t){var r=n[0],u=n[4],o=n[8],e=n[12],i=n[1],a=n[5],c=n[9],f=n[13],h=n[2],l=n[6],v=n[10],s=n[14],d=n[3],M=n[7],y=n[11],m=n[15],x=t[0],_=t[4],p=t[8],z=t[12],b=t[1],w=t[5],O=t[9],j=t[13],g=t[2],k=t[6],A=t[10],S=t[14],P=t[3],T=t[7],q=t[11],J=t[15],R=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];return R[0]=r*x+u*b+o*g+e*P,R[4]=r*_+u*w+o*k+e*T,R[8]=r*p+u*O+o*A+e*q,R[12]=r*z+u*j+o*S+e*J,R[1]=i*x+a*b+c*g+f*P,R[5]=i*_+a*w+c*k+f*T,R[9]=i*p+a*O+c*A+f*q,R[13]=i*z+a*j+c*S+f*J,R[2]=h*x+l*b+v*g+s*P,R[6]=h*_+l*w+v*k+s*T,R[10]=h*p+l*O+v*A+s*q,R[14]=h*z+l*j+v*S+s*J,R[3]=d*x+M*b+y*g+m*P,R[7]=d*_+M*w+y*k+m*T,R[11]=d*p+M*O+y*A+m*q,R[15]=d*z+M*j+y*S+m*J,R}function j(n){return{m11:n[0],m12:n[4],m13:n[8],m14:n[12],m21:n[1],m22:n[5],m23:n[9],m24:n[13],m31:n[2],m32:n[6],m33:n[10],m34:n[14],m41:n[3],m42:n[7],m43:n[11],m44:n[15]}}var g=Object.freeze({__proto__:null,fromValues:_,fromObject:function(n){return _(n.m11,n.m12,n.m13,n.m14,n.m21,n.m22,n.m23,n.m24,n.m31,n.m32,n.m33,n.m34,n.m41,n.m42,n.m43,n.m44)},makeIdentity:function(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},makeZero:function(){return[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},makeTranslation:p,makeRotation:z,makeScale:b,makeTRS:function(n,t,r){var u=p(n),o=z(t),e=b(r);return O(O(u,o),e)},makeBasis:function(n,t,r){return[n.x,n.y,n.z,0,t.x,t.y,t.z,0,r.x,r.y,r.z,0,0,0,0,1]},makeRotationAxis:function(n,t){var r=Math.cos(t),u=Math.sin(t),o=1-r,e=n.x,i=n.y,a=n.z,c=o*e,f=o*i;return[c*e+r,c*i+u*a,c*a-u*i,0,c*i-u*a,f*i+r,f*a+u*e,0,c*a+u*i,f*a-u*e,o*a*a+r,0,0,0,0,1]},makeFrustum:w,makePerspective:function(n,t,r,u){var o=n*Math.tan(m(r/2)),e=o*u;return w(-e,e,o,-o,n,t)},makeOrthographic:function(n,t,r,u,o,e){var i=1/(t-n),a=1/(u-r),c=1/(e-o);return[2*i,0,0,-(t+n)*i,0,2*a,0,-(u+r)*a,0,0,-2*c,-(e+o)*c,0,0,0,1]},makeLookAtView:function(n,t,r){var u=T(F(n,t)),o=T(R(r,u)),e=R(u,o),i=-D(o,n),a=-D(e,n),c=-D(u,n);return[o.x,e.x,u.x,0,o.y,e.y,u.y,0,o.z,e.z,u.z,0,i,a,c,1]},makeLookAt:function(n,t,r){var u=T(F(n,t)),o=T(R(r,u)),e=R(u,o);return[o.x,o.y,o.z,0,e.x,e.y,e.z,0,u.x,u.y,u.z,0,n.x,n.y,n.z,1]},invert:function(n){var t=n[0],r=n[1],u=n[2],o=n[3],e=n[4],i=n[5],a=n[6],c=n[7],f=n[8],h=n[9],l=n[10],v=n[11],s=n[12],d=n[13],M=n[14],y=n[15],m=t*i-r*e,x=t*a-u*e,_=t*c-o*e,p=r*a-u*i,z=r*c-o*i,b=u*c-o*a,w=f*d-h*s,O=f*M-l*s,j=f*y-v*s,g=h*M-l*d,k=h*y-v*d,A=l*y-v*M,S=m*A-x*k+_*g+p*j-z*O+b*w;return S?[(i*A-a*k+c*g)*(S=1/S),(u*k-r*A-o*g)*S,(d*b-M*z+y*p)*S,(l*z-h*b-v*p)*S,(a*j-e*A-c*O)*S,(t*A-u*j+o*O)*S,(M*_-s*b-y*x)*S,(f*b-l*_+v*x)*S,(e*k-i*j+c*w)*S,(r*j-t*k-o*w)*S,(s*z-d*_+y*m)*S,(h*_-f*z-v*m)*S,(i*O-e*g-a*w)*S,(t*g-r*O+u*w)*S,(d*x-s*p-M*m)*S,(f*p-h*x+l*m)*S]:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},lookAt:function(n,t,u,o){var e=F(t,u);0===J(e)&&(e=r(r({},e),{z:1}));var i=R(o,e=T(e));0===J(i)&&(i=R(o,e=T(e=1===Math.abs(o.z)?r(r({},e),{x:e.x+1e-4}):r(r({},e),{z:e.z+1e-4}))));var c=R(e,i=T(i)),f=a([],n,!0);return f[0]=i.x,f[4]=c.x,f[8]=e.x,f[1]=i.y,f[5]=c.y,f[9]=e.y,f[2]=i.z,f[6]=c.z,f[10]=e.z,f},multiply:O,transpose:function(n){return[n[0],n[4],n[8],n[12],n[1],n[5],n[9],n[13],n[2],n[6],n[10],n[14],n[3],n[7],n[11],n[15]]},scale:function(n,t){var r=t.x,u=t.y,o=t.z,e=a([],n,!0);return e[0]*=r,e[4]*=u,e[8]*=o,e[1]*=r,e[5]*=u,e[9]*=o,e[2]*=r,e[6]*=u,e[10]*=o,e[3]*=r,e[7]*=u,e[11]*=o,e},position:function(n,t){var r=a([],n,!0);return r[12]=t[12],r[13]=t[13],r[14]=t[14],r},toObject:j,isType:function(n){return Array.isArray(n)&&16===n.length}});function k(){for(var n,t,r,u,o,e,i=[],a=0;a<arguments.length;a++)i[a]=arguments[a];return 1===i.length?{x:null!==(n=i[0].x)&&void 0!==n?n:0,y:null!==(t=i[0].y)&&void 0!==t?t:0,z:null!==(r=i[0].z)&&void 0!==r?r:0}:3===i.length?{x:null!==(u=i[0])&&void 0!==u?u:0,y:null!==(o=i[1])&&void 0!==o?o:0,z:null!==(e=i[2])&&void 0!==e?e:0}:{x:0,y:0,z:0}}function A(n){var t=j(n);return{x:Math.hypot(t.m11,t.m21,t.m31),y:Math.hypot(t.m12,t.m22,t.m32),z:Math.hypot(t.m13,t.m23,t.m33)}}function S(){return k(0,0,-1)}function P(){return k(0,0,0)}function T(n){var t=q(n);return{x:n.x/t,y:n.y/t,z:n.z/t}}function q(n){return Math.sqrt(J(n))}function J(n){return n.x*n.x+n.y*n.y+n.z*n.z}function R(n,t){return{x:n.y*t.z-n.z*t.y,y:n.z*t.x-n.x*t.z,z:n.x*t.y-n.y*t.x}}function N(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return t.reduce((function(n,t){return{x:n.x+t.x,y:n.y+t.y,z:n.z+t.z}}),n)}function F(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return t.reduce((function(n,t){return{x:n.x-t.x,y:n.y-t.y,z:n.z-t.z}}),n)}function E(n,t){return{x:t.x*n,y:t.y*n,z:t.z*n}}function D(n,t){return n.x*t.x+n.y*t.y+n.z*t.z}function L(n,t){var r=n.x,u=n.y,o=n.z,e=1/(t[3]*r+t[7]*u+t[11]*o+t[15]);return{x:(t[0]*r+t[4]*u+t[8]*o+t[12])*e,y:(t[1]*r+t[5]*u+t[9]*o+t[13])*e,z:(t[2]*r+t[6]*u+t[10]*o+t[14])*e}}function V(n,t){return Math.sqrt(C(n,t))}function C(n,t){var r=F(n,t),u=r.x,o=r.y,e=r.z;return u*u+o*o+e*e}function I(n,t){return k(Math.max(n.x,t.x),Math.max(n.y,t.y),Math.max(n.z,t.z))}function B(n,t){return k(Math.min(n.x,t.x),Math.min(n.y,t.y),Math.min(n.z,t.z))}function G(n,t,r){return{x:f(n.x,t.x,r),y:f(n.y,t.y,r),z:f(n.z,t.z,r)}}var W=Object.freeze({__proto__:null,create:k,isValid:function(n){return[n.x,n.y,n.z].every((function(n){return isFinite(n)&&!isNaN(n)}))},fromMatrixScale:A,fromMatrixPosition:function(n){var t=j(n);return{x:t.m14,y:t.m24,z:t.m34}},fromJson:function(n){var t=JSON.parse(n);return Array.isArray(t)?k(t[0],t[1],t[2]):k(t.x,t.y,t.z)},fromArray:function(n,t){return void 0===t&&(t=0),k(n[t],n[t+1],n[t+2])},toArray:function(n){return[n.x,n.y,n.z]},right:function(){return k(1,0,0)},up:function(){return k(0,1,0)},forward:S,left:function(){return k(-1,0,0)},down:function(){return k(0,-1,0)},back:function(){return k(0,0,1)},origin:P,normalize:T,magnitude:q,magnitudeSquared:J,cross:R,add:N,subtract:F,multiply:function(n,t){return{x:n.x*t.x,y:n.y*t.y,z:n.z*t.z}},scale:E,dot:D,angleTo:function(n,t){var r=D(n,t)/(q(n)*q(t));return Math.acos(r)},project:function(n,t){return E(D(t,n)/q(t),t)},rotateAboutAxis:function(n,t,r,u){if(0!==n){var o=t.x,e=t.y,i=t.z,a=u.x,c=u.y,f=u.z,h=r.x,l=r.y,v=r.z;return{x:(a*(l*l+v*v)-h*(c*l+f*v-h*o-l*e-v*i))*(1-Math.cos(n))+o*Math.cos(n)+(-f*l+c*v-v*e+l*i)*Math.sin(n),y:(c*(h*h+v*v)-l*(a*h+f*v-h*o-l*e-v*i))*(1-Math.cos(n))+e*Math.cos(n)+(f*h-a*v+v*o-h*i)*Math.sin(n),z:(f*(h*h+l*l)-v*(a*h+c*l-h*o-l*e-v*i))*(1-Math.cos(n))+i*Math.cos(n)+(-c*h+a*l-l*o+h*e)*Math.sin(n)}}return t},transformMatrix:L,distance:V,distanceSquared:C,isEqual:function(n,t){return n.x===t.x&&n.y===t.y&&n.z===t.z},max:I,min:B,negate:function(n){return{x:-n.x,y:-n.y,z:-n.z}},lerp:G,transformNdcToWorldSpace:function(n,t,r){return L(L(n,r),t)}}),Z=function(n,t){return{min:n,max:t}},H=function(n){return E(.5,N(n.min,n.max))};function K(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var u=a([n],t,!0);return u.reduce((function(n,t){return Z(B(n.min,t.min),I(n.max,t.max))}))}var Q=Object.freeze({__proto__:null,create:Z,fromVectors:function(n){return K.apply(void 0,n.map((function(n){return Z(n,n)})))},center:H,union:K}),U=Object.freeze({__proto__:null,create:function(n){var t=H(n),r=q(F(n.max,t)),u=Math.max(r,q(t));return{center:t,radius:r,epsilon:0===u?1:1e-6*u}}});function X(n,t,r,u){return{x:n,y:t,width:r,height:u}}function Y(n,t){return X(n.x,n.y,t.width,t.height)}function $(n,t){var r=Math.min(n.width/t.width,n.height/t.height),u=hn(r,t);return Y(l(un(n),vn(u)),u)}function nn(n,t){var r=Math.max(n.width/t.width,n.height/t.height),u=hn(r,t);return Y(l(un(n),vn(u)),u)}function tn(n,t){var r=Math.min(Math.sqrt(n/rn(t)),1),u=ln(hn(r,t));return Y(l(un(t),vn(u)),u)}function rn(n){return n.width*n.height}function un(n){return{x:n.x+n.width/2,y:n.y+n.height/2}}function on(n){return h(n.x,n.y)}var en=Object.freeze({__proto__:null,create:X,fromDimensions:function(n){return X(0,0,n.width,n.height)},fromPointAndDimensions:Y,fromPoints:function(n,t){var r=Math.min(n.x,t.x),u=Math.min(n.y,t.y);return X(r,u,Math.max(n.x,t.x)-r,Math.max(n.y,t.y)-u)},containFit:$,cropFit:nn,scaleFit:tn,scale:function n(t,r,u){return null==u?n(t,r,r):X(t.x*r,t.y*u,t.width*r,t.height*u)},isEqual:function(n,t){return s(n,t)&&cn(n,t)},offset:function(n,t){return Y(v(on(t),n),t)},area:rn,center:un,topLeft:on,bottomRight:function(n){return h(n.x+n.width,n.y+n.height)},isPortrait:function(n){return n.width<n.height},isLandscape:function(n){return n.width>n.height},isSquare:function(n){return n.width===n.height},pad:function(n,t){return X(n.x-t,n.y-t,n.width+2*t,n.height+2*t)},fromJson:function(n){var t=JSON.parse(n);return Array.isArray(t)?X(t[0],t[1],t[2],t[3]):X(t.x,t.y,t.width,t.height)}}),an=function(n,t){return{width:n,height:t}},cn=function(n,t){return n.width===t.width&&n.height===t.height},fn=function(n,t,r){return{width:r.width*n,height:r.height*t}},hn=function(n,t){return fn(n,n,t)},ln=function(n){return{width:Math.floor(n.width),height:Math.floor(n.height)}},vn=function(n){return{x:n.width/2,y:n.height/2}};function sn(n,t){return void 0===t&&(t=h()),Y(t,n)}var dn=Object.freeze({__proto__:null,create:an,square:function(n){return an(n,n)},isEqual:cn,scale:fn,proportionalScale:hn,trim:function(n,t){return{width:Math.min(n.width,t.width),height:Math.min(n.height,t.height)}},containFit:function(n,t){var r=$(sn(n),sn(t));return{width:r.width,height:r.height}},cropFit:function(n,t){var r=nn(sn(n),sn(t));return{width:r.width,height:r.height}},scaleFit:function(n,t){var r=tn(n,sn(t));return{width:r.width,height:r.height}},round:function(n){return{width:Math.round(n.width),height:Math.round(n.height)}},floor:ln,center:vn,aspectRatio:function(n){return n.width/n.height},area:function(n){return n.width*n.height},fitToRatio:function(n,t){return t.width>=t.height*n?an(t.height*n,t.height):an(t.width,t.width/n)},toRectangle:sn});function Mn(n){var t,r,u,o;return void 0===n&&(n={}),{x:null!==(t=n.x)&&void 0!==t?t:0,y:null!==(r=n.y)&&void 0!==r?r:0,z:null!==(u=n.z)&&void 0!==u?u:0,order:null!==(o=n.order)&&void 0!==o?o:"xyz"}}var yn=Object.freeze({__proto__:null,create:Mn,fromDegrees:function(n){void 0===n&&(n={});var t=n.x,r=n.y,u=void 0===r?0:r,o=n.z,e=void 0===o?0:o,i=n.order;return Mn({x:m(void 0===t?0:t),y:m(u),z:m(e),order:i})},fromRotationMatrix:function(n,t){void 0===t&&(t="xyz");var r=j(n),u=0,o=0,e=0;return"xyz"===t?(o=Math.asin(c(r.m13,-1,1)),Math.abs(r.m13)<.9999999?(u=Math.atan2(-r.m23,r.m33),e=Math.atan2(-r.m12,r.m11)):(u=Math.atan2(r.m32,r.m22),e=0)):"yxz"===t?(u=Math.asin(-c(r.m23,-1,1)),Math.abs(r.m23)<.9999999?(o=Math.atan2(r.m13,r.m33),e=Math.atan2(r.m21,r.m22)):(o=Math.atan2(-r.m31,r.m11),e=0)):"zxy"===t?(u=Math.asin(c(r.m32,-1,1)),Math.abs(r.m32)<.9999999?(o=Math.atan2(-r.m31,r.m33),e=Math.atan2(-r.m12,r.m22)):(o=0,e=Math.atan2(r.m21,r.m11))):"zyx"===t?(o=Math.asin(-c(r.m31,-1,1)),Math.abs(r.m31)<.9999999?(u=Math.atan2(r.m32,r.m33),e=Math.atan2(r.m21,r.m11)):(u=0,e=Math.atan2(-r.m12,r.m22))):"yzx"===t?(e=Math.asin(c(r.m21,-1,1)),Math.abs(r.m21)<.9999999?(u=Math.atan2(-r.m23,r.m22),o=Math.atan2(-r.m31,r.m11)):(u=0,o=Math.atan2(r.m13,r.m33))):"xzy"===t&&(e=Math.asin(-c(r.m12,-1,1)),Math.abs(r.m12)<.9999999?(u=Math.atan2(r.m32,r.m22),o=Math.atan2(r.m13,r.m11)):(u=Math.atan2(-r.m23,r.m33),o=0)),{x:u,y:o,z:e,order:t}},fromJson:function(n){var t=JSON.parse(n);if(Array.isArray(t)){var r=t[3];return{x:t[0],y:t[1],z:t[2],order:void 0===r?"xyz":r}}var u=t.order;return{x:t.x,y:t.y,z:t.z,order:void 0===u?"xyz":u}},isType:function(n){var t=n;return null!=t&&t.hasOwnProperty("x")&&t.hasOwnProperty("y")&&t.hasOwnProperty("z")&&t.hasOwnProperty("order")}});function mn(n){return F(n.end,n.start)}var xn=Object.freeze({__proto__:null,create:function(n){var t,r;return void 0===n&&(n={}),{start:null!==(t=n.start)&&void 0!==t?t:P(),end:null!==(r=n.end)&&void 0!==r?r:P()}},center:function(n){return G(n.start,n.end,.5)},transformMatrix:function(n,t){return{start:L(n.start,t),end:L(n.end,t)}},distance:function(n){return V(n.start,n.end)},distanceSquared:function(n){return C(n.start,n.end)},direction:mn}),_n=function(n,t,r,u,o,e){return void 0===n&&(n=1),void 0===t&&(t=0),void 0===r&&(r=0),void 0===u&&(u=1),void 0===o&&(o=0),void 0===e&&(e=0),{a:n,b:t,c:r,d:u,tx:o,ty:e}},pn=function(){return _n()},zn=function(n,t){var r=m(n),u=Math.cos(r),o=Math.sin(r);return _n(t.a*u+t.c*o,t.b*u+t.d*o,t.a*-o+t.c*u,t.b*-o+t.d*u,t.tx,t.ty)},bn=function(n,t,r){return _n(r.a,r.b,r.c,r.d,r.a*n+r.c*t+r.tx,r.b*n+r.d*t+r.ty)},wn=Object.freeze({__proto__:null,create:_n,identity:pn,translation:function(n,t){return bn(n,t,pn())},rotation:function(n){return zn(n,pn())},rotate:zn,translate:bn,transformPoint:function(n,t){return h(n.a*t.x+n.c*t.y+n.tx,n.b*t.x+n.d*t.y+n.ty)}}),On=Object.freeze({__proto__:null,create:function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return 2===n.length?{a:n[0].x,b:n[0].y,c:n[1].x,d:n[1].y}:4===n.length?{a:n[0],b:n[1],c:n[2],d:n[3]}:{a:0,b:0,c:0,d:0}},determinant:function(n){return n.a*n.d-n.b*n.c},dot:function(n){return n.a*n.c+n.b*n.d}});function jn(n){return void 0===n&&(n={}),r({normal:P(),constant:0},n)}function gn(n,t){return D(n.normal,t)+n.constant}var kn=Object.freeze({__proto__:null,create:jn,fromNormalAndCoplanarPoint:function(n,t){return jn({normal:n,constant:-D(t,n)})},distanceToPoint:gn,intersectLine:function(n,t){var r=mn(t),u=D(n.normal,r);if(0===u)return 0===gn(n,t.start)?t.start:void 0;var o=-(D(t.start,n.normal)+n.constant)/u;return o<0||o>1?void 0:N(E(o,r),t.start)},projectPoint:function(n,t){return N(t,E(-gn(n,t),n.normal))}});function An(n){return void 0===n&&(n={}),r({x:0,y:0,z:0,w:1},n)}var Sn=Object.freeze({__proto__:null,create:An,fromJson:function(n){var t=JSON.parse(n);return Array.isArray(t)?An({x:t[0],y:t[1],z:t[2],w:t[3]}):An(t)},fromAxisAngle:function(n,t){var r=t/2,u=Math.sin(r);return{x:n.x*u,y:n.y*u,z:n.z*u,w:Math.cos(r)}},fromMatrixRotation:function(n){var t,r=j(n),u=A(n),o=1/u.x,e=1/u.y,i=1/u.z,a=r.m11*o,c=r.m21*e,f=r.m31*i,h=r.m12*o,l=r.m22*e,v=r.m32*i,s=r.m13*o,d=r.m23*e,M=r.m33*i,y=a+l+M;return y>0?{x:(v-d)/(t=2*Math.sqrt(y+1)),y:(s-f)/t,z:(c-h)/t,w:.25*t}:a>l&&a>M?{x:.25*(t=2*Math.sqrt(1+a-l-M)),y:(c+h)/t,z:(s+f)/t,w:t}:l>M?{x:(c+h)/(t=2*Math.sqrt(1+l-a-M)),y:.25*t,z:(v+d)/t,w:(s-f)/t}:{x:(s+f)/(t=2*Math.sqrt(1+M-a-l)),y:(v+d)/t,z:.25*t,w:(c-h)/t}},fromEuler:function(n){var t=n.x,r=n.y,u=n.z,o=n.order,e=Math.cos(t/2),i=Math.cos(r/2),a=Math.cos(u/2),c=Math.sin(t/2),f=Math.sin(r/2),h=Math.sin(u/2),l=0,v=0,s=0,d=0;switch(o){case"xyz":l=c*i*a+e*f*h,v=e*f*a-c*i*h,s=e*i*h+c*f*a,d=e*i*a-c*f*h;break;case"yxz":l=c*i*a+e*f*h,v=e*f*a-c*i*h,s=e*i*h-c*f*a,d=e*i*a+c*f*h;break;case"zxy":l=c*i*a-e*f*h,v=e*f*a+c*i*h,s=e*i*h+c*f*a,d=e*i*a-c*f*h;break;case"zyx":l=c*i*a-e*f*h,v=e*f*a+c*i*h,s=e*i*h-c*f*a,d=e*i*a+c*f*h;break;case"yzx":l=c*i*a+e*f*h,v=e*f*a+c*i*h,s=e*i*h-c*f*a,d=e*i*a-c*f*h;break;case"xzy":l=c*i*a-e*f*h,v=e*f*a-c*i*h,s=e*i*h+c*f*a,d=e*i*a+c*f*h}return{x:l,y:v,z:s,w:d}},multiply:function(n,t){return{x:n.x*t.w+n.w*t.x+n.y*t.z-n.z*t.y,y:n.y*t.w+n.w*t.y+n.z*t.x-n.x*t.z,z:n.z*t.w+n.w*t.z+n.x*t.y-n.y*t.x,w:n.w*t.w-n.x*t.x-n.y*t.y-n.z*t.z}},isType:function(n){var t=n;return null!=t&&t.hasOwnProperty("x")&&t.hasOwnProperty("y")&&t.hasOwnProperty("z")&&t.hasOwnProperty("w")}});function Pn(n,t){return N(E(t,n.direction),n.origin)}function Tn(n,t){var r=D(t.normal,n.direction);if(0===r)return 0===gn(t,n.origin)?0:void 0;var u=-(D(n.origin,t.normal)+t.constant)/r;return u>=0?u:void 0}var qn=Object.freeze({__proto__:null,create:function(n){var t,r;return void 0===n&&(n={}),{origin:null!==(t=n.origin)&&void 0!==t?t:P(),direction:null!==(r=n.direction)&&void 0!==r?r:S()}},at:Pn,distanceToPlane:Tn,intersectPlane:function(n,t){var r=Tn(n,t);return null!=r?Pn(n,r):void 0}});export{t as _,U as a,Q as b,o as c,dn as d,e,r as f,a as g,x as h,en as i,kn as j,c as k,xn as l,g as m,i as n,u as o,d as p,On as q,qn as r,wn as s,Sn as t,yn as u,W as v}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**!
|
|
2
2
|
* Copyright (c) 2022 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{m as t,s,a as i,g as n}from"./p-
|
|
4
|
+
import{m as t,s,a as i,g as n}from"./p-b8774c9c.js";import{g as e,w as r}from"./p-3a20a038.js";import{j as a,v as o}from"./p-77be081a.js";import{m as h}from"./p-e75bba97.js";function c(t){return new Promise(((s,i)=>{t(((t,n)=>{null!=t?i(t):null!=n?s(n):i(new Error("Invalid gRPC response. Error and result are empty."))}))}))}async function m(t,s){const i=await t();return new e.grpc.Metadata({"jwt-context":JSON.stringify({jwt:i,metadata:{"x-device-id":s||""}})})}class u{constructor(t,s,i,n){this.model=t,this.client=s,this.jwtProvider=i,this.deviceId=n,this.outcome=Promise.resolve(void 0)}addEntity(t){return this.performMeasurement((()=>this.model.addEntity(t)))}clearEntities(){return this.performMeasurement((()=>(this.model.clearEntities(),this.model.clearOutcome(),!0)))}removeEntity(t){return this.performMeasurement((()=>this.model.removeEntity(t)))}setEntities(t){return this.performMeasurement((()=>this.model.setEntities(t)))}performMeasurement(t){const s=this.model.getEntities(),i=t(),n=this.model.getEntities();return i&&(this.measureAndUpdateModel(n),this.highlightEntities(s,n)),this.outcome}measureAndUpdateModel(t){this.outcome=t.length>0?this.measureEntities(t).then((t=>(this.model.setOutcome(t),this.model.getOutcome()))):Promise.resolve(void 0)}async measureEntities(i){if(i.length>0){const n=await c((async t=>{const n=await m(this.jwtProvider,this.deviceId),e=new s.MeasureRequest;e.setEntitiesList(i.map((t=>t.toProto()))),this.client.measure(e,n,t)}));return t(n.toObject())}}async highlightEntities(t,n){await c((async e=>{const a=await m(this.jwtProvider,this.deviceId),o=new Set(n),h=t.filter((t=>!o.has(t))).map((t=>{const n=new s.ModelEntityUpdate;return n.setModelEntity(i.ModelEntity.deserializeBinary(t.modelEntity)),n.setHighlight((new r.BoolValue).setValue(!1)),n})),c=n.map((t=>{const n=new s.ModelEntityUpdate;return n.setModelEntity(i.ModelEntity.deserializeBinary(t.modelEntity)),n.setHighlight((new r.BoolValue).setValue(!0)),n})),u=new s.UpdateModelEntitiesRequest;u.setUpdatesList([...h,...c]),this.client.updateModelEntities(u,a,e)}))}}class w{constructor(t,s){this.point=t,this.modelEntity=s}static fromHit(t){if(null!=t.hitPoint&&null!=t.modelEntity){const s=h.ifInvalidThrow(a)(t.hitPoint),i=o.protobuf.core.ModelEntity.encode(t.modelEntity).finish();return new w(s,i)}throw new Error("Cannot create MeasurementEntity from Hit. Hit is missing hit point and model entity")}toProto(){const t=new s.MeasureEntity,e=new n.Vector3f;e.setX(this.point.x),e.setY(this.point.y),e.setZ(this.point.z),t.setPoint(e);const r=i.ModelEntity.deserializeBinary(this.modelEntity);return t.setModelEntity(r),t}}export{u as M,w as a}
|