@opengis/gis 0.2.145 → 0.2.146
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/README.md +181 -181
- package/dist/{CardIcon-KPdJQSAj.js → CardIcon-BCll_4SB.js} +1 -1
- package/dist/{EntityCreatePage-Da8XgBKU.js → EntityCreatePage-Ch8NU_Yw.js} +14 -14
- package/dist/{EntityEditPage-QktKEAxz.js → EntityEditPage-CRRcW7FL.js} +27 -27
- package/dist/{EntityTablePage-D0CxSITf.js → EntityTablePage-DXJPsOx8.js} +26 -26
- package/dist/{ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-B7Nkfd7c.js → ExtentOutlineLayer.vue_vue_type_script_setup_true_lang-BJ-zsrml.js} +1 -1
- package/dist/{HeaderActions.vue_vue_type_script_setup_true_lang-9kitzmJK.js → HeaderActions.vue_vue_type_script_setup_true_lang-EZGjVDor.js} +5 -5
- package/dist/{MapSettings-CBkp5Cfw.js → MapSettings-CG7u4F4i.js} +33 -33
- package/dist/{RastersTablePage-D1k_WisA.js → RastersTablePage-CN5hfj6F.js} +29 -29
- package/dist/cartocss-BNVXz6oJ.js +1065 -0
- package/dist/{import-utils-CVdAWcDL.js → import-utils-BwcMU3Gp.js} +33 -33
- package/dist/{index-DJKZSGVW.js → index-8aAArh78.js} +63 -63
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +35 -35
- package/dist/raster-BN1gB-NS.js +804 -0
- package/dist/{register-Br5WdQas.js → register-DZ24Z6dC.js} +8 -8
- package/dist/{service-1sCTWkzU.js → service-DXLa4AiW.js} +392 -380
- package/dist/{vs-datatable-CviY_UkX.js → vs-datatable-DVC6-2mA.js} +28 -28
- package/module/cls.json +6 -6
- package/module/gis/card/gis.metadata.table/index.yml +22 -22
- package/module/gis/card/gis.metadata.table/main_info.hbs +20 -20
- package/module/gis/card/gis.metadata.table/metadata_info.hbs +27 -27
- package/module/gis/card/gis.metadata.table/other.hbs +25 -25
- package/module/gis/card/gis.rasters.table/index.yml +11 -11
- package/module/gis/card/gis.rasters.table/main_info.hbs +27 -27
- package/module/gis/card/gis.registers.table/cls.hbs +36 -36
- package/module/gis/card/gis.registers.table/columns.hbs +89 -89
- package/module/gis/card/gis.registers.table/filters.hbs +80 -80
- package/module/gis/card/gis.registers.table/index.yml +23 -23
- package/module/gis/card/gis.registers.table/main_info.hbs +35 -35
- package/module/gis/card/gis.registers.table/source.hbs +45 -45
- package/module/gis/card/gis.services.table/attributes.hbs +91 -91
- package/module/gis/card/gis.services.table/filters.hbs +83 -83
- package/module/gis/card/gis.services.table/index.yml +25 -25
- package/module/gis/card/gis.services.table/main_info.hbs +27 -27
- package/module/gis/card/gis.services.table/source.hbs +25 -25
- package/module/gis/cls/bool.yes_no.json +12 -12
- package/module/gis/cls/encoding.json +14 -14
- package/module/gis/cls/geom_type.json +14 -14
- package/module/gis/cls/gis.column_type.json +34 -34
- package/module/gis/cls/gis.column_view_type.json +26 -26
- package/module/gis/cls/gis.filter_type.json +22 -22
- package/module/gis/cls/language.json +10 -10
- package/module/gis/cls/meta.service_type.json +42 -42
- package/module/gis/cls/ogc.service.json +21 -21
- package/module/gis/cls/service_type.json +42 -42
- package/module/gis/cls/source_type.json +10 -10
- package/module/gis/cls/standarts.json +6 -6
- package/module/gis/cls/topic_category.json +106 -106
- package/module/gis/cls/update_frequency.json +29 -29
- package/module/gis/cls/view.json +21 -21
- package/module/gis/form/feedback.answer.form.json +10 -10
- package/module/gis/form/gis.cartocss.form.json +64 -64
- package/module/gis/form/gis.group_list.form.json +17 -17
- package/module/gis/form/gis.maps.form.json +61 -61
- package/module/gis/form/gis.metadata.form.json +240 -240
- package/module/gis/form/gis.metadata_new.form.json +195 -195
- package/module/gis/form/gis.ogc_service.form.json +51 -51
- package/module/gis/form/gis.rasters.form.json +76 -76
- package/module/gis/form/gis.registers.form.json +124 -124
- package/module/gis/form/gis.registers_column.form.json +84 -84
- package/module/gis/form/gis.registers_filter.form.json +65 -65
- package/module/gis/form/gis.services.form.json +111 -111
- package/module/gis/form/gis.services_attributes.form.json +75 -75
- package/module/gis/form/gis.services_filter.form.json +65 -65
- package/module/gis/menu.json +43 -43
- package/module/gis/select/admin.cls.name.sql +9 -9
- package/module/gis/select/layer_list.sql +7 -7
- package/module/gis/select/layer_list_text.sql +7 -7
- package/module/gis/select/pg.column_name.geometry.sql +12 -12
- package/module/gis/select/pg.columns.parent.sql +6 -6
- package/module/gis/select/pg.table_name.sql +17 -17
- package/module/gis/select/service_id.sql +1 -1
- package/module/gis/table/gis.cartocss.table.json +74 -74
- package/module/gis/table/gis.group_list.table.json +58 -58
- package/module/gis/table/gis.maps.table.json +110 -110
- package/module/gis/table/gis.metadata.table.json +70 -70
- package/module/gis/table/gis.metadata_new.table.json +137 -137
- package/module/gis/table/gis.ogc_service.table.json +100 -100
- package/module/gis/table/gis.rasters.table.json +101 -101
- package/module/gis/table/gis.registers.table.json +143 -143
- package/module/gis/table/gis.services.table.json +120 -120
- package/module/gis/table/site.gis.registers.table.json +88 -88
- package/module/gis/table/site.gis.services.table.json +106 -106
- package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
- package/module/gis/tokens.yml +5 -5
- package/module/permissions/form/permissions.users.form.json +151 -151
- package/module/permissions/table/gis.permissions.table.json +97 -97
- package/module/test/cls/bp_build_type.json +37 -37
- package/module/test/cls/doc_status.json +31 -31
- package/module/test/cls/ts.temp_status.json +18 -18
- package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
- package/module/test/cls/ts.temp_type.json +9 -9
- package/module/test/layer/bp.json +59 -59
- package/module/test/layer/bp1.yml +33 -33
- package/module/test/layer/individual.yml +53 -53
- package/module/test/layer/ts.linking_passport.yml +55 -55
- package/module/test/layer/ts.temp_structure.yml +50 -50
- package/module/test/map/addr.yml +21 -21
- package/module/test/map/bp_myo.json +43 -43
- package/module/test/map/bpf.json +43 -43
- package/module/test/map/main.json +37 -37
- package/module/test/map/mbd.json +92 -92
- package/module/test/map/ts.json +53 -53
- package/module/test/select/address_id.json +2 -2
- package/module/test/select/address_id.sql +7 -7
- package/module/test/select/core.user_uid.sql +1 -1
- package/module/test/table/data_address.street.table.json +69 -69
- package/module/test/table/data_bp_myo.bp.table.json +122 -122
- package/package.json +75 -75
- package/plugin.js +55 -55
- package/server/migrations/array_intersect.sql +13 -13
- package/server/migrations/cartocss.sql +27 -27
- package/server/migrations/group_list.sql +74 -74
- package/server/migrations/maps.sql +30 -30
- package/server/migrations/metadata.sql +415 -415
- package/server/migrations/ogc.sql +106 -106
- package/server/migrations/rasters.sql +265 -265
- package/server/migrations/services.sql +247 -247
- package/server/migrations/services_users_rel.sql +22 -22
- package/server/migrations/widgets.sql +20 -20
- package/server/plugins/crons.js +21 -21
- package/server/plugins/mapnik/funcs/checkRasterFile.js +109 -109
- package/server/plugins/mapnik/funcs/mapnik.js +151 -151
- package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
- package/server/plugins/mapnik/map.proto +230 -230
- package/server/plugins/vite.js +74 -74
- package/server/routes/gis/cartocss/add.cartocss.js +42 -42
- package/server/routes/gis/cartocss/get.cartocss.js +59 -59
- package/server/routes/gis/checkXML.js +117 -117
- package/server/routes/gis/dashboard.js +29 -29
- package/server/routes/gis/index.mjs +87 -87
- package/server/routes/gis/metadata/editMetadata.js +34 -34
- package/server/routes/gis/metadata/metadataXML.js +13 -13
- package/server/routes/gis/ogc/map.info.point.js +124 -124
- package/server/routes/gis/registers/add.registry.js +35 -35
- package/server/routes/gis/registers/del.registry.js +14 -14
- package/server/routes/gis/registers/funcs/classifiers.js +100 -100
- package/server/routes/gis/registers/funcs/columns.js +3 -3
- package/server/routes/gis/registers/funcs/content.type.js +9 -9
- package/server/routes/gis/registers/funcs/get.info.js +89 -89
- package/server/routes/gis/registers/funcs/handleRegistryRequest.js +146 -146
- package/server/routes/gis/registers/gis.export.js +153 -153
- package/server/routes/gis/registers/gis.registry.js +64 -64
- package/server/routes/gis/registers/gis.registry.list.js +59 -59
- package/server/routes/gis/registers/insert.columns.js +107 -107
- package/server/routes/gis/registers/insert.filters.js +110 -110
- package/server/routes/gis/registers/map.registry.js +79 -79
- package/server/routes/gis/services/add.service.js +64 -64
- package/server/routes/gis/services/del.service.js +12 -12
- package/server/routes/gis/services/get.layer.geom.js +27 -27
- package/server/routes/gis/services/get.services.col.js +33 -33
- package/server/routes/gis/services/get.services.js +84 -84
- package/server/routes/gis/services/legend.auto.js +77 -77
- package/server/routes/map/controllers/clearTiles.js +34 -34
- package/server/routes/map/controllers/geojson.js +187 -187
- package/server/routes/map/controllers/jsonData.js +205 -205
- package/server/routes/map/controllers/layerList.js +102 -102
- package/server/routes/map/controllers/map.js +123 -123
- package/server/routes/map/controllers/mapCatalog.js +72 -72
- package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
- package/server/routes/map/controllers/mapFeatures.js +128 -128
- package/server/routes/map/controllers/mapFormat.js +234 -234
- package/server/routes/map/controllers/mapTiles.js +152 -152
- package/server/routes/map/controllers/maps.js +15 -15
- package/server/routes/map/controllers/marker_icon.js +43 -43
- package/server/routes/map/controllers/vtile.js +172 -172
- package/server/routes/map/index.mjs +169 -169
- package/server/routes/map/maps/add.map.js +43 -43
- package/server/routes/map/maps/del.map.js +18 -18
- package/server/routes/map/maps/get.map.js +118 -118
- package/server/routes/map/vtile1.js +179 -179
- package/server/routes/map/widgets/add.widget.js +38 -38
- package/server/routes/map/widgets/del.widget.js +22 -22
- package/server/routes/map/widgets/get.widget.js +40 -40
- package/server/routes/mapnik/controllers/clearTiles.js +106 -106
- package/server/routes/mapnik/controllers/createXml.js +67 -67
- package/server/routes/mapnik/controllers/createXmlMulti.js +76 -76
- package/server/routes/mapnik/controllers/fileSearch.js +38 -38
- package/server/routes/mapnik/controllers/fileStat.js +28 -28
- package/server/routes/mapnik/controllers/mapnikLogger.js +29 -29
- package/server/routes/mapnik/controllers/mapnikStat.js +19 -19
- package/server/routes/mapnik/controllers/pretile.js +144 -144
- package/server/routes/mapnik/controllers/rasterInfo.js +57 -57
- package/server/routes/mapnik/controllers/readDir.js +22 -22
- package/server/routes/mapnik/controllers/rtile.js +150 -150
- package/server/routes/mapnik/controllers/uploadRaster.js +157 -157
- package/server/routes/mapnik/functions/cartoBounds.js +32 -32
- package/server/routes/mapnik/functions/convertBoundToTile.js +27 -27
- package/server/routes/mapnik/functions/uploadXML.js +113 -113
- package/server/routes/mapnik/index.js +40 -40
- package/server/routes/permissions/controllers/catalog.permissions.edit.js +22 -22
- package/server/routes/permissions/controllers/catalog.permissions.js +7 -7
- package/server/routes/permissions/controllers/gis.catalog.js +80 -80
- package/server/routes/permissions/controllers/utils/get.permissions.js +59 -59
- package/server/routes/permissions/index.mjs +18 -18
- package/server/routes/root.mjs +3 -3
- package/utils.js +13 -13
- package/dist/cartocss-KfS-aCRn.js +0 -1053
- package/dist/raster-CKQiGAgN.js +0 -792
package/README.md
CHANGED
|
@@ -1,181 +1,181 @@
|
|
|
1
|
-
<!--  -->
|
|
2
|
-
|
|
3
|
-
# @opengis/gis
|
|
4
|
-
|
|
5
|
-
[](https://www.npmjs.com/package/@opengis/gis)
|
|
6
|
-
[]()
|
|
7
|
-
[]()
|
|
8
|
-
[](http://standardjs.com/)
|
|
9
|
-
|
|
10
|
-
Tools for mapping, geodata management, and integration into modern web services.
|
|
11
|
-
|
|
12
|
-
## Features
|
|
13
|
-
|
|
14
|
-
**Core Platform Capabilities:**
|
|
15
|
-
|
|
16
|
-
- **Web-based GIS Platform** – Access and manage geospatial data through a cloud-based environment.
|
|
17
|
-
- **User & Admin Management** – Control access and permissions.
|
|
18
|
-
- **No-Code Map Builder** – Create and configure web maps without programming skills.
|
|
19
|
-
- **Configurable User Interface** – Customize map layout and widgets based on user needs.
|
|
20
|
-
- **Admin Panel** – Centrally manage system settings, users, and datasets.
|
|
21
|
-
|
|
22
|
-
**Visualization & Mapping:**
|
|
23
|
-
|
|
24
|
-
- **Interactive Web Maps** – View and explore geographic data online.
|
|
25
|
-
- **Map Catalog** – Access and manage a collection of thematic maps.
|
|
26
|
-
- **Layer Management** – Control visibility and organization of map layers.
|
|
27
|
-
- **Advanced Filtering** – Query and filter data based on attributes.
|
|
28
|
-
- **Search Functionality** – Find objects by address, ID, or attributes.
|
|
29
|
-
- **CartoCSS Styling** – Customize map appearance with flexible styling rules.
|
|
30
|
-
|
|
31
|
-
**Raster Management:**
|
|
32
|
-
|
|
33
|
-
- **Single Raster Support** – Upload, store, and visualize individual raster datasets.
|
|
34
|
-
- **Multi-Raster VRT Builder** – Combine multiple raster files into a single virtual raster (VRT).
|
|
35
|
-
- **Recursive Raster Processing** – Automatically build VRTs from nested folder structures.
|
|
36
|
-
- **Raster Data Visualization** – Display raster layers alongside vector data on maps.
|
|
37
|
-
- **Raster Layer Management** – Control visibility and ordering of raster datasets.
|
|
38
|
-
- **Scalable Raster Handling** – Efficient processing of large raster collections.
|
|
39
|
-
|
|
40
|
-
**Data Management:**
|
|
41
|
-
|
|
42
|
-
- **Dataset View** – Explore spatial data in a synchronized tabular format.
|
|
43
|
-
- **Data Import & Storage** – Upload and store spatial and tabular data.
|
|
44
|
-
- **Large Dataset Support** – Efficiently handle datasets with 100,000+ features.
|
|
45
|
-
- **Dataset Management** – Upload and manage spatial data (Shapefile, GeoJSON, CSV, etc.).
|
|
46
|
-
- **Registers Management** – Create and maintain structured geospatial datasets.
|
|
47
|
-
|
|
48
|
-
**Integration & Distribution:**
|
|
49
|
-
|
|
50
|
-
- **API & OGC Standards Support** – Supports WMS, WFS, WMTS services.
|
|
51
|
-
- **API Integration** – Connect with external systems and services.
|
|
52
|
-
- **Geoportal Access** – Centralized platform for all maps and datasets.
|
|
53
|
-
- **Data Export** – Export geospatial data in standard formats.
|
|
54
|
-
- **Map Publishing** – Publish and share maps quickly online.
|
|
55
|
-
|
|
56
|
-
## Install
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
npm i @opengis/gis
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Usage Portal
|
|
63
|
-
|
|
64
|
-
```vue
|
|
65
|
-
<template>
|
|
66
|
-
<!--$route.params.id-->
|
|
67
|
-
<MapWidget :id="'home'" />
|
|
68
|
-
</template>
|
|
69
|
-
|
|
70
|
-
<script setup lang="ts">
|
|
71
|
-
const MapWidget = defineAsyncComponent(() =>
|
|
72
|
-
import("@opengis/gis").then((m) => m.MapWidget),
|
|
73
|
-
);
|
|
74
|
-
</script>
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Usage Admin
|
|
78
|
-
|
|
79
|
-
```js
|
|
80
|
-
// router.config
|
|
81
|
-
export default [
|
|
82
|
-
{
|
|
83
|
-
path: "/gis.registers/:id?",
|
|
84
|
-
component: () => import("@opengis/gis").then((m) => m.Register),
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
path: "/gis.services/:id?",
|
|
88
|
-
component: () => import("@opengis/gis").then((m) => m.Service),
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
path: "/gis.rasters/:id?",
|
|
92
|
-
component: () => import("@opengis/gis").then((m) => m.Raster),
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
path: "/gis.cartocss/:id?",
|
|
96
|
-
component: () => import("@opengis/gis").then((m) => m.CartoCSS),
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
path: "/gis.maps/:id?",
|
|
100
|
-
component: () => import("@opengis/gis").then((m) => m.MapSettings),
|
|
101
|
-
},
|
|
102
|
-
];
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
## Config
|
|
106
|
-
|
|
107
|
-
```js
|
|
108
|
-
// main.ts
|
|
109
|
-
app.config.globalProperties.$settings = {
|
|
110
|
-
map: {
|
|
111
|
-
center: [34.71, 48.51],
|
|
112
|
-
zoom: 14,
|
|
113
|
-
basemaps: [
|
|
114
|
-
{
|
|
115
|
-
name: "Оглядова карта",
|
|
116
|
-
url: "https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
name: "Ортофото 1:10K",
|
|
120
|
-
url: "https://data.gki.com.ua/api-user/rtile/orto10/ua/{z}/{x}/{y}.png",
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: "Open Street Maps",
|
|
124
|
-
url: "https://tile.openstreetmap.org.ua/styles/osm-bright/{z}/{x}/{y}.png",
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
name: "Топографічна карта 1:2000",
|
|
128
|
-
url: "/api/gis-rtile/3830082297432900636/{z}/{x}/{y}.png",
|
|
129
|
-
preview: "/api/gis-rtile/3830082297432900636/17/78138/45286.png",
|
|
130
|
-
},
|
|
131
|
-
],
|
|
132
|
-
},
|
|
133
|
-
};
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## Documentation
|
|
137
|
-
|
|
138
|
-
For a detailed understanding of `cms`, its features, and how to use them, refer to our [Documentation](https://gis.opengis.info/).
|
|
139
|
-
|
|
140
|
-
## Technology stack
|
|
141
|
-
|
|
142
|
-
<a href="https://fastify.dev/" target="_blank">
|
|
143
|
-
<img src="https://img.shields.io/badge/Fastify-323330?style=for-the-badge&logo=fastify" /></a>
|
|
144
|
-
|
|
145
|
-
<a href="https://vuejs.org/" target="_blank">
|
|
146
|
-
<img src="https://img.shields.io/badge/Vue%20js-323330?style=for-the-badge&logo=vuedotjs&logoColor=4FC08D" /></a>
|
|
147
|
-
|
|
148
|
-
<a href="https://vite.dev/" target="_blank">
|
|
149
|
-
<img src="https://img.shields.io/badge/Vite-323330?style=for-the-badge&logo=vite" /></a>
|
|
150
|
-
|
|
151
|
-
<a href="https://www.postgresql.org/" target="_blank">
|
|
152
|
-
<img src="https://img.shields.io/badge/PostgreSQL-323330?style=for-the-badge&logo=postgresql&logoColor=white" /></a>
|
|
153
|
-
|
|
154
|
-
<a href="https://redis.io/" target="_blank">
|
|
155
|
-
<img src="https://img.shields.io/badge/redis-323330.svg?&style=for-the-badge&logo=redis&logoColor=%23DD0031" /></a>
|
|
156
|
-
|
|
157
|
-
<a href="https://nodejs.org/" target="_blank">
|
|
158
|
-
<img src="https://img.shields.io/badge/Node.js-323330?style=for-the-badge&logo=node.js&logoColor=white" /></a>
|
|
159
|
-
|
|
160
|
-
## Contribute
|
|
161
|
-
|
|
162
|
-
Feel free to contact us through our website [SOFTPRO.UA](https://softpro.ua) or email <info@softpro.ua>
|
|
163
|
-
|
|
164
|
-
- Report bugs
|
|
165
|
-
- Share your ideas
|
|
166
|
-
- Ask questions
|
|
167
|
-
|
|
168
|
-
## Follow Us
|
|
169
|
-
|
|
170
|
-
[Official site](https://softpro.ua)
|
|
171
|
-
|
|
172
|
-
<p>
|
|
173
|
-
<a href="https://www.instagram.com/gissoftpro/" target="_blank"><img src="https://cdn.softpro.ua/data/npm/instagram.png" alt="Softpro Instagram" title="oftpro Instagram"></a>
|
|
174
|
-
<a href="https://www.facebook.com/gissoftpro" target="_blank"><img src="https://cdn.softpro.ua/data/npm/facebook.png" alt="Softpro Facebook" title="Softpro Facebook"></a>
|
|
175
|
-
<a href="https://t.me/softprogis" target="_blank"><img src="https://cdn.softpro.ua/data/npm/telegram.png" alt="Softpro Telegram" title="Softpro Telegram"></a>
|
|
176
|
-
<a href="https://www.linkedin.com/in/softpro-ukraine-a8876b282/recent-activity/all/" target="_blank"><img src="https://cdn.softpro.ua/data/npm/social/linkedin.png" alt="Softpro Linkedin" title="Softpro LinkedIn"></a>
|
|
177
|
-
</p>
|
|
178
|
-
|
|
179
|
-
## License
|
|
180
|
-
|
|
181
|
-
Copyright © SOFTPRO. All rights reserved.
|
|
1
|
+
<!--  -->
|
|
2
|
+
|
|
3
|
+
# @opengis/gis
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@opengis/gis)
|
|
6
|
+
[]()
|
|
7
|
+
[]()
|
|
8
|
+
[](http://standardjs.com/)
|
|
9
|
+
|
|
10
|
+
Tools for mapping, geodata management, and integration into modern web services.
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
**Core Platform Capabilities:**
|
|
15
|
+
|
|
16
|
+
- **Web-based GIS Platform** – Access and manage geospatial data through a cloud-based environment.
|
|
17
|
+
- **User & Admin Management** – Control access and permissions.
|
|
18
|
+
- **No-Code Map Builder** – Create and configure web maps without programming skills.
|
|
19
|
+
- **Configurable User Interface** – Customize map layout and widgets based on user needs.
|
|
20
|
+
- **Admin Panel** – Centrally manage system settings, users, and datasets.
|
|
21
|
+
|
|
22
|
+
**Visualization & Mapping:**
|
|
23
|
+
|
|
24
|
+
- **Interactive Web Maps** – View and explore geographic data online.
|
|
25
|
+
- **Map Catalog** – Access and manage a collection of thematic maps.
|
|
26
|
+
- **Layer Management** – Control visibility and organization of map layers.
|
|
27
|
+
- **Advanced Filtering** – Query and filter data based on attributes.
|
|
28
|
+
- **Search Functionality** – Find objects by address, ID, or attributes.
|
|
29
|
+
- **CartoCSS Styling** – Customize map appearance with flexible styling rules.
|
|
30
|
+
|
|
31
|
+
**Raster Management:**
|
|
32
|
+
|
|
33
|
+
- **Single Raster Support** – Upload, store, and visualize individual raster datasets.
|
|
34
|
+
- **Multi-Raster VRT Builder** – Combine multiple raster files into a single virtual raster (VRT).
|
|
35
|
+
- **Recursive Raster Processing** – Automatically build VRTs from nested folder structures.
|
|
36
|
+
- **Raster Data Visualization** – Display raster layers alongside vector data on maps.
|
|
37
|
+
- **Raster Layer Management** – Control visibility and ordering of raster datasets.
|
|
38
|
+
- **Scalable Raster Handling** – Efficient processing of large raster collections.
|
|
39
|
+
|
|
40
|
+
**Data Management:**
|
|
41
|
+
|
|
42
|
+
- **Dataset View** – Explore spatial data in a synchronized tabular format.
|
|
43
|
+
- **Data Import & Storage** – Upload and store spatial and tabular data.
|
|
44
|
+
- **Large Dataset Support** – Efficiently handle datasets with 100,000+ features.
|
|
45
|
+
- **Dataset Management** – Upload and manage spatial data (Shapefile, GeoJSON, CSV, etc.).
|
|
46
|
+
- **Registers Management** – Create and maintain structured geospatial datasets.
|
|
47
|
+
|
|
48
|
+
**Integration & Distribution:**
|
|
49
|
+
|
|
50
|
+
- **API & OGC Standards Support** – Supports WMS, WFS, WMTS services.
|
|
51
|
+
- **API Integration** – Connect with external systems and services.
|
|
52
|
+
- **Geoportal Access** – Centralized platform for all maps and datasets.
|
|
53
|
+
- **Data Export** – Export geospatial data in standard formats.
|
|
54
|
+
- **Map Publishing** – Publish and share maps quickly online.
|
|
55
|
+
|
|
56
|
+
## Install
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm i @opengis/gis
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Usage Portal
|
|
63
|
+
|
|
64
|
+
```vue
|
|
65
|
+
<template>
|
|
66
|
+
<!--$route.params.id-->
|
|
67
|
+
<MapWidget :id="'home'" />
|
|
68
|
+
</template>
|
|
69
|
+
|
|
70
|
+
<script setup lang="ts">
|
|
71
|
+
const MapWidget = defineAsyncComponent(() =>
|
|
72
|
+
import("@opengis/gis").then((m) => m.MapWidget),
|
|
73
|
+
);
|
|
74
|
+
</script>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Usage Admin
|
|
78
|
+
|
|
79
|
+
```js
|
|
80
|
+
// router.config
|
|
81
|
+
export default [
|
|
82
|
+
{
|
|
83
|
+
path: "/gis.registers/:id?",
|
|
84
|
+
component: () => import("@opengis/gis").then((m) => m.Register),
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
path: "/gis.services/:id?",
|
|
88
|
+
component: () => import("@opengis/gis").then((m) => m.Service),
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
path: "/gis.rasters/:id?",
|
|
92
|
+
component: () => import("@opengis/gis").then((m) => m.Raster),
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
path: "/gis.cartocss/:id?",
|
|
96
|
+
component: () => import("@opengis/gis").then((m) => m.CartoCSS),
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
path: "/gis.maps/:id?",
|
|
100
|
+
component: () => import("@opengis/gis").then((m) => m.MapSettings),
|
|
101
|
+
},
|
|
102
|
+
];
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Config
|
|
106
|
+
|
|
107
|
+
```js
|
|
108
|
+
// main.ts
|
|
109
|
+
app.config.globalProperties.$settings = {
|
|
110
|
+
map: {
|
|
111
|
+
center: [34.71, 48.51],
|
|
112
|
+
zoom: 14,
|
|
113
|
+
basemaps: [
|
|
114
|
+
{
|
|
115
|
+
name: "Оглядова карта",
|
|
116
|
+
url: "https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "Ортофото 1:10K",
|
|
120
|
+
url: "https://data.gki.com.ua/api-user/rtile/orto10/ua/{z}/{x}/{y}.png",
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: "Open Street Maps",
|
|
124
|
+
url: "https://tile.openstreetmap.org.ua/styles/osm-bright/{z}/{x}/{y}.png",
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "Топографічна карта 1:2000",
|
|
128
|
+
url: "/api/gis-rtile/3830082297432900636/{z}/{x}/{y}.png",
|
|
129
|
+
preview: "/api/gis-rtile/3830082297432900636/17/78138/45286.png",
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Documentation
|
|
137
|
+
|
|
138
|
+
For a detailed understanding of `cms`, its features, and how to use them, refer to our [Documentation](https://gis.opengis.info/).
|
|
139
|
+
|
|
140
|
+
## Technology stack
|
|
141
|
+
|
|
142
|
+
<a href="https://fastify.dev/" target="_blank">
|
|
143
|
+
<img src="https://img.shields.io/badge/Fastify-323330?style=for-the-badge&logo=fastify" /></a>
|
|
144
|
+
|
|
145
|
+
<a href="https://vuejs.org/" target="_blank">
|
|
146
|
+
<img src="https://img.shields.io/badge/Vue%20js-323330?style=for-the-badge&logo=vuedotjs&logoColor=4FC08D" /></a>
|
|
147
|
+
|
|
148
|
+
<a href="https://vite.dev/" target="_blank">
|
|
149
|
+
<img src="https://img.shields.io/badge/Vite-323330?style=for-the-badge&logo=vite" /></a>
|
|
150
|
+
|
|
151
|
+
<a href="https://www.postgresql.org/" target="_blank">
|
|
152
|
+
<img src="https://img.shields.io/badge/PostgreSQL-323330?style=for-the-badge&logo=postgresql&logoColor=white" /></a>
|
|
153
|
+
|
|
154
|
+
<a href="https://redis.io/" target="_blank">
|
|
155
|
+
<img src="https://img.shields.io/badge/redis-323330.svg?&style=for-the-badge&logo=redis&logoColor=%23DD0031" /></a>
|
|
156
|
+
|
|
157
|
+
<a href="https://nodejs.org/" target="_blank">
|
|
158
|
+
<img src="https://img.shields.io/badge/Node.js-323330?style=for-the-badge&logo=node.js&logoColor=white" /></a>
|
|
159
|
+
|
|
160
|
+
## Contribute
|
|
161
|
+
|
|
162
|
+
Feel free to contact us through our website [SOFTPRO.UA](https://softpro.ua) or email <info@softpro.ua>
|
|
163
|
+
|
|
164
|
+
- Report bugs
|
|
165
|
+
- Share your ideas
|
|
166
|
+
- Ask questions
|
|
167
|
+
|
|
168
|
+
## Follow Us
|
|
169
|
+
|
|
170
|
+
[Official site](https://softpro.ua)
|
|
171
|
+
|
|
172
|
+
<p>
|
|
173
|
+
<a href="https://www.instagram.com/gissoftpro/" target="_blank"><img src="https://cdn.softpro.ua/data/npm/instagram.png" alt="Softpro Instagram" title="oftpro Instagram"></a>
|
|
174
|
+
<a href="https://www.facebook.com/gissoftpro" target="_blank"><img src="https://cdn.softpro.ua/data/npm/facebook.png" alt="Softpro Facebook" title="Softpro Facebook"></a>
|
|
175
|
+
<a href="https://t.me/softprogis" target="_blank"><img src="https://cdn.softpro.ua/data/npm/telegram.png" alt="Softpro Telegram" title="Softpro Telegram"></a>
|
|
176
|
+
<a href="https://www.linkedin.com/in/softpro-ukraine-a8876b282/recent-activity/all/" target="_blank"><img src="https://cdn.softpro.ua/data/npm/social/linkedin.png" alt="Softpro Linkedin" title="Softpro LinkedIn"></a>
|
|
177
|
+
</p>
|
|
178
|
+
|
|
179
|
+
## License
|
|
180
|
+
|
|
181
|
+
Copyright © SOFTPRO. All rights reserved.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as O, defineAsyncComponent as z, ref as s, computed as u, onMounted as D, resolveComponent as I, openBlock as h, createElementBlock as C, Fragment as $, createVNode as c, createSlots as K, withCtx as n,
|
|
1
|
+
import { defineComponent as O, defineAsyncComponent as z, ref as s, computed as u, onMounted as D, resolveComponent as I, openBlock as h, createElementBlock as C, Fragment as $, createVNode as c, createSlots as K, withCtx as n, createElementVNode as o, unref as y, toDisplayString as k, createTextVNode as j, createCommentVNode as E, createBlock as L } from "vue";
|
|
2
2
|
import { notify as d } from "@opengis/core";
|
|
3
3
|
import { useRouter as P, useRoute as R } from "vue-router";
|
|
4
|
-
import {
|
|
4
|
+
import { ArrowLeft as A, LucideChevronRight as F } from "lucide-vue-next";
|
|
5
5
|
import { _ as U } from "./TableFormHeader.vue_vue_type_script_setup_true_lang-Mci_tseM.js";
|
|
6
6
|
const J = { class: "mx-1" }, M = { class: "flex items-center gap-2 mt-[0.4rem]" }, q = { class: "flex-1 px-4 sm:px-6 pb-4 overflow-y-auto" }, G = { class: "bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden" }, H = { class: "w-full relative overflow-auto p-5 [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar:horizontal]:h-[8px] [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500" }, Q = { class: "vs-form w-full" }, te = /* @__PURE__ */ O({
|
|
7
7
|
__name: "EntityCreatePage",
|
|
@@ -9,15 +9,15 @@ const J = { class: "mx-1" }, M = { class: "flex items-center gap-2 mt-[0.4rem]"
|
|
|
9
9
|
entityKey: { default: "" }
|
|
10
10
|
},
|
|
11
11
|
setup(S) {
|
|
12
|
-
const V = z(() => import("@opengis/form")), m = s({}), p = s(null), b = s(null),
|
|
12
|
+
const V = z(() => import("@opengis/form")), m = s({}), p = s(null), b = s(null), v = P(), f = R(), N = S, g = s({}), w = s(""), l = u(() => f.path.replace(/\/(add|new)$/, "")), i = u(() => {
|
|
13
13
|
var t;
|
|
14
|
-
return ((t =
|
|
14
|
+
return ((t = v.resolve(l.value).meta) == null ? void 0 : t.title) ?? "";
|
|
15
15
|
}), T = u(() => i.value ? `Додати в ${i.value.toLowerCase()}` : "Додати"), x = u(() => {
|
|
16
16
|
var t;
|
|
17
|
-
return ((t =
|
|
17
|
+
return ((t = f.meta) == null ? void 0 : t.description) ?? "";
|
|
18
18
|
});
|
|
19
19
|
function _() {
|
|
20
|
-
|
|
20
|
+
v.push(l.value || "/");
|
|
21
21
|
}
|
|
22
22
|
async function B() {
|
|
23
23
|
if (!b.value) {
|
|
@@ -49,10 +49,10 @@ const J = { class: "mx-1" }, M = { class: "flex items-center gap-2 mt-[0.4rem]"
|
|
|
49
49
|
});
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
|
-
await e.json(), d({ title: "Success!", message: "Object created." }),
|
|
52
|
+
await e.json(), d({ title: "Success!", message: "Object created." }), v.back();
|
|
53
53
|
}
|
|
54
54
|
return D(async () => {
|
|
55
|
-
const t = N.entityKey || String(
|
|
55
|
+
const t = N.entityKey || String(f.name ?? "").split("-")[0], e = await fetch(`/api/form/gis.${t}.table`).then((r) => r.json());
|
|
56
56
|
b.value = e.token, w.value = e.id, p.value = e.schema, document.title = T.value;
|
|
57
57
|
}), (t, e) => {
|
|
58
58
|
const r = I("router-link");
|
|
@@ -65,12 +65,12 @@ const J = { class: "mx-1" }, M = { class: "flex items-center gap-2 mt-[0.4rem]"
|
|
|
65
65
|
class: "text-gray-500 hover:text-gray-700"
|
|
66
66
|
}, {
|
|
67
67
|
default: n(() => [
|
|
68
|
-
j(
|
|
68
|
+
j(k(i.value), 1)
|
|
69
69
|
]),
|
|
70
70
|
_: 1
|
|
71
71
|
}, 8, ["to"]),
|
|
72
72
|
o("span", J, [
|
|
73
|
-
c(
|
|
73
|
+
c(y(F), {
|
|
74
74
|
size: 16,
|
|
75
75
|
class: "shrink-0"
|
|
76
76
|
})
|
|
@@ -86,12 +86,12 @@ const J = { class: "mx-1" }, M = { class: "flex items-center gap-2 mt-[0.4rem]"
|
|
|
86
86
|
onClick: _,
|
|
87
87
|
"aria-label": "Назад"
|
|
88
88
|
}, [
|
|
89
|
-
c(
|
|
89
|
+
c(y(A), {
|
|
90
90
|
size: 20,
|
|
91
91
|
class: "shrink-0"
|
|
92
92
|
})
|
|
93
93
|
]),
|
|
94
|
-
o("span", null,
|
|
94
|
+
o("span", null, k(i.value || "Створення"), 1)
|
|
95
95
|
])
|
|
96
96
|
]),
|
|
97
97
|
actions: n(() => [
|
|
@@ -109,7 +109,7 @@ const J = { class: "mx-1" }, M = { class: "flex items-center gap-2 mt-[0.4rem]"
|
|
|
109
109
|
x.value ? {
|
|
110
110
|
name: "description",
|
|
111
111
|
fn: n(() => [
|
|
112
|
-
j(
|
|
112
|
+
j(k(x.value), 1)
|
|
113
113
|
]),
|
|
114
114
|
key: "0"
|
|
115
115
|
} : void 0
|
|
@@ -118,7 +118,7 @@ const J = { class: "mx-1" }, M = { class: "flex items-center gap-2 mt-[0.4rem]"
|
|
|
118
118
|
o("div", G, [
|
|
119
119
|
o("div", H, [
|
|
120
120
|
o("div", Q, [
|
|
121
|
-
p.value ? (h(), L(
|
|
121
|
+
p.value ? (h(), L(y(V), {
|
|
122
122
|
key: 0,
|
|
123
123
|
values: m.value,
|
|
124
124
|
"onUpdate:values": e[0] || (e[0] = (a) => m.value = a),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as D, defineAsyncComponent as R, ref as i, computed as p, onMounted as U, resolveComponent as A, openBlock as d, createElementBlock as w, Fragment as _, createVNode as s, createSlots as F, withCtx as n,
|
|
1
|
+
import { defineComponent as D, defineAsyncComponent as R, ref as i, computed as p, onMounted as U, resolveComponent as A, openBlock as d, createElementBlock as w, Fragment as _, createVNode as s, createSlots as F, withCtx as n, createElementVNode as o, unref as v, toDisplayString as b, createTextVNode as C, createCommentVNode as $, createBlock as K } from "vue";
|
|
2
2
|
import { notify as f } from "@opengis/core";
|
|
3
3
|
import { useRoute as L, useRouter as O } from "vue-router";
|
|
4
|
-
import {
|
|
4
|
+
import { ArrowLeft as J, LucideChevronRight as j } from "lucide-vue-next";
|
|
5
5
|
import { _ as M } from "./TableFormHeader.vue_vue_type_script_setup_true_lang-Mci_tseM.js";
|
|
6
6
|
const Y = { class: "mx-1" }, q = { class: "mx-1" }, G = { class: "flex items-center gap-2 mt-[0.4rem]" }, H = { class: "flex-1 px-4 sm:px-6 pb-4 overflow-y-auto" }, I = { class: "bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden" }, Q = { class: "w-full relative overflow-auto p-5 [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar:horizontal]:h-[8px] [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500" }, W = { class: "vs-form w-full" }, ae = /* @__PURE__ */ D({
|
|
7
7
|
__name: "EntityEditPage",
|
|
@@ -9,17 +9,17 @@ const Y = { class: "mx-1" }, q = { class: "mx-1" }, G = { class: "flex items-cen
|
|
|
9
9
|
entityKey: { default: "" }
|
|
10
10
|
},
|
|
11
11
|
setup(N) {
|
|
12
|
-
const T = R(() => import("@opengis/form")), u = i({}), g = i(null), h = i(null), y = i({}), c = i(""), m = L(), k = O(), z = N.entityKey || String(m.name ?? "").split("-")[0], { id: x } = m.params,
|
|
12
|
+
const T = R(() => import("@opengis/form")), u = i({}), g = i(null), h = i(null), y = i({}), c = i(""), m = L(), k = O(), z = N.entityKey || String(m.name ?? "").split("-")[0], { id: x } = m.params, r = p(
|
|
13
13
|
() => m.path.replace(/\/edit\/[^/]+$/, "").replace(/\/[^/]+\/edit$/, "")
|
|
14
|
-
), B = p(() => x ? `${
|
|
14
|
+
), B = p(() => x ? `${r.value}/${x}` : r.value || "/"), E = p(() => {
|
|
15
15
|
var t;
|
|
16
|
-
return ((t = k.resolve(
|
|
16
|
+
return ((t = k.resolve(r.value).meta) == null ? void 0 : t.title) ?? "";
|
|
17
17
|
}), S = p(() => {
|
|
18
18
|
var t;
|
|
19
19
|
return ((t = m.meta) == null ? void 0 : t.description) ?? "";
|
|
20
20
|
});
|
|
21
21
|
function V() {
|
|
22
|
-
k.push(
|
|
22
|
+
k.push(r.value || "/");
|
|
23
23
|
}
|
|
24
24
|
async function P() {
|
|
25
25
|
const t = y.value.validate();
|
|
@@ -69,18 +69,18 @@ const Y = { class: "mx-1" }, q = { class: "mx-1" }, G = { class: "flex items-cen
|
|
|
69
69
|
return d(), w(_, null, [
|
|
70
70
|
s(M, { variant: "form" }, F({
|
|
71
71
|
breadcrumbs: n(() => [
|
|
72
|
-
|
|
72
|
+
r.value ? (d(), w(_, { key: 0 }, [
|
|
73
73
|
s(a, {
|
|
74
|
-
to:
|
|
74
|
+
to: r.value,
|
|
75
75
|
class: "text-gray-500 hover:text-gray-700"
|
|
76
76
|
}, {
|
|
77
77
|
default: n(() => [
|
|
78
|
-
C(
|
|
78
|
+
C(b(E.value), 1)
|
|
79
79
|
]),
|
|
80
80
|
_: 1
|
|
81
81
|
}, 8, ["to"]),
|
|
82
|
-
|
|
83
|
-
s(
|
|
82
|
+
o("span", Y, [
|
|
83
|
+
s(v(j), {
|
|
84
84
|
size: 16,
|
|
85
85
|
class: "shrink-0"
|
|
86
86
|
})
|
|
@@ -92,41 +92,41 @@ const Y = { class: "mx-1" }, q = { class: "mx-1" }, G = { class: "flex items-cen
|
|
|
92
92
|
class: "text-gray-500 hover:text-gray-700"
|
|
93
93
|
}, {
|
|
94
94
|
default: n(() => [
|
|
95
|
-
C(
|
|
95
|
+
C(b(c.value), 1)
|
|
96
96
|
]),
|
|
97
97
|
_: 1
|
|
98
98
|
}, 8, ["to"]),
|
|
99
|
-
|
|
100
|
-
s(
|
|
99
|
+
o("span", q, [
|
|
100
|
+
s(v(j), {
|
|
101
101
|
size: 16,
|
|
102
102
|
class: "shrink-0"
|
|
103
103
|
})
|
|
104
104
|
])
|
|
105
105
|
], 64)) : $("", !0),
|
|
106
|
-
e[2] || (e[2] =
|
|
106
|
+
e[2] || (e[2] = o("span", { class: "text-gray-900 font-semibold" }, "Редагування", -1))
|
|
107
107
|
]),
|
|
108
108
|
title: n(() => [
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
o("div", G, [
|
|
110
|
+
o("button", {
|
|
111
111
|
type: "button",
|
|
112
112
|
class: "p-0 m-0 border-0 bg-transparent cursor-pointer text-inherit hover:opacity-80",
|
|
113
113
|
onClick: V,
|
|
114
114
|
"aria-label": "Назад"
|
|
115
115
|
}, [
|
|
116
|
-
s(
|
|
116
|
+
s(v(J), {
|
|
117
117
|
size: 20,
|
|
118
118
|
class: "shrink-0"
|
|
119
119
|
})
|
|
120
120
|
]),
|
|
121
|
-
|
|
121
|
+
o("span", null, b(c.value || E.value || "Редагування"), 1)
|
|
122
122
|
])
|
|
123
123
|
]),
|
|
124
124
|
actions: n(() => [
|
|
125
|
-
|
|
125
|
+
o("button", {
|
|
126
126
|
class: "cursor-pointer flex items-center px-3 py-2 text-sm font-medium text-gray-800 duration-300 bg-white border border-gray-100 rounded-lg shadow gap-x-2 focus:outline-none hover:bg-gray-50 hover:border-gray-100",
|
|
127
127
|
onClick: V
|
|
128
128
|
}, " Назад "),
|
|
129
|
-
|
|
129
|
+
o("button", {
|
|
130
130
|
onClick: P,
|
|
131
131
|
class: "cursor-pointer inline-flex items-center px-3 py-2 text-sm font-medium text-white duration-300 bg-blue-600 hover:bg-blue-700 border border-transparent rounded-lg gap-x-2 hover:text-white"
|
|
132
132
|
}, " Зберегти ")
|
|
@@ -136,16 +136,16 @@ const Y = { class: "mx-1" }, q = { class: "mx-1" }, G = { class: "flex items-cen
|
|
|
136
136
|
S.value ? {
|
|
137
137
|
name: "description",
|
|
138
138
|
fn: n(() => [
|
|
139
|
-
C(
|
|
139
|
+
C(b(S.value), 1)
|
|
140
140
|
]),
|
|
141
141
|
key: "0"
|
|
142
142
|
} : void 0
|
|
143
143
|
]), 1024),
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
g.value ? (d(), K(
|
|
144
|
+
o("div", H, [
|
|
145
|
+
o("div", I, [
|
|
146
|
+
o("div", Q, [
|
|
147
|
+
o("div", W, [
|
|
148
|
+
g.value ? (d(), K(v(T), {
|
|
149
149
|
key: 0,
|
|
150
150
|
schema: g.value,
|
|
151
151
|
values: u.value,
|