dome-embedded-app-sdk
Version:
Build Dome cards and document viewers with a single SDK. Cards let you extend a dome with custom functionality, while viewers let you render and edit documents inside Dome.
1 lines • 88.3 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.domeSdk=t():e.domeSdk=t()}(this,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{CardClientMessageType:()=>qe,CardFsErrorCode:()=>tt,CardFsFileType:()=>et,CardMessageType:()=>Ge,CardPermission:()=>$e,CardSdk:()=>at,CommonClientMessageType:()=>ze,CryptoA01:()=>Qe,DomeEmbeddedAppSdk:()=>Je,ViewerClientMessageType:()=>We,ViewerMessageType:()=>Ve,ViewerSdk:()=>Xe,cardPermission:()=>Ze,getKeyFromBlob:()=>it,getKeyFromBlobStr:()=>nt});const r="0.5.0";let n,i,s;try{n=new TextDecoder}catch(e){}let a=0;const o=[],c={};let l,d,u,h,f,p,y,g=11281e4,m=1681e4,E=o,_=0,w={},S=0,b=0,A=[],I=[],C={useRecords:!1,mapsAsObjects:!0},F=!1,T=2;try{new Function("")}catch(e){T=1/0}class R{constructor(e){if(e&&(!e.keyMap&&!e._keyMap||e.useRecords||(e.useRecords=!1,e.mapsAsObjects=!0),!1===e.useRecords&&void 0===e.mapsAsObjects&&(e.mapsAsObjects=!0),e.getStructures&&(e.getShared=e.getStructures),e.getShared&&!e.structures&&((e.structures=[]).uninitialized=!0),e.keyMap)){this.mapKey=new Map;for(let[t,r]of Object.entries(e.keyMap))this.mapKey.set(r,t)}Object.assign(this,e)}decodeKey(e){return this.keyMap&&this.mapKey.get(e)||e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(e){if(!this._keyMap)return e;let t=new Map;for(let[r,n]of Object.entries(e))t.set(this._keyMap.hasOwnProperty(r)?this._keyMap[r]:r,n);return t}decodeKeys(e){if(!this._keyMap||"Map"!=e.constructor.name)return e;if(!this._mapKey){this._mapKey=new Map;for(let[e,t]of Object.entries(this._keyMap))this._mapKey.set(t,e)}let t={};return e.forEach(((e,r)=>t[v(this._mapKey.has(r)?this._mapKey.get(r):r)]=e)),t}mapDecode(e,t){let r=this.decode(e);return this._keyMap&&"Array"===r.constructor.name?r.map((e=>this.decodeKeys(e))):r}decode(e,t){if(i)return Z((()=>(ee(),this?this.decode(e,t):R.prototype.decode.call(C,e,t))));s=t>-1?t:e.length,a=0,_=0,b=0,d=null,E=o,u=null,i=e;try{p=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(t){if(i=null,e instanceof Uint8Array)throw t;throw new Error("Source must be a Uint8Array or Buffer but was a "+(e&&"object"==typeof e?e.constructor.name:typeof e))}if(this instanceof R){if(w=this,f=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return l=this.structures,O();(!l||l.length>0)&&(l=[])}else w=C,(!l||l.length>0)&&(l=[]),f=null;return O()}decodeMultiple(e,t){let r,n=0;try{let i=e.length;F=!0;let s=this?this.decode(e,i):re.decode(e,i);if(!t){for(r=[s];a<i;)n=a,r.push(O());return r}if(!1===t(s))return;for(;a<i;)if(n=a,!1===t(O()))return}catch(e){throw e.lastPosition=n,e.values=r,e}finally{F=!1,ee()}}}function O(){try{let e=N();if(u){if(a>=u.postBundlePosition){let e=new Error("Unexpected bundle position");throw e.incomplete=!0,e}a=u.postBundlePosition,u=null}if(a==s)l=null,i=null,h&&(h=null);else{if(a>s){let e=new Error("Unexpected end of CBOR data");throw e.incomplete=!0,e}if(!F)throw new Error("Data read, but end of buffer not reached")}return e}catch(e){throw ee(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer"))&&(e.incomplete=!0),e}}function N(){let e=i[a++],t=e>>5;if(e&=31,e>23)switch(e){case 24:e=i[a++];break;case 25:if(7==t)return function(){let e=i[a++],t=i[a++],r=(127&e)>>2;if(31===r)return t||3&e?NaN:128&e?-1/0:1/0;if(0===r){let r=((3&e)<<8|t)/(1<<24);return 128&e?-r:r}return x[3]=128&e|56+(r>>1),x[2]=(7&e)<<5|t>>3,x[1]=t<<5,x[0]=0,j[0]}();e=p.getUint16(a),a+=2;break;case 26:if(7==t){let e=p.getFloat32(a);if(w.useFloat32>2){let t=te[(127&i[a])<<1|i[a+1]>>7];return a+=4,(t*e+(e>0?.5:-.5)|0)/t}return a+=4,e}e=p.getUint32(a),a+=4;break;case 27:if(7==t){let e=p.getFloat64(a);return a+=8,e}if(t>1){if(p.getUint32(a)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");e=p.getUint32(a+4)}else w.int64AsNumber?(e=4294967296*p.getUint32(a),e+=p.getUint32(a+4)):e=p.getBigUint64(a);a+=8;break;case 31:switch(t){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let e,r=[],n=0;for(;(e=N())!=c;){if(n>=g)throw new Error(`Array length exceeds ${g}`);r[n++]=e}return 4==t?r:3==t?r.join(""):Buffer.concat(r);case 5:let i;if(w.mapsAsObjects){let e={},t=0;if(w.keyMap)for(;(i=N())!=c;){if(t++>=m)throw new Error(`Property count exceeds ${m}`);e[v(w.decodeKey(i))]=N()}else for(;(i=N())!=c;){if(t++>=m)throw new Error(`Property count exceeds ${m}`);e[v(i)]=N()}return e}{y&&(w.mapsAsObjects=!0,y=!1);let e=new Map;if(w.keyMap){let t=0;for(;(i=N())!=c;){if(t++>=m)throw new Error(`Map size exceeds ${m}`);e.set(w.decodeKey(i),N())}}else{let t=0;for(;(i=N())!=c;){if(t++>=m)throw new Error(`Map size exceeds ${m}`);e.set(i,N())}}return e}case 7:return c;default:throw new Error("Invalid major type for indefinite length "+t)}default:throw new Error("Unknown token "+e)}switch(t){case 0:return e;case 1:return~e;case 2:return r=e,w.copyBuffers?Uint8Array.prototype.slice.call(i,a,a+=r):i.subarray(a,a+=r);case 3:if(b>=a)return d.slice(a-S,(a+=e)-S);if(0==b&&s<140&&e<32){let t=e<16?P(e):B(e);if(null!=t)return t}return D(e);case 4:if(e>=g)throw new Error(`Array length exceeds ${g}`);let t=new Array(e);for(let r=0;r<e;r++)t[r]=N();return t;case 5:if(e>=m)throw new Error(`Map size exceeds ${g}`);if(w.mapsAsObjects){let t={};if(w.keyMap)for(let r=0;r<e;r++)t[v(w.decodeKey(N()))]=N();else for(let r=0;r<e;r++)t[v(N())]=N();return t}{y&&(w.mapsAsObjects=!0,y=!1);let t=new Map;if(w.keyMap)for(let r=0;r<e;r++)t.set(w.decodeKey(N()),N());else for(let r=0;r<e;r++)t.set(N(),N());return t}case 6:if(e>=57337){let t=l[8191&e];if(t)return t.read||(t.read=L(t)),t.read();if(e<65536){if(57343==e){let e=X(),t=N(),r=N();V(t,r);let n={};if(w.keyMap)for(let t=2;t<e;t++){n[v(w.decodeKey(r[t-2]))]=N()}else for(let t=2;t<e;t++){n[v(r[t-2])]=N()}return n}if(57342==e){let e=X(),t=N();for(let r=2;r<e;r++)V(t++,N());return N()}if(57337==e)return function(){let e=X(),t=a+N();for(let t=2;t<e;t++){let e=X();a+=e}let r=a;return a=t,u=[M(X()),M(X())],u.position0=0,u.position1=0,u.postBundlePosition=a,a=r,N()}();if(w.getShared&&(Q(),t=l[8191&e],t))return t.read||(t.read=L(t)),t.read()}}let n=A[e];if(n)return n.handlesRead?n(N):n(N());{let t=N();for(let r=0;r<I.length;r++){let n=I[r](e,t);if(void 0!==n)return n}return new K(t,e)}case 7:switch(e){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;default:let t=(f||q())[e];if(void 0!==t)return t;throw new Error("Unknown token "+e)}default:if(isNaN(e)){let e=new Error("Unexpected end of CBOR data");throw e.incomplete=!0,e}throw new Error("Unknown CBOR token "+e)}var r}const k=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function L(e){if(!e)throw new Error("Structure is required in record definition");return e.slowReads=0,function(){let e=i[a++];if(e&=31,e>23)switch(e){case 24:e=i[a++];break;case 25:e=p.getUint16(a),a+=2;break;case 26:e=p.getUint32(a),a+=4;break;default:throw new Error("Expected array header, but got "+i[a-1])}let t=this.compiledReader;for(;t;){if(t.propertyCount===e)return t(N);t=t.next}if(this.slowReads++>=T){let r=this.length==e?this:this.slice(0,e);return t=w.keyMap?new Function("r","return {"+r.map((e=>w.decodeKey(e))).map((e=>k.test(e)?v(e)+":r()":"["+JSON.stringify(e)+"]:r()")).join(",")+"}"):new Function("r","return {"+r.map((e=>k.test(e)?v(e)+":r()":"["+JSON.stringify(e)+"]:r()")).join(",")+"}"),this.compiledReader&&(t.next=this.compiledReader),t.propertyCount=e,this.compiledReader=t,t(N)}let r={};if(w.keyMap)for(let t=0;t<e;t++)r[v(w.decodeKey(this[t]))]=N();else for(let t=0;t<e;t++)r[v(this[t])]=N();return r}}function v(e){if("string"==typeof e)return"__proto__"===e?"__proto_":e;if("number"==typeof e||"boolean"==typeof e||"bigint"==typeof e)return e.toString();if(null==e)return e+"";throw new Error("Invalid property name type "+typeof e)}let D=M;function M(e){let t;if(e<16&&(t=P(e)))return t;if(e>64&&n)return n.decode(i.subarray(a,a+=e));const r=a+e,s=[];for(t="";a<r;){const e=i[a++];if(128&e)if(192==(224&e)){const t=63&i[a++];s.push((31&e)<<6|t)}else if(224==(240&e)){const t=63&i[a++],r=63&i[a++];s.push((31&e)<<12|t<<6|r)}else if(240==(248&e)){let t=(7&e)<<18|(63&i[a++])<<12|(63&i[a++])<<6|63&i[a++];t>65535&&(t-=65536,s.push(t>>>10&1023|55296),t=56320|1023&t),s.push(t)}else s.push(e);else s.push(e);s.length>=4096&&(t+=U.apply(String,s),s.length=0)}return s.length>0&&(t+=U.apply(String,s)),t}let U=String.fromCharCode;function B(e){let t=a,r=new Array(e);for(let n=0;n<e;n++){const e=i[a++];if((128&e)>0)return void(a=t);r[n]=e}return U.apply(String,r)}function P(e){if(e<4){if(e<2){if(0===e)return"";{let e=i[a++];return(128&e)>1?void(a-=1):U(e)}}{let t=i[a++],r=i[a++];if((128&t)>0||(128&r)>0)return void(a-=2);if(e<3)return U(t,r);let n=i[a++];return(128&n)>0?void(a-=3):U(t,r,n)}}{let t=i[a++],r=i[a++],n=i[a++],s=i[a++];if((128&t)>0||(128&r)>0||(128&n)>0||(128&s)>0)return void(a-=4);if(e<6){if(4===e)return U(t,r,n,s);{let e=i[a++];return(128&e)>0?void(a-=5):U(t,r,n,s,e)}}if(e<8){let o=i[a++],c=i[a++];if((128&o)>0||(128&c)>0)return void(a-=6);if(e<7)return U(t,r,n,s,o,c);let l=i[a++];return(128&l)>0?void(a-=7):U(t,r,n,s,o,c,l)}{let o=i[a++],c=i[a++],l=i[a++],d=i[a++];if((128&o)>0||(128&c)>0||(128&l)>0||(128&d)>0)return void(a-=8);if(e<10){if(8===e)return U(t,r,n,s,o,c,l,d);{let e=i[a++];return(128&e)>0?void(a-=9):U(t,r,n,s,o,c,l,d,e)}}if(e<12){let u=i[a++],h=i[a++];if((128&u)>0||(128&h)>0)return void(a-=10);if(e<11)return U(t,r,n,s,o,c,l,d,u,h);let f=i[a++];return(128&f)>0?void(a-=11):U(t,r,n,s,o,c,l,d,u,h,f)}{let u=i[a++],h=i[a++],f=i[a++],p=i[a++];if((128&u)>0||(128&h)>0||(128&f)>0||(128&p)>0)return void(a-=12);if(e<14){if(12===e)return U(t,r,n,s,o,c,l,d,u,h,f,p);{let e=i[a++];return(128&e)>0?void(a-=13):U(t,r,n,s,o,c,l,d,u,h,f,p,e)}}{let y=i[a++],g=i[a++];if((128&y)>0||(128&g)>0)return void(a-=14);if(e<15)return U(t,r,n,s,o,c,l,d,u,h,f,p,y,g);let m=i[a++];return(128&m)>0?void(a-=15):U(t,r,n,s,o,c,l,d,u,h,f,p,y,g,m)}}}}}let j=new Float32Array(1),x=new Uint8Array(j.buffer,0,4);new Array(4096);class K{constructor(e,t){this.value=e,this.tag=t}}A[0]=e=>new Date(e),A[1]=e=>new Date(Math.round(1e3*e)),A[2]=e=>{let t=BigInt(0);for(let r=0,n=e.byteLength;r<n;r++)t=BigInt(e[r])+(t<<BigInt(8));return t},A[3]=e=>BigInt(-1)-A[2](e),A[4]=e=>+(e[1]+"e"+e[0]),A[5]=e=>e[1]*Math.exp(e[0]*Math.log(2));const V=(e,t)=>{let r=l[e-=57344];r&&r.isShared&&((l.restoreStructures||(l.restoreStructures=[]))[e]=r),l[e]=t,t.read=L(t)};A[105]=e=>{let t=e.length,r=e[1];V(e[0],r);let n={};for(let i=2;i<t;i++){n[v(r[i-2])]=e[i]}return n},A[14]=e=>u?u[0].slice(u.position0,u.position0+=e):new K(e,14),A[15]=e=>u?u[1].slice(u.position1,u.position1+=e):new K(e,15);let H={Error,RegExp};A[27]=e=>(H[e[0]]||Error)(e[1],e[2]);const z=e=>{if(132!=i[a++]){let e=new Error("Packed values structure must be followed by a 4 element array");throw i.length<a&&(e.incomplete=!0),e}let t=e();if(!t||!t.length){let e=new Error("Packed values structure must be followed by a 4 element array");throw e.incomplete=!0,e}return f=f?t.concat(f.slice(t.length)):t,f.prefixes=e(),f.suffixes=e(),e()};function W(e,t){return"string"==typeof e?e+t:e instanceof Array?e.concat(t):Object.assign({},e,t)}function q(){if(!f){if(!w.getShared)throw new Error("No packed values available");Q()}return f}z.handlesRead=!0,A[51]=z,A[6]=e=>{if(!f){if(!w.getShared)return new K(e,6);Q()}if("number"==typeof e)return f[16+(e>=0?2*e:-2*e-1)];let t=new Error("No support for non-integer packed references yet");throw void 0===e&&(t.incomplete=!0),t},A[28]=e=>{h||(h=new Map,h.id=0);let t,r=h.id++,n=a;t=i[a]>>5==4?[]:{};let s={target:t};h.set(r,s);let o=e();return s.used?(Object.getPrototypeOf(t)!==Object.getPrototypeOf(o)&&(a=n,t=o,h.set(r,{target:t}),o=e()),Object.assign(t,o)):(s.target=o,o)},A[28].handlesRead=!0,A[29]=e=>{let t=h.get(e);return t.used=!0,t.target},A[258]=e=>new Set(e),(A[259]=e=>(w.mapsAsObjects&&(w.mapsAsObjects=!1,y=!0),e())).handlesRead=!0;I.push(((e,t)=>e>=225&&e<=255?W(q().prefixes[e-224],t):e>=28704&&e<=32767?W(q().prefixes[e-28672],t):e>=1879052288&&e<=2147483647?W(q().prefixes[e-1879048192],t):e>=216&&e<=223?W(t,q().suffixes[e-216]):e>=27647&&e<=28671?W(t,q().suffixes[e-27639]):e>=1811940352&&e<=1879048191?W(t,q().suffixes[e-1811939328]):1399353956==e?{packedValues:f,structures:l.slice(0),version:t}:55799==e?t:void 0));const G=1==new Uint8Array(new Uint16Array([1]).buffer)[0],$=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,"undefined"==typeof BigUint64Array?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,"undefined"==typeof BigInt64Array?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array],J=[64,68,69,70,71,72,77,78,79,85,86];for(let e=0;e<$.length;e++)Y($[e],J[e]);function Y(e,t){let r,n="get"+e.name.slice(0,-5);"function"==typeof e?r=e.BYTES_PER_ELEMENT:e=null;for(let i=0;i<2;i++){if(!i&&1==r)continue;let s=2==r?1:4==r?2:8==r?3:0;A[i?t:t-4]=1==r||i==G?n=>{if(!e)throw new Error("Could not find typed array for code "+t);return w.copyBuffers||1!==r&&(2!==r||1&n.byteOffset)&&(4!==r||3&n.byteOffset)&&(8!==r||7&n.byteOffset)?new e(Uint8Array.prototype.slice.call(n,0).buffer):new e(n.buffer,n.byteOffset,n.byteLength>>s)}:r=>{if(!e)throw new Error("Could not find typed array for code "+t);let a=new DataView(r.buffer,r.byteOffset,r.byteLength),o=r.length>>s,c=new e(o),l=a[n];for(let e=0;e<o;e++)c[e]=l.call(a,e<<s,i);return c}}}function X(){let e=31&i[a++];if(e>23)switch(e){case 24:e=i[a++];break;case 25:e=p.getUint16(a),a+=2;break;case 26:e=p.getUint32(a),a+=4}return e}function Q(){if(w.getShared){let e=Z((()=>(i=null,w.getShared())))||{},t=e.structures||[];w.sharedVersion=e.version,f=w.sharedValues=e.packedValues,!0===l?w.structures=l=t:l.splice.apply(l,[0,t.length].concat(t))}}function Z(e){let t=s,r=a,n=_,o=S,c=b,f=d,y=E,g=h,m=u,A=new Uint8Array(i.slice(0,s)),I=l,C=w,T=F,R=e();return s=t,a=r,_=n,S=o,b=c,d=f,E=y,h=g,u=m,i=A,F=T,l=I,w=C,p=new DataView(i.buffer,i.byteOffset,i.byteLength),R}function ee(){i=null,h=null,l=null}const te=new Array(147);for(let e=0;e<256;e++)te[e]=+("1e"+Math.floor(45.15-.30103*e));let re=new R({useRecords:!1});const ne=re.decode;re.decodeMultiple;let ie,se,ae;try{ie=new TextEncoder}catch(e){}const oe="object"==typeof globalThis&&globalThis.Buffer,ce=void 0!==oe,le=ce?oe.allocUnsafeSlow:Uint8Array,de=ce?oe:Uint8Array,ue=ce?4294967296:2144337920;let he,fe,pe,ye,ge=0,me=null;const Ee=/[\u0080-\uFFFF]/,_e=Symbol("record-id");function we(e,t){e<24?fe[ge++]=t|e:e<256?(fe[ge++]=24|t,fe[ge++]=e):e<65536?(fe[ge++]=25|t,fe[ge++]=e>>8,fe[ge++]=255&e):(fe[ge++]=26|t,pe.setUint32(ge,e),ge+=4)}class Se{constructor(e,t,r){this.structures=e,this.packedValues=t,this.version=r}}function be(e){e<24?fe[ge++]=128|e:e<256?(fe[ge++]=152,fe[ge++]=e):e<65536?(fe[ge++]=153,fe[ge++]=e>>8,fe[ge++]=255&e):(fe[ge++]=154,pe.setUint32(ge,e),ge+=4)}const Ae="undefined"==typeof Blob?function(){}:Blob;function Ie(e){if(e instanceof Ae)return!0;let t=e[Symbol.toStringTag];return"Blob"===t||"File"===t}function Ce(e,t){switch(typeof e){case"string":if(e.length>3){if(t.objectMap[e]>-1||t.values.length>=t.maxValues)return;let r=t.get(e);if(r)2==++r.count&&t.values.push(e);else if(t.set(e,{count:1}),t.samplingPackedValues){let r=t.samplingPackedValues.get(e);r?r.count++:t.samplingPackedValues.set(e,{count:1})}}break;case"object":if(e)if(e instanceof Array)for(let r=0,n=e.length;r<n;r++)Ce(e[r],t);else{let n=!t.encoder.useRecords;for(var r in e)e.hasOwnProperty(r)&&(n&&Ce(r,t),Ce(e[r],t))}break;case"function":console.log(e)}}const Fe=1==new Uint8Array(new Uint16Array([1]).buffer)[0];function Te(e,t){return!Fe&&t>1&&(e-=4),{tag:e,encode:function(e,t){let r=e.byteLength,n=e.byteOffset||0,i=e.buffer||e;t(ce?oe.from(i,n,r):new Uint8Array(i,n,r))}}}function Re(e,t){let r=e.byteLength;r<24?fe[ge++]=64+r:r<256?(fe[ge++]=88,fe[ge++]=r):r<65536?(fe[ge++]=89,fe[ge++]=r>>8,fe[ge++]=255&r):(fe[ge++]=90,pe.setUint32(ge,r),ge+=4),ge+r>=fe.length&&t(ge+r),fe.set(e.buffer?e:new Uint8Array(e),ge),ge+=r}function Oe(e,t){pe.setUint32(me.position+e,ge-me.position-e+1);let r=me;me=null,t(r[0]),t(r[1])}ae=[Date,Set,Error,RegExp,K,ArrayBuffer,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,"undefined"==typeof BigUint64Array?function(){}:BigUint64Array,Int8Array,Int16Array,Int32Array,"undefined"==typeof BigInt64Array?function(){}:BigInt64Array,Float32Array,Float64Array,Se],se=[{tag:1,encode(e,t){let r=e.getTime()/1e3;(this.useTimestamp32||0===e.getMilliseconds())&&r>=0&&r<4294967296?(fe[ge++]=26,pe.setUint32(ge,r),ge+=4):(fe[ge++]=251,pe.setFloat64(ge,r),ge+=8)}},{tag:258,encode(e,t){t(Array.from(e))}},{tag:27,encode(e,t){t([e.name,e.message])}},{tag:27,encode(e,t){t(["RegExp",e.source,e.flags])}},{getTag:e=>e.tag,encode(e,t){t(e.value)}},{encode(e,t,r){Re(e,r)}},{getTag(e){if(e.constructor===Uint8Array&&(this.tagUint8Array||ce&&!1!==this.tagUint8Array))return 64},encode(e,t,r){Re(e,r)}},Te(68,1),Te(69,2),Te(70,4),Te(71,8),Te(72,1),Te(77,2),Te(78,4),Te(79,8),Te(85,4),Te(86,8),{encode(e,t){let r=e.packedValues||[],n=e.structures||[];if(r.values.length>0){fe[ge++]=216,fe[ge++]=51,be(4);let e=r.values;t(e),be(0),be(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let t=0,r=e.length;t<r;t++)packedObjectMap[e[t]]=t}if(n){pe.setUint32(ge,3655335424),ge+=3;let r=n.slice(0);r.unshift(57344),r.push(new K(e.version,1399353956)),t(r)}else t(new K(e.version,1399353956))}}];let Ne=new class extends R{constructor(e){let t,r,n,i,s;super(e),this.offset=0,e=e||{};let a=de.prototype.utf8Write?function(e,t,r){return fe.utf8Write(e,t,r)}:!(!ie||!ie.encodeInto)&&function(e,t){return ie.encodeInto(e,fe.subarray(t)).written},o=this,c=e.structures||e.saveStructures,l=e.maxSharedStructures;if(null==l&&(l=c?128:0),l>8190)throw new Error("Maximum maxSharedStructure is 8190");let d=e.sequential;d&&(l=0),this.structures||(this.structures=[]),this.saveStructures&&(this.saveShared=this.saveStructures);let u,h,f,p=e.sharedValues;if(p){f=Object.create(null);for(let e=0,t=p.length;e<t;e++)f[p[e]]=e}let y=[],g=0,m=0;this.mapEncode=function(e,t){if(this._keyMap&&!this._mapped&&"Array"===e.constructor.name)e=e.map((e=>this.encodeKeys(e)));return this.encode(e,t)},this.encode=function(a,c){if(fe||(fe=new le(8192),pe=new DataView(fe.buffer,0,8192),ge=0),ye=fe.length-10,ye-ge<2048?(fe=new le(fe.length),pe=new DataView(fe.buffer,0,fe.length),ye=fe.length-10,ge=0):c===Ue&&(ge=ge+7&2147483640),t=ge,o.useSelfDescribedHeader&&(pe.setUint32(ge,3654940416),ge+=3),s=o.structuredClone?new Map:null,o.bundleStrings&&"string"!=typeof a?(me=[],me.size=1/0):me=null,r=o.structures,r){if(r.uninitialized){let e=o.getShared()||{};o.structures=r=e.structures||[],o.sharedVersion=e.version;let t=o.sharedValues=e.packedValues;if(t){f={};for(let e=0,r=t.length;e<r;e++)f[t[e]]=e}}let e=r.length;if(e>l&&!d&&(e=l),!r.transitions){r.transitions=Object.create(null);for(let t=0;t<e;t++){let e=r[t];if(!e)continue;let n,i=r.transitions;for(let r=0,s=e.length;r<s;r++){void 0===i[_e]&&(i[_e]=t);let s=e[r];n=i[s],n||(n=i[s]=Object.create(null)),i=n}i[_e]=1048576|t}}d||(r.nextId=e)}if(n&&(n=!1),i=r||[],h=f,e.pack){let t=new Map;if(t.values=[],t.encoder=o,t.maxValues=e.maxPrivatePackedValues||(f?16:1/0),t.objectMap=f||!1,t.samplingPackedValues=u,Ce(a,t),t.values.length>0){fe[ge++]=216,fe[ge++]=51,be(4);let e=t.values;E(e),be(0),be(0),h=Object.create(f||null);for(let t=0,r=e.length;t<r;t++)h[e[t]]=t}}he=c&Pe;try{if(he)return;if(E(a),me&&Oe(t,E),o.offset=ge,s&&s.idsToInsert){ge+=2*s.idsToInsert.length,ge>ye&&w(ge),o.offset=ge;let e=function(e,t){let r,n=2*t.length,i=e.length-n;t.sort(((e,t)=>e.offset>t.offset?1:-1));for(let r=0;r<t.length;r++){let n=t[r];n.id=r;for(let t of n.references)e[t++]=r>>8,e[t]=255&r}for(;r=t.pop();){let t=r.offset;e.copyWithin(t+n,t,i),n-=2;let s=t+n;e[s++]=216,e[s++]=28,i=t}return e}(fe.subarray(t,ge),s.idsToInsert);return s=null,e}return c&Ue?(fe.start=t,fe.end=ge,fe):fe.subarray(t,ge)}finally{if(r)if(m<10&&m++,r.length>l&&(r.length=l),g>1e4)r.transitions=null,m=0,g=0,y.length>0&&(y=[]);else if(y.length>0&&!d){for(let e=0,t=y.length;e<t;e++)y[e][_e]=void 0;y=[]}if(n&&o.saveShared){o.structures.length>l&&(o.structures=o.structures.slice(0,l));let e=fe.subarray(t,ge);return!1===o.updateSharedData()?o.encode(a):e}c&Be&&(ge=t)}},this.findCommonStringsToPack=()=>(u=new Map,f||(f=Object.create(null)),e=>{let t=e&&e.threshold||4,r=this.pack?e.maxPrivatePackedValues||16:0;p||(p=this.sharedValues=[]);for(let[e,i]of u)i.count>t&&(f[e]=r++,p.push(e),n=!0);for(;this.saveShared&&!1===this.updateSharedData(););u=null});const E=r=>{ge>ye&&(fe=w(ge));var n,i=typeof r;if("string"===i){if(h){let t=h[r];if(t>=0)return void(t<16?fe[ge++]=t+224:(fe[ge++]=198,E(1&t?15-t>>1:t-16>>1)));if(u&&!e.pack){let e=u.get(r);e?e.count++:u.set(r,{count:1})}}let i,s=r.length;if(me&&s>=4&&s<1024){if((me.size+=s)>61440){let e,r=(me[0]?3*me[0].length+me[1].length:0)+10;ge+r>ye&&(fe=w(ge+r)),fe[ge++]=217,fe[ge++]=223,fe[ge++]=249,fe[ge++]=me.position?132:130,fe[ge++]=26,e=ge-t,ge+=4,me.position&&Oe(t,E),me=["",""],me.size=0,me.position=e}let e=Ee.test(r);return me[e?0:1]+=r,fe[ge++]=e?206:207,void E(s)}i=s<32?1:s<256?2:s<65536?3:5;let o=3*s;if(ge+o>ye&&(fe=w(ge+o)),s<64||!a){let e,t,a,o=ge+i;for(e=0;e<s;e++)t=r.charCodeAt(e),t<128?fe[o++]=t:t<2048?(fe[o++]=t>>6|192,fe[o++]=63&t|128):55296==(64512&t)&&56320==(64512&(a=r.charCodeAt(e+1)))?(t=65536+((1023&t)<<10)+(1023&a),e++,fe[o++]=t>>18|240,fe[o++]=t>>12&63|128,fe[o++]=t>>6&63|128,fe[o++]=63&t|128):(fe[o++]=t>>12|224,fe[o++]=t>>6&63|128,fe[o++]=63&t|128);n=o-ge-i}else n=a(r,ge+i,o);n<24?fe[ge++]=96|n:n<256?(i<2&&fe.copyWithin(ge+2,ge+1,ge+1+n),fe[ge++]=120,fe[ge++]=n):n<65536?(i<3&&fe.copyWithin(ge+3,ge+2,ge+2+n),fe[ge++]=121,fe[ge++]=n>>8,fe[ge++]=255&n):(i<5&&fe.copyWithin(ge+5,ge+3,ge+3+n),fe[ge++]=122,pe.setUint32(ge,n),ge+=4),ge+=n}else if("number"===i)if(this.alwaysUseFloat||r>>>0!==r)if(this.alwaysUseFloat||(r|0)!==r){let e;if((e=this.useFloat32)>0&&r<4294967296&&r>=-2147483648){let t;if(fe[ge++]=250,pe.setFloat32(ge,r),e<4||((t=r*te[(127&fe[ge])<<1|fe[ge+1]>>7])|0)===t)return void(ge+=4);ge--}fe[ge++]=251,pe.setFloat64(ge,r),ge+=8}else r>=-24?fe[ge++]=31-r:r>=-256?(fe[ge++]=56,fe[ge++]=~r):r>=-65536?(fe[ge++]=57,pe.setUint16(ge,~r),ge+=2):(fe[ge++]=58,pe.setUint32(ge,~r),ge+=4);else r<24?fe[ge++]=r:r<256?(fe[ge++]=24,fe[ge++]=r):r<65536?(fe[ge++]=25,fe[ge++]=r>>8,fe[ge++]=255&r):(fe[ge++]=26,pe.setUint32(ge,r),ge+=4);else if("object"===i)if(r){if(s){let e=s.get(r);if(e){if(fe[ge++]=216,fe[ge++]=29,fe[ge++]=25,!e.references){let t=s.idsToInsert||(s.idsToInsert=[]);e.references=[],t.push(e)}return e.references.push(ge-t),void(ge+=2)}s.set(r,{offset:ge-t})}let e=r.constructor;if(e===Object)_(r);else if(e===Array){(n=r.length)<24?fe[ge++]=128|n:be(n);for(let e=0;e<n;e++)E(r[e])}else if(e===Map)if((this.mapsAsObjects?!1!==this.useTag259ForMaps:this.useTag259ForMaps)&&(fe[ge++]=217,fe[ge++]=1,fe[ge++]=3),(n=r.size)<24?fe[ge++]=160|n:n<256?(fe[ge++]=184,fe[ge++]=n):n<65536?(fe[ge++]=185,fe[ge++]=n>>8,fe[ge++]=255&n):(fe[ge++]=186,pe.setUint32(ge,n),ge+=4),o.keyMap)for(let[e,t]of r)E(o.encodeKey(e)),E(t);else for(let[e,t]of r)E(e),E(t);else{for(let e=0,t=se.length;e<t;e++){if(r instanceof ae[e]){let t=se[e],n=t.tag;return null==n&&(n=t.getTag&&t.getTag.call(this,r)),n<24?fe[ge++]=192|n:n<256?(fe[ge++]=216,fe[ge++]=n):n<65536?(fe[ge++]=217,fe[ge++]=n>>8,fe[ge++]=255&n):n>-1&&(fe[ge++]=218,pe.setUint32(ge,n),ge+=4),void t.encode.call(this,r,E,w)}}if(r[Symbol.iterator]){if(he){let e=new Error("Iterable should be serialized as iterator");throw e.iteratorNotHandled=!0,e}fe[ge++]=159;for(let e of r)E(e);return void(fe[ge++]=255)}if(r[Symbol.asyncIterator]||Ie(r)){let e=new Error("Iterable/blob should be serialized as iterator");throw e.iteratorNotHandled=!0,e}if(this.useToJSON&&r.toJSON){const e=r.toJSON();if(e!==r)return E(e)}_(r)}}else fe[ge++]=246;else if("boolean"===i)fe[ge++]=r?245:244;else if("bigint"===i){if(r<BigInt(1)<<BigInt(64)&&r>=0)fe[ge++]=27,pe.setBigUint64(ge,r);else if(r>-(BigInt(1)<<BigInt(64))&&r<0)fe[ge++]=59,pe.setBigUint64(ge,-r-BigInt(1));else{if(!this.largeBigIntToFloat){r>=BigInt(0)?fe[ge++]=194:(fe[ge++]=195,r=BigInt(-1)-r);let e=[];for(;r;)e.push(Number(r&BigInt(255))),r>>=BigInt(8);return void Re(new Uint8Array(e.reverse()),w)}fe[ge++]=251,pe.setFloat64(ge,Number(r))}ge+=8}else{if("undefined"!==i)throw new Error("Unknown type: "+i);fe[ge++]=247}},_=!1===this.useRecords?this.variableMapSize?e=>{let t=Object.keys(e),r=Object.values(e),n=t.length;if(n<24?fe[ge++]=160|n:n<256?(fe[ge++]=184,fe[ge++]=n):n<65536?(fe[ge++]=185,fe[ge++]=n>>8,fe[ge++]=255&n):(fe[ge++]=186,pe.setUint32(ge,n),ge+=4),o.keyMap)for(let e=0;e<n;e++)E(o.encodeKey(t[e])),E(r[e]);else for(let e=0;e<n;e++)E(t[e]),E(r[e])}:e=>{fe[ge++]=185;let r=ge-t;ge+=2;let n=0;if(o.keyMap)for(let t in e)("function"!=typeof e.hasOwnProperty||e.hasOwnProperty(t))&&(E(o.encodeKey(t)),E(e[t]),n++);else for(let t in e)("function"!=typeof e.hasOwnProperty||e.hasOwnProperty(t))&&(E(t),E(e[t]),n++);fe[r+++t]=n>>8,fe[r+t]=255&n}:(e,t)=>{let r,s,a,o=i.transitions||(i.transitions=Object.create(null)),c=0,d=0;if(this.keyMap){a=Object.keys(e).map((e=>this.encodeKey(e))),d=a.length;for(let e=0;e<d;e++){let t=a[e];r=o[t],r||(r=o[t]=Object.create(null),c++),o=r}}else for(let t in e)("function"!=typeof e.hasOwnProperty||e.hasOwnProperty(t))&&(r=o[t],r||(1048576&o[_e]&&(s=65535&o[_e]),r=o[t]=Object.create(null),c++),o=r,d++);let u=o[_e];if(void 0!==u)u&=65535,fe[ge++]=217,fe[ge++]=u>>8|224,fe[ge++]=255&u;else{if(a||(a=o.__keys__||(o.__keys__=Object.keys(e))),void 0===s?(u=i.nextId++,u||(u=0,i.nextId=1),u>=256&&(i.nextId=(u=l)+1)):u=s,i[u]=a,!(u<l)){if(o[_e]=u,pe.setUint32(ge,3655335680),ge+=3,c&&(g+=m*c),y.length>=256-l&&(y.shift()[_e]=void 0),y.push(o),be(d+2),E(57344+u),E(a),t)return;for(let t in e)("function"!=typeof e.hasOwnProperty||e.hasOwnProperty(t))&&E(e[t]);return}fe[ge++]=217,fe[ge++]=u>>8|224,fe[ge++]=255&u,o=i.transitions;for(let e=0;e<d;e++)(void 0===o[_e]||1048576&o[_e])&&(o[_e]=u),o=o[a[e]];o[_e]=1048576|u,n=!0}if(d<24?fe[ge++]=128|d:be(d),!t)for(let t in e)("function"!=typeof e.hasOwnProperty||e.hasOwnProperty(t))&&E(e[t])},w=e=>{let r;if(e>16777216){if(e-t>ue)throw new Error("Encoded buffer would be larger than maximum buffer size");r=Math.min(ue,4096*Math.round(Math.max((e-t)*(e>67108864?1.25:2),4194304)/4096))}else r=1+(Math.max(e-t<<2,fe.length-1)>>12)<<12;let n=new le(r);return pe=new DataView(n.buffer,0,r),fe.copy?fe.copy(n,0,t,e):n.set(fe.slice(t,e)),ge-=t,t=0,ye=n.length-10,fe=n};let S=100,b=1e3;function*A(e,r,n){let i=e.constructor;if(i===Object){let t=!1!==o.useRecords;t?_(e,!0):we(Object.keys(e).length,160);for(let n in e){let i=e[n];t||E(n),i&&"object"==typeof i?r[n]?yield*A(i,r[n]):yield*I(i,r,n):E(i)}}else if(i===Array){let n=e.length;be(n);for(let i=0;i<n;i++){let n=e[i];n&&("object"==typeof n||ge-t>S)?r.element?yield*A(n,r.element):yield*I(n,r,"element"):E(n)}}else if(e[Symbol.iterator]&&!e.buffer){fe[ge++]=159;for(let n of e)n&&("object"==typeof n||ge-t>S)?r.element?yield*A(n,r.element):yield*I(n,r,"element"):E(n);fe[ge++]=255}else Ie(e)?(we(e.size,64),yield fe.subarray(t,ge),yield e,C()):e[Symbol.asyncIterator]?(fe[ge++]=159,yield fe.subarray(t,ge),yield e,C(),fe[ge++]=255):E(e);n&&ge>t?yield fe.subarray(t,ge):ge-t>S&&(yield fe.subarray(t,ge),C())}function*I(e,r,n){let i=ge-t;try{E(e),ge-t>S&&(yield fe.subarray(t,ge),C())}catch(s){if(!s.iteratorNotHandled)throw s;r[n]={},ge=t+i,yield*A.call(this,e,r[n])}}function C(){S=b,o.encode(null,Pe)}function F(e,t,r){return S=t&&t.chunkThreshold?b=t.chunkThreshold:100,e&&"object"==typeof e?(o.encode(null,Pe),r(e,o.iterateProperties||(o.iterateProperties={}),!0)):[o.encode(e)]}async function*T(e,t){for(let r of A(e,t,!0)){let e=r.constructor;if(e===de||e===Uint8Array)yield r;else if(Ie(r)){let e,t=r.stream().getReader();for(;!(e=await t.read()).done;)yield e.value}else if(r[Symbol.asyncIterator])for await(let e of r)C(),e?yield*T(e,t.async||(t.async={})):yield o.encode(e);else yield r}}this.encodeAsIterable=function(e,t){return F(e,t,A)},this.encodeAsAsyncIterable=function(e,t){return F(e,t,T)}}useBuffer(e){fe=e,pe=new DataView(fe.buffer,fe.byteOffset,fe.byteLength),ge=0}clearSharedData(){this.structures&&(this.structures=[]),this.sharedValues&&(this.sharedValues=void 0)}updateSharedData(){let e=this.sharedVersion||0;this.sharedVersion=e+1;let t=this.structures.slice(0),r=new Se(t,this.sharedValues,this.sharedVersion),n=this.saveShared(r,(t=>(t&&t.version||0)==e));return!1===n?(r=this.getShared()||{},this.structures=r.structures||[],this.sharedValues=r.packedValues,this.sharedVersion=r.version,this.structures.nextId=this.structures.length):t.forEach(((e,t)=>this.structures[t]=e)),n}}({useRecords:!1});const ke=Ne.encode,{NEVER:Le,ALWAYS:ve,DECIMAL_ROUND:De,DECIMAL_FIT:Me}=(Ne.encodeAsIterable,Ne.encodeAsAsyncIterable,{NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4}),Ue=512,Be=1024,Pe=2048;function je(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/\"/g,""").replace(/'/g,"'")}function xe(e){if("undefined"==typeof document)return;const{title:t,errorCode:r,lang:n="en"}=e,i=je(t),s=je(r),a=je("Chat with us"),o=je(n);document.documentElement&&(document.documentElement.lang=o);let c=document.body;!c&&document.documentElement&&(c=document.createElement("body"),document.documentElement.appendChild(c)),c&&(c.className="dome-sdk-critical-error",c.innerHTML=`\n <style>\n :root {\n color-scheme: light dark;\n --itui-bg: #ffffff;\n --itui-overlay-bg: #ffffff;\n --itui-text-primary: #212121;\n --itui-text-secondary: #757575;\n --itui-border-color: #dee2e6;\n --itui-brand-color: #de0f17;\n --itui-info-color: #2196f3;\n }\n\n @media (prefers-color-scheme: dark) {\n :root {\n --itui-bg: #121212;\n --itui-overlay-bg: #212121;\n --itui-text-primary: #abb5bd;\n --itui-text-secondary: #80868c;\n --itui-border-color: #495057;\n --itui-brand-color: #ce4247;\n --itui-info-color: #5197cf;\n }\n }\n\n html,\n body.dome-sdk-critical-error {\n height: 100%;\n min-height: 100%;\n }\n\n body.dome-sdk-critical-error {\n margin: 0;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n place-items: center;\n padding: 24px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\n 'Helvetica Neue', Arial, sans-serif;\n background: var(--itui-bg);\n color: var(--itui-text-primary);\n }\n\n .dome-sdk-critical-error__card {\n width: 80%;\n background: var(--itui-overlay-bg);\n border: 1px solid var(--itui-border-color);\n border-radius: 14px;\n padding: 24px;\n text-align: center;\n }\n\n .dome-sdk-critical-error__title {\n margin: 0 0 12px 0;\n line-height: 1.2;\n color: var(--itui-brand-color);\n }\n\n .dome-sdk-critical-error__text {\n line-height: 1.5;\n }\n\n .dome-sdk-critical-error__link {\n color: var(--itui-info-color);\n text-decoration: none;\n }\n\n .dome-sdk-critical-error__link:hover {\n text-decoration: underline;\n }\n\n .dome-sdk-critical-error__meta {\n font-size: 12px;\n color: var(--itui-text-secondary);\n }\n</style>\n <main class="dome-sdk-critical-error__card" role="alert" aria-live="assertive">\n <h3 class="dome-sdk-critical-error__title">${i}</h3>\n <p class="dome-sdk-critical-error__meta">${s}</p>\n <p class="dome-sdk-critical-error__text">\n Please contact support for further assistance.\n <a class="dome-sdk-critical-error__link" href="https://dome.so/user/dome/#/ui/fax2xpwj65000wjpausr" target="_blank" rel="noopener noreferrer">${a}</a>\n </p>\n </main>\n `)}const Ke=new Set(["dome","intouchapp"]);var Ve,He,ze,We,qe,Ge,$e;!function(e){e.CONNECTION_SUCCESS="CONNECTION_SUCCESS",e.INIT="INIT",e.REQUEST_SAVE="REQUEST_SAVE",e.REQUEST_CLOSE="REQUEST_CLOSE",e.REQUEST_INITIAL_DATA="REQUEST_INITIAL_DATA",e.SET_DIRTY="SET_DIRTY",e.SEND_CLOSE="SEND_CLOSE",e.SEND_EXCEPTION="SEND_EXCEPTION"}(Ve||(Ve={})),function(e){e.INIT_MESSAGE_CHANNEL="INIT_MESSAGE_CHANNEL"}(He||(He={})),function(e){e.CONNECT="CONNECT"}(ze||(ze={})),function(e){e.REQUEST_CLOSE="REQUEST_CLOSE",e.REQUEST_SAVE="REQUEST_SAVE",e.DATA_CHANGE="DATA_CHANGE",e.SAVE_ERROR="SAVE_ERROR",e.SAVE_SUCCESS="SAVE_SUCCESS",e.INIT_ACK="INIT_ACK"}(We||(We={})),function(e){e.DATA_CHANGE="DATA_CHANGE",e.CFS_ERROR="CFS_ERROR",e.CFS_WRITE_SUCCESS="CFS_WRITE_SUCCESS",e.CFS_FILE_DATA="CFS_FILE_DATA",e.CFS_WRITE_FILE_ACK="CFS_WRITE_FILE_ACK",e.CFS_READ_FILE_ACK="CFS_READ_FILE_ACK",e.CFS_DELETE_FILE_ACK="CFS_DELETE_FILE_ACK",e.CFS_LIST_FILES_ACK="CFS_LIST_FILES_ACK",e.INIT_ACK="INIT_ACK",e.INIT_ERROR="INIT_ERROR",e.AF1_DATA_TOKEN_ACK="AF1_DATA_TOKEN_ACK",e.ERROR="ERROR",e.REFRESH="REFRESH",e.LOGGING_ENABLE="LOGGING_ENABLE",e.LOGGING_DISABLE="LOGGING_DISABLE",e.LOGGING_CLEAR="LOGGING_CLEAR",e.LOGGING_GET="LOGGING_GET"}(qe||(qe={})),function(e){e.APP_READY="APP_READY",e.INIT="INIT",e.CFS_READ_FILE="CFS_READ_FILE",e.CFS_WRITE_FILE="CFS_WRITE_FILE",e.CFS_DELETE_FILE="CFS_DELETE_FILE",e.CFS_LIST_FILES="CFS_LIST_FILES",e.FILE_DIRTY="FILE_DIRTY",e.OPEN_DEEPLINK="OPEN_DEEPLINK",e.AF1_DATA_TOKEN="AF1_DATA_TOKEN",e.LOGGING_GET_RET="LOGGING_GET_RET"}(Ge||(Ge={}));class Je{constructor(){this.targetOrigin="*",this.isAppReady=!1,this.port2=null,this.runtimeHost="unknown",this.parentHostDetails=null,this.parentCapabilities=null,this.handleDeepLinkClick=e=>{if("webapp"!==this.runtimeHost)return;if(!(e.target instanceof Element))return;const t=e.target.closest("a[href]");if(!t)return;const r=t.getAttribute("href")??"";this.emitDeepLink(r)&&e.preventDefault()},console.info(`Initializing Dome Embedded App SDK v${r}`),this.detectHost(),this.setupDeepLinkInterception()}detectHost(){void 0!==window.AndroidBridge?this.runtimeHost="android":void 0!==window.webkit?this.runtimeHost="ios":this.runtimeHost="webapp",this.runtimeHost}setupDeepLinkInterception(){"webapp"===this.runtimeHost&&"undefined"!=typeof document&&document.addEventListener("click",this.handleDeepLinkClick,!0)}emitDeepLink(e){if("string"!=typeof e||""===e.trim())return console.warn("emitDeepLink called without a valid href"),!1;const t=e.split(":")[0]?.toLowerCase();return!(!t||!Ke.has(t))&&(this.sendMessage(Ge.OPEN_DEEPLINK,{url:e}),!0)}updateParentContext(e,t){if(!e&&!t)return;const r={...this.parentHostDetails??{type:this.runtimeHost},...e??{}};r.type||(r.type=this.runtimeHost);const n=t??this.parentCapabilities??r.capabilities;t&&(this.parentCapabilities=t),n?r.capabilities=n:delete r.capabilities,this.parentHostDetails=r,this.parentCapabilities=n??null,n?console.info("Host capabilities detected",{host_type:r.type,capabilities:n}):console.info("Host capabilities not found",{hostType:r.type})}getHost(){return this.parentHostDetails??{type:this.runtimeHost}}sendMessage(e,t,r){const n=this.buildVersionedMessage(e,t??null);if("android"!==this.runtimeHost)if(this.port2)this.port2.postMessage(n);else{switch(this.runtimeHost){case"ios":window?.webkit?.messageHandlers?window.webkit?.messageHandlers.appHandler.postMessage(JSON.stringify(n)):console.error("webkit.messageHandlers not found");break;case"webapp":console.error("Web connection is not established.");break;default:console.error("Unsupported host, cannot send message.")}this.runtimeHost}else{if(r){const e=this.toUint8Array(r),t=n.data&&"object"==typeof n.data?{...n.data,v:"1.0",data:e}:{v:"1.0",data:e},i=this.encodeCborMessage({...n,v:"1.0",data:t});this.port2?this.port2.postMessage(i):window.AndroidBridge?.sendMessage(i)}else{const e=JSON.stringify(n);this.port2?this.port2.postMessage(e):window.AndroidBridge?.sendMessage(e)}this.runtimeHost}}sendAppInit(){this.isAppReady||(this.isAppReady=!0,this.sendMessage(Ve.INIT,{sdk:{ver:r}}))}safeInvoke(e,t,r){const n=t?.[e];"function"==typeof n?n(r):console.warn(`Handler for '${String(e)}' is not defined.`)}setupParentConnection(){return new Promise(((e,t)=>{switch(this.runtimeHost){case"android":window.receiveFromAndroid=e=>{let t=e;if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)){const e=this.decodeCborBuffer(t);if(!e)return;t=e}const{type:r,data:n}=t||{};r&&this.handleMessage(r,n)};let n,i=!1;const s=()=>{i||(i=!0,n&&(clearTimeout(n),n=void 0),"android"===this.runtimeHost&&this.sendMessage(Ve.CONNECTION_SUCCESS),e())};this.setupMessageChannelListener(s),window.AndroidBridge?.sendMessage(JSON.stringify(this.buildVersionedMessage(He.INIT_MESSAGE_CHANNEL,{sdk:{ver:r}}))),n=setTimeout((()=>{if(!i){i=!0,console.error("Android message channel CONNECT not received within timeout. Rendering critical error UI.");try{xe({title:"Initialization Error",errorCode:"MESSAGE_CHANNEL_CONNECT_TIMEOUT"})}catch(e){console.error("Failed to render critical error UI.",e)}t(new Error("Android message channel initialization timed out."))}}),5e3);break;case"ios":window.receiveFromIOS=e=>{this.handleMessage(e.type,e.data)},e();break;case"webapp":if(this.port2)return console.warn("Connection already established. Skipping reinitialization."),void e();let a,o=!1;const c=()=>{o||(o=!0,a&&(clearTimeout(a),a=void 0),this.notifyConnectionSuccess(),e())};this.setupMessageChannelListener(c),window.parent?window.parent.postMessage({type:He.INIT_MESSAGE_CHANNEL,data:{sdk:{ver:r}}},this.targetOrigin):console.error("Parent window not available to initialize message channel."),a=setTimeout((()=>{if(!o){o=!0,console.error("Web message channel CONNECT not received within timeout. Rendering critical error UI.");try{xe({title:"Initialization Error",errorCode:"MESSAGE_CHANNEL_CONNECT_TIMEOUT"})}catch(e){console.error("Failed to render critical error UI.",e)}t(new Error("Web message channel initialization timed out."))}}),5e3);break;default:console.error("Unknown host."),t("Unknown host")}}))}setupMessageChannelListener(e){if("undefined"==typeof window)return;const t=r=>{let n=r.data;if("string"==typeof n)try{n=JSON.parse(n)}catch{}(n?.type??n)===ze.CONNECT&&(r.ports&&0!==r.ports.length?(this.port2=r.ports[0],this.port2.onmessage=e=>this.handlePortMessage(e),window.removeEventListener("message",t),e?.()):console.warn("Message channel CONNECT missing ports"))};window.addEventListener("message",t)}notifyConnectionSuccess(){this.sendMessage(Ve.CONNECTION_SUCCESS)}handlePortMessage(e){let t=e.data;if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)){const e=this.decodeCborBuffer(t);if(!e)return;t=e}else if("string"==typeof t)try{t=JSON.parse(t)}catch{return}const{type:r,data:n}=t||{};r&&this.handleMessage(r,n)}handleMessage(e,t){throw new Error("Subclasses must implement handleMessage.")}decodeCborBuffer(e){let t;try{t=ne(this.toUint8Array(e))}catch{return null}if(t&&"object"==typeof t&&"data"in t){const e=t.data;if(e&&"object"==typeof e&&"data"in e){const r=e,n=r.data;if("string"==typeof r.object)try{r.object=JSON.parse(r.object)}catch{}const i=this.normalizeBinaryPayload(n);if(i)t.data={...r,data:i};else if("string"==typeof n)try{t.data={...r,data:JSON.parse(n)}}catch{t.data=r}}else{const r=this.normalizeBinaryPayload(e);r&&(t.data=r)}}return t}encodeCborMessage(e){const t=ke(e);return t.buffer instanceof ArrayBuffer&&0===t.byteOffset&&t.byteLength===t.buffer.byteLength?t.buffer:Uint8Array.prototype.slice.call(t).buffer}toUint8Array(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}normalizeBinaryPayload(e){if(e instanceof ArrayBuffer)return e;if(e instanceof Uint8Array)return this.copyBufferView(e.buffer,e.byteOffset,e.byteLength);if(ArrayBuffer.isView(e)){const t=e;return this.copyBufferView(t.buffer,t.byteOffset,t.byteLength)}return null}buildVersionedMessage(e,t){return t&&"object"==typeof t&&!Array.isArray(t)?{type:e,v:"1.0",data:{...t,v:"1.0"}}:{type:e,v:"1.0",data:{v:"1.0",data:t}}}copyBufferView(e,t,r){return e instanceof ArrayBuffer&&0===t&&r===e.byteLength?e:new Uint8Array(e,t,r).slice().buffer}}function Ye(e){const{prefix:t="",given:r="",middle:n="",family:i="",suffix:s=""}=e||{};return[t,r,n,i,s].filter((e=>e)).join(" ").trim()}class Xe extends Je{constructor(){super(),this.handler=null,this.pendingRequests=new Map,this.pendingInitAck=null}static init(e){return Xe.initialized?(console.warn("ViewerSdk is already initialized. Skipping initialization."),Xe.instance):(Xe.instance||(Xe.instance=new Xe,Xe.instance.setupParentConnection().then((()=>{try{Xe.instance.initializeViewerSdk()}catch(e){console.error("Error in initializeViewerSdk:",e)}})).catch((e=>{console.error("init: Error setting up parent connection!",e),console.trace("called from:")}))),e&&Xe.instance.setHandler(e),Xe.initialized=!0,Xe.instance)}setHandler(e){this.handler=e,this.pendingInitAck&&(this.safeInvoke("onInitialData",this.handler,this.pendingInitAck),this.pendingInitAck=null)}canRead(e){return!!e?.includes("r")}canWrite(e){return!!e?.includes("w")||!!e?.includes("*")}initializeViewerSdk(){this.sendAppInit()}requestInitialData(){this.sendMessage(Ve.REQUEST_INITIAL_DATA)}requestSave(e,t){const r=function(){if("undefined"!=typeof window&&window.crypto&&window.crypto.randomUUID)return window.crypto.randomUUID();if("undefined"!=typeof crypto&&crypto.randomUUID)return crypto.randomUUID();throw new Error("UUID generation is not supported in this environment")}();return this.sendMessage(Ve.REQUEST_SAVE,{doc:e,isDataDirty:t,requestId:r}),new Promise(((e,t)=>{this.pendingRequests.set(r,e),this.pendingRequests.set(r+"_reject",t),setTimeout((()=>{this.pendingRequests.has(r)&&(this.pendingRequests.delete(r),this.pendingRequests.delete(r+"_reject"))}),3e4)}))}handleOnSave(e){const{requestId:t,status:r,message:n}=e,i=this.pendingRequests.get(t),s=this.pendingRequests.get(t+"_reject");i&&("error"===r?s?.({status:r,message:n}):i({status:r,message:n}),this.pendingRequests.delete(t),this.pendingRequests.delete(t+"_reject"))}setDirty(e){this.sendMessage(Ve.SET_DIRTY,e)}sendClose(e,t){this.sendMessage(Ve.SEND_CLOSE,{doc:e,isDataDirty:t})}sendException(e){this.sendMessage(Ve.SEND_EXCEPTION,e)}handleMessage(e,t){if(e===We.INIT_ACK&&this.updateParentContext(t?.host,t?.capabilities),this.handler)switch(e){case We.INIT_ACK:this.safeInvoke("onInitialData",this.handler,t);break;case We.DATA_CHANGE:this.safeInvoke("onDataChange",this.handler,t);break;case We.REQUEST_CLOSE:this.safeInvoke("onCloseRequest",this.handler);break;case We.REQUEST_SAVE:this.safeInvoke("onSaveRequest",this.handler);break;case We.SAVE_SUCCESS:case We.SAVE_ERROR:this.handleOnSave(t);break;default:console.warn(`No handler found for message type: ${e}`)}else e===We.INIT_ACK?(console.warn("Handler not set. Storing INIT_ACK message for later processing."),this.pendingInitAck=t):console.error("Message handler not found for type:",e)}}Xe.initialized=!1;class Qe{constructor(){if(this.subtleCrypto=window.crypto?.subtle,!this.subtleCrypto)throw new Error("SubtleCrypto API is not available in this environment.")}async decrypt(e,t,r){try{if(!e)throw new Error("Invalid token");const n=this.base64UrlDecode(e);if(128!==n[0])throw new Error("Invalid version");n.slice(1,9);const i=n.slice(9,25),s=n.slice(25,-32),a=n.slice(-32),o=await this.deriveKey(t,r),{hmacKey:c,aesKey:l}=await this.splitKey(o),d=n.slice(0,-32);if(!new Uint8Array(await this.subtleCrypto.sign("HMAC",c,d)).every(((e,t)=>e===a[t])))throw new Error("Invalid HMAC. Token has been tampered with!");const u=await this.subtleCrypto.decrypt({name:"AES-CBC",iv:i},l,s);return(new TextDecoder).decode(u)}catch(e){throw console.log("Error in decrypt:",e),e}}async deriveKey(e,t,r=1e4){const n=new TextEncoder,i=await this.subtleCrypto.importKey("raw",n.encode(e),"PBKDF2",!1,["deriveKey"]);return this.subtleCrypto.deriveKey({name:"PBKDF2",hash:"SHA-256",salt:n.encode(t),iterations:r},i,{name:"AES-CBC",length:256},!0,["encrypt","decrypt"])}async splitKey(e){const t=new Uint8Array(await this.subtleCrypto.exportKey("raw",e));return{hmacKey:await this.subtleCrypto.importKey("raw",t.slice(0,16),{name:"HMAC",hash:"SHA-256"},!1,["sign","verify"]),aesKey:await this.subtleCrypto.importKey("raw",t.slice(16),{name:"AES-CBC"},!1,["encrypt","decrypt"])}}base64UrlDecode(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),r=atob(t);return new Uint8Array([...r].map((e=>e.charCodeAt(0))))}}!function(e){e.READ="r",e.WRITE="w",e.FORWARD="f",e.SHARE="s",e.DOWNLOAD="d"}($e||($e={}));const Ze=$e;var et,tt;!function(e){e.TEXT="text",e.JSON="json",e.BINARY="binary"}(et||(et={})),function(e){e.NO_INTERNET="NO_INTERNET",e.NO_PERMISSION="NO_PERMISSION",e.NOT_FOUND="NOT_FOUND",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.INVALID_REQUEST="INVALID_REQUEST",e.UNKNOWN="UNKNOWN"}(tt||(tt={}));const rt="1.1.0";function nt(e){return it(JSON.parse(e))}function it(e){let t;if(1!==e.v)throw new Error(`Unsupported key blob version: ${e.v}`);return t=function(e){const{seed:t,obf:r}=e,n=new Uint8Array(r.length);for(let e=0;e<r.length;e++)n[e]=r[e]^t+17*e&255;return n}(e),function(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t}(t)}class st{constructor(e,t){this.cardIuid=e,this.containerIuid=t,this.openPromise=null}isSupported(){return"undefined"!=typeof indexedDB}async openDb(){return this.isSupported()?(this.openPromise||(this.openPromise=new Promise((e=>{this.openWithVersion(st.DB_VERSION,e)}))),this.openPromise):null}openWithVersion(e,t){let r="ensure";const n=indexedDB.open(this.cardIuid,e);n.onupgradeneeded=e=>{r=0===(e.oldVersion||0)?"create":"ensure",this.configureStores(n.result)},n.onsuccess=()=>{const e=n.result;if(!this.hasRequiredStores(e)){const r=e.version+1;return e.close(),void this.openWithVersion(r,t)}this.updateStoresMetadata(e,"ensure"===r).catch((()=>{})).finally((()=>t(e)))},n.onerror=()=>t(null)}configureStores(e){e.objectStoreNames.contains(st.DATA_STORE)||e.createObjectStore(st.DATA_STORE),e.objectStoreNames.contains(st.NAME_LOOKUP_STORE)||e.createObjectStore(st.NAME_LOOKUP_STORE),e.objectStoreNames.contains(st.INFO_STORE)||e.createObjectStore(st.INFO_STORE),e.objectStoreNames.contains(st.FOLDER_CACHE_STORE)||e.createObjectStore(st.FOLDER_CACHE_STORE)}hasRequiredStores(e){const t=e.objectStoreNames;return t.contains(st.DATA_STORE)&&t.contains(st.NAME_LOOKUP_STORE)&&t.contains(st.INFO_STORE)&&t.contains(st.FOLDER_CACHE_STORE)}static nowMicros(){return Math.trunc(1e3*Date.now())}updateStoresMetadata(e,t){return Promise.all([this.ensureStoreVersion(e,st.DATA_STORE),this.ensureStoreVersion(e,st.NAME_LOOKUP_STORE),this.ensureStoreVersion(e,st.FOLDER_CACHE_STORE),this.updateCardInfo(e,t)]).then((()=>{}))}ensureStoreVersion(e,t){return e.objectStoreNames.contains(t)?new Promise((r=>{try{const n=e.transaction(t,"readwrite"),i=n.objectStore(t),s=()=>r();n.oncomplete=s,n.onerror=s,n.onabort=s,i.put(rt,st.STORE_VERSION_KEY)}catch{r()}})):Promise.resolve()}async updateCardInfo(e,t){if(!e.objectStoreNames.contains(st.INFO_STORE))return;const r=await this.readInfoValue(e,"container_iuid"),n=t?await this.readInfoValue(e,"ts_c"):void 0,i=this.containerIuid??r??null,s=t&&n?n:st.nowMicros();await Promise.all([this.writeInfoValue(e,"container_iuid",i),this.writeInfoValue(e,"ts_c",s)]).catch((()=>{}))}readInfoValue(e,t){return new Promise((r=>{try{const n=e.transaction(st.INFO_STORE,"readonly"),i=n.objectStore(st.INFO_STORE).get(t);i.onsuccess=()=>r(i.result),i.onerror=()=>r(void 0)}catch{r(void 0)}}))}writeInfoValue(e,t,r){return new Promise((n=>{try{const i=e.transaction(st.INFO_STORE,"readwrite"),s=i.objectStore(st.INFO_STORE),a=()=>n();i.oncomplete=a,i.onerror=a,i.onabort=a,s.put(r,t)}catch{n()}}))}keyFor(e){return e}static normalizeFolderName(e){if("string"!=typeof e)return st.DEFAULT_FOLDER_KEY;let t=e.trim();return t?(t=t.replace(/^\/+/,""),t?(t.endsWith("/")||(t+="/"),t||st.DEFAULT_FOLDER_KEY):st.DEFAULT_FOLDER_KEY):st.DEFAULT_FOLDER_KEY}folderListingKey(e){return st.normalizeFolderName(e)}static normalizeName(e){if("string"!=typeof e)return null;const t=e.trim();return t||null}async put(e,t){const r=await this.openDb();r&&await new Promise((n=>{const i=r.transaction(st.DATA_STORE,"readwrite");i.objectStore(st.DATA_STORE).put(t,e).onsuccess=()=>n(),i.oncomplete=()=>n(),i.onerror=()=>n(),i.onabort=()=>n()}))}async get(e){const t=await this.openDb();if(t)return new Promise((r=>{const n=t.transaction(st.DATA_STORE,"readonly").objectStore(st.DATA_STORE).get(e);n.onsuccess=()=>r(n.result),n.onerror=()=>r(void 0)}))}async delete(e){const t=await this.openDb();t&&await new Promise((r=>{const n=t.transaction(st.DATA_STORE,"readwrite");n.objectStore(st.DATA_STORE).delete(e).onsuccess=()=>r(),n.oncomplete=()=>r(),n.onerror=()=>r(),n.onabort=()=>r()}))}static async hashName(e){const t="undefined"!=typeof globalThis?globalThis.crypto:void 0;if(!t?.subtle?.digest)throw new Error("CardFS name hashing requires SubtleCrypto support");const r=st.encodeText(e),n=await t.subtle.digest("SHA-256",r);return st.bufferToBase64(n)}static encodeText(e){if("undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e).buffer;const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t.buffer}static bufferToBase64(e){let t="";const r=new Uint8Array(e);for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return btoa(t)}async getIuidForName(e){const t=st.normalizeName(e);if(!t)return;const r=await this.openDb();if(!r)return;const n=await st.hashName(t);return new Promise((e=>{const t=r.transaction(st.NAME_LOOKUP_STORE,"readonly").objectStore(st.NAME_LOOKUP_STORE).