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.
Files changed (199) hide show
  1. package/assets/add-CZdDpNV2.js +1 -0
  2. package/assets/add-form-BjXOLDij.js +1 -0
  3. package/assets/add-group-form-BNmpvW8K.js +1 -0
  4. package/assets/add-group-urhA47Qf.js +1 -0
  5. package/assets/add-user-CzWUu7wG.js +1 -0
  6. package/assets/{add-user-form-yp020h4r.js → add-user-form-DrclnTOd.js} +1 -1
  7. package/assets/{app-CpGtjhxF.css → app-CSVBI-Lw.css} +1 -1
  8. package/assets/app-layout-CbyH1MDK.js +1 -0
  9. package/assets/{app-shell-xEVbINZV.js → app-shell-CHEYhVco.js} +1 -1
  10. package/assets/{app-sidebar-4lm9f_CG.js → app-sidebar-DeF8WNmW.js} +1 -1
  11. package/assets/app-sidebar-header-8KWnVpkN.js +1 -0
  12. package/assets/app.js +1628 -1628
  13. package/assets/breadcrumbs-C439DWrC.js +1 -0
  14. package/assets/catalog-CCSagWKW.js +6 -0
  15. package/assets/dashboard-DUNXib6b.js +3 -0
  16. package/assets/date-picker-DbJ8nHp5.js +1 -0
  17. package/assets/del-modal-_b3CSNHb.js +1 -0
  18. package/assets/{dynamic-controls-PxBg8yMz.js → dynamic-controls-BOYmRX_z.js} +1 -1
  19. package/assets/{field-renderer-CsBa_tMB.css → field-renderer-CRNLShJD.css} +1 -1
  20. package/assets/field-renderer-D0crIeQS.js +407 -0
  21. package/assets/{form-CSTeMDf5.js → form-B6LFaTgS.js} +1 -1
  22. package/assets/form-C8pRhEOA.js +1 -0
  23. package/assets/geo-json-uSUIgJf5.js +4 -0
  24. package/assets/{handsontable-D6MvFmcM.js → handsontable-PVakPtJV.js} +55 -55
  25. package/assets/home-D--JrFFj.js +2 -0
  26. package/assets/icon-DM49pZW3.js +1 -0
  27. package/assets/{init-user-L-oxFTOv.js → init-user-DNrB8Xt5.js} +1 -1
  28. package/assets/input-error--IOnWghB.js +1 -0
  29. package/assets/jsoneditor-D95dIAP2.js +3878 -0
  30. package/assets/list-CQivvagG.js +1 -0
  31. package/assets/{list-table-vIvydJV2.js → list-table-h_zXp43g.js} +4 -4
  32. package/assets/{login-DLMJ6l_r.js → login-6Xb8bcPq.js} +1 -1
  33. package/assets/manifest.json +259 -260
  34. package/assets/material-icon-BedgD2NE.js +1 -0
  35. package/assets/{media-manager-ASGJ4PcS.js → media-manager-Bms57WSN.js} +2 -2
  36. package/assets/module-DqrIORMW.js +1 -0
  37. package/assets/{monaco-B1uVVM7f.js → monaco-ICtx6xoc.js} +1 -1
  38. package/assets/{nav-footer-DbGCtmmN.js → nav-footer-BwkQkwow.js} +1 -1
  39. package/assets/{nav-main-BcWhl71g.js → nav-main-9Eb_A0rf.js} +1 -1
  40. package/assets/nav-user-CRAfyE-x.js +1 -0
  41. package/assets/notification-db0RD9I6.js +27 -0
  42. package/assets/{pagination-render-BceTnewI.js → pagination-render-D3UyVAlr.js} +1 -1
  43. package/assets/{register-C_W_hOmq.js → register-BIyjCy8M.js} +1 -1
  44. package/assets/tabs-BK_5wdPA.js +1 -0
  45. package/assets/theme-switcher-CKiJbMkh.js +1 -0
  46. package/assets/toast-editor-BZM5RHph.js +845 -0
  47. package/assets/{user-info-BrWerGLc.js → user-info-CcYdmjMZ.js} +1 -1
  48. package/assets/{user-menu-content-D61_auxX.js → user-menu-content-DbUk8ZeY.js} +1 -1
  49. package/assets/vanilla-picker-l5rcX3cq.js +8 -0
  50. package/assets/{vendor-DoC2WAmd.js → vendor-wzZzN_Jv.js} +2 -2
  51. package/assets/welcome-CZlWN4gM.js +1 -0
  52. package/controllers/add.js +1 -1
  53. package/controllers/catalog/FrontentCatalogAdapter.d.ts +4 -4
  54. package/controllers/edit.js +1 -15
  55. package/controllers/list.js +2 -2
  56. package/controllers/login.js +2 -2
  57. package/controllers/navigation/edit.js +1 -1
  58. package/controllers/notifications/NotificationController.d.ts +5 -5
  59. package/controllers/notifications/NotificationController.js +77 -78
  60. package/controllers/remove.js +1 -11
  61. package/controllers/view.js +1 -1
  62. package/helpers/configHelper.d.ts +1 -1
  63. package/helpers/fieldsHelper.d.ts +1 -1
  64. package/helpers/fieldsHelper.js +1 -1
  65. package/helpers/inertiaAddHelper.d.ts +1 -1
  66. package/helpers/translationHelper.d.ts +1 -1
  67. package/helpers/translationHelper.js +1 -1
  68. package/index.d.ts +14 -13
  69. package/index.js +14 -13
  70. package/interfaces/adminpanelConfig.d.ts +1 -1
  71. package/interfaces/global.d.ts +3 -3
  72. package/interfaces/types.d.ts +10 -1
  73. package/lib/Adminizer.d.ts +7 -7
  74. package/lib/Adminizer.js +7 -7
  75. package/lib/{v4/DataAccessor.d.ts → DataAccessor.d.ts} +4 -4
  76. package/lib/{v4/DataAccessor.js → DataAccessor.js} +3 -3
  77. package/lib/{v4/I18n.js → I18n.js} +2 -2
  78. package/lib/{v4/PolicyManager.d.ts → PolicyManager.d.ts} +1 -1
  79. package/lib/{v4/PolicyManager.js → PolicyManager.js} +2 -2
  80. package/lib/{v4/catalog → catalog}/AbstractCatalog.d.ts +1 -1
  81. package/lib/{v4/catalog → catalog}/Navigation.d.ts +2 -2
  82. package/lib/{v4/catalog → catalog}/Navigation.js +1 -1
  83. package/lib/{v4/controls → controls}/AbstractControls.d.ts +1 -1
  84. package/lib/{v4/controls → controls}/codeEditor/MonacoEditor.d.ts +1 -1
  85. package/lib/{v4/controls → controls}/geojsoneditor/GeoEditor.d.ts +1 -1
  86. package/lib/{v4/controls → controls}/jsoneditor/JsonEditor.d.ts +1 -1
  87. package/lib/{v4/controls → controls}/markdown/ToastUiEditor.d.ts +1 -1
  88. package/lib/{v4/controls → controls}/table/Handsontable.d.ts +1 -1
  89. package/lib/{v4/controls → controls}/wysiwyg/CKeditor.d.ts +1 -1
  90. package/lib/{v4/datatable → datatable}/NodeTable.d.ts +1 -1
  91. package/lib/{v4/model → model}/AbstractModel.d.ts +12 -0
  92. package/lib/model/AbstractModel.js +178 -0
  93. package/lib/{v4/model → model}/ModelHandler.js +1 -1
  94. package/lib/{v4/model → model}/adapter/sequelize.d.ts +2 -4
  95. package/lib/{v4/model → model}/adapter/sequelize.js +33 -13
  96. package/lib/{v4/notifications → notifications}/AbstractNotificationService.d.ts +14 -7
  97. package/lib/notifications/AbstractNotificationService.js +233 -0
  98. package/lib/{v4/notifications → notifications}/GeneralNotificationService.d.ts +1 -1
  99. package/lib/{v4/notifications → notifications}/GeneralNotificationService.js +4 -2
  100. package/lib/notifications/NotificationHandler.d.ts +27 -0
  101. package/lib/notifications/NotificationHandler.js +41 -0
  102. package/lib/{v4/notifications → notifications}/SystemNotificationService.d.ts +5 -4
  103. package/lib/notifications/SystemNotificationService.js +173 -0
  104. package/lib/{v4/widgets → widgets}/abstractCustom.d.ts +1 -1
  105. package/lib/{v4/widgets → widgets}/abstractLink.d.ts +1 -1
  106. package/lib/{v4/widgets → widgets}/abstractWidgetBase.d.ts +1 -1
  107. package/lib/{v4/widgets → widgets}/widgetHandler.d.ts +2 -2
  108. package/migrations/index.d.ts +3 -0
  109. package/migrations/index.js +4 -0
  110. package/migrations/umzug/0001.d.ts +7 -0
  111. package/migrations/umzug/0001.js +119 -0
  112. package/migrations/umzug.d.ts +2 -0
  113. package/migrations/umzug.js +8 -0
  114. package/models/NotificationAP.d.ts +8 -0
  115. package/models/NotificationAP.js +8 -0
  116. package/models/UserAP.d.ts +1 -1
  117. package/package.json +5 -4
  118. package/system/Router.js +4 -8
  119. package/system/bindControls.js +6 -6
  120. package/system/bindInertia.js +4 -3
  121. package/system/bindNavigation.js +1 -1
  122. package/system/bindNotifications.js +3 -3
  123. package/system/bindReqFunctions.js +8 -25
  124. package/system/defaults.js +1 -1
  125. package/ui/components/ui/table.d.ts +1 -1
  126. package/ui/components/ui/table.js +2 -2
  127. package/assets/add-DSapOiv0.js +0 -1
  128. package/assets/add-form-C04ZI5LT.js +0 -1
  129. package/assets/add-group-DWR7SBTO.js +0 -1
  130. package/assets/add-group-form-CyRwxTs3.js +0 -1
  131. package/assets/add-user-acATGxUL.js +0 -1
  132. package/assets/app-layout-BmT5KQwc.js +0 -1
  133. package/assets/app-sidebar-header-CxXmzszq.js +0 -1
  134. package/assets/breadcrumbs-livOfa2Z.js +0 -1
  135. package/assets/catalog-CG_EB2kz.js +0 -6
  136. package/assets/dashboard-CsmJfdLb.js +0 -3
  137. package/assets/date-picker-By3kj-Rx.js +0 -1
  138. package/assets/del-modal-DlcbcdR5.js +0 -1
  139. package/assets/field-renderer-Bp1lfm0v.js +0 -407
  140. package/assets/form-CxHRGp7p.js +0 -1
  141. package/assets/geo-json-CCgjEQfu.js +0 -4
  142. package/assets/home-D00XjLjD.js +0 -2
  143. package/assets/icon-ButfCBrt.js +0 -1
  144. package/assets/input-error-CHsDLcK0.js +0 -1
  145. package/assets/jsoneditor-CBqATVR0.js +0 -3833
  146. package/assets/list-4TOTsjqE.js +0 -1
  147. package/assets/material-icon-sXk4BK-N.js +0 -1
  148. package/assets/module-mxngd2cA.js +0 -1
  149. package/assets/nav-user-BN2veV3l.js +0 -1
  150. package/assets/notification-BEfA5sT6.js +0 -1
  151. package/assets/tabs-CgZW_LLn.js +0 -1
  152. package/assets/theme-switcher-D1G6OSMc.js +0 -1
  153. package/assets/toast-editor-CfgZXoQZ.js +0 -845
  154. package/assets/vanilla-picker-B6E6ObS_.js +0 -8
  155. package/assets/welcome-FHRCdke0.js +0 -1
  156. package/lib/v4/model/AbstractModel.js +0 -79
  157. package/lib/v4/notifications/AbstractNotificationService.js +0 -150
  158. package/lib/v4/notifications/NotificationHandler.d.ts +0 -69
  159. package/lib/v4/notifications/NotificationHandler.js +0 -127
  160. package/lib/v4/notifications/SystemNotificationService.js +0 -124
  161. package/migrations/db-migrate/20230303171134-adminpanel-init.js +0 -122
  162. package/migrations/db-migrate/20231223215835-add-widgets.js +0 -32
  163. package/migrations/db-migrate/20240804191001-added-navigationap.js +0 -53
  164. package/migrations/db-migrate/20241121184236-v4-init.js +0 -134
  165. /package/lib/{v4/I18n.d.ts → I18n.d.ts} +0 -0
  166. /package/lib/{v4/POWCaptcha.d.ts → POWCaptcha.d.ts} +0 -0
  167. /package/lib/{v4/POWCaptcha.js → POWCaptcha.js} +0 -0
  168. /package/lib/{v4/catalog → catalog}/AbstractCatalog.js +0 -0
  169. /package/lib/{v4/catalog → catalog}/CatalogHandler.d.ts +0 -0
  170. /package/lib/{v4/catalog → catalog}/CatalogHandler.js +0 -0
  171. /package/lib/{v4/controls → controls}/AbstractControls.js +0 -0
  172. /package/lib/{v4/controls → controls}/ControlsHandler.d.ts +0 -0
  173. /package/lib/{v4/controls → controls}/ControlsHandler.js +0 -0
  174. /package/lib/{v4/controls → controls}/codeEditor/MonacoEditor.js +0 -0
  175. /package/lib/{v4/controls → controls}/geojsoneditor/GeoEditor.js +0 -0
  176. /package/lib/{v4/controls → controls}/jsoneditor/JsonEditor.js +0 -0
  177. /package/lib/{v4/controls → controls}/markdown/ToastUiEditor.js +0 -0
  178. /package/lib/{v4/controls → controls}/table/Handsontable.js +0 -0
  179. /package/lib/{v4/controls → controls}/wysiwyg/CKeditor.js +0 -0
  180. /package/lib/{v4/datatable → datatable}/NodeTable.js +0 -0
  181. /package/lib/{v4/helper → helper}/jwt.d.ts +0 -0
  182. /package/lib/{v4/helper → helper}/jwt.js +0 -0
  183. /package/lib/{v4/inertia → inertia}/flash.d.ts +0 -0
  184. /package/lib/{v4/inertia → inertia}/flash.js +0 -0
  185. /package/lib/{v4/inertia → inertia}/inertiaAdapter.d.ts +0 -0
  186. /package/lib/{v4/inertia → inertia}/inertiaAdapter.js +0 -0
  187. /package/lib/{v4/model → model}/ModelHandler.d.ts +0 -0
  188. /package/lib/{v4/model → model}/adapter/waterline.d.ts +0 -0
  189. /package/lib/{v4/model → model}/adapter/waterline.js +0 -0
  190. /package/lib/{v4/widgets → widgets}/abstractAction.d.ts +0 -0
  191. /package/lib/{v4/widgets → widgets}/abstractAction.js +0 -0
  192. /package/lib/{v4/widgets → widgets}/abstractCustom.js +0 -0
  193. /package/lib/{v4/widgets → widgets}/abstractInfo.d.ts +0 -0
  194. /package/lib/{v4/widgets → widgets}/abstractInfo.js +0 -0
  195. /package/lib/{v4/widgets → widgets}/abstractLink.js +0 -0
  196. /package/lib/{v4/widgets → widgets}/abstractSwitch.d.ts +0 -0
  197. /package/lib/{v4/widgets → widgets}/abstractSwitch.js +0 -0
  198. /package/lib/{v4/widgets → widgets}/abstractWidgetBase.js +0 -0
  199. /package/lib/{v4/widgets → widgets}/widgetHandler.js +0 -0
@@ -1 +1 @@
1
- import{j as a,bq as i,br as l,bs as o}from"./app.js";import{r as c}from"./monaco-B1uVVM7f.js";import"./jsoneditor-CBqATVR0.js";import"./vendor-DoC2WAmd.js";import"./handsontable-D6MvFmcM.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
+ 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,bt as n,aI as a,aH as l,U as i,bu as m}from"./app.js";import{UserInfo as c}from"./user-info-BrWerGLc.js";import{r as p}from"./monaco-B1uVVM7f.js";import"./jsoneditor-CBqATVR0.js";import"./vendor-DoC2WAmd.js";import"./handsontable-D6MvFmcM.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};
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.0",o}var K;function te(){return K||(K=1,L.exports=ee()),L.exports}var M={exports:{}},g={};/**
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.0",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};
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};
@@ -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/v4/DataAccessor";
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/v4/catalog/AbstractCatalog";
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/v4/catalog/AbstractCatalog").BaseItem<Item>;
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/v4/catalog/AbstractCatalog").ActionHandler[];
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/v4/catalog/AbstractCatalog").ActionHandler[]>;
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>;
@@ -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/v4/DataAccessor";
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 });
@@ -1,6 +1,6 @@
1
1
  import { ControllerHelper } from "../helpers/controllerHelper";
2
- import { DataAccessor } from "../lib/v4/DataAccessor";
3
- import { NodeTable } from "../lib/v4/datatable/NodeTable";
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) {
@@ -1,8 +1,8 @@
1
- import { POWCaptcha } from "../lib/v4/POWCaptcha";
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/v4/helper/jwt";
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/v4/DataAccessor";
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 viewAll(req: ReqType, res: ResType): Promise<void | import("express").Response<any, Record<string, any>>>;
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 sendNotification(req: ReqType, res: ResType): Promise<void>;
9
- private static isAdmin;
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 viewAll(req, res) {
4
- if (!req.user) {
5
- return res.redirect(`${req.adminizer.config.routePrefix}/model/userap/login`);
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.checkPermission(req, res);
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
- if (event.notificationClass === 'system' && !NotificationController.isAdmin(req.user)) {
30
- return;
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.forEach(service => {
42
- service.addClient(clientId, sendEvent);
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' && NotificationController.isAdmin(req.user)) {
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.checkPermission(req, res);
122
+ NotificationController.checkNotifPermission(req, res);
111
123
  try {
112
124
  const { notificationClass } = req.params;
113
- const { limit = 50, unreadOnly = false } = req.query;
114
- // Проверяем права доступа для системных уведомлений
115
- if (notificationClass === 'system' && !NotificationController.isAdmin(req.user)) {
116
- res.status(403).json({ error: 'Forbidden: Admin access required' });
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 notifications = await req.adminizer.notificationHandler.getNotifications(notificationClass, req.user?.id, Number(limit), unreadOnly === 'true');
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.checkPermission(req, res);
143
+ NotificationController.checkNotifPermission(req, res);
144
+ const { limit = 4, skip = 0, unreadOnly = false } = req.query;
130
145
  try {
131
- const notifications = await req.adminizer.notificationHandler.getUserNotifications(req.user, 4, true);
132
- res.json(notifications);
133
- }
134
- catch (error) {
135
- Adminizer.log.error('Error getting user notifications:', error);
136
- res.status(500).json({ error: 'Internal server error' });
137
- }
138
- }
139
- static async getAllUserNotifications(req, res) {
140
- NotificationController.checkPermission(req, res);
141
- try {
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.checkPermission(req, res);
165
+ NotificationController.checkNotifPermission(req, res);
153
166
  try {
154
167
  const { notificationClass, id } = req.params;
155
- // Проверяем права доступа для системных уведомлений
156
- if (notificationClass === 'system' && !NotificationController.isAdmin(req.user)) {
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
- // API для отправки уведомления
169
- static async sendNotification(req, res) {
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 { title, message, type, priority, userId, channel, notificationClass = 'general' } = req.body;
178
- const notificationId = await req.adminizer.notificationHandler.dispatchNotification(notificationClass, { title, message, userId, channel });
179
- res.json({ success: true, id: notificationId });
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 sending notification:', 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;
@@ -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/v4/DataAccessor";
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 {
@@ -1,5 +1,5 @@
1
1
  import { ControllerHelper } from "../helpers/controllerHelper";
2
- import { DataAccessor } from "../lib/v4/DataAccessor";
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/v4/model/AbstractModel";
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/v4/model/AbstractModel";
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 */
@@ -1,4 +1,4 @@
1
- import { DataAccessor } from "../lib/v4/DataAccessor";
1
+ import { DataAccessor } from "../lib/DataAccessor";
2
2
  import { Adminizer } from "../lib/Adminizer";
3
3
  import { isObject } from "./JsUtils";
4
4
  export class FieldsHelper {
@@ -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/v4/controls/AbstractControls";
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/v4/I18n";
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/v4/I18n";
4
+ import { I18n } from "../lib/I18n";
5
5
  export class TranslationHelper {
6
6
  static loadTranslations(adminizer, translationsPath) {
7
7
  let translationsConfig = adminizer.config.translation;