@openfin/workspace-platform 8.1.5 → 8.1.6

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.
Files changed (2) hide show
  1. package/index.js +1 -1
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var e,t,a,n,o,i,r,s,c={d:(e,t)=>{for(var a in t)c.o(t,a)&&!c.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},d={};c.r(d),c.d(d,{AppManifestType:()=>r,BrowserButtonType:()=>g,CustomActionCallerType:()=>h,GlobalContextMenuOptionType:()=>l,PageTabContextMenuOptionType:()=>w,SaveButtonContextMenuOptionType:()=>y,SaveModalType:()=>f,ViewTabMenuOptionType:()=>u,getCurrentSync:()=>Et,init:()=>gn,wrapSync:()=>Mt}),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"}(a||(a={})),function(e){e.Suggestion="suggestion"}(n||(n={})),function(e){e.Contact="Contact",e.Custom="Custom",e.List="List",e.Plain="Plain",e.SimpleText="SimpleText",e.Loading="Loading",e.Error="Error"}(o||(o={})),function(e){e.MultiSelect="MultiSelect"}(i||(i={})),function(e){e.Snapshot="snapshot",e.Manifest="manifest",e.View="view",e.External="external"}(r||(r={})),function(e){e.LandingPage="landingPage",e.AppGrid="appGrid"}(s||(s={}));var p,l,w,u,g,y,h,f,m;!function(e){e.Primary="primary",e.Secondary="secondary",e.TextOnly="textOnly"}(p||(p={})),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"}(l||(l={})),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"}(u||(u={})),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.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"}(f||(f={})),function(e){e.Local="local",e.Dev="dev",e.Staging="staging",e.Prod="prod"}(m||(m={}));const S="undefined"!=typeof window&&"undefined"!=typeof fin,v=("undefined"==typeof process||process.env?.JEST_WORKER_ID,"undefined"!=typeof window),P=v&&"undefined"!=typeof indexedDB,k=v?window.origin:m.Local,b=S&&fin.me.uuid,W=S&&fin.me.name,C=S&&fin.me.entityType,I=(m.Local,m.Dev,m.Staging,m.Prod,e=>e.startsWith("http://")||e.startsWith("https://")?e:k+e),A=(I("https://cdn.openfin.co/workspace/8.1.5"),I("https://cdn.openfin.co/workspace/8.1.5")),T=("undefined"!=typeof WORKSPACE_DOCS_PLATFORM_URL&&I(WORKSPACE_DOCS_PLATFORM_URL),"undefined"!=typeof WORKSPACE_DOCS_CLIENT_URL&&I(WORKSPACE_DOCS_CLIENT_URL),"26.102.70.14"),M="8.1.5";var E,O,B;!function(e){e.Workspace="openfin-browser"}(E||(E={})),function(e){e.RunRequested="run-requested",e.WindowOptionsChanged="window-options-changed",e.WindowClosed="window-closed",e.WindowCreated="window-created"}(O||(O={})),function(e){e.FinProtocol="fin-protocol"}(B||(B={}));const R={uuid:b,name:b},x=(E.Workspace,E.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)}),L=()=>x(R);var V,U;!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"}(V||(V={})),function(e){e.Shown="shown",e.BoundsChanged="bounds-changed",e.LayoutReady="layout-ready",e.EndUserBoundsChanging="end-user-bounds-changing",e.Blurred="blurred",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 D(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 _={name:W,uuid:b};function F(){return D(_)}V.Home,E.Workspace,V.Dock,E.Workspace;const G={name:V.Storefront,uuid:E.Workspace};E.Workspace,E.Workspace;async function N(e){const t=D(e);"minimized"===await t.getState()&&await t.restore(),await t.show(),await t.bringToFront(),await t.focus()}const $=e=>e.startsWith(V.BrowserWindow);async function H(){return(await fin.Application.getCurrentSync().getChildWindows()).filter((e=>$(e.identity.name)))}const q=e=>D(e).getOptions().then((()=>!0)).catch((()=>!1)),K=()=>q(G);var j;!function(e){e.Browser="Browser",e.Home="Home",e.Notification="Notification",e.Storefront="Storefront",e.Platform="Platform",e.Theming="Theming"}(j||(j={}));const z=async(e,t)=>{const a={apiVersion:t.apiVersion||M,componentName:e,componentVersion:M,...t};fin.System.registerUsage({type:"workspace-licensing",data:a})};var Q;!function(e){e.CurrentWorkspaceId="currentWorkspaceId",e.LastFocusedBrowserWindow="lastFocusedBrowserWindow",e.MachineName="machineName",e.NewTabPageLayout="NewTabPageLayout",e.NewTabPageSort="NewTabPageSort"}(Q||(Q={}));const J=Q;var X;!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.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"}(X||(X={}));const Y=async e=>{const t=fin.Platform.wrapSync(e),a=await t.getClient(),n="Target is not a Workspace Platform. Target must call WorkspacePlatform.init";try{const e=await a.dispatch("isWorkspacePlatform");if(!0===e||!0===e.isWorkspacePlatform)return a;throw new Error(n)}catch(e){throw new Error(n)}},Z=async e=>{const t=fin.Platform.wrapSync(e),a=await t.getClient(),n="Target is not a Workspace Platform. Target must call WorkspacePlatform.init";let o;try{o=await a.dispatch("isWorkspacePlatform")}catch(e){throw new Error(n)}if(!0!==o?.isWorkspacePlatform)throw new Error(n);if(!0!==o?.isBrowserInitialized)throw new Error("Target is not a Browser-enabled Workspace Platform.");return a},ee=(e,t)=>!t.find((t=>t===e)),te=(e,t)=>`${e} (${t})`,ae=(e,t)=>{let a=1;const n=e.replace(/ \(.+\)$/,"");for(;!ee(te(n,a),t);)a+=1;return te(n,a)};async function ne(e){try{const t=Et();await t.applySnapshot(e.snapshot,{closeExistingWindows:!0}),oe(e)}catch(e){}}function oe(e){if("undefined"!=typeof localStorage)try{const t=JSON.stringify(e);localStorage.setItem(J.CurrentWorkspaceId,t)}catch(e){}}async function ie(){if("undefined"==typeof localStorage)return;const e=Et(),t=await e.getSnapshot();return{workspaceId:crypto.randomUUID(),title:await ce(),metadata:{APIVersion:M},snapshot:t}}async function re(){if("undefined"==typeof localStorage)return;const e=localStorage.getItem(J.CurrentWorkspaceId);if(!e)return ie();const t=JSON.parse(e),a=Et(),n=await a.getSnapshot();return{...t,metadata:{APIVersion:M},snapshot:n}}const se=async e=>await(async e=>(await Y(_)).dispatch(X.GetSavedWorkspace,e))(e.workspaceId)?(async e=>(await Y(_)).dispatch(X.UpdateSavedWorkspace,e))({workspaceId:e.workspaceId,workspace:e}):(async e=>(await Y(_)).dispatch(X.CreateSavedWorkspace,e))({workspace:e});async function ce(e="Untitled Workspace"){const t=(await(async()=>(await Y(_)).dispatch(X.GetSavedWorkspaces,void 0))()).map((({title:e})=>e));return t.find((t=>t===e))?ae(e,t):e}async function de(){if("undefined"!=typeof localStorage)try{const e=localStorage.getItem(J.LastFocusedBrowserWindow),t=JSON.parse(e);if(await q(t))return t}catch(e){throw new Error(`failed to get last focused browser window: ${e}`)}}function pe(e=fin.me.identity){$(e.name)&&function(e){if("undefined"!=typeof localStorage)try{const t=JSON.stringify(e);localStorage.setItem(J.LastFocusedBrowserWindow,t)}catch(e){}}(e)}const le=(e,t=0)=>{let a,n,o=!1;const i=async n=>{const r=await e(...n);if(o){await new Promise((e=>setTimeout(e,t)));const e=a;return a=void 0,o=!1,i(e)}return r};return(...e)=>(n?(o=!0,a=e):n=i(e).then((e=>(n=void 0,e))),n)};var we;!function(e){e.TabCreated="tab-created",e.ContainerCreated="container-created",e.ContainerResized="container-resized"}(we||(we={}));const ue=(e,t)=>e.content?{...e,content:e.content.map((e=>ue(e,t)))}:{...e,componentState:t(e.componentState)},ge=e=>({...e,name:e.name?e.name:crypto.randomUUID()}),ye=e=>{const t=[];return(e&&Array.isArray(e)?e:[]).forEach((e=>{if("component"===e.type)return t.push(e.componentState);const a=ye(e.content);t.push(...a)})),t},he=async(e,t,a=_)=>{let n;if($(a.name)){n=(await D(a).getOptions()).layout||{settings:{}}}return{...n,content:[{type:"stack",content:[{type:"component",componentName:"view",componentState:{title:e,url:t}}]}]}};new Map;function fe(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 Se(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 ve(e){return(t,a)=>{e.has(t)&&e.get(t).delete(a)}}const Pe=v&&"complete"!==document.readyState&&new Promise((e=>document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&e()}))));function ke(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 Pe;const a=await fin.InterApplicationBus.Channel.connect(e);return a.onDisconnection((async()=>{t=void 0})),a})().then((e=>e)).catch((a=>{throw t=void 0,new Error(`failed to connect to channel provider ${e}: ${a}`)}))),t}}const be=e=>`__browser_window__-${e.uuid}-${e.name}`,We=new Map,Ce=e=>{const t=be(e);return We.has(t)||We.set(t,ke(t)),We.get(t)()};var Ie,Ae,Te;!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"}(Ie||(Ie={})),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"}(Ae||(Ae={})),function(e){e.AttachedPagesToWindow="attached-pages-to-window",e.DetachedPagesFromWindow="detached-pages-from-window"}(Te||(Te={}));new Map;const Me=async e=>{const t=await Ce(e);return await t.dispatch(Ae.GetPages)},Ee=async e=>(await Ce(e.identity)).dispatch(Ae.UpdatePageForWindow,e),Oe=async()=>{const e=await H();return(await Promise.all(e.map((async({identity:e})=>Me(e))))).reduce(((e,t)=>e.concat(t)),[])},Be=async()=>(await Y(_)).dispatch(X.GetSavedPages,void 0),Re=async e=>(await Y(_)).dispatch(X.GetSavedPage,e),xe=async(e,t)=>{const a=await(async e=>(await Oe()).find((t=>t.pageId===e)))(e);return!a||a.title===t.title&&e===t.pageId||await Ee({identity:a.parentIdentity,pageId:e,page:{pageId:t.pageId,title:t.title}}),a},Le=async({page:e})=>{await xe(e.pageId,e),await(async e=>(await Y(_)).dispatch(X.CreateSavedPage,e))({page:e})},Ve=async e=>{await Re(e)&&await(async e=>(await Y(_)).dispatch(X.DeleteSavedPage,e))(e)},Ue=async({pageId:e,page:t})=>{await xe(e,t);return await(async e=>(await Y(_)).dispatch(X.UpdateSavedPage,e))({pageId:e,page:t})},De=async e=>await Re(e.pageId)?Ue({pageId:e.pageId,page:e}):Le({page:e}),_e=async e=>{await(async e=>(await Ce(e.identity)).dispatch(Ae.AttachPagesToWindow,e))(e)},Fe=async e=>{await Ee(e)},Ge=async e=>{await(async e=>(await Ce(e.identity)).dispatch(Ae.DetachPagesFromWindow,e))(e)},Ne=async e=>{await(async e=>(await Ce(e.identity)).dispatch(Ae.SetActivePageForWindow,e))(e)},$e=e=>Me(e),He=async({identity:e,pageId:t})=>(await $e(e)).find((e=>e.pageId===t)),qe=async e=>{await(async e=>(await Ce(e.identity)).dispatch(Ae.ReorderPagesForWindow,e))(e)};async function Ke(e="Untitled Page"){const[t,a]=await Promise.all([Be(),Oe()]),n=[...t,...a].map((({title:e})=>e));return n.find((t=>t===e))?ae(e,n):e}const je=new Map,ze=e=>`${e.uuid}-${e.name}`;const Qe=le((async function(){const e=await Oe(),t=new Set;e.forEach((e=>{ye(e.layout.content).forEach((e=>{if(e.name){const a=ze(e);t.add(a)}}))}));const a=F();(await a.getCurrentViews()).forEach((({identity:e})=>{const a=ze(e);if(t.has(a)||je.has(a))return;const n=setTimeout((()=>{fin.View.wrapSync(e).destroy(),je.delete(a)}),5e3);je.set(a,n)})),je.forEach(((e,a)=>{t.has(a)&&(clearTimeout(e),je.delete(a))}))}),2500),Je=({name:e})=>{$(e)&&Qe().catch((()=>{}))};let Xe={};const Ye=({actionId:e,payload:t})=>{if("function"!=typeof Xe[e])throw new Error(`Cannot find a configured function for the action '${e}'`);return Xe[e](t)};function Ze(){return localStorage.getItem(J.MachineName)}let et;async function tt(){return et||(et=await fin.System.getMachineId()),et}const at=e=>{if(e.layout&&Array.isArray(e.workspacePlatform?.pages)){const t=e.workspacePlatform.pages.find((e=>e.isActive));t&&(t.layout=e.layout)}return e};async function nt(e){const t=e||await fin.Platform.getCurrentSync().getSnapshot();if(t.snapshotDetails?.machineId)return t;const a=Ze();return{...t,snapshotDetails:{...e.snapshotDetails,machineId:await tt(),machineName:a}}}function ot(e){return new Promise(((t,a)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>a(e.error)}))}function it(e,t){const a=indexedDB.open(e);a.onupgradeneeded=()=>a.result.createObjectStore(t);const n=ot(a);return(e,a)=>n.then((n=>a(n.transaction(t,e).objectStore(t))))}let rt;function st(){return rt||(rt=it("keyval-store","keyval")),rt}function ct(e,t=st()){return t("readonly",(t=>ot(t.get(e))))}function dt(e,t,a=st()){return a("readwrite",(a=>(a.put(t,e),ot(a.transaction))))}function pt(e,t=st()){return t("readwrite",(t=>(t.delete(e),ot(t.transaction))))}function lt(e,t){return e("readonly",(e=>(e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},ot(e.transaction))))}function wt(e=st()){const t=[];return lt(e,(e=>t.push(e.key))).then((()=>t))}const ut=(e,t="")=>e.toLowerCase().includes(t.toLowerCase()),gt=P&&it("openfin-home-pages","pages");async function yt(e){const t=await ct(e,gt);return t?(t.pageId=e.toString(),t.title=t.title||t.pageId,t):null}async function ht(e){const t=await wt(gt),a=await Promise.all(t.map((e=>yt(e.toString()))));return e?a.filter((t=>ut(t.title,e))):a}async function ft({page:e}){await dt(e.pageId,e,gt)}async function mt(e){await pt(e,gt)}async function St({pageId:e,page:t}){if(void 0===await yt(e))throw new Error("page not found");await ft({page:t}),e!==t.pageId&&await mt(e)}var vt;!function(e){e.Label="normal",e.Separator="separator",e.Submenu="submenu",e.Checkbox="checkbox"}(vt||(vt={}));const Pt={type:vt.Separator,data:void 0};var kt;!function(e){e.RegisterStorefrontProvider="register-storefront-provider",e.DeregisterStorefrontProvider="deregister-storefront-provider",e.GetStorefrontProviders="get-storefront-providers",e.HideStorefront="hide-storefront",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.ShowStorefront="show-storefront",e.CreateStorefrontWindow="create-storefront-window",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"}(kt||(kt={}));ke("__of_workspace_protocol__");const bt=async(e,t)=>{const a=await(async e=>({...e,layoutDetails:{machineId:await tt(),machineName:Ze()}}))(t);return{pageId:crypto.randomUUID(),title:e,layout:a,isReadOnly:!1,hasUnsavedChanges:!0}},Wt=e=>({identity:e,openfinWindow:fin.Window.wrapSync(e),getPages:async()=>(await Z(e)).dispatch(X.GetPagesForWindow,e),getPage:async t=>(await Z(e)).dispatch(X.GetPageForWindow,{identity:e,pageId:t}),addPage:async t=>{const a=await Z(e);t?.title||(t.title=await a.dispatch(X.GetUniquePageTitle,void 0));const n=(await a.dispatch(X.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(X.AttachPagesToWindow,o)},removePage:async t=>(await Z(e)).dispatch(X.DetachPagesFromWindow,{identity:e,pageIds:[t]}),setActivePage:async t=>(await Z(e)).dispatch(X.SetActivePage,{identity:e,pageId:t}),updatePage:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.UpdatePageForWindow,t)},reorderPages:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.ReorderPagesForWindow,t)},_openGlobalContextMenu:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.OpenGlobalContextMenuInternal,t)},replaceToolbarOptions:async t=>{await Z(e);const a=fin.Window.wrapSync(e);await a.updateOptions({workspacePlatform:{toolbarOptions:t}})},replaceWindowStateButtonOptions:async t=>{await Z(e);const a=fin.Window.wrapSync(e);await a.updateOptions({workspacePlatform:{windowStateButtonOptions:t}})},_openViewTabContextMenu:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.OpenViewTabContextMenuInternal,t)},_openPageTabContextMenu:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.OpenPageTabContextMenuInternal,t)},_openSaveModal:async t=>{await Z(e);return(await Ce(e)).dispatch(Ie.OpenSaveModalInternal,t)},_openSaveButtonContextMenu:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.OpenSaveButtonContextMenuInternal,t)}});let Ct=!1;const It=e=>{const t=fin.Platform.wrapSync(e);return{wrapSync:e=>Wt(e),createWindow:async a=>{await Z(e),Ct||(Ct=!0,(async e=>{z(j.Browser,e)})({allowed:!0}));const n=await t.createWindow(a);return Wt(n.identity)},getAllAttachedPages:async()=>(await Z(e)).dispatch(X.GetAllAttachedPages,void 0),getAllWindows:async()=>{await Z(e);return(await fin.Application.wrapSync(e).getChildWindows()).filter((e=>e.identity.name.includes("internal-generated-window-"))).map((e=>Wt(e.identity)))},getUniquePageTitle:async t=>(await Z(e)).dispatch(X.GetUniquePageTitle,t),getLastFocusedWindow:async()=>(await Z(e)).dispatch(X.GetLastFocusedBrowserWindow,void 0)}},At=e=>({createPage:async t=>(await Z(e)).dispatch(X.CreateSavedPageInternal,t),deletePage:async t=>(await Z(e)).dispatch(X.DeleteSavedPageInternal,t),updatePage:async t=>(await Z(e)).dispatch(X.UpdateSavedPageInternal,t),getPage:async t=>(await Z(e)).dispatch(X.GetSavedPage,t),getPages:async t=>(await Z(e)).dispatch(X.GetSavedPages,t),savePage:async t=>(await Z(e)).dispatch(X.SavePage,t),createWorkspace:async t=>(await Y(e)).dispatch(X.CreateSavedWorkspace,t),deleteWorkspace:async t=>(await Y(e)).dispatch(X.DeleteSavedWorkspace,t),updateWorkspace:async t=>(await Y(e)).dispatch(X.UpdateSavedWorkspace,t),getWorkspace:async t=>(await Y(e)).dispatch(X.GetSavedWorkspace,t),getWorkspaces:async t=>(await Y(e)).dispatch(X.GetSavedWorkspaces,t),saveWorkspace:async t=>(await Y(e)).dispatch(X.SaveWorkspace,t)}),Tt=e=>({getThemes:async()=>(await Y(e)).dispatch(X.GetThemes,void 0)}),Mt=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:b,name:W,entityType:C||"unknown"});return(await Y(e)).dispatch(X.LaunchApp,t)},_invokeCustomAction:async(t,a)=>{const n=await Y(e),o={actionId:t,payload:{...a,callerType:a.callerType||h.API}};return n.dispatch(X.InvokeCustomActionInternal,o)},getCurrentWorkspace:async()=>(await Y(e)).dispatch(X.GetCurrentWorkspace,void 0),applyWorkspace:async t=>(await Y(e)).dispatch(X.ApplyWorkspace,t),setActiveWorkspace:async t=>(await Y(e)).dispatch(X.SetActiveWorkspace,t),Theme:Tt(e),Browser:It(e),Storage:At(e)})},Et=()=>Mt(fin.me.identity),Ot=async(e=_)=>{const{workspacePlatform:t}=await D(e).getOptions();return{newPageUrl:t?.newPageUrl,newTabUrl:t?.newTabUrl}},Bt=async(e=_)=>{const t=await Et().Browser.getUniquePageTitle("Untitled Page"),a=await(async(e=_)=>{const{newPageUrl:t}=await Ot(e);if(!t)throw new Error("Trying to create a new page without a newPageUrl set");return he("New Tab",t,e)})(e);return bt(t,a)},Rt={type:vt.Label,label:"Close Window",data:{type:l.CloseWindow}},xt={type:vt.Label,label:"Open Storefront",data:{type:l.OpenStorefront}},Lt={type:vt.Label,label:"Quit Platform",data:{type:l.Quit}},Vt={type:vt.Label,label:"New Window",data:{type:l.NewWindow}},Ut={type:vt.Label,label:"Save Page",data:{type:l.SavePage}},Dt={type:vt.Label,label:"Save Page As...",data:{type:l.SavePageAs}},_t={type:vt.Label,label:"Restore to Last Saved Changes",data:{type:l.RestoreChanges}},Ft={type:vt.Label,label:"Save Workspace",data:{type:l.SaveWorkspace}},Gt={type:vt.Label,label:"Save Workspace As...",data:{type:l.SaveWorkspaceAs}},Nt={type:vt.Label,label:"Rename Workspace",data:{type:l.RenameWorkspace}},$t="Switch Workspace",Ht="Delete Workspace",qt=[Rt,Pt,xt,Pt,Lt],Kt=[Pt,Rt,Pt,Lt],jt=(e,t,a)=>t.map((t=>{const n=t.workspaceId===e.workspaceId;return{label:t.title,type:vt.Checkbox,enabled:!n,checked:n,data:{type:a,workspaceId:t.workspaceId}}})),zt=async e=>{const t=await K(),{newPageUrl:a}=await Ot(e),n=await(async e=>{const t=D(e),{workspacePlatform:a}=await t.getOptions();return a?.disableMultiplePages})(e),o=await(async e=>{const t=D(e),{workspacePlatform:a}=await t.getOptions();return a?.isLocked})(e),i=[];var r;a&&(i.push(Vt),n||i.push((r=!o,{type:vt.Label,label:"New Page",data:{type:l.NewPage},enabled:r}))),i.push(Pt);const s=Et(),c=await s.getCurrentWorkspace(),d=await s.Storage.getWorkspaces(),p=d.find((e=>e.workspaceId===c.workspaceId));return p?i.push(_t):i.push({label:_t.label,enabled:!1}),i.push(Ft,Gt),p?i.push(Nt):i.push({label:Nt.label,enabled:!1}),d.some((e=>e.workspaceId!==c.workspaceId))?i.push({label:$t,submenu:jt(c,d,l.SwitchWorkspace)},{label:Ht,submenu:jt(c,d,l.DeleteWorkspace)}):i.push({label:$t,enabled:!1},{label:Ht,enabled:!1}),i.push(Pt,Ut,Dt),t?[...i,...qt]:[...i,...Kt]};let Qt="Platform";const Jt=async()=>Qt;var Xt,Yt,Zt;!function(e){e.Home="/home/",e.HomeSearch="/home/?deeplink=search",e.HomePagesRename="/home/pages/rename/",e.Dock="/home/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/"}(Xt||(Xt={})),function(e){e.IconOpenFinLogo="/icons/openfinlogo.svg",e.IconFilter="/icons/filter.svg"}(Yt||(Yt={})),function(e){e.Search="search"}(Zt||(Zt={}));const ea={...Yt,...Xt};var ta;!function(e){e.Home="/home",e.Browser="/browser",e.Provider="/provider",e.Storefront="/storefront"}(ta||(ta={}));const aa="/workspace/8.1.5";function na(){return aa.substring(0,aa.length-"".length)}function oa(e){if(!v)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}${na()}`}()+e}const ia={name:V.BrowserMenu,alwaysOnTop:!0,autoShow:!1,cornerRounding:{height:6,width:6},frame:!1,resizable:!1,backgroundColor:"#2f3136",smallWindow:!0,showTaskbarIcon:!1,backgroundThrottling:!0};function ra(e){const t={...ia,...e};return t.url=function(e){if(!v)throw new Error("resolveAbsolutePath can only be used in a window");return e.startsWith("http")?e:`${window.origin}${e}`}(t.url),t}var sa,ca;!function(e){e.Update="update",e.Response="response"}(sa||(sa={})),function(e){e.Canceled="canceled",e.Negative="negative",e.Affirmative="affirmative"}(ca||(ca={}));const da=function(e){const t=new Map;return{emit:fe(t,(t=>S&&fin.InterApplicationBus.publish(e,t))),addListener:me(t,(t=>S&&fin.InterApplicationBus.subscribe({uuid:fin.me.uuid},e,t))),removeListener:ve(t),once:Se(t)}}("window.menu"),pa=e=>da.emit(sa.Response,e),la=le((()=>L().getChildWindows()),500);const wa=new Map;async function ua({options:e,parameters:t}){const a=ra(e),{name:n}=a;let o=await async function(e){return(await la()).find((t=>t.identity.name===e))}(n);return o||(o=await async function(e){const t=ra(e);if(!wa.has(t.name)){const e=(async()=>{const e=await fin.Platform.getCurrentSync().createWindow(t);return e.once("closed",(()=>{wa.delete(t.name)})),e})();wa.set(t.name,e)}return wa.get(t.name)}(a)),await async function(e,t){const a=ra(e),{top:n,left:o,defaultWidth:i,defaultHeight:r}=a,s={top:n,left:o,width:i,height:r},c={parentName:fin.Window.getCurrentSync().identity.name};for(const[e,a]of Object.entries(c))t.set(e,a);const d=t.toString(),p=`${a.url}?${d}`;da.emit(sa.Update,a.name,s,p),await pa({name:a.name,data:ca.Canceled})}(e,t||new URLSearchParams),o}const ga=async(e,t)=>{const a=t?D(t):F();await(async(e=fin.me.identity)=>{const t=D(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()})(a.identity);const n=await a.getBounds(),o={left:((i=n).left+i.right)/2,top:(i.top+i.bottom)/2};var i;const{defaultHeight:r,defaultWidth:s}=e;return((e,t)=>{const{height:a,width:n}=t,o=n/2,i=a/2;return{left:e.left-o,top:e.top-i}})(o,{height:r,width:s})},ya=async({options:e,content:t})=>{const a=new URLSearchParams({...t});return await ua({options:e,parameters:a}),new Promise((t=>{da.once(sa.Response,(a=>{a.name===e.name&&t(a)}))}))},ha=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Switch Workspace",windowOptions:{url:A+ea.ResponseModal,name:V.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),{top:o,left:i}=await ga(a,e),r={...a,top:o,left:i};return(await ya({options:r,content:n})).data===ca.Affirmative},fa=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Delete Workspace",windowOptions:{url:A+ea.ResponseModal,name:V.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),{top:o,left:i}=await ga(a,e),r={...a,top:o,left:i};return(await ya({options:r,content:n})).data===ca.Affirmative},ma=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Platform Quit",windowOptions:{url:A+ea.ResponseModal,name:V.BrowserMenu,defaultHeight:134,defaultWidth:474,modalParentIdentity:e},content:{title:`Are you sure you want to quit ${"Platform"===t?"the platform":t}?`,body:"Any unsaved changes to the workspace will be discarded",affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(e,t),{top:o,left:i}=await ga(a,e),r={...a,top:o,left:i};return(await ya({options:r,content:n})).data===ca.Affirmative},Sa=async e=>{const{windowOptions:t,content:a}=await(async e=>({title:"Restore Changes",windowOptions:{url:A+ea.ResponseModal,name:V.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),{top:n,left:o}=await ga(t,e),i={...t,top:n,left:o};return(await ya({options:i,content:a})).data===ca.Affirmative};var va;!function(e){e.ERROR="error",e.SUCCESS="success",e.INFO="info"}(va||(va={}));const Pa={alwaysOnTop:!0,autoShow:!1,cornerRounding:{height:5,width:5},frame:!1,resizable:!1,showTaskbarIcon:!1};var ka;!function(e){e.Locked="LockClosedIcon",e.Unlocked="LockOpen1Icon"}(ka||(ka={}));const ba=function(e=Pa){const t=new Map;return async(a,n,o,i)=>{if(t.has(a)){const{currentUrl:e,currentName:o}=t.get(a);if(e===n)return;const i=fin.Window.wrapSync({uuid:fin.me.uuid,name:o});await i.close()}const r=`${V.HomeInternal}-${Date.now()}${Math.random()}`;t.set(a,{currentUrl:n,currentName:r});const s=await fin.Platform.getCurrentSync().createWindow({...e,name:r,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 ${i} indicator: ${o}`),s.once("closed",(()=>{t.delete(a)}))}}();async function Wa(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 i=`${oa(ea.BrowserIndicator)}?${o.toString()}`;return ba("browser"+a,i,t,e)}function Ca(e,t,a){return Wa(va.SUCCESS,e,t,a)}const Ia=async e=>{const t=Et(),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),Ca("Workspace Saved",e.name);else{t.Browser.wrapSync(e)._openSaveModal({menuType:f.SAVE_WORKSPACE})}},Aa=e=>{Et().Browser.wrapSync(e)._openSaveModal({menuType:f.SAVE_WORKSPACE_AS})},Ta=async(e,t)=>{const a=Et().Browser.wrapSync(e),n=await Et().Storage.getPages(),o=(await a.getPages()).find((e=>t?e.pageId===t:e.isActive));if(n.some((e=>o.pageId===e.pageId)))try{await Et().Storage.savePage((c=o,{...c,hasUnsavedChanges:void 0,parentIdentity:void 0,isActive:void 0})),await a.updatePage({pageId:o.pageId,page:{hasUnsavedChanges:!1}}),Ca("Page saved",o.parentIdentity.name)}catch{i="Page failed to save",r=o.parentIdentity.name,Wa(va.ERROR,i,r,s)}else a._openSaveModal({id:o.pageId,menuType:f.SAVE_PAGE});var i,r,s,c},Ma=async(e,t)=>{const a=Et().Browser.wrapSync(e),n=(await a.getPages()).find((e=>t?e.pageId===t:e.isActive));a._openSaveModal({id:n.pageId,menuType:f.SAVE_PAGE_AS})},Ea=async(e,t)=>{if(!e)return;const a=t.identity,n=await Ce(a),o=Et().Browser.wrapSync(t.identity);switch(e.type){case l.NewWindow:const{newPageUrl:t}=await Ot(a);if(!t)throw new Error("Trying to create a new empty window without a newPageUrl set");Et().createView({target:void 0,url:t});break;case l.NewPage:await(async e=>{const t=Et().Browser.wrapSync(e),a=await Bt(e);await t.addPage(a),await t.setActivePage(a.pageId)})(a);break;case l.CloseWindow:n.dispatch(Ie.CloseBrowserWindow);break;case l.SaveWorkspace:await Ia(a);break;case l.SavePage:await Ta(a);break;case l.SavePageAs:await Ma(a);break;case l.SaveWorkspaceAs:await Aa(a);break;case l.RenameWorkspace:o._openSaveModal({menuType:f.RENAME_WORKSPACE});break;case l.SwitchWorkspace:await(async(e,t)=>{const a=Et(),n=(await a.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId));n&&await ha(e,n.title)&&(await a.applyWorkspace(n),Ca("Workspace Switched!",null))})(a,e);break;case l.DeleteWorkspace:await(async(e,t)=>{const a=Et(),n=(await a.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId));n&&await fa(e,n.title)&&(await a.Storage.deleteWorkspace(t.workspaceId),Ca("Workspace Deleted!",e.name))})(a,e);break;case l.Quit:const i=await Jt();await ma(a,i)&&fin.Platform.getCurrentSync().quit();break;case l.OpenStorefront:(async()=>{await K()&&N(G)})();break;case l.RestoreChanges:const r=await async function(){const e=Et(),t=await e.getCurrentWorkspace();return(await e.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId))}();await Sa(a)&&await ne(r);break;case l.Custom:if(e.action){const t={callerType:h.GlobalContextMenu,windowIdentity:a,customData:e.action.customData};Et()._invokeCustomAction(e.action.id,t)}}},Oa=async(e,t)=>{const a=await Ce(t.identity),n=Et();switch(e.type){case w.Save:await Ta(t.identity,t.pageId);break;case w.SaveAs:await Ma(t.identity,t.pageId);break;case w.Rename:await n.Browser.wrapSync(t.identity)._openSaveModal({menuType:f.RENAME_PAGE,id:t.pageId});break;case w.Duplicate:a.dispatch(Ie.DuplicatePage,t.pageId);break;case w.Close:a.dispatch(Ie.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};Et()._invokeCustomAction(e.action.id,a)}}},Ba=async(e,t)=>{if(e?.type){const a=t.identity;switch(e.type){case y.SavePage:await Ta(a);break;case y.SaveWorkspace:await Ia(a);break;case y.SavePageAs:await Ma(a);break;case y.SaveWorkspaceAs:await Aa(a);break;case y.Custom:if(e.action){const a={callerType:h.SaveButtonContextMenu,windowIdentity:t.identity,pageId:t.pageId,customData:e.action.customData};Et()._invokeCustomAction(e.action.id,a)}}}},Ra=async(e,t)=>{const a=t.selectedViews[0],n=fin.View.wrapSync(a),o=await(async e=>{const{newTabUrl:t}=await Ot(e);if(!t)throw new Error("Trying to create a new page without a newTabUrl set");return{...he("New View",t),url:t,target:e}})(e);await Et().createView(o,e,n.identity)},xa=async(e,t)=>{const a=await(e=>Promise.all(e.map((async e=>fin.View.wrapSync(e).getInfo()))))(t),{newPageUrl:n,newTabUrl:o}=await Ot(e);a.forEach((async e=>{e.url!==n&&e.url!==o&&await fin.System.openUrlWithBrowser(e.url)}))},La=(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 Et().createView(n,e,t.identity)})(e,a)}))},Va=async(e,t)=>{if(!e)return;const a=t.identity;switch(e.type){case u.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 Et().Browser.wrapSync(e).getPages()).find((e=>e.isActive));(await Ce(e)).dispatch(Ie.ClosePage,t?.pageId)}})(a,t.selectedViews);break;case u.OpenWithDefaultBrowser:await xa(a,t.selectedViews);break;case u.ReloadViews:t.selectedViews.forEach((async e=>{const t=fin.View.wrapSync(e);await t.reload()}));break;case u.NewView:await Ra(a,t);break;case u.DuplicateViews:La(a,t.selectedViews);break;case u.AddToChannel:(async(e,t,a)=>{const n={newChannelId:t,selectedViews:a};(await Ce(e)).dispatch(Ie.AddToChannel,n)})(a,e.option,t.selectedViews);break;case u.RemoveFromChannel:(async(e,t)=>{(await Ce(e)).dispatch(Ie.RemoveFromChannel,t)})(a,t.selectedViews);break;case u.Custom:if(e.action){const n={callerType:h.ViewTabContextMenu,windowIdentity:a,selectedViews:t.selectedViews,customData:e.action.customData};Et()._invokeCustomAction(e.action.id,n)}}};async function Ua(e,t){const a=await zt(e.identity),n=await Jt();a.find((e=>e.data?.type===l.Quit)).label=`Quit ${n}`;const o={...e,template:a,callback:Ea};await this.openGlobalContextMenu(o,t)}const Da=async(e,t)=>{const{x:a,y:n,identity:o,template:i,callback:r}=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:i},fin.Window.wrapSync(o));r(s,e)};async function _a(e,t){const a={...e,callback:Va};await this.openViewTabContextMenu(a,t)}async function Fa(e,t){const a=await(async(e,t)=>{const a=await Et().Storage.getPage(e),n=(await Oe()).find((t=>t.pageId===e)),{workspacePlatform:o}=await D(t).getOptions(),i=!(o.isLocked||o.preventPageClose||n.closeButton?.disabled||n.closeButton?.hidden);return[{type:vt.Label,label:"Save Page",data:{type:w.Save}},{type:vt.Label,label:"Save Page As",data:{type:w.SaveAs}},Pt,{type:vt.Label,label:"Rename Page",data:{type:w.Rename},enabled:!!a},{type:vt.Label,label:"Duplicate Page",data:{type:w.Duplicate},enabled:!o.isLocked},Pt,{type:vt.Label,label:"Close Page",data:{type:w.Close},enabled:i}]})(e.pageId,e.identity),n={...e,template:a,callback:Oa};await this.openPageTabContextMenu(n,t)}async function Ga(e,t){const a={...e,template:await(async()=>[{type:vt.Label,label:"Save Workspace",data:{type:y.SaveWorkspace}},{type:vt.Label,label:"Save Workspace As",data:{type:y.SaveWorkspaceAs}},{type:vt.Separator,data:void 0},{type:vt.Label,label:"Save Page",data:{type:y.SavePage}},{type:vt.Label,label:"Save Page As",data:{type:y.SavePageAs}}])(),callback:Ba};await this.openSaveButtonContextMenu(a,t)}const Na=P&&it("openfin-workspace-platform-workspaces","workspaces");async function $a(e){const t=await ct(e,Na);return t?(t.workspaceId=e.toString(),t.title=t.title||t.workspaceId,t):null}async function Ha(e){const t=await wt(Na),a=await Promise.all(t.map((e=>$a(e.toString()))));return e?a.filter((t=>ut(t.title,e))):a}async function qa({workspace:e}){await dt(e.workspaceId,e,Na)}async function Ka(e){await pt(e,Na)}async function ja({workspaceId:e,workspace:t}){if(void 0===await $a(e))throw new Error("workspace not found");await qa({workspace:t}),e!==t.workspaceId&&await Ka(e)}async function za({app:e,target:t}){const a=fin.Platform.getCurrentSync();switch(e.manifestType){case r.Snapshot:return a.applySnapshot(e.manifest);case r.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 r.External:return fin.System.launchExternalProcess({path:e.manifest,uuid:e.appId});default:return fin.Application.startFromManifest(e.manifest)}}const Qa=e=>e&&"object"==typeof e&&!Array.isArray(e);function Ja(e,...t){if(!t.length)return e;const a=t.shift();return Qa(e)&&Qa(a)&&Object.entries(a).forEach((([t,a])=>{if(Qa(a))return e[t]||(e[t]={}),Ja(e[t],a);e[t]=a})),Ja(e,...t)}const Xa=A+ea.Browser;function Ya(e,t){const a=Ja({},t,e);return a.detachOnClose=!0,a}async function Za(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 en=e=>{const t=e.name===V.Home,a=e.name?.startsWith(V.HomeInternal),n=e.name?.startsWith(V.BrowserMenu);return!t&&!a&&!n},tn=e=>"workspacePlatform"in e?e:(({workstacks:e,pages:t,...a})=>({...a,workspacePlatform:{pages:t||e||null}}))(e),an={contextMenuSettings:{reload:!1},backgroundThrottling:!0,url:Xa,contextMenu:!0,closeOnLastViewRemoved:!1,experimental:{showFavicons:!0,defaultFaviconUrl:`${A}/icons/defaultFavicon.svg`},permissions:{System:{openUrlWithBrowser:{enabled:!0,protocols:["mailto"]}}}},nn={dimensions:{borderWidth:3,headerHeight:30}},on=async(e,t)=>{const a=await Et().Storage.getPages(),n=await Et().Browser.getAllAttachedPages();return e.map((e=>{let o=e.title;void 0===e.pageId&&(e.pageId=crypto.randomUUID());const i=a.find((e=>e.title===o));return(i&&i.pageId!==e.pageId||n.find((e=>e.title===o)))&&(o=ae(e.title,[...a,...n].map((e=>e.title)))),n.push(e),{...t,...e,title:o,layout:(r=e.layout,ue({...r},ge))};var r}))};const rn=e=>{const t=fin.Window.wrapSync(e);return Promise.all([t.bringToFront(),t.restore(),t.focus()])};async function sn(e){const t=await H();return await Promise.all(t.map((({identity:e})=>(async e=>(await Ce(e)).dispatch(Ae.UpdatePagesWindowOptions))(e)))),e?e():nt()}let cn=[];const dn=()=>cn;const pn=(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=Ge,this.getAllAttachedPages=Oe,this.getPagesForWindow=$e,this.getPageForWindow=He,this.setActivePage=Ne,this.launchApp=za,this.savePage=De,this.saveWorkspace=se,this.createSavedPageInternal=Le,this.updateSavedPageInternal=Ue,this.deleteSavedPageInternal=Ve,this.reorderPagesForWindow=qe,this.getUniquePageTitle=Ke,this.updatePageForWindow=Fe,this.getLastFocusedBrowserWindow=de,this.getThemes=dn,this.invokeCustomActionInternal=Ye,this.getCurrentWorkspace=re,this.applyWorkspace=ne,this.setActiveWorkspace=oe,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 sn((async()=>nt(await super.getSnapshot(void 0,fin.me.identity)))):await nt(await super.getSnapshot(void 0,fin.me.identity));return{...e,windows:e.windows.filter(en).map(at)}}async applySnapshot({snapshot:e,options:t}){const a=e=>super.applySnapshot({snapshot:e,options:{...t,closeExistingWindows:!1}});let o=e;if("string"==typeof o&&(o=await super.fetchManifest({manifestUrl:o},fin.me.identity)),!n&&function(e){for(const t of e.windows)if(t.workspacePlatform?.pages)return!0;return!1}(o))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 H();await Promise.all(e.map((e=>e.close(!0).catch((()=>{})))))}(),n?async function(e,t){const a=await Oe(),n=e.snapshotDetails?.monitorInfo||await fin.System.getMonitorInfo(),o=(e.windows||[]).filter((({layout:e})=>!!e)),i=new Map;a.forEach((e=>i.set(e.pageId,e)));const r=[],s=o.map((async e=>{const t=tn(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 Ke();a.push(await bt(e,t.layout))}let o;n.forEach((e=>{const t=i.get(e.pageId);t?o=t:a.push(e)})),o&&await Promise.all([Ne({identity:o.parentIdentity,pageId:o.pageId}),rn(o.parentIdentity)]),a.length&&r.push({...t,workspacePlatform:{...t.workspacePlatform,pages:a}})}));if(await Promise.all(s),!r.length)return;const c=fin.Platform.getCurrentSync();return(t||c.applySnapshot.bind(c))({...e,snapshotDetails:{...e.snapshotDetails,monitorInfo:n},windows: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=tn(t);if(n){const t=this.getThemes();o=await(async(e,t,a)=>{let n=e;n.workspacePlatform?.pages&&(n.workspacePlatform.pages=await on(n.workspacePlatform.pages,t?.defaultPageOptions));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=Ja({},t.defaultWindowOptions,n,an),n.layout=Ja(n.layout,nn),(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;e&&(n.layout.settings||(n.layout.settings={}),n.layout.settings.newTabButton={url:e}),n=(e=>{const t=e;return t.workspacePlatform||(t.workspacePlatform={}),t.workspacePlatform._internalDeferShowEnabled=!0,t.workspacePlatform._internalAutoShow=t.workspacePlatform?._internalAutoShow||void 0===t.autoShow||t.autoShow,t.autoShow=!1,t})(n)}return 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 i=(e,t)=>super.createWindow(e,t);return(n?(e=>async(t,a)=>{const n=await e(t,a);return t?.workspacePlatform?._internalDeferShowEnabled?(await n.addListener(U.ShowRequested,(()=>{})),n):n})(i):i)(o,a)}async createView(t,a){return t.opts=Ya(t.opts,e?.defaultViewOptions),t.opts=await Za(t.opts,this.fetchManifest,a),super.createView(t,a)}async replaceView(t,a){return t.opts.newView=await Ya(t.opts.newView,e?.defaultViewOptions),t.opts.newView=await Za(t.opts.newView,this.fetchManifest,a),super.replaceView(t,a)}async replaceLayout(e,t){return 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 yt.apply(this,e)}async getSavedPages(...e){return ht.apply(this,e)}async createSavedPage(...e){return ft.apply(this,e)}async deleteSavedPage(...e){return mt.apply(this,e)}async updateSavedPage(...e){return St.apply(this,e)}async getSavedWorkspace(...e){return $a.apply(this,e)}async getSavedWorkspaces(...e){return Ha.apply(this,e)}async createSavedWorkspace(...e){return qa.apply(this,e)}async deleteSavedWorkspace(...e){return Ka.apply(this,e)}async updateSavedWorkspace(...e){return ja.apply(this,e)}async attachPagesToWindow(t){t.pages=await on(t.pages,e?.defaultPageOptions),await _e(t)}async openGlobalContextMenuInternal(...e){return Ua.apply(this,e)}async openGlobalContextMenu(...e){return Da.apply(this,e)}async openViewTabContextMenuInternal(...e){return _a.apply(this,e)}async openViewTabContextMenu(...e){return Da.apply(this,e)}async openPageTabContextMenuInternal(...e){return Fa.apply(this,e)}async openPageTabContextMenu(...e){return Da.apply(this,e)}async openSaveButtonContextMenu(...e){return Da.apply(this,e)}async openSaveButtonContextMenuInternal(...e){return Ga.apply(this,e)}}return"function"==typeof t?t(o):new o};async function ln(){!function(){const e=L();e.addListener(O.WindowOptionsChanged,Qe),e.addListener(O.WindowClosed,Je),e.addListener(O.WindowCreated,Je)}(),async function(){const e=fin.Application.getCurrentSync();await e.addListener("window-focused",pe)}();oe(await ie())}let wn;function un({overrideCallback:e,interopOverride:t,browser:a}){if(!S)throw new Error("Cannot be used outside an OpenFin env.");if(!wn){fin.Platform.getCurrentSync().once("platform-api-ready",(()=>ln())),a?.title&&(n=a.title,Qt=n),wn=fin.Platform.init({overrideCallback:pn(a,e||a?.overrideCallback),interopOverride:t||a?.interopOverride}),(async e=>{z(j.Platform,e)})({allowed:!0})}var n;return wn}const gn=async({theme:e,customActions:t,...a})=>{const n=T.split(".").map((e=>parseInt(e))),o=await(async e=>new Promise((async t=>{const a=(await fin.System.getVersion()).split(".").map((e=>parseInt(e)));t(e.every(((t,n)=>!(n<3)||a[n]===e[n])))})))(n);var i;if(e&&((i=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=i,(async e=>{z(j.Theming,e)})({allowed:!0})),t&&(Xe=t),o)return un(a);throw new Error(`Runtime version is not supported. ${n[0]}.${n[1]}.${n[2]}.* is required`)};module.exports=d})();
1
+ (()=>{"use strict";var e,t,a,n,o,i,r,s,c={d:(e,t)=>{for(var a in t)c.o(t,a)&&!c.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},d={};c.r(d),c.d(d,{AppManifestType:()=>r,BrowserButtonType:()=>g,CustomActionCallerType:()=>h,GlobalContextMenuOptionType:()=>l,PageTabContextMenuOptionType:()=>w,SaveButtonContextMenuOptionType:()=>y,SaveModalType:()=>f,ViewTabMenuOptionType:()=>u,getCurrentSync:()=>Et,init:()=>gn,wrapSync:()=>Mt}),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"}(a||(a={})),function(e){e.Suggestion="suggestion"}(n||(n={})),function(e){e.Contact="Contact",e.Custom="Custom",e.List="List",e.Plain="Plain",e.SimpleText="SimpleText",e.Loading="Loading",e.Error="Error"}(o||(o={})),function(e){e.MultiSelect="MultiSelect"}(i||(i={})),function(e){e.Snapshot="snapshot",e.Manifest="manifest",e.View="view",e.External="external"}(r||(r={})),function(e){e.LandingPage="landingPage",e.AppGrid="appGrid"}(s||(s={}));var p,l,w,u,g,y,h,f,m;!function(e){e.Primary="primary",e.Secondary="secondary",e.TextOnly="textOnly"}(p||(p={})),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"}(l||(l={})),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"}(u||(u={})),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.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"}(f||(f={})),function(e){e.Local="local",e.Dev="dev",e.Staging="staging",e.Prod="prod"}(m||(m={}));const S="undefined"!=typeof window&&"undefined"!=typeof fin,v=("undefined"==typeof process||process.env?.JEST_WORKER_ID,"undefined"!=typeof window),P=v&&"undefined"!=typeof indexedDB,k=v?window.origin:m.Local,b=S&&fin.me.uuid,W=S&&fin.me.name,C=S&&fin.me.entityType,I=(m.Local,m.Dev,m.Staging,m.Prod,e=>e.startsWith("http://")||e.startsWith("https://")?e:k+e),A=(I("https://cdn.openfin.co/workspace/8.1.6"),I("https://cdn.openfin.co/workspace/8.1.6")),T=("undefined"!=typeof WORKSPACE_DOCS_PLATFORM_URL&&I(WORKSPACE_DOCS_PLATFORM_URL),"undefined"!=typeof WORKSPACE_DOCS_CLIENT_URL&&I(WORKSPACE_DOCS_CLIENT_URL),"26.102.70.14"),M="8.1.6";var E,O,B;!function(e){e.Workspace="openfin-browser"}(E||(E={})),function(e){e.RunRequested="run-requested",e.WindowOptionsChanged="window-options-changed",e.WindowClosed="window-closed",e.WindowCreated="window-created"}(O||(O={})),function(e){e.FinProtocol="fin-protocol"}(B||(B={}));const R={uuid:b,name:b},x=(E.Workspace,E.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)}),L=()=>x(R);var V,U;!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"}(V||(V={})),function(e){e.Shown="shown",e.BoundsChanged="bounds-changed",e.LayoutReady="layout-ready",e.EndUserBoundsChanging="end-user-bounds-changing",e.Blurred="blurred",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 D(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 _={name:W,uuid:b};function F(){return D(_)}V.Home,E.Workspace,V.Dock,E.Workspace;const G={name:V.Storefront,uuid:E.Workspace};E.Workspace,E.Workspace;async function N(e){const t=D(e);"minimized"===await t.getState()&&await t.restore(),await t.show(),await t.bringToFront(),await t.focus()}const $=e=>e.startsWith(V.BrowserWindow);async function H(){return(await fin.Application.getCurrentSync().getChildWindows()).filter((e=>$(e.identity.name)))}const q=e=>D(e).getOptions().then((()=>!0)).catch((()=>!1)),K=()=>q(G);var j;!function(e){e.Browser="Browser",e.Home="Home",e.Notification="Notification",e.Storefront="Storefront",e.Platform="Platform",e.Theming="Theming"}(j||(j={}));const z=async(e,t)=>{const a={apiVersion:t.apiVersion||M,componentName:e,componentVersion:M,...t};fin.System.registerUsage({type:"workspace-licensing",data:a})};var Q;!function(e){e.CurrentWorkspaceId="currentWorkspaceId",e.LastFocusedBrowserWindow="lastFocusedBrowserWindow",e.MachineName="machineName",e.NewTabPageLayout="NewTabPageLayout",e.NewTabPageSort="NewTabPageSort"}(Q||(Q={}));const J=Q;var X;!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.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"}(X||(X={}));const Y=async e=>{const t=fin.Platform.wrapSync(e),a=await t.getClient(),n="Target is not a Workspace Platform. Target must call WorkspacePlatform.init";try{const e=await a.dispatch("isWorkspacePlatform");if(!0===e||!0===e.isWorkspacePlatform)return a;throw new Error(n)}catch(e){throw new Error(n)}},Z=async e=>{const t=fin.Platform.wrapSync(e),a=await t.getClient(),n="Target is not a Workspace Platform. Target must call WorkspacePlatform.init";let o;try{o=await a.dispatch("isWorkspacePlatform")}catch(e){throw new Error(n)}if(!0!==o?.isWorkspacePlatform)throw new Error(n);if(!0!==o?.isBrowserInitialized)throw new Error("Target is not a Browser-enabled Workspace Platform.");return a},ee=(e,t)=>!t.find((t=>t===e)),te=(e,t)=>`${e} (${t})`,ae=(e,t)=>{let a=1;const n=e.replace(/ \(.+\)$/,"");for(;!ee(te(n,a),t);)a+=1;return te(n,a)};async function ne(e){try{const t=Et();await t.applySnapshot(e.snapshot,{closeExistingWindows:!0}),oe(e)}catch(e){}}function oe(e){if("undefined"!=typeof localStorage)try{const t=JSON.stringify(e);localStorage.setItem(J.CurrentWorkspaceId,t)}catch(e){}}async function ie(){if("undefined"==typeof localStorage)return;const e=Et(),t=await e.getSnapshot();return{workspaceId:crypto.randomUUID(),title:await ce(),metadata:{APIVersion:M},snapshot:t}}async function re(){if("undefined"==typeof localStorage)return;const e=localStorage.getItem(J.CurrentWorkspaceId);if(!e)return ie();const t=JSON.parse(e),a=Et(),n=await a.getSnapshot();return{...t,metadata:{APIVersion:M},snapshot:n}}const se=async e=>await(async e=>(await Y(_)).dispatch(X.GetSavedWorkspace,e))(e.workspaceId)?(async e=>(await Y(_)).dispatch(X.UpdateSavedWorkspace,e))({workspaceId:e.workspaceId,workspace:e}):(async e=>(await Y(_)).dispatch(X.CreateSavedWorkspace,e))({workspace:e});async function ce(e="Untitled Workspace"){const t=(await(async()=>(await Y(_)).dispatch(X.GetSavedWorkspaces,void 0))()).map((({title:e})=>e));return t.find((t=>t===e))?ae(e,t):e}async function de(){if("undefined"!=typeof localStorage)try{const e=localStorage.getItem(J.LastFocusedBrowserWindow),t=JSON.parse(e);if(await q(t))return t}catch(e){throw new Error(`failed to get last focused browser window: ${e}`)}}function pe(e=fin.me.identity){$(e.name)&&function(e){if("undefined"!=typeof localStorage)try{const t=JSON.stringify(e);localStorage.setItem(J.LastFocusedBrowserWindow,t)}catch(e){}}(e)}const le=(e,t=0)=>{let a,n,o=!1;const i=async n=>{const r=await e(...n);if(o){await new Promise((e=>setTimeout(e,t)));const e=a;return a=void 0,o=!1,i(e)}return r};return(...e)=>(n?(o=!0,a=e):n=i(e).then((e=>(n=void 0,e))),n)};var we;!function(e){e.TabCreated="tab-created",e.ContainerCreated="container-created",e.ContainerResized="container-resized"}(we||(we={}));const ue=(e,t)=>e.content?{...e,content:e.content.map((e=>ue(e,t)))}:{...e,componentState:t(e.componentState)},ge=e=>({...e,name:e.name?e.name:crypto.randomUUID()}),ye=e=>{const t=[];return(e&&Array.isArray(e)?e:[]).forEach((e=>{if("component"===e.type)return t.push(e.componentState);const a=ye(e.content);t.push(...a)})),t},he=async(e,t,a=_)=>{let n;if($(a.name)){n=(await D(a).getOptions()).layout||{settings:{}}}return{...n,content:[{type:"stack",content:[{type:"component",componentName:"view",componentState:{title:e,url:t}}]}]}};new Map;function fe(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 Se(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 ve(e){return(t,a)=>{e.has(t)&&e.get(t).delete(a)}}const Pe=v&&"complete"!==document.readyState&&new Promise((e=>document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&e()}))));function ke(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 Pe;const a=await fin.InterApplicationBus.Channel.connect(e);return a.onDisconnection((async()=>{t=void 0})),a})().then((e=>e)).catch((a=>{throw t=void 0,new Error(`failed to connect to channel provider ${e}: ${a}`)}))),t}}const be=e=>`__browser_window__-${e.uuid}-${e.name}`,We=new Map,Ce=e=>{const t=be(e);return We.has(t)||We.set(t,ke(t)),We.get(t)()};var Ie,Ae,Te;!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"}(Ie||(Ie={})),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"}(Ae||(Ae={})),function(e){e.AttachedPagesToWindow="attached-pages-to-window",e.DetachedPagesFromWindow="detached-pages-from-window"}(Te||(Te={}));new Map;const Me=async e=>{const t=await Ce(e);return await t.dispatch(Ae.GetPages)},Ee=async e=>(await Ce(e.identity)).dispatch(Ae.UpdatePageForWindow,e),Oe=async()=>{const e=await H();return(await Promise.all(e.map((async({identity:e})=>Me(e))))).reduce(((e,t)=>e.concat(t)),[])},Be=async()=>(await Y(_)).dispatch(X.GetSavedPages,void 0),Re=async e=>(await Y(_)).dispatch(X.GetSavedPage,e),xe=async(e,t)=>{const a=await(async e=>(await Oe()).find((t=>t.pageId===e)))(e);return!a||a.title===t.title&&e===t.pageId||await Ee({identity:a.parentIdentity,pageId:e,page:{pageId:t.pageId,title:t.title}}),a},Le=async({page:e})=>{await xe(e.pageId,e),await(async e=>(await Y(_)).dispatch(X.CreateSavedPage,e))({page:e})},Ve=async e=>{await Re(e)&&await(async e=>(await Y(_)).dispatch(X.DeleteSavedPage,e))(e)},Ue=async({pageId:e,page:t})=>{await xe(e,t);return await(async e=>(await Y(_)).dispatch(X.UpdateSavedPage,e))({pageId:e,page:t})},De=async e=>await Re(e.pageId)?Ue({pageId:e.pageId,page:e}):Le({page:e}),_e=async e=>{await(async e=>(await Ce(e.identity)).dispatch(Ae.AttachPagesToWindow,e))(e)},Fe=async e=>{await Ee(e)},Ge=async e=>{await(async e=>(await Ce(e.identity)).dispatch(Ae.DetachPagesFromWindow,e))(e)},Ne=async e=>{await(async e=>(await Ce(e.identity)).dispatch(Ae.SetActivePageForWindow,e))(e)},$e=e=>Me(e),He=async({identity:e,pageId:t})=>(await $e(e)).find((e=>e.pageId===t)),qe=async e=>{await(async e=>(await Ce(e.identity)).dispatch(Ae.ReorderPagesForWindow,e))(e)};async function Ke(e="Untitled Page"){const[t,a]=await Promise.all([Be(),Oe()]),n=[...t,...a].map((({title:e})=>e));return n.find((t=>t===e))?ae(e,n):e}const je=new Map,ze=e=>`${e.uuid}-${e.name}`;const Qe=le((async function(){const e=await Oe(),t=new Set;e.forEach((e=>{ye(e.layout.content).forEach((e=>{if(e.name){const a=ze(e);t.add(a)}}))}));const a=F();(await a.getCurrentViews()).forEach((({identity:e})=>{const a=ze(e);if(t.has(a)||je.has(a))return;const n=setTimeout((()=>{fin.View.wrapSync(e).destroy(),je.delete(a)}),5e3);je.set(a,n)})),je.forEach(((e,a)=>{t.has(a)&&(clearTimeout(e),je.delete(a))}))}),2500),Je=({name:e})=>{$(e)&&Qe().catch((()=>{}))};let Xe={};const Ye=({actionId:e,payload:t})=>{if("function"!=typeof Xe[e])throw new Error(`Cannot find a configured function for the action '${e}'`);return Xe[e](t)};function Ze(){return localStorage.getItem(J.MachineName)}let et;async function tt(){return et||(et=await fin.System.getMachineId()),et}const at=e=>{if(e.layout&&Array.isArray(e.workspacePlatform?.pages)){const t=e.workspacePlatform.pages.find((e=>e.isActive));t&&(t.layout=e.layout)}return e};async function nt(e){const t=e||await fin.Platform.getCurrentSync().getSnapshot();if(t.snapshotDetails?.machineId)return t;const a=Ze();return{...t,snapshotDetails:{...e.snapshotDetails,machineId:await tt(),machineName:a}}}function ot(e){return new Promise(((t,a)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>a(e.error)}))}function it(e,t){const a=indexedDB.open(e);a.onupgradeneeded=()=>a.result.createObjectStore(t);const n=ot(a);return(e,a)=>n.then((n=>a(n.transaction(t,e).objectStore(t))))}let rt;function st(){return rt||(rt=it("keyval-store","keyval")),rt}function ct(e,t=st()){return t("readonly",(t=>ot(t.get(e))))}function dt(e,t,a=st()){return a("readwrite",(a=>(a.put(t,e),ot(a.transaction))))}function pt(e,t=st()){return t("readwrite",(t=>(t.delete(e),ot(t.transaction))))}function lt(e,t){return e("readonly",(e=>(e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},ot(e.transaction))))}function wt(e=st()){const t=[];return lt(e,(e=>t.push(e.key))).then((()=>t))}const ut=(e,t="")=>e.toLowerCase().includes(t.toLowerCase()),gt=P&&it("openfin-home-pages","pages");async function yt(e){const t=await ct(e,gt);return t?(t.pageId=e.toString(),t.title=t.title||t.pageId,t):null}async function ht(e){const t=await wt(gt),a=await Promise.all(t.map((e=>yt(e.toString()))));return e?a.filter((t=>ut(t.title,e))):a}async function ft({page:e}){await dt(e.pageId,e,gt)}async function mt(e){await pt(e,gt)}async function St({pageId:e,page:t}){if(void 0===await yt(e))throw new Error("page not found");await ft({page:t}),e!==t.pageId&&await mt(e)}var vt;!function(e){e.Label="normal",e.Separator="separator",e.Submenu="submenu",e.Checkbox="checkbox"}(vt||(vt={}));const Pt={type:vt.Separator,data:void 0};var kt;!function(e){e.RegisterStorefrontProvider="register-storefront-provider",e.DeregisterStorefrontProvider="deregister-storefront-provider",e.GetStorefrontProviders="get-storefront-providers",e.HideStorefront="hide-storefront",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.ShowStorefront="show-storefront",e.CreateStorefrontWindow="create-storefront-window",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"}(kt||(kt={}));ke("__of_workspace_protocol__");const bt=async(e,t)=>{const a=await(async e=>({...e,layoutDetails:{machineId:await tt(),machineName:Ze()}}))(t);return{pageId:crypto.randomUUID(),title:e,layout:a,isReadOnly:!1,hasUnsavedChanges:!0}},Wt=e=>({identity:e,openfinWindow:fin.Window.wrapSync(e),getPages:async()=>(await Z(e)).dispatch(X.GetPagesForWindow,e),getPage:async t=>(await Z(e)).dispatch(X.GetPageForWindow,{identity:e,pageId:t}),addPage:async t=>{const a=await Z(e);t?.title||(t.title=await a.dispatch(X.GetUniquePageTitle,void 0));const n=(await a.dispatch(X.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(X.AttachPagesToWindow,o)},removePage:async t=>(await Z(e)).dispatch(X.DetachPagesFromWindow,{identity:e,pageIds:[t]}),setActivePage:async t=>(await Z(e)).dispatch(X.SetActivePage,{identity:e,pageId:t}),updatePage:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.UpdatePageForWindow,t)},reorderPages:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.ReorderPagesForWindow,t)},_openGlobalContextMenu:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.OpenGlobalContextMenuInternal,t)},replaceToolbarOptions:async t=>{await Z(e);const a=fin.Window.wrapSync(e);await a.updateOptions({workspacePlatform:{toolbarOptions:t}})},replaceWindowStateButtonOptions:async t=>{await Z(e);const a=fin.Window.wrapSync(e);await a.updateOptions({workspacePlatform:{windowStateButtonOptions:t}})},_openViewTabContextMenu:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.OpenViewTabContextMenuInternal,t)},_openPageTabContextMenu:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.OpenPageTabContextMenuInternal,t)},_openSaveModal:async t=>{await Z(e);return(await Ce(e)).dispatch(Ie.OpenSaveModalInternal,t)},_openSaveButtonContextMenu:async t=>{const a=await Z(e);return t.identity=e,a.dispatch(X.OpenSaveButtonContextMenuInternal,t)}});let Ct=!1;const It=e=>{const t=fin.Platform.wrapSync(e);return{wrapSync:e=>Wt(e),createWindow:async a=>{await Z(e),Ct||(Ct=!0,(async e=>{z(j.Browser,e)})({allowed:!0}));const n=await t.createWindow(a);return Wt(n.identity)},getAllAttachedPages:async()=>(await Z(e)).dispatch(X.GetAllAttachedPages,void 0),getAllWindows:async()=>{await Z(e);return(await fin.Application.wrapSync(e).getChildWindows()).filter((e=>e.identity.name.includes("internal-generated-window-"))).map((e=>Wt(e.identity)))},getUniquePageTitle:async t=>(await Z(e)).dispatch(X.GetUniquePageTitle,t),getLastFocusedWindow:async()=>(await Z(e)).dispatch(X.GetLastFocusedBrowserWindow,void 0)}},At=e=>({createPage:async t=>(await Z(e)).dispatch(X.CreateSavedPageInternal,t),deletePage:async t=>(await Z(e)).dispatch(X.DeleteSavedPageInternal,t),updatePage:async t=>(await Z(e)).dispatch(X.UpdateSavedPageInternal,t),getPage:async t=>(await Z(e)).dispatch(X.GetSavedPage,t),getPages:async t=>(await Z(e)).dispatch(X.GetSavedPages,t),savePage:async t=>(await Z(e)).dispatch(X.SavePage,t),createWorkspace:async t=>(await Y(e)).dispatch(X.CreateSavedWorkspace,t),deleteWorkspace:async t=>(await Y(e)).dispatch(X.DeleteSavedWorkspace,t),updateWorkspace:async t=>(await Y(e)).dispatch(X.UpdateSavedWorkspace,t),getWorkspace:async t=>(await Y(e)).dispatch(X.GetSavedWorkspace,t),getWorkspaces:async t=>(await Y(e)).dispatch(X.GetSavedWorkspaces,t),saveWorkspace:async t=>(await Y(e)).dispatch(X.SaveWorkspace,t)}),Tt=e=>({getThemes:async()=>(await Y(e)).dispatch(X.GetThemes,void 0)}),Mt=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:b,name:W,entityType:C||"unknown"});return(await Y(e)).dispatch(X.LaunchApp,t)},_invokeCustomAction:async(t,a)=>{const n=await Y(e),o={actionId:t,payload:{...a,callerType:a.callerType||h.API}};return n.dispatch(X.InvokeCustomActionInternal,o)},getCurrentWorkspace:async()=>(await Y(e)).dispatch(X.GetCurrentWorkspace,void 0),applyWorkspace:async t=>(await Y(e)).dispatch(X.ApplyWorkspace,t),setActiveWorkspace:async t=>(await Y(e)).dispatch(X.SetActiveWorkspace,t),Theme:Tt(e),Browser:It(e),Storage:At(e)})},Et=()=>Mt(fin.me.identity),Ot=async(e=_)=>{const{workspacePlatform:t}=await D(e).getOptions();return{newPageUrl:t?.newPageUrl,newTabUrl:t?.newTabUrl}},Bt=async(e=_)=>{const t=await Et().Browser.getUniquePageTitle("Untitled Page"),a=await(async(e=_)=>{const{newPageUrl:t}=await Ot(e);if(!t)throw new Error("Trying to create a new page without a newPageUrl set");return he("New Tab",t,e)})(e);return bt(t,a)},Rt={type:vt.Label,label:"Close Window",data:{type:l.CloseWindow}},xt={type:vt.Label,label:"Open Storefront",data:{type:l.OpenStorefront}},Lt={type:vt.Label,label:"Quit Platform",data:{type:l.Quit}},Vt={type:vt.Label,label:"New Window",data:{type:l.NewWindow}},Ut={type:vt.Label,label:"Save Page",data:{type:l.SavePage}},Dt={type:vt.Label,label:"Save Page As...",data:{type:l.SavePageAs}},_t={type:vt.Label,label:"Restore to Last Saved Changes",data:{type:l.RestoreChanges}},Ft={type:vt.Label,label:"Save Workspace",data:{type:l.SaveWorkspace}},Gt={type:vt.Label,label:"Save Workspace As...",data:{type:l.SaveWorkspaceAs}},Nt={type:vt.Label,label:"Rename Workspace",data:{type:l.RenameWorkspace}},$t="Switch Workspace",Ht="Delete Workspace",qt=[Rt,Pt,xt,Pt,Lt],Kt=[Pt,Rt,Pt,Lt],jt=(e,t,a)=>t.map((t=>{const n=t.workspaceId===e.workspaceId;return{label:t.title,type:vt.Checkbox,enabled:!n,checked:n,data:{type:a,workspaceId:t.workspaceId}}})),zt=async e=>{const t=await K(),{newPageUrl:a}=await Ot(e),n=await(async e=>{const t=D(e),{workspacePlatform:a}=await t.getOptions();return a?.disableMultiplePages})(e),o=await(async e=>{const t=D(e),{workspacePlatform:a}=await t.getOptions();return a?.isLocked})(e),i=[];var r;a&&(i.push(Vt),n||i.push((r=!o,{type:vt.Label,label:"New Page",data:{type:l.NewPage},enabled:r}))),i.push(Pt);const s=Et(),c=await s.getCurrentWorkspace(),d=await s.Storage.getWorkspaces(),p=d.find((e=>e.workspaceId===c.workspaceId));return p?i.push(_t):i.push({label:_t.label,enabled:!1}),i.push(Ft,Gt),p?i.push(Nt):i.push({label:Nt.label,enabled:!1}),d.some((e=>e.workspaceId!==c.workspaceId))?i.push({label:$t,submenu:jt(c,d,l.SwitchWorkspace)},{label:Ht,submenu:jt(c,d,l.DeleteWorkspace)}):i.push({label:$t,enabled:!1},{label:Ht,enabled:!1}),i.push(Pt,Ut,Dt),t?[...i,...qt]:[...i,...Kt]};let Qt="Platform";const Jt=async()=>Qt;var Xt,Yt,Zt;!function(e){e.Home="/home/",e.HomeSearch="/home/?deeplink=search",e.HomePagesRename="/home/pages/rename/",e.Dock="/home/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/"}(Xt||(Xt={})),function(e){e.IconOpenFinLogo="/icons/openfinlogo.svg",e.IconFilter="/icons/filter.svg"}(Yt||(Yt={})),function(e){e.Search="search"}(Zt||(Zt={}));const ea={...Yt,...Xt};var ta;!function(e){e.Home="/home",e.Browser="/browser",e.Provider="/provider",e.Storefront="/storefront"}(ta||(ta={}));const aa="/workspace/8.1.6";function na(){return aa.substring(0,aa.length-"".length)}function oa(e){if(!v)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}${na()}`}()+e}const ia={name:V.BrowserMenu,alwaysOnTop:!0,autoShow:!1,cornerRounding:{height:6,width:6},frame:!1,resizable:!1,backgroundColor:"#2f3136",smallWindow:!0,showTaskbarIcon:!1,backgroundThrottling:!0};function ra(e){const t={...ia,...e};return t.url=function(e){if(!v)throw new Error("resolveAbsolutePath can only be used in a window");return e.startsWith("http")?e:`${window.origin}${e}`}(t.url),t}var sa,ca;!function(e){e.Update="update",e.Response="response"}(sa||(sa={})),function(e){e.Canceled="canceled",e.Negative="negative",e.Affirmative="affirmative"}(ca||(ca={}));const da=function(e){const t=new Map;return{emit:fe(t,(t=>S&&fin.InterApplicationBus.publish(e,t))),addListener:me(t,(t=>S&&fin.InterApplicationBus.subscribe({uuid:fin.me.uuid},e,t))),removeListener:ve(t),once:Se(t)}}("window.menu"),pa=e=>da.emit(sa.Response,e),la=le((()=>L().getChildWindows()),500);const wa=new Map;async function ua({options:e,parameters:t}){const a=ra(e),{name:n}=a;let o=await async function(e){return(await la()).find((t=>t.identity.name===e))}(n);return o||(o=await async function(e){const t=ra(e);if(!wa.has(t.name)){const e=(async()=>{const e=await fin.Platform.getCurrentSync().createWindow(t);return e.once("closed",(()=>{wa.delete(t.name)})),e})();wa.set(t.name,e)}return wa.get(t.name)}(a)),await async function(e,t){const a=ra(e),{top:n,left:o,defaultWidth:i,defaultHeight:r}=a,s={top:n,left:o,width:i,height:r},c={parentName:fin.Window.getCurrentSync().identity.name};for(const[e,a]of Object.entries(c))t.set(e,a);const d=t.toString(),p=`${a.url}?${d}`;da.emit(sa.Update,a.name,s,p),await pa({name:a.name,data:ca.Canceled})}(e,t||new URLSearchParams),o}const ga=async(e,t)=>{const a=t?D(t):F();await(async(e=fin.me.identity)=>{const t=D(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()})(a.identity);const n=await a.getBounds(),o={left:((i=n).left+i.right)/2,top:(i.top+i.bottom)/2};var i;const{defaultHeight:r,defaultWidth:s}=e;return((e,t)=>{const{height:a,width:n}=t,o=n/2,i=a/2;return{left:e.left-o,top:e.top-i}})(o,{height:r,width:s})},ya=async({options:e,content:t})=>{const a=new URLSearchParams({...t});return await ua({options:e,parameters:a}),new Promise((t=>{da.once(sa.Response,(a=>{a.name===e.name&&t(a)}))}))},ha=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Switch Workspace",windowOptions:{url:A+ea.ResponseModal,name:V.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),{top:o,left:i}=await ga(a,e),r={...a,top:o,left:i};return(await ya({options:r,content:n})).data===ca.Affirmative},fa=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Delete Workspace",windowOptions:{url:A+ea.ResponseModal,name:V.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),{top:o,left:i}=await ga(a,e),r={...a,top:o,left:i};return(await ya({options:r,content:n})).data===ca.Affirmative},ma=async(e,t)=>{const{windowOptions:a,content:n}=await(async(e,t)=>({title:"Platform Quit",windowOptions:{url:A+ea.ResponseModal,name:V.BrowserMenu,defaultHeight:134,defaultWidth:474,modalParentIdentity:e},content:{title:`Are you sure you want to quit ${"Platform"===t?"the platform":t}?`,body:"Any unsaved changes to the workspace will be discarded",affirmativeButton:"Confirm",negativeButton:"Cancel"}}))(e,t),{top:o,left:i}=await ga(a,e),r={...a,top:o,left:i};return(await ya({options:r,content:n})).data===ca.Affirmative},Sa=async e=>{const{windowOptions:t,content:a}=await(async e=>({title:"Restore Changes",windowOptions:{url:A+ea.ResponseModal,name:V.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),{top:n,left:o}=await ga(t,e),i={...t,top:n,left:o};return(await ya({options:i,content:a})).data===ca.Affirmative};var va;!function(e){e.ERROR="error",e.SUCCESS="success",e.INFO="info"}(va||(va={}));const Pa={alwaysOnTop:!0,autoShow:!1,cornerRounding:{height:5,width:5},frame:!1,resizable:!1,showTaskbarIcon:!1};var ka;!function(e){e.Locked="LockClosedIcon",e.Unlocked="LockOpen1Icon"}(ka||(ka={}));const ba=function(e=Pa){const t=new Map;return async(a,n,o,i)=>{if(t.has(a)){const{currentUrl:e,currentName:o}=t.get(a);if(e===n)return;const i=fin.Window.wrapSync({uuid:fin.me.uuid,name:o});await i.close()}const r=`${V.HomeInternal}-${Date.now()}${Math.random()}`;t.set(a,{currentUrl:n,currentName:r});const s=await fin.Platform.getCurrentSync().createWindow({...e,name:r,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 ${i} indicator: ${o}`),s.once("closed",(()=>{t.delete(a)}))}}();async function Wa(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 i=`${oa(ea.BrowserIndicator)}?${o.toString()}`;return ba("browser"+a,i,t,e)}function Ca(e,t,a){return Wa(va.SUCCESS,e,t,a)}const Ia=async e=>{const t=Et(),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),Ca("Workspace Saved",e.name);else{t.Browser.wrapSync(e)._openSaveModal({menuType:f.SAVE_WORKSPACE})}},Aa=e=>{Et().Browser.wrapSync(e)._openSaveModal({menuType:f.SAVE_WORKSPACE_AS})},Ta=async(e,t)=>{const a=Et().Browser.wrapSync(e),n=await Et().Storage.getPages(),o=(await a.getPages()).find((e=>t?e.pageId===t:e.isActive));if(n.some((e=>o.pageId===e.pageId)))try{await Et().Storage.savePage((c=o,{...c,hasUnsavedChanges:void 0,parentIdentity:void 0,isActive:void 0})),await a.updatePage({pageId:o.pageId,page:{hasUnsavedChanges:!1}}),Ca("Page saved",o.parentIdentity.name)}catch{i="Page failed to save",r=o.parentIdentity.name,Wa(va.ERROR,i,r,s)}else a._openSaveModal({id:o.pageId,menuType:f.SAVE_PAGE});var i,r,s,c},Ma=async(e,t)=>{const a=Et().Browser.wrapSync(e),n=(await a.getPages()).find((e=>t?e.pageId===t:e.isActive));a._openSaveModal({id:n.pageId,menuType:f.SAVE_PAGE_AS})},Ea=async(e,t)=>{if(!e)return;const a=t.identity,n=await Ce(a),o=Et().Browser.wrapSync(t.identity);switch(e.type){case l.NewWindow:const{newPageUrl:t}=await Ot(a);if(!t)throw new Error("Trying to create a new empty window without a newPageUrl set");Et().createView({target:void 0,url:t});break;case l.NewPage:await(async e=>{const t=Et().Browser.wrapSync(e),a=await Bt(e);await t.addPage(a),await t.setActivePage(a.pageId)})(a);break;case l.CloseWindow:n.dispatch(Ie.CloseBrowserWindow);break;case l.SaveWorkspace:await Ia(a);break;case l.SavePage:await Ta(a);break;case l.SavePageAs:await Ma(a);break;case l.SaveWorkspaceAs:await Aa(a);break;case l.RenameWorkspace:o._openSaveModal({menuType:f.RENAME_WORKSPACE});break;case l.SwitchWorkspace:await(async(e,t)=>{const a=Et(),n=(await a.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId));n&&await ha(e,n.title)&&(await a.applyWorkspace(n),Ca("Workspace Switched!",null))})(a,e);break;case l.DeleteWorkspace:await(async(e,t)=>{const a=Et(),n=(await a.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId));n&&await fa(e,n.title)&&(await a.Storage.deleteWorkspace(t.workspaceId),Ca("Workspace Deleted!",e.name))})(a,e);break;case l.Quit:const i=await Jt();await ma(a,i)&&fin.Platform.getCurrentSync().quit();break;case l.OpenStorefront:(async()=>{await K()&&N(G)})();break;case l.RestoreChanges:const r=await async function(){const e=Et(),t=await e.getCurrentWorkspace();return(await e.Storage.getWorkspaces()).find((e=>e.workspaceId===t.workspaceId))}();await Sa(a)&&await ne(r);break;case l.Custom:if(e.action){const t={callerType:h.GlobalContextMenu,windowIdentity:a,customData:e.action.customData};Et()._invokeCustomAction(e.action.id,t)}}},Oa=async(e,t)=>{const a=await Ce(t.identity),n=Et();switch(e.type){case w.Save:await Ta(t.identity,t.pageId);break;case w.SaveAs:await Ma(t.identity,t.pageId);break;case w.Rename:await n.Browser.wrapSync(t.identity)._openSaveModal({menuType:f.RENAME_PAGE,id:t.pageId});break;case w.Duplicate:a.dispatch(Ie.DuplicatePage,t.pageId);break;case w.Close:a.dispatch(Ie.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};Et()._invokeCustomAction(e.action.id,a)}}},Ba=async(e,t)=>{if(e?.type){const a=t.identity;switch(e.type){case y.SavePage:await Ta(a);break;case y.SaveWorkspace:await Ia(a);break;case y.SavePageAs:await Ma(a);break;case y.SaveWorkspaceAs:await Aa(a);break;case y.Custom:if(e.action){const a={callerType:h.SaveButtonContextMenu,windowIdentity:t.identity,pageId:t.pageId,customData:e.action.customData};Et()._invokeCustomAction(e.action.id,a)}}}},Ra=async(e,t)=>{const a=t.selectedViews[0],n=fin.View.wrapSync(a),o=await(async e=>{const{newTabUrl:t}=await Ot(e);if(!t)throw new Error("Trying to create a new page without a newTabUrl set");return{...he("New View",t),url:t,target:e}})(e);await Et().createView(o,e,n.identity)},xa=async(e,t)=>{const a=await(e=>Promise.all(e.map((async e=>fin.View.wrapSync(e).getInfo()))))(t),{newPageUrl:n,newTabUrl:o}=await Ot(e);a.forEach((async e=>{e.url!==n&&e.url!==o&&await fin.System.openUrlWithBrowser(e.url)}))},La=(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 Et().createView(n,e,t.identity)})(e,a)}))},Va=async(e,t)=>{if(!e)return;const a=t.identity;switch(e.type){case u.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 Et().Browser.wrapSync(e).getPages()).find((e=>e.isActive));(await Ce(e)).dispatch(Ie.ClosePage,t?.pageId)}})(a,t.selectedViews);break;case u.OpenWithDefaultBrowser:await xa(a,t.selectedViews);break;case u.ReloadViews:t.selectedViews.forEach((async e=>{const t=fin.View.wrapSync(e);await t.reload()}));break;case u.NewView:await Ra(a,t);break;case u.DuplicateViews:La(a,t.selectedViews);break;case u.AddToChannel:(async(e,t,a)=>{const n={newChannelId:t,selectedViews:a};(await Ce(e)).dispatch(Ie.AddToChannel,n)})(a,e.option,t.selectedViews);break;case u.RemoveFromChannel:(async(e,t)=>{(await Ce(e)).dispatch(Ie.RemoveFromChannel,t)})(a,t.selectedViews);break;case u.Custom:if(e.action){const n={callerType:h.ViewTabContextMenu,windowIdentity:a,selectedViews:t.selectedViews,customData:e.action.customData};Et()._invokeCustomAction(e.action.id,n)}}};async function Ua(e,t){const a=await zt(e.identity),n=await Jt();a.find((e=>e.data?.type===l.Quit)).label=`Quit ${n}`;const o={...e,template:a,callback:Ea};await this.openGlobalContextMenu(o,t)}const Da=async(e,t)=>{const{x:a,y:n,identity:o,template:i,callback:r}=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:i},fin.Window.wrapSync(o));r(s,e)};async function _a(e,t){const a={...e,callback:Va};await this.openViewTabContextMenu(a,t)}async function Fa(e,t){const a=await(async(e,t)=>{const a=await Et().Storage.getPage(e),n=(await Oe()).find((t=>t.pageId===e)),{workspacePlatform:o}=await D(t).getOptions(),i=!(o.isLocked||o.preventPageClose||n.closeButton?.disabled||n.closeButton?.hidden);return[{type:vt.Label,label:"Save Page",data:{type:w.Save}},{type:vt.Label,label:"Save Page As",data:{type:w.SaveAs}},Pt,{type:vt.Label,label:"Rename Page",data:{type:w.Rename},enabled:!!a},{type:vt.Label,label:"Duplicate Page",data:{type:w.Duplicate},enabled:!o.isLocked},Pt,{type:vt.Label,label:"Close Page",data:{type:w.Close},enabled:i}]})(e.pageId,e.identity),n={...e,template:a,callback:Oa};await this.openPageTabContextMenu(n,t)}async function Ga(e,t){const a={...e,template:await(async()=>[{type:vt.Label,label:"Save Workspace",data:{type:y.SaveWorkspace}},{type:vt.Label,label:"Save Workspace As",data:{type:y.SaveWorkspaceAs}},{type:vt.Separator,data:void 0},{type:vt.Label,label:"Save Page",data:{type:y.SavePage}},{type:vt.Label,label:"Save Page As",data:{type:y.SavePageAs}}])(),callback:Ba};await this.openSaveButtonContextMenu(a,t)}const Na=P&&it("openfin-workspace-platform-workspaces","workspaces");async function $a(e){const t=await ct(e,Na);return t?(t.workspaceId=e.toString(),t.title=t.title||t.workspaceId,t):null}async function Ha(e){const t=await wt(Na),a=await Promise.all(t.map((e=>$a(e.toString()))));return e?a.filter((t=>ut(t.title,e))):a}async function qa({workspace:e}){await dt(e.workspaceId,e,Na)}async function Ka(e){await pt(e,Na)}async function ja({workspaceId:e,workspace:t}){if(void 0===await $a(e))throw new Error("workspace not found");await qa({workspace:t}),e!==t.workspaceId&&await Ka(e)}async function za({app:e,target:t}){const a=fin.Platform.getCurrentSync();switch(e.manifestType){case r.Snapshot:return a.applySnapshot(e.manifest);case r.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 r.External:return fin.System.launchExternalProcess({path:e.manifest,uuid:e.appId});default:return fin.Application.startFromManifest(e.manifest)}}const Qa=e=>e&&"object"==typeof e&&!Array.isArray(e);function Ja(e,...t){if(!t.length)return e;const a=t.shift();return Qa(e)&&Qa(a)&&Object.entries(a).forEach((([t,a])=>{if(Qa(a))return e[t]||(e[t]={}),Ja(e[t],a);e[t]=a})),Ja(e,...t)}const Xa=A+ea.Browser;function Ya(e,t){const a=Ja({},t,e);return a.detachOnClose=!0,a}async function Za(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 en=e=>{const t=e.name===V.Home,a=e.name?.startsWith(V.HomeInternal),n=e.name?.startsWith(V.BrowserMenu);return!t&&!a&&!n},tn=e=>"workspacePlatform"in e?e:(({workstacks:e,pages:t,...a})=>({...a,workspacePlatform:{pages:t||e||null}}))(e),an={contextMenuSettings:{reload:!1},backgroundThrottling:!0,url:Xa,contextMenu:!0,closeOnLastViewRemoved:!1,experimental:{showFavicons:!0,defaultFaviconUrl:`${A}/icons/defaultFavicon.svg`},permissions:{System:{openUrlWithBrowser:{enabled:!0,protocols:["mailto"]}}}},nn={dimensions:{borderWidth:3,headerHeight:30}},on=async(e,t)=>{const a=await Et().Storage.getPages(),n=await Et().Browser.getAllAttachedPages();return e.map((e=>{let o=e.title;void 0===e.pageId&&(e.pageId=crypto.randomUUID());const i=a.find((e=>e.title===o));return(i&&i.pageId!==e.pageId||n.find((e=>e.title===o)))&&(o=ae(e.title,[...a,...n].map((e=>e.title)))),n.push(e),{...t,...e,title:o,layout:(r=e.layout,ue({...r},ge))};var r}))};const rn=e=>{const t=fin.Window.wrapSync(e);return Promise.all([t.bringToFront(),t.restore(),t.focus()])};async function sn(e){const t=await H();return await Promise.all(t.map((({identity:e})=>(async e=>(await Ce(e)).dispatch(Ae.UpdatePagesWindowOptions))(e)))),e?e():nt()}let cn=[];const dn=()=>cn;const pn=(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=Ge,this.getAllAttachedPages=Oe,this.getPagesForWindow=$e,this.getPageForWindow=He,this.setActivePage=Ne,this.launchApp=za,this.savePage=De,this.saveWorkspace=se,this.createSavedPageInternal=Le,this.updateSavedPageInternal=Ue,this.deleteSavedPageInternal=Ve,this.reorderPagesForWindow=qe,this.getUniquePageTitle=Ke,this.updatePageForWindow=Fe,this.getLastFocusedBrowserWindow=de,this.getThemes=dn,this.invokeCustomActionInternal=Ye,this.getCurrentWorkspace=re,this.applyWorkspace=ne,this.setActiveWorkspace=oe,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 sn((async()=>nt(await super.getSnapshot(void 0,fin.me.identity)))):await nt(await super.getSnapshot(void 0,fin.me.identity));return{...e,windows:e.windows.filter(en).map(at)}}async applySnapshot({snapshot:e,options:t}){const a=e=>super.applySnapshot({snapshot:e,options:{...t,closeExistingWindows:!1}});let o=e;if("string"==typeof o&&(o=await super.fetchManifest({manifestUrl:o},fin.me.identity)),!n&&function(e){for(const t of e.windows)if(t.workspacePlatform?.pages)return!0;return!1}(o))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 H();await Promise.all(e.map((e=>e.close(!0).catch((()=>{})))))}(),n?async function(e,t){const a=await Oe(),n=e.snapshotDetails?.monitorInfo||await fin.System.getMonitorInfo(),o=(e.windows||[]).filter((({layout:e})=>!!e)),i=new Map;a.forEach((e=>i.set(e.pageId,e)));const r=[],s=o.map((async e=>{const t=tn(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 Ke();a.push(await bt(e,t.layout))}let o;n.forEach((e=>{const t=i.get(e.pageId);t?o=t:a.push(e)})),o&&await Promise.all([Ne({identity:o.parentIdentity,pageId:o.pageId}),rn(o.parentIdentity)]),a.length&&r.push({...t,workspacePlatform:{...t.workspacePlatform,pages:a}})}));if(await Promise.all(s),!r.length)return;const c=fin.Platform.getCurrentSync();return(t||c.applySnapshot.bind(c))({...e,snapshotDetails:{...e.snapshotDetails,monitorInfo:n},windows: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=tn(t);if(n){const t=this.getThemes();o=await(async(e,t,a)=>{let n=e;n.workspacePlatform?.pages&&(n.workspacePlatform.pages=await on(n.workspacePlatform.pages,t?.defaultPageOptions));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=Ja({},t.defaultWindowOptions,n,an),n.layout=Ja(n.layout,nn),(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;e&&(n.layout.settings||(n.layout.settings={}),n.layout.settings.newTabButton={url:e}),n=(e=>{const t=e;return t.workspacePlatform||(t.workspacePlatform={}),t.workspacePlatform._internalDeferShowEnabled=!0,t.workspacePlatform._internalAutoShow=t.workspacePlatform?._internalAutoShow||void 0===t.autoShow||t.autoShow,t.autoShow=!1,t})(n)}return 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 i=(e,t)=>super.createWindow(e,t);return(n?(e=>async(t,a)=>{const n=await e(t,a);return t?.workspacePlatform?._internalDeferShowEnabled?(await n.addListener(U.ShowRequested,(()=>{})),n):n})(i):i)(o,a)}async createView(t,a){return t.opts=Ya(t.opts,e?.defaultViewOptions),t.opts=await Za(t.opts,this.fetchManifest,a),super.createView(t,a)}async replaceView(t,a){return t.opts.newView=await Ya(t.opts.newView,e?.defaultViewOptions),t.opts.newView=await Za(t.opts.newView,this.fetchManifest,a),super.replaceView(t,a)}async replaceLayout(e,t){return 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 yt.apply(this,e)}async getSavedPages(...e){return ht.apply(this,e)}async createSavedPage(...e){return ft.apply(this,e)}async deleteSavedPage(...e){return mt.apply(this,e)}async updateSavedPage(...e){return St.apply(this,e)}async getSavedWorkspace(...e){return $a.apply(this,e)}async getSavedWorkspaces(...e){return Ha.apply(this,e)}async createSavedWorkspace(...e){return qa.apply(this,e)}async deleteSavedWorkspace(...e){return Ka.apply(this,e)}async updateSavedWorkspace(...e){return ja.apply(this,e)}async attachPagesToWindow(t){t.pages=await on(t.pages,e?.defaultPageOptions),await _e(t)}async openGlobalContextMenuInternal(...e){return Ua.apply(this,e)}async openGlobalContextMenu(...e){return Da.apply(this,e)}async openViewTabContextMenuInternal(...e){return _a.apply(this,e)}async openViewTabContextMenu(...e){return Da.apply(this,e)}async openPageTabContextMenuInternal(...e){return Fa.apply(this,e)}async openPageTabContextMenu(...e){return Da.apply(this,e)}async openSaveButtonContextMenu(...e){return Da.apply(this,e)}async openSaveButtonContextMenuInternal(...e){return Ga.apply(this,e)}}return"function"==typeof t?t(o):new o};async function ln(){!function(){const e=L();e.addListener(O.WindowOptionsChanged,Qe),e.addListener(O.WindowClosed,Je),e.addListener(O.WindowCreated,Je)}(),async function(){const e=fin.Application.getCurrentSync();await e.addListener("window-focused",pe)}();oe(await ie())}let wn;function un({overrideCallback:e,interopOverride:t,browser:a}){if(!S)throw new Error("Cannot be used outside an OpenFin env.");if(!wn){fin.Platform.getCurrentSync().once("platform-api-ready",(()=>ln())),a?.title&&(n=a.title,Qt=n),wn=fin.Platform.init({overrideCallback:pn(a,e||a?.overrideCallback),interopOverride:t||a?.interopOverride}),(async e=>{z(j.Platform,e)})({allowed:!0})}var n;return wn}const gn=async({theme:e,customActions:t,...a})=>{const n=T.split(".").map((e=>parseInt(e))),o=await(async e=>new Promise((async t=>{const a=(await fin.System.getVersion()).split(".").map((e=>parseInt(e)));t(e.every(((t,n)=>!(n<3)||a[n]===e[n])))})))(n);var i;if(e&&((i=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=i,(async e=>{z(j.Theming,e)})({allowed:!0})),t&&(Xe=t),o)return un(a);throw new Error(`Runtime version is not supported. ${n[0]}.${n[1]}.${n[2]}.* is required`)};module.exports=d})();
2
2
  //# 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":"8.1.5","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: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"}
1
+ {"name":"@openfin/workspace-platform","description":"An API for creating your own Workspace platform.","contributors":[],"version":"8.1.6","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: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"}