adminizer 4.3.0-build.99 → 4.3.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.
- package/assets/add-9NSjG6Jx.js +1 -0
- package/assets/add-form-uUiOWEy_.js +1 -0
- package/assets/add-group-Db0HkA1m.js +1 -0
- package/assets/add-group-form-DMz0_Oo9.js +1 -0
- package/assets/add-user-BMklpOqf.js +1 -0
- package/assets/{add-user-form-DrclnTOd.js → add-user-form-izlXhv2-.js} +1 -1
- package/assets/{app-D8oqdt8J.css → app-BJd5vD4i.css} +1 -1
- package/assets/app-layout-DcgYmhNb.js +1 -0
- package/assets/{app-shell-CHEYhVco.js → app-shell-C8Cnr5Hy.js} +1 -1
- package/assets/app-sidebar-HwvXNZzk.js +1 -0
- package/assets/app-sidebar-header-C8TTx8yd.js +1 -0
- package/assets/app.js +5 -5
- package/assets/{breadcrumbs-C439DWrC.js → breadcrumbs-DSMzNYiS.js} +1 -1
- package/assets/catalog-C2INmTwI.js +6 -0
- package/assets/catalog-D4n6dpGl.css +1 -0
- package/assets/{dashboard-Bi5KeZu2.js → dashboard-DwFL6nqn.js} +1 -1
- package/assets/{date-picker-DbJ8nHp5.js → date-picker-kW3wZQr_.js} +1 -1
- package/assets/{del-modal-_b3CSNHb.js → del-modal-DyIWFflP.js} +1 -1
- package/assets/{field-renderer-4obZ_jUo.js → field-renderer-BNQVfOir.js} +3 -3
- package/assets/form-CAIoGuhZ.js +1 -0
- package/assets/form-NUd-JZJN.js +1 -0
- package/assets/{geo-json-CadjdhwW.js → geo-json-YeWQOYnT.js} +1 -1
- package/assets/{home-BUoDaWe0.js → home-CteDT1us.js} +2 -2
- package/assets/{icon-DM49pZW3.js → icon-DpkedrXG.js} +1 -1
- package/assets/{init-user-DNrB8Xt5.js → init-user-DaOvt0vG.js} +1 -1
- package/assets/{input-error--IOnWghB.js → input-error-CmXZF6xy.js} +1 -1
- package/assets/list-CXQmJbH8.js +1 -0
- package/assets/{list-table-BKxxQkCW.js → list-table-BPpHDVPf.js} +4 -4
- package/assets/{login-6Xb8bcPq.js → login-DR6fvKtm.js} +1 -1
- package/assets/manifest.json +82 -82
- package/assets/{material-icon-BedgD2NE.js → material-icon-DwkE6wKL.js} +1 -1
- package/assets/media-manager-DYOfUh8F.js +14 -0
- package/assets/{module-B4-7WkY5.js → module-BIUqcf4-.js} +1 -1
- package/assets/{nav-footer-BwkQkwow.js → nav-footer-B85HLj-j.js} +1 -1
- package/assets/{nav-main-9Eb_A0rf.js → nav-main-BqKm87JZ.js} +1 -1
- package/assets/nav-user-DuCZNsZX.js +1 -0
- package/assets/notification-BQTjxH2H.js +27 -0
- package/assets/pagination-render-io0M2m2O.js +1 -0
- package/assets/{register-BIyjCy8M.js → register-hJD1ETdf.js} +1 -1
- package/assets/{tabs-BK_5wdPA.js → tabs-BhkFoerH.js} +1 -1
- package/assets/{theme-switcher-CKiJbMkh.js → theme-switcher-cgyA7_cO.js} +1 -1
- package/assets/{toast-editor-BZM5RHph.js → toast-editor-DwRk6WqT.js} +1 -1
- package/assets/{user-info-CcYdmjMZ.js → user-info-BGQvqBmO.js} +1 -1
- package/assets/{user-menu-content-DbUk8ZeY.js → user-menu-content-BDm88xaM.js} +1 -1
- package/assets/welcome-ks57d2us.js +1 -0
- package/controllers/add.js +1 -1
- package/controllers/catalog/Catalog.js +21 -20
- package/controllers/catalog/FrontendCatalogAdapter.d.ts +82 -0
- package/controllers/catalog/FrontendCatalogAdapter.js +228 -0
- package/controllers/catalog/FrontentCatalogAdapter.d.ts +4 -4
- package/controllers/catalog/FrontentCatalogAdapter.js +28 -10
- package/controllers/edit.js +14 -5
- package/controllers/form.js +8 -6
- package/controllers/login.js +3 -0
- package/controllers/media-manager/ThumbController.js +1 -1
- package/controllers/media-manager/mediaManagerAdapter.js +1 -1
- package/controllers/media-manager/mediaManagerApi.js +1 -2
- package/controllers/notifications/NotificationController.d.ts +1 -1
- package/controllers/notifications/NotificationController.js +5 -4
- package/controllers/view.js +5 -3
- package/helpers/inertiaAddHelper.js +1 -2
- package/helpers/inertiaFromHelper.js +1 -2
- package/index.d.ts +5 -0
- package/index.js +5 -0
- package/interfaces/adminpanelConfig.d.ts +12 -0
- package/lib/Adminizer.d.ts +4 -3
- package/lib/Adminizer.js +16 -22
- package/lib/catalog/AbstractCatalog.d.ts +6 -4
- package/lib/catalog/AbstractCatalog.js +5 -4
- package/lib/catalog/Navigation.d.ts +9 -7
- package/lib/catalog/Navigation.js +69 -40
- package/lib/inertia/inertiaAdapter.js +31 -13
- package/lib/media-manager/AbstractMediaManager.d.ts +5 -3
- package/lib/media-manager/DefaultMediaManager.d.ts +3 -3
- package/lib/media-manager/DefaultMediaManager.js +18 -13
- package/lib/media-manager/Items.js +5 -4
- package/lib/media-manager/MediaManagerHandler.d.ts +3 -3
- package/lib/media-manager/MediaManagerHandler.js +3 -3
- package/lib/media-manager/Thumb.d.ts +2 -1
- package/lib/media-manager/Thumb.js +3 -4
- package/lib/media-manager/helpers/MediaManagerHelper.d.ts +7 -2
- package/lib/media-manager/helpers/MediaManagerHelper.js +12 -8
- package/lib/model/adapter/waterline.js +6 -0
- package/package.json +3 -1
- package/system/Router.js +10 -8
- package/system/bindAccessRights.js +7 -0
- package/system/bindCors.d.ts +2 -0
- package/system/bindCors.js +41 -0
- package/system/bindInertia.js +1 -1
- package/system/bindMediaManager.js +1 -2
- package/system/bindNavigation.d.ts +1 -1
- package/system/bindNavigation.js +33 -35
- package/system/bindNotifications.js +4 -4
- package/system/bindReqFunctions.js +4 -1
- package/system/defaults.js +8 -0
- package/translations/ru.json +121 -120
- package/ui/components/handsontable.js +6 -3
- package/ui/lib/utils.d.ts +1 -0
- package/ui/lib/utils.js +16 -0
- package/assets/add-1E1UsMVZ.js +0 -1
- package/assets/add-form-CGa9QbwE.js +0 -1
- package/assets/add-group-7yAK6uFY.js +0 -1
- package/assets/add-group-form-BNmpvW8K.js +0 -1
- package/assets/add-user-NoYkTfZi.js +0 -1
- package/assets/app-layout-i2zN9Rn-.js +0 -1
- package/assets/app-sidebar-DeF8WNmW.js +0 -1
- package/assets/app-sidebar-header-DdM1EOrb.js +0 -1
- package/assets/catalog-B9hdop59.js +0 -6
- package/assets/catalog-C71LuRag.css +0 -1
- package/assets/form-Bte5kzjB.js +0 -1
- package/assets/form-oUlsuu7h.js +0 -1
- package/assets/list-C04Krl_W.js +0 -1
- package/assets/media-manager-UQT6RhI8.js +0 -14
- package/assets/nav-user-CRAfyE-x.js +0 -1
- package/assets/notification-ma2x7vka.js +0 -27
- package/assets/pagination-render-D3UyVAlr.js +0 -1
- package/assets/welcome-cWh1qnl_.js +0 -1
package/ui/lib/utils.js
CHANGED
|
@@ -3,3 +3,19 @@ import { twMerge } from "tailwind-merge";
|
|
|
3
3
|
export function cn(...inputs) {
|
|
4
4
|
return twMerge(clsx(inputs));
|
|
5
5
|
}
|
|
6
|
+
export function simpleSanitizeHtml(html) {
|
|
7
|
+
return html
|
|
8
|
+
// Удаляем script теги
|
|
9
|
+
.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '')
|
|
10
|
+
// Удаляем iframe, embed, object
|
|
11
|
+
.replace(/<iframe\b[^<]*(?:(?!<\/iframe>)<[^<]*)*<\/iframe>/gi, '')
|
|
12
|
+
.replace(/<embed\b[^<]*(?:(?!<\/embed>)<[^<]*)*<\/embed>/gi, '')
|
|
13
|
+
.replace(/<object\b[^<]*(?:(?!<\/object>)<[^<]*)*<\/object>/gi, '')
|
|
14
|
+
// Удаляем опасные атрибуты событий
|
|
15
|
+
.replace(/ on\w+="[^"]*"/g, '')
|
|
16
|
+
.replace(/ on\w+='[^']*'/g, '')
|
|
17
|
+
.replace(/ on\w+=[^ >]+/g, '')
|
|
18
|
+
// Удаляем javascript: ссылки
|
|
19
|
+
.replace(/href="javascript:[^"]*"/gi, 'href="#"')
|
|
20
|
+
.replace(/href='javascript:[^']*'/gi, 'href="#"');
|
|
21
|
+
}
|
package/assets/add-1E1UsMVZ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as t,j as o}from"./app.js";import{A as m}from"./app-layout-i2zN9Rn-.js";import p from"./add-form-CGa9QbwE.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.js";import"./monaco-ICtx6xoc.js";import"./handsontable-PVakPtJV.js";import"./app-shell-CHEYhVco.js";import"./app-sidebar-DeF8WNmW.js";import"./nav-main-9Eb_A0rf.js";import"./material-icon-BedgD2NE.js";import"./app-sidebar-header-DdM1EOrb.js";import"./breadcrumbs-C439DWrC.js";import"./nav-user-CRAfyE-x.js";import"./user-info-CcYdmjMZ.js";import"./user-menu-content-DbUk8ZeY.js";import"./theme-switcher-CKiJbMkh.js";import"./icon-DM49pZW3.js";import"./field-renderer-4obZ_jUo.js";import"./dynamic-controls-BOYmRX_z.js";import"./input-error--IOnWghB.js";const i=[];function k(){const r=t();return o.jsx(m,{breadcrumbs:i,children:o.jsx(p,{page:r,catalog:!1})})}export{k as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{V as O,bw as k,j as s,B as F,U as V,aD as z,bx as R,L as S,by as $,f as A,a as L,l as P,H as D,J as U,K as J,aE as H,M as K,g as q}from"./app.js";import{r as u}from"./monaco-ICtx6xoc.js";import{Icon as _}from"./icon-DM49pZW3.js";import{F as M}from"./field-renderer-4obZ_jUo.js";import T from"./input-error--IOnWghB.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.js";import"./handsontable-PVakPtJV.js";import"./dynamic-controls-BOYmRX_z.js";var C=new Map,N=new WeakMap,B=0,G=void 0;function Q(e){return e?(N.has(e)||(B+=1,N.set(e,B.toString())),N.get(e)):"0"}function X(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?Q(e.root):e[t]}`).toString()}function Y(e){const t=X(e);let a=C.get(t);if(!a){const i=new Map;let d;const c=new IntersectionObserver(o=>{o.forEach(n=>{var l;const v=n.isIntersecting&&d.some(p=>n.intersectionRatio>=p);e.trackVisibility&&typeof n.isVisible>"u"&&(n.isVisible=v),(l=i.get(n.target))==null||l.forEach(p=>{p(v,n)})})},e);d=c.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),a={id:t,observer:c,elements:i},C.set(t,a)}return a}function Z(e,t,a={},i=G){if(typeof window.IntersectionObserver>"u"&&i!==void 0){const l=e.getBoundingClientRect();return t(i,{isIntersecting:i,target:e,intersectionRatio:typeof a.threshold=="number"?a.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:d,observer:c,elements:o}=Y(a),n=o.get(e)||[];return o.has(e)||o.set(e,n),n.push(t),c.observe(e),function(){n.splice(n.indexOf(t),1),n.length===0&&(o.delete(e),c.unobserve(e)),o.size===0&&(c.disconnect(),C.delete(d))}}function W({threshold:e,delay:t,trackVisibility:a,rootMargin:i,root:d,triggerOnce:c,skip:o,initialInView:n,fallbackInView:l,onChange:v}={}){var p;const[j,E]=u.useState(null),m=u.useRef(v),[h,y]=u.useState({inView:!!n,entry:void 0});m.current=v,u.useEffect(()=>{if(o||!j)return;let g;return g=Z(j,(r,f)=>{y({inView:r,entry:f}),m.current&&m.current(r,f),f.isIntersecting&&c&&g&&(g(),g=void 0)},{root:d,rootMargin:i,threshold:e,trackVisibility:a,delay:t},l),()=>{g&&g()}},[Array.isArray(e)?e.toString():e,j,d,i,c,o,a,l,t]);const b=(p=h.entry)==null?void 0:p.target,w=u.useRef(void 0);!j&&b&&!c&&!o&&w.current!==b&&(w.current=b,y({inView:!!n,entry:void 0}));const x=[E,h.inView,h.entry];return x.ref=x[0],x.inView=x[1],x.entry=x[2],x}const I=u.memo(({field:e})=>s.jsxs("div",{className:"flex gap-3",children:[s.jsx(L,{htmlFor:`${e.type}-${e.name}`,children:e.label}),e.tooltip&&s.jsx(D,{children:s.jsxs(U,{children:[s.jsx(J,{onClick:t=>t.preventDefault(),children:s.jsx(_,{iconNode:H,className:"text-primary w-5 h-5 cursor-pointer"})}),s.jsx(K,{align:"center",side:"top",className:"z-[1002]",children:s.jsx("p",{children:e.tooltip})})]})})]})),ee=u.memo(({field:e,value:t,onChange:a,processing:i,notFound:d,search:c})=>{const[o,n]=W({triggerOnce:!0,rootMargin:"100px 0px"});return s.jsx("div",{ref:o,className:"grid gap-4 w-full",children:n?s.jsx(M,{field:e,value:t,onChange:a,notFound:d,search:c,processing:i}):s.jsx(P,{className:"w-full h-[250px] rounded-sm"})})}),de=({page:e,catalog:t,callback:a,openNewWindow:i,openNewWindowLabel:d,isNavigation:c})=>{const{fields:o,btnBack:n,view:l,notFound:v}=e.props,{data:p,setData:j,post:E,processing:m}=O({...Object.fromEntries(o.map(r=>[r.name,r.value??void 0])),jsonPopupCatalog:t}),[h,y]=u.useState(!1),[b,w]=u.useState(i??!1);u.useEffect(()=>(w(i??!1),k(),j({...Object.fromEntries(o.map(r=>[r.name,r.value??void 0])),jsonPopupCatalog:t}),()=>k()),[o,t,i]);const x=u.useCallback((r,f)=>{j(r,f)},[]),g=async r=>{if(r.preventDefault(),t){y(!0);const f=await q.post(e.props.postLink,p);f.status===200&&a&&(c?a(f.data.record,b):a(f.data.record))}else E(e.props.postLink)};return s.jsxs("div",{className:"p-4 w-full",children:[!t&&s.jsxs("div",{className:"w-full sticky z-[1001] py-4 pb-8 top-0 h-fit bg-background flex gap-4",children:[s.jsx(F,{className:"w-fit",asChild:!0,children:s.jsxs(V,{href:n.link,preserveScroll:!0,children:[s.jsx(_,{iconNode:z}),n.title]})}),s.jsxs(F,{variant:"green",type:"submit",className:"w-fit lg:hidden",form:"addUserForm",disabled:h||m||e.props.view||R(),children:[h||m&&s.jsx(S,{className:"h-4 w-4 animate-spin"}),e.props.btnSave.title]})]}),s.jsx("form",{id:"addUserForm",onSubmit:g,className:l?"cursor-not-allowed":"",children:s.jsxs("div",{className:`grid lg:grid-cols-[1fr_150px] gap-4 max-w-[1144px] pb-8 ${t?"lg:grid-cols-[1fr_200px]":"lg:grid-cols-[1fr_150px]"}`,children:[s.jsx("div",{className:"flex flex-col gap-10",children:o.map(r=>s.jsx("div",{className:`grid gap-4 w-full ${l?"pointer-events-none":""}`,children:r.type==="markdown"||r.type==="table"||r.type==="jsonEditor"||r.type==="codeEditor"||r.type==="geoJson"?s.jsxs(s.Fragment,{children:[s.jsx(I,{field:r}),s.jsx(T,{message:$(`${r.type}-${r.name}`)}),s.jsx(ee,{field:r,value:p[r.name],onChange:x,processing:h||m||l,notFound:v,search:e.props.search})]}):s.jsxs(s.Fragment,{children:[s.jsx(I,{field:r}),s.jsx(T,{message:$(`${r.type}-${r.name}`)}),s.jsx(M,{field:r,value:p[r.name],onChange:x,processing:h||m||l,notFound:v,search:e.props.search})]})},r.name))}),s.jsxs("div",{className:`p-4 rounded-md h-fit sticky shadow ${t?"top-0 grid gap-4":"top-[84px] hidden lg:block"}`,children:[c&&s.jsxs("div",{className:"flex gap-4 items-center",children:[s.jsx(A,{id:"targetBlank",checked:b,onCheckedChange:r=>w(!!r),className:"cursor-pointer size-5"}),s.jsx(L,{htmlFor:"targetBlank",children:d})]}),s.jsxs(F,{variant:"green",type:"submit",className:"w-fit",disabled:h||m||e.props.view||R(),children:[(h||m)&&s.jsx(S,{className:"h-4 w-4 animate-spin"}),e.props.btnSave.title]})]})]})})]})};export{I as LabelRenderer,ee as LazyField,de as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as r}from"./app.js";import{A as o}from"./app-layout-i2zN9Rn-.js";import t from"./add-group-form-BNmpvW8K.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.js";import"./monaco-ICtx6xoc.js";import"./handsontable-PVakPtJV.js";import"./app-shell-CHEYhVco.js";import"./app-sidebar-DeF8WNmW.js";import"./nav-main-9Eb_A0rf.js";import"./material-icon-BedgD2NE.js";import"./app-sidebar-header-DdM1EOrb.js";import"./breadcrumbs-C439DWrC.js";import"./nav-user-CRAfyE-x.js";import"./user-info-CcYdmjMZ.js";import"./user-menu-content-DbUk8ZeY.js";import"./theme-switcher-CKiJbMkh.js";import"./icon-DM49pZW3.js";const m=[];function E(){return r.jsx(o,{breadcrumbs:m,children:r.jsx(t,{})})}export{E as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as B,V as M,j as e,B as T,U as O,aD as U,L as q,a as x,I as y,f as z,H,J as P,K as S,aE as A,M as G}from"./app.js";import{Icon as I}from"./icon-DM49pZW3.js";import{r as h}from"./monaco-ICtx6xoc.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.js";import"./handsontable-PVakPtJV.js";const E=h.memo(({field:s,disabled:d,value:c,onCheckedChange:i,tooltip:n})=>{const m=h.useCallback(l=>{i(s.name,l)},[s.name,i]);return e.jsxs("div",{className:"flex gap-3 items-center",children:[e.jsx(z,{id:s.name,className:"cursor-pointer size-5",disabled:d,checked:c,onCheckedChange:m}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx(x,{className:"cursor-pointer",htmlFor:s.name,children:s.label}),n&&e.jsx(H,{children:e.jsxs(P,{children:[e.jsx(S,{onClick:l=>l.preventDefault(),children:e.jsx(I,{iconNode:A,className:"text-primary w-5 h-5 cursor-pointer"})}),e.jsx(G,{align:"center",side:"top",children:e.jsx("p",{children:s.tooltip})})]})})]})]})});function Q(){var u,j,g,b,v,f,N,k,C,w,F;const s=B(),{fields:d,groupedTokens:c,users:i}=s.props,{data:n,setData:m,clearErrors:l,post:L,processing:o}=M({...Object.fromEntries(d.map(a=>[a.name,a.value])),...Object.fromEntries(i.map(a=>[a.name,a.value])),...Object.fromEntries(c.flatMap(a=>a.fields.map(t=>[t.name,t.value])))}),r=a=>s.props.fields.find(t=>t.name===a),p=h.useCallback((a,t)=>{l(),m(a,t)},[]),D=a=>{a.preventDefault(),L(s.props.postLink)};return e.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[e.jsxs("div",{className:"w-full sticky z-[1001] py-4 pb-8 top-0 h-fit bg-background flex gap-4",children:[e.jsx(T,{className:"mb-3 w-fit",asChild:!0,children:e.jsxs(O,{href:s.props.btnBack.link,children:[e.jsx(I,{iconNode:U}),s.props.btnBack.title]})}),e.jsxs(T,{variant:"green",type:"submit",className:"w-fit",form:"addUserForm",disabled:o||s.props.view,children:[o&&e.jsx(q,{className:"h-4 w-4 animate-spin"}),s.props.btnSave.title]})]}),e.jsx("form",{id:"addUserForm",onSubmit:D,className:`${s.props.view?"cursor-not-allowed":""}`,children:e.jsxs("div",{className:"flex flex-col gap-6 max-w-[1144px]",children:[e.jsx("h2",{className:"font-bold text-xl",children:s.props.head}),e.jsxs("div",{className:"grid gap-4",children:[e.jsx(x,{htmlFor:(u=r("name"))==null?void 0:u.name,children:(j=r("name"))==null?void 0:j.label}),e.jsx(y,{id:(g=r("name"))==null?void 0:g.name,type:"text",required:!0,tabIndex:1,autoComplete:(b=r("name"))==null?void 0:b.name,value:n.name,onChange:a=>p("name",a.target.value),disabled:o||s.props.view,placeholder:(v=r("name"))==null?void 0:v.label})]}),e.jsxs("div",{className:"grid gap-4",children:[e.jsx(x,{htmlFor:(f=r("description"))==null?void 0:f.name,children:(N=r("description"))==null?void 0:N.label}),e.jsx(y,{id:(k=r("description"))==null?void 0:k.name,type:"text",required:!0,tabIndex:1,autoComplete:(C=r("description"))==null?void 0:C.name,value:n.description,onChange:a=>p("description",a.target.value),disabled:o||s.props.view,placeholder:(w=r("description"))==null?void 0:w.label})]}),s.props.users.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"font-bold text-xl",children:s.props.userHead}),s.props.users.map(a=>e.jsx(E,{field:a,disabled:o||s.props.view,value:n[a.name],onCheckedChange:p},a.name))]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 xl:grid-cols-4 gap-4",children:((F=s.props.groupedTokens)==null?void 0:F.length)>0&&s.props.groupedTokens.map(a=>e.jsxs("div",{className:"grid gap-4 content-start justify-between",children:[e.jsx("h2",{className:"font-bold text-xl mt-3",children:a.header}),a.fields.map(t=>e.jsx(E,{field:t,disabled:o||s.props.view,value:n[t.name],onCheckedChange:p,tooltip:!0},t.name))]},a.header))})]})})]})}export{Q as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as r}from"./app.js";import{A as o}from"./app-layout-i2zN9Rn-.js";import t from"./add-user-form-DrclnTOd.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.js";import"./monaco-ICtx6xoc.js";import"./handsontable-PVakPtJV.js";import"./app-shell-CHEYhVco.js";import"./app-sidebar-DeF8WNmW.js";import"./nav-main-9Eb_A0rf.js";import"./material-icon-BedgD2NE.js";import"./app-sidebar-header-DdM1EOrb.js";import"./breadcrumbs-C439DWrC.js";import"./nav-user-CRAfyE-x.js";import"./user-info-CcYdmjMZ.js";import"./user-menu-content-DbUk8ZeY.js";import"./theme-switcher-CKiJbMkh.js";import"./icon-DM49pZW3.js";import"./input-error--IOnWghB.js";const m=[];function F(){return r.jsx(o,{breadcrumbs:m,children:r.jsx(t,{})})}export{F as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as i,j as r,R as p,ac as m}from"./app.js";import d from"./app-shell-CHEYhVco.js";import{AppSidebar as n}from"./app-sidebar-DeF8WNmW.js";import{A as x,N as c}from"./app-sidebar-header-DdM1EOrb.js";import{r as o}from"./monaco-ICtx6xoc.js";const j=o.memo(({children:e,breadcrumbs:s=[],className:t})=>{const a=i();return r.jsxs(d,{variant:"sidebar",children:[r.jsx(p,{title:a.props.title}),r.jsx(n,{}),r.jsxs(m,{className:t,children:[r.jsx(x,{breadcrumbs:s}),e]})]})}),S=o.memo(({children:e,className:s,breadcrumbs:t,...a})=>r.jsx(c,{children:r.jsx(j,{breadcrumbs:t,className:s,...a,children:e})}));export{S as A};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as N,j as s,aL as b,aM as g,aN as i,aO as c,aP as f,aQ as v,aR as k,aS as d,B as C,aT as M,aU as w,aV as _,aW as y,aX as B,aY as x,U as n,aZ as T,a_ as p,a$ as t,C as o,b0 as h,b1 as j,b2 as m,b3 as u,b4 as R,b5 as U}from"./app.js";import{NavMain as $}from"./nav-main-9Eb_A0rf.js";import l from"./material-icon-BedgD2NE.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.js";import"./monaco-ICtx6xoc.js";import"./handsontable-PVakPtJV.js";function F(){const r=N();return s.jsxs(b,{collapsible:"icon",variant:"inset",children:[s.jsx(g,{children:s.jsx(i,{children:s.jsxs(c,{children:[s.jsx(f,{className:"p-0 shadow-none border-none bg-transparent hidden md:block",children:s.jsxs(v,{children:[s.jsx(k,{asChild:!0,className:"text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground rounded-md",children:s.jsx(d,{asChild:!0,children:s.jsx(C,{variant:"ghost",asChild:!0,className:`w-full ${r.props.section?"":"pointer-events-none"}`,children:s.jsxs("div",{children:[s.jsx(l,{name:"rocket_launch",className:"!text-[18px]"}),s.jsx("span",{className:"group-data-[state=collapsed]:hidden",children:r.props.brand}),r.props.section&&s.jsx(M,{className:"ml-auto group-data-[state=collapsed]:hidden"})]})})})}),r.props.section&&s.jsx(w,{side:"right",className:"z-[1003]",children:r.props.section.map(a=>s.jsx("div",{children:a.subItems?s.jsxs(_,{children:[s.jsxs(y,{className:"flex gap-2 items-center cursor-pointer",children:[s.jsx(l,{name:a.icon,className:"!text-[18px]"}),s.jsx("span",{className:"hover:underline",children:a.title})]}),s.jsx(B,{children:a.subItems.map(e=>s.jsx(x,{children:e.type==="blank"?s.jsxs("a",{href:e.link,target:"_blank",className:"flex gap-2 items-center",children:[e.icon&&s.jsx(l,{name:e.icon,className:"!text-[18px]"}),s.jsx("span",{className:"hover:underline",children:e.title})]},e.id):s.jsxs(n,{href:e.link,className:"flex gap-2 items-center",children:[e.icon&&s.jsx(l,{name:e.icon,className:"!text-[18px]"}),s.jsx("span",{className:"hover:underline",children:e.title})]},e.id)},e.id))})]}):s.jsx(x,{children:a.type==="blank"?s.jsxs("a",{href:a.link,target:"_blank",className:"flex gap-2 items-center",children:[a.icon&&s.jsx(l,{name:a.icon,className:"!text-[18px]"}),s.jsx("span",{className:"hover:underline",children:a.title})]}):s.jsxs(n,{href:a.link,className:"flex gap-2 items-center",children:[a.icon&&s.jsx(l,{name:a.icon,className:"!text-[18px]"}),s.jsx("span",{className:"hover:underline",children:a.title})]})})},a.id))})]})}),s.jsx(T,{className:"px-2 py-0 block md:hidden",children:s.jsx(i,{children:s.jsx(p,{asChild:!0,className:"group/collapsible",children:s.jsxs(c,{children:[s.jsx(t,{asChild:!0,children:s.jsxs(d,{children:[s.jsx(l,{name:"rocket_launch",className:"!text-[18px]"}),s.jsx("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:r.props.brand}),r.props.section&&s.jsx(o,{className:"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"})]})}),r.props.section&&s.jsx(h,{children:s.jsx(j,{children:r.props.section&&r.props.section.map(a=>a.subItems?s.jsx(i,{children:s.jsx(p,{asChild:!0,className:"group/collapsible-sub",children:s.jsxs(c,{children:[s.jsx(t,{asChild:!0,children:s.jsxs(d,{children:[s.jsx(l,{name:a.icon,className:"!text-[18px]"}),s.jsx("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:a.title}),s.jsx(o,{className:"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible-sub:rotate-90"})]})}),s.jsx(h,{children:s.jsx(j,{children:a.subItems.map(e=>s.jsx(m,{children:s.jsx(u,{asChild:!0,children:e.type==="blank"?s.jsxs("a",{href:e.link,target:"_blank",className:"flex gap-2 items-center",children:[e.icon&&s.jsx(l,{name:e.icon,className:"!text-[18px]"}),s.jsx("span",{className:"hover:underline",children:e.title})]}):s.jsxs(n,{href:e.link,className:"flex gap-2 items-center",children:[e.icon&&s.jsx(l,{name:e.icon,className:"!text-[18px]"}),s.jsx("span",{className:"hover:underline",children:e.title})]})})},e.id))})})]})})},a.id):s.jsx(m,{children:s.jsx(u,{asChild:!0,children:a.type==="blank"?s.jsxs("a",{href:a.link,target:"_blank",className:"flex gap-2 items-center",children:[a.icon&&s.jsx(l,{name:a.icon,className:"!text-[18px]"}),s.jsx("span",{className:"hover:underline",children:a.title})]}):s.jsxs(n,{href:a.link,className:"flex gap-2 items-center",children:[a.icon&&s.jsx(l,{name:a.icon,className:"!text-[18px]"}),s.jsx("span",{className:"hover:underline",children:a.title})]})})},a.id))})})]})})})})]},r.props.brand)})}),s.jsx(R,{children:s.jsx($,{items:r.props.menu})}),s.jsx(U,{children:s.jsx("div",{className:"text-center opacity-70",children:r.props.showVersion&&"v.4.3.0"})})]})}export{F as AppSidebar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as P,j as e,g as f,aG as O,p as z,B as $,aH as _,s as H,v as J,aI as F,J as G,K,Z as U,M as V,r as Y,aJ as Z,U as q,L as T,aK as Q}from"./app.js";import{Breadcrumbs as W}from"./breadcrumbs-C439DWrC.js";import{NavUser as X}from"./nav-user-CRAfyE-x.js";import{ThemeSwitcher as ee}from"./theme-switcher-CKiJbMkh.js";import{r as n}from"./monaco-ICtx6xoc.js";import te from"./material-icon-BedgD2NE.js";const k=n.createContext(void 0),de=({children:i})=>{const[x,u]=n.useState([]),[b,p]=n.useState([]),[w,l]=n.useState([]),[S,v]=n.useState(!1),[r,c]=n.useState([]),N=P(),[M,j]=n.useState({}),d=[...b,...w],m=async()=>{try{const t=await f.get(`${window.routePrefix}/api/notifications`,{params:{unreadOnly:!0,limit:4}});u(t.data)}catch(t){console.error("Error fetching bell notifications:",t)}},h=async()=>{try{const t=await f.post(`${window.routePrefix}/notifications`);j(t.data)}catch(t){console.log(t)}},y=async()=>{await m()},g=async()=>{try{const t=await f.get(`${window.routePrefix}/api/notifications/get-classes`);c(t.data)}catch(t){console.error("Error fetching tabs:",t)}},C=async(t,s)=>{try{if(!t){await E(s);return}const a=await f.post(`${window.routePrefix}/api/notifications/search`,{s:t,notificationClass:s});l(a.data)}catch(a){console.error("Error searching notifications:",a)}},E=async t=>{v(!0);try{const s=`${window.routePrefix}/api/notifications/${t}`,a=await f.get(s,{params:{limit:20,skip:0,unreadOnly:!1}});return p([]),l(a.data),a.data}catch(s){return console.error("Error fetching all notifications:",s),[]}finally{v(!1)}},D=async(t,s)=>{try{const a=`${window.routePrefix}/api/notifications/${t}`,o=await f.get(a,{params:{limit:20,skip:s,unreadOnly:!1}});return l(B=>[...B,...o.data]),o.data}catch(a){return console.error("Error paginating notifications:",a),[]}};n.useEffect(()=>{if(!N.props.notifications)return;h(),m();const t=new EventSource(`${window.routePrefix}/api/notifications/stream`);return t.addEventListener("connected",s=>{const a=JSON.parse(s.data);console.log("Connected event:",a),g()}),t.addEventListener("notification",s=>{const a=JSON.parse(s.data);p(o=>[a,...o]),u(o=>[a,...o].slice(0,4))}),t.onerror=()=>{console.error("SSE connection error")},()=>t.close()},[]);const I=async(t,s)=>{try{await f.put(`${window.routePrefix}/api/notifications/${t}/${s}/read`,{}),p(a=>a.map(o=>o.id===s?{...o,read:!0}:o)),l(a=>a.map(o=>o.id===s?{...o,read:!0}:o)),u([])}catch(a){console.error("Error marking as read:",a)}},L=async()=>{try{await f.put(`${window.routePrefix}/api/notifications/read-all`),p(t=>t.map(s=>({...s,read:!0}))),l(t=>t.map(s=>({...s,read:!0}))),await m()}catch(t){console.error("Error marking all as read:",t)}},R=x.filter(t=>!t.read).length;return e.jsx(k.Provider,{value:{bellNotifications:x,allNotifications:d,unreadCount:R,getTabs:g,tabs:r,search:C,markAsRead:I,markAllAsRead:L,getLocale:h,messages:M,fetchAllNotifications:E,paginateNotifications:D,loading:S,refreshBellNotifications:y},children:i})},A=()=>{const i=n.useContext(k);if(i===void 0)throw new Error("useNotifications must be used within a NotificationProvider");return i};function ae(){const{bellNotifications:i,markAsRead:x,unreadCount:u,refreshBellNotifications:b,messages:p}=A(),[w,l]=n.useState(!1),S=async(r,c)=>{l(!0);try{await x(r,c),await b()}catch(N){console.error("Error marking as read:",N)}finally{l(!1)}},v=r=>{const c=new Date,N=new Date(r),M=c.getTime()-N.getTime(),j=Math.floor(M/1e3),d=new Intl.RelativeTimeFormat("en",{numeric:"auto"});if(j<60)return d.format(-j,"second");const m=Math.floor(j/60);if(m<60)return d.format(-m,"minute");const h=Math.floor(m/60);if(h<24)return d.format(-h,"hour");const y=Math.floor(h/24);if(y<30)return d.format(-y,"day");const g=Math.floor(y/30);if(g<12)return d.format(-g,"month");const C=Math.floor(g/12);return d.format(-C,"year")};return e.jsxs(O,{children:[e.jsx(z,{asChild:!0,className:"cursor-pointer data-[state=open]:bg-sidebar-accent",children:e.jsxs($,{variant:"ghost",className:"relative",children:[e.jsx(_,{}),u>0&&e.jsx("div",{className:"absolute top-1.5 right-1.5 size-1.5 rounded-full bg-destructive"})]})}),e.jsxs(H,{className:"z-[1002] p-2",align:"end",onCloseAutoFocus:r=>r.preventDefault(),children:[e.jsx(J,{className:`${w?"opacity-50 pointer-events-none":""}`,children:i.length===0?e.jsx("div",{className:"p-4 text-center text-muted-foreground",children:"No notifications"}):i.map(r=>e.jsxs("div",{children:[e.jsx(F,{asChild:!0,className:"cursor-pointer",onSelect:c=>{c.preventDefault(),Y.visit(`${window.routePrefix}/notifications?type=${r.notificationClass}`)},children:e.jsxs("div",{className:"grid grid-cols-[32px_250px] grid-rows-[auto_1fr] items-start gap-x-4 gap-y-2",children:[r.icon?e.jsx(te,{name:r.icon.icon,style:{color:r.icon.iconColor},className:"!text-[32px]"}):e.jsx("div",{}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"font-medium",children:r.title}),e.jsx("span",{className:"truncate",children:r.message})]}),e.jsxs("div",{className:"col-start-2 flex justify-between flex-nowrap items-center",children:[e.jsx("div",{className:"flex flex-nowrap gap-2 items-center",children:e.jsx("div",{children:v(r.createdAt)})}),e.jsxs(G,{children:[e.jsx(K,{asChild:!0,children:e.jsx($,{variant:"ghost",size:"icon",className:"size-4",onClick:c=>{c.stopPropagation(),S(r.notificationClass,r.id)},children:e.jsx(U,{className:"text-primary"})})}),e.jsx(V,{side:"left",className:"z-[1003]",children:e.jsx("p",{children:p["Make read"]})})]})]})]})}),e.jsx(Z,{})]},r.id))}),e.jsx($,{variant:"secondary",asChild:!0,children:e.jsxs(q,{href:`${window.routePrefix}/notifications?type=general`,className:`w-full ${w?"opacity-50 pointer-events-none":""}`,children:[p["View All"],w&&e.jsx(T,{className:"h-4 w-4 animate-spin"})]})})]})]})}function se({breadcrumbs:i=[]}){const{tabs:x}=A(),u=P();return 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:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Q,{className:"-ml-1"}),e.jsx(W,{breadcrumbs:i})]}),e.jsxs("div",{className:"flex gap-4 items-center",children:[e.jsx(ee,{}),u.props.notifications&&(x.length>0?e.jsx(ae,{}):e.jsx("div",{className:"w-[40px] flex-none flex justify-center",children:e.jsx(T,{className:"size-4 animate-spin"})})),e.jsx(X,{})]})]})})}const fe=Object.freeze(Object.defineProperty({__proto__:null,AppSidebarHeader:se},Symbol.toStringTag,{value:"Module"}));export{se as A,de as N,fe as a,A as u};
|