adminizer 4.3.0-build.74 → 4.3.0-build.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/add-CCznNk7p.js +1 -0
- package/assets/add-form-Cujvebyq.js +1 -0
- package/assets/add-group-KxM-aCt4.js +1 -0
- package/assets/add-group-form-BrDR-i0l.js +1 -0
- package/assets/add-user-form-CrfboTix.js +1 -0
- package/assets/add-user-uiWxY8Il.js +1 -0
- package/assets/{app-GsYdx39W.css → app-CpGtjhxF.css} +1 -1
- package/assets/app-layout-DlouPwk2.js +1 -0
- package/assets/{app-shell-DHzMWA1L.js → app-shell-B969C0PB.js} +1 -1
- package/assets/app-sidebar-DBaEEAgj.js +1 -0
- package/assets/app-sidebar-header-DAKTYE0g.js +1 -0
- package/assets/app.js +5817 -1629
- package/assets/breadcrumbs-DHQ3AkEO.js +1 -0
- package/assets/{catalog-BavcTVb4.js → catalog-Dt5pVGyH.js} +3 -3
- package/assets/{dashboard-xr-OyVyG.js → dashboard-SxHpjYT5.js} +2 -2
- package/assets/date-picker--zSt9NKp.js +1 -0
- package/assets/del-modal-B73-X7Bm.js +1 -0
- package/assets/{field-renderer-Sd68OLyc.js → field-renderer-BP9UmRzN.js} +3 -3
- package/assets/form-NLJGRnF1.js +1 -0
- package/assets/form-lSJpGHTy.js +1 -0
- package/assets/{geo-json-CVaNUZbb.js → geo-json-Dq8ViYH4.js} +1 -1
- package/assets/home-C5a2kMDP.js +2 -0
- package/assets/{icon-ChQBPA5l.js → icon-BbhNOU2o.js} +1 -1
- package/assets/init-user--zYviDj5.js +1 -0
- package/assets/{input-error-g1h6ps7t.js → input-error-1aQ9bwyz.js} +1 -1
- package/assets/list-D-3gH3Qy.js +1 -0
- package/assets/{list-table-Br0K3rXg.js → list-table-D6PqwSh1.js} +1 -1
- package/assets/login-BQhUl8bB.js +1 -0
- package/assets/manifest.json +109 -221
- package/assets/{material-icon-BIcI8APG.js → material-icon-8nTeT-mJ.js} +1 -1
- package/assets/{media-manager-CTstvyHm.js → media-manager-D1nqMyHv.js} +3 -3
- package/assets/module-DvUc6HiL.js +1 -0
- package/assets/nav-footer-xpg-_O5z.js +1 -0
- package/assets/nav-main-FLS_mh3K.js +1 -0
- package/assets/{nav-user-vIwYShwE.js → nav-user-CfXR0Kcu.js} +1 -1
- package/assets/notification-DsrY4egH.js +1 -0
- package/assets/register-DQ_hsYCS.js +1 -0
- package/assets/{tabs-CwgzWt48.js → tabs-DD2mZktY.js} +1 -1
- package/assets/theme-switcher-BKpJx2Op.js +1 -0
- package/assets/{toast-editor-C0550yms.js → toast-editor-CexR_aza.js} +4 -4
- package/assets/{user-info-Db5Y8KeN.js → user-info-obJxhBMF.js} +1 -1
- package/assets/user-menu-content-Bs0bmqDB.js +1 -0
- package/assets/welcome-DOcJbFZS.js +1 -0
- package/controllers/add.js +0 -2
- package/controllers/edit.js +3 -3
- package/controllers/login.js +21 -56
- package/controllers/remove.js +11 -2
- package/helpers/diffHelpers.d.ts +1 -1
- package/helpers/diffHelpers.js +52 -7
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/interfaces/types.d.ts +12 -2
- package/lib/Adminizer.d.ts +0 -8
- package/lib/Adminizer.js +0 -9
- package/lib/v4/DataAccessor.d.ts +1 -1
- package/lib/v4/model/AbstractModel.js +12 -0
- package/lib/v4/model/adapter/sequelize.js +1 -1
- package/lib/v4/notifications/AbstractNotificationService.js +1 -0
- package/lib/v4/notifications/GeneralNotificationService.js +1 -1
- package/lib/v4/notifications/SystemNotificationService.js +4 -3
- package/package.json +1 -1
- package/assets/VanillaJSONEditor-x8tDbio1.js +0 -3833
- package/assets/add-BNb5A_qF.js +0 -1
- package/assets/add-form-CGi_qv3J.js +0 -1
- package/assets/add-group-RRjHTu93.js +0 -1
- package/assets/add-group-form-DSd4UrnU.js +0 -1
- package/assets/add-user-DSuvcKp6.js +0 -1
- package/assets/add-user-form-BAssKDpI.js +0 -1
- package/assets/app-layout-ContoN1K.js +0 -1
- package/assets/app-sidebar-D7l5BJPV.js +0 -1
- package/assets/app-sidebar-header-CK8t32cm.js +0 -1
- package/assets/breadcrumbs-DnNOEnT4.js +0 -1
- package/assets/date-picker-DBHnomTY.js +0 -1
- package/assets/debounce-D6eaSoDg.js +0 -1
- package/assets/del-modal-BeF4r3gk.js +0 -1
- package/assets/form-C9P9m_9q.js +0 -1
- package/assets/form-DomTBI89.js +0 -1
- package/assets/form-state-702tb_BV.js +0 -1
- package/assets/handsontable-CZQ5Ietj.js +0 -347
- package/assets/home-BWHeZm-1.js +0 -2
- package/assets/index-C148XJoK.js +0 -1
- package/assets/index-Vcq4gwWv.js +0 -1
- package/assets/init-user-DqMDju_E.js +0 -1
- package/assets/list-EEgAn-nx.js +0 -1
- package/assets/login-CUDpGsHl.js +0 -1
- package/assets/module-CpZBs0fN.js +0 -1
- package/assets/monaco-editor-XX8Hz76f.js +0 -11
- package/assets/multi-select-BFWbEjH-.js +0 -1
- package/assets/nav-footer-bO8D-Yir.js +0 -1
- package/assets/nav-main-DVgvko8g.js +0 -1
- package/assets/notification-BTXEslqa.js +0 -1
- package/assets/register-Kfu8zmmu.js +0 -1
- package/assets/theme-switcher-fzVA8btX.js +0 -1
- package/assets/use-appearance-CXP5cHaQ.js +0 -1
- package/assets/use-window-size-DLSEoR6e.js +0 -1
- package/assets/user-menu-content-Bc8YNZPf.js +0 -1
- package/assets/welcome-MKPFhPtG.js +0 -1
- package/lib/v4/model/adapter/typeorm.d.ts +0 -24
- package/lib/v4/model/adapter/typeorm.js +0 -88
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as h,j as e,i as N,aS as S,y as C,B as v,aT as M,A as E,E as _,aU as $,W as T,X as A,aa as P,Y as D,u as I,aV as R,a1 as k,L as B,c as z,aW as L}from"./app.js";import{Breadcrumbs as O}from"./breadcrumbs-DHQ3AkEO.js";import{NavUser as H}from"./nav-user-CfXR0Kcu.js";import{ThemeSwitcher as J}from"./theme-switcher-BKpJx2Op.js";import F from"./material-icon-8nTeT-mJ.js";const b=h.createContext(void 0),Q=({children:d})=>{const[s,f]=h.useState([]),[x,i]=h.useState([]),[u,n]=h.useState(!1),l=async()=>{try{const r=await N.get(`${window.routePrefix}/api/notifications`,{params:{unreadOnly:!0,limit:4}});f(r.data)}catch(r){console.error("Error fetching bell notifications:",r)}},t=async()=>{await l()},m=async r=>{n(!0);try{const o=r?`${window.routePrefix}/api/notifications/${r}`:`${window.routePrefix}/api/notifications`,a=await N.get(o);return i(a.data),a.data}catch(o){return console.error("Error fetching all notifications:",o),[]}finally{n(!1)}};h.useEffect(()=>{l();const r=new EventSource(`${window.routePrefix}/api/notifications/stream`);return r.addEventListener("connected",o=>{const a=JSON.parse(o.data);console.log("Connected event:",a)}),r.addEventListener("notification",o=>{const a=JSON.parse(o.data);f(c=>[a,...c.filter(p=>p.id!==a.id)].slice(0,4)),i(c=>[a,...c.filter(p=>p.id!==a.id)])}),r.onerror=()=>{console.error("SSE connection error")},()=>r.close()},[]);const j=async(r,o)=>{try{await N.put(`${window.routePrefix}/api/notifications/${r}/${o}/read`,{}),i(a=>a.map(c=>c.id===o?{...c,read:!0}:c)),await l()}catch(a){throw console.error("Error marking as read:",a),a}},w=s.filter(r=>!r.read).length;return e.jsx(b.Provider,{value:{bellNotifications:s,allNotifications:x,unreadCount:w,markAsRead:j,fetchAllNotifications:m,loading:u,refreshBellNotifications:t},children:d})},U=()=>{const d=h.useContext(b);if(d===void 0)throw new Error("useNotifications must be used within a NotificationProvider");return d};function V(){const{bellNotifications:d,markAsRead:s,unreadCount:f,refreshBellNotifications:x}=U(),[i,u]=h.useState(!1),n=async(t,m)=>{u(!0);try{await s(t,m),await x()}catch(j){console.error("Error marking as read:",j)}finally{u(!1)}},l=t=>{const m=new Date,j=new Date(t),w=m.getTime()-j.getTime(),r=Math.floor(w/1e3),o=new Intl.RelativeTimeFormat("en",{numeric:"auto"});if(r<60)return o.format(-r,"second");const a=Math.floor(r/60);if(a<60)return o.format(-a,"minute");const c=Math.floor(a/60);if(c<24)return o.format(-c,"hour");const p=Math.floor(c/24);if(p<30)return o.format(-p,"day");const g=Math.floor(p/30);if(g<12)return o.format(-g,"month");const y=Math.floor(g/12);return o.format(-y,"year")};return e.jsxs(S,{children:[e.jsx(C,{asChild:!0,className:"cursor-pointer data-[state=open]:bg-sidebar-accent",children:e.jsxs(v,{variant:"ghost",className:"relative",children:[e.jsx(M,{}),f>0&&e.jsx("div",{className:"absolute top-1.5 right-1.5 size-1.5 rounded-full bg-destructive"})]})}),e.jsxs(E,{className:"z-[1002] p-2",align:"end",onCloseAutoFocus:t=>t.preventDefault(),children:[e.jsx(_,{className:`${i?"opacity-50 pointer-events-none":""}`,children:d.length===0?e.jsx("div",{className:"p-4 text-center text-muted-foreground",children:"No notifications"}):d.map(t=>e.jsxs("div",{children:[e.jsx($,{asChild:!0,className:"cursor-pointer",onSelect:m=>{m.preventDefault(),I.visit(`${window.routePrefix}/notifications?type=${t.notificationClass}`)},children:e.jsxs("div",{className:"grid grid-cols-[32px_250px] grid-rows-[auto_1fr] items-start gap-x-4 gap-y-2",children:[t.icon?e.jsx(F,{name:t.icon.icon,style:{color:t.icon.iconColor},className:"!text-[32px]"}):e.jsx("div",{}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"font-medium",children:t.title}),e.jsx("span",{className:"truncate",children:t.message})]}),e.jsxs("div",{className:"col-start-2 flex justify-between flex-nowrap items-center",children:[e.jsxs("div",{className:"flex flex-nowrap gap-2 items-center",children:[t.notificationClass==="general"?e.jsx("div",{className:"font-medium",children:"Info"}):e.jsx("div",{className:"font-medium",children:"Activity"}),e.jsx("span",{children:"●"}),e.jsx("div",{children:l(t.createdAt)})]}),e.jsxs(T,{children:[e.jsx(A,{asChild:!0,children:e.jsx(v,{variant:"ghost",size:"icon",className:"size-4",onClick:m=>{m.stopPropagation(),n(t.notificationClass,t.id)},children:e.jsx(P,{className:"text-primary"})})}),e.jsx(D,{side:"left",className:"z-[1003]",children:e.jsx("p",{children:"Make read"})})]})]})]})}),e.jsx(R,{})]},t.id))}),e.jsx(v,{variant:"secondary",asChild:!0,children:e.jsxs(k,{href:`${window.routePrefix}/notifications?type=general`,className:`w-full ${i?"opacity-50 pointer-events-none":""}`,children:["View All",i&&e.jsx(B,{className:"h-4 w-4 animate-spin"})]})})]})]})}function W(d){const s=z.c(8),{breadcrumbs:f}=d;let x;s[0]!==f?(x=f===void 0?[]:f,s[0]=f,s[1]=x):x=s[1];const i=x;let u;s[2]===Symbol.for("react.memo_cache_sentinel")?(u=e.jsx(L,{className:"-ml-1"}),s[2]=u):u=s[2];let n;s[3]!==i?(n=e.jsxs("div",{className:"flex items-center gap-2",children:[u,e.jsx(O,{breadcrumbs:i})]}),s[3]=i,s[4]=n):n=s[4];let l;s[5]===Symbol.for("react.memo_cache_sentinel")?(l=e.jsxs("div",{className:"flex gap-4 items-center",children:[e.jsx(J,{}),e.jsx(V,{}),e.jsx(H,{})]}),s[5]=l):l=s[5];let t;return s[6]!==n?(t=e.jsx("header",{className:"border-sidebar-border/50 flex h-16 shrink-0 items-center gap-2 border-b px-6 transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-12 md:px-4",children:e.jsxs("div",{className:"flex justify-between w-full",children:[n,l]})}),s[6]=n,s[7]=t):t=s[7],t}const Z=Object.freeze(Object.defineProperty({__proto__:null,AppSidebarHeader:W},Symbol.toStringTag,{value:"Module"}));export{W as A,Q as N,Z as a,U as u};
|