adminizer 4.3.0-build.80 → 4.3.0-build.82
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-CZdDpNV2.js +1 -0
- package/assets/add-form-BjXOLDij.js +1 -0
- package/assets/add-group-form-BNmpvW8K.js +1 -0
- package/assets/add-group-urhA47Qf.js +1 -0
- package/assets/add-user-CzWUu7wG.js +1 -0
- package/assets/{add-user-form-yp020h4r.js → add-user-form-DrclnTOd.js} +1 -1
- package/assets/{app-CpGtjhxF.css → app-CSVBI-Lw.css} +1 -1
- package/assets/app-layout-CbyH1MDK.js +1 -0
- package/assets/{app-shell-xEVbINZV.js → app-shell-CHEYhVco.js} +1 -1
- package/assets/{app-sidebar-4lm9f_CG.js → app-sidebar-DeF8WNmW.js} +1 -1
- package/assets/app-sidebar-header-8KWnVpkN.js +1 -0
- package/assets/app.js +1628 -1628
- package/assets/breadcrumbs-C439DWrC.js +1 -0
- package/assets/catalog-CCSagWKW.js +6 -0
- package/assets/dashboard-DUNXib6b.js +3 -0
- package/assets/date-picker-DbJ8nHp5.js +1 -0
- package/assets/del-modal-_b3CSNHb.js +1 -0
- package/assets/{dynamic-controls-PxBg8yMz.js → dynamic-controls-BOYmRX_z.js} +1 -1
- package/assets/{field-renderer-CsBa_tMB.css → field-renderer-CRNLShJD.css} +1 -1
- package/assets/field-renderer-D0crIeQS.js +407 -0
- package/assets/{form-CSTeMDf5.js → form-B6LFaTgS.js} +1 -1
- package/assets/form-C8pRhEOA.js +1 -0
- package/assets/geo-json-uSUIgJf5.js +4 -0
- package/assets/{handsontable-D6MvFmcM.js → handsontable-PVakPtJV.js} +55 -55
- package/assets/home-D--JrFFj.js +2 -0
- package/assets/icon-DM49pZW3.js +1 -0
- package/assets/{init-user-L-oxFTOv.js → init-user-DNrB8Xt5.js} +1 -1
- package/assets/input-error--IOnWghB.js +1 -0
- package/assets/jsoneditor-D95dIAP2.js +3878 -0
- package/assets/list-CQivvagG.js +1 -0
- package/assets/{list-table-vIvydJV2.js → list-table-h_zXp43g.js} +4 -4
- package/assets/{login-DLMJ6l_r.js → login-6Xb8bcPq.js} +1 -1
- package/assets/manifest.json +259 -260
- package/assets/material-icon-BedgD2NE.js +1 -0
- package/assets/{media-manager-ASGJ4PcS.js → media-manager-Bms57WSN.js} +2 -2
- package/assets/module-DqrIORMW.js +1 -0
- package/assets/{monaco-B1uVVM7f.js → monaco-ICtx6xoc.js} +1 -1
- package/assets/{nav-footer-DbGCtmmN.js → nav-footer-BwkQkwow.js} +1 -1
- package/assets/{nav-main-BcWhl71g.js → nav-main-9Eb_A0rf.js} +1 -1
- package/assets/nav-user-CRAfyE-x.js +1 -0
- package/assets/notification-db0RD9I6.js +27 -0
- package/assets/{pagination-render-BceTnewI.js → pagination-render-D3UyVAlr.js} +1 -1
- package/assets/{register-C_W_hOmq.js → register-BIyjCy8M.js} +1 -1
- package/assets/tabs-BK_5wdPA.js +1 -0
- package/assets/theme-switcher-CKiJbMkh.js +1 -0
- package/assets/toast-editor-BZM5RHph.js +845 -0
- package/assets/{user-info-BrWerGLc.js → user-info-CcYdmjMZ.js} +1 -1
- package/assets/{user-menu-content-D61_auxX.js → user-menu-content-DbUk8ZeY.js} +1 -1
- package/assets/vanilla-picker-l5rcX3cq.js +8 -0
- package/assets/{vendor-DoC2WAmd.js → vendor-wzZzN_Jv.js} +2 -2
- package/assets/welcome-CZlWN4gM.js +1 -0
- package/controllers/add.js +1 -1
- package/controllers/catalog/FrontentCatalogAdapter.d.ts +4 -4
- package/controllers/edit.js +1 -15
- package/controllers/list.js +2 -2
- package/controllers/login.js +2 -2
- package/controllers/navigation/edit.js +1 -1
- package/controllers/notifications/NotificationController.d.ts +5 -5
- package/controllers/notifications/NotificationController.js +77 -78
- package/controllers/remove.js +1 -11
- package/controllers/view.js +1 -1
- package/helpers/configHelper.d.ts +1 -1
- package/helpers/fieldsHelper.d.ts +1 -1
- package/helpers/fieldsHelper.js +1 -1
- package/helpers/inertiaAddHelper.d.ts +1 -1
- package/helpers/translationHelper.d.ts +1 -1
- package/helpers/translationHelper.js +1 -1
- package/index.d.ts +14 -13
- package/index.js +14 -13
- package/interfaces/adminpanelConfig.d.ts +1 -1
- package/interfaces/global.d.ts +3 -3
- package/interfaces/types.d.ts +10 -1
- package/lib/Adminizer.d.ts +7 -7
- package/lib/Adminizer.js +7 -7
- package/lib/{v4/DataAccessor.d.ts → DataAccessor.d.ts} +4 -4
- package/lib/{v4/DataAccessor.js → DataAccessor.js} +3 -3
- package/lib/{v4/I18n.js → I18n.js} +2 -2
- package/lib/{v4/PolicyManager.d.ts → PolicyManager.d.ts} +1 -1
- package/lib/{v4/PolicyManager.js → PolicyManager.js} +2 -2
- package/lib/{v4/catalog → catalog}/AbstractCatalog.d.ts +1 -1
- package/lib/{v4/catalog → catalog}/Navigation.d.ts +2 -2
- package/lib/{v4/catalog → catalog}/Navigation.js +1 -1
- package/lib/{v4/controls → controls}/AbstractControls.d.ts +1 -1
- package/lib/{v4/controls → controls}/codeEditor/MonacoEditor.d.ts +1 -1
- package/lib/{v4/controls → controls}/geojsoneditor/GeoEditor.d.ts +1 -1
- package/lib/{v4/controls → controls}/jsoneditor/JsonEditor.d.ts +1 -1
- package/lib/{v4/controls → controls}/markdown/ToastUiEditor.d.ts +1 -1
- package/lib/{v4/controls → controls}/table/Handsontable.d.ts +1 -1
- package/lib/{v4/controls → controls}/wysiwyg/CKeditor.d.ts +1 -1
- package/lib/{v4/datatable → datatable}/NodeTable.d.ts +1 -1
- package/lib/{v4/model → model}/AbstractModel.d.ts +12 -0
- package/lib/model/AbstractModel.js +178 -0
- package/lib/{v4/model → model}/ModelHandler.js +1 -1
- package/lib/{v4/model → model}/adapter/sequelize.d.ts +2 -4
- package/lib/{v4/model → model}/adapter/sequelize.js +33 -13
- package/lib/{v4/notifications → notifications}/AbstractNotificationService.d.ts +14 -7
- package/lib/notifications/AbstractNotificationService.js +233 -0
- package/lib/{v4/notifications → notifications}/GeneralNotificationService.d.ts +1 -1
- package/lib/{v4/notifications → notifications}/GeneralNotificationService.js +4 -2
- package/lib/notifications/NotificationHandler.d.ts +27 -0
- package/lib/notifications/NotificationHandler.js +41 -0
- package/lib/{v4/notifications → notifications}/SystemNotificationService.d.ts +5 -4
- package/lib/notifications/SystemNotificationService.js +173 -0
- package/lib/{v4/widgets → widgets}/abstractCustom.d.ts +1 -1
- package/lib/{v4/widgets → widgets}/abstractLink.d.ts +1 -1
- package/lib/{v4/widgets → widgets}/abstractWidgetBase.d.ts +1 -1
- package/lib/{v4/widgets → widgets}/widgetHandler.d.ts +2 -2
- package/migrations/index.d.ts +3 -0
- package/migrations/index.js +4 -0
- package/migrations/umzug/0001.d.ts +7 -0
- package/migrations/umzug/0001.js +119 -0
- package/migrations/umzug.d.ts +2 -0
- package/migrations/umzug.js +8 -0
- package/models/NotificationAP.d.ts +8 -0
- package/models/NotificationAP.js +8 -0
- package/models/UserAP.d.ts +1 -1
- package/package.json +5 -4
- package/system/Router.js +4 -8
- package/system/bindControls.js +6 -6
- package/system/bindInertia.js +4 -3
- package/system/bindNavigation.js +1 -1
- package/system/bindNotifications.js +3 -3
- package/system/bindReqFunctions.js +8 -25
- package/system/defaults.js +1 -1
- package/ui/components/ui/table.d.ts +1 -1
- package/ui/components/ui/table.js +2 -2
- package/assets/add-DSapOiv0.js +0 -1
- package/assets/add-form-C04ZI5LT.js +0 -1
- package/assets/add-group-DWR7SBTO.js +0 -1
- package/assets/add-group-form-CyRwxTs3.js +0 -1
- package/assets/add-user-acATGxUL.js +0 -1
- package/assets/app-layout-BmT5KQwc.js +0 -1
- package/assets/app-sidebar-header-CxXmzszq.js +0 -1
- package/assets/breadcrumbs-livOfa2Z.js +0 -1
- package/assets/catalog-CG_EB2kz.js +0 -6
- package/assets/dashboard-CsmJfdLb.js +0 -3
- package/assets/date-picker-By3kj-Rx.js +0 -1
- package/assets/del-modal-DlcbcdR5.js +0 -1
- package/assets/field-renderer-Bp1lfm0v.js +0 -407
- package/assets/form-CxHRGp7p.js +0 -1
- package/assets/geo-json-CCgjEQfu.js +0 -4
- package/assets/home-D00XjLjD.js +0 -2
- package/assets/icon-ButfCBrt.js +0 -1
- package/assets/input-error-CHsDLcK0.js +0 -1
- package/assets/jsoneditor-CBqATVR0.js +0 -3833
- package/assets/list-4TOTsjqE.js +0 -1
- package/assets/material-icon-sXk4BK-N.js +0 -1
- package/assets/module-mxngd2cA.js +0 -1
- package/assets/nav-user-BN2veV3l.js +0 -1
- package/assets/notification-BEfA5sT6.js +0 -1
- package/assets/tabs-CgZW_LLn.js +0 -1
- package/assets/theme-switcher-D1G6OSMc.js +0 -1
- package/assets/toast-editor-CfgZXoQZ.js +0 -845
- package/assets/vanilla-picker-B6E6ObS_.js +0 -8
- package/assets/welcome-FHRCdke0.js +0 -1
- package/lib/v4/model/AbstractModel.js +0 -79
- package/lib/v4/notifications/AbstractNotificationService.js +0 -150
- package/lib/v4/notifications/NotificationHandler.d.ts +0 -69
- package/lib/v4/notifications/NotificationHandler.js +0 -127
- package/lib/v4/notifications/SystemNotificationService.js +0 -124
- package/migrations/db-migrate/20230303171134-adminpanel-init.js +0 -122
- package/migrations/db-migrate/20231223215835-add-widgets.js +0 -32
- package/migrations/db-migrate/20240804191001-added-navigationap.js +0 -53
- package/migrations/db-migrate/20241121184236-v4-init.js +0 -134
- /package/lib/{v4/I18n.d.ts → I18n.d.ts} +0 -0
- /package/lib/{v4/POWCaptcha.d.ts → POWCaptcha.d.ts} +0 -0
- /package/lib/{v4/POWCaptcha.js → POWCaptcha.js} +0 -0
- /package/lib/{v4/catalog → catalog}/AbstractCatalog.js +0 -0
- /package/lib/{v4/catalog → catalog}/CatalogHandler.d.ts +0 -0
- /package/lib/{v4/catalog → catalog}/CatalogHandler.js +0 -0
- /package/lib/{v4/controls → controls}/AbstractControls.js +0 -0
- /package/lib/{v4/controls → controls}/ControlsHandler.d.ts +0 -0
- /package/lib/{v4/controls → controls}/ControlsHandler.js +0 -0
- /package/lib/{v4/controls → controls}/codeEditor/MonacoEditor.js +0 -0
- /package/lib/{v4/controls → controls}/geojsoneditor/GeoEditor.js +0 -0
- /package/lib/{v4/controls → controls}/jsoneditor/JsonEditor.js +0 -0
- /package/lib/{v4/controls → controls}/markdown/ToastUiEditor.js +0 -0
- /package/lib/{v4/controls → controls}/table/Handsontable.js +0 -0
- /package/lib/{v4/controls → controls}/wysiwyg/CKeditor.js +0 -0
- /package/lib/{v4/datatable → datatable}/NodeTable.js +0 -0
- /package/lib/{v4/helper → helper}/jwt.d.ts +0 -0
- /package/lib/{v4/helper → helper}/jwt.js +0 -0
- /package/lib/{v4/inertia → inertia}/flash.d.ts +0 -0
- /package/lib/{v4/inertia → inertia}/flash.js +0 -0
- /package/lib/{v4/inertia → inertia}/inertiaAdapter.d.ts +0 -0
- /package/lib/{v4/inertia → inertia}/inertiaAdapter.js +0 -0
- /package/lib/{v4/model → model}/ModelHandler.d.ts +0 -0
- /package/lib/{v4/model → model}/adapter/waterline.d.ts +0 -0
- /package/lib/{v4/model → model}/adapter/waterline.js +0 -0
- /package/lib/{v4/widgets → widgets}/abstractAction.d.ts +0 -0
- /package/lib/{v4/widgets → widgets}/abstractAction.js +0 -0
- /package/lib/{v4/widgets → widgets}/abstractCustom.js +0 -0
- /package/lib/{v4/widgets → widgets}/abstractInfo.d.ts +0 -0
- /package/lib/{v4/widgets → widgets}/abstractInfo.js +0 -0
- /package/lib/{v4/widgets → widgets}/abstractLink.js +0 -0
- /package/lib/{v4/widgets → widgets}/abstractSwitch.d.ts +0 -0
- /package/lib/{v4/widgets → widgets}/abstractSwitch.js +0 -0
- /package/lib/{v4/widgets → widgets}/abstractWidgetBase.js +0 -0
- /package/lib/{v4/widgets → widgets}/widgetHandler.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,
|
|
1
|
+
import{j as a,br as i,bs as l,bt as o}from"./app.js";import{r as c}from"./monaco-ICtx6xoc.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.js";import"./handsontable-PVakPtJV.js";function m(){return c.useCallback(r=>{const t=r.trim().split(" ");if(t.length===0)return"";if(t.length===1)return t[0].charAt(0).toUpperCase();const s=t[0].charAt(0),n=t[t.length-1].charAt(0);return`${s}${n}`.toUpperCase()},[])}function f({user:e,showEmail:r=!1}){const t=m();return a.jsxs(a.Fragment,{children:[a.jsxs(i,{className:"h-8 w-8 overflow-hidden rounded-full",children:[a.jsx(l,{src:e.avatar,alt:e.login}),a.jsx(o,{className:"rounded-lg bg-neutral-200 text-black dark:bg-neutral-700 dark:text-white",children:t(e.login)})]}),a.jsxs("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[a.jsx("span",{className:"truncate font-medium",children:e.login}),r&&a.jsx("span",{className:"text-muted-foreground truncate text-xs",children:e.email})]})]})}export{f as UserInfo};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,
|
|
1
|
+
import{j as e,bu as n,aJ as a,aI as l,U as i,bv as m}from"./app.js";import{UserInfo as c}from"./user-info-CcYdmjMZ.js";import{r as p}from"./monaco-ICtx6xoc.js";import"./jsoneditor-D95dIAP2.js";import"./vendor-wzZzN_Jv.js";import"./handsontable-PVakPtJV.js";function u(){return p.useCallback(()=>{document.body.style.removeProperty("pointer-events")},[])}function g({user:t,logout:r,logoutBtn:o}){const s=u();return e.jsxs(e.Fragment,{children:[e.jsx(n,{className:"p-0 font-normal",children:e.jsx("div",{className:"flex items-center gap-2 px-1 py-1.5 text-left text-sm",children:e.jsx(c,{user:t,showEmail:!0})})}),e.jsx(a,{}),e.jsx(l,{asChild:!0,children:e.jsxs(i,{className:"block w-full cursor-pointer",method:"get",href:r,as:"button",onClick:s,children:[e.jsx(m,{className:"mr-2"}),o]})})]})}export{g as UserMenuContent};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* vanilla-picker v2.12.3
|
|
3
|
+
* https://vanilla-picker.js.org
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2017-2024 Andreas Borgen (https://github.com/Sphinxxxx), Adam Brooks (https://github.com/dissimulate)
|
|
6
|
+
* Released under the ISC license.
|
|
7
|
+
*/var O=function(l,n){if(!(l instanceof n))throw new TypeError("Cannot call a class as a function")},R=(function(){function l(n,e){for(var t=0;t<e.length;t++){var r=e[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}return function(n,e,t){return e&&l(n.prototype,e),t&&l(n,t),n}})(),y=(function(){function l(n,e){var t=[],r=!0,i=!1,o=void 0;try{for(var c=n[Symbol.iterator](),a;!(r=(a=c.next()).done)&&(t.push(a.value),!(e&&t.length===e));r=!0);}catch(s){i=!0,o=s}finally{try{!r&&c.return&&c.return()}finally{if(i)throw o}}return t}return function(n,e){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return l(n,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})();String.prototype.startsWith=String.prototype.startsWith||function(l){return this.indexOf(l)===0};String.prototype.padStart=String.prototype.padStart||function(l,n){for(var e=this;e.length<l;)e=n+e;return e};var I={cb:"0f8ff",tqw:"aebd7",q:"-ffff",qmrn:"7fffd4",zr:"0ffff",bg:"5f5dc",bsq:"e4c4",bck:"---",nch:"ebcd",b:"--ff",bvt:"8a2be2",brwn:"a52a2a",brw:"deb887",ctb:"5f9ea0",hrt:"7fff-",chcT:"d2691e",cr:"7f50",rnw:"6495ed",crns:"8dc",crms:"dc143c",cn:"-ffff",Db:"--8b",Dcn:"-8b8b",Dgnr:"b8860b",Dgr:"a9a9a9",Dgrn:"-64-",Dkhk:"bdb76b",Dmgn:"8b-8b",Dvgr:"556b2f",Drng:"8c-",Drch:"9932cc",Dr:"8b--",Dsmn:"e9967a",Dsgr:"8fbc8f",DsTb:"483d8b",DsTg:"2f4f4f",Dtrq:"-ced1",Dvt:"94-d3",ppnk:"1493",pskb:"-bfff",mgr:"696969",grb:"1e90ff",rbrc:"b22222",rwht:"af0",stg:"228b22",chs:"-ff",gnsb:"dcdcdc",st:"8f8ff",g:"d7-",gnr:"daa520",gr:"808080",grn:"-8-0",grnw:"adff2f",hnw:"0fff0",htpn:"69b4",nnr:"cd5c5c",ng:"4b-82",vr:"0",khk:"0e68c",vnr:"e6e6fa",nrb:"0f5",wngr:"7cfc-",mnch:"acd",Lb:"add8e6",Lcr:"08080",Lcn:"e0ffff",Lgnr:"afad2",Lgr:"d3d3d3",Lgrn:"90ee90",Lpnk:"b6c1",Lsmn:"a07a",Lsgr:"20b2aa",Lskb:"87cefa",LsTg:"778899",Lstb:"b0c4de",Lw:"e0",m:"-ff-",mgrn:"32cd32",nn:"af0e6",mgnt:"-ff",mrn:"8--0",mqm:"66cdaa",mmb:"--cd",mmrc:"ba55d3",mmpr:"9370db",msg:"3cb371",mmsT:"7b68ee","":"-fa9a",mtr:"48d1cc",mmvt:"c71585",mnLb:"191970",ntc:"5fffa",mstr:"e4e1",mccs:"e4b5",vjw:"dead",nv:"--80",c:"df5e6",v:"808-0",vrb:"6b8e23",rng:"a5-",rngr:"45-",rch:"da70d6",pgnr:"eee8aa",pgrn:"98fb98",ptrq:"afeeee",pvtr:"db7093",ppwh:"efd5",pchp:"dab9",pr:"cd853f",pnk:"c0cb",pm:"dda0dd",pwrb:"b0e0e6",prp:"8-080",cc:"663399",r:"--",sbr:"bc8f8f",rb:"4169e1",sbrw:"8b4513",smn:"a8072",nbr:"4a460",sgrn:"2e8b57",ssh:"5ee",snn:"a0522d",svr:"c0c0c0",skb:"87ceeb",sTb:"6a5acd",sTgr:"708090",snw:"afa",n:"-ff7f",stb:"4682b4",tn:"d2b48c",t:"-8080",thst:"d8bfd8",tmT:"6347",trqs:"40e0d0",vt:"ee82ee",whT:"5deb3",wht:"",hts:"5f5f5",w:"-",wgrn:"9acd32"};function A(l){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,e=n>0?l.toFixed(n).replace(/0+$/,"").replace(/\.$/,""):l.toString();return e||"0"}var N=(function(){function l(n,e,t,r){O(this,l);var i=this;function o(a){if(a.startsWith("hsl")){var s=a.match(/([\-\d\.e]+)/g).map(Number),p=y(s,4),f=p[0],u=p[1],d=p[2],b=p[3];b===void 0&&(b=1),f/=360,u/=100,d/=100,i.hsla=[f,u,d,b]}else if(a.startsWith("rgb")){var m=a.match(/([\-\d\.e]+)/g).map(Number),h=y(m,4),v=h[0],g=h[1],E=h[2],k=h[3];k===void 0&&(k=1),i.rgba=[v,g,E,k]}else a.startsWith("#")?i.rgba=l.hexToRgb(a):i.rgba=l.nameToRgb(a)||l.hexToRgb(a)}if(n!==void 0)if(Array.isArray(n))this.rgba=n;else if(t===void 0){var c=n&&""+n;c&&o(c.toLowerCase())}else this.rgba=[n,e,t,r===void 0?1:r]}return R(l,[{key:"printRGB",value:function(e){var t=e?this.rgba:this.rgba.slice(0,3),r=t.map(function(i,o){return A(i,o===3?3:0)});return e?"rgba("+r+")":"rgb("+r+")"}},{key:"printHSL",value:function(e){var t=[360,100,100,1],r=["","%","%",""],i=e?this.hsla:this.hsla.slice(0,3),o=i.map(function(c,a){return A(c*t[a],a===3?3:1)+r[a]});return e?"hsla("+o+")":"hsl("+o+")"}},{key:"printHex",value:function(e){var t=this.hex;return e?t:t.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=l.hslToRgb(this._hsla)},set:function(e){e.length===3&&(e[3]=1),this._rgba=e,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=l.rgbToHsl(this._rgba)},set:function(e){e.length===3&&(e[3]=1),this._hsla=e,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){var e=this.rgba,t=e.map(function(r,i){return i<3?r.toString(16):Math.round(r*255).toString(16)});return"#"+t.map(function(r){return r.padStart(2,"0")}).join("")},set:function(e){this.rgba=l.hexToRgb(e)}}],[{key:"hexToRgb",value:function(e){var t=(e.startsWith("#")?e.slice(1):e).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!t.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+e);var r=t.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(i){return parseInt(i,16)});return r[3]=r[3]/255,r}},{key:"nameToRgb",value:function(e){var t=e.toLowerCase().replace("at","T").replace(/[aeiouyldf]/g,"").replace("ght","L").replace("rk","D").slice(-5,4),r=I[t];return r===void 0?r:l.hexToRgb(r.replace(/\-/g,"00").padStart(6,"f"))}},{key:"rgbToHsl",value:function(e){var t=y(e,4),r=t[0],i=t[1],o=t[2],c=t[3];r/=255,i/=255,o/=255;var a=Math.max(r,i,o),s=Math.min(r,i,o),p=void 0,f=void 0,u=(a+s)/2;if(a===s)p=f=0;else{var d=a-s;switch(f=u>.5?d/(2-a-s):d/(a+s),a){case r:p=(i-o)/d+(i<o?6:0);break;case i:p=(o-r)/d+2;break;case o:p=(r-i)/d+4;break}p/=6}return[p,f,u,c]}},{key:"hslToRgb",value:function(e){var t=y(e,4),r=t[0],i=t[1],o=t[2],c=t[3],a=void 0,s=void 0,p=void 0;if(i===0)a=s=p=o;else{var f=function(h,v,g){return g<0&&(g+=1),g>1&&(g-=1),g<.16666666666666666?h+(v-h)*6*g:g<.5?v:g<.6666666666666666?h+(v-h)*(.6666666666666666-g)*6:h},u=o<.5?o*(1+i):o+i-o*i,d=2*o-u;a=f(d,u,r+1/3),s=f(d,u,r),p=f(d,u,r-1/3)}var b=[a*255,s*255,p*255].map(Math.round);return b[3]=c,b}}]),l})(),z=(function(){function l(){O(this,l),this._events=[]}return R(l,[{key:"add",value:function(e,t,r){e.addEventListener(t,r,!1),this._events.push({target:e,type:t,handler:r})}},{key:"remove",value:function(e,t,r){this._events=this._events.filter(function(i){var o=!0;return e&&e!==i.target&&(o=!1),t&&t!==i.type&&(o=!1),r&&r!==i.handler&&(o=!1),o&&l._doRemove(i.target,i.type,i.handler),!o})}},{key:"destroy",value:function(){this._events.forEach(function(e){return l._doRemove(e.target,e.type,e.handler)}),this._events=[]}}],[{key:"_doRemove",value:function(e,t,r){e.removeEventListener(t,r,!1)}}]),l})();function F(l){var n=document.createElement("div");return n.innerHTML=l,n.firstElementChild}function L(l,n,e){var t=!1;function r(a,s,p){return Math.max(s,Math.min(a,p))}function i(a,s,p){if(p&&(t=!0),!!t){a.preventDefault();var f=n.getBoundingClientRect(),u=f.width,d=f.height,b=s.clientX,m=s.clientY,h=r(b-f.left,0,u),v=r(m-f.top,0,d);e(h/u,v/d)}}function o(a,s){var p=a.buttons===void 0?a.which:a.buttons;p===1?i(a,a,s):t=!1}function c(a,s){a.touches.length===1?i(a,a.touches[0],s):t=!1}l.add(n,"mousedown",function(a){o(a,!0)}),l.add(n,"touchstart",function(a){c(a,!0)}),l.add(window,"mousemove",o),l.add(n,"touchmove",c),l.add(window,"mouseup",function(a){t=!1}),l.add(n,"touchend",function(a){t=!1}),l.add(n,"touchcancel",function(a){t=!1})}var U=`linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em,
|
|
8
|
+
linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em`,B=360,P="keydown",x="mousedown",T="focusin";function _(l,n){return(n||document).querySelector(l)}function G(l){l.preventDefault(),l.stopPropagation()}function H(l,n,e,t,r){l.add(n,P,function(i){e.indexOf(i.key)>=0&&t(i)})}var K=(function(){function l(n){O(this,l),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex",cancelButton:!1,defaultColor:"#0cf"},this._events=new z,this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(n)}return R(l,[{key:"setOptions",value:function(e){var t=this;if(!e)return;var r=this.settings;function i(s,p,f){for(var u in s)p[u]=s[u]}if(e instanceof HTMLElement)r.parent=e;else{r.parent&&e.parent&&r.parent!==e.parent&&(this._events.remove(r.parent),this._popupInited=!1),i(e,r),e.onChange&&(this.onChange=e.onChange),e.onDone&&(this.onDone=e.onDone),e.onOpen&&(this.onOpen=e.onOpen),e.onClose&&(this.onClose=e.onClose);var o=e.color||e.colour;o&&this._setColor(o)}var c=r.parent;if(c&&r.popup&&!this._popupInited){var a=function(p){return t.openHandler(p)};this._events.add(c,"click",a),H(this._events,c,[" ","Spacebar","Enter"],a),this._popupInited=!0}else e.parent&&!r.popup&&this.show()}},{key:"openHandler",value:function(e){if(this.show()){e&&e.preventDefault(),this.settings.parent.style.pointerEvents="none";var t=e&&e.type===P?this._domEdit:this.domElement;setTimeout(function(){return t.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(e){var t=e&&e.type,r=!1;if(!e)r=!0;else if(t===x||t===T){var i=(this.__containedEvent||0)+100;e.timeStamp>i&&(r=!0)}else G(e),r=!0;r&&this.hide()&&(this.settings.parent.style.pointerEvents="",t!==x&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(e,t){this.closeHandler(),this.setOptions(e),t&&this.openHandler()}},{key:"setColor",value:function(e,t){this._setColor(e,{silent:t})}},{key:"_setColor",value:function(e,t){if(typeof e=="string"&&(e=e.trim()),!!e){t=t||{};var r=void 0;try{r=new N(e)}catch(o){if(t.failSilently)return;throw o}if(!this.settings.alpha){var i=r.hsla;i[3]=1,r.hsla=i}this.colour=this.color=r,this._setHSLA(null,null,null,null,t)}}},{key:"setColour",value:function(e,t){this.setColor(e,t)}},{key:"show",value:function(){var e=this.settings.parent;if(!e)return!1;if(this.domElement){var t=this._toggleDOM(!0);return this._setPosition(),t}var r=this.settings.template||'<div class="picker_wrapper" tabindex="-1"><div class="picker_arrow"></div><div class="picker_hue picker_slider"><div class="picker_selector"></div></div><div class="picker_sl"><div class="picker_selector"></div></div><div class="picker_alpha picker_slider"><div class="picker_selector"></div></div><div class="picker_editor"><input aria-label="Type a color name or hex value"/></div><div class="picker_sample"></div><div class="picker_done"><button>Ok</button></div><div class="picker_cancel"><button>Cancel</button></div></div>',i=F(r);return this.domElement=i,this._domH=_(".picker_hue",i),this._domSL=_(".picker_sl",i),this._domA=_(".picker_alpha",i),this._domEdit=_(".picker_editor input",i),this._domSample=_(".picker_sample",i),this._domOkay=_(".picker_done button",i),this._domCancel=_(".picker_cancel button",i),i.classList.add("layout_"+this.settings.layout),this.settings.alpha||i.classList.add("no_alpha"),this.settings.editor||i.classList.add("no_editor"),this.settings.cancelButton||i.classList.add("no_cancel"),this._ifPopup(function(){return i.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor(this.settings.defaultColor),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"destroy",value:function(){this._events.destroy(),this.domElement&&this.settings.parent.removeChild(this.domElement)}},{key:"_bindEvents",value:function(){var e=this,t=this,r=this.domElement,i=this._events;function o(s,p,f){i.add(s,p,f)}o(r,"click",function(s){return s.preventDefault()}),L(i,this._domH,function(s,p){return t._setHSLA(s)}),L(i,this._domSL,function(s,p){return t._setHSLA(null,s,1-p)}),this.settings.alpha&&L(i,this._domA,function(s,p){return t._setHSLA(null,null,null,1-p)});var c=this._domEdit;o(c,"input",function(s){t._setColor(this.value,{fromEditor:!0,failSilently:!0})}),o(c,"focus",function(s){var p=this;p.selectionStart===p.selectionEnd&&p.select()}),this._ifPopup(function(){var s=function(u){return e.closeHandler(u)};o(window,x,s),o(window,T,s),H(i,r,["Esc","Escape"],s);var p=function(u){e.__containedEvent=u.timeStamp};o(r,x,p),o(r,T,p),o(e._domCancel,"click",s)});var a=function(p){e._ifPopup(function(){return e.closeHandler(p)}),e.onDone&&e.onDone(e.colour)};o(this._domOkay,"click",a),H(i,r,["Enter"],a)}},{key:"_setPosition",value:function(){var e=this.settings.parent,t=this.domElement;e!==t.parentNode&&e.appendChild(t),this._ifPopup(function(r){getComputedStyle(e).position==="static"&&(e.style.position="relative");var i=r===!0?"popup_right":"popup_"+r;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(o){o===i?t.classList.add(o):t.classList.remove(o)}),t.classList.add(i)})}},{key:"_setHSLA",value:function(e,t,r,i,o){o=o||{};var c=this.colour,a=c.hsla;[e,t,r,i].forEach(function(s,p){(s||s===0)&&(a[p]=s)}),c.hsla=a,this._updateUI(o),this.onChange&&!o.silent&&this.onChange(c)}},{key:"_updateUI",value:function(e){if(!this.domElement)return;e=e||{};var t=this.colour,r=t.hsla,i="hsl("+r[0]*B+", 100%, 50%)",o=t.hslString,c=t.hslaString,a=this._domH,s=this._domSL,p=this._domA,f=_(".picker_selector",a),u=_(".picker_selector",s),d=_(".picker_selector",p);function b(M,S,C){S.style.left=C*100+"%"}function m(M,S,C){S.style.top=C*100+"%"}b(a,f,r[0]),this._domSL.style.backgroundColor=this._domH.style.color=i,b(s,u,r[1]),m(s,u,1-r[2]),s.style.color=o,m(p,d,1-r[3]);var h=o,v=h.replace("hsl","hsla").replace(")",", 0)"),g="linear-gradient("+[h,v]+")";if(this._domA.style.background=g+", "+U,!e.fromEditor){var E=this.settings.editorFormat,k=this.settings.alpha,w=void 0;switch(E){case"rgb":w=t.printRGB(k);break;case"hsl":w=t.printHSL(k);break;default:w=t.printHex(k)}this._domEdit.value=w}this._domSample.style.color=c}},{key:"_ifPopup",value:function(e,t){this.settings.parent&&this.settings.popup?e&&e(this.settings.popup):t&&t()}},{key:"_toggleDOM",value:function(e){var t=this.domElement;if(!t)return!1;var r=e?"":"none",i=t.style.display!==r;return i&&(t.style.display=r),i}}]),l})();{var D=document.createElement("style");D.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(D),K.StyleElement=D}export{K as default};
|
|
@@ -6,7 +6,7 @@ var ne=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var z;function ee(){if(z)return o;z=1;var y=Symbol.for("react.transitional.element"),v=Symbol.for("react.portal"),d=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),T=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),R=Symbol.for("react.context"),O=Symbol.for("react.forward_ref"),i=Symbol.for("react.suspense"),t=Symbol.for("react.memo"),c=Symbol.for("react.lazy"),E=Symbol.iterator;function A(e){return e===null||typeof e!="object"?null:(e=E&&e[E]||e["@@iterator"],typeof e=="function"?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},$=Object.assign,U={};function S(e,r,n){this.props=e,this.context=r,this.refs=U,this.updater=n||h}S.prototype.isReactComponent={},S.prototype.setState=function(e,r){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,r,"setState")},S.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function I(){}I.prototype=S.prototype;function N(e,r,n){this.props=e,this.context=r,this.refs=U,this.updater=n||h}var j=N.prototype=new I;j.constructor=N,$(j,S.prototype),j.isPureReactComponent=!0;var Y=Array.isArray,a={H:null,A:null,T:null,S:null,V:null},k=Object.prototype.hasOwnProperty;function D(e,r,n,u,f,p){return n=p.ref,{$$typeof:y,type:e,key:r,ref:n!==void 0?n:null,props:p}}function X(e,r){return D(e.type,r,void 0,void 0,void 0,e.props)}function H(e){return typeof e=="object"&&e!==null&&e.$$typeof===y}function Q(e){var r={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return r[n]})}var q=/\/+/g;function b(e,r){return typeof e=="object"&&e!==null&&e.key!=null?Q(""+e.key):r.toString(36)}function x(){}function Z(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(x,x):(e.status="pending",e.then(function(r){e.status==="pending"&&(e.status="fulfilled",e.value=r)},function(r){e.status==="pending"&&(e.status="rejected",e.reason=r)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function C(e,r,n,u,f){var p=typeof e;(p==="undefined"||p==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(p){case"bigint":case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case y:case v:s=!0;break;case c:return s=e._init,C(s(e._payload),r,n,u,f)}}if(s)return f=f(e),s=u===""?"."+b(e,0):u,Y(f)?(n="",s!=null&&(n=s.replace(q,"$&/")+"/"),C(f,r,n,"",function(F){return F})):f!=null&&(H(f)&&(f=X(f,n+(f.key==null||e&&e.key===f.key?"":(""+f.key).replace(q,"$&/")+"/")+s)),r.push(f)),1;s=0;var m=u===""?".":u+":";if(Y(e))for(var _=0;_<e.length;_++)u=e[_],p=m+b(u,_),s+=C(u,r,n,p,f);else if(_=A(e),typeof _=="function")for(e=_.call(e),_=0;!(u=e.next()).done;)u=u.value,p=m+b(u,_++),s+=C(u,r,n,p,f);else if(p==="object"){if(typeof e.then=="function")return C(Z(e),r,n,u,f);throw r=String(e),Error("Objects are not valid as a React child (found: "+(r==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return s}function P(e,r,n){if(e==null)return e;var u=[],f=0;return C(e,u,"","",function(p){return r.call(n,p,f++)}),u}function J(e){if(e._status===-1){var r=e._result;r=r(),r.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=r)}if(e._status===1)return e._result.default;throw e._result}var G=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var r=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(r))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function V(){}return o.Children={map:P,forEach:function(e,r,n){P(e,function(){r.apply(this,arguments)},n)},count:function(e){var r=0;return P(e,function(){r++}),r},toArray:function(e){return P(e,function(r){return r})||[]},only:function(e){if(!H(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},o.Component=S,o.Fragment=d,o.Profiler=T,o.PureComponent=N,o.StrictMode=l,o.Suspense=i,o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,o.__COMPILER_RUNTIME={__proto__:null,c:function(e){return a.H.useMemoCache(e)}},o.cache=function(e){return function(){return e.apply(null,arguments)}},o.cloneElement=function(e,r,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var u=$({},e.props),f=e.key,p=void 0;if(r!=null)for(s in r.ref!==void 0&&(p=void 0),r.key!==void 0&&(f=""+r.key),r)!k.call(r,s)||s==="key"||s==="__self"||s==="__source"||s==="ref"&&r.ref===void 0||(u[s]=r[s]);var s=arguments.length-2;if(s===1)u.children=n;else if(1<s){for(var m=Array(s),_=0;_<s;_++)m[_]=arguments[_+2];u.children=m}return D(e.type,f,void 0,void 0,p,u)},o.createContext=function(e){return e={$$typeof:R,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:w,_context:e},e},o.createElement=function(e,r,n){var u,f={},p=null;if(r!=null)for(u in r.key!==void 0&&(p=""+r.key),r)k.call(r,u)&&u!=="key"&&u!=="__self"&&u!=="__source"&&(f[u]=r[u]);var s=arguments.length-2;if(s===1)f.children=n;else if(1<s){for(var m=Array(s),_=0;_<s;_++)m[_]=arguments[_+2];f.children=m}if(e&&e.defaultProps)for(u in s=e.defaultProps,s)f[u]===void 0&&(f[u]=s[u]);return D(e,p,void 0,void 0,null,f)},o.createRef=function(){return{current:null}},o.forwardRef=function(e){return{$$typeof:O,render:e}},o.isValidElement=H,o.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:J}},o.memo=function(e,r){return{$$typeof:t,type:e,compare:r===void 0?null:r}},o.startTransition=function(e){var r=a.T,n={};a.T=n;try{var u=e(),f=a.S;f!==null&&f(n,u),typeof u=="object"&&u!==null&&typeof u.then=="function"&&u.then(V,G)}catch(p){G(p)}finally{a.T=r}},o.unstable_useCacheRefresh=function(){return a.H.useCacheRefresh()},o.use=function(e){return a.H.use(e)},o.useActionState=function(e,r,n){return a.H.useActionState(e,r,n)},o.useCallback=function(e,r){return a.H.useCallback(e,r)},o.useContext=function(e){return a.H.useContext(e)},o.useDebugValue=function(){},o.useDeferredValue=function(e,r){return a.H.useDeferredValue(e,r)},o.useEffect=function(e,r,n){var u=a.H;if(typeof n=="function")throw Error("useEffect CRUD overload is not enabled in this build of React.");return u.useEffect(e,r)},o.useId=function(){return a.H.useId()},o.useImperativeHandle=function(e,r,n){return a.H.useImperativeHandle(e,r,n)},o.useInsertionEffect=function(e,r){return a.H.useInsertionEffect(e,r)},o.useLayoutEffect=function(e,r){return a.H.useLayoutEffect(e,r)},o.useMemo=function(e,r){return a.H.useMemo(e,r)},o.useOptimistic=function(e,r){return a.H.useOptimistic(e,r)},o.useReducer=function(e,r,n){return a.H.useReducer(e,r,n)},o.useRef=function(e){return a.H.useRef(e)},o.useState=function(e){return a.H.useState(e)},o.useSyncExternalStore=function(e,r,n){return a.H.useSyncExternalStore(e,r,n)},o.useTransition=function(){return a.H.useTransition()},o.version="19.1.
|
|
9
|
+
*/var z;function ee(){if(z)return o;z=1;var y=Symbol.for("react.transitional.element"),v=Symbol.for("react.portal"),d=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),T=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),R=Symbol.for("react.context"),O=Symbol.for("react.forward_ref"),i=Symbol.for("react.suspense"),t=Symbol.for("react.memo"),c=Symbol.for("react.lazy"),E=Symbol.iterator;function A(e){return e===null||typeof e!="object"?null:(e=E&&e[E]||e["@@iterator"],typeof e=="function"?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},$=Object.assign,U={};function S(e,r,n){this.props=e,this.context=r,this.refs=U,this.updater=n||h}S.prototype.isReactComponent={},S.prototype.setState=function(e,r){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,r,"setState")},S.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function I(){}I.prototype=S.prototype;function N(e,r,n){this.props=e,this.context=r,this.refs=U,this.updater=n||h}var j=N.prototype=new I;j.constructor=N,$(j,S.prototype),j.isPureReactComponent=!0;var Y=Array.isArray,a={H:null,A:null,T:null,S:null,V:null},k=Object.prototype.hasOwnProperty;function D(e,r,n,u,f,p){return n=p.ref,{$$typeof:y,type:e,key:r,ref:n!==void 0?n:null,props:p}}function X(e,r){return D(e.type,r,void 0,void 0,void 0,e.props)}function H(e){return typeof e=="object"&&e!==null&&e.$$typeof===y}function Q(e){var r={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return r[n]})}var q=/\/+/g;function b(e,r){return typeof e=="object"&&e!==null&&e.key!=null?Q(""+e.key):r.toString(36)}function x(){}function Z(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(x,x):(e.status="pending",e.then(function(r){e.status==="pending"&&(e.status="fulfilled",e.value=r)},function(r){e.status==="pending"&&(e.status="rejected",e.reason=r)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function C(e,r,n,u,f){var p=typeof e;(p==="undefined"||p==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(p){case"bigint":case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case y:case v:s=!0;break;case c:return s=e._init,C(s(e._payload),r,n,u,f)}}if(s)return f=f(e),s=u===""?"."+b(e,0):u,Y(f)?(n="",s!=null&&(n=s.replace(q,"$&/")+"/"),C(f,r,n,"",function(F){return F})):f!=null&&(H(f)&&(f=X(f,n+(f.key==null||e&&e.key===f.key?"":(""+f.key).replace(q,"$&/")+"/")+s)),r.push(f)),1;s=0;var m=u===""?".":u+":";if(Y(e))for(var _=0;_<e.length;_++)u=e[_],p=m+b(u,_),s+=C(u,r,n,p,f);else if(_=A(e),typeof _=="function")for(e=_.call(e),_=0;!(u=e.next()).done;)u=u.value,p=m+b(u,_++),s+=C(u,r,n,p,f);else if(p==="object"){if(typeof e.then=="function")return C(Z(e),r,n,u,f);throw r=String(e),Error("Objects are not valid as a React child (found: "+(r==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return s}function P(e,r,n){if(e==null)return e;var u=[],f=0;return C(e,u,"","",function(p){return r.call(n,p,f++)}),u}function J(e){if(e._status===-1){var r=e._result;r=r(),r.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=r)}if(e._status===1)return e._result.default;throw e._result}var G=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var r=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(r))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function V(){}return o.Children={map:P,forEach:function(e,r,n){P(e,function(){r.apply(this,arguments)},n)},count:function(e){var r=0;return P(e,function(){r++}),r},toArray:function(e){return P(e,function(r){return r})||[]},only:function(e){if(!H(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},o.Component=S,o.Fragment=d,o.Profiler=T,o.PureComponent=N,o.StrictMode=l,o.Suspense=i,o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,o.__COMPILER_RUNTIME={__proto__:null,c:function(e){return a.H.useMemoCache(e)}},o.cache=function(e){return function(){return e.apply(null,arguments)}},o.cloneElement=function(e,r,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var u=$({},e.props),f=e.key,p=void 0;if(r!=null)for(s in r.ref!==void 0&&(p=void 0),r.key!==void 0&&(f=""+r.key),r)!k.call(r,s)||s==="key"||s==="__self"||s==="__source"||s==="ref"&&r.ref===void 0||(u[s]=r[s]);var s=arguments.length-2;if(s===1)u.children=n;else if(1<s){for(var m=Array(s),_=0;_<s;_++)m[_]=arguments[_+2];u.children=m}return D(e.type,f,void 0,void 0,p,u)},o.createContext=function(e){return e={$$typeof:R,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:w,_context:e},e},o.createElement=function(e,r,n){var u,f={},p=null;if(r!=null)for(u in r.key!==void 0&&(p=""+r.key),r)k.call(r,u)&&u!=="key"&&u!=="__self"&&u!=="__source"&&(f[u]=r[u]);var s=arguments.length-2;if(s===1)f.children=n;else if(1<s){for(var m=Array(s),_=0;_<s;_++)m[_]=arguments[_+2];f.children=m}if(e&&e.defaultProps)for(u in s=e.defaultProps,s)f[u]===void 0&&(f[u]=s[u]);return D(e,p,void 0,void 0,null,f)},o.createRef=function(){return{current:null}},o.forwardRef=function(e){return{$$typeof:O,render:e}},o.isValidElement=H,o.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:J}},o.memo=function(e,r){return{$$typeof:t,type:e,compare:r===void 0?null:r}},o.startTransition=function(e){var r=a.T,n={};a.T=n;try{var u=e(),f=a.S;f!==null&&f(n,u),typeof u=="object"&&u!==null&&typeof u.then=="function"&&u.then(V,G)}catch(p){G(p)}finally{a.T=r}},o.unstable_useCacheRefresh=function(){return a.H.useCacheRefresh()},o.use=function(e){return a.H.use(e)},o.useActionState=function(e,r,n){return a.H.useActionState(e,r,n)},o.useCallback=function(e,r){return a.H.useCallback(e,r)},o.useContext=function(e){return a.H.useContext(e)},o.useDebugValue=function(){},o.useDeferredValue=function(e,r){return a.H.useDeferredValue(e,r)},o.useEffect=function(e,r,n){var u=a.H;if(typeof n=="function")throw Error("useEffect CRUD overload is not enabled in this build of React.");return u.useEffect(e,r)},o.useId=function(){return a.H.useId()},o.useImperativeHandle=function(e,r,n){return a.H.useImperativeHandle(e,r,n)},o.useInsertionEffect=function(e,r){return a.H.useInsertionEffect(e,r)},o.useLayoutEffect=function(e,r){return a.H.useLayoutEffect(e,r)},o.useMemo=function(e,r){return a.H.useMemo(e,r)},o.useOptimistic=function(e,r){return a.H.useOptimistic(e,r)},o.useReducer=function(e,r,n){return a.H.useReducer(e,r,n)},o.useRef=function(e){return a.H.useRef(e)},o.useState=function(e){return a.H.useState(e)},o.useSyncExternalStore=function(e,r,n){return a.H.useSyncExternalStore(e,r,n)},o.useTransition=function(){return a.H.useTransition()},o.version="19.1.1",o}var K;function te(){return K||(K=1,L.exports=ee()),L.exports}var M={exports:{}},g={};/**
|
|
10
10
|
* @license React
|
|
11
11
|
* react-dom.production.js
|
|
12
12
|
*
|
|
@@ -14,4 +14,4 @@ var ne=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"
|
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var B;function re(){if(B)return g;B=1;var y=te();function v(i){var t="https://react.dev/errors/"+i;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var c=2;c<arguments.length;c++)t+="&args[]="+encodeURIComponent(arguments[c])}return"Minified React error #"+i+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function d(){}var l={d:{f:d,r:function(){throw Error(v(522))},D:d,C:d,L:d,m:d,X:d,S:d,M:d},p:0,findDOMNode:null},T=Symbol.for("react.portal");function w(i,t,c){var E=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:T,key:E==null?null:""+E,children:i,containerInfo:t,implementation:c}}var R=y.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function O(i,t){if(i==="font")return"";if(typeof t=="string")return t==="use-credentials"?t:""}return g.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=l,g.createPortal=function(i,t){var c=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(v(299));return w(i,t,null,c)},g.flushSync=function(i){var t=R.T,c=l.p;try{if(R.T=null,l.p=2,i)return i()}finally{R.T=t,l.p=c,l.d.f()}},g.preconnect=function(i,t){typeof i=="string"&&(t?(t=t.crossOrigin,t=typeof t=="string"?t==="use-credentials"?t:"":void 0):t=null,l.d.C(i,t))},g.prefetchDNS=function(i){typeof i=="string"&&l.d.D(i)},g.preinit=function(i,t){if(typeof i=="string"&&t&&typeof t.as=="string"){var c=t.as,E=O(c,t.crossOrigin),A=typeof t.integrity=="string"?t.integrity:void 0,h=typeof t.fetchPriority=="string"?t.fetchPriority:void 0;c==="style"?l.d.S(i,typeof t.precedence=="string"?t.precedence:void 0,{crossOrigin:E,integrity:A,fetchPriority:h}):c==="script"&&l.d.X(i,{crossOrigin:E,integrity:A,fetchPriority:h,nonce:typeof t.nonce=="string"?t.nonce:void 0})}},g.preinitModule=function(i,t){if(typeof i=="string")if(typeof t=="object"&&t!==null){if(t.as==null||t.as==="script"){var c=O(t.as,t.crossOrigin);l.d.M(i,{crossOrigin:c,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0})}}else t==null&&l.d.M(i)},g.preload=function(i,t){if(typeof i=="string"&&typeof t=="object"&&t!==null&&typeof t.as=="string"){var c=t.as,E=O(c,t.crossOrigin);l.d.L(i,c,{crossOrigin:E,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0,type:typeof t.type=="string"?t.type:void 0,fetchPriority:typeof t.fetchPriority=="string"?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy=="string"?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet=="string"?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes=="string"?t.imageSizes:void 0,media:typeof t.media=="string"?t.media:void 0})}},g.preloadModule=function(i,t){if(typeof i=="string")if(t){var c=O(t.as,t.crossOrigin);l.d.m(i,{as:typeof t.as=="string"&&t.as!=="script"?t.as:void 0,crossOrigin:c,integrity:typeof t.integrity=="string"?t.integrity:void 0})}else l.d.m(i)},g.requestFormReset=function(i){l.d.r(i)},g.unstable_batchedUpdates=function(i,t){return i(t)},g.useFormState=function(i,t,c){return R.H.useFormState(i,t,c)},g.useFormStatus=function(){return R.H.useHostTransitionStatus()},g.version="19.1.
|
|
17
|
+
*/var B;function re(){if(B)return g;B=1;var y=te();function v(i){var t="https://react.dev/errors/"+i;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var c=2;c<arguments.length;c++)t+="&args[]="+encodeURIComponent(arguments[c])}return"Minified React error #"+i+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function d(){}var l={d:{f:d,r:function(){throw Error(v(522))},D:d,C:d,L:d,m:d,X:d,S:d,M:d},p:0,findDOMNode:null},T=Symbol.for("react.portal");function w(i,t,c){var E=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:T,key:E==null?null:""+E,children:i,containerInfo:t,implementation:c}}var R=y.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function O(i,t){if(i==="font")return"";if(typeof t=="string")return t==="use-credentials"?t:""}return g.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=l,g.createPortal=function(i,t){var c=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(v(299));return w(i,t,null,c)},g.flushSync=function(i){var t=R.T,c=l.p;try{if(R.T=null,l.p=2,i)return i()}finally{R.T=t,l.p=c,l.d.f()}},g.preconnect=function(i,t){typeof i=="string"&&(t?(t=t.crossOrigin,t=typeof t=="string"?t==="use-credentials"?t:"":void 0):t=null,l.d.C(i,t))},g.prefetchDNS=function(i){typeof i=="string"&&l.d.D(i)},g.preinit=function(i,t){if(typeof i=="string"&&t&&typeof t.as=="string"){var c=t.as,E=O(c,t.crossOrigin),A=typeof t.integrity=="string"?t.integrity:void 0,h=typeof t.fetchPriority=="string"?t.fetchPriority:void 0;c==="style"?l.d.S(i,typeof t.precedence=="string"?t.precedence:void 0,{crossOrigin:E,integrity:A,fetchPriority:h}):c==="script"&&l.d.X(i,{crossOrigin:E,integrity:A,fetchPriority:h,nonce:typeof t.nonce=="string"?t.nonce:void 0})}},g.preinitModule=function(i,t){if(typeof i=="string")if(typeof t=="object"&&t!==null){if(t.as==null||t.as==="script"){var c=O(t.as,t.crossOrigin);l.d.M(i,{crossOrigin:c,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0})}}else t==null&&l.d.M(i)},g.preload=function(i,t){if(typeof i=="string"&&typeof t=="object"&&t!==null&&typeof t.as=="string"){var c=t.as,E=O(c,t.crossOrigin);l.d.L(i,c,{crossOrigin:E,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0,type:typeof t.type=="string"?t.type:void 0,fetchPriority:typeof t.fetchPriority=="string"?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy=="string"?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet=="string"?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes=="string"?t.imageSizes:void 0,media:typeof t.media=="string"?t.media:void 0})}},g.preloadModule=function(i,t){if(typeof i=="string")if(t){var c=O(t.as,t.crossOrigin);l.d.m(i,{as:typeof t.as=="string"&&t.as!=="script"?t.as:void 0,crossOrigin:c,integrity:typeof t.integrity=="string"?t.integrity:void 0})}else l.d.m(i)},g.requestFormReset=function(i){l.d.r(i)},g.unstable_batchedUpdates=function(i,t){return i(t)},g.useFormState=function(i,t,c){return R.H.useFormState(i,t,c)},g.useFormStatus=function(){return R.H.useHostTransitionStatus()},g.version="19.1.1",g}var W;function ie(){if(W)return M.exports;W=1;function y(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(y)}catch(v){console.error(v)}}return y(),M.exports=re(),M.exports}export{ie as a,oe as b,ne as c,ue as g,te as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as o,j as t}from"./app.js";import{A as p}from"./app-layout-CbyH1MDK.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-8KWnVpkN.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};
|
package/controllers/add.js
CHANGED
|
@@ -2,7 +2,7 @@ import { ControllerHelper } from "../helpers/controllerHelper";
|
|
|
2
2
|
import { RequestProcessor } from "../lib/requestProcessor";
|
|
3
3
|
import { FieldsHelper } from "../helpers/fieldsHelper";
|
|
4
4
|
import { saveRelationsMediaManager } from "../lib/media-manager/helpers/MediaManagerHelper";
|
|
5
|
-
import { DataAccessor } from "../lib/
|
|
5
|
+
import { DataAccessor } from "../lib/DataAccessor";
|
|
6
6
|
import { Adminizer } from "../lib/Adminizer";
|
|
7
7
|
import inertiaAddHelper from "../helpers/inertiaAddHelper";
|
|
8
8
|
export default async function add(req, res) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbstractCatalog, Item } from "../../lib/
|
|
1
|
+
import { AbstractCatalog, Item } from "../../lib/catalog/AbstractCatalog";
|
|
2
2
|
interface NodeModel<TDataType> {
|
|
3
3
|
text: string;
|
|
4
4
|
droppable: boolean;
|
|
@@ -31,7 +31,7 @@ export declare class VueCatalog {
|
|
|
31
31
|
catalog: AbstractCatalog;
|
|
32
32
|
constructor(_catalog: AbstractCatalog);
|
|
33
33
|
setId(id: string): void;
|
|
34
|
-
getItemType(type: string): import("../../lib/
|
|
34
|
+
getItemType(type: string): import("../../lib/catalog/AbstractCatalog").BaseItem<Item>;
|
|
35
35
|
getAddTemplate(item: any, req: ReqType): Promise<{
|
|
36
36
|
type: "component" | "navigation.group" | "navigation.link" | "model";
|
|
37
37
|
data: any;
|
|
@@ -46,12 +46,12 @@ export declare class VueCatalog {
|
|
|
46
46
|
isGroup: boolean;
|
|
47
47
|
allowedRoot: boolean;
|
|
48
48
|
icon: string;
|
|
49
|
-
actionHandlers: import("../../lib/
|
|
49
|
+
actionHandlers: import("../../lib/catalog/AbstractCatalog").ActionHandler[];
|
|
50
50
|
}[];
|
|
51
51
|
getLocales(req: ReqType): {
|
|
52
52
|
[key: string]: string;
|
|
53
53
|
};
|
|
54
|
-
getActions(items: NodeModel<any>[], type: string): Promise<import("../../lib/
|
|
54
|
+
getActions(items: NodeModel<any>[], type: string): Promise<import("../../lib/catalog/AbstractCatalog").ActionHandler[]>;
|
|
55
55
|
handleAction(actionId: string, items: any[], data: any, req: ReqType): Promise<string | void>;
|
|
56
56
|
getPopUpTemplate(actionId: string, req: ReqType): Promise<string>;
|
|
57
57
|
getLink(actionId: string): Promise<string>;
|
package/controllers/edit.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { ControllerHelper } from "../helpers/controllerHelper";
|
|
2
2
|
import { RequestProcessor } from "../lib/requestProcessor";
|
|
3
3
|
import { FieldsHelper } from "../helpers/fieldsHelper";
|
|
4
|
-
import { diff } from 'deep-object-diff';
|
|
5
4
|
import { getRelationsMediaManager, saveRelationsMediaManager } from "../lib/media-manager/helpers/MediaManagerHelper";
|
|
6
|
-
import { DataAccessor } from "../lib/
|
|
5
|
+
import { DataAccessor } from "../lib/DataAccessor";
|
|
7
6
|
import { Adminizer } from "../lib/Adminizer";
|
|
8
7
|
import inertiaAddHelper from "../helpers/inertiaAddHelper";
|
|
9
|
-
import { formatChanges, sanitizeForDiff } from "../helpers/diffHelpers";
|
|
10
8
|
export default async function edit(req, res) {
|
|
11
9
|
//Check id
|
|
12
10
|
if (!req.params.id) {
|
|
@@ -115,18 +113,6 @@ export default async function edit(req, res) {
|
|
|
115
113
|
try {
|
|
116
114
|
let newRecord = await entity.model.update(params, reqData, dataAccessor);
|
|
117
115
|
await saveRelationsMediaManager(fields, rawReqData, entity.model.identity, newRecord[0].id);
|
|
118
|
-
// Create diff
|
|
119
|
-
const cleanOldRecord = sanitizeForDiff(record);
|
|
120
|
-
const cleanNewRecord = sanitizeForDiff(newRecord[0]);
|
|
121
|
-
// Get diff
|
|
122
|
-
const changesDiff = diff(cleanOldRecord, cleanNewRecord);
|
|
123
|
-
// Format changes
|
|
124
|
-
const formattedChanges = formatChanges(changesDiff, cleanOldRecord, cleanNewRecord);
|
|
125
|
-
// log system event notification
|
|
126
|
-
await req.adminizer.logSystemUpdatedEvent(req.i18n.__('Updated'), `user ${req.user.login} ${req.i18n.__('update')} ${entity.name} ${record.id}`, {
|
|
127
|
-
changes: formattedChanges,
|
|
128
|
-
summary: `${req.i18n.__('Changes')} ${Object.keys(formattedChanges).length} ${req.i18n.__('fields')}`
|
|
129
|
-
});
|
|
130
116
|
Adminizer.log.debug(`Record was updated: `, newRecord);
|
|
131
117
|
if (req.body.jsonPopupCatalog) {
|
|
132
118
|
return res.json({ record: newRecord });
|
package/controllers/list.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ControllerHelper } from "../helpers/controllerHelper";
|
|
2
|
-
import { DataAccessor } from "../lib/
|
|
3
|
-
import { NodeTable } from "../lib/
|
|
2
|
+
import { DataAccessor } from "../lib/DataAccessor";
|
|
3
|
+
import { NodeTable } from "../lib/datatable/NodeTable";
|
|
4
4
|
import { Adminizer } from "../lib/Adminizer";
|
|
5
5
|
import { inertiaListHelper } from "../helpers/inertiaListHelper";
|
|
6
6
|
export default async function list(req, res) {
|
package/controllers/login.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { POWCaptcha } from "../lib/
|
|
1
|
+
import { POWCaptcha } from "../lib/POWCaptcha";
|
|
2
2
|
import passwordHash from "password-hash";
|
|
3
3
|
import { inertiaLoginHelper } from "../helpers/inertiaAutHelper";
|
|
4
4
|
import { Adminizer } from "../lib/Adminizer";
|
|
5
|
-
import { signUser } from "../lib/
|
|
5
|
+
import { signUser } from "../lib/helper/jwt";
|
|
6
6
|
import { serialize } from "cookie";
|
|
7
7
|
export default async function login(req, res) {
|
|
8
8
|
const powCaptcha = new POWCaptcha();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ControllerHelper } from "../../helpers/controllerHelper";
|
|
2
|
-
import { DataAccessor } from "../../lib/
|
|
2
|
+
import { DataAccessor } from "../../lib/DataAccessor";
|
|
3
3
|
export default async function edit(req, res) {
|
|
4
4
|
if (req.adminizer.config.auth.enable) {
|
|
5
5
|
if (!req.user) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare class NotificationController {
|
|
2
|
-
static
|
|
2
|
+
static search(req: ReqType, res: ResType): Promise<void>;
|
|
3
|
+
static viewAll(req: ReqType, res: ResType): Promise<import("express").Response<any, Record<string, any>>>;
|
|
4
|
+
static getNotificationClasses(req: ReqType, res: ResType): Promise<ResType>;
|
|
3
5
|
static getNotificationsStream(req: ReqType, res: ResType): Promise<void>;
|
|
4
6
|
static getNotificationsByClass(req: ReqType, res: ResType): Promise<void>;
|
|
5
7
|
static getUserNotifications(req: ReqType, res: ResType): Promise<void>;
|
|
6
|
-
static getAllUserNotifications(req: ReqType, res: ResType): Promise<void>;
|
|
7
8
|
static markAsRead(req: ReqType, res: ResType): Promise<void>;
|
|
8
|
-
static
|
|
9
|
-
private static
|
|
10
|
-
private static checkPermission;
|
|
9
|
+
static markAllAsRead(req: ReqType, res: ResType): Promise<void>;
|
|
10
|
+
private static checkNotifPermission;
|
|
11
11
|
}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import { Adminizer } from '../../lib/Adminizer';
|
|
2
2
|
export class NotificationController {
|
|
3
|
-
static async
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
static async search(req, res) {
|
|
4
|
+
NotificationController.checkNotifPermission(req, res);
|
|
5
|
+
if (req.method.toUpperCase() === 'POST') {
|
|
6
|
+
const { s, notificationClass } = req.body;
|
|
7
|
+
const hasPermission = req.adminizer.accessRightsHelper.hasPermission(`notification-${notificationClass}`, req.user);
|
|
8
|
+
if (!hasPermission) {
|
|
9
|
+
res.status(403).json({ error: 'Forbidden' });
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const service = req.adminizer.notificationHandler.getService(notificationClass);
|
|
13
|
+
res.json(await service.search(s, req.user.id));
|
|
6
14
|
}
|
|
15
|
+
}
|
|
16
|
+
static async viewAll(req, res) {
|
|
17
|
+
NotificationController.checkNotifPermission(req, res);
|
|
7
18
|
return req.Inertia.render({
|
|
8
19
|
component: 'notification',
|
|
9
20
|
props: {
|
|
@@ -11,9 +22,24 @@ export class NotificationController {
|
|
|
11
22
|
}
|
|
12
23
|
});
|
|
13
24
|
}
|
|
25
|
+
static async getNotificationClasses(req, res) {
|
|
26
|
+
NotificationController.checkNotifPermission(req, res);
|
|
27
|
+
if (req.adminizer.config.notifications.enabled === false)
|
|
28
|
+
return res.json([]);
|
|
29
|
+
const services = req.adminizer.notificationHandler.getAllServices();
|
|
30
|
+
let activeServices = [];
|
|
31
|
+
for (const service of services) {
|
|
32
|
+
// Получаем только клиентов текущего пользователя
|
|
33
|
+
const userClients = service.getUserClients(req.user.id);
|
|
34
|
+
if (userClients.size > 0) {
|
|
35
|
+
activeServices.push(service.notificationClass);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return res.json(activeServices);
|
|
39
|
+
}
|
|
14
40
|
// Единый SSE endpoint для всех уведомлений
|
|
15
41
|
static async getNotificationsStream(req, res) {
|
|
16
|
-
NotificationController.
|
|
42
|
+
NotificationController.checkNotifPermission(req, res);
|
|
17
43
|
// Устанавливаем заголовки для SSE
|
|
18
44
|
res.setHeader('Content-Type', 'text/event-stream');
|
|
19
45
|
res.setHeader('Cache-Control', 'no-cache');
|
|
@@ -25,10 +51,13 @@ export class NotificationController {
|
|
|
25
51
|
const sendEvent = (event) => {
|
|
26
52
|
// Фильтруем уведомления по правам пользователя
|
|
27
53
|
if (event.type === 'notification') {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
54
|
+
const notificationClass = event.notificationClass;
|
|
55
|
+
// ЕДИНАЯ проверка прав через AccessRightsHelper
|
|
56
|
+
const hasPermission = req.adminizer.accessRightsHelper.hasPermission(`notification-${notificationClass}`, req.user);
|
|
57
|
+
if (!hasPermission) {
|
|
58
|
+
return; // Пользователь не имеет прав на этот класс уведомлений
|
|
31
59
|
}
|
|
60
|
+
// Проверка персональных уведомлений (только для целевого пользователя)
|
|
32
61
|
if (event.userId !== null && event.userId !== req.user.id) {
|
|
33
62
|
return;
|
|
34
63
|
}
|
|
@@ -38,14 +67,15 @@ export class NotificationController {
|
|
|
38
67
|
};
|
|
39
68
|
// Подключаем клиента ко всем сервисам
|
|
40
69
|
const services = req.adminizer.notificationHandler.getAllServices();
|
|
41
|
-
services.
|
|
42
|
-
|
|
70
|
+
const allowedServices = services.filter(service => req.adminizer.accessRightsHelper.hasPermission(`notification-${service.notificationClass}`, req.user));
|
|
71
|
+
allowedServices.forEach(service => {
|
|
72
|
+
service.addClient(clientId, sendEvent, req.user);
|
|
43
73
|
// Для системного сервиса добавляем клиента в CRUD каналы
|
|
44
|
-
if (service.notificationClass === 'system'
|
|
74
|
+
if (service.notificationClass === 'system') {
|
|
45
75
|
const systemService = service;
|
|
46
|
-
// Добавляем клиента в основные CRUD каналы
|
|
76
|
+
// Добавляем клиента в основные CRUD каналы с указанием userId
|
|
47
77
|
['created', 'updated', 'deleted', 'system'].forEach(channel => {
|
|
48
|
-
systemService.addClientToChannel(clientId, channel);
|
|
78
|
+
systemService.addClientToChannel(clientId, channel, req.user.id);
|
|
49
79
|
});
|
|
50
80
|
}
|
|
51
81
|
});
|
|
@@ -57,24 +87,6 @@ export class NotificationController {
|
|
|
57
87
|
clientId: clientId
|
|
58
88
|
}
|
|
59
89
|
});
|
|
60
|
-
// Отправляем историю уведомлений (с учетом прав доступа)
|
|
61
|
-
// try {
|
|
62
|
-
// const notifications = await req.adminizer.notificationHandler.getUserNotifications(
|
|
63
|
-
// req.user,
|
|
64
|
-
// 4,
|
|
65
|
-
// true
|
|
66
|
-
// );
|
|
67
|
-
// notifications.forEach(notification => {
|
|
68
|
-
// sendEvent({
|
|
69
|
-
// type: 'notification',
|
|
70
|
-
// data: notification,
|
|
71
|
-
// notificationClass: notification.notificationClass,
|
|
72
|
-
// userId: notification.userId ?? null
|
|
73
|
-
// });
|
|
74
|
-
// });
|
|
75
|
-
// } catch (error) {
|
|
76
|
-
// Adminizer.log.error('Error sending notification history:', error);
|
|
77
|
-
// }
|
|
78
90
|
// Обработка закрытия соединения
|
|
79
91
|
req.on('close', () => {
|
|
80
92
|
// Отключаем клиента от всех сервисов
|
|
@@ -84,7 +96,7 @@ export class NotificationController {
|
|
|
84
96
|
if (service.notificationClass === 'system') {
|
|
85
97
|
const systemService = service;
|
|
86
98
|
if (systemService.removeClientFromAllChannels) {
|
|
87
|
-
systemService.removeClientFromAllChannels(clientId);
|
|
99
|
+
systemService.removeClientFromAllChannels(clientId, req.user.id);
|
|
88
100
|
}
|
|
89
101
|
}
|
|
90
102
|
});
|
|
@@ -107,16 +119,18 @@ export class NotificationController {
|
|
|
107
119
|
}
|
|
108
120
|
// API для получения уведомлений по классу
|
|
109
121
|
static async getNotificationsByClass(req, res) {
|
|
110
|
-
NotificationController.
|
|
122
|
+
NotificationController.checkNotifPermission(req, res);
|
|
111
123
|
try {
|
|
112
124
|
const { notificationClass } = req.params;
|
|
113
|
-
const { limit =
|
|
114
|
-
// Проверяем права доступа
|
|
115
|
-
|
|
116
|
-
|
|
125
|
+
const { limit = 20, skip = 0, unreadOnly = false } = req.query;
|
|
126
|
+
// Проверяем права доступа
|
|
127
|
+
const hasPermission = req.adminizer.accessRightsHelper.hasPermission(`notification-${notificationClass}`, req.user);
|
|
128
|
+
if (!hasPermission) {
|
|
129
|
+
res.status(403).json({ error: 'Forbidden' });
|
|
117
130
|
return;
|
|
118
131
|
}
|
|
119
|
-
const
|
|
132
|
+
const service = req.adminizer.notificationHandler.getService(notificationClass);
|
|
133
|
+
const notifications = await service.getNotifications(req.user?.id, Number(limit), Number(skip), unreadOnly === 'true');
|
|
120
134
|
res.json(notifications);
|
|
121
135
|
}
|
|
122
136
|
catch (error) {
|
|
@@ -126,21 +140,20 @@ export class NotificationController {
|
|
|
126
140
|
}
|
|
127
141
|
// API для получения всех уведомлений пользователя
|
|
128
142
|
static async getUserNotifications(req, res) {
|
|
129
|
-
NotificationController.
|
|
143
|
+
NotificationController.checkNotifPermission(req, res);
|
|
144
|
+
const { limit = 4, skip = 0, unreadOnly = false } = req.query;
|
|
130
145
|
try {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
const notifications = await req.adminizer.notificationHandler.getUserNotifications(req.user, 50, false);
|
|
143
|
-
res.json(notifications);
|
|
146
|
+
// Фильтруем сервисы по правам доступа
|
|
147
|
+
const services = req.adminizer.notificationHandler.getAllServices();
|
|
148
|
+
const allowedServices = services.filter(service => req.adminizer.accessRightsHelper.hasPermission(`notification-${service.notificationClass}`, req.user));
|
|
149
|
+
const allNotifications = [];
|
|
150
|
+
for (const service of allowedServices) {
|
|
151
|
+
const notifications = await service.getNotifications(req.user.id, Number(limit), Number(skip), unreadOnly === 'true');
|
|
152
|
+
allNotifications.push(...notifications);
|
|
153
|
+
}
|
|
154
|
+
// Сортируем по дате создания
|
|
155
|
+
const sortedNotifications = allNotifications.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()).slice(0, Number(limit));
|
|
156
|
+
res.json(sortedNotifications);
|
|
144
157
|
}
|
|
145
158
|
catch (error) {
|
|
146
159
|
Adminizer.log.error('Error getting user notifications:', error);
|
|
@@ -149,15 +162,11 @@ export class NotificationController {
|
|
|
149
162
|
}
|
|
150
163
|
// API для пометки как прочитанного
|
|
151
164
|
static async markAsRead(req, res) {
|
|
152
|
-
NotificationController.
|
|
165
|
+
NotificationController.checkNotifPermission(req, res);
|
|
153
166
|
try {
|
|
154
167
|
const { notificationClass, id } = req.params;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
res.status(403).json({ error: 'Forbidden: Admin access required' });
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
await req.adminizer.notificationHandler.markAsRead(notificationClass, id, req.user.id);
|
|
168
|
+
const service = req.adminizer.notificationHandler.getService(notificationClass);
|
|
169
|
+
await service.markAsRead(req.user.id, id);
|
|
161
170
|
res.json({ success: true });
|
|
162
171
|
}
|
|
163
172
|
catch (error) {
|
|
@@ -165,36 +174,26 @@ export class NotificationController {
|
|
|
165
174
|
res.status(500).json({ error: 'Internal server error' });
|
|
166
175
|
}
|
|
167
176
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
NotificationController.checkPermission(req, res);
|
|
171
|
-
// Проверяем права админа
|
|
172
|
-
if (!NotificationController.isAdmin(req.user)) {
|
|
173
|
-
res.status(403).json({ error: 'Forbidden: Admin access required' });
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
177
|
+
static async markAllAsRead(req, res) {
|
|
178
|
+
NotificationController.checkNotifPermission(req, res);
|
|
176
179
|
try {
|
|
177
|
-
const
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
+
const services = req.adminizer.notificationHandler.getAllServices();
|
|
181
|
+
for (const service of services) {
|
|
182
|
+
await service.markAllAsRead(req.user.id);
|
|
183
|
+
}
|
|
184
|
+
res.json({ success: true });
|
|
180
185
|
}
|
|
181
186
|
catch (error) {
|
|
182
|
-
Adminizer.log.error('Error
|
|
187
|
+
Adminizer.log.error('Error marking all notifications as read:', error);
|
|
183
188
|
res.status(500).json({ error: 'Internal server error' });
|
|
184
189
|
}
|
|
185
190
|
}
|
|
186
|
-
|
|
187
|
-
static isAdmin(user) {
|
|
188
|
-
if (!user)
|
|
189
|
-
return false;
|
|
190
|
-
return user.isAdministrator === true;
|
|
191
|
-
}
|
|
192
|
-
static checkPermission(req, res) {
|
|
191
|
+
static checkNotifPermission(req, res) {
|
|
193
192
|
if (!req.adminizer?.notificationHandler) {
|
|
194
193
|
res.status(500).json({ error: 'Notification system not initialized' });
|
|
195
194
|
return;
|
|
196
195
|
}
|
|
197
|
-
// Проверяем аутентификацию
|
|
196
|
+
// // Проверяем аутентификацию
|
|
198
197
|
if (req.adminizer.config.auth.enable && !req.user) {
|
|
199
198
|
res.status(401).json({ error: 'Unauthorized' });
|
|
200
199
|
return;
|
package/controllers/remove.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { ControllerHelper } from "../helpers/controllerHelper";
|
|
2
2
|
import { deleteRelationsMediaManager } from "../lib/media-manager/helpers/MediaManagerHelper";
|
|
3
|
-
import { DataAccessor } from "../lib/
|
|
3
|
+
import { DataAccessor } from "../lib/DataAccessor";
|
|
4
4
|
import { Adminizer } from "../lib/Adminizer";
|
|
5
|
-
import { formatChanges, sanitizeForDiff } from "../helpers/diffHelpers";
|
|
6
|
-
import { diff } from "deep-object-diff";
|
|
7
5
|
export default async function remove(req, res) {
|
|
8
6
|
// Checking id of the record
|
|
9
7
|
if (!req.params.id) {
|
|
@@ -70,14 +68,6 @@ export default async function remove(req, res) {
|
|
|
70
68
|
Adminizer.log.error('adminpanel > error', e);
|
|
71
69
|
}
|
|
72
70
|
if (destroyedRecord) {
|
|
73
|
-
const cleanRecordBeforeDelete = sanitizeForDiff(destroyedRecord[0]);
|
|
74
|
-
const changesDiff = diff(cleanRecordBeforeDelete, {});
|
|
75
|
-
const formattedChanges = formatChanges(changesDiff, cleanRecordBeforeDelete, {});
|
|
76
|
-
// log system event notification с diff
|
|
77
|
-
await req.adminizer.logSystemDeletedEvent(req.i18n.__('Deleted'), `user ${req.user.login} ${req.i18n.__('delete')} ${entity.name} ${destroyedRecord[0].id}`, {
|
|
78
|
-
changes: formattedChanges,
|
|
79
|
-
summary: `${req.i18n.__('Deleted')} ${formattedChanges.length} ${req.i18n.__('fields')}`
|
|
80
|
-
});
|
|
81
71
|
req.flash.setFlashMessage('success', req.i18n.__('Record was removed successfully !'));
|
|
82
72
|
}
|
|
83
73
|
else {
|
package/controllers/view.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ControllerHelper } from "../helpers/controllerHelper";
|
|
2
|
-
import { DataAccessor } from "../lib/
|
|
2
|
+
import { DataAccessor } from "../lib/DataAccessor";
|
|
3
3
|
import { Adminizer } from "../lib/Adminizer";
|
|
4
4
|
import { inertiaUserHelper } from "../helpers/inertiaUserHelper";
|
|
5
5
|
import { inertiaGroupHelper } from "../helpers/inertiaGroupHelper";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AdminpanelConfig, BaseFieldConfig } from "../interfaces/adminpanelConfig";
|
|
2
|
-
import { Attribute } from "../lib/
|
|
2
|
+
import { Attribute } from "../lib/model/AbstractModel";
|
|
3
3
|
import { Adminizer } from "../lib/Adminizer";
|
|
4
4
|
export declare class ConfigHelper {
|
|
5
5
|
adminizer: Adminizer;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ActionType, BaseFieldConfig, FieldsTypes, ModelConfig } from "../interfaces/adminpanelConfig";
|
|
2
|
-
import { Attribute } from "../lib/
|
|
2
|
+
import { Attribute } from "../lib/model/AbstractModel";
|
|
3
3
|
export type Field = {
|
|
4
4
|
config: BaseFieldConfig & {
|
|
5
5
|
/** @deprecated record should not be in config anymore */
|
package/helpers/fieldsHelper.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Entity, PropsField } from "../interfaces/types";
|
|
2
2
|
import { Actions } from "./inertiaActionsHelper";
|
|
3
3
|
import { Fields, Field } from "./fieldsHelper";
|
|
4
|
-
import { AbstractControls, ControlType } from "../lib/
|
|
4
|
+
import { AbstractControls, ControlType } from "../lib/controls/AbstractControls";
|
|
5
5
|
export type PropsFieldType = 'text' | 'number' | 'range' | 'week' | 'month' | 'email' | 'color' | 'time' | 'date' | 'datetime-local' | 'password' | 'select' | 'select-many' | 'association-many' | 'association' | 'textarea' | 'mediamanager' | 'checkbox' | ControlType;
|
|
6
6
|
interface FieldProps extends Record<string | number | symbol, unknown> {
|
|
7
7
|
edit: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Adminizer } from "../lib/Adminizer";
|
|
2
|
-
import { I18n } from "../lib/
|
|
2
|
+
import { I18n } from "../lib/I18n";
|
|
3
3
|
export declare class TranslationHelper {
|
|
4
4
|
static loadTranslations(adminizer: Adminizer, translationsPath: string): void;
|
|
5
5
|
static translateProperties(i18n: I18n, object: any, fields: string[]): any;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as path from "path";
|
|
2
2
|
import * as fs from "fs";
|
|
3
3
|
import { Adminizer } from "../lib/Adminizer";
|
|
4
|
-
import { I18n } from "../lib/
|
|
4
|
+
import { I18n } from "../lib/I18n";
|
|
5
5
|
export class TranslationHelper {
|
|
6
6
|
static loadTranslations(adminizer, translationsPath) {
|
|
7
7
|
let translationsConfig = adminizer.config.translation;
|