@objectstack/console 14.7.0 → 14.8.0

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 (109) hide show
  1. package/dist/.objectui-sha +1 -1
  2. package/dist/assets/{AdapterProvider-CmeZULrO.js → AdapterProvider-BzVT9qYv.js} +1 -1
  3. package/dist/assets/{AiPendingActionsPage-C4Iq12It.js → AiPendingActionsPage-B4I03oil.js} +1 -1
  4. package/dist/assets/{ApiConsolePage-CVxWz2Fc.js → ApiConsolePage-_wjPZg_8.js} +1 -1
  5. package/dist/assets/{AppDocsIndex-_Nk6Vrm0.js → AppDocsIndex-B3Y96Lvd.js} +1 -1
  6. package/dist/assets/{AppManagementPage-Ds4z81em.js → AppManagementPage-DxZABvOm.js} +1 -1
  7. package/dist/assets/{ApprovalsInboxPage-BYmqtmb8.js → ApprovalsInboxPage-DAjFkDy9.js} +1 -1
  8. package/dist/assets/{AuditLogPage-BY42e7b1.js → AuditLogPage-CuKdhFr9.js} +1 -1
  9. package/dist/assets/{ComponentNavView-CPizP2rl.js → ComponentNavView-DebBry51.js} +1 -1
  10. package/dist/assets/{CreateViewDialog-C6DeiGi1.js → CreateViewDialog-BCEk3ESW.js} +1 -1
  11. package/dist/assets/{DashboardView-CZ3rnuQw.js → DashboardView-Bi_ea9x6.js} +1 -1
  12. package/dist/assets/{DeveloperHubPage-cynqEJzi.js → DeveloperHubPage-CEFVU_4t.js} +1 -1
  13. package/dist/assets/{DocShell-DowMXJqg.js → DocShell-C09YMyAT.js} +1 -1
  14. package/dist/assets/{ExpressionProvider-jYh8yBEi.js → ExpressionProvider-gKUl8r3a.js} +1 -1
  15. package/dist/assets/{FlowRunsPage-BsxDtVro.js → FlowRunsPage-Of98wriv.js} +1 -1
  16. package/dist/assets/{IntegrationsPage-Dt3JjnPR.js → IntegrationsPage-D2Eh-wKl.js} +2 -2
  17. package/dist/assets/{InterfaceListPage-8ZC2DL6l.js → InterfaceListPage-BuAQSxuZ.js} +1 -1
  18. package/dist/assets/ManagedByBadge-3xVjmTY7.js +1 -0
  19. package/dist/assets/MarketplaceAccessDenied-YG6RAG6U.js +1 -0
  20. package/dist/assets/MarketplaceInstalledPage-BFESaZWD.js +1 -0
  21. package/dist/assets/MarketplacePackagePage-Vy7JiFQ0.js +4 -0
  22. package/dist/assets/MarketplacePage-C9kQ9UzP.js +1 -0
  23. package/dist/assets/{MetadataInspector-mHEFcIlV.js → MetadataInspector-Dc5CNMYV.js} +1 -1
  24. package/dist/assets/{MetadataProvider-DRMpRtkE.js → MetadataProvider-Bkb-vkjJ.js} +1 -1
  25. package/dist/assets/ObjectDataPage-B_qdf_tA.js +1 -0
  26. package/dist/assets/{PageView-Bvw39DGp.js → PageView-CO7Yco3U.js} +1 -1
  27. package/dist/assets/ProfilePage--OycjBXX.js +1 -0
  28. package/dist/assets/PublicFormsPage-CI1LZQKt.js +1 -0
  29. package/dist/assets/RecordDetailView-BQzH8bIG.js +2 -0
  30. package/dist/assets/{RecordFormPage-B8hs2UT_.js → RecordFormPage-D3fuaSOR.js} +1 -1
  31. package/dist/assets/ReportDefaultInspector-DfAMgr8D.js +3 -0
  32. package/dist/assets/{ReportView-C5EokVMt.js → ReportView-DyMm1CCA.js} +1 -1
  33. package/dist/assets/{SearchResultsPage-zgmMi_LJ.js → SearchResultsPage-CVsVjc9k.js} +1 -1
  34. package/dist/assets/{SettingsHub-D73rzMbT.js → SettingsHub-DTr02Vxf.js} +1 -1
  35. package/dist/assets/{SettingsView-BHmgUtG_.js → SettingsView-BN_M8m7j.js} +1 -1
  36. package/dist/assets/{SystemHubPage-HiWUvHtN.js → SystemHubPage-DGggPmsC.js} +1 -1
  37. package/dist/assets/{assistantBus-cGcVZa3R.js → assistantBus-CbDb2Mju.js} +1 -1
  38. package/dist/assets/data-adapter-CCueB_gY.js +7 -0
  39. package/dist/assets/framework-DUXRLJaF.js +36 -0
  40. package/dist/assets/{getIcon-DGciRPQd.js → getIcon-PwXhgLNw.js} +1 -1
  41. package/dist/assets/highlighted-body-OFNGDK62-Cdc_XtSh.js +1 -0
  42. package/dist/assets/{i18n-DzI3zFKr.js → i18n-DALEd5g8.js} +1 -1
  43. package/dist/assets/index-BCvtzf7n.css +2 -0
  44. package/dist/assets/index-C_G40cue.js +2 -0
  45. package/dist/assets/mermaid-GHXKKRXX-D6paxo1u.js +1 -0
  46. package/dist/assets/metadata-admin-DYtDZDTS.js +23 -0
  47. package/dist/assets/plugin-calendar-C5OJe0lx.js +1 -0
  48. package/dist/assets/plugin-charts-C4pZYso-.js +7 -0
  49. package/dist/assets/plugin-chatbot-B6HiHZjD.js +120 -0
  50. package/dist/assets/plugin-dashboard-BMm8A0um.js +6 -0
  51. package/dist/assets/plugin-form-zDPLpTAc.js +1 -0
  52. package/dist/assets/plugin-gantt-Bdm-Yvii.js +102 -0
  53. package/dist/assets/plugin-grid-BJGu5-41.js +8 -0
  54. package/dist/assets/plugin-kanban-BN37MzOm.js +1 -0
  55. package/dist/assets/plugin-map-Bamjhlg6.js +1 -0
  56. package/dist/assets/{plugin-markdown-hWqBbKBQ.js → plugin-markdown-Cg477jm9.js} +1 -1
  57. package/dist/assets/{plugin-report-Fk8OwuMv.js → plugin-report-9ivqW5g0.js} +4 -4
  58. package/dist/assets/plugin-timeline-C9C1_Un7.js +1 -0
  59. package/dist/assets/plugin-tree-BDrBkDUi.js +1 -0
  60. package/dist/assets/plugin-view-YLoG5wfy.js +1 -0
  61. package/dist/assets/plugins-views-DyIUCjnC.js +4 -0
  62. package/dist/assets/{skeletons-Dc-JqV4x.js → skeletons-CnYUdj-X.js} +1 -1
  63. package/dist/assets/{src-Ep8btdv1.js → src--kVwJFRS.js} +1 -1
  64. package/dist/assets/src-DD4w6yW2.js +18 -0
  65. package/dist/assets/src-LTygtqhe.js +1 -0
  66. package/dist/assets/{types-bxB_p8fZ.js → types-KTMf42UB.js} +1 -1
  67. package/dist/assets/ui-components-t1CVb1Ox.js +42 -0
  68. package/dist/assets/{ui-layout-elT9p0KY.js → ui-layout-C7dEpbqb.js} +1 -1
  69. package/dist/assets/{use-book-data-BNn214nk.js → use-book-data-Ddcv6p9p.js} +1 -1
  70. package/dist/assets/{useMetadata-B84fbReE.js → useMetadata-Ca0oaT4_.js} +1 -1
  71. package/dist/index.html +4 -4
  72. package/package.json +1 -1
  73. package/dist/assets/ConsoleFloatingChatbot-vRAPnn56.js +0 -1
  74. package/dist/assets/ManagedByBadge-DySgRsRf.js +0 -1
  75. package/dist/assets/MarketplaceAccessDenied-CQo3oKUv.js +0 -1
  76. package/dist/assets/MarketplaceInstalledPage-COPjvdZD.js +0 -1
  77. package/dist/assets/MarketplacePackagePage-BL5_Fzlm.js +0 -4
  78. package/dist/assets/MarketplacePage-BnHkiwG_.js +0 -1
  79. package/dist/assets/ObjectDataPage-D9wwntH8.js +0 -1
  80. package/dist/assets/ProfilePage-CkS1AQDC.js +0 -1
  81. package/dist/assets/PublicFormsPage-onVYVDnz.js +0 -1
  82. package/dist/assets/RecordDetailView-DsaGwX7Z.js +0 -2
  83. package/dist/assets/ReportDefaultInspector-DacLe5p0.js +0 -3
  84. package/dist/assets/data-adapter-BaIWVzG-.js +0 -7
  85. package/dist/assets/framework-DNWcCoBP.js +0 -36
  86. package/dist/assets/highlighted-body-OFNGDK62-obGa3VW9.js +0 -1
  87. package/dist/assets/index-CETzvR9k.js +0 -2
  88. package/dist/assets/index-DZuzAri6.css +0 -2
  89. package/dist/assets/marketplaceApi-BZG2zqqI.js +0 -1
  90. package/dist/assets/mermaid-GHXKKRXX-zDa01SPQ.js +0 -1
  91. package/dist/assets/metadata-admin-B3pnFq3D.js +0 -23
  92. package/dist/assets/plugin-calendar-DI8_y72D.js +0 -1
  93. package/dist/assets/plugin-charts-8kHRsJ26.js +0 -7
  94. package/dist/assets/plugin-chatbot-5rciOKdr.js +0 -120
  95. package/dist/assets/plugin-dashboard-g6z_zZXP.js +0 -6
  96. package/dist/assets/plugin-form-DWcrPPUr.js +0 -1
  97. package/dist/assets/plugin-gantt-BmusZEIw.js +0 -100
  98. package/dist/assets/plugin-grid-DdzrFURM.js +0 -8
  99. package/dist/assets/plugin-kanban-DtXDjkdV.js +0 -1
  100. package/dist/assets/plugin-map-B7RVCjPN.js +0 -1
  101. package/dist/assets/plugin-timeline-BLradJ31.js +0 -1
  102. package/dist/assets/plugin-tree-Dd-qjC-G.js +0 -1
  103. package/dist/assets/plugin-view-Beo3HWpE.js +0 -1
  104. package/dist/assets/plugins-views-D0GqJrx_.js +0 -4
  105. package/dist/assets/src-DZVwE2OF.js +0 -18
  106. package/dist/assets/src-DxI3szM2.js +0 -1
  107. package/dist/assets/surfaceAgent-DPt23-K5.js +0 -1
  108. package/dist/assets/ui-components-CmbUYw-E.js +0 -42
  109. package/dist/assets/useRecordApprovals-CwD1sHs0.js +0 -1
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{r as t,y as n}from"./vendor-react-BKSb6vFP.js";import{p as r}from"./infrastructure-Bc4DRENl.js";import{R as i,Y as a}from"./framework-DNWcCoBP.js";import{Cr as o,Dn as s,En as c,Gn as l,Gt as u,Ht as d,Kn as f,Kt as p,On as m,Tn as h,Ut as g,Wt as _,Xn as ee,Yn as te,kc as v,qn as ne,wn as y}from"./ui-components-CmbUYw-E.js";import{n as b}from"./plugin-form-DWcrPPUr.js";var x=e(n(),1),S=t(),C=(0,x.createContext)({favorites:null,recent:null}),w=(0,x.createContext)(null);function T({children:e}){let[t,n]=(0,x.useState)({favorites:null,recent:null}),r=(0,x.useRef)({attach:(e,t)=>{n(n=>n[e]===t?n:{...n,[e]:t})}});return(0,S.jsx)(w.Provider,{value:r.current,children:(0,S.jsx)(C.Provider,{value:t,children:e})})}function E(e){return(0,x.useContext)(C)[e]}function D(){let e=(0,x.useContext)(w);return(0,x.useCallback)((t,n)=>{e?.attach(t,n)},[e])}function O(e,t){return t?`${e}:u:${t}`:e}function k(e,t){let n=(0,x.useRef)(t);n.current=t,(0,x.useEffect)(()=>{if(typeof window>`u`)return;let t=t=>{if(!(t.key!==e||t.storageArea!==localStorage)){if(t.newValue==null){n.current(null);return}try{n.current(JSON.parse(t.newValue))}catch{n.current(null)}}};return window.addEventListener(`storage`,t),()=>window.removeEventListener(`storage`,t)},[e])}function A(e,t=500){let n=null,r=null,i=!1,a=async()=>{if(n&&=(clearTimeout(n),null),!i)return;let t=r;i=!1,r=null;try{await e(t)}catch{}};return{schedule:e=>{r=e,i=!0,n&&clearTimeout(n),n=setTimeout(()=>{n=null,a()},t)},flush:a,cancel:()=>{n&&clearTimeout(n),n=null,i=!1,r=null}}}var j=`objectui-recent-items`,M=8;function N(e){try{let t=localStorage.getItem(O(j,e));return t?JSON.parse(t):[]}catch{return[]}}function P(e,t){try{localStorage.setItem(O(j,t),JSON.stringify(e))}catch{}}var F=(0,x.createContext)(null);function I({children:e}){let{user:t}=r(),n=t?.id??null,i=E(`recent`),[a,o]=(0,x.useState)(()=>N(n));(0,x.useEffect)(()=>{o(N(n))},[n]),k(O(j,n),e=>{o(Array.isArray(e)?e.filter(e=>e&&typeof e.id==`string`).slice(0,M):[])});let s=(0,x.useRef)(0);(0,x.useEffect)(()=>{if(!i)return;let e=++s.current,t=!1;return(async()=>{try{let r=await i.load();if(t||e!==s.current)return;let a=(Array.isArray(r)?r:[]).filter(e=>e&&typeof e.id==`string`).slice(0,M);o(a),P(a,n)}catch{}})(),()=>{t=!0}},[i,n]);let c=(0,x.useMemo)(()=>A(async e=>{i&&await i.save(e)},500),[i]);(0,x.useEffect)(()=>()=>{c.flush()},[c]);let l=(0,x.useCallback)(e=>{P(e,n),i&&c.schedule(e)},[n,i,c]),u=(0,x.useCallback)(e=>{o(t=>{let n=t.filter(t=>t.id!==e.id),r=[{...e,visitedAt:new Date().toISOString()},...n].slice(0,M);return l(r),r})},[l]),d=(0,x.useCallback)(()=>{o([]),l([])},[l]),f=(0,x.useMemo)(()=>({recentItems:a,addRecentItem:u,clearRecentItems:d}),[a,u,d]);return(0,S.jsx)(F.Provider,{value:f,children:e})}function re(){return(0,x.useContext)(F)||{recentItems:[],addRecentItem:()=>{},clearRecentItems:()=>{}}}function ie(e){let{objectDef:t,baseUrl:n,record:r}=e;if(!t?.name||t.editMode!==`page`)return{kind:`modal`};let i=r?.id??r?._id;if(r&&i!=null&&i!==``){let e=encodeURIComponent(String(i));return{kind:`page`,url:`${n}/${t.name}/record/${e}/edit`}}return{kind:`page`,url:`${n}/${t.name}/new`}}function L(e){let t=e?.form??e?.formViews?.default;if(!t)return{};let n={};return Array.isArray(t.sections)&&t.sections.length>0&&(n.sections=t.sections,t.type===`tabbed`&&(n.contentLayout=`tabbed`)),Array.isArray(t.subforms)&&t.subforms.length>0&&(n.subforms=t.subforms),n}function ae(e){let{objectName:t,baseUrl:n,pathname:r,search:i,surface:a,recordId:o}=e;if(o==null||o===``||!t)return{kind:`none`};let s=encodeURIComponent(String(o));if(a===`page`)return{kind:`detail-page`,url:`${n}/${t}/record/${s}`};let c=new URLSearchParams(i??``);return c.delete(`form`),c.set(`recordId`,String(o)),{kind:`detail-drawer`,url:`${r}?${c.toString()}`}}function R(e){let{action:t,context:n={},defaultBaseUrl:r}=e,i=t.params?.objectName??t.objectName??n.objectName,a=n.baseUrl??r;return i?{success:!0,url:`${a}/${i}/new`}:{success:!1,error:`navigate_create: objectName is required`}}function z(e){let{action:t,context:n={},defaultBaseUrl:r}=e,i=t.params?.objectName??t.objectName??n.objectName,a=t.params?.recordId??t.recordId,o=n.baseUrl??r;return!i||a==null||a===``?{success:!1,error:`navigate_edit: objectName and recordId are required`}:{success:!0,url:`${o}/${i}/record/${encodeURIComponent(String(a))}/edit`}}var B={sm:`sm:max-w-sm`,default:`sm:max-w-lg`,lg:`sm:max-w-2xl`,xl:`sm:max-w-5xl`,full:`sm:max-w-[95vw] sm:w-full`},V={lg:`sm:max-w-2xl`,xl:`sm:max-w-3xl`,full:`sm:max-w-[95vw]`};function H(e){if(typeof e==`string`){let t=e.match(/^(create|new|add|edit|update)_(.+)$/);return t?{objectName:t[2],mode:t[1]===`edit`||t[1]===`update`?`edit`:`create`}:{objectName:e,mode:`create`}}return e&&typeof e==`object`?e.type&&!e.content&&!e.objectName&&!e.placement?{content:e}:e:{}}function U(e){let[t,n]=(0,x.useState)(null),{objects:r}=i(),C=(0,x.useCallback)(e=>{n(t=>(t?.resolve(e),null))},[]),w=(0,x.useCallback)(e=>new Promise(t=>{n({d:H(e),resolve:t})}),[]),T=null;if(t){let n=t.d,i=e=>{e||C({success:!1})};if(n.objectName&&!n.content){let t=n.fields||n.sections?{}:L(r.find(e=>e?.name===n.objectName));T=(0,S.jsx)(b,{schema:{type:`object-form`,formType:`modal`,objectName:n.objectName,mode:n.mode||`create`,recordId:n.recordId,title:n.title,description:n.description,fields:n.fields,...t,modalSize:n.size,open:!0,onOpenChange:i,onSuccess:e=>C({success:!0,reload:!0,data:e}),onCancel:()=>C({success:!1}),showSubmit:!0,showCancel:!0},dataSource:e})}else{let e=n.placement||`center`,t=n.content?(0,S.jsx)(a,{schema:n.content}):n.description?(0,S.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n.description}):null;T=e===`side`?(0,S.jsx)(d,{open:!0,onOpenChange:i,children:(0,S.jsxs)(g,{side:n.side||`right`,className:v(`w-full overflow-y-auto`,V[n.size||`default`]),children:[n.title&&(0,S.jsxs)(u,{children:[(0,S.jsx)(p,{children:n.title}),n.description&&(0,S.jsx)(_,{children:n.description})]}),(0,S.jsx)(`div`,{className:`py-3`,children:t})]})}):e===`bottom`?(0,S.jsx)(y,{open:!0,onOpenChange:i,children:(0,S.jsxs)(h,{children:[n.title&&(0,S.jsxs)(s,{children:[(0,S.jsx)(m,{children:n.title}),n.description&&(0,S.jsx)(c,{children:n.description})]}),(0,S.jsx)(`div`,{className:`max-h-[75vh] overflow-y-auto px-4 pb-6`,children:t})]})}):(0,S.jsx)(l,{open:!0,onOpenChange:i,children:(0,S.jsxs)(f,{className:v(e===`fullscreen`?`h-[95vh] w-full max-w-[98vw] overflow-y-auto`:B[n.size||`default`]),children:[n.title&&(0,S.jsxs)(te,{children:[(0,S.jsx)(ee,{children:n.title}),n.description&&(0,S.jsx)(ne,{children:n.description})]}),(0,S.jsx)(`div`,{children:t}),!n.content&&(0,S.jsx)(`div`,{className:`flex justify-end`,children:(0,S.jsx)(o,{onClick:()=>C({success:!0}),children:`OK`})})]})})}}return{modalHandler:w,modalElement:T,closeModal:C}}var W=`objectui-favorites`,G=`objectui-nav-pins`,K=20,q=20;function J(e){let t=0,n=0,r=!1;for(let i of e)i.type===`nav`?(n++,n>q&&(r=!0)):(t++,t>K&&(r=!0));if(!r)return e;let i=[],a=0,o=0;for(let t of e)t.type===`nav`?o<q&&(i.push(t),o++):a<K&&(i.push(t),a++);return i}function Y(e){try{let t=localStorage.getItem(O(W,e));return t?JSON.parse(t):[]}catch{return[]}}function X(e,t){try{localStorage.setItem(O(W,t),JSON.stringify(e))}catch{}}function Z(e){let t;try{t=localStorage.getItem(G)}catch{return{migrated:e,didMigrate:!1}}if(!t)return{migrated:e,didMigrate:!1};let n=[];try{let e=JSON.parse(t);Array.isArray(e)&&(n=e.filter(e=>typeof e==`string`))}catch{}try{localStorage.removeItem(G)}catch{}if(n.length===0)return{migrated:e,didMigrate:!1};let r=new Set(e.filter(e=>e.type===`nav`&&e.navId).map(e=>e.navId)),i=new Date().toISOString(),a=[];for(let e of n)r.has(e)||a.push({id:`nav:${e}`,label:e,href:``,type:`nav`,navId:e,pinned:!0,favoritedAt:i});return a.length===0?{migrated:e,didMigrate:!0}:{migrated:[...e,...a],didMigrate:!0}}var Q=(0,x.createContext)(null);function oe({children:e}){let{user:t}=r(),n=t?.id??null,i=E(`favorites`),[a,o]=(0,x.useState)(()=>Y(n));(0,x.useEffect)(()=>{o(Y(n))},[n]),k(O(W,n),e=>{o(Array.isArray(e)?J(e.filter(e=>e&&typeof e.id==`string`)):[])});let s=(0,x.useRef)(0);(0,x.useEffect)(()=>{if(!i)return;let e=++s.current,t=!1;return(async()=>{try{let r=await i.load();if(t||e!==s.current)return;let a=J((Array.isArray(r)?r:[]).filter(e=>e&&typeof e.id==`string`)),l=Y(n),u=new Set(a.filter(e=>e.type===`nav`&&e.navId).map(e=>e.navId)),d=l.filter(e=>e.type===`nav`&&e.navId&&!u.has(e.navId)),f=a,p=!1;d.length>0&&(f=J([...a,...d]),p=!0);let{migrated:m,didMigrate:h}=Z(f);h&&(f=J(m),p=!0),o(f),X(f,n),p&&c.schedule(f)}catch{}})(),()=>{t=!0}},[i,n]),(0,x.useEffect)(()=>{i||o(e=>{let{migrated:t,didMigrate:r}=Z(e);if(!r)return e;let i=J(t);return X(i,n),i})},[i,n]);let c=(0,x.useMemo)(()=>A(async e=>{i&&await i.save(e)},500),[i]);(0,x.useEffect)(()=>()=>{c.flush()},[c]);let l=(0,x.useCallback)(e=>{X(e,n),i&&c.schedule(e)},[n,i,c]),u=(0,x.useCallback)(e=>{o(t=>{if(t.some(t=>t.id===e.id))return t;let n=J([{...e,favoritedAt:new Date().toISOString()},...t]);return l(n),n})},[l]),d=(0,x.useCallback)(e=>{o(t=>{let n=t.filter(t=>t.id!==e);return l(n),n})},[l]),f=(0,x.useCallback)(e=>{o(t=>{let n=t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):J([{...e,favoritedAt:new Date().toISOString()},...t]);return l(n),n})},[l]),p=(0,x.useCallback)(()=>{o([]),l([])},[l]),m=(0,x.useCallback)((e,t)=>{!e||!t||o(n=>{let r=!1,i=n.map(n=>n.id===e&&n.label!==t?(r=!0,{...n,label:t}):n);return r?(l(i),i):n})},[l]),h=(0,x.useCallback)((e,t)=>{o(n=>{let r=!1,i=n.map(n=>n.id!==e||!!n.pinned===t?n:(r=!0,{...n,pinned:t}));return r?(l(i),i):n})},[l]),g=(0,x.useMemo)(()=>{let e=new Set;for(let t of a)t.pinned&&t.type===`nav`&&t.navId&&e.add(t.navId);return{favorites:a,addFavorite:u,removeFavorite:d,toggleFavorite:f,isFavorite:e=>a.some(t=>t.id===e),clearFavorites:p,refreshLabel:m,setPinned:h,isPinned:e=>a.some(t=>t.id===e&&!!t.pinned),pinnedNavIds:e}},[a,u,d,f,p,m,h]);return(0,S.jsx)(Q.Provider,{value:g,children:e})}function se(){return(0,x.useContext)(Q)||{favorites:[],addFavorite:()=>{},removeFavorite:()=>{},toggleFavorite:()=>{},isFavorite:()=>!1,clearFavorites:()=>{},refreshLabel:()=>{},setPinned:()=>{},isPinned:()=>!1,pinnedNavIds:new Set}}function ce(){return`${``.replace(/\/$/,``)}/api/v1`}async function $(e,t){let n=await fetch(`${ce()}${e}`,{credentials:`include`,headers:{"Content-Type":`application/json`,...t?.headers||{}},...t}),r=null;try{r=await n.json()}catch{}if(!n.ok){let e=Error(r?.error||`HTTP ${n.status}`);throw e.code=r?.code??`HTTP_${n.status}`,e.status=n.status,e}return r}function le(e,t,n){let[r,i]=(0,x.useState)(!1),[a,o]=(0,x.useState)(!0),[s,c]=(0,x.useState)([]),l=(0,x.useRef)(!1),u=(0,x.useCallback)(async()=>{if(!(!e||!t)&&!l.current){i(!0);try{let n=await $(`/approvals/requests?object=${encodeURIComponent(e)}&recordId=${encodeURIComponent(t)}`);c(n?.data??[]),o(!0)}catch(e){(e?.status===404||e?.status===501)&&(l.current=!0,o(!1))}finally{i(!1)}}},[e,t]);(0,x.useEffect)(()=>{if(!e||!t){c([]);return}u()},[e,t,u]);let d=(0,x.useMemo)(()=>s.find(e=>e.status===`pending`)??null,[s]),f=(0,x.useMemo)(()=>s.length===0?null:[...s].sort((e,t)=>{let n=e.submitted_at||e.completed_at||``;return(t.submitted_at||t.completed_at||``).localeCompare(n)})[0]??null,[s]),p=!!d&&!!n&&(d.pending_approvers??[]).includes(n),m=(0,x.useCallback)(async(e,t)=>{if(!d)throw Error(`No pending request`);let r=await $(`/approvals/requests/${encodeURIComponent(d.id)}/${e}`,{method:`POST`,body:JSON.stringify({...n?{actorId:n}:{},...t?.comment?{comment:t.comment}:{}})});return await u(),r?.request},[d,n,u]);return{loading:r,available:a,pendingRequest:d,latestRequest:f,canDecide:p,approve:(0,x.useCallback)(e=>m(`approve`,e),[m]),reject:(0,x.useCallback)(e=>m(`reject`,e),[m]),refresh:u}}export{L as a,ae as c,re as d,T as f,U as i,ie as l,oe as n,R as o,D as p,se as r,z as s,le as t,I as u};