@openfin/workspace-platform 9.0.2 → 9.0.3

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