@opengis/gis 0.2.118 → 0.2.119
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CardIcon-FxpK90rl.js → CardIcon-ODZgA2Pb.js} +1 -1
- package/dist/EntityTablePage-UMttc2-F.js +281 -0
- package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-Bl5ZwNQX.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-DLAIOHJh.js} +1 -1
- package/dist/{FileEdit-C7tteUeG.js → FileEdit-GikPLv1T.js} +1 -1
- package/dist/{HeaderActions.vue_vue_type_script_setup_true_lang-CKEep8BL.js → HeaderActions.vue_vue_type_script_setup_true_lang-CTKkmXWD.js} +1 -1
- package/dist/{MapSettings-CjJ7WWkn.js → MapSettings-CbW0TfZl.js} +2 -2
- package/dist/{MonacoEditor.vue_vue_type_script_setup_true_lang-Bs7gz6Lt.js → MonacoEditor.vue_vue_type_script_setup_true_lang-D3ZPeXMw.js} +92 -73
- package/dist/RastersTablePage-CXqscX0i.js +245 -0
- package/dist/{cartocss-C_O8qG3h.js → cartocss-306ZE1Ha.js} +6 -6
- package/dist/{import-utils-BbZ1gVp-.js → import-utils-CHIDSKHz.js} +1 -1
- package/dist/index-CbdZv1jy.js +10123 -0
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +41 -41
- package/dist/{raster-Du8ZMtjf.js → raster-Cn6l0xfZ.js} +4 -4
- package/dist/{register-B2gF-GzA.js → register-4wblFcw2.js} +3 -3
- package/dist/{service-BnPCDVwm.js → service-2uWyAfnR.js} +6 -6
- package/dist/{vs-datatable-QKks38xL.js → vs-datatable-D_Xzh4qf.js} +1 -1
- package/package.json +1 -1
- package/server/plugins/mapnik/funcs/checkRasterFile.js +19 -18
- package/server/routes/mapnik/controllers/clearTiles.js +15 -7
- package/server/routes/mapnik/controllers/createXml.js +5 -4
- package/server/routes/mapnik/controllers/createXmlMulti.js +3 -2
- package/server/routes/mapnik/controllers/rasterInfo.js +5 -4
- package/server/routes/mapnik/controllers/rtile.js +2 -2
- package/dist/EntityTablePage-ii-Wz0YZ.js +0 -286
- package/dist/RastersTablePage-DpKkFOyo.js +0 -359
- package/dist/index-4aSsUBB8.js +0 -10020
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { defineComponent as Z, defineAsyncComponent as ee, computed as c, ref as r, onMounted as te, watch as j, openBlock as z, createElementBlock as q, createVNode as d, createSlots as ae, withCtx as $, createTextVNode as h, toDisplayString as x, createElementVNode as n, unref as i, createCommentVNode as se } from "vue";
|
|
2
|
+
import { useRoute as ne, useRouter as oe } from "vue-router";
|
|
3
|
+
import { VsPagination as le, notify as B } from "@opengis/core";
|
|
4
|
+
import { FilterField as re, Filter as ie } from "@opengis/filter";
|
|
5
|
+
import { RefreshCw as ue, Plus as ce, FileEdit as de } from "lucide-vue-next";
|
|
6
|
+
import { _ as fe } from "./TableFormHeader.vue_vue_type_script_setup_true_lang-Mci_tseM.js";
|
|
7
|
+
import { _ as ve } from "./index-CbdZv1jy.js";
|
|
8
|
+
const ge = { class: "flex-1 flex flex-col bg-gray-50 h-screen overflow-hidden p-0 m-0" }, me = {
|
|
9
|
+
href: "/api/gis-create-xml",
|
|
10
|
+
target: "_blank",
|
|
11
|
+
rel: "noreferrer",
|
|
12
|
+
class: "flex h-[2rem] items-center gap-1.5 px-3 py-1.5 bg-slate-50 text-slate-700 rounded-md border border-slate-200 hover:bg-slate-100 transition-colors text-sm"
|
|
13
|
+
}, he = { class: "flex-1 px-4 sm:px-6 pb-4 overflow-y-auto overflow-x-visible" }, pe = { class: "bg-white rounded-lg shadow-sm border border-gray-200 overflow-visible" }, xe = { class: "p-3 border-b border-gray-200" }, be = { class: "flex flex-col sm:flex-row gap-2" }, ye = { class: "entity-table-root" }, we = { class: "gap-2 inline-flex" }, _e = ["onClick"], Ce = {
|
|
14
|
+
key: 0,
|
|
15
|
+
class: "flex flex-col gap-3 border-t border-gray-200 px-4 py-3 sm:flex-row sm:items-center sm:justify-between bg-gray-50"
|
|
16
|
+
}, Se = { class: "text-sm text-gray-500" }, $e = { class: "font-medium text-gray-700" }, Pe = { class: "font-medium text-gray-700" }, ke = { class: "font-medium text-gray-700" }, Te = { class: "flex items-center justify-end gap-3" }, Re = /* @__PURE__ */ Z({
|
|
17
|
+
__name: "RastersTablePage",
|
|
18
|
+
props: {
|
|
19
|
+
entityKey: { default: "rasters" },
|
|
20
|
+
entityBasePath: { default: "/gis.rasters" },
|
|
21
|
+
columnsConfig: { default: () => [] }
|
|
22
|
+
},
|
|
23
|
+
setup(U) {
|
|
24
|
+
const A = ee(() => import("@opengis/table")), f = ne(), b = oe(), y = U, w = c(() => {
|
|
25
|
+
var e;
|
|
26
|
+
return String(((e = f.meta) == null ? void 0 : e.title) || "Растри");
|
|
27
|
+
}), T = c(() => {
|
|
28
|
+
var e;
|
|
29
|
+
return String(((e = f.meta) == null ? void 0 : e.description) || "");
|
|
30
|
+
}), M = c(() => `Пошук ${String(w.value).trim()}...`), R = c(() => y.entityKey || "rasters"), _ = c(() => y.entityBasePath || "/gis.rasters"), C = r([]), P = r(!0), v = r([]), E = r([]), g = r({}), Q = r([]), l = r(String(f.query.search ?? "")), o = r(Math.max(1, Number(f.query.page) || 1)), S = r(15), u = r(0), D = c(() => u.value > 0), J = c(() => u.value ? (o.value - 1) * S.value + 1 : 0), K = c(() => u.value ? Math.min(o.value * S.value, u.value) : 0);
|
|
31
|
+
function I(e) {
|
|
32
|
+
const t = new URLSearchParams();
|
|
33
|
+
return Object.entries(e).forEach(([s, a]) => {
|
|
34
|
+
if (!(a == null || a === "")) {
|
|
35
|
+
if (Array.isArray(a)) {
|
|
36
|
+
a.forEach((m) => {
|
|
37
|
+
m != null && m !== "" && t.append(s, String(m));
|
|
38
|
+
});
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
t.append(s, String(a));
|
|
42
|
+
}
|
|
43
|
+
}), t.toString();
|
|
44
|
+
}
|
|
45
|
+
function L() {
|
|
46
|
+
return `${_.value}/new`;
|
|
47
|
+
}
|
|
48
|
+
function O(e) {
|
|
49
|
+
return `${_.value}/${e}/edit`;
|
|
50
|
+
}
|
|
51
|
+
async function p() {
|
|
52
|
+
try {
|
|
53
|
+
P.value = !0;
|
|
54
|
+
const e = `/api/data/gis.${R.value}.table`, t = I({
|
|
55
|
+
...g.value,
|
|
56
|
+
page: o.value,
|
|
57
|
+
limit: S.value
|
|
58
|
+
}), s = await fetch(t ? `${e}?${t}` : e);
|
|
59
|
+
if (!s.ok)
|
|
60
|
+
throw new Error(`Rows fetch failed: ${s.status}`);
|
|
61
|
+
const a = await s.json();
|
|
62
|
+
C.value = a.rows || [], u.value = Number(a.filtered ?? a.total ?? a.count ?? C.value.length) || 0, v.value = y.columnsConfig.length ? y.columnsConfig : a.columns || [], E.value = a.filters || [], Q.value = a.actions || [], v.value.length && !v.value[0].link ? v.value[0].link = `${_.value}/{id}` : v.value.length && (v.value[0].link = `${_.value}/{id}`);
|
|
63
|
+
} catch {
|
|
64
|
+
C.value = [], u.value = 0;
|
|
65
|
+
} finally {
|
|
66
|
+
P.value = !1;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function W(e) {
|
|
70
|
+
g.value = e, o.value = 1, k(), p();
|
|
71
|
+
}
|
|
72
|
+
async function G(e, t, s) {
|
|
73
|
+
const a = await fetch(`/api/form/gis.${R.value}.table/${e.id}`);
|
|
74
|
+
if (!a.ok) throw new Error(`Form fetch failed: ${a.status}`);
|
|
75
|
+
const Y = (await a.json()).token, V = await fetch(`/api/table/${Y}`, {
|
|
76
|
+
method: "PUT",
|
|
77
|
+
headers: { "Content-Type": "application/json" },
|
|
78
|
+
body: JSON.stringify({ [t]: s })
|
|
79
|
+
});
|
|
80
|
+
if (!V.ok)
|
|
81
|
+
throw B({
|
|
82
|
+
type: "error",
|
|
83
|
+
title: "Помилка збереження",
|
|
84
|
+
message: `Поле "${t}" не оновлено`
|
|
85
|
+
}), new Error(`Save failed: ${V.status}`);
|
|
86
|
+
B({ title: "Збережено", message: `Поле "${t}" оновлено` });
|
|
87
|
+
}
|
|
88
|
+
function F(e, t) {
|
|
89
|
+
g.value = {
|
|
90
|
+
...g.value,
|
|
91
|
+
[e]: t
|
|
92
|
+
}, o.value = 1, k(), p();
|
|
93
|
+
}
|
|
94
|
+
function H(e) {
|
|
95
|
+
F((e == null ? void 0 : e.name) || "search", (e == null ? void 0 : e.value) ?? l.value);
|
|
96
|
+
}
|
|
97
|
+
function X(e) {
|
|
98
|
+
l.value = "", F(e || "search", void 0);
|
|
99
|
+
}
|
|
100
|
+
function N(e) {
|
|
101
|
+
!e || e === o.value || (o.value = e, k(), p());
|
|
102
|
+
}
|
|
103
|
+
function k() {
|
|
104
|
+
const e = {
|
|
105
|
+
...f.query,
|
|
106
|
+
page: String(o.value),
|
|
107
|
+
...l.value ? { search: l.value } : {}
|
|
108
|
+
};
|
|
109
|
+
l.value || delete e.search, delete e.view, b.replace({ query: e });
|
|
110
|
+
}
|
|
111
|
+
return te(() => {
|
|
112
|
+
p(), document.title = w.value;
|
|
113
|
+
}), j(
|
|
114
|
+
() => f.name,
|
|
115
|
+
() => {
|
|
116
|
+
o.value = 1, l.value = "", p(), document.title = w.value;
|
|
117
|
+
}
|
|
118
|
+
), j(
|
|
119
|
+
() => f.query,
|
|
120
|
+
(e) => {
|
|
121
|
+
const t = Math.max(1, Number(e.page) || 1), s = String(e.search ?? ""), a = t !== o.value, m = s !== l.value;
|
|
122
|
+
!a && !m || (o.value = t, l.value = s, g.value = {
|
|
123
|
+
...g.value,
|
|
124
|
+
search: s || void 0
|
|
125
|
+
}, p());
|
|
126
|
+
}
|
|
127
|
+
), (e, t) => (z(), q("div", ge, [
|
|
128
|
+
d(fe, { variant: "table" }, ae({
|
|
129
|
+
title: $(() => [
|
|
130
|
+
h(x(w.value), 1)
|
|
131
|
+
]),
|
|
132
|
+
actions: $(() => [
|
|
133
|
+
n("a", me, [
|
|
134
|
+
d(i(ue), { size: 16 }),
|
|
135
|
+
t[2] || (t[2] = h(" Оновити растри ", -1))
|
|
136
|
+
]),
|
|
137
|
+
n("a", {
|
|
138
|
+
onClick: t[0] || (t[0] = (s) => i(b).push(L())),
|
|
139
|
+
class: "hover:cursor-pointer flex items-center gap-1.5 px-3 py-1.5 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors text-sm"
|
|
140
|
+
}, [
|
|
141
|
+
d(i(ce), { size: 16 }),
|
|
142
|
+
t[3] || (t[3] = h(" Додати ", -1))
|
|
143
|
+
])
|
|
144
|
+
]),
|
|
145
|
+
_: 2
|
|
146
|
+
}, [
|
|
147
|
+
T.value ? {
|
|
148
|
+
name: "description",
|
|
149
|
+
fn: $(() => [
|
|
150
|
+
h(x(T.value), 1)
|
|
151
|
+
]),
|
|
152
|
+
key: "0"
|
|
153
|
+
} : void 0
|
|
154
|
+
]), 1024),
|
|
155
|
+
n("div", he, [
|
|
156
|
+
n("div", pe, [
|
|
157
|
+
n("div", xe, [
|
|
158
|
+
n("div", be, [
|
|
159
|
+
d(i(re), {
|
|
160
|
+
modelValue: l.value,
|
|
161
|
+
"onUpdate:modelValue": t[1] || (t[1] = (s) => l.value = s),
|
|
162
|
+
name: "search",
|
|
163
|
+
type: "text",
|
|
164
|
+
layout: "inline",
|
|
165
|
+
class: "flex-1",
|
|
166
|
+
width: "100%",
|
|
167
|
+
cleanable: !0,
|
|
168
|
+
onChange: H,
|
|
169
|
+
onClear: X,
|
|
170
|
+
placeholder: M.value
|
|
171
|
+
}, null, 8, ["modelValue", "placeholder"]),
|
|
172
|
+
d(i(ie), {
|
|
173
|
+
schema: E.value,
|
|
174
|
+
value: g.value,
|
|
175
|
+
onChange: W,
|
|
176
|
+
layout: "inline",
|
|
177
|
+
mode: "soft",
|
|
178
|
+
view: "popover",
|
|
179
|
+
limit: 8,
|
|
180
|
+
class: "flex-shrink-0"
|
|
181
|
+
}, null, 8, ["schema", "value"])
|
|
182
|
+
])
|
|
183
|
+
]),
|
|
184
|
+
n("div", ye, [
|
|
185
|
+
d(i(A), {
|
|
186
|
+
rows: C.value,
|
|
187
|
+
columns: v.value,
|
|
188
|
+
loading: P.value,
|
|
189
|
+
router: i(b),
|
|
190
|
+
selectable: !1,
|
|
191
|
+
onCellUpdate: G,
|
|
192
|
+
classWrapper: "overflow-x-auto overflow-y-visible",
|
|
193
|
+
TableStyle: "w-full",
|
|
194
|
+
classTable: "w-full min-w-[640px]",
|
|
195
|
+
classThead: "bg-gray-50 border-b border-gray-200",
|
|
196
|
+
classTh: "px-3 sm:px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",
|
|
197
|
+
classTbody: "bg-white divide-y divide-gray-200",
|
|
198
|
+
classTr: "hover:bg-gray-50 transition-colors",
|
|
199
|
+
classTd: "px-3 sm:px-4 py-2.5 whitespace-nowrap",
|
|
200
|
+
classLink: "text-sm font-medium text-blue-600 hover:text-blue-800 hover:underline text-left"
|
|
201
|
+
}, {
|
|
202
|
+
action: $(({ row: s }) => [
|
|
203
|
+
n("div", we, [
|
|
204
|
+
n("button", {
|
|
205
|
+
onClick: (a) => i(b).push(O(s.id)),
|
|
206
|
+
class: "inline-flex items-center justify-center bg-white border rounded-md size-7 gap-x-2 hover:bg-gray-100"
|
|
207
|
+
}, [
|
|
208
|
+
d(i(de))
|
|
209
|
+
], 8, _e)
|
|
210
|
+
])
|
|
211
|
+
]),
|
|
212
|
+
_: 1
|
|
213
|
+
}, 8, ["rows", "columns", "loading", "router"])
|
|
214
|
+
]),
|
|
215
|
+
D.value ? (z(), q("div", Ce, [
|
|
216
|
+
n("div", Se, [
|
|
217
|
+
t[4] || (t[4] = h(" Показано ", -1)),
|
|
218
|
+
n("span", $e, x(J.value), 1),
|
|
219
|
+
t[5] || (t[5] = h(" - ", -1)),
|
|
220
|
+
n("span", Pe, x(K.value), 1),
|
|
221
|
+
t[6] || (t[6] = h(" з ", -1)),
|
|
222
|
+
n("span", ke, x(u.value), 1)
|
|
223
|
+
]),
|
|
224
|
+
n("div", Te, [
|
|
225
|
+
d(i(le), {
|
|
226
|
+
total: u.value,
|
|
227
|
+
page: o.value,
|
|
228
|
+
"page-size": S.value,
|
|
229
|
+
showPageSizes: !1,
|
|
230
|
+
pageRange: 5,
|
|
231
|
+
view: "button",
|
|
232
|
+
color: "gray",
|
|
233
|
+
"onUpdate:page": N,
|
|
234
|
+
onPageChange: N
|
|
235
|
+
}, null, 8, ["total", "page", "page-size"])
|
|
236
|
+
])
|
|
237
|
+
])) : se("", !0)
|
|
238
|
+
])
|
|
239
|
+
])
|
|
240
|
+
]));
|
|
241
|
+
}
|
|
242
|
+
}), Be = /* @__PURE__ */ ve(Re, [["__scopeId", "data-v-0fdf8306"]]);
|
|
243
|
+
export {
|
|
244
|
+
Be as default
|
|
245
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { openBlock as _, createElementBlock as S, createElementVNode as a, defineComponent as R, computed as C, createTextVNode as ve, createVNode as $, mergeModels as Me, defineAsyncComponent as ee, useModel as je, ref as x, withCtx as O, toDisplayString as N, unref as J, watch as A, onUnmounted as Le, createCommentVNode as q, onBeforeUnmount as he, onMounted as qe, withDirectives as Ae, vModelText as Ne, createBlock as I, normalizeClass as fe, normalizeStyle as Ee, Fragment as me, renderList as Ie, resolveDynamicComponent as Ue } from "vue";
|
|
2
2
|
import { useRouter as Te, useRoute as De } from "vue-router";
|
|
3
3
|
import { notify as B } from "@opengis/core";
|
|
4
|
-
import { _ as Oe, f as ge, n as Re, o as Fe, p as Be, M as Pe, i as Qe, j as pe, m as He } from "./index-
|
|
5
|
-
import { S as Ye, C as Je } from "./CardIcon-
|
|
6
|
-
import { _ as We, a as Xe, b as Ge, c as Ze } from "./HeaderActions.vue_vue_type_script_setup_true_lang-
|
|
7
|
-
import { _ as xe } from "./MonacoEditor.vue_vue_type_script_setup_true_lang-
|
|
8
|
-
import { V as Ke } from "./vs-datatable-
|
|
9
|
-
import { _ as et } from "./ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { _ as Oe, f as ge, n as Re, o as Fe, p as Be, M as Pe, i as Qe, j as pe, m as He } from "./index-CbdZv1jy.js";
|
|
5
|
+
import { S as Ye, C as Je } from "./CardIcon-ODZgA2Pb.js";
|
|
6
|
+
import { _ as We, a as Xe, b as Ge, c as Ze } from "./HeaderActions.vue_vue_type_script_setup_true_lang-CTKkmXWD.js";
|
|
7
|
+
import { _ as xe } from "./MonacoEditor.vue_vue_type_script_setup_true_lang-D3ZPeXMw.js";
|
|
8
|
+
import { V as Ke } from "./vs-datatable-D_Xzh4qf.js";
|
|
9
|
+
import { _ as et } from "./ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-DLAIOHJh.js";
|
|
10
10
|
const tt = {}, ot = {
|
|
11
11
|
xmlns: "http://www.w3.org/2000/svg",
|
|
12
12
|
width: "24",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as V, mergeModels as S, useModel as w, defineAsyncComponent as $, computed as h, openBlock as p, createBlock as A, unref as C, withCtx as T, createElementVNode as r, toDisplayString as y, createElementBlock as b, Fragment as D, renderList as E, normalizeClass as L, resolveDynamicComponent as N, createCommentVNode as f } from "vue";
|
|
2
|
-
import { i as P, g as j } from "./vs-datatable-
|
|
2
|
+
import { i as P, g as j } from "./vs-datatable-D_Xzh4qf.js";
|
|
3
3
|
const R = { class: "p-4 text-[13px]" }, U = { class: "grid grid-cols-2 gap-x-6 gap-y-2" }, q = ["id", "checked", "onChange"], G = { class: "ml-2 flex-1 min-w-0 flex items-center gap-2" }, H = { class: "font-medium text-gray-900 truncate" }, J = { class: "text-xs text-gray-500" }, O = {
|
|
4
4
|
key: 0,
|
|
5
5
|
class: "text-xs text-[#B2C9D6]"
|