@opengis/cms 0.0.24 → 0.0.27

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 (149) hide show
  1. package/README.md +98 -98
  2. package/dist/index-W-qQIppj-DunG40EG.js +2452 -0
  3. package/dist/index.html +29 -35
  4. package/dist/index.js +19855 -0
  5. package/dist/index.umd.cjs +199 -0
  6. package/package.json +68 -67
  7. package/plugin.js +76 -76
  8. package/server/app.js +35 -35
  9. package/server/config.js +4 -4
  10. package/server/functions/getDraftKey.js +22 -22
  11. package/server/index.js +22 -22
  12. package/server/migrations/fixes.sql +123 -123
  13. package/server/migrations/site.sql +545 -545
  14. package/server/plugins/adminHook.js +78 -78
  15. package/server/plugins/hook.js +59 -59
  16. package/server/plugins/vite.js +84 -84
  17. package/server/routes/category/controllers/cms.category.delete.js +21 -21
  18. package/server/routes/category/controllers/cms.category.get.js +17 -17
  19. package/server/routes/category/controllers/cms.category.list.js +16 -16
  20. package/server/routes/category/controllers/cms.category.post.js +21 -21
  21. package/server/routes/category/controllers/cms.category.put.js +23 -23
  22. package/server/routes/category/index.mjs +22 -22
  23. package/server/routes/cms/controllers/cmsStat.js +55 -55
  24. package/server/routes/cms/controllers/cmsSuggest.js +57 -57
  25. package/server/routes/cms/controllers/deleteContent.js +114 -114
  26. package/server/routes/cms/controllers/deleteMedia.js +75 -75
  27. package/server/routes/cms/controllers/downloadMedia.js +48 -48
  28. package/server/routes/cms/controllers/getContent.js +110 -110
  29. package/server/routes/cms/controllers/getContentBySlug.js +95 -95
  30. package/server/routes/cms/controllers/getPermissions.js +15 -15
  31. package/server/routes/cms/controllers/insertContent.js +218 -218
  32. package/server/routes/cms/controllers/listMedia.js +93 -93
  33. package/server/routes/cms/controllers/metadataMedia.js +38 -38
  34. package/server/routes/cms/controllers/properties.get.js +53 -53
  35. package/server/routes/cms/controllers/properties.post.js +99 -99
  36. package/server/routes/cms/controllers/searchContent.js +205 -205
  37. package/server/routes/cms/controllers/setPermissions.js +49 -49
  38. package/server/routes/cms/controllers/translate.js +89 -89
  39. package/server/routes/cms/controllers/updateContent.js +238 -238
  40. package/server/routes/cms/controllers/uploadMedia.js +78 -78
  41. package/server/routes/cms/index.mjs +114 -114
  42. package/server/routes/cms/utils/additionalData.js +35 -35
  43. package/server/routes/cms/utils/getCollection.js +81 -81
  44. package/server/routes/cms/utils/getSingle.js +187 -187
  45. package/server/routes/cms/utils/insertContentLocalization.js +86 -86
  46. package/server/routes/cms/utils/requestTranslation.js +85 -85
  47. package/server/routes/cms/utils/updateLocalization.js +47 -47
  48. package/server/routes/cmsSpace/controllers/deleteSpace.js +25 -25
  49. package/server/routes/cmsSpace/controllers/getSpaces.js +27 -27
  50. package/server/routes/cmsSpace/controllers/insertSpace.js +21 -21
  51. package/server/routes/cmsSpace/controllers/updateSpace.js +23 -23
  52. package/server/routes/cmsSpace/index.mjs +20 -20
  53. package/server/routes/contentType/controllers/addContentType.js +162 -162
  54. package/server/routes/contentType/controllers/contentTypeList.js +54 -54
  55. package/server/routes/contentType/controllers/delContentType.js +75 -75
  56. package/server/routes/contentType/controllers/editContentType.js +61 -61
  57. package/server/routes/contentType/controllers/getContentType.js +37 -37
  58. package/server/routes/contentType/index.mjs +35 -35
  59. package/server/routes/contentType/utils/updateContents.js +28 -28
  60. package/server/routes/contentType/utils/updateCustomContentTable.js +55 -55
  61. package/server/routes/feedback/controllers/email.list.js +24 -24
  62. package/server/routes/feedback/controllers/feedback.js +48 -48
  63. package/server/routes/feedback/controllers/feedback.list.js +37 -37
  64. package/server/routes/feedback/controllers/news.subscriptions.js +44 -44
  65. package/server/routes/feedback/index.mjs +71 -71
  66. package/server/routes/logs/controllers/export.user.logs.js +77 -77
  67. package/server/routes/logs/controllers/user.logs.js +44 -44
  68. package/server/routes/logs/index.mjs +9 -9
  69. package/server/routes/menu/controllers/addMenu.js +37 -37
  70. package/server/routes/menu/controllers/delMenu.js +31 -31
  71. package/server/routes/menu/controllers/editMenu.js +41 -41
  72. package/server/routes/menu/controllers/getMenu.js +42 -42
  73. package/server/routes/menu/index.mjs +13 -13
  74. package/server/routes/migration/controllers/collectionToCustom.js +137 -137
  75. package/server/routes/migration/index.mjs +8 -8
  76. package/server/routes/root.mjs +8 -8
  77. package/server/routes/tags/controllers/add.tags.js +24 -24
  78. package/server/routes/tags/controllers/del.tags.js +19 -19
  79. package/server/routes/tags/controllers/edit.tags.js +25 -25
  80. package/server/routes/tags/controllers/get.tags.js +15 -15
  81. package/server/routes/tags/index.mjs +14 -14
  82. package/server/templates/cls/cms.category_type.json +9 -9
  83. package/server/templates/cls/cms.content_review_status.json +9 -9
  84. package/server/templates/cls/cms.content_status.json +9 -9
  85. package/server/templates/cls/cms.content_type.json +9 -9
  86. package/server/templates/cls/cms.lang.json +9 -9
  87. package/server/templates/page/login.html +126 -126
  88. package/server/templates/select/core.user_mentioned.sql +1 -1
  89. package/dist/assets/AddUser-CX-McfRW.js +0 -1
  90. package/dist/assets/ApiKeys-DSv1exYv.js +0 -16
  91. package/dist/assets/Appearance-DDtOUvCV.js +0 -6
  92. package/dist/assets/ArticlesPage-D6B3cZsl.js +0 -6
  93. package/dist/assets/BuilderPage-CCeSMVWe.js +0 -1
  94. package/dist/assets/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-DVYVfYF4.js +0 -1
  95. package/dist/assets/CollectionsPage-CHk8Cn5k.js +0 -1
  96. package/dist/assets/Dashboard-Bs7sXO6h.js +0 -11
  97. package/dist/assets/EditCollectionPage-gPuLJrN8.js +0 -41
  98. package/dist/assets/EmailPage-DhlWsPxk.js +0 -1
  99. package/dist/assets/EmptyData-Ct-xQv_N.js +0 -1
  100. package/dist/assets/FeedbackPage-DtaOncVv.js +0 -1
  101. package/dist/assets/Logs-CZ5klHNK.js +0 -1
  102. package/dist/assets/MediaBreadcrumb-BpOxt5PK.js +0 -11
  103. package/dist/assets/MediaPage-DqRcZFlO.js +0 -16
  104. package/dist/assets/MenuAddPage-BLcoVgrS.js +0 -1
  105. package/dist/assets/MenuItemPage-B2otXqkz.js +0 -20
  106. package/dist/assets/MenuPage-C00m4Fc_.js +0 -1
  107. package/dist/assets/MonacoEditor.vue_vue_type_script_setup_true_lang-CjoEsC67.js +0 -3
  108. package/dist/assets/PermissionsPage-LtqcCJ14.js +0 -1
  109. package/dist/assets/Settings-BHH6RoBP.js +0 -1
  110. package/dist/assets/SettingsTable-CY5pZx1z.js +0 -1
  111. package/dist/assets/SettingsTitle-t4WJBFxZ.js +0 -1
  112. package/dist/assets/SingletonsPage-Bn2Ypjhs.js +0 -6
  113. package/dist/assets/TagsPage-DAiakEth.js +0 -1
  114. package/dist/assets/UniversalTable.vue_vue_type_script_setup_true_lang-BQ5m4aZd.js +0 -11
  115. package/dist/assets/UniversalTablePagination.vue_vue_type_script_setup_true_lang-DppVBws0.js +0 -1
  116. package/dist/assets/Users-CMH5j0db.js +0 -1
  117. package/dist/assets/UsersPage-CDGreEib.js +0 -1
  118. package/dist/assets/arrow-up-DCe0WsrM.js +0 -16
  119. package/dist/assets/calendar-o9t4MkD2.js +0 -6
  120. package/dist/assets/chevron-left-WFftVS9c.js +0 -6
  121. package/dist/assets/chevron-right-BiiSb3Be.js +0 -6
  122. package/dist/assets/contentForm-unZQhjCu.js +0 -6
  123. package/dist/assets/en-BDx3Svx8.js +0 -1
  124. package/dist/assets/eye-Dijywc6g.js +0 -6
  125. package/dist/assets/file-B_duymIT.js +0 -6
  126. package/dist/assets/general-CkN_0qIV.js +0 -1
  127. package/dist/assets/index-BIp7eSXk.js +0 -1
  128. package/dist/assets/index-DCW2e4Az.js +0 -9
  129. package/dist/assets/index-DGweaj24.js +0 -1
  130. package/dist/assets/index-W-qQIppj-BDlsxaGB.js +0 -1
  131. package/dist/assets/index-W-qQIppj-BsopI3Hz-BIZR-dhy.js +0 -1
  132. package/dist/assets/index-oQz9FOqL.css +0 -1
  133. package/dist/assets/index-yMJAVBXk.js +0 -290
  134. package/dist/assets/list-CXRbSNky.js +0 -6
  135. package/dist/assets/logo-Cct5WB26.png +0 -0
  136. package/dist/assets/pencil-CwnPP4IJ.js +0 -6
  137. package/dist/assets/plus-DLR44m6p.js +0 -6
  138. package/dist/assets/save-FeDrOUOd.js +0 -6
  139. package/dist/assets/search-C4-fHihx.js +0 -6
  140. package/dist/assets/square-pen-xVs4e8Yb.js +0 -6
  141. package/dist/assets/trash-2-BGXMNU3d.js +0 -6
  142. package/dist/assets/uk-BA7DIKEL.js +0 -1
  143. package/dist/assets/useDebounce-DFq3rxAW.js +0 -1
  144. package/dist/assets/vs-form-reletion-link-C-xrdHDl.js +0 -20
  145. package/dist/assets/vue.-sixQ7xP-CUPNuJcq.js +0 -1
  146. package/dist/assets/vuedraggable.umd-W_2WTF6i.js +0 -14
  147. package/dist/assets/x-D2t-wfBe.js +0 -6
  148. package/src/index.js +0 -23
  149. /package/dist/{assets/vs-form-reletion-link-bk-9ZkDH.css → style.css} +0 -0
@@ -1 +0,0 @@
1
- import{d as w,u as b,m as p,A as k,p as C,o as l,a as i,b as e,t as n,e as r,f as c,H as $,B as j,C as B,j as L,k as F,h as f,L as V,l as E,q as S}from"./index-yMJAVBXk.js";import{_ as q}from"./EmptyData-Ct-xQv_N.js";import"./index-DGweaj24.js";import{S as D}from"./search-C4-fHihx.js";import{F as H}from"./file-B_duymIT.js";import{C as M}from"./chevron-right-BiiSb3Be.js";const N={class:"space-y-6 max-w-7xl mx-auto"},R={class:"flex items-center justify-between mb-8"},T={class:"flex gap-4"},A={class:"text-3xl font-bold text-slate-800 dark:text-slate-100 mb-2"},I={class:"text-slate-600 dark:text-slate-300"},P=["href","title"],Q={class:"relative w-full max-w-sm"},U={class:"absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none"},z=["placeholder"],G={key:0},J={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-6"},K=["onClick"],O={class:"flex items-start justify-between"},W={class:"flex items-start gap-3"},X={class:"text-sm font-semibold text-gray-800 mb-1"},Y={class:"text-xs text-gray-600"},Z={class:"flex items-center gap-2"},ee={class:"text-xs text-gray-500 whitespace-nowrap"},te={key:1,class:"flex items-center justify-center min-h-[400px]"},de=w({__name:"CollectionsPage",setup(se){const{t:oe,locale:m}=b(),g=E();S("fetchContentTypes");const d=p([]),h=p(""),_=k(()=>{const s=d.value.filter(t=>t.type!=="single"),a=h.value.trim().toLowerCase();return[...a?s.filter(t=>[t==null?void 0:t.title,t==null?void 0:t.name,t==null?void 0:t.id,t==null?void 0:t.description].filter(Boolean).join(" ").toLowerCase().includes(a)):s].sort((t,u)=>t.id==="pages"?-1:u.id==="pages"?1:0)});async function y(){try{const s=await fetch("/api/cms-type?type=collection");if(!s.ok)throw new Error("Failed to fetch collections");const a=await s.json();d.value=a.rows||[]}catch(s){console.error("Error fetching collections:",s)}}const x=s=>{g.push(`/collections/${s.id}`)};return C(()=>{y()}),(s,a)=>(l(),i("div",N,[e("div",R,[e("div",T,[e("div",null,[e("h1",A,n(s.$t("navigation.collections")),1),e("p",I,n(s.$t("collections.selectCollection")),1)]),e("a",{href:`https://cms.opengis.info/${r(m)}/guides/collections/`,target:"_blank",title:s.$t("guide.collections"),class:"mt-2"},[c(r($),{class:"w-5 h-5"})],8,P)]),e("div",Q,[e("div",U,[c(r(D),{class:"w-5 h-5 text-gray-400"})]),j(e("input",{"onUpdate:modelValue":a[0]||(a[0]=o=>h.value=o),type:"text",class:"block w-full py-2 pl-10 pr-3 leading-5 text-gray-900 placeholder-gray-500 transition-colors bg-white border border-gray-300 rounded-md dark:border-gray-600 dark:bg-gray-700 dark:placeholder-gray-400 focus:outline-none focus:ring-sky-500 focus:border-sky-500 dark:text-white sm:text-sm",placeholder:s.$t("collections.searchCollections")},null,8,z),[[B,h.value]])])]),d.value.length>0?(l(),i("div",G,[e("div",J,[(l(!0),i(L,null,F(_.value,o=>(l(),i("button",{key:o.id,onClick:v=>x(o),class:"w-full border border-gray-200 bg-white rounded-lg p-4 text-left hover:shadow-md transition-all hover:border-gray-300"},[e("div",O,[e("div",W,[o.id==="pages"?(l(),f(r(H),{key:0,class:"shrink-0 lucide lucide-page w-5 h-5 text-blue-600"})):(l(),f(r(V),{key:1,class:"shrink-0 lucide lucide-layers w-5 h-5 text-blue-600"})),e("div",null,[e("h4",X,n(o.title),1),e("p",Y,n(o.description||"Опис відсутній"),1)])]),e("div",Z,[e("span",ee,n(o.entries)+" записів",1),c(r(M),{class:"w-4 h-4 text-gray-400"})])])],8,K))),128))])])):(l(),i("div",te,[c(q)]))]))}});export{de as default};
@@ -1,11 +0,0 @@
1
- import{c as S,d as p,u as x,o as l,a as c,b as e,t as r,e as u,f as n,H as L,w as A,g as m,r as j,n as g,h as _,i as I,F as v,U as k,I as U,j as w,k as $,l as F,m as P,p as T}from"./index-yMJAVBXk.js";import{P as B}from"./plus-DLR44m6p.js";import{E as M}from"./eye-Dijywc6g.js";import{C as H}from"./calendar-o9t4MkD2.js";import{S as N}from"./square-pen-xVs4e8Yb.js";/**
2
- * @license lucide-vue-next v0.344.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const R=S("ActivityIcon",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]);/**
7
- * @license lucide-vue-next v0.344.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const V=S("ZapIcon",[["polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",key:"45s27k"}]]),z={class:"flex items-center justify-between"},E={class:"flex items-center gap-2"},q={class:"text-4xl font-bold text-slate-800 dark:text-slate-100 mb-2"},J=["href","title"],O={class:"text-lg text-slate-600 dark:text-slate-300"},W=p({__name:"DashboardHeader",setup(b){const{locale:a}=x();return(o,t)=>{const i=j("router-link");return l(),c("div",z,[e("div",null,[e("div",E,[e("h1",q,r(o.$t("dashboard.title")),1),e("a",{href:`https://cms.opengis.info/${u(a)}/get-started/app-overview`,target:"_blank",title:o.$t("guide.appOverview")},[n(u(L),{class:"w-5 h-5"})],8,J)]),e("div",O,r(o.$t("dashboard.description")),1)]),e("div",null,[n(i,{to:"/settings/collections",class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 shadow h-9 px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white"},{default:A(()=>[n(u(B),{class:"w-4 h-4 mr-2"}),m(" "+r(o.$t("dashboard.newCollection")),1)]),_:1})])])}}}),Z={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm hover:shadow-xl transition-all duration-300 transform hover:scale-105"},G={class:"p-6"},K={class:"flex items-start justify-between"},Q={class:"flex-1"},X={class:"flex items-center space-x-2 mb-2"},Y={class:"text-sm font-medium text-slate-600 dark:text-slate-400"},ee={class:"text-3xl font-bold text-slate-800 dark:text-slate-100 mb-1"},te={class:"text-xs text-slate-500 dark:text-slate-400 mb-3"},se=p({__name:"StatCard",props:{stat:{}},setup(b){const a=o=>({"file-text":v,users:k,image:U,eye:M})[o]||v;return(o,t)=>(l(),c("div",Z,[e("div",G,[e("div",K,[e("div",Q,[e("div",X,[e("div",{class:g(`p-2 rounded-lg bg-${o.stat.color}-50 dark:bg-${o.stat.color}-900/20`)},[(l(),_(I(a(o.stat.icon)),{class:g(`w-5 h-5 text-${o.stat.color}-600`)},null,8,["class"]))],2),e("p",Y,r(o.stat.title),1)]),e("p",ee,r(o.stat.value),1),e("p",te,r(o.stat.description),1)])])])]))}}),oe={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6"},ae=p({__name:"StatsGrid",props:{stats:{}},setup(b){return(a,o)=>(l(),c("div",oe,[(l(!0),c(w,null,$(a.stats,t=>(l(),_(se,{key:t.id,stat:t},null,8,["stat"]))),128))]))}}),re={class:"p-4 hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors"},ie={class:"flex items-center justify-between"},ne={class:"flex-1"},le={class:"flex items-center space-x-3 mb-2"},de={class:"inline-flex items-center rounded-md border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-xs bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-600 dark:text-slate-300"},ce={class:"font-semibold text-slate-800 dark:text-slate-100 mb-1"},ue={class:"flex items-center space-x-4 text-sm text-slate-500 dark:text-slate-400"},he={class:"flex items-center"},pe={class:"flex items-center"},be={class:"flex items-center"},me={class:"flex items-center space-x-2"},ge=p({__name:"ContentItem",props:{item:{}},setup(b){const a=t=>{const i={published:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-secondary/80 bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-300",draft:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-secondary/80 bg-yellow-100 dark:bg-yellow-900/30 text-yellow-800 dark:text-yellow-300",review:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-secondary/80 bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-300"};return i[t]||i.draft},o=t=>{if(!t)return"--.--.--";const i=new Date(t);return new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",day:"numeric"}).format(i)};return(t,i)=>{const d=j("router-link");return l(),c("div",re,[e("div",ie,[e("div",ne,[e("div",le,[e("div",de,r(t.item.type),1),e("div",{class:g(a(t.item.status))},r(t.item.status||"--"),3)]),e("h3",ce,r(t.item.title||"--"),1),e("div",ue,[e("span",he,[n(u(k),{class:"w-4 h-4 mr-1"}),m(" "+r(t.item.author||"--"),1)]),e("span",pe,[n(u(H),{class:"w-4 h-4 mr-1"}),m(" "+r(o(t.item.updated_at)||"--.--.--"),1)]),e("span",be,[n(u(M),{class:"w-4 h-4 mr-1"}),m(" "+r(t.item.views||"--")+" "+r(t.$t("dashboard.views")),1)])])]),e("div",me,[n(d,{to:`/collections/${t.item.object_id}/${t.item.content_id}`,class:"inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors border shadow-sm rounded-md text-xs h-8 w-8 p-0 bg-white border-slate-300 hover:text-accent-foreground hover:bg-slate-50 dark:border-slate-600 dark:bg-slate-700 dark:hover:bg-slate-600"},{default:A(()=>[n(u(N),{class:"w-4 h-4 dark:text-blue-50"})]),_:1},8,["to"])])])])}}}),_e={class:"lg:col-span-2"},fe={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm"},ve={class:"flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800"},xe={class:"flex items-center justify-between"},ke={class:"tracking-tight text-xl font-semibold text-slate-800 dark:text-slate-100 flex items-center"},we={class:"p-0"},$e={class:"divide-y divide-slate-100 dark:divide-slate-700"},ye=p({__name:"RecentContent",props:{content:{}},setup(b){const a=F(),o=t=>{a.push(t)};return(t,i)=>(l(),c("div",_e,[e("div",fe,[e("div",ve,[e("div",xe,[e("h3",ke,[n(u(R),{class:"w-5 h-5 mr-2"}),m(" "+r(t.$t("dashboard.recentContent")),1)]),e("button",{onClick:i[0]||(i[0]=d=>o("/settings/collections")),class:"inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border shadow-sm hover:text-accent-foreground h-8 rounded-md px-3 text-xs bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-600"},r(t.$t("dashboard.viewAll")),1)])]),e("div",we,[e("div",$e,[(l(!0),c(w,null,$(t.content,d=>(l(),_(ge,{key:d.id,item:d},null,8,["item"]))),128))])])])]))}}),Ce={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm"},De={class:"flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800"},Pe={class:"tracking-tight text-lg font-semibold text-slate-800 dark:text-slate-100 flex items-center"},Se={class:"p-4"},Ae={class:"grid grid-cols-2 gap-3"},je=["onClick"],Ie={class:"p-2 rounded-lg bg-blue-50 dark:bg-blue-900/20 mb-2 w-fit"},Ue={class:"font-medium text-slate-800 dark:text-slate-100 text-sm mb-1 group-hover:text-slate-900 dark:group-hover:text-slate-50"},Fe={class:"text-xs text-slate-500 dark:text-slate-400 group-hover:text-slate-600 dark:group-hover:text-slate-300"},Me=p({__name:"QuickActions",setup(b){const a=F(),{t:o}=x(),t=[{id:"create-article",title:o("dashboard.createArticle"),description:o("dashboard.createArticleDescription"),icon:v,iconColor:"text-blue-500",link:"/collections/pages/create"},{id:"upload-media",title:o("dashboard.uploadMedia"),description:o("dashboard.uploadMediaDescription"),icon:U,iconColor:"text-purple-500",link:"/media"},{id:"manage-users",title:o("dashboard.manageUsers"),description:o("dashboard.manageUsersDescription"),icon:k,iconColor:"text-green-500",link:"/settings/users"}],i=d=>{d&&a.push(d)};return(d,h)=>(l(),c("div",Ce,[e("div",De,[e("h3",Pe,[n(u(V),{class:"w-5 h-5 mr-2"}),m(" "+r(d.$t("dashboard.quickActions")),1)])]),e("div",Se,[e("div",Ae,[(l(),c(w,null,$(t,s=>e("button",{key:s.id,class:"p-3 rounded-lg border border-slate-200 transition-all duration-200 text-left group hover:bg-slate-50 hover:shadow-md dark:border-slate-600 bg-white dark:bg-slate-700 dark:hover:bg-slate-600",onClick:f=>i(s==null?void 0:s.link)},[e("div",Ie,[(l(),_(I(s==null?void 0:s.icon),{class:g(`w-4 h-4 ${s==null?void 0:s.iconColor}`)},null,8,["class"]))]),e("h3",Ue,r(s==null?void 0:s.title),1),e("p",Fe,r(s==null?void 0:s.description),1)],8,je)),64))])])]))}}),Le={class:"w-full max-w-7xl mx-auto space-y-8"},Te={class:"grid grid-cols-1 lg:grid-cols-3 gap-6"},ze=p({__name:"Dashboard",setup(b){const{t:a}=x(),o=P([{id:"total-content",title:a("dashboard.totalContent"),value:"2,847",description:a("dashboard.articlesPostsPages"),change:{value:"+12.5%",isPositive:!0},icon:"file-text",color:"blue"},{id:"active-users",title:a("dashboard.activeUsers"),value:"1,234",description:a("dashboard.monthlyActiveUsers"),change:{value:"+8.2%",isPositive:!0},icon:"users",color:"emerald"},{id:"media-files",title:a("dashboard.mediaFiles"),value:"5,692",description:a("dashboard.imagesVideosDocs"),change:{value:"+23.1%",isPositive:!0},icon:"image",color:"purple"},{id:"new-media",title:a("dashboard.newMediaFiles"),value:"89.2K",description:a("dashboard.thisMonth"),change:{value:"-2.4%",isPositive:!1},icon:"eye",color:"orange"}]),t=P([{id:1,type:"Article",status:"published",title:a("dashboard.gettingStartedWithNextJs14"),author:a("dashboard.sarahJohnson"),updated_at:"2024-01-15",views:1247},{id:2,type:"Post",status:"draft",title:a("dashboard.advancedReactPatterns"),author:a("dashboard.mikeChen"),updated_at:"2024-01-14",views:0},{id:3,type:"Article",status:"published",title:a("dashboard.uiUxDesignPrinciples"),author:a("dashboard.emmaWilson"),updated_at:"2024-01-13",views:892},{id:4,type:"Post",status:"review",title:a("dashboard.databaseOptimizationTips"),author:a("dashboard.alexRodriguez"),updated_at:"2024-01-12",views:0}]),i=h=>{o.value=o.value.map(s=>{var f,y,C,D;switch(s.id){case"total-content":return{...s,value:((f=h.totalContent)==null?void 0:f.toLocaleString())??s.value};case"active-users":return{...s,value:((y=h.totalUsers)==null?void 0:y.toLocaleString())??s.value};case"media-files":return{...s,value:((C=h.totalMediaFiles)==null?void 0:C.toLocaleString())??s.value};case"new-media":return{...s,value:((D=h.newMediaFiles)==null?void 0:D.toLocaleString())??s.value};default:return s}})},d=async()=>{const s=await(await fetch("api/cms-stat")).json();t.value=s.recentContent,i(s.stat)};return T(()=>{d()}),(h,s)=>(l(),c("div",Le,[n(W),n(ae,{stats:o.value},null,8,["stats"]),e("div",Te,[n(ye,{content:t.value,class:"lg:col-span-2"},null,8,["content"]),e("div",null,[n(Me)])])]))}});export{ze as default};
@@ -1,41 +0,0 @@
1
- import{c as C,m as f,D as V,p as S,o as m,a as v,f as h,v as L,u as T,A as I,b as l,e as _,g as P,t as d,w as M,E as Z,h as F,n as J,i as R,j as Q,I as K,G as W,k as X,r as ee,q as te,J as le,l as ie}from"./index-yMJAVBXk.js";import{_ as oe}from"./MonacoEditor.vue_vue_type_script_setup_true_lang-CjoEsC67.js";import{Q as k,l as U}from"./index-DCW2e4Az.js";import{J as G,y as O,Z as se}from"./index-DGweaj24.js";import{P as re}from"./plus-DLR44m6p.js";import{S as ae}from"./square-pen-xVs4e8Yb.js";import{d as ne}from"./vuedraggable.umd-W_2WTF6i.js";import{F as B}from"./file-B_duymIT.js";import{L as de}from"./list-CXRbSNky.js";import{C as ue}from"./calendar-o9t4MkD2.js";import{_ as ce,a as me,V as pe,b as z,c as be,d as fe,e as ve,g as ge}from"./vs-form-reletion-link-C-xrdHDl.js";import"./pencil-CwnPP4IJ.js";import"./trash-2-BGXMNU3d.js";import"./MediaBreadcrumb-BpOxt5PK.js";import"./chevron-right-BiiSb3Be.js";import"./search-C4-fHihx.js";/**
2
- * @license lucide-vue-next v0.344.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const D=C("CheckSquareIcon",[["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}],["path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11",key:"1jnkn4"}]]);/**
7
- * @license lucide-vue-next v0.344.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const ye=C("ClockIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
12
- * @license lucide-vue-next v0.344.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const H=C("HashIcon",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);/**
17
- * @license lucide-vue-next v0.344.0 - ISC
18
- *
19
- * This source code is licensed under the ISC license.
20
- * See the LICENSE file in the root directory of this source tree.
21
- */const he=C("LayoutTemplateIcon",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);/**
22
- * @license lucide-vue-next v0.344.0 - ISC
23
- *
24
- * This source code is licensed under the ISC license.
25
- * See the LICENSE file in the root directory of this source tree.
26
- */const A=C("LinkIcon",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);/**
27
- * @license lucide-vue-next v0.344.0 - ISC
28
- *
29
- * This source code is licensed under the ISC license.
30
- * See the LICENSE file in the root directory of this source tree.
31
- */const E=C("ListTreeIcon",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]);/**
32
- * @license lucide-vue-next v0.344.0 - ISC
33
- *
34
- * This source code is licensed under the ISC license.
35
- * See the LICENSE file in the root directory of this source tree.
36
- */const xe=C("TrashIcon",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]]);/**
37
- * @license lucide-vue-next v0.344.0 - ISC
38
- *
39
- * This source code is licensed under the ISC license.
40
- * See the LICENSE file in the root directory of this source tree.
41
- */const j=C("TypeIcon",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]),we={__name:"vs-builder-monaco",props:{yaml:{type:String,default:""},yamlModifiers:{}},emits:["update:yaml"],setup(u){const e=f("");V(u,"yaml");const s=f(null);return S(()=>{s.value=Math.random().toString(36).substring(2,15)}),(i,t)=>s.value?(m(),v("div",{key:s.value},[h(oe,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=o=>e.value=o),language:"yaml",theme:"vs-light",height:"calc(100vh - 200px)",width:"100%",options:{minimap:{enabled:!1}}},null,8,["modelValue"])])):L("",!0)}},q=(u=0,e)=>({name:{type:"text",label:e("builder.fieldLabels.name"),required:!0,placeholder:e("builder.fieldPlaceholders.name"),validators:["required"]},label:{type:"text",label:e("builder.fieldLabels.label"),required:!0,placeholder:e("builder.fieldPlaceholders.label"),validators:["required"]},placeholder:{type:"text",label:e("builder.fieldLabels.placeholder"),required:!0,placeholder:e("builder.fieldPlaceholders.placeholder")},help:{type:"text",label:e("builder.fieldLabels.help"),placeholder:e("builder.fieldPlaceholders.help")},type:{type:"combobox",mode:"combo",label:e("builder.fieldLabels.type"),required:!0,maxHeight:"300",slots:{option:'<div class="flex items-center gap-2 p-2 py-1 rounded hover:bg-gray-100" :class="{ \'bg-gray-100\': selectedNavIndex === ind, \'bg-gray-100\': modelValue == ind }" ><div :class="`flex items-center gap-2 p-1 bg-${color }-100 rounded`"><component :is="`icon-${id}`" class="block" height="24" width="30" /></div><span class="text-sm text-gray-700">{{ text }}</span></div>'},options:[{text:e("builder.fieldOptions.text"),id:"text",color:"blue"},{text:e("builder.fieldOptions.number"),id:"number",color:"green"},{text:e("builder.fieldOptions.date"),id:"date",color:"red"},{text:e("builder.fieldOptions.datetime"),id:"datetime",color:"purple"},{text:e("builder.fieldOptions.file"),id:"file",color:"yellow"},{text:e("builder.fieldOptions.select"),id:"select",color:"yellow"},{text:e("builder.fieldOptions.multiselect"),id:"multiselect",color:"blue"},{text:e("builder.fieldOptions.mediaselect"),id:"mediaselect",color:"orange"},{text:e("builder.fieldOptions.radio"),id:"radio",color:"blue"},{text:e("builder.fieldOptions.boolean"),id:"boolean",color:"red"},{text:e("builder.fieldOptions.datalist"),id:"datalist",color:"orange"},{text:e("builder.fieldOptions.image"),id:"image",color:"blue"},{text:e("builder.fieldOptions.slug"),id:"slug",color:"green"},{text:e("builder.fieldOptions.richtext"),id:"richtext",color:"red"},{text:e("builder.fieldOptions.reference"),id:"reference",color:"yellow"},{text:e("builder.fieldOptions.relation"),id:"relation",color:"pink"},{text:e("builder.fieldOptions.fileList"),id:"FileList",color:"orange"},{text:e("builder.fieldOptions.tags"),id:"tags",color:"blue"}].filter(s=>u>1?s.id!=="datalist":!0),validators:["required"]},subtype:{type:"combobox",mode:"combo",label:e("builder.fieldLabels.subtype"),placeholder:e("builder.fieldPlaceholders.subtype"),options:[{text:e("builder.fieldOptions.text"),id:"text"},{text:e("builder.fieldOptions.number"),id:"number"},{text:e("builder.fieldOptions.date"),id:"date"},{text:e("builder.fieldOptions.datetime"),id:"datetime"}],conditions:["type","==","array"]},parent:{type:"text",label:e("builder.fieldLabels.parent"),placeholder:e("builder.fieldPlaceholders.parent"),conditions:["type","in",["slug","select","multiselect"]]},data:{type:"text",label:e("builder.fieldLabels.data"),placeholder:e("builder.fieldPlaceholders.data"),conditions:["type","in",["select","multiselect"]]},options:{type:"datalist",label:e("builder.fieldLabels.options"),conditions:["type","in",["select","multiselect","radio"]],colModel:[{key:"id",ua:"ID",type:"text",validators:["required"],col:6},{key:"text",ua:"Text",type:"text",validators:["required"],col:6}]},colModel:u<=1?{type:"datalist",label:e("builder.fieldLabels.colModel"),conditions:["type","==","datalist"],colModel:Object.entries(q(u+1,e)).map(([s,i])=>({key:s,...i,ua:(i==null?void 0:i.label)||(i==null?void 0:i.ua)}))}:{type:"switcher",label:e("builder.fieldLabels.required"),hidden:!0,required:!0},multiple:{type:"switcher",label:e("builder.fieldLabels.multiple"),conditions:["type","==","file"]},relation:{type:"combobox",data:"collection",label:e("builder.fieldLabels.relation"),conditions:["type","==","relation"]},required:{type:"switcher",label:e("builder.fieldLabels.required"),required:!0},localization:{type:"switcher",label:e("builder.fieldLabels.localization"),conditions:["type","in",["richtext","text","reference","multiselect","datalist"]],required:!0}}),ke={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},_e={__name:"vs-builder-datatable-form",props:{modelValue:{type:Array,default:()=>[]},modelModifiers:{}},emits:["update:modelValue"],setup(u){const{t:e}=T();k["vs-input-datalist"]=k.VsInputDatatable;const s=V(u,"modelValue"),i=f(!1),t=f({}),o=f({}),r=I(()=>(o.value,q(0,e))),c=async()=>{if(await t.value.validate()){O({type:"warning",title:e("common.actions.warning"),message:e("builder.createFieldFailed")});return}try{s.value=[...s.value,o.value],o.value={},i.value=!1}catch(n){console.log(n)}};return(a,n)=>(m(),v("div",null,[l("button",{onClick:n[0]||(n[0]=g=>i.value=!0),class:"inline-flex items-center justify-center h-10 gap-2 px-4 py-2 text-sm font-medium transition-colors border rounded-md hover hover:bg-gray-200 whitespace-nowrap ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring 0"},[h(_(re),{class:"w-4 h-4 mr-2"}),P(" "+d(a.$t("common.actions.addField")),1)]),h(_(G),{teleport:"#modal",title:a.$t("builder.createField"),size:"small",visible:i.value,"onUpdate:visible":n[4]||(n[4]=g=>i.value=g),onClose:n[5]||(n[5]=g=>i.value=!1)},{footer:M(()=>[l("div",ke,[l("button",{class:"inline-flex items-center px-3 py-2 text-sm text-black duration-300 border border-gray-200 rounded-lg gap-x-2 whitespace-nowrap hover:bg-gray-100",onClick:n[3]||(n[3]=g=>i.value=!1)},d(a.$t("common.actions.cancel")),1),l("button",{onClick:c,class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300"},d(a.$t("common.actions.save")),1)])]),default:M(()=>[h(_(U),{modelValue:o.value,"onUpdate:modelValue":n[1]||(n[1]=g=>o.value=g),schema:r.value,form:t.value,"onUpdate:form":n[2]||(n[2]=g=>t.value=g)},null,8,["modelValue","schema","form"])]),_:1},8,["title","visible"])]))}},$e={class:"flex items-center justify-end col-span-3 gap-2"},Ve={key:2,class:"w-8 h-4"},Ce={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},qe={__name:"vs-builder-datatable-controls",props:Z({index:{type:Number,required:!0},data:{type:Object,required:!0}},{columns:{type:Array,default:()=>[]},columnsModifiers:{}}),emits:["update:columns"],setup(u){const{t:e}=T(),s=u,i=V(u,"columns"),t=f(!1),o=f({}),r=f({...s.data||{}}),c=f({});S(()=>{s.data.required?c.value={...q(0,e),name:{...q(0,e).name,disabled:!0},label:{...q(0,e).label,disabled:!0},type:{...q(0,e).type,disabled:!0}}:c.value=q(0,e)});const a=()=>{se({title:e("builder.deleteTitle"),message:e("builder.deleteField"),type:"error",onConfirm:()=>{n()}})},n=()=>{i.value=i.value.filter(($,p)=>p!==s.index)},g=async()=>{if(await o.value.validate()){O({type:"warning",title:e("common.actions.warning"),message:e("builder.editFieldFailed")});return}try{i.value[s.index]=r.value,t.value=!1}catch(p){console.log(p)}};return($,p)=>(m(),v("div",$e,[["status"].includes(u.data.name)?L("",!0):(m(),v("button",{key:0,onClick:p[0]||(p[0]=b=>t.value=!0),class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:text-accent-foreground h-8 w-8 rounded-full hover:bg-gray-100"},[h(_(ae),{class:"w-4 h-4"})])),u.data.required?(m(),v("button",Ve)):(m(),v("button",{key:1,onClick:a,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 h-8 w-8 rounded-full hover:bg-red-100 text-red-600 hover:text-red-700"},[h(_(xe),{class:"w-4 h-4"})])),h(_(G),{teleport:"#modal",visible:t.value,title:$.$t("builder.editField"),onClose:p[4]||(p[4]=b=>t.value=!1)},{footer:M(()=>[l("div",Ce,[l("button",{class:"inline-flex items-center px-3 py-2 text-sm text-black duration-300 border border-gray-200 rounded-lg gap-x-2 whitespace-nowrap hover:bg-gray-100",onClick:p[3]||(p[3]=b=>t.value=!1)},d($.$t("common.actions.cancel")),1),l("button",{class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300",onClick:g},d($.$t("common.actions.save")),1)])]),default:M(()=>[h(_(U),{modelValue:r.value,"onUpdate:modelValue":p[1]||(p[1]=b=>r.value=b),schema:c.value,form:o.value,"onUpdate:form":p[2]||(p[2]=b=>o.value=b)},null,8,["modelValue","schema","form"])]),_:1},8,["visible","title"])]))}},Le={class:"flex items-center justify-between mb-6"},Me={class:"text-xl font-semibold text-gray-900"},Oe={class:"mt-1 text-sm text-gray-600"},je={class:"flex items-center gap-2"},Fe={class:"overflow-hidden bg-white border border-gray-200 shadow-sm rounded-xl"},Te={class:"grid grid-cols-12 gap-4 px-6 py-4 border-b border-gray-200 bg-gray-50"},Ie={class:"col-span-5 font-medium text-gray-700"},Ue={class:"col-span-3 font-medium text-gray-700"},ze={class:"col-span-2 font-medium text-gray-700"},Pe={class:"col-span-2 font-medium text-right text-gray-700"},Se={class:"divide-y divide-gray-100"},Ne={class:"grid items-center grid-cols-12 gap-4 px-6 py-4 transition-colors hover:bg-gray-50/50"},Be={class:"flex items-center col-span-5 gap-3"},De={class:"font-medium text-gray-900"},He={class:"text-xs text-gray-500"},Ae={key:0,class:"inline-flex items-center px-2 py-1 text-xs font-medium text-blue-700 rounded-full bg-blue-50 ring-1 ring-inset ring-blue-700/10"},Ee={class:"col-span-3"},Je={class:"inline-flex items-center px-2 py-1 text-sm font-medium text-gray-600 rounded-md bg-gray-50 ring-1 ring-inset ring-gray-500/10"},Re={class:"col-span-1"},Qe={key:0,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-circle-check w-4 h-4 text-emerald-600"},Ge={key:1,class:"grid items-center grid-cols-12 gap-4 px-6 py-4 transition-colors hover:bg-gray-50/50"},Ye={class:"col-span-5"},Ze={class:"text-gray-500"},Ke={__name:"vs-builder-datatable",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(u){const e=V(u,"modelValue"),s=t=>t==="array"?"purple":t==="boolean"||t==="date"?"red":t==="datetime"?"purple":t==="number"?"green":t==="text"?"blue":t==="file"||t==="select"?"yellow":t==="slug"?"green":t==="image"?"blue":"gray",i=t=>{switch(t){case"text":return j;case"number":return H;case"integer":return H;case"date":return ue;case"datetime":return ye;case"file":return B;case"select":return E;case"multiselect":return de;case"mediaselect":return Image;case"radio":return D;case"boolean":return D;case"datalist":return E;case"image":return K;case"slug":return A;case"richtext":return j;case"markdown":return j;case"reference":return he;case"relation":return A;case"FileList":return B;default:return j}};return(t,o)=>{var r,c;return m(),v(Q,null,[l("div",Le,[l("div",null,[l("h2",Me,d(t.$t("builder.collectionStructure")),1),l("p",Oe,d(t.$t("builder.defineFields")),1)]),l("div",je,[h(_e,{modelValue:e.value.columns,"onUpdate:modelValue":o[0]||(o[0]=a=>e.value.columns=a)},null,8,["modelValue"])])]),l("div",Fe,[l("div",Te,[l("div",Ie,d(t.$t("builder.name")),1),l("div",Ue,d(t.$t("builder.type")),1),l("div",ze,d(t.$t("builder.localization")),1),l("div",Pe,d(t.$t("builder.actions")),1)]),l("div",Se,[(c=(r=e.value)==null?void 0:r.columns)!=null&&c.length?(m(),F(_(ne),{key:0,modelValue:e.value.columns,"onUpdate:modelValue":o[2]||(o[2]=a=>e.value.columns=a),"item-key":"name",handle:".drag-handle",animation:200},{item:M(({element:a,index:n})=>{var g,$;return[l("div",Ne,[l("div",Be,[o[3]||(o[3]=l("span",{class:"drag-handle cursor-move mr-2 text-gray-400"},"☰",-1)),l("div",{class:J(["flex items-center justify-center p-1 rounded",`bg-${s((g=a.type)==null?void 0:g.toLowerCase())}-100`])},[(m(),F(R(i(($=a.type)==null?void 0:$.toLowerCase())),{class:"w-4 h-4"}))],2),l("div",null,[l("p",De,d(a.label),1),l("p",He,d(a.name),1)]),a.required?(m(),v("span",Ae,d(t.$t("builder.required")),1)):L("",!0)]),l("div",Ee,[l("span",Je,d(a.type),1)]),l("div",Re,[a.localization?(m(),v("svg",Qe,[...o[4]||(o[4]=[l("circle",{cx:"12",cy:"12",r:"10"},null,-1),l("path",{d:"m9 12 2 2 4-4"},null,-1)])])):L("",!0)]),h(qe,{columns:e.value.columns,"onUpdate:columns":o[1]||(o[1]=p=>e.value.columns=p),data:e.value.columns[n],index:n},null,8,["columns","data","index"])])]}),_:1},8,["modelValue"])):(m(),v("div",Ge,[l("div",Ye,[l("p",Ze,d(t.$t("builder.noColumnsFound")),1)])]))])])],64)}}},We={__name:"vs-builder-edit",props:{data:{},dataModifiers:{},form:{},formModifiers:{}},emits:["update:data","update:form"],setup(u){const{t:e}=T(),s=V(u,"data"),i=V(u,"form");f({});const t=I(()=>({name:{type:"text",label:e("builder.scheme.name.label"),required:!0,placeholder:e("builder.scheme.name.placeholder"),validators:["required"],col:4},title:{type:"text",label:e("builder.scheme.title.label"),required:!0,placeholder:e("builder.scheme.title.placeholder"),validators:["required"],col:4},preview_path:{type:"text",label:e("builder.scheme.preview_path.label"),placeholder:e("builder.scheme.preview_path.placeholder"),col:4,info:e("builder.scheme.preview_path.info")},type:{type:"select",label:e("builder.scheme.type.label"),required:!0,placeholder:e("builder.scheme.type.placeholder"),validators:["required"],col:4,options:[{text:e("builder.scheme.type.options.collection"),id:"collection"},{text:e("builder.scheme.type.options.single"),id:"single"}]},status:{type:"select",label:e("builder.scheme.status.label"),required:!0,placeholder:e("builder.scheme.status.placeholder"),col:4,options:[{text:e("builder.scheme.status.options.published"),id:"published"},{text:e("builder.scheme.status.options.draft"),id:"draft"},{text:e("builder.scheme.status.options.archived"),id:"archived"}]},include_search:{type:"switcher",label:e("builder.scheme.include_search.label"),placeholder:e("builder.scheme.include_search.placeholder"),col:4},description:{type:"textarea",label:e("builder.scheme.description.label"),required:!0,placeholder:e("builder.scheme.description.placeholder")}}));return W(()=>{i.value=null}),(o,r)=>(m(),v("div",null,[h(_(U),{modelValue:s.value,"onUpdate:modelValue":r[0]||(r[0]=c=>s.value=c),schema:t.value,form:i.value,"onUpdate:form":r[1]||(r[1]=c=>i.value=c)},null,8,["modelValue","schema","form"]),h(Ke,{modelValue:s.value,"onUpdate:modelValue":r[2]||(r[2]=c=>s.value=c)},null,8,["modelValue"])]))}},Xe={__name:"vs-builder-preview",props:{data:{},dataModifiers:{},form:{},formModifiers:{}},emits:["update:data","update:form"],setup(u){k["vs-input-custom-datatable"]=ce,k["vs-input-reference"]=me,k["vs-input-texteditor"]=pe,k["vs-input-mediaselect"]=z,k["vs-input-file"]=z,k["vs-input-image"]=z,k["vs-input-richtext-md"]=be,k["vs-input-integer"]=fe,k["vs-input-relation-link"]=ve;const e=f({}),s=V(u,"data"),i=V(u,"form"),t=I(()=>{var o,r;return((r=(o=s.value)==null?void 0:o.columns)==null?void 0:r.map(ge))||[]});return(o,r)=>{var c;return m(),v("div",{ref_key:"form",ref:i},[((c=t.value)==null?void 0:c.length)>0?(m(),F(_(U),{key:0,modelValue:e.value,"onUpdate:modelValue":r[0]||(r[0]=a=>e.value=a),schema:t.value},null,8,["modelValue","schema"])):L("",!0)],512)}}},et={monaco:we,edit:We,preview:Xe},tt={class:"max-w-6xl mx-auto"},lt={class:"flex items-center justify-between mb-6"},it={class:"mb-2 text-2xl font-semibold text-gray-900"},ot={class:"lowercase"},st={class:"text-gray-600"},rt={class:"flex items-center gap-2"},at={class:"w-full"},nt={class:"flex items-center w-full h-10 max-w-md grid-cols-3 p-1 mb-6 bg-white border border-gray-200 rounded-md text-muted-foreground"},dt=["onClick"],ut={key:0,class:"container mx-auto bg-white rounded-md py-4 px-2 bg-opacity-50"},qt={__name:"EditCollectionPage",setup(u){const{t:e}=T(),s=te("fetchContentTypes"),i=f("edit"),t=f({yaml:"",data:{columns:[],type:"collection"}}),o=f({}),r=f(""),c=le(),a=ie(),n=f(!1),g=I(()=>[{name:e("builder.edit"),id:"edit"},{name:e("builder.preview"),id:"preview"}]),$=async()=>{var b;try{const w=await(await fetch(`/api/cms-type/${c.params.id}`)).json(),y={...w,columns:Array.isArray(w.columns)?w.columns:(b=Object.entries((w==null?void 0:w.columns)||{}))==null?void 0:b.map(([N,Y])=>({...Y,name:N}))};t.value={...t.value,data:y},r.value=y.title||y.name}catch(x){console.error(x)}finally{n.value=!0}},p=async()=>{var b,x;try{if(await o.value.validate()){O({type:"warning",title:e("common.actions.warning"),message:e("builder.editFieldFailed")});return}const y=await fetch(`/api/cms-type/${c.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.value==="monaco"?(b=t.value)==null?void 0:b.yaml:(x=t.value)==null?void 0:x.data)});a.push("/settings/collections"),s(),O({type:"success",title:e("common.actions.success"),message:e("collections.collectionCreated")})}catch(w){console.error(w),O({type:"error",title:e("common.actions.error"),message:e("collections.collectionCreationFailed")})}};return S(()=>{$()}),(b,x)=>{const w=ee("router-link");return m(),v("div",tt,[l("div",lt,[l("div",null,[l("h1",it,[P(d(b.$t("builder.editCollection"))+" ",1),l("span",ot,d(r.value),1)]),l("p",st,d(b.$t("builder.editContentForYourSite")),1)]),l("div",rt,[h(w,{to:"/settings/collections",class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border bg-background hover:text-accent-foreground h-10 px-4 py-2 border-gray-300 text-gray-700 hover:bg-gray-50"},{default:M(()=>[P(d(b.$t("common.actions.back")),1)]),_:1}),l("button",{onClick:p,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-white rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 text-primary-foreground h-10 px-4 py-2 bg-blue-600 hover:bg-blue-700"},d(b.$t("common.actions.save")),1)])]),l("div",at,[l("div",nt,[(m(!0),v(Q,null,X(g.value,y=>(m(),v("button",{key:y.id,onClick:N=>i.value=y.id,class:J(["inline-flex flex-1 items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm data-[state=active]:bg-blue-50 data-[state=active]:text-blue-700 data-[state=active]:border-blue-200",y.id===i.value?"bg-blue-50 text-blue-700 border-blue-200":""])},d(y.name),11,dt))),128))])]),n.value?(m(),v("div",ut,[(m(),F(R(_(et)[i.value]),{yaml:t.value.yaml,"onUpdate:yaml":x[0]||(x[0]=y=>t.value.yaml=y),data:t.value.data,"onUpdate:data":x[1]||(x[1]=y=>t.value.data=y),form:o.value,"onUpdate:form":x[2]||(x[2]=y=>o.value=y)},null,40,["yaml","data","form"]))])):L("",!0)])}}};export{qt as default};
@@ -1 +0,0 @@
1
- import{_ as x}from"./SettingsTitle-t4WJBFxZ.js";import{D as _}from"./index-BIp7eSXk.js";import{_ as b,c0 as w,a as r,f as d,b as t,g as k,t as i,j as v,k as C,r as h,o as l}from"./index-yMJAVBXk.js";import{A as S,a as V,b as D}from"./arrow-up-DCe0WsrM.js";import"./index-DGweaj24.js";const P={components:{SettingsTitle:x,VsFilter:_,TableCellsMerge:w,ArrowDown:S,ArrowUp:V,ArrowRightFromLine:D},data(){return{email:null,total:0,openIndex:null,limit:16,page:1,filterValue:"",filterScheme:[]}},async created(){this.$router.replace({query:{page:1}}),await this.getData()},methods:{async getData(){try{const s=await(await fetch(`/api/email-list?limit=${this.limit}&page=${this.page}`)).json();this.email=s==null?void 0:s.rows,this.total=s==null?void 0:s.total,this.filterScheme=s==null?void 0:s.filters}catch(e){console.error(e.toString())}},async handleChange(e){const s=Object.entries(e==null?void 0:e.data).filter(([,n])=>n!=null).map(([n,g])=>`${n}=${g}`).join("|");this.filterValue=s,this.filterValue==="no-url"?this.$router.replace({query:{page:1}}):this.$router.replace({query:{filter:this.filterValue,page:1}}),this.page=1,await this.getData()},async handlePageChange(e){this.page=e,this.filterValue==="no-url"||!this.filterValue?this.$router.replace({query:{page:e}}):this.$router.replace({query:{filter:this.filterValue,page:e}}),await this.getData()},async changeLimit(e){this.limit=e,this.page=1,await this.getData()},toggle(e){this.openIndex=this.openIndex===e?null:e},onEnter(e){e.style.height="0",e.style.opacity="0",requestAnimationFrame(()=>{e.style.transition="all 0.3s ease",e.style.height=e.scrollHeight+"px",e.style.opacity="1"})},onLeave(e){e.style.height=e.scrollHeight+"px",e.style.opacity="1",requestAnimationFrame(()=>{e.style.transition="all 0.3s ease",e.style.height="0",e.style.opacity="0"})},formatDate(e){if(!e)return null;const s={year:"numeric",month:"2-digit",day:"2-digit"};return new Date(e).toLocaleDateString("uk-UA",s)}}},$={class:"w-full max-w-7xl mx-auto space-y-6"},F={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm"},T={class:"flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800"},q={class:"tracking-tight text-xl font-semibold text-slate-800 dark:text-slate-100 flex items-center"},A={class:"p-6 space-y-4"},j={class:"flex justify-between"},z={key:0,class:"overflow-x-auto"},L={class:"min-w-full divide-y divide-gray-200"},B={class:"bg-gray-100"},E={class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},I={class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},M={class:"cursor-pointer dark:text-white"},N={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},H={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},U={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},O={key:1,class:"bg-white dark:bg-slate-800 backdrop-blur-sm0 text-center p-6 rounded-xl"},R={class:"text-lg font-semibold"},W={class:"my-5 pr-2"},G={class:"paginationWrapper relative flex justify-center"};function J(e,s,n,g,o,c){var p;const m=h("SettingsTitle"),u=h("TableCellsMerge"),f=h("VsFilter"),y=h("VsPagination");return l(),r("div",$,[d(m,{title:e.$t("email.title"),description:e.$t("email.description")},null,8,["title","description"]),t("div",F,[t("div",T,[t("h3",q,[d(u,{class:"text-emerald-500 mr-2"}),k(" "+i(e.$t("email.title")),1)])]),t("div",A,[t("div",j,[d(f,{schema:o.filterScheme,view:"inline",onChange:c.handleChange},null,8,["schema","onChange"])]),(p=o.email)!=null&&p.length?(l(),r("div",z,[t("table",L,[t("thead",B,[t("tr",null,[s[0]||(s[0]=t("th",{class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},"№",-1)),t("th",E,i(e.$t("feedback.table.email")),1),t("th",I,i(e.$t("feedback.table.cdate")),1),s[1]||(s[1]=t("th",{class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},null,-1))])]),(l(!0),r(v,null,C(o.email,(a,K)=>(l(),r("tbody",{class:"divide-y divide-gray-200",key:a==null?void 0:a.message_id},[t("tr",M,[t("td",N,i(a==null?void 0:a.num),1),t("td",H,i(a==null?void 0:a.email),1),t("td",U,i(c.formatDate(a==null?void 0:a.created_at)),1)])]))),128))])])):(l(),r("div",O,[t("h3",R,i(e.$t("feedback.table.noFeedback")),1)])),t("div",W,[t("div",G,[d(y,{total:o.total,maxPages:6,defaultPage:o.page,pageSize:o.limit,goTo:!1,size:"medium",backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[16,32,48],onPageChange:c.handlePageChange,onPageSizeChange:c.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])])])])}const te=b(P,[["render",J]]);export{te as default};
@@ -1 +0,0 @@
1
- import{o as i,a as n,b as t,t as a,g as r,v as l}from"./index-yMJAVBXk.js";const d={class:"rounded-xl text-card-foreground shadow-lg bg-white dark:bg-slate-800 backdrop-blur-sm border-2 border-dashed border-slate-300 dark:border-slate-600"},u={class:"p-12 text-center"},c={class:"text-lg font-medium text-slate-600 dark:text-slate-300 mb-2"},m={class:"text-slate-500 dark:text-slate-400 mb-6"},b={__name:"EmptyData",props:{title:{type:String,default:()=>"emptyData.title"},description:{type:String,default:()=>"emptyData.description"},buttonText:{type:String,default:()=>"emptyData.buttonText"},showButton:{type:Boolean,default:!0}},emits:["action"],setup(o){return(s,e)=>(i(),n("div",d,[t("div",u,[e[2]||(e[2]=t("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-layers w-12 h-12 mx-auto mb-4 text-slate-400 dark:text-slate-500"},[t("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"}),t("path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"}),t("path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"})],-1)),t("h3",c,a(s.$t(o.title)),1),t("p",m,a(s.$t(o.description)),1),o.showButton?(i(),n("button",{key:0,onClick:e[0]||(e[0]=p=>s.$emit("action")),class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 shadow h-9 px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white"},[e[1]||(e[1]=t("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-plus w-4 h-4 mr-2"},[t("path",{d:"M5 12h14"}),t("path",{d:"M12 5v14"})],-1)),r(" "+a(s.$t(o.buttonText)),1)])):l("",!0)])]))}};export{b as _};
@@ -1 +0,0 @@
1
- import{_ as V}from"./SettingsTitle-t4WJBFxZ.js";import{D as f}from"./index-BIp7eSXk.js";import{_ as S,c0 as D,a as n,f as p,b as s,g as $,t as l,j as P,k as T,r as g,o,h as c,w as A,B as F,R as L,v as m,ad as q}from"./index-yMJAVBXk.js";import{A as j,a as z,b as I}from"./arrow-up-DCe0WsrM.js";import"./index-DGweaj24.js";const B={components:{SettingsTitle:V,TableCellsMerge:D,ArrowDown:j,ArrowUp:z,ArrowRightFromLine:I,VsFilter:f},data(){return{feedback:null,total:0,openIndex:null,limit:16,page:1,filterValue:"",filterScheme:[]}},async created(){this.$router.replace({query:{page:1}}),await this.getData()},methods:{async getData(){try{const i=await(await fetch(`/api/feedback?limit=${this.limit}&page=${this.page}${this.filterValue==="no-url"?"":`&filter=${this.filterValue}`}`)).json();this.feedback=i==null?void 0:i.rows,this.total=i==null?void 0:i.total;const h=((i==null?void 0:i.filters)||[]).map(_=>{const{extra:r,title:a,...u}=_;return u});this.filterScheme=h}catch(e){console.error(e.toString())}},async handleChange(e){const i=Object.entries(e==null?void 0:e.data).filter(([,h])=>h!=null).map(([h,_])=>`${h}=${_}`).join("|");this.filterValue=i,this.filterValue==="no-url"?this.$router.replace({query:{page:1}}):this.$router.replace({query:{filter:this.filterValue,page:1}}),this.page=1,await this.getData()},async handlePageChange(e){this.page=e,this.filterValue==="no-url"||!this.filterValue?this.$router.replace({query:{page:e}}):this.$router.replace({query:{filter:this.filterValue,page:e}}),await this.getData()},async changeLimit(e){this.limit=e,this.page=1,await this.getData()},toggle(e){this.openIndex=this.openIndex===e?null:e},onEnter(e){e.style.height="0",e.style.opacity="0",requestAnimationFrame(()=>{e.style.transition="all 0.3s ease",e.style.height=e.scrollHeight+"px",e.style.opacity="1"})},onLeave(e){e.style.height=e.scrollHeight+"px",e.style.opacity="1",requestAnimationFrame(()=>{e.style.transition="all 0.3s ease",e.style.height="0",e.style.opacity="0"})},formatDate(e){if(!e)return null;const i={year:"numeric",month:"2-digit",day:"2-digit"};return new Date(e).toLocaleDateString("uk-UA",i)}}},E={class:"w-full max-w-7xl mx-auto space-y-6"},N={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm"},U={class:"flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800"},M={class:"tracking-tight text-xl font-semibold text-slate-800 dark:text-slate-100 flex items-center"},H={class:"p-6 space-y-4"},R={class:"flex justify-between"},O={key:0,class:"overflow-x-auto"},W={class:"min-w-full divide-y divide-gray-200"},G={class:"bg-gray-100"},J={class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},K={class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},Q={class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},X={class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},Y=["onClick"],Z={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},b={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},k={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},tt={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},et={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},st={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},it={colspan:"6",class:"bg-gray-50 px-4 py-3 text-sm text-gray-700 dark:text-slate-300"},lt={key:0},ot={class:"whitespace-pre-line mt-1"},nt={key:1},rt={key:2},at=["href"],ht={key:3},gt=["href"],pt={key:4},mt=["href"],_t={key:1,class:"bg-white dark:bg-slate-800 backdrop-blur-sm0 text-center p-6 rounded-xl"},ut={class:"text-lg font-semibold"},dt={class:"my-5 pr-2"},ct={class:"paginationWrapper relative flex justify-center"};function xt(e,i,h,_,r,a){var d;const u=g("SettingsTitle"),x=g("TableCellsMerge"),y=g("VsFilter"),w=g("ArrowUp"),v=g("ArrowDown"),C=g("VsPagination");return o(),n("div",E,[p(u,{title:e.$t("feedback.title"),description:e.$t("feedback.description")},null,8,["title","description"]),s("div",N,[s("div",U,[s("h3",M,[p(x,{class:"text-emerald-500 mr-2"}),$(" "+l(e.$t("feedback.title")),1)])]),s("div",H,[s("div",R,[p(y,{schema:r.filterScheme,view:"inline",onChange:a.handleChange},null,8,["schema","onChange"])]),(d=r.feedback)!=null&&d.length?(o(),n("div",O,[s("table",W,[s("thead",G,[s("tr",null,[i[0]||(i[0]=s("th",{class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},"№",-1)),s("th",J,l(e.$t("feedback.table.userName")),1),s("th",K,l(e.$t("feedback.table.email")),1),s("th",Q,l(e.$t("feedback.table.cdate")),1),s("th",X,l(e.$t("feedback.table.phone")),1),i[1]||(i[1]=s("th",{class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},null,-1))])]),(o(!0),n(P,null,T(r.feedback,(t,yt)=>(o(),n("tbody",{class:"divide-y divide-gray-200",key:t==null?void 0:t.message_id},[s("tr",{class:"cursor-pointer dark:text-white",onClick:wt=>a.toggle(t==null?void 0:t.message_id)},[s("td",Z,l(t==null?void 0:t.num),1),s("td",b,l(t==null?void 0:t.user_name),1),s("td",k,l(t==null?void 0:t.email),1),s("td",tt,l(a.formatDate(t==null?void 0:t.created_at)),1),s("td",et,l(t==null?void 0:t.phone),1),s("td",st,[s("div",null,[r.openIndex===(t==null?void 0:t.message_id)?(o(),c(w,{key:0})):(o(),c(v,{key:1}))])])],8,Y),p(q,{name:"collapse",onEnter:a.onEnter,onLeave:a.onLeave},{default:A(()=>[F(s("tr",null,[s("td",it,[s("div",{ref_for:!0,ref:"content",class:"transition-all duration-300 ease-in-out space-y-2"},[t!=null&&t.message_text?(o(),n("div",lt,[s("b",null,l(e.$t("feedback.table.messageText"))+":",1),s("p",ot,l(t.message_text),1)])):m("",!0),t!=null&&t.feedback_type?(o(),n("div",nt,[s("b",null,l(e.$t("feedback.table.feedbackType"))+":",1),s("span",null,l(t.feedback_type),1)])):m("",!0),t!=null&&t.telegram_link?(o(),n("div",rt,[i[2]||(i[2]=s("b",null,"Telegram:",-1)),s("a",{href:t.telegram_link,class:"text-blue-500 underline",target:"_blank"},l(t.telegram_link),9,at)])):m("",!0),t!=null&&t.linkedin_link?(o(),n("div",ht,[i[3]||(i[3]=s("b",null,"LinkedIn:",-1)),s("a",{href:t.linkedin_link,class:"text-blue-500 underline",target:"_blank"},l(t.linkedin_link),9,gt)])):m("",!0),t!=null&&t.portfolio_link?(o(),n("div",pt,[s("b",null,l(e.$t("feedback.table.portfolioLink"))+":",1),s("a",{href:t.portfolio_link,class:"text-blue-500 underline",target:"_blank"},l(t.portfolio_link),9,mt)])):m("",!0)],512)])],512),[[L,r.openIndex===(t==null?void 0:t.message_id)]])]),_:2},1032,["onEnter","onLeave"])]))),128))])])):(o(),n("div",_t,[s("h3",ut,l(e.$t("feedback.table.noFeedback")),1)])),s("div",dt,[s("div",ct,[p(C,{total:r.total,maxPages:6,defaultPage:r.page,pageSize:r.limit,goTo:!1,size:"medium",backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[16,32,48],onPageChange:a.handlePageChange,onPageSizeChange:a.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])])])])}const Dt=S(B,[["render",xt]]);export{Dt as default};
@@ -1 +0,0 @@
1
- import{_ as E}from"./SettingsTitle-t4WJBFxZ.js";import{D as A}from"./index-BIp7eSXk.js";import{_ as S,c0 as j,a as l,f as p,b as s,g,t as o,v as u,j as v,k,r as h,o as r,n as $,h as C,w as F,B as N,R,ad as q}from"./index-yMJAVBXk.js";import{A as I,a as B,b as U}from"./arrow-up-DCe0WsrM.js";import{C as M}from"./chevron-left-WFftVS9c.js";import{C as H}from"./chevron-right-BiiSb3Be.js";import"./index-DGweaj24.js";const z={components:{SettingsTitle:E,TableCellsMerge:j,ArrowDown:I,ArrowUp:B,ArrowRightFromLine:U,ChevronLeft:M,ChevronRight:H,VsFilter:A},data(){return{logs:null,total:null,openIndex:null,limit:16,page:1,filterValue:"",filterScheme:[]}},computed:{totalPages(){return Math.ceil(this.total/this.limit)}},async created(){this.$router.replace({query:{page:1}}),await this.getData()},methods:{async getData(){try{const a=await(await fetch(`/api/user-logs?limit=${this.limit}&page=${this.page}${this.filterValue==="no-url"?"":`&filter=${this.filterValue}`}`)).json();this.logs=a==null?void 0:a.rows,this.total=a==null?void 0:a.total,this.filterScheme=a==null?void 0:a.filters}catch(t){console.error(t.toString())}},async exportToCSV(){window.open(`/api/export-user-logs${this.filterValue==="no-url"?"":`?filter=${this.filterValue}`}`,"_blank")},async handleChange(t){const a=Object.entries(t==null?void 0:t.data).filter(([,c])=>c!=null).map(([c,x])=>`${c}=${x}`).join("|");this.filterValue=a,this.filterValue==="no-url"?this.$router.replace({query:{page:1}}):this.$router.replace({query:{filter:this.filterValue,page:1}}),this.page=1,await this.getData()},async handlePageChange(t){this.page=t,this.filterValue==="no-url"||!this.filterValue?this.$router.replace({query:{page:t}}):this.$router.replace({query:{filter:this.filterValue,page:t}}),await this.getData()},async handlePreviousPage(){this.page>1&&await this.handlePageChange(this.page-1)},async handleNextPage(){this.page<this.totalPages&&await this.handlePageChange(this.page+1)},async changeLimit(t){this.limit=t,this.page=1,await this.getData()},toggle(t){this.openIndex=this.openIndex===t?null:t},onEnter(t){t.style.height="0",t.style.opacity="0",requestAnimationFrame(()=>{t.style.transition="all 0.3s ease",t.style.height=t.scrollHeight+"px",t.style.opacity="1"})},onLeave(t){t.style.height=t.scrollHeight+"px",t.style.opacity="1",requestAnimationFrame(()=>{t.style.transition="all 0.3s ease",t.style.height="0",t.style.opacity="0"})},formatDateTime(t){if(!t)return"";const[a,c]=t.split(" ");if(!a||!c)return t;const[x,d,n]=a.split("-"),[y,f,m]=c.split(":"),_=m==null?void 0:m.slice(0,2);return`${n}.${d}.${x} ${y}:${f}:${_}`}}},O={class:"w-full max-w-7xl mx-auto space-y-6"},G={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm"},J={class:"flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800"},K={class:"tracking-tight text-xl font-semibold text-slate-800 dark:text-slate-100 flex items-center"},Q={class:"p-6 space-y-4"},W={class:"flex justify-between"},X={key:0,class:"overflow-x-auto"},Y={class:"min-w-full divide-y divide-gray-200"},Z={class:"bg-gray-100"},ee={class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},te={class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},se={class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},ae=["onClick"],ie={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},re={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},ne={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},oe={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},le={class:"px-4 py-2 text-sm text-gray-800 dark:text-white"},de={key:0},he={colspan:"5",class:"bg-gray-50 px-4 py-3 text-sm text-gray-600 overflow-hidden"},ce={key:0},pe={class:"flex flex-1 gap-2"},ue={key:0,class:"flex gap-1"},me={key:1,class:"flex"},xe={key:1,class:"bg-white dark:bg-slate-800 backdrop-blur-sm0 text-center p-6 rounded-xl"},ye={class:"text-lg font-semibold"},fe={key:2,class:"my-5 pr-2"},_e={class:"paginationWrapper relative flex justify-center items-center gap-4"},ge=["disabled"],be=["disabled"];function we(t,a,c,x,d,n){var b,w;const y=h("SettingsTitle"),f=h("TableCellsMerge"),m=h("VsFilter"),_=h("ArrowUp"),V=h("ArrowDown"),D=h("ArrowRightFromLine"),P=h("ChevronLeft"),T=h("ChevronRight");return r(),l("div",O,[p(y,{title:t.$t("settings.logs.title"),description:t.$t("settings.logs.description")},null,8,["title","description"]),s("div",G,[s("div",J,[s("h3",K,[p(f,{class:"text-emerald-500 mr-2"}),g(" "+o(t.$t("settings.logs.title")),1)])]),s("div",Q,[s("div",W,[p(m,{schema:d.filterScheme,view:"inline",onChange:n.handleChange},null,8,["schema","onChange"]),(b=d.logs)!=null&&b.length?(r(),l("button",{key:0,onClick:a[0]||(a[0]=(...e)=>n.exportToCSV&&n.exportToCSV(...e)),class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none text-white focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 text-primary-foreground shadow h-9 px-4 py-2 bg-emerald-600 hover:bg-emerald-700"},"Експорт в CSV")):u("",!0)]),(w=d.logs)!=null&&w.length?(r(),l("div",X,[s("table",Y,[s("thead",Z,[s("tr",null,[a[3]||(a[3]=s("th",{class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},"№",-1)),s("th",ee,o(t.$t("settings.logs.table.objectId")),1),s("th",te,o(t.$t("settings.logs.table.dateTime")),1),s("th",se,o(t.$t("settings.logs.table.changeType")),1),a[4]||(a[4]=s("th",{class:"px-4 py-2 text-left text-sm font-semibold text-gray-700"},null,-1))])]),(r(!0),l(v,null,k(d.logs,(e,ve)=>(r(),l("tbody",{class:"divide-y divide-gray-200",key:e==null?void 0:e.change_id},[s("tr",{class:$(["cursor-pointer dark:text-white",[(e==null?void 0:e.change_type)=="DELETE"?"pointer-events-none":""]]),onClick:i=>n.toggle(e==null?void 0:e.change_id)},[s("td",ie,o(e==null?void 0:e.num),1),s("td",re,o(e==null?void 0:e.entity_id),1),s("td",ne,o(n.formatDateTime(e==null?void 0:e.cdate)),1),s("td",oe,o(e==null?void 0:e.change_type),1),s("td",le,[(e==null?void 0:e.change_type)!=="DELETE"?(r(),l("div",de,[d.openIndex===(e==null?void 0:e.change_id)?(r(),C(_,{key:0})):(r(),C(V,{key:1}))])):u("",!0)])],10,ae),p(q,{name:"collapse",onEnter:n.onEnter,onLeave:n.onLeave},{default:F(()=>[N(s("tr",null,[s("td",he,[s("div",{ref_for:!0,ref:"content",class:"transition-all duration-300 ease-in-out"},[(r(!0),l(v,null,k(e==null?void 0:e.data_log,(i,L)=>(r(),l("p",{key:i==null?void 0:i.change_data_id},[(i==null?void 0:i.value_new)!==(i==null?void 0:i.value_old)?(r(),l("span",ce,[s("div",pe,[s("div",null,[s("strong",null,o(L+1)+". "+o(i==null?void 0:i.entity_key)+":",1)]),(e==null?void 0:e.change_type)==="UPDATE"?(r(),l("div",ue,[g(o(i==null?void 0:i.value_old)+" ",1),p(D,{class:"w-[16px] h-[16px]"}),g(" "+o(i==null?void 0:i.value_new),1)])):u("",!0),(e==null?void 0:e.change_type)==="INSERT"?(r(),l("div",me,o(i==null?void 0:i.value_new),1)):u("",!0)])])):u("",!0)]))),128))],512)])],512),[[R,d.openIndex===(e==null?void 0:e.change_id)&&(e==null?void 0:e.change_type)!=="DELETE"]])]),_:2},1032,["onEnter","onLeave"])]))),128))])])):(r(),l("div",xe,[s("h3",ye,o(t.$t("settings.logs.table.noLogs")),1)])),d.total!==null&&d.total>0?(r(),l("div",fe,[s("div",_e,[s("button",{onClick:a[1]||(a[1]=(...e)=>n.handlePreviousPage&&n.handlePreviousPage(...e)),disabled:d.page===1,class:"inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors border shadow-sm rounded-md text-xs h-8 w-8 p-0 bg-white border-slate-300 text-slate-600 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed hover:text-accent-foreground hover:bg-slate-50 dark:bg-slate-700 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-slate-600"},[p(P,{class:"w-5 h-5"})],8,ge),s("button",{onClick:a[2]||(a[2]=(...e)=>n.handleNextPage&&n.handleNextPage(...e)),disabled:d.page>=n.totalPages,class:"inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors border shadow-sm rounded-md text-xs h-8 w-8 p-0 bg-white border-slate-300 text-slate-600 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed hover:text-accent-foreground hover:bg-slate-50 dark:bg-slate-700 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-slate-600"},[p(T,{class:"w-5 h-5"})],8,be)])])):u("",!0)])])])}const Ee=S(z,[["render",we]]);export{Ee as default};
@@ -1,11 +0,0 @@
1
- import{c as D,o as r,a,t as n,n as F,e as c,u as T,m as $,p as V,bc as Z,f as m,b as e,v as g,j as v,k as C,y as N,h as b,F as q,_ as A,r as O,g as H}from"./index-yMJAVBXk.js";import{Z as P}from"./index-DGweaj24.js";import{F as G}from"./file-B_duymIT.js";import{T as z}from"./trash-2-BGXMNU3d.js";import{C as I}from"./chevron-right-BiiSb3Be.js";/**
2
- * @license lucide-vue-next v0.344.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const Jt=D("DownloadIcon",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/**
7
- * @license lucide-vue-next v0.344.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const L=D("FolderIcon",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);function S(s){if(s===0)return"0 Bytes";const o=1024,u=["Bytes","KB","MB","GB","TB"],l=Math.floor(Math.log(s)/Math.log(o));return Number.parseFloat((s/Math.pow(o,l)).toFixed(2))+" "+u[l]}function U(s){const o=new Date(s);return isNaN(o.getTime())?"":o.toISOString().slice(0,10)}const E={__name:"TypeTag",props:{type:{type:String,required:!0}},setup(s){const o=new Map([["document","bg-blue-100 text-blue-800 border-blue-200 dark:bg-blue-900/30 dark:text-blue-300 dark:border-blue-700"],["image","bg-green-100 text-green-800 border-green-200 dark:bg-green-900/30 dark:text-green-300 dark:border-green-700"],["video","bg-purple-100 text-purple-800 border-purple-200 dark:bg-purple-900/30 dark:text-purple-300 dark:border-purple-700"]]);return(u,l)=>(r(),a("div",{class:F(["inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors shadow-lg backdrop-blur-sm",c(o).get(s.type)])},n(s.type),3))}},K={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6 max-h-[calc(100%-130px)] overflow-y-auto px-2 pt-2 pb-5"},R={key:0,class:"flex flex-col items-center justify-center h-64 text-muted-foreground col-span-full"},J=["onClick"],Q=["onClick"],W={class:"truncate font-medium text-slate-800 dark:text-slate-100 mb-2"},X={class:"text-sm text-slate-500 dark:text-slate-400"},Y=["onClick"],f={class:"p-0"},tt={class:"aspect-video bg-slate-100 dark:bg-slate-700 rounded-t-lg overflow-hidden relative"},et={class:"w-full h-full flex items-center justify-center bg-gradient-to-br from-slate-100 to-slate-200 dark:from-slate-700 dark:to-slate-800"},st={key:0,class:"relative w-full"},rt=["src","alt"],ot={class:"p-4"},at={class:"flex items-center justify-between mb-2"},nt={class:"font-medium text-slate-800 dark:text-slate-100 truncate flex-1 mr-2"},dt={class:"space-y-1 text-sm text-slate-500 dark:text-slate-400"},lt={class:"flex justify-between"},ct={class:"flex justify-between"},Qt={__name:"MediaGrid",props:{files:{type:Array,required:!0},selectedFile:{type:Object,default:null},selectedFiles:{type:Array,default:()=>[]},isDeleteButton:{type:Boolean,default:!1}},emits:["delete-file","file-click","delete-folder"],setup(s,{emit:o}){T();const u=s,l=$([]),h=$(null),_=d=>{if(!d)return"";const i=new Date(d);return isNaN(i.getTime())?"":i.toISOString().slice(0,10)},k=()=>{l.value=u.files.sort((d,i)=>d.type==="dir"&&i.type!=="dir"?-1:d.type!=="dir"&&i.type==="dir"?1:0)};return V(()=>k()),Z(()=>k()),(d,i)=>{var y;return r(),a("div",K,[((y=s.files)==null?void 0:y.length)===0?(r(),a("div",R,[m(c(G),{class:"w-12 h-12 mb-2"}),e("p",null,n(d.$t("noFilesInFolder")),1)])):g("",!0),(r(!0),a(v,null,C(l.value,t=>{var x;return r(),a(v,{key:t==null?void 0:t.url},[(t==null?void 0:t.type)==="dir"?(r(),a("div",{key:0,class:"p-6 text-center rounded-xl h-[fit-content] relative text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm hover:shadow-xl transition-all duration-200 transform hover:scale-105 cursor-pointer",onClick:p=>d.$emit("file-click",t)},[s.isDeleteButton?(r(),a("div",{key:0,onClick:N(p=>{h.value=t},["stop"]),class:"absolute top-4 right-4 p-1 border border-gray-300 dark:border-slate-700 rounded-lg cursor-pointer hover:bg-gray-200 dark:hover:bg-slate-700 group"},[m(c(z),{class:"w-4 h-4 text-gray-500 group-hover:text-red-500"})],8,Q)):g("",!0),m(c(L),{class:"w-16 h-16 mx-auto mb-4 text-blue-600"}),e("h3",W,n(t==null?void 0:t.name),1),e("p",X,n(t==null?void 0:t.count)+" "+n(d.$t("media.files")),1)],8,J)):(t==null?void 0:t.type)==="file"?(r(),a("div",{key:1,class:F(["h-[fit-content] rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm hover:shadow-xl transition-all duration-200 transform hover:scale-105 group cursor-pointer",{"bg-accent text-accent-foreground ring-2 ring-primary":((x=s.selectedFile)==null?void 0:x.url)===(t==null?void 0:t.url)||s.selectedFiles&&s.selectedFiles.some(p=>p.id===t.id)}]),onClick:p=>d.$emit("file-click",t)},[e("div",f,[e("div",tt,[e("div",et,[(t==null?void 0:t.filetype)==="image"&&(t!=null&&t.filepath||t!=null&&t.url)?(r(),a("div",st,[e("img",{src:t==null?void 0:t.preview,alt:(t==null?void 0:t.alt)||(t==null?void 0:t.filename),class:"object-cover w-full h-full rounded text-xs"},null,8,rt)])):(r(),b(c(q),{key:1,class:"w-12 h-12 text-gray-500"}))])]),e("div",ot,[e("div",at,[e("h3",nt,n(t.filename),1),m(E,{type:t==null?void 0:t.filetype},null,8,["type"])]),e("div",dt,[e("div",lt,[e("span",null,n(d.$t("media.size"))+":",1),e("span",null,n(c(S)(t.filesize)),1)]),e("div",ct,[e("span",null,n(d.$t("media.uploaded"))+":",1),e("span",null,n(_(t.created_at)),1)])])])])],10,Y)):g("",!0)],64)}),128))])}}},ut={},it={"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"};function mt(s,o){return r(),a("svg",it,[...o[0]||(o[0]=[e("path",{d:"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H 13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237Z"},null,-1),e("path",{d:"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1H1.75Z"},null,-1)])])}const ht=A(ut,[["render",mt]]),pt={},gt={"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 0 16 16",width:"16",height:"16",fill:"currentColor"};function bt(s,o){return r(),a("svg",gt,[...o[0]||(o[0]=[e("path",{d:"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H 13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237Z"},null,-1),e("path",{d:"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1H1.75Z"},null,-1)])])}const yt=A(pt,[["render",bt]]),xt={key:0,class:"flex flex-col items-center justify-center h-64 text-muted-foreground"},_t={key:1,class:"w-full text-sm caption-bottom"},kt={class:"[&_tr]:border-b"},vt={class:"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"},wt={class:"h-12 px-4 text-left align-middle font-medium text-muted-foreground w-[300px]"},$t={class:"h-12 px-4 font-medium text-left align-middle text-muted-foreground"},Ft={class:"h-12 px-4 font-medium text-left align-middle text-muted-foreground"},Ct={class:"hidden h-12 px-4 font-medium text-left align-middle text-muted-foreground md:table-cell"},At={class:"[&_tr:last-child]:border-0"},Bt=["onClick"],Mt={class:"p-4 font-medium align-middle"},jt={class:"flex items-center gap-2"},Ht={key:1,class:"relative w-8 h-8"},It=["src","alt"],Dt={class:"truncate max-w-[200px]"},Tt={class:"p-4 align-middle"},Nt={class:"p-4 align-middle"},zt={class:"hidden p-4 align-middle md:table-cell"},Lt={key:0},Wt={__name:"MediaList",props:{files:{type:Array,required:!0},selectedFile:{type:Object,default:null},selectedFiles:{type:Array,default:()=>[]}},emits:["file-click","delete-folder"],setup(s,{emit:o}){const{t:u}=T(),l=$(null),h=o,_=()=>{P({title:u("builder.deleteTitle"),message:u("builder.deleteObject"),type:"error",onConfirm:()=>{k()}})},k=()=>{h("delete-folder",l.value)};return(d,i)=>{const y=O("File");return r(),a("div",null,[s.files.length===0?(r(),a("div",xt,[m(y,{class:"w-12 h-12 mb-2"}),e("p",null,n(d.$t("media.noFilesInFolder")),1)])):(r(),a("table",_t,[e("thead",kt,[e("tr",vt,[e("th",wt,n(d.$t("media.name")),1),e("th",$t,n(d.$t("media.type")),1),e("th",Ft,n(d.$t("media.size")),1),e("th",Ct,n(d.$t("media.updatedAt")),1),i[0]||(i[0]=e("th",null,null,-1))])]),e("tbody",At,[(r(!0),a(v,null,C(s.files,t=>{var x,p,B,M,j;return r(),a("tr",{key:t.id,class:F(["border-b transition-colors hover:bg-blue-200/50 data-[state=selected]:bg-muted cursor-pointer",{"bg-blue-200":((x=l.value)==null?void 0:x.id)===t.id&&((p=l.value)==null?void 0:p.type)===t.type||s.selectedFiles&&s.selectedFiles.some(w=>w.id===t.id&&w.type===t.type)}]),onClick:w=>d.$emit("file-click",t)},[e("td",Mt,[e("div",jt,[t.type==="dir"?(r(),b(ht,{key:0,class:"w-5 h-5 text-blue-500"})):(t==null?void 0:t.filetype)==="image"&&(t!=null&&t.filepath)?(r(),a("div",Ht,[e("img",{src:t==null?void 0:t.preview,alt:(t==null?void 0:t.alt)||(t==null?void 0:t.filename),class:"object-cover w-full h-full rounded"},null,8,It)])):(t==null?void 0:t.filetype)==="image"?(r(),b(yt,{key:2,class:"w-5 h-5 text-green-500"})):(r(),b(y,{key:3,class:"w-5 h-5 text-gray-500"})),e("span",Dt,n((t==null?void 0:t.filename)||(t==null?void 0:t.name)),1)])]),e("td",Tt,n((t==null?void 0:t.type)==="dir"?d.$t("media.folder"):((M=(B=t==null?void 0:t.filetype)==null?void 0:B.charAt(0))==null?void 0:M.toUpperCase())+((j=t==null?void 0:t.filetype)==null?void 0:j.slice(1))),1),e("td",Nt,n((t==null?void 0:t.type)==="dir"?"--":c(S)(t==null?void 0:t.filesize)),1),e("td",zt,n(t!=null&&t.updated_at?c(U)(t==null?void 0:t.updated_at):"--"),1),t.type==="dir"?(r(),a("td",Lt,[m(c(z),{class:"w-4 h-4 text-red-500 cursor-pointer",onClick:N(_,["stop"])},null,8,["onClick"])])):g("",!0)],10,Bt)}),128))])]))])}}},St={},Vt={xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function Zt(s,o){return r(),a("svg",Vt,[...o[0]||(o[0]=[e("path",{d:"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"},null,-1),e("polyline",{points:"9 22 9 12 15 12 15 22"},null,-1)])])}const qt=A(St,[["render",Zt]]),Ot={class:"flex items-center space-x-1"},Pt=["onClick"],Xt={__name:"MediaBreadcrumb",props:{currentPath:{type:Array,required:!0}},emits:["navigate"],setup(s){return(o,u)=>(r(),a("div",Ot,[e("button",{class:"flex gap-x-1 items-center px-2 py-1 rounded text-sm font-medium transition-all duration-200 text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20",onClick:u[0]||(u[0]=l=>o.$emit("navigate",[]))},[m(qt,{class:"w-3 h-3"}),H(" "+n(o.$t("media.mediaLibrary")),1)]),s.currentPath.length>0?(r(),b(c(I),{key:0,class:"w-3 h-3 text-slate-400 dark:text-slate-500"})):g("",!0),(r(!0),a(v,null,C(s.currentPath,(l,h)=>(r(),a("button",{key:h,class:"flex gap-x-1 items-center px-2 py-1 rounded text-sm font-medium transition-all duration-200 text-blue-700 dark:text-blue-300 bg-blue-50 dark:bg-blue-900/20",onClick:_=>o.$emit("navigate",s.currentPath.slice(0,h+1))},[m(c(L),{class:"w-3 h-3"}),H(" "+n(l)+" ",1),h<s.currentPath.length-1?(r(),b(c(I),{key:0,class:"w-3 h-3 text-slate-400 dark:text-slate-500"})):g("",!0)],8,Pt))),128))]))}};export{Jt as D,Xt as _,Qt as a,Wt as b,E as c,U as d,S as f};
@@ -1,16 +0,0 @@
1
- import{c as G,o as n,a as v,b as e,f as m,e as f,g as D,t as l,u as J,j as Y,h as H,F as ae,v as j,E as le,D as oe,m as y,w as X,k as re,S as ie,z as Z,p as ne,B as de,C as ce,y as K,n as Q,J as ue,H as me,K as fe,l as he}from"./index-yMJAVBXk.js";import{c as pe,f as ve,d as be,D as ge,_ as xe,a as ye,b as we}from"./MediaBreadcrumb-BpOxt5PK.js";import{P as ke}from"./plus-DLR44m6p.js";import{Z as $e,y as A,J as _e}from"./index-DGweaj24.js";import{C as Fe}from"./calendar-o9t4MkD2.js";import{T as Ce}from"./trash-2-BGXMNU3d.js";import{l as je}from"./index-DCW2e4Az.js";import{D as Ve}from"./index-BIp7eSXk.js";import{u as W}from"./useDebounce-DFq3rxAW.js";import{S as De}from"./search-C4-fHihx.js";import{L as Me}from"./list-CXRbSNky.js";import"./file-B_duymIT.js";import"./chevron-right-BiiSb3Be.js";/**
2
- * @license lucide-vue-next v0.344.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const ze=G("CopyIcon",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/**
7
- * @license lucide-vue-next v0.344.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const Se=G("FolderPlusIcon",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/**
12
- * @license lucide-vue-next v0.344.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const Te=G("Grid3x3Icon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),Be={class:"flex items-center gap-3"},Pe={__name:"MediaViewControls",props:{modelValue:{type:String,required:!0}},emits:["update:modelValue","create-folder","file-change"],setup(r){return(x,i)=>(n(),v("div",Be,[e("button",{class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 border shadow-sm hover:text-accent-foreground h-9 px-4 py-2 bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-600",onClick:i[0]||(i[0]=w=>x.$emit("create-folder"))},[m(f(Se),{class:"w-4 h-4 mr-2"}),D(" "+l(x.$t("media.newFolder")),1)]),e("button",{class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 h-9 px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white shadow-md hover:shadow-lg transition-all duration-200 transform hover:scale-105",onClick:i[2]||(i[2]=w=>x.$refs.fileInputRef.click())},[e("input",{type:"file",onChange:i[1]||(i[1]=w=>x.$emit("file-change",w)),ref:"fileInputRef",class:"hidden",multiple:""},null,544),m(f(ke),{class:"w-4 h-4 mr-2"}),D(" "+l(x.$t("media.uploadMedia")),1)])]))}},Oe={class:"h-[fit-content] w-80 flex flex-col flex-shrink-0 bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-lg shadow-lg"},qe={key:0,class:"flex flex-col items-center justify-center h-64 text-muted-foreground"},Ee={class:"p-4 border-b border-slate-200 dark:border-slate-700"},Ie={class:"font-semibold text-slate-800 dark:text-slate-100"},Le={class:"p-4 space-y-4"},Ne={class:"aspect-video flex items-center justify-center bg-slate-100 dark:bg-slate-700 rounded-lg overflow-hidden relative"},Ue=["src","alt"],He={class:"absolute top-3 right-3"},Re={class:"space-y-3"},Ae={class:"peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-slate-700 dark:text-slate-300"},Ge={class:"text-slate-800 dark:text-slate-100 break-all"},Je={class:"peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-slate-700 dark:text-slate-300"},Xe={class:"text-slate-800 dark:text-slate-100"},Ze={key:0},Ke={class:"peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-slate-700 dark:text-slate-300"},Qe={class:"peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-slate-700 dark:text-slate-300"},We={class:"text-slate-800 dark:text-slate-100 flex items-center"},Ye={key:1},et={class:"peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-slate-700 dark:text-slate-300"},tt={class:"text-slate-800 dark:text-slate-100"},st={key:2},at={class:"peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-slate-700 dark:text-slate-300"},lt={class:"text-slate-800 dark:text-slate-100"},ot={key:3},rt={class:"peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-slate-700 dark:text-slate-300"},it={class:"space-y-2 pt-4 border-t border-slate-200 dark:border-slate-700"},nt=["href"],dt={__name:"MediaFileInfo",props:{file:{type:Object,default:null}},emits:["delete-file"],setup(r,{emit:x}){const{t:i}=J(),w=x,d=r,b=()=>{$e({title:i("builder.deleteTitle"),message:i("builder.deleteObject"),type:"error",onConfirm:()=>{g()}})},g=()=>{w("delete-file",d.file)},k=async()=>{var o;if((o=d.file)!=null&&o.filepath)try{await navigator.clipboard.writeText(d.file.filepath),A({type:"success",title:i("common.actions.success"),message:i("toast.copied")})}catch(h){console.error("Failed to copy file path:",h),A({type:"error",title:i("common.actions.error"),message:i("media.copyPathFailed")})}};return(o,h)=>{var c,p,_,C,M,O,$,q,V,z,E,S,T,I,B,L,N;return n(),v("div",Oe,[r.file?(n(),v(Y,{key:1},[e("div",Ee,[e("h3",Ie,l(o.$t("media.fileDetails")),1)]),e("div",Le,[e("div",Ne,[((c=r.file)==null?void 0:c.filetype)==="image"&&((p=r.file)!=null&&p.filepath)?(n(),v("img",{key:0,src:(_=r.file)==null?void 0:_.preview,alt:((C=r.file)==null?void 0:C.alt)||((M=r.file)==null?void 0:M.filename),class:"w-full h-full object-cover"},null,8,Ue)):(n(),H(f(ae),{key:1,class:"w-full h-4/5 object-cover"})),e("div",He,[m(pe,{type:(O=r.file)==null?void 0:O.filetype},null,8,["type"])])]),e("div",Re,[e("div",null,[e("label",Ae,l(o.$t("media.name")),1),e("p",Ge,l(($=r.file)==null?void 0:$.filename),1)]),e("div",null,[e("label",Je,l(o.$t("media.size")),1),e("p",Xe,l(f(ve)((q=r.file)==null?void 0:q.filesize)),1)]),(V=r.file)!=null&&V.dimensions?(n(),v("div",Ze,[e("label",Ke,l(o.$t("media.dimensions")),1),h[0]||(h[0]=e("p",{class:"text-slate-800 dark:text-slate-100"},"1920x1080",-1))])):j("",!0),e("div",null,[e("label",Qe,l(o.$t("media.uploadDate")),1),e("p",We,[m(f(Fe),{class:"w-4 h-4 mr-2"}),D(" "+l((z=r.file)!=null&&z.created_at?f(be)((E=r.file)==null?void 0:E.created_at):"--"),1)])]),(S=r.file)!=null&&S.author?(n(),v("div",Ye,[e("label",et,l(o.$t("media.author")),1),e("p",tt,l((T=r.file)==null?void 0:T.author),1)])):j("",!0),(I=r.file)!=null&&I.description?(n(),v("div",st,[e("label",at,l(o.$t("media.description")),1),e("p",lt,l((B=r.file)==null?void 0:B.description),1)])):j("",!0),(L=r.file)!=null&&L.tags?(n(),v("div",ot,[e("label",rt,l(o.$t("media.tags")),1),h[1]||(h[1]=e("div",{class:"flex flex-wrap gap-1 mt-1"},[e("div",{class:"inline-flex items-center rounded-md border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground text-xs"}," banner "),e("div",{class:"inline-flex items-center rounded-md border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground text-xs"}," hero "),e("div",{class:"inline-flex items-center rounded-md border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground text-xs"}," homepage ")],-1))])):j("",!0)]),e("div",it,[e("a",{href:(N=r.file)==null?void 0:N.filepath,download:"",class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 shadow h-9 px-4 py-2 w-full bg-blue-600 hover:bg-blue-700 text-white"},[m(f(ge),{class:"w-4 h-4 mr-2"}),D(" "+l(o.$t("media.download")),1)],8,nt),e("button",{class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 border shadow-sm hover:text-accent-foreground h-9 px-4 py-2 w-full bg-slate-600 hover:bg-slate-700 text-white",onClick:k},[m(f(ze),{class:"w-4 h-4 mr-2"}),D(" "+l(o.$t("media.copyPath")),1)]),e("button",{class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 border shadow-sm hover:text-accent-foreground h-9 px-4 py-2 w-full bg-red-500 hover:bg-red-600 text-white",onClick:b},[m(f(Ce),{class:"w-4 h-4 mr-2"}),D(" "+l(o.$t("media.delete")),1)])])])],64)):(n(),v("div",qe,[e("p",null,l(o.$t("media.selectFile")),1)]))])}}},ct={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},ut={__name:"MediaCreateFolder",props:{modelValue:{},modelModifiers:{}},emits:le(["update:modelValue","create"],["update:modelValue"]),setup(r,{emit:x}){const{t:i}=J(),w=oe(r,"modelValue"),d=x,b=y({}),g=y({}),k={name:{name:"name",label:i("media.newFolder"),type:"Text"}},o=async()=>{if(await g.value.validate()){A({type:"warning",title:i("common.actions.warning"),message:i("media.createFolderFailed")});return}d("create",{...b.value}),b.value={}};return(h,c)=>(n(),H(f(_e),{teleport:"#modal",visible:w.value,title:h.$t("media.createFolder"),onClose:c[3]||(c[3]=p=>h.$emit("update:modelValue",!1))},{footer:X(()=>[e("div",ct,[e("button",{onClick:c[2]||(c[2]=p=>h.$emit("update:modelValue",!1)),class:"inline-flex items-center px-3 py-2 text-sm text-black duration-300 border border-gray-200 rounded-lg gap-x-2 whitespace-nowrap hover:bg-gray-100"},l(h.$t("common.actions.cancel")),1),e("button",{onClick:o,class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300"},l(h.$t("common.actions.create")),1)])]),default:X(()=>[m(f(je),{schema:k,modelValue:b.value,"onUpdate:modelValue":c[0]||(c[0]=p=>b.value=p),form:g.value,"onUpdate:form":c[1]||(c[1]=p=>g.value=p)},null,8,["modelValue","form"])]),_:1},8,["visible","title"]))}},mt={key:0,class:"fixed bottom-4 right-4 w-96 bg-white shadow-lg rounded-lg p-4 z-50"},ft={class:"font-bold mb-2"},ht={class:"flex justify-between items-center mb-1"},pt={class:"truncate w-2/3"},vt={key:0,class:"text-green-600"},bt={key:1,class:"text-red-600"},gt={key:2,class:"text-blue-600"},xt={class:"w-full bg-gray-200 rounded h-2"},yt={__name:"FileUploadProgress",props:{uploads:{type:Array,required:!0}},setup(r){return(x,i)=>{var w;return(w=r.uploads)!=null&&w.length?(n(),v("div",mt,[e("div",ft,l(x.$t("media.uploadingFiles")),1),(n(!0),v(Y,null,re(r.uploads,d=>(n(),v("div",{key:d.id,class:"mb-3"},[e("div",ht,[e("span",pt,l(d==null?void 0:d.name),1),d.status==="success"?(n(),v("span",vt,"✔")):d.status==="error"?(n(),v("span",bt,"✖")):(n(),v("span",gt,l(d==null?void 0:d.progress)+"%",1))]),e("div",xt,[e("div",{class:"bg-blue-500 h-2 rounded",style:ie({width:(d==null?void 0:d.progress)+"%"})},null,4)])]))),128))])):j("",!0)}}},wt={class:"w-full max-w-7xl mx-auto space-y-6 h-full"},kt={class:"flex justify-between items-center mb-8"},$t={class:"flex items-center gap-2"},_t={class:"text-3xl font-bold text-slate-800 dark:text-slate-100 mb-2"},Ft=["href","title"],Ct={class:"text-slate-600 dark:text-slate-300"},jt={class:"h-[calc(100%-100px)]"},Vt={class:"flex gap-6 h-full"},Dt={class:"space-y-4 flex-1"},Mt={class:"flex items-center justify-between"},zt={class:"relative z-[1] rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm mb-6 p-4"},St={class:"flex items-center justify-between gap-4"},Tt={class:"flex items-center gap-4 flex-1"},Bt={class:"relative flex-1 max-w-md"},Pt=["placeholder"],Ot={class:"flex items-center gap-2 relative"},qt={class:"text-xs font-bold"},Et={class:"text-xs font-bold"},It={key:0,class:"w-full absolute top-full left-1/2 transform -translate-x-1/2 mt-2 z-50 bg-white dark:bg-slate-700 flex flex-col items-start border border-slate-200 dark:border-slate-600"},Lt={class:"flex items-center gap-2"},es={__name:"MediaPage",setup(r){const x=he(),i=ue(),{t:w,locale:d}=J(),b=y("grid"),g=y([]),k=y(null),o=y([]),h=y(!1),c=y([]),p=y([]),_=y(""),C=y(!1),M=y("name"),O=y([{name:"date",type:"date",label:"Дата завантаження"}]),$=y(i.query.filter?i.query.filter.split("|").map(s=>s.split("=")).reduce((s,[t,a])=>Object.assign(s,{[t]:a}),{}):{}),q=new Map([["name",w("media.sortBy.name")],["filesize",w("media.sortBy.filesize")]]),V=s=>{M.value=s,C.value=!1,o.value=o.value.sort((t,a)=>{var u;if((t==null?void 0:t.type)==="dir")return-1;if(s==="name")return(u=t==null?void 0:t.name)==null?void 0:u.localeCompare(a==null?void 0:a.name);if(s==="filesize")return(a==null?void 0:a.filesize)-(t==null?void 0:t.filesize)})},z=s=>{g.value=s,c.value=[...c.value,s],k.value=null,F()},E=()=>{c.value.length>1&&(c.value.pop(),g.value=c.value[c.value.length-1],k.value=null,F())},S=s=>{var t;s.type==="dir"?z([...g.value,s.name]):k.value=s.id===((t=k.value)==null?void 0:t.id)?null:s},T=async s=>{if(s!=null&&s.id)try{await fetch(`/api/cms-media/${s.id}`,{method:"DELETE"}),await F(),k.value=null}catch(t){console.error("Delete error:",t)}},I=async()=>{const t=await(await fetch("/api/cms-media?subdir="+g.value.join("/")+"&search="+_.value)).json();o.value=t.data?t.data:[]},B=async s=>{let t="";g.value.forEach(a=>{let u=a.replace(/ /g,"+");t+=u+"/"}),t+=s.name.replace(/ /g,"+");try{await fetch(`/api/cms-media?subdir=${t}`,{method:"DELETE",headers:{"X-Skip-Session":"true"}}),await F(),k.value=null}catch(a){console.error("Delete error:",a)}},L=async s=>{const t=Array.from(s.target.files);if(!t.length)return;p.value=t.map((u,P)=>({id:P+"-"+Date.now(),name:u.name,progress:0,status:"uploading"}));const a=g.value.join("/");for(let u=0;u<t.length;u++){const P=t[u],U=new FormData;U.append("file",P);try{const te=await fetch(`/api/cms-media/upload?subdir=${a}`,{method:"POST",headers:{"X-Skip-Session":"true"},body:U});for(let R=0;R<=100;R+=10)p.value[u].progress=R,await new Promise(se=>setTimeout(se,50));setTimeout(()=>{p.value[u].status="success",p.value[u].progress=100},1e3)}catch{p.value[u].status="error"}}await F(),setTimeout(()=>{p.value=[]},3e3)},N=async s=>{try{const t=g.value.join("/");await fetch(`/api/cms-media/upload?subdir=${t}/${s.name}`,{method:"POST"}),h.value=!1,await F()}catch{error.value="Failed to create folder"}finally{p.value=[]}},F=async()=>{try{let t=`/api/cms-media?subdir=${g.value.join("/")}`;$.value&&Object.keys($.value).length>0&&(t+=`&filter=${Object.entries($.value).map(([P,U])=>`${P}=${U}`)}`);const u=await(await fetch(t)).json();o.value=u.data?u.data:[],V("name")}catch(s){error.value="Failed to fetch files",console.error("Fetch error:",s),o.value=[]}},ee=async s=>{const t=Object.entries(s==null?void 0:s.data).filter(([,a])=>a!=null).map(([a,u])=>`${a}=${u}`).join("|");$.value=s==null?void 0:s.data,$.value==="no-url"||x.replace({query:{filter:t}}),await F()};return Z(g,s=>{s.length>0?x.push({query:{path:"/"+s.join("/")}}):x.push({query:{path:void 0}})}),W(_.value,300),Z(_,W(s=>{I()},500)),ne(()=>{c.value=[[]],F()}),(s,t)=>(n(),v("div",wt,[e("div",kt,[e("div",null,[e("div",$t,[e("h1",_t,l(s.$t("media.title")),1),e("a",{href:`https://cms.opengis.info/${f(d)}/guides/view/#5-медіа`,target:"_blank",title:s.$t("guide.media")},[m(f(me),{class:"w-5 h-5"})],8,Ft)]),e("p",Ct,l(s.$t("media.description")),1)]),m(Pe,{modelValue:b.value,"onUpdate:modelValue":t[0]||(t[0]=a=>b.value=a),onCreateFolder:t[1]||(t[1]=a=>h.value=!0),onFileChange:L},null,8,["modelValue"])]),e("div",jt,[e("div",Vt,[e("div",Dt,[e("div",Mt,[m(xe,{"current-path":g.value,onNavigate:z,onNavigateBack:E},null,8,["current-path"])]),e("div",zt,[e("div",St,[e("div",Tt,[e("div",Bt,[m(f(De),{class:"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-slate-400 dark:text-slate-500"}),de(e("input",{type:"text",placeholder:s.$t("media.search"),class:"w-full pl-10 pr-4 py-2 text-sm border border-slate-200 dark:border-slate-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-slate-700 text-slate-700 dark:text-slate-200 placeholder-slate-400 dark:placeholder-slate-500","onUpdate:modelValue":t[2]||(t[2]=a=>_.value=a)},null,8,Pt),[[ce,_.value]])]),e("div",Ot,[e("span",qt,l(s.$t("media.sortBy.title")+": "),1),e("button",{class:"relative z-[1000] inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors border shadow-sm h-8 rounded-md px-3 text-xs bg-white border-slate-300 text-slate-700 disabled:pointer-events-none disabled:opacity-50 hover:text-accent-foreground hover:bg-slate-50 dark:bg-slate-700 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-slate-600",onClick:t[5]||(t[5]=a=>C.value=!C.value)},[m(f(fe),{class:"w-4 h-4"}),e("span",Et,l(f(q).get(M.value)),1),C.value?(n(),v("div",It,[e("span",{class:"text-left text-xs font-bold w-full p-2 hover:bg-slate-100 dark:hover:bg-slate-600 border-b border-slate-200 dark:border-slate-600",onClick:t[3]||(t[3]=K(a=>V("name"),["stop"]))},l(s.$t("media.sortBy.name")),1),e("span",{class:"text-left text-xs font-bold w-full p-2 hover:bg-slate-100 dark:hover:bg-slate-600",onClick:t[4]||(t[4]=K(a=>V("filesize"),["stop"]))},l(s.$t("media.sortBy.filesize")),1)])):j("",!0)])])]),m(f(Ve),{schema:O.value,view:"inline",value:$.value,onChange:ee},null,8,["schema","value"]),e("div",Lt,[e("button",{class:Q(["inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 h-8 px-3 text-xs rounded-md",{"shadow bg-blue-600 hover:bg-blue-700 text-white":b.value==="grid","border shadow-sm hover:text-accent-foreground bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-600":b.value==="list"}]),onClick:t[6]||(t[6]=a=>b.value="grid")},[m(f(Te),{class:"w-4 h-4"})],2),e("button",{class:Q(["inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 h-8 px-3 text-xs rounded-md",{"shadow bg-blue-600 hover:bg-blue-700 text-white":b.value==="list","border shadow-sm hover:text-accent-foreground bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-600":b.value==="grid"}]),onClick:t[7]||(t[7]=a=>b.value="list")},[m(f(Me),{class:"w-4 h-4"})],2)])])]),b.value==="grid"&&o.value.length>0?(n(),H(ye,{key:0,files:o.value,"selected-file":k.value,"is-delete-button":!0,onFileClick:S,onDeleteFile:T,onDeleteFolder:B},null,8,["files","selected-file"])):o.value.length>0?(n(),H(we,{key:1,files:o.value,"selected-file":k.value,onFileClick:S,onDeleteFolder:B,"is-delete-button":!0},null,8,["files","selected-file"])):j("",!0)]),m(dt,{file:k.value,onDeleteFile:T},null,8,["file"])])]),m(ut,{modelValue:h.value,"onUpdate:modelValue":t[8]||(t[8]=a=>h.value=a),onCreate:N},null,8,["modelValue"]),m(yt,{uploads:p.value},null,8,["uploads"])]))}};export{es as default};
@@ -1 +0,0 @@
1
- import{d as y,u as x,m as l,o as b,a as w,b as t,e as a,f as m,P as k,t as f,g as _,l as V,J as q}from"./index-yMJAVBXk.js";import{_ as S}from"./MonacoEditor.vue_vue_type_script_setup_true_lang-CjoEsC67.js";import{y as u}from"./index-DGweaj24.js";import{l as C,Q as M}from"./index-DCW2e4Az.js";import{S as N}from"./save-FeDrOUOd.js";const $={class:"space-y-6 max-w-7xl mx-auto"},j={class:"flex items-center justify-between"},B={class:"flex items-center gap-4"},P={class:"text-2xl font-semibold text-gray-900 dark:text-white"},T={class:"flex items-center space-x-3"},U={class:"max-w-[1000px]"},D=y({__name:"MenuAddPage",setup(A){M["vs-input-monaco-editor"]=S;const{t:e}=x(),c=V(),g=q(),h=l([{key:"name",title:e("menu.form.name"),type:"text",placeholder:e("menu.form.name"),required:!0,validators:["required"]},{key:"description",title:e("menu.form.description"),type:"text",placeholder:e("menu.form.description"),required:!0,validators:["required"]},{key:"locale",title:e("menu.form.language"),type:"select",placeholder:e("menu.form.language"),options:[{text:"Ukrainian",id:"uk"},{text:"English",id:"en"}],required:!0,validators:["required"]},{key:"content",title:e("menu.form.content"),type:"monaco-editor",height:"500px",language:"yaml",theme:"vs-light"}]),r=l({}),i=l({}),v=async()=>{try{if(await i.value.validate()){u({type:"warning",title:e("common.actions.warning"),message:e("menu.createMenuFailed")});return}await fetch("/api/cms-menu",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r.value)}),u({title:e("common.success"),type:"success",message:e("common.successMessage")}),r.value={},c.push("/menu")}catch(s){console.log(s),u({title:e("common.error"),type:"error",message:e("common.errorMessage")})}};return(s,o)=>{var d,p;return b(),w("div",$,[t("div",j,[t("div",B,[t("button",{onClick:o[0]||(o[0]=n=>a(c).back()),class:"p-2 text-gray-500 rounded-full hover:text-gray-900 dark:text-gray-400 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-700"},[m(a(k),{class:"w-5 h-5"})]),t("h1",P,f(s.$t((p=(d=a(g))==null?void 0:d.meta)==null?void 0:p.title)),1)]),t("div",T,[t("button",{onClick:v,class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium h-9 px-4 py-2 bg-blue-600 text-white shadow-md transition-all duration-200 transform hover:bg-blue-700 hover:shadow-lg hover:scale-105 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"},[m(a(N),{class:"w-4 h-4 mr-2"}),_(" "+f(s.$t("common.actions.save")),1)])])]),t("div",U,[m(a(C),{schema:h.value,modelValue:r.value,"onUpdate:modelValue":o[1]||(o[1]=n=>r.value=n),form:i.value,"onUpdate:form":o[2]||(o[2]=n=>i.value=n)},null,8,["schema","modelValue","form"])])])}}});export{D as default};
@@ -1,20 +0,0 @@
1
- import{d as Re}from"./vuedraggable.umd-W_2WTF6i.js";import{_ as Le,o as w,a as F,s as Me,d as D,m as k,g as Z,t as b,v as B,h as O,y as Y,e as y,f as _,b as v,B as Ue,C as De,Y as te,Z as Ye,n as P,u as V,z as Be,w as j,N as ne,r as Pe,E as $e,D as me,$ as He,j as Ve,A as qe,p as je,P as Ke,H as Ge,l as Qe,J as ze}from"./index-yMJAVBXk.js";import{P as We}from"./pencil-CwnPP4IJ.js";import{T as Ze}from"./trash-2-BGXMNU3d.js";import{X as Xe}from"./x-D2t-wfBe.js";import{Z as Je,J as er,y as I}from"./index-DGweaj24.js";import{l as X,Q as ve}from"./index-DCW2e4Az.js";import{_ as he}from"./MonacoEditor.vue_vue_type_script_setup_true_lang-CjoEsC67.js";import{P as rr}from"./plus-DLR44m6p.js";import{S as tr}from"./save-FeDrOUOd.js";const nr={},ir={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function lr(e,r){return w(),F("svg",ir,[...r[0]||(r[0]=[Me('<circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle>',6)])])}const ar=Le(nr,[["render",lr]]),ur={key:0,class:"p-3 flex items-center gap-x-3 cursor-grab bg-gray-100 border border-gray-300 rounded-lg font-medium text-sm text-gray-800 dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-200"},or={key:0,class:"text-xs text-gray-500 dark:text-neutral-400 ml-2"},sr={key:1,class:"p-3 flex items-center gap-x-2 bg-gray-100 border border-gray-300 rounded-lg dark:bg-neutral-900 dark:border-neutral-700"},cr={class:"text-sm font-medium text-gray-800 dark:text-neutral-200 shrink-0"},fr=D({__name:"MenuItem",props:{title:{},value:{}},emits:["delete","update:value"],setup(e,{emit:r}){const t=e,i=r,n=k(!1),a=k(""),l=()=>{typeof t.value=="string"&&(a.value=t.value,n.value=!0)},u=()=>{typeof t.value=="string"&&(i("update:value",a.value),n.value=!1)},o=()=>{n.value=!1,a.value=""};return(s,d)=>(w(),F("div",{class:P([{"space-y-1":typeof s.value!="string"},"dark:bg-transparent"])},[n.value?(w(),F("div",sr,[v("span",cr,b(s.title)+":",1),Ue(v("input",{"onUpdate:modelValue":d[1]||(d[1]=m=>a.value=m),onKeyup:[te(u,["enter"]),te(o,["esc"])],onBlur:u,class:"flex-1 px-2 py-1 text-sm border border-gray-300 rounded dark:bg-neutral-800 dark:border-neutral-600 dark:text-neutral-200 focus:outline-none focus:ring-2 focus:ring-blue-500",type:"text",placeholder:"/link"},null,544),[[De,a.value]]),v("button",{onClick:Y(u,["stop"]),class:"shrink-0 p-1 text-green-600 dark:text-green-400 hover:bg-green-50 dark:hover:bg-green-900/20 rounded",title:"Save"},[_(y(Ye),{class:"size-4"})]),v("button",{onClick:Y(o,["stop"]),class:"shrink-0 p-1 text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20 rounded",title:"Cancel"},[_(y(Xe),{class:"size-4"})])])):(w(),F("div",ur,[Z(b(s.title)+" ",1),typeof s.value=="string"?(w(),F("span",or,b(s.value),1)):B("",!0),typeof s.value=="string"?(w(),O(y(We),{key:1,class:"shrink-0 size-4 ml-auto text-gray-500 dark:text-neutral-500 cursor-pointer hover:text-blue-600 dark:hover:text-blue-400",onClick:Y(l,["stop"])})):B("",!0),_(y(Ze),{class:"shrink-0 size-4 text-gray-500 dark:text-neutral-500 cursor-pointer hover:text-red-600 dark:hover:text-red-400",onClick:d[0]||(d[0]=Y(m=>i("delete"),["stop"]))}),_(ar,{class:"shrink-0 size-4 cursor-pointer text-gray-500 dark:text-neutral-500"})]))],2))}}),dr={class:"space-y-1"},pr=D({__name:"MenuList",props:{list:{type:Array,default:()=>[]},inside:{type:Boolean,default:!1}},emits:["update:list","delete:item"],setup(e,{emit:r}){const{t}=V(),i=e,n=r,a=k([]);Be(()=>i.list,d=>{a.value=d?[...d]:[]},{immediate:!0,deep:!0});const l=()=>{n("update:list",a.value)},u=d=>{Je({title:t("builder.deleteTitle"),message:t("builder.deleteObject"),type:"error",onConfirm:()=>{n("update:list",a.value),n("delete:item",d)}})},o=(d,m)=>{d.value=m,ne(()=>{a.value=[...a.value],n("update:list",a.value)})},s=(d,m)=>{d.children=m,ne(()=>{a.value=[...a.value],n("update:list",a.value)})};return(d,m)=>{const c=Pe("MenuList",!0);return w(),O(y(Re),{tag:"ul",list:a.value,group:{name:"nested",pull:!0,put:!0},"item-key":"id",class:P(["nested-sortable space-y-1",{"ps-5 dark:bg-transparent":e.inside}]),onChange:l,onEnd:l},{item:j(({element:p})=>[v("div",dr,[_(fr,{title:p.title,value:p.value,onDelete:f=>u(p),"onUpdate:value":f=>o(p,f)},null,8,["title","value","onDelete","onUpdate:value"]),Array.isArray(p.children)?(w(),O(c,{key:0,list:p.children,inside:!0,"onUpdate:list":f=>s(p,f),"onDelete:item":u},null,8,["list","onUpdate:list"])):B("",!0)])]),_:1},8,["list","class"])}}}),mr={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},vr=D({__name:"AddNewItemInTree",props:{isOpen:{type:Boolean,required:!0},isOpenModifiers:{}},emits:$e(["addNewItem"],["update:isOpen"]),setup(e,{emit:r}){const{t}=V(),i=me(e,"isOpen"),n=k({}),a=r,l=k({}),u={title:{type:"text",label:t("menu.form.name"),required:!0,placeholder:t("menu.form.name"),validators:["required"]},value:{type:"text",label:t("menu.form.value"),required:!0,placeholder:t("menu.form.value"),validators:["required"]}},o=async()=>{if(await n.value.validate()){I({type:"warning",title:t("common.actions.warning"),message:t("menu.createMenuFailed")});return}a("addNewItem",l.value),l.value={}};return(s,d)=>(w(),O(y(er),{teleport:"#modal",visible:i.value,title:s.$t("menu.createMenu"),template:"default",closeClickBack:!1,onClose:d[3]||(d[3]=m=>i.value=!1)},{footer:j(()=>[v("div",mr,[v("button",{class:"inline-flex items-center px-3 py-2 text-sm text-black duration-300 border border-gray-200 rounded-lg gap-x-2 whitespace-nowrap hover:bg-gray-100",onClick:d[2]||(d[2]=m=>{i.value=!1,l.value={}})},b(s.$t("common.actions.cancel")),1),v("button",{onClick:o,class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300"},b(s.$t("common.actions.save")),1)])]),default:j(()=>[_(y(X),{form:n.value,"onUpdate:form":d[0]||(d[0]=m=>n.value=m),modelValue:l.value,"onUpdate:modelValue":d[1]||(d[1]=m=>l.value=m),schema:u},null,8,["form","modelValue"])]),_:1},8,["visible","title"]))}}),hr=D({__name:"MenuBody",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(e){ve["vs-input-monaco-editor"]=he;const{t:r}=V(),t=k(!1),i=k(null),n=me(e,"modelValue"),a=k({}),l=async c=>{try{if(await a.value.validate()){I({type:"warning",title:r("common.actions.warning"),message:r("menu.createMenuFailed")});return}t.value=!1,c.id=Math.random().toString(36).substr(2,9),c.children=[],n.value.items.unshift(c)}catch(p){console.log(p)}},u=k([{key:"name",title:r("common.title"),type:"text",placeholder:r("common.title"),required:!0,validators:["required"]},{key:"description",title:r("common.description"),type:"text",placeholder:r("common.description"),required:!0,validators:["required"]},{key:"locale",title:r("menu.form.language"),type:"select",placeholder:r("menu.form.language"),required:!0,options:[{text:"Ukrainian",id:"uk"},{text:"English",id:"en"}],validators:["required"]}]),o=c=>{let p=[];for(const f in c)typeof c[f]=="object"?p.push({title:f,value:"",id:Math.random().toString(36).substr(2,9),children:o(c[f])}):p.push({title:f,value:c[f],id:Math.random().toString(36).substr(2,9),children:[]});return p},s=c=>{n.value.items=c},d=c=>{m(n.value.items,c.id)};function m(c,p){for(let f=c.length-1;f>=0;f--){if(c[f].id===p)return c.splice(f,1),!0;if(c[f].children&&c[f].children.length&&m(c[f].children,p))return!0}return!1}return He(()=>{Array.isArray(n.value.items)||(n.value.items=o(n.value.items))}),(c,p)=>(w(),F(Ve,null,[_(y(X),{schema:u.value,modelValue:n.value,"onUpdate:modelValue":p[0]||(p[0]=f=>n.value=f),form:a.value,"onUpdate:form":p[1]||(p[1]=f=>a.value=f)},null,8,["schema","modelValue","form"]),v("button",{onClick:p[2]||(p[2]=f=>t.value=!0),class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium w-min ml-auto my-6 h-9 px-4 py-2 bg-blue-600 text-white shadow-md transition-all duration-200 transform hover:bg-blue-700 hover:shadow-lg hover:scale-105 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"},[_(y(rr),{class:"w-4 h-4 mr-2"}),Z(" "+b(c.$t("menu.createMenu")),1)]),_(vr,{isOpen:t.value,"onUpdate:isOpen":p[3]||(p[3]=f=>t.value=f),form:i.value,"onUpdate:form":p[4]||(p[4]=f=>i.value=f),onAddNewItem:l},null,8,["isOpen","form"]),_(pr,{class:"px-2",list:n.value.items,"onUpdate:list":s,"onDelete:item":d},null,8,["list"])],64))}});/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function ge(e){return typeof e>"u"||e===null}function gr(e){return typeof e=="object"&&e!==null}function xr(e){return Array.isArray(e)?e:ge(e)?[]:[e]}function yr(e,r){var t,i,n,a;if(r)for(a=Object.keys(r),t=0,i=a.length;t<i;t+=1)n=a[t],e[n]=r[n];return e}function wr(e,r){var t="",i;for(i=0;i<r;i+=1)t+=e;return t}function kr(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var _r=ge,Ar=gr,br=xr,Er=wr,Fr=kr,Cr=yr,C={isNothing:_r,isObject:Ar,toArray:br,repeat:Er,isNegativeZero:Fr,extend:Cr};function xe(e,r){var t="",i=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(t+='in "'+e.mark.name+'" '),t+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!r&&e.mark.snippet&&(t+=`
2
-
3
- `+e.mark.snippet),i+" "+t):i}function R(e,r){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=r,this.message=xe(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}R.prototype=Object.create(Error.prototype);R.prototype.constructor=R;R.prototype.toString=function(r){return this.name+": "+xe(this,r)};var A=R,Sr=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Nr=["scalar","sequence","mapping"];function Or(e){var r={};return e!==null&&Object.keys(e).forEach(function(t){e[t].forEach(function(i){r[String(i)]=t})}),r}function Tr(e,r){if(r=r||{},Object.keys(r).forEach(function(t){if(Sr.indexOf(t)===-1)throw new A('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.options=r,this.tag=e,this.kind=r.kind||null,this.resolve=r.resolve||function(){return!0},this.construct=r.construct||function(t){return t},this.instanceOf=r.instanceOf||null,this.predicate=r.predicate||null,this.represent=r.represent||null,this.representName=r.representName||null,this.defaultStyle=r.defaultStyle||null,this.multi=r.multi||!1,this.styleAliases=Or(r.styleAliases||null),Nr.indexOf(this.kind)===-1)throw new A('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var g=Tr;function ie(e,r){var t=[];return e[r].forEach(function(i){var n=t.length;t.forEach(function(a,l){a.tag===i.tag&&a.kind===i.kind&&a.multi===i.multi&&(n=l)}),t[n]=i}),t}function Ir(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},r,t;function i(n){n.multi?(e.multi[n.kind].push(n),e.multi.fallback.push(n)):e[n.kind][n.tag]=e.fallback[n.tag]=n}for(r=0,t=arguments.length;r<t;r+=1)arguments[r].forEach(i);return e}function K(e){return this.extend(e)}K.prototype.extend=function(r){var t=[],i=[];if(r instanceof g)i.push(r);else if(Array.isArray(r))i=i.concat(r);else if(r&&(Array.isArray(r.implicit)||Array.isArray(r.explicit)))r.implicit&&(t=t.concat(r.implicit)),r.explicit&&(i=i.concat(r.explicit));else throw new A("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");t.forEach(function(a){if(!(a instanceof g))throw new A("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new A("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new A("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),i.forEach(function(a){if(!(a instanceof g))throw new A("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var n=Object.create(K.prototype);return n.implicit=(this.implicit||[]).concat(t),n.explicit=(this.explicit||[]).concat(i),n.compiledImplicit=ie(n,"implicit"),n.compiledExplicit=ie(n,"explicit"),n.compiledTypeMap=Ir(n.compiledImplicit,n.compiledExplicit),n};var Rr=K,Lr=new g("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),Mr=new g("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),Ur=new g("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),Dr=new Rr({explicit:[Lr,Mr,Ur]});function Yr(e){if(e===null)return!0;var r=e.length;return r===1&&e==="~"||r===4&&(e==="null"||e==="Null"||e==="NULL")}function Br(){return null}function Pr(e){return e===null}var $r=new g("tag:yaml.org,2002:null",{kind:"scalar",resolve:Yr,construct:Br,predicate:Pr,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function Hr(e){if(e===null)return!1;var r=e.length;return r===4&&(e==="true"||e==="True"||e==="TRUE")||r===5&&(e==="false"||e==="False"||e==="FALSE")}function Vr(e){return e==="true"||e==="True"||e==="TRUE"}function qr(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var jr=new g("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Hr,construct:Vr,predicate:qr,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function Kr(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function Gr(e){return 48<=e&&e<=55}function Qr(e){return 48<=e&&e<=57}function zr(e){if(e===null)return!1;var r=e.length,t=0,i=!1,n;if(!r)return!1;if(n=e[t],(n==="-"||n==="+")&&(n=e[++t]),n==="0"){if(t+1===r)return!0;if(n=e[++t],n==="b"){for(t++;t<r;t++)if(n=e[t],n!=="_"){if(n!=="0"&&n!=="1")return!1;i=!0}return i&&n!=="_"}if(n==="x"){for(t++;t<r;t++)if(n=e[t],n!=="_"){if(!Kr(e.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}if(n==="o"){for(t++;t<r;t++)if(n=e[t],n!=="_"){if(!Gr(e.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}}if(n==="_")return!1;for(;t<r;t++)if(n=e[t],n!=="_"){if(!Qr(e.charCodeAt(t)))return!1;i=!0}return!(!i||n==="_")}function Wr(e){var r=e,t=1,i;if(r.indexOf("_")!==-1&&(r=r.replace(/_/g,"")),i=r[0],(i==="-"||i==="+")&&(i==="-"&&(t=-1),r=r.slice(1),i=r[0]),r==="0")return 0;if(i==="0"){if(r[1]==="b")return t*parseInt(r.slice(2),2);if(r[1]==="x")return t*parseInt(r.slice(2),16);if(r[1]==="o")return t*parseInt(r.slice(2),8)}return t*parseInt(r,10)}function Zr(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!C.isNegativeZero(e)}var Xr=new g("tag:yaml.org,2002:int",{kind:"scalar",resolve:zr,construct:Wr,predicate:Zr,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Jr=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function et(e){return!(e===null||!Jr.test(e)||e[e.length-1]==="_")}function rt(e){var r,t;return r=e.replace(/_/g,"").toLowerCase(),t=r[0]==="-"?-1:1,"+-".indexOf(r[0])>=0&&(r=r.slice(1)),r===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:r===".nan"?NaN:t*parseFloat(r,10)}var tt=/^[-+]?[0-9]+e/;function nt(e,r){var t;if(isNaN(e))switch(r){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(r){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(r){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(C.isNegativeZero(e))return"-0.0";return t=e.toString(10),tt.test(t)?t.replace("e",".e"):t}function it(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||C.isNegativeZero(e))}var lt=new g("tag:yaml.org,2002:float",{kind:"scalar",resolve:et,construct:rt,predicate:it,represent:nt,defaultStyle:"lowercase"}),at=Dr.extend({implicit:[$r,jr,Xr,lt]}),ut=at,ye=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),we=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function ot(e){return e===null?!1:ye.exec(e)!==null||we.exec(e)!==null}function st(e){var r,t,i,n,a,l,u,o=0,s=null,d,m,c;if(r=ye.exec(e),r===null&&(r=we.exec(e)),r===null)throw new Error("Date resolve error");if(t=+r[1],i=+r[2]-1,n=+r[3],!r[4])return new Date(Date.UTC(t,i,n));if(a=+r[4],l=+r[5],u=+r[6],r[7]){for(o=r[7].slice(0,3);o.length<3;)o+="0";o=+o}return r[9]&&(d=+r[10],m=+(r[11]||0),s=(d*60+m)*6e4,r[9]==="-"&&(s=-s)),c=new Date(Date.UTC(t,i,n,a,l,u,o)),s&&c.setTime(c.getTime()-s),c}function ct(e){return e.toISOString()}var ft=new g("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:ot,construct:st,instanceOf:Date,represent:ct});function dt(e){return e==="<<"||e===null}var pt=new g("tag:yaml.org,2002:merge",{kind:"scalar",resolve:dt}),J=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
4
- \r`;function mt(e){if(e===null)return!1;var r,t,i=0,n=e.length,a=J;for(t=0;t<n;t++)if(r=a.indexOf(e.charAt(t)),!(r>64)){if(r<0)return!1;i+=6}return i%8===0}function vt(e){var r,t,i=e.replace(/[\r\n=]/g,""),n=i.length,a=J,l=0,u=[];for(r=0;r<n;r++)r%4===0&&r&&(u.push(l>>16&255),u.push(l>>8&255),u.push(l&255)),l=l<<6|a.indexOf(i.charAt(r));return t=n%4*6,t===0?(u.push(l>>16&255),u.push(l>>8&255),u.push(l&255)):t===18?(u.push(l>>10&255),u.push(l>>2&255)):t===12&&u.push(l>>4&255),new Uint8Array(u)}function ht(e){var r="",t=0,i,n,a=e.length,l=J;for(i=0;i<a;i++)i%3===0&&i&&(r+=l[t>>18&63],r+=l[t>>12&63],r+=l[t>>6&63],r+=l[t&63]),t=(t<<8)+e[i];return n=a%3,n===0?(r+=l[t>>18&63],r+=l[t>>12&63],r+=l[t>>6&63],r+=l[t&63]):n===2?(r+=l[t>>10&63],r+=l[t>>4&63],r+=l[t<<2&63],r+=l[64]):n===1&&(r+=l[t>>2&63],r+=l[t<<4&63],r+=l[64],r+=l[64]),r}function gt(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var xt=new g("tag:yaml.org,2002:binary",{kind:"scalar",resolve:mt,construct:vt,predicate:gt,represent:ht}),yt=Object.prototype.hasOwnProperty,wt=Object.prototype.toString;function kt(e){if(e===null)return!0;var r=[],t,i,n,a,l,u=e;for(t=0,i=u.length;t<i;t+=1){if(n=u[t],l=!1,wt.call(n)!=="[object Object]")return!1;for(a in n)if(yt.call(n,a))if(!l)l=!0;else return!1;if(!l)return!1;if(r.indexOf(a)===-1)r.push(a);else return!1}return!0}function _t(e){return e!==null?e:[]}var At=new g("tag:yaml.org,2002:omap",{kind:"sequence",resolve:kt,construct:_t}),bt=Object.prototype.toString;function Et(e){if(e===null)return!0;var r,t,i,n,a,l=e;for(a=new Array(l.length),r=0,t=l.length;r<t;r+=1){if(i=l[r],bt.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;a[r]=[n[0],i[n[0]]]}return!0}function Ft(e){if(e===null)return[];var r,t,i,n,a,l=e;for(a=new Array(l.length),r=0,t=l.length;r<t;r+=1)i=l[r],n=Object.keys(i),a[r]=[n[0],i[n[0]]];return a}var Ct=new g("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Et,construct:Ft}),St=Object.prototype.hasOwnProperty;function Nt(e){if(e===null)return!0;var r,t=e;for(r in t)if(St.call(t,r)&&t[r]!==null)return!1;return!0}function Ot(e){return e!==null?e:{}}var Tt=new g("tag:yaml.org,2002:set",{kind:"mapping",resolve:Nt,construct:Ot}),It=ut.extend({implicit:[ft,pt],explicit:[xt,At,Ct,Tt]});function le(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?`
5
- `:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"…":e===95?" ":e===76?"\u2028":e===80?"\u2029":""}var Rt=new Array(256),Lt=new Array(256);for(var S=0;S<256;S++)Rt[S]=le(S)?1:0,Lt[S]=le(S);var ke=Object.prototype.toString,_e=Object.prototype.hasOwnProperty,ee=65279,Mt=9,L=10,Ut=13,Dt=32,Yt=33,Bt=34,G=35,Pt=37,$t=38,Ht=39,Vt=42,Ae=44,qt=45,$=58,jt=61,Kt=62,Gt=63,Qt=64,be=91,Ee=93,zt=96,Fe=123,Wt=124,Ce=125,x={};x[0]="\\0";x[7]="\\a";x[8]="\\b";x[9]="\\t";x[10]="\\n";x[11]="\\v";x[12]="\\f";x[13]="\\r";x[27]="\\e";x[34]='\\"';x[92]="\\\\";x[133]="\\N";x[160]="\\_";x[8232]="\\L";x[8233]="\\P";var Zt=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],Xt=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function Jt(e,r){var t,i,n,a,l,u,o;if(r===null)return{};for(t={},i=Object.keys(r),n=0,a=i.length;n<a;n+=1)l=i[n],u=String(r[l]),l.slice(0,2)==="!!"&&(l="tag:yaml.org,2002:"+l.slice(2)),o=e.compiledTypeMap.fallback[l],o&&_e.call(o.styleAliases,u)&&(u=o.styleAliases[u]),t[l]=u;return t}function en(e){var r,t,i;if(r=e.toString(16).toUpperCase(),e<=255)t="x",i=2;else if(e<=65535)t="u",i=4;else if(e<=4294967295)t="U",i=8;else throw new A("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+t+C.repeat("0",i-r.length)+r}var rn=1,M=2;function tn(e){this.schema=e.schema||It,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=C.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=Jt(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.quotingType=e.quotingType==='"'?M:rn,this.forceQuotes=e.forceQuotes||!1,this.replacer=typeof e.replacer=="function"?e.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function ae(e,r){for(var t=C.repeat(" ",r),i=0,n=-1,a="",l,u=e.length;i<u;)n=e.indexOf(`
6
- `,i),n===-1?(l=e.slice(i),i=u):(l=e.slice(i,n+1),i=n+1),l.length&&l!==`
7
- `&&(a+=t),a+=l;return a}function Q(e,r){return`
8
- `+C.repeat(" ",e.indent*r)}function nn(e,r){var t,i,n;for(t=0,i=e.implicitTypes.length;t<i;t+=1)if(n=e.implicitTypes[t],n.resolve(r))return!0;return!1}function H(e){return e===Dt||e===Mt}function U(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==ee||65536<=e&&e<=1114111}function ue(e){return U(e)&&e!==ee&&e!==Ut&&e!==L}function oe(e,r,t){var i=ue(e),n=i&&!H(e);return(t?i:i&&e!==Ae&&e!==be&&e!==Ee&&e!==Fe&&e!==Ce)&&e!==G&&!(r===$&&!n)||ue(r)&&!H(r)&&e===G||r===$&&n}function ln(e){return U(e)&&e!==ee&&!H(e)&&e!==qt&&e!==Gt&&e!==$&&e!==Ae&&e!==be&&e!==Ee&&e!==Fe&&e!==Ce&&e!==G&&e!==$t&&e!==Vt&&e!==Yt&&e!==Wt&&e!==jt&&e!==Kt&&e!==Ht&&e!==Bt&&e!==Pt&&e!==Qt&&e!==zt}function an(e){return!H(e)&&e!==$}function T(e,r){var t=e.charCodeAt(r),i;return t>=55296&&t<=56319&&r+1<e.length&&(i=e.charCodeAt(r+1),i>=56320&&i<=57343)?(t-55296)*1024+i-56320+65536:t}function Se(e){var r=/^\n* /;return r.test(e)}var Ne=1,z=2,Oe=3,Te=4,N=5;function un(e,r,t,i,n,a,l,u){var o,s=0,d=null,m=!1,c=!1,p=i!==-1,f=-1,h=ln(T(e,0))&&an(T(e,e.length-1));if(r||l)for(o=0;o<e.length;s>=65536?o+=2:o++){if(s=T(e,o),!U(s))return N;h=h&&oe(s,d,u),d=s}else{for(o=0;o<e.length;s>=65536?o+=2:o++){if(s=T(e,o),s===L)m=!0,p&&(c=c||o-f-1>i&&e[f+1]!==" ",f=o);else if(!U(s))return N;h=h&&oe(s,d,u),d=s}c=c||p&&o-f-1>i&&e[f+1]!==" "}return!m&&!c?h&&!l&&!n(e)?Ne:a===M?N:z:t>9&&Se(e)?N:l?a===M?N:z:c?Te:Oe}function on(e,r,t,i,n){e.dump=function(){if(r.length===0)return e.quotingType===M?'""':"''";if(!e.noCompatMode&&(Zt.indexOf(r)!==-1||Xt.test(r)))return e.quotingType===M?'"'+r+'"':"'"+r+"'";var a=e.indent*Math.max(1,t),l=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),u=i||e.flowLevel>-1&&t>=e.flowLevel;function o(s){return nn(e,s)}switch(un(r,u,e.indent,l,o,e.quotingType,e.forceQuotes&&!i,n)){case Ne:return r;case z:return"'"+r.replace(/'/g,"''")+"'";case Oe:return"|"+se(r,e.indent)+ce(ae(r,a));case Te:return">"+se(r,e.indent)+ce(ae(sn(r,l),a));case N:return'"'+cn(r)+'"';default:throw new A("impossible error: invalid scalar style")}}()}function se(e,r){var t=Se(e)?String(r):"",i=e[e.length-1]===`
9
- `,n=i&&(e[e.length-2]===`
10
- `||e===`
11
- `),a=n?"+":i?"":"-";return t+a+`
12
- `}function ce(e){return e[e.length-1]===`
13
- `?e.slice(0,-1):e}function sn(e,r){for(var t=/(\n+)([^\n]*)/g,i=function(){var s=e.indexOf(`
14
- `);return s=s!==-1?s:e.length,t.lastIndex=s,fe(e.slice(0,s),r)}(),n=e[0]===`
15
- `||e[0]===" ",a,l;l=t.exec(e);){var u=l[1],o=l[2];a=o[0]===" ",i+=u+(!n&&!a&&o!==""?`
16
- `:"")+fe(o,r),n=a}return i}function fe(e,r){if(e===""||e[0]===" ")return e;for(var t=/ [^ ]/g,i,n=0,a,l=0,u=0,o="";i=t.exec(e);)u=i.index,u-n>r&&(a=l>n?l:u,o+=`
17
- `+e.slice(n,a),n=a+1),l=u;return o+=`
18
- `,e.length-n>r&&l>n?o+=e.slice(n,l)+`
19
- `+e.slice(l+1):o+=e.slice(n),o.slice(1)}function cn(e){for(var r="",t=0,i,n=0;n<e.length;t>=65536?n+=2:n++)t=T(e,n),i=x[t],!i&&U(t)?(r+=e[n],t>=65536&&(r+=e[n+1])):r+=i||en(t);return r}function fn(e,r,t){var i="",n=e.tag,a,l,u;for(a=0,l=t.length;a<l;a+=1)u=t[a],e.replacer&&(u=e.replacer.call(t,String(a),u)),(E(e,r,u,!1,!1)||typeof u>"u"&&E(e,r,null,!1,!1))&&(i!==""&&(i+=","+(e.condenseFlow?"":" ")),i+=e.dump);e.tag=n,e.dump="["+i+"]"}function de(e,r,t,i){var n="",a=e.tag,l,u,o;for(l=0,u=t.length;l<u;l+=1)o=t[l],e.replacer&&(o=e.replacer.call(t,String(l),o)),(E(e,r+1,o,!0,!0,!1,!0)||typeof o>"u"&&E(e,r+1,null,!0,!0,!1,!0))&&((!i||n!=="")&&(n+=Q(e,r)),e.dump&&L===e.dump.charCodeAt(0)?n+="-":n+="- ",n+=e.dump);e.tag=a,e.dump=n||"[]"}function dn(e,r,t){var i="",n=e.tag,a=Object.keys(t),l,u,o,s,d;for(l=0,u=a.length;l<u;l+=1)d="",i!==""&&(d+=", "),e.condenseFlow&&(d+='"'),o=a[l],s=t[o],e.replacer&&(s=e.replacer.call(t,o,s)),E(e,r,o,!1,!1)&&(e.dump.length>1024&&(d+="? "),d+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),E(e,r,s,!1,!1)&&(d+=e.dump,i+=d));e.tag=n,e.dump="{"+i+"}"}function pn(e,r,t,i){var n="",a=e.tag,l=Object.keys(t),u,o,s,d,m,c;if(e.sortKeys===!0)l.sort();else if(typeof e.sortKeys=="function")l.sort(e.sortKeys);else if(e.sortKeys)throw new A("sortKeys must be a boolean or a function");for(u=0,o=l.length;u<o;u+=1)c="",(!i||n!=="")&&(c+=Q(e,r)),s=l[u],d=t[s],e.replacer&&(d=e.replacer.call(t,s,d)),E(e,r+1,s,!0,!0,!0)&&(m=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,m&&(e.dump&&L===e.dump.charCodeAt(0)?c+="?":c+="? "),c+=e.dump,m&&(c+=Q(e,r)),E(e,r+1,d,!0,m)&&(e.dump&&L===e.dump.charCodeAt(0)?c+=":":c+=": ",c+=e.dump,n+=c));e.tag=a,e.dump=n||"{}"}function pe(e,r,t){var i,n,a,l,u,o;for(n=t?e.explicitTypes:e.implicitTypes,a=0,l=n.length;a<l;a+=1)if(u=n[a],(u.instanceOf||u.predicate)&&(!u.instanceOf||typeof r=="object"&&r instanceof u.instanceOf)&&(!u.predicate||u.predicate(r))){if(t?u.multi&&u.representName?e.tag=u.representName(r):e.tag=u.tag:e.tag="?",u.represent){if(o=e.styleMap[u.tag]||u.defaultStyle,ke.call(u.represent)==="[object Function]")i=u.represent(r,o);else if(_e.call(u.represent,o))i=u.represent[o](r,o);else throw new A("!<"+u.tag+'> tag resolver accepts not "'+o+'" style');e.dump=i}return!0}return!1}function E(e,r,t,i,n,a,l){e.tag=null,e.dump=t,pe(e,t,!1)||pe(e,t,!0);var u=ke.call(e.dump),o=i,s;i&&(i=e.flowLevel<0||e.flowLevel>r);var d=u==="[object Object]"||u==="[object Array]",m,c;if(d&&(m=e.duplicates.indexOf(t),c=m!==-1),(e.tag!==null&&e.tag!=="?"||c||e.indent!==2&&r>0)&&(n=!1),c&&e.usedDuplicates[m])e.dump="*ref_"+m;else{if(d&&c&&!e.usedDuplicates[m]&&(e.usedDuplicates[m]=!0),u==="[object Object]")i&&Object.keys(e.dump).length!==0?(pn(e,r,e.dump,n),c&&(e.dump="&ref_"+m+e.dump)):(dn(e,r,e.dump),c&&(e.dump="&ref_"+m+" "+e.dump));else if(u==="[object Array]")i&&e.dump.length!==0?(e.noArrayIndent&&!l&&r>0?de(e,r-1,e.dump,n):de(e,r,e.dump,n),c&&(e.dump="&ref_"+m+e.dump)):(fn(e,r,e.dump),c&&(e.dump="&ref_"+m+" "+e.dump));else if(u==="[object String]")e.tag!=="?"&&on(e,e.dump,r,a,o);else{if(u==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new A("unacceptable kind of an object to dump "+u)}e.tag!==null&&e.tag!=="?"&&(s=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?s="!"+s:s.slice(0,18)==="tag:yaml.org,2002:"?s="!!"+s.slice(18):s="!<"+s+">",e.dump=s+" "+e.dump)}return!0}function mn(e,r){var t=[],i=[],n,a;for(W(e,t,i),n=0,a=i.length;n<a;n+=1)r.duplicates.push(t[i[n]]);r.usedDuplicates=new Array(a)}function W(e,r,t){var i,n,a;if(e!==null&&typeof e=="object")if(n=r.indexOf(e),n!==-1)t.indexOf(n)===-1&&t.push(n);else if(r.push(e),Array.isArray(e))for(n=0,a=e.length;n<a;n+=1)W(e[n],r,t);else for(i=Object.keys(e),n=0,a=i.length;n<a;n+=1)W(e[i[n]],r,t)}function vn(e,r){r=r||{};var t=new tn(r);t.noRefs||mn(e,t);var i=e;return t.replacer&&(i=t.replacer.call({"":i},"",i)),E(t,0,i,!0,!0)?t.dump+`
20
- `:""}var hn=vn,gn={dump:hn},xn=gn.dump;const yn={class:"space-y-6 max-w-7xl mx-auto"},wn={class:"flex items-center justify-between"},kn={class:"flex items-center gap-4"},_n={class:"flex items-center gap-2"},An={class:"text-2xl font-semibold text-gray-900 dark:text-white"},bn=["href","title"],En={class:"flex items-center space-x-3"},Fn={key:0,class:"max-w-[1000px] flex flex-col"},Cn={class:"flex ml-2 mb-6 w-min border border-gray-200 dark:border-gray-700 rounded-full overflow-hidden"},Yn=D({__name:"MenuItemPage",setup(e){ve["vs-input-monaco-editor"]=he;const{t:r,locale:t}=V(),i=Qe(),n=ze(),a=qe(()=>[{key:"name",title:r("menu.form.name"),type:"text",placeholder:r("menu.form.name"),required:!0,validators:["required"]},{key:"description",title:r("menu.form.description"),type:"text",placeholder:r("menu.form.description"),required:!0,validators:["required"]},{key:"locale",title:r("menu.form.language"),type:"select",placeholder:r("menu.form.language"),options:[{text:"Ukrainian",id:"uk"},{text:"English",id:"en"}],required:!0,validators:["required"]},{key:"content",title:r("menu.form.content"),type:"monaco-editor",height:"500px",language:"yaml",theme:"vs-light"}]),l=k(null),u=k({}),o=k(!1),s=k(!1),d=p=>{const f={};for(const h of p){const{title:re,value:Ie,children:q}=h;q&&q.length>0?f[re]=d(q):f[re]=Ie}return f},m=async()=>{let p={...l.value||{}};if(await u.value.validate()){I({type:"warning",title:r("common.actions.warning"),message:r("menu.createMenuFailed")});return}Array.isArray(p.items)&&(p.items=d(p.items),p.content=xn(p.items));try{await fetch(`/api/cms-menu/${n.params.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(p)}),I({title:r("menu.menuUpdated"),type:"success",message:r("menu.menuUpdated")}),i.push("/menu")}catch{I({title:r("menu.menuUpdateError"),type:"error",message:r("menu.menuUpdateError")})}};return je(async()=>{try{const f=await(await fetch(`/api/cms-menu/${n.params.id}`)).json();l.value=f,o.value=!0}catch{o.value=!1}}),(p,f)=>(w(),F("div",yn,[v("div",wn,[v("div",kn,[v("button",{onClick:f[0]||(f[0]=h=>y(i).back()),class:"p-2 text-gray-500 rounded-full hover:text-gray-900 dark:text-gray-400 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-700"},[_(y(Ke),{class:"w-5 h-5"})]),v("div",_n,[v("h1",An,b(p.$t("menu.editMenu")),1),v("a",{href:`https://cms.opengis.info/${y(t)}/guides/menu/`,target:"_blank",title:p.$t("guide.menu")},[_(y(Ge),{class:"w-5 h-5"})],8,bn)])]),v("div",En,[v("button",{onClick:m,class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium h-9 px-4 py-2 bg-blue-600 text-white shadow-md transition-all duration-200 transform hover:bg-blue-700 hover:shadow-lg hover:scale-105 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"},[_(y(tr),{class:"w-4 h-4 mr-2"}),Z(" "+b(p.$t("common.actions.save")),1)])])]),o.value?(w(),F("div",Fn,[v("div",Cn,[v("button",{onClick:f[1]||(f[1]=h=>s.value=!1),class:P([{"bg-gray-200 text-gray-900 dark:bg-gray-700 dark:text-white":!s.value},"text-gray-500 hover:text-gray-900 dark:hover:text-white hover:bg-gray-200 dark:hover:bg-gray-700 whitespace-nowrap px-5 py-2 w-[200px] text-sm font-medium"])},b(p.$t("menu.textEditor")),3),v("button",{onClick:f[2]||(f[2]=h=>s.value=!0),class:P([{"bg-gray-200 text-gray-900 dark:bg-gray-700 dark:text-white":s.value},"text-gray-500 hover:text-gray-900 dark:hover:text-white hover:bg-gray-200 dark:hover:bg-gray-700 whitespace-nowrap px-5 py-2 w-[200px] text-sm font-medium"])},b(p.$t("menu.listTree")),3)]),s.value?(w(),O(hr,{key:0,modelValue:l.value,"onUpdate:modelValue":f[3]||(f[3]=h=>l.value=h)},null,8,["modelValue"])):(w(),O(y(X),{key:1,schema:a.value,modelValue:l.value,"onUpdate:modelValue":f[4]||(f[4]=h=>l.value=h),form:u.value,"onUpdate:form":f[5]||(f[5]=h=>u.value=h)},null,8,["schema","modelValue","form"]))])):B("",!0)]))}});export{Yn as default};
@@ -1 +0,0 @@
1
- import{d as E,u as S,m as r,p as j,o as f,a as _,b as n,t as u,e as c,f as l,H as V,w as N,g as B,v as F,l as L,r as P}from"./index-yMJAVBXk.js";import{_ as q}from"./UniversalTable.vue_vue_type_script_setup_true_lang-BQ5m4aZd.js";import{D as H}from"./index-BIp7eSXk.js";import{y as w}from"./index-DGweaj24.js";import{P as M}from"./plus-DLR44m6p.js";import"./eye-Dijywc6g.js";import"./file-B_duymIT.js";import"./pencil-CwnPP4IJ.js";import"./trash-2-BGXMNU3d.js";import"./square-pen-xVs4e8Yb.js";const T={class:"space-y-6 max-w-7xl mx-auto"},A={class:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"},I={class:"flex items-center gap-2"},O={class:"text-3xl font-bold text-slate-800 dark:text-slate-100 mb-2"},Q=["href","title"],R={class:"text-slate-600 dark:text-slate-300"},z={class:"overflow-hidden bg-white border border-gray-200 rounded-lg shadow-sm dark:bg-gray-800 dark:border-gray-700"},G={key:0,class:"p-4 border-b border-gray-200 sm:p-6 dark:border-gray-700"},re=E({__name:"MenuPage",setup(J){const{t:o,locale:g}=S(),v=L(),y=r(""),d=r([]),i=r([]),x=r(""),p=r([{name:"name",title:o("menu.form.name"),type:"text"},{name:"description",title:o("menu.form.description"),type:"text"},{name:"locale",title:o("menu.form.language"),type:"select",data:[{text:"uk",id:"uk"},{text:"en",id:"en"}]}]),h=async()=>{const t=await(await fetch("/api/cms-menu")).json(),s=t.rows;d.value=s;const a=(t.filters||[]).map(m=>{const{extra:K,title:U,...C}=m;return C});i.value=a},b=e=>{v.push(`/menu/${e==null?void 0:e.menu_id}`)},k=async e=>{try{await fetch(`/api/cms-menu/${e==null?void 0:e.menu_id}`,{method:"DELETE"}),await w({title:o("menu.menuDeleted"),type:"success",message:o("menu.menuDeleted")}),await h()}catch{w({title:o("menu.menuDeleteError"),type:"error",message:o("menu.menuDeleteError")})}},D=(e,t)=>{if(!t)return!0;const s=t.toLowerCase();return p.value.some(a=>{const m=e[a.name];return m&&m.toString().toLowerCase().includes(s)})},$=e=>{const t=Object.entries(e==null?void 0:e.data).filter(([,s])=>s!=null).map(([s,a])=>`${s}=${a}`).join("|");x.value=t};return j(h),(e,t)=>{var a;const s=P("router-link");return f(),_("div",T,[n("div",A,[n("div",null,[n("div",I,[n("h1",O,u(e.$t("menu.title")),1),n("a",{href:`https://cms.opengis.info/${c(g)}/guides/menu/`,target:"_blank",title:e.$t("guide.menu")},[l(c(V),{class:"w-5 h-5"})],8,Q)]),n("p",R,u(e.$t("menu.description")),1)]),l(s,{to:"/menu/create",class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium h-9 px-4 py-2 bg-blue-600 text-white shadow-md transition-all duration-200 transform hover:bg-blue-700 hover:shadow-lg hover:scale-105"},{default:N(()=>[l(c(M),{class:"w-4 h-4 mr-2"}),B(" "+u(e.$t("menu.menuAdd")),1)]),_:1})]),n("div",z,[((a=i.value)==null?void 0:a.length)>0?(f(),_("div",G,[l(c(H),{schema:i.value,view:"inline",onChange:$},null,8,["schema"])])):F("",!0),l(q,{rows:d.value,columns:p.value,query:y.value,filterFn:D,onEdit:b,onDelete:k},null,8,["rows","columns","query"])])])}}});export{re as default};
@@ -1,3 +0,0 @@
1
- import{d as u,E as m,D as c,m as f,p as h,z as d,G as p,o as g,a as v,S as w}from"./index-yMJAVBXk.js";async function M(){if(window.monaco)return window.monaco;const i="https://cdn.jsdelivr.net/npm/monaco-editor@0.45.0/min";return window.require||(window.require={paths:{vs:`${i}/vs`}},await new Promise((t,l)=>{const a=document.createElement("script");a.src=`${i}/vs/loader.min.js`,a.onload=()=>t(),a.onerror=l,document.head.appendChild(a)})),new Promise(t=>{window.require(["vs/editor/editor.main"],()=>t(window.monaco))})}const C=u({__name:"MonacoEditor",props:m({language:{default:"javascript"},theme:{default:"vs-dark"},width:{default:"100%"},height:{default:"100%"},options:{default:()=>({minimap:{enabled:!1}})}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(i){const t=i,l=c(i,"modelValue"),a=f(null);let o=null,r=null;return h(async()=>{var e;if(a.value)try{r=await M();const n=((e=l.value)==null?void 0:e.replace(/\\n/g,`
2
- `))||"";o=r.editor.create(a.value,{value:n,language:t.language,theme:t.theme,automaticLayout:!0,...t.options}),o.onDidChangeModelContent(()=>{const s=(o==null?void 0:o.getValue())||"";l.value=s})}catch(n){console.error("Failed to load Monaco Editor:",n)}}),d(()=>l.value,e=>{if(o){const n=(e==null?void 0:e.replace(/\\n/g,`
3
- `))||"";n!==o.getValue()&&o.setValue(n)}},{immediate:!0}),d(()=>t.language,e=>{o&&e&&r&&r.editor.setModelLanguage(o.getModel(),e)}),d(()=>t.theme,e=>{o&&e&&r&&r.editor.setTheme(e)}),p(()=>{o&&(o.dispose(),o=null)}),(e,n)=>(g(),v("div",{ref_key:"editorContainer",ref:a,style:w({width:e.width,height:e.height})},null,4))}});export{C as _};
@@ -1 +0,0 @@
1
- import{d as $,u as C,m as u,A as P,p as j,o as a,a as g,b as e,t as s,f as y,e as i,g as B,B as M,C as U,j as f,k,n as L,h as d,Z as p}from"./index-yMJAVBXk.js";import{y as w}from"./index-DGweaj24.js";import{u as S}from"./vue.-sixQ7xP-CUPNuJcq.js";import{P as A}from"./plus-DLR44m6p.js";import{S as V}from"./search-C4-fHihx.js";import{X as m}from"./x-D2t-wfBe.js";const D={class:"space-y-6 w-full max-w-7xl mx-auto"},N={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},z={class:"text-3xl font-bold text-slate-800 dark:text-white mb-2"},I={class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium h-9 px-4 py-2 bg-blue-600 text-white shadow-md transition-all duration-200 transform hover:bg-blue-700 hover:shadow-lg hover:scale-105 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"},T={class:"grid grid-cols-1 md:grid-cols-12 gap-6"},E={class:"md:col-span-8 bg-white dark:bg-gray-800 shadow-sm rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden"},F={class:"p-4 sm:p-6 border-b border-gray-200 dark:border-gray-700"},H={class:"flex items-center"},Q={class:"relative flex-1"},R={class:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},X=["placeholder"],Z={class:"overflow-x-auto"},q={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-700"},G={class:"bg-gray-50 dark:bg-gray-750"},J={scope:"col",class:"px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider"},K={scope:"col",class:"px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider"},O={scope:"col",class:"px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider"},W={scope:"col",class:"px-6 py-3 text-right text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider"},Y={class:"bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700"},ee={class:"px-6 py-4 whitespace-nowrap"},te={class:"flex items-center"},se={class:"h-10 w-10 rounded-full bg-sky-100 dark:bg-sky-900 flex items-center justify-center text-sky-600 dark:text-sky-300 font-medium text-sm"},re={class:"ml-4"},ae={class:"text-sm font-medium text-gray-900 dark:text-white"},oe={class:"text-sm text-gray-500 dark:text-gray-400"},ie={class:"px-6 py-4 whitespace-nowrap"},ne={class:"px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400"},de={class:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium"},le={class:"text-sky-600 hover:text-sky-900 dark:text-sky-400 dark:hover:text-sky-300 mr-3 transition-colors"},ce={class:"text-red-600 hover:text-red-900 dark:text-red-400 dark:hover:text-red-300 transition-colors"},ge={class:"md:col-span-4 bg-white dark:bg-gray-800 shadow-sm rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden"},pe={class:"p-4 sm:p-6 border-b border-gray-200 dark:border-gray-700"},me={class:"text-lg font-medium text-gray-900 dark:text-white"},ue={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},he={class:"overflow-x-auto"},xe={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-700"},ye={class:"bg-gray-50 dark:bg-gray-750"},fe={scope:"col",class:"px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider"},ke={scope:"col",class:"px-6 py-3 text-center text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider"},we={scope:"col",class:"px-6 py-3 text-center text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider"},_e={scope:"col",class:"px-6 py-3 text-center text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider"},be={scope:"col",class:"px-6 py-3 text-center text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider"},ve={class:"bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700"},$e={class:"px-6 py-3 whitespace-nowrap text-sm font-medium text-gray-900 dark:text-white"},Ce={class:"px-6 py-3 whitespace-nowrap text-center"},Pe={class:"px-6 py-3 whitespace-nowrap text-center"},je={class:"px-6 py-3 whitespace-nowrap text-center"},Be={class:"px-6 py-3 whitespace-nowrap text-center"},Me={class:"p-4 border-t border-gray-200 dark:border-gray-700"},Ue={class:"inline-flex items-center justify-center px-4 py-2 border border-gray-300 dark:border-gray-600 text-sm font-medium rounded-md shadow-sm text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-700 hover:bg-gray-50 dark:hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-sky-500 transition-colors w-full"},Ie=$({__name:"PermissionsPage",setup(Le){const{t:o}=C();S({title:()=>o("settings.permissions.title")+" | CMS"});const _=async()=>{var c;let t=null;try{const n=await(await fetch("/user")).json();t=(c=n==null?void 0:n.user)==null?void 0:c.uid}catch(r){console.error(r),w({title:o("settings.permissions.error"),message:o("settings.permissions.errorMessage"),type:"error"})}try{const n=await(await fetch(`/api/cms-permissions/${t}`)).json();x.value=(n==null?void 0:n.permissions)||[]}catch(r){console.error(r),w({title:o("settings.permissions.error"),message:o("settings.permissions.errorMessage"),type:"error"})}},l=u(""),h=u([]),x=u([{name:o("settings.permissions.createContent"),admin:!0,editor:!0,author:!0,viewer:!1},{name:o("settings.permissions.editContent"),admin:!0,editor:!0,author:!0,viewer:!1},{name:o("settings.permissions.deleteContent"),admin:!0,editor:!0,author:!1,viewer:!1},{name:o("settings.permissions.publishContent"),admin:!0,editor:!0,author:!1,viewer:!1},{name:o("settings.permissions.manageMedia"),admin:!0,editor:!0,author:!0,viewer:!1},{name:o("settings.permissions.manageUsers"),admin:!0,editor:!1,author:!1,viewer:!1},{name:o("settings.permissions.manageSettings"),admin:!0,editor:!1,author:!1,viewer:!1}]),b=P(()=>l.value?h.value.filter(t=>t.name.toLowerCase().includes(l.value.toLowerCase())||t.email.toLowerCase().includes(l.value.toLowerCase())):h.value);function v(t){switch(t){case"admin":return"bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-200";case"editor":return"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200";case"author":return"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200";case"viewer":return"bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300";default:return"bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300"}}return j(_),(t,c)=>(a(),g("div",D,[e("div",N,[e("h1",z,s(t.$t("settings.permissions.title")),1),e("button",I,[y(i(A),{class:"w-4 h-4 mr-2"}),B(" "+s(t.$t("settings.permissions.inviteUser")),1)])]),e("div",T,[e("div",E,[e("div",F,[e("div",H,[e("div",Q,[e("div",R,[y(i(V),{class:"h-5 w-5 text-gray-400"})]),M(e("input",{"onUpdate:modelValue":c[0]||(c[0]=r=>l.value=r),type:"text",class:"block w-full pl-10 pr-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md leading-5 bg-white dark:bg-gray-700 placeholder-gray-500 dark:placeholder-gray-400 focus:outline-none focus:ring-sky-500 focus:border-sky-500 text-gray-900 dark:text-white sm:text-sm transition-colors",placeholder:t.$t("settings.permissions.searchUsers")},null,8,X),[[U,l.value]])])])]),e("div",Z,[e("table",q,[e("thead",G,[e("tr",null,[e("th",J,s(t.$t("settings.permissions.user")),1),e("th",K,s(t.$t("settings.permissions.role")),1),e("th",O,s(t.$t("settings.permissions.lastActive")),1),e("th",W,s(t.$t("settings.permissions.actions")),1)])]),e("tbody",Y,[(a(!0),g(f,null,k(b.value,r=>(a(),g("tr",{key:r.id,class:"hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors"},[e("td",ee,[e("div",te,[e("div",se,s(r.name.charAt(0).toUpperCase()),1),e("div",re,[e("div",ae,s(r.name),1),e("div",oe,s(r.email),1)])])]),e("td",ie,[e("span",{class:L(["px-2 py-1 inline-flex text-xs leading-5 font-semibold rounded-full",v(r.role)])},s(t.$t("settings.permissions.roles."+r.role)),3)]),e("td",ne,s(r.lastActive),1),e("td",de,[e("button",le,s(t.$t("settings.permissions.edit")),1),e("button",ce,s(t.$t("settings.permissions.remove")),1)])]))),128))])])])]),e("div",ge,[e("div",pe,[e("h2",me,s(t.$t("settings.permissions.rolePermissions")),1),e("p",ue,s(t.$t("settings.permissions.rolePermissionsDescription")),1)]),e("div",he,[e("table",xe,[e("thead",ye,[e("tr",null,[e("th",fe,s(t.$t("settings.permissions.permission")),1),e("th",ke,s(t.$t("settings.permissions.admin")),1),e("th",we,s(t.$t("settings.permissions.editor")),1),e("th",_e,s(t.$t("settings.permissions.author")),1),e("th",be,s(t.$t("settings.permissions.viewer")),1)])]),e("tbody",ve,[(a(!0),g(f,null,k(x.value,(r,n)=>(a(),g("tr",{key:n,class:"hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors"},[e("td",$e,s(r.name),1),e("td",Ce,[r.admin?(a(),d(i(p),{key:0,class:"mx-auto h-5 w-5 text-green-500"})):(a(),d(i(m),{key:1,class:"mx-auto h-5 w-5 text-red-500"}))]),e("td",Pe,[r.editor?(a(),d(i(p),{key:0,class:"mx-auto h-5 w-5 text-green-500"})):(a(),d(i(m),{key:1,class:"mx-auto h-5 w-5 text-red-500"}))]),e("td",je,[r.author?(a(),d(i(p),{key:0,class:"mx-auto h-5 w-5 text-green-500"})):(a(),d(i(m),{key:1,class:"mx-auto h-5 w-5 text-red-500"}))]),e("td",Be,[r.viewer?(a(),d(i(p),{key:0,class:"mx-auto h-5 w-5 text-green-500"})):(a(),d(i(m),{key:1,class:"mx-auto h-5 w-5 text-red-500"}))])]))),128))])])]),e("div",Me,[e("button",Ue,s(t.$t("settings.permissions.customizePermissions")),1)])])])]))}});export{Ie as default};
@@ -1 +0,0 @@
1
- import{_ as l,o,a as i,b as t,s as u,d as h,u as f,t as n,e as c,f as d,H as x,g as p}from"./index-yMJAVBXk.js";const _={},m={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-settings w-5 h-5 mr-2 text-blue-600"};function w(r,e){return o(),i("svg",m,[...e[0]||(e[0]=[t("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"},null,-1),t("circle",{cx:"12",cy:"12",r:"3"},null,-1)])])}const k=l(_,[["render",w]]),b={},v={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-users w-5 h-5 mr-2 text-green-600"};function y(r,e){return o(),i("svg",v,[...e[0]||(e[0]=[t("path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"},null,-1),t("circle",{cx:"9",cy:"7",r:"4"},null,-1),t("path",{d:"M22 21v-2a4 4 0 0 0-3-3.87"},null,-1),t("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"},null,-1)])])}const $=l(b,[["render",y]]),C={},j={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-shield w-5 h-5 mr-2 text-red-600"};function B(r,e){return o(),i("svg",j,[...e[0]||(e[0]=[t("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"},null,-1)])])}const M=l(C,[["render",B]]),I={},S={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-key w-5 h-5 mr-2 text-purple-600"};function T(r,e){return o(),i("svg",S,[...e[0]||(e[0]=[t("path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4"},null,-1),t("path",{d:"m21 2-9.6 9.6"},null,-1),t("circle",{cx:"7.5",cy:"15.5",r:"5.5"},null,-1)])])}const V=l(I,[["render",T]]),z={},H={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-palette w-5 h-5 mr-2 text-pink-600"};function N(r,e){return o(),i("svg",H,[...e[0]||(e[0]=[u('<circle cx="13.5" cy="6.5" r=".5" fill="currentColor"></circle><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"></circle><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"></circle><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"></circle><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"></path>',5)])])}const K=l(z,[["render",N]]),P={},D={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-globe w-5 h-5 mr-2 text-orange-600"};function E(r,e){return o(),i("svg",D,[...e[0]||(e[0]=[t("circle",{cx:"12",cy:"12",r:"10"},null,-1),t("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"},null,-1),t("path",{d:"M2 12h20"},null,-1)])])}const G=l(P,[["render",E]]),L={},U={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-bell w-5 h-5 mr-2"};function q(r,e){return o(),i("svg",U,[...e[0]||(e[0]=[t("path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"},null,-1),t("path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0"},null,-1)])])}const A=l(L,[["render",q]]),F={class:"flex-1 overflow-y-auto bg-gradient-to-br from-slate-50 via-blue-50 to-indigo-50 dark:from-slate-900 dark:via-slate-800 dark:to-slate-900"},J={class:"w-full max-w-7xl mx-auto space-y-6"},O={class:"mb-8"},Q={class:"flex items-center gap-2"},R={class:"text-3xl font-bold text-slate-800 dark:text-slate-100 mb-2"},W=["href","title"],X={class:"text-slate-600 dark:text-slate-300"},Y={class:"space-y-6 max-w-7xl mx-auto"},Z={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm"},tt={class:"flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800"},et={class:"tracking-tight text-xl font-semibold text-slate-800 dark:text-slate-100 flex items-center"},st={class:"p-6"},nt={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ot={class:"space-y-4"},it={class:"font-medium text-slate-800 dark:text-slate-100"},rt={class:"space-y-2"},lt={class:"flex justify-between items-center"},at={class:"text-sm text-slate-600 dark:text-slate-400"},ct={class:"flex justify-between items-center"},dt={class:"text-sm text-slate-600 dark:text-slate-400"},gt={class:"flex justify-between items-center"},ut={class:"text-sm text-slate-600 dark:text-slate-400"},ht={class:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent shadow hover:bg-primary/80 bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300"},ft={class:"space-y-4"},xt={class:"font-medium text-slate-800 dark:text-slate-100"},pt={class:"space-y-2"},_t={class:"flex justify-between items-center"},mt={class:"text-sm text-slate-600 dark:text-slate-400"},wt={class:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent shadow hover:bg-primary/80 bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300"},kt={class:"flex justify-between items-center"},bt={class:"text-sm text-slate-600 dark:text-slate-400"},vt={class:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent shadow hover:bg-primary/80 bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300"},yt={class:"flex justify-between items-center"},$t={class:"text-sm text-slate-600 dark:text-slate-400"},Ct={class:"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent shadow hover:bg-primary/80 bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300"},Bt=h({__name:"Settings",setup(r){const{t:e,locale:g}=f();return e("settings.general.general"),e("settings.general.general"),e("settings.configure"),e("settings.users.users"),e("settings.users.users"),e("settings.configure"),e("settings.security"),e("settings.security"),e("settings.configure"),e("settings.api-keys.apiKeys"),e("settings.api-keys.apiKeys"),e("settings.configure"),e("settings.appearance.appearance"),e("settings.appearance.appearance"),e("settings.configure"),e("settings.localization"),e("settings.localization"),e("settings.configure"),(s,a)=>(o(),i("div",F,[t("div",J,[t("div",O,[t("div",Q,[t("h1",R,n(s.$t("settings.title")),1),t("a",{href:`https://cms.opengis.info/${c(g)}/config/general-settings/`,target:"_blank",title:s.$t("guide.settings")},[d(c(x),{class:"w-5 h-5"})],8,W)]),t("p",X,n(s.$t("settings.description")),1)]),t("div",Y,[t("div",Z,[t("div",tt,[t("h3",et,[d(A,{class:"w-5 h-5 mr-2"}),p(n(s.$t("settings.systemStatus")),1)])]),t("div",st,[t("div",nt,[t("div",ot,[t("h3",it,n(s.$t("settings.siteInformation")),1),t("div",rt,[t("div",lt,[t("span",at,n(s.$t("settings.siteName")),1),a[0]||(a[0]=t("span",{class:"text-sm font-medium text-slate-800 dark:text-slate-100"},"CMS Pro",-1))]),t("div",ct,[t("span",dt,n(s.$t("settings.version")),1),a[1]||(a[1]=t("span",{class:"text-sm font-medium text-slate-800 dark:text-slate-100"},"2.1.0",-1))]),t("div",gt,[t("span",ut,n(s.$t("settings.environment")),1),t("div",ht,n(s.$t("settings.production")),1)])])]),t("div",ft,[t("h3",xt,n(s.$t("settings.systemHealth")),1),t("div",pt,[t("div",_t,[t("span",mt,n(s.$t("settings.database")),1),t("div",wt,n(s.$t("settings.connected")),1)]),t("div",kt,[t("span",bt,n(s.$t("settings.cache")),1),t("div",vt,n(s.$t("settings.active")),1)]),t("div",yt,[t("span",$t,n(s.$t("settings.storage")),1),t("div",Ct,n(s.$t("settings.used")),1)])])])])])])])])]))}});export{Bt as default};
@@ -1 +0,0 @@
1
- import{D as p,o as a,a as d,b as o,r as g,k as h,n as m,t as i,h as u,j as k,E as f,i as x,g as V,x as v,f as _}from"./index-yMJAVBXk.js";const y=["aria-checked","data-state"],w=["data-state"],S={__name:"SettingsToggleItem",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(l){const t=p(l,"modelValue");return(r,s)=>(a(),d("button",{type:"button",role:"switch","aria-checked":t.value?"true":"false","data-state":t.value?"checked":"unchecked",value:"on",onClick:s[0]||(s[0]=n=>t.value=!t.value),class:"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-blue-600 data-[state=unchecked]:bg-slate-200 dark:data-[state=unchecked]:bg-slate-600"},[o("span",{"data-state":t.value?"checked":"unchecked",class:"pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform shrink-0 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-1"},null,8,w)],8,y))}},$={class:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-slate-700 dark:text-slate-300"},M={class:"text-sm text-slate-500 dark:text-slate-400"},U={__name:"NotificationSettings",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(l){const t=p(l,"modelValue");return(r,s)=>{const n=g("VsSelect");return a(!0),d(k,null,h(t.value,(e,b)=>(a(),d("div",{key:e.key,class:m(["flex min-h-[61px]",{"border-b border-slate-200":b<t.value.length-1,"items-center justify-between gap-4":!e.options,"flex-col items-start":e.options&&e.options.length>0}])},[o("div",null,[o("label",$,i(e.label),1),o("p",M,i(e.description),1)]),e.options&&e.options.length>0?(a(),u(n,{key:0,options:e.options,modelValue:e.value,"onUpdate:modelValue":c=>e.value=c,class:"min-h-10 mt-1"},null,8,["options","modelValue","onUpdate:modelValue"])):(a(),u(S,{key:1,modelValue:e.checked,"onUpdate:modelValue":c=>e.checked=c},null,8,["modelValue","onUpdate:modelValue"]))],2))),128)}}},B={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm"},C={class:"flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800"},N={class:"tracking-tight text-xl font-semibold text-slate-800 dark:text-slate-100 flex items-center"},j={class:"p-6 space-y-4"},D={__name:"SettingsTable",props:f({icon:{type:Object,required:!0},title:{type:String,required:!0},color:{type:String,required:!1,default:"green"}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const t={green:"text-green-600",blue:"text-blue-600",purple:"text-purple-600",red:"text-red-600",yellow:"text-yellow-600",orange:"text-orange-600",pink:"text-pink-600"},r=p(l,"modelValue");return(s,n)=>(a(),d("div",B,[o("div",C,[o("h3",N,[(a(),u(x(l.icon),{class:m(["lucide lucide-users w-5 h-5 mr-2",t[l.color]])},null,8,["class"])),V(" "+i(l.title),1)])]),o("div",j,[v(s.$slots,"content"),_(U,{modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=e=>r.value=e)},null,8,["modelValue"])])]))}};export{D as _};
@@ -1 +0,0 @@
1
- import{u as o,o as r,a as l,b as t,t as a,e as i,f as c,H as d}from"./index-yMJAVBXk.js";const p={class:"mb-8"},_={class:"flex items-center gap-2"},g={class:"text-3xl font-bold text-slate-800 dark:text-slate-100 mb-2"},h=["href","title"],u={class:"text-slate-600 dark:text-slate-300"},x={__name:"SettingsTitle",props:{title:{type:String,required:!0},description:{type:String,required:!0}},setup(s){const{locale:n}=o();return(e,f)=>(r(),l("div",p,[t("div",_,[t("h1",g,a(e.$t(s.title)),1),t("a",{href:`https://cms.opengis.info/${i(n)}/config/general-settings/`,target:"_blank",title:e.$t("guide.settings")},[c(i(d),{class:"w-5 h-5"})],8,h)]),t("p",u,a(e.$t(s.description)),1)]))}};export{x as _};
@@ -1,6 +0,0 @@
1
- import{c as $,d as S,u as B,m as l,z as C,p as V,o as y,a as N,b as t,t as h,f as u,e as v,B as D,C as E,g as F,h as I,v as L,l as j}from"./index-yMJAVBXk.js";import{_ as q}from"./UniversalTable.vue_vue_type_script_setup_true_lang-BQ5m4aZd.js";import{_ as M}from"./UniversalTablePagination.vue_vue_type_script_setup_true_lang-DppVBws0.js";import{S as T}from"./search-C4-fHihx.js";import"./eye-Dijywc6g.js";import"./file-B_duymIT.js";import"./pencil-CwnPP4IJ.js";import"./trash-2-BGXMNU3d.js";import"./square-pen-xVs4e8Yb.js";import"./chevron-left-WFftVS9c.js";import"./chevron-right-BiiSb3Be.js";/**
2
- * @license lucide-vue-next v0.344.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const U=$("FilterIcon",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]),z={class:"space-y-6 max-w-7xl mx-auto"},P={class:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"},Q={class:"text-2xl font-semibold text-gray-900 dark:text-white"},R={class:"overflow-hidden bg-white border border-gray-200 rounded-lg shadow-sm dark:bg-gray-800 dark:border-gray-700"},A={class:"p-4 border-b border-gray-200 sm:p-6 dark:border-gray-700"},G={class:"flex flex-col gap-4 sm:flex-row"},H={class:"relative flex-1"},J={class:"absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none"},K=["placeholder"],O={class:"flex space-x-2"},W={class:"inline-flex items-center px-3 py-2 text-sm font-medium leading-4 text-gray-700 transition-colors bg-white border border-gray-300 rounded-md shadow-sm dark:border-gray-600 dark:text-gray-200 dark:bg-gray-700 hover:bg-gray-50 dark:hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-sky-500"},ce=S({__name:"SingletonsPage",setup(X){const{t:x}=B(),b=j(),c=l(""),m=l([]),i=l(1),r=l(null),_=l(16),g=[{name:"title",title:x("common.title"),type:"text"}],w=o=>{b.push(`/collections/single/${o.name||o.id}`)},p=async()=>{const e=await(await fetch(`/api/cms?page=${i.value}&limit=${_.value}`)).json(),s=e.rows;m.value=s==null?void 0:s.filter(a=>a.type==="single"),r.value=e},k=(o,e)=>{if(!e)return!0;const s=e.toLowerCase();return g.value.some(a=>{const n=o[a.name];return n&&n.toString().toLowerCase().includes(s)})};return C(i,p),V(p),(o,e)=>{var s,a,n,f;return y(),N("div",z,[t("div",P,[t("h1",Q,h(o.$t("singletons.title")),1)]),t("div",R,[t("div",A,[t("div",G,[t("div",H,[t("div",J,[u(v(T),{class:"w-5 h-5 text-gray-400"})]),D(t("input",{type:"text",class:"block w-full py-2 pl-10 pr-3 leading-5 text-gray-900 placeholder-gray-500 transition-colors bg-white border border-gray-300 rounded-md dark:border-gray-600 dark:bg-gray-700 dark:placeholder-gray-400 focus:outline-none focus:ring-sky-500 focus:border-sky-500 dark:text-white sm:text-sm",placeholder:o.$t("singletons.search"),"onUpdate:modelValue":e[0]||(e[0]=d=>c.value=d)},null,8,K),[[E,c.value]])]),t("div",O,[t("button",W,[u(v(U),{class:"w-4 h-4 mr-2 text-gray-500 dark:text-gray-400"}),F(" "+h(o.$t("common.actions.filter")),1)])])])]),u(q,{class:"max-h-[calc(100vh-270px)] overflow-y-auto",rows:m.value,columns:g,query:c.value,filterFn:k,onEdit:w},null,8,["rows","query"]),((s=r.value)==null?void 0:s.total)>16?(y(),I(M,{key:0,total:(a=r.value)==null?void 0:a.total,count:((n=r.value)==null?void 0:n.count)||((f=r.value)==null?void 0:f.total),page:i.value,"onUpdate:page":e[1]||(e[1]=d=>i.value=d)},null,8,["total","count","page"])):L("",!0)])])}}});export{ce as default};