@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{_ as J}from"./UniversalTable.vue_vue_type_script_setup_true_lang-BQ5m4aZd.js";import{_ as A}from"./UniversalTablePagination.vue_vue_type_script_setup_true_lang-DppVBws0.js";import{u as F,m as i,A as H,z,p as I,a as E,b as r,t as m,e as l,f,g as L,v as y,h,w as N,o as p,H as M}from"./index-yMJAVBXk.js";import{_ as G}from"./EmptyData-Ct-xQv_N.js";import{l as K}from"./index-DCW2e4Az.js";import{J as Q,y as R}from"./index-DGweaj24.js";import{P as W}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";import"./chevron-left-WFftVS9c.js";import"./chevron-right-BiiSb3Be.js";const X={class:"space-y-6 max-w-7xl mx-auto"},Y={class:"flex items-center justify-between mb-8"},Z={class:"flex items-center gap-2"},ee={class:"text-3xl font-bold text-slate-800 dark:text-slate-100 mb-2"},te=["href","title"],ae={class:"text-slate-600 dark:text-slate-300"},oe={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm overflow-hidden"},le={class:"flex justify-end p-4 gap-2 border-t w-full"},we={__name:"TagsPage",setup(se){const{t:e,locale:B}=F(),s=i([]),u=i(!1),o=i({color:"#000000"}),b=i({}),c=i(!1),v=i(14),d=i(1),D=H(()=>{const t=d.value*v.value;return t>s.value.total?s.value.total:t}),P=[{name:"value",title:e("tags.form.name"),type:"text"},{name:"count_data",title:e("tags.form.count_data"),type:"text"},{name:"color",title:e("tags.form.color"),type:"color"},{name:"created_at",title:e("tags.form.created_at"),type:"date"},{name:"description",title:e("tags.form.description"),type:"text"}],q={slug:{label:e("tags.form.slug"),type:"slug",parent:"value",validators:["required"]},value:{label:e("tags.form.name"),type:"text",validators:["required"]},"value:en":{label:e("tags.form.name")+" (en)",type:"text",validators:["required"]},color:{label:e("tags.form.color"),type:"color",validators:["required"]},description:{label:e("tags.form.description"),type:"textarea"},topic:{label:e("tags.form.topic"),type:"textarea"}},g=async()=>{try{const a=await(await fetch(`/api/tags?page=${d.value}&limit=${v.value}`)).json();s.value=a}catch(t){console.error(t)}},O=async t=>{try{await fetch(`/api/tags/${t.tag_id}`,{method:"DELETE"}),g()}catch(a){console.error(a)}},w=()=>{u.value=!1,c.value=!1,o.value={}},S=async t=>{c.value=!0,u.value=!0,o.value=t,o.value.locale={en:t.value_en,uk:t.value}},U=async()=>{try{if(await b.value.validate()){R({type:"warning",title:e("common.actions.warning"),message:e("tags.createTagFailed")});return}o.value.locale={en:o.value["value:en"],uk:o.value.value},c.value?await fetch(`/api/tags/${o.value.tag_id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o.value)}):await fetch("/api/tags",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o.value)}),g(),u.value=!1,c.value=!1,o.value={}}catch(t){console.error(t)}};return z(d,()=>{g()}),I(()=>{g()}),(t,a)=>{var x,_,k,T,$,C,V,j;return p(),E("div",X,[r("div",Y,[r("div",null,[r("div",Z,[r("h1",ee,m(t.$t("tags.title")),1),r("a",{href:`https://cms.opengis.info/${l(B)}`,target:"_blank",title:t.$t("guide.general")},[f(l(M),{class:"w-5 h-5"})],8,te)]),r("p",ae,m(t.$t("tags.description")),1)]),((_=(x=s.value)==null?void 0:x.rows)==null?void 0:_.length)>0?(p(),E("button",{key:0,onClick:a[0]||(a[0]=n=>u.value=!0),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"},[f(l(W),{class:"w-4 h-4 mr-2"}),L(" "+m(t.$t("tags.createTag")),1)])):y("",!0)]),r("div",oe,[!s.value||((T=(k=s.value)==null?void 0:k.rows)==null?void 0:T.length)===0?(p(),h(G,{key:0,title:l(e)("tags.emptyTitle"),description:l(e)("tags.emptyDescription"),"button-text":l(e)("tags.emptyButton"),"show-button":!0,onAction:a[1]||(a[1]=n=>u.value=!0)},null,8,["title","description","button-text"])):y("",!0),((C=($=s.value)==null?void 0:$.rows)==null?void 0:C.length)>0?(p(),h(J,{key:1,columns:P,rows:s.value.rows,"on-edit":S,onDelete:O},null,8,["rows"])):y("",!0),((V=s.value)==null?void 0:V.total)>v.value?(p(),h(A,{key:2,total:(j=s.value)==null?void 0:j.total,count:D.value,page:d.value,"onUpdate:page":a[2]||(a[2]=n=>d.value=n),limit:v.value},null,8,["total","count","page","limit"])):y("",!0)]),f(l(Q),{teleport:"#modal",visible:u.value,title:l(e)(c.value?"tags.editTag":"tags.createTag"),onClose:a[6]||(a[6]=n=>w())},{footer:N(()=>[r("div",le,[r("button",{onClick:a[5]||(a[5]=n=>w()),class:"bg-gray-500 text-white px-4 py-2 rounded-md"},m(l(e)("common.actions.cancel")),1),r("button",{onClick:U,class:"bg-blue-500 text-white px-4 py-2 rounded-md"},m(l(e)("common.actions.save")),1)])]),default:N(()=>[f(l(K),{modelValue:o.value,"onUpdate:modelValue":a[3]||(a[3]=n=>o.value=n),schema:q,form:b.value,"onUpdate:form":a[4]||(a[4]=n=>b.value=n)},null,8,["modelValue","form"])]),_:1},8,["visible","title"])])}}};export{we as default};
@@ -1,11 +0,0 @@
1
- import{c as N,d as q,u as R,m as B,A as $,o as s,a as r,b as n,j as y,k as w,n as h,h as g,i as C,v as A,g as v,t as l,f as M,e as f,L as z,y as D,x as P}from"./index-yMJAVBXk.js";import{E as U}from"./eye-Dijywc6g.js";import{F as X}from"./file-B_duymIT.js";import{P as I}from"./pencil-CwnPP4IJ.js";import{T as H}from"./trash-2-BGXMNU3d.js";import{S as W}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 G=N("CheckCircleIcon",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/**
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 J=N("XCircleIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),K={class:"text-card-foreground border-0 bg-white/80 dark:bg-slate-800/80 backdrop-blur-sm"},O={class:"p-0"},Q={class:"table-scroll overflow-x-auto"},Y={class:"relative w-full overflow-auto max-h-[calc(100vh-270px)]"},Z={class:"w-full caption-bottom text-sm"},ee={class:"border-b border-slate-200 dark:border-slate-700 bg-slate-50/50 dark:bg-slate-700/50 hover:bg-slate-50/80 dark:hover:bg-slate-700/80 transition-colors"},te={class:"flex items-center gap-2"},se={class:"h-10 text-center px-4 font-semibold text-slate-700 dark:text-slate-300 max-w-32"},ae=["onClick"],re={key:1,class:"whitespace-nowrap"},ne={key:2,class:"whitespace-nowrap"},ie={key:3,class:"flex items-center"},oe={key:4,class:"inline-flex whitespace-nowrap items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-700 dark:text-slate-300"},de={key:5,class:"flex items-center"},le={key:6,class:"flex items-center gap-3"},ce={key:8,class:"flex items-center gap-3"},me={key:11,class:"flex items-center gap-3"},ue={class:"line-clamp-2"},be={class:"flex justify-end py-2 px-4 align-middle max-w-40"},he={class:"flex items-center justify-center gap-1"},pe=["onClick"],ge=["onClick"],Ce=q({__name:"UniversalTable",props:{rows:{},query:{},filterFn:{type:Function},onEdit:{type:Function},onView:{type:Function},onDelete:{type:Function},columns:{},onMore:{type:Function},customRender:{}},emits:["edit","view","delete","more"],setup(T,{emit:L}){const{t:o}=R();B(null);const d=T,k=L,S=$(()=>!d.query||!d.filterFn?d.rows:d.rows.filter(a=>d.filterFn(a,d.query))),V=a=>{if(!a)return"";const i=new Date(a);return isNaN(i.getTime())?"":a.includes("T")||a.includes(" ")||a.includes(":")?i.toLocaleString("uk-UA",{dateStyle:"medium",timeStyle:"medium"}):i.toLocaleDateString("uk-UA",{dateStyle:"medium"})},x=a=>{switch(a){case"published":return{icon:G,text:o("common.status.published"),classes:"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-200 border-green-200 dark:border-green-700"};case"draft":return{icon:W,text:o("common.status.draft"),classes:"bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-200 border-yellow-200 dark:border-yellow-700"};case"archived":return{icon:J,text:o("common.status.archived"),classes:"bg-gray-100 text-gray-800 dark:bg-gray-900/30 dark:text-gray-300 border-gray-200 dark:border-gray-700"};default:return null}},_=(a,i)=>{switch(a){case"edit":k("edit",i),d.onEdit&&d.onEdit(i);break;case"view":k("view",i),d.onView&&d.onView(i);break;case"delete":k("delete",i);break;case"more":k("more",i),d.onMore&&d.onMore(i);break}},E=a=>{_("edit",a)},j=a=>{const i=new Date,e=new Date(a),t=i-e,p=Math.floor(t/1e3),c=Math.floor(p/60),m=Math.floor(c/60),u=Number(Math.floor(m/24)),b=Number(Math.floor(u/7));return b>=2?o("table.time.weeksAgo",{count:b}):b===1?o("table.time.weekAgo"):u>=2?o("table.time.daysAgo",{count:u}):u===1?o("table.time.dayAgo"):m>=2?o("table.time.hoursAgo",{count:m}):m===1?o("table.time.hourAgo"):c>=2?o("table.time.minutesAgo",{count:c}):o(c===1?"table.time.minuteAgo":"table.time.justNow")};return(a,i)=>(s(),r("div",K,[n("div",O,[n("div",Q,[n("div",Y,[n("table",Z,[n("thead",null,[n("tr",ee,[(s(!0),r(y,null,w(a.columns,e=>(s(),r("th",{key:e.name,class:h(["h-10 px-4 text-left align-middle font-semibold text-slate-700 dark:text-slate-300 max-w-80",{"min-w-[200px]":["title","name"].includes(e.name),"min-w-[150px]":e.name==="slug","min-w-[250px]":e.name==="description"}])},[n("div",te,[e.icon?(s(),g(C(e.icon),{key:0,class:"w-5 h-5"})):A("",!0),v(" "+l(e.label||e.title||e.ua||e.name),1)])],2))),128)),n("th",se,l(a.$t("table.actions")),1)])]),n("tbody",null,[(s(!0),r(y,null,w(S.value,e=>(s(),r("tr",{key:e.id||e._id||e.name,class:"transition-all duration-200 hover:bg-slate-50/60 dark:hover:bg-slate-700/60"},[(s(!0),r(y,null,w(a.columns,(t,p)=>{var c,m,u,b,F;return s(),r("td",{key:t.name,class:h(["py-2 px-4 align-middle max-w-80",{"font-medium text-slate-800 dark:text-white cursor-pointer":p===0,"text-slate-600 dark:text-slate-400 font-mono text-sm":p!==0}]),onClick:fe=>p===0?E(e):void 0},[a.customRender&&a.customRender[t.name]?(s(),g(C(a.customRender[t.name](e[t.name],e)),{key:0})):A("",!0),["published_at","publish_at","created_at","date"].includes(t.name)&&e[t.name]?(s(),r("span",re,l(V(e[t.name])),1)):["updated_at","lastModified","last_edit"].includes(t.name)?(s(),r("span",ne,l(j(e[t.name])||"--"),1)):t.name==="views"?(s(),r("div",ie,[M(f(U),{class:"w-4 h-4 mr-1"}),v(" "+l(((m=(c=e[t.name])==null?void 0:c.toLocaleString)==null?void 0:m.call(c))??e[t.name]),1)])):["entries","fields"].includes(t.name)?(s(),r("div",oe,l(e[t.name]||"-"),1)):t.name==="type"?(s(),r("div",de,[n("div",{class:h(["whitespace-nowrap inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors border-transparent hover:bg-secondary/80",e[t.name]==="pages"?"bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300":"bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300"])},l(e[t.name]||"-"),3)])):t.name==="name"?(s(),r("div",le,[e.type==="single"?(s(),g(f(X),{key:0,class:"shrink-0 lucide lucide-page w-5 h-5 text-blue-600"})):(s(),g(f(z),{key:1,class:"shrink-0 lucide lucide-layers w-5 h-5 text-blue-600"})),v(" "+l(e[t.name]),1)])):t.name==="status"?(s(),r(y,{key:7},[x(e[t.name])?(s(),r("div",{key:0,class:h(["whitespace-nowrap rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors hover:bg-secondary/80 flex items-center w-fit bg-green-100 text-green-800 border-green-200 dark:bg-green-900/30 dark:text-green-300 dark:border-green-700",(u=x(e[t.name]))==null?void 0:u.classes])},[(s(),g(C((b=x(e[t.name]))==null?void 0:b.icon),{class:"w-3 h-3 mr-1"})),v(" "+l((F=x(e[t.name]))==null?void 0:F.text),1)],2)):A("",!0)],64)):t.name==="slug"?(s(),r("div",ce,l(e[t.name]?"/"+e[t.name]:"-"),1)):t.name==="color"?(s(),r("span",{key:9,class:h(["w-4 h-4 rounded-full block ml-2","bg-["+e[t.name]+"]"])},null,2)):t.name==="enabled"?(s(),r("span",{key:10,class:h(["whitespace-nowrap rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors hover:bg-secondary/80 flex items-center w-fit",e[t.name]?"bg-green-100 text-green-800 border-green-200":"bg-red-100 text-red-800 border-red-200"])},l(e[t.name]?"Доступ":"Заборонено"),3)):(s(),r("div",me,[n("p",ue,l(e[t.name]||"-"),1)]))],10,ae)}),128)),n("td",be,[n("div",he,[n("button",{onClick:D(t=>_("edit",e),["stop"]),class:"inline-flex items-center justify-center whitespace-nowrap font-medium border rounded-md text-xs h-8 w-8 p-0 border-slate-300 bg-white transition-all duration-200 shadow-sm dark:border-slate-600 dark:bg-slate-700 dark:hover:bg-slate-600 dark:hover:text-slate-200 hover:border-blue-300 hover:bg-blue-50 hover:text-blue-600",title:"Edit"},[M(f(I),{class:"text-slate-800 dark:text-slate-200 w-4 h-4 group-hover:text-green-600 dark:group-hover:text-blue-50"})],8,pe),n("button",{onClick:D(t=>_("delete",e),["stop"]),class:"inline-flex items-center justify-center whitespace-nowrap font-medium border rounded-md text-xs h-8 w-8 p-0 border-slate-300 bg-white transition-all duration-200 shadow-sm dark:border-slate-600 dark:bg-slate-700 dark:hover:bg-slate-600 dark:hover:text-slate-200 hover:border-blue-300 hover:bg-blue-50 hover:text-blue-600",title:"Preview"},[M(f(H),{class:"w-4 h-4 text-slate-800 dark:text-slate-200 group-hover:text-red-600 dark:group-hover:text-blue-50"})],8,ge),P(a.$slots,"actions",{row:e})])])]))),128))])])])])])]))}});export{G as C,J as X,Ce as _};
@@ -1 +0,0 @@
1
- import{C as f}from"./chevron-left-WFftVS9c.js";import{C as x}from"./chevron-right-BiiSb3Be.js";import{d as w,E as k,D as y,A as h,o as r,a as d,b as t,t as n,g as c,f as b,e as p,j as g,k as _,n as C}from"./index-yMJAVBXk.js";const $={class:"flex items-center justify-between px-6 py-4 border-t border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800"},M={class:"flex justify-between flex-1 sm:hidden"},j={class:"relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50"},P={class:"relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50"},B={class:"hidden sm:flex-1 sm:flex sm:items-center sm:justify-between"},N={class:"text-sm text-slate-600 dark:text-slate-400"},T={class:"font-medium text-slate-800 dark:text-slate-100"},V={class:"font-medium text-slate-800 dark:text-slate-100"},z={class:"relative z-0 inline-flex space-x-2 rounded-md shadow-sm","aria-label":"Pagination"},D=["disabled"],E={class:"sr-only"},L={class:"space-x-1"},S={key:0,class:"px-2 py-2 text-gray-400"},A=["onClick"],F=["disabled"],R={class:"sr-only"},H=w({__name:"UniversalTablePagination",props:k({total:{},count:{},limit:{}},{page:{},pageModifiers:{}}),emits:["update:page"],setup(u){const s=y(u,"page"),i=h(()=>Math.ceil(u.total/u.limit)),v=h(()=>{const a=[];if(i.value<=4){for(let l=1;l<=i.value;l++)a.push(l);return a}const o=Math.max(2,s.value-2),m=Math.min(i.value-1,s.value+2);a.push(1),o>2&&a.push("ellipsis");for(let l=o;l<=m;l++)a.push(l);return m<i.value-1&&a.push("ellipsis"),a.push(i.value),a});return(e,a)=>(r(),d("div",$,[t("div",M,[t("button",j,n(e.$t("common.pagination.previous")),1),t("button",P,n(e.$t("common.pagination.next")),1)]),t("div",B,[t("div",null,[t("p",N,[c(n(e.$t("common.pagination.showing"))+" ",1),t("span",T,n(e.count),1),c(" "+n(e.$t("common.pagination.of"))+" ",1),t("span",V,n(e.total),1),c(" "+n(e.$t("common.pagination.results")),1)])]),t("div",null,[t("nav",z,[t("button",{onClick:a[0]||(a[0]=o=>s.value=s.value>1?s.value-1:1),disabled:s.value===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"},[t("span",E,n(e.$t("common.pagination.previous")),1),b(p(f),{class:"w-5 h-5"})],8,D),t("div",L,[(r(!0),d(g,null,_(v.value,(o,m)=>(r(),d(g,{key:o+"-"+m},[o==="ellipsis"?(r(),d("span",S,"...")):(r(),d("button",{key:1,onClick:l=>s.value=o,class:C(["inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors h-8 w-8 p-0 text-sm rounded-md",{"border shadow-sm hover:text-accent-foreground bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-600 dark:text-slate-300 hover:border-blue-600 hover:bg-slate-50 dark:hover:bg-slate-600":o!==s.value,"shadow bg-blue-600 hover:bg-blue-700 text-white border-blue-600":o===s.value}])},n(o),11,A))],64))),128))]),t("button",{onClick:a[1]||(a[1]=o=>s.value=s.value<Math.ceil(e.total/e.limit)?s.value+1:Math.ceil(e.total/e.limit)),disabled:s.value===Math.ceil(e.total/e.limit),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"},[t("span",R,n(e.$t("common.pagination.next")),1),b(p(x),{class:"w-5 h-5"})],8,F)])])])]))}});export{H as _};
@@ -1 +0,0 @@
1
- import{_ as c}from"./SettingsTitle-t4WJBFxZ.js";import{_ as p}from"./SettingsTable-CY5pZx1z.js";import{u as d,m as f,p as m,a as g,f as n,e as k,o as _,U as w}from"./index-yMJAVBXk.js";import"./index-DGweaj24.js";const V={class:"w-full max-w-7xl mx-auto space-y-6"},x={__name:"Users",setup(h){const{t:s}=d(),o=f([{key:"allowRegistration",label:s("settings.users.allowRegistration"),description:s("settings.users.allowRegistrationDescription"),checked:!0},{key:"emailVerification",label:s("settings.users.emailVerification"),description:s("settings.users.emailVerificationDescription"),checked:!0},{key:"autoApprove",label:s("settings.users.autoApprove"),description:s("settings.users.autoApproveDescription"),checked:!1},{key:"defaultRole",label:s("settings.users.defaultRole"),description:"",value:"Viewer",options:[{text:"Viewer",id:"Viewer"},{text:"Contributor",id:"Contributor"},{text:"Author",id:"Author"}]}]),a=async()=>{var i;const e=await(await fetch("/api/settings")).json();l(((i=e==null?void 0:e.settings)==null?void 0:i.users)||{})},l=t=>{t&&Object.entries(t).forEach(([e,i])=>{const r=o.value.find(u=>u.key===e);r&&(r.checked=i)})};return m(()=>{a()}),(t,e)=>(_(),g("div",V,[n(c,{title:t.$t("settings.users.users"),description:t.$t("settings.users.usersDescription")},null,8,["title","description"]),n(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=i=>o.value=i),icon:k(w),title:t.$t("settings.users.userRegistration"),color:"green"},null,8,["modelValue","icon","title"])]))}};export{x as default};
@@ -1 +0,0 @@
1
- import{u as $,m as U,p as B,a as D,b as r,t as i,e as a,f as w,h as l,w as E,v as c,r as j,o as n,H as C,g as N,l as V}from"./index-yMJAVBXk.js";import{y as b}from"./index-DGweaj24.js";import{_ as P}from"./EmptyData-Ct-xQv_N.js";import{_ as T}from"./UniversalTable.vue_vue_type_script_setup_true_lang-BQ5m4aZd.js";import{P as H}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 S={class:"space-y-6 max-w-7xl mx-auto"},F={class:"flex items-center justify-between mb-8"},I={class:"flex items-center gap-2"},L={class:"text-3xl font-bold text-slate-800 dark:text-slate-100 mb-2"},M=["href","title"],R={class:"text-slate-600 dark:text-slate-300"},q={class:"rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm overflow-hidden"},ee={__name:"UsersPage",setup(z){const{t:s,locale:g}=$(),v=V(),o=U([]),u=async()=>{try{const t=await(await fetch("api/data/admin.users.table")).json();o.value=t}catch(e){console.error(e)}},y=async e=>{try{let t=await fetch(`/api/form/admin.users.table/${e.uid}`);t=await t.json(),await fetch(`/api/table/${t.token}`,{method:"DELETE"}),b({type:"success",title:s("common.actions.success"),message:s("users.deleteUserSuccess")}),u()}catch(t){b({type:"error",title:s("common.actions.warning"),message:s("users.deleteUserFailed")}),console.error(t)}},x=async e=>{v.push(`/users/edit/${e.uid}`)};return B(()=>{u()}),(e,t)=>{var d,m,p,h,f,_;const k=j("router-link");return n(),D("div",S,[r("div",F,[r("div",null,[r("div",I,[r("h1",L,i(e.$t("users.createUser")),1),r("a",{href:`https://cms.opengis.info/${a(g)}/config/user-management/`,target:"_blank",title:e.$t("guide.users")},[w(a(C),{class:"w-5 h-5"})],8,M)]),r("p",R,i(e.$t("users.description")),1)]),((m=(d=o.value)==null?void 0:d.rows)==null?void 0:m.length)>0?(n(),l(k,{key:0,to:"/users/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 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"},{default:E(()=>[w(a(H),{class:"w-4 h-4 mr-2"}),N(" "+i(e.$t("users.createUser")),1)]),_:1})):c("",!0)]),r("div",q,[!o.value||((h=(p=o.value)==null?void 0:p.rows)==null?void 0:h.length)===0?(n(),l(P,{key:0,title:a(s)("users.emptyTitle"),description:a(s)("users.emptyDescription"),"button-text":a(s)("users.emptyButton"),"show-button":!0},null,8,["title","description","button-text"])):c("",!0),((_=(f=o.value)==null?void 0:f.rows)==null?void 0:_.length)>0?(n(),l(T,{key:1,columns:o.value.columns,rows:o.value.rows,"on-edit":x,onDelete:y},null,8,["columns","rows"])):c("",!0)])])}}};export{ee as default};
@@ -1,16 +0,0 @@
1
- import{c as o}from"./index-yMJAVBXk.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 t=o("ArrowDownIcon",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/**
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 e=o("ArrowRightFromLineIcon",[["path",{d:"M3 5v14",key:"1nt18q"}],["path",{d:"M21 12H7",key:"13ipq5"}],["path",{d:"m15 18 6-6-6-6",key:"6tx3qv"}]]);/**
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 a=o("ArrowUpIcon",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);export{t as A,a,e as b};
@@ -1,6 +0,0 @@
1
- import{c as e}from"./index-yMJAVBXk.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 a=e("CalendarIcon",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);export{a as C};
@@ -1,6 +0,0 @@
1
- import{c as e}from"./index-yMJAVBXk.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 t=e("ChevronLeftIcon",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);export{t as C};
@@ -1,6 +0,0 @@
1
- import{c as o}from"./index-yMJAVBXk.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 e=o("ChevronRightIcon",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);export{e as C};
@@ -1,6 +0,0 @@
1
- import{c as ie,u as Y,D as le,m as y,O as ne,p as G,N as P,z as M,A as F,o as x,h as Z,e as w,v as I,a as A,b as u,g as K,f as D,d as ce,q as ue,P as de,t as U,H as me,j as pe,k as ve,n as X,B as L,Q as fe,R as q,l as ge,J as he}from"./index-yMJAVBXk.js";import{_ as ye,a as be,V as we,b as R,c as _e,d as xe,e as ke,g as $e}from"./vs-form-reletion-link-C-xrdHDl.js";import{l as Q,Q as V}from"./index-DCW2e4Az.js";import{y as H}from"./index-DGweaj24.js";import{_ as Se}from"./CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-DVYVfYF4.js";import{S as Ve}from"./save-FeDrOUOd.js";import"./pencil-CwnPP4IJ.js";import"./trash-2-BGXMNU3d.js";import"./plus-DLR44m6p.js";import"./vuedraggable.umd-W_2WTF6i.js";import"./square-pen-xVs4e8Yb.js";import"./MediaBreadcrumb-BpOxt5PK.js";import"./file-B_duymIT.js";import"./chevron-right-BiiSb3Be.js";import"./search-C4-fHihx.js";import"./list-CXRbSNky.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 Ae=ie("ExternalLinkIcon",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),Te=[{key:"title",label:"common.title",localization:!0,type:"text"},{key:"description",label:"common.description",localization:!0,type:"text"},{key:"keywords",label:"common.keywords",localization:!0,type:"text"},{key:"meta",label:"common.meta",type:"key-value",ignore:["title","description","keywords"]}],je={__name:"VsFormTags",props:{modelValue:{default:()=>[]},modelModifiers:{}},emits:["update:modelValue"],setup($,{expose:n}){const{t:k}=Y(),l=le($,"modelValue"),d=y({}),f=y(!1);ne("metaParentValue",l);const m=t=>Array.isArray(t)?t.map(i=>typeof i=="object"&&i!==null&&i.id?i.id:i):[],b=async t=>{if(!Array.isArray(t)||t.length===0)return[];try{const S=await(await fetch("/api/tags")).json(),v=(S==null?void 0:S.rows)||[];return t.map(c=>{const B=v.find(j=>j.tag_id===c);return B?{id:B.tag_id,text:B.value,color:B.color}:{id:c,text:"",color:"#ababab"}})}catch(i){return console.error("Error fetching tags:",i),t.map(S=>({id:S,text:"",color:"#ababab"}))}};G(async()=>{await P(),await P(),setTimeout(()=>{var t;if(Array.isArray((t=l.value)==null?void 0:t.tag_list)){const i=m(l.value.tag_list);JSON.stringify(i)!==JSON.stringify(l.value.tag_list)&&(l.value.tag_list=i)}},100)}),M(()=>l.value.tag_list,t=>{if(Array.isArray(t)&&!f.value){const i=m(t);JSON.stringify(i)!==JSON.stringify(t)&&(l.value.tag_list=i)}},{deep:!0}),M(()=>l.value,t=>{if(t&&Array.isArray(t.tag_list)&&!f.value){const i=m(t.tag_list);JSON.stringify(i)!==JSON.stringify(t.tag_list)&&(t.tag_list=i)}},{deep:!0,immediate:!0}),M(()=>{var t;return(t=l.value)==null?void 0:t.tag_list},t=>{Array.isArray(t)&&d.value&&P(()=>{d.value&&d.value.setValue&&d.value.setValue("tag_list",t)})},{deep:!0});const T=async t=>{if(t.tag_list&&(t.tag_list=m(t.tag_list),l.value.tag_list=t.tag_list),await d.value.validate()){H({type:"warning",title:k("common.actions.warning"),message:k("builder.editFieldFailed")});return}};n({restoreTagsBeforeSubmit:async()=>{var t;if(f.value=!0,Array.isArray((t=l.value)==null?void 0:t.tag_list)){console.log("Before restore:",l.value.tag_list);const i=await b(l.value.tag_list);console.log("After restore:",i),l.value.tag_list=i}setTimeout(()=>{f.value=!1},2e3)}});const O=F(()=>{var t;return[{key:"tag_list",type:"select",multiple:!0,searchable:!1,placeholder:k("builder.tags"),data:"tag_id",value:((t=l.value)==null?void 0:t.tag_list)||[]}]});return(t,i)=>l.value?(x(),Z(w(Q),{key:0,schema:O.value,modelValue:l.value,"onUpdate:modelValue":[i[0]||(i[0]=S=>l.value=S),T]},null,8,["schema","modelValue"])):I("",!0)}},ze={class:"flex justify-end mb-4"},Ce=["href"],Ne=["src"],Fe=["src"],De={key:2,class:"w-full h-[80vh] flex items-center justify-center text-gray-500"},Be={__name:"VsPreview",props:{preview_path:{type:String,default:""},slug:{type:String,default:""}},setup($){const n=y(""),k=y(""),l=async()=>{var f,m;try{const T=await(await fetch("/api/settings")).json();n.value=((m=(f=T==null?void 0:T.settings)==null?void 0:f.site_info)==null?void 0:m.previewUrl)||"http://ip.local.softpro.ua"}catch(b){console.error("Failed to fetch settings:",b),n.value="http://ip.local.softpro.ua"}},d=async()=>{var f;try{const b=await(await fetch("/user")).json();k.value=(f=b==null?void 0:b.user)==null?void 0:f.draftKey}catch(m){console.error("Failed to fetch user:",m)}};return G(()=>{l(),d()}),(f,m)=>(x(),A("div",null,[u("div",ze,[u("a",{href:`${n.value}/uk/${$.preview_path}${$.slug}${k.value?`?draftKey=${k.value}`:""}`,target:"_blank",class:"inline-flex items-center gap-2 px-3 py-1.5 text-black-600 bg-white border border-blue-200 rounded hover:border-blue-300 hover:bg-blue-50 transition-colors duration-200 font-normal cursor-pointer"},[m[0]||(m[0]=K(" Переглянути на сайті ",-1)),D(w(Ae),{class:"w-4 h-4"})],8,Ce)]),n.value&&$.preview_path?(x(),A("iframe",{key:0,src:`${n.value}/uk/${$.preview_path}${$.slug}?hideHeader=true&hideFooter=true`,class:"w-full h-[80vh]"},null,8,Ne)):n.value?(x(),A("iframe",{key:1,src:`${n.value}/uk/${$.slug}?hideHeader=true&hideFooter=true`,class:"w-full h-[80vh]"},null,8,Fe)):(x(),A("div",De," Loading preview... "))]))}},Oe={class:"space-y-6 max-w-6xl mx-auto relative bg-white"},Ue={class:"p-4 sticky top-[-24px] z-10 bg-white dark:bg-slate-800"},Pe={class:"flex items-center justify-between"},Je={class:"flex items-center gap-4"},Ee={class:"text-2xl font-semibold text-gray-900 dark:text-white"},Le=["href","title"],Me={class:"flex items-center space-x-3"},Ie={class:"w-full mt-6 flex items-center justify-between"},He={class:"flex items-center w-full h-10 max-w-md grid-cols-3 p-1 bg-white border border-gray-200 rounded-md text-muted-foreground"},qe=["onClick"],Re={class:"flex items-center gap-2"},Ke={for:"is_pin",class:"text-sm font-medium text-gray-700 dark:text-gray-300 cursor-pointer"},Qe={class:"relative"},Ge={key:0,class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},We={class:"container mx-auto bg-white rounded-md pb-4 px-5"},Xe={class:"container mx-auto bg-white rounded-md pb-4 px-2"},Ye={key:0,class:"container mx-auto bg-white rounded-md pb-4 px-2"},Ze={class:"container mx-auto bg-white rounded-md pb-4 px-2"},gt=ce({__name:"contentForm",setup($){V["vs-input-custom-datatable"]=ye,V["vs-input-reference"]=be,V["vs-input-texteditor"]=we,V["vs-input-mediaselect"]=R,V["vs-input-file"]=R,V["vs-input-image"]=R,V["vs-input-richtext-md"]=_e,V["vs-input-integer"]=xe,V["vs-input-relation-link"]=ke;const{t:n,locale:k}=Y(),l=ge(),d=he(),f=ue("menu",y([])),m=y([]),b=y({}),T=y({}),J=y({}),O=y(""),t=e=>{const a=[];return e.forEach(o=>{if(a.push(o),o.localization){const p={...o,name:o.name+":en",label:o.label+" (en)"};a.push(p)}}),a},i=F(()=>{var e;return(e=m.value)==null?void 0:e.map($e)}),S=F(()=>(k.value,Te.flatMap(e=>{const a={...e,label:n(e.label)};if(e.localization){const o={...e,key:`${e.key}:en`,label:n(e.label)+" (en)"};return[a,o]}return[a]}))),v=y({}),c=y({title:"",status:"draft"}),B=F(()=>{const e=[{id:"content",name:n("builder.content")},{id:"seo",name:n("builder.seo")},{id:"tags",name:n("builder.tags")}];return O.value&&e.push({id:"preview",name:n("builder.preview")}),e}),j=y("content"),ee=F(()=>{var a,o,p,g;const e=((a=d.params)==null?void 0:a.collection)||((o=d.params)==null?void 0:o.id);return((g=(p=f.value)==null?void 0:p.find(h=>h.id===e))==null?void 0:g.title)||e}),te=F(()=>{var e,a;return((e=c.value)==null?void 0:e.title)||((a=d.params)!=null&&a.id?n("builder.editCollection"):n("articles.createArticle"))}),ae=F(()=>{var p,g,h;const e=((p=d.params)==null?void 0:p.collection)||((g=d.params)==null?void 0:g.id),a=(h=d.params)==null?void 0:h.id,o=[{label:ee.value,route:`collections/${e}`}];return a?o.push({label:te.value,route:`collections/${e}/${a}`}):o.push({label:n("articles.createArticle"),route:`collections/${e}/create`}),o}),se=e=>{e==="collections"?l.push("/collections"):l.push(`/${e}`)};G(async()=>{var g,h,z;const e=(g=d.params)==null?void 0:g.collection,a=(h=d.params)==null?void 0:h.id,o=e||a,p=e&&a?a:void 0;if(!p){if(!o)return;const r=await(await fetch(`/api/cms/${o}/`)).json();m.value=t(r.columns)}try{if(!p||!o)return;const _=await fetch(`/api/cms/${o}/${p}`);if(!_.ok)throw new Error("Failed to fetch article");const r=await _.json();if(m.value=t(r==null?void 0:r.columns),r!=null&&r.preview_path&&(O.value=r==null?void 0:r.preview_path),r.rows){let s=r.rows;Array.isArray(s)||(s=[s]),c.value=s[0],await P(),(z=s[0])!=null&&z.meta?v.value={...s[0].meta}:v.value={title:"",description:"",keywords:"",meta:{}},console.log("Initialized seoData from rows[0]:",v.value)}else c.value=r,await P(),r!=null&&r.meta?(v.value={title:r.meta.title||"",description:r.meta.description||"",keywords:r.meta.keywords||"",meta:{...r.meta}},delete v.value.meta.title,delete v.value.meta.description,delete v.value.meta.keywords):v.value={title:"",description:"",keywords:"",meta:{}},console.log("Initialized seoData from data:",v.value)}catch(_){console.error("Error fetching article:",_)}});const W=F({get:()=>{var e;return((e=c.value)==null?void 0:e.is_pin)||!1},set:e=>{c.value&&(c.value.is_pin=e)}}),oe=()=>{c.value&&(c.value.is_pin=!c.value.is_pin)};M(v,e=>{console.log("seoData changed:",e)},{deep:!0});const re=async e=>{var z,_,r,s;const a=(z=d.params)==null?void 0:z.collection,o=(_=d.params)==null?void 0:_.id,p=await b.value.validate();if(p){H({title:n("validation"),message:JSON.stringify(p),type:"warning"});return}(r=J.value)!=null&&r.restoreTagsBeforeSubmit&&await J.value.restoreTagsBeforeSubmit();const g=v.value||{},h={...c.value,meta:{...g,...g.meta||{}}};console.log("Payload before submit:",h);try{const C=await fetch(`/api/cms/${a}/${o||""}`,{method:o?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)});if(!C.ok){let N;try{const E=await C.json();N=JSON.stringify(E,null,2)}catch{N=await C.text()}throw new Error(`HTTP ${C.status}: ${N}`)}if(!o)try{const N=await C.json(),E=N.id||((s=N.data)==null?void 0:s.id);E&&d.name==="createArticle"&&await l.push(`/collections/${a}/${E}`)}catch(N){console.warn("Could not parse response to get ID:",N)}H({title:n("common.success"),message:n("common.successMessage"),type:"success"})}catch(C){console.error("Submit error:",C),H({title:n("common.error"),message:"Помилка збереження",type:"error"})}};return(e,a)=>{var o,p,g,h,z,_,r;return x(),A("div",Oe,[u("div",Ue,[D(Se,{items:ae.value,onNavigate:se},null,8,["items"]),u("div",Pe,[u("div",Je,[u("button",{onClick:a[0]||(a[0]=s=>w(l).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"},[D(w(de),{class:"w-5 h-5"})]),u("h1",Ee,[K(U(e.$t("builder.editCollection"))+" ",1),u("span",null,'"'+U(((o=c.value)==null?void 0:o.type)==="single"?c.value.title:(g=(p=w(f).value)==null?void 0:p.find(s=>s.id===(w(d).params.collection||w(d).params.id)))==null?void 0:g.title)+'"',1)]),u("a",{href:`https://cms.opengis.info/${w(k)}/guides/content/`,target:"_blank",title:e.$t("guide.content")},[D(w(me),{class:"w-5 h-5"})],8,Le)]),u("div",Me,[u("button",{onClick:re,type:"submit",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"},[D(w(Ve),{class:"w-4 h-4 mr-2"}),K(" "+U(e.$t("builder.save")),1)])])]),u("div",Ie,[u("div",He,[(x(!0),A(pe,null,ve(B.value,s=>(x(),A("button",{key:s.id,onClick:C=>j.value=s.id,class:X(["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",s.id===j.value?"bg-blue-50 text-blue-700 border-blue-200":""])},U(s.name),11,qe))),128))]),u("div",Re,[u("label",Ke,U(e.$t("collections.pinPublication")),1),u("div",Qe,[L(u("input",{type:"checkbox",id:"is_pin","onUpdate:modelValue":a[1]||(a[1]=s=>W.value=s),class:"sr-only"},null,512),[[fe,W.value]]),u("div",{class:X(["w-5 h-5 border-2 rounded transition-all duration-200 cursor-pointer flex items-center justify-center",(h=c.value)!=null&&h.is_pin?"bg-sky-600 border-sky-600":"bg-white border-gray-300 hover:border-sky-400 dark:bg-gray-700 dark:border-gray-600 dark:hover:border-sky-400"]),onClick:oe},[(z=c.value)!=null&&z.is_pin?(x(),A("svg",Ge,[...a[7]||(a[7]=[u("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"},null,-1)])])):I("",!0)],2)])])])]),L(u("div",We,[(_=m.value)!=null&&_.length?(x(),Z(w(Q),{key:0,modelValue:c.value,"onUpdate:modelValue":a[2]||(a[2]=s=>c.value=s),schema:i.value,form:b.value,"onUpdate:form":a[3]||(a[3]=s=>b.value=s)},null,8,["modelValue","schema","form"])):I("",!0)],512),[[q,j.value==="content"]]),L(u("div",Xe,[D(w(Q),{schema:S.value,values:v.value,"onUpdate:values":a[4]||(a[4]=s=>v.value=s),form:T.value,"onUpdate:form":a[5]||(a[5]=s=>T.value=s)},null,8,["schema","values","form"])],512),[[q,j.value==="seo"]]),j.value==="tags"?(x(),A("div",Ye,[D(je,{ref_key:"tagsForm",ref:J,modelValue:c.value,"onUpdate:modelValue":a[6]||(a[6]=s=>c.value=s)},null,8,["modelValue"])])):I("",!0),L(u("div",Ze,[D(Be,{slug:(r=c.value)==null?void 0:r.slug,preview_path:O.value},null,8,["slug","preview_path"])],512),[[q,j.value==="preview"]])])}}});export{gt as default};
@@ -1 +0,0 @@
1
- const e={faq:"FAQ",banner:"Banner",slider:"Slider",video:"Video",about:"About",cards:"Cards",usefulLinks:"Useful Links",team:"Team",body:"Body",news:"News",form:"Form",tabs:"Tabs",vertical_tabs:"Vertical Tabs",documents:"Documents",infoLine:"Information Line",interested:"You may be interested",contact:"Contact"},t={editMenu:"Edit Menu",dashboard:"Dashboard",collections:"Collections Structure",articles:"Articles",posts:"Posts",media:"Media",permissions:"Permissions",tags:"Tags",singletons:"Pages",feedback:"Feedback",email:"Пошти користувачів",singletonsMenu:"Menu",menuAdd:"Create Menu",builder:"Collections Structure",back:"Back",settings:"Settings",settingsDescription:"Manage your CMS configuration",singletonsMenuDescription:"Manage your menu.",users:"Users",general:"General",apiKeys:"API Keys",appearance:"Appearance",logs:"Logs"},o={title:"Dashboard",newCollection:"Create Collection",quickActions:"Quick Actions",views:"views",stats:{totalArticles:"Total Articles",totalMedia:"Total Media",activeUsers:"Active Users",apiRequests:"API Requests",fromLastMonth:"from last month"},collections:{title:"Collections",articles:"Articles",articlesDesc:"Description for articles",posts:"Posts",postsDesc:"Description for posts",products:"Products",productsDesc:"Description for products",categories:"Categories",categoriesDesc:"Description for categories",items:"items",new:"New Collection"},recentArticles:"Recent Articles",recentPosts:"Recent Posts",activeUsers:"Active Users",mediaFiles:"Media Files",createArticle:"Create Article",createPost:"Create Post",uploadMedia:"Upload Media",manageUsers:"Manage Users",feedback:"Feedback",createArticleDescription:"Create a new article for your site",uploadMediaDescription:"Upload media files for your site",manageUsersDescription:"Manage users for your site",viewFeedbackDescription:"View feedback for your site",activityFeed:"Activity Feed",viewAll:"View all",description:"Welcome to the CMS dashboard. You can create, edit, and manage your site's content.",newArticle:"Create Article",totalContent:"Total Content",articlesPostsPages:"Articles, Posts and Pages",monthlyActiveUsers:"Monthly Active Users",imagesVideosDocs:"Images, Videos and Docs",thisMonth:"This Month",newMediaFiles:"New Media Files",gettingStartedWithNextJs14:"Getting Started with Next.js 14",sarahJohnson:"Sarah Johnson",advancedReactPatterns:"Advanced React Patterns",uiUxDesignPrinciples:"UI/UX Design Principles",databaseOptimizationTips:"Database Optimization Tips",mikeChen:"Mike Chen",emmaWilson:"Emma Wilson",alexRodriguez:"Alex Rodriguez",recentContent:"Recent Content"},i={title:"Collections",selectCollection:"Select a collection to view its content",createCollection:"New Collection",searchCollections:"Search collections...",entries:"Entries",fields:"Fields",lastModified:"Last Modified",edit:"Edit",delete:"Delete",view:"View",form:{name:"Collection Name",slug:"Slug",description:"Description",fields:"Fields",addField:"Add Field"},dragToBuild:"Drag and drop content blocks here to build your collection structure",collectionCreated:"Collection created successfully",collectionCreationFailed:"Error creating collection",pinPublication:"Pin Publication"},a={title:"Articles",createArticle:"Create Article",searchArticles:"Search articles...",showColumns:"Show columns",update:"Update",create:"Create",form:{title:"Title",content:"Content",author:"Author",category:"Category",status:"Status"}},s={title:"Posts",createPost:"Create Post",searchPosts:"Search posts...",form:{title:"Title",content:"Content",author:"Author",category:"Category",status:"Status"}},n={title:"Singletons",createSingleton:"Create Singleton",searchSingletons:"Search singletons...",form:{name:"Name",description:"Description",content:"Content",status:"Status"},search:"Search singletons..."},r={title:"Media Library",description:"Manage your images, documents, and media files.",uploadMedia:"Upload Media",searchMedia:"Search files...",fileInfo:"File Information",preview:"Preview",newFolder:"New Folder",selectFile:"Select a file to view details",fileDetails:"File Details",name:"Name",size:"Size",dimensions:"Dimensions",uploadDate:"Upload Date",author:"Author",tags:"Tags",banner:"Banner",hero:"Hero",homepage:"Homepage",download:"Download",copyPath:"Copy path",copyPathFailed:"Failed to copy path",delete:"Delete",edit:"Edit",share:"Share",moreActions:"More actions",deleteFile:"Delete File",cancel:"Cancel",mediaLibrary:"Media Library",showColumns:"Show columns",update:"Update",create:"Create",createFolder:"Create Folder",files:"files",noFilesInFolder:"No files in this folder",deleteConfirmation:"Are you sure you want to delete this file?",uploaded:"Uploaded",filter:"Filter",search:"Search media files...",uploadingFiles:"Uploading files",uploading:"Uploading...",folder:"Folder",updatedAt:"Updated At",type:"Type",sortBy:{title:"Sort by",name:"File name",filesize:"File size"},upload:"Upload",selectFromMedia:"Select from media",selectedFiles:"Selected files: {count}",selectFiles:"Select files"},l={title:"Tags",description:"Manage your tags.",createTag:"Create Tag",editTag:"Edit Tag",searchTags:"Search tags...",form:{name:"Name",description:"Description",color:"Color",created_at:"Created At",count_data:"Count of Used",topic:"Topic"},emptyTitle:"No tags found",emptyDescription:"Create your first tag to get started.",emptyButton:"Create Tag"},c={title:"Feedback",description:"View feedback",table:{number:"№",noFeedback:"No feedback",email:"Email",userName:"Full name",messageText:"Message text",feedbackType:"Type of appeal",phone:"Phone",resumeLink:"Resume link",linkedinLink:"Linkedin link",portfolioLink:"Portfolio link",telegramLink:"Telegram link"}},d={title:"User mails",description:"View users awaiting feedback",table:{number:"№",date:"Date of shipment",email:"Email"}},u={title:"No data found",description:"Create your first item to get started.",buttonText:"Create Item"},m={gen:"Generate",key:"Key",value:"Value",noDataToDisplay:"No data to display",add:"Add"},p={manageContentCollections:"Manage content collections",searchCollections:"Search collections...",collections:"Collections",collectionStructure:"Collection Structure",defineFields:"Define the fields and their types for this collection",name:"Name",edit:"Edit",preview:"Preview",type:"Type",content:"Content",seo:"SEO",tags:"Tags",save:"Save",cancel:"Cancel",create:"Create",localization:"Localization",actions:"Actions",noColumnsFound:"No columns found",collectionName:"Collection Name",title:"Title",entries:"Entries",fields:"Fields",status:"Status",lastModified:"Last Modified",editCollection:"Edit collection",editContentForYourSite:"Edit content for your site",deleteObject:"Are you sure you want to delete this object?",editField:"Edit field",deleteTitle:"Delete field",deleteField:"Are you sure you want to delete this field?",scheme:{name:{label:"Name",placeholder:"Name"},title:{label:"Title",placeholder:"Title"},type:{label:"Type",placeholder:"Type",options:{collection:"Collection",single:"Single"}},customTable:{label:"Custom Table"},status:{label:"Status",placeholder:"Status",options:{published:"Published",draft:"Draft",archived:"Archived"}},description:{label:"Description",placeholder:"Description"},preview_path:{label:"Preview path",placeholder:"Preview path",info:"Path to slug for preview"},include_search:{label:"Include in search?",placeholder:"Include in search?"}},required:"Required field",createField:"Create field",selectType:"Select type",createFolder:"Create folder",changeType:"Change type",fieldLabels:{name:"Name",label:"Label",placeholder:"Placeholder",help:"Help",type:"Type",subtype:"Subtype",parent:"Parent",options:"Options",colModel:"ColModel",multiple:"Multiple",api:"API",relation:"Relation",required:"Required",localization:"Localization"},fieldPlaceholders:{name:"Name",label:"Title",placeholder:"Placeholder",help:"Help",type:"Type",subtype:"Subtype",parent:"Parent",options:"Options",colModel:"ColModel",api:"API",relation:"Relation"},fieldOptions:{text:"Text",number:"Number",integer:"Integer",date:"Date",datetime:"Datetime",file:"File",select:"Select",multiselect:"MultiSelect",mediaselect:"MediaSelect",radio:"Radio",boolean:"Boolean",datalist:"Data list",image:"Image",slug:"Slug",richtext:"Rich Text",markdown:"Markdown",reference:"Reference",relation:"Relation",fileList:"Gallery",tags:"Tags"}},g={title:"Menu",description:"Manage your menu.",createMenu:"Create Menu",searchMenu:"Search menu...",menuAdd:"Add Menu",editMenu:"Edit Menu",textEditor:"Text Editor",listTree:"List Tree",filter:"Filter",search:"Search menu...",menuCreated:"Menu created",menuCreateError:"Error creating menu",menuUpdated:"Menu updated",menuUpdateError:"Error updating menu",menuDeleted:"Menu deleted",menuDeleteError:"Error deleting menu",form:{name:"Name",description:"Description",content:"Content",status:"Status",value:"Value",language:"Language"}},f={title:"Settings",description:"Configure your CMS settings and preferences.",systemStatus:"System Status",siteInformation:"Site Information",siteName:"Site Name",version:"Version",environment:"Environment",security:"Security",localization:"Localization",production:"Production",systemHealth:"System Health",database:"Database",connected:"Connected",cache:"Cache",active:"Active",storage:"Storage",used:"Used",configure:"Configure",successTitle:"Success",successMessage:"Settings saved successfully",errorTitle:"Error",errorMessage:"Error saving settings",generateNewKey:"Generate New Key",apiSecurity:"API Security",general:{general:"General Settings",generalDescription:"Manage your general settings.",url:"URL",language:"Language",languages:"Languages",contacts:"Contacts",showSocialsNumber:"Number of socials to display",mapCoords:"Map coordinates",socials:"Socials",saveChanges:"Save Changes",cancel:"Cancel",notifications:"Notifications",emailNotifications:"Email Notifications",emailNotificationsDescription:"Receive notifications by email",pushNotifications:"Browser Notifications",pushNotificationsDescription:"Browser notifications for important updates",smsNotifications:"SMS Notifications",smsNotificationsDescription:"SMS notifications for critical updates",desktopNotifications:"Desktop Notifications",desktopNotificationsDescription:"Desktop notifications",siteDescription:"Site Description",siteUrl:"Site URL",siteLanguage:"Site Language",siteEmail:"Site Email",sitePhone:"Site Phone",siteAddress:"Site Address",siteName:"Site Name",title:"Title",content:"Content",name:"Name",siteInformation:"Site Information",logoSite:"Site Logo",logoCms:"CMS Logo",imageLogin:"Login Image",logo:"Logo",siteInformationDescription:"Manage your site information."},users:{users:"User Management",usersDescription:"Manage your user management configuration.",userRegistration:"User Registration",allowRegistration:"Allow User Registration",allowRegistrationDescription:"Enable new users to register accounts",emailVerification:"Email Verification Required",emailVerificationDescription:"Require email verification for new accounts",autoApprove:"Auto-approve Users",autoApproveDescription:"Automatically approve new user registrations",defaultRole:"Default User Role"},"api-keys":{apiKeys:"API Keys",apiKeysDescription:"Manage your api keys configuration.",productionApiKey:"Production API Key",developmentApiKey:"Development API Key",generateNewKey:"Generate New Key",apiSecurity:"API Security",rateLimiting:"Rate Limiting",rateLimitingDescription:"Enable API rate limiting protection",corsProtection:"CORS Protection",corsProtectionDescription:"Cross-origin request security",apiLogging:"API Logging",apiLoggingDescription:"Log all API requests and responses"},appearance:{appearance:"Appearance",appearanceDescription:"Manage your appearance settings.",colorTheme:"Color Theme",darkMode:"Dark Mode",darkModeDescription:"Switch to dark theme",compactMode:"Compact Mode",compactModeDescription:"Reduce spacing and padding",animations:"Animations",animationsDescription:"Enable interface animations",themeBlue:"Blue",themeGreen:"Green",themePurple:"Purple"},logs:{title:"Logs",description:"View all your actions in the system",table:{objectId:"Object Identifier",dateTime:"Date and Time of Change",changeType:"Change Type",noLogs:"No user logs found",noLogsDescription:"No user logs found"}},permissions:{title:"Permissions",user:"User",role:"Role",lastActive:"Last Active",actions:"Actions",rolePermissions:"Role Permissions",rolePermissionsDescription:"Permissions assigned to each role in the system.",permission:"Permission",admin:"Admin",editor:"Editor",author:"Author",viewer:"Viewer",customizePermissions:"Customize Permissions",inviteUser:"Invite User",searchUsers:"Search users...",createContent:"Create Content",editContent:"Edit Content",deleteContent:"Delete Content",publishContent:"Publish Content",manageMedia:"Manage Media",manageUsers:"Manage Users",manageSettings:"Manage Settings",remove:"Remove",edit:"Edit",time:{hoursAgo:"{count} hours ago",hourAgo:"1 hour ago",daysAgo:"{count} days ago",dayAgo:"1 day ago",weeksAgo:"{count} weeks ago",weekAgo:"1 week ago",minutesAgo:"{count} minutes ago",minuteAgo:"1 minute ago",justNow:"just now"},roles:{admin:"Admin",editor:"Editor",author:"Author",viewer:"Viewer"}}},h={type:{heading:"Heading",paragraph:"Paragraph"}},y={name:"SOFTPRO software package: GIS MBK Kamyansk City TG",tagline:"Do more with less"},C={home:"Home",about:"About",profile:"Profile",settings:"Settings",logout:"Log out"},S={ok:"OK",save:"Save",cancel:"Cancel",close:"Close",delete:"Delete",edit:"Edit",loading:"Loading…",retry:"Retry",title:"Title",description:"Description",keywords:"Keywords",successMessage:"Success",errorMessage:"Error",success:"Success",error:"Error",meta:"Meta",actions:{add:"Add",save:"Save",cancel:"Cancel",edit:"Edit",delete:"Delete",create:"Create",preview:"Preview",search:"Search",filter:"Filter",export:"Export",addField:"Add Field",success:"Success",error:"Error",back:"Back"},status:{published:"Published",draft:"Draft",archived:"Archived"},content:"Content",pagination:{showing:"Showing",to:"to",of:"of",results:"results",previous:"Previous",next:"Next"}},b={title:"Sign in",email:"Email",password:"Password",remember:"Remember me",submit:"Sign in",errors:{invalid:"Invalid email or password",required:"{field} is required"}},A={choose:"Choose columns to display",columns:"Columns",actions:"Actions",search:"Search",export:"Export",exportTitle:"Export table",close:"Close",chooseColumns:"Select columns for export:",selectAll:"Select all",selectCurrent:"Select current",none:"None",chooseFormat:"Choose table format:",time:{weeksAgo:"{count} weeks ago",weekAgo:"1 week ago",daysAgo:"{count} days ago",dayAgo:"1 day ago",hoursAgo:"{count} hours ago",hourAgo:"1 hour ago",minutesAgo:"{count} minutes ago",minuteAgo:"1 minute ago",justNow:"just now"},format:{json:"JSON format",csv:"CSV format",xlsx:"XLSX format"},cancel:"Cancel",download:"Download table"},w={search:"Search",more:"Show more",less:"Show less",selected:"selected",clear:"Clear",apply:"Apply",from:"From",to:"To",notfound:"Nothing found",period:"Period",today:"Today",week:"Week",month:"Month",quarter:"Quarter",year:"Year",alltime:"All Time",prev:"Prev",next:"Next"},D={title:"Items",add:"Add item",count:"No items | One item | {count} items",created:"Item “{name}” has been created",deleted:"Item deleted"},M={network:"Network error. Please try again.",notFound:"We couldn't find what you were looking for."},v={saved:"Changes saved",copied:"Copied to clipboard"},P={title:"Users",description:"Manage your users.",createUser:"Create User",editUser:"Edit User",searchUsers:"Search users...",createUserFailed:"Create user failed",createUserSuccess:"User created successfully",editUserFailed:"Edit user failed",editUserSuccess:"User edited successfully",deleteUserSuccess:"User deleted successfully",deleteUserFailed:"User deleted failed",form:{name:"Name",description:"Description",color:"Color",created_at:"Created At",count_data:"Count of Used",topic:"Topic"},emptyTitle:"No users found",emptyDescription:"Create your first user to get started.",emptyButton:"Create User"},T="fetchContentTypes",k="action",F="formValues",N="metaParentValue",U="blur",E="noFilesInFolder",L={menu:"Guide for menu",general:"Guide",media:"Guide for media",settings:"Guide for settings",users:"Guide for users",content:"Guide for content",appOverview:"Guide for app overview",collections:"Guide for collections",help:"Help"},I={reference:e,navigation:t,dashboard:o,collections:i,articles:a,posts:s,singletons:n,media:r,tags:l,feedback:c,email:d,emptyData:u,form:m,builder:p,menu:g,settings:f,block:h,app:y,nav:C,common:S,auth:b,table:A,filter:w,items:D,errors:M,toast:v,users:P,fetchContentTypes:T,action:k,delete:"delete","create-folder":"create-folder",formValues:F,metaParentValue:N,blur:U,"-":"-",noFilesInFolder:E,guide:L};export{k as action,y as app,a as articles,b as auth,h as block,U as blur,p as builder,i as collections,S as common,o as dashboard,I as default,d as email,u as emptyData,M as errors,c as feedback,T as fetchContentTypes,w as filter,m as form,F as formValues,L as guide,D as items,r as media,g as menu,N as metaParentValue,C as nav,t as navigation,E as noFilesInFolder,s as posts,e as reference,f as settings,n as singletons,A as table,l as tags,v as toast,P as users};
@@ -1,6 +0,0 @@
1
- import{c}from"./index-yMJAVBXk.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=c("EyeIcon",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);export{r as E};
@@ -1,6 +0,0 @@
1
- import{c as a}from"./index-yMJAVBXk.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 t=a("FileIcon",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);export{t as F};
@@ -1 +0,0 @@
1
- import{_ as x}from"./SettingsTitle-t4WJBFxZ.js";import{_ as w}from"./SettingsTable-CY5pZx1z.js";import{u as N,m as r,p as _,a as D,f as u,b as c,w as S,e as l,o as f,h as C,t as y,g as U,c1 as j}from"./index-yMJAVBXk.js";import{y as p}from"./index-DGweaj24.js";import{l as q}from"./index-DCW2e4Az.js";import{S as T}from"./save-FeDrOUOd.js";const V=e=>[{key:"name",label:e("settings.general.siteName"),type:"text",value:e("settings.general.siteName"),col:6,validators:["required"]},{key:"url",label:e("settings.general.siteUrl"),type:"text",value:e("settings.general.siteUrl"),col:6,validators:["required"]},{key:"previewUrl",label:e("settings.general.previewUrl"),type:"text",value:"http://ip.local.softpro.ua",col:3,validators:["required"]},{key:"logo",label:e("settings.general.logoSite"),type:"file",col:3,validators:["required"]},{key:"logo-cms",label:e("settings.general.logoCms"),type:"file",col:3,validators:["required"]},{key:"image-login",label:e("settings.general.imageLogin"),type:"file",col:3,validators:["required"]},{key:"description",label:e("settings.general.siteDescription"),type:"textarea",value:e("settings.general.siteDescription")},{key:"language",label:e("settings.general.language"),type:"select",col:6,validators:["required"],options:[{text:"Ukrainian",id:"uk"},{text:"English",id:"en"}]},{key:"languages",label:e("settings.general.languages"),type:"select",multiple:!0,col:6,options:[{text:"Ukrainian",id:"uk"},{text:"English",id:"en"}]},{key:"contacts",label:e("settings.general.contacts"),type:"DataTable",colModel:[{key:"title",ua:e("settings.general.title"),type:"text"},{key:"content",ua:e("settings.general.content"),type:"text"},{key:"url",ua:e("settings.general.url"),type:"text"}]},{key:"showSocialsNumber",label:e("settings.general.showSocialsNumber"),type:"number"},{key:"socials",label:e("settings.general.socials"),type:"DataTable",colModel:[{key:"id",ua:e("settings.general.name"),type:"text"},{key:"link",ua:e("settings.general.url"),type:"text"}]},{key:"mapCoords",label:e("settings.general.mapCoords"),type:"text"}],$={class:"w-full max-w-7xl mx-auto space-y-6"},E={class:"space-y-6 max-w-7xl mx-auto"},M={class:"flex justify-end space-x-2 pt-4"},B={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 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"},P={__name:"general",setup(e){const{t:s}=N(),g=r({}),o=r({}),d=r(0),b=async()=>{var i,n;const t=await(await fetch("/api/settings")).json();Object.assign(o.value,((i=t==null?void 0:t.settings)==null?void 0:i.site_info)||{}),d.value++,k(((n=t==null?void 0:t.settings)==null?void 0:n.notifications)||{})},k=a=>{a&&Object.entries(a).forEach(([t,i])=>{const n=m.value.find(v=>v.key===t);n&&(n.checked=i)})},h=async()=>{if(await g.value.validate()){p({type:"warning",title:s("common.actions.warning"),message:s("settings.general.saveChangesFailed")});return}let t={notifications:{}};m.value.forEach(i=>{t.notifications[i.key]=i.checked}),t.site_info=o.value;try{await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),p({title:s("settings.successTitle"),message:s("settings.successMessage"),type:"success"})}catch(i){console.error(i),p({title:s("settings.errorTitle"),message:s("settings.errorMessage"),type:"error"})}},m=r([{key:"email",label:s("settings.general.emailNotifications"),description:s("settings.general.emailNotificationsDescription"),checked:!0},{key:"push",label:s("settings.general.pushNotifications"),description:s("settings.general.pushNotificationsDescription"),checked:!1},{key:"sms",label:s("settings.general.smsNotifications"),description:s("settings.general.smsNotificationsDescription"),checked:!1},{key:"desktop",label:s("settings.general.desktopNotifications"),description:s("settings.general.desktopNotificationsDescription"),checked:!0}]);return _(()=>{b()}),(a,t)=>(f(),D("div",$,[u(x,{title:a.$t("settings.general.general"),description:a.$t("settings.general.generalDescription")},null,8,["title","description"]),c("div",E,[u(w,{icon:l(j),title:a.$t("settings.general.siteInformation"),color:"blue"},{content:S(()=>[(f(),C(l(q),{form:g.value,"onUpdate:form":t[0]||(t[0]=i=>g.value=i),schema:l(V)(l(s)),modelValue:o.value,"onUpdate:modelValue":t[1]||(t[1]=i=>o.value=i),key:d.value},null,8,["form","schema","modelValue"])),c("div",M,[c("button",B,y(a.$t("settings.general.cancel")),1),c("button",{onClick:h,class:"inline-flex items-center justify-center whitespace-nowrap rounded-md text-white 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 text-primary-foreground shadow h-9 px-4 py-2 bg-blue-600 hover:bg-blue-700"},[u(l(T),{class:"w-4 h-4 mr-2"}),U(" "+y(a.$t("settings.general.saveChanges")),1)])])]),_:1},8,["icon","title"])])]))}};export{P as default};
@@ -1 +0,0 @@
1
- import{d as T,m as A,A as U,z as D,o as p,h as K,V as q,i as Z,w as ee,x as se,a as C,b as d,t as R,v as _,e,bN as fe,n as L,f as Y,g as I,j as O,k as P,bA as ne,p as ce,G as ve,B as E,R as H,S as Be,T as Me,am as Te,N as me,aH as Ie,C as Q,aZ as ze,y as je,s as We}from"./index-yMJAVBXk.js";import{y as ke}from"./index-DGweaj24.js";const G=(l,r)=>{const g=l.__vccOpts||l;for(const[a,i]of r)g[a]=i;return g},Ye={},qe={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-reload absolute inline mr-1 text-gray-800 transition-all cursor-pointer active:rotate-90 right-1 top-1 hover:text-blue-500"};function Pe(l,r){return p(),C("svg",qe,[...r[0]||(r[0]=[d("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),d("path",{d:"M19.933 13.041a8 8 0 1 1 -9.925 -8.788c3.899 -1 7.935 1.007 9.425 4.747"},null,-1),d("path",{d:"M20 4v5h-5"},null,-1)])])}const Ne=G(Ye,[["render",Pe]]),Qe={class:"flex items-center justify-between w-full text-sm"},He={class:"flex items-center cursor-pointer w-full"},Ge={key:0,width:"16",height:"auto",src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J3doaXRlJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J00xMi4yMDcgNC43OTNhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMGwtMi0yYTEgMSAwIDAxMS40MTQtMS40MTRMNi41IDkuMDg2bDQuMjkzLTQuMjkzYTEgMSAwIDAxMS40MTQgMHonLz48L3N2Zz4="},Xe=["value"],Ze={class:"w-[calc(100%-18px)] flex flex-row items-center justify-between pl-[10px]"},Je={class:"flex flex-row items-center font-normal text-gray-800 gap-x-1"},el={key:0,class:"text-xs text-gray-500 dark:text-neutral-500 pr-1"},ye=T({__name:"list-item",props:{layout:{},count:{},type:{},label:{},value:{},isSelected:{type:Boolean},color:{},highlighted:{type:Boolean}},emits:["itemClick"],setup(l,{expose:r,emit:g}){const a=l,i=g;function o(){i("itemClick",a.value)}const h=A(null);return r({el:h}),(n,m)=>(p(),C("div",{class:"flex items-center w-full rounded-lg group hover:bg-gray-100",ref_key:"el",ref:h},[d("div",Qe,[d("div",He,[d("label",{for:"radio-9740",class:L([["inline","popover"].includes(l.layout)?"text-sm text-gray-500 px-2 w-full py-2 cursor-pointer !flex flex-row items-center":"flex flex-row items-center w-full px-2 py-2 text-sm text-gray-500 cursor-pointer",{"bg-blue-100":l.highlighted}]),onClick:je(o,["stop","prevent"])},[d("div",{class:L(["w-[18px] h-[18px] border flex items-center justify-center",[l.type=="checkbox"?"rounded-[4px]":"rounded-full",l.color?`bg-[${l.color}] border-[#ffffff]`:l.isSelected?"bg-[#2563eb] border-[#ffffff]":"bg-[#ffffff] border-[#d9d9d9]"]])},[l.isSelected?(p(),C("img",Ge)):_("",!0)],2),d("input",{type:"checkbox",class:"hidden",id:"radio-9740",value:l.value},null,8,Xe),d("div",Ze,[d("span",Je,R(l.label??"Відсутні данні"),1),l.count?(p(),C("div",el," ("+R(l.count)+") ",1)):_("",!0)])],2)])])],512))}});function Ke(l,r){const{options:g=[],limit:a=20}=l;function i(u){return Array.isArray(u)?u[0]:u}const o=A(i(l.modelValue)),h=A(""),n=A(!1),m=A([]),b=A("id"),v=A("text"),s=A(!1),k=A(l.layout!=="popover"&&g.length>a);function w(u){const y=u.find(Boolean)??{},B=["id","value","code","key"].find(j=>j in y)??"id",M=["text","label","name","title"].find(j=>j in y)??"text";return{autoValueKey:B,autoLabelKey:M}}if(g.length>0){const u=w(g);b.value=u.autoValueKey,v.value=u.autoLabelKey}const V=U(()=>{const u=m.value;return l.layout==="popover"||s.value?u:u.slice(0,a)});D(()=>l.modelValue,u=>{o.value=i(u)},{immediate:!0}),m.value=[...g].sort((u,y)=>l.sort==="count"?y.count&&u.count?y.count-u.count:0:l.sort==="name"?String(u[v.value]??"").localeCompare(String(y[v.value]??"")):0);function c(u){return o.value===u[b.value]}function t(u){o.value=u[b.value],r("update:modelValue",o.value),r("change",{name:l.name,value:o.value})}function f(){o.value=void 0,r("update:modelValue",o.value),r("clear",l.name)}function x(){s.value=!s.value}return{innerValue:o,searchTerm:h,filteredOptions:V,isSelected:c,selectItem:t,clear:f,toggleShowAll:x,isReqProc:n,showAll:s,isEnableShowAll:k,labelKey:v,valueKey:b,allOptions:m}}const ll={},tl={class:"w-48 mx-auto",viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function al(l,r){return p(),C("svg",tl,[...r[0]||(r[0]=[We('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>',12)])])}const ge=G(ll,[["render",al]]),ol={},rl={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:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down w-[14px] rotate"};function nl(l,r){return p(),C("svg",rl,[...r[0]||(r[0]=[d("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),d("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const de=G(ol,[["render",nl]]),ul={},il={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:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down w-[14px] rotate-[180deg]"};function sl(l,r){return p(),C("svg",il,[...r[0]||(r[0]=[d("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),d("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const be=G(ul,[["render",sl]]),cl={key:0,class:"w-full"},dl={class:"flex flex-col items-center justify-center p-5 text-center"},pl={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},fl={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},vl=T({__name:"radio",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=l,i=A(null),o=g,{innerValue:h,filteredOptions:n,isSelected:m,selectItem:b,clear:v,toggleShowAll:s,isReqProc:k,showAll:w,isEnableShowAll:V,labelKey:c,valueKey:t,allOptions:f}=Ke({...a,modelValue:a.modelValue??a.default??""},o);return r({clear:v,inputTextRef:i}),D(()=>a.modelValue,x=>{x===void 0&&(h.value=void 0)}),(x,u)=>(p(),C("div",{class:L([l.layout==="popover"?"flex flex-col h-full":"flex flex-col vs-filter-checkbox"])},[d("div",{class:L([l.layout==="popover"?"flex-1 overflow-y-auto max-h-64 p-2":"",l.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(p(!0),C(O,null,P(e(n),y=>(p(),K(ye,{layout:l.layout,key:y[e(t)],count:y.count,label:y[e(c)],color:y.color,type:"radio",value:y[e(t)],"is-selected":e(m)(y),onItemClick:B=>e(b)(y)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),128))],2),l.type==="select"&&e(n).length===0&&!e(k)?(p(),C("div",cl,[d("div",dl,[Y(ge),u[4]||(u[4]=d("div",{class:"max-w-sm mx-auto mt-6"},[d("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"За вашим запитом нічого не знайдено"),d("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])):_("",!0),l.layout!=="popover"&&l.type!=="select"?(p(),C(O,{key:1},[!e(w)&&e(V)?(p(),C("div",{key:0,onClick:u[0]||(u[0]=(...y)=>e(s)&&e(s)(...y)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[u[5]||(u[5]=I(" Показати більше ",-1)),Y(de)])):_("",!0),e(w)?(p(),C("div",{key:1,onClick:u[1]||(u[1]=(...y)=>e(s)&&e(s)(...y)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[u[6]||(u[6]=I(" Показати менше ",-1)),Y(be)])):_("",!0)],64)):_("",!0),l.cleanable?(p(),C(O,{key:2},[l.layout==="inline"?(p(),C("div",pl,[I(R(e(h)||e(h)===null?1:0)+" з "+R(e(f).length)+" обрано ",1),E(d("button",{class:"text-gray-600 hover:text-gray-800",onClick:u[2]||(u[2]=(...y)=>e(v)&&e(v)(...y))}," Очистити ",512),[[H,e(h)!==""&&e(h)!==void 0]])])):_("",!0),l.layout==="popover"?(p(),C("div",fl,[d("span",null,R(e(h)||e(h)===null?1:0)+" з "+R(e(f).length)+" обрано",1),E(d("button",{class:"text-gray-600 hover:text-gray-800",onClick:u[3]||(u[3]=(...y)=>e(v)&&e(v)(...y))}," Очистити ",512),[[H,e(h)!==""&&e(h)!==void 0]])])):_("",!0)],64)):_("",!0)],2))}});function De(l,r){const{options:g=[],limit:a=20}=l;function i(u){return Array.isArray(u)?u:u?[u]:[]}const o=A(i(l.modelValue)),h=A(""),n=A(!1),m=A([]),b=A("id"),v=A("text"),s=A(!1),k=A(l.layout!=="popover"&&g.length>a);function w(u){const y=u.find(Boolean)??{},B=["id","value","code","key"].find(j=>j in y)??"id",M=["text","label","name","title"].find(j=>j in y)??"text";return{autoValueKey:B,autoLabelKey:M}}if(g.length>0){const u=w(g);b.value=u.autoValueKey,v.value=u.autoLabelKey}const V=U(()=>{const u=m.value;return l.layout==="popover"||s.value?u:u.slice(0,a)});D(()=>l.modelValue,u=>{o.value=i(u)},{immediate:!0}),m.value=[...g].sort((u,y)=>l.sort==="count"?y.count&&u.count?y.count-u.count:0:l.sort==="name"?String(u[v.value]).localeCompare(String(y[v.value])):0);function c(u){return o.value&&o.value.includes(u[b.value])}function t(u){const y=o.value.includes(u[b.value]);o.value=y?o.value.filter(B=>B!==u[b.value]):[...o.value,u[b.value]],r("update:modelValue",o.value),r("change",{name:l.name,value:o.value})}function f(){o.value=[],r("update:modelValue",o.value),r("clear",l.name)}function x(){s.value=!s.value}return{innerValue:o,searchTerm:h,filteredOptions:V,isSelected:c,selectItem:t,clear:f,toggleShowAll:x,isReqProc:n,showAll:s,isEnableShowAll:k,labelKey:v,valueKey:b,allOptions:m}}const Ce={en:{search:"Search",more:"Show more",less:"Show less",selected:"selected",clear:"Clear",notfound:"Nothing found",period:"Period",today:"Today",week:"Week",month:"Month",quarter:"Quarter",year:"Year",alltime:"All Time",prev:"Prev",next:"Next"},uk:{search:"Пошук",more:"Показати більше",less:"Показати меньше",selected:"обрано",clear:"Очистити",notfound:"Нічого не знайдено",period:"Період",today:"Сьогодні",week:"Тиждень",month:"Місяць",quarter:"Квартал",year:"Рік",alltime:"Весь час",prev:"Попередній період",next:"Настпуний період"}};function ml(l){const r=l.split(".")[1];return(Ce[localStorage.locale||navigator.language]||Ce.uk)[r]}function re(){const l=Ie();return l.appContext.config.globalProperties.$i18n?l.appContext.config.globalProperties.$t:ml}const yl={key:0,class:"w-full"},gl={class:"flex flex-col items-center justify-center p-5 text-center"},bl={class:"max-w-sm mx-auto mt-6"},hl={class:"font-medium text-gray-800 dark:text-neutral-200"},xl={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},wl={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},Ve=T({__name:"checkbox",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=re(),i=l,o=g,{innerValue:h,filteredOptions:n,isSelected:m,selectItem:b,clear:v,toggleShowAll:s,isReqProc:k,showAll:w,isEnableShowAll:V,labelKey:c,valueKey:t,allOptions:f}=De({...i,modelValue:i.modelValue},o);return D(()=>i.modelValue,x=>{x===void 0&&(h.value=[])}),r({clear:v}),(x,u)=>(p(),C("div",{class:L([l.layout==="popover"?"flex flex-col h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[d("div",{class:L([l.layout==="popover"?"flex-1 overflow-y-auto max-h-64 p-2":"",l.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(p(!0),C(O,null,P(e(n),y=>(p(),K(ye,{layout:l.layout,count:y.count,label:y[e(c)],color:y.color,type:"checkbox",value:y[e(t)],"is-selected":e(m)(y),onItemClick:B=>e(b)(y)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),256))],2),l.type==="select"&&e(n).length===0&&!e(k)?(p(),C("div",yl,[d("div",gl,[Y(ge),d("div",bl,[d("p",hl,R(e(a)("filter.notfound")),1),u[4]||(u[4]=d("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):_("",!0),l.layout!=="popover"&&l.type!=="select"?(p(),C(O,{key:1},[!e(w)&&e(V)?(p(),C("div",{key:0,onClick:u[0]||(u[0]=(...y)=>e(s)&&e(s)(...y)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[I(R(e(a)("filter.more"))+" ",1),Y(de)])):_("",!0),e(w)?(p(),C("div",{key:1,onClick:u[1]||(u[1]=(...y)=>e(s)&&e(s)(...y)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[I(R(e(a)("filter.less"))+" ",1),Y(be)])):_("",!0)],64)):_("",!0),l.cleanable?(p(),C(O,{key:2},[l.layout==="inline"?(p(),C("div",xl,[I(R(e(h).length)+" / "+R(e(f).length)+" "+R(e(a)("filter.selected"))+" ",1),E(d("button",{class:"text-gray-600 hover:text-gray-800",onClick:u[2]||(u[2]=(...y)=>e(v)&&e(v)(...y))},R(e(a)("filter.clear")),513),[[H,e(h).length!==0]])])):_("",!0),l.layout==="popover"?(p(),C("div",wl,[d("span",null,R(e(h).length)+" / "+R(e(f).length)+" "+R(e(a)("filter.selected")),1),E(d("button",{class:"text-gray-600 hover:text-gray-800",onClick:u[3]||(u[3]=(...y)=>e(v)&&e(v)(...y))},R(e(a)("filter.clear")),513),[[H,e(h).length!==0]])])):_("",!0)],64)):_("",!0)],2))}}),kl={},Cl={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"15px",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-search stroke-gray-500 transition-all"};function Vl(l,r){return p(),C("svg",Cl,[...r[0]||(r[0]=[d("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),d("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"},null,-1),d("path",{d:"M21 21l-6 -6"},null,-1)])])}const Fe=G(kl,[["render",Vl]]),_l={},Al={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-x stroke-gray-500 hover:stroke-red-500 transition-all",width:"15px",height:"15px"};function Sl(l,r){return p(),C("svg",Al,[...r[0]||(r[0]=[d("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),d("path",{d:"M18 6l-12 12"},null,-1),d("path",{d:"M6 6l12 12"},null,-1)])])}const Le=G(_l,[["render",Sl]]);class pe{static getWidthClass(r){return typeof r=="number"?`max-w-[${r}px]`:typeof r=="string"?r.endsWith("%")||r.endsWith("px")?`max-w-[${r}]`:`max-w-${r}`:"w-full"}}const Rl={class:"absolute bottom-2/4 translate-y-2/4 cursor-pointer left-3"},Bl=["placeholder"],Ml=T({__name:"text-input",props:{id:{},name:{},title:{},type:{},label:{},width:{default:220},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{emit:r}){var b;const g=l,a=A((g.placeholder||g.label||g.title||g.name||"search").toString()),i=r,o=A(((b=g.modelValue)==null?void 0:b.toString())??"");D(()=>g.modelValue,v=>{v!==o.value&&(o.value=(v==null?void 0:v.toString())??"")});let h=null;function n(){if(o.value=o.value.trimStart(),o.value.length===0){m();return}h&&clearTimeout(h),h=setTimeout(()=>{i("update:modelValue",o.value),i("change",{name:g.name,value:o.value})},300)}function m(){o.value="",i("update:modelValue",""),i("clear",g.name)}return(v,s)=>(p(),C("div",{class:L(["vs-form-text relative bg-white rounded-lg [&>input]:py-[7px] [&>input]:max-h-[38px] [&>input]:ps-10 [&>input]:pe-8 [&>input]:block [&>input]:w-full [&>input]:bg-gray-100 [&>input]:border-transparent [&>input]:rounded-lg [&>input]:text-sm [&>input]:focus:bg-white [&>input]:focus:border-blue-500 [&>input]:focus:ring-blue-500 [&>input]:disabled:opacity-50 [&>input]:disabled:pointer-events-none [&>input]:dark:bg-neutral-700 [&>input]:dark:border-transparent [&>input]:dark:text-neutral-400 [&>input]:dark:placeholder:text-neutral-400 dark:focus:bg-neutral-800 dark:focus:ring-neutral-600",l.layout==="inline"?e(pe).getWidthClass(l.width):"mb-2"+(l.layout==="popover"?" m-2":"")])},[d("div",Rl,[Y(Fe)]),o.value!==""?(p(),C("div",{key:0,onClick:m,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer"},[Y(Le)])):_("",!0),E(d("input",{type:"text","onUpdate:modelValue":s[0]||(s[0]=k=>o.value=k),onInput:n,placeholder:a.value,class:"!pr-7 !pl-8 bg-white h-[38px] min-w-[100px] text-sm py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm text-stone-800 placeholder:text-stone-400 focus:border-2 focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,40,Bl),[[Q,o.value]])],2))}});function Oe(l={color:"blue"}){return U(()=>{const r=`w-full px-3 py-2 border-solid border border-gray-300 text-sm rounded focus:outline-none focus:ring-2 focus:ring-${l.color}-500 focus:border-transparent`;return(l==null?void 0:l.size)==="sm"?`${r}h-[32px]`:`${r}h-[38px]`})}function jl(){return"rounded-md font-medium border-gray-200 border-solid disabled:pointer-events-none disabled:opacity-50 px-4 py-2 w-full bg-transparent border text-black text-sm h-[38px]"}function Kl(){return"font-medium border-gray-200 border-solid disabled:pointer-events-none disabled:opacity-50 border h-7 rounded-md text-xs px-2 py-1 hover:bg-gray-100"}function Ue(l){return l==="ghost"?"inline-flex relative py-2 px-4 items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent text-gray-600 hover:bg-blue-100 hover:text-gray-800 focus:outline-hidden focus:bg-gray-100 focus:text-gray-800 disabled:opacity-50 disabled:pointer-events-none dark:text-gray-500 dark:hover:bg-blue-800/30 dark:hover:text-blue-400 dark:focus:bg-blue-800/30 dark:focus:text-blue-400":l==="soft"?"inline-flex relative py-2 px-4 items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 hover:bg-gray-200 focus:outline-hidden focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:text-blue-400 dark:hover:bg-blue-900 dark:focus:bg-blue-900":"relative border-solid border-gray-200 focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-input hover:bg-gray-100 border px-4 py-2 gap-2 bg-transparent h-[38px]"}const Dl={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Fl=["placeholder","disabled"],Ll={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Ol={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Ul=["placeholder","disabled"],$l=["disabled"],El=T({__name:"range-input",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=Oe(),i=jl(),o=re(),h=l,n=A(h.modelValue??h.default??[]),m=g,b=U({get:()=>h.modelValue??n.value,set:k=>{h.modelValue!==void 0?m("update:modelValue",k):n.value=k}});function v(){m("change",{name:h.name,value:b.value||n.value})}function s(){n.value=[],b.value=n.value,m("clear",h.name)}return D(()=>h.modelValue,k=>{k!==void 0&&h.layout!=="popover"?(n.value=k,m("update:modelValue",k)):n.value=[]}),r({clear:s,currentValue:b}),(k,w)=>{var V,c;return p(),C(O,null,[d("div",null,[d("div",{class:L(l.layout==="vertical"?"inline-flex items-center gap-2":"space-y-3 p-2")},[d("div",null,[l.layout!=="vertical"?(p(),C("label",Dl,R(e(o)("filter.from")),1)):_("",!0),E(d("input",{type:"number",class:L(e(a)),placeholder:((V=l.placeholder)==null?void 0:V[0])??"min",step:"1",style:{outline:"none"},"onUpdate:modelValue":w[0]||(w[0]=t=>b.value[0]=t),disabled:l.disabled},null,10,Fl),[[Q,b.value[0]]])]),l.layout==="vertical"?(p(),C("label",Ll," - ")):_("",!0),d("div",null,[l.layout!=="vertical"?(p(),C("label",Ol,R(e(o)("filter.to")),1)):_("",!0),E(d("input",{type:"number",class:L(e(a)),placeholder:((c=l.placeholder)==null?void 0:c[1])??"max",min:"0",max:"1000000000000000",step:"1",style:{outline:"none"},"onUpdate:modelValue":w[1]||(w[1]=t=>b.value[1]=t),disabled:l.disabled},null,10,Ul),[[Q,b.value[1]]])]),["popover","inline","vertical"].includes(l.layout)?(p(),C("button",{key:1,onClick:v,class:L(e(i)+(l.layout==="vertical"?" w-[50px]":" bg-blue-100 hover:bg-blue-200"))},R(l.layout==="vertical"?"Ok":e(o)("filter.apply")),3)):_("",!0),["popover","inline"].includes(l.layout)?(p(),C("button",{key:2,disabled:!(b.value[0]||b.value[1]),onClick:s,class:L(e(i)+" hover:bg-gray-100")},R(e(o)("filter.clear")),11,$l)):_("",!0)],2)]),(l.cleanable&&n.value.length,_("",!0))],64)}}});function Tl(l){return String(l).charAt(0).toUpperCase()+String(l).slice(1)}class W{static format(r){const g=r.getFullYear(),a=(r.getMonth()+1).toString().padStart(2,"0"),i=r.getDate().toString().padStart(2,"0");return`${g}-${a}-${i}`}static getShiftedDay(r,g=0){const a=r?new Date(r):new Date;return a.setDate(a.getDate()+g),this.format(a)}static getLastWeekRange(r,g,a=0){if(r&&g){const b=new Date(r),v=new Date(g);return b.setDate(b.getDate()+a*7),v.setDate(v.getDate()+a*7),[this.format(b),this.format(v)]}const i=new Date,o=i.getDay(),h=o===0?13:o-1+7,n=new Date(i);n.setDate(i.getDate()-h+a*7);const m=new Date(n);return m.setDate(n.getDate()+6),[this.format(n),this.format(m)]}static getMonthRange(r,g,a=0){let i;r?i=new Date(r):i=new Date,i=new Date(i.getFullYear(),i.getMonth()+a,1);const o=i,h=new Date(i.getFullYear(),i.getMonth()+1,0);return[this.format(o),this.format(h)]}static getQuarterRange(r,g,a=0){const i=r||g,o=i?new Date(i):new Date;let h=Math.floor(o.getMonth()/3);h+=a;const n=(h%4+4)%4*3,m=o.getFullYear()+Math.floor(h/4),b=new Date(m,n,1),v=new Date(m,n+3,0);return[this.format(b),this.format(v)]}static getYear(r,g=0){let a;return r&&/^\d{4}$/.test(r)?a=parseInt(r,10):r?a=new Date(r).getFullYear():a=new Date().getFullYear(),String(a+g)}static getYearRange(r,g=0){let a;return r&&/^\d{4}$/.test(r)?a=parseInt(r,10):r?a=new Date(r).getFullYear():a=new Date().getFullYear(),[this.format(new Date(a+g,0,1)),this.format(new Date(a+g+1,0,0))]}static getRangeFromDaysBefore(r){const g=new Date,a=new Date(g.getTime());return a.setDate(g.getDate()-r),[this.format(a),this.format(g)]}}function $e(l,r){const{popoverRef:g}=l,a=re(),i=A(""),o=A(l.modelValue??l.default??[]),h=A(0);function n(){const f=W.getRangeFromDaysBefore(h.value);return o.value=[...f],r("change",{name:l.name,value:o.value}),r("update:modelValue",o.value),f}function m(f){var u;i.value=f,(u=g.value)==null||u.close();const x=[];switch(i.value){case"today":x.push(W.getShiftedDay()),x.push(W.getShiftedDay());break;case"week":x.push(...W.getLastWeekRange());break;case"month":x.push(...W.getMonthRange());break;case"quarter":x.push(...W.getQuarterRange());break;case"year":x.push(...W.getYearRange());break;case"last_7_days":h.value=7,n();break;case"range":h.value=7,x.push(...n());break}o.value=[...x],r("change",{name:l.name,value:o.value}),r("update:modelValue",o.value)}function b(){const f=[];switch(i.value){case"today":f.push(W.getShiftedDay(o.value[0],1));break;case"week":f.push(...W.getLastWeekRange(o.value[0],o.value[1],1));break;case"month":f.push(...W.getMonthRange(o.value[0],o.value[1],1));break;case"quarter":f.push(...W.getQuarterRange(o.value[0],o.value[1],1));break;case"year":f.push(...W.getYearRange(o.value[0],1));break}o.value=[...f],r("change",{name:l.name,value:o.value}),r("update:modelValue",o.value)}function v(){const f=[];switch(i.value){case"today":f.push(W.getShiftedDay(o.value[0],-1));break;case"week":f.push(...W.getLastWeekRange(o.value[0],o.value[1],-1));break;case"month":f.push(...W.getMonthRange(o.value[0],o.value[1],-1));break;case"quarter":f.push(...W.getQuarterRange(o.value[0],o.value[1],-1));break;case"year":f.push(...W.getYearRange(o.value[0],-1));break}o.value=[...f],r("change",{name:l.name,value:o.value}),r("update:modelValue",o.value)}const s=["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"];function k(f){const[x,u,y]=f.split("-");return`${y}.${u}.${x}`}function w(f,x="long"){const u=new Date(Date.UTC(2e3,f-1,1));return new Intl.DateTimeFormat(localStorage.locale,{month:x,timeZone:"UTC"}).format(u)}function V(f){const{value:x}=o;switch(f){case"today":return k(x[0]);case"range":return"Період";case"week":return x[0]&&x[1]?`${k(x[0])} – ${k(x[1])}`:"";case"quarter":if(x[0]){const u=new Date(x[0]),y=u.getFullYear(),B=u.getMonth();return`${Math.floor(B/3)+1} ${a("filter.quarter")} ${y}`}return"";case"month":if(x[0]){const[u,y]=x[0].split("-");return`${w(parseInt(y,10))} ${u}`}return"";case"year":return x[0]||"";case"last_7_days":return"За останні дні";default:return l.label??""}}const c=U(()=>i.value?V(i.value):l.label??"");function t(){i.value="",o.value=[],r("update:modelValue",[]),r("clear",l.name)}return{activeMode:i,innerValue:o,daysBefore:h,onDaysBeforeChange:n,onSelectChange:m,nextClick:b,prevClick:v,ukMonths:s,formatDisplayDate:k,getModeLabel:V,currentLabel:c,clear:t}}const Il={key:0,class:"relative flex w-full h-auto gap-2 filter-date m-2 flex-wrap"},zl={key:0,class:"flex gap-1 !w-[75%] rounded-lg"},Wl=["max","disabled"],Yl=["min","disabled"],ql={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Pl=["max","disabled"],Nl={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Ql={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Hl=["min","disabled"],Gl={class:"flex gap-1 pt-2"},Xl=["onClick"],Zl=T({__name:"date-input",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=l,i=Oe(),o=Kl(),h=g,n=A(null),{activeMode:m,innerValue:b,onSelectChange:v,nextClick:s,prevClick:k,clear:w}=$e({...a,popoverRef:n},h);return D(()=>a.modelValue,V=>{V!==void 0?(b.value=V,h("update:modelValue",V)):(m.value="",b.value=[])}),r({clear:w,popoverRef:n}),(V,c)=>(p(),C(O,null,[l.layout==="inline"?(p(),C("div",Il,[e(m)!==""&&e(m)==="range"?(p(),C("div",zl,[E(d("input",{type:"date",max:e(b)[1],locale:"uk-UA","onUpdate:modelValue":c[0]||(c[0]=t=>e(b)[0]=t),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-lg focus:outline-blue-600",disabled:l.disabled},null,8,Wl),[[Q,e(b)[0]]]),E(d("input",{type:"date",min:e(b)[0],locale:"uk-UA","onUpdate:modelValue":c[1]||(c[1]=t=>e(b)[1]=t),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-lg focus:outline-blue-600 appearance-auto",disabled:l.disabled},null,8,Yl),[[Q,e(b)[1]]])])):_("",!0)])):_("",!0),d("div",{class:L(l.layout==="popover"?"space-y-3 p-2":"flex items-center gap-2")},[d("div",{class:L(l.layout!=="popover"?"w-[48%]":"")},[l.layout==="popover"?(p(),C("label",ql,"Від")):_("",!0),E(d("input",{type:"date",max:e(b)[1],locale:"uk-UA","onUpdate:modelValue":c[2]||(c[2]=t=>e(b)[0]=t),class:L(e(i)),disabled:l.disabled},null,10,Pl),[[Q,e(b)[0]]])],2),l.layout!=="popover"?(p(),C("label",Nl," - ")):_("",!0),d("div",{class:L(l.layout!=="popover"?"w-[48%]":"")},[l.layout==="popover"?(p(),C("label",Ql,"До")):_("",!0),E(d("input",{type:"date",min:e(b)[0],locale:"uk-UA","onUpdate:modelValue":c[3]||(c[3]=t=>e(b)[1]=t),class:L(e(i)),disabled:l.disabled},null,10,Hl),[[Q,e(b)[1]]])],2)],2),d("div",Gl,[(p(),C(O,null,P(["today","week","month","quarter","year"],t=>d("button",{key:t,class:L(e(o)+(e(m)===t?" bg-blue-100":"")),onClick:f=>e(v)(t)},R(e(Tl)(t)),11,Xl)),64)),d("button",{class:L(e(o)),onClick:c[4]||(c[4]=(...t)=>e(k)&&e(k)(...t))}," <",2),d("button",{class:L(e(o)),onClick:c[5]||(c[5]=(...t)=>e(s)&&e(s)(...t))}," >",2)]),(l.cleanable,_("",!0))],64))}});function Jl(l,r){const{api:g,options:a=[],limit:i=20,dataKey:o="data"}=l,h=l.multi;function n(S){return h?Array.isArray(S)?S:S?[S]:[]:Array.isArray(S)?S[0]:S}const m=A(n(l.modelValue)),b=A(""),v=A(!1),s=A(a),k=A("id"),w=A("text"),V=A(!1),c=A(l.layout!=="popover"&&a.length>i),t=A([]),f=A(0);function x(S){const $=S.find(Boolean)??{},z=["id","value","code","key"].find(oe=>oe in $)??"id",ae=["text","label","name","title"].find(oe=>oe in $)??"text";return{autoValueKey:z,autoLabelKey:ae}}if(a.length>0){const S=x(a);k.value=S.autoValueKey,w.value=S.autoLabelKey}const u=U(()=>{if(g)return s.value;const S=s.value;if(l.layout==="popover")return S;if(!b.value)return V.value?S:S.slice(0,i);const $=b.value.toLowerCase();return S.filter(z=>z[w.value].toLowerCase().includes($))});let y=null;async function B(S){if(g){v.value=!0;try{const $=new URL(g,window.location.origin);$.searchParams.set("json","1"),$.searchParams.set("key",S),$.searchParams.set("limit",i.toString());const z=await fetch($.toString());if(!z.ok){ke({type:"error",title:"Error",message:"Failed to fetch remote options"}),s.value=[];return}const ae=await z.json();if(!ae[o]){ke({type:"error",title:"Error",message:ae}),s.value=[];return}if(s.value=ae[o],s.value.length>0){const oe=x(s.value);k.value=oe.autoValueKey,w.value=oe.autoLabelKey}f.value=ae.total}catch($){console.error("Failed to fetch remote options:",$)}finally{v.value=!1}}}D(b,S=>{g&&(y&&clearTimeout(y),y=setTimeout(()=>{B(S)},200))}),D(()=>l.modelValue,S=>{m.value=n(S)},{immediate:!0});function M(S){return h&&Array.isArray(m.value)?m.value.includes(S[k.value]):m.value&&m.value===S[k.value]}function j(S){if(h&&!Array.isArray(m.value)&&(m.value=[]),h&&Array.isArray(m.value)){const $=m.value.includes(S[k.value]);m.value=$?m.value.filter(z=>z!==S[k.value]):[...m.value,S[k.value]],t.value=$?t.value.filter(z=>z!==S[w.value]):[...t.value,S[w.value]]}else m.value=S[k.value],t.value=S[w.value];r("update:modelValue",m.value),r("change",{name:l.name,value:m.value})}function N(){h?(m.value=[],t.value=[]):(m.value=void 0,t.value=[]),r("update:modelValue",m.value),r("clear",l.name)}function te(){y&&clearTimeout(y),b.value="",V.value=!1}function X(){V.value=!V.value}ve(()=>{y&&clearTimeout(y)});const F=A(-1);D(u,()=>{F.value=u.value.length>0?0:-1});function ue(S){const $=u.value.length;if(S.key==="ArrowDown")S.preventDefault(),F.value=(F.value+1)%$;else if(S.key==="ArrowUp")S.preventDefault(),F.value=(F.value-1+$)%$;else if(S.key==="Enter"&&(S.preventDefault(),F.value>=0&&F.value<u.value.length)){const z=u.value[F.value];j(z)}}function ie(){g&&s.value.length===0&&b.value.length===0&&B(b.value)}return{innerValue:m,searchTerm:b,filteredOptions:u,isSelected:M,selectItem:j,clear:N,resetSearch:te,toggleShowAll:X,isReqProc:v,showAll:V,isEnableShowAll:c,labelKey:w,valueKey:k,allOptions:s,highlightedIndex:F,onKeyDown:ue,selectedLabels:t,totalCount:f,loadData:ie}}const et={class:"h-[45px] shrink-0 px-[6px] py-[4px] flex items-center relative justify-center"},lt=["placeholder"],tt={key:0,class:"w-full"},at={class:"flex flex-col items-center justify-center p-5 text-center"},ot={class:"max-w-sm mx-auto mt-6"},rt={class:"font-medium text-gray-800 dark:text-neutral-200"},nt={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},ut={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},it=T({__name:"select",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=re(),i=l,o=g,h=A(null),{innerValue:n,filteredOptions:m,isSelected:b,selectItem:v,clear:s,resetSearch:k,toggleShowAll:w,isReqProc:V,showAll:c,isEnableShowAll:t,searchTerm:f,labelKey:x,valueKey:u,highlightedIndex:y,onKeyDown:B,selectedLabels:M,totalCount:j,loadData:N}=Jl({...i,modelValue:i.modelValue},o);ce(()=>{k(),i.layout!=="inline"&&(N(),h.value&&i.layout==="popover"&&h.value.focus())}),D(()=>i.modelValue,X=>{X===void 0&&(i.multi?n.value=[]:n.value=void 0)});const te=A([]);return D(y,X=>{var F;X>=0&&te.value[X]&&((F=te.value[X])==null||F.scrollIntoView({block:"nearest",behavior:"smooth"}))}),D(m,()=>{te.value=[]}),r({clear:s,inputTextRef:h,selectedLabels:M,loadData:N}),(X,F)=>{var ue,ie;return p(),C("div",{class:L([l.layout==="popover"?"flex flex-col h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[d("div",et,[E(d("input",{"onUpdate:modelValue":F[0]||(F[0]=S=>ze(f)?f.value=S:null),onKeydown:F[1]||(F[1]=(...S)=>e(B)&&e(B)(...S)),class:"w-full h-full text-[13px] px-4 border rounded-sm pl-9 focus:outline-none focus:ring-ring focus:ring-1 focus:ring-blue-500 text-gray-700",placeholder:e(a)("filter.search"),type:"text",ref_key:"inputTextRef",ref:h},null,40,lt),[[Q,e(f)]]),Y(Fe,{class:"absolute text-gray-400 -translate-y-1/2 left-4 top-1/2"}),e(f)!=""?(p(),K(Le,{key:0,onClick:F[2]||(F[2]=S=>f.value=""),class:"absolute text-gray-400 -translate-y-1/2 cursor-pointer hover:text-red-500 right-4 top-1/2"})):_("",!0)]),d("div",{class:L([l.layout==="popover"?"flex-1 overflow-y-auto max-h-64 p-2":"",l.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(p(!0),C(O,null,P(e(m),(S,$)=>(p(),K(ye,{layout:l.layout,count:S.count,label:S[e(x)],color:S.color,type:l.multi?"checkbox":"radio",value:S[e(u)],"is-selected":e(b)(S),highlighted:$===e(y),onItemClick:z=>e(v)(S),ref_for:!0,ref:z=>te.value[$]=z==null?void 0:z.el},null,8,["layout","count","label","color","type","value","is-selected","highlighted","onItemClick"]))),256))],2),l.type==="select"&&e(m).length===0&&!e(V)?(p(),C("div",tt,[d("div",at,[Y(ge),d("div",ot,[d("p",rt,R(e(a)("filter.notfound")),1),F[7]||(F[7]=d("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):_("",!0),l.layout!=="popover"&&l.type!=="select"?(p(),C(O,{key:1},[!e(c)&&e(t)?(p(),C("div",{key:0,onClick:F[3]||(F[3]=(...S)=>e(w)&&e(w)(...S)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[I(R(e(a)("filter.more"))+" ",1),Y(de)])):_("",!0),e(c)?(p(),C("div",{key:1,onClick:F[4]||(F[4]=(...S)=>e(w)&&e(w)(...S)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[I(R(e(a)("filter.less"))+" ",1),Y(be)])):_("",!0)],64)):_("",!0),l.cleanable?(p(),C(O,{key:2},[l.layout==="inline"?(p(),C("div",nt,[I(R(l.multi&&Array.isArray(e(n))?(ue=e(n))==null?void 0:ue.length:e(n)!==void 0&&(e(n)||e(n)===null)?1:0)+" / "+R(e(j))+" "+R(e(a)("filter.selected"))+" ",1),E(d("button",{class:"text-gray-600 hover:text-gray-800",onClick:F[5]||(F[5]=(...S)=>e(s)&&e(s)(...S))},R(e(a)("filter.clear")),513),[[H,e(n)!==""&&e(n)!==void 0||e(n)]])])):_("",!0),l.layout==="popover"?(p(),C("div",ut,[d("span",null,R(l.multi&&Array.isArray(e(n))?(ie=e(n))==null?void 0:ie.length:e(n)!==void 0&&(e(n)||e(n)===null)?1:0)+" / "+R(e(j))+" "+R(e(a)("filter.selected")),1),E(d("button",{class:"text-gray-600 hover:text-gray-800",onClick:F[6]||(F[6]=(...S)=>e(s)&&e(s)(...S))},R(e(a)("filter.clear")),513),[[H,e(n)!==""&&e(n)!==void 0||e(n)]])])):_("",!0)],64)):_("",!0)],2)}}}),st=["for","onClick"],ct=["id","name","value"],dt={class:"block"},pt={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},ft={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},vt=T({__name:"tag-field",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=l,i=g,{innerValue:o,isSelected:h,selectItem:n,clear:m,labelKey:b,valueKey:v,allOptions:s}=a.multi?De({...a,modelValue:a.modelValue??a.default??[]},i):Ke({...a,modelValue:a.modelValue!==void 0?a.modelValue:a.default??""},i);return r({clear:m}),D(()=>a.modelValue,k=>{k===void 0&&(a.multi?o.value=[]:o.value=void 0)}),(k,w)=>{var V,c;return p(),C(O,null,[d("div",{class:L(["grid grid-cols-3 gap-2 mx-[1px]",l.layout==="popover"?"m-1":"mb-1"])},[(p(!0),C(O,null,P(e(s),t=>(p(),C("label",{key:`item-${t[e(v)]}`,for:`item-${t[e(v)]}`,onClick:je(f=>e(n)(t),["stop","prevent"]),class:L([e(h)(t)?"ring-2 ring-indigo-600":"","p-2.5 group relative flex justify-center items-center gap-x-12 text-center text-xs bg-white text-gray-800 border border-gray-200 cursor-pointer rounded-lg dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-200 peer-checked:text-indigo-600 dark:has-checked:text-indigo-500 peer-checked:border-indigo-600 dark:has-checked:border-indigo-500 peer-checked:ring peer-checked:shadow focus:ring dark:has-checked:ring-indigo-500 has-disabled:pointer-events-none has-disabled:text-gray-200 dark:has-disabled:text-neutral-700 has-disabled:after:absolute has-disabled:after:inset-0 has-disabled:after:bg-[linear-gradient(to_right_bottom,transparent_calc(50%-1px),var(--color-gray-200)_calc(50%-1px),var(--color-gray-200)_50%,transparent_50%)] dark:has-disabled:after:bg-[linear-gradient(to_right_bottom,transparent_calc(50%-1px),var(--color-neutral-700)_calc(50%-1px),var(--color-neutral-700)_50%,transparent_50%)]"])},[d("input",{type:"checkbox",id:`item-${t[e(v)]}`,class:"hidden w4poy border-gray-200 g41z1 g22e3 axcnw dark:text-indigo-500 dark:border-neutral-700 dark:focus:ring-neutral-900",name:`item-${t[e(v)]}`,value:t[e(v)]},null,8,ct),d("span",dt,R(t[e(b)]),1)],10,st))),128))],2),l.cleanable?(p(),C(O,{key:0},[l.layout==="inline"?(p(),C("div",pt,[I(R(l.multi&&Array.isArray(e(o))?(V=e(o))==null?void 0:V.length:e(o)!==void 0&&(e(o)||e(o)===null)?1:0)+" з "+R(e(s).length)+" обрано ",1),E(d("button",{class:"text-gray-600 hover:text-gray-800",onClick:w[0]||(w[0]=(...t)=>e(m)&&e(m)(...t))}," Очистити ",512),[[H,e(o)!==""&&e(o)!==void 0||e(o)]])])):_("",!0),l.layout==="popover"?(p(),C("div",ft,[d("span",null,R(l.multi&&Array.isArray(e(o))?(c=e(o))==null?void 0:c.length:e(o)!==void 0&&(e(o)||e(o)===null)?1:0)+" з "+R(e(s).length)+" обрано",1),E(d("button",{class:"text-gray-600 hover:text-gray-800",onClick:w[1]||(w[1]=(...t)=>e(m)&&e(m)(...t))}," Очистити ",512),[[H,e(o)!==void 0&&e(o)!==""||e(o)]])])):_("",!0)],64)):_("",!0)],64)}}}),mt=["disabled","title"],yt={key:0,class:"absolute top-0 end-0 inline-flex min-h-[10px] min-w-[10px] z-10 items-center py-0.5 rounded-full text-xs font-medium transform -translate-y-1/2 translate-x-1/2 bg-blue-600 text-white px-1"},gt={class:"w-full text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-lg focus:outline-none focus:bg-stone-100 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full"},bt={class:"w-[360px] max-h-[500px] overflow-auto [&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-stone-100 [&::-webkit-scrollbar-thumb]:bg-stone-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 before:w-full p-2"},he=T({__name:"popover-field",props:{disabled:{type:Boolean,default:!1},label:{},en:{},ua:{},uk:{},fr:{},de:{},es:{},currentValue:{},fieldRef:{},width:{},mode:{},layout:{}},setup(l,{expose:r}){const g=l,a=U(()=>Ue(g.mode)),i=A(!1),o=A({top:0,left:0}),h=A(null),n=A(null),m=A(null);function b(){const x=n.value,u=m.value;if(!x||!u)return;const y=x.getBoundingClientRect(),B=u.offsetWidth,M=window.innerWidth,j=y.bottom+8;let{left:N}=y;N+B>M&&(N=Math.max(M-B-10,10)),o.value={top:j,left:N}}function v(){console.log("~~~~~~~~~~"),console.log(i.value),i.value=!i.value,console.log(i.value),i.value&&me(()=>{var x,u,y,B,M,j,N;b(),(x=g.fieldRef)!=null&&x.inputTextRef&&((B=(y=(u=g.fieldRef)==null?void 0:u.inputTextRef)==null?void 0:y.focus)==null||B.call(y)),(M=g.fieldRef)!=null&&M.loadData&&((N=(j=g.fieldRef)==null?void 0:j.loadData)==null||N.call(j))})}function s(x){var u,y,B;!((u=h.value)!=null&&u.contains(x.target))&&!((y=m.value)!=null&&y.contains(x.target))&&!((B=n.value)!=null&&B.contains(x.target))&&(i.value=!1)}function k(x){x.key==="Escape"&&(i.value=!1)}const w=A(!1),V=A("ua"),c=x=>{x.detail.key==="locale"&&(V.value=x.detail.newValue)};ce(()=>{w.value=!0,V.value=localStorage.locale,window.addEventListener("storage",c),document.addEventListener("click",s,!0),document.addEventListener("keydown",k),window.addEventListener("scroll",b,!0)}),ve(()=>{window.removeEventListener("resize",c),document.removeEventListener("click",s,!0),document.removeEventListener("keydown",k),window.removeEventListener("scroll",b,!0)});function t(){i.value=!1}r({close:t});const f=U(()=>{var u;const x=(u=g.fieldRef)==null?void 0:u.selectedLabels;return!x||["inline"].includes(g.layout||"")?g[V.value]||(g.label??""):Array.isArray(x)?x.length>0?x.join(", "):g.label??"":String(x)});return(x,u)=>(p(),C("div",null,[d("button",{onClick:v,disabled:l.disabled,ref_key:"triggerRef",ref:n,title:l.label,class:L(a.value+" "+(l.width?e(pe).getWidthClass(l.width):"w-full"))},[d("span",{class:L(["truncate text-ellipsis block",l.width?e(pe).getWidthClass(l.width-50):"w-full"])},R(f.value),3),Y(de,{class:"h-4 w-4"}),(Array.isArray(l.currentValue)?l.currentValue===null||l.currentValue.length>0:l.currentValue===null||l.currentValue)&&l.layout==="inline"?(p(),C("span",yt)):_("",!0)],10,mt),w.value?(p(),K(Me,{key:0,to:"body"},[E(d("div",{ref_key:"popperRef",ref:m,class:"vsTailwind vs-popover__content bottom-right w-fit fixed z-[1000]",style:Be({top:`${o.value.top}px`,left:`${o.value.left}px`}),"data-inside-popover":""},[d("div",gt,[d("div",bt,[se(x.$slots,"default")])])],4),[[H,i.value]])])):_("",!0)]))}}),ht={},xt={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:"text-blue-600 w-[16px] h-[16px]"};function wt(l,r){return p(),C("svg",xt,[...r[0]||(r[0]=[d("path",{d:"M20 6 9 17l-5-5"},null,-1)])])}const J=G(ht,[["render",wt]]),kt={},Ct={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down text-gray-800 rotate-[90deg]"};function Vt(l,r){return p(),C("svg",Ct,[...r[0]||(r[0]=[d("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),d("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const _t=G(kt,[["render",Vt]]),At={},St={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down text-gray-800 rotate-[270deg]"};function Rt(l,r){return p(),C("svg",St,[...r[0]||(r[0]=[d("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),d("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const Bt=G(At,[["render",Rt]]),Mt={class:"flex"},jt={class:"mb-1"},Kt={class:"mb-1"},Dt={class:"inline-flex rounded-lg shrink-0 pl-1"},Ft=["title"],Lt={class:"inline-flex rounded-lg shrink-0 pl-1"},Ot=["title"],Ut={key:1,class:"flex gap-1 !w-[75%] rounded-lg"},$t=["max","disabled"],Et=["min","disabled"],Tt=T({__name:"date-input-inline",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=re(),i=l,o=g,h=A(null),{activeMode:n,innerValue:m,onSelectChange:b,nextClick:v,prevClick:s,currentLabel:k,clear:w}=$e({...i,popoverRef:h},o);return D(()=>i.modelValue,V=>{V!==void 0?(m.value=V,o("update:modelValue",V)):(n.value="",m.value=[])}),r({clear:w,popoverRef:h}),(V,c)=>(p(),C(O,null,[d("div",Mt,[Y(he,{ref_key:"popoverRef",ref:h,label:e(k),"current-value":e(m),mode:l.mode,onClear:e(w),layout:l.layout},{default:ee(()=>[d("div",null,[d("button",{type:"button",onClick:c[0]||(c[0]=t=>e(b)("range")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-lg cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[I(R(e(a)("filter.period"))+" ",1),e(n)==="range"?(p(),K(J,{key:0})):_("",!0)])]),c[12]||(c[12]=d("div",null,[d("div",{class:"pt-1 mt-1 border-t"})],-1)),d("div",null,[d("button",{type:"button",onClick:c[1]||(c[1]=t=>e(b)("today")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-lg cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[I(R(e(a)("filter.today"))+" ",1),e(n)==="today"?(p(),K(J,{key:0})):_("",!0)])]),d("div",null,[d("button",{type:"button",onClick:c[2]||(c[2]=t=>e(b)("week")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-lg cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[I(R(e(a)("filter.week"))+" ",1),e(n)==="week"?(p(),K(J,{key:0})):_("",!0)])]),d("div",null,[d("button",{type:"button",onClick:c[3]||(c[3]=t=>e(b)("month")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-lg cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[I(R(e(a)("filter.month"))+" ",1),e(n)==="month"?(p(),K(J,{key:0})):_("",!0)])]),d("div",null,[d("button",{type:"button",onClick:c[4]||(c[4]=t=>e(b)("quarter")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-lg cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[I(R(e(a)("filter.quarter"))+" ",1),e(n)==="quarter"?(p(),K(J,{key:0})):_("",!0)])]),d("div",jt,[d("button",{type:"button",onClick:c[5]||(c[5]=t=>e(b)("year")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-lg cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[I(R(e(a)("filter.year"))+" ",1),e(n)==="year"?(p(),K(J,{key:0})):_("",!0)])]),d("div",Kt,[d("button",{type:"button",onClick:c[6]||(c[6]=t=>e(w)()),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-lg cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[I(R(e(a)("filter.alltime"))+" ",1),e(m)[0]?_("",!0):(p(),K(J,{key:0}))])])]),_:1},8,["label","current-value","mode","onClear","layout"]),e(n)!==""&&e(n)!=="range"&&e(n)!=="last_7_days"?(p(),C(O,{key:0},[d("div",Dt,[d("button",{type:"button",title:e(a)("filter.prev"),class:"inline-flex h-[38px] items-center px-2 text-sm text-gray-800 bg-gray-100 gap-x-2 -ms-px first:rounded-s-lg first:ms-0 last:rounded-e-lg focus:z-10 hover:bg-gray-200 focus:bg-gray-200 duration-300",onClick:c[7]||(c[7]=(...t)=>e(s)&&e(s)(...t))},[Y(_t)],8,Ft)]),d("div",Lt,[d("button",{type:"button",title:e(a)("filter.next"),class:"inline-flex h-[38px] items-center px-2 text-sm text-gray-800 gap-x-2 bg-gray-100 -ms-px first:rounded-s-lg first:ms-0 last:rounded-e-lg focus:z-10 hover:bg-gray-200 focus:bg-gray-200 duration-300",onClick:c[8]||(c[8]=(...t)=>e(v)&&e(v)(...t))},[Y(Bt)],8,Ot)])],64)):_("",!0),e(n)!==""&&e(n)==="range"?(p(),C("div",Ut,[E(d("input",{type:"date",max:e(m)[1],locale:"uk-UA","onUpdate:modelValue":c[9]||(c[9]=t=>e(m)[0]=t),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-lg focus:outline-blue-600",disabled:l.disabled},null,8,$t),[[Q,e(m)[0]]]),E(d("input",{type:"date",min:e(m)[0],locale:"uk-UA","onUpdate:modelValue":c[10]||(c[10]=t=>e(m)[1]=t),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-lg focus:outline-blue-600 appearance-auto",disabled:l.disabled},null,8,Et),[[Q,e(m)[1]]])])):_("",!0)]),(l.cleanable,_("",!0))],64))}}),_e={radio:vl,checkbox:Ve,check:Ve,text:Ml,range:El,date:Zl,select:it,tag:vt,"date:inline":Tt};function xe(l,r){let g;switch(l.toLowerCase()){case"autocomplete":g="select";break;case"check":g="checkbox";break;default:g=l==null?void 0:l.toString().toLowerCase()}return g==="date"&&r&&r==="inline"&&(g="date:inline"),{component:_e[g]||_e.text,type:g}}const It={style:{display:"inline-flex",margin:"0px",width:"100%"}},zt={class:"relative w-full mb-2 p-4 bg-white rounded-lg shadow-sm"},Wt={class:"block mb-3 text-sm font-medium text-gray-800 dark:text-neutral-200"},Yt={class:"flex items-center"},qt={class:"text-sm font-medium max-w-[80%] text-gray-800 flex items-center gap-x-1"},Pt={class:"filter-layout__body"},Nt=T({__name:"vertical-layout",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=l,i=g,o=A(),h=xe(a.type,a.layout),n=U({get:()=>a.modelValue,set:s=>i("update:modelValue",s)});function m(s){i("clear",s)}function b(s,k){i("change",{name:s,value:k}),a.modelValue!==void 0&&i("update:modelValue",k)}function v(){o.value&&o.value.clear(),i("clear",a.name)}return D(()=>a.default,s=>{n.value=s}),D(()=>a.modelValue,s=>{n.value=s}),r({filterRef:o}),(s,k)=>{var w,V,c;return p(),C("div",It,[d("div",zt,[d("div",Wt,[d("div",Yt,[d("span",qt,R(l.label),1)]),typeof n.value=="string"&&n.value.trim()!==""||Array.isArray(n.value)&&n.value.length>0&&n.value.some(t=>t!==void 0)||n.value===null?(p(),K(Ne,{key:0,onClick:v})):_("",!0)]),d("div",Pt,[((w=e(h))==null?void 0:w.type)!=="select"?(p(),K(Z((V=e(h))==null?void 0:V.component),q({key:0},a,{type:(c=e(h))==null?void 0:c.type,onChange:k[0]||(k[0]=t=>b(t.name,t.value)),onClear:k[1]||(k[1]=t=>m(t)),ref_key:"filterRef",ref:o}),null,16,["type"])):(p(),K(he,{key:1,"current-value":n.value,label:l.label,mode:l.mode,onClear:v,fieldRef:o.value,width:void 0,disabled:l.disabled,layout:"vertical"},{default:ee(()=>{var t,f;return[(p(),K(Z((t=e(h))==null?void 0:t.component),q({ref_key:"filterRef",ref:o},a,{type:(f=e(h))==null?void 0:f.type,onChange:k[2]||(k[2]=x=>b(x.name,x.value)),onClear:k[3]||(k[3]=x=>m(x))}),null,16,["type"]))]}),_:1},8,["current-value","label","mode","fieldRef","disabled"]))])])])}}}),Ae=T({__name:"inline-layout",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=l,i=g,o=A(),h=xe(a.type,a.layout),n=U({get:()=>a.modelValue,set:v=>i("update:modelValue",v)});function m(v=a.name){i("clear",v)}function b(v,s){i("change",{name:v,value:s}),a.modelValue!==void 0&&i("update:modelValue",s)}return D(()=>a.default,v=>{n.value=v}),D(()=>a.modelValue,v=>{n.value=v}),r({filterRef:o}),(v,s)=>{var k,w;return["text","date"].includes(l.type.toLocaleLowerCase())?(p(),K(Z((k=e(h))==null?void 0:k.component),q({key:0},a,{type:(w=e(h))==null?void 0:w.type,onChange:s[0]||(s[0]=V=>b(V.name,V.value)),onClear:s[1]||(s[1]=V=>m(V)),disabled:l.disabled,modelValue:n.value,"onUpdate:modelValue":s[2]||(s[2]=V=>n.value=V)}),null,16,["type","disabled","modelValue"])):(p(),K(he,{key:1,"current-value":n.value,label:l.label,mode:l.mode,onClear:m,fieldRef:o.value,width:a.width,disabled:l.disabled,layout:"inline"},{default:ee(()=>{var V,c;return[(p(),K(Z((V=e(h))==null?void 0:V.component),q({ref_key:"filterRef",ref:o},a,{modelValue:n.value,"onUpdate:modelValue":s[3]||(s[3]=t=>n.value=t),type:(c=e(h))==null?void 0:c.type,onChange:s[4]||(s[4]=t=>b(t.name,t.value)),onClear:s[5]||(s[5]=t=>m(t))}),null,16,["modelValue","type"]))]}),_:1},8,["current-value","label","mode","fieldRef","width","disabled"]))}}}),Qt=T({__name:"popover-layout",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=l,i=g,o=A(),h=A(xe(a.type,a.layout)),n=U({get:()=>a.modelValue,set:v=>i("update:modelValue",v)});function m(v){i("clear",v)}function b(v,s){i("change",{name:v,value:s}),a.modelValue!==void 0&&i("update:modelValue",s)}return D(()=>a.default,v=>{n.value=v}),D(()=>a.modelValue,v=>{n.value=v}),D(()=>a,v=>{n.value=v}),r({filterRef:o}),(v,s)=>{var k,w;return p(),K(Z((k=h.value)==null?void 0:k.component),q(a,{type:(w=h.value)==null?void 0:w.type,modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=V=>n.value=V),onChange:s[1]||(s[1]=V=>b(V.name,V.value)),onClear:s[2]||(s[2]=V=>m(V)),ref_key:"filterRef",ref:o}),null,16,["type","modelValue"])}}}),le=T({__name:"filter-field",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean,default:!0},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{default:"name"},ua:{}},emits:["update:modelValue","change","clear"],setup(l,{expose:r,emit:g}){const a=l,i=g,o=A(),h=U({get:()=>a.modelValue,set:v=>i("update:modelValue",v)});function n(v){i("clear",v)}function m(v,s){i("change",{name:v,value:s}),a.modelValue!==void 0&&i("update:modelValue",s)}D(()=>a.default,v=>{h.value=v}),D(()=>a.modelValue,v=>{h.value=v}),r({filterRef:o});function b(){switch(a.layout){case"inline":return Ae;case"vertical":return Nt;case"popover":return Qt;default:return Ae}}return(v,s)=>(p(),K(Z(b()),q(a,{onChange:s[0]||(s[0]=k=>m(k.name,k.value)),onClear:s[1]||(s[1]=k=>n(k)),modelValue:h.value,"onUpdate:modelValue":s[2]||(s[2]=k=>h.value=k)}),null,16,["modelValue"]))}});function we(l,r){const{slots:g}=l,a=A(l.value??{}),i=U(()=>{var t;return(ne((t=g==null?void 0:g.default)==null?void 0:t.call(g))??[]).flatMap(f=>Array.isArray(f.children)?f.children:[f])});function o(t){delete a.value[t],r("clear",{data:ne(a.value),name:t})}function h(t,f){f===void 0?o(t):a.value={...a.value,[t]:f},r("change",{data:ne(a.value),name:t,value:f})}const n=U(()=>i.value.map(t=>{var x;const f=(x=t.props)==null?void 0:x.name;return Te(t,{...t.props,layout:l.view,showClean:!0,modelValue:a.value[f],"onUpdate:modelValue":u=>{h(f,u)},onClear:()=>o(f)})})),m=U(()=>new Map(n.value.map(t=>{var x;const f=(x=t.props)==null?void 0:x.name;return f?[f,t]:null}).filter(t=>t!==null)));function b(t=!1){a.value={},t||r("clearAll",{data:ne(a.value),name:"ALL"})}const v=A(""),s=U(()=>{var t;return(t=l.schema)!=null&&t.value?Object.entries(a.value).filter(([f,x])=>l.schema&&!(f in l.schema.value)?!1:Array.isArray(x)?x.some(u=>u!==""&&u!==void 0):x!==""&&x!==void 0).length:0}),k=A();D(v,async()=>{var t,f;await me(),(f=(t=k==null?void 0:k.value)==null?void 0:t.filterRef)!=null&&f.inputTextRef&&k.value.filterRef.inputTextRef.focus()});const w=U(()=>{var t,f;return(t=l.schema)!=null&&t.value?Object.fromEntries(Object.entries((f=l.schema)==null?void 0:f.value).slice(0,l.limit)):{}}),V=U(()=>{var f;if(n.value.length===0)return[];let t=0;if((f=l.schema)!=null&&f.value){const x=Object.entries(l.schema.value).length;l.limit&&x<l.limit?t=l.limit-x:t=0}return n.value.slice(0,t)}),c=U(()=>n.value.length===0?[]:l.view!=="inline"?n.value:n.value.slice(V.value.length));return{activeFilter:a,activeFilterCount:s,onFilterChange:h,clearFilter:o,clearAllFilters:b,limitedSchema:w,filtersSlot:n,limitedFiltersSlot:V,popoverFiltersSlot:c,vnodeMap:m,selectedFilter:v,filterRef:k}}const Ht=T({__name:"popover",emits:["open","close"],setup(l,{emit:r}){const g=A(!1),a=A(null),i=A(null),o=A(null),h=A({top:"0px",left:"0px",position:"absolute"});function n(){g.value=!g.value}function m(){const w=o.value,V=a.value;if(!w||!V)return;const c=w.getBoundingClientRect(),t=V.offsetWidth,f=window.innerWidth-c.left;let x=c.left+window.scrollX;t>f&&(x=window.innerWidth-t-8,x<8&&(x=8)),h.value={position:"absolute",top:`${c.bottom+window.scrollY+8}px`,left:`${x}px`}}const b=U(()=>Object.entries(h.value).map(w=>w.join(":")).join(";"));function v(w){var c,t;const V=w.target;!((c=o.value)!=null&&c.contains(w.target))&&!((t=a.value)!=null&&t.contains(w.target))&&!V.closest("[data-inside-popover]")&&(g.value=!1)}const s=A(!1);ce(()=>{s.value=!0}),ce(()=>{var w,V;o.value=((w=i.value)==null?void 0:w.querySelector("[data-popover-trigger]"))||null,(V=o.value)==null||V.addEventListener("click",n),document.addEventListener("click",v),window.addEventListener("resize",m),window.addEventListener("scroll",m,!0)}),ve(()=>{var w;(w=o.value)==null||w.removeEventListener("click",n),document.removeEventListener("click",v),window.removeEventListener("resize",m),window.removeEventListener("scroll",m,!0)});const k=r;return D(g,async w=>{w?(k("open"),await me(),m()):k("close")}),(w,V)=>(p(),C("div",{ref_key:"wrapperRef",ref:i},[se(w.$slots,"trigger"),s.value?(p(),K(Me,{key:0,to:"body"},[E(d("div",{ref_key:"popoverRef",ref:a,class:"absolute z-[50] w-[600px] rounded-md border bg-white shadow-md",style:Be(b.value)},[se(w.$slots,"default")],4),[[H,g.value]])])):_("",!0)],512))}}),Gt={},Xt={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-filter h-4 w-4"};function Zt(l,r){return p(),C("svg",Xt,[...r[0]||(r[0]=[d("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)])])}const Jt=G(Gt,[["render",Zt]]),ea={key:0,class:"inline-flex rounded-sm items-center border font-semibold border-transparent hover:bg-secondary/80 bg-blue-500 text-white text-xs px-1.5"},la={class:"flex"},ta={class:"w-64 border-r border-gray-200"},aa={class:"p-2"},oa=["onClick"],ra={class:"flex items-center gap-2"},na={class:"text-sm font-medium"},ua={key:0,class:"inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-secondary/80 bg-blue-100 text-blue-700 text-xs p-2"},ia=["onClick"],sa={class:"flex items-center gap-2"},ca={class:"text-sm font-medium"},da={key:0,class:"inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-secondary/80 bg-blue-100 text-blue-700 text-xs p-2"},pa={key:0,class:"p-2 border-t"},fa={class:"flex-1 min-h-[300px] overflow-y-auto"},va={key:0,class:"flex items-center justify-center h-full text-gray-500"},Ee=T({__name:"popover-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3}},emits:["change","clear","clearAll"],setup(l,{expose:r,emit:g}){const a=l,i=Ue(a.mode),o=fe(),h=g,n=A({}),m=U(()=>n!=null&&n.value?a.view!=="inline"?n==null?void 0:n.value:Object.fromEntries(Object.entries(n==null?void 0:n.value).slice(a.limit)):{}),{activeFilter:b,activeFilterCount:v,onFilterChange:s,clearFilter:k,clearAllFilters:w,popoverFiltersSlot:V,selectedFilter:c,filterRef:t}=we({...a,schema:n.value,slots:o},h);function f(){if(m.value){const[x]=Object.keys(m.value);c.value=x}else V.value.length>0?c.value=V.value[0].props.name:c.value=""}return D(()=>a.schema,x=>{n.value=x},{deep:!0,immediate:!0}),r({clearFilter:k,clearAllFilters:w}),(x,u)=>(p(),K(Ht,{onOpen:f,onClose:u[5]||(u[5]=y=>c.value="")},{trigger:ee(()=>[d("button",{"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:L(e(i)+(e(v)>0?"bg-blue-50 border-blue-200 text-blue-700 hover:bg-blue-100":"text-gray-800 hover:bg-gray-200 focus:bg-gray-200")),type:"button"},[Y(Jt),u[6]||(u[6]=I(" Фільтр ",-1)),e(v)>0?(p(),C("div",ea,R(e(v)),1)):_("",!0)],2)]),default:ee(()=>[d("div",la,[d("div",ta,[u[7]||(u[7]=d("div",{class:"p-4 border-b"},[d("p",{class:"text-sm text-gray-600"},"Select a field to start creating a filter.")],-1)),d("div",aa,[l.schema?(p(!0),C(O,{key:0},P(Object.entries(m.value),([y,B])=>{var M;return p(),C("button",{key:y,onClick:()=>{c.value=y},class:L(["w-full flex items-center justify-between px-3 py-2 text-left hover:bg-gray-50 transition-colors",e(c)===y?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":"text-gray-700"])},[d("div",ra,[d("span",na,R(B.label),1)]),(Array.isArray(e(b)[y])?((M=e(b)[y])==null?void 0:M.length)>0:e(b)[y]||e(b)[y]===null)?(p(),C("div",ua)):_("",!0)],10,oa)}),128)):_("",!0),(p(!0),C(O,null,P(e(V),(y,B)=>{var M;return p(),C("button",{key:"slot-"+B,onClick:j=>c.value=y.props.name,class:L(["w-full flex items-center justify-between px-3 py-2 text-left hover:bg-gray-50 transition-colors",e(c)===y.props.name?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":""])},[d("div",sa,[d("span",ca,R(y.props.label),1)]),((M=e(b)[y.props.name])==null?void 0:M.length)>0?(p(),C("div",da)):_("",!0)],10,ia)}),128))]),e(v)>0?(p(),C("div",pa,[d("button",{class:"w-full px-3 py-2 text-left text-sm text-gray-600 hover:bg-gray-50 transition-colors",onClick:u[0]||(u[0]=y=>e(w)()),"data-inside-popover":""}," Очистити всі ")])):_("",!0)]),d("div",fa,[e(c)===""?(p(),C("div",va,[...u[8]||(u[8]=[d("p",{class:"text-sm"},"Select a field to start creating a filter.",-1)])])):_("",!0),e(c)?(p(),C(O,{key:1},[m.value?(p(!0),C(O,{key:0},P(Object.entries(m.value),([y,B])=>(p(),C(O,null,[e(c)===y?(p(),K(le,q({key:y,layout:"popover",ref_for:!0,ref_key:"filterRef",ref:t},{ref_for:!0},B,{onChange:u[1]||(u[1]=M=>e(s)(M.name,M.value)),onClear:u[2]||(u[2]=M=>{e(k)(M),e(s)(M,void 0)}),modelValue:e(b)[y],"onUpdate:modelValue":M=>e(b)[y]=M,cleanable:!0}),null,16,["modelValue","onUpdate:modelValue"])):_("",!0)],64))),256)):_("",!0),(p(!0),C(O,null,P(e(V),(y,B)=>(p(),C(O,{key:"slot-"+B},[e(c)===y.props.name?(p(),K(le,q({key:0,layout:"popover"},{ref_for:!0},y.props,{ref_for:!0,ref_key:"filterRef",ref:t,onChange:u[3]||(u[3]=M=>e(s)(M.name,M.value)),onClear:u[4]||(u[4]=M=>{e(k)(M),e(s)(M,void 0)}),modelValue:e(b)[y.props.name],"onUpdate:modelValue":M=>e(b)[y.props.name]=M,cleanable:!0}),null,16,["modelValue","onUpdate:modelValue"])):_("",!0)],64))),128))],64)):_("",!0)])])]),_:1}))}}),ma={class:"flex gap-1 items-center flex-wrap"},Se=T({__name:"inline-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3}},emits:["change","clear","clearAll"],setup(l,{expose:r,emit:g}){const a=re(),i=l,o=g,h=fe(),n=A({}),m=U(()=>Object.keys(i.schema).length>i.limit),{activeFilter:b,activeFilterCount:v,onFilterChange:s,clearFilter:k,clearAllFilters:w,limitedSchema:V,filtersSlot:c,limitedFiltersSlot:t}=we({...i,schema:n,slots:h},o),f=A();function x(){f.value&&f.value.clearAllFilters(!0),w()}return D(()=>i.schema,u=>{n.value=u},{deep:!0,immediate:!0}),r({clearFilter:k,clearAllFilters:w}),(u,y)=>(p(),C("div",ma,[l.schema?(p(!0),C(O,{key:0},P(Object.entries(e(V)),([B,M])=>(p(),K(le,q({key:B,mode:l.mode},{ref_for:!0},M,{onChange:y[0]||(y[0]=j=>e(s)(j.name,j.value)),onClear:e(k),layout:"inline",cleanable:!0,modelValue:e(b)[B],"onUpdate:modelValue":j=>e(b)[B]=j}),null,16,["mode","onClear","modelValue","onUpdate:modelValue"]))),128)):_("",!0),(p(!0),C(O,null,P(e(t),(B,M)=>(p(),K(le,q({key:"slot-"+M,layout:"inline"},{ref_for:!0},B.props,{onChange:y[1]||(y[1]=j=>e(s)(j.name,j.value)),onClear:y[2]||(y[2]=j=>{e(k)(j),e(s)(j,void 0)}),cleanable:!0,modelValue:e(b)[B.props.name],"onUpdate:modelValue":j=>e(b)[B.props.name]=j}),null,16,["modelValue","onUpdate:modelValue"]))),128)),m.value?(p(),K(Ee,q({key:1},i,{schema:l.schema,limit:l.limit,onChange:y[3]||(y[3]=B=>e(s)(B.name,B.value)),onClearAll:y[4]||(y[4]=B=>e(w)()),onClear:y[5]||(y[5]=B=>e(k)(B.name)),mode:l.mode,ref_key:"popoverRef",ref:f,cleanable:!0}),{default:ee(()=>[(p(!0),C(O,null,P(e(c),(B,M)=>(p(),K(Z(B),q({key:"slot-"+M,layout:"popover"},{ref_for:!0},B.props,{cleanable:!0}),null,16))),128))]),_:1},16,["schema","limit","mode"])):_("",!0),e(v)>0?(p(),C("button",{key:2,onClick:x,class:"relative py-2 px-3 inline-flex justify-center items-center gap-x-2 text-sm font-medium rounded-lg bg-gray-100 border border-transparent text-gray-800 hover:bg-gray-200 focus:bg-gray-200"},R(e(a)("filter.clear")),1)):_("",!0)]))}}),ya={key:0,class:"p-2 overflow-y-auto overflow-hidden [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-800 max-h-[calc(100%-142px)] h-full bg-gray-100"},ga={class:"flex items-center vst-filters vsTailwind flex-col w-full"},ba=T({__name:"vertical-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3}},emits:["change","clear","clearAll"],setup(l,{expose:r,emit:g}){const a=l,i=g,o=fe(),{activeFilter:h,activeFilterCount:n,onFilterChange:m,clearFilter:b,clearAllFilters:v,filtersSlot:s}=we({...a,slots:o},i);return r({clearFilter:b,clearAllFilters:v}),(k,w)=>l.view==="vertical"?(p(),C("div",ya,[d("div",ga,[e(n)>0?(p(),C("button",{key:0,onClick:w[0]||(w[0]=V=>e(v)()),"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:"w-full ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:ring-2 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 border h-10 px-4 py-2 gap-2 m-2 bg-white text-gray-800 hover:bg-gray-200 focus:bg-gray-200",type:"button"}," Очистити ")):_("",!0),l.schema?(p(!0),C(O,{key:1},P(Object.entries(l.schema),([V,c])=>(p(),K(le,q({layout:"vertical"},{ref_for:!0},c,{onChange:w[1]||(w[1]=t=>e(m)(t.name,t.value)),onClear:w[2]||(w[2]=t=>{e(b)(t),e(m)(t,void 0)}),modelValue:e(h)[V],"onUpdate:modelValue":t=>e(h)[V]=t,showClean:!0}),null,16,["modelValue","onUpdate:modelValue"]))),256)):_("",!0),(p(!0),C(O,null,P(e(s),(V,c)=>(p(),K(le,q({key:"slot-"+c,layout:"vertical"},{ref_for:!0},V.props,{onChange:w[3]||(w[3]=t=>e(m)(t.name,t.value)),onClear:w[4]||(w[4]=t=>{e(b)(t),e(m)(t,void 0)}),modelValue:e(h)[V.props.name],"onUpdate:modelValue":t=>e(h)[V.props.name]=t,showClean:!0}),null,16,["modelValue","onUpdate:modelValue"]))),128))])])):_("",!0)}}),Re=T({__name:"filter",props:{schema:{},view:{default:"inline"},value:{},history:{type:Boolean},mode:{},limit:{default:3}},emits:["change","clear","clearAll"],setup(l,{expose:r,emit:g}){const a=l,i=A(a.value??{}),o=g,h=A();function n(c){if(Array.isArray(c))return c.map(t=>n(t));if(c!==null&&typeof c=="object"){const t=ne(c),f={};for(const x in t)f[x]=n(t[x]);return f}return c}function m(c,t){t!==void 0?i.value={...i.value,[c]:t}:delete i.value[c],o("change",{data:n(i.value),name:c,value:n(t)})}function b(c){delete i.value[c],o("clear",{data:n(i.value),name:c}),o("change",{data:n(i.value),name:c,value:null})}function v(){i.value={},o("clear",{data:n(i.value),name:"ALL"}),o("change",{data:n(i.value),name:"ALL",value:null})}const s=A({});function k(){switch(a.view){case"inline":return Se;case"vertical":return ba;case"popover":return Ee;default:return Se}}D(()=>a.schema,c=>{if(!c){s.value={};return}if(Array.isArray(c)&&!c.length){s.value={};return}Array.isArray(c)?s.value=c.filter(t=>t.type).reduce((t,f)=>(Object.assign(f,{name:f.id||f.name,type:{datepicker:"date"}[f.type.toLowerCase()]||f.type.toLowerCase(),label:f.label||f.ua}),t[f.name]=f,f.data&&!f.api&&!f.options&&Object.assign(f,{api:`/api/suggest/${f.data}`}),t),{}):(Object.entries(c).forEach(([t,f])=>{Object.assign(f,{name:t||f.name||f.id,type:f.type.toLowerCase()})}),s.value={...c})},{immediate:!0,deep:!0});function w(c){h.value.clearFilter(c),b(c)}function V(){h.value.clearAllFilters(),v()}return D(()=>i.value,c=>{if(a.history){const t=new URL(window.location.href),f=new URLSearchParams(window.location.search);Object.keys(c).length>0?f.set("filter",Object.entries(c).filter(([,x])=>x).map(([x,u])=>`${x}=${u}`).join("|")):f.delete("filter"),t.search=decodeURI(f.toString()),window.history.pushState({},"",t)}}),r({clearAllFilters:V,clearFilter:w}),(c,t)=>(p(),K(Z(k()),q(a,{schema:s.value,onChange:t[0]||(t[0]=f=>m(f.name,f.value)),onClear:t[1]||(t[1]=f=>b(f.name)),onClearAll:v,ref_key:"filterRef",ref:h}),{default:ee(()=>[se(c.$slots,"default")]),_:3},16,["schema"]))}});Re.install=function(l){l.component("Filter",Re),l.component("FilterField",le)};export{Re as D};