adminizer 4.3.0-build.92 → 4.3.0-build.94

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 (37) hide show
  1. package/assets/{add-NAafOOz0.js → add-30rJVIpY.js} +1 -1
  2. package/assets/{add-form-DNaC3dFd.js → add-form-DwRHL5iw.js} +1 -1
  3. package/assets/{add-group-Gl84bOeV.js → add-group-7yAK6uFY.js} +1 -1
  4. package/assets/{add-user-DqGl8Dxi.js → add-user-NoYkTfZi.js} +1 -1
  5. package/assets/{app-CSVBI-Lw.css → app-B1BSuRo7.css} +1 -1
  6. package/assets/{app-layout-DinOHZzD.js → app-layout-i2zN9Rn-.js} +1 -1
  7. package/assets/{app-sidebar-header-CMmguJzw.js → app-sidebar-header-DdM1EOrb.js} +1 -1
  8. package/assets/app.js +1626 -1626
  9. package/assets/{catalog-DjUVcs4W.js → catalog-CW6iBNCw.js} +1 -1
  10. package/assets/{dashboard-DNjESo7D.js → dashboard-Bi5KeZu2.js} +1 -1
  11. package/assets/{field-renderer-C55XFp0k.js → field-renderer-BrZ4Y0zg.js} +2 -2
  12. package/assets/{form-DsQb8UGG.js → form-Cwj2lsFj.js} +1 -1
  13. package/assets/{form-DaTkKdur.js → form-VzyoiVVR.js} +1 -1
  14. package/assets/{home-CwEEdA4M.js → home-BSO5Kia4.js} +2 -2
  15. package/assets/{list-3mxaSvck.js → list-smhWH8ZU.js} +1 -1
  16. package/assets/manifest.json +50 -50
  17. package/assets/{media-manager-91CMk2mo.js → media-manager-BUhcEf9t.js} +3 -3
  18. package/assets/{module-Db7-sqNw.js → module-B4-7WkY5.js} +1 -1
  19. package/assets/{notification-DYA1ZN8s.js → notification-ma2x7vka.js} +2 -2
  20. package/assets/{welcome-CNbz1L8F.js → welcome-cWh1qnl_.js} +1 -1
  21. package/controllers/form.js +12 -12
  22. package/controllers/media-manager/mediaManagerAdapter.js +13 -2
  23. package/controllers/media-manager/mediaManagerApi.js +3 -2
  24. package/lib/media-manager/AbstractMediaManager.d.ts +2 -2
  25. package/lib/media-manager/DefaultMediaManager.js +2 -1
  26. package/lib/media-manager/Items.d.ts +2 -1
  27. package/lib/media-manager/Items.js +7 -0
  28. package/lib/media-manager/helpers/MediaManagerHelper.d.ts +1 -0
  29. package/lib/media-manager/helpers/MediaManagerHelper.js +17 -0
  30. package/models/MediaManagerAP.d.ts +9 -3
  31. package/models/MediaManagerAP.js +11 -5
  32. package/models/MediaManagerAssociationsAP.d.ts +9 -3
  33. package/models/MediaManagerAssociationsAP.js +11 -5
  34. package/models/MediaManagerMetaAP.d.ts +9 -3
  35. package/models/MediaManagerMetaAP.js +11 -5
  36. package/package.json +3 -3
  37. package/system/Router.js +2 -2
@@ -1 +1 @@
1
- import{u as i,j as t,L as l}from"./app.js";import{r as s}from"./monaco-ICtx6xoc.js";import{A as c}from"./app-layout-DinOHZzD.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.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-CMmguJzw.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 d=[];function q(){const r=i(),[n,m]=s.useState(null);return s.useEffect(()=>{const a=async()=>{const o=(await import(r.props.moduleComponent)).default;m(t.jsx(o,{message:r.props.message}))};(()=>{const e=r.props.moduleComponentCSS;if(!e||[...document.head.querySelectorAll("link[rel='stylesheet']")].some(p=>p.href.includes(e)))return;const o=document.createElement("link");o.rel="stylesheet",o.href=e,o.type="text/css",o.onload=()=>console.log(`CSS loaded: ${e}`),o.onerror=()=>console.error(`Failed to load CSS: ${e}`),document.head.appendChild(o)})(),a()},[]),t.jsx(c,{breadcrumbs:d,children:t.jsx("div",{className:"m-5",children:n||t.jsx(l,{className:"size-10 animate-spin text-neutral-500 mx-auto mt-[15%]"})})})}export{q as default};
1
+ import{u as i,j as t,L as l}from"./app.js";import{r as s}from"./monaco-ICtx6xoc.js";import{A as c}from"./app-layout-i2zN9Rn-.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.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 d=[];function q(){const r=i(),[n,m]=s.useState(null);return s.useEffect(()=>{const a=async()=>{const o=(await import(r.props.moduleComponent)).default;m(t.jsx(o,{message:r.props.message}))};(()=>{const e=r.props.moduleComponentCSS;if(!e||[...document.head.querySelectorAll("link[rel='stylesheet']")].some(p=>p.href.includes(e)))return;const o=document.createElement("link");o.rel="stylesheet",o.href=e,o.type="text/css",o.onload=()=>console.log(`CSS loaded: ${e}`),o.onerror=()=>console.error(`Failed to load CSS: ${e}`),document.head.appendChild(o)})(),a()},[]),t.jsx(c,{breadcrumbs:d,children:t.jsx("div",{className:"m-5",children:n||t.jsx(l,{className:"size-10 animate-spin text-neutral-500 mx-auto mt-[15%]"})})})}export{q as default};
@@ -1,4 +1,4 @@
1
- import{j as v,Y as pr,Z as Rs,_ as ws,P as pp,$ as _p,a0 as vp,a1 as xp,a2 as mp,a3 as Hi,a4 as vt,a5 as wp,a6 as Xe,J as Ap,K as yp,B as Gi,M as Rp,a7 as Tp,a8 as Sp,a9 as Cp,aa as Ip,ab as Ep,u as Lp,I as bp,L as As,r as Op}from"./app.js";import{A as Np}from"./app-layout-DinOHZzD.js";import{e as Pp,r as Q}from"./monaco-ICtx6xoc.js";import{T as Wp,a as Mp,b as Bp,c as Dp}from"./tabs-BK_5wdPA.js";import{c as _r}from"./vendor-wzZzN_Jv.js";import{u as Fp}from"./app-sidebar-header-CMmguJzw.js";import{d as Up}from"./jsoneditor-D95dIAP2.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"./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 Hp=({changes:K,title:gn="Changes",className:s=""})=>{if(!K||K.length===0)return v.jsx("div",{className:pr("bg-muted border border-border rounded-lg p-4",s),children:v.jsxs("div",{className:"flex items-center text-muted-foreground",children:[v.jsx(Rs,{className:"w-5 h-5 mr-2"}),v.jsx("span",{children:"Changes not found"})]})});const bn=B=>B===null?"null":B===void 0?"—":typeof B=="boolean"?B?"Да":"Нет":typeof B=="object"?JSON.stringify(B):String(B),V=B=>B.oldValue===void 0?"added":B.newValue===void 0?"removed":"modified";return v.jsxs("div",{className:pr("bg-card border border-border rounded-lg shadow-sm",s),children:[v.jsx("div",{className:"px-4 py-3 border-b border-border bg-muted",children:v.jsxs("h3",{className:"text-lg font-semibold text-card-foreground flex items-center",children:[v.jsx(ws,{className:"w-5 h-5 mr-2"}),gn," (",K.length,")"]})}),v.jsx("div",{className:"divide-y divide-border",children:K.map((B,F)=>{const Y=V(B),wn=Y==="added"?pp:Y==="removed"?_p:ws,Zn=pr("text-xs px-2 py-1 rounded-full bg-opacity-10",Y==="added"&&"text-green-600 bg-green-100",Y==="removed"&&"text-destructive bg-destructive/20",Y==="modified"&&"text-primary bg-primary/20"),dn=Y==="added"?"text-green-600":Y==="removed"?"text-destructive":"text-primary";return v.jsxs("div",{className:"p-4 hover:bg-muted/50 transition-colors",children:[v.jsxs("div",{className:"flex items-center justify-between mb-2",children:[v.jsxs("div",{className:"flex items-center",children:[Pp.createElement(wn,{className:pr("w-4 h-4 mr-2",dn)}),v.jsx("span",{className:"font-medium text-card-foreground",children:B.field})]}),v.jsx("span",{className:Zn,children:Y==="added"?"Added":Y==="removed"?"Removed":"Updated"})]}),v.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 text-sm",children:[Y!=="added"&&v.jsxs("div",{className:"p-2 bg-destructive/10 border border-destructive/20 rounded",children:[v.jsx("div",{className:"text-xs text-destructive font-medium mb-1",children:"Old:"}),v.jsx("div",{className:"text-destructive-foreground font-mono break-words",children:bn(B.oldValue)})]}),Y!=="removed"&&v.jsxs("div",{className:"p-2 bg-green-50 border border-green-100 rounded",children:[v.jsx("div",{className:"text-xs text-green-600 font-medium mb-1",children:"New:"}),v.jsx("div",{className:"text-green-800 font-mono break-words",children:bn(B.newValue)})]})]}),Y==="modified"&&v.jsxs("div",{className:"mt-2 flex items-center text-xs text-muted-foreground",children:[v.jsx(vp,{className:"w-3 h-3 mr-1"}),"changed type: ",B.type]})]},F)})})]})};var xt={exports:{}};/**
1
+ import{j as v,Y as pr,Z as Rs,_ as ws,P as pp,$ as _p,a0 as vp,a1 as xp,a2 as mp,a3 as Hi,a4 as vt,a5 as wp,a6 as Xe,J as Ap,K as yp,B as Gi,M as Rp,a7 as Tp,a8 as Sp,a9 as Cp,aa as Ip,ab as Ep,u as Lp,I as bp,L as As,r as Op}from"./app.js";import{A as Np}from"./app-layout-i2zN9Rn-.js";import{e as Pp,r as Q}from"./monaco-ICtx6xoc.js";import{T as Wp,a as Mp,b as Bp,c as Dp}from"./tabs-BK_5wdPA.js";import{c as _r}from"./vendor-wzZzN_Jv.js";import{u as Fp}from"./app-sidebar-header-DdM1EOrb.js";import{d as Up}from"./jsoneditor-D95dIAP2.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"./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 Hp=({changes:K,title:gn="Changes",className:s=""})=>{if(!K||K.length===0)return v.jsx("div",{className:pr("bg-muted border border-border rounded-lg p-4",s),children:v.jsxs("div",{className:"flex items-center text-muted-foreground",children:[v.jsx(Rs,{className:"w-5 h-5 mr-2"}),v.jsx("span",{children:"Changes not found"})]})});const bn=B=>B===null?"null":B===void 0?"—":typeof B=="boolean"?B?"Да":"Нет":typeof B=="object"?JSON.stringify(B):String(B),V=B=>B.oldValue===void 0?"added":B.newValue===void 0?"removed":"modified";return v.jsxs("div",{className:pr("bg-card border border-border rounded-lg shadow-sm",s),children:[v.jsx("div",{className:"px-4 py-3 border-b border-border bg-muted",children:v.jsxs("h3",{className:"text-lg font-semibold text-card-foreground flex items-center",children:[v.jsx(ws,{className:"w-5 h-5 mr-2"}),gn," (",K.length,")"]})}),v.jsx("div",{className:"divide-y divide-border",children:K.map((B,F)=>{const Y=V(B),wn=Y==="added"?pp:Y==="removed"?_p:ws,Zn=pr("text-xs px-2 py-1 rounded-full bg-opacity-10",Y==="added"&&"text-green-600 bg-green-100",Y==="removed"&&"text-destructive bg-destructive/20",Y==="modified"&&"text-primary bg-primary/20"),dn=Y==="added"?"text-green-600":Y==="removed"?"text-destructive":"text-primary";return v.jsxs("div",{className:"p-4 hover:bg-muted/50 transition-colors",children:[v.jsxs("div",{className:"flex items-center justify-between mb-2",children:[v.jsxs("div",{className:"flex items-center",children:[Pp.createElement(wn,{className:pr("w-4 h-4 mr-2",dn)}),v.jsx("span",{className:"font-medium text-card-foreground",children:B.field})]}),v.jsx("span",{className:Zn,children:Y==="added"?"Added":Y==="removed"?"Removed":"Updated"})]}),v.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 text-sm",children:[Y!=="added"&&v.jsxs("div",{className:"p-2 bg-destructive/10 border border-destructive/20 rounded",children:[v.jsx("div",{className:"text-xs text-destructive font-medium mb-1",children:"Old:"}),v.jsx("div",{className:"text-destructive-foreground font-mono break-words",children:bn(B.oldValue)})]}),Y!=="removed"&&v.jsxs("div",{className:"p-2 bg-green-50 border border-green-100 rounded",children:[v.jsx("div",{className:"text-xs text-green-600 font-medium mb-1",children:"New:"}),v.jsx("div",{className:"text-green-800 font-mono break-words",children:bn(B.newValue)})]})]}),Y==="modified"&&v.jsxs("div",{className:"mt-2 flex items-center text-xs text-muted-foreground",children:[v.jsx(vp,{className:"w-3 h-3 mr-1"}),"changed type: ",B.type]})]},F)})})]})};var xt={exports:{}};/**
2
2
  * @license
3
3
  * Lodash <https://lodash.com/>
4
4
  * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
@@ -24,4 +24,4 @@ __p += '`),O&&(_+=`' +
24
24
  function print() { __p += __j.call(arguments, '') }
25
25
  `:`;
26
26
  `)+_+`return __p
27
- }`;var I=vs(function(){return W(f,w+"return "+_).apply(s,l)});if(I.source=_,Li(I))throw I;return I}function yd(n){return M(n).toLowerCase()}function Rd(n){return M(n).toUpperCase()}function Td(n,e,t){if(n=M(n),n&&(t||e===s))return Su(n);if(!n||!(e=Cn(e)))return n;var r=$n(n),i=$n(e),f=Cu(r,i),l=Iu(r,i)+1;return me(r,f,l).join("")}function Sd(n,e,t){if(n=M(n),n&&(t||e===s))return n.slice(0,Lu(n)+1);if(!n||!(e=Cn(e)))return n;var r=$n(n),i=Iu(r,$n(e))+1;return me(r,0,i).join("")}function Cd(n,e,t){if(n=M(n),n&&(t||e===s))return n.replace(Lr,"");if(!n||!(e=Cn(e)))return n;var r=$n(n),i=Cu(r,$n(e));return me(r,i).join("")}function Id(n,e){var t=vr,r=mt;if(z(e)){var i="separator"in e?e.separator:i;t="length"in e?C(e.length):t,r="omission"in e?Cn(e.omission):r}n=M(n);var f=n.length;if(Be(n)){var l=$n(n);f=l.length}if(t>=f)return n;var a=t-De(r);if(a<1)return r;var c=l?me(l,0,a).join(""):n.slice(0,a);if(i===s)return c+r;if(l&&(a+=c.length-a),bi(i)){if(n.slice(a).search(i)){var d,p=c;for(i.global||(i=Zr(i.source,M(Yi.exec(i))+"g")),i.lastIndex=0;d=i.exec(p);)var _=d.index;c=c.slice(0,_===s?a:_)}}else if(n.indexOf(Cn(i),a)!=a){var x=c.lastIndexOf(i);x>-1&&(c=c.slice(0,x))}return c+r}function Ed(n){return n=M(n),n&&Fs.test(n)?n.replace(zi,ta):n}var Ld=ze(function(n,e,t){return n+(t?" ":"")+e.toUpperCase()}),Pi=xf("toUpperCase");function _s(n,e,t){return n=M(n),e=t?s:e,e===s?Vl(n)?ua(n):$l(n):n.match(e)||[]}var vs=E(function(n,e){try{return Tn(n,s,e)}catch(t){return Li(t)?t:new T(t)}}),bd=fe(function(n,e){return Pn(e,function(t){t=kn(t),ie(n,t,Ii(n[t],n))}),n});function Od(n){var e=n==null?0:n.length,t=A();return n=e?$(n,function(r){if(typeof r[1]!="function")throw new Wn(F);return[t(r[0]),r[1]]}):[],E(function(r){for(var i=-1;++i<e;){var f=n[i];if(Tn(f[0],this,r))return Tn(f[1],this,r)}})}function Nd(n){return to(Bn(n,ln))}function Wi(n){return function(){return n}}function Pd(n,e){return n==null||n!==n?e:n}var Wd=wf(),Md=wf(!0);function mn(n){return n}function Mi(n){return Ju(typeof n=="function"?n:Bn(n,ln))}function Bd(n){return Vu(Bn(n,ln))}function Dd(n,e){return ku(n,Bn(e,ln))}var Fd=E(function(n,e){return function(t){return ot(t,n,e)}}),Ud=E(function(n,e){return function(t){return ot(n,t,e)}});function Bi(n,e,t){var r=en(e),i=Jt(e,r);t==null&&!(z(e)&&(i.length||!r.length))&&(t=e,e=n,n=this,i=Jt(e,en(e)));var f=!(z(t)&&"chain"in t)||!!t.chain,l=le(n);return Pn(i,function(a){var c=e[a];n[a]=c,l&&(n.prototype[a]=function(){var d=this.__chain__;if(f||d){var p=n(this.__wrapped__),_=p.__actions__=_n(this.__actions__);return _.push({func:c,args:arguments,thisArg:n}),p.__chain__=d,p}return c.apply(n,ge([this.value()],arguments))})}),n}function Hd(){return tn._===this&&(tn._=ca),this}function Di(){}function Gd(n){return n=C(n),E(function(e){return ju(e,n)})}var $d=di($),qd=di(wu),zd=di(Ur);function xs(n){return Ai(n)?Hr(kn(n)):wo(n)}function Kd(n){return function(e){return n==null?s:Ie(n,e)}}var Zd=yf(),Yd=yf(!0);function Fi(){return[]}function Ui(){return!1}function Xd(){return{}}function Jd(){return""}function Qd(){return!0}function Vd(n,e){if(n=C(n),n<1||n>ce)return[];var t=Jn,r=fn(n,Jn);e=A(e),n-=Jn;for(var i=qr(r,e);++t<n;)e(t);return i}function kd(n){return S(n)?$(n,kn):In(n)?[n]:_n(Ff(M(n)))}function jd(n){var e=++aa;return M(n)+e}var np=er(function(n,e){return n+e},0),ep=pi("ceil"),tp=er(function(n,e){return n/e},1),rp=pi("floor");function ip(n){return n&&n.length?Xt(n,mn,ni):s}function up(n,e){return n&&n.length?Xt(n,A(e,2),ni):s}function fp(n){return Ru(n,mn)}function sp(n,e){return Ru(n,A(e,2))}function lp(n){return n&&n.length?Xt(n,mn,ii):s}function ap(n,e){return n&&n.length?Xt(n,A(e,2),ii):s}var op=er(function(n,e){return n*e},1),cp=pi("round"),hp=er(function(n,e){return n-e},0);function gp(n){return n&&n.length?$r(n,mn):0}function dp(n,e){return n&&n.length?$r(n,A(e,2)):0}return u.after=Bh,u.ary=Jf,u.assign=Rg,u.assignIn=as,u.assignInWith=dr,u.assignWith=Tg,u.at=Sg,u.before=Qf,u.bind=Ii,u.bindAll=bd,u.bindKey=Vf,u.castArray=Xh,u.chain=Zf,u.chunk=rc,u.compact=ic,u.concat=uc,u.cond=Od,u.conforms=Nd,u.constant=Wi,u.countBy=gh,u.create=Cg,u.curry=kf,u.curryRight=jf,u.debounce=ns,u.defaults=Ig,u.defaultsDeep=Eg,u.defer=Dh,u.delay=Fh,u.difference=fc,u.differenceBy=sc,u.differenceWith=lc,u.drop=ac,u.dropRight=oc,u.dropRightWhile=cc,u.dropWhile=hc,u.fill=gc,u.filter=ph,u.flatMap=xh,u.flatMapDeep=mh,u.flatMapDepth=wh,u.flatten=$f,u.flattenDeep=dc,u.flattenDepth=pc,u.flip=Uh,u.flow=Wd,u.flowRight=Md,u.fromPairs=_c,u.functions=Mg,u.functionsIn=Bg,u.groupBy=Ah,u.initial=xc,u.intersection=mc,u.intersectionBy=wc,u.intersectionWith=Ac,u.invert=Fg,u.invertBy=Ug,u.invokeMap=Rh,u.iteratee=Mi,u.keyBy=Th,u.keys=en,u.keysIn=xn,u.map=lr,u.mapKeys=Gg,u.mapValues=$g,u.matches=Bd,u.matchesProperty=Dd,u.memoize=or,u.merge=qg,u.mergeWith=os,u.method=Fd,u.methodOf=Ud,u.mixin=Bi,u.negate=cr,u.nthArg=Gd,u.omit=zg,u.omitBy=Kg,u.once=Hh,u.orderBy=Sh,u.over=$d,u.overArgs=Gh,u.overEvery=qd,u.overSome=zd,u.partial=Ei,u.partialRight=es,u.partition=Ch,u.pick=Zg,u.pickBy=cs,u.property=xs,u.propertyOf=Kd,u.pull=Sc,u.pullAll=zf,u.pullAllBy=Cc,u.pullAllWith=Ic,u.pullAt=Ec,u.range=Zd,u.rangeRight=Yd,u.rearg=$h,u.reject=Lh,u.remove=Lc,u.rest=qh,u.reverse=Si,u.sampleSize=Oh,u.set=Xg,u.setWith=Jg,u.shuffle=Nh,u.slice=bc,u.sortBy=Mh,u.sortedUniq=Dc,u.sortedUniqBy=Fc,u.split=xd,u.spread=zh,u.tail=Uc,u.take=Hc,u.takeRight=Gc,u.takeRightWhile=$c,u.takeWhile=qc,u.tap=ih,u.throttle=Kh,u.thru=sr,u.toArray=fs,u.toPairs=hs,u.toPairsIn=gs,u.toPath=kd,u.toPlainObject=ls,u.transform=Qg,u.unary=Zh,u.union=zc,u.unionBy=Kc,u.unionWith=Zc,u.uniq=Yc,u.uniqBy=Xc,u.uniqWith=Jc,u.unset=Vg,u.unzip=Ci,u.unzipWith=Kf,u.update=kg,u.updateWith=jg,u.values=Ye,u.valuesIn=nd,u.without=Qc,u.words=_s,u.wrap=Yh,u.xor=Vc,u.xorBy=kc,u.xorWith=jc,u.zip=nh,u.zipObject=eh,u.zipObjectDeep=th,u.zipWith=rh,u.entries=hs,u.entriesIn=gs,u.extend=as,u.extendWith=dr,Bi(u,u),u.add=np,u.attempt=vs,u.camelCase=id,u.capitalize=ds,u.ceil=ep,u.clamp=ed,u.clone=Jh,u.cloneDeep=Vh,u.cloneDeepWith=kh,u.cloneWith=Qh,u.conformsTo=jh,u.deburr=ps,u.defaultTo=Pd,u.divide=tp,u.endsWith=ud,u.eq=zn,u.escape=fd,u.escapeRegExp=sd,u.every=dh,u.find=_h,u.findIndex=Hf,u.findKey=Lg,u.findLast=vh,u.findLastIndex=Gf,u.findLastKey=bg,u.floor=rp,u.forEach=Yf,u.forEachRight=Xf,u.forIn=Og,u.forInRight=Ng,u.forOwn=Pg,u.forOwnRight=Wg,u.get=Oi,u.gt=ng,u.gte=eg,u.has=Dg,u.hasIn=Ni,u.head=qf,u.identity=mn,u.includes=yh,u.indexOf=vc,u.inRange=td,u.invoke=Hg,u.isArguments=be,u.isArray=S,u.isArrayBuffer=tg,u.isArrayLike=vn,u.isArrayLikeObject=X,u.isBoolean=rg,u.isBuffer=we,u.isDate=ig,u.isElement=ug,u.isEmpty=fg,u.isEqual=sg,u.isEqualWith=lg,u.isError=Li,u.isFinite=ag,u.isFunction=le,u.isInteger=ts,u.isLength=hr,u.isMap=rs,u.isMatch=og,u.isMatchWith=cg,u.isNaN=hg,u.isNative=gg,u.isNil=pg,u.isNull=dg,u.isNumber=is,u.isObject=z,u.isObjectLike=Z,u.isPlainObject=_t,u.isRegExp=bi,u.isSafeInteger=_g,u.isSet=us,u.isString=gr,u.isSymbol=In,u.isTypedArray=Ze,u.isUndefined=vg,u.isWeakMap=xg,u.isWeakSet=mg,u.join=yc,u.kebabCase=ld,u.last=Fn,u.lastIndexOf=Rc,u.lowerCase=ad,u.lowerFirst=od,u.lt=wg,u.lte=Ag,u.max=ip,u.maxBy=up,u.mean=fp,u.meanBy=sp,u.min=lp,u.minBy=ap,u.stubArray=Fi,u.stubFalse=Ui,u.stubObject=Xd,u.stubString=Jd,u.stubTrue=Qd,u.multiply=op,u.nth=Tc,u.noConflict=Hd,u.noop=Di,u.now=ar,u.pad=cd,u.padEnd=hd,u.padStart=gd,u.parseInt=dd,u.random=rd,u.reduce=Ih,u.reduceRight=Eh,u.repeat=pd,u.replace=_d,u.result=Yg,u.round=cp,u.runInContext=o,u.sample=bh,u.size=Ph,u.snakeCase=vd,u.some=Wh,u.sortedIndex=Oc,u.sortedIndexBy=Nc,u.sortedIndexOf=Pc,u.sortedLastIndex=Wc,u.sortedLastIndexBy=Mc,u.sortedLastIndexOf=Bc,u.startCase=md,u.startsWith=wd,u.subtract=hp,u.sum=gp,u.sumBy=dp,u.template=Ad,u.times=Vd,u.toFinite=ae,u.toInteger=C,u.toLength=ss,u.toLower=yd,u.toNumber=Un,u.toSafeInteger=yg,u.toString=M,u.toUpper=Rd,u.trim=Td,u.trimEnd=Sd,u.trimStart=Cd,u.truncate=Id,u.unescape=Ed,u.uniqueId=jd,u.upperCase=Ld,u.upperFirst=Pi,u.each=Yf,u.eachRight=Xf,u.first=qf,Bi(u,(function(){var n={};return Qn(u,function(e,t){D.call(u.prototype,t)||(n[t]=e)}),n})(),{chain:!1}),u.VERSION=bn,Pn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){u[n].placeholder=u}),Pn(["drop","take"],function(n,e){b.prototype[n]=function(t){t=t===s?1:j(C(t),0);var r=this.__filtered__&&!e?new b(this):this.clone();return r.__filtered__?r.__takeCount__=fn(t,r.__takeCount__):r.__views__.push({size:fn(t,Jn),type:n+(r.__dir__<0?"Right":"")}),r},b.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),Pn(["filter","map","takeWhile"],function(n,e){var t=e+1,r=t==At||t==ne;b.prototype[n]=function(i){var f=this.clone();return f.__iteratees__.push({iteratee:A(i,3),type:t}),f.__filtered__=f.__filtered__||r,f}}),Pn(["head","last"],function(n,e){var t="take"+(e?"Right":"");b.prototype[n]=function(){return this[t](1).value()[0]}}),Pn(["initial","tail"],function(n,e){var t="drop"+(e?"":"Right");b.prototype[n]=function(){return this.__filtered__?new b(this):this[t](1)}}),b.prototype.compact=function(){return this.filter(mn)},b.prototype.find=function(n){return this.filter(n).head()},b.prototype.findLast=function(n){return this.reverse().find(n)},b.prototype.invokeMap=E(function(n,e){return typeof n=="function"?new b(this):this.map(function(t){return ot(t,n,e)})}),b.prototype.reject=function(n){return this.filter(cr(A(n)))},b.prototype.slice=function(n,e){n=C(n);var t=this;return t.__filtered__&&(n>0||e<0)?new b(t):(n<0?t=t.takeRight(-n):n&&(t=t.drop(n)),e!==s&&(e=C(e),t=e<0?t.dropRight(-e):t.take(e-n)),t)},b.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},b.prototype.toArray=function(){return this.take(Jn)},Qn(b.prototype,function(n,e){var t=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=u[r?"take"+(e=="last"?"Right":""):e],f=r||/^find/.test(e);i&&(u.prototype[e]=function(){var l=this.__wrapped__,a=r?[1]:arguments,c=l instanceof b,d=a[0],p=c||S(l),_=function(L){var O=i.apply(u,ge([L],a));return r&&x?O[0]:O};p&&t&&typeof d=="function"&&d.length!=1&&(c=p=!1);var x=this.__chain__,w=!!this.__actions__.length,y=f&&!x,I=c&&!w;if(!f&&p){l=I?l:new b(this);var R=n.apply(l,a);return R.__actions__.push({func:sr,args:[_],thisArg:s}),new Mn(R,x)}return y&&I?n.apply(this,a):(R=this.thru(_),y?r?R.value()[0]:R.value():R)})}),Pn(["pop","push","shift","sort","splice","unshift"],function(n){var e=Pt[n],t=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var f=this.value();return e.apply(S(f)?f:[],i)}return this[t](function(l){return e.apply(S(l)?l:[],i)})}}),Qn(b.prototype,function(n,e){var t=u[e];if(t){var r=t.name+"";D.call(Ge,r)||(Ge[r]=[]),Ge[r].push({name:e,func:t})}}),Ge[nr(s,N).name]=[{name:"wrapper",func:s}],b.prototype.clone=Ia,b.prototype.reverse=Ea,b.prototype.value=La,u.prototype.at=uh,u.prototype.chain=fh,u.prototype.commit=sh,u.prototype.next=lh,u.prototype.plant=oh,u.prototype.reverse=ch,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=hh,u.prototype.first=u.prototype.head,rt&&(u.prototype[rt]=ah),u}),Fe=fa();ye?((ye.exports=Fe)._=Fe,Mr._=Fe):tn._=Fe}).call(Gp)})(xt,xt.exports)),xt.exports}var qp=$p();const Ts=({notifications:K,onMarkAsRead:gn,onLoadMore:s,loadingMore:bn,messages:V,hasMore:B=!1,showDiff:F=!1})=>{const Y=Q.useRef(null),wn=Q.useRef(!1),[Zn,dn]=Q.useState([]),[ln,jn]=Q.useState(!1),[Yn,An]=Q.useState(null),pn=Q.useRef(qp.debounce(()=>{s&&B&&!wn.current&&(wn.current=!0,s(),wn.current=!1)},300)).current;Q.useEffect(()=>{const N=new Set,un=K.filter(q=>N.has(q.id)?!1:(N.add(q.id),!0));dn(un)},[K]),Q.useEffect(()=>{if(!s)return;const N=()=>{if(wn.current||!B)return;const q=Y.current;if(!q)return;const{scrollTop:yn,scrollHeight:Rn,clientHeight:nn}=q;yn+nn>=Rn-600&&pn()},un=Y.current;if(un)return un.addEventListener("scroll",N),()=>{un.removeEventListener("scroll",N),pn.cancel()}},[B,s,pn]),Q.useEffect(()=>()=>{pn.cancel()},[pn]);const an=async(N,un)=>{try{await gn(N,un)}catch(q){console.error("Error marking as read:",q)}};return v.jsxs("div",{children:[v.jsxs(xp,{wrapperHeight:"max-h-[70vh]",ref:Y,className:`${bn?"opacity-40":""}`,children:[v.jsx(mp,{className:"sticky top-0 bg-background shadow z-1",children:v.jsxs(Hi,{className:`grid ${F?"grid-cols-[50px_1fr_2fr_200px_50px]":"grid-cols-[50px_1fr_2fr_200px]"}`,children:[v.jsx(vt,{className:"p-2 text-left"}),v.jsx(vt,{className:"p-2 text-left",children:V.Title}),v.jsx(vt,{className:"p-2 text-left",children:V.Message}),v.jsx(vt,{className:"p-2 text-left",children:V.Date}),F&&v.jsx(vt,{className:"p-2 text-left",children:V.Diff})]})}),v.jsxs(wp,{children:[Zn.map(N=>{var un;return v.jsxs(Hi,{className:`${N.read?"":"bg-chart-1/20 hover:bg-chart-1/20"} grid ${F?"grid-cols-[50px_1fr_2fr_200px_50px]":"grid-cols-[50px_1fr_2fr_200px]"}`,children:[v.jsx(Xe,{className:`p-2 ${F?"align-middle":"align-top"} pt-2.5`,children:v.jsxs(Ap,{children:[v.jsx(yp,{asChild:!0,children:v.jsx(Gi,{variant:"ghost",size:"icon",className:`size-4 ${N.read?"opacity-50 pointer-events-none":""}`,onClick:()=>an(N.notificationClass,N.id),children:v.jsx(Rs,{className:"text-primary"})})}),v.jsx(Rp,{side:"right",className:"z-[1003]",children:v.jsx("p",{children:V["Make read"]})})]})}),v.jsx(Xe,{className:`p-2 ${F?"align-middle":"align-top"} font-medium`,children:N.title}),v.jsx(Xe,{className:`p-2 ${F?"align-middle":"align-top"} whitespace-break-spaces`,children:v.jsx("div",{className:"max-w-[500px] whitespace-break-spaces",children:N.message})}),v.jsx(Xe,{className:`p-2 ${F?"align-middle":"align-top"}`,children:new Date(N.createdAt).toLocaleString()}),F&&((un=N.metadata)==null?void 0:un.changes)&&v.jsx(Xe,{className:"p-2 align-top",children:v.jsx(Gi,{variant:"green",size:"sm",onClick:()=>{var q;An((q=N.metadata)==null?void 0:q.changes),jn(!0)},children:v.jsx(Tp,{})})})]},N.id)}),v.jsx(Hi,{children:!B&&v.jsx(Xe,{colSpan:F?5:4,children:v.jsx("div",{className:"text-center py-2 font-medium",children:V["The end of the list has been reached"]})})})]})]}),F&&v.jsx(Sp,{open:ln,onOpenChange:N=>{jn(N),N||setTimeout(()=>{document.body.removeAttribute("style")},300)},children:v.jsxs(Cp,{className:"z-[1022] sm:max-w-[60vw]",children:[v.jsx(Ip,{children:v.jsx(Ep,{children:"Diff"})}),v.jsx(Hp,{changes:Yn,className:"max-h-[80vh] overflow-auto sm:max-w-[60vw] w-full"})]})})]})},zp=({notifications:K,onMarkAsRead:gn,onLoadMore:s,hasMore:bn,loadingMore:V,messages:B})=>v.jsx(Ts,{notifications:K,onMarkAsRead:gn,loadingMore:V,messages:B,onLoadMore:s,hasMore:bn,showDiff:!1}),Kp=({notifications:K,onMarkAsRead:gn,onLoadMore:s,hasMore:bn,loadingMore:V,messages:B})=>v.jsx(Ts,{notifications:K,onMarkAsRead:gn,onLoadMore:s,messages:B,loadingMore:V,hasMore:bn,showDiff:!0}),Zp=()=>{const K=Lp(),{allNotifications:gn,markAsRead:s,markAllAsRead:bn,tabs:V,search:B,fetchAllNotifications:F,paginateNotifications:Y,refreshBellNotifications:wn,messages:Zn}=Fp(),[dn,ln]=Q.useState(!0),[jn,Yn]=Q.useState([]),[An,pn]=Q.useState(!0),[an,N]=Q.useState(!1),[un,q]=Q.useState(!1),yn=Q.useRef(20),Rn=()=>new URL(K.url,window.location.origin).searchParams.get("type")??"general",[nn,On]=Q.useState(Rn());Q.useEffect(()=>{const ne=new URL(K.url,window.location.origin).searchParams.get("type");ne&&ne!==nn&&On(ne)},[K.url,nn,K.props.auth.user.isAdministrator]),Q.useEffect(()=>{(async()=>{ln(!0),yn.current=20,pn(!0),await F(nn),setTimeout(()=>{ln(!1)},0)})()},[nn]),Q.useEffect(()=>{const P=gn.filter(ne=>ne.notificationClass===nn);Yn(P)},[gn,nn]);const Ae=async P=>{Op.get(K.url,{type:P},{preserveState:!0,preserveScroll:!0,replace:!0})},Oe=async(P,ne)=>{try{await s(P,ne),await wn()}catch(Xn){throw console.error("Error marking as read:",Xn),Xn}},vr=async()=>{try{N(!0),await bn(),await wn(),N(!1)}catch(P){console.log(P)}},mt=Q.useCallback(async()=>{if(!An||dn)return;q(!0),(await Y(nn,yn.current)).length<20&&pn(!1),yn.current=yn.current+20,q(!1)},[An,dn,nn,Y]),xr=P=>dn?v.jsx(As,{className:"mx-auto mt-14 size-8 animate-spin"}):!dn&&jn.length>0?P==="system"?v.jsx(Kp,{notifications:jn,onMarkAsRead:Oe,loadingMore:un,messages:Zn,onLoadMore:mt,hasMore:An}):v.jsx(zp,{notifications:jn,onMarkAsRead:Oe,onLoadMore:mt,messages:Zn,loadingMore:un,hasMore:An}):v.jsx("div",{className:"text-center font-medium mt-8",children:"No notifications found"}),wt=async P=>{yn.current=20,pn(!0),ln(!0),await B(P,nn),setTimeout(()=>{ln(!1)},0)},At=Up(wt,500);return v.jsxs("div",{className:"flex h-auto flex-1 flex-col gap-4 rounded-xl p-4",children:[v.jsxs("div",{className:"flex flex-col gap-4",children:[v.jsx("h1",{className:"font-bold text-xl",children:K.props.title}),v.jsxs("div",{className:"flex justify-between items-center",children:[v.jsx(bp,{type:"search",placeholder:Zn.Search,onChange:P=>{At(P.target.value)},onKeyDown:P=>{P.key==="Enter"&&(P.preventDefault(),wt(P.currentTarget.value))},className:"w-[200px] p-2 border rounded"}),v.jsxs("div",{className:"flex items-center gap-2",children:[an&&v.jsx(As,{className:"size-6 animate-spin"}),v.jsx(Gi,{variant:"green",size:"sm",onClick:vr,children:Zn["Make all read"]})]})]})]}),v.jsxs(Wp,{value:nn,className:"w-full",onValueChange:Ae,children:[v.jsx(Mp,{className:"w-full mb-4",children:V.map(P=>v.jsx(Bp,{value:P,disabled:dn,className:"capitalize",children:P},P))}),V.map(P=>v.jsx(Dp,{value:P,children:xr(P)},P))]})]})},Yp=[],h0=()=>v.jsx(Np,{breadcrumbs:Yp,children:v.jsx(Zp,{})});export{h0 as default};
27
+ }`;var I=vs(function(){return W(f,w+"return "+_).apply(s,l)});if(I.source=_,Li(I))throw I;return I}function yd(n){return M(n).toLowerCase()}function Rd(n){return M(n).toUpperCase()}function Td(n,e,t){if(n=M(n),n&&(t||e===s))return Su(n);if(!n||!(e=Cn(e)))return n;var r=$n(n),i=$n(e),f=Cu(r,i),l=Iu(r,i)+1;return me(r,f,l).join("")}function Sd(n,e,t){if(n=M(n),n&&(t||e===s))return n.slice(0,Lu(n)+1);if(!n||!(e=Cn(e)))return n;var r=$n(n),i=Iu(r,$n(e))+1;return me(r,0,i).join("")}function Cd(n,e,t){if(n=M(n),n&&(t||e===s))return n.replace(Lr,"");if(!n||!(e=Cn(e)))return n;var r=$n(n),i=Cu(r,$n(e));return me(r,i).join("")}function Id(n,e){var t=vr,r=mt;if(z(e)){var i="separator"in e?e.separator:i;t="length"in e?C(e.length):t,r="omission"in e?Cn(e.omission):r}n=M(n);var f=n.length;if(Be(n)){var l=$n(n);f=l.length}if(t>=f)return n;var a=t-De(r);if(a<1)return r;var c=l?me(l,0,a).join(""):n.slice(0,a);if(i===s)return c+r;if(l&&(a+=c.length-a),bi(i)){if(n.slice(a).search(i)){var d,p=c;for(i.global||(i=Zr(i.source,M(Yi.exec(i))+"g")),i.lastIndex=0;d=i.exec(p);)var _=d.index;c=c.slice(0,_===s?a:_)}}else if(n.indexOf(Cn(i),a)!=a){var x=c.lastIndexOf(i);x>-1&&(c=c.slice(0,x))}return c+r}function Ed(n){return n=M(n),n&&Fs.test(n)?n.replace(zi,ta):n}var Ld=ze(function(n,e,t){return n+(t?" ":"")+e.toUpperCase()}),Pi=xf("toUpperCase");function _s(n,e,t){return n=M(n),e=t?s:e,e===s?Vl(n)?ua(n):$l(n):n.match(e)||[]}var vs=E(function(n,e){try{return Tn(n,s,e)}catch(t){return Li(t)?t:new T(t)}}),bd=fe(function(n,e){return Pn(e,function(t){t=kn(t),ie(n,t,Ii(n[t],n))}),n});function Od(n){var e=n==null?0:n.length,t=A();return n=e?$(n,function(r){if(typeof r[1]!="function")throw new Wn(F);return[t(r[0]),r[1]]}):[],E(function(r){for(var i=-1;++i<e;){var f=n[i];if(Tn(f[0],this,r))return Tn(f[1],this,r)}})}function Nd(n){return to(Bn(n,ln))}function Wi(n){return function(){return n}}function Pd(n,e){return n==null||n!==n?e:n}var Wd=wf(),Md=wf(!0);function mn(n){return n}function Mi(n){return Ju(typeof n=="function"?n:Bn(n,ln))}function Bd(n){return Vu(Bn(n,ln))}function Dd(n,e){return ku(n,Bn(e,ln))}var Fd=E(function(n,e){return function(t){return ot(t,n,e)}}),Ud=E(function(n,e){return function(t){return ot(n,t,e)}});function Bi(n,e,t){var r=en(e),i=Jt(e,r);t==null&&!(z(e)&&(i.length||!r.length))&&(t=e,e=n,n=this,i=Jt(e,en(e)));var f=!(z(t)&&"chain"in t)||!!t.chain,l=le(n);return Pn(i,function(a){var c=e[a];n[a]=c,l&&(n.prototype[a]=function(){var d=this.__chain__;if(f||d){var p=n(this.__wrapped__),_=p.__actions__=_n(this.__actions__);return _.push({func:c,args:arguments,thisArg:n}),p.__chain__=d,p}return c.apply(n,ge([this.value()],arguments))})}),n}function Hd(){return tn._===this&&(tn._=ca),this}function Di(){}function Gd(n){return n=C(n),E(function(e){return ju(e,n)})}var $d=di($),qd=di(wu),zd=di(Ur);function xs(n){return Ai(n)?Hr(kn(n)):wo(n)}function Kd(n){return function(e){return n==null?s:Ie(n,e)}}var Zd=yf(),Yd=yf(!0);function Fi(){return[]}function Ui(){return!1}function Xd(){return{}}function Jd(){return""}function Qd(){return!0}function Vd(n,e){if(n=C(n),n<1||n>ce)return[];var t=Jn,r=fn(n,Jn);e=A(e),n-=Jn;for(var i=qr(r,e);++t<n;)e(t);return i}function kd(n){return S(n)?$(n,kn):In(n)?[n]:_n(Ff(M(n)))}function jd(n){var e=++aa;return M(n)+e}var np=er(function(n,e){return n+e},0),ep=pi("ceil"),tp=er(function(n,e){return n/e},1),rp=pi("floor");function ip(n){return n&&n.length?Xt(n,mn,ni):s}function up(n,e){return n&&n.length?Xt(n,A(e,2),ni):s}function fp(n){return Ru(n,mn)}function sp(n,e){return Ru(n,A(e,2))}function lp(n){return n&&n.length?Xt(n,mn,ii):s}function ap(n,e){return n&&n.length?Xt(n,A(e,2),ii):s}var op=er(function(n,e){return n*e},1),cp=pi("round"),hp=er(function(n,e){return n-e},0);function gp(n){return n&&n.length?$r(n,mn):0}function dp(n,e){return n&&n.length?$r(n,A(e,2)):0}return u.after=Bh,u.ary=Jf,u.assign=Rg,u.assignIn=as,u.assignInWith=dr,u.assignWith=Tg,u.at=Sg,u.before=Qf,u.bind=Ii,u.bindAll=bd,u.bindKey=Vf,u.castArray=Xh,u.chain=Zf,u.chunk=rc,u.compact=ic,u.concat=uc,u.cond=Od,u.conforms=Nd,u.constant=Wi,u.countBy=gh,u.create=Cg,u.curry=kf,u.curryRight=jf,u.debounce=ns,u.defaults=Ig,u.defaultsDeep=Eg,u.defer=Dh,u.delay=Fh,u.difference=fc,u.differenceBy=sc,u.differenceWith=lc,u.drop=ac,u.dropRight=oc,u.dropRightWhile=cc,u.dropWhile=hc,u.fill=gc,u.filter=ph,u.flatMap=xh,u.flatMapDeep=mh,u.flatMapDepth=wh,u.flatten=$f,u.flattenDeep=dc,u.flattenDepth=pc,u.flip=Uh,u.flow=Wd,u.flowRight=Md,u.fromPairs=_c,u.functions=Mg,u.functionsIn=Bg,u.groupBy=Ah,u.initial=xc,u.intersection=mc,u.intersectionBy=wc,u.intersectionWith=Ac,u.invert=Fg,u.invertBy=Ug,u.invokeMap=Rh,u.iteratee=Mi,u.keyBy=Th,u.keys=en,u.keysIn=xn,u.map=lr,u.mapKeys=Gg,u.mapValues=$g,u.matches=Bd,u.matchesProperty=Dd,u.memoize=or,u.merge=qg,u.mergeWith=os,u.method=Fd,u.methodOf=Ud,u.mixin=Bi,u.negate=cr,u.nthArg=Gd,u.omit=zg,u.omitBy=Kg,u.once=Hh,u.orderBy=Sh,u.over=$d,u.overArgs=Gh,u.overEvery=qd,u.overSome=zd,u.partial=Ei,u.partialRight=es,u.partition=Ch,u.pick=Zg,u.pickBy=cs,u.property=xs,u.propertyOf=Kd,u.pull=Sc,u.pullAll=zf,u.pullAllBy=Cc,u.pullAllWith=Ic,u.pullAt=Ec,u.range=Zd,u.rangeRight=Yd,u.rearg=$h,u.reject=Lh,u.remove=Lc,u.rest=qh,u.reverse=Si,u.sampleSize=Oh,u.set=Xg,u.setWith=Jg,u.shuffle=Nh,u.slice=bc,u.sortBy=Mh,u.sortedUniq=Dc,u.sortedUniqBy=Fc,u.split=xd,u.spread=zh,u.tail=Uc,u.take=Hc,u.takeRight=Gc,u.takeRightWhile=$c,u.takeWhile=qc,u.tap=ih,u.throttle=Kh,u.thru=sr,u.toArray=fs,u.toPairs=hs,u.toPairsIn=gs,u.toPath=kd,u.toPlainObject=ls,u.transform=Qg,u.unary=Zh,u.union=zc,u.unionBy=Kc,u.unionWith=Zc,u.uniq=Yc,u.uniqBy=Xc,u.uniqWith=Jc,u.unset=Vg,u.unzip=Ci,u.unzipWith=Kf,u.update=kg,u.updateWith=jg,u.values=Ye,u.valuesIn=nd,u.without=Qc,u.words=_s,u.wrap=Yh,u.xor=Vc,u.xorBy=kc,u.xorWith=jc,u.zip=nh,u.zipObject=eh,u.zipObjectDeep=th,u.zipWith=rh,u.entries=hs,u.entriesIn=gs,u.extend=as,u.extendWith=dr,Bi(u,u),u.add=np,u.attempt=vs,u.camelCase=id,u.capitalize=ds,u.ceil=ep,u.clamp=ed,u.clone=Jh,u.cloneDeep=Vh,u.cloneDeepWith=kh,u.cloneWith=Qh,u.conformsTo=jh,u.deburr=ps,u.defaultTo=Pd,u.divide=tp,u.endsWith=ud,u.eq=zn,u.escape=fd,u.escapeRegExp=sd,u.every=dh,u.find=_h,u.findIndex=Hf,u.findKey=Lg,u.findLast=vh,u.findLastIndex=Gf,u.findLastKey=bg,u.floor=rp,u.forEach=Yf,u.forEachRight=Xf,u.forIn=Og,u.forInRight=Ng,u.forOwn=Pg,u.forOwnRight=Wg,u.get=Oi,u.gt=ng,u.gte=eg,u.has=Dg,u.hasIn=Ni,u.head=qf,u.identity=mn,u.includes=yh,u.indexOf=vc,u.inRange=td,u.invoke=Hg,u.isArguments=be,u.isArray=S,u.isArrayBuffer=tg,u.isArrayLike=vn,u.isArrayLikeObject=X,u.isBoolean=rg,u.isBuffer=we,u.isDate=ig,u.isElement=ug,u.isEmpty=fg,u.isEqual=sg,u.isEqualWith=lg,u.isError=Li,u.isFinite=ag,u.isFunction=le,u.isInteger=ts,u.isLength=hr,u.isMap=rs,u.isMatch=og,u.isMatchWith=cg,u.isNaN=hg,u.isNative=gg,u.isNil=pg,u.isNull=dg,u.isNumber=is,u.isObject=z,u.isObjectLike=Z,u.isPlainObject=_t,u.isRegExp=bi,u.isSafeInteger=_g,u.isSet=us,u.isString=gr,u.isSymbol=In,u.isTypedArray=Ze,u.isUndefined=vg,u.isWeakMap=xg,u.isWeakSet=mg,u.join=yc,u.kebabCase=ld,u.last=Fn,u.lastIndexOf=Rc,u.lowerCase=ad,u.lowerFirst=od,u.lt=wg,u.lte=Ag,u.max=ip,u.maxBy=up,u.mean=fp,u.meanBy=sp,u.min=lp,u.minBy=ap,u.stubArray=Fi,u.stubFalse=Ui,u.stubObject=Xd,u.stubString=Jd,u.stubTrue=Qd,u.multiply=op,u.nth=Tc,u.noConflict=Hd,u.noop=Di,u.now=ar,u.pad=cd,u.padEnd=hd,u.padStart=gd,u.parseInt=dd,u.random=rd,u.reduce=Ih,u.reduceRight=Eh,u.repeat=pd,u.replace=_d,u.result=Yg,u.round=cp,u.runInContext=o,u.sample=bh,u.size=Ph,u.snakeCase=vd,u.some=Wh,u.sortedIndex=Oc,u.sortedIndexBy=Nc,u.sortedIndexOf=Pc,u.sortedLastIndex=Wc,u.sortedLastIndexBy=Mc,u.sortedLastIndexOf=Bc,u.startCase=md,u.startsWith=wd,u.subtract=hp,u.sum=gp,u.sumBy=dp,u.template=Ad,u.times=Vd,u.toFinite=ae,u.toInteger=C,u.toLength=ss,u.toLower=yd,u.toNumber=Un,u.toSafeInteger=yg,u.toString=M,u.toUpper=Rd,u.trim=Td,u.trimEnd=Sd,u.trimStart=Cd,u.truncate=Id,u.unescape=Ed,u.uniqueId=jd,u.upperCase=Ld,u.upperFirst=Pi,u.each=Yf,u.eachRight=Xf,u.first=qf,Bi(u,(function(){var n={};return Qn(u,function(e,t){D.call(u.prototype,t)||(n[t]=e)}),n})(),{chain:!1}),u.VERSION=bn,Pn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){u[n].placeholder=u}),Pn(["drop","take"],function(n,e){b.prototype[n]=function(t){t=t===s?1:j(C(t),0);var r=this.__filtered__&&!e?new b(this):this.clone();return r.__filtered__?r.__takeCount__=fn(t,r.__takeCount__):r.__views__.push({size:fn(t,Jn),type:n+(r.__dir__<0?"Right":"")}),r},b.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),Pn(["filter","map","takeWhile"],function(n,e){var t=e+1,r=t==At||t==ne;b.prototype[n]=function(i){var f=this.clone();return f.__iteratees__.push({iteratee:A(i,3),type:t}),f.__filtered__=f.__filtered__||r,f}}),Pn(["head","last"],function(n,e){var t="take"+(e?"Right":"");b.prototype[n]=function(){return this[t](1).value()[0]}}),Pn(["initial","tail"],function(n,e){var t="drop"+(e?"":"Right");b.prototype[n]=function(){return this.__filtered__?new b(this):this[t](1)}}),b.prototype.compact=function(){return this.filter(mn)},b.prototype.find=function(n){return this.filter(n).head()},b.prototype.findLast=function(n){return this.reverse().find(n)},b.prototype.invokeMap=E(function(n,e){return typeof n=="function"?new b(this):this.map(function(t){return ot(t,n,e)})}),b.prototype.reject=function(n){return this.filter(cr(A(n)))},b.prototype.slice=function(n,e){n=C(n);var t=this;return t.__filtered__&&(n>0||e<0)?new b(t):(n<0?t=t.takeRight(-n):n&&(t=t.drop(n)),e!==s&&(e=C(e),t=e<0?t.dropRight(-e):t.take(e-n)),t)},b.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},b.prototype.toArray=function(){return this.take(Jn)},Qn(b.prototype,function(n,e){var t=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=u[r?"take"+(e=="last"?"Right":""):e],f=r||/^find/.test(e);i&&(u.prototype[e]=function(){var l=this.__wrapped__,a=r?[1]:arguments,c=l instanceof b,d=a[0],p=c||S(l),_=function(L){var O=i.apply(u,ge([L],a));return r&&x?O[0]:O};p&&t&&typeof d=="function"&&d.length!=1&&(c=p=!1);var x=this.__chain__,w=!!this.__actions__.length,y=f&&!x,I=c&&!w;if(!f&&p){l=I?l:new b(this);var R=n.apply(l,a);return R.__actions__.push({func:sr,args:[_],thisArg:s}),new Mn(R,x)}return y&&I?n.apply(this,a):(R=this.thru(_),y?r?R.value()[0]:R.value():R)})}),Pn(["pop","push","shift","sort","splice","unshift"],function(n){var e=Pt[n],t=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var f=this.value();return e.apply(S(f)?f:[],i)}return this[t](function(l){return e.apply(S(l)?l:[],i)})}}),Qn(b.prototype,function(n,e){var t=u[e];if(t){var r=t.name+"";D.call(Ge,r)||(Ge[r]=[]),Ge[r].push({name:e,func:t})}}),Ge[nr(s,N).name]=[{name:"wrapper",func:s}],b.prototype.clone=Ia,b.prototype.reverse=Ea,b.prototype.value=La,u.prototype.at=uh,u.prototype.chain=fh,u.prototype.commit=sh,u.prototype.next=lh,u.prototype.plant=oh,u.prototype.reverse=ch,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=hh,u.prototype.first=u.prototype.head,rt&&(u.prototype[rt]=ah),u}),Fe=fa();ye?((ye.exports=Fe)._=Fe,Mr._=Fe):tn._=Fe}).call(Gp)})(xt,xt.exports)),xt.exports}var qp=$p();const Ts=({notifications:K,onMarkAsRead:gn,onLoadMore:s,loadingMore:bn,messages:V,hasMore:B=!1,showDiff:F=!1})=>{const Y=Q.useRef(null),wn=Q.useRef(!1),[Zn,dn]=Q.useState([]),[ln,jn]=Q.useState(!1),[Yn,An]=Q.useState(null),pn=Q.useRef(qp.debounce(()=>{s&&B&&!wn.current&&(wn.current=!0,s(),wn.current=!1)},300)).current;Q.useEffect(()=>{const N=new Set,un=K.filter(q=>N.has(q.id)?!1:(N.add(q.id),!0));dn(un)},[K]),Q.useEffect(()=>{if(!s)return;const N=()=>{if(wn.current||!B)return;const q=Y.current;if(!q)return;const{scrollTop:yn,scrollHeight:Rn,clientHeight:nn}=q;yn+nn>=Rn-600&&pn()},un=Y.current;if(un)return un.addEventListener("scroll",N),()=>{un.removeEventListener("scroll",N),pn.cancel()}},[B,s,pn]),Q.useEffect(()=>()=>{pn.cancel()},[pn]);const an=async(N,un)=>{try{await gn(N,un)}catch(q){console.error("Error marking as read:",q)}};return v.jsxs("div",{children:[v.jsxs(xp,{wrapperHeight:"max-h-[70vh]",ref:Y,className:`${bn?"opacity-40":""}`,children:[v.jsx(mp,{className:"sticky top-0 bg-background shadow z-1",children:v.jsxs(Hi,{className:`grid ${F?"grid-cols-[50px_1fr_2fr_200px_50px]":"grid-cols-[50px_1fr_2fr_200px]"}`,children:[v.jsx(vt,{className:"p-2 text-left"}),v.jsx(vt,{className:"p-2 text-left",children:V.Title}),v.jsx(vt,{className:"p-2 text-left",children:V.Message}),v.jsx(vt,{className:"p-2 text-left",children:V.Date}),F&&v.jsx(vt,{className:"p-2 text-left",children:V.Diff})]})}),v.jsxs(wp,{children:[Zn.map(N=>{var un;return v.jsxs(Hi,{className:`${N.read?"":"bg-chart-1/20 hover:bg-chart-1/20"} grid ${F?"grid-cols-[50px_1fr_2fr_200px_50px]":"grid-cols-[50px_1fr_2fr_200px]"}`,children:[v.jsx(Xe,{className:`p-2 ${F?"self-center":"self-start"} pt-2.5`,children:v.jsxs(Ap,{children:[v.jsx(yp,{asChild:!0,children:v.jsx(Gi,{variant:"ghost",size:"icon",className:`size-4 ${N.read?"opacity-50 pointer-events-none":""}`,onClick:()=>an(N.notificationClass,N.id),children:v.jsx(Rs,{className:"text-primary"})})}),v.jsx(Rp,{side:"right",className:"z-[1003]",children:v.jsx("p",{children:V["Make read"]})})]})}),v.jsx(Xe,{className:`p-2 ${F?"self-center":"self-start"} font-medium`,children:N.title}),v.jsx(Xe,{className:`p-2 ${F?"self-center":"self-start"} whitespace-break-spaces`,children:v.jsx("div",{className:"max-w-[500px] whitespace-break-spaces",children:N.message})}),v.jsx(Xe,{className:`p-2 ${F?"self-center":"self-start"}`,children:new Date(N.createdAt).toLocaleString()}),F&&((un=N.metadata)==null?void 0:un.changes)&&v.jsx(Xe,{className:"p-2 align-top",children:v.jsx(Gi,{variant:"green",size:"sm",onClick:()=>{var q;An((q=N.metadata)==null?void 0:q.changes),jn(!0)},children:v.jsx(Tp,{})})})]},N.id)}),v.jsx(Hi,{children:!B&&v.jsx(Xe,{colSpan:F?5:4,children:v.jsx("div",{className:"text-center py-2 font-medium",children:V["The end of the list has been reached"]})})})]})]}),F&&v.jsx(Sp,{open:ln,onOpenChange:N=>{jn(N),N||setTimeout(()=>{document.body.removeAttribute("style")},300)},children:v.jsxs(Cp,{className:"z-[1022] sm:max-w-[60vw]",children:[v.jsx(Ip,{children:v.jsx(Ep,{children:"Diff"})}),v.jsx(Hp,{changes:Yn,className:"max-h-[80vh] overflow-auto sm:max-w-[60vw] w-full"})]})})]})},zp=({notifications:K,onMarkAsRead:gn,onLoadMore:s,hasMore:bn,loadingMore:V,messages:B})=>v.jsx(Ts,{notifications:K,onMarkAsRead:gn,loadingMore:V,messages:B,onLoadMore:s,hasMore:bn,showDiff:!1}),Kp=({notifications:K,onMarkAsRead:gn,onLoadMore:s,hasMore:bn,loadingMore:V,messages:B})=>v.jsx(Ts,{notifications:K,onMarkAsRead:gn,onLoadMore:s,messages:B,loadingMore:V,hasMore:bn,showDiff:!0}),Zp=()=>{const K=Lp(),{allNotifications:gn,markAsRead:s,markAllAsRead:bn,tabs:V,search:B,fetchAllNotifications:F,paginateNotifications:Y,refreshBellNotifications:wn,messages:Zn}=Fp(),[dn,ln]=Q.useState(!0),[jn,Yn]=Q.useState([]),[An,pn]=Q.useState(!0),[an,N]=Q.useState(!1),[un,q]=Q.useState(!1),yn=Q.useRef(20),Rn=()=>new URL(K.url,window.location.origin).searchParams.get("type")??"general",[nn,On]=Q.useState(Rn());Q.useEffect(()=>{const ne=new URL(K.url,window.location.origin).searchParams.get("type");ne&&ne!==nn&&On(ne)},[K.url,nn,K.props.auth.user.isAdministrator]),Q.useEffect(()=>{(async()=>{ln(!0),yn.current=20,pn(!0),await F(nn),setTimeout(()=>{ln(!1)},0)})()},[nn]),Q.useEffect(()=>{const P=gn.filter(ne=>ne.notificationClass===nn);Yn(P)},[gn,nn]);const Ae=async P=>{Op.get(K.url,{type:P},{preserveState:!0,preserveScroll:!0,replace:!0})},Oe=async(P,ne)=>{try{await s(P,ne),await wn()}catch(Xn){throw console.error("Error marking as read:",Xn),Xn}},vr=async()=>{try{N(!0),await bn(),await wn(),N(!1)}catch(P){console.log(P)}},mt=Q.useCallback(async()=>{if(!An||dn)return;q(!0),(await Y(nn,yn.current)).length<20&&pn(!1),yn.current=yn.current+20,q(!1)},[An,dn,nn,Y]),xr=P=>dn?v.jsx(As,{className:"mx-auto mt-14 size-8 animate-spin"}):!dn&&jn.length>0?P==="system"?v.jsx(Kp,{notifications:jn,onMarkAsRead:Oe,loadingMore:un,messages:Zn,onLoadMore:mt,hasMore:An}):v.jsx(zp,{notifications:jn,onMarkAsRead:Oe,onLoadMore:mt,messages:Zn,loadingMore:un,hasMore:An}):v.jsx("div",{className:"text-center font-medium mt-8",children:"No notifications found"}),wt=async P=>{yn.current=20,pn(!0),ln(!0),await B(P,nn),setTimeout(()=>{ln(!1)},0)},At=Up(wt,500);return v.jsxs("div",{className:"flex h-auto flex-1 flex-col gap-4 rounded-xl p-4",children:[v.jsxs("div",{className:"flex flex-col gap-4",children:[v.jsx("h1",{className:"font-bold text-xl",children:K.props.title}),v.jsxs("div",{className:"flex justify-between items-center",children:[v.jsx(bp,{type:"search",placeholder:Zn.Search,onChange:P=>{At(P.target.value)},onKeyDown:P=>{P.key==="Enter"&&(P.preventDefault(),wt(P.currentTarget.value))},className:"w-[200px] p-2 border rounded"}),v.jsxs("div",{className:"flex items-center gap-2",children:[an&&v.jsx(As,{className:"size-6 animate-spin"}),v.jsx(Gi,{variant:"green",size:"sm",onClick:vr,children:Zn["Make all read"]})]})]})]}),v.jsxs(Wp,{value:nn,className:"w-full",onValueChange:Ae,children:[v.jsx(Mp,{className:"w-full mb-4",children:V.map(P=>v.jsx(Bp,{value:P,disabled:dn,className:"capitalize",children:P},P))}),V.map(P=>v.jsx(Dp,{value:P,children:xr(P)},P))]})]})},Yp=[],h0=()=>v.jsx(Np,{breadcrumbs:Yp,children:v.jsx(Zp,{})});export{h0 as default};
@@ -1 +1 @@
1
- import{u as o,j as t}from"./app.js";import{A as p}from"./app-layout-DinOHZzD.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-CMmguJzw.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 i=[];function N(){const r=o();return t.jsx(p,{breadcrumbs:i,children:t.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[r.props.title&&t.jsx("div",{className:"text-3xl mb-8",children:r.props.title}),t.jsx("div",{className:"text-3xl mb-8",children:"Adminizer"}),r.props.text&&t.jsx("div",{dangerouslySetInnerHTML:{__html:r.props.text}})]})})}export{N as default};
1
+ import{u as o,j as t}from"./app.js";import{A as p}from"./app-layout-i2zN9Rn-.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 i=[];function N(){const r=o();return t.jsx(p,{breadcrumbs:i,children:t.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[r.props.title&&t.jsx("div",{className:"text-3xl mb-8",children:r.props.title}),t.jsx("div",{className:"text-3xl mb-8",children:"Adminizer"}),r.props.text&&t.jsx("div",{dangerouslySetInnerHTML:{__html:r.props.text}})]})})}export{N as default};
@@ -17,18 +17,6 @@ export default async function form(req, res) {
17
17
  }
18
18
  }
19
19
  let form = FormHelper.get(req.adminizer, slug);
20
- for (let prop in req.body) {
21
- if (form[prop].type === 'json' && typeof req.body[prop] === 'string') {
22
- try {
23
- req.body[prop] = JSON.parse(req.body[prop]);
24
- }
25
- catch (e) {
26
- if (typeof req.body[prop] === "string" && req.body[prop].replace(/(\r\n|\n|\r|\s{2,})/gm, "") && e.message !== "Unexpected end of JSON input" && !/Unexpected (token .|number) in JSON at position \d/.test(e.message)) {
27
- Adminizer.log.error(JSON.stringify(req.body[prop]), e);
28
- }
29
- }
30
- }
31
- }
32
20
  if (!form) {
33
21
  return res.status(404).send("Adminpanel > Form not found");
34
22
  }
@@ -36,6 +24,18 @@ export default async function form(req, res) {
36
24
  if (!req.body) {
37
25
  return res.status(500).send("Data is empty");
38
26
  }
27
+ for (let prop in req.body) {
28
+ if (form[prop].type === 'json' && typeof req.body[prop] === 'string') {
29
+ try {
30
+ req.body[prop] = JSON.parse(req.body[prop]);
31
+ }
32
+ catch (e) {
33
+ if (typeof req.body[prop] === "string" && req.body[prop].replace(/(\r\n|\n|\r|\s{2,})/gm, "") && e.message !== "Unexpected end of JSON input" && !/Unexpected (token .|number) in JSON at position \d/.test(e.message)) {
34
+ Adminizer.log.error(JSON.stringify(req.body[prop]), e);
35
+ }
36
+ }
37
+ }
38
+ }
39
39
  // checkboxes processing
40
40
  let checkboxes = [];
41
41
  for (let key in form) {
@@ -7,8 +7,19 @@ export class MediaManagerAdapter {
7
7
  this.manager = manager;
8
8
  }
9
9
  async delete(req, res) {
10
- await this.manager.delete(req.body.item);
11
- return res.send({ msg: "ok" });
10
+ let result = await this.manager.delete(req.body.item);
11
+ if (result) {
12
+ return res.send({
13
+ type: "success",
14
+ msg: "ok"
15
+ });
16
+ }
17
+ else {
18
+ return res.send({
19
+ type: "error",
20
+ msg: req.i18n.__("The file used by the models")
21
+ });
22
+ }
12
23
  }
13
24
  async get(req, res) {
14
25
  let type = req.query.type;
@@ -19,6 +19,9 @@ export async function mediaManagerController(req, res) {
19
19
  const _manager = MediaManagerHandler.get(id);
20
20
  const manager = new MediaManagerAdapter(_manager);
21
21
  if (method === 'GET') {
22
+ if (req.query._method === 'getLocales') {
23
+ return res.json({ data: manager.getLocales(req) });
24
+ }
22
25
  return await manager.get(req, res);
23
26
  }
24
27
  if (method === 'POST') {
@@ -29,8 +32,6 @@ export async function mediaManagerController(req, res) {
29
32
  return await manager.uploadVariant(req, res);
30
33
  }
31
34
  switch (req.body._method) {
32
- case 'getLocales':
33
- return res.json({ data: manager.getLocales(req) });
34
35
  case 'addMeta':
35
36
  return await manager.setMeta(req, res);
36
37
  case 'getMeta':
@@ -104,7 +104,7 @@ export declare abstract class File<T extends MediaManagerItem> {
104
104
  * Delete an item.
105
105
  * @param id
106
106
  */
107
- abstract delete(id: string): Promise<void>;
107
+ abstract delete(id: string): Promise<boolean>;
108
108
  /**
109
109
  * Get all items of a type.
110
110
  * @param limit
@@ -258,6 +258,6 @@ export declare abstract class AbstractMediaManager {
258
258
  * Delete an item.
259
259
  * @param item
260
260
  */
261
- delete(item: MediaManagerItem): Promise<void>;
261
+ delete(item: MediaManagerItem): Promise<boolean>;
262
262
  }
263
263
  export {};
@@ -65,12 +65,13 @@ export class DefaultMediaManager extends AbstractMediaManager {
65
65
  q[pk] = modelAssociation.id;
66
66
  await this.adminizer.modelHandler.model.get(this.modelAssoc)["_destroy"](q);
67
67
  }
68
+ const fieldName = this.adminizer.ormAdapters[0].ormType === 'sequelize' ? 'fileId' : 'file';
68
69
  for (const [key, widgetItem] of data.entries()) {
69
70
  await this.adminizer.modelHandler.model.get(this.modelAssoc)["_create"]({
70
71
  mediaManagerId: this.id,
71
72
  model: model,
72
73
  modelId: modelId,
73
- file: widgetItem.id,
74
+ [fieldName]: widgetItem.id,
74
75
  widgetName: widgetName,
75
76
  sortOrder: key + 1,
76
77
  });
@@ -5,6 +5,7 @@ export declare class ImageItem extends File<MediaManagerItem> {
5
5
  type: MediaFileType;
6
6
  model: string;
7
7
  metaModel: string;
8
+ modelAssoc: string;
8
9
  imageSizes: any;
9
10
  protected readonly adminizer: Adminizer;
10
11
  constructor(adminizer: Adminizer, urlPathPrefix: string, fileStoragePath: string);
@@ -28,7 +29,7 @@ export declare class ImageItem extends File<MediaManagerItem> {
28
29
  }): Promise<void>;
29
30
  protected resizeImage(input: string, output: string, width: number, height: number): Promise<sharp.OutputInfo>;
30
31
  uploadVariant(parent: MediaManagerItem, file: UploaderFile, filename: string, group: string, localeId: string): Promise<MediaManagerItem>;
31
- delete(id: string): Promise<void>;
32
+ delete(id: string): Promise<boolean>;
32
33
  }
33
34
  export declare class TextItem extends ImageItem {
34
35
  type: MediaFileType;
@@ -8,6 +8,7 @@ export class ImageItem extends File {
8
8
  type = "image";
9
9
  model = "mediamanagerap";
10
10
  metaModel = "mediamanagermetaap";
11
+ modelAssoc = "mediamanagerassociationsap";
11
12
  imageSizes;
12
13
  adminizer;
13
14
  constructor(adminizer, urlPathPrefix, fileStoragePath) {
@@ -176,6 +177,11 @@ export class ImageItem extends File {
176
177
  return (await this.adminizer.modelHandler.model.get(this.model)["_findOne"]({ where: { id: item.id } }));
177
178
  }
178
179
  async delete(id) {
180
+ const fieldName = this.adminizer.ormAdapters[0].ormType === 'sequelize' ? 'fileId' : 'file';
181
+ const assoc = await this.adminizer.modelHandler.model.get(this.modelAssoc)["_find"]({ where: { [fieldName]: id } });
182
+ if (assoc.length) {
183
+ return Promise.resolve(false);
184
+ }
179
185
  const criteria = { where: { id: id } };
180
186
  // TODO refactor CRUD functions for DataAccessor usage
181
187
  let record = await this.adminizer.modelHandler.model.get(this.model)["_findOne"](criteria);
@@ -189,6 +195,7 @@ export class ImageItem extends File {
189
195
  await deleteFile(variant.path);
190
196
  }
191
197
  }
198
+ return Promise.resolve(true);
192
199
  }
193
200
  }
194
201
  /*
@@ -36,4 +36,5 @@ export declare function deleteRelationsMediaManager(adminizer: Adminizer, model:
36
36
  * @param model
37
37
  */
38
38
  export declare function populateVariants(adminizer: Adminizer, variants: MediaManagerItem[], model: string): Promise<MediaManagerItem[]>;
39
+ export declare function getAssociationFieldName(model: any, associationName: string): string;
39
40
  export {};
@@ -68,3 +68,20 @@ export async function populateVariants(adminizer, variants, model) {
68
68
  }
69
69
  return items;
70
70
  }
71
+ export function getAssociationFieldName(model, associationName) {
72
+ const attributes = model.attributes || {};
73
+ // Для вашего случая: file связь использует fileId
74
+ if (associationName === 'file') {
75
+ // Проверяем есть ли связь file и какое у нее via
76
+ if (attributes.file?.type === 'association' && attributes.file.via) {
77
+ return attributes.file.via; // Вернет 'fileId'
78
+ }
79
+ // Или просто проверяем наличие fileId
80
+ if (attributes.fileId) {
81
+ return 'fileId';
82
+ }
83
+ }
84
+ // Общий случай
85
+ const idField = `${associationName}Id`;
86
+ return attributes[idField] ? idField : associationName;
87
+ }
@@ -3,10 +3,8 @@ import { MediaManagerMetaAP } from "./MediaManagerMetaAP";
3
3
  declare const _default: {
4
4
  id: {
5
5
  type: string;
6
- allowNull: boolean;
7
- uuid: boolean;
6
+ autoIncrement: boolean;
8
7
  primaryKey: boolean;
9
- required: boolean;
10
8
  };
11
9
  parent: {
12
10
  model: string;
@@ -44,6 +42,14 @@ declare const _default: {
44
42
  collection: string;
45
43
  via: string;
46
44
  };
45
+ createdAt: {
46
+ type: string;
47
+ autoCreatedAt: boolean;
48
+ };
49
+ updatedAt: {
50
+ type: string;
51
+ autoUpdatedAt: boolean;
52
+ };
47
53
  };
48
54
  export default _default;
49
55
  export interface MediaManagerAP {
@@ -1,10 +1,8 @@
1
1
  export default {
2
2
  id: {
3
- type: "string",
4
- allowNull: false,
5
- uuid: true,
6
- primaryKey: true,
7
- required: true
3
+ type: "number",
4
+ autoIncrement: true,
5
+ primaryKey: true
8
6
  },
9
7
  parent: {
10
8
  model: "MediaManagerAP"
@@ -41,5 +39,13 @@ export default {
41
39
  modelAssociation: {
42
40
  collection: "MediaManagerAssociationsAP",
43
41
  via: "file"
42
+ },
43
+ createdAt: {
44
+ type: 'number',
45
+ autoCreatedAt: true
46
+ },
47
+ updatedAt: {
48
+ type: 'number',
49
+ autoUpdatedAt: true
44
50
  }
45
51
  };
@@ -2,10 +2,8 @@ import { MediaManagerAP } from "./MediaManagerAP";
2
2
  declare const _default: {
3
3
  id: {
4
4
  type: string;
5
- allowNull: boolean;
6
- uuid: boolean;
5
+ autoIncrement: boolean;
7
6
  primaryKey: boolean;
8
- required: boolean;
9
7
  };
10
8
  mediaManagerId: {
11
9
  type: string;
@@ -25,6 +23,14 @@ declare const _default: {
25
23
  file: {
26
24
  model: string;
27
25
  };
26
+ createdAt: {
27
+ type: string;
28
+ autoCreatedAt: boolean;
29
+ };
30
+ updatedAt: {
31
+ type: string;
32
+ autoUpdatedAt: boolean;
33
+ };
28
34
  };
29
35
  export default _default;
30
36
  export interface MediaManagerAssociationsAP {
@@ -1,10 +1,8 @@
1
1
  export default {
2
2
  id: {
3
- type: "string",
4
- allowNull: false,
5
- uuid: true,
6
- primaryKey: true,
7
- required: true
3
+ type: "number",
4
+ autoIncrement: true,
5
+ primaryKey: true
8
6
  },
9
7
  mediaManagerId: {
10
8
  type: "string"
@@ -23,5 +21,13 @@ export default {
23
21
  },
24
22
  file: {
25
23
  model: "MediaManagerAP"
24
+ },
25
+ createdAt: {
26
+ type: 'number',
27
+ autoCreatedAt: true
28
+ },
29
+ updatedAt: {
30
+ type: 'number',
31
+ autoUpdatedAt: true
26
32
  }
27
33
  };
@@ -2,10 +2,8 @@ import { MediaManagerAP } from "./MediaManagerAP";
2
2
  declare const _default: {
3
3
  id: {
4
4
  type: string;
5
- allowNull: boolean;
6
- uuid: boolean;
5
+ autoIncrement: boolean;
7
6
  primaryKey: boolean;
8
- required: boolean;
9
7
  };
10
8
  key: {
11
9
  type: string;
@@ -19,6 +17,14 @@ declare const _default: {
19
17
  parent: {
20
18
  model: string;
21
19
  };
20
+ createdAt: {
21
+ type: string;
22
+ autoCreatedAt: boolean;
23
+ };
24
+ updatedAt: {
25
+ type: string;
26
+ autoUpdatedAt: boolean;
27
+ };
22
28
  };
23
29
  export default _default;
24
30
  export interface MediaManagerMetaAP {
@@ -1,10 +1,8 @@
1
1
  export default {
2
2
  id: {
3
- type: "string",
4
- allowNull: false,
5
- uuid: true,
6
- primaryKey: true,
7
- required: true
3
+ type: "number",
4
+ autoIncrement: true,
5
+ primaryKey: true
8
6
  },
9
7
  key: {
10
8
  type: "string"
@@ -17,5 +15,13 @@ export default {
17
15
  },
18
16
  parent: {
19
17
  model: "MediaManagerAP"
18
+ },
19
+ createdAt: {
20
+ type: 'number',
21
+ autoCreatedAt: true
22
+ },
23
+ updatedAt: {
24
+ type: 'number',
25
+ autoUpdatedAt: true
20
26
  }
21
27
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adminizer",
3
3
  "type": "module",
4
- "version": "4.3.0-build.92",
4
+ "version": "4.3.0-build.94",
5
5
  "main": "index.js",
6
6
  "exports": {
7
7
  ".": "./index.js",
@@ -82,7 +82,7 @@
82
82
  "@eslint/compat": "^1.2.9",
83
83
  "@faker-js/faker": "^9.7.0",
84
84
  "@handsontable/react": "^15.2.0",
85
- "@inertiajs/react": "^2.0.0",
85
+ "@inertiajs/react": "^2.2.0",
86
86
  "@monaco-editor/react": "^4.7.0",
87
87
  "@radix-ui/react-avatar": "^1.1.3",
88
88
  "@radix-ui/react-checkbox": "^1.1.4",
@@ -146,8 +146,8 @@
146
146
  "react-simple-wysiwyg": "^3.2.2",
147
147
  "sails-disk": "^2.1.2",
148
148
  "sails-postgresql": "^5.0.1",
149
- "sequelize-typescript": "^2.1.6",
150
149
  "sequelize": "^6.37.7",
150
+ "sequelize-typescript": "^2.1.6",
151
151
  "shelljs": "^0.9.2",
152
152
  "sonner": "^2.0.3",
153
153
  "sqlite3": "^5.1.7",
package/system/Router.js CHANGED
@@ -68,7 +68,7 @@ export default class Router {
68
68
  * */
69
69
  adminizer.app.all(`${adminizer.config.routePrefix}/form/:slug`, adminizer.policyManager.bindPolicies(policies, _form));
70
70
  // Create a base entity route
71
- let baseRoute = `${adminizer.config.routePrefix}/:entityType/:entityName`;
71
+ let baseRoute = `${adminizer.config.routePrefix}/:entityType(form|model)/:entityName`;
72
72
  /**
73
73
  * Catalog
74
74
  */
@@ -92,9 +92,9 @@ export default class Router {
92
92
  adminizer.app.get(`${adminizer.config.routePrefix}/notifications`, adminizer.policyManager.bindPolicies(policies, NotificationController.viewAll));
93
93
  adminizer.app.post(`${adminizer.config.routePrefix}/notifications`, adminizer.policyManager.bindPolicies(policies, NotificationController.viewAll));
94
94
  adminizer.app.get(`${adminizer.config.routePrefix}/api/notifications/stream`, adminizer.policyManager.bindPolicies(policies, NotificationController.getNotificationsStream));
95
+ adminizer.app.get(`${adminizer.config.routePrefix}/api/notifications/get-classes`, adminizer.policyManager.bindPolicies(policies, NotificationController.getNotificationClasses));
95
96
  adminizer.app.get(`${adminizer.config.routePrefix}/api/notifications/:notificationClass`, adminizer.policyManager.bindPolicies(policies, NotificationController.getNotificationsByClass));
96
97
  adminizer.app.get(`${adminizer.config.routePrefix}/api/notifications`, adminizer.policyManager.bindPolicies(policies, NotificationController.getUserNotifications));
97
- adminizer.app.put(`${adminizer.config.routePrefix}/api/notifications/get-classes`, adminizer.policyManager.bindPolicies(policies, NotificationController.getNotificationClasses));
98
98
  adminizer.app.put(`${adminizer.config.routePrefix}/api/notifications/:notificationClass/:id/read`, adminizer.policyManager.bindPolicies(policies, NotificationController.markAsRead));
99
99
  adminizer.app.put(`${adminizer.config.routePrefix}/api/notifications/read-all`, adminizer.policyManager.bindPolicies(policies, NotificationController.markAllAsRead));
100
100
  adminizer.app.post(`${adminizer.config.routePrefix}/api/notifications/search`, adminizer.policyManager.bindPolicies(policies, NotificationController.search));