@openfin/workspace-platform 9.1.0 → 9.1.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/index.js +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! For license information please see index.js.LICENSE.txt */
|
|
2
|
-
(()=>{var e={198:(e,t,a)=>{var n=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,i=/^0o[0-7]+$/i,s=parseInt,c="object"==typeof a.g&&a.g&&a.g.Object===Object&&a.g,p="object"==typeof self&&self&&self.Object===Object&&self,d=c||p||Function("return this")(),l=Object.prototype.toString,u=Math.max,w=Math.min,f=function(){return d.Date.now()};function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function y(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==l.call(e)}(e))return NaN;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var a=r.test(e);return a||i.test(e)?s(e.slice(2),a?2:8):o.test(e)?NaN:+e}e.exports=function(e,t,a){var n,o,r,i,s,c,p=0,d=!1,l=!1,h=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function m(t){var a=n,r=o;return n=o=void 0,p=t,i=e.apply(r,a)}function v(e){return p=e,s=setTimeout(P,t),d?m(e):i}function S(e){var a=e-c;return void 0===c||a>=t||a<0||l&&e-p>=r}function P(){var e=f();if(S(e))return b(e);s=setTimeout(P,function(e){var a=t-(e-c);return l?w(a,r-(e-p)):a}(e))}function b(e){return s=void 0,h&&n?m(e):(n=o=void 0,i)}function k(){var e=f(),a=S(e);if(n=arguments,o=this,c=e,a){if(void 0===s)return v(c);if(l)return s=setTimeout(P,t),m(c)}return void 0===s&&(s=setTimeout(P,t)),i}return t=y(t)||0,g(a)&&(d=!!a.leading,r=(l="maxWait"in a)?u(y(a.maxWait)||0,t):r,h="trailing"in a?!!a.trailing:h),k.cancel=function(){void 0!==s&&clearTimeout(s),p=0,n=c=o=s=void 0},k.flush=function(){return void 0===s?i:b(f())},k}},525:e=>{"use strict";var t=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},a=0;a<10;a++)t["_"+String.fromCharCode(a)]=a;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,r){for(var i,s,c=o(e),p=1;p<arguments.length;p++){for(var d in i=Object(arguments[p]))a.call(i,d)&&(c[d]=i[d]);if(t){s=t(i);for(var l=0;l<s.length;l++)n.call(i,s[l])&&(c[s[l]]=i[s[l]])}}return c}},535:(e,t,a)=>{"use strict";var n=a(525),o=60103,r=60106;var i=60109,s=60110,c=60112;var p=60115,d=60116;if("function"==typeof Symbol&&Symbol.for){var l=Symbol.for;o=l("react.element"),r=l("react.portal"),l("react.fragment"),l("react.strict_mode"),l("react.profiler"),i=l("react.provider"),s=l("react.context"),c=l("react.forward_ref"),l("react.suspense"),p=l("react.memo"),d=l("react.lazy")}var u="function"==typeof Symbol&&Symbol.iterator;function w(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,a=1;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var f={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function y(e,t,a){this.props=e,this.context=t,this.refs=g,this.updater=a||f}function h(){}function m(e,t,a){this.props=e,this.context=t,this.refs=g,this.updater=a||f}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(w(85));this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},h.prototype=y.prototype;var v=m.prototype=new h;v.constructor=m,n(v,y.prototype),v.isPureReactComponent=!0;var S={current:null},P=Object.prototype.hasOwnProperty,b={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,a){var n,r={},i=null,s=null;if(null!=t)for(n in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)P.call(t,n)&&!b.hasOwnProperty(n)&&(r[n]=t[n]);var c=arguments.length-2;if(1===c)r.children=a;else if(1<c){for(var p=Array(c),d=0;d<c;d++)p[d]=arguments[d+2];r.children=p}if(e&&e.defaultProps)for(n in c=e.defaultProps)void 0===r[n]&&(r[n]=c[n]);return{$$typeof:o,type:e,key:i,ref:s,props:r,_owner:S.current}}function W(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var C=/\/+/g;function I(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function A(e,t,a,n,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var c=!1;if(null===e)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case o:case r:c=!0}}if(c)return i=i(c=e),e=""===n?"."+I(c,0):n,Array.isArray(i)?(a="",null!=e&&(a=e.replace(C,"$&/")+"/"),A(i,t,a,"",(function(e){return e}))):null!=i&&(W(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||c&&c.key===i.key?"":(""+i.key).replace(C,"$&/")+"/")+e)),t.push(i)),1;if(c=0,n=""===n?".":n+":",Array.isArray(e))for(var p=0;p<e.length;p++){var d=n+I(s=e[p],p);c+=A(s,t,a,d,i)}else if(d=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=u&&e[u]||e["@@iterator"])?e:null}(e),"function"==typeof d)for(e=d.call(e),p=0;!(s=e.next()).done;)c+=A(s=s.value,t,a,d=n+I(s,p++),i);else if("object"===s)throw t=""+e,Error(w(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return c}function O(e,t,a){if(null==e)return e;var n=[],o=0;return A(e,n,"","",(function(e){return t.call(a,e,o++)})),n}function M(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var T={current:null};function E(){var e=T.current;if(null===e)throw Error(w(321));return e}},378:(e,t,a)=>{"use strict";a(535)}},t={};function a(n){var o=t[n];if(void 0!==o)return o.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,a),r.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";var e,t,o,r,i,s,c,p;a.r(n),a.d(n,{AppManifestType:()=>c,BrowserButtonType:()=>g,CustomActionCallerType:()=>h,GlobalContextMenuOptionType:()=>u,PageTabContextMenuOptionType:()=>w,SaveButtonContextMenuOptionType:()=>y,SaveModalType:()=>m,ViewTabMenuOptionType:()=>f,getCurrentSync:()=>Gt,init:()=>En,wrapSync:()=>$t}),function(e){e.Fetching="fetching",e.Fetched="fetched",e.Complete="complete"}(e||(e={})),function(e){e.UserAction="user-action",e.FocusChange="focus-change",e.Reload="reload"}(t||(t={})),function(e){e.Active="active",e.Default="default"}(o||(o={})),function(e){e.Suggestion="suggestion"}(r||(r={})),function(e){e.Contact="Contact",e.Custom="Custom",e.List="List",e.Plain="Plain",e.SimpleText="SimpleText",e.Loading="Loading",e.Error="Error"}(i||(i={})),function(e){e.MultiSelect="MultiSelect"}(s||(s={})),function(e){e.Snapshot="snapshot",e.Manifest="manifest",e.View="view",e.External="external"}(c||(c={})),function(e){e.LandingPage="landingPage",e.AppGrid="appGrid"}(p||(p={}));var d,l,u,w,f,g,y,h,m,v;!function(e){e.Primary="primary",e.Secondary="secondary",e.TextOnly="textOnly"}(d||(d={})),function(e){e.ActionButton="ActionButton",e.DropdownButton="DropdownButton"}(l||(l={})),function(e){e.NewWindow="NewWindow",e.NewPage="NewPage",e.SavePage="SavePage",e.SavePageAs="SavePageAs",e.CloseWindow="CloseWindow",e.RestoreChanges="RestoreChanges",e.SaveWorkspace="SaveWorkspace",e.SaveWorkspaceAs="SaveWorkspaceAs",e.RenameWorkspace="RenameWorkspace",e.SwitchWorkspace="SwitchWorkspace",e.DeleteWorkspace="DeleteWorkspace",e.OpenStorefront="OpenStorefront",e.Quit="Quit",e.Custom="Custom"}(u||(u={})),function(e){e.Close="Close",e.Duplicate="Duplicate",e.Rename="Rename",e.Save="Save",e.SaveAs="Save As",e.Custom="Custom"}(w||(w={})),function(e){e.NewView="NewView",e.DuplicateViews="DuplicateView",e.OpenWithDefaultBrowser="OpenWithDefaultBrowser",e.ReloadViews="ReloadTab",e.CloseViews="CloseTab",e.AddToChannel="AddToChannel",e.RemoveFromChannel="RemoveFromChannel",e.Custom="Custom"}(f||(f={})),function(e){e.ShowHideTabs="ShowHideTabs",e.ColorLinking="ColorLinking",e.PresetLayouts="PresetLayouts",e.LockUnlockPage="LockUnlockPage",e.SaveMenu="SaveMenu",e.SavePage="SavePage",e.Minimise="Minimise",e.Maximise="Maximise",e.Close="Close",e.Custom="Custom"}(g||(g={})),function(e){e.SavePage="SavePage",e.SaveWorkspace="SaveWorkspace",e.SavePageAs="SavePageAs",e.SaveWorkspaceAs="SaveWorkspaceAs",e.Custom="Custom"}(y||(y={})),function(e){e.CustomButton="CustomButton",e.CustomDropdownItem="CustomDropdownItem",e.GlobalContextMenu="GlobalContextMenu",e.ViewTabContextMenu="ViewTabContextMenu",e.PageTabContextMenu="PageTabContextMenu",e.SaveButtonContextMenu="SaveButtonContextMenu",e.API="API"}(h||(h={})),function(e){e.SAVE_PAGE="SAVE_PAGE",e.SAVE_WORKSPACE="SAVE_WORKSPACE",e.SAVE_PAGE_AS="SAVE_PAGE_AS",e.SAVE_WORKSPACE_AS="SAVE_WORKSPACE_AS",e.RENAME_PAGE="RENAME_PAGE",e.RENAME_WORKSPACE="RENAME_WORKSPACE"}(m||(m={})),function(e){e.Local="local",e.Dev="dev",e.Staging="staging",e.Prod="prod"}(v||(v={}));const S="undefined"!=typeof window&&"undefined"!=typeof fin,P=("undefined"==typeof process||process.env?.JEST_WORKER_ID,"undefined"!=typeof window),b=P&&"undefined"!=typeof indexedDB,k=P?window.origin:v.Local,W=S&&fin.me.uuid,C=S&&fin.me.name,I=S&&fin.me.entityType,A=(v.Local,v.Dev,v.Staging,"prod"===v.Prod),O=e=>e.startsWith("http://")||e.startsWith("https://")?e:k+e,M=(O("https://cdn.openfin.co/workspace/9.1.0"),O("https://cdn.openfin.co/workspace/9.1.0")),T=("undefined"!=typeof WORKSPACE_DOCS_PLATFORM_URL&&O(WORKSPACE_DOCS_PLATFORM_URL),"undefined"!=typeof WORKSPACE_DOCS_CLIENT_URL&&O(WORKSPACE_DOCS_CLIENT_URL),"26.102.71.7"),E="9.1.0";var x,B,R;!function(e){e.Workspace="openfin-browser"}(x||(x={})),function(e){e.RunRequested="run-requested",e.WindowOptionsChanged="window-options-changed",e.WindowClosed="window-closed",e.WindowCreated="window-created"}(B||(B={})),function(e){e.FinProtocol="fin-protocol"}(R||(R={}));const _={uuid:W},D=(x.Workspace,e=>{if(!S)throw new Error("getApplication cannot be used in a non OpenFin env. Avoid using this during pre-rendering.");return fin.Application.wrapSync(e)}),V=()=>D(_);var L,U,F;!function(e){e.Home="openfin-home",e.Dock="openfin-dock",e.Storefront="openfin-storefront",e.HomeInternal="openfin-home-internal",e.BrowserMenu="openfin-browser-menu",e.BrowserIndicator="openfin-browser-indicator",e.BrowserWindow="internal-generated-window"}(L||(L={})),function(e){e.Shown="shown",e.BoundsChanged="bounds-changed",e.LayoutReady="layout-ready",e.EndUserBoundsChanging="end-user-bounds-changing",e.Blurred="blurred",e.Closed="closed",e.CloseRequested="close-requested",e.Focused="focused",e.ShowRequested="show-requested",e.ViewCrashed="view-crashed",e.ViewAttached="view-attached",e.ViewDetached="view-detached",e.ViewPageTitleUpdated="view-page-title-updated",e.ViewDestroyed="view-destroyed",e.OptionsChanged="options-changed"}(U||(U={})),function(e){e.BeforeUnload="beforeunload"}(F||(F={}));function $(e){if(!S)throw new Error("getOFWindow can only be used in an OpenFin env. Avoid calling this method during pre-rendering.");return fin.Window.wrapSync(e)}const G={name:C,uuid:W};function N(){return $(G)}L.Home,x.Workspace,L.Dock,x.Workspace;const j={name:L.Storefront,uuid:x.Workspace};x.Workspace,x.Workspace;async function H(e){const t=$(e);"minimized"===await t.getState()&&await t.restore(),await t.show(),await t.setAsForeground()}const q=e=>e.startsWith(L.BrowserWindow);async function K(){return(await fin.Application.getCurrentSync().getChildWindows()).filter((e=>q(e.identity.name)))}const Q=e=>$(e).getOptions().then((()=>!0)).catch((()=>!1)),z=()=>Q(j);var J;!function(e){e.Browser="Browser",e.Dock="Dock",e.Home="Home",e.Notification="Notification",e.Storefront="Storefront",e.Platform="Platform",e.Theming="Theming"}(J||(J={}));const Y=async(e,t)=>{const a={apiVersion:t.apiVersion||E,componentName:e,componentVersion:t.componentVersion||E,allowed:t.allowed,rejectionCode:t.rejectionCode};fin.System.registerUsage({type:"workspace-licensing",data:a})};a(378);const X=e=>fin.System.getSystemAppConfig(e);let Z;async function ee(){if(Z)return Z;if(!S)return P&&console.warn("getOverrides: The Fin API was not available. Returning an empty result."),{};const e=await async function(){const e="getDOSOverrides";if(S)try{let t=await X("workspace").catch((t=>{console.warn(`${e}: customConfig entry for SystemApp workspace not available in Desktop Owner Settings. ${t?.message}`)}));return t||(t=await X("home")),JSON.stringify(t),t}catch(t){A&&console.warn(`${e}: Missing Workspace Desktop Owner Settings configuration, using defaults. ${t?.message}`)}else console.warn(`${e}: the fin API was not available, returning no result`)}(),t=await async function(){const e="getManifestOverrides",{manifest:t,initialOptions:a}=await fin.Application.getCurrentSync().getInfo();return t?.workspace||t?.home||a?.workspace||a?.home||console.warn(`${e}: Missing Home development manifest overrides, using Desktop Owner Settings.`),t?.workspace?(JSON.stringify(t?.workspace),t?.workspace):t?.home?(JSON.stringify(t?.home),t?.home):a?.workspace?(JSON.stringify(a?.workspace),a?.workspace):a?.home?(JSON.stringify(a?.home),a?.home):void 0}();return Z={...t,...e},Z}var te;!function(e){e.CurrentWorkspaceId="currentWorkspaceId",e.LastFocusedBrowserWindow="lastFocusedBrowserWindow",e.MachineName="machineName",e.NewTabPageLayout="NewTabPageLayout",e.NewTabPageSort="NewTabPageSort",e.DockPosition="DockPosition"}(te||(te={}));const ae=te,ne=(e,t)=>{localStorage.setItem(`${W}-${e}`,t)},oe=e=>localStorage.getItem(`${W}-${e}`);var re;!function(e){e.LaunchApp="launchApp",e.SavePage="savePage",e.GetSavedPage="getSavedPage",e.CreateSavedPage="createSavedPage",e.UpdateSavedPage="updateSavedPage",e.DeleteSavedPage="deleteSavedPage",e.GetSavedPages="getSavedPages",e.CreateSavedPageInternal="createSavedPageInternal",e.UpdateSavedPageInternal="updateSavedPageInternal",e.DeleteSavedPageInternal="deleteSavedPageInternal",e.SharePage="sharePage",e.UpdatePageForWindow="updatePageForWindow",e.AttachPagesToWindow="attachPagesToWindow",e.DetachPagesFromWindow="detachPagesFromWindow",e.ReorderPagesForWindow="reorderPagesForWindow",e.SetActivePage="setActivePage",e.GetAllAttachedPages="getAllAttachedPages",e.GetActivePageIdForWindow="getActivePageIdForWindow",e.GetPagesForWindow="getPagesForWindow",e.GetPageForWindow="getPageForWindow",e.GetSavedPageMetadata="getSavedPageMetadata",e.GetUniquePageTitle="getUniquePageTitle",e.GetLastFocusedBrowserWindow="getLastFocusedBrowserWindow",e.GetThemes="getThemes",e.OpenGlobalContextMenuInternal="openGlobalContextMenuInternal",e.OpenViewTabContextMenuInternal="openViewTabContextMenuInternal",e.OpenPageTabContextMenuInternal="openPageTabContextMenuInternal",e.OpenSaveButtonContextMenuInternal="openSaveButtonContextMenuInternal",e.InvokeCustomActionInternal="invokeCustomActionInternal",e.RequestQuitPlatformDialogInternal="requestQuitPlatformDialogInternal",e.GetSavedWorkspace="getSavedWorkspace",e.CreateSavedWorkspace="createSavedWorkspace",e.UpdateSavedWorkspace="updateSavedWorkspace",e.DeleteSavedWorkspace="deleteSavedWorkspace",e.GetSavedWorkspaces="getSavedWorkspaces",e.SaveWorkspace="saveWorkspace",e.GetCurrentWorkspace="getCurrentWorkspace",e.ApplyWorkspace="applyWorkspace",e.SetActiveWorkspace="setActiveWorkspace",e.IsBrowserInitialized="isBrowserInitialized"}(re||(re={}));const ie=async e=>fin.Platform.wrapSync(e).getClient(),se=async e=>{const t=await ie(e),a="Target is not a Workspace Platform. Target must call WorkspacePlatform.init";let n;try{n=await t.dispatch("isWorkspacePlatform")}catch(e){throw new Error(a)}if("boolean"==typeof n&&n)return console.warn("You are using an older version of the workspace platform. Please update your workspace platform."),n;if("object"==typeof n&&n.isWorkspacePlatform)return n;throw new Error(a)},ce=async e=>(await se(e),ie(e)),pe=async e=>{const t=await se(e);if("object"==typeof t&&!0!==t?.isBrowserInitialized)throw new Error("Target is not a Browser-enabled Workspace Platform.");return ie(e)},de=(e,t)=>!t.find((t=>t===e)),le=(e,t)=>`${e} (${t})`,ue=(e,t)=>{let a=1;const n=e.replace(/ \(.+\)$/,"");for(;!de(le(n,a),t);)a+=1;return le(n,a)};async function we(e){try{const t=Gt();await t.applySnapshot(e.snapshot,{closeExistingWindows:!0}),fe(e)}catch(e){console.error("failed to apply the current workspace: ",e)}}function fe(e){if("undefined"!=typeof localStorage)try{const t=JSON.stringify(e);ne(ae.CurrentWorkspaceId,t)}catch(e){console.error("failed to set the active workspace: ",e)}}async function ge(){if("undefined"==typeof localStorage)return;const e=Gt(),t=await e.getSnapshot();return{workspaceId:crypto.randomUUID(),title:await me(),metadata:{APIVersion:E},snapshot:t}}async function ye(){if("undefined"==typeof localStorage)return;const e=oe(ae.CurrentWorkspaceId);if(!e)return ge();const t=JSON.parse(e),a=Gt(),n=await a.getSnapshot();return{...t,metadata:{APIVersion:E},snapshot:n}}const he=async e=>await(async e=>(await ce(G)).dispatch(re.GetSavedWorkspace,e))(e.workspaceId)?(async e=>(await ce(G)).dispatch(re.UpdateSavedWorkspace,e))({workspaceId:e.workspaceId,workspace:e}):(async e=>(await ce(G)).dispatch(re.CreateSavedWorkspace,e))({workspace:e});async function me(e="Untitled Workspace"){const t=(await(async()=>(await ce(G)).dispatch(re.GetSavedWorkspaces,void 0))()).map((({title:e})=>e));return t.find((t=>t===e))?ue(e,t):e}async function ve(){if("undefined"!=typeof localStorage)try{const e=oe(ae.LastFocusedBrowserWindow);if(!e)return;const t=JSON.parse(e);if(await Q(t))return t}catch(e){throw new Error(`failed to get last focused browser window: ${e}`)}}function Se(e=fin.me.identity){q(e.name)&&function(e){if("undefined"!=typeof localStorage)try{const t=JSON.stringify(e);ne(ae.LastFocusedBrowserWindow,t)}catch(e){console.error("failed to save last focused browser window: ",e)}}(e)}var Pe,be=a(198),ke=a.n(be);!function(e){e.TabCreated="tab-created",e.ContainerCreated="container-created",e.ContainerResized="container-resized"}(Pe||(Pe={}));const We=(e,t)=>e.content?{...e,content:e.content.map((e=>We(e,t)))}:{...e,componentState:t(e.componentState)},Ce=e=>({...e,name:e.name?e.name:crypto.randomUUID()}),Ie=e=>{const t=[];return(e&&Array.isArray(e)?e:[]).forEach((e=>{if("component"===e.type)return t.push(e.componentState);const a=Ie(e.content);t.push(...a)})),t},Ae=async(e,t,a=G)=>{let n;if(q(a.name)){n=(await $(a).getOptions()).layout||{settings:{}}}return{...n,content:[{type:"stack",content:[{type:"component",componentName:"view",componentState:{title:e,url:t}}]}]}};new Map;function Oe(e,t){return async(a,...n)=>{e.has(a)&&e.get(a).forEach((e=>e(...n))),t&&await t({event:a,payload:n})}}function Me(e,t){return t&&t((t=>{const{event:a,payload:n}=t;e.has(a)&&e.get(a).forEach((e=>e(...n)))})),(t,a)=>{e.has(t)||e.set(t,new Set),e.get(t).add(a)}}function Te(e){return(t,a)=>{e.has(t)||e.set(t,new Set);const n=e.get(t),o=(...e)=>{a(...e),n.delete(o)};n.add(o)}}function Ee(e){return(t,a)=>{e.has(t)&&e.get(t).delete(a)}}const xe=P&&"complete"!==document.readyState&&new Promise((e=>document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&e()}))));function Be(e){let t;return()=>{if(!S)throw new Error("getChannelClient cannot be used outside an OpenFin env. Avoid using this method during pre-rendering.");return t||(t=(async()=>{await xe;const a={clientAPIVersion:E},n=await fin.InterApplicationBus.Channel.connect(e,{payload:a});return n.onDisconnection((async()=>{console.warn(`disconnected from channel provider ${e}`),t=void 0})),n})().then((e=>e)).catch((a=>{throw t=void 0,new Error(`failed to connect to channel provider ${e}: ${a}`)}))),t}}const Re=e=>`__browser_window__-${e.uuid}-${e.name}`,_e=new Map,De=e=>{const t=Re(e);return _e.has(t)||_e.set(t,Be(t)),_e.get(t)()};var Ve,Le;!function(e){e.CloseBrowserWindow="close-browser-window",e.QuitPlatform="quit-platform",e.ClosePage="close-page",e.AddToChannel="add-to-channel",e.RemoveFromChannel="remove-from-channel",e.OpenSaveModalInternal="open-save-modal-internal",e.DuplicatePage="duplicate-page"}(Ve||(Ve={})),function(e){e.GetPages="get-pages",e.GetActivePageForWindow="get-active-page-for-window",e.AttachPagesToWindow="attach-pages-to-window",e.DetachPagesFromWindow="detach-pages-from-window",e.SetActivePageForWindow="set-active-page-for-window",e.RenamePage="rename-page",e.ReorderPagesForWindow="reorder-pages-for-window",e.UpdatePageForWindow="update-page-for-window",e.UpdatePagesWindowOptions="update-pages-window-options",e.IsDetachingPages="is-detaching-pages",e.IsActivePageChanging="is-active-page-changing"}(Le||(Le={}));const Ue={...Ve,...Le};var Fe;!function(e){e.AttachedPagesToWindow="attached-pages-to-window",e.DetachedPagesFromWindow="detached-pages-from-window"}(Fe||(Fe={}));new Map;const $e=async e=>{const t=await De(e);return await t.dispatch(Ue.GetPages)},Ge=async e=>(await De(e.identity)).dispatch(Ue.UpdatePageForWindow,e),Ne=async()=>{const e=await K();return(await Promise.all(e.map((async e=>{try{return $e(e.identity)}catch(t){JSON.stringify(e.identity);return(await e.getOptions()).workspacePlatform?.pages||[]}})))).reduce(((e,t)=>e.concat(t)),[])},je=async()=>(await ce(G)).dispatch(re.GetSavedPages,void 0),He=async e=>(await ce(G)).dispatch(re.GetSavedPage,e),qe=async(e,t)=>{const a=await(async e=>(await Ne()).find((t=>t.pageId===e)))(e);return!a||a.title===t.title&&e===t.pageId||await Ge({identity:a.parentIdentity,pageId:e,page:{pageId:t.pageId,title:t.title}}),a},Ke=async({page:e})=>{await qe(e.pageId,e),await(async e=>(await ce(G)).dispatch(re.CreateSavedPage,e))({page:e})},Qe=async e=>{await He(e)&&await(async e=>(await ce(G)).dispatch(re.DeleteSavedPage,e))(e)},ze=async({pageId:e,page:t})=>{await qe(e,t);return await(async e=>(await ce(G)).dispatch(re.UpdateSavedPage,e))({pageId:e,page:t})},Je=async e=>await He(e.pageId)?ze({pageId:e.pageId,page:e}):Ke({page:e}),Ye=async e=>{await(async e=>(await De(e.identity)).dispatch(Ue.AttachPagesToWindow,e))(e)},Xe=async e=>{await Ge(e)},Ze=async e=>{await(async e=>(await De(e.identity)).dispatch(Ue.DetachPagesFromWindow,e))(e)},et=async e=>{await(async e=>(await De(e.identity)).dispatch(Ue.SetActivePageForWindow,e))(e)},tt=e=>$e(e),at=async({identity:e,pageId:t})=>(await tt(e)).find((e=>e.pageId===t)),nt=async e=>{await(async e=>(await De(e.identity)).dispatch(Ue.ReorderPagesForWindow,e))(e)};async function ot(e="Untitled Page"){const[t,a]=await Promise.all([je(),Ne()]),n=[...t,...a].map((({title:e})=>e));return n.find((t=>t===e))?ue(e,n):e}const rt=e=>`${e.uuid}-${e.name}`,it=async()=>{const e=await Ne(),t=new Set;return e.forEach((e=>{Ie(e.layout.content).forEach((e=>{if(e.name){const a=rt(e);t.add(a)}}))})),t};const st=ke()((()=>async function(){const e=await it(),t=N(),a=(await t.getCurrentViews()).filter((({identity:t})=>!e.has(rt(t))));a.length&&setTimeout((async()=>{const e=await it();a.forEach((({identity:t})=>{const a=rt(t);e.has(a)||fin.Platform.getCurrentSync().closeView(t)}))}),2500)}().catch((e=>console.debug("error in scheduleViewCleanup",e)))),5e3,{leading:!1,trailing:!0}),ct=({name:e})=>{e&&q(e)&&st()};let pt={};const dt=({actionId:e,payload:t})=>{if("function"!=typeof pt[e])throw new Error(`Cannot find a configured function for the action '${e}'`);return pt[e](t)};function lt(){return localStorage.getItem(ae.MachineName)}let ut;async function wt(){return ut||(ut=await fin.System.getMachineId()),ut}const ft=e=>{if(e.layout&&Array.isArray(e.workspacePlatform?.pages)){const t=e.workspacePlatform.pages.find((e=>e.isActive));if(t)if(t.isLocked){const a=((e,t)=>{const a=Ie(t.content);return{...We(e,(e=>{const t=a.find((t=>t.name===e.name&&t.uuid===e.uuid)),n=t?t.isClosable:e.isClosable;return{...e,isClosable:n}})),settings:t.settings}})(e.layout,t.layout);t.layout=a,e.layout=a}else t.layout=e.layout}return e};async function gt(e){const t=e||await fin.Platform.getCurrentSync().getSnapshot();if(t.snapshotDetails?.machineId)return t;const a=lt();return{...t,snapshotDetails:{...e.snapshotDetails,machineId:await wt(),machineName:a}}}function yt(e){return new Promise(((t,a)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>a(e.error)}))}function ht(e,t){const a=indexedDB.open(e);a.onupgradeneeded=()=>a.result.createObjectStore(t);const n=yt(a);return(e,a)=>n.then((n=>a(n.transaction(t,e).objectStore(t))))}let mt;function vt(){return mt||(mt=ht("keyval-store","keyval")),mt}function St(e,t=vt()){return t("readonly",(t=>yt(t.get(e))))}function Pt(e,t,a=vt()){return a("readwrite",(a=>(a.put(t,e),yt(a.transaction))))}function bt(e,t=vt()){return t("readwrite",(t=>(t.delete(e),yt(t.transaction))))}function kt(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},yt(e.transaction)}function Wt(e=vt()){return e("readonly",(e=>{if(e.getAllKeys)return yt(e.getAllKeys());const t=[];return kt(e,(e=>t.push(e.key))).then((()=>t))}))}const Ct=(e,t="")=>e.toLowerCase().includes(t.toLowerCase()),It=b&&ht("openfin-home-pages","pages");async function At(e){const t=await St(e,It);return t?(t.pageId=e.toString(),t.title=t.title||t.pageId,t):null}async function Ot(e){const t=await Wt(It),a=await Promise.all(t.map((e=>At(e.toString()))));return e?a.filter((t=>Ct(t.title,e))):a}async function Mt({page:e}){await Pt(e.pageId,e,It)}async function Tt(e){await bt(e,It)}async function Et({pageId:e,page:t}){if(void 0===await At(e))throw new Error("page not found");await Mt({page:t}),e!==t.pageId&&await Tt(e)}var xt;!function(e){e.Label="normal",e.Separator="separator",e.Submenu="submenu",e.Checkbox="checkbox"}(xt||(xt={}));const Bt={type:xt.Separator,data:void 0};var Rt;!function(e){e.RegisterProvider="register-provider",e.DeregisterProvider="deregister-provider",e.CreateProviderWindow="create-provider-window",e.GetProviders="get-providers",e.ShowProviderWindow="show-provider-window",e.HideProviderWindow="hide-provider-window",e.GetStorefrontProviderApps="get-storefront-provider-apps",e.GetStorefrontProviderLandingPage="get-storefront-provider-landing-page",e.GetStorefrontProviderFooter="get-storefront-provider-footer",e.GetStorefrontProviderNavigation="get-storefront-provider-navigation",e.LaunchStorefrontProviderApp="launch-storefront-provider-app",e.ShowHome="show-home",e.HideHome="hide-home",e.AssignHomeSearchContext="assign-home-search-context",e.GetLegacyPages="get-legacy-pages",e.GetLegacyWorkspaces="get-legacy-workspaces",e.GetComputedPlatformTheme="get-computed-platform-theme",e.RegisterStorefrontProvider="register-storefront-provider",e.DeregisterStorefrontProvider="deregister-storefront-provider",e.HideStorefront="hide-storefront",e.ShowStorefront="show-storefront"}(Rt||(Rt={}));Be("__of_workspace_protocol__");const _t=async(e,t)=>{const a=await(async e=>({...e,layoutDetails:{machineId:await wt(),machineName:lt()}}))(t);return{pageId:crypto.randomUUID(),title:e,layout:a,isReadOnly:!1,hasUnsavedChanges:!0}},Dt=e=>({identity:e,openfinWindow:fin.Window.wrapSync(e),getPages:async()=>(await pe(e)).dispatch(re.GetPagesForWindow,e),getPage:async t=>(await pe(e)).dispatch(re.GetPageForWindow,{identity:e,pageId:t}),addPage:async t=>{const a=await pe(e);t?.title||(t.title=await a.dispatch(re.GetUniquePageTitle,void 0));const n=(await a.dispatch(re.GetAllAttachedPages,void 0)).find((e=>e.pageId===t.pageId||e.title===t.title));if(n)throw n.pageId===t.pageId?new Error(`page with id ${t.pageId} is already attached to a browser window ${n.parentIdentity.name}`):new Error(`page with title ${t.title} is already attached to a browser window ${n.parentIdentity.name}`);const o={identity:e,pages:[t]};return a.dispatch(re.AttachPagesToWindow,o)},removePage:async t=>(await pe(e)).dispatch(re.DetachPagesFromWindow,{identity:e,pageIds:[t]}),setActivePage:async t=>(await pe(e)).dispatch(re.SetActivePage,{identity:e,pageId:t}),updatePage:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.UpdatePageForWindow,t)},reorderPages:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.ReorderPagesForWindow,t)},_openGlobalContextMenu:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.OpenGlobalContextMenuInternal,t)},replaceToolbarOptions:async t=>{await pe(e);const a=fin.Window.wrapSync(e);await a.updateOptions({workspacePlatform:{toolbarOptions:t}})},replaceWindowStateButtonOptions:async t=>{await pe(e);const a=fin.Window.wrapSync(e);await a.updateOptions({workspacePlatform:{windowStateButtonOptions:t}})},_openViewTabContextMenu:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.OpenViewTabContextMenuInternal,t)},_openPageTabContextMenu:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.OpenPageTabContextMenuInternal,t)},_openSaveModal:async t=>{await pe(e);return(await De(e)).dispatch(Ue.OpenSaveModalInternal,t)},_openSaveButtonContextMenu:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.OpenSaveButtonContextMenuInternal,t)}});let Vt=!1;const Lt=e=>{const t=fin.Platform.wrapSync(e);return{wrapSync:e=>Dt(e),createWindow:async a=>{await pe(e),Vt||(Vt=!0,(async e=>{Y(J.Browser,e)})({allowed:!0}));const n=await t.createWindow(a);return Dt(n.identity)},getAllAttachedPages:async()=>(await pe(e)).dispatch(re.GetAllAttachedPages,void 0),getAllWindows:async()=>{await pe(e);return(await fin.Application.wrapSync(e).getChildWindows()).filter((e=>e.identity.name.includes("internal-generated-window-"))).map((e=>Dt(e.identity)))},getUniquePageTitle:async t=>(await pe(e)).dispatch(re.GetUniquePageTitle,t),getLastFocusedWindow:async()=>(await pe(e)).dispatch(re.GetLastFocusedBrowserWindow,void 0)}},Ut=e=>({createPage:async t=>(await pe(e)).dispatch(re.CreateSavedPageInternal,t),deletePage:async t=>(await pe(e)).dispatch(re.DeleteSavedPageInternal,t),updatePage:async t=>(await pe(e)).dispatch(re.UpdateSavedPageInternal,t),getPage:async t=>(await pe(e)).dispatch(re.GetSavedPage,t),getPages:async t=>(await pe(e)).dispatch(re.GetSavedPages,t),savePage:async t=>(await pe(e)).dispatch(re.SavePage,t),createWorkspace:async t=>(await ce(e)).dispatch(re.CreateSavedWorkspace,t),deleteWorkspace:async t=>{const a=await Gt(),n=await a.getCurrentWorkspace();if(n.workspaceId===t)throw new Error(`Cannot delete current active workspace ${n.title}`);return(await ce(e)).dispatch(re.DeleteSavedWorkspace,t)},updateWorkspace:async t=>(await ce(e)).dispatch(re.UpdateSavedWorkspace,t),getWorkspace:async t=>(await ce(e)).dispatch(re.GetSavedWorkspace,t),getWorkspaces:async t=>(await ce(e)).dispatch(re.GetSavedWorkspaces,t),saveWorkspace:async t=>(await ce(e)).dispatch(re.SaveWorkspace,t)}),Ft=e=>({getThemes:async()=>(await ce(e)).dispatch(re.GetThemes,void 0)}),$t=e=>{const t=fin.Platform.wrapSync(e);return Object.assign(t,{applySnapshot:async(t,a)=>{if("string"!=typeof t&&!t?.windows)throw new Error("Not a valid browser snapshot");return fin.Platform.wrapSync(e).applySnapshot(t,a)},getSnapshot:()=>fin.Platform.wrapSync(e).getSnapshot().then((e=>e)),launchApp:async t=>{t.target||(t.target={uuid:W,name:C,entityType:I||"unknown"});return(await ce(e)).dispatch(re.LaunchApp,t)},_invokeCustomAction:async(t,a)=>{const n=await ce(e),o={actionId:t,payload:{...a,callerType:a.callerType||h.API}};return n.dispatch(re.InvokeCustomActionInternal,o)},_requestQuitPlatformDialog:async t=>(await ce(e)).dispatch(re.RequestQuitPlatformDialogInternal,t),getCurrentWorkspace:async()=>(await ce(e)).dispatch(re.GetCurrentWorkspace,void 0),applyWorkspace:async t=>(await ce(e)).dispatch(re.ApplyWorkspace,t),setActiveWorkspace:async t=>(await ce(e)).dispatch(re.SetActiveWorkspace,t),Theme:Ft(e),Browser:Lt(e),Storage:Ut(e)})},Gt=()=>$t(fin.me.identity),Nt=async(e=G)=>{const{workspacePlatform:t}=await $(e).getOptions(),a=t?.newPageUrl,n=t?.newTabUrl;return{newPageUrl:a,newTabUrl:n}},jt=async(e=G)=>{const t=await Gt().Browser.getUniquePageTitle("Untitled Page"),a=await(async(e=G)=>{const{newPageUrl:t}=await Nt(e);if(!t)throw new Error("Trying to create a new page without a newPageUrl set");return Ae("New Tab",t,e)})(e);return _t(t,a)},Ht={type:xt.Label,label:"Close Window",data:{type:u.CloseWindow}},qt={type:xt.Label,label:"Open Storefront",data:{type:u.OpenStorefront}},Kt={type:xt.Label,label:"Quit Platform",data:{type:u.Quit}},Qt={type:xt.Label,label:"New Window",data:{type:u.NewWindow}},zt={type:xt.Label,label:"Save Page",data:{type:u.SavePage}},Jt={type:xt.Label,label:"Save Page As...",data:{type:u.SavePageAs}},Yt={type:xt.Label,label:"Restore to Last Saved Changes",data:{type:u.RestoreChanges}},Xt={type:xt.Label,label:"Save Workspace",data:{type:u.SaveWorkspace}},Zt={type:xt.Label,label:"Save Workspace As...",data:{type:u.SaveWorkspaceAs}},ea={type:xt.Label,label:"Rename Workspace",data:{type:u.RenameWorkspace}},ta="Switch Workspace",aa="Delete Workspace",na=[Ht,Bt,qt,Bt,Kt],oa=[Bt,Ht,Bt,Kt],ra=(e,t,a)=>t.map((t=>{const n=t.workspaceId===e.workspaceId;return{label:t.title,type:xt.Checkbox,enabled:!n,checked:n,data:{type:a,workspaceId:t.workspaceId}}})),ia=async e=>{const t=await z(),{newPageUrl:a}=await Nt(e),n=await(async e=>{const t=$(e),{workspacePlatform:a}=await t.getOptions();return a?.disableMultiplePages})(e),o=await(async e=>{const t=$(e),{workspacePlatform:a}=await t.getOptions();return a?.isLocked})(e),r=[];var i;a&&(r.push(Qt),n||r.push((i=!o,{type:xt.Label,label:"New Page",data:{type:u.NewPage},enabled:i}))),r.push(Bt);const s=Gt(),c=await s.getCurrentWorkspace(),p=await s.Storage.getWorkspaces(),d=p.find((e=>e.workspaceId===c.workspaceId));return d?r.push(Yt):r.push({label:Yt.label,enabled:!1}),r.push(Xt,Zt),d?r.push(ea):r.push({label:ea.label,enabled:!1}),p.some((e=>e.workspaceId!==c.workspaceId))?r.push({label:ta,submenu:ra(c,p,u.SwitchWorkspace)},{label:aa,submenu:ra(c,p,u.DeleteWorkspace)}):r.push({label:ta,enabled:!1},{label:aa,enabled:!1}),r.push(Bt,zt,Jt),t?[...r,...na]:[...r,...oa]};let sa="Platform";const ca=async()=>sa;var pa,da,la;!function(e){e.Home="/home/",e.HomeSearch="/home/?deeplink=search",e.HomePagesRename="/home/pages/rename/",e.Dock="/dock/",e.BrowserPagesLanding="/browser/pages/landing/",e.HomeIndicator="/home/indicator/",e.Browser="/browser/",e.BrowserPopupMenu="/browser/popup-menu/",e.Provider="/provider/",e.BrowserPopupMenuSharePage="/browser/popup-menu/share-page/",e.BrowserPopupMenuSaveModal="/browser/popup-menu/save-modal/",e.BrowserPopupMenuLayouts="/browser/popup-menu/layouts/layouts/",e.BrowserPopupMenuColorLinking="/browser/popup-menu/color-linking/color-linking/",e.BrowserIndicator="/browser/indicator/",e.ResponseModal="/browser/popup-menu/response-modal/",e.Docs="/provider/docs/",e.Storefront="/storefront/",e.DeprecatedAlert="/provider/deprecated-alert/"}(pa||(pa={})),function(e){e.IconOpenFinLogo="/icons/openfinlogo.svg",e.IconFilter="/icons/filter.svg"}(da||(da={})),function(e){e.Search="search"}(la||(la={}));const ua={...da,...pa};var wa;!function(e){e.Home="/home",e.Browser="/browser",e.Provider="/provider",e.Storefront="/storefront",e.Dock="/dock"}(wa||(wa={}));const fa="/workspace/9.1.0";function ga(){return fa.substring(0,fa.length-"".length)}function ya(e){if(!P)throw new Error("getAbsoluteRoutePath can only be used in a window");return function(){if(!window)throw new Error("getAbsoluteBasePath can only be used in a window");return`${window.origin}${ga()}`}()+e}const ha=(e,t=0)=>{let a,n,o=!1;const r=async n=>{const i=await e(...n);if(o){await new Promise((e=>setTimeout(e,t)));const e=a;return a=void 0,o=!1,r(e)}return i};return(...e)=>(n?(o=!0,a=e):n=r(e).catch((e=>{throw console.error("makeDebouncedFunc",e),e})).finally((()=>{n=void 0})),n)},ma={name:L.BrowserMenu,alwaysOnTop:!0,autoShow:!1,frame:!1,resizable:!1,backgroundColor:"#2f3136",smallWindow:!0,showTaskbarIcon:!1,backgroundThrottling:!0};function va(e){const t={...ma,...e};return t.url=function(e){if(!P)throw new Error("resolveAbsolutePath can only be used in a window");return e.startsWith("http")?e:`${window.origin}${e}`}(t.url),t}var Sa,Pa;!function(e){e.Update="update",e.Response="response"}(Sa||(Sa={})),function(e){e.Canceled="canceled",e.Negative="negative",e.Affirmative="affirmative"}(Pa||(Pa={}));const ba=function(e){const t=new Map;return{emit:Oe(t,(t=>S&&fin.InterApplicationBus.publish(e,t))),addListener:Me(t,(t=>S&&fin.InterApplicationBus.subscribe({uuid:fin.me.uuid},e,t))),removeListener:Ee(t),once:Te(t)}}("window.menu"),ka=e=>ba.emit(Sa.Response,e),Wa=ha((()=>V().getChildWindows()),500);const Ca=new Map;async function Ia(e,t){const a=va(e),n={top:a.top,left:a.left,width:a.defaultWidth,height:a.defaultHeight};return t.set("parentName",fin.Window.getCurrentSync().identity.name),t.set("showing","true"),{name:a.name,bounds:n,route:`${a.url}?${t.toString()}`}}async function Aa({options:e,parameters:t},a){const n=va(e),{name:o}=n;let r=await async function(e){return(await Wa()).find((t=>t.identity.name===e))}(o);if(r)await async function(e,t){const{name:a,bounds:n,route:o}=await Ia(e,t);ba.emit(Sa.Update,a,n,o),await ka({name:a,data:Pa.Canceled})}(n,t||new URLSearchParams);else{const{route:a,bounds:o}=await Ia(e,t);r=await async function(e,t,a){const n=va(e);if(!Ca.has(n.name)){const e=(async()=>{const e=await fin.Platform.getCurrentSync().createWindow({...n,url:t||n.url,defaultLeft:a?.left,defaultTop:a?.top,defaultWidth:a?.width,defaultHeight:a?.height});return e.once("closed",(()=>{Ca.delete(n.name)})),e})();Ca.set(n.name,e)}return Ca.get(n.name)}(n,a,o)}return a&&r.center(),r}const Oa=async(e,t,a)=>{const n=t?$(t):N();if(!a){await(async(e=fin.me.identity)=>{const t=$(e),a=await t.getBounds();(a.right>screen.availLeft+screen.width||a.left<screen.availLeft||a.bottom>screen.availTop+screen.height||a.top<screen.availTop)&&await t.center()})(n.identity);const t=(e=>({left:(e.left+e.right)/2,top:(e.top+e.bottom)/2}))(await n.getBounds()),{defaultHeight:a,defaultWidth:o}=e;return((e,t)=>{const{height:a,width:n}=t,o=n/2,r=a/2;return{left:e.left-o,top:e.top-r}})(t,{height:a,width:o})}return await n.getBounds()},Ma=async({options:e,content:t},a)=>{const n=new URLSearchParams({...t}),o={...e,name:`${e.name}--${e.modalParentIdentity?.name??""}`};return await Aa({options:o,parameters:n},a),new Promise((e=>{ba.once(Sa.Response,(t=>{t.name===o.name&&e(t)}))}))},Ta=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Switch Workspace",windowOptions:{url:M+ua.ResponseModal,name:L.BrowserMenu,defaultHeight:112,defaultWidth:424,modalParentIdentity:e},content:{title:`Are you sure you want to switch to ${t}`,body:"Any unsaved changes will be discarded",affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(e,t),o=await Oa(a,a.modalParentIdentity),r={...a,top:o.top,left:o.left};return(await Ma({options:r,content:n})).data===Pa.Affirmative},Ea=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Delete Workspace",windowOptions:{url:M+ua.ResponseModal,name:L.BrowserMenu,defaultHeight:144,defaultWidth:372,modalParentIdentity:e},content:{title:"Are you sure you want to permanently delete this workspace?",body:`${t}`,affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(e,t),o=await Oa(a,a.modalParentIdentity),r={...a,top:o.top,left:o.left};return(await Ma({options:r,content:n})).data===Pa.Affirmative},xa=async(e,t,a)=>{const n=a?void 0:e,{windowOptions:o,content:r}=await(async(e,t)=>({title:"Platform Quit",windowOptions:{url:M+ua.ResponseModal,name:L.BrowserMenu,defaultHeight:134,defaultWidth:474,modalParentIdentity:t},content:{title:`Close the ${"Platform"===e?"platform":`${e} Platform`}?`,body:"Closing a platform will close any workspaces, apps or any processes that are running.",affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(t,n),i=await Oa(o,o.modalParentIdentity),s={...o,top:i.top,left:i.left};return(await Ma({options:s,content:r},a)).data===Pa.Affirmative},Ba=async e=>{const{windowOptions:t,content:a}=await(async e=>({title:"Restore Changes",windowOptions:{url:M+ua.ResponseModal,name:L.BrowserMenu,defaultHeight:112,defaultWidth:424,modalParentIdentity:e},content:{title:"Are you sure you want to restore to last saved changes?",body:"Any unsaved changes will be discarded",affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(e),n=await Oa(t,t.modalParentIdentity),o={...t,top:n.top,left:n.left};return(await Ma({options:o,content:a})).data===Pa.Affirmative};var Ra;!function(e){e.ERROR="error",e.SUCCESS="success",e.INFO="info"}(Ra||(Ra={}));const _a={alwaysOnTop:!0,autoShow:!1,frame:!1,resizable:!1,showTaskbarIcon:!1};var Da;!function(e){e.Locked="LockClosedIcon",e.Unlocked="LockOpen1Icon"}(Da||(Da={}));const Va=function(e=_a){const t=new Map;return async(a,n,o,r)=>{if(t.has(a)){const{currentUrl:e,currentName:o}=t.get(a);if(e===n)return;const r=fin.Window.wrapSync({uuid:fin.me.uuid,name:o});await r.close()}const i=`${L.HomeInternal}-${Date.now()}${Math.random()}`;t.set(a,{currentUrl:n,currentName:i});const s=await fin.Platform.getCurrentSync().createWindow({...e,name:i,url:n});((e,t)=>{const a=document.createElement("div");a.setAttribute("aria-live",t||"polite"),(e=>{e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.padding="0",e.style.margin="-1px",e.style.overflow="hidden",e.style.whiteSpace="nowrap",e.style.border="0"})(a),document.body.appendChild(a),setTimeout((()=>{a.innerHTML=e}),100),setTimeout((()=>{document.body.removeChild(a)}),1e3)})(`New ${r} indicator: ${o}`),s.once("closed",(()=>{t.delete(a)}))}}();async function La(e,t,a,n){const o=new URLSearchParams;o.append("type",e),o.append("message",t),o.append("parentName",a||""),o.append("icon",n||"");const r=`${ya(ua.BrowserIndicator)}?${o.toString()}`;return Va("browser"+a,r,t,e)}function Ua(e,t,a){return La(Ra.SUCCESS,e,t,a)}const Fa=async e=>{const t=Gt(),a=await t.getCurrentWorkspace(),n=await t.Storage.getWorkspaces(),o=a.workspaceId;if(n.some((e=>e.workspaceId===o)))t.Storage.saveWorkspace(a),t.setActiveWorkspace(a),Ua("Workspace Saved",e.name);else{t.Browser.wrapSync(e)._openSaveModal({menuType:m.SAVE_WORKSPACE})}},$a=e=>{Gt().Browser.wrapSync(e)._openSaveModal({menuType:m.SAVE_WORKSPACE_AS})},Ga=async(e,t)=>{const a=Gt().Browser.wrapSync(e),n=await Gt().Storage.getPages(),o=(await a.getPages()).find((e=>t?e.pageId===t:e.isActive)),r=n.some((e=>o.pageId===e.pageId));if(r)try{await Gt().Storage.savePage((p=o,{...p,hasUnsavedChanges:void 0,parentIdentity:void 0,isActive:void 0})),await a.updatePage({pageId:o.pageId,page:{hasUnsavedChanges:!1}}),Ua("Page saved",o.parentIdentity.name)}catch{i="Page failed to save",s=o.parentIdentity.name,La(Ra.ERROR,i,s,c)}else a._openSaveModal({id:o.pageId,menuType:m.SAVE_PAGE});var i,s,c,p},Na=async(e,t)=>{const a=Gt().Browser.wrapSync(e),n=(await a.getPages()).find((e=>t?e.pageId===t:e.isActive));a._openSaveModal({id:n.pageId,menuType:m.SAVE_PAGE_AS})},ja=async(e,t)=>{if(!e)return;const a=t.identity,n=await De(a),o=Gt().Browser.wrapSync(t.identity);switch(e.type){case u.NewWindow:const{newPageUrl:t}=await Nt(a);if(!t)throw new Error("Trying to create a new empty window without a newPageUrl set");Gt().createView({target:void 0,url:t});break;case u.NewPage:await(async e=>{const t=Gt().Browser.wrapSync(e),a=await jt(e);await t.addPage(a),await t.setActivePage(a.pageId)})(a);break;case u.CloseWindow:n.dispatch(Ue.CloseBrowserWindow);break;case u.SaveWorkspace:await Fa(a);break;case u.SavePage:await Ga(a);break;case u.SavePageAs:await Na(a);break;case u.SaveWorkspaceAs:await $a(a);break;case u.RenameWorkspace:o._openSaveModal({menuType:m.RENAME_WORKSPACE});break;case u.SwitchWorkspace:await(async(e,t)=>{const a=Gt(),n=(await a.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId));n&&await Ta(e,n.title)&&(await a.applyWorkspace(n),Ua("Workspace Switched!",null))})(a,e);break;case u.DeleteWorkspace:await(async(e,t)=>{const a=Gt(),n=(await a.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId));n&&await Ea(e,n.title)&&(await a.Storage.deleteWorkspace(t.workspaceId),Ua("Workspace Deleted!",e.name))})(a,e);break;case u.Quit:const r=await ca();await xa(a,r)&&fin.Platform.getCurrentSync().quit();break;case u.OpenStorefront:(async()=>{await z()&&H(j)})();break;case u.RestoreChanges:const i=await async function(){const e=Gt(),t=await e.getCurrentWorkspace();return(await e.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId))}();await Ba(a)&&await we(i);break;case u.Custom:if(e.action){const t={callerType:h.GlobalContextMenu,windowIdentity:a,customData:e.action.customData};Gt()._invokeCustomAction(e.action.id,t)}else console.warn(`Encountered a Custom context menu option with an "action" property with value "${e.action}"`)}},Ha=async(e,t)=>{const a=await De(t.identity),n=Gt();switch(e?.type){case w.Save:await Ga(t.identity,t.pageId);break;case w.SaveAs:await Na(t.identity,t.pageId);break;case w.Rename:await n.Browser.wrapSync(t.identity)._openSaveModal({menuType:m.RENAME_PAGE,id:t.pageId});break;case w.Duplicate:a.dispatch(Ue.DuplicatePage,t.pageId);break;case w.Close:a.dispatch(Ue.ClosePage,t.pageId);break;case w.Custom:if(e.action){const a={callerType:h.PageTabContextMenu,windowIdentity:t.identity,pageId:t.pageId,customData:e.action.customData};Gt()._invokeCustomAction(e.action.id,a)}else console.warn(`Encountered a Custom context menu option with an "action" property with value "${e.action}"`)}},qa=async(e,t)=>{if(e?.type){const a=t.identity;switch(e.type){case y.SavePage:await Ga(a);break;case y.SaveWorkspace:await Fa(a);break;case y.SavePageAs:await Na(a);break;case y.SaveWorkspaceAs:await $a(a);break;case y.Custom:if(e.action){const a={callerType:h.SaveButtonContextMenu,windowIdentity:t.identity,pageId:t.pageId,customData:e.action.customData};Gt()._invokeCustomAction(e.action.id,a)}else console.warn(`Encountered a Custom context menu option with an "action" property with value "${e.action}"`)}}},Ka=async(e,t)=>{const a=t.selectedViews[0],n=fin.View.wrapSync(a),o=await(async e=>{const{newTabUrl:t}=await Nt(e);if(!t)throw new Error("Trying to create a new page without a newTabUrl set");return{...Ae("New View",t),url:t,target:e}})(e);await Gt().createView(o,e,n.identity)},Qa=async(e,t)=>{const a=await(e=>Promise.all(e.map((async e=>fin.View.wrapSync(e).getInfo()))))(t),{newPageUrl:n,newTabUrl:o}=await Nt(e);a.forEach((async e=>{e.url!==n&&e.url!==o&&await fin.System.openUrlWithBrowser(e.url)}))},za=(e,t)=>{t.forEach((async t=>{const a=fin.View.wrapSync(t);await(async(e,t)=>{const{url:a}=await t.getInfo(),n={...await t.getOptions(),url:a,target:e,name:void 0};await Gt().createView(n,e,t.identity)})(e,a)}))},Ja=async(e,t)=>{if(!e)return;const a=t.identity;switch(e.type){case f.CloseViews:await(async(e,t)=>{if((await fin.Window.wrapSync(e).getCurrentViews()).length!==t.length)t.forEach((async e=>{const t=fin.View.wrapSync(e);await t.destroy()}));else{const t=(await Gt().Browser.wrapSync(e).getPages()).find((e=>e.isActive));(await De(e)).dispatch(Ue.ClosePage,t?.pageId)}})(a,t.selectedViews);break;case f.OpenWithDefaultBrowser:await Qa(a,t.selectedViews);break;case f.ReloadViews:t.selectedViews.forEach((async e=>{const t=fin.View.wrapSync(e);await t.reload()}));break;case f.NewView:await Ka(a,t);break;case f.DuplicateViews:za(a,t.selectedViews);break;case f.AddToChannel:(async(e,t,a)=>{const n={newChannelId:t,selectedViews:a};(await De(e)).dispatch(Ue.AddToChannel,n)})(a,e.option,t.selectedViews);break;case f.RemoveFromChannel:(async(e,t)=>{(await De(e)).dispatch(Ue.RemoveFromChannel,t)})(a,t.selectedViews);break;case f.Custom:if(e.action){const n={callerType:h.ViewTabContextMenu,windowIdentity:a,selectedViews:t.selectedViews,customData:e.action.customData};Gt()._invokeCustomAction(e.action.id,n)}}};async function Ya(e,t){const a=await ia(e.identity),n=await ca();a.find((e=>e.data?.type===u.Quit)).label=`Quit ${n}`;const o={...e,template:a,callback:ja};await this.openGlobalContextMenu(o,t)}const Xa=async(e,t)=>{const{x:a,y:n,identity:o,template:r,callback:i}=e,{data:s}=await function(e,t){if(!S)throw new Error("showContextMenu can only be used in an OpenFin env. Avoid calling this method during pre-rendering.");if(!t&&!fin.me.isWindow)throw new Error("showContextMenu can only be used in an OpenFin window.");return(t||fin.Window.getCurrentSync()).showPopupMenu(e)}({x:a,y:n,template:r},fin.Window.wrapSync(o));i(s,e)};async function Za(e,t){const a={...e,callback:Ja};await this.openViewTabContextMenu(a,t)}async function en(e,t){const a=await(async(e,t)=>{const a=await Gt().Storage.getPage(e),n=(await Ne()).find((t=>t.pageId===e)),{workspacePlatform:o}=await $(t).getOptions(),r=!(o.isLocked||o.preventPageClose||n.closeButton?.disabled||n.closeButton?.hidden);return[{type:xt.Label,label:"Save Page",data:{type:w.Save}},{type:xt.Label,label:"Save Page As",data:{type:w.SaveAs}},Bt,{type:xt.Label,label:"Rename Page",data:{type:w.Rename},enabled:!!a},{type:xt.Label,label:"Duplicate Page",data:{type:w.Duplicate},enabled:!o.isLocked},Bt,{type:xt.Label,label:"Close Page",data:{type:w.Close},enabled:r}]})(e.pageId,e.identity),n={...e,template:a,callback:Ha};await this.openPageTabContextMenu(n,t)}async function tn(e,t){const a={...e,template:await(async()=>[{type:xt.Label,label:"Save Workspace",data:{type:y.SaveWorkspace}},{type:xt.Label,label:"Save Workspace As",data:{type:y.SaveWorkspaceAs}},{type:xt.Separator,data:void 0},{type:xt.Label,label:"Save Page",data:{type:y.SavePage}},{type:xt.Label,label:"Save Page As",data:{type:y.SavePageAs}}])(),callback:qa};await this.openSaveButtonContextMenu(a,t)}const an=b&&ht("openfin-workspace-platform-workspaces","workspaces");async function nn(e){const t=await St(e,an);return t?(t.workspaceId=e.toString(),t.title=t.title||t.workspaceId,t):null}async function on(e){const t=await Wt(an),a=await Promise.all(t.map((e=>nn(e.toString()))));return e?a.filter((t=>Ct(t.title,e))):a}async function rn({workspace:e}){await Pt(e.workspaceId,e,an)}async function sn(e){await bt(e,an)}async function cn({workspaceId:e,workspace:t}){if(void 0===await nn(e))throw new Error("workspace not found");await rn({workspace:t}),e!==t.workspaceId&&await sn(e)}async function pn({app:e,target:t}){const a=fin.Platform.getCurrentSync();switch(e.manifestType){case c.Snapshot:return a.applySnapshot(e.manifest);case c.View:return async function(e,t){const a=fin.Platform.getCurrentSync();if("view"===t.entityType){const a=fin.View.wrapSync(t),n=await a.getParentLayout();return await n.replaceView(t,{manifestUrl:e.manifest,url:void 0,target:void 0}),a.destroy()}return a.createView({name:void 0,url:void 0,manifestUrl:e.manifest,target:void 0})}(e,t);case c.External:return fin.System.launchExternalProcess({path:e.manifest,uuid:e.appId});default:return fin.Application.startFromManifest(e.manifest)}}const dn=e=>e&&"object"==typeof e&&!Array.isArray(e);function ln(e,...t){if(!t.length)return e;const a=t.shift();return dn(e)&&dn(a)&&Object.entries(a).forEach((([t,a])=>{if(dn(a))return e[t]||(e[t]={}),ln(e[t],a);e[t]=a})),ln(e,...t)}const un=M+ua.Browser;function wn(e,t){const a=ln({},t,e);return a.detachOnClose=!0,a}async function fn(e,t,a){const n=e.manifestUrl?await t({manifestUrl:e.manifestUrl},a):void 0;if(n?.interop&&e.interop){const t={...e,...n,interop:e.interop};return delete t.manifestUrl,t}return e}const gn=e=>{const t=e.name===L.Home,a=e.name?.startsWith(L.HomeInternal),n=e.name?.startsWith(L.BrowserMenu);return!t&&!a&&!n},yn=e=>"workspacePlatform"in e?e:(({workstacks:e,pages:t,...a})=>({...a,workspacePlatform:{pages:t||e||null}}))(e),hn={experimental:{showFavicons:!0,defaultFaviconUrl:`${M}/icons/defaultFavicon.svg`}},mn={contextMenuSettings:{reload:!1},backgroundThrottling:!0,url:un,contextMenu:!0,closeOnLastViewRemoved:!1,permissions:{System:{openUrlWithBrowser:{enabled:!0,protocols:["mailto"]}}}},vn={dimensions:{borderWidth:3,headerHeight:30}},Sn=async(e,t)=>{const a=await Gt().Storage.getPages(),n=await Gt().Browser.getAllAttachedPages();return e.map((e=>{let o=e.title;void 0===e.pageId&&(e.pageId=crypto.randomUUID());const r=a.find((e=>e.title===o));return(r&&r.pageId!==e.pageId||n.find((e=>e.title===o)))&&(o=ue(e.title,[...a,...n].map((e=>e.title)))),n.push({...e,title:o}),{...t,...e,title:o,layout:(i=e.layout,We({...i},Ce))};var i}))};var Pn;!function(e){e.Browser="browser",e.Platform="platform",e.Classic="classic",e.Mixed="mixed"}(Pn||(Pn={}));const bn=e=>{const t=fin.Window.wrapSync(e);return Promise.all([t.bringToFront(),t.restore(),t.focus()])};async function kn(e){const t=(await K()).map((async e=>{const t=await e.getOptions();t.workspacePlatform?.pages&&t.layout&&await(async e=>(await De(e)).dispatch(Ue.UpdatePagesWindowOptions))(e.identity)}));return await Promise.all(t),e?e():gt()}const Wn=async e=>{await xa(fin.me.identity,e.title??await ca(),e.shouldCenterOnMonitor)&&fin.Platform.getCurrentSync().quit()};let Cn=[];const In=()=>Cn;const An=(e,t)=>async a=>{const n=null!==e;class o extends a{constructor(){super(),this.isWorkspacePlatform=()=>({isWorkspacePlatform:!0,isBrowserInitialized:!!e}),this.addPage=this.attachPagesToWindow,this.detachPagesFromWindow=Ze,this.getAllAttachedPages=Ne,this.getPagesForWindow=tt,this.getPageForWindow=at,this.setActivePage=et,this.launchApp=pn,this.savePage=Je,this.saveWorkspace=he,this.createSavedPageInternal=Ke,this.updateSavedPageInternal=ze,this.deleteSavedPageInternal=Qe,this.reorderPagesForWindow=nt,this.getUniquePageTitle=ot,this.updatePageForWindow=Xe,this.getLastFocusedBrowserWindow=ve,this.getThemes=In,this.invokeCustomActionInternal=dt,this.requestQuitPlatformDialogInternal=Wn,this.getCurrentWorkspace=ye,this.applyWorkspace=we,this.setActiveWorkspace=fe,this.openGlobalContextMenuInternal=this.openGlobalContextMenuInternal.bind(this),this.openGlobalContextMenu=this.openGlobalContextMenu.bind(this),this.getSavedPages=this.getSavedPages.bind(this),this.getSavedPage=this.getSavedPage.bind(this),this.createSavedPage=this.createSavedPage.bind(this),this.updateSavedPage=this.updateSavedPage.bind(this),this.deleteSavedPage=this.deleteSavedPage.bind(this),this.attachPagesToWindow=this.attachPagesToWindow.bind(this),this.openViewTabContextMenuInternal=this.openViewTabContextMenuInternal.bind(this),this.openViewTabContextMenu=this.openViewTabContextMenu.bind(this),this.openPageTabContextMenuInternal=this.openPageTabContextMenuInternal.bind(this),this.openPageTabContextMenu=this.openPageTabContextMenu.bind(this),this.getSavedWorkspaces=this.getSavedWorkspaces.bind(this),this.getSavedWorkspace=this.getSavedWorkspace.bind(this),this.createSavedWorkspace=this.createSavedWorkspace.bind(this),this.updateSavedWorkspace=this.updateSavedWorkspace.bind(this),this.deleteSavedWorkspace=this.deleteSavedWorkspace.bind(this),this.getCurrentWorkspace=this.getCurrentWorkspace.bind(this),this.applyWorkspace=this.applyWorkspace.bind(this),this.setActiveWorkspace=this.setActiveWorkspace.bind(this),this.openSaveButtonContextMenu=this.openSaveButtonContextMenu.bind(this),this.openSaveButtonContextMenuInternal=this.openSaveButtonContextMenuInternal.bind(this)}async getSnapshot(){const e=n?await kn((async()=>gt(await super.getSnapshot(void 0,fin.me.identity)))):await gt(await super.getSnapshot(void 0,fin.me.identity));return{...e,windows:e.windows.filter(gn).map(ft)}}async applySnapshot({snapshot:e,options:t}){const a=e=>super.applySnapshot({snapshot:e,options:{...t,closeExistingWindows:!1}});let o=e;"string"==typeof o&&(o=await super.fetchManifest({manifestUrl:o},fin.me.identity));const r=function(e){let t=!1,a=!1;for(const n of e.windows){if(t&&a)break;n.workspacePlatform?.pages?.length?a=!0:n.layout&&(t=!0)}return t&&a?Pn.Mixed:t?Pn.Platform:a?Pn.Browser:e.windows.length?Pn.Classic:null}(o);if(r===Pn.Mixed)throw new Error("This snapshot cannot be applied as it contains a mixture of browser and platform windows.");if(n)r===Pn.Platform&&console.warn("No pages found in snapshot, creating a new page from the layout");else if(r===Pn.Browser)throw new Error("This snapshot cannot be applied as the platform has been initialized without the browser.");return t?.closeExistingWindows&&await async function(){const e=await K();await Promise.all(e.map((e=>e.close(!0).catch((()=>{})))))}(),n?async function(e,t){const a=await Ne(),n=e.snapshotDetails?.monitorInfo||await fin.System.getMonitorInfo(),[o,r]=(e.windows||[]).reduce((([e,t],a)=>a?.workspacePlatform?.pages?.length?[[...e,a],t]:[e,[...t,a]]),[[],[]]),i=new Map;a.forEach((e=>i.set(e.pageId,e)));const s=[],c=o.map((async e=>{const t=yn(e),a=[],n=(e=>{let t=!1;const a=(e||[]).map((e=>{const a=function({id:e,name:t,...a}){return{pageId:e,title:t,...a}}(e);return t&&a.isActive&&(a.isActive=!1),a.isActive&&(t=!0),a}));return!t&&a.length&&(a[0].isActive=!0),a})(t?.workspacePlatform?.pages);if(!n?.length){const e=await ot();a.push(await _t(e,t.layout))}let o;n.forEach((e=>{const t=i.get(e.pageId);t?o=t:a.push(e)})),o&&await Promise.all([et({identity:o.parentIdentity,pageId:o.pageId}),bn(o.parentIdentity)]),a.length&&s.push({...t,workspacePlatform:{...t.workspacePlatform,pages:a}})}));if(await Promise.all(c),!s.length&&!r.length)return;const p=fin.Platform.getCurrentSync();return(t||p.applySnapshot.bind(p))({...e,snapshotDetails:{...e.snapshotDetails,monitorInfo:n},windows:[...s,...r]})}(o,a):a(o)}async createWindow(t,a){t.workspacePlatform?.toolbarOptions?.buttons&&(e=>{const t=e.filter((e=>e.type!==g.Custom)),a=new Set;for(const e of t){if(a.has(e.type))throw new Error(`Encountered a duplicate of ${e.type} button. No more than one instance of a button type may be provided.`);a.add(e.type)}})(t.workspacePlatform.toolbarOptions.buttons);let o=yn(t);if(n){const t=this.getThemes();o=await(async(e,t,a)=>{let n=e;const o=n?.workspacePlatform?.pages;if(o){const e=o.find((e=>e.isActive));e?n.layout=e.layout:(o[0].isActive=!0,n.layout=o[0].layout)}if(n.layout){if(n=ln({},hn,t.defaultWindowOptions,n,mn),n.layout=ln(n.layout,vn),(n.icon||n.taskbarIcon)&&(n.taskbarIconGroup=n.taskbarIconGroup||fin.me.identity.uuid),!n.backgroundColor){const e=a?.palette;n.backgroundColor=e?.background2||e?.backgroundPrimary}const e=n.workspacePlatform.newTabUrl;if(e&&(n.layout.settings||(n.layout.settings={}),n.layout.settings.newTabButton={url:e}),n=((e,t)=>{const a=e;return a.workspacePlatform||(a.workspacePlatform={}),a.workspacePlatform._internalDeferShowOptions={setAsForeground:!!t,deferShowEnabled:!0,autoShow:a.workspacePlatform?._internalAutoShow||a.workspacePlatform?._internalDeferShowOptions?.autoShow||void 0===a.autoShow||a.autoShow},a.autoShow=!1,a})(n,!0),!n.workspacePlatform.pages?.length){const e=await ot("Untitled Page"),t={...await _t(e,n.layout),isActive:!0};n.workspacePlatform.pages=[t]}}return n.workspacePlatform?.pages&&(n.workspacePlatform.pages=await Sn(n.workspacePlatform.pages,t?.defaultPageOptions)),n.cornerRounding&&delete n.cornerRounding,n})(o,e,t[0])}o=await(async e=>{const t=await fin.System.getMonitorInfo(),a=t.primaryMonitor.availableRect.bottom-t.primaryMonitor.availableRect.top,n=t.primaryMonitor.availableRect.right-t.primaryMonitor.availableRect.left;return e.defaultHeight=e.defaultHeight||"800",e.defaultWidth=e.defaultWidth||"800",a<e.defaultHeight&&(e.defaultHeight=a),n<e.defaultWidth&&(e.defaultWidth=n),e})(o);const r=(e,t)=>super.createWindow(e,t),i=n?(e=>async(t,a)=>{let n=!1;const o=await e(t,a);return t?.workspacePlatform?._internalDeferShowOptions?.deferShowEnabled?(await o.addListener(U.ShowRequested,(async()=>{if(n)return;const e=await o.getOptions();await o.updateOptions({workspacePlatform:{...e.workspacePlatform,_internalDeferShowOptions:{...e.workspacePlatform._internalDeferShowOptions,autoShow:!0}}}),n=!0})),o):o})(r):r;return i(o,a)}async createView(t,a){return t.opts=wn(t.opts,e?.defaultViewOptions),t.opts=await fn(t.opts,this.fetchManifest,a),super.createView(t,a)}async replaceView(t,a){return t.opts.newView=await wn(t.opts.newView,e?.defaultViewOptions),t.opts.newView=await fn(t.opts.newView,this.fetchManifest,a),super.replaceView(t,a)}async replaceLayout(e,t){return delete e.opts.layout?.dimensions,super.replaceLayout(e,t)}async closeView(e,t){const a=fin.View.wrapSync(e.view);await super.closeView(e,t),await a.destroy().catch((e=>e))}async getSavedPage(...e){return At.apply(this,e)}async getSavedPages(...e){return Ot.apply(this,e)}async createSavedPage(...e){return Mt.apply(this,e)}async deleteSavedPage(...e){return Tt.apply(this,e)}async updateSavedPage(...e){return Et.apply(this,e)}async getSavedWorkspace(...e){return nn.apply(this,e)}async getSavedWorkspaces(...e){return on.apply(this,e)}async createSavedWorkspace(...e){return rn.apply(this,e)}async deleteSavedWorkspace(...e){return sn.apply(this,e)}async updateSavedWorkspace(...e){return cn.apply(this,e)}async attachPagesToWindow(t){t.pages=await Sn(t.pages,e?.defaultPageOptions),await Ye(t)}async openGlobalContextMenuInternal(...e){return Ya.apply(this,e)}async openGlobalContextMenu(...e){return Xa.apply(this,e)}async openViewTabContextMenuInternal(...e){return Za.apply(this,e)}async openViewTabContextMenu(...e){return Xa.apply(this,e)}async openPageTabContextMenuInternal(...e){return en.apply(this,e)}async openPageTabContextMenu(...e){return Xa.apply(this,e)}async openSaveButtonContextMenu(...e){return Xa.apply(this,e)}async openSaveButtonContextMenuInternal(...e){return tn.apply(this,e)}}return"function"==typeof t?t(o):new o};async function On(){!function(){const e=V();e.addListener(B.WindowOptionsChanged,st),e.addListener(B.WindowClosed,ct),e.addListener(B.WindowCreated,ct),fin.me.on(U.ViewAttached,st),fin.InterApplicationBus.subscribe({uuid:fin.me.identity.uuid},"browser-window-ready",ct)}(),async function(){const e=fin.Application.getCurrentSync();await e.addListener("window-focused",Se)}();fe(await ge())}let Mn;function Tn({overrideCallback:e,interopOverride:t,browser:a}){if(!S)throw new Error("Cannot be used outside an OpenFin env.");if(!Mn){fin.Platform.getCurrentSync().once("platform-api-ready",(()=>On())),a?.title&&(n=a.title,sa=n),Mn=fin.Platform.init({overrideCallback:An(a,e||a?.overrideCallback),interopOverride:t||a?.interopOverride}),(async e=>{Y(J.Platform,e)})({allowed:!0})}var n;return Mn}const En=async({theme:e,customActions:t,...a})=>{const n=T.split(".").map((e=>parseInt(e))),o=await(async e=>new Promise((async t=>{(await ee()).disableRuntimeValidation&&t(!0);const a=(await fin.System.getVersion()).split(".").map((e=>parseInt(e)));t(e.every(((t,n)=>!(n<3)||a[n]===e[n])))})))(n);var r;if(e&&((r=e).forEach((e=>{const t=e.palette.backgroundPrimary;if(!t.includes("#")&&!t.includes("rgb")&&!t.includes("hsl"))throw new Error("Background primary color is not the right format.")})),Cn=r,(async e=>{Y(J.Theming,e)})({allowed:!0})),t&&(pt=t),o)return Tn(a);throw new Error(`Runtime version is not supported. ${n[0]}.${n[1]}.${n[2]}.* is required`)}})(),module.exports=n})();
|
|
2
|
+
(()=>{var e={198:(e,t,a)=>{var n=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,i=/^0o[0-7]+$/i,s=parseInt,c="object"==typeof a.g&&a.g&&a.g.Object===Object&&a.g,p="object"==typeof self&&self&&self.Object===Object&&self,d=c||p||Function("return this")(),l=Object.prototype.toString,u=Math.max,w=Math.min,f=function(){return d.Date.now()};function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function y(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==l.call(e)}(e))return NaN;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var a=r.test(e);return a||i.test(e)?s(e.slice(2),a?2:8):o.test(e)?NaN:+e}e.exports=function(e,t,a){var n,o,r,i,s,c,p=0,d=!1,l=!1,h=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function m(t){var a=n,r=o;return n=o=void 0,p=t,i=e.apply(r,a)}function v(e){return p=e,s=setTimeout(P,t),d?m(e):i}function S(e){var a=e-c;return void 0===c||a>=t||a<0||l&&e-p>=r}function P(){var e=f();if(S(e))return b(e);s=setTimeout(P,function(e){var a=t-(e-c);return l?w(a,r-(e-p)):a}(e))}function b(e){return s=void 0,h&&n?m(e):(n=o=void 0,i)}function k(){var e=f(),a=S(e);if(n=arguments,o=this,c=e,a){if(void 0===s)return v(c);if(l)return s=setTimeout(P,t),m(c)}return void 0===s&&(s=setTimeout(P,t)),i}return t=y(t)||0,g(a)&&(d=!!a.leading,r=(l="maxWait"in a)?u(y(a.maxWait)||0,t):r,h="trailing"in a?!!a.trailing:h),k.cancel=function(){void 0!==s&&clearTimeout(s),p=0,n=c=o=s=void 0},k.flush=function(){return void 0===s?i:b(f())},k}},525:e=>{"use strict";var t=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},a=0;a<10;a++)t["_"+String.fromCharCode(a)]=a;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,r){for(var i,s,c=o(e),p=1;p<arguments.length;p++){for(var d in i=Object(arguments[p]))a.call(i,d)&&(c[d]=i[d]);if(t){s=t(i);for(var l=0;l<s.length;l++)n.call(i,s[l])&&(c[s[l]]=i[s[l]])}}return c}},535:(e,t,a)=>{"use strict";var n=a(525),o=60103,r=60106;var i=60109,s=60110,c=60112;var p=60115,d=60116;if("function"==typeof Symbol&&Symbol.for){var l=Symbol.for;o=l("react.element"),r=l("react.portal"),l("react.fragment"),l("react.strict_mode"),l("react.profiler"),i=l("react.provider"),s=l("react.context"),c=l("react.forward_ref"),l("react.suspense"),p=l("react.memo"),d=l("react.lazy")}var u="function"==typeof Symbol&&Symbol.iterator;function w(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,a=1;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var f={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function y(e,t,a){this.props=e,this.context=t,this.refs=g,this.updater=a||f}function h(){}function m(e,t,a){this.props=e,this.context=t,this.refs=g,this.updater=a||f}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(w(85));this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},h.prototype=y.prototype;var v=m.prototype=new h;v.constructor=m,n(v,y.prototype),v.isPureReactComponent=!0;var S={current:null},P=Object.prototype.hasOwnProperty,b={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,a){var n,r={},i=null,s=null;if(null!=t)for(n in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)P.call(t,n)&&!b.hasOwnProperty(n)&&(r[n]=t[n]);var c=arguments.length-2;if(1===c)r.children=a;else if(1<c){for(var p=Array(c),d=0;d<c;d++)p[d]=arguments[d+2];r.children=p}if(e&&e.defaultProps)for(n in c=e.defaultProps)void 0===r[n]&&(r[n]=c[n]);return{$$typeof:o,type:e,key:i,ref:s,props:r,_owner:S.current}}function W(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var C=/\/+/g;function I(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function A(e,t,a,n,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var c=!1;if(null===e)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case o:case r:c=!0}}if(c)return i=i(c=e),e=""===n?"."+I(c,0):n,Array.isArray(i)?(a="",null!=e&&(a=e.replace(C,"$&/")+"/"),A(i,t,a,"",(function(e){return e}))):null!=i&&(W(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||c&&c.key===i.key?"":(""+i.key).replace(C,"$&/")+"/")+e)),t.push(i)),1;if(c=0,n=""===n?".":n+":",Array.isArray(e))for(var p=0;p<e.length;p++){var d=n+I(s=e[p],p);c+=A(s,t,a,d,i)}else if(d=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=u&&e[u]||e["@@iterator"])?e:null}(e),"function"==typeof d)for(e=d.call(e),p=0;!(s=e.next()).done;)c+=A(s=s.value,t,a,d=n+I(s,p++),i);else if("object"===s)throw t=""+e,Error(w(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return c}function O(e,t,a){if(null==e)return e;var n=[],o=0;return A(e,n,"","",(function(e){return t.call(a,e,o++)})),n}function M(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var T={current:null};function E(){var e=T.current;if(null===e)throw Error(w(321));return e}},378:(e,t,a)=>{"use strict";a(535)}},t={};function a(n){var o=t[n];if(void 0!==o)return o.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,a),r.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";var e,t,o,r,i,s,c,p;a.r(n),a.d(n,{AppManifestType:()=>c,BrowserButtonType:()=>g,CustomActionCallerType:()=>h,GlobalContextMenuOptionType:()=>u,PageTabContextMenuOptionType:()=>w,SaveButtonContextMenuOptionType:()=>y,SaveModalType:()=>m,ViewTabMenuOptionType:()=>f,getCurrentSync:()=>Gt,init:()=>En,wrapSync:()=>$t}),function(e){e.Fetching="fetching",e.Fetched="fetched",e.Complete="complete"}(e||(e={})),function(e){e.UserAction="user-action",e.FocusChange="focus-change",e.Reload="reload"}(t||(t={})),function(e){e.Active="active",e.Default="default"}(o||(o={})),function(e){e.Suggestion="suggestion"}(r||(r={})),function(e){e.Contact="Contact",e.Custom="Custom",e.List="List",e.Plain="Plain",e.SimpleText="SimpleText",e.Loading="Loading",e.Error="Error"}(i||(i={})),function(e){e.MultiSelect="MultiSelect"}(s||(s={})),function(e){e.Snapshot="snapshot",e.Manifest="manifest",e.View="view",e.External="external"}(c||(c={})),function(e){e.LandingPage="landingPage",e.AppGrid="appGrid"}(p||(p={}));var d,l,u,w,f,g,y,h,m,v;!function(e){e.Primary="primary",e.Secondary="secondary",e.TextOnly="textOnly"}(d||(d={})),function(e){e.ActionButton="ActionButton",e.DropdownButton="DropdownButton"}(l||(l={})),function(e){e.NewWindow="NewWindow",e.NewPage="NewPage",e.SavePage="SavePage",e.SavePageAs="SavePageAs",e.CloseWindow="CloseWindow",e.RestoreChanges="RestoreChanges",e.SaveWorkspace="SaveWorkspace",e.SaveWorkspaceAs="SaveWorkspaceAs",e.RenameWorkspace="RenameWorkspace",e.SwitchWorkspace="SwitchWorkspace",e.DeleteWorkspace="DeleteWorkspace",e.OpenStorefront="OpenStorefront",e.Quit="Quit",e.Custom="Custom"}(u||(u={})),function(e){e.Close="Close",e.Duplicate="Duplicate",e.Rename="Rename",e.Save="Save",e.SaveAs="Save As",e.Custom="Custom"}(w||(w={})),function(e){e.NewView="NewView",e.DuplicateViews="DuplicateView",e.OpenWithDefaultBrowser="OpenWithDefaultBrowser",e.ReloadViews="ReloadTab",e.CloseViews="CloseTab",e.AddToChannel="AddToChannel",e.RemoveFromChannel="RemoveFromChannel",e.Custom="Custom"}(f||(f={})),function(e){e.ShowHideTabs="ShowHideTabs",e.ColorLinking="ColorLinking",e.PresetLayouts="PresetLayouts",e.LockUnlockPage="LockUnlockPage",e.SaveMenu="SaveMenu",e.SavePage="SavePage",e.Minimise="Minimise",e.Maximise="Maximise",e.Close="Close",e.Custom="Custom"}(g||(g={})),function(e){e.SavePage="SavePage",e.SaveWorkspace="SaveWorkspace",e.SavePageAs="SavePageAs",e.SaveWorkspaceAs="SaveWorkspaceAs",e.Custom="Custom"}(y||(y={})),function(e){e.CustomButton="CustomButton",e.CustomDropdownItem="CustomDropdownItem",e.GlobalContextMenu="GlobalContextMenu",e.ViewTabContextMenu="ViewTabContextMenu",e.PageTabContextMenu="PageTabContextMenu",e.SaveButtonContextMenu="SaveButtonContextMenu",e.API="API"}(h||(h={})),function(e){e.SAVE_PAGE="SAVE_PAGE",e.SAVE_WORKSPACE="SAVE_WORKSPACE",e.SAVE_PAGE_AS="SAVE_PAGE_AS",e.SAVE_WORKSPACE_AS="SAVE_WORKSPACE_AS",e.RENAME_PAGE="RENAME_PAGE",e.RENAME_WORKSPACE="RENAME_WORKSPACE"}(m||(m={})),function(e){e.Local="local",e.Dev="dev",e.Staging="staging",e.Prod="prod"}(v||(v={}));const S="undefined"!=typeof window&&"undefined"!=typeof fin,P=("undefined"==typeof process||process.env?.JEST_WORKER_ID,"undefined"!=typeof window),b=P&&"undefined"!=typeof indexedDB,k=P?window.origin:v.Local,W=S&&fin.me.uuid,C=S&&fin.me.name,I=S&&fin.me.entityType,A=(v.Local,v.Dev,v.Staging,"prod"===v.Prod),O=e=>e.startsWith("http://")||e.startsWith("https://")?e:k+e,M=(O("https://cdn.openfin.co/workspace/9.1.1"),O("https://cdn.openfin.co/workspace/9.1.1")),T=("undefined"!=typeof WORKSPACE_DOCS_PLATFORM_URL&&O(WORKSPACE_DOCS_PLATFORM_URL),"undefined"!=typeof WORKSPACE_DOCS_CLIENT_URL&&O(WORKSPACE_DOCS_CLIENT_URL),"26.102.71.7"),E="9.1.1";var x,B,R;!function(e){e.Workspace="openfin-browser"}(x||(x={})),function(e){e.RunRequested="run-requested",e.WindowOptionsChanged="window-options-changed",e.WindowClosed="window-closed",e.WindowCreated="window-created"}(B||(B={})),function(e){e.FinProtocol="fin-protocol"}(R||(R={}));const _={uuid:W},D=(x.Workspace,e=>{if(!S)throw new Error("getApplication cannot be used in a non OpenFin env. Avoid using this during pre-rendering.");return fin.Application.wrapSync(e)}),V=()=>D(_);var L,U,F;!function(e){e.Home="openfin-home",e.Dock="openfin-dock",e.Storefront="openfin-storefront",e.HomeInternal="openfin-home-internal",e.BrowserMenu="openfin-browser-menu",e.BrowserIndicator="openfin-browser-indicator",e.BrowserWindow="internal-generated-window"}(L||(L={})),function(e){e.Shown="shown",e.BoundsChanged="bounds-changed",e.LayoutReady="layout-ready",e.EndUserBoundsChanging="end-user-bounds-changing",e.Blurred="blurred",e.Closed="closed",e.CloseRequested="close-requested",e.Focused="focused",e.ShowRequested="show-requested",e.ViewCrashed="view-crashed",e.ViewAttached="view-attached",e.ViewDetached="view-detached",e.ViewPageTitleUpdated="view-page-title-updated",e.ViewDestroyed="view-destroyed",e.OptionsChanged="options-changed"}(U||(U={})),function(e){e.BeforeUnload="beforeunload"}(F||(F={}));function $(e){if(!S)throw new Error("getOFWindow can only be used in an OpenFin env. Avoid calling this method during pre-rendering.");return fin.Window.wrapSync(e)}const G={name:C,uuid:W};function N(){return $(G)}L.Home,x.Workspace,L.Dock,x.Workspace;const j={name:L.Storefront,uuid:x.Workspace};x.Workspace,x.Workspace;async function H(e){const t=$(e);"minimized"===await t.getState()&&await t.restore(),await t.show(),await t.setAsForeground()}const q=e=>e.startsWith(L.BrowserWindow);async function K(){return(await fin.Application.getCurrentSync().getChildWindows()).filter((e=>q(e.identity.name)))}const Q=e=>$(e).getOptions().then((()=>!0)).catch((()=>!1)),z=()=>Q(j);var J;!function(e){e.Browser="Browser",e.Dock="Dock",e.Home="Home",e.Notification="Notification",e.Storefront="Storefront",e.Platform="Platform",e.Theming="Theming"}(J||(J={}));const Y=async(e,t)=>{const a={apiVersion:t.apiVersion||E,componentName:e,componentVersion:t.componentVersion||E,allowed:t.allowed,rejectionCode:t.rejectionCode};fin.System.registerUsage({type:"workspace-licensing",data:a})};a(378);const X=e=>fin.System.getSystemAppConfig(e);let Z;async function ee(){if(Z)return Z;if(!S)return P&&console.warn("getOverrides: The Fin API was not available. Returning an empty result."),{};const e=await async function(){const e="getDOSOverrides";if(S)try{let t=await X("workspace").catch((t=>{console.warn(`${e}: customConfig entry for SystemApp workspace not available in Desktop Owner Settings. ${t?.message}`)}));return t||(t=await X("home")),JSON.stringify(t),t}catch(t){A&&console.warn(`${e}: Missing Workspace Desktop Owner Settings configuration, using defaults. ${t?.message}`)}else console.warn(`${e}: the fin API was not available, returning no result`)}(),t=await async function(){const e="getManifestOverrides",{manifest:t,initialOptions:a}=await fin.Application.getCurrentSync().getInfo();return t?.workspace||t?.home||a?.workspace||a?.home||console.warn(`${e}: Missing Home development manifest overrides, using Desktop Owner Settings.`),t?.workspace?(JSON.stringify(t?.workspace),t?.workspace):t?.home?(JSON.stringify(t?.home),t?.home):a?.workspace?(JSON.stringify(a?.workspace),a?.workspace):a?.home?(JSON.stringify(a?.home),a?.home):void 0}();return Z={...t,...e},Z}var te;!function(e){e.CurrentWorkspaceId="currentWorkspaceId",e.LastFocusedBrowserWindow="lastFocusedBrowserWindow",e.MachineName="machineName",e.NewTabPageLayout="NewTabPageLayout",e.NewTabPageSort="NewTabPageSort",e.DockPosition="DockPosition"}(te||(te={}));const ae=te,ne=(e,t)=>{localStorage.setItem(`${W}-${e}`,t)},oe=e=>localStorage.getItem(`${W}-${e}`);var re;!function(e){e.LaunchApp="launchApp",e.SavePage="savePage",e.GetSavedPage="getSavedPage",e.CreateSavedPage="createSavedPage",e.UpdateSavedPage="updateSavedPage",e.DeleteSavedPage="deleteSavedPage",e.GetSavedPages="getSavedPages",e.CreateSavedPageInternal="createSavedPageInternal",e.UpdateSavedPageInternal="updateSavedPageInternal",e.DeleteSavedPageInternal="deleteSavedPageInternal",e.SharePage="sharePage",e.UpdatePageForWindow="updatePageForWindow",e.AttachPagesToWindow="attachPagesToWindow",e.DetachPagesFromWindow="detachPagesFromWindow",e.ReorderPagesForWindow="reorderPagesForWindow",e.SetActivePage="setActivePage",e.GetAllAttachedPages="getAllAttachedPages",e.GetActivePageIdForWindow="getActivePageIdForWindow",e.GetPagesForWindow="getPagesForWindow",e.GetPageForWindow="getPageForWindow",e.GetSavedPageMetadata="getSavedPageMetadata",e.GetUniquePageTitle="getUniquePageTitle",e.GetLastFocusedBrowserWindow="getLastFocusedBrowserWindow",e.GetThemes="getThemes",e.OpenGlobalContextMenuInternal="openGlobalContextMenuInternal",e.OpenViewTabContextMenuInternal="openViewTabContextMenuInternal",e.OpenPageTabContextMenuInternal="openPageTabContextMenuInternal",e.OpenSaveButtonContextMenuInternal="openSaveButtonContextMenuInternal",e.InvokeCustomActionInternal="invokeCustomActionInternal",e.RequestQuitPlatformDialogInternal="requestQuitPlatformDialogInternal",e.GetSavedWorkspace="getSavedWorkspace",e.CreateSavedWorkspace="createSavedWorkspace",e.UpdateSavedWorkspace="updateSavedWorkspace",e.DeleteSavedWorkspace="deleteSavedWorkspace",e.GetSavedWorkspaces="getSavedWorkspaces",e.SaveWorkspace="saveWorkspace",e.GetCurrentWorkspace="getCurrentWorkspace",e.ApplyWorkspace="applyWorkspace",e.SetActiveWorkspace="setActiveWorkspace",e.IsBrowserInitialized="isBrowserInitialized"}(re||(re={}));const ie=async e=>fin.Platform.wrapSync(e).getClient(),se=async e=>{const t=await ie(e),a="Target is not a Workspace Platform. Target must call WorkspacePlatform.init";let n;try{n=await t.dispatch("isWorkspacePlatform")}catch(e){throw new Error(a)}if("boolean"==typeof n&&n)return console.warn("You are using an older version of the workspace platform. Please update your workspace platform."),n;if("object"==typeof n&&n.isWorkspacePlatform)return n;throw new Error(a)},ce=async e=>(await se(e),ie(e)),pe=async e=>{const t=await se(e);if("object"==typeof t&&!0!==t?.isBrowserInitialized)throw new Error("Target is not a Browser-enabled Workspace Platform.");return ie(e)},de=(e,t)=>!t.find((t=>t===e)),le=(e,t)=>`${e} (${t})`,ue=(e,t)=>{let a=1;const n=e.replace(/ \(.+\)$/,"");for(;!de(le(n,a),t);)a+=1;return le(n,a)};async function we(e){try{const t=Gt();await t.applySnapshot(e.snapshot,{closeExistingWindows:!0}),fe(e)}catch(e){console.error("failed to apply the current workspace: ",e)}}function fe(e){if("undefined"!=typeof localStorage)try{const t=JSON.stringify(e);ne(ae.CurrentWorkspaceId,t)}catch(e){console.error("failed to set the active workspace: ",e)}}async function ge(){if("undefined"==typeof localStorage)return;const e=Gt(),t=await e.getSnapshot();return{workspaceId:crypto.randomUUID(),title:await me(),metadata:{APIVersion:E},snapshot:t}}async function ye(){if("undefined"==typeof localStorage)return;const e=oe(ae.CurrentWorkspaceId);if(!e)return ge();const t=JSON.parse(e),a=Gt(),n=await a.getSnapshot();return{...t,metadata:{APIVersion:E},snapshot:n}}const he=async e=>await(async e=>(await ce(G)).dispatch(re.GetSavedWorkspace,e))(e.workspaceId)?(async e=>(await ce(G)).dispatch(re.UpdateSavedWorkspace,e))({workspaceId:e.workspaceId,workspace:e}):(async e=>(await ce(G)).dispatch(re.CreateSavedWorkspace,e))({workspace:e});async function me(e="Untitled Workspace"){const t=(await(async()=>(await ce(G)).dispatch(re.GetSavedWorkspaces,void 0))()).map((({title:e})=>e));return t.find((t=>t===e))?ue(e,t):e}async function ve(){if("undefined"!=typeof localStorage)try{const e=oe(ae.LastFocusedBrowserWindow);if(!e)return;const t=JSON.parse(e);if(await Q(t))return t}catch(e){throw new Error(`failed to get last focused browser window: ${e}`)}}function Se(e=fin.me.identity){q(e.name)&&function(e){if("undefined"!=typeof localStorage)try{const t=JSON.stringify(e);ne(ae.LastFocusedBrowserWindow,t)}catch(e){console.error("failed to save last focused browser window: ",e)}}(e)}var Pe,be=a(198),ke=a.n(be);!function(e){e.TabCreated="tab-created",e.ContainerCreated="container-created",e.ContainerResized="container-resized"}(Pe||(Pe={}));const We=(e,t)=>e.content?{...e,content:e.content.map((e=>We(e,t)))}:{...e,componentState:t(e.componentState)},Ce=e=>({...e,name:e.name?e.name:crypto.randomUUID()}),Ie=e=>{const t=[];return(e&&Array.isArray(e)?e:[]).forEach((e=>{if("component"===e.type)return t.push(e.componentState);const a=Ie(e.content);t.push(...a)})),t},Ae=async(e,t,a=G)=>{let n;if(q(a.name)){n=(await $(a).getOptions()).layout||{settings:{}}}return{...n,content:[{type:"stack",content:[{type:"component",componentName:"view",componentState:{title:e,url:t}}]}]}};new Map;function Oe(e,t){return async(a,...n)=>{e.has(a)&&e.get(a).forEach((e=>e(...n))),t&&await t({event:a,payload:n})}}function Me(e,t){return t&&t((t=>{const{event:a,payload:n}=t;e.has(a)&&e.get(a).forEach((e=>e(...n)))})),(t,a)=>{e.has(t)||e.set(t,new Set),e.get(t).add(a)}}function Te(e){return(t,a)=>{e.has(t)||e.set(t,new Set);const n=e.get(t),o=(...e)=>{a(...e),n.delete(o)};n.add(o)}}function Ee(e){return(t,a)=>{e.has(t)&&e.get(t).delete(a)}}const xe=P&&"complete"!==document.readyState&&new Promise((e=>document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&e()}))));function Be(e){let t;return()=>{if(!S)throw new Error("getChannelClient cannot be used outside an OpenFin env. Avoid using this method during pre-rendering.");return t||(t=(async()=>{await xe;const a={clientAPIVersion:E},n=await fin.InterApplicationBus.Channel.connect(e,{payload:a});return n.onDisconnection((async()=>{console.warn(`disconnected from channel provider ${e}`),t=void 0})),n})().then((e=>e)).catch((a=>{throw t=void 0,new Error(`failed to connect to channel provider ${e}: ${a}`)}))),t}}const Re=e=>`__browser_window__-${e.uuid}-${e.name}`,_e=new Map,De=e=>{const t=Re(e);return _e.has(t)||_e.set(t,Be(t)),_e.get(t)()};var Ve,Le;!function(e){e.CloseBrowserWindow="close-browser-window",e.QuitPlatform="quit-platform",e.ClosePage="close-page",e.AddToChannel="add-to-channel",e.RemoveFromChannel="remove-from-channel",e.OpenSaveModalInternal="open-save-modal-internal",e.DuplicatePage="duplicate-page"}(Ve||(Ve={})),function(e){e.GetPages="get-pages",e.GetActivePageForWindow="get-active-page-for-window",e.AttachPagesToWindow="attach-pages-to-window",e.DetachPagesFromWindow="detach-pages-from-window",e.SetActivePageForWindow="set-active-page-for-window",e.RenamePage="rename-page",e.ReorderPagesForWindow="reorder-pages-for-window",e.UpdatePageForWindow="update-page-for-window",e.UpdatePagesWindowOptions="update-pages-window-options",e.IsDetachingPages="is-detaching-pages",e.IsActivePageChanging="is-active-page-changing"}(Le||(Le={}));const Ue={...Ve,...Le};var Fe;!function(e){e.AttachedPagesToWindow="attached-pages-to-window",e.DetachedPagesFromWindow="detached-pages-from-window"}(Fe||(Fe={}));new Map;const $e=async e=>{const t=await De(e);return await t.dispatch(Ue.GetPages)},Ge=async e=>(await De(e.identity)).dispatch(Ue.UpdatePageForWindow,e),Ne=async()=>{const e=await K();return(await Promise.all(e.map((async e=>{try{return $e(e.identity)}catch(t){JSON.stringify(e.identity);return(await e.getOptions()).workspacePlatform?.pages||[]}})))).reduce(((e,t)=>e.concat(t)),[])},je=async()=>(await ce(G)).dispatch(re.GetSavedPages,void 0),He=async e=>(await ce(G)).dispatch(re.GetSavedPage,e),qe=async(e,t)=>{const a=await(async e=>(await Ne()).find((t=>t.pageId===e)))(e);return!a||a.title===t.title&&e===t.pageId||await Ge({identity:a.parentIdentity,pageId:e,page:{pageId:t.pageId,title:t.title}}),a},Ke=async({page:e})=>{await qe(e.pageId,e),await(async e=>(await ce(G)).dispatch(re.CreateSavedPage,e))({page:e})},Qe=async e=>{await He(e)&&await(async e=>(await ce(G)).dispatch(re.DeleteSavedPage,e))(e)},ze=async({pageId:e,page:t})=>{await qe(e,t);return await(async e=>(await ce(G)).dispatch(re.UpdateSavedPage,e))({pageId:e,page:t})},Je=async e=>await He(e.pageId)?ze({pageId:e.pageId,page:e}):Ke({page:e}),Ye=async e=>{await(async e=>(await De(e.identity)).dispatch(Ue.AttachPagesToWindow,e))(e)},Xe=async e=>{await Ge(e)},Ze=async e=>{await(async e=>(await De(e.identity)).dispatch(Ue.DetachPagesFromWindow,e))(e)},et=async e=>{await(async e=>(await De(e.identity)).dispatch(Ue.SetActivePageForWindow,e))(e)},tt=e=>$e(e),at=async({identity:e,pageId:t})=>(await tt(e)).find((e=>e.pageId===t)),nt=async e=>{await(async e=>(await De(e.identity)).dispatch(Ue.ReorderPagesForWindow,e))(e)};async function ot(e="Untitled Page"){const[t,a]=await Promise.all([je(),Ne()]),n=[...t,...a].map((({title:e})=>e));return n.find((t=>t===e))?ue(e,n):e}const rt=e=>`${e.uuid}-${e.name}`,it=async()=>{const e=await Ne(),t=new Set;return e.forEach((e=>{Ie(e.layout.content).forEach((e=>{if(e.name){const a=rt(e);t.add(a)}}))})),t};const st=ke()((()=>async function(){const e=await it(),t=N(),a=(await t.getCurrentViews()).filter((({identity:t})=>!e.has(rt(t))));a.length&&setTimeout((async()=>{const e=await it();a.forEach((({identity:t})=>{const a=rt(t);e.has(a)||fin.Platform.getCurrentSync().closeView(t)}))}),2500)}().catch((e=>console.debug("error in scheduleViewCleanup",e)))),5e3,{leading:!1,trailing:!0}),ct=({name:e})=>{e&&q(e)&&st()};let pt={};const dt=({actionId:e,payload:t})=>{if("function"!=typeof pt[e])throw new Error(`Cannot find a configured function for the action '${e}'`);return pt[e](t)};function lt(){return localStorage.getItem(ae.MachineName)}let ut;async function wt(){return ut||(ut=await fin.System.getMachineId()),ut}const ft=e=>{if(e.layout&&Array.isArray(e.workspacePlatform?.pages)){const t=e.workspacePlatform.pages.find((e=>e.isActive));if(t)if(t.isLocked){const a=((e,t)=>{const a=Ie(t.content);return{...We(e,(e=>{const t=a.find((t=>t.name===e.name&&t.uuid===e.uuid)),n=t?t.isClosable:e.isClosable;return{...e,isClosable:n}})),settings:t.settings}})(e.layout,t.layout);t.layout=a,e.layout=a}else t.layout=e.layout}return e};async function gt(e){const t=e||await fin.Platform.getCurrentSync().getSnapshot();if(t.snapshotDetails?.machineId)return t;const a=lt();return{...t,snapshotDetails:{...e.snapshotDetails,machineId:await wt(),machineName:a}}}function yt(e){return new Promise(((t,a)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>a(e.error)}))}function ht(e,t){const a=indexedDB.open(e);a.onupgradeneeded=()=>a.result.createObjectStore(t);const n=yt(a);return(e,a)=>n.then((n=>a(n.transaction(t,e).objectStore(t))))}let mt;function vt(){return mt||(mt=ht("keyval-store","keyval")),mt}function St(e,t=vt()){return t("readonly",(t=>yt(t.get(e))))}function Pt(e,t,a=vt()){return a("readwrite",(a=>(a.put(t,e),yt(a.transaction))))}function bt(e,t=vt()){return t("readwrite",(t=>(t.delete(e),yt(t.transaction))))}function kt(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},yt(e.transaction)}function Wt(e=vt()){return e("readonly",(e=>{if(e.getAllKeys)return yt(e.getAllKeys());const t=[];return kt(e,(e=>t.push(e.key))).then((()=>t))}))}const Ct=(e,t="")=>e.toLowerCase().includes(t.toLowerCase()),It=b&&ht("openfin-home-pages","pages");async function At(e){const t=await St(e,It);return t?(t.pageId=e.toString(),t.title=t.title||t.pageId,t):null}async function Ot(e){const t=await Wt(It),a=await Promise.all(t.map((e=>At(e.toString()))));return e?a.filter((t=>Ct(t.title,e))):a}async function Mt({page:e}){await Pt(e.pageId,e,It)}async function Tt(e){await bt(e,It)}async function Et({pageId:e,page:t}){if(void 0===await At(e))throw new Error("page not found");await Mt({page:t}),e!==t.pageId&&await Tt(e)}var xt;!function(e){e.Label="normal",e.Separator="separator",e.Submenu="submenu",e.Checkbox="checkbox"}(xt||(xt={}));const Bt={type:xt.Separator,data:void 0};var Rt;!function(e){e.RegisterProvider="register-provider",e.DeregisterProvider="deregister-provider",e.CreateProviderWindow="create-provider-window",e.GetProviders="get-providers",e.ShowProviderWindow="show-provider-window",e.HideProviderWindow="hide-provider-window",e.GetStorefrontProviderApps="get-storefront-provider-apps",e.GetStorefrontProviderLandingPage="get-storefront-provider-landing-page",e.GetStorefrontProviderFooter="get-storefront-provider-footer",e.GetStorefrontProviderNavigation="get-storefront-provider-navigation",e.LaunchStorefrontProviderApp="launch-storefront-provider-app",e.ShowHome="show-home",e.HideHome="hide-home",e.AssignHomeSearchContext="assign-home-search-context",e.GetLegacyPages="get-legacy-pages",e.GetLegacyWorkspaces="get-legacy-workspaces",e.GetComputedPlatformTheme="get-computed-platform-theme",e.RegisterStorefrontProvider="register-storefront-provider",e.DeregisterStorefrontProvider="deregister-storefront-provider",e.HideStorefront="hide-storefront",e.ShowStorefront="show-storefront"}(Rt||(Rt={}));Be("__of_workspace_protocol__");const _t=async(e,t)=>{const a=await(async e=>({...e,layoutDetails:{machineId:await wt(),machineName:lt()}}))(t);return{pageId:crypto.randomUUID(),title:e,layout:a,isReadOnly:!1,hasUnsavedChanges:!0}},Dt=e=>({identity:e,openfinWindow:fin.Window.wrapSync(e),getPages:async()=>(await pe(e)).dispatch(re.GetPagesForWindow,e),getPage:async t=>(await pe(e)).dispatch(re.GetPageForWindow,{identity:e,pageId:t}),addPage:async t=>{const a=await pe(e);t?.title||(t.title=await a.dispatch(re.GetUniquePageTitle,void 0));const n=(await a.dispatch(re.GetAllAttachedPages,void 0)).find((e=>e.pageId===t.pageId||e.title===t.title));if(n)throw n.pageId===t.pageId?new Error(`page with id ${t.pageId} is already attached to a browser window ${n.parentIdentity.name}`):new Error(`page with title ${t.title} is already attached to a browser window ${n.parentIdentity.name}`);const o={identity:e,pages:[t]};return a.dispatch(re.AttachPagesToWindow,o)},removePage:async t=>(await pe(e)).dispatch(re.DetachPagesFromWindow,{identity:e,pageIds:[t]}),setActivePage:async t=>(await pe(e)).dispatch(re.SetActivePage,{identity:e,pageId:t}),updatePage:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.UpdatePageForWindow,t)},reorderPages:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.ReorderPagesForWindow,t)},_openGlobalContextMenu:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.OpenGlobalContextMenuInternal,t)},replaceToolbarOptions:async t=>{await pe(e);const a=fin.Window.wrapSync(e);await a.updateOptions({workspacePlatform:{toolbarOptions:t}})},replaceWindowStateButtonOptions:async t=>{await pe(e);const a=fin.Window.wrapSync(e);await a.updateOptions({workspacePlatform:{windowStateButtonOptions:t}})},_openViewTabContextMenu:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.OpenViewTabContextMenuInternal,t)},_openPageTabContextMenu:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.OpenPageTabContextMenuInternal,t)},_openSaveModal:async t=>{await pe(e);return(await De(e)).dispatch(Ue.OpenSaveModalInternal,t)},_openSaveButtonContextMenu:async t=>{const a=await pe(e);return t.identity=e,a.dispatch(re.OpenSaveButtonContextMenuInternal,t)}});let Vt=!1;const Lt=e=>{const t=fin.Platform.wrapSync(e);return{wrapSync:e=>Dt(e),createWindow:async a=>{await pe(e),Vt||(Vt=!0,(async e=>{Y(J.Browser,e)})({allowed:!0}));const n=await t.createWindow(a);return Dt(n.identity)},getAllAttachedPages:async()=>(await pe(e)).dispatch(re.GetAllAttachedPages,void 0),getAllWindows:async()=>{await pe(e);return(await fin.Application.wrapSync(e).getChildWindows()).filter((e=>e.identity.name.includes("internal-generated-window-"))).map((e=>Dt(e.identity)))},getUniquePageTitle:async t=>(await pe(e)).dispatch(re.GetUniquePageTitle,t),getLastFocusedWindow:async()=>(await pe(e)).dispatch(re.GetLastFocusedBrowserWindow,void 0)}},Ut=e=>({createPage:async t=>(await pe(e)).dispatch(re.CreateSavedPageInternal,t),deletePage:async t=>(await pe(e)).dispatch(re.DeleteSavedPageInternal,t),updatePage:async t=>(await pe(e)).dispatch(re.UpdateSavedPageInternal,t),getPage:async t=>(await pe(e)).dispatch(re.GetSavedPage,t),getPages:async t=>(await pe(e)).dispatch(re.GetSavedPages,t),savePage:async t=>(await pe(e)).dispatch(re.SavePage,t),createWorkspace:async t=>(await ce(e)).dispatch(re.CreateSavedWorkspace,t),deleteWorkspace:async t=>{const a=await Gt(),n=await a.getCurrentWorkspace();if(n.workspaceId===t)throw new Error(`Cannot delete current active workspace ${n.title}`);return(await ce(e)).dispatch(re.DeleteSavedWorkspace,t)},updateWorkspace:async t=>(await ce(e)).dispatch(re.UpdateSavedWorkspace,t),getWorkspace:async t=>(await ce(e)).dispatch(re.GetSavedWorkspace,t),getWorkspaces:async t=>(await ce(e)).dispatch(re.GetSavedWorkspaces,t),saveWorkspace:async t=>(await ce(e)).dispatch(re.SaveWorkspace,t)}),Ft=e=>({getThemes:async()=>(await ce(e)).dispatch(re.GetThemes,void 0)}),$t=e=>{const t=fin.Platform.wrapSync(e);return Object.assign(t,{applySnapshot:async(t,a)=>{if("string"!=typeof t&&!t?.windows)throw new Error("Not a valid browser snapshot");return fin.Platform.wrapSync(e).applySnapshot(t,a)},getSnapshot:()=>fin.Platform.wrapSync(e).getSnapshot().then((e=>e)),launchApp:async t=>{t.target||(t.target={uuid:W,name:C,entityType:I||"unknown"});return(await ce(e)).dispatch(re.LaunchApp,t)},_invokeCustomAction:async(t,a)=>{const n=await ce(e),o={actionId:t,payload:{...a,callerType:a.callerType||h.API}};return n.dispatch(re.InvokeCustomActionInternal,o)},_requestQuitPlatformDialog:async t=>(await ce(e)).dispatch(re.RequestQuitPlatformDialogInternal,t),getCurrentWorkspace:async()=>(await ce(e)).dispatch(re.GetCurrentWorkspace,void 0),applyWorkspace:async t=>(await ce(e)).dispatch(re.ApplyWorkspace,t),setActiveWorkspace:async t=>(await ce(e)).dispatch(re.SetActiveWorkspace,t),Theme:Ft(e),Browser:Lt(e),Storage:Ut(e)})},Gt=()=>$t(fin.me.identity),Nt=async(e=G)=>{const{workspacePlatform:t}=await $(e).getOptions(),a=t?.newPageUrl,n=t?.newTabUrl;return{newPageUrl:a,newTabUrl:n}},jt=async(e=G)=>{const t=await Gt().Browser.getUniquePageTitle("Untitled Page"),a=await(async(e=G)=>{const{newPageUrl:t}=await Nt(e);if(!t)throw new Error("Trying to create a new page without a newPageUrl set");return Ae("New Tab",t,e)})(e);return _t(t,a)},Ht={type:xt.Label,label:"Close Window",data:{type:u.CloseWindow}},qt={type:xt.Label,label:"Open Storefront",data:{type:u.OpenStorefront}},Kt={type:xt.Label,label:"Quit Platform",data:{type:u.Quit}},Qt={type:xt.Label,label:"New Window",data:{type:u.NewWindow}},zt={type:xt.Label,label:"Save Page",data:{type:u.SavePage}},Jt={type:xt.Label,label:"Save Page As...",data:{type:u.SavePageAs}},Yt={type:xt.Label,label:"Restore to Last Saved Changes",data:{type:u.RestoreChanges}},Xt={type:xt.Label,label:"Save Workspace",data:{type:u.SaveWorkspace}},Zt={type:xt.Label,label:"Save Workspace As...",data:{type:u.SaveWorkspaceAs}},ea={type:xt.Label,label:"Rename Workspace",data:{type:u.RenameWorkspace}},ta="Switch Workspace",aa="Delete Workspace",na=[Ht,Bt,qt,Bt,Kt],oa=[Bt,Ht,Bt,Kt],ra=(e,t,a)=>t.map((t=>{const n=t.workspaceId===e.workspaceId;return{label:t.title,type:xt.Checkbox,enabled:!n,checked:n,data:{type:a,workspaceId:t.workspaceId}}})),ia=async e=>{const t=await z(),{newPageUrl:a}=await Nt(e),n=await(async e=>{const t=$(e),{workspacePlatform:a}=await t.getOptions();return a?.disableMultiplePages})(e),o=await(async e=>{const t=$(e),{workspacePlatform:a}=await t.getOptions();return a?.isLocked})(e),r=[];var i;a&&(r.push(Qt),n||r.push((i=!o,{type:xt.Label,label:"New Page",data:{type:u.NewPage},enabled:i}))),r.push(Bt);const s=Gt(),c=await s.getCurrentWorkspace(),p=await s.Storage.getWorkspaces(),d=p.find((e=>e.workspaceId===c.workspaceId));return d?r.push(Yt):r.push({label:Yt.label,enabled:!1}),r.push(Xt,Zt),d?r.push(ea):r.push({label:ea.label,enabled:!1}),p.some((e=>e.workspaceId!==c.workspaceId))?r.push({label:ta,submenu:ra(c,p,u.SwitchWorkspace)},{label:aa,submenu:ra(c,p,u.DeleteWorkspace)}):r.push({label:ta,enabled:!1},{label:aa,enabled:!1}),r.push(Bt,zt,Jt),t?[...r,...na]:[...r,...oa]};let sa="Platform";const ca=async()=>sa;var pa,da,la;!function(e){e.Home="/home/",e.HomeSearch="/home/?deeplink=search",e.HomePagesRename="/home/pages/rename/",e.Dock="/dock/",e.BrowserPagesLanding="/browser/pages/landing/",e.HomeIndicator="/home/indicator/",e.Browser="/browser/",e.BrowserPopupMenu="/browser/popup-menu/",e.Provider="/provider/",e.BrowserPopupMenuSharePage="/browser/popup-menu/share-page/",e.BrowserPopupMenuSaveModal="/browser/popup-menu/save-modal/",e.BrowserPopupMenuLayouts="/browser/popup-menu/layouts/layouts/",e.BrowserPopupMenuColorLinking="/browser/popup-menu/color-linking/color-linking/",e.BrowserIndicator="/browser/indicator/",e.ResponseModal="/browser/popup-menu/response-modal/",e.Docs="/provider/docs/",e.Storefront="/storefront/",e.DeprecatedAlert="/provider/deprecated-alert/"}(pa||(pa={})),function(e){e.IconOpenFinLogo="/icons/openfinlogo.svg",e.IconFilter="/icons/filter.svg"}(da||(da={})),function(e){e.Search="search"}(la||(la={}));const ua={...da,...pa};var wa;!function(e){e.Home="/home",e.Browser="/browser",e.Provider="/provider",e.Storefront="/storefront",e.Dock="/dock"}(wa||(wa={}));const fa="/workspace/9.1.1";function ga(){return fa.substring(0,fa.length-"".length)}function ya(e){if(!P)throw new Error("getAbsoluteRoutePath can only be used in a window");return function(){if(!window)throw new Error("getAbsoluteBasePath can only be used in a window");return`${window.origin}${ga()}`}()+e}const ha=(e,t=0)=>{let a,n,o=!1;const r=async n=>{const i=await e(...n);if(o){await new Promise((e=>setTimeout(e,t)));const e=a;return a=void 0,o=!1,r(e)}return i};return(...e)=>(n?(o=!0,a=e):n=r(e).catch((e=>{throw console.error("makeDebouncedFunc",e),e})).finally((()=>{n=void 0})),n)},ma={name:L.BrowserMenu,alwaysOnTop:!0,autoShow:!1,frame:!1,resizable:!1,backgroundColor:"#2f3136",smallWindow:!0,showTaskbarIcon:!1,backgroundThrottling:!0};function va(e){const t={...ma,...e};return t.url=function(e){if(!P)throw new Error("resolveAbsolutePath can only be used in a window");return e.startsWith("http")?e:`${window.origin}${e}`}(t.url),t}var Sa,Pa;!function(e){e.Update="update",e.Response="response"}(Sa||(Sa={})),function(e){e.Canceled="canceled",e.Negative="negative",e.Affirmative="affirmative"}(Pa||(Pa={}));const ba=function(e){const t=new Map;return{emit:Oe(t,(t=>S&&fin.InterApplicationBus.publish(e,t))),addListener:Me(t,(t=>S&&fin.InterApplicationBus.subscribe({uuid:fin.me.uuid},e,t))),removeListener:Ee(t),once:Te(t)}}("window.menu"),ka=e=>ba.emit(Sa.Response,e),Wa=ha((()=>V().getChildWindows()),500);const Ca=new Map;async function Ia(e,t){const a=va(e),n={top:a.top,left:a.left,width:a.defaultWidth,height:a.defaultHeight};return t.set("parentName",fin.Window.getCurrentSync().identity.name),t.set("showing","true"),{name:a.name,bounds:n,route:`${a.url}?${t.toString()}`}}async function Aa({options:e,parameters:t},a){const n=va(e),{name:o}=n;let r=await async function(e){return(await Wa()).find((t=>t.identity.name===e))}(o);if(r)await async function(e,t){const{name:a,bounds:n,route:o}=await Ia(e,t);ba.emit(Sa.Update,a,n,o),await ka({name:a,data:Pa.Canceled})}(n,t||new URLSearchParams);else{const{route:a,bounds:o}=await Ia(e,t);r=await async function(e,t,a){const n=va(e);if(!Ca.has(n.name)){const e=(async()=>{const e=await fin.Platform.getCurrentSync().createWindow({...n,url:t||n.url,defaultLeft:a?.left,defaultTop:a?.top,defaultWidth:a?.width,defaultHeight:a?.height});return e.once("closed",(()=>{Ca.delete(n.name)})),e})();Ca.set(n.name,e)}return Ca.get(n.name)}(n,a,o)}return a&&r.center(),r}const Oa=async(e,t,a)=>{const n=t?$(t):N();if(!a){await(async(e=fin.me.identity)=>{const t=$(e),a=await t.getBounds();(a.right>screen.availLeft+screen.width||a.left<screen.availLeft||a.bottom>screen.availTop+screen.height||a.top<screen.availTop)&&await t.center()})(n.identity);const t=(e=>({left:(e.left+e.right)/2,top:(e.top+e.bottom)/2}))(await n.getBounds()),{defaultHeight:a,defaultWidth:o}=e;return((e,t)=>{const{height:a,width:n}=t,o=n/2,r=a/2;return{left:e.left-o,top:e.top-r}})(t,{height:a,width:o})}return await n.getBounds()},Ma=async({options:e,content:t},a)=>{const n=new URLSearchParams({...t}),o={...e,name:`${e.name}--${e.modalParentIdentity?.name??""}`};return await Aa({options:o,parameters:n},a),new Promise((e=>{ba.once(Sa.Response,(t=>{t.name===o.name&&e(t)}))}))},Ta=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Switch Workspace",windowOptions:{url:M+ua.ResponseModal,name:L.BrowserMenu,defaultHeight:112,defaultWidth:424,modalParentIdentity:e},content:{title:`Are you sure you want to switch to ${t}`,body:"Any unsaved changes will be discarded",affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(e,t),o=await Oa(a,a.modalParentIdentity),r={...a,top:o.top,left:o.left};return(await Ma({options:r,content:n})).data===Pa.Affirmative},Ea=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Delete Workspace",windowOptions:{url:M+ua.ResponseModal,name:L.BrowserMenu,defaultHeight:144,defaultWidth:372,modalParentIdentity:e},content:{title:"Are you sure you want to permanently delete this workspace?",body:`${t}`,affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(e,t),o=await Oa(a,a.modalParentIdentity),r={...a,top:o.top,left:o.left};return(await Ma({options:r,content:n})).data===Pa.Affirmative},xa=async(e,t,a)=>{const n=a?void 0:e,{windowOptions:o,content:r}=await(async(e,t)=>({title:"Platform Quit",windowOptions:{url:M+ua.ResponseModal,name:L.BrowserMenu,defaultHeight:134,defaultWidth:474,modalParentIdentity:t},content:{title:`Close the ${"Platform"===e?"platform":`${e} Platform`}?`,body:"Closing a platform will close any workspaces, apps or any processes that are running.",affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(t,n),i=await Oa(o,o.modalParentIdentity),s={...o,top:i.top,left:i.left};return(await Ma({options:s,content:r},a)).data===Pa.Affirmative},Ba=async e=>{const{windowOptions:t,content:a}=await(async e=>({title:"Restore Changes",windowOptions:{url:M+ua.ResponseModal,name:L.BrowserMenu,defaultHeight:112,defaultWidth:424,modalParentIdentity:e},content:{title:"Are you sure you want to restore to last saved changes?",body:"Any unsaved changes will be discarded",affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(e),n=await Oa(t,t.modalParentIdentity),o={...t,top:n.top,left:n.left};return(await Ma({options:o,content:a})).data===Pa.Affirmative};var Ra;!function(e){e.ERROR="error",e.SUCCESS="success",e.INFO="info"}(Ra||(Ra={}));const _a={alwaysOnTop:!0,autoShow:!1,frame:!1,resizable:!1,showTaskbarIcon:!1};var Da;!function(e){e.Locked="LockClosedIcon",e.Unlocked="LockOpen1Icon"}(Da||(Da={}));const Va=function(e=_a){const t=new Map;return async(a,n,o,r)=>{if(t.has(a)){const{currentUrl:e,currentName:o}=t.get(a);if(e===n)return;const r=fin.Window.wrapSync({uuid:fin.me.uuid,name:o});await r.close()}const i=`${L.HomeInternal}-${Date.now()}${Math.random()}`;t.set(a,{currentUrl:n,currentName:i});const s=await fin.Platform.getCurrentSync().createWindow({...e,name:i,url:n});((e,t)=>{const a=document.createElement("div");a.setAttribute("aria-live",t||"polite"),(e=>{e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.padding="0",e.style.margin="-1px",e.style.overflow="hidden",e.style.whiteSpace="nowrap",e.style.border="0"})(a),document.body.appendChild(a),setTimeout((()=>{a.innerHTML=e}),100),setTimeout((()=>{document.body.removeChild(a)}),1e3)})(`New ${r} indicator: ${o}`),s.once("closed",(()=>{t.delete(a)}))}}();async function La(e,t,a,n){const o=new URLSearchParams;o.append("type",e),o.append("message",t),o.append("parentName",a||""),o.append("icon",n||"");const r=`${ya(ua.BrowserIndicator)}#${o.toString()}`;return Va("browser"+a,r,t,e)}function Ua(e,t,a){return La(Ra.SUCCESS,e,t,a)}const Fa=async e=>{const t=Gt(),a=await t.getCurrentWorkspace(),n=await t.Storage.getWorkspaces(),o=a.workspaceId;if(n.some((e=>e.workspaceId===o)))t.Storage.saveWorkspace(a),t.setActiveWorkspace(a),Ua("Workspace Saved",e.name);else{t.Browser.wrapSync(e)._openSaveModal({menuType:m.SAVE_WORKSPACE})}},$a=e=>{Gt().Browser.wrapSync(e)._openSaveModal({menuType:m.SAVE_WORKSPACE_AS})},Ga=async(e,t)=>{const a=Gt().Browser.wrapSync(e),n=await Gt().Storage.getPages(),o=(await a.getPages()).find((e=>t?e.pageId===t:e.isActive)),r=n.some((e=>o.pageId===e.pageId));if(r)try{await Gt().Storage.savePage((p=o,{...p,hasUnsavedChanges:void 0,parentIdentity:void 0,isActive:void 0})),await a.updatePage({pageId:o.pageId,page:{hasUnsavedChanges:!1}}),Ua("Page saved",o.parentIdentity.name)}catch{i="Page failed to save",s=o.parentIdentity.name,La(Ra.ERROR,i,s,c)}else a._openSaveModal({id:o.pageId,menuType:m.SAVE_PAGE});var i,s,c,p},Na=async(e,t)=>{const a=Gt().Browser.wrapSync(e),n=(await a.getPages()).find((e=>t?e.pageId===t:e.isActive));a._openSaveModal({id:n.pageId,menuType:m.SAVE_PAGE_AS})},ja=async(e,t)=>{if(!e)return;const a=t.identity,n=await De(a),o=Gt().Browser.wrapSync(t.identity);switch(e.type){case u.NewWindow:const{newPageUrl:t}=await Nt(a);if(!t)throw new Error("Trying to create a new empty window without a newPageUrl set");Gt().createView({target:void 0,url:t});break;case u.NewPage:await(async e=>{const t=Gt().Browser.wrapSync(e),a=await jt(e);await t.addPage(a),await t.setActivePage(a.pageId)})(a);break;case u.CloseWindow:n.dispatch(Ue.CloseBrowserWindow);break;case u.SaveWorkspace:await Fa(a);break;case u.SavePage:await Ga(a);break;case u.SavePageAs:await Na(a);break;case u.SaveWorkspaceAs:await $a(a);break;case u.RenameWorkspace:o._openSaveModal({menuType:m.RENAME_WORKSPACE});break;case u.SwitchWorkspace:await(async(e,t)=>{const a=Gt(),n=(await a.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId));n&&await Ta(e,n.title)&&(await a.applyWorkspace(n),Ua("Workspace Switched!",null))})(a,e);break;case u.DeleteWorkspace:await(async(e,t)=>{const a=Gt(),n=(await a.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId));n&&await Ea(e,n.title)&&(await a.Storage.deleteWorkspace(t.workspaceId),Ua("Workspace Deleted!",e.name))})(a,e);break;case u.Quit:const r=await ca();await xa(a,r)&&fin.Platform.getCurrentSync().quit();break;case u.OpenStorefront:(async()=>{await z()&&H(j)})();break;case u.RestoreChanges:const i=await async function(){const e=Gt(),t=await e.getCurrentWorkspace();return(await e.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId))}();await Ba(a)&&await we(i);break;case u.Custom:if(e.action){const t={callerType:h.GlobalContextMenu,windowIdentity:a,customData:e.action.customData};Gt()._invokeCustomAction(e.action.id,t)}else console.warn(`Encountered a Custom context menu option with an "action" property with value "${e.action}"`)}},Ha=async(e,t)=>{const a=await De(t.identity),n=Gt();switch(e?.type){case w.Save:await Ga(t.identity,t.pageId);break;case w.SaveAs:await Na(t.identity,t.pageId);break;case w.Rename:await n.Browser.wrapSync(t.identity)._openSaveModal({menuType:m.RENAME_PAGE,id:t.pageId});break;case w.Duplicate:a.dispatch(Ue.DuplicatePage,t.pageId);break;case w.Close:a.dispatch(Ue.ClosePage,t.pageId);break;case w.Custom:if(e.action){const a={callerType:h.PageTabContextMenu,windowIdentity:t.identity,pageId:t.pageId,customData:e.action.customData};Gt()._invokeCustomAction(e.action.id,a)}else console.warn(`Encountered a Custom context menu option with an "action" property with value "${e.action}"`)}},qa=async(e,t)=>{if(e?.type){const a=t.identity;switch(e.type){case y.SavePage:await Ga(a);break;case y.SaveWorkspace:await Fa(a);break;case y.SavePageAs:await Na(a);break;case y.SaveWorkspaceAs:await $a(a);break;case y.Custom:if(e.action){const a={callerType:h.SaveButtonContextMenu,windowIdentity:t.identity,pageId:t.pageId,customData:e.action.customData};Gt()._invokeCustomAction(e.action.id,a)}else console.warn(`Encountered a Custom context menu option with an "action" property with value "${e.action}"`)}}},Ka=async(e,t)=>{const a=t.selectedViews[0],n=fin.View.wrapSync(a),o=await(async e=>{const{newTabUrl:t}=await Nt(e);if(!t)throw new Error("Trying to create a new page without a newTabUrl set");return{...Ae("New View",t),url:t,target:e}})(e);await Gt().createView(o,e,n.identity)},Qa=async(e,t)=>{const a=await(e=>Promise.all(e.map((async e=>fin.View.wrapSync(e).getInfo()))))(t),{newPageUrl:n,newTabUrl:o}=await Nt(e);a.forEach((async e=>{e.url!==n&&e.url!==o&&await fin.System.openUrlWithBrowser(e.url)}))},za=(e,t)=>{t.forEach((async t=>{const a=fin.View.wrapSync(t);await(async(e,t)=>{const{url:a}=await t.getInfo(),n={...await t.getOptions(),url:a,target:e,name:void 0};await Gt().createView(n,e,t.identity)})(e,a)}))},Ja=async(e,t)=>{if(!e)return;const a=t.identity;switch(e.type){case f.CloseViews:await(async(e,t)=>{if((await fin.Window.wrapSync(e).getCurrentViews()).length!==t.length)t.forEach((async e=>{const t=fin.View.wrapSync(e);await t.destroy()}));else{const t=(await Gt().Browser.wrapSync(e).getPages()).find((e=>e.isActive));(await De(e)).dispatch(Ue.ClosePage,t?.pageId)}})(a,t.selectedViews);break;case f.OpenWithDefaultBrowser:await Qa(a,t.selectedViews);break;case f.ReloadViews:t.selectedViews.forEach((async e=>{const t=fin.View.wrapSync(e);await t.reload()}));break;case f.NewView:await Ka(a,t);break;case f.DuplicateViews:za(a,t.selectedViews);break;case f.AddToChannel:(async(e,t,a)=>{const n={newChannelId:t,selectedViews:a};(await De(e)).dispatch(Ue.AddToChannel,n)})(a,e.option,t.selectedViews);break;case f.RemoveFromChannel:(async(e,t)=>{(await De(e)).dispatch(Ue.RemoveFromChannel,t)})(a,t.selectedViews);break;case f.Custom:if(e.action){const n={callerType:h.ViewTabContextMenu,windowIdentity:a,selectedViews:t.selectedViews,customData:e.action.customData};Gt()._invokeCustomAction(e.action.id,n)}}};async function Ya(e,t){const a=await ia(e.identity),n=await ca();a.find((e=>e.data?.type===u.Quit)).label=`Quit ${n}`;const o={...e,template:a,callback:ja};await this.openGlobalContextMenu(o,t)}const Xa=async(e,t)=>{const{x:a,y:n,identity:o,template:r,callback:i}=e,{data:s}=await function(e,t){if(!S)throw new Error("showContextMenu can only be used in an OpenFin env. Avoid calling this method during pre-rendering.");if(!t&&!fin.me.isWindow)throw new Error("showContextMenu can only be used in an OpenFin window.");return(t||fin.Window.getCurrentSync()).showPopupMenu(e)}({x:a,y:n,template:r},fin.Window.wrapSync(o));i(s,e)};async function Za(e,t){const a={...e,callback:Ja};await this.openViewTabContextMenu(a,t)}async function en(e,t){const a=await(async(e,t)=>{const a=await Gt().Storage.getPage(e),n=(await Ne()).find((t=>t.pageId===e)),{workspacePlatform:o}=await $(t).getOptions(),r=!(o.isLocked||o.preventPageClose||n.closeButton?.disabled||n.closeButton?.hidden);return[{type:xt.Label,label:"Save Page",data:{type:w.Save}},{type:xt.Label,label:"Save Page As",data:{type:w.SaveAs}},Bt,{type:xt.Label,label:"Rename Page",data:{type:w.Rename},enabled:!!a},{type:xt.Label,label:"Duplicate Page",data:{type:w.Duplicate},enabled:!o.isLocked},Bt,{type:xt.Label,label:"Close Page",data:{type:w.Close},enabled:r}]})(e.pageId,e.identity),n={...e,template:a,callback:Ha};await this.openPageTabContextMenu(n,t)}async function tn(e,t){const a={...e,template:await(async()=>[{type:xt.Label,label:"Save Workspace",data:{type:y.SaveWorkspace}},{type:xt.Label,label:"Save Workspace As",data:{type:y.SaveWorkspaceAs}},{type:xt.Separator,data:void 0},{type:xt.Label,label:"Save Page",data:{type:y.SavePage}},{type:xt.Label,label:"Save Page As",data:{type:y.SavePageAs}}])(),callback:qa};await this.openSaveButtonContextMenu(a,t)}const an=b&&ht("openfin-workspace-platform-workspaces","workspaces");async function nn(e){const t=await St(e,an);return t?(t.workspaceId=e.toString(),t.title=t.title||t.workspaceId,t):null}async function on(e){const t=await Wt(an),a=await Promise.all(t.map((e=>nn(e.toString()))));return e?a.filter((t=>Ct(t.title,e))):a}async function rn({workspace:e}){await Pt(e.workspaceId,e,an)}async function sn(e){await bt(e,an)}async function cn({workspaceId:e,workspace:t}){if(void 0===await nn(e))throw new Error("workspace not found");await rn({workspace:t}),e!==t.workspaceId&&await sn(e)}async function pn({app:e,target:t}){const a=fin.Platform.getCurrentSync();switch(e.manifestType){case c.Snapshot:return a.applySnapshot(e.manifest);case c.View:return async function(e,t){const a=fin.Platform.getCurrentSync();if("view"===t.entityType){const a=fin.View.wrapSync(t),n=await a.getParentLayout();return await n.replaceView(t,{manifestUrl:e.manifest,url:void 0,target:void 0}),a.destroy()}return a.createView({name:void 0,url:void 0,manifestUrl:e.manifest,target:void 0})}(e,t);case c.External:return fin.System.launchExternalProcess({path:e.manifest,uuid:e.appId});default:return fin.Application.startFromManifest(e.manifest)}}const dn=e=>e&&"object"==typeof e&&!Array.isArray(e);function ln(e,...t){if(!t.length)return e;const a=t.shift();return dn(e)&&dn(a)&&Object.entries(a).forEach((([t,a])=>{if(dn(a))return e[t]||(e[t]={}),ln(e[t],a);e[t]=a})),ln(e,...t)}const un=M+ua.Browser;function wn(e,t){const a=ln({},t,e);return a.detachOnClose=!0,a}async function fn(e,t,a){const n=e.manifestUrl?await t({manifestUrl:e.manifestUrl},a):void 0;if(n?.interop&&e.interop){const t={...e,...n,interop:e.interop};return delete t.manifestUrl,t}return e}const gn=e=>{const t=e.name===L.Home,a=e.name?.startsWith(L.HomeInternal),n=e.name?.startsWith(L.BrowserMenu);return!t&&!a&&!n},yn=e=>"workspacePlatform"in e?e:(({workstacks:e,pages:t,...a})=>({...a,workspacePlatform:{pages:t||e||null}}))(e),hn={experimental:{showFavicons:!0,defaultFaviconUrl:`${M}/icons/defaultFavicon.svg`}},mn={contextMenuSettings:{reload:!1},backgroundThrottling:!0,url:un,contextMenu:!0,closeOnLastViewRemoved:!1,permissions:{System:{openUrlWithBrowser:{enabled:!0,protocols:["mailto"]}}}},vn={dimensions:{borderWidth:3,headerHeight:30}},Sn=async(e,t)=>{const a=await Gt().Storage.getPages(),n=await Gt().Browser.getAllAttachedPages();return e.map((e=>{let o=e.title;void 0===e.pageId&&(e.pageId=crypto.randomUUID());const r=a.find((e=>e.title===o));return(r&&r.pageId!==e.pageId||n.find((e=>e.title===o)))&&(o=ue(e.title,[...a,...n].map((e=>e.title)))),n.push({...e,title:o}),{...t,...e,title:o,layout:(i=e.layout,We({...i},Ce))};var i}))};var Pn;!function(e){e.Browser="browser",e.Platform="platform",e.Classic="classic",e.Mixed="mixed"}(Pn||(Pn={}));const bn=e=>{const t=fin.Window.wrapSync(e);return Promise.all([t.bringToFront(),t.restore(),t.focus()])};async function kn(e){const t=(await K()).map((async e=>{const t=await e.getOptions();t.workspacePlatform?.pages&&t.layout&&await(async e=>(await De(e)).dispatch(Ue.UpdatePagesWindowOptions))(e.identity)}));return await Promise.all(t),e?e():gt()}const Wn=async e=>{await xa(fin.me.identity,e.title??await ca(),e.shouldCenterOnMonitor)&&fin.Platform.getCurrentSync().quit()};let Cn=[];const In=()=>Cn;const An=(e,t)=>async a=>{const n=null!==e;class o extends a{constructor(){super(),this.isWorkspacePlatform=()=>({isWorkspacePlatform:!0,isBrowserInitialized:!!e}),this.addPage=this.attachPagesToWindow,this.detachPagesFromWindow=Ze,this.getAllAttachedPages=Ne,this.getPagesForWindow=tt,this.getPageForWindow=at,this.setActivePage=et,this.launchApp=pn,this.savePage=Je,this.saveWorkspace=he,this.createSavedPageInternal=Ke,this.updateSavedPageInternal=ze,this.deleteSavedPageInternal=Qe,this.reorderPagesForWindow=nt,this.getUniquePageTitle=ot,this.updatePageForWindow=Xe,this.getLastFocusedBrowserWindow=ve,this.getThemes=In,this.invokeCustomActionInternal=dt,this.requestQuitPlatformDialogInternal=Wn,this.getCurrentWorkspace=ye,this.applyWorkspace=we,this.setActiveWorkspace=fe,this.openGlobalContextMenuInternal=this.openGlobalContextMenuInternal.bind(this),this.openGlobalContextMenu=this.openGlobalContextMenu.bind(this),this.getSavedPages=this.getSavedPages.bind(this),this.getSavedPage=this.getSavedPage.bind(this),this.createSavedPage=this.createSavedPage.bind(this),this.updateSavedPage=this.updateSavedPage.bind(this),this.deleteSavedPage=this.deleteSavedPage.bind(this),this.attachPagesToWindow=this.attachPagesToWindow.bind(this),this.openViewTabContextMenuInternal=this.openViewTabContextMenuInternal.bind(this),this.openViewTabContextMenu=this.openViewTabContextMenu.bind(this),this.openPageTabContextMenuInternal=this.openPageTabContextMenuInternal.bind(this),this.openPageTabContextMenu=this.openPageTabContextMenu.bind(this),this.getSavedWorkspaces=this.getSavedWorkspaces.bind(this),this.getSavedWorkspace=this.getSavedWorkspace.bind(this),this.createSavedWorkspace=this.createSavedWorkspace.bind(this),this.updateSavedWorkspace=this.updateSavedWorkspace.bind(this),this.deleteSavedWorkspace=this.deleteSavedWorkspace.bind(this),this.getCurrentWorkspace=this.getCurrentWorkspace.bind(this),this.applyWorkspace=this.applyWorkspace.bind(this),this.setActiveWorkspace=this.setActiveWorkspace.bind(this),this.openSaveButtonContextMenu=this.openSaveButtonContextMenu.bind(this),this.openSaveButtonContextMenuInternal=this.openSaveButtonContextMenuInternal.bind(this)}async getSnapshot(){const e=n?await kn((async()=>gt(await super.getSnapshot(void 0,fin.me.identity)))):await gt(await super.getSnapshot(void 0,fin.me.identity));return{...e,windows:e.windows.filter(gn).map(ft)}}async applySnapshot({snapshot:e,options:t}){const a=e=>super.applySnapshot({snapshot:e,options:{...t,closeExistingWindows:!1}});let o=e;"string"==typeof o&&(o=await super.fetchManifest({manifestUrl:o},fin.me.identity));const r=function(e){let t=!1,a=!1;for(const n of e.windows){if(t&&a)break;n.workspacePlatform?.pages?.length?a=!0:n.layout&&(t=!0)}return t&&a?Pn.Mixed:t?Pn.Platform:a?Pn.Browser:e.windows.length?Pn.Classic:null}(o);if(r===Pn.Mixed)throw new Error("This snapshot cannot be applied as it contains a mixture of browser and platform windows.");if(n)r===Pn.Platform&&console.warn("No pages found in snapshot, creating a new page from the layout");else if(r===Pn.Browser)throw new Error("This snapshot cannot be applied as the platform has been initialized without the browser.");return t?.closeExistingWindows&&await async function(){const e=await K();await Promise.all(e.map((e=>e.close(!0).catch((()=>{})))))}(),n?async function(e,t){const a=await Ne(),n=e.snapshotDetails?.monitorInfo||await fin.System.getMonitorInfo(),[o,r]=(e.windows||[]).reduce((([e,t],a)=>a?.workspacePlatform?.pages?.length?[[...e,a],t]:[e,[...t,a]]),[[],[]]),i=new Map;a.forEach((e=>i.set(e.pageId,e)));const s=[],c=o.map((async e=>{const t=yn(e),a=[],n=(e=>{let t=!1;const a=(e||[]).map((e=>{const a=function({id:e,name:t,...a}){return{pageId:e,title:t,...a}}(e);return t&&a.isActive&&(a.isActive=!1),a.isActive&&(t=!0),a}));return!t&&a.length&&(a[0].isActive=!0),a})(t?.workspacePlatform?.pages);if(!n?.length){const e=await ot();a.push(await _t(e,t.layout))}let o;n.forEach((e=>{const t=i.get(e.pageId);t?o=t:a.push(e)})),o&&await Promise.all([et({identity:o.parentIdentity,pageId:o.pageId}),bn(o.parentIdentity)]),a.length&&s.push({...t,workspacePlatform:{...t.workspacePlatform,pages:a}})}));if(await Promise.all(c),!s.length&&!r.length)return;const p=fin.Platform.getCurrentSync();return(t||p.applySnapshot.bind(p))({...e,snapshotDetails:{...e.snapshotDetails,monitorInfo:n},windows:[...s,...r]})}(o,a):a(o)}async createWindow(t,a){t.workspacePlatform?.toolbarOptions?.buttons&&(e=>{const t=e.filter((e=>e.type!==g.Custom)),a=new Set;for(const e of t){if(a.has(e.type))throw new Error(`Encountered a duplicate of ${e.type} button. No more than one instance of a button type may be provided.`);a.add(e.type)}})(t.workspacePlatform.toolbarOptions.buttons);let o=yn(t);if(n){const t=this.getThemes();o=await(async(e,t,a)=>{let n=e;const o=n?.workspacePlatform?.pages;if(o){const e=o.find((e=>e.isActive));e?n.layout=e.layout:(o[0].isActive=!0,n.layout=o[0].layout)}if(n.layout){if(n=ln({},hn,t.defaultWindowOptions,n,mn),n.layout=ln(n.layout,vn),(n.icon||n.taskbarIcon)&&(n.taskbarIconGroup=n.taskbarIconGroup||fin.me.identity.uuid),!n.backgroundColor){const e=a?.palette;n.backgroundColor=e?.background2||e?.backgroundPrimary}const e=n.workspacePlatform.newTabUrl;if(e&&(n.layout.settings||(n.layout.settings={}),n.layout.settings.newTabButton={url:e}),n=((e,t)=>{const a=e;return a.workspacePlatform||(a.workspacePlatform={}),a.workspacePlatform._internalDeferShowOptions={setAsForeground:!!t,deferShowEnabled:!0,autoShow:a.workspacePlatform?._internalAutoShow||a.workspacePlatform?._internalDeferShowOptions?.autoShow||void 0===a.autoShow||a.autoShow},a.autoShow=!1,a})(n,!0),!n.workspacePlatform.pages?.length){const e=await ot("Untitled Page"),t={...await _t(e,n.layout),isActive:!0};n.workspacePlatform.pages=[t]}}return n.workspacePlatform?.pages&&(n.workspacePlatform.pages=await Sn(n.workspacePlatform.pages,t?.defaultPageOptions)),n.cornerRounding&&delete n.cornerRounding,n})(o,e,t[0])}o=await(async e=>{const t=await fin.System.getMonitorInfo(),a=t.primaryMonitor.availableRect.bottom-t.primaryMonitor.availableRect.top,n=t.primaryMonitor.availableRect.right-t.primaryMonitor.availableRect.left;return e.defaultHeight=e.defaultHeight||"800",e.defaultWidth=e.defaultWidth||"800",a<e.defaultHeight&&(e.defaultHeight=a),n<e.defaultWidth&&(e.defaultWidth=n),e})(o);const r=(e,t)=>super.createWindow(e,t),i=n?(e=>async(t,a)=>{let n=!1;const o=await e(t,a);return t?.workspacePlatform?._internalDeferShowOptions?.deferShowEnabled?(await o.addListener(U.ShowRequested,(async()=>{if(n)return;const e=await o.getOptions();await o.updateOptions({workspacePlatform:{...e.workspacePlatform,_internalDeferShowOptions:{...e.workspacePlatform._internalDeferShowOptions,autoShow:!0}}}),n=!0})),o):o})(r):r;return i(o,a)}async createView(t,a){return t.opts=wn(t.opts,e?.defaultViewOptions),t.opts=await fn(t.opts,this.fetchManifest,a),super.createView(t,a)}async replaceView(t,a){return t.opts.newView=await wn(t.opts.newView,e?.defaultViewOptions),t.opts.newView=await fn(t.opts.newView,this.fetchManifest,a),super.replaceView(t,a)}async replaceLayout(e,t){return delete e.opts.layout?.dimensions,super.replaceLayout(e,t)}async closeView(e,t){const a=fin.View.wrapSync(e.view);await super.closeView(e,t),await a.destroy().catch((e=>e))}async getSavedPage(...e){return At.apply(this,e)}async getSavedPages(...e){return Ot.apply(this,e)}async createSavedPage(...e){return Mt.apply(this,e)}async deleteSavedPage(...e){return Tt.apply(this,e)}async updateSavedPage(...e){return Et.apply(this,e)}async getSavedWorkspace(...e){return nn.apply(this,e)}async getSavedWorkspaces(...e){return on.apply(this,e)}async createSavedWorkspace(...e){return rn.apply(this,e)}async deleteSavedWorkspace(...e){return sn.apply(this,e)}async updateSavedWorkspace(...e){return cn.apply(this,e)}async attachPagesToWindow(t){t.pages=await Sn(t.pages,e?.defaultPageOptions),await Ye(t)}async openGlobalContextMenuInternal(...e){return Ya.apply(this,e)}async openGlobalContextMenu(...e){return Xa.apply(this,e)}async openViewTabContextMenuInternal(...e){return Za.apply(this,e)}async openViewTabContextMenu(...e){return Xa.apply(this,e)}async openPageTabContextMenuInternal(...e){return en.apply(this,e)}async openPageTabContextMenu(...e){return Xa.apply(this,e)}async openSaveButtonContextMenu(...e){return Xa.apply(this,e)}async openSaveButtonContextMenuInternal(...e){return tn.apply(this,e)}}return"function"==typeof t?t(o):new o};async function On(){!function(){const e=V();e.addListener(B.WindowOptionsChanged,st),e.addListener(B.WindowClosed,ct),e.addListener(B.WindowCreated,ct),fin.me.on(U.ViewAttached,st),fin.InterApplicationBus.subscribe({uuid:fin.me.identity.uuid},"browser-window-ready",ct)}(),async function(){const e=fin.Application.getCurrentSync();await e.addListener("window-focused",Se)}();fe(await ge())}let Mn;function Tn({overrideCallback:e,interopOverride:t,browser:a}){if(!S)throw new Error("Cannot be used outside an OpenFin env.");if(!Mn){fin.Platform.getCurrentSync().once("platform-api-ready",(()=>On())),a?.title&&(n=a.title,sa=n),Mn=fin.Platform.init({overrideCallback:An(a,e||a?.overrideCallback),interopOverride:t||a?.interopOverride}),(async e=>{Y(J.Platform,e)})({allowed:!0})}var n;return Mn}const En=async({theme:e,customActions:t,...a})=>{const n=T.split(".").map((e=>parseInt(e))),o=await(async e=>new Promise((async t=>{(await ee()).disableRuntimeValidation&&t(!0);const a=(await fin.System.getVersion()).split(".").map((e=>parseInt(e)));t(e.every(((t,n)=>!(n<3)||a[n]===e[n])))})))(n);var r;if(e&&((r=e).forEach((e=>{const t=e.palette.backgroundPrimary;if(!t.includes("#")&&!t.includes("rgb")&&!t.includes("hsl"))throw new Error("Background primary color is not the right format.")})),Cn=r,(async e=>{Y(J.Theming,e)})({allowed:!0})),t&&(pt=t),o)return Tn(a);throw new Error(`Runtime version is not supported. ${n[0]}.${n[1]}.${n[2]}.* is required`)}})(),module.exports=n})();
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@openfin/workspace-platform","description":"An API for creating your own Workspace platform.","contributors":[],"version":"9.1.
|
|
1
|
+
{"name":"@openfin/workspace-platform","description":"An API for creating your own Workspace platform.","contributors":[],"version":"9.1.1","main":"index.js","scripts":{"promote:docs":"chmod +x ../common/scripts/deploy-latest-docs.sh && ../common/scripts/deploy-latest-docs.sh $(node ../common/scripts/echo-version.js) /platform","promote":"node ../common/scripts/promote-npm.js && npm run promote:docs","deploy:next":"npm run deploy:next:npm && npm run deploy:next:docs","deploy:next:npm":"cd out && npm publish --tag next","deploy:hotfix:npm":"cd out && npm publish --tag hotfix","deploy:next:docs":"DIR=/platform node ../common/scripts/archive-docs.js","cp:readme":"copyfiles README.md out","cp:package":"node ../common/scripts/cp-package.js","create:rootIndex":"node ../common/scripts/cp-root-index.js","package":"npm run cp:readme && npm run cp:package && npm run create:rootIndex","clean":"rimraf ./out && rimraf ./docs","build:common":"cross-env ENV=prod webpack --mode=production --config ./webpack.common.config.js","build":"npm run clean && npm run build:common && npm run build:docs && node ../common/scripts/test-for-next-apis.js","build:docs":"typedoc --tsconfig ./tsconfig.json --readme none --disableSources ./src/index.ts","test":"jest --watch --colors","test:ci":"jest"},"keywords":["client","api","workspace","platform"],"license":"MIT"}
|