@interopio/workspaces-api 5.1.0-next.0 → 5.1.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 -0
- package/dist/workspaces.es.js +1 -1
- package/dist/workspaces.umd.js +1 -1
- package/dist/workspaces.umd.min.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
ADDED
package/dist/workspaces.es.js
CHANGED
package/dist/workspaces.umd.js
CHANGED
|
@@ -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("")},p=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)},w=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(p("."+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 p("["+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(p("["+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(p("."+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"}:p(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=w.string,g=w.number,f=w.boolean,y=w.anyJson;w.unknownJson;var b=w.constant,k=w.object,I=w.array;w.tuple,w.dict;var W=w.optional,S=w.oneOf;w.union;var x=w.intersection;w.withDefault,w.valueAt,w.succeed,w.fail;var D=w.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"),B=g().where(e=>Number.isInteger(e)&&e>=0,"Expected a non-negative integer"),E=g().where(e=>e>0,"Expected a positive number"),T=S(b("keepInside"),b("autoEject")),M=k({inWorkspace:f()}),F=k({isVisible:f()}),R=k({base64Image:v}),L=k({icon:R,frameId:v}),A=S(b("workspace"),b("row"),b("column"),b("group")),P=S(b("row"),b("column"),b("group")),z=S(b("maximized"),b("minimized"),b("normal")),O=S(b("workspace")),$=k({allowInApplicationPopup:W(f()),allowDrop:W(f())}),H=k({appName:v,allowInApplicationPopup:W(f()),allowDrop:W(f())}),_=k({apps:W(I(H)),default:W($)}),j=(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}`)},G=W(k({saveLayout:W(f())})),N=k({name:v}),V=k({layoutId:v}),J=k({minWidth:W(g()),maxWidth:W(g()),minHeight:W(g()),maxHeight:W(g()),allowExtract:W(f()),allowReorder:W(f()),showCloseButton:W(f()),positionIndex:W(B)}),U=k({minWidth:W(g()),maxWidth:W(g()),minHeight:W(g()),maxHeight:W(g()),allowExtract:W(f()),allowReorder:W(f()),allowDrop:W(f()),allowDropHeader:W(f()),allowDropLeft:W(f()),allowDropRight:W(f()),allowDropTop:W(f()),allowDropBottom:W(f()),showMaximizeButton:W(f()),showEjectButton:W(f()),showAddWindowButton:W(f()),positionIndex:W(B)}),q=k({minHeight:W(g()),maxHeight:W(g()),allowDrop:W(f()),allowSplitters:W(f()),isPinned:W(f()),maximizationBoundary:W(f()),positionIndex:W(B)}),K=k({minWidth:W(g()),maxWidth:W(g()),allowDrop:W(f()),allowSplitters:W(f()),isPinned:W(f()),maximizationBoundary:W(f()),positionIndex:W(B)}),Q=k({type:W(b("window")),appName:W(v),windowId:W(v),context:W(y()),config:W(J)}),X=k({type:b("window"),appName:W(v),windowId:W(v),context:W(y()),config:W(J)}),Y=W(k({type:W(P),children:W(D(()=>I(S(Q,Y)))),config:W(y())})),Z=k({type:b("column"),children:W(D(()=>I(S(X,re)))),config:W(K)}),ee=k({type:b("row"),children:W(D(()=>I(S(X,re)))),config:W(q)}),te=k({type:b("group"),children:W(D(()=>I(S(X,re)))),config:W(U)}),re=S(te,Z,ee);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 oe=k({bounds:W(k({left:W(g()),top:W(g()),width:W(C),height:W(C)})),isVisible:W(f()),frameId:W(v)}),ne=S(b("direct"),b("delayed"),b("lazy")),ie=W(k({app:W(v),context:W(y()),loadingStrategy:W(ne),title:W(v),reuseWorkspaceId:W(v),frameId:W(v),applicationName:W(v),lockdown:W(f()),activateFrame:W(f()),newFrame:W(S(oe,f())),noTabHeader:W(f()),inMemoryLayout:W(f()),icon:W(v),isPinned:W(f()),isSelected:W(f()),positionIndex:W(C),allowSystemHibernation:W(f())})),ae=x(ie,k({layoutId:v})),se=x(ie,k({layoutId:v})),ce=k({name:v,restoreOptions:W(ie)}),de=k({children:W(I(S(Q,re))),context:W(y()),config:W(k({title:W(v),position:W(C),isFocused:W(f()),noTabHeader:W(f()),reuseWorkspaceId:W(v),loadingStrategy:W(ne),allowDrop:W(f()),allowDropLeft:W(f()),allowDropTop:W(f()),allowDropRight:W(f()),allowDropBottom:W(f()),allowSystemHibernation:W(f()),allowExtract:W(f()),allowWindowReorder:W(f()),showSaveButton:W(f()),allowWorkspaceTabReorder:W(f()),allowWorkspaceTabExtract:W(f()),showCloseButton:W(f()),allowSplitters:W(f()),showWindowCloseButtons:W(f()),showEjectButtons:W(f()),showAddWindowButtons:W(f()),icon:W(v),isPinned:W(f()),isSelected:W(f()),positionIndex:W(C),windowDragMode:W(T),appRestrictions:W(_)})),frame:W(k({activate:W(f()),reuseFrameId:W(v),applicationName:W(v),newFrame:W(S(f(),oe))}))}),le=k({workspaceId:v}),he=k({name:v,restoreOptions:W(ie)}),ue=k({id:v,restoreOptions:W(ie)}),pe=W(k({applicationName:W(m()),frameConfig:W(oe),context:W(k()),layoutComponentId:W(v)})),we=k({workspaces:I(S(W(de),W(he),W(ue)))}),me=k({frameId:v,workspaces:I(S(de,he,ue))}),ge=k({type:A,definition:W(S(de,Y))}),fe=x(de,k({saveConfig:W(k({saveLayout:W(f())}))})),ye=k({itemId:v}),be=k({context:W(k())}),ke=k({id:v,isFocused:W(f()),isInitialized:W(f()),initializationContext:W(be)});k({type:P,id:v,frameId:v,workspaceId:v,positionIndex:g()});const Ie=S(b("frame"),b("workspace"),b("container"),b("window")),We=k({type:Ie,branch:v}),Se=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")),xe=k({frameId:v,title:v,positionIndex:C,name:v,layoutId:W(v),layoutName:W(v),isHibernated:W(f()),isSelected:W(f()),allowDrop:W(f()),allowSystemHibernation:W(f()),allowExtract:W(f()),allowWindowReorder:W(f()),allowSplitters:W(f()),showCloseButton:W(f()),showSaveButton:W(f()),allowWorkspaceTabReorder:W(f()),allowWorkspaceTabExtract:W(f()),allowDropLeft:W(f()),allowDropTop:W(f()),allowDropRight:W(f()),allowDropBottom:W(f()),minWidth:W(g()),maxWidth:W(g()),minHeight:W(g()),maxHeight:W(g()),showAddWindowButtons:W(f()),showEjectButtons:W(f()),showWindowCloseButtons:W(f()),widthInPx:W(g()),heightInPx:W(g()),isPinned:W(f()),windowDragMode:W(T),loadingStrategy:W(ne),appRestrictions:W(_)}),De=k({frameId:v,workspaceId:v,positionIndex:g(),minWidth:W(g()),maxWidth:W(g()),minHeight:W(g()),maxHeight:W(g())}),ve=y(),Ce=x(De,k({windowId:W(v),isMaximized:W(f()),isFocused:f(),isSelected:W(f()),title:W(m()),appName:W(v),allowExtract:W(f()),allowReorder:W(f()),showCloseButton:W(f()),minWidth:W(g()),minHeight:W(g()),maxWidth:W(g()),maxHeight:W(g()),widthInPx:W(g()),heightInPx:W(g()),context:W(y())})),Be=k({id:W(v),config:ve,children:W(D(()=>I(Te))),type:S(b("row"),b("column"),b("group"))}),Ee=k({id:W(v),config:Ce,type:b("window")}),Te=S(Ee,Be),Me=k({id:v,config:xe,children:I(Te),frameSummary:ke,context:W(y())}),Fe=k({type:b("window"),config:k({appName:v,windowId:W(v),context:W(y()),url:W(v),title:W(m()),allowExtract:W(f()),allowReorder:W(f()),showCloseButton:W(f()),minWidth:W(g()),minHeight:W(g()),maxWidth:W(g()),maxHeight:W(g()),isMaximized:W(f()),instanceId:W(v)})}),Re=k({type:b("group"),config:y(),children:I(S(Fe))}),Le=k({type:b("column"),config:y(),children:I(S(Re,Fe,D(()=>Le),D(()=>Ae)))}),Ae=k({type:b("row"),config:y(),children:I(S(Le,Re,Fe,D(()=>Ae)))}),Pe=k({id:W(v),name:v,type:b("Workspace"),metadata:W(y()),components:I(k({type:b("Workspace"),application:W(m()),state:k({config:y(),context:y(),children:I(S(Ae,Le,Re,Fe))})}))}),ze=k({layout:Pe,mode:S(b("replace"),b("merge"))}),Oe=k({layouts:I(Pe),mode:S(b("replace"),b("merge"))}),$e=k({layouts:I(Pe)}),He=k({id:v,isFocused:W(f()),isInitialized:W(f()),initializationContext:W(be)}),_e=k({summaries:I(He)}),je=k({id:v,config:xe}),Ge=k({summaries:I(je)}),Ne=k({id:v,config:y(),workspaces:I(Me)}),Ve=k({id:W(v),name:v,applicationName:W(m())}),Je=k({summaries:I(Ve)}),Ue=k({windowId:v}),qe=y(),Ke=k({state:z}),Qe=k({top:g(),left:g(),width:C,height:C}),Xe=k({bounds:Qe}),Ye=k({icon:W(v)}),Ze=k({id:W(v)}),et=k({isSupported:f()}),tt=k({width:W(E),height:W(E),relative:W(f())}),rt=k({top:W(g()),left:W(g()),relative:W(f())}),ot=k({itemId:v}),nt=k({allowPrevent:W(f()),showDialog:W(f())}),it=k({itemId:v,closeOptions:W(nt)}),at=k({itemId:v,excludeIds:W(f())}),st=k({frameId:v,requestedState:z}),ct=k({itemId:v,title:v}),dt=k({itemId:v,containerId:v}),lt=x(ot,tt),ht=k({itemId:v,enabled:f()}),ut=x(ot,rt);k({id:v,type:P});const pt=k({definition:Q,parentId:v,parentType:A}),wt=k({definition:re,parentId:v,parentType:A}),mt=k({itemId:v,windowId:W(v)}),gt=k({live:f()}),ft=k({type:S(b("row"),b("column")),workspaceId:v}),yt=k({type:S(b("row"),b("column")),itemId:v}),bt=k({itemId:v,config:ve}),kt=k({frameSummary:ke,frameBounds:W(Qe)}),It=k({workspaceSummary:je,frameSummary:ke,workspaceSnapshot:W(Me),frameBounds:W(Qe)}),Wt=k({containerSummary:bt}),St=k({windowSummary:k({itemId:v,parentId:v,config:Ce})}),xt=k({id:W(v),name:v,workspaceId:v,saveContext:W(f()),allowMultiple:W(f()),metadata:W(k()),saveWindowContexts:W(f())}),Dt=k({id:W(v),name:v,workspaceId:v,saveContext:W(f()),allowMultiple:W(f()),metadata:W(k()),saveWindowContexts:W(f())}),vt=k({saveContext:W(f()),allowMultiple:W(f()),metadata:W(k()),saveWindowContexts:W(f())}),Ct=k({allowDrop:W(f()),allowDropLeft:W(f()),allowDropTop:W(f()),allowDropRight:W(f()),allowDropBottom:W(f()),allowSystemHibernation:W(f()),allowExtract:W(f()),allowWindowReorder:W(f()),allowSplitters:W(f()),showCloseButton:W(f()),showSaveButton:W(f()),allowWorkspaceTabReorder:W(f()),allowWorkspaceTabExtract:W(f()),showWindowCloseButtons:W(f()),showAddWindowButtons:W(f()),showEjectButtons:W(f())}),Bt=k({workspaceId:v,config:W(Ct)}),Et=k({allowExtract:W(f()),allowReorder:W(f()),showCloseButton:W(f())}),Tt=k({width:W(C),height:W(C)}),Mt=k({windowPlacementId:v,config:W(Et)}),Ft=k({allowDrop:W(f()),allowSplitters:W(f())}),Rt=k({allowDrop:W(f()),allowSplitters:W(f())}),Lt=k({allowExtract:W(f()),allowReorder:W(f()),allowDrop:W(f()),allowDropLeft:W(f()),allowDropRight:W(f()),allowDropTop:W(f()),allowDropBottom:W(f()),allowDropHeader:W(f()),showMaximizeButton:W(f()),showEjectButton:W(f()),showAddWindowButton:W(f())}),At=k({itemId:v,type:b("row"),config:W(Ft)}),Pt=k({itemId:v,type:b("column"),config:W(Rt)}),zt=k({itemId:v,type:b("group"),config:W(Lt)}),Ot=S(At,Pt,zt),$t=k({workspaceId:v,icon:W(v)}),Ht=k({workspaceId:v,icon:W(v)}),_t=W(k({icon:W(v)})),jt=W(k({activate:W(f())})),Gt=k({shortcut:v,frameId:v}),Nt=k({shortcut:v,frameId:v}),Vt=k({frameId:v}),Jt=k({enabled:f()}),Ut=k({itemId:v,type:O}),qt=k({operation:v}),Kt=k({itemId:v,dragMode:T}),Qt=k({itemId:v,strategy:ne}),Xt=k({prevent:f()}),Yt=k({width:C,height:C}),Zt=k({left:g(),top:g(),width:C,height:C}),er=S(b("none"),b("left"),b("right"),b("top"),b("bottom")),tr=k({size:Yt,targetBounds:Zt,targetLocation:er,windowId:v,horizontalOffset:W(g()),verticalOffset:W(g()),focus:W(f())}),rr=k({frameId:v,size:Yt,targetBounds:Zt,targetLocation:er,windowId:v,horizontalOffset:W(g()),verticalOffset:W(g()),focus:W(f())}),or=k({frameId:v,activate:W(f()),isVisible:f()}),nr=k({mode:W(S(b("Global"),b("WindowContainer"))),type:m(),size:W(Yt),message:v,messageTitle:W(v),movable:W(f()),transparent:W(f()),title:v,context:W(y()),affirmativeButtonName:W(v),showAffirmativeButton:W(f()),cancelButtonName:W(v),showCancelButton:W(f()),negativeButtonName:W(v),showNegativeButton:W(f()),defaultAction:W(S(b("affirmative"),b("negative"),b("cancel"))),timerDuration:W(E),showTimer:W(f()),inputMaxLength:W(E),inputPattern:W(v),inputPatternErrorMessage:W(v),inputPlaceholder:W(m()),blur:W(f())}),ir=k({frameId:v,options:nr}),ar=k({onTop:f()}),sr=k({frameId:v,onTop:f()}),cr="T42.Web.Platform.Control",dr="T42.Web.Platform.WSP.Stream",lr={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}},hr={control:{name:"T42.Workspaces.Client.Control",isStream:!1}},ur={frame:{name:"T42.Workspaces.Stream.Frame",payloadDecoder:kt},workspace:{name:"T42.Workspaces.Stream.Workspace",payloadDecoder:It},container:{name:"T42.Workspaces.Stream.Container",payloadDecoder:Wt},window:{name:"T42.Workspaces.Stream.Window",payloadDecoder:St}},pr={shortcutClicked:{name:"shortcutClicked",argsDecoder:Nt,resultDecoder:qe},frameClosing:{name:"frameClosing",argsDecoder:Vt,resultDecoder:Xt}},wr={ping:{name:"ping",resultDecoder:gt},isWindowInWorkspace:{name:"isWindowInWorkspace",argsDecoder:ot,resultDecoder:M},createWorkspace:{name:"createWorkspace",resultDecoder:Me,argsDecoder:fe},createFrame:{name:"createFrame",resultDecoder:He,argsDecoder:pe},initFrame:{name:"initFrame",resultDecoder:qe,argsDecoder:me},getAllFramesSummaries:{name:"getAllFramesSummaries",resultDecoder:_e},getFrameSummary:{name:"getFrameSummary",resultDecoder:ke,argsDecoder:ye},getAllWorkspacesSummaries:{name:"getAllWorkspacesSummaries",resultDecoder:Ge},getWorkspaceSnapshot:{name:"getWorkspaceSnapshot",resultDecoder:Me,argsDecoder:ot},getAllLayoutsSummaries:{name:"getAllLayoutsSummaries",resultDecoder:Je},openWorkspaceById:{name:"openWorkspaceById",argsDecoder:se,resultDecoder:Me},openWorkspace:{name:"openWorkspace",argsDecoder:ce,resultDecoder:Me},deleteLayout:{name:"deleteLayout",resultDecoder:qe,argsDecoder:N},deleteLayoutById:{name:"deleteLayoutById",resultDecoder:qe,argsDecoder:V},saveLayout:{name:"saveLayout",resultDecoder:Pe,argsDecoder:xt},saveLayoutById:{name:"saveLayoutById",resultDecoder:Pe,argsDecoder:Dt},importLayout:{name:"importLayout",resultDecoder:qe,argsDecoder:ze},importLayouts:{name:"importLayouts",resultDecoder:qe,argsDecoder:Oe},exportAllLayouts:{name:"exportAllLayouts",resultDecoder:$e},restoreItem:{name:"restoreItem",argsDecoder:ot,resultDecoder:qe},maximizeItem:{name:"maximizeItem",argsDecoder:ot,resultDecoder:qe},focusItem:{name:"focusItem",argsDecoder:ot,resultDecoder:qe},closeItem:{name:"closeItem",argsDecoder:it,resultDecoder:qe},closeWorkspace:{name:"closeWorkspace",argsDecoder:it,resultDecoder:qe},resizeItem:{name:"resizeItem",argsDecoder:lt,resultDecoder:qe},setMaximizationBoundary:{name:"setMaximizationBoundary",argsDecoder:ht,resultDecoder:qe},changeFrameState:{name:"changeFrameState",argsDecoder:st,resultDecoder:qe},getFrameState:{name:"getFrameState",argsDecoder:ot,resultDecoder:Ke},getFrameBounds:{name:"getFrameBounds",argsDecoder:ot,resultDecoder:Xe},moveFrame:{name:"moveFrame",argsDecoder:ut,resultDecoder:qe},getFrameSnapshot:{name:"getFrameSnapshot",argsDecoder:at,resultDecoder:Ne},forceLoadWindow:{name:"forceLoadWindow",argsDecoder:ot,resultDecoder:Ue},ejectWindow:{name:"ejectWindow",argsDecoder:ot,resultDecoder:Ue},setItemTitle:{name:"setItemTitle",argsDecoder:ct,resultDecoder:qe},moveWindowTo:{name:"moveWindowTo",argsDecoder:dt,resultDecoder:qe},addWindow:{name:"addWindow",argsDecoder:pt,resultDecoder:mt},addContainer:{name:"addContainer",argsDecoder:wt,resultDecoder:mt},bundleWorkspace:{name:"bundleWorkspace",argsDecoder:ft,resultDecoder:qe},bundleItem:{name:"bundleItem",argsDecoder:yt,resultDecoder:qe},hibernateWorkspace:{name:"hibernateWorkspace",argsDecoder:le,resultDecoder:qe},resumeWorkspace:{name:"resumeWorkspace",argsDecoder:le,resultDecoder:qe},lockWorkspace:{name:"lockWorkspace",argsDecoder:Bt,resultDecoder:qe},lockWindow:{name:"lockWindow",argsDecoder:Mt,resultDecoder:qe},lockContainer:{name:"lockContainer",argsDecoder:Ot,resultDecoder:qe},pinWorkspace:{name:"pinWorkspace",argsDecoder:$t,resultDecoder:qe},unpinWorkspace:{name:"unpinWorkspace",argsDecoder:le,resultDecoder:qe},getWorkspaceIcon:{name:"getWorkspaceIcon",argsDecoder:le,resultDecoder:Ye},setWorkspaceIcon:{name:"setWorkspaceIcon",argsDecoder:Ht,resultDecoder:qe},registerShortcut:{name:"registerShortcut",argsDecoder:Gt,resultDecoder:qe},unregisterShortcut:{name:"unregisterShortcut",argsDecoder:Gt,resultDecoder:qe},showLoadingAnimation:{name:"showLoadingAnimation",argsDecoder:Ut,resultDecoder:qe},hideLoadingAnimation:{name:"hideLoadingAnimation",argsDecoder:Ut,resultDecoder:qe},getPlatformFrameId:{name:"getPlatformFrameId",resultDecoder:Ze},operationCheck:{name:"operationCheck",argsDecoder:qt,resultDecoder:et},setWindowDragMode:{name:"setWindowDragMode",argsDecoder:Kt,resultDecoder:qe},setLoadingStrategy:{name:"setLoadingStrategy",argsDecoder:Qt,resultDecoder:qe},getTaskbarIcon:{name:"getTaskbarIcon",resultDecoder:R},setTaskbarIcon:{name:"setTaskbarIcon",argsDecoder:L,resultDecoder:qe},subscribeToFrameClosing:{name:"subscribeToFrameClosing",argsDecoder:ot,resultDecoder:qe},showPopup:{name:"showPopup",argsDecoder:rr,resultDecoder:qe},changeFrameVisibility:{name:"changeFrameVisibility",argsDecoder:or,resultDecoder:qe},getFrameVisibility:{name:"getFrameVisibility",argsDecoder:ot,resultDecoder:F},showFrameDialog:{name:"showFrameDialog",argsDecoder:ir,resultDecoder:y()},setFrameOnTop:{name:"setFrameOnTop",argsDecoder:sr,resultDecoder:qe}};class mr{resolve;reject;promise;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class gr{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(wr).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 mr,o={streamType:e.eventType,level:e.scope,levelId:e.scopeId,promise:t.promise};this.pendingSubScriptions.push(o);try{const o=ur[e.eventType],n=await this.transport.subscribe(o.name,this.getBranchKey(e),e.eventType);n.onData(e=>{const t=e.data,r=We.run(e.requestArguments),o=Se.run(t.action);if(!r.ok||!o.ok)return;const n=r.result.type,i=`${n}-${r.result.branch}-${o.result}`,a=ur[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(pr).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(pr).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=Se.runWithException(t.action),r=Ie.runWithException(t.type),o=ur[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 fr=()=>"undefined"==typeof window||(window.glue42gd||window.iodesktop),yr=()=>"undefined"==typeof window?null:window.glue42core||window.iobrowser;class br{agm;registry;defaultTransportTimeout=12e4;coreEventMethodInitiated=!1;corePlatformSubPromise;constructor(e,t){this.agm=e,this.registry=t}async initiate(e){if(fr())await Promise.all(Object.values(lr).map(e=>this.verifyMethodLive(e.name)));else{const t=yr().communicationId;await Promise.all([this.verifyMethodLive(cr,t),this.verifyMethodLive(dr,t)]),await this.transmitControl("frameHello",{windowId:e})}await Promise.all(Object.keys(hr).map(e=>this.registerMethod(e)))}coreSubscriptionReady(e){return this.coreEventMethodInitiated||this.subscribePlatform(e),this.corePlatformSubPromise}subscribePlatform(e){this.coreEventMethodInitiated=!0;const t=yr().communicationId;this.corePlatformSubPromise=this.agm.subscribe(dr,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=fr()?{operation:e,operationArguments:t}:{operation:e,domain:"workspaces",data:t},n=fr()?lr.control.name:cr,i=fr()?void 0:yr().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=hr[e];return this.agm.register(t.name,(t,r)=>Promise.all(this.registry.execute(e,t,r)))}}const kr=new WeakMap;class Ir{constructor(e,t){const r=t.wrapChildren(e.children);delete e.children,kr.set(this,{base:t,children:r,definition:e})}get type(){return kr.get(this).definition.type}addColumn(e){return kr.get(this).base.add("column",kr.get(this).children,e)}addRow(e){return kr.get(this).base.add("row",kr.get(this).children,e)}addGroup(e){return kr.get(this).base.add("group",kr.get(this).children,e)}addWindow(e){return kr.get(this).base.addWindow(kr.get(this).children,e),this}serialize(){const e=kr.get(this).definition;return e.children=kr.get(this).base.serializeChildren(kr.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=Y.runWithException(r),n=this.getBuilder({type:e,definition:o});return t.push(n),n}addWindow(e,t){const r=Q.runWithException(t);r.type="window",e.push(r)}serializeChildren(e){return e.map(e=>e instanceof Ir?e.serialize():e)}}const Sr=new WeakMap;class xr{constructor(e,t,r){const o=t.wrapChildren(e.children);delete e.children,Sr.set(this,{base:t,children:o,definition:e,controller:r})}addColumn(e){const t=Sr.get(this).children;if(!t.every(e=>e instanceof Ir&&"column"===e.type))throw new Error("Cannot add a column to this workspace, because there are already children of another type");return Sr.get(this).base.add("column",t,e)}addRow(e){const t=Sr.get(this).children;if(!t.every(e=>e instanceof Ir&&"row"===e.type))throw new Error("Cannot add a row to this workspace, because there are already children of another type");return Sr.get(this).base.add("row",t,e)}addGroup(e){const t=Sr.get(this).children;if(0!==t.length)throw new Error("Cannot add a group to this workspace, because there are already defined children.");return Sr.get(this).base.add("group",t,e)}addWindow(e){const t=Sr.get(this).children;if(0!==t.length)throw new Error("Cannot add a window to this workspace, because there are already defined children.");return Sr.get(this).base.addWindow(t,e),this}getChildAt(e){C.runWithException(e);return Sr.get(this).children[e]}async create(e){const t=G.runWithException(e),r=Sr.get(this).definition;r.children=Sr.get(this).base.serializeChildren(Sr.get(this).children);return Sr.get(this).controller.createWorkspace(r,t)}}const Dr=new WeakMap,vr=e=>Dr.get(e).base;class Cr{constructor(e){Dr.set(this,{base:e})}get type(){return"row"}get id(){return vr(this).getId(this)}get frameId(){return vr(this).getFrameId(this)}get workspaceId(){return vr(this).getWorkspaceId(this)}get positionIndex(){return vr(this).getPositionIndex(this)}get children(){return vr(this).getAllChildren(this)}get parent(){return vr(this).getMyParent(this)}get frame(){return vr(this).getMyFrame(this)}get workspace(){return vr(this).getMyWorkspace(this)}get allowDrop(){return vr(this).getAllowDrop(this)}get allowSplitters(){return vr(this).getAllowSplitters(this)}get minWidth(){return vr(this).getMinWidth(this)}get minHeight(){return vr(this).getMinHeight(this)}get maxWidth(){return vr(this).getMaxWidth(this)}get maxHeight(){return vr(this).getMaxHeight(this)}get width(){return vr(this).getWidthInPx(this)}get height(){return vr(this).getHeightInPx(this)}get isPinned(){return vr(this).getIsPinned(this)}get isMaximized(){return vr(this).getIsMaximized(this)}get maximizationBoundary(){return vr(this).getMaximizationBoundary(this)}addWindow(e){return vr(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 vr(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 vr(this).addParent(this,"column","row",e)}async addRow(){throw new Error("Adding rows as row children is not supported")}removeChild(e){return vr(this).removeChild(this,e)}maximize(){return vr(this).maximize(this)}restore(){return vr(this).restore(this)}close(){return vr(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:Ft.runWithException(t);return vr(this).lockContainer(this,r)}async setHeight(e){return C.runWithException(e),vr(this).setHeight(this,e)}async onLockConfigurationChanged(e){j(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 vr(this).processLocalSubscription(this,t)}async setMaximizationBoundary(e){const t=Jt.runWithException(e);return vr(this).setMaximizationBoundary(this,t)}}const Br=new WeakMap,Er=e=>Br.get(e).base;class Tr{constructor(e){Br.set(this,{base:e})}get type(){return"column"}get id(){return Er(this).getId(this)}get frameId(){return Er(this).getFrameId(this)}get workspaceId(){return Er(this).getWorkspaceId(this)}get positionIndex(){return Er(this).getPositionIndex(this)}get children(){return Er(this).getAllChildren(this)}get parent(){return Er(this).getMyParent(this)}get frame(){return Er(this).getMyFrame(this)}get workspace(){return Er(this).getMyWorkspace(this)}get allowDrop(){return Er(this).getAllowDrop(this)}get allowSplitters(){return Er(this).getAllowSplitters(this)}get minWidth(){return Er(this).getMinWidth(this)}get minHeight(){return Er(this).getMinHeight(this)}get maxWidth(){return Er(this).getMaxWidth(this)}get maxHeight(){return Er(this).getMaxHeight(this)}get width(){return Er(this).getWidthInPx(this)}get height(){return Er(this).getHeightInPx(this)}get isPinned(){return Er(this).getIsPinned(this)}get isMaximized(){return Er(this).getIsMaximized(this)}get maximizationBoundary(){return Er(this).getMaximizationBoundary(this)}addWindow(e){return Er(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 Er(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 Er(this).addParent(this,"row","column",e)}removeChild(e){return Er(this).removeChild(this,e)}maximize(){return Er(this).maximize(this)}restore(){return Er(this).restore(this)}close(){return Er(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:Rt.runWithException(t);return Er(this).lockContainer(this,r)}async setWidth(e){return C.runWithException(e),Er(this).setWidth(this,e)}async onLockConfigurationChanged(e){j(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 Er(this).processLocalSubscription(this,t)}async setMaximizationBoundary(e){const t=Jt.runWithException(e);return Er(this).setMaximizationBoundary(this,t)}}const Mr=new WeakMap,Fr=e=>Mr.get(e).base;class Rr{constructor(e){Mr.set(this,{base:e})}get type(){return"group"}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 allowExtract(){return Fr(this).getAllowExtract(this)}get allowReorder(){return Fr(this).getAllowReorder(this)}get allowDropLeft(){return Fr(this).getAllowDropLeft(this)}get allowDropRight(){return Fr(this).getAllowDropRight(this)}get allowDropTop(){return Fr(this).getAllowDropTop(this)}get allowDropBottom(){return Fr(this).getAllowDropBottom(this)}get allowDropHeader(){return Fr(this).getAllowDropHeader(this)}get allowDrop(){return Fr(this).getAllowDrop(this)}get showMaximizeButton(){return Fr(this).getShowMaximizeButton(this)}get showEjectButton(){return Fr(this).getShowEjectButton(this)}get showAddWindowButton(){return Fr(this).getShowAddWindowButton(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 isMaximized(){return Fr(this).getIsMaximized(this)}addWindow(e){return Fr(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 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,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:Lt.runWithException(t);return Fr(this).lockContainer(this,r)}async setSize(e){const t=Tt.runWithException(e);if(!t.width&&!t.height)throw new Error("Expected either width or height to be passed.");return Fr(this).setSize(this,e.width,e.height)}async bundleToRow(){await Fr(this).bundleTo(this,"row"),await this.workspace.refreshReference()}async bundleToColumn(){await Fr(this).bundleTo(this,"column"),await this.workspace.refreshReference()}async onLockConfigurationChanged(e){j(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 Fr(this).processLocalSubscription(this,t)}}const Lr=new WeakMap,Ar=e=>Lr.get(e).manager.getWorkspaceData(e),Pr=e=>Lr.get(e).manager;class zr{constructor(e){Lr.set(this,{manager:e})}get id(){return Ar(this).id}get frameId(){return Ar(this).config.frameId}get positionIndex(){return Ar(this).config.positionIndex}get title(){return Ar(this).config.title}get layoutId(){return Ar(this).config.layoutId}get layoutName(){return Ar(this).config.layoutName}get isHibernated(){return Ar(this).config.isHibernated}get isSelected(){return Ar(this).config.isSelected}get children(){return Ar(this).children}get frame(){return Ar(this).frame}get allowSplitters(){return Ar(this).config.allowSplitters}get allowSystemHibernation(){return Ar(this).config.allowSystemHibernation}get allowDrop(){return Ar(this).config.allowDrop}get allowDropLeft(){return Ar(this).config.allowDropLeft}get allowDropTop(){return Ar(this).config.allowDropTop}get allowDropRight(){return Ar(this).config.allowDropRight}get allowDropBottom(){return Ar(this).config.allowDropBottom}get allowExtract(){return Ar(this).config.allowExtract}get allowWindowReorder(){return Ar(this).config.allowWindowReorder}get appRestrictions(){return Ar(this).config.appRestrictions}get showCloseButton(){return Ar(this).config.showCloseButton}get showSaveButton(){return Ar(this).config.showSaveButton}get allowWorkspaceTabReorder(){return Ar(this).config.allowWorkspaceTabReorder}get allowWorkspaceTabExtract(){return Ar(this).config.allowWorkspaceTabExtract}get minWidth(){return Ar(this).config.minWidth}get minHeight(){return Ar(this).config.minHeight}get maxWidth(){return Ar(this).config.maxWidth}get maxHeight(){return Ar(this).config.maxHeight}get width(){return Ar(this).config.widthInPx}get height(){return Ar(this).config.heightInPx}get showWindowCloseButtons(){return Ar(this).config.showWindowCloseButtons}get showEjectButtons(){return Ar(this).config.showEjectButtons}get showAddWindowButtons(){return Ar(this).config.showAddWindowButtons}get isPinned(){return Ar(this).config.isPinned}get windowDragMode(){return fr()?Ar(this).config.windowDragMode:"keepInside"}get loadingStrategy(){return fr()||console.warn("The workspace.loadingStrategy property is not supported in IO Connect Browser"),Ar(this).config.loadingStrategy}async setLoadingStrategy(e){if(!fr())throw new Error("Not supported in IO Connect Browser");const t=Ar(this).controller;await t.setLoadingStrategy(this.id,e),await this.refreshReference()}async removeChild(e){j(e);const t=this.children.find(e);t&&(await t.close(),await this.refreshReference())}async remove(e){j(e);const t=Ar(this).controller.iterateFindChild(this.children,e);await t.close(),await this.refreshReference()}async focus(){await Ar(this).controller.focusItem(this.id),await this.refreshReference()}async close(){const e=Ar(this).controller;await e.closeWorkspace(this.id,this.frameId)}snapshot(){return Ar(this).controller.getSnapshot(this.id,"workspace")}async saveLayout(e,t){v.runWithException(e),t&&vt.runWithException(t),await Ar(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=Ar(this).controller;await t.setItemTitle(this.id,e),await this.refreshReference()}getContext(){return Ar(this).controller.getWorkspaceContext(this.id)}setContext(e){return Ar(this).controller.setWorkspaceContext(this.id,e)}updateContext(e){return Ar(this).controller.updateWorkspaceContext(this.id,e)}onContextUpdated(e){return Ar(this).controller.subscribeWorkspaceContextUpdated(this.id,e)}async refreshReference(){const e=await Ar(this).controller.getSnapshot(this.id,"workspace"),t=Ar(this).controller.flatChildren(Ar(this).children),r=Ar(this).controller.refreshChildren({existingChildren:t,workspace:this,parent:this,children:e.children}),o=this.frame;let n;if(o.id===e.config.frameId)Pr(this).remapFrame(o,e.frameSummary),n=o;else{const t={summary:e.frameSummary};n=Ar(this).ioc.getModel("frame",t)}Pr(this).remapWorkspace(this,{config:e.config,children:r,frame:n})}async getIcon(){return Ar(this).controller.getWorkspaceIcon(this.id)}async setIcon(e){return Ar(this).controller.setWorkspaceIcon(this.id,e)}getBox(e){j(e);const t=Ar(this).children;return Ar(this).controller.iterateFindChild(t,t=>"window"!==t.type&&e(t))}getAllBoxes(e){j(e,!0);const t=Ar(this).children,r=Ar(this).controller.iterateFilterChildren(t,e=>"window"!==e.type);return e?r.filter(e):r}getRow(e){return j(e),this.getBox(t=>"row"===t.type&&e(t))}getAllRows(e){return j(e,!0),e?this.getAllBoxes(t=>"row"===t.type&&e(t)):this.getAllBoxes(e=>"row"===e.type)}getColumn(e){return j(e),this.getBox(t=>"column"===t.type&&e(t))}getAllColumns(e){return j(e,!0),e?this.getAllBoxes(t=>"column"===t.type&&e(t)):this.getAllBoxes(e=>"column"===e.type)}getGroup(e){return j(e),this.getBox(t=>"group"===t.type&&e(t))}getAllGroups(e){return j(e,!0),e?this.getAllBoxes(t=>"group"===t.type&&e(t)):this.getAllBoxes(e=>"group"===e.type)}getWindow(e){j(e);const t=Ar(this).children;return Ar(this).controller.iterateFindChild(t,t=>"window"===t.type&&e(t))}getAllWindows(e){j(e,!0);const t=Ar(this).children,r=Ar(this).controller.iterateFilterChildren(t,e=>"window"===e.type);return e?r.filter(e):r}addRow(e){return Ar(this).base.addParent(this,"row","workspace",e)}addColumn(e){return Ar(this).base.addParent(this,"column","workspace",e)}addGroup(e){return Ar(this).base.addParent(this,"group","workspace",e)}addWindow(e){return Ar(this).base.addWindow(this,e,"workspace")}async bundleToRow(){await Ar(this).controller.bundleWorkspaceTo("row",this.id),await this.refreshReference()}async bundleToColumn(){await Ar(this).controller.bundleWorkspaceTo("column",this.id),await this.refreshReference()}async hibernate(){await Ar(this).controller.hibernateWorkspace(this.id),await this.refreshReference()}async resume(){await Ar(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:Ct.runWithException(t);await Ar(this).controller.lockWorkspace(this.id,r),await this.refreshReference()}async pin(e){_t.runWithException(e),await Ar(this).controller.pinWorkspace(this.id,e?.icon),await this.refreshReference()}async unpin(){await Ar(this).controller.unpinWorkspace(this.id),await this.refreshReference()}async showLoadingAnimation(){if(!fr())throw new Error("Not supported in IO Connect Browser");await Ar(this).controller.showWorkspaceLoadingAnimation(this.id)}async hideLoadingAnimation(){if(!fr())throw new Error("Not supported in IO Connect Browser");await Ar(this).controller.hideWorkspaceLoadingAnimation(this.id)}async setWindowDragMode(e){if(!fr())throw new Error("Not supported in IO Connect Browser");T.runWithException(e),await Ar(this).controller.setWindowDragMode(this.id,e),await this.refreshReference()}async onClosed(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onHibernated(e){j(e);const t=Ar(this).id,r={action:"hibernated",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await Ar(this).controller.processLocalSubscription(r,t)}async onResumed(e){j(e);const t=Ar(this).id,r={action:"resumed",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await Ar(this).controller.processLocalSubscription(r,t)}async onLockConfigurationChanged(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onTabReordered(e){j(e);const t=Ar(this).id,r={action:"tab-reordered",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await Ar(this).controller.processLocalSubscription(r,t)}async onWindowAdded(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowRemoved(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowLoaded(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowMaximized(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowRestored(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowSelected(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowTabReordered(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}}const Or=new WeakMap,$r=e=>Or.get(e).manager.getWindowData(e);class Hr{constructor(e){Or.set(this,{manager:e})}get id(){return $r(this).config.windowId}get elementId(){return $r(this).id}get type(){return"window"}get frameId(){return $r(this).frame.id}get workspaceId(){return $r(this).workspace.id}get positionIndex(){return $r(this).config.positionIndex}get isMaximized(){return $r(this).config.isMaximized}get isLoaded(){return $r(this).controller.checkIsWindowLoaded(this.id)}get isSelected(){return $r(this).config.isSelected}get focused(){return this.getGdWindow().isFocused}get title(){return $r(this).config.title}get allowExtract(){return $r(this).config.allowExtract}get allowReorder(){return $r(this).config.allowReorder}get showCloseButton(){return $r(this).config.showCloseButton}get width(){return $r(this).config.widthInPx}get height(){return $r(this).config.heightInPx}get minWidth(){return $r(this).config.minWidth}get minHeight(){return $r(this).config.minHeight}get maxWidth(){return $r(this).config.maxWidth}get maxHeight(){return $r(this).config.maxHeight}get workspace(){return $r(this).workspace}get frame(){return $r(this).frame}get parent(){return $r(this).parent}get appName(){return $r(this).config.appName}async forceLoad(){if(this.isLoaded)return;const e=$r(this).controller,t=$r(this).id,r=await e.forceLoadWindow(t);$r(this).config.windowId=r,await this.workspace.refreshReference()}async focus(){const e=$r(this).id,t=$r(this).controller;await t.focusItem(e),await this.workspace.refreshReference()}async close(){const e=$r(this).id,t=$r(this).controller;await t.closeItem(e),await $r(this).parent.removeChild(t=>t.id===e),await this.workspace.refreshReference()}async setTitle(e){v.runWithException(e);const t=$r(this).id,r=$r(this).controller;await r.setItemTitle(t,e),await this.workspace.refreshReference()}async maximize(){const e=$r(this).id,t=$r(this).controller;await t.maximizeItem(e),await this.workspace.refreshReference()}async restore(){const e=$r(this).id,t=$r(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=$r(this).id,t=$r(this).config.windowId,r=await $r(this).controller.ejectWindow(e,t);return $r(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=$r(this).config.windowId;return $r(this).controller.getGDWindow(e)}async moveTo(e){if(!(e instanceof Cr||e instanceof Tr||e instanceof Rr))throw new Error("Cannot add to the provided parent, because the provided parent is not an instance of Row, Column or Group");const t=$r(this).id,r=$r(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:Et.runWithException(t),o=$r(this).id;await $r(this).controller.lockWindow(o,r),await this.workspace.refreshReference()}async setSize(e){const t=Tt.runWithException(e);if(!t.width&&!t.height)throw new Error("Expected either width or height to be passed.");const r=$r(this).id,o=$r(this).controller;await o.resizeItem(r,{height:t.height,width:t.width,relative:!1}),await this.workspace.refreshReference()}async onRemoved(e){j(e);const t=$r(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e()},action:"removed",eventType:"window",scope:"window"};return await $r(this).controller.processLocalSubscription(r,t)}async onLockConfigurationChanged(e){j(e);const t=$r(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 $r(this).controller.processLocalSubscription(r,t)}async onTabReordered(e){j(e);const t=$r(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e()},action:"tab-reordered",eventType:"window",scope:"window"};return await $r(this).controller.processLocalSubscription(r,t)}}const _r=new WeakMap,jr=e=>_r.get(e).manager.getFrameData(e);class Gr{constructor(e){_r.set(this,{manager:e})}async registerShortcut(e,t){v.runWithException(e),j(t);const r=jr(this).summary.id;return await jr(this).controller.registerShortcut(e,r,t)}get id(){return jr(this).summary.id}get isInitialized(){return jr(this).summary.isInitialized}getBounds(){const e=jr(this).summary.id;return jr(this).controller.getFrameBounds(e)}async resize(e){const t=tt.runWithException(e),r=jr(this).summary.id;return jr(this).controller.resizeItem(r,t)}async move(e){const t=rt.runWithException(e),r=jr(this).summary.id;return jr(this).controller.moveFrame(r,t)}focus(){const e=jr(this).summary.id;return jr(this).controller.focusItem(e)}async state(){if(!fr())throw new Error("State operations are not supported in IO Connect Browser");const e=jr(this).summary.id;return jr(this).controller.getFrameState(e)}setIcon(e){if(!fr())throw new Error("frame.setIcon() is not supported in IO Connect Browser");R.runWithException(e);const t=this.id;return jr(this).controller.setTaskbarIcon(e,t)}getIcon(){if(!fr())throw new Error("frame.getIcon() is not supported in IO Connect Browser");const e=this.id;return jr(this).controller.getTaskbarIcon(e)}isVisible(){if(!fr())throw new Error("frame.isVisible() is not supported in IO Connect Browser");const e=this.id;return jr(this).controller.getFrameVisibility(e)}async minimize(){if(!fr())throw new Error("State operations are not supported in IO Connect Browser");const e=jr(this).summary.id;return jr(this).controller.changeFrameState(e,"minimized")}async maximize(){if(!fr())throw new Error("State operations are not supported in IO Connect Browser");const e=jr(this).summary.id;return jr(this).controller.changeFrameState(e,"maximized")}async restore(){if(!fr())throw new Error("State operations are not supported in IO Connect Browser");const e=jr(this).summary.id;return jr(this).controller.changeFrameState(e,"normal")}close(e){const t=W(nt).runWithException(e),r=jr(this).summary.id;return jr(this).controller.closeFrame(r,t)}snapshot(){const e=jr(this).summary.id;return jr(this).controller.getSnapshot(e,"frame")}async workspaces(){return jr(this).controller.getWorkspacesByFrameId(this.id)}async getConstraints(){const e=jr(this).controller,t=jr(this).summary.id;return e.getFrameConstraints(t)}async restoreWorkspace(e,t){v.runWithException(e);const r=ie.runWithException(t);return jr(this).controller.restoreWorkspace(e,r)}createWorkspace(e,t){const r=de.runWithException(e),o=G.runWithException(t);return jr(this).controller.createWorkspace(r,o)}async init(e){if(we.runWithException(e),jr(this).summary.isInitialized)throw new Error("The frame has already been initialized");return jr(this).controller.initFrame(this.id,e)}async showPopup(e){if(!fr())throw new Error("Popup operations are not supported in IO Connect Browser");const t=tr.runWithException(e),r=jr(this).controller;return await r.showPopup(t,this.id),r.getGDWindow(t.windowId)}async show(e){if(!fr())throw new Error("The show operation is not supported in IO Connect Browser");const t=jt.runWithException(e);return jr(this).controller.showFrame(this.id,t)}async hide(){if(!fr())throw new Error("The hide operation is not supported in IO Connect Browser");return jr(this).controller.hideFrame(this.id)}async showDialog(e){if(!fr())throw new Error("The showModal operation is not supported in IO Connect Browser");return nr.runWithException(e),jr(this).controller.showFrameDialog(this.id,e)}async setOnTop(e){if(!fr())throw new Error("The setOnTop operation is not supported in IO Connect Browser");return ar.runWithException(e),jr(this).controller.setFrameOnTop(this.id,e)}async onClosing(e){j(e);return await jr(this).controller.registerFrameOnClosing(this.id,async()=>{let t=!1;const r=()=>t=!0;try{await e({prevent:r})}catch(e){if(fr())throw e;console.warn(`onClosing callback for frame "${this.id}" threw: ${e}`)}return{prevent:t}})}async onClosed(e){j(e);const t=jr(this).summary.id,r={callback:t=>{e({frameId:t.frameSummary.id,frameBounds:t.frameBounds})},action:"closed",eventType:"frame",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onMaximized(e){j(e);const t=jr(this).summary.id,r={callback:()=>{e()},action:"maximized",eventType:"frame",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onMinimized(e){j(e);const t=jr(this).summary.id,r={callback:()=>{e()},action:"minimized",eventType:"frame",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onNormal(e){j(e);const t=jr(this).summary.id,r={callback:()=>{e()},action:"normal",eventType:"frame",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onWorkspaceOpened(e){j(e);const t=jr(this).summary.id,r={callback:async t=>{const r=await jr(this).controller.transformStreamPayloadToWorkspace(t);e(r)},action:"opened",eventType:"workspace",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onWorkspaceSelected(e){j(e);const t=jr(this).summary.id,r={callback:async t=>{const r=await jr(this).controller.getWorkspaceById(t.workspaceSummary.id);e(r)},action:"selected",eventType:"workspace",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onWorkspaceClosed(e){j(e);const t=jr(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 jr(this).controller.processLocalSubscription(r,t)}async onWindowAdded(e){j(e);const t=jr(this).summary.id,r={callback:async t=>{const r=(await jr(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 jr(this).controller.processLocalSubscription(r,t)}async onWindowRemoved(e){j(e);const t=jr(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 jr(this).controller.processLocalSubscription(r,t)}async onWindowLoaded(e){j(e);const t=jr(this).summary.id,r={callback:async t=>{const r=(await jr(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 jr(this).controller.processLocalSubscription(r,t)}async onInitializationRequested(e){return j(e),this.isInitialized||e(jr(this).summary.initializationContext),()=>{}}async onFocusChanged(e){j(e);const t=jr(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 Nr{parentsData=new WeakMap;workspacesData=new WeakMap;windowsData=new WeakMap;framesData=new WeakMap;deleteData(e){e instanceof Hr&&this.windowsData.delete(e),e instanceof zr&&this.workspacesData.delete(e),(e instanceof Cr||e instanceof Tr||e instanceof Rr)&&this.parentsData.delete(e),e instanceof Gr&&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 Hr){const r=this.windowsData.get(e);r.parent=t.parent||r.parent,r.config=t.config||r.config}if(e instanceof Cr||e instanceof Tr||e instanceof Rr){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 Vr=new WeakMap,Jr=(e,t)=>{const r=Vr.get(e).manager;return t instanceof zr?r.getWorkspaceData(t):Vr.get(e).manager.getParentData(t)};class Ur{frameId;workspaceId;positionIndex;constructor(e){Vr.set(this,{manager:e})}getId(e){return Jr(this,e).id}getPositionIndex(e){return Jr(this,e).config.positionIndex}getWorkspaceId(e){const t=Jr(this,e);return t.config.workspaceId||t.workspace.id}getFrameId(e){return Jr(this,e).frame.id}getAllChildren(e,t){j(t,!0);const r=Jr(this,e).children;return void 0===t?r:r.filter(t)}getMyParent(e){return e instanceof zr?e:Jr(this,e).parent}getMyFrame(e){return Jr(this,e).frame}getMyWorkspace(e){return e instanceof zr?e:Jr(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=Q.runWithException(t),n=Jr(this,e).controller,i=await n.add("window",Jr(this,e).id,r,o);if(e instanceof zr)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=Jr(this,e).controller,a=(await i.add("container",Jr(this,e).id,r,n)).itemId;if(e instanceof zr)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){j(t);const r=this.getAllChildren(e).find(t);r&&(await r.close(),e instanceof zr?await e.refreshReference():await this.getMyWorkspace(e).refreshReference())}async maximize(e){const{controller:t,id:r}=Jr(this,e);await t.maximizeItem(r),await this.getMyWorkspace(e.parent).refreshReference()}async restore(e){const{controller:t,id:r}=Jr(this,e);await t.restoreItem(r),await this.getMyWorkspace(e.parent).refreshReference()}async close(e){const t=Jr(this,e),r=Jr(this,e).controller;await r.closeItem(t.id),await this.getMyWorkspace(t.parent).refreshReference()}async lockContainer(e,t){const r=Jr(this,e),o=Jr(this,e).controller;await o.lockContainer(r.id,e.type,t),await this.getMyWorkspace(r.parent).refreshReference()}getAllowDrop(e){return Jr(this,e).config.allowDrop}getAllowDropLeft(e){const t=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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 Jr(this,e).config.minWidth}getMaxWidth(e){return Jr(this,e).config.maxWidth}getMinHeight(e){return Jr(this,e).config.minHeight}getMaxHeight(e){return Jr(this,e).config.maxHeight}getWidthInPx(e){return Jr(this,e).config.widthInPx}getHeightInPx(e){return Jr(this,e).config.heightInPx}getIsPinned(e){return Jr(this,e).config.isPinned}getIsMaximized(e){return Jr(this,e).config.isMaximized}getMaximizationBoundary(e){return Jr(this,e).config.maximizationBoundary}async setHeight(e,t){const r=Jr(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=Jr(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=Jr(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=Jr(this,e),{controller:o,id:n}=r;await o.setMaximizationBoundary(n,t),await this.getMyWorkspace(r.parent).refreshReference()}async bundleTo(e,t){const r=Jr(this,e),{controller:o,id:n}=r;await o.bundleItemTo(t,n)}async processLocalSubscription(e,t){return Jr(this,e).controller.processLocalSubscription(t,this.getId(e))}transformDefinition(e,t){let r;return void 0===t?r={type:e,children:[]}:t instanceof Ir?r=t.serialize():(void 0===t.type&&(t.type=e),r=re.runWithException(t),r.children=r.children||[]),r}}class qr{ioc;windows;contexts;layouts;layoutsV2;constructor(e,t,r,o,n){this.ioc=e,this.windows=t,this.contexts=r,this.layouts=o,this.layoutsV2=n}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(wr.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(wr.createFrame.name,e)};return this.ioc.getModel("frame",t)}async initFrame(e,t){await this.bridge.send(wr.initFrame.name,{frameId:e,...t})}async restoreWorkspaceById(e){const t=await this.bridge.send(wr.openWorkspaceById.name,{...e}),r={summary:await this.bridge.send(wr.getFrameSummary.name,{itemId:t.config.frameId})},o={frame:this.ioc.getModel("frame",r),snapshot:t};return this.ioc.getModel("workspace",o)}async restoreWorkspace(e,t){const r=await this.bridge.send(wr.openWorkspace.name,{name:e,restoreOptions:t}),o={summary:await this.bridge.send(wr.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=wr.addWindow.name;else{if("container"!==e)throw new Error(`Unrecognized add type: ${e}`);n=wr.addContainer.name}return await this.bridge.send(n,i)}async getFrame(e){const t={summary:await this.bridge.send(wr.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))}async handleOnSaved(e){const t=t=>{"Workspace"===t.type&&e(t)};if(this.layoutsV2){const[e,r]=await Promise.all([this.layoutsV2.onAdded(t),this.layoutsV2.onChanged(t)]);return()=>{e(),r()}}const r=this.layouts.onAdded(t),o=this.layouts.onChanged(t);return()=>{r(),o()}}async handleOnRemoved(e){const t=t=>{"Workspace"===t.type&&e(t)};return this.layoutsV2?this.layoutsV2.onRemoved(t):this.layouts.onRemoved(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(wr.getWorkspaceSnapshot.name,{itemId:e.workspaceSummary.id})};return this.ioc.getModel("workspace",r)}async fetchWorkspace(e){const t=await this.bridge.send(wr.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(wr.bundleWorkspace.name,{type:e,workspaceId:t})}async bundleItemTo(e,t){if(!await this.isOperationSupported(wr.bundleItem.name))throw new Error(`Operation ${wr.bundleItem.name} is not supported. Ensure that you are running the latest version of all packages`);await this.bridge.send(wr.bundleItem.name,{type:e,itemId:t})}async getTaskbarIcon(e){return await this.bridge.send(wr.getTaskbarIcon.name,{frameId:e})}async setTaskbarIcon(e,t){await this.bridge.send(wr.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(wr.restoreItem.name,{itemId:e})}async maximizeItem(e){await this.bridge.send(wr.maximizeItem.name,{itemId:e})}async focusItem(e){await this.bridge.send(wr.focusItem.name,{itemId:e})}async closeWorkspace(e){await this.bridge.send(wr.closeWorkspace.name,{itemId:e})}async closeItem(e){await this.bridge.send(wr.closeItem.name,{itemId:e})}async closeFrame(e,t){await this.bridge.send(wr.closeItem.name,{itemId:e,closeOptions:t})}async resizeItem(e,t){await this.bridge.send(wr.resizeItem.name,Object.assign({},{itemId:e},t))}async setMaximizationBoundary(e,t){await this.bridge.send(wr.setMaximizationBoundary.name,Object.assign({},{itemId:e},t))}async showWorkspaceLoadingAnimation(e){await this.bridge.send(wr.showLoadingAnimation.name,{itemId:e,type:"workspace"})}async hideWorkspaceLoadingAnimation(e){await this.bridge.send(wr.hideLoadingAnimation.name,{itemId:e,type:"workspace"})}async setWindowDragMode(e,t){await this.bridge.send(wr.setWindowDragMode.name,{itemId:e,dragMode:t})}async moveFrame(e,t){await this.bridge.send(wr.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(wr.forceLoadWindow.name,{itemId:e})).windowId}async ejectWindow(e,t){return await this.bridge.send(wr.ejectWindow.name,{itemId:e,windowId:t})}async moveWindowTo(e,t){await this.bridge.send(wr.moveWindowTo.name,{itemId:e,containerId:t})}async getSnapshot(e,t){let r;return"workspace"===t?r=await this.bridge.send(wr.getWorkspaceSnapshot.name,{itemId:e}):"frame"===t&&(r=await this.bridge.send(wr.getFrameSnapshot.name,{itemId:e})),r}async setItemTitle(e,t){await this.bridge.send(wr.setItemTitle.name,{itemId:e,title:t})}refreshChildren(e){const{parent:t,children:r,existingChildren:o,workspace:n}=e;if(t instanceof Hr||"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 zr||this.privateDataManager.remapChild(t,{children:i}),i}iterateFindChild(e,t){let r=e.find(e=>t(e));return r||(e.some(e=>!(e instanceof Hr)&&(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 Hr||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(wr.hibernateWorkspace.name,{workspaceId:e})}async resumeWorkspace(e){await this.bridge.send(wr.resumeWorkspace.name,{workspaceId:e})}async lockWorkspace(e,t){await this.bridge.send(wr.lockWorkspace.name,{workspaceId:e,config:t})}async lockWindow(e,t){await this.bridge.send(wr.lockWindow.name,{windowPlacementId:e,config:t})}async lockContainer(e,t,r){await this.bridge.send(wr.lockContainer.name,{itemId:e,type:t,config:r})}async pinWorkspace(e,t){await this.bridge.send(wr.pinWorkspace.name,{workspaceId:e,icon:t})}async unpinWorkspace(e){await this.bridge.send(wr.unpinWorkspace.name,{workspaceId:e})}async getWorkspaceIcon(e){return(await this.bridge.send(wr.getWorkspaceIcon.name,{workspaceId:e})).icon}setWorkspaceIcon(e,t){return this.bridge.send(wr.setWorkspaceIcon.name,{workspaceId:e,icon:t})}async getPlatformFrameId(){try{return await this.bridge.send(wr.getPlatformFrameId.name,{})}catch(e){return{}}}async setLoadingStrategy(e,t){return await this.isOperationSupported(wr.setLoadingStrategy.name),this.bridge.send(wr.setLoadingStrategy.name,{itemId:e,strategy:t})}async showFrame(e,t){const r={frameId:e,isVisible:!0,...t};return this.bridge.send(wr.changeFrameVisibility.name,r)}async hideFrame(e){return this.bridge.send(wr.changeFrameVisibility.name,{frameId:e,isVisible:!1})}async getFrameVisibility(e){return(await this.bridge.send(wr.getFrameVisibility.name,{itemId:e})).isVisible}async showFrameDialog(e,t){return await this.bridge.send(wr.showFrameDialog.name,{frameId:e,options:t},{timeout:864e5})}async setFrameOnTop(e,t){return this.bridge.send(wr.setFrameOnTop.name,{frameId:e,onTop:t.onTop})}async isOperationSupported(e){return fr()?{isSupported:!0}:await this.bridge.send(wr.operationCheck.name,{operation:e})}async showPopup(e,t){return this.bridge.send(wr.showPopup.name,{...e,frameId:t})}}class Kr{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(wr.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 restoreWorkspaceById(e){if(!(await this.getLayoutSummaries()).some(t=>t.id===e.layoutId))throw new Error(`This layout: ${e.layoutId} cannot be restored, because it doesn't exist.`);if(e?.frameId){if(!(await this.bridge.send(wr.getAllFramesSummaries.name)).summaries.some(t=>t.id===e.frameId))throw new Error(`Cannot reuse the frame with id: ${e.frameId}, because there is no frame with that ID found`)}return await this.base.restoreWorkspaceById(e)}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(wr.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 fr()?this.handleEnterpriseLocalSubscription(e,t):this.handleCoreLocalSubscription(e,t)}processGlobalSubscription(e,t,r){return fr()?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(wr.getAllFramesSummaries.name);return this.base.getFrames(t.summaries,e)}getWorkspaceById(e){return this.base.fetchWorkspace(e)}async getWorkspaceByWindowId(e){return fr()?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(wr.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(wr.getAllLayoutsSummaries.name)).summaries}async deleteLayout(e){await this.bridge.send(wr.deleteLayout.name,{name:e})}async deleteLayoutById(e){await this.bridge.send(wr.deleteLayoutById.name,{layoutId:e})}async exportLayout(e){return(await this.bridge.send(wr.exportAllLayouts.name)).layouts.reduce((t,r)=>(e&&!e(r)||t.push(r),t),[])}async saveLayout(e){return await this.bridge.send(wr.saveLayout.name,e)}async saveLayoutById(e){return await this.bridge.send(wr.saveLayoutById.name,e)}async importLayouts(e,t){if(fr())try{await this.bridge.send(wr.importLayouts.name,{layouts:e,mode:t})}catch(r){await Promise.all(e.map(e=>this.bridge.send(wr.importLayout.name,{layout:e,mode:t})))}else await this.base.importLayouts(e,t)}async handleOnSaved(e){return this.base.handleOnSaved(e)}async 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(wr.changeFrameState.name,{frameId:e,requestedState:t})}async getFrameBounds(e){return(await this.bridge.send(wr.getFrameBounds.name,{itemId:e})).bounds}async getFrameState(e){return(await this.bridge.send(wr.getFrameState.name,{itemId:e})).state}async closeWorkspace(e,t){if(fr())return await this.closeItem(e);let r=!1;try{const{isSupported:e}=await this.base.isOperationSupported(wr.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 Qr{bridge;_shortcuts=r();constructor(e){this.bridge=e,this.bridge.onOperation(e=>{if(e.operation===pr.shortcutClicked.name){const t=e.data;this._shortcuts.execute(`${t.frameId}-${t.shortcut}`)}})}async registerShortcut(e,t,r){await this.bridge.send(wr.registerShortcut.name,{shortcut:e,frameId:t});const o=this._shortcuts.add(`${t}-${e}`,r);return()=>{o(),this.bridge.send(wr.unregisterShortcut.name,{shortcut:e,frameId:t})}}}class Xr{bridge;registry=r();constructor(e){this.bridge=e,this.subscribeToFrameClosing()}async registerFrameOnClosing(e,t){if(!fr()){const{isSupported:t}=await this.bridge.send(wr.operationCheck.name,{operation:wr.subscribeToFrameClosing.name}).catch(()=>({isSupported:!1}));if(!t)return console.warn(`onClosing for frame "${e}" is not supported by the current version of @interopio/browser-platform (requires 5.0.0+).`),()=>{}}return await this.bridge.send(wr.subscribeToFrameClosing.name,{itemId:e}),this.registry.add(e,t)}subscribeToFrameClosing(){this.bridge.onOperationWithResponse(async e=>{if(e.operation!==pr.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 Yr{agm;windows;layouts;contexts;layoutsV2;_controllerInstance;_bridgeInstance;_transportInstance;_privateDataManagerInstance;_parentBaseInstance;_baseController;_shortcutsController;_closingController;constructor(e,t,r,o,n){this.agm=e,this.windows=t,this.layouts=r,this.contexts=o,this.layoutsV2=n}get baseController(){return this._baseController||(this._baseController=new qr(this,this.windows,this.contexts,this.layouts,this.layoutsV2)),this._baseController}get controller(){return this._controllerInstance||(this._controllerInstance=new Kr(this.bridge,this.baseController,this.shortcutsController,this.closingController)),this._controllerInstance}get shortcutsController(){return this._shortcutsController||(this._shortcutsController=new Qr(this.bridge)),this._shortcutsController}get closingController(){return this._closingController||(this._closingController=new Xr(this.bridge)),this._closingController}get bridge(){return this._bridgeInstance||(this._bridgeInstance=new gr(this.transport,r())),this._bridgeInstance}get transport(){return this._transportInstance||(this._transportInstance=new br(this.agm,r())),this._transportInstance}get privateDataManager(){return this._privateDataManagerInstance||(this._privateDataManagerInstance=new Nr),this._privateDataManagerInstance}get parentBase(){return this._parentBaseInstance||(this._parentBaseInstance=new Ur(this.privateDataManager)),this._parentBaseInstance}async initiate(e){await this.transport.initiate(e)}getModel(e,t){switch(e){case"frame":{const e=new Gr(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 Hr(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 Tr(this.parentBase):"row"===e?new Cr(this.parentBase):new Rr(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 zr(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 xr(e.definition,t,this.controller);case"row":case"column":case"group":return e.definition.type=e.type,new Ir(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 Zr=async e=>{const t=new Yr(e.agm,e.windows,e.layouts,e.contexts,e.layouts.v2),r=e.interop.instance.windowId;await t.initiate(r),e.workspaces=((e,t)=>{const r=t.controller,o=async e=>(j(e,!0),r.getFrames(e)),n=async e=>(j(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=ge.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=>(j(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=>(j(e),(await r.getWorkspaces(e))[0]),getWorkspaceById:async e=>(v.runWithException(e),r.getWorkspaceById(e)),getAllWorkspaces:e=>(j(e,!0),r.getWorkspaces(e)),getWindow:async e=>(j(e),r.getWindow(e)),getBox:async e=>(j(e),r.getParent(e)),restoreWorkspace:async(e,t)=>{v.runWithException(e);const o=ie.runWithException(t);return r.restoreWorkspace(e,o)},restoreWorkspaceById:async e=>{const t=ae.runWithException(e);return r.restoreWorkspaceById(t)},createWorkspace:async(e,t)=>{const o=de.runWithException(e),n=G.runWithException(t);return r.createWorkspace(o,n)},createEmptyFrame:async e=>{const t=pe.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)),deleteById:async e=>(v.runWithException(e),r.deleteLayoutById(e)),export:async e=>(j(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=>Pe.runWithException(e)),r.importLayouts(e,t)},save:async e=>{const t=xt.runWithException(e);return r.saveLayout(t)},saveById:async e=>{const t=Dt.runWithException(e);return r.saveLayoutById(t)},onSaved:async e=>(j(e),r.handleOnSaved(e)),onRemoved:async e=>(j(e),r.handleOnRemoved(e))},onFrameOpened:n,onFrameClosed:async e=>(j(e),await r.processGlobalSubscription(t=>{e({frameId:t.frameSummary.id,frameBounds:t.frameBounds})},"frame","closed")),onWorkspaceOpened:async e=>(j(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","opened")),onWorkspaceClosed:async e=>(j(e),await r.processGlobalSubscription(t=>{e({frameId:t.frameSummary.id,workspaceId:t.workspaceSummary.id,frameBounds:t.frameBounds})},"workspace","closed")),onWorkspaceHibernated:async e=>(j(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","hibernated")),onWorkspaceResumed:async e=>(j(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","resumed")),onWorkspaceTabReordered:async e=>(j(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","tab-reordered")),onWindowTabReordered:async e=>(j(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=>(j(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=>(j(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=>(j(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=>(j(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=>(j(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=>(j(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:"5.1.0-next.0"}})(e,t)};return"undefined"!=typeof window&&(window.IOWorkspaces=Zr),Zr});
|
|
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("")},p=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)},w=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(p("."+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 p("["+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(p("["+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(p("."+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"}:p(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=w.string,g=w.number,f=w.boolean,y=w.anyJson;w.unknownJson;var b=w.constant,k=w.object,I=w.array;w.tuple,w.dict;var W=w.optional,S=w.oneOf;w.union;var x=w.intersection;w.withDefault,w.valueAt,w.succeed,w.fail;var D=w.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"),B=g().where(e=>Number.isInteger(e)&&e>=0,"Expected a non-negative integer"),E=g().where(e=>e>0,"Expected a positive number"),T=S(b("keepInside"),b("autoEject")),M=k({inWorkspace:f()}),F=k({isVisible:f()}),R=k({base64Image:v}),L=k({icon:R,frameId:v}),A=S(b("workspace"),b("row"),b("column"),b("group")),P=S(b("row"),b("column"),b("group")),z=S(b("maximized"),b("minimized"),b("normal")),O=S(b("workspace")),$=k({allowInApplicationPopup:W(f()),allowDrop:W(f())}),H=k({appName:v,allowInApplicationPopup:W(f()),allowDrop:W(f())}),_=k({apps:W(I(H)),default:W($)}),j=(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}`)},G=W(k({saveLayout:W(f())})),N=k({name:v}),V=k({layoutId:v}),J=k({minWidth:W(g()),maxWidth:W(g()),minHeight:W(g()),maxHeight:W(g()),allowExtract:W(f()),allowReorder:W(f()),showCloseButton:W(f()),positionIndex:W(B)}),U=k({minWidth:W(g()),maxWidth:W(g()),minHeight:W(g()),maxHeight:W(g()),allowExtract:W(f()),allowReorder:W(f()),allowDrop:W(f()),allowDropHeader:W(f()),allowDropLeft:W(f()),allowDropRight:W(f()),allowDropTop:W(f()),allowDropBottom:W(f()),showMaximizeButton:W(f()),showEjectButton:W(f()),showAddWindowButton:W(f()),positionIndex:W(B)}),q=k({minHeight:W(g()),maxHeight:W(g()),allowDrop:W(f()),allowSplitters:W(f()),isPinned:W(f()),maximizationBoundary:W(f()),positionIndex:W(B)}),K=k({minWidth:W(g()),maxWidth:W(g()),allowDrop:W(f()),allowSplitters:W(f()),isPinned:W(f()),maximizationBoundary:W(f()),positionIndex:W(B)}),Q=k({type:W(b("window")),appName:W(v),windowId:W(v),context:W(y()),config:W(J)}),X=k({type:b("window"),appName:W(v),windowId:W(v),context:W(y()),config:W(J)}),Y=W(k({type:W(P),children:W(D(()=>I(S(Q,Y)))),config:W(y())})),Z=k({type:b("column"),children:W(D(()=>I(S(X,re)))),config:W(K)}),ee=k({type:b("row"),children:W(D(()=>I(S(X,re)))),config:W(q)}),te=k({type:b("group"),children:W(D(()=>I(S(X,re)))),config:W(U)}),re=S(te,Z,ee);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 oe=k({bounds:W(k({left:W(g()),top:W(g()),width:W(C),height:W(C)})),isVisible:W(f()),frameId:W(v)}),ne=S(b("direct"),b("delayed"),b("lazy")),ie=W(k({app:W(v),context:W(y()),loadingStrategy:W(ne),title:W(v),reuseWorkspaceId:W(v),frameId:W(v),applicationName:W(v),lockdown:W(f()),activateFrame:W(f()),newFrame:W(S(oe,f())),noTabHeader:W(f()),inMemoryLayout:W(f()),icon:W(v),isPinned:W(f()),isSelected:W(f()),positionIndex:W(C),allowSystemHibernation:W(f())})),ae=x(ie,k({layoutId:v})),se=x(ie,k({layoutId:v})),ce=k({name:v,restoreOptions:W(ie)}),de=k({children:W(I(S(Q,re))),context:W(y()),config:W(k({title:W(v),position:W(C),isFocused:W(f()),noTabHeader:W(f()),reuseWorkspaceId:W(v),loadingStrategy:W(ne),allowDrop:W(f()),allowDropLeft:W(f()),allowDropTop:W(f()),allowDropRight:W(f()),allowDropBottom:W(f()),allowSystemHibernation:W(f()),allowExtract:W(f()),allowWindowReorder:W(f()),showSaveButton:W(f()),allowWorkspaceTabReorder:W(f()),allowWorkspaceTabExtract:W(f()),showCloseButton:W(f()),allowSplitters:W(f()),showWindowCloseButtons:W(f()),showEjectButtons:W(f()),showAddWindowButtons:W(f()),icon:W(v),isPinned:W(f()),isSelected:W(f()),positionIndex:W(C),windowDragMode:W(T),appRestrictions:W(_)})),frame:W(k({activate:W(f()),reuseFrameId:W(v),applicationName:W(v),newFrame:W(S(f(),oe))}))}),le=k({workspaceId:v}),he=k({name:v,restoreOptions:W(ie)}),ue=k({id:v,restoreOptions:W(ie)}),pe=W(k({applicationName:W(m()),frameConfig:W(oe),context:W(k()),layoutComponentId:W(v)})),we=k({workspaces:I(S(W(de),W(he),W(ue)))}),me=k({frameId:v,workspaces:I(S(de,he,ue))}),ge=k({type:A,definition:W(S(de,Y))}),fe=x(de,k({saveConfig:W(k({saveLayout:W(f())}))})),ye=k({itemId:v}),be=k({context:W(k())}),ke=k({id:v,isFocused:W(f()),isInitialized:W(f()),initializationContext:W(be)});k({type:P,id:v,frameId:v,workspaceId:v,positionIndex:g()});const Ie=S(b("frame"),b("workspace"),b("container"),b("window")),We=k({type:Ie,branch:v}),Se=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")),xe=k({frameId:v,title:v,positionIndex:C,name:v,layoutId:W(v),layoutName:W(v),isHibernated:W(f()),isSelected:W(f()),allowDrop:W(f()),allowSystemHibernation:W(f()),allowExtract:W(f()),allowWindowReorder:W(f()),allowSplitters:W(f()),showCloseButton:W(f()),showSaveButton:W(f()),allowWorkspaceTabReorder:W(f()),allowWorkspaceTabExtract:W(f()),allowDropLeft:W(f()),allowDropTop:W(f()),allowDropRight:W(f()),allowDropBottom:W(f()),minWidth:W(g()),maxWidth:W(g()),minHeight:W(g()),maxHeight:W(g()),showAddWindowButtons:W(f()),showEjectButtons:W(f()),showWindowCloseButtons:W(f()),widthInPx:W(g()),heightInPx:W(g()),isPinned:W(f()),windowDragMode:W(T),loadingStrategy:W(ne),appRestrictions:W(_)}),De=k({frameId:v,workspaceId:v,positionIndex:g(),minWidth:W(g()),maxWidth:W(g()),minHeight:W(g()),maxHeight:W(g())}),ve=y(),Ce=x(De,k({windowId:W(v),isMaximized:W(f()),isFocused:f(),isSelected:W(f()),title:W(m()),appName:W(v),allowExtract:W(f()),allowReorder:W(f()),showCloseButton:W(f()),minWidth:W(g()),minHeight:W(g()),maxWidth:W(g()),maxHeight:W(g()),widthInPx:W(g()),heightInPx:W(g()),context:W(y())})),Be=k({id:W(v),config:ve,children:W(D(()=>I(Te))),type:S(b("row"),b("column"),b("group"))}),Ee=k({id:W(v),config:Ce,type:b("window")}),Te=S(Ee,Be),Me=k({id:v,config:xe,children:I(Te),frameSummary:ke,context:W(y())}),Fe=k({type:b("window"),config:k({appName:v,windowId:W(v),context:W(y()),url:W(v),title:W(m()),allowExtract:W(f()),allowReorder:W(f()),showCloseButton:W(f()),minWidth:W(g()),minHeight:W(g()),maxWidth:W(g()),maxHeight:W(g()),isMaximized:W(f()),instanceId:W(v)})}),Re=k({type:b("group"),config:y(),children:I(S(Fe))}),Le=k({type:b("column"),config:y(),children:I(S(Re,Fe,D(()=>Le),D(()=>Ae)))}),Ae=k({type:b("row"),config:y(),children:I(S(Le,Re,Fe,D(()=>Ae)))}),Pe=k({id:W(v),name:v,type:b("Workspace"),metadata:W(y()),components:I(k({type:b("Workspace"),application:W(m()),state:k({config:y(),context:y(),children:I(S(Ae,Le,Re,Fe))})}))}),ze=k({layout:Pe,mode:S(b("replace"),b("merge"))}),Oe=k({layouts:I(Pe),mode:S(b("replace"),b("merge"))}),$e=k({layouts:I(Pe)}),He=k({id:v,isFocused:W(f()),isInitialized:W(f()),initializationContext:W(be)}),_e=k({summaries:I(He)}),je=k({id:v,config:xe}),Ge=k({summaries:I(je)}),Ne=k({id:v,config:y(),workspaces:I(Me)}),Ve=k({id:W(v),name:v,applicationName:W(m())}),Je=k({summaries:I(Ve)}),Ue=k({windowId:v}),qe=y(),Ke=k({state:z}),Qe=k({top:g(),left:g(),width:C,height:C}),Xe=k({bounds:Qe}),Ye=k({icon:W(v)}),Ze=k({id:W(v)}),et=k({isSupported:f()}),tt=k({width:W(E),height:W(E),relative:W(f())}),rt=k({top:W(g()),left:W(g()),relative:W(f())}),ot=k({itemId:v}),nt=k({allowPrevent:W(f()),showDialog:W(f())}),it=k({itemId:v,closeOptions:W(nt)}),at=k({itemId:v,excludeIds:W(f())}),st=k({frameId:v,requestedState:z}),ct=k({itemId:v,title:v}),dt=k({itemId:v,containerId:v}),lt=x(ot,tt),ht=k({itemId:v,enabled:f()}),ut=x(ot,rt);k({id:v,type:P});const pt=k({definition:Q,parentId:v,parentType:A}),wt=k({definition:re,parentId:v,parentType:A}),mt=k({itemId:v,windowId:W(v)}),gt=k({live:f()}),ft=k({type:S(b("row"),b("column")),workspaceId:v}),yt=k({type:S(b("row"),b("column")),itemId:v}),bt=k({itemId:v,config:ve}),kt=k({frameSummary:ke,frameBounds:W(Qe)}),It=k({workspaceSummary:je,frameSummary:ke,workspaceSnapshot:W(Me),frameBounds:W(Qe)}),Wt=k({containerSummary:bt}),St=k({windowSummary:k({itemId:v,parentId:v,config:Ce})}),xt=k({id:W(v),name:v,workspaceId:v,saveContext:W(f()),allowMultiple:W(f()),metadata:W(k()),saveWindowContexts:W(f())}),Dt=k({id:W(v),name:v,workspaceId:v,saveContext:W(f()),allowMultiple:W(f()),metadata:W(k()),saveWindowContexts:W(f())}),vt=k({saveContext:W(f()),allowMultiple:W(f()),metadata:W(k()),saveWindowContexts:W(f())}),Ct=k({allowDrop:W(f()),allowDropLeft:W(f()),allowDropTop:W(f()),allowDropRight:W(f()),allowDropBottom:W(f()),allowSystemHibernation:W(f()),allowExtract:W(f()),allowWindowReorder:W(f()),allowSplitters:W(f()),showCloseButton:W(f()),showSaveButton:W(f()),allowWorkspaceTabReorder:W(f()),allowWorkspaceTabExtract:W(f()),showWindowCloseButtons:W(f()),showAddWindowButtons:W(f()),showEjectButtons:W(f())}),Bt=k({workspaceId:v,config:W(Ct)}),Et=k({allowExtract:W(f()),allowReorder:W(f()),showCloseButton:W(f())}),Tt=k({width:W(C),height:W(C)}),Mt=k({windowPlacementId:v,config:W(Et)}),Ft=k({allowDrop:W(f()),allowSplitters:W(f())}),Rt=k({allowDrop:W(f()),allowSplitters:W(f())}),Lt=k({allowExtract:W(f()),allowReorder:W(f()),allowDrop:W(f()),allowDropLeft:W(f()),allowDropRight:W(f()),allowDropTop:W(f()),allowDropBottom:W(f()),allowDropHeader:W(f()),showMaximizeButton:W(f()),showEjectButton:W(f()),showAddWindowButton:W(f())}),At=k({itemId:v,type:b("row"),config:W(Ft)}),Pt=k({itemId:v,type:b("column"),config:W(Rt)}),zt=k({itemId:v,type:b("group"),config:W(Lt)}),Ot=S(At,Pt,zt),$t=k({workspaceId:v,icon:W(v)}),Ht=k({workspaceId:v,icon:W(v)}),_t=W(k({icon:W(v)})),jt=W(k({activate:W(f())})),Gt=k({shortcut:v,frameId:v}),Nt=k({shortcut:v,frameId:v}),Vt=k({frameId:v}),Jt=k({enabled:f()}),Ut=k({itemId:v,type:O}),qt=k({operation:v}),Kt=k({itemId:v,dragMode:T}),Qt=k({itemId:v,strategy:ne}),Xt=k({prevent:f()}),Yt=k({width:C,height:C}),Zt=k({left:g(),top:g(),width:C,height:C}),er=S(b("none"),b("left"),b("right"),b("top"),b("bottom")),tr=k({size:Yt,targetBounds:Zt,targetLocation:er,windowId:v,horizontalOffset:W(g()),verticalOffset:W(g()),focus:W(f())}),rr=k({frameId:v,size:Yt,targetBounds:Zt,targetLocation:er,windowId:v,horizontalOffset:W(g()),verticalOffset:W(g()),focus:W(f())}),or=k({frameId:v,activate:W(f()),isVisible:f()}),nr=k({mode:W(S(b("Global"),b("WindowContainer"))),type:m(),size:W(Yt),message:v,messageTitle:W(v),movable:W(f()),transparent:W(f()),title:v,context:W(y()),affirmativeButtonName:W(v),showAffirmativeButton:W(f()),cancelButtonName:W(v),showCancelButton:W(f()),negativeButtonName:W(v),showNegativeButton:W(f()),defaultAction:W(S(b("affirmative"),b("negative"),b("cancel"))),timerDuration:W(E),showTimer:W(f()),inputMaxLength:W(E),inputPattern:W(v),inputPatternErrorMessage:W(v),inputPlaceholder:W(m()),blur:W(f())}),ir=k({frameId:v,options:nr}),ar=k({onTop:f()}),sr=k({frameId:v,onTop:f()}),cr="T42.Web.Platform.Control",dr="T42.Web.Platform.WSP.Stream",lr={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}},hr={control:{name:"T42.Workspaces.Client.Control",isStream:!1}},ur={frame:{name:"T42.Workspaces.Stream.Frame",payloadDecoder:kt},workspace:{name:"T42.Workspaces.Stream.Workspace",payloadDecoder:It},container:{name:"T42.Workspaces.Stream.Container",payloadDecoder:Wt},window:{name:"T42.Workspaces.Stream.Window",payloadDecoder:St}},pr={shortcutClicked:{name:"shortcutClicked",argsDecoder:Nt,resultDecoder:qe},frameClosing:{name:"frameClosing",argsDecoder:Vt,resultDecoder:Xt}},wr={ping:{name:"ping",resultDecoder:gt},isWindowInWorkspace:{name:"isWindowInWorkspace",argsDecoder:ot,resultDecoder:M},createWorkspace:{name:"createWorkspace",resultDecoder:Me,argsDecoder:fe},createFrame:{name:"createFrame",resultDecoder:He,argsDecoder:pe},initFrame:{name:"initFrame",resultDecoder:qe,argsDecoder:me},getAllFramesSummaries:{name:"getAllFramesSummaries",resultDecoder:_e},getFrameSummary:{name:"getFrameSummary",resultDecoder:ke,argsDecoder:ye},getAllWorkspacesSummaries:{name:"getAllWorkspacesSummaries",resultDecoder:Ge},getWorkspaceSnapshot:{name:"getWorkspaceSnapshot",resultDecoder:Me,argsDecoder:ot},getAllLayoutsSummaries:{name:"getAllLayoutsSummaries",resultDecoder:Je},openWorkspaceById:{name:"openWorkspaceById",argsDecoder:se,resultDecoder:Me},openWorkspace:{name:"openWorkspace",argsDecoder:ce,resultDecoder:Me},deleteLayout:{name:"deleteLayout",resultDecoder:qe,argsDecoder:N},deleteLayoutById:{name:"deleteLayoutById",resultDecoder:qe,argsDecoder:V},saveLayout:{name:"saveLayout",resultDecoder:Pe,argsDecoder:xt},saveLayoutById:{name:"saveLayoutById",resultDecoder:Pe,argsDecoder:Dt},importLayout:{name:"importLayout",resultDecoder:qe,argsDecoder:ze},importLayouts:{name:"importLayouts",resultDecoder:qe,argsDecoder:Oe},exportAllLayouts:{name:"exportAllLayouts",resultDecoder:$e},restoreItem:{name:"restoreItem",argsDecoder:ot,resultDecoder:qe},maximizeItem:{name:"maximizeItem",argsDecoder:ot,resultDecoder:qe},focusItem:{name:"focusItem",argsDecoder:ot,resultDecoder:qe},closeItem:{name:"closeItem",argsDecoder:it,resultDecoder:qe},closeWorkspace:{name:"closeWorkspace",argsDecoder:it,resultDecoder:qe},resizeItem:{name:"resizeItem",argsDecoder:lt,resultDecoder:qe},setMaximizationBoundary:{name:"setMaximizationBoundary",argsDecoder:ht,resultDecoder:qe},changeFrameState:{name:"changeFrameState",argsDecoder:st,resultDecoder:qe},getFrameState:{name:"getFrameState",argsDecoder:ot,resultDecoder:Ke},getFrameBounds:{name:"getFrameBounds",argsDecoder:ot,resultDecoder:Xe},moveFrame:{name:"moveFrame",argsDecoder:ut,resultDecoder:qe},getFrameSnapshot:{name:"getFrameSnapshot",argsDecoder:at,resultDecoder:Ne},forceLoadWindow:{name:"forceLoadWindow",argsDecoder:ot,resultDecoder:Ue},ejectWindow:{name:"ejectWindow",argsDecoder:ot,resultDecoder:Ue},setItemTitle:{name:"setItemTitle",argsDecoder:ct,resultDecoder:qe},moveWindowTo:{name:"moveWindowTo",argsDecoder:dt,resultDecoder:qe},addWindow:{name:"addWindow",argsDecoder:pt,resultDecoder:mt},addContainer:{name:"addContainer",argsDecoder:wt,resultDecoder:mt},bundleWorkspace:{name:"bundleWorkspace",argsDecoder:ft,resultDecoder:qe},bundleItem:{name:"bundleItem",argsDecoder:yt,resultDecoder:qe},hibernateWorkspace:{name:"hibernateWorkspace",argsDecoder:le,resultDecoder:qe},resumeWorkspace:{name:"resumeWorkspace",argsDecoder:le,resultDecoder:qe},lockWorkspace:{name:"lockWorkspace",argsDecoder:Bt,resultDecoder:qe},lockWindow:{name:"lockWindow",argsDecoder:Mt,resultDecoder:qe},lockContainer:{name:"lockContainer",argsDecoder:Ot,resultDecoder:qe},pinWorkspace:{name:"pinWorkspace",argsDecoder:$t,resultDecoder:qe},unpinWorkspace:{name:"unpinWorkspace",argsDecoder:le,resultDecoder:qe},getWorkspaceIcon:{name:"getWorkspaceIcon",argsDecoder:le,resultDecoder:Ye},setWorkspaceIcon:{name:"setWorkspaceIcon",argsDecoder:Ht,resultDecoder:qe},registerShortcut:{name:"registerShortcut",argsDecoder:Gt,resultDecoder:qe},unregisterShortcut:{name:"unregisterShortcut",argsDecoder:Gt,resultDecoder:qe},showLoadingAnimation:{name:"showLoadingAnimation",argsDecoder:Ut,resultDecoder:qe},hideLoadingAnimation:{name:"hideLoadingAnimation",argsDecoder:Ut,resultDecoder:qe},getPlatformFrameId:{name:"getPlatformFrameId",resultDecoder:Ze},operationCheck:{name:"operationCheck",argsDecoder:qt,resultDecoder:et},setWindowDragMode:{name:"setWindowDragMode",argsDecoder:Kt,resultDecoder:qe},setLoadingStrategy:{name:"setLoadingStrategy",argsDecoder:Qt,resultDecoder:qe},getTaskbarIcon:{name:"getTaskbarIcon",resultDecoder:R},setTaskbarIcon:{name:"setTaskbarIcon",argsDecoder:L,resultDecoder:qe},subscribeToFrameClosing:{name:"subscribeToFrameClosing",argsDecoder:ot,resultDecoder:qe},showPopup:{name:"showPopup",argsDecoder:rr,resultDecoder:qe},changeFrameVisibility:{name:"changeFrameVisibility",argsDecoder:or,resultDecoder:qe},getFrameVisibility:{name:"getFrameVisibility",argsDecoder:ot,resultDecoder:F},showFrameDialog:{name:"showFrameDialog",argsDecoder:ir,resultDecoder:y()},setFrameOnTop:{name:"setFrameOnTop",argsDecoder:sr,resultDecoder:qe}};class mr{resolve;reject;promise;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class gr{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(wr).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 mr,o={streamType:e.eventType,level:e.scope,levelId:e.scopeId,promise:t.promise};this.pendingSubScriptions.push(o);try{const o=ur[e.eventType],n=await this.transport.subscribe(o.name,this.getBranchKey(e),e.eventType);n.onData(e=>{const t=e.data,r=We.run(e.requestArguments),o=Se.run(t.action);if(!r.ok||!o.ok)return;const n=r.result.type,i=`${n}-${r.result.branch}-${o.result}`,a=ur[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(pr).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(pr).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=Se.runWithException(t.action),r=Ie.runWithException(t.type),o=ur[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 fr=()=>"undefined"==typeof window||(window.glue42gd||window.iodesktop),yr=()=>"undefined"==typeof window?null:window.glue42core||window.iobrowser;class br{agm;registry;defaultTransportTimeout=12e4;coreEventMethodInitiated=!1;corePlatformSubPromise;constructor(e,t){this.agm=e,this.registry=t}async initiate(e){if(fr())await Promise.all(Object.values(lr).map(e=>this.verifyMethodLive(e.name)));else{const t=yr().communicationId;await Promise.all([this.verifyMethodLive(cr,t),this.verifyMethodLive(dr,t)]),await this.transmitControl("frameHello",{windowId:e})}await Promise.all(Object.keys(hr).map(e=>this.registerMethod(e)))}coreSubscriptionReady(e){return this.coreEventMethodInitiated||this.subscribePlatform(e),this.corePlatformSubPromise}subscribePlatform(e){this.coreEventMethodInitiated=!0;const t=yr().communicationId;this.corePlatformSubPromise=this.agm.subscribe(dr,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=fr()?{operation:e,operationArguments:t}:{operation:e,domain:"workspaces",data:t},n=fr()?lr.control.name:cr,i=fr()?void 0:yr().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=hr[e];return this.agm.register(t.name,(t,r)=>Promise.all(this.registry.execute(e,t,r)))}}const kr=new WeakMap;class Ir{constructor(e,t){const r=t.wrapChildren(e.children);delete e.children,kr.set(this,{base:t,children:r,definition:e})}get type(){return kr.get(this).definition.type}addColumn(e){return kr.get(this).base.add("column",kr.get(this).children,e)}addRow(e){return kr.get(this).base.add("row",kr.get(this).children,e)}addGroup(e){return kr.get(this).base.add("group",kr.get(this).children,e)}addWindow(e){return kr.get(this).base.addWindow(kr.get(this).children,e),this}serialize(){const e=kr.get(this).definition;return e.children=kr.get(this).base.serializeChildren(kr.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=Y.runWithException(r),n=this.getBuilder({type:e,definition:o});return t.push(n),n}addWindow(e,t){const r=Q.runWithException(t);r.type="window",e.push(r)}serializeChildren(e){return e.map(e=>e instanceof Ir?e.serialize():e)}}const Sr=new WeakMap;class xr{constructor(e,t,r){const o=t.wrapChildren(e.children);delete e.children,Sr.set(this,{base:t,children:o,definition:e,controller:r})}addColumn(e){const t=Sr.get(this).children;if(!t.every(e=>e instanceof Ir&&"column"===e.type))throw new Error("Cannot add a column to this workspace, because there are already children of another type");return Sr.get(this).base.add("column",t,e)}addRow(e){const t=Sr.get(this).children;if(!t.every(e=>e instanceof Ir&&"row"===e.type))throw new Error("Cannot add a row to this workspace, because there are already children of another type");return Sr.get(this).base.add("row",t,e)}addGroup(e){const t=Sr.get(this).children;if(0!==t.length)throw new Error("Cannot add a group to this workspace, because there are already defined children.");return Sr.get(this).base.add("group",t,e)}addWindow(e){const t=Sr.get(this).children;if(0!==t.length)throw new Error("Cannot add a window to this workspace, because there are already defined children.");return Sr.get(this).base.addWindow(t,e),this}getChildAt(e){C.runWithException(e);return Sr.get(this).children[e]}async create(e){const t=G.runWithException(e),r=Sr.get(this).definition;r.children=Sr.get(this).base.serializeChildren(Sr.get(this).children);return Sr.get(this).controller.createWorkspace(r,t)}}const Dr=new WeakMap,vr=e=>Dr.get(e).base;class Cr{constructor(e){Dr.set(this,{base:e})}get type(){return"row"}get id(){return vr(this).getId(this)}get frameId(){return vr(this).getFrameId(this)}get workspaceId(){return vr(this).getWorkspaceId(this)}get positionIndex(){return vr(this).getPositionIndex(this)}get children(){return vr(this).getAllChildren(this)}get parent(){return vr(this).getMyParent(this)}get frame(){return vr(this).getMyFrame(this)}get workspace(){return vr(this).getMyWorkspace(this)}get allowDrop(){return vr(this).getAllowDrop(this)}get allowSplitters(){return vr(this).getAllowSplitters(this)}get minWidth(){return vr(this).getMinWidth(this)}get minHeight(){return vr(this).getMinHeight(this)}get maxWidth(){return vr(this).getMaxWidth(this)}get maxHeight(){return vr(this).getMaxHeight(this)}get width(){return vr(this).getWidthInPx(this)}get height(){return vr(this).getHeightInPx(this)}get isPinned(){return vr(this).getIsPinned(this)}get isMaximized(){return vr(this).getIsMaximized(this)}get maximizationBoundary(){return vr(this).getMaximizationBoundary(this)}addWindow(e){return vr(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 vr(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 vr(this).addParent(this,"column","row",e)}async addRow(){throw new Error("Adding rows as row children is not supported")}removeChild(e){return vr(this).removeChild(this,e)}maximize(){return vr(this).maximize(this)}restore(){return vr(this).restore(this)}close(){return vr(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:Ft.runWithException(t);return vr(this).lockContainer(this,r)}async setHeight(e){return C.runWithException(e),vr(this).setHeight(this,e)}async onLockConfigurationChanged(e){j(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 vr(this).processLocalSubscription(this,t)}async setMaximizationBoundary(e){const t=Jt.runWithException(e);return vr(this).setMaximizationBoundary(this,t)}}const Br=new WeakMap,Er=e=>Br.get(e).base;class Tr{constructor(e){Br.set(this,{base:e})}get type(){return"column"}get id(){return Er(this).getId(this)}get frameId(){return Er(this).getFrameId(this)}get workspaceId(){return Er(this).getWorkspaceId(this)}get positionIndex(){return Er(this).getPositionIndex(this)}get children(){return Er(this).getAllChildren(this)}get parent(){return Er(this).getMyParent(this)}get frame(){return Er(this).getMyFrame(this)}get workspace(){return Er(this).getMyWorkspace(this)}get allowDrop(){return Er(this).getAllowDrop(this)}get allowSplitters(){return Er(this).getAllowSplitters(this)}get minWidth(){return Er(this).getMinWidth(this)}get minHeight(){return Er(this).getMinHeight(this)}get maxWidth(){return Er(this).getMaxWidth(this)}get maxHeight(){return Er(this).getMaxHeight(this)}get width(){return Er(this).getWidthInPx(this)}get height(){return Er(this).getHeightInPx(this)}get isPinned(){return Er(this).getIsPinned(this)}get isMaximized(){return Er(this).getIsMaximized(this)}get maximizationBoundary(){return Er(this).getMaximizationBoundary(this)}addWindow(e){return Er(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 Er(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 Er(this).addParent(this,"row","column",e)}removeChild(e){return Er(this).removeChild(this,e)}maximize(){return Er(this).maximize(this)}restore(){return Er(this).restore(this)}close(){return Er(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:Rt.runWithException(t);return Er(this).lockContainer(this,r)}async setWidth(e){return C.runWithException(e),Er(this).setWidth(this,e)}async onLockConfigurationChanged(e){j(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 Er(this).processLocalSubscription(this,t)}async setMaximizationBoundary(e){const t=Jt.runWithException(e);return Er(this).setMaximizationBoundary(this,t)}}const Mr=new WeakMap,Fr=e=>Mr.get(e).base;class Rr{constructor(e){Mr.set(this,{base:e})}get type(){return"group"}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 allowExtract(){return Fr(this).getAllowExtract(this)}get allowReorder(){return Fr(this).getAllowReorder(this)}get allowDropLeft(){return Fr(this).getAllowDropLeft(this)}get allowDropRight(){return Fr(this).getAllowDropRight(this)}get allowDropTop(){return Fr(this).getAllowDropTop(this)}get allowDropBottom(){return Fr(this).getAllowDropBottom(this)}get allowDropHeader(){return Fr(this).getAllowDropHeader(this)}get allowDrop(){return Fr(this).getAllowDrop(this)}get showMaximizeButton(){return Fr(this).getShowMaximizeButton(this)}get showEjectButton(){return Fr(this).getShowEjectButton(this)}get showAddWindowButton(){return Fr(this).getShowAddWindowButton(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 isMaximized(){return Fr(this).getIsMaximized(this)}addWindow(e){return Fr(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 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,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:Lt.runWithException(t);return Fr(this).lockContainer(this,r)}async setSize(e){const t=Tt.runWithException(e);if(!t.width&&!t.height)throw new Error("Expected either width or height to be passed.");return Fr(this).setSize(this,e.width,e.height)}async bundleToRow(){await Fr(this).bundleTo(this,"row"),await this.workspace.refreshReference()}async bundleToColumn(){await Fr(this).bundleTo(this,"column"),await this.workspace.refreshReference()}async onLockConfigurationChanged(e){j(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 Fr(this).processLocalSubscription(this,t)}}const Lr=new WeakMap,Ar=e=>Lr.get(e).manager.getWorkspaceData(e),Pr=e=>Lr.get(e).manager;class zr{constructor(e){Lr.set(this,{manager:e})}get id(){return Ar(this).id}get frameId(){return Ar(this).config.frameId}get positionIndex(){return Ar(this).config.positionIndex}get title(){return Ar(this).config.title}get layoutId(){return Ar(this).config.layoutId}get layoutName(){return Ar(this).config.layoutName}get isHibernated(){return Ar(this).config.isHibernated}get isSelected(){return Ar(this).config.isSelected}get children(){return Ar(this).children}get frame(){return Ar(this).frame}get allowSplitters(){return Ar(this).config.allowSplitters}get allowSystemHibernation(){return Ar(this).config.allowSystemHibernation}get allowDrop(){return Ar(this).config.allowDrop}get allowDropLeft(){return Ar(this).config.allowDropLeft}get allowDropTop(){return Ar(this).config.allowDropTop}get allowDropRight(){return Ar(this).config.allowDropRight}get allowDropBottom(){return Ar(this).config.allowDropBottom}get allowExtract(){return Ar(this).config.allowExtract}get allowWindowReorder(){return Ar(this).config.allowWindowReorder}get appRestrictions(){return Ar(this).config.appRestrictions}get showCloseButton(){return Ar(this).config.showCloseButton}get showSaveButton(){return Ar(this).config.showSaveButton}get allowWorkspaceTabReorder(){return Ar(this).config.allowWorkspaceTabReorder}get allowWorkspaceTabExtract(){return Ar(this).config.allowWorkspaceTabExtract}get minWidth(){return Ar(this).config.minWidth}get minHeight(){return Ar(this).config.minHeight}get maxWidth(){return Ar(this).config.maxWidth}get maxHeight(){return Ar(this).config.maxHeight}get width(){return Ar(this).config.widthInPx}get height(){return Ar(this).config.heightInPx}get showWindowCloseButtons(){return Ar(this).config.showWindowCloseButtons}get showEjectButtons(){return Ar(this).config.showEjectButtons}get showAddWindowButtons(){return Ar(this).config.showAddWindowButtons}get isPinned(){return Ar(this).config.isPinned}get windowDragMode(){return fr()?Ar(this).config.windowDragMode:"keepInside"}get loadingStrategy(){return fr()||console.warn("The workspace.loadingStrategy property is not supported in IO Connect Browser"),Ar(this).config.loadingStrategy}async setLoadingStrategy(e){if(!fr())throw new Error("Not supported in IO Connect Browser");const t=Ar(this).controller;await t.setLoadingStrategy(this.id,e),await this.refreshReference()}async removeChild(e){j(e);const t=this.children.find(e);t&&(await t.close(),await this.refreshReference())}async remove(e){j(e);const t=Ar(this).controller.iterateFindChild(this.children,e);await t.close(),await this.refreshReference()}async focus(){await Ar(this).controller.focusItem(this.id),await this.refreshReference()}async close(){const e=Ar(this).controller;await e.closeWorkspace(this.id,this.frameId)}snapshot(){return Ar(this).controller.getSnapshot(this.id,"workspace")}async saveLayout(e,t){v.runWithException(e),t&&vt.runWithException(t),await Ar(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=Ar(this).controller;await t.setItemTitle(this.id,e),await this.refreshReference()}getContext(){return Ar(this).controller.getWorkspaceContext(this.id)}setContext(e){return Ar(this).controller.setWorkspaceContext(this.id,e)}updateContext(e){return Ar(this).controller.updateWorkspaceContext(this.id,e)}onContextUpdated(e){return Ar(this).controller.subscribeWorkspaceContextUpdated(this.id,e)}async refreshReference(){const e=await Ar(this).controller.getSnapshot(this.id,"workspace"),t=Ar(this).controller.flatChildren(Ar(this).children),r=Ar(this).controller.refreshChildren({existingChildren:t,workspace:this,parent:this,children:e.children}),o=this.frame;let n;if(o.id===e.config.frameId)Pr(this).remapFrame(o,e.frameSummary),n=o;else{const t={summary:e.frameSummary};n=Ar(this).ioc.getModel("frame",t)}Pr(this).remapWorkspace(this,{config:e.config,children:r,frame:n})}async getIcon(){return Ar(this).controller.getWorkspaceIcon(this.id)}async setIcon(e){return Ar(this).controller.setWorkspaceIcon(this.id,e)}getBox(e){j(e);const t=Ar(this).children;return Ar(this).controller.iterateFindChild(t,t=>"window"!==t.type&&e(t))}getAllBoxes(e){j(e,!0);const t=Ar(this).children,r=Ar(this).controller.iterateFilterChildren(t,e=>"window"!==e.type);return e?r.filter(e):r}getRow(e){return j(e),this.getBox(t=>"row"===t.type&&e(t))}getAllRows(e){return j(e,!0),e?this.getAllBoxes(t=>"row"===t.type&&e(t)):this.getAllBoxes(e=>"row"===e.type)}getColumn(e){return j(e),this.getBox(t=>"column"===t.type&&e(t))}getAllColumns(e){return j(e,!0),e?this.getAllBoxes(t=>"column"===t.type&&e(t)):this.getAllBoxes(e=>"column"===e.type)}getGroup(e){return j(e),this.getBox(t=>"group"===t.type&&e(t))}getAllGroups(e){return j(e,!0),e?this.getAllBoxes(t=>"group"===t.type&&e(t)):this.getAllBoxes(e=>"group"===e.type)}getWindow(e){j(e);const t=Ar(this).children;return Ar(this).controller.iterateFindChild(t,t=>"window"===t.type&&e(t))}getAllWindows(e){j(e,!0);const t=Ar(this).children,r=Ar(this).controller.iterateFilterChildren(t,e=>"window"===e.type);return e?r.filter(e):r}addRow(e){return Ar(this).base.addParent(this,"row","workspace",e)}addColumn(e){return Ar(this).base.addParent(this,"column","workspace",e)}addGroup(e){return Ar(this).base.addParent(this,"group","workspace",e)}addWindow(e){return Ar(this).base.addWindow(this,e,"workspace")}async bundleToRow(){await Ar(this).controller.bundleWorkspaceTo("row",this.id),await this.refreshReference()}async bundleToColumn(){await Ar(this).controller.bundleWorkspaceTo("column",this.id),await this.refreshReference()}async hibernate(){await Ar(this).controller.hibernateWorkspace(this.id),await this.refreshReference()}async resume(){await Ar(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:Ct.runWithException(t);await Ar(this).controller.lockWorkspace(this.id,r),await this.refreshReference()}async pin(e){_t.runWithException(e),await Ar(this).controller.pinWorkspace(this.id,e?.icon),await this.refreshReference()}async unpin(){await Ar(this).controller.unpinWorkspace(this.id),await this.refreshReference()}async showLoadingAnimation(){if(!fr())throw new Error("Not supported in IO Connect Browser");await Ar(this).controller.showWorkspaceLoadingAnimation(this.id)}async hideLoadingAnimation(){if(!fr())throw new Error("Not supported in IO Connect Browser");await Ar(this).controller.hideWorkspaceLoadingAnimation(this.id)}async setWindowDragMode(e){if(!fr())throw new Error("Not supported in IO Connect Browser");T.runWithException(e),await Ar(this).controller.setWindowDragMode(this.id,e),await this.refreshReference()}async onClosed(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onHibernated(e){j(e);const t=Ar(this).id,r={action:"hibernated",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await Ar(this).controller.processLocalSubscription(r,t)}async onResumed(e){j(e);const t=Ar(this).id,r={action:"resumed",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await Ar(this).controller.processLocalSubscription(r,t)}async onLockConfigurationChanged(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onTabReordered(e){j(e);const t=Ar(this).id,r={action:"tab-reordered",eventType:"workspace",scope:"workspace",scopeId:t,callback:async()=>{await this.refreshReference(),e()}};return await Ar(this).controller.processLocalSubscription(r,t)}async onWindowAdded(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowRemoved(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowLoaded(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowMaximized(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowRestored(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowSelected(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}async onWindowTabReordered(e){j(e);const t=Ar(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 Ar(this).controller.processLocalSubscription(r,t)}}const Or=new WeakMap,$r=e=>Or.get(e).manager.getWindowData(e);class Hr{constructor(e){Or.set(this,{manager:e})}get id(){return $r(this).config.windowId}get elementId(){return $r(this).id}get type(){return"window"}get frameId(){return $r(this).frame.id}get workspaceId(){return $r(this).workspace.id}get positionIndex(){return $r(this).config.positionIndex}get isMaximized(){return $r(this).config.isMaximized}get isLoaded(){return $r(this).controller.checkIsWindowLoaded(this.id)}get isSelected(){return $r(this).config.isSelected}get focused(){return this.getGdWindow().isFocused}get title(){return $r(this).config.title}get allowExtract(){return $r(this).config.allowExtract}get allowReorder(){return $r(this).config.allowReorder}get showCloseButton(){return $r(this).config.showCloseButton}get width(){return $r(this).config.widthInPx}get height(){return $r(this).config.heightInPx}get minWidth(){return $r(this).config.minWidth}get minHeight(){return $r(this).config.minHeight}get maxWidth(){return $r(this).config.maxWidth}get maxHeight(){return $r(this).config.maxHeight}get workspace(){return $r(this).workspace}get frame(){return $r(this).frame}get parent(){return $r(this).parent}get appName(){return $r(this).config.appName}async forceLoad(){if(this.isLoaded)return;const e=$r(this).controller,t=$r(this).id,r=await e.forceLoadWindow(t);$r(this).config.windowId=r,await this.workspace.refreshReference()}async focus(){const e=$r(this).id,t=$r(this).controller;await t.focusItem(e),await this.workspace.refreshReference()}async close(){const e=$r(this).id,t=$r(this).controller;await t.closeItem(e),await $r(this).parent.removeChild(t=>t.id===e),await this.workspace.refreshReference()}async setTitle(e){v.runWithException(e);const t=$r(this).id,r=$r(this).controller;await r.setItemTitle(t,e),await this.workspace.refreshReference()}async maximize(){const e=$r(this).id,t=$r(this).controller;await t.maximizeItem(e),await this.workspace.refreshReference()}async restore(){const e=$r(this).id,t=$r(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=$r(this).id,t=$r(this).config.windowId,r=await $r(this).controller.ejectWindow(e,t);return $r(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=$r(this).config.windowId;return $r(this).controller.getGDWindow(e)}async moveTo(e){if(!(e instanceof Cr||e instanceof Tr||e instanceof Rr))throw new Error("Cannot add to the provided parent, because the provided parent is not an instance of Row, Column or Group");const t=$r(this).id,r=$r(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:Et.runWithException(t),o=$r(this).id;await $r(this).controller.lockWindow(o,r),await this.workspace.refreshReference()}async setSize(e){const t=Tt.runWithException(e);if(!t.width&&!t.height)throw new Error("Expected either width or height to be passed.");const r=$r(this).id,o=$r(this).controller;await o.resizeItem(r,{height:t.height,width:t.width,relative:!1}),await this.workspace.refreshReference()}async onRemoved(e){j(e);const t=$r(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e()},action:"removed",eventType:"window",scope:"window"};return await $r(this).controller.processLocalSubscription(r,t)}async onLockConfigurationChanged(e){j(e);const t=$r(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 $r(this).controller.processLocalSubscription(r,t)}async onTabReordered(e){j(e);const t=$r(this).id,r={callback:async()=>{await this.workspace.refreshReference(),e()},action:"tab-reordered",eventType:"window",scope:"window"};return await $r(this).controller.processLocalSubscription(r,t)}}const _r=new WeakMap,jr=e=>_r.get(e).manager.getFrameData(e);class Gr{constructor(e){_r.set(this,{manager:e})}async registerShortcut(e,t){v.runWithException(e),j(t);const r=jr(this).summary.id;return await jr(this).controller.registerShortcut(e,r,t)}get id(){return jr(this).summary.id}get isInitialized(){return jr(this).summary.isInitialized}getBounds(){const e=jr(this).summary.id;return jr(this).controller.getFrameBounds(e)}async resize(e){const t=tt.runWithException(e),r=jr(this).summary.id;return jr(this).controller.resizeItem(r,t)}async move(e){const t=rt.runWithException(e),r=jr(this).summary.id;return jr(this).controller.moveFrame(r,t)}focus(){const e=jr(this).summary.id;return jr(this).controller.focusItem(e)}async state(){if(!fr())throw new Error("State operations are not supported in IO Connect Browser");const e=jr(this).summary.id;return jr(this).controller.getFrameState(e)}setIcon(e){if(!fr())throw new Error("frame.setIcon() is not supported in IO Connect Browser");R.runWithException(e);const t=this.id;return jr(this).controller.setTaskbarIcon(e,t)}getIcon(){if(!fr())throw new Error("frame.getIcon() is not supported in IO Connect Browser");const e=this.id;return jr(this).controller.getTaskbarIcon(e)}isVisible(){if(!fr())throw new Error("frame.isVisible() is not supported in IO Connect Browser");const e=this.id;return jr(this).controller.getFrameVisibility(e)}async minimize(){if(!fr())throw new Error("State operations are not supported in IO Connect Browser");const e=jr(this).summary.id;return jr(this).controller.changeFrameState(e,"minimized")}async maximize(){if(!fr())throw new Error("State operations are not supported in IO Connect Browser");const e=jr(this).summary.id;return jr(this).controller.changeFrameState(e,"maximized")}async restore(){if(!fr())throw new Error("State operations are not supported in IO Connect Browser");const e=jr(this).summary.id;return jr(this).controller.changeFrameState(e,"normal")}close(e){const t=W(nt).runWithException(e),r=jr(this).summary.id;return jr(this).controller.closeFrame(r,t)}snapshot(){const e=jr(this).summary.id;return jr(this).controller.getSnapshot(e,"frame")}async workspaces(){return jr(this).controller.getWorkspacesByFrameId(this.id)}async getConstraints(){const e=jr(this).controller,t=jr(this).summary.id;return e.getFrameConstraints(t)}async restoreWorkspace(e,t){v.runWithException(e);const r=ie.runWithException(t);return jr(this).controller.restoreWorkspace(e,r)}createWorkspace(e,t){const r=de.runWithException(e),o=G.runWithException(t);return jr(this).controller.createWorkspace(r,o)}async init(e){if(we.runWithException(e),jr(this).summary.isInitialized)throw new Error("The frame has already been initialized");return jr(this).controller.initFrame(this.id,e)}async showPopup(e){if(!fr())throw new Error("Popup operations are not supported in IO Connect Browser");const t=tr.runWithException(e),r=jr(this).controller;return await r.showPopup(t,this.id),r.getGDWindow(t.windowId)}async show(e){if(!fr())throw new Error("The show operation is not supported in IO Connect Browser");const t=jt.runWithException(e);return jr(this).controller.showFrame(this.id,t)}async hide(){if(!fr())throw new Error("The hide operation is not supported in IO Connect Browser");return jr(this).controller.hideFrame(this.id)}async showDialog(e){if(!fr())throw new Error("The showModal operation is not supported in IO Connect Browser");return nr.runWithException(e),jr(this).controller.showFrameDialog(this.id,e)}async setOnTop(e){if(!fr())throw new Error("The setOnTop operation is not supported in IO Connect Browser");return ar.runWithException(e),jr(this).controller.setFrameOnTop(this.id,e)}async onClosing(e){j(e);return await jr(this).controller.registerFrameOnClosing(this.id,async()=>{let t=!1;const r=()=>t=!0;try{await e({prevent:r})}catch(e){if(fr())throw e;console.warn(`onClosing callback for frame "${this.id}" threw: ${e}`)}return{prevent:t}})}async onClosed(e){j(e);const t=jr(this).summary.id,r={callback:t=>{e({frameId:t.frameSummary.id,frameBounds:t.frameBounds})},action:"closed",eventType:"frame",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onMaximized(e){j(e);const t=jr(this).summary.id,r={callback:()=>{e()},action:"maximized",eventType:"frame",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onMinimized(e){j(e);const t=jr(this).summary.id,r={callback:()=>{e()},action:"minimized",eventType:"frame",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onNormal(e){j(e);const t=jr(this).summary.id,r={callback:()=>{e()},action:"normal",eventType:"frame",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onWorkspaceOpened(e){j(e);const t=jr(this).summary.id,r={callback:async t=>{const r=await jr(this).controller.transformStreamPayloadToWorkspace(t);e(r)},action:"opened",eventType:"workspace",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onWorkspaceSelected(e){j(e);const t=jr(this).summary.id,r={callback:async t=>{const r=await jr(this).controller.getWorkspaceById(t.workspaceSummary.id);e(r)},action:"selected",eventType:"workspace",scope:"frame"};return await jr(this).controller.processLocalSubscription(r,t)}async onWorkspaceClosed(e){j(e);const t=jr(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 jr(this).controller.processLocalSubscription(r,t)}async onWindowAdded(e){j(e);const t=jr(this).summary.id,r={callback:async t=>{const r=(await jr(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 jr(this).controller.processLocalSubscription(r,t)}async onWindowRemoved(e){j(e);const t=jr(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 jr(this).controller.processLocalSubscription(r,t)}async onWindowLoaded(e){j(e);const t=jr(this).summary.id,r={callback:async t=>{const r=(await jr(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 jr(this).controller.processLocalSubscription(r,t)}async onInitializationRequested(e){return j(e),this.isInitialized||e(jr(this).summary.initializationContext),()=>{}}async onFocusChanged(e){j(e);const t=jr(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 Nr{parentsData=new WeakMap;workspacesData=new WeakMap;windowsData=new WeakMap;framesData=new WeakMap;deleteData(e){e instanceof Hr&&this.windowsData.delete(e),e instanceof zr&&this.workspacesData.delete(e),(e instanceof Cr||e instanceof Tr||e instanceof Rr)&&this.parentsData.delete(e),e instanceof Gr&&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 Hr){const r=this.windowsData.get(e);r.parent=t.parent||r.parent,r.config=t.config||r.config}if(e instanceof Cr||e instanceof Tr||e instanceof Rr){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 Vr=new WeakMap,Jr=(e,t)=>{const r=Vr.get(e).manager;return t instanceof zr?r.getWorkspaceData(t):Vr.get(e).manager.getParentData(t)};class Ur{frameId;workspaceId;positionIndex;constructor(e){Vr.set(this,{manager:e})}getId(e){return Jr(this,e).id}getPositionIndex(e){return Jr(this,e).config.positionIndex}getWorkspaceId(e){const t=Jr(this,e);return t.config.workspaceId||t.workspace.id}getFrameId(e){return Jr(this,e).frame.id}getAllChildren(e,t){j(t,!0);const r=Jr(this,e).children;return void 0===t?r:r.filter(t)}getMyParent(e){return e instanceof zr?e:Jr(this,e).parent}getMyFrame(e){return Jr(this,e).frame}getMyWorkspace(e){return e instanceof zr?e:Jr(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=Q.runWithException(t),n=Jr(this,e).controller,i=await n.add("window",Jr(this,e).id,r,o);if(e instanceof zr)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=Jr(this,e).controller,a=(await i.add("container",Jr(this,e).id,r,n)).itemId;if(e instanceof zr)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){j(t);const r=this.getAllChildren(e).find(t);r&&(await r.close(),e instanceof zr?await e.refreshReference():await this.getMyWorkspace(e).refreshReference())}async maximize(e){const{controller:t,id:r}=Jr(this,e);await t.maximizeItem(r),await this.getMyWorkspace(e.parent).refreshReference()}async restore(e){const{controller:t,id:r}=Jr(this,e);await t.restoreItem(r),await this.getMyWorkspace(e.parent).refreshReference()}async close(e){const t=Jr(this,e),r=Jr(this,e).controller;await r.closeItem(t.id),await this.getMyWorkspace(t.parent).refreshReference()}async lockContainer(e,t){const r=Jr(this,e),o=Jr(this,e).controller;await o.lockContainer(r.id,e.type,t),await this.getMyWorkspace(r.parent).refreshReference()}getAllowDrop(e){return Jr(this,e).config.allowDrop}getAllowDropLeft(e){const t=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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=Jr(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 Jr(this,e).config.minWidth}getMaxWidth(e){return Jr(this,e).config.maxWidth}getMinHeight(e){return Jr(this,e).config.minHeight}getMaxHeight(e){return Jr(this,e).config.maxHeight}getWidthInPx(e){return Jr(this,e).config.widthInPx}getHeightInPx(e){return Jr(this,e).config.heightInPx}getIsPinned(e){return Jr(this,e).config.isPinned}getIsMaximized(e){return Jr(this,e).config.isMaximized}getMaximizationBoundary(e){return Jr(this,e).config.maximizationBoundary}async setHeight(e,t){const r=Jr(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=Jr(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=Jr(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=Jr(this,e),{controller:o,id:n}=r;await o.setMaximizationBoundary(n,t),await this.getMyWorkspace(r.parent).refreshReference()}async bundleTo(e,t){const r=Jr(this,e),{controller:o,id:n}=r;await o.bundleItemTo(t,n)}async processLocalSubscription(e,t){return Jr(this,e).controller.processLocalSubscription(t,this.getId(e))}transformDefinition(e,t){let r;return void 0===t?r={type:e,children:[]}:t instanceof Ir?r=t.serialize():(void 0===t.type&&(t.type=e),r=re.runWithException(t),r.children=r.children||[]),r}}class qr{ioc;windows;contexts;layouts;layoutsV2;constructor(e,t,r,o,n){this.ioc=e,this.windows=t,this.contexts=r,this.layouts=o,this.layoutsV2=n}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(wr.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(wr.createFrame.name,e)};return this.ioc.getModel("frame",t)}async initFrame(e,t){await this.bridge.send(wr.initFrame.name,{frameId:e,...t})}async restoreWorkspaceById(e){const t=await this.bridge.send(wr.openWorkspaceById.name,{...e}),r={summary:await this.bridge.send(wr.getFrameSummary.name,{itemId:t.config.frameId})},o={frame:this.ioc.getModel("frame",r),snapshot:t};return this.ioc.getModel("workspace",o)}async restoreWorkspace(e,t){const r=await this.bridge.send(wr.openWorkspace.name,{name:e,restoreOptions:t}),o={summary:await this.bridge.send(wr.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=wr.addWindow.name;else{if("container"!==e)throw new Error(`Unrecognized add type: ${e}`);n=wr.addContainer.name}return await this.bridge.send(n,i)}async getFrame(e){const t={summary:await this.bridge.send(wr.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))}async handleOnSaved(e){const t=t=>{"Workspace"===t.type&&e(t)};if(this.layoutsV2){const[e,r]=await Promise.all([this.layoutsV2.onAdded(t),this.layoutsV2.onChanged(t)]);return()=>{e(),r()}}const r=this.layouts.onAdded(t),o=this.layouts.onChanged(t);return()=>{r(),o()}}async handleOnRemoved(e){const t=t=>{"Workspace"===t.type&&e(t)};return this.layoutsV2?this.layoutsV2.onRemoved(t):this.layouts.onRemoved(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(wr.getWorkspaceSnapshot.name,{itemId:e.workspaceSummary.id})};return this.ioc.getModel("workspace",r)}async fetchWorkspace(e){const t=await this.bridge.send(wr.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(wr.bundleWorkspace.name,{type:e,workspaceId:t})}async bundleItemTo(e,t){if(!await this.isOperationSupported(wr.bundleItem.name))throw new Error(`Operation ${wr.bundleItem.name} is not supported. Ensure that you are running the latest version of all packages`);await this.bridge.send(wr.bundleItem.name,{type:e,itemId:t})}async getTaskbarIcon(e){return await this.bridge.send(wr.getTaskbarIcon.name,{frameId:e})}async setTaskbarIcon(e,t){await this.bridge.send(wr.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(wr.restoreItem.name,{itemId:e})}async maximizeItem(e){await this.bridge.send(wr.maximizeItem.name,{itemId:e})}async focusItem(e){await this.bridge.send(wr.focusItem.name,{itemId:e})}async closeWorkspace(e){await this.bridge.send(wr.closeWorkspace.name,{itemId:e})}async closeItem(e){await this.bridge.send(wr.closeItem.name,{itemId:e})}async closeFrame(e,t){await this.bridge.send(wr.closeItem.name,{itemId:e,closeOptions:t})}async resizeItem(e,t){await this.bridge.send(wr.resizeItem.name,Object.assign({},{itemId:e},t))}async setMaximizationBoundary(e,t){await this.bridge.send(wr.setMaximizationBoundary.name,Object.assign({},{itemId:e},t))}async showWorkspaceLoadingAnimation(e){await this.bridge.send(wr.showLoadingAnimation.name,{itemId:e,type:"workspace"})}async hideWorkspaceLoadingAnimation(e){await this.bridge.send(wr.hideLoadingAnimation.name,{itemId:e,type:"workspace"})}async setWindowDragMode(e,t){await this.bridge.send(wr.setWindowDragMode.name,{itemId:e,dragMode:t})}async moveFrame(e,t){await this.bridge.send(wr.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(wr.forceLoadWindow.name,{itemId:e})).windowId}async ejectWindow(e,t){return await this.bridge.send(wr.ejectWindow.name,{itemId:e,windowId:t})}async moveWindowTo(e,t){await this.bridge.send(wr.moveWindowTo.name,{itemId:e,containerId:t})}async getSnapshot(e,t){let r;return"workspace"===t?r=await this.bridge.send(wr.getWorkspaceSnapshot.name,{itemId:e}):"frame"===t&&(r=await this.bridge.send(wr.getFrameSnapshot.name,{itemId:e})),r}async setItemTitle(e,t){await this.bridge.send(wr.setItemTitle.name,{itemId:e,title:t})}refreshChildren(e){const{parent:t,children:r,existingChildren:o,workspace:n}=e;if(t instanceof Hr||"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 zr||this.privateDataManager.remapChild(t,{children:i}),i}iterateFindChild(e,t){let r=e.find(e=>t(e));return r||(e.some(e=>!(e instanceof Hr)&&(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 Hr||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(wr.hibernateWorkspace.name,{workspaceId:e})}async resumeWorkspace(e){await this.bridge.send(wr.resumeWorkspace.name,{workspaceId:e})}async lockWorkspace(e,t){await this.bridge.send(wr.lockWorkspace.name,{workspaceId:e,config:t})}async lockWindow(e,t){await this.bridge.send(wr.lockWindow.name,{windowPlacementId:e,config:t})}async lockContainer(e,t,r){await this.bridge.send(wr.lockContainer.name,{itemId:e,type:t,config:r})}async pinWorkspace(e,t){await this.bridge.send(wr.pinWorkspace.name,{workspaceId:e,icon:t})}async unpinWorkspace(e){await this.bridge.send(wr.unpinWorkspace.name,{workspaceId:e})}async getWorkspaceIcon(e){return(await this.bridge.send(wr.getWorkspaceIcon.name,{workspaceId:e})).icon}setWorkspaceIcon(e,t){return this.bridge.send(wr.setWorkspaceIcon.name,{workspaceId:e,icon:t})}async getPlatformFrameId(){try{return await this.bridge.send(wr.getPlatformFrameId.name,{})}catch(e){return{}}}async setLoadingStrategy(e,t){return await this.isOperationSupported(wr.setLoadingStrategy.name),this.bridge.send(wr.setLoadingStrategy.name,{itemId:e,strategy:t})}async showFrame(e,t){const r={frameId:e,isVisible:!0,...t};return this.bridge.send(wr.changeFrameVisibility.name,r)}async hideFrame(e){return this.bridge.send(wr.changeFrameVisibility.name,{frameId:e,isVisible:!1})}async getFrameVisibility(e){return(await this.bridge.send(wr.getFrameVisibility.name,{itemId:e})).isVisible}async showFrameDialog(e,t){return await this.bridge.send(wr.showFrameDialog.name,{frameId:e,options:t},{timeout:864e5})}async setFrameOnTop(e,t){return this.bridge.send(wr.setFrameOnTop.name,{frameId:e,onTop:t.onTop})}async isOperationSupported(e){return fr()?{isSupported:!0}:await this.bridge.send(wr.operationCheck.name,{operation:e})}async showPopup(e,t){return this.bridge.send(wr.showPopup.name,{...e,frameId:t})}}class Kr{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(wr.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 restoreWorkspaceById(e){if(!(await this.getLayoutSummaries()).some(t=>t.id===e.layoutId))throw new Error(`This layout: ${e.layoutId} cannot be restored, because it doesn't exist.`);if(e?.frameId){if(!(await this.bridge.send(wr.getAllFramesSummaries.name)).summaries.some(t=>t.id===e.frameId))throw new Error(`Cannot reuse the frame with id: ${e.frameId}, because there is no frame with that ID found`)}return await this.base.restoreWorkspaceById(e)}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(wr.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 fr()?this.handleEnterpriseLocalSubscription(e,t):this.handleCoreLocalSubscription(e,t)}processGlobalSubscription(e,t,r){return fr()?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(wr.getAllFramesSummaries.name);return this.base.getFrames(t.summaries,e)}getWorkspaceById(e){return this.base.fetchWorkspace(e)}async getWorkspaceByWindowId(e){return fr()?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(wr.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(wr.getAllLayoutsSummaries.name)).summaries}async deleteLayout(e){await this.bridge.send(wr.deleteLayout.name,{name:e})}async deleteLayoutById(e){await this.bridge.send(wr.deleteLayoutById.name,{layoutId:e})}async exportLayout(e){return(await this.bridge.send(wr.exportAllLayouts.name)).layouts.reduce((t,r)=>(e&&!e(r)||t.push(r),t),[])}async saveLayout(e){return await this.bridge.send(wr.saveLayout.name,e)}async saveLayoutById(e){return await this.bridge.send(wr.saveLayoutById.name,e)}async importLayouts(e,t){if(fr())try{await this.bridge.send(wr.importLayouts.name,{layouts:e,mode:t})}catch(r){await Promise.all(e.map(e=>this.bridge.send(wr.importLayout.name,{layout:e,mode:t})))}else await this.base.importLayouts(e,t)}async handleOnSaved(e){return this.base.handleOnSaved(e)}async 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(wr.changeFrameState.name,{frameId:e,requestedState:t})}async getFrameBounds(e){return(await this.bridge.send(wr.getFrameBounds.name,{itemId:e})).bounds}async getFrameState(e){return(await this.bridge.send(wr.getFrameState.name,{itemId:e})).state}async closeWorkspace(e,t){if(fr())return await this.closeItem(e);let r=!1;try{const{isSupported:e}=await this.base.isOperationSupported(wr.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 Qr{bridge;_shortcuts=r();constructor(e){this.bridge=e,this.bridge.onOperation(e=>{if(e.operation===pr.shortcutClicked.name){const t=e.data;this._shortcuts.execute(`${t.frameId}-${t.shortcut}`)}})}async registerShortcut(e,t,r){await this.bridge.send(wr.registerShortcut.name,{shortcut:e,frameId:t});const o=this._shortcuts.add(`${t}-${e}`,r);return()=>{o(),this.bridge.send(wr.unregisterShortcut.name,{shortcut:e,frameId:t})}}}class Xr{bridge;registry=r();constructor(e){this.bridge=e,this.subscribeToFrameClosing()}async registerFrameOnClosing(e,t){if(!fr()){const{isSupported:t}=await this.bridge.send(wr.operationCheck.name,{operation:wr.subscribeToFrameClosing.name}).catch(()=>({isSupported:!1}));if(!t)return console.warn(`onClosing for frame "${e}" is not supported by the current version of @interopio/browser-platform (requires 5.0.0+).`),()=>{}}return await this.bridge.send(wr.subscribeToFrameClosing.name,{itemId:e}),this.registry.add(e,t)}subscribeToFrameClosing(){this.bridge.onOperationWithResponse(async e=>{if(e.operation!==pr.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 Yr{agm;windows;layouts;contexts;layoutsV2;_controllerInstance;_bridgeInstance;_transportInstance;_privateDataManagerInstance;_parentBaseInstance;_baseController;_shortcutsController;_closingController;constructor(e,t,r,o,n){this.agm=e,this.windows=t,this.layouts=r,this.contexts=o,this.layoutsV2=n}get baseController(){return this._baseController||(this._baseController=new qr(this,this.windows,this.contexts,this.layouts,this.layoutsV2)),this._baseController}get controller(){return this._controllerInstance||(this._controllerInstance=new Kr(this.bridge,this.baseController,this.shortcutsController,this.closingController)),this._controllerInstance}get shortcutsController(){return this._shortcutsController||(this._shortcutsController=new Qr(this.bridge)),this._shortcutsController}get closingController(){return this._closingController||(this._closingController=new Xr(this.bridge)),this._closingController}get bridge(){return this._bridgeInstance||(this._bridgeInstance=new gr(this.transport,r())),this._bridgeInstance}get transport(){return this._transportInstance||(this._transportInstance=new br(this.agm,r())),this._transportInstance}get privateDataManager(){return this._privateDataManagerInstance||(this._privateDataManagerInstance=new Nr),this._privateDataManagerInstance}get parentBase(){return this._parentBaseInstance||(this._parentBaseInstance=new Ur(this.privateDataManager)),this._parentBaseInstance}async initiate(e){await this.transport.initiate(e)}getModel(e,t){switch(e){case"frame":{const e=new Gr(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 Hr(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 Tr(this.parentBase):"row"===e?new Cr(this.parentBase):new Rr(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 zr(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 xr(e.definition,t,this.controller);case"row":case"column":case"group":return e.definition.type=e.type,new Ir(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 Zr=async e=>{const t=new Yr(e.agm,e.windows,e.layouts,e.contexts,e.layouts.v2),r=e.interop.instance.windowId;await t.initiate(r),e.workspaces=((e,t)=>{const r=t.controller,o=async e=>(j(e,!0),r.getFrames(e)),n=async e=>(j(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=ge.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=>(j(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=>(j(e),(await r.getWorkspaces(e))[0]),getWorkspaceById:async e=>(v.runWithException(e),r.getWorkspaceById(e)),getAllWorkspaces:e=>(j(e,!0),r.getWorkspaces(e)),getWindow:async e=>(j(e),r.getWindow(e)),getBox:async e=>(j(e),r.getParent(e)),restoreWorkspace:async(e,t)=>{v.runWithException(e);const o=ie.runWithException(t);return r.restoreWorkspace(e,o)},restoreWorkspaceById:async e=>{const t=ae.runWithException(e);return r.restoreWorkspaceById(t)},createWorkspace:async(e,t)=>{const o=de.runWithException(e),n=G.runWithException(t);return r.createWorkspace(o,n)},createEmptyFrame:async e=>{const t=pe.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)),deleteById:async e=>(v.runWithException(e),r.deleteLayoutById(e)),export:async e=>(j(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=>Pe.runWithException(e)),r.importLayouts(e,t)},save:async e=>{const t=xt.runWithException(e);return r.saveLayout(t)},saveById:async e=>{const t=Dt.runWithException(e);return r.saveLayoutById(t)},onSaved:async e=>(j(e),r.handleOnSaved(e)),onRemoved:async e=>(j(e),r.handleOnRemoved(e))},onFrameOpened:n,onFrameClosed:async e=>(j(e),await r.processGlobalSubscription(t=>{e({frameId:t.frameSummary.id,frameBounds:t.frameBounds})},"frame","closed")),onWorkspaceOpened:async e=>(j(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","opened")),onWorkspaceClosed:async e=>(j(e),await r.processGlobalSubscription(t=>{e({frameId:t.frameSummary.id,workspaceId:t.workspaceSummary.id,frameBounds:t.frameBounds})},"workspace","closed")),onWorkspaceHibernated:async e=>(j(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","hibernated")),onWorkspaceResumed:async e=>(j(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","resumed")),onWorkspaceTabReordered:async e=>(j(e),await r.processGlobalSubscription(async t=>{const o=await r.transformStreamPayloadToWorkspace(t);e(o)},"workspace","tab-reordered")),onWindowTabReordered:async e=>(j(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=>(j(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=>(j(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=>(j(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=>(j(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=>(j(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=>(j(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:"5.1.0-next.1"}})(e,t)};return"undefined"!=typeof window&&(window.IOWorkspaces=Zr),Zr});
|