@interopio/workspaces-api 4.4.0 → 4.5.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +7 -2
- package/dist/workspaces.es.js +23 -2
- package/dist/workspaces.es.js.map +1 -1
- package/dist/workspaces.umd.js +23 -2
- package/dist/workspaces.umd.js.map +1 -1
- package/dist/workspaces.umd.min.js +1 -1
- package/package.json +1 -1
- package/workspaces.d.ts +17 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).workspaces=e.workspaces||{},e.workspaces.min=t())}(this,function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e){if(e&&e.errorHandling&&"function"!=typeof e.errorHandling&&"log"!==e.errorHandling&&"silent"!==e.errorHandling&&"throw"!==e.errorHandling)throw new Error('Invalid options passed to createRegistry. Prop errorHandling should be ["log" | "silent" | "throw" | (err) => void], but '+typeof e.errorHandling+" was passed");var t=e&&"function"==typeof e.errorHandling&&e.errorHandling,r={};function o(r,o){var n=r instanceof Error?r:new Error(r);if(t)t(n);else{var i='[ERROR] callback-registry: User callback for key "'+o+'" failed: '+n.stack;if(e)switch(e.errorHandling){case"log":return console.error(i);case"silent":return;case"throw":throw new Error(i)}console.error(i)}}return{add:function(e,t,n){var i=r[e];return i||(i=[],r[e]=i),i.push(t),n&&setTimeout(function(){n.forEach(function(n){var i;if(null===(i=r[e])||void 0===i?void 0:i.includes(t))try{Array.isArray(n)?t.apply(void 0,n):t.apply(void 0,[n])}catch(t){o(t,e)}})},0),function(){var o=r[e];o&&(0===(o=o.reduce(function(e,r,o){return r===t&&e.length===o||e.push(r),e},[])).length?delete r[e]:r[e]=o)}},execute:function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=r[e];if(!i||0===i.length)return[];var a=[];return i.forEach(function(r){try{var n=r.apply(void 0,t);a.push(n)}catch(t){a.push(void 0),o(t,e)}}),a},clear:function(){r={}},clearKey:function(e){r[e]&&delete r[e]}}}t.default=t;var r=e(t),o=function(e){return{ok:!0,result:e}},n=function(e){return{ok:!1,error:e}},i=function(e,t,r){return!1===t.ok?t:!1===r.ok?r:o(e(t.result,r.result))},a=function(e,t){return!0===t.ok?t:n(e(t.error))},s=function(){return s=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},s.apply(this,arguments)};function c(e,t){if(e===t)return!0;if(null===e&&null===t)return!0;if(typeof e!=typeof t)return!1;if("object"==typeof e){if(Array.isArray(e)){if(!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(var r=0;r<e.length;r++)if(!c(e[r],t[r]))return!1;return!0}var o=Object.keys(e);if(o.length!==Object.keys(t).length)return!1;for(r=0;r<o.length;r++){if(!t.hasOwnProperty(o[r]))return!1;if(!c(e[o[r]],t[o[r]]))return!1}return!0}}var d=function(e){return Array.isArray(e)},l=function(e){return"object"==typeof e&&null!==e&&!d(e)},h=function(e,t){return"expected "+e+", got "+function(e){switch(typeof e){case"string":return"a string";case"number":return"a number";case"boolean":return"a boolean";case"undefined":return"undefined";case"object":return e instanceof Array?"an array":null===e?"null":"an object";default:return JSON.stringify(e)}}(t)},u=function(e){return e.map(function(e){return"string"==typeof e?"."+e:"["+e+"]"}).join("")},w=function(e,t){var r=t.at,o=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}(t,["at"]);return s({at:e+(r||"")},o)},p=function(){function e(t){var r=this;this.decode=t,this.run=function(e){return a(function(t){return{kind:"DecoderError",input:e,at:"input"+(t.at||""),message:t.message||""}},r.decode(e))},this.runPromise=function(e){return!0===(t=r.run(e)).ok?Promise.resolve(t.result):Promise.reject(t.error);var t},this.runWithException=function(e){return function(e){if(!0===e.ok)return e.result;throw e.error}(r.run(e))},this.map=function(t){return new e(function(e){return function(e,t){return!0===t.ok?o(e(t.result)):t}(t,r.decode(e))})},this.andThen=function(t){return new e(function(e){return function(e,t){return!0===t.ok?e(t.result):t}(function(r){return t(r).decode(e)},r.decode(e))})},this.where=function(t,o){return r.andThen(function(r){return t(r)?e.succeed(r):e.fail(o)})}}return e.string=function(){return new e(function(e){return"string"==typeof e?o(e):n({message:h("a string",e)})})},e.number=function(){return new e(function(e){return"number"==typeof e?o(e):n({message:h("a number",e)})})},e.boolean=function(){return new e(function(e){return"boolean"==typeof e?o(e):n({message:h("a boolean",e)})})},e.constant=function(t){return new e(function(e){return c(e,t)?o(t):n({message:"expected "+JSON.stringify(t)+", got "+JSON.stringify(e)})})},e.object=function(t){return new e(function(e){if(l(e)&&t){var r={};for(var i in t)if(t.hasOwnProperty(i)){var a=t[i].decode(e[i]);if(!0!==a.ok)return void 0===e[i]?n({message:"the key '"+i+"' is required but was not present"}):n(w("."+i,a.error));void 0!==a.result&&(r[i]=a.result)}return o(r)}return l(e)?o(e):n({message:h("an object",e)})})},e.array=function(t){return new e(function(e){if(d(e)&&t){return e.reduce(function(e,r,o){return i(function(e,t){return e.concat([t])},e,function(e,r){return a(function(e){return w("["+r+"]",e)},t.decode(e))}(r,o))},o([]))}return d(e)?o(e):n({message:h("an array",e)})})},e.tuple=function(t){return new e(function(e){if(d(e)){if(e.length!==t.length)return n({message:"expected a tuple of length "+t.length+", got one of length "+e.length});for(var r=[],i=0;i<t.length;i++){var a=t[i].decode(e[i]);if(!a.ok)return n(w("["+i+"]",a.error));r[i]=a.result}return o(r)}return n({message:h("a tuple of length "+t.length,e)})})},e.union=function(t,r){for(var o=[],n=2;n<arguments.length;n++)o[n-2]=arguments[n];return e.oneOf.apply(e,[t,r].concat(o))},e.intersection=function(t,r){for(var n=[],a=2;a<arguments.length;a++)n[a-2]=arguments[a];return new e(function(e){return[t,r].concat(n).reduce(function(t,r){return i(Object.assign,t,r.decode(e))},o({}))})},e.anyJson=function(){return new e(function(e){return o(e)})},e.unknownJson=function(){return new e(function(e){return o(e)})},e.dict=function(t){return new e(function(e){if(l(e)){var r={};for(var i in e)if(e.hasOwnProperty(i)){var a=t.decode(e[i]);if(!0!==a.ok)return n(w("."+i,a.error));r[i]=a.result}return o(r)}return n({message:h("an object",e)})})},e.optional=function(t){return new e(function(e){return null==e?o(void 0):t.decode(e)})},e.oneOf=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new e(function(e){for(var r=[],o=0;o<t.length;o++){var i=t[o].decode(e);if(!0===i.ok)return i;r[o]=i.error}var a=r.map(function(e){return"at error"+(e.at||"")+": "+e.message}).join('", "');return n({message:'expected a value matching one of the decoders, got the errors ["'+a+'"]'})})},e.withDefault=function(t,r){return new e(function(e){return o(function(e,t){return!0===t.ok?t.result:e}(t,r.decode(e)))})},e.valueAt=function(t,r){return new e(function(e){for(var o=e,i=0;i<t.length;i++){if(void 0===o)return n({at:u(t.slice(0,i+1)),message:"path does not exist"});if("string"==typeof t[i]&&!l(o))return n({at:u(t.slice(0,i+1)),message:h("an object",o)});if("number"==typeof t[i]&&!d(o))return n({at:u(t.slice(0,i+1)),message:h("an array",o)});o=o[t[i]]}return a(function(e){return void 0===o?{at:u(t),message:"path does not exist"}:w(u(t),e)},r.decode(o))})},e.succeed=function(t){return new e(function(e){return o(t)})},e.fail=function(t){return new e(function(e){return n({message:t})})},e.lazy=function(t){return new e(function(e){return t().decode(e)})},e}(),m=p.string,g=p.number,f=p.boolean,y=p.anyJson;p.unknownJson;var b=p.constant,k=p.object,W=p.array;p.tuple,p.dict;var I=p.optional,S=p.oneOf;p.union;var x=p.intersection;p.withDefault,p.valueAt,p.succeed,p.fail;var D=p.lazy;const v=m().where(e=>e.length>0,"Expected a non-empty string"),C=g().where(e=>e>=0,"Expected a non-negative number"),E=g().where(e=>e>0,"Expected a positive number"),B=S(b("keepInside"),b("autoEject")),T=k({inWorkspace:f()}),M=k({isVisible:f()}),F=k({base64Image:v}),R=k({icon:F,frameId:v}),L=S(b("workspace"),b("row"),b("column"),b("group")),A=S(b("row"),b("column"),b("group")),P=S(b("maximized"),b("minimized"),b("normal")),z=S(b("workspace")),O=(e,t)=>{const r=typeof e;if(t&&"function"!==r&&"undefined"!==r)throw new Error(`Provided argument must be either undefined or of type function, provided: ${r}`);if(!t&&"function"!==r)throw new Error(`Provided argument must be of type function, provided: ${r}`)},H=I(k({saveLayout:I(f())})),$=k({name:v}),_=k({minWidth:I(g()),maxWidth:I(g()),minHeight:I(g()),maxHeight:I(g()),allowExtract:I(f()),allowReorder:I(f()),showCloseButton:I(f())}),j=k({minWidth:I(g()),maxWidth:I(g()),minHeight:I(g()),maxHeight:I(g()),allowExtract:I(f()),allowReorder:I(f()),allowDrop:I(f()),allowDropHeader:I(f()),allowDropLeft:I(f()),allowDropRight:I(f()),allowDropTop:I(f()),allowDropBottom:I(f()),showMaximizeButton:I(f()),showEjectButton:I(f()),showAddWindowButton:I(f())}),G=k({minHeight:I(g()),maxHeight:I(g()),allowDrop:I(f()),allowSplitters:I(f()),isPinned:I(f()),maximizationBoundary:I(f())}),N=k({minWidth:I(g()),maxWidth:I(g()),allowDrop:I(f()),allowSplitters:I(f()),isPinned:I(f()),maximizationBoundary:I(f())}),V=k({type:I(b("window")),appName:I(v),windowId:I(v),context:I(y()),config:I(_)}),J=k({type:b("window"),appName:I(v),windowId:I(v),context:I(y()),config:I(_)}),U=I(k({type:I(A),children:I(D(()=>W(S(V,U)))),config:I(y())})),K=k({type:b("column"),children:I(D(()=>W(S(J,X)))),config:I(N)}),q=k({type:b("row"),children:I(D(()=>W(S(J,X)))),config:I(G)}),Q=k({type:b("group"),children:I(D(()=>W(S(J,X)))),config:I(j)}),X=S(Q,K,q);S(m().where(e=>"maximized"===e.toLowerCase(),"Expected a case insensitive variation of 'maximized'"),m().where(e=>"normal"===e.toLowerCase(),"Expected a case insensitive variation of 'normal'"));const Y=k({bounds:I(k({left:I(g()),top:I(g()),width:I(C),height:I(C)})),isVisible:I(f()),frameId:I(v)}),Z=S(b("direct"),b("delayed"),b("lazy")),ee=I(k({app:I(v),context:I(y()),loadingStrategy:I(Z),title:I(v),reuseWorkspaceId:I(v),frameId:I(v),applicationName:I(v),lockdown:I(f()),activateFrame:I(f()),newFrame:I(S(Y,f())),noTabHeader:I(f()),inMemoryLayout:I(f()),icon:I(v),isPinned:I(f()),isSelected:I(f()),positionIndex:I(C),allowSystemHibernation:I(f())})),te=k({name:v,restoreOptions:I(ee)}),re=k({children:I(W(S(V,X))),context:I(y()),config:I(k({title:I(v),position:I(C),isFocused:I(f()),noTabHeader:I(f()),reuseWorkspaceId:I(v),loadingStrategy:I(Z),allowDrop:I(f()),allowDropLeft:I(f()),allowDropTop:I(f()),allowDropRight:I(f()),allowDropBottom:I(f()),allowSystemHibernation:I(f()),allowExtract:I(f()),allowWindowReorder:I(f()),showSaveButton:I(f()),allowWorkspaceTabReorder:I(f()),allowWorkspaceTabExtract:I(f()),showCloseButton:I(f()),allowSplitters:I(f()),showWindowCloseButtons:I(f()),showEjectButtons:I(f()),showAddWindowButtons:I(f()),icon:I(v),isPinned:I(f()),isSelected:I(f()),positionIndex:I(C),windowDragMode:I(B)})),frame:I(k({activate:I(f()),reuseFrameId:I(v),applicationName:I(v),newFrame:I(S(f(),Y))}))}),oe=k({workspaceId:v}),ne=k({name:v,restoreOptions:I(ee)}),ie=I(k({applicationName:I(m()),frameConfig:I(Y),context:I(k()),layoutComponentId:I(v)})),ae=k({workspaces:W(S(I(re),I(ne)))}),se=k({frameId:v,workspaces:W(S(re,ne))}),ce=k({type:L,definition:I(S(re,U))}),de=x(re,k({saveConfig:I(k({saveLayout:I(f())}))})),le=k({itemId:v}),he=k({context:I(k())}),ue=k({id:v,isFocused:I(f()),isInitialized:I(f()),initializationContext:I(he)});k({type:A,id:v,frameId:v,workspaceId:v,positionIndex:g()});const we=S(b("frame"),b("workspace"),b("container"),b("window")),pe=k({type:we,branch:v}),me=S(b("opened"),b("closing"),b("closed"),b("focus"),b("added"),b("loaded"),b("removed"),b("childrenUpdate"),b("containerChange"),b("maximized"),b("restored"),b("minimized"),b("normal"),b("selected"),b("lock-configuration-changed"),b("hibernated"),b("resumed"),b("tab-reordered")),ge=k({frameId:v,title:v,positionIndex:C,name:v,layoutName:I(v),isHibernated:I(f()),isSelected:I(f()),allowDrop:I(f()),allowSystemHibernation:I(f()),allowExtract:I(f()),allowWindowReorder:I(f()),allowSplitters:I(f()),showCloseButton:I(f()),showSaveButton:I(f()),allowWorkspaceTabReorder:I(f()),allowWorkspaceTabExtract:I(f()),allowDropLeft:I(f()),allowDropTop:I(f()),allowDropRight:I(f()),allowDropBottom:I(f()),minWidth:I(g()),maxWidth:I(g()),minHeight:I(g()),maxHeight:I(g()),showAddWindowButtons:I(f()),showEjectButtons:I(f()),showWindowCloseButtons:I(f()),widthInPx:I(g()),heightInPx:I(g()),isPinned:I(f()),windowDragMode:I(B),loadingStrategy:I(Z)}),fe=k({frameId:v,workspaceId:v,positionIndex:g(),minWidth:I(g()),maxWidth:I(g()),minHeight:I(g()),maxHeight:I(g())}),ye=y(),be=x(fe,k({windowId:I(v),isMaximized:I(f()),isFocused:f(),isSelected:I(f()),title:I(m()),appName:I(v),allowExtract:I(f()),allowReorder:I(f()),showCloseButton:I(f()),minWidth:I(g()),minHeight:I(g()),maxWidth:I(g()),maxHeight:I(g()),widthInPx:I(g()),heightInPx:I(g()),context:I(y())})),ke=k({id:I(v),config:ye,children:I(D(()=>W(Ie))),type:S(b("row"),b("column"),b("group"))}),We=k({id:I(v),config:be,type:b("window")}),Ie=S(We,ke),Se=k({id:v,config:ge,children:W(Ie),frameSummary:ue,context:I(y())}),xe=k({type:b("window"),config:k({appName:v,windowId:I(v),context:I(y()),url:I(v),title:I(m()),allowExtract:I(f()),allowReorder:I(f()),showCloseButton:I(f()),minWidth:I(g()),minHeight:I(g()),maxWidth:I(g()),maxHeight:I(g()),isMaximized:I(f()),instanceId:I(v)})}),De=k({type:b("group"),config:y(),children:W(S(xe))}),ve=k({type:b("column"),config:y(),children:W(S(De,xe,D(()=>ve),D(()=>Ce)))}),Ce=k({type:b("row"),config:y(),children:W(S(ve,De,xe,D(()=>Ce)))}),Ee=k({name:v,type:b("Workspace"),metadata:I(y()),components:W(k({type:b("Workspace"),application:I(m()),state:k({config:y(),context:y(),children:W(S(Ce,ve,De,xe))})}))}),Be=k({layout:Ee,mode:S(b("replace"),b("merge"))}),Te=k({layouts:W(Ee),mode:S(b("replace"),b("merge"))}),Me=k({layouts:W(Ee)}),Fe=k({id:v,isFocused:I(f()),isInitialized:I(f()),initializationContext:I(he)}),Re=k({summaries:W(Fe)}),Le=k({id:v,config:ge}),Ae=k({summaries:W(Le)}),Pe=k({id:v,config:y(),workspaces:W(Se)}),ze=k({name:v,applicationName:I(m())}),Oe=k({summaries:W(ze)}),He=k({windowId:v}),$e=y(),_e=k({state:P}),je=k({top:g(),left:g(),width:C,height:C}),Ge=k({bounds:je}),Ne=k({icon:I(v)}),Ve=k({id:I(v)}),Je=k({isSupported:f()}),Ue=k({width:I(E),height:I(E),relative:I(f())}),Ke=k({top:I(g()),left:I(g()),relative:I(f())}),qe=k({itemId:v}),Qe=k({allowPrevent:I(f()),showDialog:I(f())}),Xe=k({itemId:v,closeOptions:I(Qe)}),Ye=k({itemId:v,excludeIds:I(f())}),Ze=k({frameId:v,requestedState:P}),et=k({itemId:v,title:v}),tt=k({itemId:v,containerId:v}),rt=x(qe,Ue),ot=k({itemId:v,enabled:f()}),nt=x(qe,Ke);k({id:v,type:A});const it=k({definition:V,parentId:v,parentType:L}),at=k({definition:X,parentId:v,parentType:L}),st=k({itemId:v,windowId:I(v)}),ct=k({live:f()}),dt=k({type:S(b("row"),b("column")),workspaceId:v}),lt=k({type:S(b("row"),b("column")),itemId:v}),ht=k({itemId:v,config:ye}),ut=k({frameSummary:ue,frameBounds:I(je)}),wt=k({workspaceSummary:Le,frameSummary:ue,workspaceSnapshot:I(Se),frameBounds:I(je)}),pt=k({containerSummary:ht}),mt=k({windowSummary:k({itemId:v,parentId:v,config:be})}),gt=k({name:v,workspaceId:v,saveContext:I(f()),allowMultiple:I(f()),metadata:I(k()),saveWindowContexts:I(f())}),ft=k({saveContext:I(f()),allowMultiple:I(f()),metadata:I(k()),saveWindowContexts:I(f())}),yt=k({allowDrop:I(f()),allowDropLeft:I(f()),allowDropTop:I(f()),allowDropRight:I(f()),allowDropBottom:I(f()),allowSystemHibernation:I(f()),allowExtract:I(f()),allowWindowReorder:I(f()),allowSplitters:I(f()),showCloseButton:I(f()),showSaveButton:I(f()),allowWorkspaceTabReorder:I(f()),allowWorkspaceTabExtract:I(f()),showWindowCloseButtons:I(f()),showAddWindowButtons:I(f()),showEjectButtons:I(f())}),bt=k({workspaceId:v,config:I(yt)}),kt=k({allowExtract:I(f()),allowReorder:I(f()),showCloseButton:I(f())}),Wt=k({width:I(C),height:I(C)}),It=k({windowPlacementId:v,config:I(kt)}),St=k({allowDrop:I(f()),allowSplitters:I(f())}),xt=k({allowDrop:I(f()),allowSplitters:I(f())}),Dt=k({allowExtract:I(f()),allowReorder:I(f()),allowDrop:I(f()),allowDropLeft:I(f()),allowDropRight:I(f()),allowDropTop:I(f()),allowDropBottom:I(f()),allowDropHeader:I(f()),showMaximizeButton:I(f()),showEjectButton:I(f()),showAddWindowButton:I(f())}),vt=k({itemId:v,type:b("row"),config:I(St)}),Ct=k({itemId:v,type:b("column"),config:I(xt)}),Et=k({itemId:v,type:b("group"),config:I(Dt)}),Bt=S(vt,Ct,Et),Tt=k({workspaceId:v,icon:I(v)}),Mt=k({workspaceId:v,icon:I(v)}),Ft=I(k({icon:I(v)})),Rt=I(k({activate:I(f())})),Lt=k({shortcut:v,frameId:v}),At=k({shortcut:v,frameId:v}),Pt=k({frameId:v}),zt=k({enabled:f()}),Ot=k({itemId:v,type:z}),Ht=k({operation:v}),$t=k({itemId:v,dragMode:B}),_t=k({itemId:v,strategy:Z}),jt=k({prevent:f()}),Gt=k({width:C,height:C}),Nt=k({left:g(),top:g(),width:C,height:C}),Vt=S(b("none"),b("left"),b("right"),b("top"),b("bottom")),Jt=k({size:Gt,targetBounds:Nt,targetLocation:Vt,windowId:v,horizontalOffset:I(g()),verticalOffset:I(g()),focus:I(f())}),Ut=k({frameId:v,size:Gt,targetBounds:Nt,targetLocation:Vt,windowId:v,horizontalOffset:I(g()),verticalOffset:I(g()),focus:I(f())}),Kt=k({frameId:v,activate:I(f()),isVisible:f()}),qt=k({mode:I(S(b("Global"),b("WindowContainer"))),type:m(),size:I(Gt),message:v,messageTitle:I(v),movable:I(f()),transparent:I(f()),title:v,context:I(y()),affirmativeButtonName:I(v),showAffirmativeButton:I(f()),cancelButtonName:I(v),showCancelButton:I(f()),negativeButtonName:I(v),showNegativeButton:I(f()),defaultAction:I(S(b("affirmative"),b("negative"),b("cancel"))),timerDuration:I(E),showTimer:I(f()),inputMaxLength:I(E),inputPattern:I(v),inputPatternErrorMessage:I(v),inputPlaceholder:I(m()),blur:I(f())}),Qt=k({frameId:v,options:qt}),Xt="T42.Web.Platform.Control",Yt="T42.Web.Platform.WSP.Stream",Zt={control:{name:"T42.Workspaces.Control",isStream:!1},frameStream:{name:"T42.Workspaces.Stream.Frame",isStream:!0},workspaceStream:{name:"T42.Workspaces.Stream.Workspace",isStream:!0},containerStream:{name:"T42.Workspaces.Stream.Container",isStream:!0},windowStream:{name:"T42.Workspaces.Stream.Window",isStream:!0}},er={control:{name:"T42.Workspaces.Client.Control",isStream:!1}},tr={frame:{name:"T42.Workspaces.Stream.Frame",payloadDecoder:ut},workspace:{name:"T42.Workspaces.Stream.Workspace",payloadDecoder:wt},container:{name:"T42.Workspaces.Stream.Container",payloadDecoder:pt},window:{name:"T42.Workspaces.Stream.Window",payloadDecoder:mt}},rr={shortcutClicked:{name:"shortcutClicked",argsDecoder:At,resultDecoder:$e},frameClosing:{name:"frameClosing",argsDecoder:Pt,resultDecoder:jt}},or={ping:{name:"ping",resultDecoder:ct},isWindowInWorkspace:{name:"isWindowInWorkspace",argsDecoder:qe,resultDecoder:T},createWorkspace:{name:"createWorkspace",resultDecoder:Se,argsDecoder:de},createFrame:{name:"createFrame",resultDecoder:Fe,argsDecoder:ie},initFrame:{name:"initFrame",resultDecoder:$e,argsDecoder:se},getAllFramesSummaries:{name:"getAllFramesSummaries",resultDecoder:Re},getFrameSummary:{name:"getFrameSummary",resultDecoder:ue,argsDecoder:le},getAllWorkspacesSummaries:{name:"getAllWorkspacesSummaries",resultDecoder:Ae},getWorkspaceSnapshot:{name:"getWorkspaceSnapshot",resultDecoder:Se,argsDecoder:qe},getAllLayoutsSummaries:{name:"getAllLayoutsSummaries",resultDecoder:Oe},openWorkspace:{name:"openWorkspace",argsDecoder:te,resultDecoder:Se},deleteLayout:{name:"deleteLayout",resultDecoder:$e,argsDecoder:$},saveLayout:{name:"saveLayout",resultDecoder:Ee,argsDecoder:gt},importLayout:{name:"importLayout",resultDecoder:$e,argsDecoder:Be},importLayouts:{name:"importLayouts",resultDecoder:$e,argsDecoder:Te},exportAllLayouts:{name:"exportAllLayouts",resultDecoder:Me},restoreItem:{name:"restoreItem",argsDecoder:qe,resultDecoder:$e},maximizeItem:{name:"maximizeItem",argsDecoder:qe,resultDecoder:$e},focusItem:{name:"focusItem",argsDecoder:qe,resultDecoder:$e},closeItem:{name:"closeItem",argsDecoder:Xe,resultDecoder:$e},closeWorkspace:{name:"closeWorkspace",argsDecoder:Xe,resultDecoder:$e},resizeItem:{name:"resizeItem",argsDecoder:rt,resultDecoder:$e},setMaximizationBoundary:{name:"setMaximizationBoundary",argsDecoder:ot,resultDecoder:$e},changeFrameState:{name:"changeFrameState",argsDecoder:Ze,resultDecoder:$e},getFrameState:{name:"getFrameState",argsDecoder:qe,resultDecoder:_e},getFrameBounds:{name:"getFrameBounds",argsDecoder:qe,resultDecoder:Ge},moveFrame:{name:"moveFrame",argsDecoder:nt,resultDecoder:$e},getFrameSnapshot:{name:"getFrameSnapshot",argsDecoder:Ye,resultDecoder:Pe},forceLoadWindow:{name:"forceLoadWindow",argsDecoder:qe,resultDecoder:He},ejectWindow:{name:"ejectWindow",argsDecoder:qe,resultDecoder:He},setItemTitle:{name:"setItemTitle",argsDecoder:et,resultDecoder:$e},moveWindowTo:{name:"moveWindowTo",argsDecoder:tt,resultDecoder:$e},addWindow:{name:"addWindow",argsDecoder:it,resultDecoder:st},addContainer:{name:"addContainer",argsDecoder:at,resultDecoder:st},bundleWorkspace:{name:"bundleWorkspace",argsDecoder:dt,resultDecoder:$e},bundleItem:{name:"bundleItem",argsDecoder:lt,resultDecoder:$e},hibernateWorkspace:{name:"hibernateWorkspace",argsDecoder:oe,resultDecoder:$e},resumeWorkspace:{name:"resumeWorkspace",argsDecoder:oe,resultDecoder:$e},lockWorkspace:{name:"lockWorkspace",argsDecoder:bt,resultDecoder:$e},lockWindow:{name:"lockWindow",argsDecoder:It,resultDecoder:$e},lockContainer:{name:"lockContainer",argsDecoder:Bt,resultDecoder:$e},pinWorkspace:{name:"pinWorkspace",argsDecoder:Tt,resultDecoder:$e},unpinWorkspace:{name:"unpinWorkspace",argsDecoder:oe,resultDecoder:$e},getWorkspaceIcon:{name:"getWorkspaceIcon",argsDecoder:oe,resultDecoder:Ne},setWorkspaceIcon:{name:"setWorkspaceIcon",argsDecoder:Mt,resultDecoder:$e},registerShortcut:{name:"registerShortcut",argsDecoder:Lt,resultDecoder:$e},unregisterShortcut:{name:"unregisterShortcut",argsDecoder:Lt,resultDecoder:$e},showLoadingAnimation:{name:"showLoadingAnimation",argsDecoder:Ot,resultDecoder:$e},hideLoadingAnimation:{name:"hideLoadingAnimation",argsDecoder:Ot,resultDecoder:$e},getPlatformFrameId:{name:"getPlatformFrameId",resultDecoder:Ve},operationCheck:{name:"operationCheck",argsDecoder:Ht,resultDecoder:Je},setWindowDragMode:{name:"setWindowDragMode",argsDecoder:$t,resultDecoder:$e},setLoadingStrategy:{name:"setLoadingStrategy",argsDecoder:_t,resultDecoder:$e},getTaskbarIcon:{name:"getTaskbarIcon",resultDecoder:F},setTaskbarIcon:{name:"setTaskbarIcon",argsDecoder:R,resultDecoder:$e},subscribeToFrameClosing:{name:"subscribeToFrameClosing",argsDecoder:qe,resultDecoder:$e},showPopup:{name:"showPopup",argsDecoder:Ut,resultDecoder:$e},changeFrameVisibility:{name:"changeFrameVisibility",argsDecoder:Kt,resultDecoder:$e},getFrameVisibility:{name:"getFrameVisibility",argsDecoder:qe,resultDecoder:M},showFrameDialog:{name:"showFrameDialog",argsDecoder:Qt,resultDecoder:y()}};class nr{resolve;reject;promise;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class ir{transport;registry;activeSubscriptions=[];pendingSubScriptions=[];constructor(e,t){this.transport=e,this.registry=t}async createCoreEventSubscription(){await this.transport.coreSubscriptionReady(this.handleCoreEvent.bind(this))}handleCoreSubscription(e){const t=`${e.eventType}-${e.action}`,r=e.scope,o=e.scopeId;return this.registry.add(t,t=>{const n={type:r,id:o},i={frame:t.frameSummary?.id||t.windowSummary?.config.frameId,workspace:t.workspaceSummary?.id||t.windowSummary?.config.workspaceId,container:t.containerSummary?.itemId,window:t.windowSummary?.itemId};this.checkScopeMatch(n,i)&&e.callback(t)})}async send(e,t,r){const o=Object.values(or).find(t=>t.name===e);if(!o)throw new Error(`Cannot find definition for operation name: ${e}`);if(o.argsDecoder)try{o.argsDecoder.runWithException(t)}catch(t){throw new Error(`Unexpected internal outgoing validation error: ${t.message}, for input: ${JSON.stringify(t.input)}, for operation ${e}`)}try{const e=await this.transport.transmitControl(o.name,t,r);return o.resultDecoder.runWithException(e),e}catch(t){if(t.kind)throw new Error(`Unexpected internal incoming validation error: ${t.message}, for input: ${JSON.stringify(t.input)}, for operation ${e}`);throw new Error(t.message)}}async subscribe(e){const t=this.getPendingSubscription(e);t&&await t.promise;let r=this.getActiveSubscription(e);const o=this.getRegistryKey(e);if(!r){const t=new nr,o={streamType:e.eventType,level:e.scope,levelId:e.scopeId,promise:t.promise};this.pendingSubScriptions.push(o);try{const o=tr[e.eventType],n=await this.transport.subscribe(o.name,this.getBranchKey(e),e.eventType);n.onData(e=>{const t=e.data,r=pe.run(e.requestArguments),o=me.run(t.action);if(!r.ok||!o.ok)return;const n=r.result.type,i=`${n}-${r.result.branch}-${o.result}`,a=tr[n].payloadDecoder.run(t.payload);a.ok&&this.registry.execute(i,a.result)}),r={streamType:e.eventType,level:e.scope,levelId:e.scopeId,callbacksCount:0,gdSub:n},this.activeSubscriptions.push(r),t.resolve()}catch(e){throw t.reject(e),e}finally{this.removePendingSubscription(o)}}const n=this.registry.add(o,e.callback);return++r.callbacksCount,()=>{n(),--r.callbacksCount,0===r.callbacksCount&&(r.gdSub.close(),this.activeSubscriptions.splice(this.activeSubscriptions.indexOf(r),1))}}onOperation(e){return this.transport.onInternalMethodInvoked("control",(t,r)=>{const o=t.operation,n=t.data,i=Object.values(rr).find(e=>e.name===o);if(!i)throw new Error(`Cannot find definition for operation name: ${o}`);if(i.argsDecoder)try{i.argsDecoder.runWithException(n)}catch(e){throw new Error(`Unexpected internal outgoing validation error: ${e.message}, for input: ${JSON.stringify(e.input)}, for operation ${o}`)}e(t,r)})}onOperationWithResponse(e){return this.transport.onInternalMethodInvoked("control",async(t,r)=>{const o=t.operation,n=t.data,i=Object.values(rr).find(e=>e.name===o);if(!i)throw new Error(`Cannot find definition for operation name: ${o}`);if(i.argsDecoder)try{i.argsDecoder.runWithException(n)}catch(e){throw new Error(`Unexpected internal outgoing validation error: ${e.message}, for input: ${JSON.stringify(e.input)}, for operation ${o}`)}const a=await e(t,r);if(i.resultDecoder)try{i.resultDecoder.runWithException(a)}catch(e){throw new Error(`Unexpected internal outgoing result validation error: ${e.message}, for input: ${JSON.stringify(e.input)}, for operation ${o}`)}return a})}checkScopeMatch(e,t){return"global"===e.type||("frame"===e.type&&e.id===t.frame||("workspace"===e.type&&e.id===t.workspace||("container"===e.type&&e.id===t.container||"window"===e.type&&e.id===t.window)))}handleCoreEvent(e){const t=e.data;try{const e=me.runWithException(t.action),r=we.runWithException(t.type),o=tr[r].payloadDecoder.runWithException(t.payload),n=`${r}-${e}`;this.registry.execute(n,o)}catch(e){console.warn(`Cannot handle event with data ${JSON.stringify(t)}, because of validation error: ${e.message}`)}}getBranchKey(e){return"global"===e.scope?e.scope:`${e.scope}_${e.scopeId}`}getRegistryKey(e){return`${e.eventType}-${this.getBranchKey(e)}-${e.action}`}getActiveSubscription(e){return this.activeSubscriptions.find(t=>t.streamType===e.eventType&&t.level===e.scope&&t.levelId===e.scopeId)}getPendingSubscription(e){return this.pendingSubScriptions.find(t=>t.streamType===e.eventType&&t.level===e.scope&&t.levelId===e.scopeId)}removePendingSubscription(e){const t=this.pendingSubScriptions.indexOf(e);t>=0&&this.pendingSubScriptions.splice(t,1)}}const ar=()=>"undefined"==typeof window||(window.glue42gd||window.iodesktop),sr=()=>"undefined"==typeof window?null:window.glue42core||window.iobrowser;class cr{agm;registry;defaultTransportTimeout=12e4;coreEventMethodInitiated=!1;corePlatformSubPromise;constructor(e,t){this.agm=e,this.registry=t}async initiate(e){if(ar())return await Promise.all(Object.values(Zt).map(e=>this.verifyMethodLive(e.name))),void await Promise.all(Object.keys(er).map(e=>this.registerMethod(e)));const t=sr().communicationId;await Promise.all([this.verifyMethodLive(Xt,t),this.verifyMethodLive(Yt,t)]),await this.transmitControl("frameHello",{windowId:e})}coreSubscriptionReady(e){return this.coreEventMethodInitiated||this.subscribePlatform(e),this.corePlatformSubPromise}subscribePlatform(e){this.coreEventMethodInitiated=!0;const t=sr().communicationId;this.corePlatformSubPromise=this.agm.subscribe(Yt,t?{target:{instance:t}}:void 0),this.corePlatformSubPromise.then(t=>{t.onData(t=>e(t.data))})}async subscribe(e,t,r){const o={branch:t,type:r};let n;try{n=await this.agm.subscribe(e,{arguments:o})}catch(r){const o=`Internal subscription error! Error details: stream - ${e}, branch: ${t}. Internal message: ${r.message}`;throw new Error(o)}return n}async transmitControl(e,t,r){const o=ar()?{operation:e,operationArguments:t}:{operation:e,domain:"workspaces",data:t},n=ar()?Zt.control.name:Xt,i=ar()?void 0:sr().communicationId;let a;const s=`Internal Workspaces Communication Error. Attempted operation: ${JSON.stringify(o)}. `;try{if(a=await this.agm.invoke(n,o,i?{instance:i}:"best",{methodResponseTimeoutMs:r?.timeout??this.defaultTransportTimeout}),!a)throw new Error("Received unsupported result from GD - empty result");if(!Array.isArray(a.all_return_values)||0===a.all_return_values.length)throw new Error("Received unsupported result from GD - empty values collection")}catch(e){if(e&&e.all_errors&&e.all_errors.length){const t=e.all_errors[0].message;throw new Error(`${s} -> Inner message: ${t}`)}throw new Error(`${s} -> Inner message: ${e.message}`)}return a.all_return_values[0].returned}onInternalMethodInvoked(e,t){return this.registry.add(e,t)}verifyMethodLive(e,t){return r=()=>new Promise(r=>{if(this.agm.methods().some(r=>{const o=r.name===e,n=!t||r.getServers().some(e=>e.instance===t);return o&&n}))return void r();const o=this.agm.serverMethodAdded(n=>{const i=n.method,a=n.server,s=!t||a.instance===t;i.name===e&&s&&(o(),r())})}),o=15e3,n="Timeout waiting for the Workspaces communication channels",new Promise((e,t)=>{let i=!0;const a=setTimeout(()=>{i&&(i=!1,t(n))},o);r().then(t=>{i&&(i=!1,clearTimeout(a),e(t))}).catch(e=>{i&&(i=!1,clearTimeout(a),t(e))})});var r,o,n}registerMethod(e){const t=er[e];return this.agm.register(t.name,(t,r)=>Promise.all(this.registry.execute(e,t,r)))}}const dr=new WeakMap;class lr{constructor(e,t){const r=t.wrapChildren(e.children);delete e.children,dr.set(this,{base:t,children:r,definition:e})}get type(){return dr.get(this).definition.type}addColumn(e){return dr.get(this).base.add("column",dr.get(this).children,e)}addRow(e){return dr.get(this).base.add("row",dr.get(this).children,e)}addGroup(e){return dr.get(this).base.add("group",dr.get(this).children,e)}addWindow(e){return dr.get(this).base.addWindow(dr.get(this).children,e),this}serialize(){const e=dr.get(this).definition;return e.children=dr.get(this).base.serializeChildren(dr.get(this).children),e}}class hr{getBuilder;constructor(e){this.getBuilder=e}wrapChildren(e){return e.map(e=>"window"===e.type?e:this.getBuilder({type:e.type,definition:e}))}add(e,t,r){const o=U.runWithException(r),n=this.getBuilder({type:e,definition:o});return t.push(n),n}addWindow(e,t){const r=V.runWithException(t);r.type="window",e.push(r)}serializeChildren(e){return e.map(e=>e instanceof lr?e.serialize():e)}}const ur=new WeakMap;class wr{constructor(e,t,r){const o=t.wrapChildren(e.children);delete e.children,ur.set(this,{base:t,children:o,definition:e,controller:r})}addColumn(e){const t=ur.get(this).children;if(!t.every(e=>e instanceof lr&&"column"===e.type))throw new Error("Cannot add a column to this workspace, because there are already children of another type");return ur.get(this).base.add("column",t,e)}addRow(e){const t=ur.get(this).children;if(!t.every(e=>e instanceof lr&&"row"===e.type))throw new Error("Cannot add a row to this workspace, because there are already children of another type");return ur.get(this).base.add("row",t,e)}addGroup(e){const t=ur.get(this).children;if(0!==t.length)throw new Error("Cannot add a group to this workspace, because there are already defined children.");return ur.get(this).base.add("group",t,e)}addWindow(e){const t=ur.get(this).children;if(0!==t.length)throw new Error("Cannot add a window to this workspace, because there are already defined children.");return ur.get(this).base.addWindow(t,e),this}getChildAt(e){C.runWithException(e);return ur.get(this).children[e]}async create(e){const t=H.runWithException(e),r=ur.get(this).definition;r.children=ur.get(this).base.serializeChildren(ur.get(this).children);return ur.get(this).controller.createWorkspace(r,t)}}const pr=new WeakMap,mr=e=>pr.get(e).base;class gr{constructor(e){pr.set(this,{base:e})}get type(){return"row"}get id(){return mr(this).getId(this)}get frameId(){return mr(this).getFrameId(this)}get workspaceId(){return mr(this).getWorkspaceId(this)}get positionIndex(){return mr(this).getPositionIndex(this)}get children(){return mr(this).getAllChildren(this)}get parent(){return mr(this).getMyParent(this)}get frame(){return mr(this).getMyFrame(this)}get workspace(){return mr(this).getMyWorkspace(this)}get allowDrop(){return mr(this).getAllowDrop(this)}get allowSplitters(){return mr(this).getAllowSplitters(this)}get minWidth(){return mr(this).getMinWidth(this)}get minHeight(){return mr(this).getMinHeight(this)}get maxWidth(){return mr(this).getMaxWidth(this)}get maxHeight(){return mr(this).getMaxHeight(this)}get width(){return mr(this).getWidthInPx(this)}get height(){return mr(this).getHeightInPx(this)}get isPinned(){return mr(this).getIsPinned(this)}get isMaximized(){return mr(this).getIsMaximized(this)}get maximizationBoundary(){return mr(this).getMaximizationBoundary(this)}addWindow(e){return mr(this).addWindow(this,e,"row")}async addGroup(e){if(e?.type&&"group"!==e.type)throw new Error(`Expected a group definition, but received ${e.type}`);return mr(this).addParent(this,"group","row",e)}async addColumn(e){if(e?.type&&"column"!==e.type)throw new Error(`Expected a column definition, but received ${e.type}`);return mr(this).addParent(this,"column","row",e)}async addRow(){throw new Error("Adding rows as row children is not supported")}removeChild(e){return mr(this).removeChild(this,e)}maximize(){return mr(this).maximize(this)}restore(){return mr(this).restore(this)}close(){return mr(this).close(this)}lock(e){let t;if("function"==typeof e){t=e({allowDrop:this.allowDrop,allowSplitters:this.allowSplitters})}else t=e;const r=void 0===t?void 0:St.runWithException(t);return mr(this).lockContainer(this,r)}async setHeight(e){return C.runWithException(e),mr(this).setHeight(this,e)}async onLockConfigurationChanged(e){O(e);const t={callback:async()=>{await this.workspace.refreshReference(),e({allowDrop:this.allowDrop,allowSplitters:this.allowSplitters})},action:"lock-configuration-changed",eventType:"container",scope:"container"};return await mr(this).processLocalSubscription(this,t)}async setMaximizationBoundary(e){const t=zt.runWithException(e);return mr(this).setMaximizationBoundary(this,t)}}const fr=new WeakMap,yr=e=>fr.get(e).base;class br{constructor(e){fr.set(this,{base:e})}get type(){return"column"}get id(){return yr(this).getId(this)}get frameId(){return yr(this).getFrameId(this)}get workspaceId(){return yr(this).getWorkspaceId(this)}get positionIndex(){return yr(this).getPositionIndex(this)}get children(){return yr(this).getAllChildren(this)}get parent(){return yr(this).getMyParent(this)}get frame(){return yr(this).getMyFrame(this)}get workspace(){return yr(this).getMyWorkspace(this)}get allowDrop(){return yr(this).getAllowDrop(this)}get allowSplitters(){return yr(this).getAllowSplitters(this)}get minWidth(){return yr(this).getMinWidth(this)}get minHeight(){return yr(this).getMinHeight(this)}get maxWidth(){return yr(this).getMaxWidth(this)}get maxHeight(){return yr(this).getMaxHeight(this)}get width(){return yr(this).getWidthInPx(this)}get height(){return yr(this).getHeightInPx(this)}get isPinned(){return yr(this).getIsPinned(this)}get isMaximized(){return yr(this).getIsMaximized(this)}get maximizationBoundary(){return yr(this).getMaximizationBoundary(this)}addWindow(e){return yr(this).addWindow(this,e,"column")}async addGroup(e){if(e?.type&&"group"!==e.type)throw new Error(`Expected a group definition, but received ${e.type}`);return yr(this).addParent(this,"group","column",e)}async addColumn(){throw new Error("Adding columns as column children is not supported")}async addRow(e){if(e?.type&&"row"!==e.type)throw new Error(`Expected a row definition, but received ${e.type}`);return yr(this).addParent(this,"row","column",e)}removeChild(e){return yr(this).removeChild(this,e)}maximize(){return yr(this).maximize(this)}restore(){return yr(this).restore(this)}close(){return yr(this).close(this)}lock(e){let t;if("function"==typeof e){t=e({allowDrop:this.allowDrop,allowSplitters:this.allowSplitters})}else t=e;const r=void 0===t?void 0:xt.runWithException(t);return yr(this).lockContainer(this,r)}async setWidth(e){return C.runWithException(e),yr(this).setWidth(this,e)}async onLockConfigurationChanged(e){O(e);const t={callback:async()=>{await this.workspace.refreshReference(),e({allowDrop:this.allowDrop,allowSplitters:this.allowSplitters})},action:"lock-configuration-changed",eventType:"container",scope:"container"};return await yr(this).processLocalSubscription(this,t)}async setMaximizationBoundary(e){const t=zt.runWithException(e);return yr(this).setMaximizationBoundary(this,t)}}const kr=new WeakMap,Wr=e=>kr.get(e).base;class Ir{constructor(e){kr.set(this,{base:e})}get type(){return"group"}get id(){return Wr(this).getId(this)}get frameId(){return Wr(this).getFrameId(this)}get workspaceId(){return Wr(this).getWorkspaceId(this)}get positionIndex(){return Wr(this).getPositionIndex(this)}get children(){return Wr(this).getAllChildren(this)}get parent(){return Wr(this).getMyParent(this)}get frame(){return Wr(this).getMyFrame(this)}get workspace(){return Wr(this).getMyWorkspace(this)}get allowExtract(){return Wr(this).getAllowExtract(this)}get allowReorder(){return Wr(this).getAllowReorder(this)}get allowDropLeft(){return Wr(this).getAllowDropLeft(this)}get allowDropRight(){return Wr(this).getAllowDropRight(this)}get allowDropTop(){return Wr(this).getAllowDropTop(this)}get allowDropBottom(){return Wr(this).getAllowDropBottom(this)}get allowDropHeader(){return Wr(this).getAllowDropHeader(this)}get allowDrop(){return Wr(this).getAllowDrop(this)}get showMaximizeButton(){return Wr(this).getShowMaximizeButton(this)}get showEjectButton(){return Wr(this).getShowEjectButton(this)}get showAddWindowButton(){return Wr(this).getShowAddWindowButton(this)}get minWidth(){return Wr(this).getMinWidth(this)}get minHeight(){return Wr(this).getMinHeight(this)}get maxWidth(){return Wr(this).getMaxWidth(this)}get maxHeight(){return Wr(this).getMaxHeight(this)}get width(){return Wr(this).getWidthInPx(this)}get height(){return Wr(this).getHeightInPx(this)}get isMaximized(){return Wr(this).getIsMaximized(this)}addWindow(e){return Wr(this).addWindow(this,e,"group")}async addGroup(){throw new Error("Adding groups as group child is not supported")}async addColumn(){throw new Error("Adding columns as group child is not supported")}async addRow(){throw new Error("Adding rows as group child is not supported")}removeChild(e){return Wr(this).removeChild(this,e)}maximize(){return Wr(this).maximize(this)}restore(){return Wr(this).restore(this)}close(){return Wr(this).close(this)}lock(e){let t;if("function"==typeof e){t=e({allowDrop:this.allowDrop,allowDropHeader:this.allowDropHeader,allowDropLeft:this.allowDropLeft,allowDropRight:this.allowDropRight,allowDropTop:this.allowDropTop,allowDropBottom:this.allowDropBottom,allowExtract:this.allowExtract,allowReorder:this.allowReorder,showAddWindowButton:this.showAddWindowButton,showEjectButton:this.showEjectButton,showMaximizeButton:this.showMaximizeButton})}else t=e;const r=void 0===t?void 0:Dt.runWithException(t);return Wr(this).lockContainer(this,r)}async setSize(e){const t=Wt.runWithException(e);if(!t.width&&!t.height)throw new Error("Expected either width or height to be passed.");return Wr(this).setSize(this,e.width,e.height)}async bundleToRow(){await Wr(this).bundleTo(this,"row"),await this.workspace.refreshReference()}async bundleToColumn(){await Wr(this).bundleTo(this,"column"),await this.workspace.refreshReference()}async onLockConfigurationChanged(e){O(e);const t={callback:async()=>{await this.workspace.refreshReference(),e({allowDrop:this.allowDrop,allowDropHeader:this.allowDropHeader,allowDropLeft:this.allowDropLeft,allowDropTop:this.allowDropTop,allowDropRight:this.allowDropRight,allowDropBottom:this.allowDropBottom,allowExtract:this.allowExtract,allowReorder:this.allowReorder,showAddWindowButton:this.showAddWindowButton,showEjectButton:this.showEjectButton,showMaximizeButton:this.showMaximizeButton})},action:"lock-configuration-changed",eventType:"container",scope:"container"};return await Wr(this).processLocalSubscription(this,t)}}const Sr=new WeakMap,xr=e=>Sr.get(e).manager.getWorkspaceData(e),Dr=e=>Sr.get(e).manager;class vr{constructor(e){Sr.set(this,{manager:e})}get id(){return xr(this).id}get frameId(){return xr(this).config.frameId}get positionIndex(){return xr(this).config.positionIndex}get title(){return xr(this).config.title}get layoutName(){return xr(this).config.layoutName}get isHibernated(){return xr(this).config.isHibernated}get isSelected(){return xr(this).config.isSelected}get children(){return xr(this).children}get frame(){return xr(this).frame}get allowSplitters(){return xr(this).config.allowSplitters}get allowSystemHibernation(){return xr(this).config.allowSystemHibernation}get allowDrop(){return xr(this).config.allowDrop}get allowDropLeft(){return xr(this).config.allowDropLeft}get allowDropTop(){return xr(this).config.allowDropTop}get allowDropRight(){return xr(this).config.allowDropRight}get allowDropBottom(){return xr(this).config.allowDropBottom}get allowExtract(){return xr(this).config.allowExtract}get allowWindowReorder(){return xr(this).config.allowWindowReorder}get showCloseButton(){return xr(this).config.showCloseButton}get showSaveButton(){return xr(this).config.showSaveButton}get allowWorkspaceTabReorder(){return xr(this).config.allowWorkspaceTabReorder}get allowWorkspaceTabExtract(){return xr(this).config.allowWorkspaceTabExtract}get minWidth(){return xr(this).config.minWidth}get minHeight(){return xr(this).config.minHeight}get maxWidth(){return xr(this).config.maxWidth}get maxHeight(){return xr(this).config.maxHeight}get width(){return xr(this).config.widthInPx}get height(){return xr(this).config.heightInPx}get showWindowCloseButtons(){return xr(this).config.showWindowCloseButtons}get showEjectButtons(){return xr(this).config.showEjectButtons}get showAddWindowButtons(){return xr(this).config.showAddWindowButtons}get isPinned(){return xr(this).config.isPinned}get windowDragMode(){return ar()?xr(this).config.windowDragMode:"keepInside"}get loadingStrategy(){return ar()||console.warn("The workspace.loadingStrategy property is not supported in IO Connect Browser"),xr(this).config.loadingStrategy}async setLoadingStrategy(e){if(!ar())throw new Error("Not supported in IO Connect Browser");const t=xr(this).controller;await t.setLoadingStrategy(this.id,e),await this.refreshReference()}async removeChild(e){O(e);const t=this.children.find(e);t&&(await t.close(),await this.refreshReference())}async remove(e){O(e);const t=xr(this).controller.iterateFindChild(this.children,e);await t.close(),await this.refreshReference()}async focus(){await xr(this).controller.focusItem(this.id),await this.refreshReference()}async close(){const e=xr(this).controller;await e.closeWorkspace(this.id,this.frameId)}snapshot(){return xr(this).controller.getSnapshot(this.id,"workspace")}async saveLayout(e,t){v.runWithException(e),t&&ft.runWithException(t),await xr(this).controller.saveLayout({name:e,workspaceId:this.id,saveContext:t?.saveContext,metadata:t?.metadata,allowMultiple:t?.allowMultiple,saveWindowContexts:t?.saveWindowContexts})}async setTitle(e){v.runWithException(e);const t=xr(this).controller;await t.setItemTitle(this.id,e),await this.refreshReference()}getContext(){return xr(this).controller.getWorkspaceContext(this.id)}setContext(e){return xr(this).controller.setWorkspaceContext(this.id,e)}updateContext(e){return xr(this).controller.updateWorkspaceContext(this.id,e)}onContextUpdated(e){return xr(this).controller.subscribeWorkspaceContextUpdated(this.id,e)}async refreshReference(){const e=await xr(this).controller.getSnapshot(this.id,"workspace"),t=xr(this).controller.flatChildren(xr(this).children),r=xr(this).controller.refreshChildren({existingChildren:t,workspace:this,parent:this,children:e.children}),o=this.frame;let n;if(o.id===e.config.frameId)Dr(this).remapFrame(o,e.frameSummary),n=o;else{const t={summary:e.frameSummary};n=xr(this).ioc.getModel("frame",t)}Dr(this).remapWorkspace(this,{config:e.config,children:r,frame:n})}async getIcon(){return xr(this).controller.getWorkspaceIcon(this.id)}async setIcon(e){return xr(this).controller.setWorkspaceIcon(this.id,e)}getBox(e){O(e);const t=xr(this).children;return xr(this).controller.iterateFindChild(t,t=>"window"!==t.type&&e(t))}getAllBoxes(e){O(e,!0);const t=xr(this).children,r=xr(this).controller.iterateFilterChildren(t,e=>"window"!==e.type);return e?r.filter(e):r}getRow(e){return O(e),this.getBox(t=>"row"===t.type&&e(t))}getAllRows(e){return O(e,!0),e?this.getAllBoxes(t=>"row"===t.type&&e(t)):this.getAllBoxes(e=>"row"===e.type)}getColumn(e){return O(e),this.getBox(t=>"column"===t.type&&e(t))}getAllColumns(e){return O(e,!0),e?this.getAllBoxes(t=>"column"===t.type&&e(t)):this.getAllBoxes(e=>"column"===e.type)}getGroup(e){return O(e),this.getBox(t=>"group"===t.type&&e(t))}getAllGroups(e){return O(e,!0),e?this.getAllBoxes(t=>"group"===t.type&&e(t)):this.getAllBoxes(e=>"group"===e.type)}getWindow(e){O(e);const t=xr(this).children;return xr(this).controller.iterateFindChild(t,t=>"window"===t.type&&e(t))}getAllWindows(e){O(e,!0);const t=xr(this).children,r=xr(this).controller.iterateFilterChildren(t,e=>"window"===e.type);return e?r.filter(e):r}addRow(e){return xr(this).base.addParent(this,"row","workspace",e)}addColumn(e){return xr(this).base.addParent(this,"column","workspace",e)}addGroup(e){return xr(this).base.addParent(this,"group","workspace",e)}addWindow(e){return xr(this).base.addWindow(this,e,"workspace")}async bundleToRow(){await xr(this).controller.bundleWorkspaceTo("row",this.id),await this.refreshReference()}async bundleToColumn(){await xr(this).controller.bundleWorkspaceTo("column",this.id),await this.refreshReference()}async hibernate(){await xr(this).controller.hibernateWorkspace(this.id),await this.refreshReference()}async resume(){await xr(this).controller.resumeWorkspace(this.id),await this.refreshReference()}async lock(e){let t;if("function"==typeof e){t=e({allowDrop:this.allowDrop,allowDropLeft:this.allowDropLeft,allowDropTop:this.allowDropTop,allowDropRight:this.allowDropRight,allowDropBottom:this.allowDropBottom,allowSystemHibernation:this.allowSystemHibernation,allowExtract:this.allowExtract,allowWindowReorder:this.allowWindowReorder,allowSplitters:this.allowSplitters,showCloseButton:this.showCloseButton,showSaveButton:this.showSaveButton,allowWorkspaceTabReorder:this.allowWorkspaceTabReorder,allowWorkspaceTabExtract:this.allowWorkspaceTabExtract,showAddWindowButtons:this.showAddWindowButtons,showEjectButtons:this.showEjectButtons,showWindowCloseButtons:this.showWindowCloseButtons})}else t=e;const r=void 0===t?void 0:yt.runWithException(t);await xr(this).controller.lockWorkspace(this.id,r),await this.refreshReference()}async pin(e){Ft.runWithException(e),await xr(this).controller.pinWorkspace(this.id,e?.icon),await this.refreshReference()}async unpin(){await xr(this).controller.unpinWorkspace(this.id),await this.refreshReference()}async showLoadingAnimation(){if(!ar())throw new Error("Not supported in IO Connect Browser");await xr(this).controller.showWorkspaceLoadingAnimation(this.id)}async hideLoadingAnimation(){if(!ar())throw new Error("Not supported in IO Connect Browser");await xr(this).controller.hideWorkspaceLoadingAnimation(this.id)}async setWindowDragMode(e){if(!ar())throw new Error("Not supported in IO Connect Browser");B.runWithException(e),await xr(this).controller.setWindowDragMode(this.id,e),await this.refreshReference()}async onClosed(e){O(e);const t=xr(this).id,r={action:"closed",eventType:"workspace",scope:"workspace",scopeId:t,callback:async t=>{e({frameId:t.frameSummary.id,workspaceId:t.workspaceSummary.id,frameBounds:t.frameBounds})}};return await xr(this).controller.processLocalSubscription(r,t)}async onHibernated(e){O(e);const t=xr(this).id,r={action:"hibernated",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await xr(this).controller.processLocalSubscription(r,t)}async onResumed(e){O(e);const t=xr(this).id,r={action:"resumed",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await xr(this).controller.processLocalSubscription(r,t)}async onLockConfigurationChanged(e){O(e);const t=xr(this).id,r={action:"lock-configuration-changed",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e({allowDrop:this.allowDrop,allowDropLeft:this.allowDropLeft,allowDropTop:this.allowDropTop,allowDropRight:this.allowDropRight,allowDropBottom:this.allowDropBottom,allowSystemHibernation:this.allowSystemHibernation,allowExtract:this.allowExtract,allowSplitters:this.allowSplitters,allowWindowReorder:this.allowWindowReorder,allowWorkspaceTabExtract:this.allowWorkspaceTabExtract,allowWorkspaceTabReorder:this.allowWorkspaceTabReorder,showAddWindowButtons:this.showAddWindowButtons,showCloseButton:this.showCloseButton,showEjectButtons:this.showEjectButtons,showSaveButton:this.showSaveButton,showWindowCloseButtons:this.showWindowCloseButtons})}};return await xr(this).controller.processLocalSubscription(r,t)}async onTabReordered(e){O(e);const t=xr(this).id,r={action:"tab-reordered",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await xr(this).controller.processLocalSubscription(r,t)}async onWindowAdded(e){O(e);const t=xr(this).id,r={action:"added",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await xr(this).controller.processLocalSubscription(r,t)}async onWindowRemoved(e){O(e);const t=xr(this).id,r={action:"removed",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const{windowId:r,workspaceId:o,frameId:n}=t.windowSummary.config;e({windowId:r,workspaceId:o,frameId:n})}};return await xr(this).controller.processLocalSubscription(r,t)}async onWindowLoaded(e){O(e);const t=xr(this).id,r={action:"loaded",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getWindow(e=>e.id&&e.id===t.windowSummary.config.windowId);e(r)}};return await xr(this).controller.processLocalSubscription(r,t)}async onWindowMaximized(e){O(e);const t=xr(this).id,r={action:"maximized",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await xr(this).controller.processLocalSubscription(r,t)}async onWindowRestored(e){O(e);const t=xr(this).id,r={action:"restored",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await xr(this).controller.processLocalSubscription(r,t)}async onWindowSelected(e){O(e);const t=xr(this).id,r={action:"selected",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await xr(this).controller.processLocalSubscription(r,t)}async onWindowTabReordered(e){O(e);const t=xr(this).id,r={action:"tab-reordered",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await xr(this).controller.processLocalSubscription(r,t)}}const Cr=new WeakMap,Er=e=>Cr.get(e).manager.getWindowData(e);class Br{constructor(e){Cr.set(this,{manager:e})}get id(){return Er(this).config.windowId}get elementId(){return Er(this).id}get type(){return"window"}get frameId(){return Er(this).frame.id}get workspaceId(){return Er(this).workspace.id}get positionIndex(){return Er(this).config.positionIndex}get isMaximized(){return Er(this).config.isMaximized}get isLoaded(){return Er(this).controller.checkIsWindowLoaded(this.id)}get isSelected(){return Er(this).config.isSelected}get focused(){return this.getGdWindow().isFocused}get title(){return Er(this).config.title}get allowExtract(){return Er(this).config.allowExtract}get allowReorder(){return Er(this).config.allowReorder}get showCloseButton(){return Er(this).config.showCloseButton}get width(){return Er(this).config.widthInPx}get height(){return Er(this).config.heightInPx}get minWidth(){return Er(this).config.minWidth}get minHeight(){return Er(this).config.minHeight}get maxWidth(){return Er(this).config.maxWidth}get maxHeight(){return Er(this).config.maxHeight}get workspace(){return Er(this).workspace}get frame(){return Er(this).frame}get parent(){return Er(this).parent}get appName(){return Er(this).config.appName}async forceLoad(){if(this.isLoaded)return;const e=Er(this).controller,t=Er(this).id,r=await e.forceLoadWindow(t);Er(this).config.windowId=r,await this.workspace.refreshReference()}async focus(){const e=Er(this).id,t=Er(this).controller;await t.focusItem(e),await this.workspace.refreshReference()}async close(){const e=Er(this).id,t=Er(this).controller;await t.closeItem(e),await Er(this).parent.removeChild(t=>t.id===e),await this.workspace.refreshReference()}async setTitle(e){v.runWithException(e);const t=Er(this).id,r=Er(this).controller;await r.setItemTitle(t,e),await this.workspace.refreshReference()}async maximize(){const e=Er(this).id,t=Er(this).controller;await t.maximizeItem(e),await this.workspace.refreshReference()}async restore(){const e=Er(this).id,t=Er(this).controller;await t.restoreItem(e),await this.workspace.refreshReference()}async eject(){if(!this.isLoaded)throw new Error("Cannot eject this window, because it is not loaded yet");const e=Er(this).id,t=Er(this).config.windowId,r=await Er(this).controller.ejectWindow(e,t);return Er(this).config.windowId=r,await this.workspace.refreshReference(),this.getGdWindow()}getGdWindow(){if(!this.isLoaded)throw new Error("Cannot fetch this GD window, because the window is not yet loaded");const e=Er(this).config.windowId;return Er(this).controller.getGDWindow(e)}async moveTo(e){if(!(e instanceof gr||e instanceof br||e instanceof Ir))throw new Error("Cannot add to the provided parent, because the provided parent is not an instance of Row, Column or Group");const t=Er(this).id,r=Er(this).controller;if(!await r.getParent(t=>t.id===e.id))throw new Error("Cannot move the window to the selected parent, because this parent does not exist.");await r.moveWindowTo(t,e.id),await this.workspace.refreshReference()}async lock(e){let t;if("function"==typeof e){t=e({allowExtract:this.allowExtract,allowReorder:this.allowReorder,showCloseButton:this.showCloseButton})}else t=e;const r=void 0===t?void 0:kt.runWithException(t),o=Er(this).id;await Er(this).controller.lockWindow(o,r),await this.workspace.refreshReference()}async setSize(e){const t=Wt.runWithException(e);if(!t.width&&!t.height)throw new Error("Expected either width or height to be passed.");const r=Er(this).id,o=Er(this).controller;await o.resizeItem(r,{height:t.height,width:t.width,relative:!1}),await this.workspace.refreshReference()}async onRemoved(e){O(e);const t=Er(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e()},action:"removed",eventType:"window",scope:"window"};return await Er(this).controller.processLocalSubscription(r,t)}async onLockConfigurationChanged(e){O(e);const t=Er(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e({allowExtract:this.allowExtract,allowReorder:this.allowReorder,showCloseButton:this.showCloseButton})},action:"lock-configuration-changed",eventType:"window",scope:"window"};return await Er(this).controller.processLocalSubscription(r,t)}async onTabReordered(e){O(e);const t=Er(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e()},action:"tab-reordered",eventType:"window",scope:"window"};return await Er(this).controller.processLocalSubscription(r,t)}}const Tr=new WeakMap,Mr=e=>Tr.get(e).manager.getFrameData(e);class Fr{constructor(e){Tr.set(this,{manager:e})}async registerShortcut(e,t){v.runWithException(e),O(t);const r=Mr(this).summary.id;return await Mr(this).controller.registerShortcut(e,r,t)}get id(){return Mr(this).summary.id}get isInitialized(){return Mr(this).summary.isInitialized}getBounds(){const e=Mr(this).summary.id;return Mr(this).controller.getFrameBounds(e)}async resize(e){const t=Ue.runWithException(e),r=Mr(this).summary.id;return Mr(this).controller.resizeItem(r,t)}async move(e){const t=Ke.runWithException(e),r=Mr(this).summary.id;return Mr(this).controller.moveFrame(r,t)}focus(){const e=Mr(this).summary.id;return Mr(this).controller.focusItem(e)}async state(){if(!ar())throw new Error("State operations are not supported in IO Connect Browser");const e=Mr(this).summary.id;return Mr(this).controller.getFrameState(e)}setIcon(e){if(!ar())throw new Error("frame.setIcon() is not supported in IO Connect Browser");F.runWithException(e);const t=this.id;return Mr(this).controller.setTaskbarIcon(e,t)}getIcon(){if(!ar())throw new Error("frame.getIcon() is not supported in IO Connect Browser");const e=this.id;return Mr(this).controller.getTaskbarIcon(e)}isVisible(){if(!ar())throw new Error("frame.isVisible() is not supported in IO Connect Browser");const e=this.id;return Mr(this).controller.getFrameVisibility(e)}async minimize(){if(!ar())throw new Error("State operations are not supported in IO Connect Browser");const e=Mr(this).summary.id;return Mr(this).controller.changeFrameState(e,"minimized")}async maximize(){if(!ar())throw new Error("State operations are not supported in IO Connect Browser");const e=Mr(this).summary.id;return Mr(this).controller.changeFrameState(e,"maximized")}async restore(){if(!ar())throw new Error("State operations are not supported in IO Connect Browser");const e=Mr(this).summary.id;return Mr(this).controller.changeFrameState(e,"normal")}close(e){const t=I(Qe).runWithException(e),r=Mr(this).summary.id;return Mr(this).controller.closeFrame(r,t)}snapshot(){const e=Mr(this).summary.id;return Mr(this).controller.getSnapshot(e,"frame")}async workspaces(){return Mr(this).controller.getWorkspacesByFrameId(this.id)}async getConstraints(){const e=Mr(this).controller,t=Mr(this).summary.id;return e.getFrameConstraints(t)}async restoreWorkspace(e,t){v.runWithException(e);const r=ee.runWithException(t);return Mr(this).controller.restoreWorkspace(e,r)}createWorkspace(e,t){const r=re.runWithException(e),o=H.runWithException(t);return Mr(this).controller.createWorkspace(r,o)}async init(e){if(ae.runWithException(e),Mr(this).summary.isInitialized)throw new Error("The frame has already been initialized");return Mr(this).controller.initFrame(this.id,e)}async showPopup(e){if(!ar())throw new Error("Popup operations are not supported in IO Connect Browser");const t=Jt.runWithException(e),r=Mr(this).controller;return await r.showPopup(t,this.id),r.getGDWindow(t.windowId)}async show(e){if(!ar())throw new Error("The show operation is not supported in IO Connect Browser");const t=Rt.runWithException(e);return Mr(this).controller.showFrame(this.id,t)}async hide(){if(!ar())throw new Error("The hide operation is not supported in IO Connect Browser");return Mr(this).controller.hideFrame(this.id)}async showDialog(e){if(!ar())throw new Error("The showModal operation is not supported in IO Connect Browser");return qt.runWithException(e),Mr(this).controller.showFrameDialog(this.id,e)}async onClosing(e){if(!ar())throw new Error("Frame closing operations are not supported in io.Connect Browser");O(e);return await Mr(this).controller.registerFrameOnClosing(this.id,async()=>{let t=!1;return await e({prevent:()=>t=!0}),{prevent:t}})}async onClosed(e){O(e);const t=Mr(this).summary.id,r={callback:t=>{e({frameId:t.frameSummary.id,frameBounds:t.frameBounds})},action:"closed",eventType:"frame",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onMaximized(e){O(e);const t=Mr(this).summary.id,r={callback:()=>{e()},action:"maximized",eventType:"frame",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onMinimized(e){O(e);const t=Mr(this).summary.id,r={callback:()=>{e()},action:"minimized",eventType:"frame",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onNormal(e){O(e);const t=Mr(this).summary.id,r={callback:()=>{e()},action:"normal",eventType:"frame",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onWorkspaceOpened(e){O(e);const t=Mr(this).summary.id,r={callback:async t=>{const r=await Mr(this).controller.transformStreamPayloadToWorkspace(t);e(r)},action:"opened",eventType:"workspace",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onWorkspaceSelected(e){O(e);const t=Mr(this).summary.id,r={callback:async t=>{const r=await Mr(this).controller.getWorkspaceById(t.workspaceSummary.id);e(r)},action:"selected",eventType:"workspace",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onWorkspaceClosed(e){O(e);const t=Mr(this).summary.id,r={callback:t=>{e({frameId:t.frameSummary.id,workspaceId:t.workspaceSummary.id,frameBounds:t.frameBounds})},action:"closed",eventType:"workspace",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onWindowAdded(e){O(e);const t=Mr(this).summary.id,r={callback:async t=>{const r=(await Mr(this).controller.getParent(e=>e.id===t.windowSummary.parentId)).children.find(e=>"window"===e.type&&e.positionIndex===t.windowSummary.config.positionIndex);e(r)},action:"added",eventType:"window",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onWindowRemoved(e){O(e);const t=Mr(this).summary.id,r={callback:t=>{const{windowId:r,workspaceId:o,frameId:n}=t.windowSummary.config;e({windowId:r,workspaceId:o,frameId:n})},action:"removed",eventType:"window",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onWindowLoaded(e){O(e);const t=Mr(this).summary.id,r={callback:async t=>{const r=(await Mr(this).controller.getParent(e=>e.id===t.windowSummary.parentId)).children.find(e=>"window"===e.type&&e.positionIndex===t.windowSummary.config.positionIndex);e(r)},action:"loaded",eventType:"window",scope:"frame"};return await Mr(this).controller.processLocalSubscription(r,t)}async onInitializationRequested(e){return O(e),this.isInitialized||e(Mr(this).summary.initializationContext),()=>{}}async onFocusChanged(e){O(e);const t=Mr(this),{id:r}=t.summary,o={callback:t=>{e({isFocused:t.frameSummary.isFocused})},action:"focus",eventType:"frame",scope:"frame"};return await t.controller.processLocalSubscription(o,r)}}class Rr{parentsData=new WeakMap;workspacesData=new WeakMap;windowsData=new WeakMap;framesData=new WeakMap;deleteData(e){e instanceof Br&&this.windowsData.delete(e),e instanceof vr&&this.workspacesData.delete(e),(e instanceof gr||e instanceof br||e instanceof Ir)&&this.parentsData.delete(e),e instanceof Fr&&this.framesData.delete(e)}setWindowData(e,t){this.windowsData.set(e,t)}setWorkspaceData(e,t){this.workspacesData.set(e,t)}setParentData(e,t){this.parentsData.set(e,t)}setFrameData(e,t){this.framesData.set(e,t)}getWindowData(e){return this.windowsData.get(e)}getWorkspaceData(e){return this.workspacesData.get(e)}getParentData(e){return this.parentsData.get(e)}getFrameData(e){return this.framesData.get(e)}remapChild(e,t){if(e instanceof Br){const r=this.windowsData.get(e);r.parent=t.parent||r.parent,r.config=t.config||r.config}if(e instanceof gr||e instanceof br||e instanceof Ir){const r=this.parentsData.get(e);r.parent=t.parent||r.parent,r.config=t.config||r.config,r.children=t.children||r.children}}remapFrame(e,t){this.framesData.get(e).summary=t}remapWorkspace(e,t){const r=this.workspacesData.get(e);r.frame=t.frame||r.frame,r.config=t.config||r.config,r.children=t.children||r.children}}const Lr=new WeakMap,Ar=(e,t)=>{const r=Lr.get(e).manager;return t instanceof vr?r.getWorkspaceData(t):Lr.get(e).manager.getParentData(t)};class Pr{frameId;workspaceId;positionIndex;constructor(e){Lr.set(this,{manager:e})}getId(e){return Ar(this,e).id}getPositionIndex(e){return Ar(this,e).config.positionIndex}getWorkspaceId(e){const t=Ar(this,e);return t.config.workspaceId||t.workspace.id}getFrameId(e){return Ar(this,e).frame.id}getAllChildren(e,t){O(t,!0);const r=Ar(this,e).children;return void 0===t?r:r.filter(t)}getMyParent(e){return e instanceof vr?e:Ar(this,e).parent}getMyFrame(e){return Ar(this,e).frame}getMyWorkspace(e){return e instanceof vr?e:Ar(this,e).workspace}async addWindow(e,t,r){if(!t.appName&&!t.windowId)throw new Error("The window definition should contain either an appName or a windowId");const o=V.runWithException(t),n=Ar(this,e).controller,i=await n.add("window",Ar(this,e).id,r,o);if(e instanceof vr)return await e.refreshReference(),e.getWindow(e=>e.elementId===i.itemId);const a=this.getMyWorkspace(e);return await a.refreshReference(),a.getWindow(e=>e.elementId===i.itemId)}async addParent(e,t,r,o){const n=this.transformDefinition(t,o),i=Ar(this,e).controller,a=(await i.add("container",Ar(this,e).id,r,n)).itemId;if(e instanceof vr)return await e.refreshReference(),e.getBox(e=>e.id===a);const s=this.getMyWorkspace(e);return await s.refreshReference(),s.getBox(e=>e.id===a)}async removeChild(e,t){O(t);const r=this.getAllChildren(e).find(t);r&&(await r.close(),e instanceof vr?await e.refreshReference():await this.getMyWorkspace(e).refreshReference())}async maximize(e){const{controller:t,id:r}=Ar(this,e);await t.maximizeItem(r),await this.getMyWorkspace(e.parent).refreshReference()}async restore(e){const{controller:t,id:r}=Ar(this,e);await t.restoreItem(r),await this.getMyWorkspace(e.parent).refreshReference()}async close(e){const t=Ar(this,e),r=Ar(this,e).controller;await r.closeItem(t.id),await this.getMyWorkspace(t.parent).refreshReference()}async lockContainer(e,t){const r=Ar(this,e),o=Ar(this,e).controller;await o.lockContainer(r.id,e.type,t),await this.getMyWorkspace(r.parent).refreshReference()}getAllowDrop(e){return Ar(this,e).config.allowDrop}getAllowDropLeft(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Property allowDropLeft is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropLeft}getAllowDropRight(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Property allowDropRight is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropRight}getAllowDropTop(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Property allowDropTop is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropTop}getAllowDropBottom(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Property allowDropBottom is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropBottom}getAllowDropHeader(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Property allowDropHeader is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropHeader}getAllowSplitters(e){const t=Ar(this,e);if("group"===t.type)throw new Error(`Cannot get allow splitters from private data ${t.type}`);return t.config.allowSplitters}getAllowExtract(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Cannot get allow extract from private data ${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.allowExtract}getAllowReorder(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Cannot get allow extract from private data ${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.allowReorder}getShowMaximizeButton(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Cannot get show maximize button from private data${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.showMaximizeButton}getShowEjectButton(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Cannot get show eject button from private data${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.showEjectButton}getShowAddWindowButton(e){const t=Ar(this,e);if("group"!==t.type)throw new Error(`Cannot get add window button from private data${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.showAddWindowButton}getMinWidth(e){return Ar(this,e).config.minWidth}getMaxWidth(e){return Ar(this,e).config.maxWidth}getMinHeight(e){return Ar(this,e).config.minHeight}getMaxHeight(e){return Ar(this,e).config.maxHeight}getWidthInPx(e){return Ar(this,e).config.widthInPx}getHeightInPx(e){return Ar(this,e).config.heightInPx}getIsPinned(e){return Ar(this,e).config.isPinned}getIsMaximized(e){return Ar(this,e).config.isMaximized}getMaximizationBoundary(e){return Ar(this,e).config.maximizationBoundary}async setHeight(e,t){const r=Ar(this,e),{controller:o,id:n}=r;await o.resizeItem(n,{height:t}),await this.getMyWorkspace(r.parent).refreshReference()}async setWidth(e,t){const r=Ar(this,e),{controller:o,id:n}=r;await o.resizeItem(n,{width:t}),await this.getMyWorkspace(r.parent).refreshReference()}async setSize(e,t,r){const o=Ar(this,e),{controller:n,id:i}=o;await n.resizeItem(i,{width:t,height:r}),await this.getMyWorkspace(o.parent).refreshReference()}async setMaximizationBoundary(e,t){const r=Ar(this,e),{controller:o,id:n}=r;await o.setMaximizationBoundary(n,t),await this.getMyWorkspace(r.parent).refreshReference()}async bundleTo(e,t){const r=Ar(this,e),{controller:o,id:n}=r;await o.bundleItemTo(t,n)}async processLocalSubscription(e,t){return Ar(this,e).controller.processLocalSubscription(t,this.getId(e))}transformDefinition(e,t){let r;return void 0===t?r={type:e,children:[]}:t instanceof lr?r=t.serialize():(void 0===t.type&&(t.type=e),r=X.runWithException(t),r.children=r.children||[]),r}}class zr{ioc;windows;contexts;layouts;constructor(e,t,r,o){this.ioc=e,this.windows=t,this.contexts=r,this.layouts=o}get bridge(){return this.ioc.bridge}get privateDataManager(){return this.ioc.privateDataManager}checkIsWindowLoaded(e){return!!e&&this.windows.list().some(t=>t.id===e)}async createWorkspace(e){const t=await this.bridge.send(or.createWorkspace.name,e),r={summary:t.frameSummary},o={frame:this.ioc.getModel("frame",r),snapshot:t};return this.ioc.getModel("workspace",o)}async createEmptyFrame(e){const t={summary:await this.bridge.send(or.createFrame.name,e)};return this.ioc.getModel("frame",t)}async initFrame(e,t){await this.bridge.send(or.initFrame.name,{frameId:e,...t})}async restoreWorkspace(e,t){const r=await this.bridge.send(or.openWorkspace.name,{name:e,restoreOptions:t}),o={summary:await this.bridge.send(or.getFrameSummary.name,{itemId:r.config.frameId})},n={frame:this.ioc.getModel("frame",o),snapshot:r};return this.ioc.getModel("workspace",n)}async add(e,t,r,o){let n;const i={definition:o,parentId:t,parentType:r};if("window"===e)n=or.addWindow.name;else{if("container"!==e)throw new Error(`Unrecognized add type: ${e}`);n=or.addContainer.name}return await this.bridge.send(n,i)}async getFrame(e){const t={summary:await this.bridge.send(or.getFrameSummary.name,{itemId:e})};return this.ioc.getModel("frame",t)}getFrames(e,t){return e.reduce((e,r)=>{const o={summary:r},n=this.ioc.getModel("frame",o);return t&&!t(n)||e.push(n),e},[])}getAllWorkspaceSummaries(...e){return e.reduce((e,t)=>(e.push(...t.summaries),e),[]).map(e=>Object.assign({},{id:e.id,width:e.config.widthInPx,height:e.config.heightInPx},e.config))}handleOnSaved(e){const t=t=>{"Workspace"===t.type&&e(t)},r=this.layouts.onAdded(t),o=this.layouts.onChanged(t);return()=>{r(),o()}}handleOnRemoved(e){return this.layouts.onRemoved(t=>{"Workspace"===t.type&&e(t)})}async importLayouts(e,t){await this.layouts.import(e,t)}async transformStreamPayloadToWorkspace(e){const t={summary:e.frameSummary},r={frame:this.ioc.getModel("frame",t),snapshot:e.workspaceSnapshot||await this.bridge.send(or.getWorkspaceSnapshot.name,{itemId:e.workspaceSummary.id})};return this.ioc.getModel("workspace",r)}async fetchWorkspace(e){const t=await this.bridge.send(or.getWorkspaceSnapshot.name,{itemId:e}),r={summary:t.frameSummary},o={frame:this.ioc.getModel("frame",r),snapshot:t};return this.ioc.getModel("workspace",o)}async bundleWorkspaceTo(e,t){await this.bridge.send(or.bundleWorkspace.name,{type:e,workspaceId:t})}async bundleItemTo(e,t){if(!await this.isOperationSupported(or.bundleItem.name))throw new Error(`Operation ${or.bundleItem.name} is not supported. Ensure that you are running the latest version of all packages`);await this.bridge.send(or.bundleItem.name,{type:e,itemId:t})}async getTaskbarIcon(e){return await this.bridge.send(or.getTaskbarIcon.name,{frameId:e})}async setTaskbarIcon(e,t){await this.bridge.send(or.setTaskbarIcon.name,{icon:e,frameId:t})}getWorkspaceContext(e){const t=`___workspace___${e}`;return this.contexts.get(t)}setWorkspaceContext(e,t){const r=`___workspace___${e}`;return this.contexts.set(r,t)}updateWorkspaceContext(e,t){const r=`___workspace___${e}`;return this.contexts.update(r,t)}subscribeWorkspaceContextUpdated(e,t){const r=`___workspace___${e}`;return this.contexts.subscribe(r,t)}async restoreItem(e){await this.bridge.send(or.restoreItem.name,{itemId:e})}async maximizeItem(e){await this.bridge.send(or.maximizeItem.name,{itemId:e})}async focusItem(e){await this.bridge.send(or.focusItem.name,{itemId:e})}async closeWorkspace(e){await this.bridge.send(or.closeWorkspace.name,{itemId:e})}async closeItem(e){await this.bridge.send(or.closeItem.name,{itemId:e})}async closeFrame(e,t){await this.bridge.send(or.closeItem.name,{itemId:e,closeOptions:t})}async resizeItem(e,t){await this.bridge.send(or.resizeItem.name,Object.assign({},{itemId:e},t))}async setMaximizationBoundary(e,t){await this.bridge.send(or.setMaximizationBoundary.name,Object.assign({},{itemId:e},t))}async showWorkspaceLoadingAnimation(e){await this.bridge.send(or.showLoadingAnimation.name,{itemId:e,type:"workspace"})}async hideWorkspaceLoadingAnimation(e){await this.bridge.send(or.hideLoadingAnimation.name,{itemId:e,type:"workspace"})}async setWindowDragMode(e,t){await this.bridge.send(or.setWindowDragMode.name,{itemId:e,dragMode:t})}async moveFrame(e,t){await this.bridge.send(or.moveFrame.name,Object.assign({},{itemId:e},t))}getGDWindow(e){return this.windows.list().find(t=>t.id===e)}async forceLoadWindow(e){return(await this.bridge.send(or.forceLoadWindow.name,{itemId:e})).windowId}async ejectWindow(e,t){return await this.bridge.send(or.ejectWindow.name,{itemId:e,windowId:t})}async moveWindowTo(e,t){await this.bridge.send(or.moveWindowTo.name,{itemId:e,containerId:t})}async getSnapshot(e,t){let r;return"workspace"===t?r=await this.bridge.send(or.getWorkspaceSnapshot.name,{itemId:e}):"frame"===t&&(r=await this.bridge.send(or.getFrameSnapshot.name,{itemId:e})),r}async setItemTitle(e,t){await this.bridge.send(or.setItemTitle.name,{itemId:e,title:t})}refreshChildren(e){const{parent:t,children:r,existingChildren:o,workspace:n}=e;if(t instanceof Br||"window"===t.type)return;const i=r.map(e=>{let r=o.find(t=>"window"===t.type?t.elementId===e.id:t.id===e.id);if(r)this.privateDataManager.remapChild(r,{parent:t,children:[],config:e.config});else{let o;o="window"===e.type?{id:e.id,parent:t,frame:n.frame,workspace:n,config:e.config}:{id:e.id,parent:t,frame:n.frame,workspace:n,config:e.config,children:[]},r=this.ioc.getModel(e.type,o)}return"window"!==e.type&&this.refreshChildren({workspace:n,existingChildren:o,children:e.children,parent:r}),r});return t instanceof vr||this.privateDataManager.remapChild(t,{children:i}),i}iterateFindChild(e,t){let r=e.find(e=>t(e));return r||(e.some(e=>!(e instanceof Br)&&(r=this.iterateFindChild(e.children,t),!!r||void 0)),r)}iterateFilterChildren(e,t){const r=e.filter(e=>t(e)),o=e.reduce((e,r)=>(r instanceof Br||e.push(...this.iterateFilterChildren(r.children,t)),e),[]);return r.push(...o),r}notifyWindowAdded(e){return new Promise(t=>{if(this.windows.list().some(t=>t.id===e))return t();const r=this.windows.onWindowAdded(o=>{o.id===e&&(r&&r(),t())})})}async hibernateWorkspace(e){await this.bridge.send(or.hibernateWorkspace.name,{workspaceId:e})}async resumeWorkspace(e){await this.bridge.send(or.resumeWorkspace.name,{workspaceId:e})}async lockWorkspace(e,t){await this.bridge.send(or.lockWorkspace.name,{workspaceId:e,config:t})}async lockWindow(e,t){await this.bridge.send(or.lockWindow.name,{windowPlacementId:e,config:t})}async lockContainer(e,t,r){await this.bridge.send(or.lockContainer.name,{itemId:e,type:t,config:r})}async pinWorkspace(e,t){await this.bridge.send(or.pinWorkspace.name,{workspaceId:e,icon:t})}async unpinWorkspace(e){await this.bridge.send(or.unpinWorkspace.name,{workspaceId:e})}async getWorkspaceIcon(e){return(await this.bridge.send(or.getWorkspaceIcon.name,{workspaceId:e})).icon}setWorkspaceIcon(e,t){return this.bridge.send(or.setWorkspaceIcon.name,{workspaceId:e,icon:t})}async getPlatformFrameId(){try{return await this.bridge.send(or.getPlatformFrameId.name,{})}catch(e){return{}}}async setLoadingStrategy(e,t){return await this.isOperationSupported(or.setLoadingStrategy.name),this.bridge.send(or.setLoadingStrategy.name,{itemId:e,strategy:t})}async showFrame(e,t){const r={frameId:e,isVisible:!0,...t};return this.bridge.send(or.changeFrameVisibility.name,r)}async hideFrame(e){return this.bridge.send(or.changeFrameVisibility.name,{frameId:e,isVisible:!1})}async getFrameVisibility(e){return(await this.bridge.send(or.getFrameVisibility.name,{itemId:e})).isVisible}async showFrameDialog(e,t){return await this.bridge.send(or.showFrameDialog.name,{frameId:e,options:t},{timeout:864e5})}async isOperationSupported(e){return ar()?{isSupported:!0}:await this.bridge.send(or.operationCheck.name,{operation:e})}async showPopup(e,t){return this.bridge.send(or.showPopup.name,{...e,frameId:t})}}class Or{bridge;base;shortcutsController;closingController;constructor(e,t,r,o){this.bridge=e,this.base=t,this.shortcutsController=r,this.closingController=o}setTaskbarIcon(e,t){return this.base.setTaskbarIcon(e,t)}getTaskbarIcon(e){return this.base.getTaskbarIcon(e)}checkIsWindowLoaded(e){return this.base.checkIsWindowLoaded(e)}async checkIsInSwimlane(e){return(await this.bridge.send(or.isWindowInWorkspace.name,{itemId:e})).inWorkspace}async createWorkspace(e,t){const r=Object.assign({},e,{saveConfig:t});return await this.base.createWorkspace(r)}async createEmptyFrame(e){return await this.base.createEmptyFrame(e)}async initFrame(e,t){return this.base.initFrame(e,t)}async restoreWorkspace(e,t){if(!(await this.getLayoutSummaries()).some(t=>t.name===e))throw new Error(`This layout: ${e} cannot be restored, because it doesn't exist.`);if(t?.frameId){if(!(await this.bridge.send(or.getAllFramesSummaries.name)).summaries.some(e=>e.id===t.frameId))throw new Error(`Cannot reuse the frame with id: ${t.frameId}, because there is no frame with that ID found`)}return await this.base.restoreWorkspace(e,t)}async add(e,t,r,o){return await this.base.add(e,t,r,o)}processLocalSubscription(e,t){return ar()?this.handleEnterpriseLocalSubscription(e,t):this.handleCoreLocalSubscription(e,t)}processGlobalSubscription(e,t,r){return ar()?this.handleEnterpriseGlobalSubscription(e,t,r):this.handleCoreGlobalSubscription(e,t,r)}async getFrame(e){if(e.windowId)return await this.base.getFrame(e.windowId);if(e.predicate)return(await this.getFrames(e.predicate))[0];throw new Error(`The provided selector is not valid: ${JSON.stringify(e)}`)}async getFrames(e){const t=await this.bridge.send(or.getAllFramesSummaries.name);return this.base.getFrames(t.summaries,e)}getWorkspaceById(e){return this.base.fetchWorkspace(e)}async getWorkspaceByWindowId(e){return ar()?this.base.fetchWorkspace(e):(await this.getWorkspaces(t=>!!t.getWindow(t=>t.id===e)))[0]}transformStreamPayloadToWorkspace(e){return this.base.transformStreamPayloadToWorkspace(e)}async getWorkspace(e){let t;return await this.iterateWorkspaces((r,o)=>{e(r)&&(t=r,o())}),t}async getWorkspaces(e){const t=[];return await this.iterateWorkspaces(r=>{e&&!e(r)||t.push(r)}),t}async getWorkspacesByFrameId(e){const t=(await this.getAllWorkspaceSummaries()).filter(t=>t.frameId===e);return await Promise.all(t.map(e=>this.base.fetchWorkspace(e.id)))}async isLastWorkspaceInFrame(e,t){const r=(await this.getAllWorkspaceSummaries()).filter(e=>e.frameId===t);return 1===r.length&&r[0].id===e}async getAllWorkspaceSummaries(){const e=await this.bridge.send(or.getAllWorkspacesSummaries.name,{});return this.base.getAllWorkspaceSummaries(e)}async getWindow(e){let t;return await this.iterateWorkspaces((r,o)=>{const n=r.getWindow(e);n&&(t=n,o())}),t}async getParent(e){let t;return await this.iterateWorkspaces((r,o)=>{const n=r.getBox(e);n&&(t=n,o())}),t}async getLayoutSummaries(){return(await this.bridge.send(or.getAllLayoutsSummaries.name)).summaries}async deleteLayout(e){await this.bridge.send(or.deleteLayout.name,{name:e})}async exportLayout(e){return(await this.bridge.send(or.exportAllLayouts.name)).layouts.reduce((t,r)=>(e&&!e(r)||t.push(r),t),[])}async saveLayout(e){return await this.bridge.send(or.saveLayout.name,e)}async importLayouts(e,t){if(ar())try{await this.bridge.send(or.importLayouts.name,{layouts:e,mode:t})}catch(r){await Promise.all(e.map(e=>this.bridge.send(or.importLayout.name,{layout:e,mode:t})))}else await this.base.importLayouts(e,t)}handleOnSaved(e){return this.base.handleOnSaved(e)}handleOnRemoved(e){return this.base.handleOnRemoved(e)}async bundleWorkspaceTo(e,t){return await this.base.bundleWorkspaceTo(e,t)}async bundleItemTo(e,t){return await this.base.bundleItemTo(e,t)}getWorkspaceContext(e){return this.base.getWorkspaceContext(e)}setWorkspaceContext(e,t){return this.base.setWorkspaceContext(e,t)}updateWorkspaceContext(e,t){return this.base.updateWorkspaceContext(e,t)}subscribeWorkspaceContextUpdated(e,t){return this.base.subscribeWorkspaceContextUpdated(e,t)}async restoreItem(e){return await this.base.restoreItem(e)}async maximizeItem(e){return await this.base.maximizeItem(e)}async focusItem(e){return await this.base.focusItem(e)}async changeFrameState(e,t){await this.bridge.send(or.changeFrameState.name,{frameId:e,requestedState:t})}async getFrameBounds(e){return(await this.bridge.send(or.getFrameBounds.name,{itemId:e})).bounds}async getFrameState(e){return(await this.bridge.send(or.getFrameState.name,{itemId:e})).state}async closeWorkspace(e,t){if(ar())return await this.closeItem(e);let r=!1;try{const{isSupported:e}=await this.base.isOperationSupported(or.closeWorkspace.name);r=e}catch(e){r=!1}return r?await this.base.closeWorkspace(e):await this.legacyCloseWorkspace(e,t)}async closeItem(e){return await this.base.closeItem(e)}async closeFrame(e,t){return await this.base.closeFrame(e,t)}async resizeItem(e,t){return await this.base.resizeItem(e,t)}async setMaximizationBoundary(e,t){return await this.base.setMaximizationBoundary(e,t)}async showWorkspaceLoadingAnimation(e){return await this.base.showWorkspaceLoadingAnimation(e)}async hideWorkspaceLoadingAnimation(e){return await this.base.hideWorkspaceLoadingAnimation(e)}async setWindowDragMode(e,t){return await this.base.setWindowDragMode(e,t)}async moveFrame(e,t){return await this.base.moveFrame(e,t)}getGDWindow(e){return this.base.getGDWindow(e)}async forceLoadWindow(e){const t=await this.base.forceLoadWindow(e);return await this.base.notifyWindowAdded(t),t}async ejectWindow(e,t){const r=(await this.base.ejectWindow(e,t)).windowId;return await this.base.notifyWindowAdded(r),r}async moveWindowTo(e,t){return await this.base.moveWindowTo(e,t)}async getSnapshot(e,t){return await this.base.getSnapshot(e,t)}async setItemTitle(e,t){return await this.base.setItemTitle(e,t)}flatChildren(e){return e.reduce((e,t)=>(e.push(t),"window"!==t.type&&e.push(...this.flatChildren(t.children)),e),[])}refreshChildren(e){return this.base.refreshChildren(e)}iterateFindChild(e,t){return this.base.iterateFindChild(e,t)}iterateFilterChildren(e,t){return this.base.iterateFilterChildren(e,t)}hibernateWorkspace(e){return this.base.hibernateWorkspace(e)}resumeWorkspace(e){return this.base.resumeWorkspace(e)}lockWorkspace(e,t){return this.base.lockWorkspace(e,t)}lockWindow(e,t){return this.base.lockWindow(e,t)}lockContainer(e,t,r){return this.base.lockContainer(e,t,r)}pinWorkspace(e,t){return this.base.pinWorkspace(e,t)}unpinWorkspace(e){return this.base.unpinWorkspace(e)}getWorkspaceIcon(e){return this.base.getWorkspaceIcon(e)}setWorkspaceIcon(e,t){return this.base.setWorkspaceIcon(e,t)}async getFrameConstraints(e){const t=await this.getSnapshot(e,"frame");return{minWidth:t.config.minWidth,maxWidth:t.config.maxWidth,minHeight:t.config.minHeight,maxHeight:t.config.maxHeight}}registerShortcut(e,t,r){return this.shortcutsController.registerShortcut(e,t,r)}getPlatformFrameId(){return this.base.getPlatformFrameId()}setLoadingStrategy(e,t){return this.base.setLoadingStrategy(e,t)}registerFrameOnClosing(e,t){return this.closingController.registerFrameOnClosing(e,t)}showPopup(e,t){return this.base.showPopup(e,t)}async showFrame(e,t){return this.base.showFrame(e,t)}async hideFrame(e){return this.base.hideFrame(e)}async getFrameVisibility(e){return this.base.getFrameVisibility(e)}async showFrameDialog(e,t){return this.base.showFrameDialog(e,t)}async handleCoreLocalSubscription(e,t){if(await this.bridge.createCoreEventSubscription(),e.scopeId=e.scopeId||t,"window"===e.eventType&&"loaded"===e.action){const t=e.callback,r=async e=>{await this.base.notifyWindowAdded(e.windowSummary.config.windowId),t(e)};e.callback=r}return this.bridge.handleCoreSubscription(e)}handleEnterpriseLocalSubscription(e,t){if(e.scopeId=e.scopeId||t,"window"===e.eventType&&"loaded"===e.action){const t=e.callback,r=async e=>{await this.base.notifyWindowAdded(e.windowSummary.config.windowId),t(e)};e.callback=r}return this.bridge.subscribe(e)}async handleCoreGlobalSubscription(e,t,r){await this.bridge.createCoreEventSubscription();const o={eventType:t,callback:e,action:r,scope:"global"};if("window"===t&&"loaded"===r){const t=async t=>{await this.base.notifyWindowAdded(t.windowSummary.config.windowId),e(t)};o.callback=t}return this.bridge.handleCoreSubscription(o)}handleEnterpriseGlobalSubscription(e,t,r){const o={eventType:t,callback:e,action:r,scope:"global"};if("window"===t&&"loaded"===r){const t=async t=>{await this.base.notifyWindowAdded(t.windowSummary.config.windowId),e(t)};o.callback=t}return this.bridge.subscribe(o)}async iterateWorkspaces(e){let t=!1;const r=()=>{t=!0},o=await this.getAllWorkspaceSummaries();for(const n of o){if(t)return;e(await this.base.fetchWorkspace(n.id),r)}}async legacyCloseWorkspace(e,t){const r=await this.isLastWorkspaceInFrame(e,t),o=(await this.getPlatformFrameId()).id;if(r&&o!==t)return await this.closeFrame(t,{});await this.closeItem(e)}}class Hr{bridge;_shortcuts=r();constructor(e){this.bridge=e,this.bridge.onOperation(e=>{if(e.operation===rr.shortcutClicked.name){const t=e.data;this._shortcuts.execute(`${t.frameId}-${t.shortcut}`)}})}async registerShortcut(e,t,r){await this.bridge.send(or.registerShortcut.name,{shortcut:e,frameId:t});const o=this._shortcuts.add(`${t}-${e}`,r);return()=>{o(),this.bridge.send(or.unregisterShortcut.name,{shortcut:e,frameId:t})}}}class $r{bridge;registry=r();constructor(e){this.bridge=e,this.subscribeToFrameClosing()}async registerFrameOnClosing(e,t){return await this.bridge.send(or.subscribeToFrameClosing.name,{itemId:e}),this.registry.add(e,t)}subscribeToFrameClosing(){this.bridge.onOperationWithResponse(async e=>{if(e.operation!==rr.frameClosing.name)return;const t=e.data,r=await Promise.all(this.registry.execute(t.frameId));return this.aggregateFrameClosingResult(r)})}aggregateFrameClosingResult(e){return{prevent:e.some(e=>e?.prevent)}}}class _r{agm;windows;layouts;contexts;_controllerInstance;_bridgeInstance;_transportInstance;_privateDataManagerInstance;_parentBaseInstance;_baseController;_shortcutsController;_closingController;constructor(e,t,r,o){this.agm=e,this.windows=t,this.layouts=r,this.contexts=o}get baseController(){return this._baseController||(this._baseController=new zr(this,this.windows,this.contexts,this.layouts)),this._baseController}get controller(){return this._controllerInstance||(this._controllerInstance=new Or(this.bridge,this.baseController,this.shortcutsController,this.closingController)),this._controllerInstance}get shortcutsController(){return this._shortcutsController||(this._shortcutsController=new Hr(this.bridge)),this._shortcutsController}get closingController(){return this._closingController||(this._closingController=new $r(this.bridge)),this._closingController}get bridge(){return this._bridgeInstance||(this._bridgeInstance=new ir(this.transport,r())),this._bridgeInstance}get transport(){return this._transportInstance||(this._transportInstance=new cr(this.agm,r())),this._transportInstance}get privateDataManager(){return this._privateDataManagerInstance||(this._privateDataManagerInstance=new Rr),this._privateDataManagerInstance}get parentBase(){return this._parentBaseInstance||(this._parentBaseInstance=new Pr(this.privateDataManager)),this._parentBaseInstance}async initiate(e){await this.transport.initiate(e)}getModel(e,t){switch(e){case"frame":{const e=new Fr(this.privateDataManager),{summary:r}=t,o={summary:r,controller:this.controller};return this.privateDataManager.setFrameData(e,o),e}case"window":{const{id:e,parent:r,frame:o,workspace:n,config:i}=t,a={type:"window",controller:this.controller,config:i,id:e,parent:r,frame:o,workspace:n},s=new Br(this.privateDataManager);return this.privateDataManager.setWindowData(s,a),s}case"row":case"column":case"group":{const{id:r,children:o,parent:n,frame:i,workspace:a,config:s}=t,c="column"===e?new br(this.parentBase):"row"===e?new gr(this.parentBase):new Ir(this.parentBase),d=this.buildChildren(o,i,a,c),l={id:r,parent:n,frame:i,workspace:a,config:s,type:e,controller:this.controller,children:d};return this.privateDataManager.setParentData(c,l),c}case"workspace":{const{snapshot:e,frame:r}=t,o=new vr(this.privateDataManager),n=this.buildChildren(e.children,r,o,o),i={id:e.id,type:"workspace",config:e.config,base:this.parentBase,controller:this.controller,children:n,frame:r,ioc:this};return this.privateDataManager.setWorkspaceData(o,i),o}default:throw new Error(`Unrecognized type: ${e}`)}}getBuilder(e){e.definition=e.definition||{},Array.isArray(e.definition.children)||(e.definition.children=[]);const t=new hr(this.getBuilder.bind(this));switch(e.type){case"workspace":return new wr(e.definition,t,this.controller);case"row":case"column":case"group":return e.definition.type=e.type,new lr(e.definition,t);default:throw new Error(`Unexpected Builder creation error, provided config: ${JSON.stringify(e)}`)}}buildChildren(e,t,r,o){return e.map(e=>{switch(e.type){case"window":return this.getModel("window",{id:e.id,config:e.config,frame:t,workspace:r,parent:o});case"column":case"row":case"group":return this.getModel(e.type,{id:e.id,config:e.config,children:e.children,frame:t,workspace:r,parent:o});default:throw new Error(`Unsupported child type: ${e.type}`)}})}}const jr=async e=>{const t=new _r(e.agm,e.windows,e.layouts,e.contexts),r=e.interop.instance.windowId;await t.initiate(r),e.workspaces=((e,t)=>{const r=t.controller,o=async e=>(O(e,!0),r.getFrames(e)),n=async e=>(O(e),await r.processGlobalSubscription(r=>{const o={summary:r.frameSummary},n=t.getModel("frame",o);e(n)},"frame","opened"));return{inWorkspace:()=>{const t=e.windows.my().id;if(!t)throw new Error("Cannot get my frame, because my id is undefined.");return r.checkIsInSwimlane(t)},getBuilder:e=>{const r=ce.runWithException(e);return t.getBuilder(r)},getMyFrame:async()=>{const t=e.windows.my().id;if(!t)throw new Error("Cannot get my frame, because my id is undefined.");if(!await r.checkIsInSwimlane(t))throw new Error("Cannot fetch your frame, because this window is not in a workspace");return r.getFrame({windowId:t})},getFrame:async e=>(O(e),r.getFrame({predicate:e})),getAllFrames:o,getAllWorkspacesSummaries:()=>r.getAllWorkspaceSummaries(),getMyWorkspace:async()=>{const t=e.windows.my().id;if(!t)throw new Error("Cannot get my workspace, because my id is undefined.");if(!await r.checkIsInSwimlane(t))throw new Error("Cannot fetch your workspace, because this window is not in a workspace");return await r.getWorkspaceByWindowId(t)},getWorkspace:async e=>(O(e),(await r.getWorkspaces(e))[0]),getWorkspaceById:async e=>(v.runWithException(e),r.getWorkspaceById(e)),getAllWorkspaces:e=>(O(e,!0),r.getWorkspaces(e)),getWindow:async e=>(O(e),r.getWindow(e)),getBox:async e=>(O(e),r.getParent(e)),restoreWorkspace:async(e,t)=>{v.runWithException(e);const o=ee.runWithException(t);return r.restoreWorkspace(e,o)},createWorkspace:async(e,t)=>{const o=re.runWithException(e),n=H.runWithException(t);return r.createWorkspace(o,n)},createEmptyFrame:async e=>{const t=ie.runWithException(e);return r.createEmptyFrame(t??{})},waitForFrame:async e=>(v.runWithException(e),new Promise((t,r)=>{let i=()=>{};n(r=>{r.id===e&&(t(r),i())}).then(e=>(i=e,o())).then(r=>{const o=r.find(t=>t.id===e);o&&(t(o),i())}).catch(r)})),layouts:{getSummaries:()=>r.getLayoutSummaries(),delete:async e=>(v.runWithException(e),r.deleteLayout(e)),export:async e=>(O(e,!0),r.exportLayout(e)),import:async(e,t="replace")=>{if(!Array.isArray(e))throw new Error(`The provided layouts argument is not an array: ${JSON.stringify(e)}`);return e.forEach(e=>Ee.runWithException(e)),r.importLayouts(e,t)},save:async e=>{const t=gt.runWithException(e);return r.saveLayout(t)},onSaved:async e=>(O(e),r.handleOnSaved(e)),onRemoved:async e=>(O(e),r.handleOnRemoved(e))},onFrameOpened:n,onFrameClosed:async e=>(O(e),await r.processGlobalSubscription(t=>{e({frameId:t.frameSummary.id,frameBounds:t.frameBounds})},"frame","closed")),onWorkspaceOpened:async e=>(O(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","opened")),onWorkspaceClosed:async e=>(O(e),await r.processGlobalSubscription(t=>{e({frameId:t.frameSummary.id,workspaceId:t.workspaceSummary.id,frameBounds:t.frameBounds})},"workspace","closed")),onWorkspaceHibernated:async e=>(O(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","hibernated")),onWorkspaceResumed:async e=>(O(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","resumed")),onWorkspaceTabReordered:async e=>(O(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","tab-reordered")),onWindowTabReordered:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","tab-reordered")),onWindowAdded:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","added")),onWindowLoaded:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getWindow(e=>e.id&&e.id===o.windowSummary.config.windowId);e(s)},"window","loaded")),onWindowRemoved:async e=>(O(e),await r.processGlobalSubscription(t=>{const{windowId:r,workspaceId:o,frameId:n}=t.windowSummary.config;e({windowId:r,workspaceId:o,frameId:n})},"window","removed")),onWindowMaximized:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","maximized")),onWindowRestored:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","restored")),onWindowSelected:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","selected")),version:"4.4.0"}})(e,t)};return"undefined"!=typeof window&&(window.IOWorkspaces=jr),jr});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).workspaces=e.workspaces||{},e.workspaces.min=t())}(this,function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e){if(e&&e.errorHandling&&"function"!=typeof e.errorHandling&&"log"!==e.errorHandling&&"silent"!==e.errorHandling&&"throw"!==e.errorHandling)throw new Error('Invalid options passed to createRegistry. Prop errorHandling should be ["log" | "silent" | "throw" | (err) => void], but '+typeof e.errorHandling+" was passed");var t=e&&"function"==typeof e.errorHandling&&e.errorHandling,r={};function o(r,o){var n=r instanceof Error?r:new Error(r);if(t)t(n);else{var i='[ERROR] callback-registry: User callback for key "'+o+'" failed: '+n.stack;if(e)switch(e.errorHandling){case"log":return console.error(i);case"silent":return;case"throw":throw new Error(i)}console.error(i)}}return{add:function(e,t,n){var i=r[e];return i||(i=[],r[e]=i),i.push(t),n&&setTimeout(function(){n.forEach(function(n){var i;if(null===(i=r[e])||void 0===i?void 0:i.includes(t))try{Array.isArray(n)?t.apply(void 0,n):t.apply(void 0,[n])}catch(t){o(t,e)}})},0),function(){var o=r[e];o&&(0===(o=o.reduce(function(e,r,o){return r===t&&e.length===o||e.push(r),e},[])).length?delete r[e]:r[e]=o)}},execute:function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=r[e];if(!i||0===i.length)return[];var a=[];return i.forEach(function(r){try{var n=r.apply(void 0,t);a.push(n)}catch(t){a.push(void 0),o(t,e)}}),a},clear:function(){r={}},clearKey:function(e){r[e]&&delete r[e]}}}t.default=t;var r=e(t),o=function(e){return{ok:!0,result:e}},n=function(e){return{ok:!1,error:e}},i=function(e,t,r){return!1===t.ok?t:!1===r.ok?r:o(e(t.result,r.result))},a=function(e,t){return!0===t.ok?t:n(e(t.error))},s=function(){return s=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},s.apply(this,arguments)};function c(e,t){if(e===t)return!0;if(null===e&&null===t)return!0;if(typeof e!=typeof t)return!1;if("object"==typeof e){if(Array.isArray(e)){if(!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(var r=0;r<e.length;r++)if(!c(e[r],t[r]))return!1;return!0}var o=Object.keys(e);if(o.length!==Object.keys(t).length)return!1;for(r=0;r<o.length;r++){if(!t.hasOwnProperty(o[r]))return!1;if(!c(e[o[r]],t[o[r]]))return!1}return!0}}var d=function(e){return Array.isArray(e)},l=function(e){return"object"==typeof e&&null!==e&&!d(e)},h=function(e,t){return"expected "+e+", got "+function(e){switch(typeof e){case"string":return"a string";case"number":return"a number";case"boolean":return"a boolean";case"undefined":return"undefined";case"object":return e instanceof Array?"an array":null===e?"null":"an object";default:return JSON.stringify(e)}}(t)},u=function(e){return e.map(function(e){return"string"==typeof e?"."+e:"["+e+"]"}).join("")},w=function(e,t){var r=t.at,o=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}(t,["at"]);return s({at:e+(r||"")},o)},p=function(){function e(t){var r=this;this.decode=t,this.run=function(e){return a(function(t){return{kind:"DecoderError",input:e,at:"input"+(t.at||""),message:t.message||""}},r.decode(e))},this.runPromise=function(e){return!0===(t=r.run(e)).ok?Promise.resolve(t.result):Promise.reject(t.error);var t},this.runWithException=function(e){return function(e){if(!0===e.ok)return e.result;throw e.error}(r.run(e))},this.map=function(t){return new e(function(e){return function(e,t){return!0===t.ok?o(e(t.result)):t}(t,r.decode(e))})},this.andThen=function(t){return new e(function(e){return function(e,t){return!0===t.ok?e(t.result):t}(function(r){return t(r).decode(e)},r.decode(e))})},this.where=function(t,o){return r.andThen(function(r){return t(r)?e.succeed(r):e.fail(o)})}}return e.string=function(){return new e(function(e){return"string"==typeof e?o(e):n({message:h("a string",e)})})},e.number=function(){return new e(function(e){return"number"==typeof e?o(e):n({message:h("a number",e)})})},e.boolean=function(){return new e(function(e){return"boolean"==typeof e?o(e):n({message:h("a boolean",e)})})},e.constant=function(t){return new e(function(e){return c(e,t)?o(t):n({message:"expected "+JSON.stringify(t)+", got "+JSON.stringify(e)})})},e.object=function(t){return new e(function(e){if(l(e)&&t){var r={};for(var i in t)if(t.hasOwnProperty(i)){var a=t[i].decode(e[i]);if(!0!==a.ok)return void 0===e[i]?n({message:"the key '"+i+"' is required but was not present"}):n(w("."+i,a.error));void 0!==a.result&&(r[i]=a.result)}return o(r)}return l(e)?o(e):n({message:h("an object",e)})})},e.array=function(t){return new e(function(e){if(d(e)&&t){return e.reduce(function(e,r,o){return i(function(e,t){return e.concat([t])},e,function(e,r){return a(function(e){return w("["+r+"]",e)},t.decode(e))}(r,o))},o([]))}return d(e)?o(e):n({message:h("an array",e)})})},e.tuple=function(t){return new e(function(e){if(d(e)){if(e.length!==t.length)return n({message:"expected a tuple of length "+t.length+", got one of length "+e.length});for(var r=[],i=0;i<t.length;i++){var a=t[i].decode(e[i]);if(!a.ok)return n(w("["+i+"]",a.error));r[i]=a.result}return o(r)}return n({message:h("a tuple of length "+t.length,e)})})},e.union=function(t,r){for(var o=[],n=2;n<arguments.length;n++)o[n-2]=arguments[n];return e.oneOf.apply(e,[t,r].concat(o))},e.intersection=function(t,r){for(var n=[],a=2;a<arguments.length;a++)n[a-2]=arguments[a];return new e(function(e){return[t,r].concat(n).reduce(function(t,r){return i(Object.assign,t,r.decode(e))},o({}))})},e.anyJson=function(){return new e(function(e){return o(e)})},e.unknownJson=function(){return new e(function(e){return o(e)})},e.dict=function(t){return new e(function(e){if(l(e)){var r={};for(var i in e)if(e.hasOwnProperty(i)){var a=t.decode(e[i]);if(!0!==a.ok)return n(w("."+i,a.error));r[i]=a.result}return o(r)}return n({message:h("an object",e)})})},e.optional=function(t){return new e(function(e){return null==e?o(void 0):t.decode(e)})},e.oneOf=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new e(function(e){for(var r=[],o=0;o<t.length;o++){var i=t[o].decode(e);if(!0===i.ok)return i;r[o]=i.error}var a=r.map(function(e){return"at error"+(e.at||"")+": "+e.message}).join('", "');return n({message:'expected a value matching one of the decoders, got the errors ["'+a+'"]'})})},e.withDefault=function(t,r){return new e(function(e){return o(function(e,t){return!0===t.ok?t.result:e}(t,r.decode(e)))})},e.valueAt=function(t,r){return new e(function(e){for(var o=e,i=0;i<t.length;i++){if(void 0===o)return n({at:u(t.slice(0,i+1)),message:"path does not exist"});if("string"==typeof t[i]&&!l(o))return n({at:u(t.slice(0,i+1)),message:h("an object",o)});if("number"==typeof t[i]&&!d(o))return n({at:u(t.slice(0,i+1)),message:h("an array",o)});o=o[t[i]]}return a(function(e){return void 0===o?{at:u(t),message:"path does not exist"}:w(u(t),e)},r.decode(o))})},e.succeed=function(t){return new e(function(e){return o(t)})},e.fail=function(t){return new e(function(e){return n({message:t})})},e.lazy=function(t){return new e(function(e){return t().decode(e)})},e}(),m=p.string,g=p.number,f=p.boolean,y=p.anyJson;p.unknownJson;var b=p.constant,k=p.object,W=p.array;p.tuple,p.dict;var I=p.optional,S=p.oneOf;p.union;var x=p.intersection;p.withDefault,p.valueAt,p.succeed,p.fail;var D=p.lazy;const v=m().where(e=>e.length>0,"Expected a non-empty string"),C=g().where(e=>e>=0,"Expected a non-negative number"),E=g().where(e=>e>0,"Expected a positive number"),B=S(b("keepInside"),b("autoEject")),T=k({inWorkspace:f()}),M=k({isVisible:f()}),F=k({base64Image:v}),R=k({icon:F,frameId:v}),L=S(b("workspace"),b("row"),b("column"),b("group")),A=S(b("row"),b("column"),b("group")),P=S(b("maximized"),b("minimized"),b("normal")),z=S(b("workspace")),O=(e,t)=>{const r=typeof e;if(t&&"function"!==r&&"undefined"!==r)throw new Error(`Provided argument must be either undefined or of type function, provided: ${r}`);if(!t&&"function"!==r)throw new Error(`Provided argument must be of type function, provided: ${r}`)},H=I(k({saveLayout:I(f())})),$=k({name:v}),_=k({minWidth:I(g()),maxWidth:I(g()),minHeight:I(g()),maxHeight:I(g()),allowExtract:I(f()),allowReorder:I(f()),showCloseButton:I(f())}),j=k({minWidth:I(g()),maxWidth:I(g()),minHeight:I(g()),maxHeight:I(g()),allowExtract:I(f()),allowReorder:I(f()),allowDrop:I(f()),allowDropHeader:I(f()),allowDropLeft:I(f()),allowDropRight:I(f()),allowDropTop:I(f()),allowDropBottom:I(f()),showMaximizeButton:I(f()),showEjectButton:I(f()),showAddWindowButton:I(f())}),G=k({minHeight:I(g()),maxHeight:I(g()),allowDrop:I(f()),allowSplitters:I(f()),isPinned:I(f()),maximizationBoundary:I(f())}),N=k({minWidth:I(g()),maxWidth:I(g()),allowDrop:I(f()),allowSplitters:I(f()),isPinned:I(f()),maximizationBoundary:I(f())}),V=k({type:I(b("window")),appName:I(v),windowId:I(v),context:I(y()),config:I(_)}),J=k({type:b("window"),appName:I(v),windowId:I(v),context:I(y()),config:I(_)}),U=I(k({type:I(A),children:I(D(()=>W(S(V,U)))),config:I(y())})),K=k({type:b("column"),children:I(D(()=>W(S(J,X)))),config:I(N)}),q=k({type:b("row"),children:I(D(()=>W(S(J,X)))),config:I(G)}),Q=k({type:b("group"),children:I(D(()=>W(S(J,X)))),config:I(j)}),X=S(Q,K,q);S(m().where(e=>"maximized"===e.toLowerCase(),"Expected a case insensitive variation of 'maximized'"),m().where(e=>"normal"===e.toLowerCase(),"Expected a case insensitive variation of 'normal'"));const Y=k({bounds:I(k({left:I(g()),top:I(g()),width:I(C),height:I(C)})),isVisible:I(f()),frameId:I(v)}),Z=S(b("direct"),b("delayed"),b("lazy")),ee=I(k({app:I(v),context:I(y()),loadingStrategy:I(Z),title:I(v),reuseWorkspaceId:I(v),frameId:I(v),applicationName:I(v),lockdown:I(f()),activateFrame:I(f()),newFrame:I(S(Y,f())),noTabHeader:I(f()),inMemoryLayout:I(f()),icon:I(v),isPinned:I(f()),isSelected:I(f()),positionIndex:I(C),allowSystemHibernation:I(f())})),te=k({name:v,restoreOptions:I(ee)}),re=k({children:I(W(S(V,X))),context:I(y()),config:I(k({title:I(v),position:I(C),isFocused:I(f()),noTabHeader:I(f()),reuseWorkspaceId:I(v),loadingStrategy:I(Z),allowDrop:I(f()),allowDropLeft:I(f()),allowDropTop:I(f()),allowDropRight:I(f()),allowDropBottom:I(f()),allowSystemHibernation:I(f()),allowExtract:I(f()),allowWindowReorder:I(f()),showSaveButton:I(f()),allowWorkspaceTabReorder:I(f()),allowWorkspaceTabExtract:I(f()),showCloseButton:I(f()),allowSplitters:I(f()),showWindowCloseButtons:I(f()),showEjectButtons:I(f()),showAddWindowButtons:I(f()),icon:I(v),isPinned:I(f()),isSelected:I(f()),positionIndex:I(C),windowDragMode:I(B)})),frame:I(k({activate:I(f()),reuseFrameId:I(v),applicationName:I(v),newFrame:I(S(f(),Y))}))}),oe=k({workspaceId:v}),ne=k({name:v,restoreOptions:I(ee)}),ie=I(k({applicationName:I(m()),frameConfig:I(Y),context:I(k()),layoutComponentId:I(v)})),ae=k({workspaces:W(S(I(re),I(ne)))}),se=k({frameId:v,workspaces:W(S(re,ne))}),ce=k({type:L,definition:I(S(re,U))}),de=x(re,k({saveConfig:I(k({saveLayout:I(f())}))})),le=k({itemId:v}),he=k({context:I(k())}),ue=k({id:v,isFocused:I(f()),isInitialized:I(f()),initializationContext:I(he)});k({type:A,id:v,frameId:v,workspaceId:v,positionIndex:g()});const we=S(b("frame"),b("workspace"),b("container"),b("window")),pe=k({type:we,branch:v}),me=S(b("opened"),b("closing"),b("closed"),b("focus"),b("added"),b("loaded"),b("removed"),b("childrenUpdate"),b("containerChange"),b("maximized"),b("restored"),b("minimized"),b("normal"),b("selected"),b("lock-configuration-changed"),b("hibernated"),b("resumed"),b("tab-reordered")),ge=k({frameId:v,title:v,positionIndex:C,name:v,layoutName:I(v),isHibernated:I(f()),isSelected:I(f()),allowDrop:I(f()),allowSystemHibernation:I(f()),allowExtract:I(f()),allowWindowReorder:I(f()),allowSplitters:I(f()),showCloseButton:I(f()),showSaveButton:I(f()),allowWorkspaceTabReorder:I(f()),allowWorkspaceTabExtract:I(f()),allowDropLeft:I(f()),allowDropTop:I(f()),allowDropRight:I(f()),allowDropBottom:I(f()),minWidth:I(g()),maxWidth:I(g()),minHeight:I(g()),maxHeight:I(g()),showAddWindowButtons:I(f()),showEjectButtons:I(f()),showWindowCloseButtons:I(f()),widthInPx:I(g()),heightInPx:I(g()),isPinned:I(f()),windowDragMode:I(B),loadingStrategy:I(Z)}),fe=k({frameId:v,workspaceId:v,positionIndex:g(),minWidth:I(g()),maxWidth:I(g()),minHeight:I(g()),maxHeight:I(g())}),ye=y(),be=x(fe,k({windowId:I(v),isMaximized:I(f()),isFocused:f(),isSelected:I(f()),title:I(m()),appName:I(v),allowExtract:I(f()),allowReorder:I(f()),showCloseButton:I(f()),minWidth:I(g()),minHeight:I(g()),maxWidth:I(g()),maxHeight:I(g()),widthInPx:I(g()),heightInPx:I(g()),context:I(y())})),ke=k({id:I(v),config:ye,children:I(D(()=>W(Ie))),type:S(b("row"),b("column"),b("group"))}),We=k({id:I(v),config:be,type:b("window")}),Ie=S(We,ke),Se=k({id:v,config:ge,children:W(Ie),frameSummary:ue,context:I(y())}),xe=k({type:b("window"),config:k({appName:v,windowId:I(v),context:I(y()),url:I(v),title:I(m()),allowExtract:I(f()),allowReorder:I(f()),showCloseButton:I(f()),minWidth:I(g()),minHeight:I(g()),maxWidth:I(g()),maxHeight:I(g()),isMaximized:I(f()),instanceId:I(v)})}),De=k({type:b("group"),config:y(),children:W(S(xe))}),ve=k({type:b("column"),config:y(),children:W(S(De,xe,D(()=>ve),D(()=>Ce)))}),Ce=k({type:b("row"),config:y(),children:W(S(ve,De,xe,D(()=>Ce)))}),Ee=k({name:v,type:b("Workspace"),metadata:I(y()),components:W(k({type:b("Workspace"),application:I(m()),state:k({config:y(),context:y(),children:W(S(Ce,ve,De,xe))})}))}),Be=k({layout:Ee,mode:S(b("replace"),b("merge"))}),Te=k({layouts:W(Ee),mode:S(b("replace"),b("merge"))}),Me=k({layouts:W(Ee)}),Fe=k({id:v,isFocused:I(f()),isInitialized:I(f()),initializationContext:I(he)}),Re=k({summaries:W(Fe)}),Le=k({id:v,config:ge}),Ae=k({summaries:W(Le)}),Pe=k({id:v,config:y(),workspaces:W(Se)}),ze=k({name:v,applicationName:I(m())}),Oe=k({summaries:W(ze)}),He=k({windowId:v}),$e=y(),_e=k({state:P}),je=k({top:g(),left:g(),width:C,height:C}),Ge=k({bounds:je}),Ne=k({icon:I(v)}),Ve=k({id:I(v)}),Je=k({isSupported:f()}),Ue=k({width:I(E),height:I(E),relative:I(f())}),Ke=k({top:I(g()),left:I(g()),relative:I(f())}),qe=k({itemId:v}),Qe=k({allowPrevent:I(f()),showDialog:I(f())}),Xe=k({itemId:v,closeOptions:I(Qe)}),Ye=k({itemId:v,excludeIds:I(f())}),Ze=k({frameId:v,requestedState:P}),et=k({itemId:v,title:v}),tt=k({itemId:v,containerId:v}),rt=x(qe,Ue),ot=k({itemId:v,enabled:f()}),nt=x(qe,Ke);k({id:v,type:A});const it=k({definition:V,parentId:v,parentType:L}),at=k({definition:X,parentId:v,parentType:L}),st=k({itemId:v,windowId:I(v)}),ct=k({live:f()}),dt=k({type:S(b("row"),b("column")),workspaceId:v}),lt=k({type:S(b("row"),b("column")),itemId:v}),ht=k({itemId:v,config:ye}),ut=k({frameSummary:ue,frameBounds:I(je)}),wt=k({workspaceSummary:Le,frameSummary:ue,workspaceSnapshot:I(Se),frameBounds:I(je)}),pt=k({containerSummary:ht}),mt=k({windowSummary:k({itemId:v,parentId:v,config:be})}),gt=k({name:v,workspaceId:v,saveContext:I(f()),allowMultiple:I(f()),metadata:I(k()),saveWindowContexts:I(f())}),ft=k({saveContext:I(f()),allowMultiple:I(f()),metadata:I(k()),saveWindowContexts:I(f())}),yt=k({allowDrop:I(f()),allowDropLeft:I(f()),allowDropTop:I(f()),allowDropRight:I(f()),allowDropBottom:I(f()),allowSystemHibernation:I(f()),allowExtract:I(f()),allowWindowReorder:I(f()),allowSplitters:I(f()),showCloseButton:I(f()),showSaveButton:I(f()),allowWorkspaceTabReorder:I(f()),allowWorkspaceTabExtract:I(f()),showWindowCloseButtons:I(f()),showAddWindowButtons:I(f()),showEjectButtons:I(f())}),bt=k({workspaceId:v,config:I(yt)}),kt=k({allowExtract:I(f()),allowReorder:I(f()),showCloseButton:I(f())}),Wt=k({width:I(C),height:I(C)}),It=k({windowPlacementId:v,config:I(kt)}),St=k({allowDrop:I(f()),allowSplitters:I(f())}),xt=k({allowDrop:I(f()),allowSplitters:I(f())}),Dt=k({allowExtract:I(f()),allowReorder:I(f()),allowDrop:I(f()),allowDropLeft:I(f()),allowDropRight:I(f()),allowDropTop:I(f()),allowDropBottom:I(f()),allowDropHeader:I(f()),showMaximizeButton:I(f()),showEjectButton:I(f()),showAddWindowButton:I(f())}),vt=k({itemId:v,type:b("row"),config:I(St)}),Ct=k({itemId:v,type:b("column"),config:I(xt)}),Et=k({itemId:v,type:b("group"),config:I(Dt)}),Bt=S(vt,Ct,Et),Tt=k({workspaceId:v,icon:I(v)}),Mt=k({workspaceId:v,icon:I(v)}),Ft=I(k({icon:I(v)})),Rt=I(k({activate:I(f())})),Lt=k({shortcut:v,frameId:v}),At=k({shortcut:v,frameId:v}),Pt=k({frameId:v}),zt=k({enabled:f()}),Ot=k({itemId:v,type:z}),Ht=k({operation:v}),$t=k({itemId:v,dragMode:B}),_t=k({itemId:v,strategy:Z}),jt=k({prevent:f()}),Gt=k({width:C,height:C}),Nt=k({left:g(),top:g(),width:C,height:C}),Vt=S(b("none"),b("left"),b("right"),b("top"),b("bottom")),Jt=k({size:Gt,targetBounds:Nt,targetLocation:Vt,windowId:v,horizontalOffset:I(g()),verticalOffset:I(g()),focus:I(f())}),Ut=k({frameId:v,size:Gt,targetBounds:Nt,targetLocation:Vt,windowId:v,horizontalOffset:I(g()),verticalOffset:I(g()),focus:I(f())}),Kt=k({frameId:v,activate:I(f()),isVisible:f()}),qt=k({mode:I(S(b("Global"),b("WindowContainer"))),type:m(),size:I(Gt),message:v,messageTitle:I(v),movable:I(f()),transparent:I(f()),title:v,context:I(y()),affirmativeButtonName:I(v),showAffirmativeButton:I(f()),cancelButtonName:I(v),showCancelButton:I(f()),negativeButtonName:I(v),showNegativeButton:I(f()),defaultAction:I(S(b("affirmative"),b("negative"),b("cancel"))),timerDuration:I(E),showTimer:I(f()),inputMaxLength:I(E),inputPattern:I(v),inputPatternErrorMessage:I(v),inputPlaceholder:I(m()),blur:I(f())}),Qt=k({frameId:v,options:qt}),Xt=k({onTop:f()}),Yt=k({frameId:v,onTop:f()}),Zt="T42.Web.Platform.Control",er="T42.Web.Platform.WSP.Stream",tr={control:{name:"T42.Workspaces.Control",isStream:!1},frameStream:{name:"T42.Workspaces.Stream.Frame",isStream:!0},workspaceStream:{name:"T42.Workspaces.Stream.Workspace",isStream:!0},containerStream:{name:"T42.Workspaces.Stream.Container",isStream:!0},windowStream:{name:"T42.Workspaces.Stream.Window",isStream:!0}},rr={control:{name:"T42.Workspaces.Client.Control",isStream:!1}},or={frame:{name:"T42.Workspaces.Stream.Frame",payloadDecoder:ut},workspace:{name:"T42.Workspaces.Stream.Workspace",payloadDecoder:wt},container:{name:"T42.Workspaces.Stream.Container",payloadDecoder:pt},window:{name:"T42.Workspaces.Stream.Window",payloadDecoder:mt}},nr={shortcutClicked:{name:"shortcutClicked",argsDecoder:At,resultDecoder:$e},frameClosing:{name:"frameClosing",argsDecoder:Pt,resultDecoder:jt}},ir={ping:{name:"ping",resultDecoder:ct},isWindowInWorkspace:{name:"isWindowInWorkspace",argsDecoder:qe,resultDecoder:T},createWorkspace:{name:"createWorkspace",resultDecoder:Se,argsDecoder:de},createFrame:{name:"createFrame",resultDecoder:Fe,argsDecoder:ie},initFrame:{name:"initFrame",resultDecoder:$e,argsDecoder:se},getAllFramesSummaries:{name:"getAllFramesSummaries",resultDecoder:Re},getFrameSummary:{name:"getFrameSummary",resultDecoder:ue,argsDecoder:le},getAllWorkspacesSummaries:{name:"getAllWorkspacesSummaries",resultDecoder:Ae},getWorkspaceSnapshot:{name:"getWorkspaceSnapshot",resultDecoder:Se,argsDecoder:qe},getAllLayoutsSummaries:{name:"getAllLayoutsSummaries",resultDecoder:Oe},openWorkspace:{name:"openWorkspace",argsDecoder:te,resultDecoder:Se},deleteLayout:{name:"deleteLayout",resultDecoder:$e,argsDecoder:$},saveLayout:{name:"saveLayout",resultDecoder:Ee,argsDecoder:gt},importLayout:{name:"importLayout",resultDecoder:$e,argsDecoder:Be},importLayouts:{name:"importLayouts",resultDecoder:$e,argsDecoder:Te},exportAllLayouts:{name:"exportAllLayouts",resultDecoder:Me},restoreItem:{name:"restoreItem",argsDecoder:qe,resultDecoder:$e},maximizeItem:{name:"maximizeItem",argsDecoder:qe,resultDecoder:$e},focusItem:{name:"focusItem",argsDecoder:qe,resultDecoder:$e},closeItem:{name:"closeItem",argsDecoder:Xe,resultDecoder:$e},closeWorkspace:{name:"closeWorkspace",argsDecoder:Xe,resultDecoder:$e},resizeItem:{name:"resizeItem",argsDecoder:rt,resultDecoder:$e},setMaximizationBoundary:{name:"setMaximizationBoundary",argsDecoder:ot,resultDecoder:$e},changeFrameState:{name:"changeFrameState",argsDecoder:Ze,resultDecoder:$e},getFrameState:{name:"getFrameState",argsDecoder:qe,resultDecoder:_e},getFrameBounds:{name:"getFrameBounds",argsDecoder:qe,resultDecoder:Ge},moveFrame:{name:"moveFrame",argsDecoder:nt,resultDecoder:$e},getFrameSnapshot:{name:"getFrameSnapshot",argsDecoder:Ye,resultDecoder:Pe},forceLoadWindow:{name:"forceLoadWindow",argsDecoder:qe,resultDecoder:He},ejectWindow:{name:"ejectWindow",argsDecoder:qe,resultDecoder:He},setItemTitle:{name:"setItemTitle",argsDecoder:et,resultDecoder:$e},moveWindowTo:{name:"moveWindowTo",argsDecoder:tt,resultDecoder:$e},addWindow:{name:"addWindow",argsDecoder:it,resultDecoder:st},addContainer:{name:"addContainer",argsDecoder:at,resultDecoder:st},bundleWorkspace:{name:"bundleWorkspace",argsDecoder:dt,resultDecoder:$e},bundleItem:{name:"bundleItem",argsDecoder:lt,resultDecoder:$e},hibernateWorkspace:{name:"hibernateWorkspace",argsDecoder:oe,resultDecoder:$e},resumeWorkspace:{name:"resumeWorkspace",argsDecoder:oe,resultDecoder:$e},lockWorkspace:{name:"lockWorkspace",argsDecoder:bt,resultDecoder:$e},lockWindow:{name:"lockWindow",argsDecoder:It,resultDecoder:$e},lockContainer:{name:"lockContainer",argsDecoder:Bt,resultDecoder:$e},pinWorkspace:{name:"pinWorkspace",argsDecoder:Tt,resultDecoder:$e},unpinWorkspace:{name:"unpinWorkspace",argsDecoder:oe,resultDecoder:$e},getWorkspaceIcon:{name:"getWorkspaceIcon",argsDecoder:oe,resultDecoder:Ne},setWorkspaceIcon:{name:"setWorkspaceIcon",argsDecoder:Mt,resultDecoder:$e},registerShortcut:{name:"registerShortcut",argsDecoder:Lt,resultDecoder:$e},unregisterShortcut:{name:"unregisterShortcut",argsDecoder:Lt,resultDecoder:$e},showLoadingAnimation:{name:"showLoadingAnimation",argsDecoder:Ot,resultDecoder:$e},hideLoadingAnimation:{name:"hideLoadingAnimation",argsDecoder:Ot,resultDecoder:$e},getPlatformFrameId:{name:"getPlatformFrameId",resultDecoder:Ve},operationCheck:{name:"operationCheck",argsDecoder:Ht,resultDecoder:Je},setWindowDragMode:{name:"setWindowDragMode",argsDecoder:$t,resultDecoder:$e},setLoadingStrategy:{name:"setLoadingStrategy",argsDecoder:_t,resultDecoder:$e},getTaskbarIcon:{name:"getTaskbarIcon",resultDecoder:F},setTaskbarIcon:{name:"setTaskbarIcon",argsDecoder:R,resultDecoder:$e},subscribeToFrameClosing:{name:"subscribeToFrameClosing",argsDecoder:qe,resultDecoder:$e},showPopup:{name:"showPopup",argsDecoder:Ut,resultDecoder:$e},changeFrameVisibility:{name:"changeFrameVisibility",argsDecoder:Kt,resultDecoder:$e},getFrameVisibility:{name:"getFrameVisibility",argsDecoder:qe,resultDecoder:M},showFrameDialog:{name:"showFrameDialog",argsDecoder:Qt,resultDecoder:y()},setFrameOnTop:{name:"setFrameOnTop",argsDecoder:Yt,resultDecoder:$e}};class ar{resolve;reject;promise;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class sr{transport;registry;activeSubscriptions=[];pendingSubScriptions=[];constructor(e,t){this.transport=e,this.registry=t}async createCoreEventSubscription(){await this.transport.coreSubscriptionReady(this.handleCoreEvent.bind(this))}handleCoreSubscription(e){const t=`${e.eventType}-${e.action}`,r=e.scope,o=e.scopeId;return this.registry.add(t,t=>{const n={type:r,id:o},i={frame:t.frameSummary?.id||t.windowSummary?.config.frameId,workspace:t.workspaceSummary?.id||t.windowSummary?.config.workspaceId,container:t.containerSummary?.itemId,window:t.windowSummary?.itemId};this.checkScopeMatch(n,i)&&e.callback(t)})}async send(e,t,r){const o=Object.values(ir).find(t=>t.name===e);if(!o)throw new Error(`Cannot find definition for operation name: ${e}`);if(o.argsDecoder)try{o.argsDecoder.runWithException(t)}catch(t){throw new Error(`Unexpected internal outgoing validation error: ${t.message}, for input: ${JSON.stringify(t.input)}, for operation ${e}`)}try{const e=await this.transport.transmitControl(o.name,t,r);return o.resultDecoder.runWithException(e),e}catch(t){if(t.kind)throw new Error(`Unexpected internal incoming validation error: ${t.message}, for input: ${JSON.stringify(t.input)}, for operation ${e}`);throw new Error(t.message)}}async subscribe(e){const t=this.getPendingSubscription(e);t&&await t.promise;let r=this.getActiveSubscription(e);const o=this.getRegistryKey(e);if(!r){const t=new ar,o={streamType:e.eventType,level:e.scope,levelId:e.scopeId,promise:t.promise};this.pendingSubScriptions.push(o);try{const o=or[e.eventType],n=await this.transport.subscribe(o.name,this.getBranchKey(e),e.eventType);n.onData(e=>{const t=e.data,r=pe.run(e.requestArguments),o=me.run(t.action);if(!r.ok||!o.ok)return;const n=r.result.type,i=`${n}-${r.result.branch}-${o.result}`,a=or[n].payloadDecoder.run(t.payload);a.ok&&this.registry.execute(i,a.result)}),r={streamType:e.eventType,level:e.scope,levelId:e.scopeId,callbacksCount:0,gdSub:n},this.activeSubscriptions.push(r),t.resolve()}catch(e){throw t.reject(e),e}finally{this.removePendingSubscription(o)}}const n=this.registry.add(o,e.callback);return++r.callbacksCount,()=>{n(),--r.callbacksCount,0===r.callbacksCount&&(r.gdSub.close(),this.activeSubscriptions.splice(this.activeSubscriptions.indexOf(r),1))}}onOperation(e){return this.transport.onInternalMethodInvoked("control",(t,r)=>{const o=t.operation,n=t.data,i=Object.values(nr).find(e=>e.name===o);if(!i)throw new Error(`Cannot find definition for operation name: ${o}`);if(i.argsDecoder)try{i.argsDecoder.runWithException(n)}catch(e){throw new Error(`Unexpected internal outgoing validation error: ${e.message}, for input: ${JSON.stringify(e.input)}, for operation ${o}`)}e(t,r)})}onOperationWithResponse(e){return this.transport.onInternalMethodInvoked("control",async(t,r)=>{const o=t.operation,n=t.data,i=Object.values(nr).find(e=>e.name===o);if(!i)throw new Error(`Cannot find definition for operation name: ${o}`);if(i.argsDecoder)try{i.argsDecoder.runWithException(n)}catch(e){throw new Error(`Unexpected internal outgoing validation error: ${e.message}, for input: ${JSON.stringify(e.input)}, for operation ${o}`)}const a=await e(t,r);if(i.resultDecoder)try{i.resultDecoder.runWithException(a)}catch(e){throw new Error(`Unexpected internal outgoing result validation error: ${e.message}, for input: ${JSON.stringify(e.input)}, for operation ${o}`)}return a})}checkScopeMatch(e,t){return"global"===e.type||("frame"===e.type&&e.id===t.frame||("workspace"===e.type&&e.id===t.workspace||("container"===e.type&&e.id===t.container||"window"===e.type&&e.id===t.window)))}handleCoreEvent(e){const t=e.data;try{const e=me.runWithException(t.action),r=we.runWithException(t.type),o=or[r].payloadDecoder.runWithException(t.payload),n=`${r}-${e}`;this.registry.execute(n,o)}catch(e){console.warn(`Cannot handle event with data ${JSON.stringify(t)}, because of validation error: ${e.message}`)}}getBranchKey(e){return"global"===e.scope?e.scope:`${e.scope}_${e.scopeId}`}getRegistryKey(e){return`${e.eventType}-${this.getBranchKey(e)}-${e.action}`}getActiveSubscription(e){return this.activeSubscriptions.find(t=>t.streamType===e.eventType&&t.level===e.scope&&t.levelId===e.scopeId)}getPendingSubscription(e){return this.pendingSubScriptions.find(t=>t.streamType===e.eventType&&t.level===e.scope&&t.levelId===e.scopeId)}removePendingSubscription(e){const t=this.pendingSubScriptions.indexOf(e);t>=0&&this.pendingSubScriptions.splice(t,1)}}const cr=()=>"undefined"==typeof window||(window.glue42gd||window.iodesktop),dr=()=>"undefined"==typeof window?null:window.glue42core||window.iobrowser;class lr{agm;registry;defaultTransportTimeout=12e4;coreEventMethodInitiated=!1;corePlatformSubPromise;constructor(e,t){this.agm=e,this.registry=t}async initiate(e){if(cr())return await Promise.all(Object.values(tr).map(e=>this.verifyMethodLive(e.name))),void await Promise.all(Object.keys(rr).map(e=>this.registerMethod(e)));const t=dr().communicationId;await Promise.all([this.verifyMethodLive(Zt,t),this.verifyMethodLive(er,t)]),await this.transmitControl("frameHello",{windowId:e})}coreSubscriptionReady(e){return this.coreEventMethodInitiated||this.subscribePlatform(e),this.corePlatformSubPromise}subscribePlatform(e){this.coreEventMethodInitiated=!0;const t=dr().communicationId;this.corePlatformSubPromise=this.agm.subscribe(er,t?{target:{instance:t}}:void 0),this.corePlatformSubPromise.then(t=>{t.onData(t=>e(t.data))})}async subscribe(e,t,r){const o={branch:t,type:r};let n;try{n=await this.agm.subscribe(e,{arguments:o})}catch(r){const o=`Internal subscription error! Error details: stream - ${e}, branch: ${t}. Internal message: ${r.message}`;throw new Error(o)}return n}async transmitControl(e,t,r){const o=cr()?{operation:e,operationArguments:t}:{operation:e,domain:"workspaces",data:t},n=cr()?tr.control.name:Zt,i=cr()?void 0:dr().communicationId;let a;const s=`Internal Workspaces Communication Error. Attempted operation: ${JSON.stringify(o)}. `;try{if(a=await this.agm.invoke(n,o,i?{instance:i}:"best",{methodResponseTimeoutMs:r?.timeout??this.defaultTransportTimeout}),!a)throw new Error("Received unsupported result from GD - empty result");if(!Array.isArray(a.all_return_values)||0===a.all_return_values.length)throw new Error("Received unsupported result from GD - empty values collection")}catch(e){if(e&&e.all_errors&&e.all_errors.length){const t=e.all_errors[0].message;throw new Error(`${s} -> Inner message: ${t}`)}throw new Error(`${s} -> Inner message: ${e.message}`)}return a.all_return_values[0].returned}onInternalMethodInvoked(e,t){return this.registry.add(e,t)}verifyMethodLive(e,t){return r=()=>new Promise(r=>{if(this.agm.methods().some(r=>{const o=r.name===e,n=!t||r.getServers().some(e=>e.instance===t);return o&&n}))return void r();const o=this.agm.serverMethodAdded(n=>{const i=n.method,a=n.server,s=!t||a.instance===t;i.name===e&&s&&(o(),r())})}),o=15e3,n="Timeout waiting for the Workspaces communication channels",new Promise((e,t)=>{let i=!0;const a=setTimeout(()=>{i&&(i=!1,t(n))},o);r().then(t=>{i&&(i=!1,clearTimeout(a),e(t))}).catch(e=>{i&&(i=!1,clearTimeout(a),t(e))})});var r,o,n}registerMethod(e){const t=rr[e];return this.agm.register(t.name,(t,r)=>Promise.all(this.registry.execute(e,t,r)))}}const hr=new WeakMap;class ur{constructor(e,t){const r=t.wrapChildren(e.children);delete e.children,hr.set(this,{base:t,children:r,definition:e})}get type(){return hr.get(this).definition.type}addColumn(e){return hr.get(this).base.add("column",hr.get(this).children,e)}addRow(e){return hr.get(this).base.add("row",hr.get(this).children,e)}addGroup(e){return hr.get(this).base.add("group",hr.get(this).children,e)}addWindow(e){return hr.get(this).base.addWindow(hr.get(this).children,e),this}serialize(){const e=hr.get(this).definition;return e.children=hr.get(this).base.serializeChildren(hr.get(this).children),e}}class wr{getBuilder;constructor(e){this.getBuilder=e}wrapChildren(e){return e.map(e=>"window"===e.type?e:this.getBuilder({type:e.type,definition:e}))}add(e,t,r){const o=U.runWithException(r),n=this.getBuilder({type:e,definition:o});return t.push(n),n}addWindow(e,t){const r=V.runWithException(t);r.type="window",e.push(r)}serializeChildren(e){return e.map(e=>e instanceof ur?e.serialize():e)}}const pr=new WeakMap;class mr{constructor(e,t,r){const o=t.wrapChildren(e.children);delete e.children,pr.set(this,{base:t,children:o,definition:e,controller:r})}addColumn(e){const t=pr.get(this).children;if(!t.every(e=>e instanceof ur&&"column"===e.type))throw new Error("Cannot add a column to this workspace, because there are already children of another type");return pr.get(this).base.add("column",t,e)}addRow(e){const t=pr.get(this).children;if(!t.every(e=>e instanceof ur&&"row"===e.type))throw new Error("Cannot add a row to this workspace, because there are already children of another type");return pr.get(this).base.add("row",t,e)}addGroup(e){const t=pr.get(this).children;if(0!==t.length)throw new Error("Cannot add a group to this workspace, because there are already defined children.");return pr.get(this).base.add("group",t,e)}addWindow(e){const t=pr.get(this).children;if(0!==t.length)throw new Error("Cannot add a window to this workspace, because there are already defined children.");return pr.get(this).base.addWindow(t,e),this}getChildAt(e){C.runWithException(e);return pr.get(this).children[e]}async create(e){const t=H.runWithException(e),r=pr.get(this).definition;r.children=pr.get(this).base.serializeChildren(pr.get(this).children);return pr.get(this).controller.createWorkspace(r,t)}}const gr=new WeakMap,fr=e=>gr.get(e).base;class yr{constructor(e){gr.set(this,{base:e})}get type(){return"row"}get id(){return fr(this).getId(this)}get frameId(){return fr(this).getFrameId(this)}get workspaceId(){return fr(this).getWorkspaceId(this)}get positionIndex(){return fr(this).getPositionIndex(this)}get children(){return fr(this).getAllChildren(this)}get parent(){return fr(this).getMyParent(this)}get frame(){return fr(this).getMyFrame(this)}get workspace(){return fr(this).getMyWorkspace(this)}get allowDrop(){return fr(this).getAllowDrop(this)}get allowSplitters(){return fr(this).getAllowSplitters(this)}get minWidth(){return fr(this).getMinWidth(this)}get minHeight(){return fr(this).getMinHeight(this)}get maxWidth(){return fr(this).getMaxWidth(this)}get maxHeight(){return fr(this).getMaxHeight(this)}get width(){return fr(this).getWidthInPx(this)}get height(){return fr(this).getHeightInPx(this)}get isPinned(){return fr(this).getIsPinned(this)}get isMaximized(){return fr(this).getIsMaximized(this)}get maximizationBoundary(){return fr(this).getMaximizationBoundary(this)}addWindow(e){return fr(this).addWindow(this,e,"row")}async addGroup(e){if(e?.type&&"group"!==e.type)throw new Error(`Expected a group definition, but received ${e.type}`);return fr(this).addParent(this,"group","row",e)}async addColumn(e){if(e?.type&&"column"!==e.type)throw new Error(`Expected a column definition, but received ${e.type}`);return fr(this).addParent(this,"column","row",e)}async addRow(){throw new Error("Adding rows as row children is not supported")}removeChild(e){return fr(this).removeChild(this,e)}maximize(){return fr(this).maximize(this)}restore(){return fr(this).restore(this)}close(){return fr(this).close(this)}lock(e){let t;if("function"==typeof e){t=e({allowDrop:this.allowDrop,allowSplitters:this.allowSplitters})}else t=e;const r=void 0===t?void 0:St.runWithException(t);return fr(this).lockContainer(this,r)}async setHeight(e){return C.runWithException(e),fr(this).setHeight(this,e)}async onLockConfigurationChanged(e){O(e);const t={callback:async()=>{await this.workspace.refreshReference(),e({allowDrop:this.allowDrop,allowSplitters:this.allowSplitters})},action:"lock-configuration-changed",eventType:"container",scope:"container"};return await fr(this).processLocalSubscription(this,t)}async setMaximizationBoundary(e){const t=zt.runWithException(e);return fr(this).setMaximizationBoundary(this,t)}}const br=new WeakMap,kr=e=>br.get(e).base;class Wr{constructor(e){br.set(this,{base:e})}get type(){return"column"}get id(){return kr(this).getId(this)}get frameId(){return kr(this).getFrameId(this)}get workspaceId(){return kr(this).getWorkspaceId(this)}get positionIndex(){return kr(this).getPositionIndex(this)}get children(){return kr(this).getAllChildren(this)}get parent(){return kr(this).getMyParent(this)}get frame(){return kr(this).getMyFrame(this)}get workspace(){return kr(this).getMyWorkspace(this)}get allowDrop(){return kr(this).getAllowDrop(this)}get allowSplitters(){return kr(this).getAllowSplitters(this)}get minWidth(){return kr(this).getMinWidth(this)}get minHeight(){return kr(this).getMinHeight(this)}get maxWidth(){return kr(this).getMaxWidth(this)}get maxHeight(){return kr(this).getMaxHeight(this)}get width(){return kr(this).getWidthInPx(this)}get height(){return kr(this).getHeightInPx(this)}get isPinned(){return kr(this).getIsPinned(this)}get isMaximized(){return kr(this).getIsMaximized(this)}get maximizationBoundary(){return kr(this).getMaximizationBoundary(this)}addWindow(e){return kr(this).addWindow(this,e,"column")}async addGroup(e){if(e?.type&&"group"!==e.type)throw new Error(`Expected a group definition, but received ${e.type}`);return kr(this).addParent(this,"group","column",e)}async addColumn(){throw new Error("Adding columns as column children is not supported")}async addRow(e){if(e?.type&&"row"!==e.type)throw new Error(`Expected a row definition, but received ${e.type}`);return kr(this).addParent(this,"row","column",e)}removeChild(e){return kr(this).removeChild(this,e)}maximize(){return kr(this).maximize(this)}restore(){return kr(this).restore(this)}close(){return kr(this).close(this)}lock(e){let t;if("function"==typeof e){t=e({allowDrop:this.allowDrop,allowSplitters:this.allowSplitters})}else t=e;const r=void 0===t?void 0:xt.runWithException(t);return kr(this).lockContainer(this,r)}async setWidth(e){return C.runWithException(e),kr(this).setWidth(this,e)}async onLockConfigurationChanged(e){O(e);const t={callback:async()=>{await this.workspace.refreshReference(),e({allowDrop:this.allowDrop,allowSplitters:this.allowSplitters})},action:"lock-configuration-changed",eventType:"container",scope:"container"};return await kr(this).processLocalSubscription(this,t)}async setMaximizationBoundary(e){const t=zt.runWithException(e);return kr(this).setMaximizationBoundary(this,t)}}const Ir=new WeakMap,Sr=e=>Ir.get(e).base;class xr{constructor(e){Ir.set(this,{base:e})}get type(){return"group"}get id(){return Sr(this).getId(this)}get frameId(){return Sr(this).getFrameId(this)}get workspaceId(){return Sr(this).getWorkspaceId(this)}get positionIndex(){return Sr(this).getPositionIndex(this)}get children(){return Sr(this).getAllChildren(this)}get parent(){return Sr(this).getMyParent(this)}get frame(){return Sr(this).getMyFrame(this)}get workspace(){return Sr(this).getMyWorkspace(this)}get allowExtract(){return Sr(this).getAllowExtract(this)}get allowReorder(){return Sr(this).getAllowReorder(this)}get allowDropLeft(){return Sr(this).getAllowDropLeft(this)}get allowDropRight(){return Sr(this).getAllowDropRight(this)}get allowDropTop(){return Sr(this).getAllowDropTop(this)}get allowDropBottom(){return Sr(this).getAllowDropBottom(this)}get allowDropHeader(){return Sr(this).getAllowDropHeader(this)}get allowDrop(){return Sr(this).getAllowDrop(this)}get showMaximizeButton(){return Sr(this).getShowMaximizeButton(this)}get showEjectButton(){return Sr(this).getShowEjectButton(this)}get showAddWindowButton(){return Sr(this).getShowAddWindowButton(this)}get minWidth(){return Sr(this).getMinWidth(this)}get minHeight(){return Sr(this).getMinHeight(this)}get maxWidth(){return Sr(this).getMaxWidth(this)}get maxHeight(){return Sr(this).getMaxHeight(this)}get width(){return Sr(this).getWidthInPx(this)}get height(){return Sr(this).getHeightInPx(this)}get isMaximized(){return Sr(this).getIsMaximized(this)}addWindow(e){return Sr(this).addWindow(this,e,"group")}async addGroup(){throw new Error("Adding groups as group child is not supported")}async addColumn(){throw new Error("Adding columns as group child is not supported")}async addRow(){throw new Error("Adding rows as group child is not supported")}removeChild(e){return Sr(this).removeChild(this,e)}maximize(){return Sr(this).maximize(this)}restore(){return Sr(this).restore(this)}close(){return Sr(this).close(this)}lock(e){let t;if("function"==typeof e){t=e({allowDrop:this.allowDrop,allowDropHeader:this.allowDropHeader,allowDropLeft:this.allowDropLeft,allowDropRight:this.allowDropRight,allowDropTop:this.allowDropTop,allowDropBottom:this.allowDropBottom,allowExtract:this.allowExtract,allowReorder:this.allowReorder,showAddWindowButton:this.showAddWindowButton,showEjectButton:this.showEjectButton,showMaximizeButton:this.showMaximizeButton})}else t=e;const r=void 0===t?void 0:Dt.runWithException(t);return Sr(this).lockContainer(this,r)}async setSize(e){const t=Wt.runWithException(e);if(!t.width&&!t.height)throw new Error("Expected either width or height to be passed.");return Sr(this).setSize(this,e.width,e.height)}async bundleToRow(){await Sr(this).bundleTo(this,"row"),await this.workspace.refreshReference()}async bundleToColumn(){await Sr(this).bundleTo(this,"column"),await this.workspace.refreshReference()}async onLockConfigurationChanged(e){O(e);const t={callback:async()=>{await this.workspace.refreshReference(),e({allowDrop:this.allowDrop,allowDropHeader:this.allowDropHeader,allowDropLeft:this.allowDropLeft,allowDropTop:this.allowDropTop,allowDropRight:this.allowDropRight,allowDropBottom:this.allowDropBottom,allowExtract:this.allowExtract,allowReorder:this.allowReorder,showAddWindowButton:this.showAddWindowButton,showEjectButton:this.showEjectButton,showMaximizeButton:this.showMaximizeButton})},action:"lock-configuration-changed",eventType:"container",scope:"container"};return await Sr(this).processLocalSubscription(this,t)}}const Dr=new WeakMap,vr=e=>Dr.get(e).manager.getWorkspaceData(e),Cr=e=>Dr.get(e).manager;class Er{constructor(e){Dr.set(this,{manager:e})}get id(){return vr(this).id}get frameId(){return vr(this).config.frameId}get positionIndex(){return vr(this).config.positionIndex}get title(){return vr(this).config.title}get layoutName(){return vr(this).config.layoutName}get isHibernated(){return vr(this).config.isHibernated}get isSelected(){return vr(this).config.isSelected}get children(){return vr(this).children}get frame(){return vr(this).frame}get allowSplitters(){return vr(this).config.allowSplitters}get allowSystemHibernation(){return vr(this).config.allowSystemHibernation}get allowDrop(){return vr(this).config.allowDrop}get allowDropLeft(){return vr(this).config.allowDropLeft}get allowDropTop(){return vr(this).config.allowDropTop}get allowDropRight(){return vr(this).config.allowDropRight}get allowDropBottom(){return vr(this).config.allowDropBottom}get allowExtract(){return vr(this).config.allowExtract}get allowWindowReorder(){return vr(this).config.allowWindowReorder}get showCloseButton(){return vr(this).config.showCloseButton}get showSaveButton(){return vr(this).config.showSaveButton}get allowWorkspaceTabReorder(){return vr(this).config.allowWorkspaceTabReorder}get allowWorkspaceTabExtract(){return vr(this).config.allowWorkspaceTabExtract}get minWidth(){return vr(this).config.minWidth}get minHeight(){return vr(this).config.minHeight}get maxWidth(){return vr(this).config.maxWidth}get maxHeight(){return vr(this).config.maxHeight}get width(){return vr(this).config.widthInPx}get height(){return vr(this).config.heightInPx}get showWindowCloseButtons(){return vr(this).config.showWindowCloseButtons}get showEjectButtons(){return vr(this).config.showEjectButtons}get showAddWindowButtons(){return vr(this).config.showAddWindowButtons}get isPinned(){return vr(this).config.isPinned}get windowDragMode(){return cr()?vr(this).config.windowDragMode:"keepInside"}get loadingStrategy(){return cr()||console.warn("The workspace.loadingStrategy property is not supported in IO Connect Browser"),vr(this).config.loadingStrategy}async setLoadingStrategy(e){if(!cr())throw new Error("Not supported in IO Connect Browser");const t=vr(this).controller;await t.setLoadingStrategy(this.id,e),await this.refreshReference()}async removeChild(e){O(e);const t=this.children.find(e);t&&(await t.close(),await this.refreshReference())}async remove(e){O(e);const t=vr(this).controller.iterateFindChild(this.children,e);await t.close(),await this.refreshReference()}async focus(){await vr(this).controller.focusItem(this.id),await this.refreshReference()}async close(){const e=vr(this).controller;await e.closeWorkspace(this.id,this.frameId)}snapshot(){return vr(this).controller.getSnapshot(this.id,"workspace")}async saveLayout(e,t){v.runWithException(e),t&&ft.runWithException(t),await vr(this).controller.saveLayout({name:e,workspaceId:this.id,saveContext:t?.saveContext,metadata:t?.metadata,allowMultiple:t?.allowMultiple,saveWindowContexts:t?.saveWindowContexts})}async setTitle(e){v.runWithException(e);const t=vr(this).controller;await t.setItemTitle(this.id,e),await this.refreshReference()}getContext(){return vr(this).controller.getWorkspaceContext(this.id)}setContext(e){return vr(this).controller.setWorkspaceContext(this.id,e)}updateContext(e){return vr(this).controller.updateWorkspaceContext(this.id,e)}onContextUpdated(e){return vr(this).controller.subscribeWorkspaceContextUpdated(this.id,e)}async refreshReference(){const e=await vr(this).controller.getSnapshot(this.id,"workspace"),t=vr(this).controller.flatChildren(vr(this).children),r=vr(this).controller.refreshChildren({existingChildren:t,workspace:this,parent:this,children:e.children}),o=this.frame;let n;if(o.id===e.config.frameId)Cr(this).remapFrame(o,e.frameSummary),n=o;else{const t={summary:e.frameSummary};n=vr(this).ioc.getModel("frame",t)}Cr(this).remapWorkspace(this,{config:e.config,children:r,frame:n})}async getIcon(){return vr(this).controller.getWorkspaceIcon(this.id)}async setIcon(e){return vr(this).controller.setWorkspaceIcon(this.id,e)}getBox(e){O(e);const t=vr(this).children;return vr(this).controller.iterateFindChild(t,t=>"window"!==t.type&&e(t))}getAllBoxes(e){O(e,!0);const t=vr(this).children,r=vr(this).controller.iterateFilterChildren(t,e=>"window"!==e.type);return e?r.filter(e):r}getRow(e){return O(e),this.getBox(t=>"row"===t.type&&e(t))}getAllRows(e){return O(e,!0),e?this.getAllBoxes(t=>"row"===t.type&&e(t)):this.getAllBoxes(e=>"row"===e.type)}getColumn(e){return O(e),this.getBox(t=>"column"===t.type&&e(t))}getAllColumns(e){return O(e,!0),e?this.getAllBoxes(t=>"column"===t.type&&e(t)):this.getAllBoxes(e=>"column"===e.type)}getGroup(e){return O(e),this.getBox(t=>"group"===t.type&&e(t))}getAllGroups(e){return O(e,!0),e?this.getAllBoxes(t=>"group"===t.type&&e(t)):this.getAllBoxes(e=>"group"===e.type)}getWindow(e){O(e);const t=vr(this).children;return vr(this).controller.iterateFindChild(t,t=>"window"===t.type&&e(t))}getAllWindows(e){O(e,!0);const t=vr(this).children,r=vr(this).controller.iterateFilterChildren(t,e=>"window"===e.type);return e?r.filter(e):r}addRow(e){return vr(this).base.addParent(this,"row","workspace",e)}addColumn(e){return vr(this).base.addParent(this,"column","workspace",e)}addGroup(e){return vr(this).base.addParent(this,"group","workspace",e)}addWindow(e){return vr(this).base.addWindow(this,e,"workspace")}async bundleToRow(){await vr(this).controller.bundleWorkspaceTo("row",this.id),await this.refreshReference()}async bundleToColumn(){await vr(this).controller.bundleWorkspaceTo("column",this.id),await this.refreshReference()}async hibernate(){await vr(this).controller.hibernateWorkspace(this.id),await this.refreshReference()}async resume(){await vr(this).controller.resumeWorkspace(this.id),await this.refreshReference()}async lock(e){let t;if("function"==typeof e){t=e({allowDrop:this.allowDrop,allowDropLeft:this.allowDropLeft,allowDropTop:this.allowDropTop,allowDropRight:this.allowDropRight,allowDropBottom:this.allowDropBottom,allowSystemHibernation:this.allowSystemHibernation,allowExtract:this.allowExtract,allowWindowReorder:this.allowWindowReorder,allowSplitters:this.allowSplitters,showCloseButton:this.showCloseButton,showSaveButton:this.showSaveButton,allowWorkspaceTabReorder:this.allowWorkspaceTabReorder,allowWorkspaceTabExtract:this.allowWorkspaceTabExtract,showAddWindowButtons:this.showAddWindowButtons,showEjectButtons:this.showEjectButtons,showWindowCloseButtons:this.showWindowCloseButtons})}else t=e;const r=void 0===t?void 0:yt.runWithException(t);await vr(this).controller.lockWorkspace(this.id,r),await this.refreshReference()}async pin(e){Ft.runWithException(e),await vr(this).controller.pinWorkspace(this.id,e?.icon),await this.refreshReference()}async unpin(){await vr(this).controller.unpinWorkspace(this.id),await this.refreshReference()}async showLoadingAnimation(){if(!cr())throw new Error("Not supported in IO Connect Browser");await vr(this).controller.showWorkspaceLoadingAnimation(this.id)}async hideLoadingAnimation(){if(!cr())throw new Error("Not supported in IO Connect Browser");await vr(this).controller.hideWorkspaceLoadingAnimation(this.id)}async setWindowDragMode(e){if(!cr())throw new Error("Not supported in IO Connect Browser");B.runWithException(e),await vr(this).controller.setWindowDragMode(this.id,e),await this.refreshReference()}async onClosed(e){O(e);const t=vr(this).id,r={action:"closed",eventType:"workspace",scope:"workspace",scopeId:t,callback:async t=>{e({frameId:t.frameSummary.id,workspaceId:t.workspaceSummary.id,frameBounds:t.frameBounds})}};return await vr(this).controller.processLocalSubscription(r,t)}async onHibernated(e){O(e);const t=vr(this).id,r={action:"hibernated",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await vr(this).controller.processLocalSubscription(r,t)}async onResumed(e){O(e);const t=vr(this).id,r={action:"resumed",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await vr(this).controller.processLocalSubscription(r,t)}async onLockConfigurationChanged(e){O(e);const t=vr(this).id,r={action:"lock-configuration-changed",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e({allowDrop:this.allowDrop,allowDropLeft:this.allowDropLeft,allowDropTop:this.allowDropTop,allowDropRight:this.allowDropRight,allowDropBottom:this.allowDropBottom,allowSystemHibernation:this.allowSystemHibernation,allowExtract:this.allowExtract,allowSplitters:this.allowSplitters,allowWindowReorder:this.allowWindowReorder,allowWorkspaceTabExtract:this.allowWorkspaceTabExtract,allowWorkspaceTabReorder:this.allowWorkspaceTabReorder,showAddWindowButtons:this.showAddWindowButtons,showCloseButton:this.showCloseButton,showEjectButtons:this.showEjectButtons,showSaveButton:this.showSaveButton,showWindowCloseButtons:this.showWindowCloseButtons})}};return await vr(this).controller.processLocalSubscription(r,t)}async onTabReordered(e){O(e);const t=vr(this).id,r={action:"tab-reordered",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await vr(this).controller.processLocalSubscription(r,t)}async onWindowAdded(e){O(e);const t=vr(this).id,r={action:"added",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await vr(this).controller.processLocalSubscription(r,t)}async onWindowRemoved(e){O(e);const t=vr(this).id,r={action:"removed",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const{windowId:r,workspaceId:o,frameId:n}=t.windowSummary.config;e({windowId:r,workspaceId:o,frameId:n})}};return await vr(this).controller.processLocalSubscription(r,t)}async onWindowLoaded(e){O(e);const t=vr(this).id,r={action:"loaded",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getWindow(e=>e.id&&e.id===t.windowSummary.config.windowId);e(r)}};return await vr(this).controller.processLocalSubscription(r,t)}async onWindowMaximized(e){O(e);const t=vr(this).id,r={action:"maximized",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await vr(this).controller.processLocalSubscription(r,t)}async onWindowRestored(e){O(e);const t=vr(this).id,r={action:"restored",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await vr(this).controller.processLocalSubscription(r,t)}async onWindowSelected(e){O(e);const t=vr(this).id,r={action:"selected",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await vr(this).controller.processLocalSubscription(r,t)}async onWindowTabReordered(e){O(e);const t=vr(this).id,r={action:"tab-reordered",eventType:"window",scope:"workspace",scopeId:t,callback:async t=>{await this.refreshReference();const r=this.getBox(e=>e.id===t.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===t.windowSummary.itemId);e(r)}};return await vr(this).controller.processLocalSubscription(r,t)}}const Br=new WeakMap,Tr=e=>Br.get(e).manager.getWindowData(e);class Mr{constructor(e){Br.set(this,{manager:e})}get id(){return Tr(this).config.windowId}get elementId(){return Tr(this).id}get type(){return"window"}get frameId(){return Tr(this).frame.id}get workspaceId(){return Tr(this).workspace.id}get positionIndex(){return Tr(this).config.positionIndex}get isMaximized(){return Tr(this).config.isMaximized}get isLoaded(){return Tr(this).controller.checkIsWindowLoaded(this.id)}get isSelected(){return Tr(this).config.isSelected}get focused(){return this.getGdWindow().isFocused}get title(){return Tr(this).config.title}get allowExtract(){return Tr(this).config.allowExtract}get allowReorder(){return Tr(this).config.allowReorder}get showCloseButton(){return Tr(this).config.showCloseButton}get width(){return Tr(this).config.widthInPx}get height(){return Tr(this).config.heightInPx}get minWidth(){return Tr(this).config.minWidth}get minHeight(){return Tr(this).config.minHeight}get maxWidth(){return Tr(this).config.maxWidth}get maxHeight(){return Tr(this).config.maxHeight}get workspace(){return Tr(this).workspace}get frame(){return Tr(this).frame}get parent(){return Tr(this).parent}get appName(){return Tr(this).config.appName}async forceLoad(){if(this.isLoaded)return;const e=Tr(this).controller,t=Tr(this).id,r=await e.forceLoadWindow(t);Tr(this).config.windowId=r,await this.workspace.refreshReference()}async focus(){const e=Tr(this).id,t=Tr(this).controller;await t.focusItem(e),await this.workspace.refreshReference()}async close(){const e=Tr(this).id,t=Tr(this).controller;await t.closeItem(e),await Tr(this).parent.removeChild(t=>t.id===e),await this.workspace.refreshReference()}async setTitle(e){v.runWithException(e);const t=Tr(this).id,r=Tr(this).controller;await r.setItemTitle(t,e),await this.workspace.refreshReference()}async maximize(){const e=Tr(this).id,t=Tr(this).controller;await t.maximizeItem(e),await this.workspace.refreshReference()}async restore(){const e=Tr(this).id,t=Tr(this).controller;await t.restoreItem(e),await this.workspace.refreshReference()}async eject(){if(!this.isLoaded)throw new Error("Cannot eject this window, because it is not loaded yet");const e=Tr(this).id,t=Tr(this).config.windowId,r=await Tr(this).controller.ejectWindow(e,t);return Tr(this).config.windowId=r,await this.workspace.refreshReference(),this.getGdWindow()}getGdWindow(){if(!this.isLoaded)throw new Error("Cannot fetch this GD window, because the window is not yet loaded");const e=Tr(this).config.windowId;return Tr(this).controller.getGDWindow(e)}async moveTo(e){if(!(e instanceof yr||e instanceof Wr||e instanceof xr))throw new Error("Cannot add to the provided parent, because the provided parent is not an instance of Row, Column or Group");const t=Tr(this).id,r=Tr(this).controller;if(!await r.getParent(t=>t.id===e.id))throw new Error("Cannot move the window to the selected parent, because this parent does not exist.");await r.moveWindowTo(t,e.id),await this.workspace.refreshReference()}async lock(e){let t;if("function"==typeof e){t=e({allowExtract:this.allowExtract,allowReorder:this.allowReorder,showCloseButton:this.showCloseButton})}else t=e;const r=void 0===t?void 0:kt.runWithException(t),o=Tr(this).id;await Tr(this).controller.lockWindow(o,r),await this.workspace.refreshReference()}async setSize(e){const t=Wt.runWithException(e);if(!t.width&&!t.height)throw new Error("Expected either width or height to be passed.");const r=Tr(this).id,o=Tr(this).controller;await o.resizeItem(r,{height:t.height,width:t.width,relative:!1}),await this.workspace.refreshReference()}async onRemoved(e){O(e);const t=Tr(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e()},action:"removed",eventType:"window",scope:"window"};return await Tr(this).controller.processLocalSubscription(r,t)}async onLockConfigurationChanged(e){O(e);const t=Tr(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e({allowExtract:this.allowExtract,allowReorder:this.allowReorder,showCloseButton:this.showCloseButton})},action:"lock-configuration-changed",eventType:"window",scope:"window"};return await Tr(this).controller.processLocalSubscription(r,t)}async onTabReordered(e){O(e);const t=Tr(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e()},action:"tab-reordered",eventType:"window",scope:"window"};return await Tr(this).controller.processLocalSubscription(r,t)}}const Fr=new WeakMap,Rr=e=>Fr.get(e).manager.getFrameData(e);class Lr{constructor(e){Fr.set(this,{manager:e})}async registerShortcut(e,t){v.runWithException(e),O(t);const r=Rr(this).summary.id;return await Rr(this).controller.registerShortcut(e,r,t)}get id(){return Rr(this).summary.id}get isInitialized(){return Rr(this).summary.isInitialized}getBounds(){const e=Rr(this).summary.id;return Rr(this).controller.getFrameBounds(e)}async resize(e){const t=Ue.runWithException(e),r=Rr(this).summary.id;return Rr(this).controller.resizeItem(r,t)}async move(e){const t=Ke.runWithException(e),r=Rr(this).summary.id;return Rr(this).controller.moveFrame(r,t)}focus(){const e=Rr(this).summary.id;return Rr(this).controller.focusItem(e)}async state(){if(!cr())throw new Error("State operations are not supported in IO Connect Browser");const e=Rr(this).summary.id;return Rr(this).controller.getFrameState(e)}setIcon(e){if(!cr())throw new Error("frame.setIcon() is not supported in IO Connect Browser");F.runWithException(e);const t=this.id;return Rr(this).controller.setTaskbarIcon(e,t)}getIcon(){if(!cr())throw new Error("frame.getIcon() is not supported in IO Connect Browser");const e=this.id;return Rr(this).controller.getTaskbarIcon(e)}isVisible(){if(!cr())throw new Error("frame.isVisible() is not supported in IO Connect Browser");const e=this.id;return Rr(this).controller.getFrameVisibility(e)}async minimize(){if(!cr())throw new Error("State operations are not supported in IO Connect Browser");const e=Rr(this).summary.id;return Rr(this).controller.changeFrameState(e,"minimized")}async maximize(){if(!cr())throw new Error("State operations are not supported in IO Connect Browser");const e=Rr(this).summary.id;return Rr(this).controller.changeFrameState(e,"maximized")}async restore(){if(!cr())throw new Error("State operations are not supported in IO Connect Browser");const e=Rr(this).summary.id;return Rr(this).controller.changeFrameState(e,"normal")}close(e){const t=I(Qe).runWithException(e),r=Rr(this).summary.id;return Rr(this).controller.closeFrame(r,t)}snapshot(){const e=Rr(this).summary.id;return Rr(this).controller.getSnapshot(e,"frame")}async workspaces(){return Rr(this).controller.getWorkspacesByFrameId(this.id)}async getConstraints(){const e=Rr(this).controller,t=Rr(this).summary.id;return e.getFrameConstraints(t)}async restoreWorkspace(e,t){v.runWithException(e);const r=ee.runWithException(t);return Rr(this).controller.restoreWorkspace(e,r)}createWorkspace(e,t){const r=re.runWithException(e),o=H.runWithException(t);return Rr(this).controller.createWorkspace(r,o)}async init(e){if(ae.runWithException(e),Rr(this).summary.isInitialized)throw new Error("The frame has already been initialized");return Rr(this).controller.initFrame(this.id,e)}async showPopup(e){if(!cr())throw new Error("Popup operations are not supported in IO Connect Browser");const t=Jt.runWithException(e),r=Rr(this).controller;return await r.showPopup(t,this.id),r.getGDWindow(t.windowId)}async show(e){if(!cr())throw new Error("The show operation is not supported in IO Connect Browser");const t=Rt.runWithException(e);return Rr(this).controller.showFrame(this.id,t)}async hide(){if(!cr())throw new Error("The hide operation is not supported in IO Connect Browser");return Rr(this).controller.hideFrame(this.id)}async showDialog(e){if(!cr())throw new Error("The showModal operation is not supported in IO Connect Browser");return qt.runWithException(e),Rr(this).controller.showFrameDialog(this.id,e)}async setOnTop(e){if(!cr())throw new Error("The setOnTop operation is not supported in IO Connect Browser");return Xt.runWithException(e),Rr(this).controller.setFrameOnTop(this.id,e)}async onClosing(e){if(!cr())throw new Error("Frame closing operations are not supported in io.Connect Browser");O(e);return await Rr(this).controller.registerFrameOnClosing(this.id,async()=>{let t=!1;return await e({prevent:()=>t=!0}),{prevent:t}})}async onClosed(e){O(e);const t=Rr(this).summary.id,r={callback:t=>{e({frameId:t.frameSummary.id,frameBounds:t.frameBounds})},action:"closed",eventType:"frame",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onMaximized(e){O(e);const t=Rr(this).summary.id,r={callback:()=>{e()},action:"maximized",eventType:"frame",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onMinimized(e){O(e);const t=Rr(this).summary.id,r={callback:()=>{e()},action:"minimized",eventType:"frame",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onNormal(e){O(e);const t=Rr(this).summary.id,r={callback:()=>{e()},action:"normal",eventType:"frame",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onWorkspaceOpened(e){O(e);const t=Rr(this).summary.id,r={callback:async t=>{const r=await Rr(this).controller.transformStreamPayloadToWorkspace(t);e(r)},action:"opened",eventType:"workspace",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onWorkspaceSelected(e){O(e);const t=Rr(this).summary.id,r={callback:async t=>{const r=await Rr(this).controller.getWorkspaceById(t.workspaceSummary.id);e(r)},action:"selected",eventType:"workspace",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onWorkspaceClosed(e){O(e);const t=Rr(this).summary.id,r={callback:t=>{e({frameId:t.frameSummary.id,workspaceId:t.workspaceSummary.id,frameBounds:t.frameBounds})},action:"closed",eventType:"workspace",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onWindowAdded(e){O(e);const t=Rr(this).summary.id,r={callback:async t=>{const r=(await Rr(this).controller.getParent(e=>e.id===t.windowSummary.parentId)).children.find(e=>"window"===e.type&&e.positionIndex===t.windowSummary.config.positionIndex);e(r)},action:"added",eventType:"window",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onWindowRemoved(e){O(e);const t=Rr(this).summary.id,r={callback:t=>{const{windowId:r,workspaceId:o,frameId:n}=t.windowSummary.config;e({windowId:r,workspaceId:o,frameId:n})},action:"removed",eventType:"window",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onWindowLoaded(e){O(e);const t=Rr(this).summary.id,r={callback:async t=>{const r=(await Rr(this).controller.getParent(e=>e.id===t.windowSummary.parentId)).children.find(e=>"window"===e.type&&e.positionIndex===t.windowSummary.config.positionIndex);e(r)},action:"loaded",eventType:"window",scope:"frame"};return await Rr(this).controller.processLocalSubscription(r,t)}async onInitializationRequested(e){return O(e),this.isInitialized||e(Rr(this).summary.initializationContext),()=>{}}async onFocusChanged(e){O(e);const t=Rr(this),{id:r}=t.summary,o={callback:t=>{e({isFocused:t.frameSummary.isFocused})},action:"focus",eventType:"frame",scope:"frame"};return await t.controller.processLocalSubscription(o,r)}}class Ar{parentsData=new WeakMap;workspacesData=new WeakMap;windowsData=new WeakMap;framesData=new WeakMap;deleteData(e){e instanceof Mr&&this.windowsData.delete(e),e instanceof Er&&this.workspacesData.delete(e),(e instanceof yr||e instanceof Wr||e instanceof xr)&&this.parentsData.delete(e),e instanceof Lr&&this.framesData.delete(e)}setWindowData(e,t){this.windowsData.set(e,t)}setWorkspaceData(e,t){this.workspacesData.set(e,t)}setParentData(e,t){this.parentsData.set(e,t)}setFrameData(e,t){this.framesData.set(e,t)}getWindowData(e){return this.windowsData.get(e)}getWorkspaceData(e){return this.workspacesData.get(e)}getParentData(e){return this.parentsData.get(e)}getFrameData(e){return this.framesData.get(e)}remapChild(e,t){if(e instanceof Mr){const r=this.windowsData.get(e);r.parent=t.parent||r.parent,r.config=t.config||r.config}if(e instanceof yr||e instanceof Wr||e instanceof xr){const r=this.parentsData.get(e);r.parent=t.parent||r.parent,r.config=t.config||r.config,r.children=t.children||r.children}}remapFrame(e,t){this.framesData.get(e).summary=t}remapWorkspace(e,t){const r=this.workspacesData.get(e);r.frame=t.frame||r.frame,r.config=t.config||r.config,r.children=t.children||r.children}}const Pr=new WeakMap,zr=(e,t)=>{const r=Pr.get(e).manager;return t instanceof Er?r.getWorkspaceData(t):Pr.get(e).manager.getParentData(t)};class Or{frameId;workspaceId;positionIndex;constructor(e){Pr.set(this,{manager:e})}getId(e){return zr(this,e).id}getPositionIndex(e){return zr(this,e).config.positionIndex}getWorkspaceId(e){const t=zr(this,e);return t.config.workspaceId||t.workspace.id}getFrameId(e){return zr(this,e).frame.id}getAllChildren(e,t){O(t,!0);const r=zr(this,e).children;return void 0===t?r:r.filter(t)}getMyParent(e){return e instanceof Er?e:zr(this,e).parent}getMyFrame(e){return zr(this,e).frame}getMyWorkspace(e){return e instanceof Er?e:zr(this,e).workspace}async addWindow(e,t,r){if(!t.appName&&!t.windowId)throw new Error("The window definition should contain either an appName or a windowId");const o=V.runWithException(t),n=zr(this,e).controller,i=await n.add("window",zr(this,e).id,r,o);if(e instanceof Er)return await e.refreshReference(),e.getWindow(e=>e.elementId===i.itemId);const a=this.getMyWorkspace(e);return await a.refreshReference(),a.getWindow(e=>e.elementId===i.itemId)}async addParent(e,t,r,o){const n=this.transformDefinition(t,o),i=zr(this,e).controller,a=(await i.add("container",zr(this,e).id,r,n)).itemId;if(e instanceof Er)return await e.refreshReference(),e.getBox(e=>e.id===a);const s=this.getMyWorkspace(e);return await s.refreshReference(),s.getBox(e=>e.id===a)}async removeChild(e,t){O(t);const r=this.getAllChildren(e).find(t);r&&(await r.close(),e instanceof Er?await e.refreshReference():await this.getMyWorkspace(e).refreshReference())}async maximize(e){const{controller:t,id:r}=zr(this,e);await t.maximizeItem(r),await this.getMyWorkspace(e.parent).refreshReference()}async restore(e){const{controller:t,id:r}=zr(this,e);await t.restoreItem(r),await this.getMyWorkspace(e.parent).refreshReference()}async close(e){const t=zr(this,e),r=zr(this,e).controller;await r.closeItem(t.id),await this.getMyWorkspace(t.parent).refreshReference()}async lockContainer(e,t){const r=zr(this,e),o=zr(this,e).controller;await o.lockContainer(r.id,e.type,t),await this.getMyWorkspace(r.parent).refreshReference()}getAllowDrop(e){return zr(this,e).config.allowDrop}getAllowDropLeft(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Property allowDropLeft is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropLeft}getAllowDropRight(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Property allowDropRight is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropRight}getAllowDropTop(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Property allowDropTop is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropTop}getAllowDropBottom(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Property allowDropBottom is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropBottom}getAllowDropHeader(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Property allowDropHeader is available only for groups and not on ${e.type} ${e.id}`);return t.config.allowDropHeader}getAllowSplitters(e){const t=zr(this,e);if("group"===t.type)throw new Error(`Cannot get allow splitters from private data ${t.type}`);return t.config.allowSplitters}getAllowExtract(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Cannot get allow extract from private data ${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.allowExtract}getAllowReorder(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Cannot get allow extract from private data ${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.allowReorder}getShowMaximizeButton(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Cannot get show maximize button from private data${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.showMaximizeButton}getShowEjectButton(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Cannot get show eject button from private data${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.showEjectButton}getShowAddWindowButton(e){const t=zr(this,e);if("group"!==t.type)throw new Error(`Cannot get add window button from private data${t.type} with config ${"workspace"!==t.type?t.config.type:""}`);return t.config.showAddWindowButton}getMinWidth(e){return zr(this,e).config.minWidth}getMaxWidth(e){return zr(this,e).config.maxWidth}getMinHeight(e){return zr(this,e).config.minHeight}getMaxHeight(e){return zr(this,e).config.maxHeight}getWidthInPx(e){return zr(this,e).config.widthInPx}getHeightInPx(e){return zr(this,e).config.heightInPx}getIsPinned(e){return zr(this,e).config.isPinned}getIsMaximized(e){return zr(this,e).config.isMaximized}getMaximizationBoundary(e){return zr(this,e).config.maximizationBoundary}async setHeight(e,t){const r=zr(this,e),{controller:o,id:n}=r;await o.resizeItem(n,{height:t}),await this.getMyWorkspace(r.parent).refreshReference()}async setWidth(e,t){const r=zr(this,e),{controller:o,id:n}=r;await o.resizeItem(n,{width:t}),await this.getMyWorkspace(r.parent).refreshReference()}async setSize(e,t,r){const o=zr(this,e),{controller:n,id:i}=o;await n.resizeItem(i,{width:t,height:r}),await this.getMyWorkspace(o.parent).refreshReference()}async setMaximizationBoundary(e,t){const r=zr(this,e),{controller:o,id:n}=r;await o.setMaximizationBoundary(n,t),await this.getMyWorkspace(r.parent).refreshReference()}async bundleTo(e,t){const r=zr(this,e),{controller:o,id:n}=r;await o.bundleItemTo(t,n)}async processLocalSubscription(e,t){return zr(this,e).controller.processLocalSubscription(t,this.getId(e))}transformDefinition(e,t){let r;return void 0===t?r={type:e,children:[]}:t instanceof ur?r=t.serialize():(void 0===t.type&&(t.type=e),r=X.runWithException(t),r.children=r.children||[]),r}}class Hr{ioc;windows;contexts;layouts;constructor(e,t,r,o){this.ioc=e,this.windows=t,this.contexts=r,this.layouts=o}get bridge(){return this.ioc.bridge}get privateDataManager(){return this.ioc.privateDataManager}checkIsWindowLoaded(e){return!!e&&this.windows.list().some(t=>t.id===e)}async createWorkspace(e){const t=await this.bridge.send(ir.createWorkspace.name,e),r={summary:t.frameSummary},o={frame:this.ioc.getModel("frame",r),snapshot:t};return this.ioc.getModel("workspace",o)}async createEmptyFrame(e){const t={summary:await this.bridge.send(ir.createFrame.name,e)};return this.ioc.getModel("frame",t)}async initFrame(e,t){await this.bridge.send(ir.initFrame.name,{frameId:e,...t})}async restoreWorkspace(e,t){const r=await this.bridge.send(ir.openWorkspace.name,{name:e,restoreOptions:t}),o={summary:await this.bridge.send(ir.getFrameSummary.name,{itemId:r.config.frameId})},n={frame:this.ioc.getModel("frame",o),snapshot:r};return this.ioc.getModel("workspace",n)}async add(e,t,r,o){let n;const i={definition:o,parentId:t,parentType:r};if("window"===e)n=ir.addWindow.name;else{if("container"!==e)throw new Error(`Unrecognized add type: ${e}`);n=ir.addContainer.name}return await this.bridge.send(n,i)}async getFrame(e){const t={summary:await this.bridge.send(ir.getFrameSummary.name,{itemId:e})};return this.ioc.getModel("frame",t)}getFrames(e,t){return e.reduce((e,r)=>{const o={summary:r},n=this.ioc.getModel("frame",o);return t&&!t(n)||e.push(n),e},[])}getAllWorkspaceSummaries(...e){return e.reduce((e,t)=>(e.push(...t.summaries),e),[]).map(e=>Object.assign({},{id:e.id,width:e.config.widthInPx,height:e.config.heightInPx},e.config))}handleOnSaved(e){const t=t=>{"Workspace"===t.type&&e(t)},r=this.layouts.onAdded(t),o=this.layouts.onChanged(t);return()=>{r(),o()}}handleOnRemoved(e){return this.layouts.onRemoved(t=>{"Workspace"===t.type&&e(t)})}async importLayouts(e,t){await this.layouts.import(e,t)}async transformStreamPayloadToWorkspace(e){const t={summary:e.frameSummary},r={frame:this.ioc.getModel("frame",t),snapshot:e.workspaceSnapshot||await this.bridge.send(ir.getWorkspaceSnapshot.name,{itemId:e.workspaceSummary.id})};return this.ioc.getModel("workspace",r)}async fetchWorkspace(e){const t=await this.bridge.send(ir.getWorkspaceSnapshot.name,{itemId:e}),r={summary:t.frameSummary},o={frame:this.ioc.getModel("frame",r),snapshot:t};return this.ioc.getModel("workspace",o)}async bundleWorkspaceTo(e,t){await this.bridge.send(ir.bundleWorkspace.name,{type:e,workspaceId:t})}async bundleItemTo(e,t){if(!await this.isOperationSupported(ir.bundleItem.name))throw new Error(`Operation ${ir.bundleItem.name} is not supported. Ensure that you are running the latest version of all packages`);await this.bridge.send(ir.bundleItem.name,{type:e,itemId:t})}async getTaskbarIcon(e){return await this.bridge.send(ir.getTaskbarIcon.name,{frameId:e})}async setTaskbarIcon(e,t){await this.bridge.send(ir.setTaskbarIcon.name,{icon:e,frameId:t})}getWorkspaceContext(e){const t=`___workspace___${e}`;return this.contexts.get(t)}setWorkspaceContext(e,t){const r=`___workspace___${e}`;return this.contexts.set(r,t)}updateWorkspaceContext(e,t){const r=`___workspace___${e}`;return this.contexts.update(r,t)}subscribeWorkspaceContextUpdated(e,t){const r=`___workspace___${e}`;return this.contexts.subscribe(r,t)}async restoreItem(e){await this.bridge.send(ir.restoreItem.name,{itemId:e})}async maximizeItem(e){await this.bridge.send(ir.maximizeItem.name,{itemId:e})}async focusItem(e){await this.bridge.send(ir.focusItem.name,{itemId:e})}async closeWorkspace(e){await this.bridge.send(ir.closeWorkspace.name,{itemId:e})}async closeItem(e){await this.bridge.send(ir.closeItem.name,{itemId:e})}async closeFrame(e,t){await this.bridge.send(ir.closeItem.name,{itemId:e,closeOptions:t})}async resizeItem(e,t){await this.bridge.send(ir.resizeItem.name,Object.assign({},{itemId:e},t))}async setMaximizationBoundary(e,t){await this.bridge.send(ir.setMaximizationBoundary.name,Object.assign({},{itemId:e},t))}async showWorkspaceLoadingAnimation(e){await this.bridge.send(ir.showLoadingAnimation.name,{itemId:e,type:"workspace"})}async hideWorkspaceLoadingAnimation(e){await this.bridge.send(ir.hideLoadingAnimation.name,{itemId:e,type:"workspace"})}async setWindowDragMode(e,t){await this.bridge.send(ir.setWindowDragMode.name,{itemId:e,dragMode:t})}async moveFrame(e,t){await this.bridge.send(ir.moveFrame.name,Object.assign({},{itemId:e},t))}getGDWindow(e){return this.windows.list().find(t=>t.id===e)}async forceLoadWindow(e){return(await this.bridge.send(ir.forceLoadWindow.name,{itemId:e})).windowId}async ejectWindow(e,t){return await this.bridge.send(ir.ejectWindow.name,{itemId:e,windowId:t})}async moveWindowTo(e,t){await this.bridge.send(ir.moveWindowTo.name,{itemId:e,containerId:t})}async getSnapshot(e,t){let r;return"workspace"===t?r=await this.bridge.send(ir.getWorkspaceSnapshot.name,{itemId:e}):"frame"===t&&(r=await this.bridge.send(ir.getFrameSnapshot.name,{itemId:e})),r}async setItemTitle(e,t){await this.bridge.send(ir.setItemTitle.name,{itemId:e,title:t})}refreshChildren(e){const{parent:t,children:r,existingChildren:o,workspace:n}=e;if(t instanceof Mr||"window"===t.type)return;const i=r.map(e=>{let r=o.find(t=>"window"===t.type?t.elementId===e.id:t.id===e.id);if(r)this.privateDataManager.remapChild(r,{parent:t,children:[],config:e.config});else{let o;o="window"===e.type?{id:e.id,parent:t,frame:n.frame,workspace:n,config:e.config}:{id:e.id,parent:t,frame:n.frame,workspace:n,config:e.config,children:[]},r=this.ioc.getModel(e.type,o)}return"window"!==e.type&&this.refreshChildren({workspace:n,existingChildren:o,children:e.children,parent:r}),r});return t instanceof Er||this.privateDataManager.remapChild(t,{children:i}),i}iterateFindChild(e,t){let r=e.find(e=>t(e));return r||(e.some(e=>!(e instanceof Mr)&&(r=this.iterateFindChild(e.children,t),!!r||void 0)),r)}iterateFilterChildren(e,t){const r=e.filter(e=>t(e)),o=e.reduce((e,r)=>(r instanceof Mr||e.push(...this.iterateFilterChildren(r.children,t)),e),[]);return r.push(...o),r}notifyWindowAdded(e){return new Promise(t=>{if(this.windows.list().some(t=>t.id===e))return t();const r=this.windows.onWindowAdded(o=>{o.id===e&&(r&&r(),t())})})}async hibernateWorkspace(e){await this.bridge.send(ir.hibernateWorkspace.name,{workspaceId:e})}async resumeWorkspace(e){await this.bridge.send(ir.resumeWorkspace.name,{workspaceId:e})}async lockWorkspace(e,t){await this.bridge.send(ir.lockWorkspace.name,{workspaceId:e,config:t})}async lockWindow(e,t){await this.bridge.send(ir.lockWindow.name,{windowPlacementId:e,config:t})}async lockContainer(e,t,r){await this.bridge.send(ir.lockContainer.name,{itemId:e,type:t,config:r})}async pinWorkspace(e,t){await this.bridge.send(ir.pinWorkspace.name,{workspaceId:e,icon:t})}async unpinWorkspace(e){await this.bridge.send(ir.unpinWorkspace.name,{workspaceId:e})}async getWorkspaceIcon(e){return(await this.bridge.send(ir.getWorkspaceIcon.name,{workspaceId:e})).icon}setWorkspaceIcon(e,t){return this.bridge.send(ir.setWorkspaceIcon.name,{workspaceId:e,icon:t})}async getPlatformFrameId(){try{return await this.bridge.send(ir.getPlatformFrameId.name,{})}catch(e){return{}}}async setLoadingStrategy(e,t){return await this.isOperationSupported(ir.setLoadingStrategy.name),this.bridge.send(ir.setLoadingStrategy.name,{itemId:e,strategy:t})}async showFrame(e,t){const r={frameId:e,isVisible:!0,...t};return this.bridge.send(ir.changeFrameVisibility.name,r)}async hideFrame(e){return this.bridge.send(ir.changeFrameVisibility.name,{frameId:e,isVisible:!1})}async getFrameVisibility(e){return(await this.bridge.send(ir.getFrameVisibility.name,{itemId:e})).isVisible}async showFrameDialog(e,t){return await this.bridge.send(ir.showFrameDialog.name,{frameId:e,options:t},{timeout:864e5})}async setFrameOnTop(e,t){return this.bridge.send(ir.setFrameOnTop.name,{frameId:e,onTop:t.onTop})}async isOperationSupported(e){return cr()?{isSupported:!0}:await this.bridge.send(ir.operationCheck.name,{operation:e})}async showPopup(e,t){return this.bridge.send(ir.showPopup.name,{...e,frameId:t})}}class $r{bridge;base;shortcutsController;closingController;constructor(e,t,r,o){this.bridge=e,this.base=t,this.shortcutsController=r,this.closingController=o}setTaskbarIcon(e,t){return this.base.setTaskbarIcon(e,t)}getTaskbarIcon(e){return this.base.getTaskbarIcon(e)}checkIsWindowLoaded(e){return this.base.checkIsWindowLoaded(e)}async checkIsInSwimlane(e){return(await this.bridge.send(ir.isWindowInWorkspace.name,{itemId:e})).inWorkspace}async createWorkspace(e,t){const r=Object.assign({},e,{saveConfig:t});return await this.base.createWorkspace(r)}async createEmptyFrame(e){return await this.base.createEmptyFrame(e)}async initFrame(e,t){return this.base.initFrame(e,t)}async restoreWorkspace(e,t){if(!(await this.getLayoutSummaries()).some(t=>t.name===e))throw new Error(`This layout: ${e} cannot be restored, because it doesn't exist.`);if(t?.frameId){if(!(await this.bridge.send(ir.getAllFramesSummaries.name)).summaries.some(e=>e.id===t.frameId))throw new Error(`Cannot reuse the frame with id: ${t.frameId}, because there is no frame with that ID found`)}return await this.base.restoreWorkspace(e,t)}async add(e,t,r,o){return await this.base.add(e,t,r,o)}processLocalSubscription(e,t){return cr()?this.handleEnterpriseLocalSubscription(e,t):this.handleCoreLocalSubscription(e,t)}processGlobalSubscription(e,t,r){return cr()?this.handleEnterpriseGlobalSubscription(e,t,r):this.handleCoreGlobalSubscription(e,t,r)}async getFrame(e){if(e.windowId)return await this.base.getFrame(e.windowId);if(e.predicate)return(await this.getFrames(e.predicate))[0];throw new Error(`The provided selector is not valid: ${JSON.stringify(e)}`)}async getFrames(e){const t=await this.bridge.send(ir.getAllFramesSummaries.name);return this.base.getFrames(t.summaries,e)}getWorkspaceById(e){return this.base.fetchWorkspace(e)}async getWorkspaceByWindowId(e){return cr()?this.base.fetchWorkspace(e):(await this.getWorkspaces(t=>!!t.getWindow(t=>t.id===e)))[0]}transformStreamPayloadToWorkspace(e){return this.base.transformStreamPayloadToWorkspace(e)}async getWorkspace(e){let t;return await this.iterateWorkspaces((r,o)=>{e(r)&&(t=r,o())}),t}async getWorkspaces(e){const t=[];return await this.iterateWorkspaces(r=>{e&&!e(r)||t.push(r)}),t}async getWorkspacesByFrameId(e){const t=(await this.getAllWorkspaceSummaries()).filter(t=>t.frameId===e);return await Promise.all(t.map(e=>this.base.fetchWorkspace(e.id)))}async isLastWorkspaceInFrame(e,t){const r=(await this.getAllWorkspaceSummaries()).filter(e=>e.frameId===t);return 1===r.length&&r[0].id===e}async getAllWorkspaceSummaries(){const e=await this.bridge.send(ir.getAllWorkspacesSummaries.name,{});return this.base.getAllWorkspaceSummaries(e)}async getWindow(e){let t;return await this.iterateWorkspaces((r,o)=>{const n=r.getWindow(e);n&&(t=n,o())}),t}async getParent(e){let t;return await this.iterateWorkspaces((r,o)=>{const n=r.getBox(e);n&&(t=n,o())}),t}async getLayoutSummaries(){return(await this.bridge.send(ir.getAllLayoutsSummaries.name)).summaries}async deleteLayout(e){await this.bridge.send(ir.deleteLayout.name,{name:e})}async exportLayout(e){return(await this.bridge.send(ir.exportAllLayouts.name)).layouts.reduce((t,r)=>(e&&!e(r)||t.push(r),t),[])}async saveLayout(e){return await this.bridge.send(ir.saveLayout.name,e)}async importLayouts(e,t){if(cr())try{await this.bridge.send(ir.importLayouts.name,{layouts:e,mode:t})}catch(r){await Promise.all(e.map(e=>this.bridge.send(ir.importLayout.name,{layout:e,mode:t})))}else await this.base.importLayouts(e,t)}handleOnSaved(e){return this.base.handleOnSaved(e)}handleOnRemoved(e){return this.base.handleOnRemoved(e)}async bundleWorkspaceTo(e,t){return await this.base.bundleWorkspaceTo(e,t)}async bundleItemTo(e,t){return await this.base.bundleItemTo(e,t)}getWorkspaceContext(e){return this.base.getWorkspaceContext(e)}setWorkspaceContext(e,t){return this.base.setWorkspaceContext(e,t)}updateWorkspaceContext(e,t){return this.base.updateWorkspaceContext(e,t)}subscribeWorkspaceContextUpdated(e,t){return this.base.subscribeWorkspaceContextUpdated(e,t)}async restoreItem(e){return await this.base.restoreItem(e)}async maximizeItem(e){return await this.base.maximizeItem(e)}async focusItem(e){return await this.base.focusItem(e)}async changeFrameState(e,t){await this.bridge.send(ir.changeFrameState.name,{frameId:e,requestedState:t})}async getFrameBounds(e){return(await this.bridge.send(ir.getFrameBounds.name,{itemId:e})).bounds}async getFrameState(e){return(await this.bridge.send(ir.getFrameState.name,{itemId:e})).state}async closeWorkspace(e,t){if(cr())return await this.closeItem(e);let r=!1;try{const{isSupported:e}=await this.base.isOperationSupported(ir.closeWorkspace.name);r=e}catch(e){r=!1}return r?await this.base.closeWorkspace(e):await this.legacyCloseWorkspace(e,t)}async closeItem(e){return await this.base.closeItem(e)}async closeFrame(e,t){return await this.base.closeFrame(e,t)}async resizeItem(e,t){return await this.base.resizeItem(e,t)}async setMaximizationBoundary(e,t){return await this.base.setMaximizationBoundary(e,t)}async showWorkspaceLoadingAnimation(e){return await this.base.showWorkspaceLoadingAnimation(e)}async hideWorkspaceLoadingAnimation(e){return await this.base.hideWorkspaceLoadingAnimation(e)}async setWindowDragMode(e,t){return await this.base.setWindowDragMode(e,t)}async moveFrame(e,t){return await this.base.moveFrame(e,t)}getGDWindow(e){return this.base.getGDWindow(e)}async forceLoadWindow(e){const t=await this.base.forceLoadWindow(e);return await this.base.notifyWindowAdded(t),t}async ejectWindow(e,t){const r=(await this.base.ejectWindow(e,t)).windowId;return await this.base.notifyWindowAdded(r),r}async moveWindowTo(e,t){return await this.base.moveWindowTo(e,t)}async getSnapshot(e,t){return await this.base.getSnapshot(e,t)}async setItemTitle(e,t){return await this.base.setItemTitle(e,t)}flatChildren(e){return e.reduce((e,t)=>(e.push(t),"window"!==t.type&&e.push(...this.flatChildren(t.children)),e),[])}refreshChildren(e){return this.base.refreshChildren(e)}iterateFindChild(e,t){return this.base.iterateFindChild(e,t)}iterateFilterChildren(e,t){return this.base.iterateFilterChildren(e,t)}hibernateWorkspace(e){return this.base.hibernateWorkspace(e)}resumeWorkspace(e){return this.base.resumeWorkspace(e)}lockWorkspace(e,t){return this.base.lockWorkspace(e,t)}lockWindow(e,t){return this.base.lockWindow(e,t)}lockContainer(e,t,r){return this.base.lockContainer(e,t,r)}pinWorkspace(e,t){return this.base.pinWorkspace(e,t)}unpinWorkspace(e){return this.base.unpinWorkspace(e)}getWorkspaceIcon(e){return this.base.getWorkspaceIcon(e)}setWorkspaceIcon(e,t){return this.base.setWorkspaceIcon(e,t)}async getFrameConstraints(e){const t=await this.getSnapshot(e,"frame");return{minWidth:t.config.minWidth,maxWidth:t.config.maxWidth,minHeight:t.config.minHeight,maxHeight:t.config.maxHeight}}registerShortcut(e,t,r){return this.shortcutsController.registerShortcut(e,t,r)}getPlatformFrameId(){return this.base.getPlatformFrameId()}setLoadingStrategy(e,t){return this.base.setLoadingStrategy(e,t)}registerFrameOnClosing(e,t){return this.closingController.registerFrameOnClosing(e,t)}showPopup(e,t){return this.base.showPopup(e,t)}async showFrame(e,t){return this.base.showFrame(e,t)}async hideFrame(e){return this.base.hideFrame(e)}async getFrameVisibility(e){return this.base.getFrameVisibility(e)}async showFrameDialog(e,t){return this.base.showFrameDialog(e,t)}async setFrameOnTop(e,t){return this.base.setFrameOnTop(e,t)}async handleCoreLocalSubscription(e,t){if(await this.bridge.createCoreEventSubscription(),e.scopeId=e.scopeId||t,"window"===e.eventType&&"loaded"===e.action){const t=e.callback,r=async e=>{await this.base.notifyWindowAdded(e.windowSummary.config.windowId),t(e)};e.callback=r}return this.bridge.handleCoreSubscription(e)}handleEnterpriseLocalSubscription(e,t){if(e.scopeId=e.scopeId||t,"window"===e.eventType&&"loaded"===e.action){const t=e.callback,r=async e=>{await this.base.notifyWindowAdded(e.windowSummary.config.windowId),t(e)};e.callback=r}return this.bridge.subscribe(e)}async handleCoreGlobalSubscription(e,t,r){await this.bridge.createCoreEventSubscription();const o={eventType:t,callback:e,action:r,scope:"global"};if("window"===t&&"loaded"===r){const t=async t=>{await this.base.notifyWindowAdded(t.windowSummary.config.windowId),e(t)};o.callback=t}return this.bridge.handleCoreSubscription(o)}handleEnterpriseGlobalSubscription(e,t,r){const o={eventType:t,callback:e,action:r,scope:"global"};if("window"===t&&"loaded"===r){const t=async t=>{await this.base.notifyWindowAdded(t.windowSummary.config.windowId),e(t)};o.callback=t}return this.bridge.subscribe(o)}async iterateWorkspaces(e){let t=!1;const r=()=>{t=!0},o=await this.getAllWorkspaceSummaries();for(const n of o){if(t)return;e(await this.base.fetchWorkspace(n.id),r)}}async legacyCloseWorkspace(e,t){const r=await this.isLastWorkspaceInFrame(e,t),o=(await this.getPlatformFrameId()).id;if(r&&o!==t)return await this.closeFrame(t,{});await this.closeItem(e)}}class _r{bridge;_shortcuts=r();constructor(e){this.bridge=e,this.bridge.onOperation(e=>{if(e.operation===nr.shortcutClicked.name){const t=e.data;this._shortcuts.execute(`${t.frameId}-${t.shortcut}`)}})}async registerShortcut(e,t,r){await this.bridge.send(ir.registerShortcut.name,{shortcut:e,frameId:t});const o=this._shortcuts.add(`${t}-${e}`,r);return()=>{o(),this.bridge.send(ir.unregisterShortcut.name,{shortcut:e,frameId:t})}}}class jr{bridge;registry=r();constructor(e){this.bridge=e,this.subscribeToFrameClosing()}async registerFrameOnClosing(e,t){return await this.bridge.send(ir.subscribeToFrameClosing.name,{itemId:e}),this.registry.add(e,t)}subscribeToFrameClosing(){this.bridge.onOperationWithResponse(async e=>{if(e.operation!==nr.frameClosing.name)return;const t=e.data,r=await Promise.all(this.registry.execute(t.frameId));return this.aggregateFrameClosingResult(r)})}aggregateFrameClosingResult(e){return{prevent:e.some(e=>e?.prevent)}}}class Gr{agm;windows;layouts;contexts;_controllerInstance;_bridgeInstance;_transportInstance;_privateDataManagerInstance;_parentBaseInstance;_baseController;_shortcutsController;_closingController;constructor(e,t,r,o){this.agm=e,this.windows=t,this.layouts=r,this.contexts=o}get baseController(){return this._baseController||(this._baseController=new Hr(this,this.windows,this.contexts,this.layouts)),this._baseController}get controller(){return this._controllerInstance||(this._controllerInstance=new $r(this.bridge,this.baseController,this.shortcutsController,this.closingController)),this._controllerInstance}get shortcutsController(){return this._shortcutsController||(this._shortcutsController=new _r(this.bridge)),this._shortcutsController}get closingController(){return this._closingController||(this._closingController=new jr(this.bridge)),this._closingController}get bridge(){return this._bridgeInstance||(this._bridgeInstance=new sr(this.transport,r())),this._bridgeInstance}get transport(){return this._transportInstance||(this._transportInstance=new lr(this.agm,r())),this._transportInstance}get privateDataManager(){return this._privateDataManagerInstance||(this._privateDataManagerInstance=new Ar),this._privateDataManagerInstance}get parentBase(){return this._parentBaseInstance||(this._parentBaseInstance=new Or(this.privateDataManager)),this._parentBaseInstance}async initiate(e){await this.transport.initiate(e)}getModel(e,t){switch(e){case"frame":{const e=new Lr(this.privateDataManager),{summary:r}=t,o={summary:r,controller:this.controller};return this.privateDataManager.setFrameData(e,o),e}case"window":{const{id:e,parent:r,frame:o,workspace:n,config:i}=t,a={type:"window",controller:this.controller,config:i,id:e,parent:r,frame:o,workspace:n},s=new Mr(this.privateDataManager);return this.privateDataManager.setWindowData(s,a),s}case"row":case"column":case"group":{const{id:r,children:o,parent:n,frame:i,workspace:a,config:s}=t,c="column"===e?new Wr(this.parentBase):"row"===e?new yr(this.parentBase):new xr(this.parentBase),d=this.buildChildren(o,i,a,c),l={id:r,parent:n,frame:i,workspace:a,config:s,type:e,controller:this.controller,children:d};return this.privateDataManager.setParentData(c,l),c}case"workspace":{const{snapshot:e,frame:r}=t,o=new Er(this.privateDataManager),n=this.buildChildren(e.children,r,o,o),i={id:e.id,type:"workspace",config:e.config,base:this.parentBase,controller:this.controller,children:n,frame:r,ioc:this};return this.privateDataManager.setWorkspaceData(o,i),o}default:throw new Error(`Unrecognized type: ${e}`)}}getBuilder(e){e.definition=e.definition||{},Array.isArray(e.definition.children)||(e.definition.children=[]);const t=new wr(this.getBuilder.bind(this));switch(e.type){case"workspace":return new mr(e.definition,t,this.controller);case"row":case"column":case"group":return e.definition.type=e.type,new ur(e.definition,t);default:throw new Error(`Unexpected Builder creation error, provided config: ${JSON.stringify(e)}`)}}buildChildren(e,t,r,o){return e.map(e=>{switch(e.type){case"window":return this.getModel("window",{id:e.id,config:e.config,frame:t,workspace:r,parent:o});case"column":case"row":case"group":return this.getModel(e.type,{id:e.id,config:e.config,children:e.children,frame:t,workspace:r,parent:o});default:throw new Error(`Unsupported child type: ${e.type}`)}})}}const Nr=async e=>{const t=new Gr(e.agm,e.windows,e.layouts,e.contexts),r=e.interop.instance.windowId;await t.initiate(r),e.workspaces=((e,t)=>{const r=t.controller,o=async e=>(O(e,!0),r.getFrames(e)),n=async e=>(O(e),await r.processGlobalSubscription(r=>{const o={summary:r.frameSummary},n=t.getModel("frame",o);e(n)},"frame","opened"));return{inWorkspace:()=>{const t=e.windows.my().id;if(!t)throw new Error("Cannot get my frame, because my id is undefined.");return r.checkIsInSwimlane(t)},getBuilder:e=>{const r=ce.runWithException(e);return t.getBuilder(r)},getMyFrame:async()=>{const t=e.windows.my().id;if(!t)throw new Error("Cannot get my frame, because my id is undefined.");if(!await r.checkIsInSwimlane(t))throw new Error("Cannot fetch your frame, because this window is not in a workspace");return r.getFrame({windowId:t})},getFrame:async e=>(O(e),r.getFrame({predicate:e})),getAllFrames:o,getAllWorkspacesSummaries:()=>r.getAllWorkspaceSummaries(),getMyWorkspace:async()=>{const t=e.windows.my().id;if(!t)throw new Error("Cannot get my workspace, because my id is undefined.");if(!await r.checkIsInSwimlane(t))throw new Error("Cannot fetch your workspace, because this window is not in a workspace");return await r.getWorkspaceByWindowId(t)},getWorkspace:async e=>(O(e),(await r.getWorkspaces(e))[0]),getWorkspaceById:async e=>(v.runWithException(e),r.getWorkspaceById(e)),getAllWorkspaces:e=>(O(e,!0),r.getWorkspaces(e)),getWindow:async e=>(O(e),r.getWindow(e)),getBox:async e=>(O(e),r.getParent(e)),restoreWorkspace:async(e,t)=>{v.runWithException(e);const o=ee.runWithException(t);return r.restoreWorkspace(e,o)},createWorkspace:async(e,t)=>{const o=re.runWithException(e),n=H.runWithException(t);return r.createWorkspace(o,n)},createEmptyFrame:async e=>{const t=ie.runWithException(e);return r.createEmptyFrame(t??{})},waitForFrame:async e=>(v.runWithException(e),new Promise((t,r)=>{let i=()=>{};n(r=>{r.id===e&&(t(r),i())}).then(e=>(i=e,o())).then(r=>{const o=r.find(t=>t.id===e);o&&(t(o),i())}).catch(r)})),layouts:{getSummaries:()=>r.getLayoutSummaries(),delete:async e=>(v.runWithException(e),r.deleteLayout(e)),export:async e=>(O(e,!0),r.exportLayout(e)),import:async(e,t="replace")=>{if(!Array.isArray(e))throw new Error(`The provided layouts argument is not an array: ${JSON.stringify(e)}`);return e.forEach(e=>Ee.runWithException(e)),r.importLayouts(e,t)},save:async e=>{const t=gt.runWithException(e);return r.saveLayout(t)},onSaved:async e=>(O(e),r.handleOnSaved(e)),onRemoved:async e=>(O(e),r.handleOnRemoved(e))},onFrameOpened:n,onFrameClosed:async e=>(O(e),await r.processGlobalSubscription(t=>{e({frameId:t.frameSummary.id,frameBounds:t.frameBounds})},"frame","closed")),onWorkspaceOpened:async e=>(O(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","opened")),onWorkspaceClosed:async e=>(O(e),await r.processGlobalSubscription(t=>{e({frameId:t.frameSummary.id,workspaceId:t.workspaceSummary.id,frameBounds:t.frameBounds})},"workspace","closed")),onWorkspaceHibernated:async e=>(O(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","hibernated")),onWorkspaceResumed:async e=>(O(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","resumed")),onWorkspaceTabReordered:async e=>(O(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","tab-reordered")),onWindowTabReordered:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","tab-reordered")),onWindowAdded:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","added")),onWindowLoaded:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getWindow(e=>e.id&&e.id===o.windowSummary.config.windowId);e(s)},"window","loaded")),onWindowRemoved:async e=>(O(e),await r.processGlobalSubscription(t=>{const{windowId:r,workspaceId:o,frameId:n}=t.windowSummary.config;e({windowId:r,workspaceId:o,frameId:n})},"window","removed")),onWindowMaximized:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","maximized")),onWindowRestored:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","restored")),onWindowSelected:async e=>(O(e),await r.processGlobalSubscription(async o=>{const n=await r.getSnapshot(o.windowSummary.config.workspaceId,"workspace"),i={summary:n.frameSummary},a={frame:t.getModel("frame",i),snapshot:n},s=t.getModel("workspace",a).getBox(e=>e.id===o.windowSummary.parentId).children.find(e=>"window"===e.type&&e.elementId===o.windowSummary.itemId);e(s)},"window","selected")),version:"4.5.0-next.1"}})(e,t)};return"undefined"!=typeof window&&(window.IOWorkspaces=Nr),Nr});
|
package/package.json
CHANGED
package/workspaces.d.ts
CHANGED
|
@@ -979,6 +979,16 @@ export namespace IOConnectWorkspaces {
|
|
|
979
979
|
Global = "Global"
|
|
980
980
|
}
|
|
981
981
|
|
|
982
|
+
/**
|
|
983
|
+
* Options for setting the on-top state of a Workspaces Frame.
|
|
984
|
+
*/
|
|
985
|
+
export interface FrameSetOnTopOptions {
|
|
986
|
+
/**
|
|
987
|
+
* If `true`, the Frame will be set on top of other windows.
|
|
988
|
+
*/
|
|
989
|
+
onTop: boolean;
|
|
990
|
+
}
|
|
991
|
+
|
|
982
992
|
/**
|
|
983
993
|
* Options for showing a dialog from the Workspaces Frame.
|
|
984
994
|
*/
|
|
@@ -1276,6 +1286,13 @@ export namespace IOConnectWorkspaces {
|
|
|
1276
1286
|
*/
|
|
1277
1287
|
showDialog<T>(options: FrameDialogOptions): Promise<T>;
|
|
1278
1288
|
|
|
1289
|
+
/**
|
|
1290
|
+
* Sets the on-top state of the Frame.
|
|
1291
|
+
* *Available only in **io.Connect Desktop**.*
|
|
1292
|
+
* @param options Options for setting the on-top state.
|
|
1293
|
+
*/
|
|
1294
|
+
setOnTop(options: FrameSetOnTopOptions): Promise<void>;
|
|
1295
|
+
|
|
1279
1296
|
/**
|
|
1280
1297
|
* Notifies when the Frame is about to be closed.
|
|
1281
1298
|
* *Available only in **io.Connect Desktop**.*
|