@opengis/admin 0.1.38 → 0.1.39

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 (103) hide show
  1. package/README.md +29 -29
  2. package/config.js +4 -4
  3. package/dist/{add-page-C5g2yN5N.js → add-page-CYAz9FdO.js} +1 -1
  4. package/dist/{admin-interface-zpEN5ODZ.js → admin-interface-BfY0EPQi.js} +1 -1
  5. package/dist/{admin-view-DD8_bEjC.js → admin-view-CcyuPjSQ.js} +2 -2
  6. package/dist/admin.js +1 -1
  7. package/dist/admin.umd.cjs +5 -5
  8. package/dist/{card-page-BpMHxKbw.js → card-page-DV3pe4fv.js} +21 -21
  9. package/dist/{card-view-Ddro0nc4.js → card-view-pwoN8ZHo.js} +1 -1
  10. package/dist/{edit-page-BL9SogVY.js → edit-page-PNY_GQBC.js} +1 -1
  11. package/dist/{import-file-DBSDU17c.js → import-file-aqrl_bc7.js} +20 -13
  12. package/dist/style.css +1 -1
  13. package/module/settings/card/admin.roles.table/access.hbs +27 -27
  14. package/module/settings/card/admin.roles.table/general_info.hbs +16 -16
  15. package/module/settings/card/admin.roles.table/index.yml +14 -14
  16. package/module/settings/card/admin.roles.table/users.hbs +27 -27
  17. package/module/settings/card/admin.routes.table/general_info.hbs +40 -40
  18. package/module/settings/card/admin.routes.table/index.yml +8 -8
  19. package/module/settings/card/admin.routes.table/users.hbs +33 -33
  20. package/module/settings/card/admin.users.table/general_info.hbs +25 -25
  21. package/module/settings/card/admin.users.table/index.yml +12 -12
  22. package/module/settings/card/admin.users.table/logs.hbs +30 -30
  23. package/module/settings/card/admin.users.table/user_roles.hbs +24 -24
  24. package/module/settings/cls/core.actions.json +13 -13
  25. package/module/settings/cls/core.scope.json +13 -13
  26. package/module/settings/cls/properties.site_status.json +13 -13
  27. package/module/settings/cls/properties.widget_status.json +13 -13
  28. package/module/settings/cls/users.user_type.json +13 -13
  29. package/module/settings/form/admin.access.form.json +36 -36
  30. package/module/settings/form/admin.properties.form.json +15 -15
  31. package/module/settings/form/admin.roles.form.json +19 -19
  32. package/module/settings/form/admin.routes.form.json +25 -25
  33. package/module/settings/form/admin.table_properties.form.json +70 -70
  34. package/module/settings/form/admin.user_properties.form.json +15 -15
  35. package/module/settings/form/admin.user_roles.form.json +21 -21
  36. package/module/settings/form/admin.users.form.json +150 -150
  37. package/module/settings/form/user.user_roles.form.json +13 -13
  38. package/module/settings/interface/admin.properties.json +4 -4
  39. package/module/settings/interface/admin.roles.json +4 -4
  40. package/module/settings/interface/admin.routes.json +4 -4
  41. package/module/settings/interface/admin.users.json +4 -4
  42. package/module/settings/menu.json +50 -50
  43. package/module/settings/select/core.roles.json +2 -2
  44. package/module/settings/select/core.user_uid.sql +1 -1
  45. package/module/settings/table/admin.access.table.json +77 -77
  46. package/module/settings/table/admin.properties.table.json +33 -33
  47. package/module/settings/table/admin.roles.table.json +58 -58
  48. package/module/settings/table/admin.routes.table.json +55 -55
  49. package/module/settings/table/admin.table_properties.table.json +81 -81
  50. package/module/settings/table/admin.user_properties.table.json +28 -28
  51. package/module/settings/table/admin.user_roles.table.json +66 -66
  52. package/module/settings/table/admin.users.table.json +119 -119
  53. package/package.json +74 -74
  54. package/plugin.js +101 -101
  55. package/server/helpers/controllers/badge.js +11 -11
  56. package/server/helpers/controllers/hb.js +2 -2
  57. package/server/helpers/controllers/map.js +2 -2
  58. package/server/helpers/controllers/mls.js +2 -2
  59. package/server/helpers/controllers/vue.js +2 -2
  60. package/server/helpers/index.mjs +13 -13
  61. package/server/plugins/docs.js +28 -28
  62. package/server/plugins/hook.js +166 -166
  63. package/server/plugins/vite.js +69 -69
  64. package/server/routes/data/controllers/cardData.js +56 -56
  65. package/server/routes/data/controllers/cardTabData.js +39 -39
  66. package/server/routes/data/controllers/funcs/getFilterSQL/index.js +85 -85
  67. package/server/routes/data/controllers/funcs/getFilterSQL/util/formatValue.js +145 -142
  68. package/server/routes/data/controllers/funcs/getFilterSQL/util/getCustomQuery.js +13 -13
  69. package/server/routes/data/controllers/funcs/getFilterSQL/util/getFilterQuery.js +67 -67
  70. package/server/routes/data/controllers/funcs/getFilterSQL/util/getOptimizedQuery.js +12 -12
  71. package/server/routes/data/controllers/funcs/getFilterSQL/util/getTableSql.js +34 -34
  72. package/server/routes/data/controllers/tableData.js +121 -121
  73. package/server/routes/data/controllers/tableDataId.js +27 -27
  74. package/server/routes/data/controllers/tableFilter.js +55 -55
  75. package/server/routes/data/controllers/utils/assignTokens.js +30 -30
  76. package/server/routes/data/controllers/utils/getColumns.js +21 -21
  77. package/server/routes/data/index.mjs +12 -12
  78. package/server/routes/menu/controllers/getMenu.js +33 -33
  79. package/server/routes/menu/index.mjs +5 -5
  80. package/server/routes/properties/controllers/admin.properties.get.js +29 -29
  81. package/server/routes/properties/controllers/user.properties.get.js +34 -34
  82. package/server/routes/properties/controllers/user.properties.post.js +30 -30
  83. package/server/routes/properties/funcs/getSettings.js +56 -56
  84. package/server/routes/properties/funcs/setSettings.js +44 -44
  85. package/server/routes/properties/funcs/utils/dataInsert.js +26 -26
  86. package/server/routes/properties/index.mjs +26 -26
  87. package/server/routes/root.mjs +3 -3
  88. package/server/routes/templates/controllers/getTemplate.js +14 -14
  89. package/server/routes/templates/index.mjs +14 -14
  90. package/server/templates/cls/itree.recrzone_category.json +73 -73
  91. package/server/templates/cls/test.json +9 -9
  92. package/server/templates/form/admin.user_cls.data.form.json +49 -49
  93. package/server/templates/form/admin.user_group_rel.form.json +21 -21
  94. package/server/templates/form/cp_building.form.json +32 -32
  95. package/server/templates/form/form-user-pass.json +10 -10
  96. package/server/templates/form/form-user_group.json +39 -39
  97. package/server/templates/form/form-users.json +156 -156
  98. package/server/templates/form/user_group_access.form.json +22 -22
  99. package/server/templates/select/account_id.json +2 -2
  100. package/server/templates/table/gis.dataset.table.json +43 -43
  101. package/server/templates/table/management.user_group.table.json +112 -112
  102. package/server/templates/table/management.users.table.json +126 -126
  103. package/utils.js +8 -8
@@ -1,6 +1,6 @@
1
1
  import { u as $ } from "./userMenu-CT1xO2Pt.js";
2
- import { _ as V, a as m } from "./import-file-DBSDU17c.js";
3
- import { resolveComponent as z, openBlock as n, createElementBlock as c, createElementVNode as d, toDisplayString as C, createVNode as N, withCtx as q, createTextVNode as B, normalizeClass as T, Fragment as k, renderList as M, createBlock as L, resolveDynamicComponent as H, createCommentVNode as v } from "vue";
2
+ import { _ as V, a as m } from "./import-file-aqrl_bc7.js";
3
+ import { resolveComponent as z, openBlock as n, createElementBlock as c, createElementVNode as u, toDisplayString as C, createVNode as N, withCtx as q, createTextVNode as B, normalizeClass as T, Fragment as k, renderList as M, createBlock as L, resolveDynamicComponent as H, createCommentVNode as v } from "vue";
4
4
  const E = {
5
5
  data() {
6
6
  return {
@@ -19,9 +19,9 @@ const E = {
19
19
  return r || this.$router.replace("/404"), r == null ? void 0 : r.path;
20
20
  },
21
21
  getTitle() {
22
- var t, r, a, l, s, h, i, x, g, u, o, j, w, e, y;
22
+ var t, r, a, l, s, h, i, x, g, d, o, j, w, e, y;
23
23
  if ((a = (r = (t = this.objectData) == null ? void 0 : t.rows) == null ? void 0 : r[0]) != null && a.name)
24
- return ((i = (h = (s = (l = this.objectData) == null ? void 0 : l.rows) == null ? void 0 : s[0]) == null ? void 0 : h.name) == null ? void 0 : i.length) < 35 ? (u = (g = (x = this.objectData) == null ? void 0 : x.rows) == null ? void 0 : g[0]) == null ? void 0 : u.name : ((e = (w = (j = (o = this.objectData) == null ? void 0 : o.rows) == null ? void 0 : j[0]) == null ? void 0 : w.name) == null ? void 0 : e.slice(0, 35)) + " ...";
24
+ return ((i = (h = (s = (l = this.objectData) == null ? void 0 : l.rows) == null ? void 0 : s[0]) == null ? void 0 : h.name) == null ? void 0 : i.length) < 35 ? (d = (g = (x = this.objectData) == null ? void 0 : x.rows) == null ? void 0 : g[0]) == null ? void 0 : d.name : ((e = (w = (j = (o = this.objectData) == null ? void 0 : o.rows) == null ? void 0 : j[0]) == null ? void 0 : w.name) == null ? void 0 : e.slice(0, 35)) + " ...";
25
25
  {
26
26
  const b = (y = this.flattenMenu($.value)) == null ? void 0 : y.find(
27
27
  (p) => {
@@ -64,8 +64,8 @@ const E = {
64
64
  if ((r = (t = this.$route) == null ? void 0 : t.query) != null && r.tab)
65
65
  this.component = (l = (a = this.$route) == null ? void 0 : a.query) == null ? void 0 : l.tab;
66
66
  else {
67
- const u = (h = (s = this.objectData) == null ? void 0 : s.panels) == null ? void 0 : h.find((o) => (o == null ? void 0 : o.type) === "tabs");
68
- (i = u == null ? void 0 : u.items) != null && i.length && (this.component = ((x = u.items[0]) == null ? void 0 : x.component) || ((g = u.items[0]) == null ? void 0 : g.name));
67
+ const d = (h = (s = this.objectData) == null ? void 0 : s.panels) == null ? void 0 : h.find((o) => (o == null ? void 0 : o.type) === "tabs");
68
+ (i = d == null ? void 0 : d.items) != null && i.length && (this.component = ((x = d.items[0]) == null ? void 0 : x.component) || ((g = d.items[0]) == null ? void 0 : g.name));
69
69
  }
70
70
  },
71
71
  flattenMenu(t) {
@@ -98,18 +98,18 @@ const E = {
98
98
  class: "p-[20px] border-t"
99
99
  }, oe = ["innerHTML"];
100
100
  function re(t, r, a, l, s, h) {
101
- var x, g, u;
101
+ var x, g, d;
102
102
  const i = z("router-link");
103
103
  return n(), c("div", A, [
104
- d("div", G, [
105
- d("div", O, [
106
- d("button", {
104
+ u("div", G, [
105
+ u("div", O, [
106
+ u("button", {
107
107
  onClick: r[0] || (r[0] = (o) => t.$router.back()),
108
108
  class: "text-sm h-[20px] text-blue-600 font-medium hover:border-b hover:border-b-2 hover:border-b-blue-500"
109
109
  }, " До таблиці "),
110
- d("h2", R, C(h.getTitle), 1)
110
+ u("h2", R, C(h.getTitle), 1)
111
111
  ]),
112
- d("div", F, [
112
+ u("div", F, [
113
113
  N(i, {
114
114
  to: `/edit?table=${h.getRoute}&id=${(g = (x = t.$route) == null ? void 0 : x.params) == null ? void 0 : g.id}`,
115
115
  class: "py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700 hover:text-white duration-300"
@@ -121,18 +121,18 @@ function re(t, r, a, l, s, h) {
121
121
  }, 8, ["to"])
122
122
  ])
123
123
  ]),
124
- d("div", {
124
+ u("div", {
125
125
  class: T(["grid gap-[20px]", h.getGridClass()])
126
126
  }, [
127
- (n(!0), c(k, null, M((u = s.objectData) == null ? void 0 : u.panels, (o, j) => {
127
+ (n(!0), c(k, null, M((d = s.objectData) == null ? void 0 : d.panels, (o, j) => {
128
128
  var w;
129
129
  return n(), c("div", {
130
130
  key: j,
131
131
  class: T([h.getColClass(o.col), "p-4"])
132
132
  }, [
133
133
  o != null && o.name ? (n(), c("div", I, [
134
- d("h2", P, C((o == null ? void 0 : o.title) || "Панель"), 1),
135
- d("div", {
134
+ u("h2", P, C((o == null ? void 0 : o.title) || "Панель"), 1),
135
+ u("div", {
136
136
  class: "p-[20px] border-t",
137
137
  innerHTML: (w = s.objectData) == null ? void 0 : w.data[o == null ? void 0 : o.name]
138
138
  }, null, 8, S)
@@ -143,7 +143,7 @@ function re(t, r, a, l, s, h) {
143
143
  key: y,
144
144
  class: "border rounded-xl bg-white mb-[20px]"
145
145
  }, [
146
- d("h2", K, C((e == null ? void 0 : e.title) || "Панель"), 1),
146
+ u("h2", K, C((e == null ? void 0 : e.title) || "Панель"), 1),
147
147
  e != null && e.component ? (n(), c("div", Q, [
148
148
  (n(), L(H(e.component), {
149
149
  geometry: (p = (b = s.objectData) == null ? void 0 : b.rows[0]) == null ? void 0 : p.geom,
@@ -152,7 +152,7 @@ function re(t, r, a, l, s, h) {
152
152
  }, null, 8, ["geometry", "id"]))
153
153
  ])) : v("", !0),
154
154
  e != null && e.name ? (n(), c("div", U, [
155
- d("div", {
155
+ u("div", {
156
156
  innerHTML: (D = s.objectData) == null ? void 0 : D.data[e == null ? void 0 : e.name]
157
157
  }, null, 8, W)
158
158
  ])) : v("", !0)
@@ -160,7 +160,7 @@ function re(t, r, a, l, s, h) {
160
160
  }), 128))
161
161
  ])) : v("", !0),
162
162
  (o == null ? void 0 : o.type) === "tabs" ? (n(), c(k, { key: 2 }, [
163
- d("nav", X, [
163
+ u("nav", X, [
164
164
  (n(!0), c(k, null, M(o == null ? void 0 : o.items, (e) => (n(), c("button", {
165
165
  key: (e == null ? void 0 : e.name) || (e == null ? void 0 : e.component),
166
166
  onClick: (y) => s.component = (e == null ? void 0 : e.component) || (e == null ? void 0 : e.name),
@@ -182,7 +182,7 @@ function re(t, r, a, l, s, h) {
182
182
  }, null, 8, ["geometry", "id"]))
183
183
  ])) : v("", !0),
184
184
  e != null && e.name ? (n(), c("div", te, [
185
- d("div", {
185
+ u("div", {
186
186
  innerHTML: (D = s.objectData) == null ? void 0 : D.data[e == null ? void 0 : e.name]
187
187
  }, null, 8, oe)
188
188
  ])) : v("", !0)
@@ -195,7 +195,7 @@ function re(t, r, a, l, s, h) {
195
195
  ], 2)
196
196
  ]);
197
197
  }
198
- const ce = /* @__PURE__ */ V(E, [["render", re], ["__scopeId", "data-v-9b7dd8fb"]]);
198
+ const ce = /* @__PURE__ */ V(E, [["render", re], ["__scopeId", "data-v-908a7e3b"]]);
199
199
  export {
200
200
  ce as default
201
201
  };
@@ -1,5 +1,5 @@
1
1
  import { resolveComponent as e, openBlock as r, createBlock as t } from "vue";
2
- import { _ as c } from "./import-file-DBSDU17c.js";
2
+ import { _ as c } from "./import-file-aqrl_bc7.js";
3
3
  const n = {};
4
4
  function s(_, p, a, i, f, m) {
5
5
  const o = e("router-view");
@@ -1,5 +1,5 @@
1
1
  import { u as m } from "./userMenu-CT1xO2Pt.js";
2
- import { _ as b, a as n } from "./import-file-DBSDU17c.js";
2
+ import { _ as b, a as n } from "./import-file-aqrl_bc7.js";
3
3
  import { resolveComponent as d, openBlock as u, createElementBlock as h, createElementVNode as i, createBlock as p, createCommentVNode as f } from "vue";
4
4
  const g = {
5
5
  data() {
@@ -3577,17 +3577,17 @@ function RI(t, e) {
3577
3577
  return [i, n, r];
3578
3578
  }
3579
3579
  const LI = [
3580
- { name: "edit", path: "/edit", component: () => import("./edit-page-BL9SogVY.js") },
3581
- { name: "add", path: "/add", component: () => import("./add-page-C5g2yN5N.js") },
3580
+ { name: "edit", path: "/edit", component: () => import("./edit-page-PNY_GQBC.js") },
3581
+ { name: "add", path: "/add", component: () => import("./add-page-CYAz9FdO.js") },
3582
3582
  {
3583
3583
  name: "card-view",
3584
3584
  path: "/card",
3585
- component: () => import("./card-view-Ddro0nc4.js"),
3585
+ component: () => import("./card-view-pwoN8ZHo.js"),
3586
3586
  children: [{
3587
3587
  name: "table",
3588
3588
  path: ":table",
3589
- component: () => import("./card-view-Ddro0nc4.js"),
3590
- children: [{ name: "card", path: ":id", component: () => import("./card-page-BpMHxKbw.js") }]
3589
+ component: () => import("./card-view-pwoN8ZHo.js"),
3590
+ children: [{ name: "card", path: ":id", component: () => import("./card-page-DV3pe4fv.js") }]
3591
3591
  }]
3592
3592
  }
3593
3593
  ], FI = {}, BI = { class: "bg-gray-200 w-full px-16 md:px-0 h-screen flex items-center justify-center" }, NI = { class: "bg-white border border-gray-200 flex flex-col items-center justify-center px-4 md:px-8 lg:px-24 py-8 rounded-lg shadow-2xl" };
@@ -3635,13 +3635,13 @@ const VI = /* @__PURE__ */ Bt(FI, [["render", $I]]), jI = (t) => {
3635
3635
  {
3636
3636
  path: "/",
3637
3637
  name: "global",
3638
- component: () => import("./admin-view-DD8_bEjC.js"),
3638
+ component: () => import("./admin-view-CcyuPjSQ.js"),
3639
3639
  children: [
3640
3640
  ...e,
3641
3641
  ...t,
3642
3642
  {
3643
3643
  path: "/:catchAll(.*)",
3644
- component: () => import("./admin-interface-zpEN5ODZ.js")
3644
+ component: () => import("./admin-interface-BfY0EPQi.js")
3645
3645
  }
3646
3646
  ]
3647
3647
  }
@@ -6757,7 +6757,7 @@ function aF(t, e, i, n, r, l) {
6757
6757
  ], 40, oF))), 128))
6758
6758
  ]);
6759
6759
  }
6760
- const lF = /* @__PURE__ */ Bt(rF, [["render", aF], ["__scopeId", "data-v-95b2773a"]]), cF = {
6760
+ const lF = /* @__PURE__ */ Bt(rF, [["render", aF], ["__scopeId", "data-v-d46b1d2e"]]), cF = {
6761
6761
  components: {
6762
6762
  VsNoData: GL,
6763
6763
  VsChoceColor: Kk,
@@ -25779,7 +25779,7 @@ function RF(t, e, i, n, r, l) {
25779
25779
  ]))
25780
25780
  ], 4);
25781
25781
  }
25782
- const LF = /* @__PURE__ */ Bt(CF, [["render", RF], ["__scopeId", "data-v-3f5a9aff"]]), r1 = {
25782
+ const LF = /* @__PURE__ */ Bt(CF, [["render", RF], ["__scopeId", "data-v-14698eb6"]]), r1 = {
25783
25783
  width: 200,
25784
25784
  show: !0,
25785
25785
  position: "horizontal"
@@ -25923,7 +25923,7 @@ function HF(t, e, i, n, r, l) {
25923
25923
  ]))
25924
25924
  ], 2);
25925
25925
  }
25926
- const qF = /* @__PURE__ */ Bt(FF, [["render", HF], ["__scopeId", "data-v-deb51e0a"]]), { Map: WF, NavigationControl: GF, Popup: ZF } = kF, YF = {
25926
+ const qF = /* @__PURE__ */ Bt(FF, [["render", HF], ["__scopeId", "data-v-180f4367"]]), { Map: WF, NavigationControl: GF, Popup: ZF } = kF, YF = {
25927
25927
  mixins: [EF],
25928
25928
  components: { VsMapPopup: qF },
25929
25929
  props: {
@@ -31498,7 +31498,7 @@ function qN(t, e) {
31498
31498
  let r = [];
31499
31499
  for (let l in i) {
31500
31500
  let u = i[l];
31501
- u.groups.indexOf(e) > -1 && r.push(u);
31501
+ u.isInGroup(e) && r.push(u);
31502
31502
  }
31503
31503
  return r.length == 0 && t.err("No node type or group '" + e + "' found"), r;
31504
31504
  }
@@ -31694,6 +31694,13 @@ let F1 = class NT {
31694
31694
  return this.isLeaf || !!this.spec.atom;
31695
31695
  }
31696
31696
  /**
31697
+ Return true when this node type is part of the given
31698
+ [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).
31699
+ */
31700
+ isInGroup(e) {
31701
+ return this.groups.indexOf(e) > -1;
31702
+ }
31703
+ /**
31697
31704
  The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.
31698
31705
  */
31699
31706
  get whitespace() {
@@ -32310,7 +32317,7 @@ class $1 {
32310
32317
  this.findInside(e), i.getContent(e, this.parser.schema).forEach((y) => this.insertNode(y, n));
32311
32318
  else {
32312
32319
  let y = e;
32313
- typeof i.contentElement == "string" ? y = e.querySelector(i.contentElement) : typeof i.contentElement == "function" ? y = i.contentElement(e) : i.contentElement && (y = i.contentElement), this.findAround(e, y, !0), this.addAll(y, n);
32320
+ typeof i.contentElement == "string" ? y = e.querySelector(i.contentElement) : typeof i.contentElement == "function" ? y = i.contentElement(e) : i.contentElement && (y = i.contentElement), this.findAround(e, y, !0), this.addAll(y, n), this.findAround(e, y, !1);
32314
32321
  }
32315
32322
  l && this.sync(a) && this.open--;
32316
32323
  }
@@ -32440,7 +32447,7 @@ class $1 {
32440
32447
  return !1;
32441
32448
  } else {
32442
32449
  let S = y > 0 || y == 0 && r ? this.nodes[y].type : n && y >= l ? n.node(y - l).type : null;
32443
- if (!S || S.name != _ && S.groups.indexOf(_) == -1)
32450
+ if (!S || S.name != _ && !S.isInGroup(_))
32444
32451
  return !1;
32445
32452
  y--;
32446
32453
  }
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- li[data-v-95b2773a]{cursor:move}.map-popup__vertical[data-v-3f5a9aff]{overflow:auto;max-height:300px}.map-popup__vertical[data-v-3f5a9aff]::-webkit-scrollbar{width:6px;height:6px;background-color:#f5f5f5}.map-popup__vertical[data-v-3f5a9aff]::-webkit-scrollbar-thumb{border-radius:5px;background-color:#dedede}.map-popup__vertical[data-v-3f5a9aff]::-webkit-scrollbar-track{background-color:#f5f5f5}.map__popup-body[data-v-3f5a9aff]{table-layout:fixed;width:100%}.map__popup-body-item[data-v-3f5a9aff]:not(:last-child){border-bottom:1px solid #eeeeee}.map__popup-body-item td[data-v-3f5a9aff]{width:50%;word-wrap:break-word;text-align:start}.map__popup-body-item td[data-v-3f5a9aff]:first-child{font-weight:600}.popup-image[data-v-deb51e0a]{max-width:100%;max-height:220px;margin-bottom:10px;object-fit:contain}.maplibregl-ctrl-bottom-right,.maplibregl-popup-close-button{display:none}.widget-file .vs-button{background-color:#2563eb;color:#fff;font-size:.875rem;line-height:1.25rem;font-weight:600}.ui-dialog__modal div.flex.justify-between.items-center.py-3.px-4.border-b{border-bottom-width:0px;--tw-text-opacity: 1;color:#1f2937;font-weight:500;font-size:1.125rem;line-height:1.75rem;padding-bottom:0rem}.ui-dialog__modal .ui-dialog__content .p-4{padding-top:0rem}.widget-images__item-desc span:first-child:after{content:"";width:2px;height:2px;border-radius:50%;display:flex;align-items:center;background:#676a6c;margin:0 5px}.disabled{cursor:not-allowed!important}.item__text-content,.item{transition:all .5s cubic-bezier(.4,0,.2,1)}.item:hover .item__text-content{opacity:.8}.vs-widget-images .vs-button{background-color:#2563eb;color:#fff;font-size:.875rem;line-height:1.25rem;font-weight:600}.editor-container{max-width:800px;margin:0 auto}.ProseMirror-focused{outline:none}.editor-toolbar{background-color:#f9fafb}.editor-content{min-height:200px}button{transition:background-color .2s ease;outline:none}button:focus{outline:none}.editor-content ul{margin-left:20px}.editor-content ul>li{list-style:disc}.editor-content ol{list-style-type:decimal;margin-left:20px}.editor-content pre{background-color:#d3d1d1;border-radius:4px;padding:0 2px}.mention-popup{background-color:#fafafa;padding:10px;border-radius:10px;box-shadow:0 4px 6px #0000001a;z-index:1000;max-width:200px;overflow-y:auto;width:auto}.mention-option{padding:5px 10px;cursor:pointer;transition:background-color .2s;border-radius:8px}.mention-option:hover{background-color:#f0f0f0}.border-top:not(:first-child){--tw-border-opacity: 1;border-color:#e5e7eb;border-top-width:1px}.widget-comment-form .vs-button{padding:.625rem 1rem;font-size:.75rem;line-height:1rem;font-weight:500}.widget-comment-form .vs-button:focus{border:transparent;--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 rgba(0, 0, 0, 0))}.grid[data-v-9b7dd8fb]{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.admin-wrapper[data-v-3d7ecdff]{display:flex;height:100vh;align-items:start}.vs-popover__content>div{padding:.25rem}
1
+ li[data-v-d46b1d2e]{cursor:move}.map-popup__vertical[data-v-14698eb6]{overflow:auto;max-height:300px}.map-popup__vertical[data-v-14698eb6]::-webkit-scrollbar{width:6px;height:6px;background-color:#f5f5f5}.map-popup__vertical[data-v-14698eb6]::-webkit-scrollbar-thumb{border-radius:5px;background-color:#dedede}.map-popup__vertical[data-v-14698eb6]::-webkit-scrollbar-track{background-color:#f5f5f5}.map__popup-body[data-v-14698eb6]{table-layout:fixed;width:100%}.map__popup-body-item[data-v-14698eb6]:not(:last-child){border-bottom:1px solid #eeeeee}.map__popup-body-item td[data-v-14698eb6]{width:50%;word-wrap:break-word;text-align:start}.map__popup-body-item td[data-v-14698eb6]:first-child{font-weight:600}.popup-image[data-v-180f4367]{max-width:100%;max-height:220px;margin-bottom:10px;object-fit:contain}.maplibregl-ctrl-bottom-right,.maplibregl-popup-close-button{display:none}.widget-file .vs-button{background-color:#2563eb;color:#fff;font-size:.875rem;line-height:1.25rem;font-weight:600}.ui-dialog__modal div.flex.justify-between.items-center.py-3.px-4.border-b{border-bottom-width:0px;--tw-text-opacity: 1;color:#1f2937;font-weight:500;font-size:1.125rem;line-height:1.75rem;padding-bottom:0rem}.ui-dialog__modal .ui-dialog__content .p-4{padding-top:0rem}.widget-images__item-desc span:first-child:after{content:"";width:2px;height:2px;border-radius:50%;display:flex;align-items:center;background:#676a6c;margin:0 5px}.disabled{cursor:not-allowed!important}.item__text-content,.item{transition:all .5s cubic-bezier(.4,0,.2,1)}.item:hover .item__text-content{opacity:.8}.vs-widget-images .vs-button{background-color:#2563eb;color:#fff;font-size:.875rem;line-height:1.25rem;font-weight:600}.editor-container{max-width:800px;margin:0 auto}.ProseMirror-focused{outline:none}.editor-toolbar{background-color:#f9fafb}.editor-content{min-height:200px}button{transition:background-color .2s ease;outline:none}button:focus{outline:none}.editor-content ul{margin-left:20px}.editor-content ul>li{list-style:disc}.editor-content ol{list-style-type:decimal;margin-left:20px}.editor-content pre{background-color:#d3d1d1;border-radius:4px;padding:0 2px}.mention-popup{background-color:#fafafa;padding:10px;border-radius:10px;box-shadow:0 4px 6px #0000001a;z-index:1000;max-width:200px;overflow-y:auto;width:auto}.mention-option{padding:5px 10px;cursor:pointer;transition:background-color .2s;border-radius:8px}.mention-option:hover{background-color:#f0f0f0}.border-top:not(:first-child){--tw-border-opacity: 1;border-color:#e5e7eb;border-top-width:1px}.widget-comment-form .vs-button{padding:.625rem 1rem;font-size:.75rem;line-height:1rem;font-weight:500}.widget-comment-form .vs-button:focus{border:transparent;--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 rgba(0, 0, 0, 0))}.grid[data-v-908a7e3b]{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.admin-wrapper[data-v-c3c91323]{display:flex;height:100vh;align-items:start}.vs-popover__content>div{padding:.25rem}
@@ -1,28 +1,28 @@
1
- {{#contentList table="admin.access" query="role_id='{{id}}'" order="cdate desc" sql1=1}}
2
- <table class="min-w-full divide-y divide-gray-200">
3
- <thead class="bg-gray-50">
4
- <tr>
5
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
- ID шаблона</th>
7
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
- Назва шаблону</th>
9
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
- Права</th>
11
- </tr>
12
- </thead>
13
- <tbody class="bg-white divide-y divide-gray-200">
14
- {{#each rows}}
15
- <tr>
16
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
17
- {{route_id}}</td>
18
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
- {{!-- {{route_id}} --}}
20
- </td>
21
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
22
- {{actions}}
23
- </td>
24
- </tr>
25
- {{/each}}
26
- </tbody>
27
- </table>
1
+ {{#contentList table="admin.access" query="role_id='{{id}}'" order="cdate desc" sql1=1}}
2
+ <table class="min-w-full divide-y divide-gray-200">
3
+ <thead class="bg-gray-50">
4
+ <tr>
5
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
+ ID шаблона</th>
7
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
+ Назва шаблону</th>
9
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
+ Права</th>
11
+ </tr>
12
+ </thead>
13
+ <tbody class="bg-white divide-y divide-gray-200">
14
+ {{#each rows}}
15
+ <tr>
16
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
17
+ {{route_id}}</td>
18
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
+ {{!-- {{route_id}} --}}
20
+ </td>
21
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
22
+ {{actions}}
23
+ </td>
24
+ </tr>
25
+ {{/each}}
26
+ </tbody>
27
+ </table>
28
28
  {{/contentList}}
@@ -1,17 +1,17 @@
1
- <dl class="-my-3 divide-y divide-gray-100 text-sm">
2
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
3
- <dt class="font-medium text-gray-900">Назва</dt>
4
- <dd class="text-gray-700 sm:col-span-2">{{name}}</dd>
5
- </div>
6
-
7
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
8
- <dt class="font-medium text-gray-900">On/Off</dt>
9
- <dd class="text-gray-700 sm:col-span-2">{{select enabled data="yes_no"}}</dd>
10
- </div>
11
-
12
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
13
- <dt class="font-medium text-gray-900">Опис</dt>
14
- <dd class="text-gray-700 sm:col-span-2">{{info}}</dd>
15
- </div>
16
-
1
+ <dl class="-my-3 divide-y divide-gray-100 text-sm">
2
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
3
+ <dt class="font-medium text-gray-900">Назва</dt>
4
+ <dd class="text-gray-700 sm:col-span-2">{{name}}</dd>
5
+ </div>
6
+
7
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
8
+ <dt class="font-medium text-gray-900">On/Off</dt>
9
+ <dd class="text-gray-700 sm:col-span-2">{{select enabled data="yes_no"}}</dd>
10
+ </div>
11
+
12
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
13
+ <dt class="font-medium text-gray-900">Опис</dt>
14
+ <dd class="text-gray-700 sm:col-span-2">{{info}}</dd>
15
+ </div>
16
+
17
17
  </dl>
@@ -1,14 +1,14 @@
1
- component: default
2
- panels:
3
- - name: general_info
4
- title: Загальна інформація
5
- col: 4
6
- - type: container
7
- col: 8
8
- items:
9
- - component: vs-widget-table
10
- title: Користувачі
11
- props: { table: admin.user_roles.table, query: role_id=@id, edit: true }
12
- - name: access
13
- title: Права до інтерфейсів
14
- col: 4
1
+ component: default
2
+ panels:
3
+ - name: general_info
4
+ title: Загальна інформація
5
+ col: 4
6
+ - type: container
7
+ col: 8
8
+ items:
9
+ - component: vs-widget-table
10
+ title: Користувачі
11
+ props: { table: admin.user_roles.table, query: role_id=@id, edit: true }
12
+ - name: access
13
+ title: Права до інтерфейсів
14
+ col: 4
@@ -1,28 +1,28 @@
1
- {{#contentList table="admin.user_roles" query="role_id='{{id}}'" order="cdate desc" limit="50" sql1=1}}
2
- <table class="min-w-full divide-y divide-gray-200">
3
- <thead class="bg-gray-50">
4
- <tr>
5
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
- Користувач</th>
7
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
- Закінчення терміну дії доступу до групи</th>
9
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
- Дата надання доступу</th>
11
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
12
- Хто надав доступ</th>
13
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
14
- Дії</th>
15
- </tr>
16
- </thead>
17
- <tbody class="bg-white divide-y divide-gray-200">
18
- {{#each rows}}
19
- <tr>
20
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{user_uid}}</td>
21
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{formatDate expiration}}</td>
22
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{formatDate access_granted_time}}</td>
23
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{access_granted}}</td>
24
- </tr>
25
- {{/each}}
26
- </tbody>
27
- </table>
1
+ {{#contentList table="admin.user_roles" query="role_id='{{id}}'" order="cdate desc" limit="50" sql1=1}}
2
+ <table class="min-w-full divide-y divide-gray-200">
3
+ <thead class="bg-gray-50">
4
+ <tr>
5
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
+ Користувач</th>
7
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
+ Закінчення терміну дії доступу до групи</th>
9
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
+ Дата надання доступу</th>
11
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
12
+ Хто надав доступ</th>
13
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
14
+ Дії</th>
15
+ </tr>
16
+ </thead>
17
+ <tbody class="bg-white divide-y divide-gray-200">
18
+ {{#each rows}}
19
+ <tr>
20
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{user_uid}}</td>
21
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{formatDate expiration}}</td>
22
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{formatDate access_granted_time}}</td>
23
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">{{access_granted}}</td>
24
+ </tr>
25
+ {{/each}}
26
+ </tbody>
27
+ </table>
28
28
  {{/contentList}}
@@ -1,41 +1,41 @@
1
- <dl class="-my-3 divide-y divide-gray-100 text-sm">
2
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
3
- <dt class="font-medium text-gray-900">Назва файлу інтерфейсу</dt>
4
- <dd class="text-gray-700 sm:col-span-2">{{alias}}</dd>
5
- </div>
6
-
7
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
8
- <dt class="font-medium text-gray-900">Назва інтерфейсу українською</dt>
9
- <dd class="text-gray-700 sm:col-span-2">{{title}}</dd>
10
- </div>
11
-
12
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
13
- <dt class="font-medium text-gray-900">Кількість користувачів</dt>
14
- <dd class="text-gray-700 sm:col-span-2">{{user_count}}</dd>
15
- </div>
16
-
17
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
18
- <dt class="font-medium text-gray-900">Кількість груп</dt>
19
- <dd class="text-gray-700 sm:col-span-2">{{roles_count}}</dd>
20
- </div>
21
-
22
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
23
- <dt class="font-medium text-gray-900">Ознака чи для всіх показується</dt>
24
- <dd class="text-gray-700 sm:col-span-2">{{select public data="yes_no"}}</dd>
25
- </div>
26
-
27
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
28
- <dt class="font-medium text-gray-900">Пункт меню</dt>
29
- <dd class="text-gray-700 sm:col-span-2">{{menu_id}}</dd>
30
- </div>
31
-
32
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
33
- <dt class="font-medium text-gray-900">On / Off</dt>
34
- <dd class="text-gray-700 sm:col-span-2">{{select enabled data="yes_no"}}</dd>
35
- </div>
36
-
37
- <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
38
- <dt class="font-medium text-gray-900">Дата створення</dt>
39
- <dd class="text-gray-700 sm:col-span-2">{{formatDate cdate}}</dd>
40
- </div>
1
+ <dl class="-my-3 divide-y divide-gray-100 text-sm">
2
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
3
+ <dt class="font-medium text-gray-900">Назва файлу інтерфейсу</dt>
4
+ <dd class="text-gray-700 sm:col-span-2">{{alias}}</dd>
5
+ </div>
6
+
7
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
8
+ <dt class="font-medium text-gray-900">Назва інтерфейсу українською</dt>
9
+ <dd class="text-gray-700 sm:col-span-2">{{title}}</dd>
10
+ </div>
11
+
12
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
13
+ <dt class="font-medium text-gray-900">Кількість користувачів</dt>
14
+ <dd class="text-gray-700 sm:col-span-2">{{user_count}}</dd>
15
+ </div>
16
+
17
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
18
+ <dt class="font-medium text-gray-900">Кількість груп</dt>
19
+ <dd class="text-gray-700 sm:col-span-2">{{roles_count}}</dd>
20
+ </div>
21
+
22
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
23
+ <dt class="font-medium text-gray-900">Ознака чи для всіх показується</dt>
24
+ <dd class="text-gray-700 sm:col-span-2">{{select public data="yes_no"}}</dd>
25
+ </div>
26
+
27
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
28
+ <dt class="font-medium text-gray-900">Пункт меню</dt>
29
+ <dd class="text-gray-700 sm:col-span-2">{{menu_id}}</dd>
30
+ </div>
31
+
32
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
33
+ <dt class="font-medium text-gray-900">On / Off</dt>
34
+ <dd class="text-gray-700 sm:col-span-2">{{select enabled data="yes_no"}}</dd>
35
+ </div>
36
+
37
+ <div class="grid grid-cols-1 gap-1 py-3 sm:grid-cols-3 sm:gap-4">
38
+ <dt class="font-medium text-gray-900">Дата створення</dt>
39
+ <dd class="text-gray-700 sm:col-span-2">{{formatDate cdate}}</dd>
40
+ </div>
41
41
  </dl>
@@ -1,8 +1,8 @@
1
- component: default
2
- panels:
3
- - name: general_info
4
- title: Загальна інформація
5
- col: 4
6
- - name: users
7
- title: Користувачі
8
- col: 8
1
+ component: default
2
+ panels:
3
+ - name: general_info
4
+ title: Загальна інформація
5
+ col: 4
6
+ - name: users
7
+ title: Користувачі
8
+ col: 8
@@ -1,34 +1,34 @@
1
- {{#contentList table="admin.access" query="route_id='{{id}}'" order="cdate desc" limit="50" sql1=1}}
2
- <table class="min-w-full divide-y divide-gray-200">
3
- <thead class="bg-gray-50">
4
- <tr>
5
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
- Користувач</th>
7
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
- Права</th>
9
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
- Користувач який надав доступ</th>
11
- <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
12
- Дії</th>
13
- </tr>
14
- </thead>
15
- <tbody class="bg-white divide-y divide-gray-200">
16
- {{#each rows}}
17
- <tr>
18
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
- {{!-- {{select user_uid data="core.user_uid"}} --}}
20
- {{user_uid}}
21
- </td>
22
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
23
- {{!-- {{select actions data="core.actions"}} --}}
24
- {{actions}}
25
- </td>
26
- <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
27
- {{!-- {{select access_granted data="core.user_uid"}} --}}
28
- {{access_granted}}
29
- </td>
30
- </tr>
31
- {{/each}}
32
- </tbody>
33
- </table>
1
+ {{#contentList table="admin.access" query="route_id='{{id}}'" order="cdate desc" limit="50" sql1=1}}
2
+ <table class="min-w-full divide-y divide-gray-200">
3
+ <thead class="bg-gray-50">
4
+ <tr>
5
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
6
+ Користувач</th>
7
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
8
+ Права</th>
9
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
10
+ Користувач який надав доступ</th>
11
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
12
+ Дії</th>
13
+ </tr>
14
+ </thead>
15
+ <tbody class="bg-white divide-y divide-gray-200">
16
+ {{#each rows}}
17
+ <tr>
18
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
19
+ {{!-- {{select user_uid data="core.user_uid"}} --}}
20
+ {{user_uid}}
21
+ </td>
22
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
23
+ {{!-- {{select actions data="core.actions"}} --}}
24
+ {{actions}}
25
+ </td>
26
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-F500">
27
+ {{!-- {{select access_granted data="core.user_uid"}} --}}
28
+ {{access_granted}}
29
+ </td>
30
+ </tr>
31
+ {{/each}}
32
+ </tbody>
33
+ </table>
34
34
  {{/contentList}}