@eodash/eodash 5.0.0-alpha.2.4 → 5.0.0-alpha.2.5

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 (51) hide show
  1. package/README.md +12 -2
  2. package/core/client/SuspensedDashboard.ce.vue +1 -5
  3. package/core/client/components/DashboardLayout.vue +37 -14
  4. package/core/client/components/ErrorAlert.vue +6 -1
  5. package/core/client/components/Footer.vue +6 -1
  6. package/core/client/components/Header.vue +6 -1
  7. package/core/client/components/IframeWrapper.vue +1 -1
  8. package/core/client/components/MobileLayout.vue +41 -10
  9. package/core/client/composables/DefineEodash.js +2 -1
  10. package/core/client/composables/DefineWidgets.js +14 -8
  11. package/core/client/composables/index.js +18 -119
  12. package/core/client/eodash.js +38 -36
  13. package/core/client/plugins/index.js +3 -0
  14. package/core/client/types.d.ts +40 -83
  15. package/core/client/utils/eodashSTAC.js +29 -25
  16. package/core/client/utils/index.js +15 -11
  17. package/core/client/views/Dashboard.vue +22 -11
  18. package/dist/client/DashboardLayout-BYROtP-7.js +156 -0
  19. package/dist/client/{DynamicWebComponent-C4Hotc4H.js → DynamicWebComponent-BQhxFPM0.js} +6 -6
  20. package/dist/client/EodashDatePicker-CFltnt5d.js +1194 -0
  21. package/dist/client/EodashItemFilter-DIBDAHcc.js +65 -0
  22. package/dist/client/{EodashMap-CGrQjZ1P.js → EodashMap-C6jJ2Lb_.js} +14323 -15656
  23. package/dist/client/Footer-BVIZms1S.js +115 -0
  24. package/dist/client/Header-TsTL1d2R.js +633 -0
  25. package/dist/client/{IframeWrapper-Cg3GMmfW.js → IframeWrapper-XKChM78a.js} +4 -4
  26. package/dist/client/MobileLayout-BlGcMQra.js +957 -0
  27. package/dist/client/{VMain-BHYlmRic.js → VMain-C9XV5Lyg.js} +8 -8
  28. package/dist/client/{WidgetsContainer-dje9QSk0.js → WidgetsContainer-BQXHnZpa.js} +3 -3
  29. package/dist/client/asWebComponent-CbdGxelK.js +20188 -0
  30. package/dist/client/{decoder-HRvnjnEI-BQ2rajuJ.js → decoder-HRvnjnEI-CHAYOWhz.js} +1 -1
  31. package/dist/client/eo-dash.js +1 -1
  32. package/dist/client/forwardRefs-CyCJOFsz.js +192 -0
  33. package/dist/client/http-ZWiLaAeR.js +1337 -0
  34. package/dist/client/{index-CaDDfJYE.js → index-CabQjjQg.js} +43 -74
  35. package/dist/client/{lerc-_E46UbWQ-Beu35ovS.js → lerc-_E46UbWQ-TxBH4OeK.js} +1 -1
  36. package/dist/client/{ssrBoot-Dd7m-btU.js → ssrBoot-DWJ-z4I-.js} +3 -3
  37. package/dist/client/style.css +2 -2
  38. package/dist/client/transition-BlLt41wg.js +34 -0
  39. package/dist/node/cli.js +3 -3
  40. package/package.json +3 -4
  41. package/widgets/EodashDatePicker.vue +89 -36
  42. package/widgets/EodashItemFilter.vue +29 -13
  43. package/dist/client/DashboardLayout-ZaSRMD1M.js +0 -149
  44. package/dist/client/EodashDatePicker-C4kKjxKy.js +0 -1653
  45. package/dist/client/EodashItemFilter-cBHC0YEM.js +0 -51
  46. package/dist/client/Footer-pS636dEP.js +0 -118
  47. package/dist/client/Header-DQuaLdjl.js +0 -605
  48. package/dist/client/MobileLayout-BLXFBWI_.js +0 -987
  49. package/dist/client/asWebComponent-Bvb3xkxI.js +0 -13311
  50. package/dist/client/forwardRefs-Bxeu9Obx.js +0 -142
  51. package/dist/client/index-DlNICb3T.js +0 -34
@@ -45,6 +45,28 @@ export interface WidgetsContainerProps {
45
45
  }
46
46
 
47
47
  // eodash types:
48
+ /**
49
+ * properties of EOxLayoutItem used for setting
50
+ * the position and size of panels
51
+ */
52
+ export interface Layout {
53
+ /**
54
+ * Horizontal start position. Integer between 1 and 12
55
+ */
56
+ x: number
57
+ /**
58
+ * Vertical start position. Integer between 1 and 12
59
+ */
60
+ y: number
61
+ /**
62
+ * Width. Integer between 1 and 12
63
+ */
64
+ w: number
65
+ /**
66
+ * Height. Integer between 1 and 12
67
+ */
68
+ h: number
69
+ }
48
70
  /**
49
71
  * Widget type: `web-component` API
50
72
  * @group Eodash
@@ -55,24 +77,7 @@ export interface WebComponentWidget<T extends ExecutionTime = "compiletime"> {
55
77
  /**
56
78
  * Widget position and size.
57
79
  */
58
- layout: {
59
- /**
60
- * Horizontal start position. Integer between 1 and 12
61
- */
62
- x: number
63
- /**
64
- * Vertical start position. Integer between 1 and 12
65
- */
66
- y: number
67
- /**
68
- * Width. Integer between 1 and 12
69
- */
70
- w: number
71
- /**
72
- * Height. Integer between 1 and 12
73
- */
74
- h: number
75
- },
80
+ layout: Layout,
76
81
  widget: WebComponentProps<T>
77
82
  type: 'web-component'
78
83
  }
@@ -88,24 +93,7 @@ export interface InternalComponentWidget {
88
93
  /**
89
94
  * Widget position and size.
90
95
  */
91
- layout: {
92
- /**
93
- * Horizontal start position. Integer between 1 and 12
94
- */
95
- x: number
96
- /**
97
- * Vertical start position. Integer between 1 and 12
98
- */
99
- y: number
100
- /**
101
- * Width. Integer between 1 and 12
102
- */
103
- w: number
104
- /**
105
- * Height. Integer between 1 and 12
106
- */
107
- h: number
108
- }
96
+ layout: Layout
109
97
  widget: {
110
98
  /**
111
99
  * Internal Vue Components inside the [widgets](https://github.com/eodash/eodash/tree/main/widgets) folder. Referenced
@@ -133,24 +121,7 @@ export interface IFrameWidget {
133
121
  /**
134
122
  * Widget position and size.
135
123
  */
136
- layout: {
137
- /**
138
- * Horizontal start position. Integer between 1 and 12
139
- */
140
- x: number
141
- /**
142
- * Vertical start position. Integer between 1 and 12
143
- */
144
- y: number
145
- /**
146
- * Width. Integer between 1 and 12
147
- */
148
- w: number
149
- /**
150
- * Height. Integer between 1 and 12
151
- */
152
- h: number
153
- }
124
+ layout: Layout
154
125
  widget: {
155
126
  /**
156
127
  * The URL of the page to embed
@@ -170,32 +141,21 @@ export interface FunctionalWidget<T extends ExecutionTime = "compiletime"> {
170
141
  * @param selectedSTAC - Currently selected STAC object
171
142
  */
172
143
  defineWidget: (selectedSTAC: import("stac-ts").StacCatalog |
173
- import("stac-ts").StacCollection | import("stac-ts").StacItem | null) => Omit<StaticWidget<T>, 'layout' | 'slidable'> | undefined | null
174
- layout: {
175
- /**
176
- * Horizontal start position. Integer between 1 and 12
177
- */
178
- x: number
179
- /**
180
- * Vertical start position. Integer between 1 and 12
181
- */
182
- y: number
183
- /**
184
- * Width. Integer between 1 and 12
185
- */
186
- w: number
187
- /**
188
- * Height. Integer between 1 and 12
189
- */
190
- h: number
191
- }
144
+ import("stac-ts").StacCollection | import("stac-ts").StacItem | null) => StaticWidget<T> | undefined | null
192
145
  }
193
146
  /**
147
+ * There are 3 types of Widgets:
148
+ *
194
149
  * @group Eodash
195
150
  */
196
151
  export type StaticWidget<T extends ExecutionTime = "compiletime"> = WebComponentWidget<T> | InternalComponentWidget | IFrameWidget
197
152
  /**
198
- * @group Eodash
153
+ * widgets can be defined in 2 forms:
154
+ * 1. {@link StaticWidget} : This is defined as an object once, and is considered the default form.
155
+ * 2. {@link FunctionalWidget} : a special form which contains the {@link FunctionalWidget.defineWidget `defineWidget`} function that
156
+ * runs when {@link EodashStore.stac `loadSelectedSTAC`} function
157
+ * is triggered, and returns a value of a Static Widget or null or undefined.
158
+ * @group Eodash
199
159
  */
200
160
  export type Widget<T extends ExecutionTime = "compiletime"> = StaticWidget<T> | FunctionalWidget<T>
201
161
 
@@ -221,8 +181,7 @@ export interface Template<T extends ExecutionTime = "compiletime"> {
221
181
  loading?: BackgroundWidget<T>
222
182
  /**
223
183
  * Widget rendered as the dashboard background.
224
- * Has the same specifications of `Widget` without the `title` and `layout` properties
225
- * @see {@link Widget}
184
+ * Has the same specifications of {@link Widget} without the `title` and `layout` properties
226
185
  */
227
186
  background?: BackgroundWidget<T>
228
187
  /**
@@ -235,10 +194,9 @@ export interface Template<T extends ExecutionTime = "compiletime"> {
235
194
  export type StacEndpoint = `${'https://' | 'http://'}${string}/catalog.json`
236
195
 
237
196
  /**
238
- * @ignore
239
197
  * @group Eodash
240
198
  */
241
- export type ExecutionTime = "runtime" | "compiletime";
199
+ type ExecutionTime = "runtime" | "compiletime";
242
200
 
243
201
  /**
244
202
  * Eodash instance API
@@ -262,16 +220,15 @@ export interface Eodash<T extends ExecutionTime = "compiletime"> {
262
220
  /** custom error message to alert the users if something crashes */
263
221
  errorMessage?: string
264
222
  /**
265
- * Automatically fetches the specified font family from google fonts. if the [link](#font-link) property is specified
266
- * the font family will be fetched from the provided source instead.
223
+ * fetches the specified font family from the specified `link` property.
267
224
  */
268
225
  font?: {
269
226
  /**
270
227
  * Link to stylesheet that defines font-face. Could be either a relative or absolute URL.
271
228
  */
272
- link?: string;
229
+ link: string;
273
230
  /**
274
- * Font family. Use FVD notation to include families. see https://github.com/typekit/fvd
231
+ * Font family name.
275
232
  */
276
233
  family: string
277
234
  }
@@ -326,7 +283,7 @@ export interface EodashStore {
326
283
  * Pinia store definition used to navigate the root STAC catalog.
327
284
  */
328
285
  stac: {
329
- useSTAcStore: typeof import("./store/stac").useSTAcStore
286
+ useSTAcStore: typeof import("./store/stac.js").useSTAcStore
330
287
  }
331
288
  }
332
289
  ///////
@@ -1,13 +1,15 @@
1
1
  import { Collection, Item } from 'stac-js';
2
2
  import { toAbsolute } from 'stac-js/src/http.js';
3
3
  import { generateFeatures } from './helpers'
4
+ import axios from 'axios';
4
5
 
5
6
  export class EodashCollection {
6
- /** @type {string | undefined} */
7
- #collectionUrl = undefined;
8
- #collectionStac = undefined;
9
- /** @type {*} */
10
- selectedItem = null;
7
+ /** @type {string} */
8
+ #collectionUrl = '';
9
+ /** @type {import("stac-ts").StacCollection | undefined} */
10
+ #collectionStac;
11
+ /** @type {import("stac-ts").StacLink | undefined } */
12
+ selectedItem;
11
13
 
12
14
  /**
13
15
  * @param {string} collectionUrl
@@ -21,8 +23,12 @@ export class EodashCollection {
21
23
  * @async
22
24
  */
23
25
  createLayersJson = async (item = null) => {
24
- let stacItem, stac;
26
+ /** @type {import("stac-ts").StacLink | undefined} */
27
+ let stacItem,
28
+ /** @type {import("stac-ts").StacCollection | undefined} */
29
+ stac;
25
30
  // TODO get auxiliary layers from collection
31
+ /** @type {object[]} */
26
32
  let layersJson = [
27
33
  {
28
34
  type: 'Tile',
@@ -36,13 +42,12 @@ export class EodashCollection {
36
42
  ];
37
43
  // Load collectionstac if not yet initialized
38
44
  if (!this.#collectionStac) {
39
- //@ts-expect-error
40
- const response = await fetch(this.#collectionUrl);
41
- stac = await response.json();
45
+ const response = await axios.get(this.#collectionUrl);
46
+ stac = await response.data
42
47
  this.#collectionStac = new Collection(stac);
43
48
  }
44
49
 
45
- if(stac && stac.endpointtype === "GeoDB") {
50
+ if (stac && stac.endpointtype === "GeoDB") {
46
51
  // Special handling of point based data
47
52
  const allFeatures = generateFeatures(stac.links);
48
53
  layersJson.unshift({
@@ -68,11 +73,9 @@ export class EodashCollection {
68
73
  } else {
69
74
  if (item instanceof Date) {
70
75
  // if collectionStac not yet initialized we do it here
71
- stacItem = this.getItems().sort((a, b) => {
72
- //@ts-expect-error
73
- const distanceA = Math.abs(new Date(a.datetime) - item);
74
- //@ts-expect-error
75
- const distanceB = Math.abs(new Date(b.datetime) - item);
76
+ stacItem = this.getItems()?.sort((a, b) => {
77
+ const distanceA = Math.abs((new Date(/** @type {number} */(a.datetime))).getTime() - item.getTime());
78
+ const distanceB = Math.abs(new Date(/** @type {number} */(b.datetime)).getTime() - item.getTime());
76
79
  return distanceA - distanceB;
77
80
  })[0];
78
81
  this.selectedItem = stacItem;
@@ -85,19 +88,24 @@ export class EodashCollection {
85
88
  : this.#collectionUrl
86
89
  );
87
90
  stac = await response.json();
88
-
91
+
89
92
  if (!stacItem) {
90
93
  // no specific item was requested; render last item
91
94
  this.#collectionStac = new Collection(stac);
92
95
  const items = this.getItems();
93
- this.selectedItem = items[items.length - 1];
94
- layersJson = await this.createLayersJson(this.selectedItem);
96
+ this.selectedItem = items?.[items.length - 1];
97
+ if (this.selectedItem) {
98
+ layersJson = await this.createLayersJson(this.selectedItem);
99
+ } else {
100
+ if (import.meta.env.DEV) {
101
+ console.warn('[eodash] the selected collection does not include any items')
102
+ }
103
+ }
95
104
  return layersJson;
96
105
  } else {
97
106
  // specific item was requested
98
107
  const item = new Item(stac);
99
108
  this.selectedItem = item;
100
- //@ts-expect-error
101
109
  layersJson.unshift(this.buildJson(item));
102
110
  return layersJson;
103
111
  }
@@ -141,9 +149,7 @@ export class EodashCollection {
141
149
 
142
150
  getItems() {
143
151
  return (
144
- //@ts-expect-error
145
- // eslint-disable-next-line
146
- /** @type {import('stac-ts').StacLink[]}*/(this.#collectionStac?.links)
152
+ this.#collectionStac?.links
147
153
  .filter((i) => i.rel === 'item')
148
154
  // sort by `datetime`, where oldest is first in array
149
155
  .sort((a, b) => ( /** @type {number} */(a.datetime) < /** @type {number} */(b.datetime) ? -1 : 1))
@@ -152,9 +158,7 @@ export class EodashCollection {
152
158
 
153
159
  getDates() {
154
160
  return (
155
- //@ts-expect-error
156
- // eslint-disable-next-line
157
- /** @type {import('stac-ts').StacLink[]}*/ (this.#collectionStac?.links)
161
+ this.#collectionStac?.links
158
162
  .filter((i) => i.rel === 'item')
159
163
  // sort by `datetime`, where oldest is first in array
160
164
  .sort((a, b) => ( /** @type {number} */(a.datetime) < /** @type {number} */(b.datetime) ? -1 : 1))
@@ -1,26 +1,30 @@
1
1
  /**
2
2
  * loads font in the app using `webfontloader`
3
- * @param {string} [family="Roboto"]
3
+ * @param {string} [family]
4
4
  * @param {string} [link]
5
+ * @param {boolean} [isWebComponent]
5
6
  * @returns {Promise<string>} - font family name
6
- * @see {@link "https://github.com/typekit/webfontloader "}
7
+ * @see {@link "https://github.com/typekit/webfontloader"}
7
8
  */
8
- export const loadFont = async (family = "Roboto", link) => {
9
- const WebFontLoader = (await import('webfontloader')).default;
10
- if (link) {
9
+ export const loadFont = async (family = '', link = '', isWebComponent = false) => {
10
+ if (family && link) {
11
+ const WebFontLoader = (await import('webfontloader')).default;
11
12
  WebFontLoader.load({
13
+ classes: false,
12
14
  custom: {
13
15
  // Use FVD notation to include families https://github.com/typekit/fvd
14
16
  families: [family],
15
17
  // Path to stylesheet that defines font-face
16
18
  urls: [link],
17
19
  },
18
- });
19
- }
20
- else {
21
- WebFontLoader.load({
22
- google: {
23
- families: [family]
20
+ fontactive(familyName, _fvd) {
21
+ const stylesheet = new CSSStyleSheet()
22
+ const styles = isWebComponent ? `eo-dash {font-family: ${familyName};}` : `* {font-family: ${familyName};}`
23
+ stylesheet.replaceSync(styles)
24
+ document.adoptedStyleSheets.push(stylesheet)
25
+ },
26
+ fontinactive(familyName, _fvd) {
27
+ throw new Error(`error loading font: ${familyName}`)
24
28
  }
25
29
  });
26
30
  }
@@ -2,10 +2,9 @@
2
2
  <HeaderComponent ref="headerRef" v-if="!eodash.brand.noLayout" />
3
3
  <ErrorAlert v-model="error" />
4
4
  <Suspense>
5
- <TemplateComponent @vue:mounted="onTemplateMount?.(hiddenElements)"
6
- :style="`height: ${eodash.brand.noLayout ? (onTemplateMount ? '100%' : '90dvh') : 'calc(100dvh - ' + mainRect['top'] + mainRect['bottom'] + 'px)'}`" />
5
+ <TemplateComponent @vue:mounted="onTemplateMount?.(hiddenElements)" class="template" />
7
6
  <template #fallback>
8
- <div style="height: 100dvh; display: flex; align-items: center; justify-content: center;">
7
+ <div class="loading-container">
9
8
  <Loading />
10
9
  </div>
11
10
  </template>
@@ -38,7 +37,7 @@ useURLSearchParametersSync();
38
37
  const theme = useUpdateTheme('dashboardTheme', eodash.brand?.theme)
39
38
  theme.global.name.value = 'dashboardTheme'
40
39
 
41
- await loadFont(eodash.brand?.font?.family, eodash.brand?.font?.link)
40
+ await loadFont(eodash.brand?.font?.family, eodash.brand?.font?.link, !!props.onTemplateMount)
42
41
 
43
42
  const { loadSTAC } = useSTAcStore()
44
43
  await loadSTAC()
@@ -51,10 +50,9 @@ const TemplateComponent = smAndDown.value ?
51
50
  const HeaderComponent = defineAsyncComponent(() => import(`@/components/Header.vue`))
52
51
  const FooterComponent = defineAsyncComponent(() => import(`@/components/Footer.vue`))
53
52
  const { mainRect } = useLayout()
53
+ const templateHeight = eodash.brand.noLayout ? (props.onTemplateMount ? '100%' : '90dvh') :
54
+ `calc(100dvh - ${mainRect.value['top'] + mainRect.value['bottom']}px)`
54
55
 
55
- /** @type {import("vue").Ref<InstanceType<typeof
56
- * import("@/components/Header.vue").default >|null>}
57
- **/
58
56
  const headerRef = ref(null);
59
57
  /** @type {import("vue").Ref<InstanceType<typeof
60
58
  * import("@/components/Footer.vue").default >|null>}
@@ -64,9 +62,6 @@ const footerRef = ref(null);
64
62
  const hiddenElements = [headerRef, footerRef]
65
63
 
66
64
  onMounted(() => {
67
- const htmlTag = /** @type {HTMLElement} */(document.querySelector('html'))
68
- htmlTag.style.overflow = 'hidden';
69
-
70
65
  if (props.onTemplateMount && !eodash.brand.noLayout) {
71
66
  hiddenElements.forEach(element => {
72
67
  /** @type {HTMLElement} */
@@ -79,10 +74,26 @@ onMounted(() => {
79
74
  const error = ref('')
80
75
  onErrorCaptured((e, comp, info) => {
81
76
  error.value = `
82
- error: ${e}.
77
+ ${e}.
83
78
  component: ${comp?.$.type.name}.
84
79
  info: ${info}.
85
80
  `
86
81
  })
87
82
 
88
83
  </script>
84
+ <style>
85
+ html {
86
+ overflow: hidden !important;
87
+ }
88
+
89
+ .template {
90
+ height: v-bind("templateHeight")
91
+ }
92
+
93
+ .loading-container {
94
+ height: 100dvh;
95
+ display: flex;
96
+ align-items: center;
97
+ justify-content: center;
98
+ }
99
+ </style>
@@ -0,0 +1,156 @@
1
+ import { _ as b, x as m, W as x, X as d, $ as t, a0 as r, a1 as l, a9 as _, a3 as n, a6 as u, a2 as p, a4 as c, d as h, a5 as g, F as f, a7 as v, ab as w } from "./asWebComponent-CbdGxelK.js";
2
+ import { V as k } from "./VMain-C9XV5Lyg.js";
3
+ class A extends HTMLElement {
4
+ static get observedAttributes() {
5
+ return ["gap"];
6
+ }
7
+ constructor() {
8
+ super(), this.attachShadow({ mode: "open" }), this.render();
9
+ }
10
+ render() {
11
+ this.shadowRoot.innerHTML = `
12
+ <style>
13
+ :host {
14
+ display: grid;
15
+ padding: ${this.getAttribute("gap") || 0}px;
16
+ height: 100%;
17
+ box-sizing: border-box;
18
+ gap: ${this.getAttribute("gap") || "0"}px;
19
+ grid-template-columns: repeat(12, 1fr);
20
+ grid-template-rows: repeat(12, 1fr);
21
+ }
22
+ </style>
23
+ <slot></slot>
24
+ `;
25
+ }
26
+ attributeChangedCallback(a, s, o) {
27
+ s !== o && (this[a] = o), this.render();
28
+ }
29
+ }
30
+ class C extends HTMLElement {
31
+ static get observedAttributes() {
32
+ return ["x", "y", "w", "h"];
33
+ }
34
+ constructor() {
35
+ super(), this.attachShadow({ mode: "open" }), this.render();
36
+ }
37
+ render() {
38
+ this.shadowRoot.innerHTML = `
39
+ <style>
40
+ :host {
41
+ background: lightgrey;
42
+ border: 1px solid darkgrey;
43
+ border-radius: 4px;
44
+ padding: 4px 8px;
45
+ overflow: hidden;
46
+
47
+
48
+ grid-column: ${parseInt(this.getAttribute("x")) + 1} / span ${this.getAttribute("w")};
49
+ grid-row: ${parseInt(this.getAttribute("y")) + 1} / span ${this.getAttribute("h")};
50
+ }
51
+ </style>
52
+ <slot></slot>
53
+ `;
54
+ }
55
+ attributeChangedCallback(a, s, o) {
56
+ s !== o && (this[a] = o), this.render();
57
+ }
58
+ }
59
+ customElements.define("eox-layout", A);
60
+ customElements.define("eox-layout-item", C);
61
+ const L = ["gap"], $ = {
62
+ key: 0,
63
+ class: "bg-panel",
64
+ x: "0",
65
+ y: "0",
66
+ h: "12",
67
+ w: "12"
68
+ }, E = ["h", "w", "x", "y"], M = {
69
+ __name: "DashboardLayout",
70
+ setup(i) {
71
+ const a = (
72
+ /** @type {import("@/types").Eodash} */
73
+ m(x)
74
+ ), [s] = d([a.template?.background]), o = d(a.template?.widgets);
75
+ return (T, B) => (t(), r(k, null, {
76
+ default: l(() => [
77
+ _("eox-layout", {
78
+ gap: n(a).template.gap ?? 2
79
+ }, [
80
+ n(s).component ? (t(), u("eox-layout-item", $, [
81
+ (t(), r(p, { suspensible: "" }, {
82
+ default: l(() => [
83
+ (t(), r(
84
+ c(n(s).component),
85
+ h({ id: "bg-widget" }, n(s).props),
86
+ null,
87
+ 16
88
+ /* FULL_PROPS */
89
+ ))
90
+ ]),
91
+ _: 1
92
+ /* STABLE */
93
+ }))
94
+ ])) : g("v-if", !0),
95
+ (t(!0), u(
96
+ f,
97
+ null,
98
+ v(n(o), (e, y) => (t(), r(
99
+ w,
100
+ {
101
+ key: y,
102
+ name: "fade"
103
+ },
104
+ {
105
+ default: l(() => [
106
+ e.value.component ? (t(), u("eox-layout-item", {
107
+ key: e.value.id,
108
+ class: "panel",
109
+ h: e.value.layout.h,
110
+ w: e.value.layout.w,
111
+ x: e.value.layout.x,
112
+ y: e.value.layout.y
113
+ }, [
114
+ (t(), r(
115
+ p,
116
+ { suspensible: "" },
117
+ {
118
+ default: l(() => [
119
+ (t(), r(
120
+ c(e.value.component),
121
+ h({
122
+ key: e.value.id,
123
+ ref_for: !0
124
+ }, e.value.props),
125
+ null,
126
+ 16
127
+ /* FULL_PROPS */
128
+ ))
129
+ ]),
130
+ _: 2
131
+ /* DYNAMIC */
132
+ },
133
+ 1024
134
+ /* DYNAMIC_SLOTS */
135
+ ))
136
+ ], 8, E)) : g("v-if", !0)
137
+ ]),
138
+ _: 2
139
+ /* DYNAMIC */
140
+ },
141
+ 1024
142
+ /* DYNAMIC_SLOTS */
143
+ ))),
144
+ 128
145
+ /* KEYED_FRAGMENT */
146
+ ))
147
+ ], 8, L)
148
+ ]),
149
+ _: 1
150
+ /* STABLE */
151
+ }));
152
+ }
153
+ }, V = /* @__PURE__ */ b(M, [["__scopeId", "data-v-d836e339"]]);
154
+ export {
155
+ V as default
156
+ };
@@ -1,5 +1,5 @@
1
- import { aY as i, aZ as m, r as p, Z as d, a_ as f, _ as c, a5 as g, $ as _, d as y, a3 as k } from "./asWebComponent-Bvb3xkxI.js";
2
- const h = { class: "d-flex flex-column fill-height overflow-auto" }, N = {
1
+ import { b6 as i, aZ as m, r as p, Z as d, b7 as f, $ as c, a6 as g, a0 as y, d as _, a4 as k } from "./asWebComponent-CbdGxelK.js";
2
+ const h = { class: "d-flex flex-column fill-height overflow-auto" }, C = {
3
3
  __name: "DynamicWebComponent",
4
4
  props: {
5
5
  link: {
@@ -38,10 +38,10 @@ const h = { class: "d-flex flex-column fill-height overflow-auto" }, N = {
38
38
  e.onMounted?.(r.value, s);
39
39
  }), f(() => {
40
40
  e.onUnmounted?.(r.value, s);
41
- }), (n, x) => (c(), g("span", h, [
42
- (c(), _(
41
+ }), (n, w) => (c(), g("span", h, [
42
+ (c(), y(
43
43
  k(o.tagName),
44
- y(o.properties, {
44
+ _(o.properties, {
45
45
  ref_key: "elementRef",
46
46
  ref: r
47
47
  }),
@@ -53,5 +53,5 @@ const h = { class: "d-flex flex-column fill-height overflow-auto" }, N = {
53
53
  }
54
54
  };
55
55
  export {
56
- N as default
56
+ C as default
57
57
  };