@eodash/eodash 5.0.0-rc.2.1 → 5.0.0-rc.2.3

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 (59) hide show
  1. package/core/client/components/DashboardLayout.vue +3 -2
  2. package/core/client/components/DynamicWebComponent.vue +10 -3
  3. package/core/client/components/EodashOverlay.vue +56 -0
  4. package/core/client/components/Footer.vue +1 -15
  5. package/core/client/components/Header.vue +1 -1
  6. package/core/client/components/MobileLayout.vue +1 -0
  7. package/core/client/composables/DefineTemplate.js +13 -2
  8. package/core/client/composables/DefineWidgets.js +9 -4
  9. package/core/client/composables/EodashMap.js +2 -1
  10. package/core/client/eodash.js +18 -11
  11. package/core/client/eodashSTAC/EodashCollection.js +70 -35
  12. package/core/client/eodashSTAC/createLayers.js +21 -2
  13. package/core/client/eodashSTAC/helpers.js +7 -5
  14. package/core/client/types.ts +18 -13
  15. package/core/client/utils/index.js +112 -32
  16. package/core/client/utils/states.js +43 -0
  17. package/core/client/views/Dashboard.vue +26 -6
  18. package/dist/client/{DashboardLayout-BjUs7mYs.js → DashboardLayout-Reny_s87.js} +6 -6
  19. package/dist/client/{DynamicWebComponent-rIFx5c0f.js → DynamicWebComponent-DQPKIscC.js} +11 -4
  20. package/dist/client/{EodashDatePicker-brJlj1aQ.js → EodashDatePicker-E5GjnQQ2.js} +3 -3
  21. package/dist/client/{EodashItemFilter-C2i4lnM1.js → EodashItemFilter-DN77Uqgg.js} +1 -1
  22. package/dist/client/{EodashLayerControl-DNQzPQQ4.js → EodashLayerControl-DduVhg2O.js} +10 -3
  23. package/dist/client/{EodashLayoutSwitcher-gLe7G8Qn.js → EodashLayoutSwitcher-CeNnYuaC.js} +2 -2
  24. package/dist/client/{EodashMap-LOzTlvrM.js → EodashMap-C3bgcNJk.js} +10 -4
  25. package/dist/client/{EodashMapBtns-UXOupU5J.js → EodashMapBtns-B73UApEn.js} +4 -4
  26. package/dist/client/{EodashProcess-BlkqUdzj.js → EodashProcess-IQPnj17j.js} +14 -14
  27. package/dist/client/{EodashStacInfo-Df3LXKAw.js → EodashStacInfo-CeZqI75-.js} +1 -1
  28. package/dist/client/{EodashTools-BrqH4IDP.js → EodashTools-CAE604ZJ.js} +4 -4
  29. package/dist/client/{ExportState-DVosrSNY.js → ExportState-DXw8Dwvk.js} +4 -4
  30. package/dist/client/Footer-Bl9tQTyj.js +119 -0
  31. package/dist/client/{Header-DYMnh4of.js → Header-qH_kBs-u.js} +5 -5
  32. package/dist/client/{MobileLayout-Df4Z1bMl.js → MobileLayout-Du5n5XyY.js} +11 -11
  33. package/dist/client/{PopUp-BFcSuX3b.js → PopUp-B12NWJHU.js} +3 -3
  34. package/dist/client/{VImg-BO2Ysvsu.js → VImg-CjsuV4n9.js} +2 -2
  35. package/dist/client/{VMain-fx1gaM7Y.js → VMain-B11EjLm6.js} +1 -1
  36. package/dist/client/{VOverlay-CiQn3F6n.js → VOverlay-CLR2s8AQ.js} +3 -3
  37. package/dist/client/{VTooltip-DKOCofTl.js → VTooltip-DqyE5_aG.js} +3 -3
  38. package/dist/client/{WidgetsContainer-DL0bdnjh.js → WidgetsContainer-YI9ZycgC.js} +1 -1
  39. package/dist/client/{asWebComponent-N7ChSAQG.js → asWebComponent-DBkwthjq.js} +382 -115
  40. package/dist/client/eo-dash.css +2 -2
  41. package/dist/client/eo-dash.js +1 -1
  42. package/dist/client/{forwardRefs-C2UOEnvr.js → forwardRefs-BTYtR3pq.js} +1 -1
  43. package/dist/client/{index-BXi80Gr9.js → index-BhfdO0rU.js} +1 -1
  44. package/dist/client/{transition-w_2EtUxa.js → transition-B79onGGb.js} +1 -1
  45. package/dist/types/core/client/components/EodashOverlay.vue.d.ts +2 -0
  46. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +36 -7
  47. package/dist/types/core/client/eodashSTAC/createLayers.d.ts +20 -0
  48. package/dist/types/core/client/eodashSTAC/helpers.d.ts +9 -6
  49. package/dist/types/core/client/types.d.ts +15 -11
  50. package/dist/types/core/client/utils/index.d.ts +1 -1
  51. package/dist/types/core/client/utils/states.d.ts +43 -0
  52. package/dist/types/widgets/EodashStacInfo.vue.d.ts +2 -2
  53. package/dist/types/widgets/PopUp.vue.d.ts +2 -2
  54. package/package.json +2 -1
  55. package/widgets/EodashDatePicker.vue +18 -0
  56. package/widgets/EodashLayerControl.vue +7 -0
  57. package/widgets/EodashMap.vue +7 -1
  58. package/widgets/EodashProcess.vue +13 -13
  59. package/dist/client/Footer-tjsscQ7O.js +0 -141
@@ -2,8 +2,9 @@ import { ref, reactive, watch, onScopeDispose, effectScope, Fragment, computed,
2
2
  import { defineStore, storeToRefs, createPinia } from 'pinia';
3
3
  import { setupCache } from 'axios-cache-interceptor';
4
4
  import log from 'loglevel';
5
- import { mdiViewDashboardVariant, mdiViewDashboard, mdiAlertCircle, mdiClose, mdiChevronRight, mdiChevronLeft, mdiMenuDown, mdiPlus } from '@mdi/js';
5
+ import { mdiViewDashboardVariant, mdiViewDashboard, mdiBarley, mdiWater, mdiImageFilterHdr, mdiHospitalBoxOutline, mdiSetCenter, mdiWeatherWindy, mdiCurrencyEur, mdiAlertCircle, mdiClose, mdiChevronRight, mdiChevronLeft, mdiMenuDown, mdiPlus } from '@mdi/js';
6
6
  import { useEventBus, createSharedComposable } from '@vueuse/core';
7
+ import WebFontLoader from 'webfontloader';
7
8
  import { toAbsolute } from 'stac-js/src/http.js';
8
9
  import { Collection, Item } from 'stac-js';
9
10
  import VCalendar from 'v-calendar';
@@ -3773,16 +3774,27 @@ const states = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
3773
3774
  const eodash = reactive({
3774
3775
  id: "demo",
3775
3776
  stacEndpoint:
3776
- // "https://eurodatacube.github.io/eodash-catalog/RACE/catalog.json",
3777
+ "https://esa-eodash.github.io/RACE-catalog/RACE/catalog.json",
3777
3778
  // "https://gtif-cerulean.github.io/catalog/cerulean/catalog.json",
3778
3779
  // "https://eodashcatalog.eox.at/samplecatalog/samples/catalog.json",
3779
3780
  // "https://eodashcatalog.eox.at/test-style/trilateral/catalog.json",
3780
3781
  // "https://gtif-cerulean.github.io/catalog/cerulean/catalog.json",
3781
3782
  // "https://gtif-cerulean.github.io/deside-catalog/deside/catalog.json",
3782
- "https://gtif-cerulean.github.io/cerulean-catalog/cerulean/catalog.json",
3783
+ // "https://gtif-cerulean.github.io/cerulean-catalog/cerulean/catalog.json",
3784
+ // "https://gtif-austria.github.io/public-catalog/GTIF-Austria/catalog.json",
3783
3785
  brand: {
3784
3786
  noLayout: true,
3785
3787
  name: "Demo",
3788
+ font: {
3789
+ headers: {
3790
+ family: "Open Sans",
3791
+ link: "https://eox.at/fonts/opensans/opensans.css",
3792
+ },
3793
+ body: {
3794
+ family: "Sintony",
3795
+ link: "https://eox.at/fonts/sintony/sintony.css",
3796
+ },
3797
+ },
3786
3798
  theme: {
3787
3799
  colors: {
3788
3800
  primary: "#002742",
@@ -3827,7 +3839,7 @@ const eodash = reactive({
3827
3839
  },
3828
3840
  },
3829
3841
  background: {
3830
- id: Symbol(),
3842
+ id: "background-map",
3831
3843
  type: "internal",
3832
3844
  widget: {
3833
3845
  name: "EodashMap",
@@ -3949,7 +3961,7 @@ const eodash = reactive({
3949
3961
  },
3950
3962
  },
3951
3963
  background: {
3952
- id: Symbol(),
3964
+ id: "background-map",
3953
3965
  type: "internal",
3954
3966
  widget: {
3955
3967
  name: "EodashMap",
@@ -4000,10 +4012,6 @@ const eodash = reactive({
4000
4012
  type: "internal",
4001
4013
  widget: {
4002
4014
  name: "EodashStacInfo",
4003
- properties: {
4004
- showIndicatorsBtn: false,
4005
- showLayoutSwitcher: false,
4006
- },
4007
4015
  },
4008
4016
  }
4009
4017
  : null;
@@ -4015,7 +4023,7 @@ const eodash = reactive({
4015
4023
  ? {
4016
4024
  id: "Datepicker",
4017
4025
  type: "internal",
4018
- layout: { x: 5, y: 8, w: 2, h: 4 },
4026
+ layout: { x: 5, y: 11, w: 2, h: 1 },
4019
4027
  title: "Date",
4020
4028
  widget: {
4021
4029
  name: "EodashDatePicker",
@@ -4051,7 +4059,7 @@ const eodash = reactive({
4051
4059
  id: "Processes",
4052
4060
  type: "internal",
4053
4061
  title: "Processes",
4054
- layout: { x: 9, y: 7, w: 3, h: 5 },
4062
+ layout: { x: 9, y: 6, w: 3, h: 5 },
4055
4063
  widget: {
4056
4064
  name: "EodashProcess",
4057
4065
  },
@@ -4078,7 +4086,7 @@ const eodash = reactive({
4078
4086
  },
4079
4087
  },
4080
4088
  background: {
4081
- id: Symbol(),
4089
+ id: "background-map",
4082
4090
  type: "internal",
4083
4091
  widget: {
4084
4092
  name: "EodashMap",
@@ -7530,8 +7538,8 @@ function createVuetify() {
7530
7538
  goTo
7531
7539
  };
7532
7540
  }
7533
- const version = "3.7.7";
7534
- createVuetify.version = version;
7541
+ const version$1 = "3.7.7";
7542
+ createVuetify.version = version$1;
7535
7543
  function inject(key) {
7536
7544
  const vm = this.$;
7537
7545
  const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides;
@@ -7587,44 +7595,156 @@ const collectionsPalette = reactive([
7587
7595
  "#D55E00",
7588
7596
  ]);
7589
7597
 
7598
+ /**
7599
+ * Object containing data themes and their associated brand properties (icon and color).
7600
+ */
7601
+ const dataThemesBrands = {
7602
+ agriculture: {
7603
+ icon: mdiBarley,
7604
+ color: "#F2AF25",
7605
+ },
7606
+ water: {
7607
+ icon: mdiWater,
7608
+ color: "#73A6C7",
7609
+ },
7610
+ land: {
7611
+ icon: mdiImageFilterHdr,
7612
+ color: "#019E73",
7613
+ },
7614
+ health: {
7615
+ icon: mdiHospitalBoxOutline,
7616
+ color: "#497FA9",
7617
+ },
7618
+ combined: {
7619
+ icon: mdiSetCenter,
7620
+ color: "#56B4E9",
7621
+ },
7622
+ air: {
7623
+ icon: mdiWeatherWindy,
7624
+ color: "#475faf",
7625
+ },
7626
+ economy: {
7627
+ icon: mdiCurrencyEur,
7628
+ color: "#8E81AF",
7629
+ },
7630
+ };
7631
+
7590
7632
  /**
7591
7633
  * Loads font in the app using `webfontloader`
7592
7634
  *
7593
- * @param {string} [family]
7594
- * @param {string} [link]
7595
- * @param {boolean} [isWebComponent]
7596
- * @returns {Promise<string>} - Font family name
7635
+ * @param {import("@/types").Eodash["brand"]["font"]} fontConfig
7636
+ * @param {boolean} isWebComponent
7637
+ * @returns {Promise<string[]>} - Font family name
7597
7638
  * @see {@link "https://github.com/typekit/webfontloader"}
7598
7639
  */
7599
- const loadFont = async (
7600
- family = "",
7601
- link = "",
7602
- isWebComponent = false,
7603
- ) => {
7604
- if (family && link) {
7605
- const WebFontLoader = (await import('webfontloader')).default;
7606
- WebFontLoader.load({
7607
- classes: false,
7608
- custom: {
7609
- // Use FVD notation to include families https://github.com/typekit/fvd
7610
- families: [family],
7611
- // Path to stylesheet that defines font-face
7612
- urls: [link],
7613
- },
7614
- fontactive(familyName, _fvd) {
7615
- const stylesheet = new CSSStyleSheet();
7616
- const styles = isWebComponent
7617
- ? `eo-dash {font-family: ${familyName};}`
7618
- : `* {font-family: ${familyName};}`;
7619
- stylesheet.replaceSync(styles);
7620
- document.adoptedStyleSheets.push(stylesheet);
7621
- },
7622
- fontinactive(familyName, _fvd) {
7623
- throw new Error(`error loading font: ${familyName}`);
7624
- },
7625
- });
7640
+ const loadFont = async (fontConfig, isWebComponent) => {
7641
+ if (!fontConfig) {
7642
+ return [];
7643
+ }
7644
+
7645
+ let headerFamily = "",
7646
+ bodyFamily = "",
7647
+ headerLink = "",
7648
+ bodyLink = "";
7649
+ if ("headers" in fontConfig) {
7650
+ headerFamily = fontConfig?.headers?.family;
7651
+ headerLink = fontConfig.headers.link ?? "";
7652
+ bodyFamily = fontConfig?.body?.family;
7653
+ bodyLink = fontConfig.body.link ?? "";
7654
+ } else {
7655
+ headerFamily = fontConfig.family;
7656
+ headerLink = fontConfig.link ?? "";
7657
+ bodyFamily = fontConfig?.family;
7658
+ bodyLink = fontConfig.link ?? "";
7659
+ }
7660
+ const families =
7661
+ headerFamily === bodyFamily ? [headerFamily] : [headerFamily, bodyFamily];
7662
+ const urls = [];
7663
+ if (bodyLink && headerLink) {
7664
+ if (bodyLink !== headerLink) {
7665
+ urls.push(bodyLink);
7666
+ urls.push(headerLink);
7667
+ } else {
7668
+ urls.push(bodyLink);
7669
+ }
7626
7670
  }
7627
- return family;
7671
+
7672
+ WebFontLoader.load({
7673
+ classes: false,
7674
+ custom: {
7675
+ // Use FVD notation to include families https://github.com/typekit/fvd
7676
+ families,
7677
+ // Path to stylesheet that defines font-face
7678
+ urls,
7679
+ },
7680
+ fontactive(familyName, _fvd) {
7681
+ const stylesheet = new CSSStyleSheet();
7682
+
7683
+ const bodyRule = `
7684
+ ${isWebComponent ? "eo-dash" : `:root`} {
7685
+ font-family: ${bodyFamily};
7686
+ --vc-font-family: ${bodyFamily};
7687
+ }
7688
+ eox-layercontrol,
7689
+ eox-map,
7690
+ eox-jsonform,
7691
+ eox-timecontrol,
7692
+ eox-itemfilter,
7693
+ eox-chart,
7694
+ eox-stacinfo{
7695
+ --eox-body-font-family: ${bodyFamily};
7696
+ font-family: ${bodyFamily}
7697
+ ;
7698
+ }
7699
+ *[class*="text-body"]{
7700
+ font-family: ${bodyFamily}
7701
+ }
7702
+ `;
7703
+
7704
+ const headersRule = `
7705
+ ${
7706
+ isWebComponent
7707
+ ? `
7708
+ eo-dash h1,
7709
+ eo-dash h2,
7710
+ eo-dash h3,
7711
+ eo-dash h4,
7712
+ eo-dash h5,
7713
+ eo-dash *[class*="header"]
7714
+ `
7715
+ : `
7716
+ h1,
7717
+ h2,
7718
+ h3,
7719
+ h4,
7720
+ h5,
7721
+ *[class*="header"]`
7722
+ } {
7723
+ font-family: ${headerFamily} !important;
7724
+ }
7725
+ eox-layercontrol,
7726
+ eox-map,
7727
+ eox-jsonform,
7728
+ eox-timecontrol,
7729
+ eox-itemfilter,
7730
+ eox-chart,
7731
+ eox-stacinfo {
7732
+ --eox-header-font-family: ${headerFamily};
7733
+ `;
7734
+ const isOne = headerFamily && headerFamily === bodyFamily;
7735
+ const styles = isOne
7736
+ ? bodyRule + "\n" + headersRule
7737
+ : familyName == bodyFamily
7738
+ ? bodyRule
7739
+ : headersRule;
7740
+ stylesheet.replaceSync(styles);
7741
+ document?.adoptedStyleSheets?.push(stylesheet);
7742
+ },
7743
+ fontinactive(familyName, _fvd) {
7744
+ throw new Error(`error loading font: ${familyName}`);
7745
+ },
7746
+ });
7747
+ return families;
7628
7748
  };
7629
7749
 
7630
7750
  /**
@@ -8051,8 +8171,11 @@ function getStyleVariablesState(collectionId, variables) {
8051
8171
  return matchingKeys ? oldVariablesState : variables;
8052
8172
  }
8053
8173
 
8054
- /** @param {import("stac-ts").StacLink[]} [links] */
8055
- function generateFeatures(links) {
8174
+ /**
8175
+ * @param {import("stac-ts").StacLink[]} [links]
8176
+ * @param {Record<string,any>} [extraProperties]
8177
+ **/
8178
+ function generateFeatures(links, extraProperties = {}) {
8056
8179
  /**
8057
8180
  * @type {import("geojson").Feature[]}
8058
8181
  */
@@ -8068,7 +8191,7 @@ function generateFeatures(links) {
8068
8191
  type: "Point",
8069
8192
  coordinates: [lon, lat],
8070
8193
  },
8071
- properties: { id: element.id },
8194
+ properties: { ...element, ...extraProperties },
8072
8195
  });
8073
8196
  }
8074
8197
  });
@@ -8163,9 +8286,8 @@ const extractRoles = (properties, linkOrAsset) => {
8163
8286
  if (role === "overlay" || role === "baselayer") {
8164
8287
  properties.group = role;
8165
8288
  }
8166
-
8167
- return properties;
8168
8289
  });
8290
+ return properties;
8169
8291
  };
8170
8292
 
8171
8293
  /**
@@ -8464,6 +8586,7 @@ async function createLayersFromAssets(
8464
8586
  let geoTIFFIdx = null;
8465
8587
  // let geoJsonLayers = [];
8466
8588
  let geoJsonIdx = 0;
8589
+ let geoJsonAttributions = [];
8467
8590
 
8468
8591
  const geoJsonSources = [];
8469
8592
  let geoJsonRoles = {};
@@ -8478,6 +8601,8 @@ async function createLayersFromAssets(
8478
8601
  if (assets[ast]?.type === "application/geo+json") {
8479
8602
  geoJsonSources.push(assets[ast].href);
8480
8603
  geoJsonIdx = idx;
8604
+ if (assets[ast].attribution)
8605
+ geoJsonAttributions.push(assets[ast].attribution);
8481
8606
  extractRoles(geoJsonRoles, assets[ast]);
8482
8607
  } else if (assets[ast]?.type === "application/vnd.flatgeobuf") {
8483
8608
  const assetId = createAssetID(collectionId, item.id, idx);
@@ -8489,6 +8614,7 @@ async function createLayersFromAssets(
8489
8614
  type: "FlatGeoBuf",
8490
8615
  url: assets[ast].href,
8491
8616
  format: "GeoJSON",
8617
+ attributions: assets[ast].attribution,
8492
8618
  },
8493
8619
  properties: {
8494
8620
  id: assetId,
@@ -8502,11 +8628,12 @@ async function createLayersFromAssets(
8502
8628
  }),
8503
8629
  },
8504
8630
  ...(!style?.variables && { style }),
8631
+ interactions: [],
8505
8632
  };
8506
8633
  // add tooltip interaction if style has tooltip
8507
8634
  if (style?.tooltip) {
8508
- // @ts-expect-error no type for eox-map layer
8509
8635
  layer.interactions = [
8636
+ // @ts-expect-error no type for eox-map layer
8510
8637
  {
8511
8638
  type: "select",
8512
8639
  options: {
@@ -8526,9 +8653,18 @@ async function createLayersFromAssets(
8526
8653
  layer.properties = { ...layer.properties, ...(extraProperties ?? {}) };
8527
8654
 
8528
8655
  jsonArray.push(layer);
8656
+ const layer2 = structuredClone(layer);
8657
+ // temporary solution to avoid selection of the same layer
8658
+ // to be removed
8659
+ layer2.interactions = [];
8660
+ layer2.properties.id = layer2.properties.id + "_selection";
8661
+ jsonArray.push(layer2);
8529
8662
  } else if (assets[ast]?.type === "image/tiff") {
8530
8663
  geoTIFFIdx = idx;
8531
- geoTIFFSources.push({ url: assets[ast].href });
8664
+ geoTIFFSources.push({
8665
+ url: assets[ast].href,
8666
+ attributions: assets[ast].attribution,
8667
+ });
8532
8668
  }
8533
8669
  }
8534
8670
 
@@ -8542,6 +8678,7 @@ async function createLayersFromAssets(
8542
8678
  type: "Vector",
8543
8679
  url: await mergeGeojsons(geoJsonSources),
8544
8680
  format: "GeoJSON",
8681
+ attributions: geoJsonAttributions,
8545
8682
  },
8546
8683
  properties: {
8547
8684
  ...geoJsonRoles,
@@ -8655,6 +8792,7 @@ const createLayersFromLinks = async (
8655
8792
  tileGrid: {
8656
8793
  tileSize,
8657
8794
  },
8795
+ attributions: wmsLink.attribution,
8658
8796
  params: {
8659
8797
  LAYERS: wmsLink["wms:layers"],
8660
8798
  TILED: true,
@@ -8725,6 +8863,7 @@ const createLayersFromLinks = async (
8725
8863
  tileGrid: {
8726
8864
  tileSize: [128, 128],
8727
8865
  },
8866
+ attributions: wmtsLink.attribution,
8728
8867
  dimensions: dimensionsWithoutStyle,
8729
8868
  },
8730
8869
  };
@@ -8750,6 +8889,7 @@ const createLayersFromLinks = async (
8750
8889
  tileGrid: {
8751
8890
  tileSize: [512, 512],
8752
8891
  },
8892
+ attributions: wmtsLink.attribution,
8753
8893
  dimensions: dimensionsWithoutStyle,
8754
8894
  },
8755
8895
  };
@@ -8787,6 +8927,7 @@ const createLayersFromLinks = async (
8787
8927
  type: "XYZ",
8788
8928
  url: xyzLink.href,
8789
8929
  projection: projectionCode,
8930
+ attributions: xyzLink.attribution,
8790
8931
  },
8791
8932
  };
8792
8933
 
@@ -9188,47 +9329,81 @@ class EodashCollection {
9188
9329
  continue;
9189
9330
  }
9190
9331
  const collectionFeatures = generateFeatures(
9191
- collection.#collectionStac?.links,
9332
+ JSON.parse(JSON.stringify(collection.#collectionStac?.links)),
9333
+ {
9334
+ collection_id: collection.#collectionStac?.id,
9335
+ geoDBID: collection.#collectionStac?.geoDBID,
9336
+ themes: collection.#collectionStac?.themes ?? [],
9337
+ },
9192
9338
  ).features;
9339
+
9193
9340
  if (collectionFeatures.length) {
9194
- allFeatures.push(
9195
- generateFeatures(collection.#collectionStac?.links).features,
9196
- );
9341
+ allFeatures.push(collectionFeatures);
9197
9342
  }
9198
9343
  }
9199
- if (allFeatures.length) {
9200
- const featureCollection = {
9201
- type: "FeatureCollection",
9202
- crs: {
9203
- type: "name",
9204
- properties: {
9205
- name: "EPSG:4326",
9206
- },
9207
- },
9208
- features: allFeatures.flat(),
9209
- };
9210
- return {
9211
- type: "Vector",
9344
+ if (!allFeatures.length) {
9345
+ return null;
9346
+ }
9347
+
9348
+ const featureCollection = {
9349
+ type: "FeatureCollection",
9350
+ crs: {
9351
+ type: "name",
9212
9352
  properties: {
9213
- id: "geodb-collection",
9214
- title: "GeoDB Collection",
9353
+ name: "EPSG:4326",
9215
9354
  },
9216
- source: {
9217
- type: "Vector",
9218
- url: "data:," + encodeURIComponent(JSON.stringify(featureCollection)),
9219
- format: "GeoJSON",
9220
- },
9221
- style: {
9222
- "circle-radius": 5,
9223
- "circle-fill-color": "#00417077",
9224
- "circle-stroke-color": "#004170",
9225
- "fill-color": "#00417077",
9226
- "stroke-color": "#004170",
9227
- },
9228
- interactions: [],
9229
- };
9230
- }
9231
- return null;
9355
+ },
9356
+ features: allFeatures.flat(),
9357
+ };
9358
+ return {
9359
+ type: "Vector",
9360
+ properties: {
9361
+ id: "geodb-collection",
9362
+ title: "Observation Points",
9363
+ },
9364
+ source: {
9365
+ type: "Vector",
9366
+ url: "data:," + encodeURIComponent(JSON.stringify(featureCollection)),
9367
+ format: "GeoJSON",
9368
+ },
9369
+ style: (() => {
9370
+ // generate flat style rules for each theme
9371
+ /** @param {*} theme */
9372
+ const generateIconSrc = (theme) => {
9373
+ const svgString = `
9374
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 70 70">
9375
+ <circle cx="35" cy="35" r="30" stroke="white" fill="${theme.color}" stroke-width="4"/>
9376
+ <path d="${theme.icon}" fill="#fff" transform="translate(19.5, 20) scale(1.3) "/>
9377
+ </svg>
9378
+ `;
9379
+ return `data:image/svg+xml,${encodeURIComponent(svgString)}`;
9380
+ };
9381
+
9382
+ return [
9383
+ ...Object.keys(dataThemesBrands).map((theme, idx) => {
9384
+ return {
9385
+ ...(idx !== 0 && { else: true }),
9386
+ filter: ["==", ["get", "themes", 0], theme],
9387
+ style: {
9388
+ //@ts-expect-error string index
9389
+ "icon-src": generateIconSrc(dataThemesBrands[theme]),
9390
+ },
9391
+ };
9392
+ }),
9393
+ {
9394
+ else: true,
9395
+ style: {
9396
+ "circle-radius": 10,
9397
+ "circle-fill-color": "#00417077",
9398
+ "circle-stroke-color": "#004170",
9399
+ "fill-color": "#0417077",
9400
+ "stroke-color": "#004170",
9401
+ },
9402
+ },
9403
+ ];
9404
+ })(),
9405
+ interactions: [],
9406
+ };
9232
9407
  }
9233
9408
  }
9234
9409
 
@@ -11385,10 +11560,10 @@ const VAlert = genericComponent()({
11385
11560
  }
11386
11561
  });
11387
11562
 
11388
- const _hoisted_1$2 = { is: "animated-details" };
11563
+ const _hoisted_1$3 = { is: "animated-details" };
11389
11564
 
11390
11565
 
11391
- const _sfc_main$3 = {
11566
+ const _sfc_main$4 = {
11392
11567
  __name: 'ErrorAlert',
11393
11568
  props: {
11394
11569
  "modelValue": { type: String, required: true },
@@ -11421,7 +11596,7 @@ return (_ctx, _cache) => {
11421
11596
  }, {
11422
11597
  default: withCtx(() => [
11423
11598
  createTextVNode(toDisplayString(unref(errorMessage)) + " ", 1 /* TEXT */),
11424
- createElementVNode("details", _hoisted_1$2, [
11599
+ createElementVNode("details", _hoisted_1$3, [
11425
11600
  _cache[1] || (_cache[1] = createElementVNode("summary", null, "Error", -1 /* HOISTED */)),
11426
11601
  createTextVNode(" " + toDisplayString(error.value), 1 /* TEXT */)
11427
11602
  ])
@@ -11433,7 +11608,7 @@ return (_ctx, _cache) => {
11433
11608
  }
11434
11609
 
11435
11610
  };
11436
- const ErrorAlert = /*#__PURE__*/_export_sfc(_sfc_main$3, [['__scopeId',"data-v-ac10aa7f"]]);
11611
+ const ErrorAlert = /*#__PURE__*/_export_sfc(_sfc_main$4, [['__scopeId',"data-v-ac10aa7f"]]);
11437
11612
 
11438
11613
  /**
11439
11614
  * @typedef {{
@@ -11452,7 +11627,7 @@ const ErrorAlert = /*#__PURE__*/_export_sfc(_sfc_main$3, [['__scopeId',"data-v-a
11452
11627
  const internalWidgets = (() => {
11453
11628
  /** @type {Record<string, () => Promise<import("vue").Component>>} */
11454
11629
  const importMap = {
11455
- .../* #__PURE__ */ Object.assign({"/widgets/EodashDatePicker.vue": () => import('./EodashDatePicker-brJlj1aQ.js'),"/widgets/EodashItemFilter.vue": () => import('./EodashItemFilter-C2i4lnM1.js'),"/widgets/EodashLayerControl.vue": () => import('./EodashLayerControl-DNQzPQQ4.js'),"/widgets/EodashLayoutSwitcher.vue": () => import('./EodashLayoutSwitcher-gLe7G8Qn.js'),"/widgets/EodashMap.vue": () => import('./EodashMap-LOzTlvrM.js'),"/widgets/EodashMapBtns.vue": () => import('./EodashMapBtns-UXOupU5J.js'),"/widgets/EodashProcess.vue": () => import('./EodashProcess-BlkqUdzj.js'),"/widgets/EodashStacInfo.vue": () => import('./EodashStacInfo-Df3LXKAw.js'),"/widgets/EodashTools.vue": () => import('./EodashTools-BrqH4IDP.js'),"/widgets/ExportState.vue": () => import('./ExportState-DVosrSNY.js'),"/widgets/PopUp.vue": () => import('./PopUp-BFcSuX3b.js'),"/widgets/WidgetsContainer.vue": () => import('./WidgetsContainer-DL0bdnjh.js')}),
11630
+ .../* #__PURE__ */ Object.assign({"/widgets/EodashDatePicker.vue": () => import('./EodashDatePicker-E5GjnQQ2.js'),"/widgets/EodashItemFilter.vue": () => import('./EodashItemFilter-DN77Uqgg.js'),"/widgets/EodashLayerControl.vue": () => import('./EodashLayerControl-DduVhg2O.js'),"/widgets/EodashLayoutSwitcher.vue": () => import('./EodashLayoutSwitcher-CeNnYuaC.js'),"/widgets/EodashMap.vue": () => import('./EodashMap-C3bgcNJk.js'),"/widgets/EodashMapBtns.vue": () => import('./EodashMapBtns-B73UApEn.js'),"/widgets/EodashProcess.vue": () => import('./EodashProcess-IQPnj17j.js'),"/widgets/EodashStacInfo.vue": () => import('./EodashStacInfo-CeZqI75-.js'),"/widgets/EodashTools.vue": () => import('./EodashTools-CAE604ZJ.js'),"/widgets/ExportState.vue": () => import('./ExportState-DXw8Dwvk.js'),"/widgets/PopUp.vue": () => import('./PopUp-B12NWJHU.js'),"/widgets/WidgetsContainer.vue": () => import('./WidgetsContainer-YI9ZycgC.js')}),
11456
11631
  .../* #__PURE__ */ Object.assign({}),
11457
11632
  };
11458
11633
  for (const key in importMap) {
@@ -11544,11 +11719,16 @@ const getWidgetDefinition = (config) => {
11544
11719
  switch (config?.type) {
11545
11720
  case "internal":
11546
11721
  importedWidget.component = defineAsyncComponent({
11547
- loader:
11548
- internalWidgets[
11722
+ loader: () => {
11723
+ const widgetName =
11549
11724
  /** @type {import("@/types").InternalComponentWidget} * */ (config)
11550
- ?.widget.name
11551
- ],
11725
+ ?.widget.name;
11726
+
11727
+ return (
11728
+ internalWidgets[widgetName]?.() ??
11729
+ Promise.reject(`Widget ${widgetName} not found`)
11730
+ );
11731
+ },
11552
11732
  suspensible: true,
11553
11733
  });
11554
11734
  importedWidget.props = reactive(
@@ -11560,7 +11740,7 @@ const getWidgetDefinition = (config) => {
11560
11740
 
11561
11741
  case "web-component":
11562
11742
  importedWidget.component = defineAsyncComponent({
11563
- loader: () => import('./DynamicWebComponent-rIFx5c0f.js'),
11743
+ loader: () => import('./DynamicWebComponent-DQPKIscC.js'),
11564
11744
  suspensible: true,
11565
11745
  });
11566
11746
  importedWidget.props = reactive(config.widget);
@@ -11636,11 +11816,22 @@ const useTemplate = () => {
11636
11816
  }
11637
11817
 
11638
11818
  const templateConfig = eodash.templates[template];
11639
- [definedTemplate.bgWidget] = useDefineWidgets([
11819
+ const [importedBgWidget] = useDefineWidgets([
11640
11820
  templateConfig.background,
11641
11821
  ]);
11822
+ if (importedBgWidget.value.id !== definedTemplate.bgWidget.value?.id) {
11823
+ definedTemplate.bgWidget.value = importedBgWidget.value;
11824
+ }
11825
+
11826
+ const [importedLoadingWidget] = useDefineWidgets([
11827
+ templateConfig.loading,
11828
+ ]);
11642
11829
 
11643
- [definedTemplate.loading] = useDefineWidgets([templateConfig.loading]);
11830
+ if (
11831
+ importedLoadingWidget.value.id !== definedTemplate.loading.value?.id
11832
+ ) {
11833
+ definedTemplate.loading.value = importedLoadingWidget.value;
11834
+ }
11644
11835
 
11645
11836
  definedTemplate.importedWidgets = useDefineWidgets(
11646
11837
  templateConfig.widgets,
@@ -11889,13 +12080,13 @@ const VRow = genericComponent()({
11889
12080
  }
11890
12081
  });
11891
12082
 
11892
- const _hoisted_1$1 = {
12083
+ const _hoisted_1$2 = {
11893
12084
  key: 1,
11894
12085
  class: "text-center"
11895
12086
  };
11896
12087
 
11897
12088
 
11898
- const _sfc_main$2 = {
12089
+ const _sfc_main$3 = {
11899
12090
  __name: 'Loading',
11900
12091
  setup(__props) {
11901
12092
 
@@ -11929,7 +12120,7 @@ return (_ctx, _cache) => {
11929
12120
  default: withCtx(() => [
11930
12121
  (unref(loading)?.component)
11931
12122
  ? (openBlock(), createBlock(resolveDynamicComponent(unref(loading)?.component), normalizeProps(mergeProps({ key: 0 }, unref(loading)?.props)), null, 16 /* FULL_PROPS */))
11932
- : (openBlock(), createElementBlock("div", _hoisted_1$1, "Loading..."))
12123
+ : (openBlock(), createElementBlock("div", _hoisted_1$2, "Loading..."))
11933
12124
  ]),
11934
12125
  _: 1 /* STABLE */
11935
12126
  }))
@@ -11944,6 +12135,84 @@ return (_ctx, _cache) => {
11944
12135
 
11945
12136
  };
11946
12137
 
12138
+ const name = "@eodash/eodash";
12139
+ const version = "5.0.0-rc.2.3";
12140
+ const type = "module";
12141
+ const types = "./dist/types/core/client/types.d.ts";
12142
+ const files = ["core/client","widgets","dist"];
12143
+ const typesVersions = {"*":{".":["./dist/types/core/client/types.d.ts"],"webcomponent":["./dist/types/core/client/asWebComponent.d.ts"],"config":["./dist/node/types.d.ts"]}};
12144
+ const exports = {".":{"default":"./core/client/main.js"},"./webcomponent":{"default":"./dist/client/eo-dash.js"},"./webcomponent.css":"./dist/client/eo-dash.css","./config":{"default":"./dist/node/main.js"}};
12145
+ const browser = "./core/client/main.js";
12146
+ const scripts = {"start":"npx eodash dev --entryPoint core/client/eodash.js","prepare":"rollup -c","prepack":"npm run build:lib && npm run build:types","dev":"npx eodash dev --entryPoint core/client/eodash.js","dev:lib":"npx eodash dev --entryPoint core/client/eodash.js --lib","build":"npx eodash build --entryPoint core/client/eodash.js","build:lib":"npx eodash build --entryPoint core/client/eodash.js --lib --outDir dist/client","build:cli":"rollup -c","build:types":"vue-tsc --declaration --emitDeclarationOnly && tsc-alias","check":"vue-tsc --noEmit --skipLibCheck && eslint .","format":"prettier . --write --ignore-unknown","preview":"npx eodash preview","lint":"eslint . --fix","cypress":"cypress open --component ","vitest":"vitest --isolate --ui","test":"npm run test:client && npm run test:cli","test:cli":"vitest run tests/cli --isolate","test:client":"cypress run --component","docs:dev":"vitepress dev docs --port 3333","docs:build":"npm run docs:generate && vitepress build docs","docs:preview":"vitepress preview docs","docs:generate":"typedoc --options typedoc.config.json"};
12147
+ const dependencies = {"@eox/chart":"^0.3.1","@eox/drawtools":"^0.13.3","@eox/itemfilter":"^1.7.1","@eox/jsonform":"^0.12.2","@eox/layercontrol":"^0.29.0","@eox/layout":"^0.3.0","@eox/map":"^1.19.2","@eox/stacinfo":"^0.6.1","@eox/timecontrol":"^0.12.2","@mdi/js":"^7.4.47","@vitejs/plugin-vue":"^5.2.1","@vueuse/core":"^12.0.0","animated-details":"gist:2912bb049fa906671807415eb0e87188","axios":"^1.7.9","axios-cache-interceptor":"^1.6.2","color-legend-element":"^1.3.0","commander":"^12.1.0","core-js":"^3.40.0","loglevel":"^1.9.2","mustache":"^4.2.0","pinia":"^2.3.1","sass":"^1.83.4","stac-js":"^0.0.9","stac-ts":"^1.0.4","v-calendar":"3.0.0","vega":"^5.30.0","vega-embed":"^6.29.0","vega-lite":"^5.23.0","vite":"^6.0.11","vite-plugin-vuetify":"^2.0.4","vue":"^3.5.0","vuetify":"^3.7.7","webfontloader":"^1.6.28"};
12148
+ const devDependencies = {"@babel/types":"^7.26.5","@eox/eslint-config":"^2.0.0","@pinia/testing":"^0.1.7","@types/mustache":"^4.2.5","@types/node":"^22.10.7","@types/openlayers":"^4.6.23","@types/webfontloader":"^1.6.38","cypress":"^13.17.0","eslint":"^9.18.0","eslint-plugin-vue":"^9.32.0","pkg-pr-new":"^0.0.39","prettier":"^3.4.2","rollup":"^4.31.0","terminate":"^2.8.0","tsc-alias":"^1.8.10","typedoc":"^0.27.6","typedoc-plugin-markdown":"^4.4.1","typedoc-plugin-vue":"^1.3.0","typedoc-vitepress-theme":"^1.1.2","typescript":"^5.7.3","unplugin-fonts":"^1.3.1","vitepress":"^1.6.2","vitest":"^1.6.0","vue-tsc":"2.2.0"};
12149
+ const engines = {"node":">=20.15.1"};
12150
+ const bin = {"eodash":"./dist/node/cli.js"};
12151
+ const pkgJson = {
12152
+ name,
12153
+ version,
12154
+ type,
12155
+ types,
12156
+ files,
12157
+ typesVersions,
12158
+ exports,
12159
+ browser,
12160
+ scripts,
12161
+ dependencies,
12162
+ devDependencies,
12163
+ engines,
12164
+ bin,
12165
+ };
12166
+
12167
+ const _hoisted_1$1 = {
12168
+ key: 0,
12169
+ class: "eodash-overlay"
12170
+ };
12171
+ const _hoisted_2 = {
12172
+ href: "https://github.com/eodash/eodash",
12173
+ target: "_blank"
12174
+ };
12175
+ const _hoisted_3 = {
12176
+ href: "https://eox.at",
12177
+ target: "_blank"
12178
+ };
12179
+ const _hoisted_4 = ["src"];
12180
+
12181
+ const _sfc_main$2 = {
12182
+ __name: 'EodashOverlay',
12183
+ setup(__props) {
12184
+
12185
+ const { computedThemes } = useTheme();
12186
+
12187
+ const version = pkgJson.version;
12188
+
12189
+ const eoxLogo = `<svg width="100%" height="100%" viewBox="0 0 355 85" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><g id="ink_ext_XXXXXX"><path id="path5076" d="M152.986,40.52l-0.75,-0.019l-0.737,-0.056l-0.725,-0.093l-0.713,-0.127l-0.7,-0.162l-0.7,-0.196l-0.675,-0.228l-0.65,-0.261l-0.65,-0.292l-0.625,-0.319l-0.612,-0.352l-0.588,-0.377l-0.562,-0.407l-0.55,-0.431l-0.538,-0.457l-0.5,-0.481l-0.487,-0.505l-0.45,-0.528l-0.438,-0.55l-0.4,-0.57l-0.375,-0.59l-0.35,-0.609l-0.325,-0.627l-0.287,-0.645l-0.263,-0.66l-0.225,-0.676l-0.2,-0.69l-0.162,-0.704l-0.125,-0.717l-0.1,-0.728l-0.05,-0.739l-0.025,-0.748c0,-8.023 6.512,-14.532 14.537,-14.532c8.038,0 14.538,6.509 14.538,14.532c0,8.036 -6.5,14.544 -14.538,14.544Z" style="fill:none;"/><path id="path5078" d="M165.748,-0.002c-42.009,0 -76.06,18.985 -76.06,42.402c0,13.268 10.921,25.102 28.021,32.875c-8.081,-5.487 -13.403,-12.973 -14.584,-21.859c-2.685,-20.186 16.83,-40.82 45.148,-49.615c-14.687,6.665 -24.923,21.427 -24.923,38.599c0,23.218 18.648,42.046 41.773,42.383c-0.037,0.005 -0.087,0.015 -0.137,0.02c0.263,0 0.512,0.009 0.762,0.009c42.013,0 76.076,-18.984 76.076,-42.412c0,-13.261 -10.937,-25.097 -28.037,-32.871l0.75,0.522l0.736,0.531l0.713,0.543l0.7,0.555l0.687,0.566l0.664,0.578l0.649,0.588l0.625,0.6l0.613,0.609l0.588,0.621l0.574,0.631l0.562,0.643l0.538,0.652l0.513,0.662l0.5,0.672l0.475,0.684l0.449,0.693l0.438,0.703l0.425,0.713l0.387,0.723l0.375,0.73l0.352,0.74l0.336,0.75l0.3,0.76l0.287,0.77l0.264,0.777l0.25,0.787l0.211,0.795l0.188,0.805l0.175,0.812l0.151,0.82l0.125,0.831c2.675,20.19 -16.838,40.825 -45.151,49.619c14.688,-6.665 24.926,-21.426 24.926,-38.614c0,-23.202 -18.65,-42.026 -41.775,-42.367c0.05,-0.005 0.1,-0.015 0.15,-0.025c-0.262,0 -0.526,-0.01 -0.789,-0.01Zm-13.248,11.314c7.817,0 14.25,6.433 14.25,14.25c0,0.001 0,0.001 0,0.001c0,7.817 -6.433,14.249 -14.25,14.249c-7.817,0 -14.25,-6.432 -14.25,-14.249c0,-0.001 0,-0.001 0,-0.001c0,-7.817 6.433,-14.25 14.25,-14.25Z"
12190
+ style="fill:${computedThemes.value["dashboardTheme"].colors["on-secondary"]};fill-rule:nonzero;"/><path id="path5080" d="M213.786,9.529l0.75,0.521l0.738,0.532l0.712,0.544l0.7,0.555l0.688,0.566l0.662,0.577l0.65,0.588l0.625,0.6l0.613,0.61l0.587,0.62l0.575,0.631l0.563,0.643l0.537,0.652l0.513,0.663l0.5,0.672l0.475,0.684l0.45,0.692l0.437,0.703l0.425,0.712l0.388,0.723l0.375,0.731l0.35,0.741l0.337,0.75l0.3,0.76l0.288,0.769l0.262,0.777l0.25,0.786l0.213,0.797l0.187,0.804l0.175,0.812l0.15,0.821l0.125,0.83c2.675,20.19 -16.837,40.825 -45.15,49.619c14.688,-6.665 24.925,-21.426 24.925,-38.614c0,-23.202 -18.65,-42.025 -41.775,-42.367c0.05,-0.005 0.1,-0.015 0.15,-0.025c-0.262,0 -0.525,-0.01 -0.787,-0.01c-42.01,0 -76.062,18.985 -76.062,42.402c0,13.268 10.922,25.103 28.022,32.876c-8.081,-5.487 -13.403,-12.973 -14.584,-21.859c-2.685,-20.187 16.831,-40.82 45.149,-49.615c-14.688,6.665 -24.925,21.426 -24.925,38.598c0,23.218 18.65,42.046 41.775,42.383c-0.038,0.005 -0.088,0.015 -0.138,0.02c0.263,0 0.513,0.01 0.763,0.01c42.012,-0.001 76.075,-18.985 76.075,-42.413c0,-13.261 -10.938,-25.097 -28.038,-32.871Z" style="fill:none;"/><path id="path5082" d="M354.323,82.586l-41.999,-42.002l38.524,-38.515l-29.913,0l-23.562,23.559l-23.563,-23.559l-29.924,0l38.525,38.515l-42,42.002l29.913,0l27.049,-27.046l27.05,27.046l29.9,0"
12191
+ style="fill:${computedThemes.value["dashboardTheme"].colors["on-secondary"]};fill-rule:nonzero;"/><path id="path5084" d="M354.323,82.586l-41.999,-42.002l38.524,-38.515l-29.913,0l-23.562,23.559l-23.563,-23.559l-29.924,0l38.525,38.515l-42,42.002l29.913,0l27.049,-27.046l27.05,27.046l29.9,0Z" style="fill:none;"/><path id="path5086" d="M0,2.069l75.033,0l0,16.489l-51.629,0l0,14.931l40.258,0l0,16.495l-40.258,0l0,16.05l53.124,0l0,16.488l-76.528,0l0,-80.453"
12192
+ style="fill:${computedThemes.value["dashboardTheme"].colors["on-secondary"]};fill-rule:nonzero;"/><path id="path5088" d="M0,2.069l75.033,0l0,16.489l-51.629,0l0,14.931l40.258,0l0,16.495l-40.258,0l0,16.05l53.124,0l0,16.488l-76.528,0l0,-80.453Z" style="fill:none;"/></g></svg>`;
12193
+ const base64Logo = btoa(eoxLogo);
12194
+
12195
+ return (_ctx, _cache) => {
12196
+ return (_ctx.$vuetify.display.mdAndUp)
12197
+ ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
12198
+ createElementVNode("p", null, [
12199
+ createElementVNode("a", _hoisted_2, "eodash v" + toDisplayString(unref(version)), 1 /* TEXT */),
12200
+ _cache[0] || (_cache[0] = createTextVNode(" by ")),
12201
+ createElementVNode("a", _hoisted_3, [
12202
+ createElementVNode("img", {
12203
+ src: `data:image/svg+xml;base64,${unref(base64Logo)}`,
12204
+ height: "9px"
12205
+ }, null, 8 /* PROPS */, _hoisted_4)
12206
+ ])
12207
+ ])
12208
+ ]))
12209
+ : createCommentVNode("v-if", true)
12210
+ }
12211
+ }
12212
+
12213
+ };
12214
+ const EodashOverlay = /*#__PURE__*/_export_sfc(_sfc_main$2, [['__scopeId',"data-v-22662c4a"]]);
12215
+
11947
12216
  const _hoisted_1 = { class: "loading-container" };
11948
12217
 
11949
12218
 
@@ -11963,6 +12232,9 @@ const _sfc_main$1 = {
11963
12232
  let __temp, __restore;
11964
12233
 
11965
12234
  const props = __props;
12235
+
12236
+ useURLSearchParametersSync();
12237
+
11966
12238
  const eodash = (
11967
12239
  ([__temp,__restore] = withAsyncContext(() => useEodashRuntime(props.config))),
11968
12240
  __temp = await __temp,
@@ -11970,18 +12242,12 @@ const eodash = (
11970
12242
  __temp
11971
12243
  );
11972
12244
 
11973
- useURLSearchParametersSync();
11974
-
11975
12245
  const theme = useUpdateTheme("dashboardTheme", {
11976
12246
  ...(eodash.brand?.theme ?? {}),
11977
12247
  });
11978
12248
  theme.global.name.value = "dashboardTheme";
11979
12249
  (
11980
- ([__temp,__restore] = withAsyncContext(() => loadFont(
11981
- eodash.brand?.font?.family,
11982
- eodash.brand?.font?.link,
11983
- props.isWebComponent,
11984
- ))),
12250
+ ([__temp,__restore] = withAsyncContext(() => loadFont(eodash.brand?.font, props.isWebComponent))),
11985
12251
  await __temp,
11986
12252
  __restore()
11987
12253
  );
@@ -11996,15 +12262,15 @@ const { loadSTAC } = useSTAcStore();
11996
12262
  const { smAndDown } = useDisplay();
11997
12263
  const TemplateComponent = computed(() =>
11998
12264
  smAndDown.value
11999
- ? defineAsyncComponent(() => import('./MobileLayout-Df4Z1bMl.js'))
12000
- : defineAsyncComponent(() => import('./DashboardLayout-BjUs7mYs.js')),
12265
+ ? defineAsyncComponent(() => import('./MobileLayout-Du5n5XyY.js'))
12266
+ : defineAsyncComponent(() => import('./DashboardLayout-Reny_s87.js')),
12001
12267
  );
12002
12268
 
12003
12269
  const HeaderComponent = defineAsyncComponent(
12004
- () => import('./Header-DYMnh4of.js'),
12270
+ () => import('./Header-qH_kBs-u.js'),
12005
12271
  );
12006
12272
  const FooterComponent = defineAsyncComponent(
12007
- () => import('./Footer-tjsscQ7O.js'),
12273
+ () => import('./Footer-Bl9tQTyj.js'),
12008
12274
  );
12009
12275
 
12010
12276
  const templateHeight = props.isWebComponent ? "100%" : "100dvh";
@@ -12027,10 +12293,11 @@ return (_ctx, _cache) => {
12027
12293
  modelValue: error.value,
12028
12294
  "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => ((error).value = $event))
12029
12295
  }, null, 8 /* PROPS */, ["modelValue"]),
12296
+ createVNode(EodashOverlay),
12030
12297
  (openBlock(), createBlock(Suspense, null, {
12031
12298
  fallback: withCtx(() => [
12032
12299
  createElementVNode("div", _hoisted_1, [
12033
- createVNode(_sfc_main$2)
12300
+ createVNode(_sfc_main$3)
12034
12301
  ])
12035
12302
  ]),
12036
12303
  default: withCtx(() => [