@opengis/cms 0.0.58 → 0.0.59

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 (126) hide show
  1. package/README.md +131 -131
  2. package/dist/{ArticlesPage-CFjE_cw_.js → ArticlesPage-BjYzvTWM.js} +3 -3
  3. package/dist/{CollectionsBreadcrumb-BCxeRikP.js → CollectionsBreadcrumb-HePNJb-d.js} +1 -1
  4. package/dist/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-BJh-tjam.js +53 -0
  5. package/dist/{Dashboard-C1eGscNd.js → Dashboard-CXkg_pk8.js} +132 -132
  6. package/dist/{EditCollectionPage-DIr1tdtn.js → EditCollectionPage-CqYHpEON.js} +2 -2
  7. package/dist/{MenuAddPage-D-p3gFgm.js → MenuAddPage-QTnwCoGh.js} +1 -1
  8. package/dist/{MenuBody-rN5j4YBu.js → MenuBody-Bi0ONVZf.js} +2 -2
  9. package/dist/{MenuItemPage-BoJw885D.js → MenuItemPage-B7Y9KFyb.js} +3 -3
  10. package/dist/{MenuList-DFEBS0NB.js → MenuList-BLIpeqSd.js} +53 -53
  11. package/dist/{MenuPage-BCZB_S8j.js → MenuPage-3W6jZ15H.js} +1 -1
  12. package/dist/{MenuWrapper-AZ_8s-zd.js → MenuWrapper-OrOv6sOb.js} +1 -1
  13. package/dist/{MonacoEditor-Db-3Jc3E.js → MonacoEditor-ByPT8pnv.js} +1 -1
  14. package/dist/MonacoEditor.vue_vue_type_script_setup_true_lang-C8cip9Ci.js +84 -0
  15. package/dist/{UniversalTable-CzqPG-tY.js → UniversalTable-GBd_pStq.js} +80 -80
  16. package/dist/{UniversalTablePagination-4gL47A7I.js → UniversalTablePagination-Dw2hc0nc.js} +46 -46
  17. package/dist/{contentForm-CtMhQTG0.js → contentForm-Buku-lel.js} +1 -1
  18. package/dist/index.html +29 -29
  19. package/dist/index.js +5 -5
  20. package/dist/{vs-builder-monaco-B3Jj0V31.js → vs-builder-monaco-Cw-f19gc.js} +1 -1
  21. package/input-types.json +9 -9
  22. package/locales/en.json +815 -815
  23. package/locales/uk.json +813 -813
  24. package/module/cms/cls/content.status.json +17 -17
  25. package/module/cms/cls/user_type.json +9 -9
  26. package/module/cms/form/admin.users.form.json +77 -77
  27. package/module/cms/select/cms.page_type.sql +1 -1
  28. package/module/cms/select/news_tag_id.sql +11 -11
  29. package/module/cms/table/admin.users.table.json +53 -53
  30. package/module/cms/table/collection.default.table.json +96 -96
  31. package/module/cms/table/single.default.table.json +116 -116
  32. package/package.json +2 -1
  33. package/plugin.js +43 -43
  34. package/server/app.js +35 -35
  35. package/server/config.js +4 -4
  36. package/server/functions/getContent.js +45 -45
  37. package/server/functions/getDraftKey.js +22 -22
  38. package/server/functions/getSearchData.js +31 -31
  39. package/server/functions/getTags.js +30 -30
  40. package/server/functions/getUser.js +27 -27
  41. package/server/functions/utils/mock.reply.js +55 -55
  42. package/server/index.js +22 -22
  43. package/server/migrations/fixes.sql +129 -129
  44. package/server/migrations/site.sql +595 -595
  45. package/server/plugins/adminHook.js +78 -78
  46. package/server/plugins/hook.js +59 -59
  47. package/server/plugins/vite.js +75 -75
  48. package/server/routes/category/controllers/cms.category.delete.js +21 -21
  49. package/server/routes/category/controllers/cms.category.get.js +17 -17
  50. package/server/routes/category/controllers/cms.category.list.js +16 -16
  51. package/server/routes/category/controllers/cms.category.post.js +21 -21
  52. package/server/routes/category/controllers/cms.category.put.js +23 -23
  53. package/server/routes/category/index.mjs +22 -22
  54. package/server/routes/cms/controllers/cmsStat.js +55 -55
  55. package/server/routes/cms/controllers/cmsSuggest.js +57 -57
  56. package/server/routes/cms/controllers/deleteContent.js +113 -113
  57. package/server/routes/cms/controllers/deleteMedia.js +76 -76
  58. package/server/routes/cms/controllers/downloadMedia.js +84 -84
  59. package/server/routes/cms/controllers/getContent.js +113 -113
  60. package/server/routes/cms/controllers/getContentBySlug.js +93 -93
  61. package/server/routes/cms/controllers/getPermissions.js +15 -15
  62. package/server/routes/cms/controllers/insertContent.js +217 -217
  63. package/server/routes/cms/controllers/listMedia.js +155 -155
  64. package/server/routes/cms/controllers/metadataMedia.js +39 -39
  65. package/server/routes/cms/controllers/properties.get.js +18 -18
  66. package/server/routes/cms/controllers/properties.post.js +99 -99
  67. package/server/routes/cms/controllers/searchContent.js +214 -214
  68. package/server/routes/cms/controllers/setPermissions.js +49 -49
  69. package/server/routes/cms/controllers/translate.js +89 -89
  70. package/server/routes/cms/controllers/updateContent.js +266 -266
  71. package/server/routes/cms/controllers/uploadMedia.js +79 -79
  72. package/server/routes/cms/functions/getSettings.js +48 -48
  73. package/server/routes/cms/index.mjs +112 -112
  74. package/server/routes/cms/utils/additionalData.js +35 -35
  75. package/server/routes/cms/utils/getCollection.js +89 -89
  76. package/server/routes/cms/utils/getSingle.js +188 -188
  77. package/server/routes/cms/utils/inputTypes.js +5 -5
  78. package/server/routes/cms/utils/insertContentLocalization.js +104 -104
  79. package/server/routes/cms/utils/requestTranslation.js +85 -85
  80. package/server/routes/cms/utils/updateLocalization.js +47 -47
  81. package/server/routes/cmsSpace/controllers/deleteSpace.js +25 -25
  82. package/server/routes/cmsSpace/controllers/getSpaces.js +27 -27
  83. package/server/routes/cmsSpace/controllers/insertSpace.js +21 -21
  84. package/server/routes/cmsSpace/controllers/updateSpace.js +23 -23
  85. package/server/routes/cmsSpace/index.mjs +20 -20
  86. package/server/routes/contentType/controllers/addContentType.js +160 -160
  87. package/server/routes/contentType/controllers/contentTypeList.js +54 -54
  88. package/server/routes/contentType/controllers/delContentType.js +75 -75
  89. package/server/routes/contentType/controllers/editContentType.js +88 -88
  90. package/server/routes/contentType/controllers/getContentType.js +65 -65
  91. package/server/routes/contentType/index.mjs +35 -35
  92. package/server/routes/contentType/utils/updateContents.js +44 -44
  93. package/server/routes/contentType/utils/updateCustomContentTable.js +53 -53
  94. package/server/routes/feedback/controllers/email.list.js +24 -24
  95. package/server/routes/feedback/controllers/feedback.js +48 -48
  96. package/server/routes/feedback/controllers/feedback.list.js +37 -37
  97. package/server/routes/feedback/controllers/news.subscriptions.js +44 -44
  98. package/server/routes/feedback/index.mjs +71 -71
  99. package/server/routes/logs/controllers/export.user.logs.js +77 -77
  100. package/server/routes/logs/controllers/user.logs.js +44 -44
  101. package/server/routes/logs/index.mjs +9 -9
  102. package/server/routes/menu/controllers/addMenu.js +37 -37
  103. package/server/routes/menu/controllers/delMenu.js +31 -31
  104. package/server/routes/menu/controllers/editMenu.js +41 -41
  105. package/server/routes/menu/controllers/getMenu.js +24 -24
  106. package/server/routes/menu/functions/getMenu.js +50 -50
  107. package/server/routes/menu/index.mjs +13 -13
  108. package/server/routes/migration/controllers/collectionToCustom.js +137 -137
  109. package/server/routes/migration/index.mjs +8 -8
  110. package/server/routes/root.mjs +8 -8
  111. package/server/routes/tags/controllers/add.tags.js +24 -24
  112. package/server/routes/tags/controllers/del.tags.js +19 -19
  113. package/server/routes/tags/controllers/edit.tags.js +25 -25
  114. package/server/routes/tags/controllers/get.tags.js +15 -15
  115. package/server/routes/tags/index.mjs +14 -14
  116. package/server/templates/cls/cms.category_type.json +9 -9
  117. package/server/templates/cls/cms.content_review_status.json +9 -9
  118. package/server/templates/cls/cms.content_status.json +9 -9
  119. package/server/templates/cls/cms.content_type.json +9 -9
  120. package/server/templates/cls/cms.lang.json +9 -9
  121. package/server/templates/page/login.html +126 -126
  122. package/server/templates/select/core.user_mentioned.sql +1 -1
  123. package/utils.d.ts +52 -52
  124. package/utils.js +8 -8
  125. package/dist/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-umRzB5mY.js +0 -53
  126. package/dist/MonacoEditor.vue_vue_type_script_setup_true_lang-B1DrxmQX.js +0 -84
@@ -1,35 +1,35 @@
1
- import { defineComponent as b, resolveComponent as S, openBlock as d, createElementBlock as u, createElementVNode as e, toDisplayString as i, unref as m, createVNode as l, withCtx as A, createTextVNode as g, normalizeClass as x, createBlock as f, resolveDynamicComponent as j, Fragment as _, renderList as k, ref as P, onMounted as I } from "vue";
1
+ import { defineComponent as h, resolveComponent as S, openBlock as l, createElementBlock as c, createElementVNode as e, toDisplayString as a, unref as u, createVNode as n, withCtx as A, createTextVNode as p, normalizeClass as g, createBlock as _, resolveDynamicComponent as j, Fragment as x, renderList as k, ref as P, onMounted as I } from "vue";
2
2
  import { HelpCircle as T, Plus as L, FileText as v, Users as w, Image as U, Eye as F, Calendar as N, SquarePen as R, Activity as V, Zap as z } from "lucide-vue-next";
3
3
  import { useI18n as $ } from "vue-i18n";
4
4
  import { useRouter as M } from "vue-router";
5
- const B = { class: "flex items-center justify-between" }, E = { class: "flex items-center gap-2" }, q = { class: "text-4xl font-bold text-slate-800 dark:text-slate-100 mb-2" }, H = ["href", "title"], J = { class: "text-lg text-slate-600 dark:text-slate-300" }, O = /* @__PURE__ */ b({
5
+ const B = { class: "flex items-center justify-between" }, E = { class: "flex items-center gap-2" }, q = { class: "text-4xl font-bold text-slate-800 dark:text-slate-100 mb-2" }, H = ["href", "title"], J = { class: "text-lg text-slate-600 dark:text-slate-300" }, O = /* @__PURE__ */ h({
6
6
  __name: "DashboardHeader",
7
- setup(o) {
8
- const { locale: s } = $();
9
- return (r, a) => {
10
- const n = S("router-link");
11
- return d(), u("div", B, [
7
+ setup(b) {
8
+ const { locale: r } = $();
9
+ return (o, t) => {
10
+ const i = S("router-link");
11
+ return l(), c("div", B, [
12
12
  e("div", null, [
13
13
  e("div", E, [
14
- e("h1", q, i(r.$t("cms.dashboard.title")), 1),
14
+ e("h1", q, a(o.$t("cms.dashboard.title")), 1),
15
15
  e("a", {
16
- href: `https://cms.opengis.info/${m(s)}/get-started/app-overview`,
16
+ href: `https://cms.opengis.info/${u(r)}/get-started/app-overview`,
17
17
  target: "_blank",
18
- title: r.$t("cms.guide.appOverview")
18
+ title: o.$t("cms.guide.appOverview")
19
19
  }, [
20
- l(m(T), { class: "w-5 h-5" })
20
+ n(u(T), { class: "w-5 h-5" })
21
21
  ], 8, H)
22
22
  ]),
23
- e("div", J, i(r.$t("cms.dashboard.description")), 1)
23
+ e("div", J, a(o.$t("cms.dashboard.description")), 1)
24
24
  ]),
25
25
  e("div", null, [
26
- l(n, {
26
+ n(i, {
27
27
  to: "/settings/collections",
28
28
  class: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 shadow h-9 px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white"
29
29
  }, {
30
30
  default: A(() => [
31
- l(m(L), { class: "w-4 h-4 mr-2" }),
32
- g(" " + i(r.$t("cms.dashboard.newCollection")), 1)
31
+ n(u(L), { class: "w-4 h-4 mr-2" }),
32
+ p(" " + a(o.$t("cms.dashboard.newCollection")), 1)
33
33
  ]),
34
34
  _: 1
35
35
  })
@@ -37,109 +37,109 @@ const B = { class: "flex items-center justify-between" }, E = { class: "flex ite
37
37
  ]);
38
38
  };
39
39
  }
40
- }), W = { class: "rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm hover:shadow-xl transition-all duration-300 transform hover:scale-105" }, G = { class: "p-6" }, K = { class: "flex items-start justify-between" }, Q = { class: "flex-1" }, Z = { class: "flex items-center space-x-2 mb-2" }, X = { class: "text-sm font-medium text-slate-600 dark:text-slate-400" }, Y = { class: "text-3xl font-bold text-slate-800 dark:text-slate-100 mb-1" }, ee = { class: "text-xs text-slate-500 dark:text-slate-400 mb-3" }, te = /* @__PURE__ */ b({
40
+ }), W = { class: "rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm hover:shadow-xl transition-all duration-300 transform hover:scale-105" }, G = { class: "p-6" }, K = { class: "flex items-start justify-between" }, Q = { class: "flex-1" }, Z = { class: "flex items-center space-x-2 mb-2" }, X = { class: "text-sm font-medium text-slate-600 dark:text-slate-400" }, Y = { class: "text-3xl font-bold text-slate-800 dark:text-slate-100 mb-1" }, ee = { class: "text-xs text-slate-500 dark:text-slate-400 mb-3" }, te = /* @__PURE__ */ h({
41
41
  __name: "StatCard",
42
42
  props: {
43
43
  stat: {}
44
44
  },
45
- setup(o) {
46
- const s = (r) => ({
45
+ setup(b) {
46
+ const r = (o) => ({
47
47
  "file-text": v,
48
48
  users: w,
49
49
  image: U,
50
50
  eye: F
51
- })[r] || v;
52
- return (r, a) => (d(), u("div", W, [
51
+ })[o] || v;
52
+ return (o, t) => (l(), c("div", W, [
53
53
  e("div", G, [
54
54
  e("div", K, [
55
55
  e("div", Q, [
56
56
  e("div", Z, [
57
57
  e("div", {
58
- class: x(`p-2 rounded-lg bg-${o.stat.color}-50 dark:bg-${o.stat.color}-900/20`)
58
+ class: g(`p-2 rounded-lg bg-${o.stat.color}-50 dark:bg-${o.stat.color}-900/20`)
59
59
  }, [
60
- (d(), f(j(s(o.stat.icon)), {
61
- class: x(`w-5 h-5 text-${o.stat.color}-600`)
60
+ (l(), _(j(r(o.stat.icon)), {
61
+ class: g(`w-5 h-5 text-${o.stat.color}-600`)
62
62
  }, null, 8, ["class"]))
63
63
  ], 2),
64
- e("p", X, i(o.stat.title), 1)
64
+ e("p", X, a(o.stat.title), 1)
65
65
  ]),
66
- e("p", Y, i(o.stat.value), 1),
67
- e("p", ee, i(o.stat.description), 1)
66
+ e("p", Y, a(o.stat.value), 1),
67
+ e("p", ee, a(o.stat.description), 1)
68
68
  ])
69
69
  ])
70
70
  ])
71
71
  ]));
72
72
  }
73
- }), se = { class: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6" }, oe = /* @__PURE__ */ b({
73
+ }), se = { class: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6" }, oe = /* @__PURE__ */ h({
74
74
  __name: "StatsGrid",
75
75
  props: {
76
76
  stats: {}
77
77
  },
78
- setup(o) {
79
- return (s, r) => (d(), u("div", se, [
80
- (d(!0), u(_, null, k(o.stats, (a) => (d(), f(te, {
81
- key: a.id,
82
- stat: a
78
+ setup(b) {
79
+ return (r, o) => (l(), c("div", se, [
80
+ (l(!0), c(x, null, k(r.stats, (t) => (l(), _(te, {
81
+ key: t.id,
82
+ stat: t
83
83
  }, null, 8, ["stat"]))), 128))
84
84
  ]));
85
85
  }
86
- }), re = { class: "p-4 hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors" }, ae = { class: "flex items-center justify-between" }, ie = { class: "flex-1" }, ne = { class: "flex items-center space-x-3 mb-2" }, le = { class: "inline-flex items-center rounded-md border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-xs bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-600 dark:text-slate-300" }, de = { class: "font-semibold text-slate-800 dark:text-slate-100 mb-1" }, ce = { class: "flex items-center space-x-4 text-sm text-slate-500 dark:text-slate-400" }, ue = { class: "flex items-center" }, me = { class: "flex items-center" }, he = { class: "flex items-center" }, be = { class: "flex items-center space-x-2" }, ge = /* @__PURE__ */ b({
86
+ }), re = { class: "p-4 hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors" }, ae = { class: "flex items-center justify-between" }, ie = { class: "flex-1" }, ne = { class: "flex items-center space-x-3 mb-2" }, le = { class: "inline-flex items-center rounded-md border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-xs bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-600 dark:text-slate-300" }, de = { class: "font-semibold text-slate-800 dark:text-slate-100 mb-1" }, ce = { class: "flex items-center space-x-4 text-sm text-slate-500 dark:text-slate-400" }, ue = { class: "flex items-center" }, me = { class: "flex items-center" }, he = { class: "flex items-center" }, be = { class: "flex items-center space-x-2" }, pe = /* @__PURE__ */ h({
87
87
  __name: "ContentItem",
88
88
  props: {
89
89
  item: {}
90
90
  },
91
- setup(o) {
92
- const s = (a) => {
93
- const n = {
91
+ setup(b) {
92
+ const r = (t) => {
93
+ const i = {
94
94
  published: "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-secondary/80 bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-300",
95
95
  draft: "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-secondary/80 bg-yellow-100 dark:bg-yellow-900/30 text-yellow-800 dark:text-yellow-300",
96
96
  review: "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-secondary/80 bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-300"
97
97
  };
98
- return n[a] || n.draft;
99
- }, r = (a) => {
100
- if (!a)
98
+ return i[t] || i.draft;
99
+ }, o = (t) => {
100
+ if (!t)
101
101
  return "--.--.--";
102
- const n = new Date(a);
102
+ const i = new Date(t);
103
103
  return new Intl.DateTimeFormat("en-US", {
104
104
  year: "numeric",
105
105
  month: "short",
106
106
  day: "numeric"
107
- }).format(n);
107
+ }).format(i);
108
108
  };
109
- return (a, n) => {
110
- const c = S("router-link");
111
- return d(), u("div", re, [
109
+ return (t, i) => {
110
+ const d = S("router-link");
111
+ return l(), c("div", re, [
112
112
  e("div", ae, [
113
113
  e("div", ie, [
114
114
  e("div", ne, [
115
- e("div", le, i(o.item.type), 1),
115
+ e("div", le, a(t.item.type), 1),
116
116
  e("div", {
117
- class: x(s(o.item.status))
118
- }, i(o.item.status || "--"), 3)
117
+ class: g(r(t.item.status))
118
+ }, a(t.item.status || "--"), 3)
119
119
  ]),
120
- e("h3", de, i(o.item.title || "--"), 1),
120
+ e("h3", de, a(t.item.title || "--"), 1),
121
121
  e("div", ce, [
122
122
  e("span", ue, [
123
- l(m(w), { class: "w-4 h-4 mr-1" }),
124
- g(" " + i(o.item.author || "--"), 1)
123
+ n(u(w), { class: "w-4 h-4 mr-1" }),
124
+ p(" " + a(t.item.author || "--"), 1)
125
125
  ]),
126
126
  e("span", me, [
127
- l(m(N), { class: "w-4 h-4 mr-1" }),
128
- g(" " + i(r(o.item.updated_at) || "--.--.--"), 1)
127
+ n(u(N), { class: "w-4 h-4 mr-1" }),
128
+ p(" " + a(o(t.item.updated_at) || "--.--.--"), 1)
129
129
  ]),
130
130
  e("span", he, [
131
- l(m(F), { class: "w-4 h-4 mr-1" }),
132
- g(" " + i(o.item.views || "--") + " " + i(a.$t("cms.dashboard.views")), 1)
131
+ n(u(F), { class: "w-4 h-4 mr-1" }),
132
+ p(" " + a(t.item.views || "--") + " " + a(t.$t("cms.dashboard.views")), 1)
133
133
  ])
134
134
  ])
135
135
  ]),
136
136
  e("div", be, [
137
- l(c, {
138
- to: `/collections/${o.item.object_id}/${o.item.content_id}`,
137
+ n(d, {
138
+ to: `/collections/${t.item.object_id}/${t.item.content_id}`,
139
139
  class: "inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors border shadow-sm rounded-md text-xs h-8 w-8 p-0 bg-white border-slate-300 hover:text-accent-foreground hover:bg-slate-50 dark:border-slate-600 dark:bg-slate-700 dark:hover:bg-slate-600"
140
140
  }, {
141
141
  default: A(() => [
142
- l(m(R), { class: "w-4 h-4 dark:text-blue-50" })
142
+ n(u(R), { class: "w-4 h-4 dark:text-blue-50" })
143
143
  ]),
144
144
  _: 1
145
145
  }, 8, ["to"])
@@ -148,144 +148,144 @@ const B = { class: "flex items-center justify-between" }, E = { class: "flex ite
148
148
  ]);
149
149
  };
150
150
  }
151
- }), xe = { class: "lg:col-span-2" }, fe = { class: "rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm" }, pe = { class: "flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800" }, ve = { class: "flex items-center justify-between" }, _e = { class: "tracking-tight text-xl font-semibold text-slate-800 dark:text-slate-100 flex items-center" }, ke = { class: "p-0" }, we = { class: "divide-y divide-slate-100 dark:divide-slate-700" }, $e = /* @__PURE__ */ b({
151
+ }), ge = { class: "lg:col-span-2" }, _e = { class: "rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm" }, fe = { class: "flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800" }, ve = { class: "flex items-center justify-between" }, xe = { class: "tracking-tight text-xl font-semibold text-slate-800 dark:text-slate-100 flex items-center" }, ke = { class: "p-0" }, we = { class: "divide-y divide-slate-100 dark:divide-slate-700" }, $e = /* @__PURE__ */ h({
152
152
  __name: "RecentContent",
153
153
  props: {
154
154
  content: {}
155
155
  },
156
- setup(o) {
157
- const s = M(), r = (a) => {
158
- s.push(a);
156
+ setup(b) {
157
+ const r = M(), o = (t) => {
158
+ r.push(t);
159
159
  };
160
- return (a, n) => (d(), u("div", xe, [
161
- e("div", fe, [
162
- e("div", pe, [
160
+ return (t, i) => (l(), c("div", ge, [
161
+ e("div", _e, [
162
+ e("div", fe, [
163
163
  e("div", ve, [
164
- e("h3", _e, [
165
- l(m(V), { class: "w-5 h-5 mr-2" }),
166
- g(" " + i(a.$t("cms.dashboard.recentContent")), 1)
164
+ e("h3", xe, [
165
+ n(u(V), { class: "w-5 h-5 mr-2" }),
166
+ p(" " + a(t.$t("cms.dashboard.recentContent")), 1)
167
167
  ]),
168
168
  e("button", {
169
- onClick: n[0] || (n[0] = (c) => r("/settings/collections")),
169
+ onClick: i[0] || (i[0] = (d) => o("/settings/collections")),
170
170
  class: "inline-flex items-center justify-center whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border shadow-sm hover:text-accent-foreground h-8 rounded-md px-3 text-xs bg-white dark:bg-slate-700 border-slate-300 dark:border-slate-600 text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-600"
171
- }, i(a.$t("cms.dashboard.viewAll")), 1)
171
+ }, a(t.$t("cms.dashboard.viewAll")), 1)
172
172
  ])
173
173
  ]),
174
174
  e("div", ke, [
175
175
  e("div", we, [
176
- (d(!0), u(_, null, k(o.content, (c) => (d(), f(ge, {
177
- key: c.id,
178
- item: c
176
+ (l(!0), c(x, null, k(t.content, (d) => (l(), _(pe, {
177
+ key: d.id,
178
+ item: d
179
179
  }, null, 8, ["item"]))), 128))
180
180
  ])
181
181
  ])
182
182
  ])
183
183
  ]));
184
184
  }
185
- }), ye = { class: "rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm" }, Ce = { class: "flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800" }, De = { class: "tracking-tight text-lg font-semibold text-slate-800 dark:text-slate-100 flex items-center" }, Pe = { class: "p-4" }, Se = { class: "grid grid-cols-2 gap-3" }, Ae = ["onClick"], je = { class: "p-2 rounded-lg bg-blue-50 dark:bg-blue-900/20 mb-2 w-fit" }, Ue = { class: "font-medium text-slate-800 dark:text-slate-100 text-sm mb-1 group-hover:text-slate-900 dark:group-hover:text-slate-50" }, Fe = { class: "text-xs text-slate-500 dark:text-slate-400 group-hover:text-slate-600 dark:group-hover:text-slate-300" }, Me = /* @__PURE__ */ b({
185
+ }), ye = { class: "rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm" }, Ce = { class: "flex flex-col space-y-1.5 p-6 border-b border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 dark:from-slate-800 to-white dark:to-slate-800" }, De = { class: "tracking-tight text-lg font-semibold text-slate-800 dark:text-slate-100 flex items-center" }, Pe = { class: "p-4" }, Se = { class: "grid grid-cols-2 gap-3" }, Ae = ["onClick"], je = { class: "p-2 rounded-lg bg-blue-50 dark:bg-blue-900/20 mb-2 w-fit" }, Ue = { class: "font-medium text-slate-800 dark:text-slate-100 text-sm mb-1 group-hover:text-slate-900 dark:group-hover:text-slate-50" }, Fe = { class: "text-xs text-slate-500 dark:text-slate-400 group-hover:text-slate-600 dark:group-hover:text-slate-300" }, Me = /* @__PURE__ */ h({
186
186
  __name: "QuickActions",
187
- setup(o) {
188
- const s = M(), { t: r } = $(), a = [
187
+ setup(b) {
188
+ const r = M(), { t: o } = $(), t = [
189
189
  {
190
190
  id: "create-article",
191
- title: r("cms.dashboard.createArticle"),
192
- description: r("cms.dashboard.createArticleDescription"),
191
+ title: o("cms.dashboard.createArticle"),
192
+ description: o("cms.dashboard.createArticleDescription"),
193
193
  icon: v,
194
194
  iconColor: "text-blue-500",
195
195
  link: "/collections/pages/create"
196
196
  },
197
197
  {
198
198
  id: "upload-media",
199
- title: r("cms.dashboard.uploadMedia"),
200
- description: r("cms.dashboard.uploadMediaDescription"),
199
+ title: o("cms.dashboard.uploadMedia"),
200
+ description: o("cms.dashboard.uploadMediaDescription"),
201
201
  icon: U,
202
202
  iconColor: "text-purple-500",
203
203
  link: "/media"
204
204
  },
205
205
  {
206
206
  id: "manage-users",
207
- title: r("cms.dashboard.manageUsers"),
208
- description: r("cms.dashboard.manageUsersDescription"),
207
+ title: o("cms.dashboard.manageUsers"),
208
+ description: o("cms.dashboard.manageUsersDescription"),
209
209
  icon: w,
210
210
  iconColor: "text-green-500",
211
211
  link: "/settings/users"
212
212
  }
213
- ], n = (c) => {
214
- c && s.push(c);
213
+ ], i = (d) => {
214
+ d && r.push(d);
215
215
  };
216
- return (c, h) => (d(), u("div", ye, [
216
+ return (d, m) => (l(), c("div", ye, [
217
217
  e("div", Ce, [
218
218
  e("h3", De, [
219
- l(m(z), { class: "w-5 h-5 mr-2" }),
220
- g(" " + i(c.$t("cms.dashboard.quickActions")), 1)
219
+ n(u(z), { class: "w-5 h-5 mr-2" }),
220
+ p(" " + a(d.$t("cms.dashboard.quickActions")), 1)
221
221
  ])
222
222
  ]),
223
223
  e("div", Pe, [
224
224
  e("div", Se, [
225
- (d(), u(_, null, k(a, (t) => e("button", {
226
- key: t.id,
225
+ (l(), c(x, null, k(t, (s) => e("button", {
226
+ key: s.id,
227
227
  class: "p-3 rounded-lg border border-slate-200 transition-all duration-200 text-left group hover:bg-slate-50 hover:shadow-md dark:border-slate-600 bg-white dark:bg-slate-700 dark:hover:bg-slate-600",
228
- onClick: (p) => n(t == null ? void 0 : t.link)
228
+ onClick: (f) => i(s == null ? void 0 : s.link)
229
229
  }, [
230
230
  e("div", je, [
231
- (d(), f(j(t == null ? void 0 : t.icon), {
232
- class: x(`w-4 h-4 ${t == null ? void 0 : t.iconColor}`)
231
+ (l(), _(j(s == null ? void 0 : s.icon), {
232
+ class: g(`w-4 h-4 ${s == null ? void 0 : s.iconColor}`)
233
233
  }, null, 8, ["class"]))
234
234
  ]),
235
- e("h3", Ue, i(t == null ? void 0 : t.title), 1),
236
- e("p", Fe, i(t == null ? void 0 : t.description), 1)
235
+ e("h3", Ue, a(s == null ? void 0 : s.title), 1),
236
+ e("p", Fe, a(s == null ? void 0 : s.description), 1)
237
237
  ], 8, Ae)), 64))
238
238
  ])
239
239
  ])
240
240
  ]));
241
241
  }
242
- }), Ie = { class: "w-full max-w-7xl mx-auto space-y-8" }, Te = { class: "grid grid-cols-1 lg:grid-cols-3 gap-6" }, ze = /* @__PURE__ */ b({
242
+ }), Ie = { class: "w-full max-w-7xl mx-auto space-y-8" }, Te = { class: "grid grid-cols-1 lg:grid-cols-3 gap-6" }, ze = /* @__PURE__ */ h({
243
243
  __name: "Dashboard",
244
- setup(o) {
245
- const { t: s } = $(), r = P([
244
+ setup(b) {
245
+ const { t: r } = $(), o = P([
246
246
  {
247
247
  id: "total-content",
248
- title: s("cms.dashboard.totalContent"),
248
+ title: r("cms.dashboard.totalContent"),
249
249
  value: "2,847",
250
- description: s("cms.dashboard.articlesPostsPages"),
250
+ description: r("cms.dashboard.articlesPostsPages"),
251
251
  change: { value: "+12.5%", isPositive: !0 },
252
252
  icon: "file-text",
253
253
  color: "blue"
254
254
  },
255
255
  {
256
256
  id: "active-users",
257
- title: s("cms.dashboard.activeUsers"),
257
+ title: r("cms.dashboard.activeUsers"),
258
258
  value: "1,234",
259
- description: s("cms.dashboard.monthlyActiveUsers"),
259
+ description: r("cms.dashboard.monthlyActiveUsers"),
260
260
  change: { value: "+8.2%", isPositive: !0 },
261
261
  icon: "users",
262
262
  color: "emerald"
263
263
  },
264
264
  {
265
265
  id: "media-files",
266
- title: s("cms.dashboard.mediaFiles"),
266
+ title: r("cms.dashboard.mediaFiles"),
267
267
  value: "5,692",
268
- description: s("cms.dashboard.imagesVideosDocs"),
268
+ description: r("cms.dashboard.imagesVideosDocs"),
269
269
  change: { value: "+23.1%", isPositive: !0 },
270
270
  icon: "image",
271
271
  color: "purple"
272
272
  },
273
273
  {
274
274
  id: "new-media",
275
- title: s("cms.dashboard.newMediaFiles"),
275
+ title: r("cms.dashboard.newMediaFiles"),
276
276
  value: "89.2K",
277
- description: s("cms.dashboard.thisMonth"),
277
+ description: r("cms.dashboard.thisMonth"),
278
278
  change: { value: "-2.4%", isPositive: !1 },
279
279
  icon: "eye",
280
280
  color: "orange"
281
281
  }
282
- ]), a = P([
282
+ ]), t = P([
283
283
  {
284
284
  id: 1,
285
285
  type: "Article",
286
286
  status: "published",
287
- title: s("cms.dashboard.gettingStartedWithNextJs14"),
288
- author: s("cms.dashboard.sarahJohnson"),
287
+ title: r("cms.dashboard.gettingStartedWithNextJs14"),
288
+ author: r("cms.dashboard.sarahJohnson"),
289
289
  updated_at: "2024-01-15",
290
290
  views: 1247
291
291
  },
@@ -293,8 +293,8 @@ const B = { class: "flex items-center justify-between" }, E = { class: "flex ite
293
293
  id: 2,
294
294
  type: "Post",
295
295
  status: "draft",
296
- title: s("cms.dashboard.advancedReactPatterns"),
297
- author: s("cms.dashboard.mikeChen"),
296
+ title: r("cms.dashboard.advancedReactPatterns"),
297
+ author: r("cms.dashboard.mikeChen"),
298
298
  updated_at: "2024-01-14",
299
299
  views: 0
300
300
  },
@@ -302,8 +302,8 @@ const B = { class: "flex items-center justify-between" }, E = { class: "flex ite
302
302
  id: 3,
303
303
  type: "Article",
304
304
  status: "published",
305
- title: s("cms.dashboard.uiUxDesignPrinciples"),
306
- author: s("cms.dashboard.emmaWilson"),
305
+ title: r("cms.dashboard.uiUxDesignPrinciples"),
306
+ author: r("cms.dashboard.emmaWilson"),
307
307
  updated_at: "2024-01-13",
308
308
  views: 892
309
309
  },
@@ -311,43 +311,43 @@ const B = { class: "flex items-center justify-between" }, E = { class: "flex ite
311
311
  id: 4,
312
312
  type: "Post",
313
313
  status: "review",
314
- title: s("cms.dashboard.databaseOptimizationTips"),
315
- author: s("cms.dashboard.alexRodriguez"),
314
+ title: r("cms.dashboard.databaseOptimizationTips"),
315
+ author: r("cms.dashboard.alexRodriguez"),
316
316
  updated_at: "2024-01-12",
317
317
  views: 0
318
318
  }
319
- ]), n = (h) => {
320
- r.value = r.value.map((t) => {
321
- var p, y, C, D;
322
- switch (t.id) {
319
+ ]), i = (m) => {
320
+ o.value = o.value.map((s) => {
321
+ var f, y, C, D;
322
+ switch (s.id) {
323
323
  case "total-content":
324
- return { ...t, value: ((p = h.totalContent) == null ? void 0 : p.toLocaleString()) ?? t.value };
324
+ return { ...s, value: ((f = m.totalContent) == null ? void 0 : f.toLocaleString()) ?? s.value };
325
325
  case "active-users":
326
- return { ...t, value: ((y = h.totalUsers) == null ? void 0 : y.toLocaleString()) ?? t.value };
326
+ return { ...s, value: ((y = m.totalUsers) == null ? void 0 : y.toLocaleString()) ?? s.value };
327
327
  case "media-files":
328
- return { ...t, value: ((C = h.totalMediaFiles) == null ? void 0 : C.toLocaleString()) ?? t.value };
328
+ return { ...s, value: ((C = m.totalMediaFiles) == null ? void 0 : C.toLocaleString()) ?? s.value };
329
329
  case "new-media":
330
- return { ...t, value: ((D = h.newMediaFiles) == null ? void 0 : D.toLocaleString()) ?? t.value };
330
+ return { ...s, value: ((D = m.newMediaFiles) == null ? void 0 : D.toLocaleString()) ?? s.value };
331
331
  default:
332
- return t;
332
+ return s;
333
333
  }
334
334
  });
335
- }, c = async () => {
336
- const t = await (await fetch("api/cms-stat")).json();
337
- a.value = t.recentContent, n(t.stat);
335
+ }, d = async () => {
336
+ const s = await (await fetch("api/cms-stat")).json();
337
+ t.value = s.recentContent, i(s.stat);
338
338
  };
339
339
  return I(() => {
340
- c();
341
- }), (h, t) => (d(), u("div", Ie, [
342
- l(O),
343
- l(oe, { stats: r.value }, null, 8, ["stats"]),
340
+ d();
341
+ }), (m, s) => (l(), c("div", Ie, [
342
+ n(O),
343
+ n(oe, { stats: o.value }, null, 8, ["stats"]),
344
344
  e("div", Te, [
345
- l($e, {
346
- content: a.value,
345
+ n($e, {
346
+ content: t.value,
347
347
  class: "lg:col-span-2"
348
348
  }, null, 8, ["content"]),
349
349
  e("div", null, [
350
- l(Me)
350
+ n(Me)
351
351
  ])
352
352
  ])
353
353
  ]));
@@ -2,9 +2,9 @@ import { defineAsyncComponent as k, defineComponent as z, inject as E, ref as u,
2
2
  import { useRoute as G, useRouter as H } from "vue-router";
3
3
  import { useI18n as K } from "vue-i18n";
4
4
  import { notify as $ } from "@opengis/core";
5
- import { _ as P } from "./CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-umRzB5mY.js";
5
+ import { _ as P } from "./CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-BJh-tjam.js";
6
6
  const Q = {
7
- monaco: k(() => import("./vs-builder-monaco-B3Jj0V31.js")),
7
+ monaco: k(() => import("./vs-builder-monaco-Cw-f19gc.js")),
8
8
  edit: k(() => import("./vs-builder-edit-D-q1o8tF.js")),
9
9
  preview: k(() => import("./vs-builder-preview-BH4VAM3a.js"))
10
10
  }, X = { class: "mx-auto max-w-[90%]" }, Z = { class: "flex items-center justify-between mb-6" }, ee = { class: "mb-2 text-2xl font-semibold text-gray-900" }, te = { class: "lowercase" }, oe = { class: "text-gray-600" }, ne = { class: "flex items-center gap-2" }, se = { class: "w-full" }, ie = { class: "flex items-center w-full h-10 max-w-md grid-cols-3 p-1 mb-6 bg-white border border-gray-200 rounded-md text-muted-foreground" }, re = ["onClick"], ae = {
@@ -8,7 +8,7 @@ const M = { class: "space-y-6 max-w-7xl mx-auto" }, S = { class: "flex items-cen
8
8
  __name: "MenuAddPage",
9
9
  setup(F) {
10
10
  const p = v(
11
- () => import("./MonacoEditor-Db-3Jc3E.js")
11
+ () => import("./MonacoEditor-ByPT8pnv.js")
12
12
  );
13
13
  C["vs-input-monaco-editor"] = p;
14
14
  const { t: e } = q(), u = b();
@@ -11,8 +11,8 @@ const R = /* @__PURE__ */ x({
11
11
  },
12
12
  emits: ["update:modelValue"],
13
13
  setup(f) {
14
- const v = m(() => import("./MenuList-DFEBS0NB.js")), y = m(() => import("./AddNewItemInTree-05PSSEFi.js")), g = m(
15
- () => import("./MonacoEditor-Db-3Jc3E.js")
14
+ const v = m(() => import("./MenuList-BLIpeqSd.js")), y = m(() => import("./AddNewItemInTree-05PSSEFi.js")), g = m(
15
+ () => import("./MonacoEditor-ByPT8pnv.js")
16
16
  );
17
17
  O["vs-input-monaco-editor"] = g;
18
18
  const { t: r } = F(), l = i(!1), d = i(null), n = V(f, "modelValue"), u = i({}), h = async (t) => {
@@ -4,7 +4,7 @@ import { ArrowLeft as Ie, HelpCircle as Re, Save as Le } from "lucide-vue-next";
4
4
  import { useI18n as Ye } from "vue-i18n";
5
5
  import { notify as B } from "@opengis/core";
6
6
  import { inputs as z, VForm as Me } from "@opengis/form";
7
- /*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */
7
+ /*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
8
8
  function se(e) {
9
9
  return typeof e > "u" || e === null;
10
10
  }
@@ -874,9 +874,9 @@ const Bn = { class: "space-y-6 max-w-7xl mx-auto" }, Pn = { class: "flex items-c
874
874
  __name: "MenuItemPage",
875
875
  setup(e) {
876
876
  const r = Q(
877
- () => import("./MenuBody-rN5j4YBu.js")
877
+ () => import("./MenuBody-Bi0ONVZf.js")
878
878
  ), n = Q(
879
- () => import("./MonacoEditor-Db-3Jc3E.js")
879
+ () => import("./MonacoEditor-ByPT8pnv.js")
880
880
  );
881
881
  z["vs-input-monaco-editor"] = n, console.log("[MenuItemPage] vs-input-monaco-editor registered:", !!z["vs-input-monaco-editor"]);
882
882
  const { t, locale: i } = Ye(), a = Ce(), l = be(), u = Ne(() => [