@giro3d/piero 1.0.0-beta.0

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 (220) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +134 -0
  3. package/dist/Components.cjs.js +2 -0
  4. package/dist/Components.cjs.js.map +1 -0
  5. package/dist/Components.es.js +608 -0
  6. package/dist/Components.es.js.map +1 -0
  7. package/dist/assets/piero.css +9 -0
  8. package/dist/index.cjs.js +9 -0
  9. package/dist/index.cjs.js.map +1 -0
  10. package/dist/index.d.ts +2 -0
  11. package/dist/index.es.js +6971 -0
  12. package/dist/index.es.js.map +1 -0
  13. package/dist/modules.cjs.js +2 -0
  14. package/dist/modules.cjs.js.map +1 -0
  15. package/dist/modules.d.ts +2 -0
  16. package/dist/modules.es.js +856 -0
  17. package/dist/modules.es.js.map +1 -0
  18. package/dist/src/App.vue.d.ts +6 -0
  19. package/dist/src/api/BookmarkApi.d.ts +6 -0
  20. package/dist/src/api/DatasetApi.d.ts +61 -0
  21. package/dist/src/api/ViewApi.d.ts +4 -0
  22. package/dist/src/api/index.d.ts +4 -0
  23. package/dist/src/components/AlertToast.vue.d.ts +4 -0
  24. package/dist/src/components/AttributeGroup.vue.d.ts +7 -0
  25. package/dist/src/components/AttributeItem.vue.d.ts +6 -0
  26. package/dist/src/components/AttributePanel.vue.d.ts +14 -0
  27. package/dist/src/components/ColorFragment.vue.d.ts +6 -0
  28. package/dist/src/components/Configuration.d.ts +14 -0
  29. package/dist/src/components/CoordinateFragment.vue.d.ts +10 -0
  30. package/dist/src/components/DropdownView.vue.d.ts +13 -0
  31. package/dist/src/components/LinkFragment.vue.d.ts +10 -0
  32. package/dist/src/components/LoadingScreen.vue.d.ts +2 -0
  33. package/dist/src/components/MainView.vue.d.ts +5 -0
  34. package/dist/src/components/MinimapView.vue.d.ts +4 -0
  35. package/dist/src/components/ModalOverlay.vue.d.ts +25 -0
  36. package/dist/src/components/NavigationButtons.vue.d.ts +2 -0
  37. package/dist/src/components/OpacitySlider.vue.d.ts +10 -0
  38. package/dist/src/components/PanelContainer.vue.d.ts +10 -0
  39. package/dist/src/components/ProgressBar.vue.d.ts +14 -0
  40. package/dist/src/components/SearchOverlay.vue.d.ts +8 -0
  41. package/dist/src/components/SpinnerControl.vue.d.ts +2 -0
  42. package/dist/src/components/StatusBar.vue.d.ts +10 -0
  43. package/dist/src/components/SwitchToggle.vue.d.ts +25 -0
  44. package/dist/src/components/VisibilityControl.vue.d.ts +9 -0
  45. package/dist/src/components/atoms/ButtonArea.vue.d.ts +17 -0
  46. package/dist/src/components/atoms/ButtonWithIcon.vue.d.ts +11 -0
  47. package/dist/src/components/atoms/CompactList.vue.d.ts +17 -0
  48. package/dist/src/components/atoms/Icon.vue.d.ts +6 -0
  49. package/dist/src/components/atoms/IconList.vue.d.ts +17 -0
  50. package/dist/src/components/atoms/IconListButton.vue.d.ts +10 -0
  51. package/dist/src/components/atoms/ImportButton.vue.d.ts +13 -0
  52. package/dist/src/components/atoms/ListLabel.vue.d.ts +5 -0
  53. package/dist/src/components/atoms/ListLabelButton.vue.d.ts +11 -0
  54. package/dist/src/components/atoms/SectionCollapsible.vue.d.ts +30 -0
  55. package/dist/src/components/charts/BarChart.vue.d.ts +4 -0
  56. package/dist/src/components/charts/DoughnutChart.vue.d.ts +4 -0
  57. package/dist/src/components/panels/AboutPanel.vue.d.ts +2 -0
  58. package/dist/src/components/panels/AnalysisPanel.vue.d.ts +2 -0
  59. package/dist/src/components/panels/AnnotationItem.vue.d.ts +21 -0
  60. package/dist/src/components/panels/AnnotationPanel.vue.d.ts +2 -0
  61. package/dist/src/components/panels/BasemapItem.vue.d.ts +17 -0
  62. package/dist/src/components/panels/BookmarkItem.vue.d.ts +16 -0
  63. package/dist/src/components/panels/BookmarkPanel.vue.d.ts +2 -0
  64. package/dist/src/components/panels/DatagroupItem.vue.d.ts +18 -0
  65. package/dist/src/components/panels/DatasetItem.vue.d.ts +18 -0
  66. package/dist/src/components/panels/DatasetOrGroupItem.vue.d.ts +18 -0
  67. package/dist/src/components/panels/DatasetPanel.vue.d.ts +2 -0
  68. package/dist/src/components/panels/EmptyIndicator.vue.d.ts +6 -0
  69. package/dist/src/components/panels/LoadingIndicator.vue.d.ts +6 -0
  70. package/dist/src/components/panels/MeasurementItem.vue.d.ts +17 -0
  71. package/dist/src/components/panels/MeasurementPanel.vue.d.ts +2 -0
  72. package/dist/src/components/panels/OverlayItem.vue.d.ts +19 -0
  73. package/dist/src/components/panels/ShareBookmarkModal.vue.d.ts +5 -0
  74. package/dist/src/components/panels/analysis/ClippingBox.vue.d.ts +2 -0
  75. package/dist/src/components/panels/analysis/CrossSection.vue.d.ts +2 -0
  76. package/dist/src/components/panels/analysis/FloodingPlane.vue.d.ts +2 -0
  77. package/dist/src/components/panels/analysis/Statistics.vue.d.ts +2 -0
  78. package/dist/src/components/panels/analysis/ToolWrapper.vue.d.ts +28 -0
  79. package/dist/src/components/toolbar/ToolBar.vue.d.ts +9 -0
  80. package/dist/src/components/toolbar/ToolbarButton.vue.d.ts +12 -0
  81. package/dist/src/config-loader.d.ts +7 -0
  82. package/dist/src/constants.d.ts +7 -0
  83. package/dist/src/context.d.ts +35 -0
  84. package/dist/src/createPieroApp.d.ts +31 -0
  85. package/dist/src/events.d.ts +30 -0
  86. package/dist/src/giro3d/CameraControlsInspector.d.ts +17 -0
  87. package/dist/src/giro3d/EntityBuilder.d.ts +21 -0
  88. package/dist/src/giro3d/Graticule.d.ts +20 -0
  89. package/dist/src/giro3d/Grid.d.ts +11 -0
  90. package/dist/src/giro3d/LayerBuilder.d.ts +46 -0
  91. package/dist/src/giro3d/Measure3D.d.ts +20 -0
  92. package/dist/src/giro3d/Plane.d.ts +11 -0
  93. package/dist/src/giro3d/Skybox.d.ts +6 -0
  94. package/dist/src/giro3d/entities/FeatureCollectionEntity.d.ts +41 -0
  95. package/dist/src/giro3d/entities/PointCloudEntity.d.ts +45 -0
  96. package/dist/src/giro3d/entities/TiledPointCloudEntity.d.ts +13 -0
  97. package/dist/src/giro3d/entities/Tiles3dEntity.d.ts +11 -0
  98. package/dist/src/giro3d/entities/VectorLabelsEntity.d.ts +48 -0
  99. package/dist/src/giro3d/entities/VectorMeshEntity.d.ts +97 -0
  100. package/dist/src/giro3d/entities/VectorShapeEntity.d.ts +8 -0
  101. package/dist/src/giro3d/entities/flatPointCloud.d.ts +2 -0
  102. package/dist/src/giro3d/entities/tiledIfc.d.ts +2 -0
  103. package/dist/src/giro3d/entities/vector.d.ts +2 -0
  104. package/dist/src/giro3d/sources/GeopackageSource.d.ts +20 -0
  105. package/dist/src/giro3d/sources/ShapefileSource.d.ts +20 -0
  106. package/dist/src/giro3d/sources/mixins.d.ts +60 -0
  107. package/dist/src/index.d.ts +17 -0
  108. package/dist/src/loaders/csv.d.ts +3 -0
  109. package/dist/src/loaders/las.d.ts +3 -0
  110. package/dist/src/loaders/loader.d.ts +29 -0
  111. package/dist/src/loaders/loader.test.d.ts +1 -0
  112. package/dist/src/loaders/userData.d.ts +8 -0
  113. package/dist/src/loaders/vector.d.ts +4 -0
  114. package/dist/src/module.d.ts +11 -0
  115. package/dist/src/modules/IFCLoader.d.ts +9 -0
  116. package/dist/src/modules/PLYLoader.d.ts +9 -0
  117. package/dist/src/modules/PotreeLoader.d.ts +9 -0
  118. package/dist/src/modules/Tour.d.ts +17 -0
  119. package/dist/src/modules/ifc/IfcEntity.d.ts +84 -0
  120. package/dist/src/modules/ifc/IfcEntityInspector.d.ts +7 -0
  121. package/dist/src/modules/ifc/IfcPropertyView.vue.d.ts +6 -0
  122. package/dist/src/modules/ifc/IfcSubtree.vue.d.ts +7 -0
  123. package/dist/src/modules/index.d.ts +5 -0
  124. package/dist/src/modules/ply/PlyEntity.d.ts +33 -0
  125. package/dist/src/providers/Alticoding.d.ts +32 -0
  126. package/dist/src/providers/BanProvider.d.ts +11 -0
  127. package/dist/src/providers/Geocoding.d.ts +7 -0
  128. package/dist/src/providers/IgnProvider.d.ts +11 -0
  129. package/dist/src/services/AnalysisManager.d.ts +10 -0
  130. package/dist/src/services/AnnotationManager.d.ts +48 -0
  131. package/dist/src/services/CameraController.d.ts +99 -0
  132. package/dist/src/services/DatasetManager.d.ts +27 -0
  133. package/dist/src/services/Giro3DManager.d.ts +42 -0
  134. package/dist/src/services/Highlighter.d.ts +11 -0
  135. package/dist/src/services/LayerManager.d.ts +37 -0
  136. package/dist/src/services/MeasureTool.d.ts +13 -0
  137. package/dist/src/services/MeasurementManager.d.ts +31 -0
  138. package/dist/src/services/MinimapController.d.ts +19 -0
  139. package/dist/src/services/Picker.d.ts +53 -0
  140. package/dist/src/services/analysis/ClippingBoxManager.d.ts +41 -0
  141. package/dist/src/services/analysis/CrossSectionManager.d.ts +9 -0
  142. package/dist/src/services/analysis/FloodingPlaneManager.d.ts +11 -0
  143. package/dist/src/stores/analysis.d.ts +1571 -0
  144. package/dist/src/stores/annotations.d.ts +60 -0
  145. package/dist/src/stores/bookmarks.d.ts +21 -0
  146. package/dist/src/stores/camera.d.ts +39 -0
  147. package/dist/src/stores/datasets.d.ts +49 -0
  148. package/dist/src/stores/giro3d.d.ts +45 -0
  149. package/dist/src/stores/layers.d.ts +40 -0
  150. package/dist/src/stores/measurement.d.ts +45 -0
  151. package/dist/src/stores/modules.d.ts +11 -0
  152. package/dist/src/stores/notifications.d.ts +8 -0
  153. package/dist/src/stores/statistics.d.ts +8 -0
  154. package/dist/src/types/Annotation.d.ts +35 -0
  155. package/dist/src/types/AnnotationMode.d.ts +7 -0
  156. package/dist/src/types/BaseLayer.d.ts +30 -0
  157. package/dist/src/types/Bookmark.d.ts +19 -0
  158. package/dist/src/types/CameraPosition.d.ts +7 -0
  159. package/dist/src/types/Configuration.d.ts +106 -0
  160. package/dist/src/types/Dataset.d.ts +78 -0
  161. package/dist/src/types/Feature.d.ts +13 -0
  162. package/dist/src/types/FloodingPlane.d.ts +14 -0
  163. package/dist/src/types/IFCTypes.d.ts +5 -0
  164. package/dist/src/types/LayerObject.d.ts +20 -0
  165. package/dist/src/types/Measure.d.ts +20 -0
  166. package/dist/src/types/MeasurementMode.d.ts +7 -0
  167. package/dist/src/types/Named.d.ts +5 -0
  168. package/dist/src/types/NavigationMode.d.ts +2 -0
  169. package/dist/src/types/Notification.d.ts +8 -0
  170. package/dist/src/types/OLGeometry.d.ts +1 -0
  171. package/dist/src/types/Overlay.d.ts +24 -0
  172. package/dist/src/types/VectorStyle.d.ts +31 -0
  173. package/dist/src/types/Viewbox.d.ts +7 -0
  174. package/dist/src/types/configuration/analysis.d.ts +26 -0
  175. package/dist/src/types/configuration/bookmark.d.ts +16 -0
  176. package/dist/src/types/configuration/camera.d.ts +19 -0
  177. package/dist/src/types/configuration/color.d.ts +18 -0
  178. package/dist/src/types/configuration/datasets/cityjson.d.ts +9 -0
  179. package/dist/src/types/configuration/datasets/core.d.ts +49 -0
  180. package/dist/src/types/configuration/datasets/featureCollection.d.ts +6 -0
  181. package/dist/src/types/configuration/datasets/ifc.d.ts +10 -0
  182. package/dist/src/types/configuration/datasets/index.d.ts +27 -0
  183. package/dist/src/types/configuration/datasets/layer.d.ts +43 -0
  184. package/dist/src/types/configuration/datasets/ply.d.ts +10 -0
  185. package/dist/src/types/configuration/datasets/pointCloud.d.ts +12 -0
  186. package/dist/src/types/configuration/datasets/potreePointCloud.d.ts +10 -0
  187. package/dist/src/types/configuration/datasets/tiledIfc.d.ts +9 -0
  188. package/dist/src/types/configuration/datasets/tiledPointCloud.d.ts +9 -0
  189. package/dist/src/types/configuration/datasets/vector.d.ts +34 -0
  190. package/dist/src/types/configuration/features.d.ts +2 -0
  191. package/dist/src/types/configuration/geographic.d.ts +51 -0
  192. package/dist/src/types/configuration/layers/core.d.ts +50 -0
  193. package/dist/src/types/configuration/layers/index.d.ts +51 -0
  194. package/dist/src/types/configuration/sources/bingMaps.d.ts +5 -0
  195. package/dist/src/types/configuration/sources/core/baseConfig.d.ts +70 -0
  196. package/dist/src/types/configuration/sources/core/tiled.d.ts +19 -0
  197. package/dist/src/types/configuration/sources/core/vector.d.ts +13 -0
  198. package/dist/src/types/configuration/sources/core/vectorTile.d.ts +8 -0
  199. package/dist/src/types/configuration/sources/customVector.d.ts +7 -0
  200. package/dist/src/types/configuration/sources/customVectorTile.d.ts +8 -0
  201. package/dist/src/types/configuration/sources/geojson.d.ts +5 -0
  202. package/dist/src/types/configuration/sources/geotiff.d.ts +8 -0
  203. package/dist/src/types/configuration/sources/gpx.d.ts +5 -0
  204. package/dist/src/types/configuration/sources/kml.d.ts +5 -0
  205. package/dist/src/types/configuration/sources/mvt.d.ts +10 -0
  206. package/dist/src/types/configuration/sources/osm.d.ts +5 -0
  207. package/dist/src/types/configuration/sources/stadiaMaps.d.ts +5 -0
  208. package/dist/src/types/configuration/sources/wms.d.ts +15 -0
  209. package/dist/src/types/configuration/sources/wmts.d.ts +15 -0
  210. package/dist/src/types/configuration/sources/xyz.d.ts +9 -0
  211. package/dist/src/types/utilities.d.ts +5 -0
  212. package/dist/src/utils/Components.d.ts +8 -0
  213. package/dist/src/utils/Configuration.d.ts +15 -0
  214. package/dist/src/utils/Download.d.ts +11 -0
  215. package/dist/src/utils/Fetcher.d.ts +77 -0
  216. package/dist/src/utils/Measure.d.ts +7 -0
  217. package/dist/src/utils/OLFeatures.d.ts +57 -0
  218. package/dist/src/utils/Projections.d.ts +10 -0
  219. package/dist/src/utils/Types.d.ts +11 -0
  220. package/package.json +103 -0
@@ -0,0 +1,608 @@
1
+ var gt = Object.defineProperty;
2
+ var _t = (t, e, n) => e in t ? gt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
+ var f = (t, e, n) => _t(t, typeof e != "symbol" ? e + "" : e, n);
4
+ import z from "/builds/giro3d/piero/node_modules/@giro3d/giro3d/core/geographic/Coordinates.js";
5
+ import { defineStore as H } from "/builds/giro3d/piero/node_modules/pinia/dist/pinia.mjs";
6
+ import { Color as vt, EventDispatcher as mt, MathUtils as yt, Vector3 as j, Box3 as F } from "/builds/giro3d/piero/node_modules/three";
7
+ import { ref as a, shallowReactive as I, computed as J, defineComponent as $, createElementBlock as B, openBlock as y, normalizeClass as A, createBlock as Y, createCommentVNode as bt, createTextVNode as Ct, toDisplayString as K, renderSlot as St, watch as wt } from "/builds/giro3d/piero/node_modules/vue/dist/vue.runtime.esm-bundler.js";
8
+ import xt from "/builds/giro3d/piero/node_modules/@giro3d/giro3d/core/Instance.js";
9
+ import Pt from "/builds/giro3d/piero/node_modules/@giro3d/giro3d/utils/Fetcher.js";
10
+ import { fetchFile as Bt } from "/builds/giro3d/piero/node_modules/@loaders.gl/core/dist/index.js";
11
+ import kt from "/builds/giro3d/piero/node_modules/@giro3d/giro3d/core/ColorMap.js";
12
+ import Et from "/builds/giro3d/piero/node_modules/@giro3d/giro3d/core/geographic/Extent.js";
13
+ import q from "/builds/giro3d/piero/node_modules/chroma-js/index.js";
14
+ function Ut(t) {
15
+ return URL.canParse(t) && (t.startsWith("http://") || t.startsWith("https://"));
16
+ }
17
+ async function Rt(t, e) {
18
+ return (await D(t, e)).arrayBuffer();
19
+ }
20
+ function D(t, e) {
21
+ if (typeof t == "string") {
22
+ const n = T(t);
23
+ return Pt.fetch(n, e);
24
+ }
25
+ return Bt(t, e);
26
+ }
27
+ async function Gt(t, e) {
28
+ return await (await D(t, e)).json();
29
+ }
30
+ async function Lt(t, e) {
31
+ return (await D(t, e)).text();
32
+ }
33
+ function jt(t) {
34
+ let e, n;
35
+ if (t instanceof Response) {
36
+ const c = new URL(t.url);
37
+ e = `${c.origin}${c.pathname}`, n = c.search;
38
+ } else if (t instanceof File)
39
+ e = t.name;
40
+ else if (t instanceof Blob)
41
+ e = "";
42
+ else if (typeof t == "string") {
43
+ const c = T(t), d = new URL(c);
44
+ e = `${d.origin}${d.pathname}`, n = d.search;
45
+ } else
46
+ return t;
47
+ const i = e.split("/"), r = i.pop(), p = i.join("/");
48
+ return {
49
+ baseUrl: e,
50
+ dirname: p,
51
+ fileext: r == null ? void 0 : r.split(".").at(-1),
52
+ filename: r,
53
+ queryString: n
54
+ };
55
+ }
56
+ async function It(t) {
57
+ return new Promise((e, n) => {
58
+ if (typeof t == "string")
59
+ return T(t);
60
+ {
61
+ const i = new FileReader();
62
+ i.addEventListener("load", () => e(i.result), !1), i.addEventListener("error", () => n(i.error)), i.readAsDataURL(t);
63
+ }
64
+ });
65
+ }
66
+ const $t = {
67
+ checkAbsoluteHost: Ut,
68
+ fetch: D,
69
+ fetchArrayBuffer: Rt,
70
+ fetchJson: Gt,
71
+ fetchText: Lt,
72
+ getContext: jt,
73
+ toDataURL: It
74
+ };
75
+ let V = null, Q = {};
76
+ function k() {
77
+ if (!V)
78
+ throw new Error("No configuration loaded");
79
+ return V;
80
+ }
81
+ function le() {
82
+ return Q;
83
+ }
84
+ async function ce(t) {
85
+ return await $t.fetchJson(t);
86
+ }
87
+ async function ue(t) {
88
+ t.crs_definitions || (console.warn(
89
+ "Configuration is not specifying CRS definitions. You should define the projections you use. See https://gitlab.com/giro3d/piero/-/issues/78 for more information."
90
+ ), t.crs_definitions = {
91
+ "EPSG:2154": "+proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +type=crs",
92
+ "EPSG:3857": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs +type=crs",
93
+ "EPSG:3946": "+proj=lcc +lat_1=45.25 +lat_2=46.75 +lat_0=46 +lon_0=3 +x_0=1700000 +y_0=5200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs",
94
+ "EPSG:3948": "+proj=lcc +lat_0=48 +lon_0=3 +lat_1=47.25 +lat_2=48.75 +x_0=1700000 +y_0=7200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +type=crs",
95
+ "EPSG:4171": "+proj=longlat +ellps=GRS80 +no_defs +type=crs",
96
+ "EPSG:4326": "+proj=longlat +datum=WGS84 +no_defs +type=crs",
97
+ "IGNF:WGS84G": 'GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]'
98
+ });
99
+ for (const [e, n] of Object.entries(t.crs_definitions))
100
+ try {
101
+ xt.registerCRS(e, n);
102
+ } catch (i) {
103
+ throw console.error(`Failed to register CRS "${e}" as "${n}".`), i;
104
+ }
105
+ return V = t, Promise.resolve();
106
+ }
107
+ function fe(t) {
108
+ Q = t;
109
+ }
110
+ function Dt(t, e) {
111
+ const n = JSON.stringify(t, null, 2), i = new Blob([n], { type: "application/json" });
112
+ X(i, e);
113
+ }
114
+ function X(t, e) {
115
+ const n = URL.createObjectURL(t), i = document.createElement("a");
116
+ i.href = n, i.download = e, i.innerHTML = "Click here to download the file", document.body.appendChild(i), i.click(), i.remove(), URL.revokeObjectURL(n);
117
+ }
118
+ let Z = "/";
119
+ function Mt(t = "http://localhost:8080/") {
120
+ const e = Z ?? t;
121
+ return e.at(-1) === "/" ? e : e + "/";
122
+ }
123
+ function Wt(t) {
124
+ Z = t;
125
+ }
126
+ const zt = { downloadAsJson: Dt, downloadBlob: X, getBaseUrl: Mt, setBaseUrl: Wt };
127
+ function de(t) {
128
+ const e = q.scale(t.ramp).mode("lab").colors(256).map((n) => {
129
+ const i = q(n).gl();
130
+ return new vt().setRGB(i[0], i[1], i[2], "srgb");
131
+ });
132
+ return new kt({ colors: e, ...t });
133
+ }
134
+ function pe(t) {
135
+ const e = k();
136
+ return t ? new z(
137
+ t.crs ?? e.default_crs,
138
+ t.x,
139
+ t.y,
140
+ t.z ?? 0
141
+ ).as(e.default_crs) : void 0;
142
+ }
143
+ function he(t) {
144
+ const e = k();
145
+ return t ? new Et(t.crs ?? e.default_crs, t).as(e.default_crs) : void 0;
146
+ }
147
+ function T(t) {
148
+ return t.startsWith("http://") || t.startsWith("https://") ? t : new URL(t, zt.getBaseUrl()).toString();
149
+ }
150
+ function ge(t) {
151
+ var n;
152
+ return ((n = k().enabled_features) == null ? void 0 : n.includes(t)) ?? !1;
153
+ }
154
+ function _e(t, e) {
155
+ const n = t.isEntity3D ? t.object3d : t;
156
+ "dataset" in n.userData || (n.userData.dataset = {});
157
+ for (const [i, r] of Object.entries(e))
158
+ n.userData.dataset[i] = r;
159
+ }
160
+ const M = (t) => t != null && typeof t == "object", ve = (t) => M(t) && "href" in t, me = (t) => M(t) && t.isColor, ye = (t) => M(t) && t.isVector3;
161
+ class tt extends mt {
162
+ constructor(n) {
163
+ super();
164
+ f(this, "config");
165
+ f(this, "name");
166
+ f(this, "onObjectPreloaded");
167
+ f(this, "type");
168
+ f(this, "uuid");
169
+ f(this, "_isPreloaded");
170
+ f(this, "_isPreloading");
171
+ f(this, "_opacity");
172
+ f(this, "_parent");
173
+ f(this, "_visible");
174
+ this.type = n.type, this.uuid = yt.generateUUID(), this.name = n.name, this.onObjectPreloaded = n.onObjectPreloaded, this._parent = null, this._visible = n.visible ?? !1, this._opacity = n.opacity ?? 1, this._isPreloading = !1, this._isPreloaded = !1, this.config = n;
175
+ }
176
+ get isPreloaded() {
177
+ return this._isPreloaded;
178
+ }
179
+ set isPreloaded(n) {
180
+ this._isPreloaded = n, this.dispatchEvent({ type: "isPreloaded" });
181
+ }
182
+ get isPreloading() {
183
+ return this._isPreloading;
184
+ }
185
+ set isPreloading(n) {
186
+ this._isPreloading = n, this.dispatchEvent({ type: "isPreloading" });
187
+ }
188
+ get opacity() {
189
+ return this._opacity;
190
+ }
191
+ set opacity(n) {
192
+ this._opacity = n, this.dispatchEvent({ type: "opacity" });
193
+ }
194
+ get parent() {
195
+ return this._parent;
196
+ }
197
+ set parent(n) {
198
+ this._parent = n;
199
+ }
200
+ get visible() {
201
+ return this._visible;
202
+ }
203
+ set visible(n) {
204
+ this._visible = n, this.dispatchEvent({ type: "visible" });
205
+ }
206
+ delete() {
207
+ this.dispatchEvent({ type: "delete" });
208
+ }
209
+ /**
210
+ * Gets the value of a property from this object or its ancestors.
211
+ * @param propertyName - Name of the property
212
+ * @returns Value
213
+ */
214
+ get(n) {
215
+ var i;
216
+ return n in this.config && this.config[n] != null ? this.config[n] : (i = this.parent) == null ? void 0 : i.get(n);
217
+ }
218
+ }
219
+ class et extends tt {
220
+ constructor(n) {
221
+ super(n);
222
+ f(this, "_children");
223
+ this._children = nt(n.children, this), this._isPreloaded = !0;
224
+ }
225
+ get children() {
226
+ return this._children;
227
+ }
228
+ set children(n) {
229
+ this._children.forEach((i) => i.parent = null), this._children = n, this._children.forEach((i) => {
230
+ i.parent = this, i.visible = i.visible || this._visible;
231
+ });
232
+ }
233
+ leafs() {
234
+ return this._children.map((n) => n.leafs()).flat();
235
+ }
236
+ traverse(n) {
237
+ var i;
238
+ n(this), (i = this._children) == null || i.forEach((r) => r.traverse(n));
239
+ }
240
+ }
241
+ f(et, "isGroup", (n) => M(n) && n.type === "group");
242
+ class Ft extends tt {
243
+ constructor(e) {
244
+ super(e);
245
+ }
246
+ leafs() {
247
+ return [this];
248
+ }
249
+ traverse(e) {
250
+ e(this);
251
+ }
252
+ }
253
+ function nt(t, e) {
254
+ return t.map((n) => {
255
+ let i;
256
+ return n.type === "group" ? i = new et(n) : i = new Ft(n), e && (i.parent = e, i.visible = i.visible || e.visible), i;
257
+ });
258
+ }
259
+ const be = H("analysis", () => {
260
+ const t = k(), e = a(170), n = a(!1), i = a(t.analysis.cross_section.orientation), r = t.analysis.cross_section.pivot, p = new z(
261
+ r.crs ?? t.default_crs,
262
+ r.x,
263
+ r.y,
264
+ 0
265
+ ).as(t.default_crs), c = a(p.toVector3()), d = a(!1), { center: _, size: v } = t.analysis.clipping_box, C = new z(
266
+ _.crs ?? t.default_crs,
267
+ _.x,
268
+ _.y,
269
+ _.z
270
+ ).as(t.default_crs), h = a(C.toVector3()), g = a(new j(v.x, v.y, v.z)), m = a(
271
+ new F().setFromCenterAndSize(h.value, g.value)
272
+ ), u = a(!1), b = a(!1), E = a(!1), U = a(!1);
273
+ function W(o) {
274
+ e.value = o;
275
+ }
276
+ function s(o) {
277
+ n.value = o;
278
+ }
279
+ function l() {
280
+ return n.value;
281
+ }
282
+ function R(o) {
283
+ d.value = o;
284
+ }
285
+ function S() {
286
+ return d.value;
287
+ }
288
+ function w(o) {
289
+ i.value = o;
290
+ }
291
+ function x(o) {
292
+ c.value = o;
293
+ }
294
+ function P(o) {
295
+ u.value = o;
296
+ }
297
+ function G() {
298
+ return u.value;
299
+ }
300
+ function L() {
301
+ m.value = new F().setFromCenterAndSize(
302
+ h.value,
303
+ g.value
304
+ );
305
+ }
306
+ function ot(o) {
307
+ h.value = o, L();
308
+ }
309
+ function rt(o) {
310
+ g.value = o, L();
311
+ }
312
+ function at(o) {
313
+ m.value = o.clone();
314
+ const O = new j(), N = new j();
315
+ o.getCenter(O), o.getSize(N), h.value = O, g.value = N;
316
+ }
317
+ function lt() {
318
+ return m.value;
319
+ }
320
+ function ct(o) {
321
+ E.value = o;
322
+ }
323
+ function ut() {
324
+ return E.value;
325
+ }
326
+ function ft(o) {
327
+ b.value = o;
328
+ }
329
+ function dt() {
330
+ return b.value;
331
+ }
332
+ function pt(o) {
333
+ U.value = o;
334
+ }
335
+ function ht() {
336
+ return U.value;
337
+ }
338
+ return {
339
+ clippingBoxCenter: h,
340
+ clippingBoxSize: g,
341
+ crossSectionCenter: c,
342
+ crossSectionOrientation: i,
343
+ displayClippingBoxHelper: ct,
344
+ enableClippingBox: P,
345
+ enableCrossSection: R,
346
+ enableFloodingPlane: s,
347
+ enableStatistics: pt,
348
+ floodingPlaneHeight: e,
349
+ getClippingBox: lt,
350
+ isClippingBoxEnabled: G,
351
+ isClippingBoxHelperDisplayed: ut,
352
+ isClippingBoxInverted: dt,
353
+ isCrossSectionEnabled: S,
354
+ isFloodingPlaneEnabled: l,
355
+ isStatisticsEnabled: ht,
356
+ setClippingBox: at,
357
+ setClippingBoxCenter: ot,
358
+ setClippingBoxInverted: ft,
359
+ setClippingBoxSize: rt,
360
+ setCrossSectionCenter: x,
361
+ setCrossSectionOrientation: w,
362
+ setFloodingPlaneHeight: W
363
+ };
364
+ }), Ce = H("camera", () => {
365
+ const t = a(), e = a(new j()), n = a("orbit"), i = a(!1);
366
+ function r() {
367
+ if (t.value === void 0)
368
+ throw new Error("Cannot get cameraPosition");
369
+ return t.value;
370
+ }
371
+ function p() {
372
+ return e.value;
373
+ }
374
+ function c(u) {
375
+ t.value = u;
376
+ }
377
+ function d(u, b) {
378
+ t.value = u, e.value.copy(b);
379
+ }
380
+ function _() {
381
+ return n.value;
382
+ }
383
+ function v() {
384
+ return n;
385
+ }
386
+ function C(u) {
387
+ n.value = u;
388
+ }
389
+ function h() {
390
+ return i.value;
391
+ }
392
+ function g(u) {
393
+ i.value = u;
394
+ }
395
+ function m(u) {
396
+ }
397
+ return {
398
+ getCamera3dPosition: p,
399
+ getCameraPosition: r,
400
+ getNavigationMode: _,
401
+ getNavigationModeRef: v,
402
+ isUserInteracting: h,
403
+ lookTopDownAt: m,
404
+ setCameraPosition: c,
405
+ setCurrentPosition: d,
406
+ setIsUserInteracting: g,
407
+ setNavigationMode: C
408
+ };
409
+ });
410
+ function it(t) {
411
+ const e = I(t);
412
+ return e.type === "group" && (e.children = I(e.children.map((n) => it(n)))), e;
413
+ }
414
+ const Se = H("datasets", () => {
415
+ const t = k(), e = I(
416
+ nt(t.datasets).map((s) => it(s))
417
+ ), n = J(() => e.map((s) => s.leafs()).flat()), i = J(() => n.value.length), r = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
418
+ function c() {
419
+ return e;
420
+ }
421
+ function d() {
422
+ return n.value;
423
+ }
424
+ function _(s) {
425
+ const l = I(s);
426
+ return e.push(l), l;
427
+ }
428
+ function v(s, l) {
429
+ r.set(s.uuid, l);
430
+ }
431
+ function C(s, l) {
432
+ p.set(s.uuid, l);
433
+ }
434
+ function h(s) {
435
+ const l = s.parent != null ? s.parent.children : e;
436
+ l.splice(l.indexOf(s), 1);
437
+ }
438
+ function g(s) {
439
+ const l = new F();
440
+ return s.traverse((R) => {
441
+ var G;
442
+ const S = r.get(R.uuid), w = S == null ? void 0 : S.getBoundingBox();
443
+ if (w && !w.isEmpty()) {
444
+ l.union(w);
445
+ return;
446
+ }
447
+ const x = p.get(R.uuid), P = (G = x == null ? void 0 : x.getExtent()) == null ? void 0 : G.as(t.default_crs);
448
+ if (P && P.isValid()) {
449
+ const L = P.toBox3(0, 0);
450
+ l.union(L);
451
+ return;
452
+ }
453
+ }), l;
454
+ }
455
+ function m(s) {
456
+ return r.get(s.uuid);
457
+ }
458
+ function u(s) {
459
+ return p.get(s.uuid);
460
+ }
461
+ function b(s) {
462
+ }
463
+ function E(s, l) {
464
+ }
465
+ function U(s) {
466
+ }
467
+ function W(s) {
468
+ }
469
+ return {
470
+ add: _,
471
+ attachEntity: v,
472
+ attachLayer: C,
473
+ count: i,
474
+ getBoundingBox: g,
475
+ getDatasets: d,
476
+ getEntity: m,
477
+ getLayer: u,
478
+ getTree: c,
479
+ importFromFile: b,
480
+ remove: h,
481
+ setVisible: E,
482
+ toggleGrid: U,
483
+ toggleMask: W
484
+ };
485
+ }), st = (t, e) => {
486
+ const n = t.__vccOpts || t;
487
+ for (const [i, r] of e)
488
+ n[i] = r;
489
+ return n;
490
+ }, At = ["title"], Vt = ["title"], Ht = /* @__PURE__ */ $({
491
+ __name: "Icon",
492
+ props: {
493
+ icon: {},
494
+ title: {}
495
+ },
496
+ setup(t) {
497
+ return (e, n) => e.icon.startsWith("bi-") ? (y(), B("i", {
498
+ key: 0,
499
+ class: A(["bi", e.icon]),
500
+ title: e.title
501
+ }, null, 10, At)) : (y(), B("i", {
502
+ key: 1,
503
+ class: A(e.icon),
504
+ title: e.title
505
+ }, null, 10, Vt));
506
+ }
507
+ }), Tt = ["title"], Ot = /* @__PURE__ */ $({
508
+ __name: "ButtonWithIcon",
509
+ props: {
510
+ icon: {},
511
+ text: {},
512
+ title: {}
513
+ },
514
+ emits: ["click"],
515
+ setup(t) {
516
+ return (e, n) => (y(), B("button", {
517
+ title: e.title,
518
+ class: "btn",
519
+ type: "button",
520
+ onClick: n[0] || (n[0] = (i) => e.$emit("click", i))
521
+ }, [
522
+ e.icon ? (y(), Y(Ht, {
523
+ key: 0,
524
+ icon: e.icon
525
+ }, null, 8, ["icon"])) : bt("", !0),
526
+ Ct(" " + K(e.text), 1)
527
+ ], 8, Tt));
528
+ }
529
+ }), Nt = {}, Jt = { class: "icons text-nowrap d-flex justify-content-evenly" };
530
+ function qt(t, e) {
531
+ return y(), B("div", Jt, [
532
+ St(t.$slots, "default")
533
+ ]);
534
+ }
535
+ const we = /* @__PURE__ */ st(Nt, [["render", qt]]), Yt = /* @__PURE__ */ $({
536
+ __name: "IconListButton",
537
+ props: {
538
+ icon: {},
539
+ title: {}
540
+ },
541
+ emits: ["click"],
542
+ setup(t) {
543
+ return (e, n) => (y(), Y(Ot, {
544
+ title: e.title,
545
+ icon: e.icon,
546
+ onClick: n[0] || (n[0] = (i) => e.$emit("click", i)),
547
+ class: "btn-link link-secondary link-opacity-75 link-opacity-100-hover p-0 border-0"
548
+ }, null, 8, ["title", "icon"]));
549
+ }
550
+ }), xe = /* @__PURE__ */ st(Yt, [["__scopeId", "data-v-10315937"]]), Kt = ["title", "disabled"], Pe = /* @__PURE__ */ $({
551
+ __name: "ListLabelButton",
552
+ props: {
553
+ disabled: { type: Boolean },
554
+ text: {},
555
+ title: {}
556
+ },
557
+ emits: ["click"],
558
+ setup(t) {
559
+ return (e, n) => (y(), B("button", {
560
+ class: A(["btn btn-link d-inline-block flex-fill text-start text-nowrap text-truncate overflow-hidden px-1 py-0 link-underline link-underline-opacity-0 link-underline-opacity-75-hover", e.$attrs.class]),
561
+ title: e.title ?? e.text,
562
+ disabled: !!e.disabled,
563
+ type: "button",
564
+ onClick: n[0] || (n[0] = (i) => e.$emit("click", i))
565
+ }, K(e.text), 11, Kt));
566
+ }
567
+ });
568
+ function Be(t, e) {
569
+ const n = a(t[e]);
570
+ return wt(
571
+ () => t[e],
572
+ (i) => {
573
+ n.value = i;
574
+ }
575
+ ), n;
576
+ }
577
+ export {
578
+ Ft as D,
579
+ $t as F,
580
+ we as I,
581
+ st as _,
582
+ de as a,
583
+ T as b,
584
+ he as c,
585
+ le as d,
586
+ be as e,
587
+ _e as f,
588
+ k as g,
589
+ ge as h,
590
+ M as i,
591
+ Se as j,
592
+ zt as k,
593
+ et as l,
594
+ ve as m,
595
+ me as n,
596
+ ye as o,
597
+ Ot as p,
598
+ Ht as q,
599
+ xe as r,
600
+ Pe as s,
601
+ Be as t,
602
+ Ce as u,
603
+ ue as v,
604
+ fe as w,
605
+ ce as x,
606
+ pe as y
607
+ };
608
+ //# sourceMappingURL=Components.es.js.map