@qaecy/cue-ui 0.0.21 → 0.0.23
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/112.js +1 -0
- package/149.js +1 -0
- package/245.js +1 -1
- package/247.js +3 -0
- package/284.js +1 -1
- package/{236.js → 311.js} +1 -1
- package/334.js +1 -0
- package/336.js +1 -1
- package/376.js +1 -1
- package/382.js +1 -0
- package/393.js +1 -0
- package/418.js +1 -1
- package/419.js +1 -1
- package/523.js +1 -1
- package/540.js +1 -0
- package/544.js +1 -0
- package/560.js +1 -1
- package/571.js +1 -0
- package/60.js +1 -1
- package/722.js +1 -0
- package/740.js +1 -0
- package/741.js +1 -1
- package/903.js +1 -0
- package/911.js +1 -0
- package/960.js +1 -0
- package/995.js +1 -0
- package/README.md +144 -34
- package/common.js +1 -1
- package/index.js +1 -1
- package/main.js +1 -1
- package/package.json +1 -1
- package/runtime.js +1 -1
- package/344.js +0 -1
- package/371.js +0 -1
- package/443.js +0 -1
- package/570.js +0 -1
- package/613.js +0 -1
- package/710.js +0 -1
- package/774.js +0 -1
- package/83.js +0 -1
package/README.md
CHANGED
|
@@ -5,18 +5,21 @@ Drop them into any HTML page — no build step required.
|
|
|
5
5
|
|
|
6
6
|
## Components
|
|
7
7
|
|
|
8
|
-
| Custom element
|
|
9
|
-
|
|
|
10
|
-
| `<cue-
|
|
11
|
-
| `<cue-
|
|
12
|
-
| `<cue-document-list>`
|
|
13
|
-
| `<cue-
|
|
8
|
+
| Custom element | Description |
|
|
9
|
+
| ------------------------------- | --------------------------------------------------------------------------------- |
|
|
10
|
+
| `<cue-logo>` | Animated QAECY logo |
|
|
11
|
+
| `<cue-document-viewer>` | Document viewer with Cue SDK integration (PDF, BIM, CAD, images, spreadsheets, …) |
|
|
12
|
+
| `<cue-document-list>` | Lazy document list that fetches metadata from the Cue SDK |
|
|
13
|
+
| `<cue-entity-list>` | Lazy entity list that fetches entity data from the Cue SDK |
|
|
14
|
+
| `<cue-entity-viewer>` | Full entity detail view — info, relationships, documents, and optional map |
|
|
15
|
+
| `<cue-id-builder>` | Interactive IFC/SPARQL ID builder |
|
|
16
|
+
| `<cue-block-project-documents>` | Project documents content block with charts and statistics |
|
|
14
17
|
|
|
15
18
|
---
|
|
16
19
|
|
|
17
20
|
## CDN quickstart
|
|
18
21
|
|
|
19
|
-
The
|
|
22
|
+
The library ships as a **single script** that lazy-loads only the components you request — no `npm install` needed.
|
|
20
23
|
|
|
21
24
|
```html
|
|
22
25
|
<!doctype html>
|
|
@@ -87,6 +90,20 @@ The entire library ships as a **single script** that lazy-loads only the compone
|
|
|
87
90
|
</html>
|
|
88
91
|
```
|
|
89
92
|
|
|
93
|
+
### Installing via npm
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npm install @qaecy/cue-sdk @qaecy/cue-ui
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```js
|
|
100
|
+
// Import the loader — registers the smart loader that boots Angular once
|
|
101
|
+
import '@qaecy/cue-ui';
|
|
102
|
+
|
|
103
|
+
// Optionally import styles
|
|
104
|
+
import '@qaecy/cue-ui/styles';
|
|
105
|
+
```
|
|
106
|
+
|
|
90
107
|
---
|
|
91
108
|
|
|
92
109
|
## `<cue-logo>`
|
|
@@ -114,26 +131,53 @@ Renders the animated QAECY logo. Adapts automatically to light/dark mode.
|
|
|
114
131
|
|
|
115
132
|
---
|
|
116
133
|
|
|
117
|
-
## `<cue-
|
|
134
|
+
## `<cue-entity-list>`
|
|
135
|
+
|
|
136
|
+
Renders a lazy-loaded entity table. Pass `iris`, a `sdkState` containing a `CueProjectEntities` instance, and optionally a Mapbox token for location views.
|
|
137
|
+
|
|
138
|
+
| Property | Type | Required | Description |
|
|
139
|
+
| -------------------- | --------------------- | -------- | ------------------------------------------------------------------------------------ |
|
|
140
|
+
| `iris` | `string[]` | ✅ | Entity IRIs to display in the list. |
|
|
141
|
+
| `sdkState` | `{ cue?; entities? }` | ✅ | SDK context. Provide at least `entities` (`CueProjectEntities` instance). |
|
|
142
|
+
| `mapboxToken` | `string` | ❌ | Mapbox access token. Required only if entity location data should be shown on a map. |
|
|
143
|
+
| `paginationPageSize` | `number` | ❌ | Number of rows shown per page in the grid paginator. Default: `10`. |
|
|
144
|
+
|
|
145
|
+
The component emits two events:
|
|
146
|
+
|
|
147
|
+
| Event | Payload | Description |
|
|
148
|
+
| ------------- | ----------- | ------------------------------------------- |
|
|
149
|
+
| `rowClicked` | `EntityRow` | Fires when the user clicks a row. |
|
|
150
|
+
| `clickedOpen` | `EntityRow` | Fires when the user opens an entity detail. |
|
|
151
|
+
|
|
152
|
+
```js
|
|
153
|
+
await customElements.whenDefined('cue-entity-list');
|
|
118
154
|
|
|
119
|
-
|
|
155
|
+
const list = document.createElement('cue-entity-list');
|
|
120
156
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
157
|
+
// sdkState must be set as a JS property, not an HTML attribute
|
|
158
|
+
list.sdkState = { entities: cue.project('your-project-id').entities };
|
|
159
|
+
list.iris = ['https://example.com/entity/uuid-1', 'https://example.com/entity/uuid-2'];
|
|
160
|
+
list.paginationPageSize = 25;
|
|
161
|
+
|
|
162
|
+
list.addEventListener('rowClicked', (e) => console.log('Row clicked:', e.detail));
|
|
163
|
+
list.addEventListener('clickedOpen', (e) => console.log('Open entity:', e.detail));
|
|
164
|
+
|
|
165
|
+
document.getElementById('list-host').appendChild(list);
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
> **Loader** — add `cue-entity-list` to `data-components` if you create it dynamically; otherwise it is detected automatically. See [CDN quickstart](#cdn-quickstart).
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## `<cue-id-builder>`
|
|
173
|
+
|
|
174
|
+
A self-contained interactive tool that converts a text string into a context-based GUID (used for IFC/SPARQL identifiers). No external inputs required — drop it in and it works standalone.
|
|
129
175
|
|
|
130
176
|
```html
|
|
131
|
-
<cue-
|
|
132
|
-
Card content
|
|
133
|
-
</cue-card>
|
|
177
|
+
<cue-id-builder></cue-id-builder>
|
|
134
178
|
```
|
|
135
179
|
|
|
136
|
-
> **Loader** — add `cue-
|
|
180
|
+
> **Loader** — add `cue-id-builder` to `data-components` if you create it dynamically; otherwise it is detected automatically. See [CDN quickstart](#cdn-quickstart).
|
|
137
181
|
|
|
138
182
|
---
|
|
139
183
|
|
|
@@ -147,7 +191,7 @@ Fetches and renders a Cue document. Automatically picks the best viewer based on
|
|
|
147
191
|
| `uuid` | `string` | ✅ | Document UUID. Append `?page=N` to open at a specific page, e.g. `'abc-123?page=5'`. |
|
|
148
192
|
| `projectId` | `string` | ✅ | Cue project (space) ID the document belongs to. |
|
|
149
193
|
|
|
150
|
-
Language is managed globally by the SDK via `cue.api.language` / `cue.api.setLanguage(lang)` and applies to all language-sensitive requests.
|
|
194
|
+
Language is managed globally by the SDK via `cue.api.language` / `cue.api.setLanguage(lang)` and applies to all language-sensitive requests.
|
|
151
195
|
Document metadata caching is also managed by the SDK; the component reuses SDK-owned per-project document state automatically.
|
|
152
196
|
|
|
153
197
|
Supported file types: PDF, IFC/BIM, DXF/CAD, images (PNG, JPG, SVG, …), Markdown, plain text, CSV/XLSX spreadsheets.
|
|
@@ -205,28 +249,94 @@ list.customMenuItems = [
|
|
|
205
249
|
|
|
206
250
|
---
|
|
207
251
|
|
|
208
|
-
##
|
|
252
|
+
## `<cue-block-project-documents>`
|
|
209
253
|
|
|
210
|
-
|
|
254
|
+
A content block that visualises project document statistics — documents by content category, by file type, total size, and duplicates — using interactive pie charts.
|
|
255
|
+
|
|
256
|
+
| Property | Type | Required | Description |
|
|
257
|
+
| -------- | ---------------------- | -------- | ------------------------------------------------------------------------------------------------ |
|
|
258
|
+
| `data` | `ProjectDocumentsData` | ❌ | Document statistics payload. The component renders empty until set. |
|
|
259
|
+
| `config` | `BlockConfig` | ✅ | Block configuration including `projectId`, `handlers`, and privileges. **Set as a JS property.** |
|
|
211
260
|
|
|
212
261
|
```js
|
|
213
|
-
|
|
262
|
+
await customElements.whenDefined('cue-block-project-documents');
|
|
214
263
|
|
|
215
|
-
const
|
|
216
|
-
|
|
264
|
+
const block = document.createElement('cue-block-project-documents');
|
|
265
|
+
|
|
266
|
+
block.config = {
|
|
267
|
+
projectId: 'your-project-id',
|
|
268
|
+
graphIsSaturated: false,
|
|
269
|
+
privileges: { canEdit: false },
|
|
270
|
+
portalBaseURL: 'https://app.qaecy.com',
|
|
271
|
+
resourceBaseURL: 'https://cue.qaecy.com/r/',
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
block.data = {
|
|
275
|
+
documentsBySuffix: { pdf: { count: 12, size: 4096000 } },
|
|
276
|
+
documentsByContentCategory: { drawings: { count: 5, size: 1024000 } },
|
|
277
|
+
duplicateCount: 2,
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
document.getElementById('block-host').appendChild(block);
|
|
217
281
|
```
|
|
218
282
|
|
|
219
|
-
|
|
283
|
+
> **Loader** — add `cue-block-project-documents` to `data-components` if you create it dynamically; otherwise it is detected automatically. See [CDN quickstart](#cdn-quickstart).
|
|
220
284
|
|
|
221
|
-
|
|
222
|
-
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## `<cue-entity-viewer>`
|
|
288
|
+
|
|
289
|
+
Renders the full detail view for a single entity: an info panel (label + categories), a relationship graph, linked documents, and an optional location map.
|
|
290
|
+
|
|
291
|
+
Requires an authenticated `Cue` SDK instance. Internally creates `CueProjectEntities` and `CueProjectDocuments` instances and wires all data-fetching automatically.
|
|
292
|
+
|
|
293
|
+
| Property | Type | Required | Description |
|
|
294
|
+
| ------------- | -------------------- | -------- | ----------------------------------------------------------------------------------------- |
|
|
295
|
+
| `cue` | `Cue` (SDK instance) | ✅ | Authenticated Cue SDK instance. **Set as a JS property**, not an HTML attribute. |
|
|
296
|
+
| `projectId` | `string` | ✅ | Cue project (space) ID that the entity belongs to. |
|
|
297
|
+
| `iri` | `string` | ✅ | Full RDF IRI of the entity to display, e.g. `'https://cue.qaecy.com/r/{project}/{uuid}'`. |
|
|
298
|
+
| `mapboxToken` | `string` | ❌ | Mapbox access token. Required to show entity location on a map. Omit to hide the map tab. |
|
|
299
|
+
|
|
300
|
+
The component emits one event:
|
|
301
|
+
|
|
302
|
+
| Event | Payload | Description |
|
|
303
|
+
| ------------ | -------- | ------------------------------------------------------- |
|
|
304
|
+
| `openEntity` | `string` | Entity UUID when the user navigates to a linked entity. |
|
|
305
|
+
|
|
306
|
+
```js
|
|
307
|
+
await customElements.whenDefined('cue-entity-viewer');
|
|
308
|
+
|
|
309
|
+
const viewer = document.createElement('cue-entity-viewer');
|
|
310
|
+
|
|
311
|
+
// Required: set as JS properties, not HTML attributes
|
|
312
|
+
viewer.cue = cue;
|
|
313
|
+
viewer.projectId = 'your-project-id';
|
|
314
|
+
viewer.iri = 'https://cue.qaecy.com/r/your-project-id/entity-uuid';
|
|
315
|
+
|
|
316
|
+
// Optional: enable the location map tab
|
|
317
|
+
viewer.mapboxToken = 'pk.eyJ1…';
|
|
318
|
+
|
|
319
|
+
// Navigate within your app when the user opens a related entity
|
|
320
|
+
viewer.addEventListener('openEntity', (e) => {
|
|
321
|
+
viewer.iri = `https://cue.qaecy.com/r/your-project-id/${e.detail}`;
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
document.getElementById('viewer-host').appendChild(viewer);
|
|
223
325
|
```
|
|
224
326
|
|
|
327
|
+
> **Loader** — add `cue-entity-viewer` to `data-components` if you create it dynamically; otherwise it is detected automatically. See [CDN quickstart](#cdn-quickstart).
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## Dependency: `@qaecy/cue-sdk`
|
|
332
|
+
|
|
333
|
+
The `cue-document-viewer`, `cue-document-list`, `cue-entity-list`, and `cue-entity-viewer` components require an authenticated [`Cue`](https://www.npmjs.com/package/@qaecy/cue-sdk) instance. The SDK handles authentication and all data fetching — the components never make direct network calls.
|
|
334
|
+
|
|
225
335
|
```js
|
|
226
|
-
import { Cue } from '
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
336
|
+
import { Cue } from 'https://cdn.jsdelivr.net/npm/@qaecy/cue-sdk/dist/index.esm.js';
|
|
337
|
+
|
|
338
|
+
const cue = new Cue();
|
|
339
|
+
await cue.auth.signIn('google'); // or 'microsoft', 'email', etc.
|
|
230
340
|
```
|
|
231
341
|
|
|
232
342
|
---
|
package/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkcue_ui=self.webpackChunkcue_ui||[]).push([[76],{2014(M,m,o){o.d(m,{z:()=>f});var n=o(7705),s=o(2271),a=o(5547);const r=["*"];let f=(()=>{class t{justify=(0,n.hFB)("start");size=(0,n.hFB)("l");widthStyle=(0,s.EW)(()=>`var(--cue-button-label-padding-${this.size()}-x)`);static \u0275fac=function(d){return new(d||t)};static \u0275cmp=a.VBU({type:t,selectors:[["cue-button-padder"]],inputs:{justify:[1,"justify"],size:[1,"size"]},ngContentSelectors:r,decls:2,vars:4,template:function(d,u){1&d&&(a.NAR(),a.rj2(0,"div"),a.SdG(1),a.eux()),2&d&&a.xc7("justify-content",u.justify())("min-width",u.widthStyle())},styles:["div[_ngcontent-%COMP%]{display:flex;align-items:center;min-height:1px}"]})}return t})()},6034(M,m,o){o.d(m,{y:()=>B});var n=o(7705),s=o(7598),a=o(9769),r=o(5187),f=o(2271),t=o(5547);const l=["*"];let i=(()=>{class c{style=(0,n.hFB)("");gap=(0,n.hFB)("m");columns=(0,n.hFB)(1);getStyles=(0,f.EW)(()=>`\n grid-template-columns: repeat(${this.columns()}, minmax(0, 1fr));\n gap: var(--cue-grid-gap-${this.gap()});\n ${this.style()}\n `);static \u0275fac=function(g){return new(g||c)};static \u0275cmp=t.VBU({type:c,selectors:[["cue-grid"]],hostVars:2,hostBindings:function(g,e){2&g&&t.Aen(e.getStyles())},inputs:{style:[1,"style"],gap:[1,"gap"],columns:[1,"columns"]},ngContentSelectors:l,decls:1,vars:0,template:function(g,e){1&g&&(t.NAR(),t.SdG(0))},styles:["[_nghost-%COMP%]{display:grid}"]})}return c})();var d=o(2245),u=o(5381),h=o(29);const b=["*"];function _(c,L){if(1&c&&(t.j41(0,"cue-typography",2),t.EFF(1),t.k0s()),2&c){const p=t.XpG();t.R7$(),t.SpI(" ",p.label()," ")}}let B=(()=>{class c{label=(0,n.hFB)("");variant=(0,n.hFB)("default");shadow=(0,n.hFB)(!1);padded=(0,n.hFB)(!0);showCloseBtn=(0,n.hFB)(!0);position=(0,n.hFB)("top-left");clickedClose=(0,n.CGW)();margin=(0,n.hFB)("0.5rem");close(p){p.stopPropagation(),p.stopImmediatePropagation(),this.clickedClose.emit()}static \u0275fac=function(g){return new(g||c)};static \u0275cmp=t.VBU({type:c,selectors:[["cue-draggable-card"]],inputs:{label:[1,"label"],variant:[1,"variant"],shadow:[1,"shadow"],padded:[1,"padded"],showCloseBtn:[1,"showCloseBtn"],position:[1,"position"],margin:[1,"margin"]},outputs:{clickedClose:"clickedClose"},ngContentSelectors:b,decls:8,vars:14,consts:[["cdkDrag","",1,"panel",3,"variant","shadow","padded"],["justify","end"],["size","l"],[2,"width","100%"],["name","close",2,"cursor","pointer",3,"click"]],template:function(g,e){1&g&&(t.NAR(),t.j41(0,"cue-card",0)(1,"cue-typography")(2,"cue-grid")(3,"cue-flexcontainer",1),t.nVh(4,_,2,1,"cue-typography",2),t.nrm(5,"span",3),t.j41(6,"cue-svg-icon",4),t.bIt("click",function(y){return e.close(y)}),t.k0s()(),t.SdG(7),t.k0s()()()),2&g&&(t.xc7("top","top-left"===e.position()||"top-right"===e.position()?e.margin():"null")("bottom","bottom-left"===e.position()||"bottom-right"===e.position()?e.margin():"null")("left","top-left"===e.position()||"bottom-left"===e.position()?e.margin():"null")("right","top-right"===e.position()||"bottom-right"===e.position()?e.margin():"null"),t.Y8G("variant",e.variant())("shadow",e.shadow())("padded",e.padded()),t.R7$(3),t.xc7("padding",e.padded()?"0":"10px"),t.R7$(),t.vxM(e.label()&&"undefined"!==e.label()?4:-1))},dependencies:[a.MD,r.Z,i,d.o,u.n,h.A,s.T1],styles:[".panel[_ngcontent-%COMP%]{position:absolute;width:fit-content}"]})}return c})()},3191(M,m,o){o.d(m,{g:()=>a});var n=o(467),s=o(5802);let a=(()=>{class r{searchPage(t,l,i){return(0,n.A)(function*(){if(!i||!i.trim())return[];const d=i.toLowerCase(),u=yield t.getPage(l),h=u.getViewport({scale:1}),_=(yield u.getTextContent()).items,I=[];let B="";const c=[],L=[];for(let e=0;e<_.length;e++){const y=_[e].str??"";for(let v=0;v<y.length;v++)B+=y[v],c.push(e),L.push(v)}const p=B.toLowerCase();let g=0;for(;g<p.length;){const e=p.indexOf(d,g);if(-1===e)break;const O=e+d.length-1;g=e+1;const y=new Set;for(let D=e;D<=O;D++)y.add(c[D]);let v=1/0,C=1/0,T=-1/0,A=-1/0;for(const D of y){const S=_[D],[w,W,q,K,P,E]=S.transform,k=S.width??0,F=S.height??Math.abs(w||K||12),x=Math.sqrt(w*w+W*W)||1,z=w/x,V=W/x,Y=q/x,X=K/x,ot=[[P,E],[P+z*k,E+V*k],[P+z*k+Y*F,E+V*k+X*F],[P+Y*F,E+X*F]];for(const[nt,st]of ot){const[H,Z]=h.convertToViewportPoint(nt,st);v=Math.min(v,H),C=Math.min(C,Z),T=Math.max(T,H),A=Math.max(A,Z)}}const N=h.width,R=h.height,U=.005*N,j=.005*R,J=(C-j)/R*100,G=(T-v+2*U)/N*100,$=(A-C+2*j)/R*100;G>0&&$>0&&I.push({page:l,xywhStr:`percent:${((v-U)/N*100).toFixed(2)},${J.toFixed(2)},${G.toFixed(2)},${$.toFixed(2)}`})}return I})()}searchAll(t,l){var i=this;return(0,n.A)(function*(){if(!l||!l.trim())return[];const d=t.numPages,u=[];for(let h=1;h<=d;h++){const b=yield i.searchPage(t,h,l);u.push(...b)}return u})()}static \u0275fac=function(l){return new(l||r)};static \u0275prov=s.jDH({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})()},6170(M,m,o){o.d(m,{R:()=>f});var n=o(7705),s=o(5802),a=o(2271),r=o(5547);let f=(()=>{class t{destroyRef=(0,s.WQX)(s.abz);_isDarkMode=(0,s.vPA)(this.hasDarkClass());isDarkMode=(0,a.EW)(()=>this._isDarkMode());darkModeChange=(0,n.CGW)();constructor(){const i=new MutationObserver(d=>{d.forEach(u=>{if("attributes"===u.type&&"class"===u.attributeName){const h=this.hasDarkClass();h!==this._isDarkMode()&&this._isDarkMode.set(h)}})});i.observe(document.body,{attributes:!0,attributeFilter:["class"]}),this.destroyRef.onDestroy(()=>i.disconnect()),(0,s.QZP)(()=>{this.darkModeChange.emit(this._isDarkMode()),document.documentElement.style.colorScheme=this._isDarkMode()?"dark":"light"})}hasDarkClass(){return document.body.classList.contains("dark")}toggleDarkMode(){document.body.classList.toggle("dark")}static \u0275fac=function(d){return new(d||t)};static \u0275dir=r.FsC({type:t,selectors:[["","cueDarkMode",""]],outputs:{darkModeChange:"darkModeChange"},exportAs:["darkModeDetector"]})}return t})()},1493(M,m,o){function n(s,a=!1,r=1){const f=a?1e3:1024;if(Math.abs(s)<f)return s+" B";const t=a?["kB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];let l=-1;const i=10**r;do{s/=f,++l}while(Math.round(Math.abs(s)*i)/i>=f&&l<t.length-1);return s.toFixed(r)+" "+t[l]}o.d(m,{b:()=>n})},7573(M,m,o){o.d(m,{E:()=>n});const n={qcy:"https://dev.qaecy.com/ont#","qcy-e":"https://dev.qaecy.com/enum#","qcy-f":"https://dev.qaecy.com/functions#",obc:"https://w3id.org/obc#",dicc:"https://w3id.org/digitalconstruction/0.5/Contexts#",dicv:"https://w3id.org/digitalconstruction/0.5/Variables#",dice:"https://w3id.org/digitalconstruction/0.5/Entities#",dicp:"https://w3id.org/digitalconstruction/0.5/Processes#",dica:"https://w3id.org/digitalconstruction/0.5/Agents#",dici:"https://w3id.org/digitalconstruction/0.5/Information#",dicbm:"https://w3id.org/digitalconstruction/0.5/Materials#",dicob:"https://w3id.org/digitalconstruction/0.5/Occupancy#",dicl:"https://w3id.org/digitalconstruction/0.5/Lifecycle#",dices:"https://w3id.org/digitalconstruction/0.5/Energy#",dicu:"https://w3id.org/digitalconstruction/0.5/Units#",diclvl:"https://w3id.org/digitalconstruction/0.5/Levels#",dicstg:"https://w3id.org/digitalconstruction/0.5/Stages#"}}}]);
|
|
1
|
+
"use strict";(self.webpackChunkcue_ui=self.webpackChunkcue_ui||[]).push([[76],{2014(x,M,i){i.d(M,{z:()=>b});var l=i(7705),c=i(2271),u=i(5547);const g=["*"];let b=(()=>{class o{justify=(0,l.hFB)("start");size=(0,l.hFB)("l");widthStyle=(0,c.EW)(()=>`var(--cue-button-label-padding-${this.size()}-x)`);static \u0275fac=function(a){return new(a||o)};static \u0275cmp=u.VBU({type:o,selectors:[["cue-button-padder"]],inputs:{justify:[1,"justify"],size:[1,"size"]},ngContentSelectors:g,decls:2,vars:4,template:function(a,d){1&a&&(u.NAR(),u.rj2(0,"div"),u.SdG(1),u.eux()),2&a&&u.xc7("justify-content",d.justify())("min-width",d.widthStyle())},styles:["div[_ngcontent-%COMP%]{display:flex;align-items:center;min-height:1px}"]})}return o})()},6034(x,M,i){i.d(M,{y:()=>f});var l=i(7705),c=i(7598),u=i(9769),g=i(5187),b=i(2271),o=i(5547);const n=["*"];let y=(()=>{class t{style=(0,l.hFB)("");gap=(0,l.hFB)("m");columns=(0,l.hFB)(1);getStyles=(0,b.EW)(()=>`\n grid-template-columns: repeat(${this.columns()}, minmax(0, 1fr));\n gap: var(--cue-grid-gap-${this.gap()});\n ${this.style()}\n `);static \u0275fac=function(v){return new(v||t)};static \u0275cmp=o.VBU({type:t,selectors:[["cue-grid"]],hostVars:2,hostBindings:function(v,m){2&v&&o.Aen(m.getStyles())},inputs:{style:[1,"style"],gap:[1,"gap"],columns:[1,"columns"]},ngContentSelectors:n,decls:1,vars:0,template:function(v,m){1&v&&(o.NAR(),o.SdG(0))},styles:["[_nghost-%COMP%]{display:grid}"]})}return t})();var a=i(2245),d=i(5381),e=i(29);const r=["*"];function h(t,p){if(1&t&&(o.j41(0,"cue-typography",2),o.EFF(1),o.k0s()),2&t){const _=o.XpG();o.R7$(),o.SpI(" ",_.label()," ")}}let f=(()=>{class t{label=(0,l.hFB)("");variant=(0,l.hFB)("default");shadow=(0,l.hFB)(!1);padded=(0,l.hFB)(!0);showCloseBtn=(0,l.hFB)(!0);position=(0,l.hFB)("top-left");clickedClose=(0,l.CGW)();margin=(0,l.hFB)("0.5rem");close(_){_.stopPropagation(),_.stopImmediatePropagation(),this.clickedClose.emit()}static \u0275fac=function(v){return new(v||t)};static \u0275cmp=o.VBU({type:t,selectors:[["cue-draggable-card"]],inputs:{label:[1,"label"],variant:[1,"variant"],shadow:[1,"shadow"],padded:[1,"padded"],showCloseBtn:[1,"showCloseBtn"],position:[1,"position"],margin:[1,"margin"]},outputs:{clickedClose:"clickedClose"},ngContentSelectors:r,decls:8,vars:14,consts:[["cdkDrag","",1,"panel",3,"variant","shadow","padded"],["justify","end"],["size","l"],[2,"width","100%"],["name","close",2,"cursor","pointer",3,"click"]],template:function(v,m){1&v&&(o.NAR(),o.j41(0,"cue-card",0)(1,"cue-typography")(2,"cue-grid")(3,"cue-flexcontainer",1),o.nVh(4,h,2,1,"cue-typography",2),o.nrm(5,"span",3),o.j41(6,"cue-svg-icon",4),o.bIt("click",function(D){return m.close(D)}),o.k0s()(),o.SdG(7),o.k0s()()()),2&v&&(o.xc7("top","top-left"===m.position()||"top-right"===m.position()?m.margin():"null")("bottom","bottom-left"===m.position()||"bottom-right"===m.position()?m.margin():"null")("left","top-left"===m.position()||"bottom-left"===m.position()?m.margin():"null")("right","top-right"===m.position()||"bottom-right"===m.position()?m.margin():"null"),o.Y8G("variant",m.variant())("shadow",m.shadow())("padded",m.padded()),o.R7$(3),o.xc7("padding",m.padded()?"0":"10px"),o.R7$(),o.vxM(m.label()&&"undefined"!==m.label()?4:-1))},dependencies:[u.MD,g.Z,y,a.Typography,d.n,e.A,c.T1],styles:[".panel[_ngcontent-%COMP%]{position:absolute;width:fit-content}"]})}return t})()},6756(x,M,i){i.d(M,{BK:()=>l,In:()=>a,Kz:()=>d,Mc:()=>r,U6:()=>u,g0:()=>h,g8:()=>g,r:()=>c,u9:()=>o});const l=["#2B5DE6","#1A2B50","#C5E045","#6FA8FF","#00C2E0","#5847EB","#008585","#4ADE80","#0F4C81","#8B5CF6","#FACC15","#FB923C","#F43F5E","#E879F9","#D97706","#334155","#64748B","#94A3B8","#C7D2FE","#F8FAFC"];function c(t){switch(t){case"primary":default:return"#2859e1";case"accent":return"#e2f552";case"tertiary":return"#ffffff"}}function u(t){switch(t){case"primary":default:return"#1744c2";case"accent":return"#b8cc3f";case"tertiary":return"#eeeeee"}}function g(t){const[p,_,v]=function b(t,p){if(void 0===t)return[];const v=window.getComputedStyle(t.nativeElement);return p.map(m=>v.getPropertyValue(m).trim()||"")}(t,["--cue-chart-text-color","--cue-chart-border-background-color","--chart-graph-edge-color"]);return{text:p,borderBackground:_,edgeColor:v}}const o={fontFamily:"Poppins, sans-serif",fontWeight:"normal",color:"#333"};function a(t){return t>=1e6?`${(t/1e6).toFixed(1)}m`:t>=1e3?`${(t/1e3).toFixed(0)}k`:t.toString()}function d(t,p,_,v){if(1===v)return t;const m=s(t),P=s(p),D=_/(v-1);return`rgb(${Math.round(m.r+(P.r-m.r)*D)}, ${Math.round(m.g+(P.g-m.g)*D)}, ${Math.round(m.b+(P.b-m.b)*D)})`}const r=(t,p)=>void 0===p?t:p.children??[];function h(t,p,_=.05,v="Other"){const m=t.reduce((C,E)=>C+f(E),0),P=[],D=[];if(t.forEach(C=>{let E,T;E=void 0===C.value&&Array.isArray(C.children)&&C.children.length>0?C.children.reduce((F,L)=>F+f(L),0):void 0!==C.value?C.value:0,Array.isArray(C.children)&&C.children.length>0&&(T=h(C.children,p,_,v));const A={...C,value:E,children:T};p&&m>0&&E/m<_?D.push(A):P.push(A)}),p&&D.length>0){const C=D.reduce((E,T)=>E+T.value,0);P.push({id:"__grouped_small__",name:v,value:C,children:D,isGroup:!0})}return P}function s(t){const p=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return p?{r:parseInt(p[1],16),g:parseInt(p[2],16),b:parseInt(p[3],16)}:{r:0,g:0,b:0}}function f(t){return"number"==typeof t.value?t.value:Array.isArray(t.children)&&t.children.length>0?t.children.reduce((p,_)=>p+f(_),0):0}},9134(x,M,i){i.d(M,{v:()=>b});var l=i(7705),c=i(6034),u=i(7517),g=i(5547);let b=(()=>{class o{title=(0,l.hFB)("Legend");layers=(0,l.hFB)([]);position=(0,l.hFB)("top-left");close=(0,l.CGW)();visibilityChange=(0,l.CGW)();layerChange=(0,l.CGW)();visibilityAll=(0,l.CGW)();static \u0275fac=function(a){return new(a||o)};static \u0275cmp=g.VBU({type:o,selectors:[["cue-color-legend-panel"]],inputs:{title:[1,"title"],layers:[1,"layers"],position:[1,"position"]},outputs:{close:"close",visibilityChange:"visibilityChange",layerChange:"layerChange",visibilityAll:"visibilityAll"},decls:3,vars:4,consts:[[3,"clickedClose","label","padded","position"],[1,"content"],[3,"visibilityAll","layerChange","visibilityChange","layers"]],template:function(a,d){1&a&&(g.j41(0,"cue-draggable-card",0),g.bIt("clickedClose",function(){return d.close.emit()}),g.j41(1,"div",1)(2,"cue-layer-legend",2),g.bIt("visibilityAll",function(r){return d.visibilityAll.emit(r)})("layerChange",function(r){return d.layerChange.emit(r)})("visibilityChange",function(r){return d.visibilityChange.emit(r)}),g.k0s()()()),2&a&&(g.Y8G("label",d.title())("padded",!1)("position",d.position()),g.R7$(2),g.Y8G("layers",d.layers()))},dependencies:[c.y,u.P],styles:[".content[_ngcontent-%COMP%]{padding-left:10px;padding-right:10px;margin-bottom:30px;font-size:.8em;max-height:200px;max-width:180px;overflow:auto}"]})}return o})()},7517(x,M,i){i.d(M,{P:()=>h});var l=i(7705),c=i(2271),u=i(2245),g=i(1359),b=i(5381),o=i(5802),n=i(5547);const y=(s,f)=>f.category;function a(s,f){if(1&s){const t=n.RV6();n.j41(0,"cue-flexcontainer",1)(1,"cue-checkbox",2),n.bIt("checkedChange",function(){o.eBV(t);const _=n.XpG();return o.Njj(_.toggleAll())}),n.k0s()()}if(2&s){const t=n.XpG();n.R7$(),n.Y8G("checked",t.allVisible())}}function d(s,f){if(1&s&&(n.j41(0,"cue-typography",3),n.EFF(1),n.k0s()),2&s){const t=n.XpG().$implicit;n.R7$(),n.JRh(t.category)}}function e(s,f){if(1&s){const t=n.RV6();n.j41(0,"cue-flexcontainer",1)(1,"cue-checkbox",4),n.bIt("checkedChange",function(){const _=o.eBV(t).$implicit,v=n.XpG(2);return o.Njj(v.toggleSingle(_))}),n.k0s(),n.j41(2,"cue-typography",5),n.bIt("click",function(){const _=o.eBV(t).$implicit,v=n.XpG(2);return o.Njj(v.toggleSingle(_))}),n.EFF(3),n.k0s()()}if(2&s){const t=f.$implicit;n.R7$(),n.Y8G("checked",t.visible)("color",t.color),n.R7$(2),n.JRh(t.label)}}function r(s,f){if(1&s&&(n.nVh(0,d,2,1,"cue-typography",3),n.Z7z(1,e,4,3,"cue-flexcontainer",1,n.Vm6)),2&s){const t=f.$implicit;n.vxM(t.category?0:-1),n.R7$(),n.Dyx(t.items)}}let h=(()=>{class s{layers=(0,l.geq)([]);visibilityChange=(0,l.CGW)();layerChange=(0,l.CGW)();visibilityAll=(0,l.CGW)();showCheckAll=(0,c.EW)(()=>this.layers().length>1);allVisible=(0,c.EW)(()=>this.layers().every(t=>t.visible));groupedLayers=(0,c.EW)(()=>{const t=[];for(const p of this.layers()){const _=p.category,v=t.find(m=>m.category===_);v?v.items.push(p):t.push({category:_,items:[p]})}return t});toggleAll(){const t=this.allVisible(),p=this.layers().map(_=>(_.visible=!t,_));this.layers.update(()=>[...p]),this.visibilityAll.emit(t),this.emitChange()}toggleSingle(t){t.visible=!t.visible,this.layerChange.emit(t),this.layers.update(()=>[...this.layers()]),this.emitChange()}emitChange(){this.visibilityChange.emit(this.layers())}static \u0275fac=function(p){return new(p||s)};static \u0275cmp=n.VBU({type:s,selectors:[["cue-layer-legend"]],inputs:{layers:[1,"layers"]},outputs:{layers:"layersChange",visibilityChange:"visibilityChange",layerChange:"layerChange",visibilityAll:"visibilityAll"},decls:4,vars:1,consts:[["direction","column"],["align","center","justify","start",2,"width","100%"],["size","s",3,"checkedChange","checked"],["variant","label",2,"margin-top","4px","opacity","0.6"],["size","s",3,"checkedChange","checked","color"],[2,"cursor","pointer",3,"click"]],template:function(p,_){1&p&&(n.j41(0,"cue-flexcontainer",0),n.nVh(1,a,2,1,"cue-flexcontainer",1),n.Z7z(2,r,3,1,null,null,y),n.k0s()),2&p&&(n.R7$(),n.vxM(_.showCheckAll()?1:-1),n.R7$(),n.Dyx(_.groupedLayers()))},dependencies:[b.n,u.Typography,g.S],encapsulation:2,changeDetection:0})}return s})()},4613(x,M,i){i.d(M,{Logo:()=>o});var l=i(7705),c=i(5802),u=i(5547),g=i(2271),b=i(6170);let o=(()=>{class n{size=(0,l.hFB)("m");sizeMap={xs:"40px",s:"80px",m:"160px",l:"222px"};active=(0,l.hFB)(!0,{transform:l.L39});continuous=(0,l.hFB)(!1,{transform:l.L39});isDarkMode=(0,l.geq)(!1);handleDarkModeChange(a){this.isDarkMode.set(a),-1===this.raf&&this.animate()}colorA=(0,g.EW)(()=>this.isDarkMode()?[221,246,18]:[18,28,43]);colorB=[0,202,204];paths=[];raf=-1;appearTime=0;disappearTime=0;tip=0;toe=0;mix=[0,0,0];norm=0;animate=a=>{if(void 0!==a&&(this.tip=Math.min(1,6e-4*(a-this.appearTime)),this.active()||(this.toe=Math.min(1,6e-4*(a-this.disappearTime)))),this.paths.forEach((d,e)=>{this.norm=1/this.paths.length*e,this.mix=this.mixRgb(this.colorA(),this.colorB,Math.max(0,Math.min(1,15*(this.tip-this.norm)))),d.setAttribute("stroke",this.tip*this.paths.length>e&&(this.active()||this.toe*this.paths.length<e)?this.rgbToSvg(this.mix):"transparent")}),this.tip>=1&&(this.active()||this.toe>=1))return this.continuous()?void setTimeout(()=>{this.appearTime=performance.now(),this.tip=0,this.toe=0,this.raf=requestAnimationFrame(this.animate)},500):void(this.raf=-1);this.raf=requestAnimationFrame(this.animate)};activate(){this.appearTime=performance.now(),this.animate(this.appearTime)}deactivate(){this.disappearTime=performance.now(),-1===this.raf&&this.animate(this.disappearTime)}mixChannel(a,d,e){return parseInt((a*e+d*(1-e)).toFixed())}mixRgb(a,d,e){return[this.mixChannel(a[0],d[0],e),this.mixChannel(a[1],d[1],e),this.mixChannel(a[2],d[2],e)]}rgbToSvg(a){return`rgb(${a[0]},${a[1]},${a[2]})`}constructor(){(0,c.QZP)(()=>{this.active()?this.activate():this.deactivate()}),(0,c.QZP)(()=>{this.isDarkMode(),this.animate()});const a=(0,c.WQX)(u.aKT);(0,u.mal)({read:()=>{if(this.paths.length)return;const d=a.nativeElement.querySelector("svg"),e=a.nativeElement.querySelector("#original-path");if(!e)return;const r=e.getTotalLength(),s=[];for(let f=0;f<400;f++){const t=e.getPointAtLength(r/400*f);s.push({x:parseFloat(t.x.toFixed(2)),y:parseFloat(t.y.toFixed(2))})}s.push(e.getPointAtLength(r)),s.reverse(),s.forEach((f,t)=>{if(0===t||1===t)return;const p=document.createElementNS("http://www.w3.org/2000/svg","path");p.setAttribute("d",`M${s[t-2].x},${s[t-2].y}L${s[t-1].x},${s[t-1].y}L${f.x},${f.y}`),p.setAttribute("fill","none"),p.setAttribute("stroke","transparent"),p.setAttribute("stroke-width",e?.getAttribute("stroke-width")||"1"),p.setAttribute("stroke-miterlimit",e?.getAttribute("stroke-miterlimit")||"1"),d.appendChild(p),this.paths.push(p)})}})}ngOnDestroy(){this.paths=[],cancelAnimationFrame(this.raf),this.raf=-1}static \u0275fac=function(d){return new(d||n)};static \u0275cmp=u.VBU({type:n,selectors:[["cue-logo"]],hostVars:2,hostBindings:function(d,e){2&d&&u.xc7("width",e.sizeMap[e.size()])},inputs:{size:[1,"size"],active:[1,"active"],continuous:[1,"continuous"],isDarkMode:[1,"isDarkMode"]},outputs:{isDarkMode:"isDarkModeChange"},decls:2,vars:0,consts:[["cueDarkMode","","xmlns","http://www.w3.org/2000/svg","viewBox","0 0 221.545 86.191","width","222","height","86","overflow","visible",3,"darkModeChange"],["id","original-path","fill","none","stroke","transparent","stroke-miterlimit","10","stroke-width","12","d","M216.046 56.638s-10.561 24.201-36.192 22.991c-25.631-1.21-22.771-24.751-20.351-37.622 2.42-12.871 10.451-20.351 16.831-18.041 6.283 2.275 8.03 9.68 2.09 21.891-5.94 12.211-21.341 37.567-35.862 33.992-12.413-3.056-13.281-23.162-13.281-23.162V29.762v26.925c0 14.471-12.47 23.212-24.672 23.212s-24.672-8.301-24.672-23.212V29.829l-.006.105v13.031c0 20.416-16.55 36.966-36.966 36.966S6 63.381 6 42.966 22.55 6 42.966 6c6.91 0 13.377 1.896 18.91 5.196"]],template:function(d,e){1&d&&(c.qSk(),u.j41(0,"svg",0),u.bIt("darkModeChange",function(h){return e.handleDarkModeChange(h)}),u.nrm(1,"path",1),u.k0s())},dependencies:[b.R],styles:["[_nghost-%COMP%]{display:block}svg[_ngcontent-%COMP%]{flex:1;display:block;width:100%;height:auto}"]})}return n})()},2306(x,M,i){i.d(M,{AA:()=>g,ux:()=>b,yY:()=>u});var l=i(140),c=i(8402);class u{mapboxToken;contextMenu={showProperties:!0,showFlyTo:!0};toolbar=new g}class g{hidden=!1;position="bottom";margin="20px";displayZoom=!0;displayGeofenceDraw=!1;displayLayerToggle=!0;clearGeofenceAfterDraw=!0}class b{label;id;collection=new l.o;color;visible=!0;cluster=!0;zoomToFit=!0;category;constructor(n,y=(0,c.A)()){this.label=n,this.id=y}}},3191(x,M,i){i.d(M,{g:()=>u});var l=i(467),c=i(5802);let u=(()=>{class g{searchPage(o,n,y){return(0,l.A)(function*(){if(!y||!y.trim())return[];const a=y.toLowerCase(),d=yield o.getPage(n),e=d.getViewport({scale:1}),h=(yield d.getTextContent()).items,s=[];let f="";const t=[],p=[];for(let m=0;m<h.length;m++){const D=h[m].str??"";for(let C=0;C<D.length;C++)f+=D[C],t.push(m),p.push(C)}const _=f.toLowerCase();let v=0;for(;v<_.length;){const m=_.indexOf(a,v);if(-1===m)break;const P=m+a.length-1;v=m+1;const D=new Set;for(let O=m;O<=P;O++)D.add(t[O]);let C=1/0,E=1/0,T=-1/0,A=-1/0;for(const O of D){const U=h[O],[B,N,q,j,k,I]=U.transform,W=U.width??0,w=U.height??Math.abs(B||j||12),R=Math.sqrt(B*B+N*N)||1,S=B/R,z=N/R,Y=q/R,X=j/R,ne=[[k,I],[k+S*W,I+z*W],[k+S*W+Y*w,I+z*W+X*w],[k+Y*w,I+X*w]];for(const[oe,re]of ne){const[Z,H]=e.convertToViewportPoint(oe,re);C=Math.min(C,Z),E=Math.min(E,H),T=Math.max(T,Z),A=Math.max(A,H)}}const F=e.width,L=e.height,$=.005*F,V=.005*L,J=(E-V)/L*100,K=(T-C+2*$)/F*100,G=(A-E+2*V)/L*100;K>0&&G>0&&s.push({page:n,xywhStr:`percent:${((C-$)/F*100).toFixed(2)},${J.toFixed(2)},${K.toFixed(2)},${G.toFixed(2)}`})}return s})()}searchAll(o,n){var y=this;return(0,l.A)(function*(){if(!n||!n.trim())return[];const a=o.numPages,d=[];for(let e=1;e<=a;e++){const r=yield y.searchPage(o,e,n);d.push(...r)}return d})()}static \u0275fac=function(n){return new(n||g)};static \u0275prov=c.jDH({token:g,factory:g.\u0275fac,providedIn:"root"})}return g})()},6170(x,M,i){i.d(M,{R:()=>b});var l=i(7705),c=i(5802),u=i(2271),g=i(5547);let b=(()=>{class o{destroyRef=(0,c.WQX)(c.abz);_isDarkMode=(0,c.vPA)(this.hasDarkClass());isDarkMode=(0,u.EW)(()=>this._isDarkMode());darkModeChange=(0,l.CGW)();constructor(){const y=new MutationObserver(a=>{a.forEach(d=>{if("attributes"===d.type&&"class"===d.attributeName){const e=this.hasDarkClass();e!==this._isDarkMode()&&this._isDarkMode.set(e)}})});y.observe(document.body,{attributes:!0,attributeFilter:["class"]}),this.destroyRef.onDestroy(()=>y.disconnect()),(0,c.QZP)(()=>{this.darkModeChange.emit(this._isDarkMode()),document.documentElement.style.colorScheme=this._isDarkMode()?"dark":"light"})}hasDarkClass(){return document.body.classList.contains("dark")}toggleDarkMode(){document.body.classList.toggle("dark")}static \u0275fac=function(a){return new(a||o)};static \u0275dir=g.FsC({type:o,selectors:[["","cueDarkMode",""]],outputs:{darkModeChange:"darkModeChange"},exportAs:["darkModeDetector"]})}return o})()},140(x,M,i){i.d(M,{o:()=>l});class l{type="FeatureCollection";features=[];bbox;id;constructor(u=[]){this.features=u}addFeature(u){this.features.push(u)}removeFeature(u){return this.features.splice(u,1)[0]}getFeatureCount(){return this.features.length}clear(){this.features=[]}}},58(x,M,i){function l(e){let r=0,h=-1,s=-1;for(let f=0;f<e.length;f++)if("("===e[f])r++,1===r&&(h=f+1);else if(")"===e[f]&&(r--,0===r)){s=f;break}return-1!==h&&-1!==s?e.substring(h,s):null}i.d(M,{S:()=>a,n:()=>d});class c{x;y;z;constructor(r,h,s){this.x=r,this.y=h,this.z=s}}class u{points;constructor(r){this.points=r}}class g{lines;constructor(r){this.lines=r}}function a(e){if(e){if((e=e.trim().toUpperCase()).startsWith("POINT"))return function o(e){e=e.trim().toUpperCase();const h=l(e)?.split(" ")??[];return e.includes("POINT Z")?new c(parseFloat(h[0]),parseFloat(h[1]),parseFloat(h[2])):new c(parseFloat(h[0]),parseFloat(h[1]))}(e);if(e.startsWith("LINESTRING"))return function b(e){const r=l(e=e.trim().toUpperCase()),h=[];return r?.split(",").map(s=>s.trim().split(" ").map(f=>parseFloat(f))).map(s=>{h.push(new c(s[0],s[1],s[2]))}),new u(h)}(e);if(e.startsWith("POLYGON"))return function n(e){const r=l(e=e.trim().toUpperCase());if(!r)return new g([]);const h=r.match(/\(([^)]+)\)/g);if(!h)return new g([]);const s=h.map(f=>{const t=l(f);return t?t.split(",").map(p=>{const _=p.trim().split(" ");return _.length>=3?new c(parseFloat(_[0]),parseFloat(_[1]),parseFloat(_[2])):new c(parseFloat(_[0]),parseFloat(_[1]))}):[]});return new g(s)}(e)}}function d(e){if(e instanceof c)return{type:"Point",coordinates:void 0!==e.z?[e.x,e.y,e.z]:[e.x,e.y]};if(e instanceof u)return{type:"LineString",coordinates:e.points.map(r=>void 0!==r.z?[r.x,r.y,r.z]:[r.x,r.y])};if(e instanceof g)return{type:"Polygon",coordinates:e.lines.map(r=>r.map(h=>void 0!==h.z?[h.x,h.y,h.z]:[h.x,h.y]))};throw new Error("Unknown WKT type")}},5332(x,M,i){i.d(M,{k:()=>g});for(var c=[],u=0;u<256;++u)c.push((u+256).toString(16).slice(1));function g(n,y=0){return(c[n[y+0]]+c[n[y+1]]+c[n[y+2]]+c[n[y+3]]+"-"+c[n[y+4]]+c[n[y+5]]+"-"+c[n[y+6]]+c[n[y+7]]+"-"+c[n[y+8]]+c[n[y+9]]+"-"+c[n[y+10]]+c[n[y+11]]+c[n[y+12]]+c[n[y+13]]+c[n[y+14]]+c[n[y+15]]).toLowerCase()}},8402(x,M,i){i.d(M,{A:()=>y});const c={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var u,g=new Uint8Array(16);function b(){if(!u&&!(u=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return u(g)}var o=i(5332);const y=function n(a,d,e){if(c.randomUUID&&!d&&!a)return c.randomUUID();var r=(a=a||{}).random||(a.rng||b)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,d){e=e||0;for(var h=0;h<16;++h)d[e+h]=r[h];return d}return(0,o.k)(r)}},7106(x,M,i){function l(c,u){this.v=c,this.k=u}i.d(M,{A:()=>l})},600(x,M,i){i.d(M,{A:()=>c});var l=i(7106);function c(g){return function(){return new u(g.apply(this,arguments))}}function u(g){var b,o;function n(a,d){try{var e=g[a](d),r=e.value,h=r instanceof l.A;Promise.resolve(h?r.v:r).then(function(s){if(h){var f="return"===a?"return":"next";if(!r.k||s.done)return n(f,s);s=g[f](s).value}y(e.done?"return":"normal",s)},function(s){n("throw",s)})}catch(s){y("throw",s)}}function y(a,d){switch(a){case"return":b.resolve({value:d,done:!0});break;case"throw":b.reject(d);break;default:b.resolve({value:d,done:!1})}(b=b.next)?n(b.key,b.arg):o=null}this._invoke=function(a,d){return new Promise(function(e,r){var h={key:a,arg:d,resolve:e,reject:r,next:null};o?o=o.next=h:(b=o=h,n(a,d))})},"function"!=typeof g.return&&(this.return=void 0)}u.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},u.prototype.next=function(g){return this._invoke("next",g)},u.prototype.throw=function(g){return this._invoke("throw",g)},u.prototype.return=function(g){return this._invoke("return",g)}}}]);
|