adminizer 4.2.0 → 4.3.0-build.100
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-1E1UsMVZ.js +1 -0
- package/assets/add-form-CGa9QbwE.js +1 -0
- package/assets/add-group-7yAK6uFY.js +1 -0
- package/assets/add-group-form-BNmpvW8K.js +1 -0
- package/assets/add-user-NoYkTfZi.js +1 -0
- package/assets/add-user-form-DrclnTOd.js +1 -0
- package/assets/{app-CVnUv8s_.css → app-D8oqdt8J.css} +1 -1
- package/assets/app-layout-i2zN9Rn-.js +1 -0
- package/assets/app-shell-CHEYhVco.js +1 -0
- package/assets/app-sidebar-DeF8WNmW.js +1 -0
- package/assets/app-sidebar-header-DdM1EOrb.js +1 -0
- package/assets/app.js +1699 -1657
- package/assets/breadcrumbs-C439DWrC.js +1 -0
- package/assets/catalog-B9hdop59.js +6 -0
- package/assets/dashboard-Bi5KeZu2.js +3 -0
- package/assets/date-picker-DbJ8nHp5.js +1 -0
- package/assets/del-modal-_b3CSNHb.js +1 -0
- package/assets/dynamic-controls-BOYmRX_z.js +1 -0
- package/assets/field-renderer-4obZ_jUo.js +407 -0
- package/assets/{field-renderer-CsBa_tMB.css → field-renderer-CRNLShJD.css} +1 -1
- package/assets/form-Bte5kzjB.js +1 -0
- package/assets/form-oUlsuu7h.js +1 -0
- package/assets/geo-json-CadjdhwW.js +4 -0
- package/assets/handsontable-PVakPtJV.js +281 -0
- package/assets/home-CsUXA-O6.js +2 -0
- package/assets/icon-DM49pZW3.js +1 -0
- package/assets/init-user-DNrB8Xt5.js +1 -0
- package/assets/input-error--IOnWghB.js +1 -0
- package/assets/jsoneditor-D95dIAP2.js +3878 -0
- package/assets/list-CdfSnSN1.js +1 -0
- package/assets/list-table-Byzv346I.js +22 -0
- package/assets/login-6Xb8bcPq.js +1 -0
- package/assets/manifest.json +331 -221
- package/assets/material-icon-BedgD2NE.js +1 -0
- package/assets/media-manager-UQT6RhI8.js +14 -0
- package/assets/module-B4-7WkY5.js +1 -0
- package/assets/monaco-ICtx6xoc.js +11 -0
- package/assets/nav-footer-BwkQkwow.js +1 -0
- package/assets/nav-main-9Eb_A0rf.js +1 -0
- package/assets/nav-user-CRAfyE-x.js +1 -0
- package/assets/notification-ma2x7vka.js +27 -0
- package/assets/pagination-render-xsEktzA8.js +1 -0
- package/assets/register-BIyjCy8M.js +1 -0
- 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-CcYdmjMZ.js +1 -0
- package/assets/user-menu-content-DbUk8ZeY.js +1 -0
- package/assets/vanilla-picker-l5rcX3cq.js +8 -0
- package/assets/vendor-wzZzN_Jv.js +17 -0
- package/assets/welcome-cWh1qnl_.js +1 -0
- package/controllers/add.js +1 -1
- package/controllers/catalog/FrontentCatalogAdapter.d.ts +4 -4
- package/controllers/ckeditorUpload.d.ts +1 -1
- package/controllers/ckeditorUpload.js +50 -26
- package/controllers/edit.js +2 -2
- package/controllers/form.js +28 -13
- package/controllers/list.js +2 -2
- package/controllers/login.js +2 -2
- package/controllers/media-manager/mediaManagerAdapter.js +13 -2
- package/controllers/media-manager/mediaManagerApi.js +4 -3
- package/controllers/navigation/edit.js +1 -1
- package/controllers/notifications/NotificationController.d.ts +11 -0
- package/controllers/notifications/NotificationController.js +219 -0
- package/controllers/remove.js +2 -1
- package/controllers/view.js +1 -1
- package/files/favicon.png +0 -0
- package/helpers/configHelper.d.ts +1 -1
- package/helpers/controllerHelper.js +1 -1
- package/helpers/diffHelpers.d.ts +2 -0
- package/helpers/diffHelpers.js +69 -0
- package/helpers/fieldsHelper.d.ts +1 -1
- package/helpers/fieldsHelper.js +1 -1
- package/helpers/formHelper.js +3 -1
- package/helpers/inertiaAddHelper.d.ts +1 -1
- package/helpers/inertiaAutHelper.js +19 -0
- package/helpers/inertiaFromHelper.js +12 -0
- package/helpers/translationHelper.d.ts +1 -1
- package/helpers/translationHelper.js +1 -1
- package/index.d.ts +16 -14
- package/index.js +16 -14
- package/interfaces/adminpanelConfig.d.ts +18 -0
- package/interfaces/global.d.ts +3 -3
- package/interfaces/types.d.ts +44 -2
- package/lib/Adminizer.d.ts +16 -8
- package/lib/Adminizer.js +95 -12
- package/lib/{v4/DataAccessor.d.ts → DataAccessor.d.ts} +5 -5
- 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/controls → controls}/wysiwyg/CKeditor.js +1 -1
- package/lib/{v4/datatable → datatable}/NodeTable.d.ts +1 -1
- package/lib/media-manager/AbstractMediaManager.d.ts +3 -3
- package/lib/media-manager/AbstractMediaManager.js +2 -2
- package/lib/media-manager/DefaultMediaManager.d.ts +1 -1
- package/lib/media-manager/DefaultMediaManager.js +6 -8
- package/lib/media-manager/Items.d.ts +2 -1
- package/lib/media-manager/Items.js +7 -0
- package/lib/media-manager/helpers/MediaManagerHelper.d.ts +10 -0
- package/lib/media-manager/helpers/MediaManagerHelper.js +27 -10
- 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 +3 -4
- package/lib/{v4/model → model}/adapter/sequelize.js +41 -14
- package/lib/notifications/AbstractNotificationService.d.ts +163 -0
- package/lib/notifications/AbstractNotificationService.js +353 -0
- package/lib/notifications/GeneralNotificationService.d.ts +8 -0
- package/lib/notifications/GeneralNotificationService.js +61 -0
- package/lib/notifications/NotificationHandler.d.ts +27 -0
- package/lib/notifications/NotificationHandler.js +41 -0
- package/lib/notifications/SystemNotificationService.d.ts +19 -0
- 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 +121 -0
- package/migrations/umzugExports.d.ts +2 -0
- package/migrations/umzugExports.js +9 -0
- package/models/MediaManagerAP.d.ts +9 -3
- package/models/MediaManagerAP.js +11 -5
- package/models/MediaManagerAssociationsAP.d.ts +9 -3
- package/models/MediaManagerAssociationsAP.js +11 -5
- package/models/MediaManagerMetaAP.d.ts +9 -3
- package/models/MediaManagerMetaAP.js +11 -5
- package/models/NotificationAP.d.ts +44 -0
- package/models/NotificationAP.js +30 -0
- package/models/UserAP.d.ts +1 -1
- package/models/UserNotificationAP.d.ts +26 -0
- package/models/UserNotificationAP.js +18 -0
- package/package.json +17 -8
- package/system/Router.js +21 -7
- package/system/bindAssets.js +1 -0
- package/system/bindControls.js +6 -6
- package/system/bindInertia.js +9 -3
- package/system/bindMediaManager.js +2 -1
- package/system/bindNavigation.js +3 -4
- package/system/bindNotifications.d.ts +2 -0
- package/system/bindNotifications.js +14 -0
- package/system/bindReqFunctions.js +8 -25
- package/system/defaults.js +6 -0
- package/translations/ar.json +5 -4
- package/translations/cn.json +5 -4
- package/translations/de.json +72 -71
- package/translations/en.json +5 -4
- package/translations/es.json +5 -4
- package/translations/fr.json +5 -4
- package/translations/hi.json +5 -4
- package/translations/jp.json +5 -4
- package/translations/ko.json +5 -4
- package/translations/pt.json +5 -4
- package/translations/ru.json +2 -1
- package/translations/ua.json +5 -4
- package/translations/uz.json +73 -72
- package/translations/vi.json +5 -4
- package/ui/components/VanillaJSONEditor.d.ts +2 -0
- package/ui/components/VanillaJSONEditor.js +101 -0
- package/ui/components/handsontable.d.ts +10 -0
- package/ui/components/handsontable.js +51 -0
- package/ui/components/monaco-editor.d.ts +11 -0
- package/ui/components/monaco-editor.js +57 -0
- package/ui/components/ui/table.d.ts +1 -1
- package/ui/components/ui/table.js +2 -2
- package/ui/hooks/form-state.d.ts +4 -0
- package/ui/hooks/form-state.js +45 -0
- package/ui/hooks/use-appearance.d.ts +7 -0
- package/ui/hooks/use-appearance.js +76 -0
- package/ui/hooks/use-window-size.d.ts +5 -0
- package/ui/hooks/use-window-size.js +21 -0
- package/assets/VanillaJSONEditor-x8tDbio1.js +0 -3833
- package/assets/add-DOaZgoTz.js +0 -1
- package/assets/add-form-BjackXJe.js +0 -1
- package/assets/add-group-Br44s2D6.js +0 -1
- package/assets/add-group-form-YI6KS37x.js +0 -1
- package/assets/add-user-DWcH0s9-.js +0 -1
- package/assets/add-user-form-bv5BNX5A.js +0 -1
- package/assets/app-layout-DecN527i.js +0 -1
- package/assets/app-shell-DHzMWA1L.js +0 -1
- package/assets/app-sidebar-4JFP8UdU.js +0 -1
- package/assets/app-sidebar-header-CIKLfLsF.js +0 -1
- package/assets/breadcrumbs-Bo2z-LNC.js +0 -1
- package/assets/catalog-DVyrGTNR.js +0 -6
- package/assets/dashboard-Dy3pk9t7.js +0 -3
- package/assets/date-picker-B2z-aeuv.js +0 -1
- package/assets/debounce-D6eaSoDg.js +0 -1
- package/assets/del-modal-l3LxJWCN.js +0 -1
- package/assets/dynamic-controls-CSVVCONh.js +0 -1
- package/assets/field-renderer-BHo944Cn.js +0 -407
- package/assets/form-BXfnz6h5.js +0 -1
- package/assets/form-hP8sjbND.js +0 -1
- package/assets/form-state-702tb_BV.js +0 -1
- package/assets/geo-json-CVaNUZbb.js +0 -4
- package/assets/handsontable-CZQ5Ietj.js +0 -347
- package/assets/home-BD4MWmm9.js +0 -2
- package/assets/icon-C_X2cQ6W.js +0 -1
- package/assets/index-C148XJoK.js +0 -1
- package/assets/index-Vcq4gwWv.js +0 -1
- package/assets/init-user-DgCD4ZN1.js +0 -1
- package/assets/input-error-Bab-HPbn.js +0 -1
- package/assets/list-C-27EH39.js +0 -1
- package/assets/list-table-_OiQmr2A.js +0 -22
- package/assets/login-jzvVXgAV.js +0 -1
- package/assets/material-icon-DsiW0iQG.js +0 -1
- package/assets/media-manager-CSB_XRcE.js +0 -14
- package/assets/module-Ceq6vuwa.js +0 -1
- package/assets/monaco-editor-XX8Hz76f.js +0 -11
- package/assets/multi-select-BbKSrMw2.js +0 -1
- package/assets/nav-footer-B8gMV6Wp.js +0 -1
- package/assets/nav-main-BUp9qA8R.js +0 -1
- package/assets/nav-user-DeF3SDRj.js +0 -1
- package/assets/pagination-render-B9U_hVbB.js +0 -1
- package/assets/register-C6acWsLe.js +0 -1
- package/assets/theme-switcher-D8T9NgWG.js +0 -1
- package/assets/toast-editor-C0550yms.js +0 -845
- package/assets/use-appearance-CXP5cHaQ.js +0 -1
- package/assets/use-window-size-DLSEoR6e.js +0 -1
- package/assets/user-info-CAgkqARx.js +0 -1
- package/assets/user-menu-content-BxL0QMC9.js +0 -1
- package/assets/vanilla-picker-B6E6ObS_.js +0 -8
- package/assets/welcome-Dk7GoS5R.js +0 -1
- package/lib/v4/model/AbstractModel.js +0 -67
- package/lib/v4/model/adapter/typeorm.d.ts +0 -23
- package/lib/v4/model/adapter/typeorm.js +0 -68
- package/migrations/20230303171134-adminpanel-init.js +0 -122
- package/migrations/20231223215835-add-widgets.js +0 -32
- package/migrations/20240804191001-added-navigationap.js +0 -53
- package/migrations/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/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 +0,0 @@
|
|
|
1
|
-
import{c as y,r as l}from"./app.js";const S=()=>typeof window>"u"?!1:window.matchMedia("(prefers-color-scheme: dark)").matches,E=(e,a,r=365)=>{if(typeof document>"u")return;const s=r*24*60*60;document.cookie=`${e}=${a};path=/;max-age=${s};SameSite=Lax`},c=e=>{const a=e==="dark"||e==="system"&&S();document.documentElement.classList.toggle("dark",a)},w=()=>typeof window>"u"?null:window.matchMedia("(prefers-color-scheme: dark)"),v=()=>{const e=localStorage.getItem("appearance");c(e||"light")};function k(){var a;const e=localStorage.getItem("appearance")||"system";c(e),(a=w())==null||a.addEventListener("change",v)}function C(){const e=y.c(6),[a,r]=l.useState("system"),[s,g]=l.useState(!1);let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=n=>{g(!0),r(n),localStorage.setItem("appearance",n),E("appearance",n),c(n),setTimeout(()=>{g(!1),window.dispatchEvent(new Event("appearanceChanged"))},0)},e[0]=o):o=e[0];const m=o;let p,i;e[1]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{const n=localStorage.getItem("appearance");m(n||"system");const u=t=>{if(t.key==="appearance"){const f=t.newValue;r(f),c(f)}},h=()=>{const t=localStorage.getItem("appearance");r(t),c(t)};return window.addEventListener("storage",u),window.addEventListener("appearanceChanged",h),()=>{var t;window.removeEventListener("storage",u),window.removeEventListener("appearanceChanged",h),(t=w())==null||t.removeEventListener("change",v)}},i=[m],e[1]=p,e[2]=i):(p=e[1],i=e[2]),l.useEffect(p,i);let d;return e[3]!==a||e[4]!==s?(d={appearance:a,updateAppearance:m,isThemeChanging:s},e[3]=a,e[4]=s,e[5]=d):d=e[5],d}export{k as i,C as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as s,r}from"./app.js";const f=()=>{const e=s.c(3);let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i={width:typeof window<"u"?window.innerWidth:1024,height:typeof window<"u"?window.innerHeight:768},e[0]=i):i=e[0];const[d,w]=r.useState(i);let n,t;return e[1]===Symbol.for("react.memo_cache_sentinel")?(n=()=>{if(typeof window>"u")return;const o=()=>{w({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},t=[],e[1]=n,e[2]=t):(n=e[1],t=e[2]),r.useEffect(n,t),d};export{f as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as x,j as l,bt as h,bu as p,bv as v}from"./app.js";function j(){return I}function I(g){const t=g.trim().split(" ");if(t.length===0)return"";if(t.length===1)return t[0].charAt(0).toUpperCase();const e=t[0].charAt(0),m=t[t.length-1].charAt(0);return`${e}${m}`.toUpperCase()}function A(g){const t=x.c(22),{user:e,showEmail:m}=g,u=m===void 0?!1:m,d=j();let s;t[0]!==e.avatar||t[1]!==e.login?(s=l.jsx(h,{src:e.avatar,alt:e.login}),t[0]=e.avatar,t[1]=e.login,t[2]=s):s=t[2];let a;t[3]!==d||t[4]!==e.login?(a=d(e.login),t[3]=d,t[4]=e.login,t[5]=a):a=t[5];let i;t[6]!==a?(i=l.jsx(p,{className:"rounded-lg bg-neutral-200 text-black dark:bg-neutral-700 dark:text-white",children:a}),t[6]=a,t[7]=i):i=t[7];let n;t[8]!==s||t[9]!==i?(n=l.jsxs(v,{className:"h-8 w-8 overflow-hidden rounded-full",children:[s,i]}),t[8]=s,t[9]=i,t[10]=n):n=t[10];let r;t[11]!==e.login?(r=l.jsx("span",{className:"truncate font-medium",children:e.login}),t[11]=e.login,t[12]=r):r=t[12];let o;t[13]!==u||t[14]!==e.email?(o=u&&l.jsx("span",{className:"text-muted-foreground truncate text-xs",children:e.email}),t[13]=u,t[14]=e.email,t[15]=o):o=t[15];let c;t[16]!==r||t[17]!==o?(c=l.jsxs("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[r,o]}),t[16]=r,t[17]=o,t[18]=c):c=t[18];let f;return t[19]!==n||t[20]!==c?(f=l.jsxs(l.Fragment,{children:[n,c]}),t[19]=n,t[20]=c,t[21]=f):f=t[21],f}export{A as UserInfo};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as p,j as t,bw as f,bx as x,by as d,bz as b,$ as h}from"./app.js";import{UserInfo as j}from"./user-info-CAgkqARx.js";function g(){return y}function y(){document.body.style.removeProperty("pointer-events")}function N(u){const e=p.c(11),{user:a,logout:c,logoutBtn:i}=u,m=g();let o;e[0]!==a?(o=t.jsx(f,{className:"p-0 font-normal",children:t.jsx("div",{className:"flex items-center gap-2 px-1 py-1.5 text-left text-sm",children:t.jsx(j,{user:a,showEmail:!0})})}),e[0]=a,e[1]=o):o=e[1];let n;e[2]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx(x,{}),e[2]=n):n=e[2];let r;e[3]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(d,{className:"mr-2"}),e[3]=r):r=e[3];let s;e[4]!==m||e[5]!==c||e[6]!==i?(s=t.jsx(b,{asChild:!0,children:t.jsxs(h,{className:"block w-full cursor-pointer",method:"get",href:c,as:"button",onClick:m,children:[r,i]})}),e[4]=m,e[5]=c,e[6]=i,e[7]=s):s=e[7];let l;return e[8]!==o||e[9]!==s?(l=t.jsxs(t.Fragment,{children:[o,n,s]}),e[8]=o,e[9]=s,e[10]=l):l=e[10],l}export{N as UserMenuContent};
|
|
@@ -1,8 +0,0 @@
|
|
|
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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as l,q as m,j as p}from"./app.js";import{A as x}from"./app-layout-DecN527i.js";import"./app-shell-DHzMWA1L.js";import"./app-sidebar-4JFP8UdU.js";import"./nav-main-BUp9qA8R.js";import"./material-icon-DsiW0iQG.js";import"./app-sidebar-header-CIKLfLsF.js";import"./breadcrumbs-Bo2z-LNC.js";import"./nav-user-DeF3SDRj.js";import"./user-info-CAgkqARx.js";import"./user-menu-content-BxL0QMC9.js";import"./theme-switcher-D8T9NgWG.js";import"./use-appearance-CXP5cHaQ.js";import"./icon-C_X2cQ6W.js";const a=[];function E(){const t=l.c(8),e=m();let r;t[0]!==e.props.title?(r=e.props.title&&p.jsx("div",{className:"text-3xl mb-8",children:e.props.title}),t[0]=e.props.title,t[1]=r):r=t[1];let s;t[2]===Symbol.for("react.memo_cache_sentinel")?(s=p.jsx("div",{className:"text-3xl mb-8",children:"Adminizer"}),t[2]=s):s=t[2];let o;t[3]!==e.props.text?(o=e.props.text&&p.jsx("div",{dangerouslySetInnerHTML:{__html:e.props.text}}),t[3]=e.props.text,t[4]=o):o=t[4];let i;return t[5]!==r||t[6]!==o?(i=p.jsx(x,{breadcrumbs:a,children:p.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[r,s,o]})}),t[5]=r,t[6]=o,t[7]=i):i=t[7],i}export{E as default};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
export class AbstractModel {
|
|
2
|
-
modelname;
|
|
3
|
-
attributes;
|
|
4
|
-
primaryKey;
|
|
5
|
-
identity;
|
|
6
|
-
constructor(modelname, attributes, primaryKey, identity) {
|
|
7
|
-
this.modelname = modelname;
|
|
8
|
-
this.attributes = attributes;
|
|
9
|
-
this.primaryKey = primaryKey;
|
|
10
|
-
this.identity = identity;
|
|
11
|
-
}
|
|
12
|
-
async create(data, dataAccessor) {
|
|
13
|
-
let _data = await dataAccessor.setUserRelationAccess(dataAccessor.process(data));
|
|
14
|
-
let record = await this._create(_data);
|
|
15
|
-
return dataAccessor.process(record);
|
|
16
|
-
}
|
|
17
|
-
async findOne(criteria, dataAccessor) {
|
|
18
|
-
criteria = await dataAccessor.sanitizeUserRelationAccess(criteria);
|
|
19
|
-
let record = await this._findOne(criteria);
|
|
20
|
-
return record ? dataAccessor.process(record) : null;
|
|
21
|
-
}
|
|
22
|
-
async find(criteria, dataAccessor) {
|
|
23
|
-
criteria = await dataAccessor.sanitizeUserRelationAccess(criteria);
|
|
24
|
-
let records = await this._find(criteria);
|
|
25
|
-
return records.map(record => dataAccessor.process(record));
|
|
26
|
-
}
|
|
27
|
-
async updateOne(criteria, data, dataAccessor) {
|
|
28
|
-
let _data = dataAccessor.process(data);
|
|
29
|
-
criteria = await dataAccessor.sanitizeUserRelationAccess(criteria);
|
|
30
|
-
let record = await this._updateOne(criteria, _data);
|
|
31
|
-
return record ? dataAccessor.process(record) : null;
|
|
32
|
-
}
|
|
33
|
-
async update(criteria, data, dataAccessor) {
|
|
34
|
-
let _data = dataAccessor.process(data);
|
|
35
|
-
criteria = await dataAccessor.sanitizeUserRelationAccess(criteria);
|
|
36
|
-
let records = await this._update(criteria, _data);
|
|
37
|
-
return records.map(record => dataAccessor.process(record));
|
|
38
|
-
}
|
|
39
|
-
async destroyOne(criteria, dataAccessor) {
|
|
40
|
-
criteria = await dataAccessor.sanitizeUserRelationAccess(criteria);
|
|
41
|
-
let record = await this._destroyOne(criteria);
|
|
42
|
-
return record ? dataAccessor.process(record) : null;
|
|
43
|
-
}
|
|
44
|
-
async destroy(criteria, dataAccessor) {
|
|
45
|
-
criteria = await dataAccessor.sanitizeUserRelationAccess(criteria);
|
|
46
|
-
let records = await this._destroy(criteria);
|
|
47
|
-
return records.map(record => dataAccessor.process(record));
|
|
48
|
-
}
|
|
49
|
-
async count(criteria, dataAccessor) {
|
|
50
|
-
criteria = await dataAccessor.sanitizeUserRelationAccess(criteria);
|
|
51
|
-
return this._count(criteria);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
export class AbstractAdapter {
|
|
55
|
-
orm;
|
|
56
|
-
ormType;
|
|
57
|
-
constructor(type, orm) {
|
|
58
|
-
this.ormType = type;
|
|
59
|
-
this.orm = orm;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* This method must ensure system models registration and throw an error in case of errors. We force all adapters to realize it
|
|
63
|
-
*/
|
|
64
|
-
static registerSystemModels(orm) {
|
|
65
|
-
throw new Error("Function 'registerSystemModels' must be implemented by subclass");
|
|
66
|
-
}
|
|
67
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Repository } from "typeorm";
|
|
2
|
-
import { AbstractAdapter, AbstractModel } from "../AbstractModel";
|
|
3
|
-
import { FindOptions } from "../AbstractModel";
|
|
4
|
-
export declare class TypeORMModel<T> extends AbstractModel<T> {
|
|
5
|
-
private repository;
|
|
6
|
-
constructor(repository: Repository<T>, modelName: string, model: any);
|
|
7
|
-
protected _count(criteria: Partial<T> | undefined): Promise<number>;
|
|
8
|
-
protected _create(data: Partial<T>): Promise<T>;
|
|
9
|
-
protected _destroy(criteria: Partial<T>): Promise<T[]>;
|
|
10
|
-
protected _destroyOne(criteria: Partial<T>): Promise<T | null>;
|
|
11
|
-
protected _find(criteria: Partial<T>, options: FindOptions | undefined): Promise<T[]>;
|
|
12
|
-
protected _findOne(criteria: Partial<T>): Promise<T | null>;
|
|
13
|
-
protected _update(criteria: Partial<T>, data: Partial<T>): Promise<T[]>;
|
|
14
|
-
protected _updateOne(criteria: Partial<T>, data: Partial<T>): Promise<T | null>;
|
|
15
|
-
}
|
|
16
|
-
export declare class TypeORMAdapter extends AbstractAdapter {
|
|
17
|
-
Model: any;
|
|
18
|
-
constructor(orm: any);
|
|
19
|
-
get models(): Record<string, any>;
|
|
20
|
-
registerModel(modelName: string, attributes: any): any;
|
|
21
|
-
getAttributes(modelName: string): any;
|
|
22
|
-
getModel(modelName: string): any;
|
|
23
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { AbstractAdapter, AbstractModel } from "../AbstractModel";
|
|
2
|
-
// TODO TypeORM classes realized schematically and need to be tested
|
|
3
|
-
export class TypeORMModel extends AbstractModel {
|
|
4
|
-
repository;
|
|
5
|
-
constructor(repository, modelName, model) {
|
|
6
|
-
super(modelName, model.attributes, model.primaryKey, model.identity);
|
|
7
|
-
this.repository = repository;
|
|
8
|
-
}
|
|
9
|
-
async _count(criteria) {
|
|
10
|
-
return this.repository.count({ where: criteria });
|
|
11
|
-
}
|
|
12
|
-
async _create(data) {
|
|
13
|
-
const entity = this.repository.create(data);
|
|
14
|
-
return this.repository.save(entity);
|
|
15
|
-
}
|
|
16
|
-
async _destroy(criteria) {
|
|
17
|
-
const entities = await this._find(criteria, undefined);
|
|
18
|
-
await this.repository.remove(entities);
|
|
19
|
-
return entities;
|
|
20
|
-
}
|
|
21
|
-
async _destroyOne(criteria) {
|
|
22
|
-
const entity = await this._findOne(criteria);
|
|
23
|
-
if (entity) {
|
|
24
|
-
await this.repository.remove(entity);
|
|
25
|
-
return entity;
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
async _find(criteria, options) {
|
|
30
|
-
return this.repository.find({ where: criteria, ...options });
|
|
31
|
-
}
|
|
32
|
-
async _findOne(criteria) {
|
|
33
|
-
return this.repository.findOne({ where: criteria });
|
|
34
|
-
}
|
|
35
|
-
async _update(criteria, data) {
|
|
36
|
-
const entities = await this._find(criteria, undefined);
|
|
37
|
-
for (const entity of entities) {
|
|
38
|
-
Object.assign(entity, data);
|
|
39
|
-
}
|
|
40
|
-
return this.repository.save(entities);
|
|
41
|
-
}
|
|
42
|
-
async _updateOne(criteria, data) {
|
|
43
|
-
const entity = await this._findOne(criteria);
|
|
44
|
-
if (entity) {
|
|
45
|
-
Object.assign(entity, data);
|
|
46
|
-
return this.repository.save(entity);
|
|
47
|
-
}
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
export class TypeORMAdapter extends AbstractAdapter {
|
|
52
|
-
Model = TypeORMModel;
|
|
53
|
-
constructor(orm) {
|
|
54
|
-
super("typeorm", orm);
|
|
55
|
-
}
|
|
56
|
-
get models() {
|
|
57
|
-
return this.orm.models;
|
|
58
|
-
}
|
|
59
|
-
registerModel(modelName, attributes) {
|
|
60
|
-
return undefined;
|
|
61
|
-
}
|
|
62
|
-
getAttributes(modelName) {
|
|
63
|
-
return undefined;
|
|
64
|
-
}
|
|
65
|
-
getModel(modelName) {
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
// sql template autogenerated by gen-db-migrates
|
|
3
|
-
|
|
4
|
-
var async = require('async')
|
|
5
|
-
var dbm;
|
|
6
|
-
var type;
|
|
7
|
-
var seed;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
11
|
-
* This enables us to not have to rely on NODE_PATH.
|
|
12
|
-
*/
|
|
13
|
-
exports.setup = function(options, seedLink) {
|
|
14
|
-
dbm = options.dbmigrate;
|
|
15
|
-
type = dbm.dataType;
|
|
16
|
-
seed = seedLink;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
exports.up = function (db, callback) {
|
|
20
|
-
async.series([
|
|
21
|
-
(cb) => db.createTable('groupap', {
|
|
22
|
-
columns: {
|
|
23
|
-
"id": {
|
|
24
|
-
"type": "serial",
|
|
25
|
-
"autoIncrement": true,
|
|
26
|
-
"primaryKey": true
|
|
27
|
-
},
|
|
28
|
-
"name": {
|
|
29
|
-
"type": "text",
|
|
30
|
-
"unique": true
|
|
31
|
-
},
|
|
32
|
-
"description": {
|
|
33
|
-
"type": "text"
|
|
34
|
-
},
|
|
35
|
-
"tokens": {
|
|
36
|
-
"type": "json"
|
|
37
|
-
},
|
|
38
|
-
"createdAt": {
|
|
39
|
-
"type": "bigint"
|
|
40
|
-
},
|
|
41
|
-
"updatedAt": {
|
|
42
|
-
"type": "bigint"
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
ifNotExists: true
|
|
46
|
-
}, cb),
|
|
47
|
-
(cb) => db.createTable('userap', {
|
|
48
|
-
columns: {
|
|
49
|
-
"id": {
|
|
50
|
-
"type": "serial",
|
|
51
|
-
"autoIncrement": true,
|
|
52
|
-
"primaryKey": true
|
|
53
|
-
},
|
|
54
|
-
"login": {
|
|
55
|
-
"type": "text",
|
|
56
|
-
"unique": true
|
|
57
|
-
},
|
|
58
|
-
"fullName": {
|
|
59
|
-
"type": "text"
|
|
60
|
-
},
|
|
61
|
-
"email": {
|
|
62
|
-
"type": "text"
|
|
63
|
-
},
|
|
64
|
-
"passwordHashed": {
|
|
65
|
-
"type": "text"
|
|
66
|
-
},
|
|
67
|
-
"password": {
|
|
68
|
-
"type": "text"
|
|
69
|
-
},
|
|
70
|
-
"timezone": {
|
|
71
|
-
"type": "text"
|
|
72
|
-
},
|
|
73
|
-
"expires": {
|
|
74
|
-
"type": "text"
|
|
75
|
-
},
|
|
76
|
-
"locale": {
|
|
77
|
-
"type": "text"
|
|
78
|
-
},
|
|
79
|
-
"isDeleted": {
|
|
80
|
-
"type": "boolean"
|
|
81
|
-
},
|
|
82
|
-
"isActive": {
|
|
83
|
-
"type": "boolean"
|
|
84
|
-
},
|
|
85
|
-
"isAdministrator": {
|
|
86
|
-
"type": "boolean"
|
|
87
|
-
},
|
|
88
|
-
"createdAt": {
|
|
89
|
-
"type": "bigint"
|
|
90
|
-
},
|
|
91
|
-
"updatedAt": {
|
|
92
|
-
"type": "bigint"
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
ifNotExists: true
|
|
96
|
-
}, cb),
|
|
97
|
-
(cb) => db.createTable('groupap_users__userap_groups', {
|
|
98
|
-
columns: {
|
|
99
|
-
"id": {
|
|
100
|
-
"type": "serial",
|
|
101
|
-
"autoIncrement": true
|
|
102
|
-
},
|
|
103
|
-
"groupap_users": {
|
|
104
|
-
"type": "bigint"
|
|
105
|
-
},
|
|
106
|
-
"userap_groups": {
|
|
107
|
-
"type": "bigint"
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
ifNotExists: true
|
|
111
|
-
}, cb),
|
|
112
|
-
|
|
113
|
-
], callback);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
exports.down = function(db) {
|
|
117
|
-
return null;
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
exports._meta = {
|
|
121
|
-
"version": 1
|
|
122
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
// sql template autogenerated by gen-db-migrates
|
|
3
|
-
|
|
4
|
-
var async = require('async')
|
|
5
|
-
var dbm;
|
|
6
|
-
var type;
|
|
7
|
-
var seed;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
11
|
-
* This enables us to not have to rely on NODE_PATH.
|
|
12
|
-
*/
|
|
13
|
-
exports.setup = function(options, seedLink) {
|
|
14
|
-
dbm = options.dbmigrate;
|
|
15
|
-
type = dbm.dataType;
|
|
16
|
-
seed = seedLink;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
exports.up = function (db, callback) {
|
|
20
|
-
async.series([
|
|
21
|
-
(cb) => db.addColumn('userap', 'widgets', {"type":"json"}, cb),
|
|
22
|
-
|
|
23
|
-
], callback);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
exports.down = function(db) {
|
|
27
|
-
return null;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
exports._meta = {
|
|
31
|
-
"version": 1
|
|
32
|
-
};
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
// sql template autogenerated by gen-db-migrates
|
|
3
|
-
|
|
4
|
-
var async = require('async')
|
|
5
|
-
var dbm;
|
|
6
|
-
var type;
|
|
7
|
-
var seed;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
11
|
-
* This enables us to not have to rely on NODE_PATH.
|
|
12
|
-
*/
|
|
13
|
-
exports.setup = function(options, seedLink) {
|
|
14
|
-
dbm = options.dbmigrate;
|
|
15
|
-
type = dbm.dataType;
|
|
16
|
-
seed = seedLink;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
exports.up = function (db, callback) {
|
|
20
|
-
async.series([
|
|
21
|
-
(cb) => db.createTable('navigationap', {
|
|
22
|
-
columns: {
|
|
23
|
-
"id": {
|
|
24
|
-
"type": "text",
|
|
25
|
-
"primaryKey": true,
|
|
26
|
-
"notNull": true
|
|
27
|
-
},
|
|
28
|
-
"label": {
|
|
29
|
-
"type": "text"
|
|
30
|
-
},
|
|
31
|
-
"tree": {
|
|
32
|
-
"type": "json"
|
|
33
|
-
},
|
|
34
|
-
"createdAt": {
|
|
35
|
-
"type": "bigint"
|
|
36
|
-
},
|
|
37
|
-
"updatedAt": {
|
|
38
|
-
"type": "bigint"
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
ifNotExists: true
|
|
42
|
-
}, cb),
|
|
43
|
-
|
|
44
|
-
], callback);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
exports.down = function(db) {
|
|
48
|
-
return null;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
exports._meta = {
|
|
52
|
-
"version": 1
|
|
53
|
-
};
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
// sql template autogenerated by gen-db-migrates
|
|
3
|
-
|
|
4
|
-
var async = require('async')
|
|
5
|
-
var dbm;
|
|
6
|
-
var type;
|
|
7
|
-
var seed;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
11
|
-
* This enables us to not have to rely on NODE_PATH.
|
|
12
|
-
*/
|
|
13
|
-
exports.setup = function(options, seedLink) {
|
|
14
|
-
dbm = options.dbmigrate;
|
|
15
|
-
type = dbm.dataType;
|
|
16
|
-
seed = seedLink;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
exports.up = function (db, callback) {
|
|
20
|
-
async.series([
|
|
21
|
-
(cb) => db.createTable('mediamanagerap', {
|
|
22
|
-
columns: {
|
|
23
|
-
"id": {
|
|
24
|
-
"type": "text",
|
|
25
|
-
"primaryKey": true,
|
|
26
|
-
"notNull": true
|
|
27
|
-
},
|
|
28
|
-
"parent": {
|
|
29
|
-
"type": "text"
|
|
30
|
-
},
|
|
31
|
-
"mimeType": {
|
|
32
|
-
"type": "text"
|
|
33
|
-
},
|
|
34
|
-
"path": {
|
|
35
|
-
"type": "text"
|
|
36
|
-
},
|
|
37
|
-
"size": {
|
|
38
|
-
"type": "real"
|
|
39
|
-
},
|
|
40
|
-
"group": {
|
|
41
|
-
"type": "text"
|
|
42
|
-
},
|
|
43
|
-
"tag": {
|
|
44
|
-
"type": "text"
|
|
45
|
-
},
|
|
46
|
-
"url": {
|
|
47
|
-
"type": "text"
|
|
48
|
-
},
|
|
49
|
-
"filename": {
|
|
50
|
-
"type": "text"
|
|
51
|
-
},
|
|
52
|
-
"createdAt": {
|
|
53
|
-
"type": "bigint"
|
|
54
|
-
},
|
|
55
|
-
"updatedAt": {
|
|
56
|
-
"type": "bigint"
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
ifNotExists: true
|
|
60
|
-
}, cb),
|
|
61
|
-
(cb) => db.createTable('mediamanagerassociationsap', {
|
|
62
|
-
columns: {
|
|
63
|
-
"id": {
|
|
64
|
-
"type": "text",
|
|
65
|
-
"primaryKey": true,
|
|
66
|
-
"notNull": true
|
|
67
|
-
},
|
|
68
|
-
"mediaManagerId": {
|
|
69
|
-
"type": "text"
|
|
70
|
-
},
|
|
71
|
-
"model": {
|
|
72
|
-
"type": "json"
|
|
73
|
-
},
|
|
74
|
-
"modelId": {
|
|
75
|
-
"type": "json"
|
|
76
|
-
},
|
|
77
|
-
"widgetName": {
|
|
78
|
-
"type": "text"
|
|
79
|
-
},
|
|
80
|
-
"sortOrder": {
|
|
81
|
-
"type": "real"
|
|
82
|
-
},
|
|
83
|
-
"file": {
|
|
84
|
-
"type": "text"
|
|
85
|
-
},
|
|
86
|
-
"createdAt": {
|
|
87
|
-
"type": "bigint"
|
|
88
|
-
},
|
|
89
|
-
"updatedAt": {
|
|
90
|
-
"type": "bigint"
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
ifNotExists: true
|
|
94
|
-
}, cb),
|
|
95
|
-
(cb) => db.createTable('mediamanagermetaap', {
|
|
96
|
-
columns: {
|
|
97
|
-
"id": {
|
|
98
|
-
"type": "text",
|
|
99
|
-
"primaryKey": true,
|
|
100
|
-
"notNull": true
|
|
101
|
-
},
|
|
102
|
-
"key": {
|
|
103
|
-
"type": "text"
|
|
104
|
-
},
|
|
105
|
-
"value": {
|
|
106
|
-
"type": "json"
|
|
107
|
-
},
|
|
108
|
-
"isPublic": {
|
|
109
|
-
"type": "boolean"
|
|
110
|
-
},
|
|
111
|
-
"parent": {
|
|
112
|
-
"type": "text"
|
|
113
|
-
},
|
|
114
|
-
"createdAt": {
|
|
115
|
-
"type": "bigint"
|
|
116
|
-
},
|
|
117
|
-
"updatedAt": {
|
|
118
|
-
"type": "bigint"
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
ifNotExists: true
|
|
122
|
-
}, cb),
|
|
123
|
-
(cb) => db.addColumn('userap', 'isConfirmed', {"type":"boolean"}, cb),
|
|
124
|
-
|
|
125
|
-
], callback);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
exports.down = function(db) {
|
|
129
|
-
return null;
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
exports._meta = {
|
|
133
|
-
"version": 1
|
|
134
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|