@eodash/eodash 5.1.0 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/core/client/components/DashboardLayout.vue +1 -2
  2. package/core/client/components/EodashOverlay.vue +4 -5
  3. package/core/client/components/MobileLayout.vue +42 -21
  4. package/core/client/composables/index.js +54 -60
  5. package/core/client/eodashSTAC/EodashCollection.js +199 -108
  6. package/core/client/eodashSTAC/auth.js +86 -0
  7. package/core/client/eodashSTAC/createLayers.js +234 -4
  8. package/core/client/eodashSTAC/helpers.js +281 -59
  9. package/core/client/eodashSTAC/parquet.js +0 -13
  10. package/core/client/eodashSTAC/triggers.js +1 -1
  11. package/core/client/store/actions.js +14 -0
  12. package/core/client/store/stac.js +46 -8
  13. package/core/client/store/states.js +6 -0
  14. package/core/client/types.ts +206 -3
  15. package/core/client/utils/bands-editor/arithmetic.js +144 -0
  16. package/core/client/utils/bands-editor/colors.js +36 -0
  17. package/core/client/utils/bands-editor/dom.js +196 -0
  18. package/core/client/utils/bands-editor/exampleSchema.json +1320 -0
  19. package/core/client/utils/bands-editor/index.js +68 -0
  20. package/core/client/utils/bands-editor/rgb.js +102 -0
  21. package/core/client/utils/index.js +5 -2
  22. package/core/client/views/Dashboard.vue +1 -1
  23. package/core/client/vite-env.d.ts +122 -0
  24. package/dist/client/{DashboardLayout-ByVs1DrY.js → DashboardLayout-Cq15p4TH.js} +5 -6
  25. package/dist/client/{DynamicWebComponent-C3W7HSQm.js → DynamicWebComponent-Cv-fPRG1.js} +1 -1
  26. package/dist/client/{EodashDatePicker-BIAf1sMT.js → EodashDatePicker-CPlJwEIO.js} +20 -22
  27. package/dist/client/{EodashItemFilter-DPznh8UB.js → EodashItemFilter-Ydebgbjj.js} +46 -31
  28. package/dist/client/EodashLayerControl-COhrkNEs.js +1517 -0
  29. package/dist/client/{EodashLayoutSwitcher-C5qTEffW.js → EodashLayoutSwitcher-pnKhTRZV.js} +4 -4
  30. package/dist/client/EodashMapBtns-Cj0Fx119.js +301 -0
  31. package/dist/client/{EodashStacInfo-CSvvF2jI.js → EodashStacInfo-Dadkg_Nj.js} +1 -1
  32. package/dist/client/EodashTimeSlider-CpoHX0S7.js +53 -0
  33. package/dist/client/{EodashTools-Cv1SXQ5y.js → EodashTools-UGBG7KC9.js} +10 -7
  34. package/dist/client/{ExportState-D-iuwaad.js → ExportState-GtJkAqeZ.js} +145 -121
  35. package/dist/client/{Footer-CyF0zRAk.js → Footer-D3ZPG5c4.js} +1 -1
  36. package/dist/client/{Header-CgD8jDKU.js → Header-z6AK-wpN.js} +2 -3
  37. package/dist/client/MobileLayout-BXNsNftb.js +118 -0
  38. package/dist/client/{PopUp-BsYLvWch.js → PopUp-BbQdjENV.js} +79 -44
  39. package/dist/client/{ProcessList-C2xsLU2_.js → ProcessList-C6VsdsYI.js} +18 -12
  40. package/dist/client/{VImg-OHe8YTs2.js → VImg-CxaMSB99.js} +203 -5
  41. package/dist/client/{VMain-PryTLU4a.js → VMain-Ds7yw0wj.js} +1 -1
  42. package/dist/client/{VTooltip-DZ0fjpB3.js → VTooltip-Cze6CEVh.js} +2 -3
  43. package/dist/client/{WidgetsContainer-B9LBadcC.js → WidgetsContainer-D66bj-JJ.js} +1 -1
  44. package/dist/client/asWebComponent-CWbNRdf9.js +8895 -0
  45. package/dist/client/{async-DkSu_u2K.js → async-BA7oWCMX.js} +69 -5
  46. package/dist/client/easing-CH0-9wR8.js +35 -0
  47. package/dist/client/eo-dash.js +1 -1
  48. package/dist/client/{VOverlay-yUn7p-Uf.js → forwardRefs-BUfxOIo-.js} +308 -28
  49. package/dist/client/{handling-CgmFXkW6.js → handling-DlNTtKB-.js} +27 -6
  50. package/dist/client/{helpers-Dy0Q13tP.js → helpers-CtE0W7iu.js} +595 -278
  51. package/dist/client/{index-skjhlH8u.js → index-CeEZIjO6.js} +26 -13
  52. package/dist/client/{index-Ch_HchK3.js → index-CsKbRDeN.js} +238 -77
  53. package/dist/client/{index-Dqj4tbx2.js → index-D4_NRKrf.js} +2 -2
  54. package/dist/client/index-DeECc3lV.js +571 -0
  55. package/dist/client/material-symbols-outlined.woff2 +0 -0
  56. package/dist/client/material-symbols-rounded.woff2 +0 -0
  57. package/dist/client/material-symbols-sharp.woff2 +0 -0
  58. package/dist/client/material-symbols-subset.woff2 +0 -0
  59. package/dist/client/templates.js +106 -49
  60. package/dist/client/{transition-C98Yn4Vo.js → transition-Byvp3L6Y.js} +1 -1
  61. package/dist/node/cli.js +6 -6
  62. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +24 -10
  63. package/dist/types/core/client/eodashSTAC/auth.d.ts +7 -0
  64. package/dist/types/core/client/eodashSTAC/createLayers.d.ts +15 -3
  65. package/dist/types/core/client/eodashSTAC/helpers.d.ts +51 -15
  66. package/dist/types/core/client/plugins/vuetify.d.ts +14 -14
  67. package/dist/types/core/client/store/actions.d.ts +2 -0
  68. package/dist/types/core/client/store/stac.d.ts +16 -7
  69. package/dist/types/core/client/store/states.d.ts +4 -0
  70. package/dist/types/core/client/types.d.ts +171 -3
  71. package/dist/types/core/client/utils/bands-editor/arithmetic.d.ts +8 -0
  72. package/dist/types/core/client/utils/bands-editor/colors.d.ts +15 -0
  73. package/dist/types/core/client/utils/bands-editor/dom.d.ts +42 -0
  74. package/dist/types/core/client/utils/bands-editor/index.d.ts +20 -0
  75. package/dist/types/core/client/utils/bands-editor/rgb.d.ts +15 -0
  76. package/dist/types/core/client/utils/index.d.ts +1 -1
  77. package/dist/types/templates/baseConfig.d.ts +87 -1
  78. package/dist/types/templates/compare.d.ts +0 -25
  79. package/dist/types/templates/expert.d.ts +17 -21
  80. package/dist/types/templates/explore.d.ts +67 -0
  81. package/dist/types/templates/index.d.ts +1 -1
  82. package/dist/types/templates/{light.d.ts → lite.d.ts} +9 -0
  83. package/dist/types/widgets/EodashItemCatalog/index.vue.d.ts +21 -0
  84. package/dist/types/widgets/EodashItemCatalog/methods/filters.d.ts +49 -0
  85. package/dist/types/widgets/EodashItemCatalog/methods/handlers.d.ts +4 -0
  86. package/dist/types/widgets/EodashItemCatalog/methods/map.d.ts +12 -0
  87. package/dist/types/widgets/EodashItemCatalog/types.d.ts +14 -0
  88. package/dist/types/widgets/{EodashMapBtns.vue.d.ts → EodashMap/EodashMapBtns.vue.d.ts} +6 -0
  89. package/dist/types/widgets/EodashMap/index.vue.d.ts +114 -0
  90. package/dist/types/widgets/EodashMap/methods/create-layers-config.d.ts +1 -1
  91. package/dist/types/widgets/EodashMap/methods/index.d.ts +1 -1
  92. package/dist/types/widgets/EodashProcess/methods/async.d.ts +1 -0
  93. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.d.ts +1 -1
  94. package/dist/types/widgets/EodashTimeSlider.vue.d.ts +7 -0
  95. package/dist/types/widgets/EodashTools.vue.d.ts +10 -10
  96. package/dist/types/widgets/ExportState.vue.d.ts +2 -0
  97. package/package.json +31 -28
  98. package/templates/baseConfig.js +10 -5
  99. package/templates/compare.js +2 -22
  100. package/templates/expert.js +19 -18
  101. package/templates/explore.js +62 -0
  102. package/templates/index.js +1 -1
  103. package/templates/{light.js → lite.js} +11 -2
  104. package/widgets/EodashDatePicker.vue +15 -18
  105. package/widgets/EodashItemCatalog/index.vue +161 -0
  106. package/widgets/EodashItemCatalog/methods/filters.js +216 -0
  107. package/widgets/EodashItemCatalog/methods/handlers.js +50 -0
  108. package/widgets/EodashItemCatalog/methods/map.js +144 -0
  109. package/widgets/EodashItemCatalog/types.ts +15 -0
  110. package/widgets/EodashItemFilter.vue +35 -28
  111. package/widgets/EodashLayerControl.vue +10 -6
  112. package/widgets/EodashLayoutSwitcher.vue +1 -1
  113. package/widgets/EodashMap/EodashMapBtns.vue +278 -0
  114. package/widgets/EodashMap/index.vue +263 -38
  115. package/widgets/EodashMap/methods/create-layers-config.js +9 -6
  116. package/widgets/EodashMap/methods/index.js +27 -13
  117. package/widgets/EodashProcess/ProcessList.vue +13 -1
  118. package/widgets/EodashProcess/index.vue +17 -1
  119. package/widgets/EodashProcess/methods/async.js +22 -1
  120. package/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.js +25 -3
  121. package/widgets/EodashProcess/methods/handling.js +2 -0
  122. package/widgets/EodashProcess/methods/outputs.js +1 -0
  123. package/widgets/EodashProcess/methods/utils.js +45 -1
  124. package/widgets/EodashTimeSlider.vue +40 -0
  125. package/widgets/EodashTools.vue +7 -3
  126. package/widgets/ExportState.vue +53 -22
  127. package/dist/client/EodashLayerControl-Bhxjw4V2.js +0 -154
  128. package/dist/client/EodashMapBtns-WoGq8MuV.js +0 -173
  129. package/dist/client/MobileLayout-EKQ_kpSh.js +0 -1226
  130. package/dist/client/asWebComponent-By_7_JjS.js +0 -19193
  131. package/dist/client/forwardRefs-BXxrv98s.js +0 -272
  132. package/dist/client/index-BuhOHXKv.js +0 -199
  133. package/widgets/EodashMapBtns.vue +0 -155
@@ -1,5 +1,5 @@
1
1
  import { mdiViewDashboardVariant, mdiViewDashboard } from '@mdi/js';
2
- import { G as includesProcess } from './helpers-Dy0Q13tP.js';
2
+ import { K as includesProcess } from './helpers-CtE0W7iu.js';
3
3
 
4
4
  /**
5
5
  * Special values that tell deepmerge to perform a certain action.
@@ -375,7 +375,7 @@ function mergeOthersInto(mut_target, values, utils, meta) {
375
375
  }
376
376
 
377
377
  /** @type {import("@/types").Template} */
378
- const light = {
378
+ const lite = {
379
379
  gap: 16,
380
380
  loading: {
381
381
  id: Symbol(),
@@ -393,12 +393,21 @@ const light = {
393
393
  },
394
394
  },
395
395
  background: {
396
- id: "background-map",
396
+ id: "lite-map",
397
397
  type: "internal",
398
398
  widget: {
399
399
  name: "EodashMap",
400
400
  properties: {
401
401
  enableCompare: true,
402
+ enableCursorCoordinates: false,
403
+ enableScaleLine: false,
404
+ btns: {
405
+ enableExportMap: false,
406
+ enableChangeProjection: false,
407
+ enableCompareIndicators: false,
408
+ enableBackToPOIs: false,
409
+ enableSearch: true,
410
+ },
402
411
  },
403
412
  },
404
413
  },
@@ -407,7 +416,7 @@ const light = {
407
416
  id: "tools-light",
408
417
  type: "internal",
409
418
  title: "Tools",
410
- layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
419
+ layout: { x: 0, y: 0, w: "3/3/2", h: 2 },
411
420
  widget: {
412
421
  name: "EodashTools",
413
422
  properties: {
@@ -506,7 +515,7 @@ const light = {
506
515
  /** @type {import("@/types").Template} */
507
516
  const expert = {
508
517
  loading: {
509
- id: Symbol(),
518
+ id: "loading",
510
519
  type: "web-component",
511
520
  widget: {
512
521
  // https://uiball.com/ldrs/
@@ -527,6 +536,22 @@ const expert = {
527
536
  name: "EodashMap",
528
537
  properties: {
529
538
  enableCompare: true,
539
+ zoomToExtent: true,
540
+ btns: {
541
+ enableZoom: true,
542
+ enableExportMap: true,
543
+ enableChangeProjection: true,
544
+ enableCompareIndicators: {
545
+ fallbackTemplate: "expert",
546
+ },
547
+ enableBackToPOIs: true,
548
+ enableSearch: true,
549
+ },
550
+ btnsPosition: {
551
+ x: "12/9/9",
552
+ y: 1,
553
+ gap: 16,
554
+ },
530
555
  },
531
556
  },
532
557
  },
@@ -535,11 +560,11 @@ const expert = {
535
560
  id: "Tools",
536
561
  type: "internal",
537
562
  title: "Tools",
538
- layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
563
+ layout: { x: 0, y: 0, w: "3/3/2", h: 2 },
539
564
  widget: {
540
565
  name: "EodashTools",
541
566
  properties: {
542
- layoutTarget: "light",
567
+ layoutTarget: "lite",
543
568
  layoutIcon: mdiViewDashboard,
544
569
  itemFilterConfig: {
545
570
  resultType: "cards",
@@ -594,21 +619,6 @@ const expert = {
594
619
  : null;
595
620
  },
596
621
  },
597
- {
598
- defineWidget: (selected) => {
599
- return selected
600
- ? {
601
- id: "Buttons",
602
- layout: { x: "8/8/9", y: 0, w: 1, h: 2 },
603
- title: "Buttons",
604
- type: "internal",
605
- widget: {
606
- name: "EodashMapBtns",
607
- },
608
- }
609
- : null;
610
- },
611
- },
612
622
  {
613
623
  defineWidget: (selectedSTAC) =>
614
624
  includesProcess(selectedSTAC) && {
@@ -657,7 +667,7 @@ const compare = {
657
667
  id: "Tools",
658
668
  type: "internal",
659
669
  title: "Tools",
660
- layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
670
+ layout: { x: 0, y: 0, w: "3/3/2", h: 2 },
661
671
  widget: {
662
672
  name: "EodashTools",
663
673
  properties: {
@@ -677,7 +687,7 @@ const compare = {
677
687
  id: "CompareTools",
678
688
  type: "internal",
679
689
  title: "Tools",
680
- layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 1 },
690
+ layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 2 },
681
691
  widget: {
682
692
  name: "EodashTools",
683
693
  properties: {
@@ -742,26 +752,6 @@ const compare = {
742
752
  },
743
753
  },
744
754
  },
745
- {
746
- defineWidget: (selected) => {
747
- return selected
748
- ? {
749
- id: "Buttons",
750
- layout: { x: "8/8/9", y: 0, w: 1, h: 2 },
751
- title: "Buttons",
752
- type: "internal",
753
- widget: {
754
- name: "EodashMapBtns",
755
- properties: {
756
- compareIndicators: {
757
- fallbackTemplate: "expert",
758
- },
759
- },
760
- },
761
- }
762
- : null;
763
- },
764
- },
765
755
  {
766
756
  defineWidget: (selectedSTAC) => {
767
757
  return selectedSTAC
@@ -785,14 +775,80 @@ const compare = {
785
775
  ],
786
776
  };
787
777
 
778
+ // import { includesProcess } from "@/store/actions";
779
+ /** @type {import("@/types").Template} */
780
+ const explore = {
781
+ gap: 16,
782
+ loading: {
783
+ id: "loading",
784
+ type: "web-component",
785
+ widget: {
786
+ // https://uiball.com/ldrs/
787
+ link: "https://cdn.jsdelivr.net/npm/ldrs/dist/auto/mirage.js",
788
+ tagName: "l-mirage",
789
+ properties: {
790
+ class: "align-self-center justify-self-center",
791
+ size: "120",
792
+ speed: "2.5",
793
+ color: "#004170",
794
+ },
795
+ },
796
+ },
797
+ background: {
798
+ id: "background-map",
799
+ type: "internal",
800
+ widget: {
801
+ name: "EodashMap",
802
+ properties: {
803
+ enableCompare: true,
804
+ btns: {
805
+ enableZoom: true,
806
+ enableExportMap: true,
807
+ enableChangeProjection: true,
808
+ enableCompareIndicators: {
809
+ fallbackTemplate: "explore",
810
+ itemFilterConfig: {
811
+ imageProperty: "assets.thumbnail.href",
812
+ },
813
+ },
814
+ enableSearch: true,
815
+ },
816
+ },
817
+ },
818
+ },
819
+ widgets: [
820
+ {
821
+ id: "Layercontrol",
822
+ type: "internal",
823
+ title: "Layers",
824
+ layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 12 },
825
+ widget: {
826
+ name: "EodashLayerControl",
827
+ },
828
+ },
829
+ {
830
+ id: "ItemCatalog",
831
+ title: "Catalog",
832
+ type: "internal",
833
+ layout: { x: 0, y: 0, w: "3/3/2", h: 12 },
834
+ widget: {
835
+ name: "EodashItemCatalog",
836
+ },
837
+ },
838
+ ],
839
+ };
840
+
788
841
  /** @type {import("@/types").Eodash} */
789
842
  const baseConfig = {
790
843
  id: "demo",
791
844
  options: {
792
845
  // useSubCode: true,
793
846
  },
794
- stacEndpoint:
795
- "https://esa-eodashboards.github.io/eodashboard-catalog/trilateral/catalog.json",
847
+ stacEndpoint: {
848
+ endpoint:
849
+ "https://esa-eodashboards.github.io/eodashboard-catalog/trilateral/catalog.json",
850
+ api: false,
851
+ },
796
852
  brand: {
797
853
  noLayout: true,
798
854
  name: "Demo",
@@ -832,14 +888,15 @@ const baseConfig = {
832
888
  footerText: "Demo configuration of eodash client",
833
889
  },
834
890
  templates: {
835
- light,
891
+ lite,
836
892
  expert,
837
893
  compare,
894
+ explore,
838
895
  },
839
896
  };
840
897
 
841
898
  /**
842
- * @param {Partial<import("@/types").Eodash>} config
899
+ * @param {import("vega-lite").DeepPartial<import("@/types").Eodash>} config
843
900
  */
844
901
  const getBaseConfig = (config) => {
845
902
  const merged = /** @type {import("@/types").Eodash} */ ({});
@@ -847,4 +904,4 @@ const getBaseConfig = (config) => {
847
904
  return merged;
848
905
  };
849
906
 
850
- export { compare, getBaseConfig as default, expert, getBaseConfig, light };
907
+ export { compare, getBaseConfig as default, expert, getBaseConfig, lite };
@@ -1,5 +1,5 @@
1
1
  import { mergeProps, h, TransitionGroup, Transition } from 'vue';
2
- import { p as propsFactory, E as isObject, aL as onlyDefinedProps } from './asWebComponent-By_7_JjS.js';
2
+ import { p as propsFactory, Y as isObject, aG as onlyDefinedProps } from './asWebComponent-CWbNRdf9.js';
3
3
 
4
4
  // Utilities
5
5
  const makeTransitionProps = propsFactory({
package/dist/node/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{createLogger as F,defineConfig as C,searchForWorkspaceRoot as W,mergeConfig as U,preview as A,createServer as O,build as L}from"vite";import{readFileSync as P,existsSync as v}from"fs";import s from"path";import{Command as $}from"commander";import{fileURLToPath as H}from"url";import{readFile as I,writeFile as T,rm as R,cp as V}from"fs/promises";import J from"@vitejs/plugin-vue";import M,{transformAssetUrls as B}from"vite-plugin-vuetify";import{config as G}from"dotenv";const y=new $("eodash"),u=x(),c=x(process.cwd());JSON.parse(P(s.join(c,"package.json"),"utf-8"));const S=JSON.parse(P(s.join(u,"package.json"),"utf-8"))??{},Y=["commander","vite","@vitejs/plugin-vue","vite-plugin-vuetify","axios","dotenv"],z=Object.keys(S?.dependencies).filter(e=>!Y.includes(e));y.version(S.version,"-v, --version","output the current version"),y.allowExcessArguments().option("--publicDir <path>","path to statically served assets folder").option("--no-publicDir","stop serving static assets").option("--outDir <path>","minified output folder").option("-e, --entryPoint <path>","file exporting `createEodash`").option("-w, --widgets <path>","folder that contains vue components as internal widgets").option("--cacheDir <path>","cache folder").option("-r, --runtime <path>","file exporting eodash client runtime config").option("-b, --base <path>","base public path").option("-p, --port <port>","serving port").option("-o, --open","open default browser when the server starts").option("-c, --config <path>","path to eodash server and build configuration file").option("--host [IP address]","specify which IP addresses the server should listen on").option("-l, --lib","builds eodash as a web component library").option("--no-lib","builds eodash as an SPA").option("--no-host","do not expose server to the network").parse(process.argv);const i=await X(y.opts(),process.argv?.[2]),K=i.publicDir?s.resolve(c,i.publicDir):s.join(c,"./public"),b=s.join(c,"/src"),f=i.runtime?s.resolve(c,i.runtime):s.join(b,"./runtime.js"),m=i.entryPoint==="false"?!1:i.entryPoint?s.resolve(c,i.entryPoint):s.join(b,"/main.js"),D=i.widgets?s.resolve(c,i.widgets):s.join(b,"widgets"),E=s.join(c,"/.eodash"),w=i.outDir?s.resolve(c,i.outDir):s.join(E,"/dist"),Q=i.cacheDir?s.resolve(c,i.cacheDir):s.join(E,"cache"),j=F(void 0,{prefix:"[eodash]"});async function X(e,n){let r=e.config?s.resolve(c,e.config):s.join(c,"eodash.config.js"),t={};return v(r)?t=await import(r).then(o=>o.default instanceof Function?o.default():o.default).catch(o=>{console.error(o)}):r=null,{base:e.base??t?.base,port:Number(e.port??t?.[n]?.port),host:e.host??t?.[n]?.host,open:e.open??t?.[n]?.open,cacheDir:e.cacheDir??t?.cacheDir,entryPoint:e.entryPoint??t?.entryPoint,outDir:e.outDir??t?.outDir,publicDir:e.publicDir??t?.publicDir,runtime:e.runtime??t?.runtime,widgets:e.widgets??t?.widgets,lib:e.lib??t?.lib,vite:t.vite}}function x(e=import.meta.dirname??s.dirname(H(import.meta.url))){if(e?.split("/").length)return v(s.resolve(e,"package.json"))?e:x(s.resolve(e,".."));throw new Error("no package root found from "+e)}const k=`
2
+ import{createLogger as F,defineConfig as C,searchForWorkspaceRoot as W,mergeConfig as O,preview as U,createServer as A,build as L}from"vite";import{readFileSync as P,existsSync as v}from"fs";import t from"path";import{Command as $}from"commander";import{fileURLToPath as H}from"url";import{readFile as I,writeFile as T,rm as R,cp as V}from"fs/promises";import J from"@vitejs/plugin-vue";import M,{transformAssetUrls as B}from"vite-plugin-vuetify";import{config as G}from"dotenv";const y=new $("eodash"),c=x(),l=x(process.cwd());JSON.parse(P(t.join(l,"package.json"),"utf-8"));const S=JSON.parse(P(t.join(c,"package.json"),"utf-8"))??{},Y=["commander","vite","@vitejs/plugin-vue","vite-plugin-vuetify","axios","dotenv"],z=Object.keys(S?.dependencies).filter(e=>!Y.includes(e));y.version(S.version,"-v, --version","output the current version"),y.allowExcessArguments().option("--publicDir <path>","path to statically served assets folder").option("--no-publicDir","stop serving static assets").option("--outDir <path>","minified output folder").option("-e, --entryPoint <path>","file exporting `createEodash`").option("-w, --widgets <path>","folder that contains vue components as internal widgets").option("--cacheDir <path>","cache folder").option("-r, --runtime <path>","file exporting eodash client runtime config").option("-b, --base <path>","base public path").option("-p, --port <port>","serving port").option("-o, --open","open default browser when the server starts").option("-c, --config <path>","path to eodash server and build configuration file").option("--host [IP address]","specify which IP addresses the server should listen on").option("-l, --lib","builds eodash as a web component library").option("--no-lib","builds eodash as an SPA").option("--no-host","do not expose server to the network").parse(process.argv);const s=await X(y.opts(),process.argv?.[2]),K=s.publicDir?t.resolve(l,s.publicDir):t.join(l,"./public"),b=t.join(l,"/src"),f=s.runtime?t.resolve(l,s.runtime):t.join(b,"./runtime.js"),m=s.entryPoint==="false"?!1:s.entryPoint?t.resolve(l,s.entryPoint):t.join(b,"/main.js"),D=s.widgets?t.resolve(l,s.widgets):t.join(b,"widgets"),E=t.join(l,"/.eodash"),w=s.outDir?t.resolve(l,s.outDir):t.join(E,"/dist"),Q=s.cacheDir?t.resolve(l,s.cacheDir):t.join(E,"cache"),j=F(void 0,{prefix:"[eodash]"});async function X(e,n){let r=e.config?t.resolve(l,e.config):t.join(l,"eodash.config.js"),o={};return v(r)?o=await import(r).then(i=>i.default instanceof Function?i.default():i.default).catch(i=>{console.error(i)}):r=null,{base:e.base??o?.base,port:Number(e.port??o?.[n]?.port),host:e.host??o?.[n]?.host,open:e.open??o?.[n]?.open,cacheDir:e.cacheDir??o?.cacheDir,entryPoint:e.entryPoint??o?.entryPoint,outDir:e.outDir??o?.outDir,publicDir:e.publicDir??o?.publicDir,runtime:e.runtime??o?.runtime,widgets:e.widgets??o?.widgets,lib:e.lib??o?.lib,vite:o.vite}}function x(e=import.meta.dirname??t.dirname(H(import.meta.url))){if(e?.split("/").length)return v(t.resolve(e,"package.json"))?e:x(t.resolve(e,".."));throw new Error("no package root found from "+e)}const k=`
3
3
  <!DOCTYPE html>
4
4
  <html lang="en" style="overflow: hidden">
5
5
 
@@ -20,11 +20,11 @@ import{createLogger as F,defineConfig as C,searchForWorkspaceRoot as W,mergeConf
20
20
  </head>
21
21
 
22
22
  <body>
23
- ${i.lib?`<eo-dash style="height:100%;"/>
24
- <script type="module" src="${s.resolve(`/@fs/${u}`,"core/client/asWebComponent.js")}"><\/script>
23
+ ${s.lib?`<eo-dash style="height:100%;"/>
24
+ <script type="module" src="${t.resolve(`/@fs/${c}`,"core/client/asWebComponent.js")}"><\/script>
25
25
  `:` <div id="app" style="height:100%;" />
26
- <script type="module" src="${s.resolve(`/@fs/${u}`,"core/client/render.js")}"><\/script>
26
+ <script type="module" src="${t.resolve(`/@fs/${c}`,"core/client/render.js")}"><\/script>
27
27
  `}
28
28
  </body>
29
- </html>`;function Z(e={customElementFileName:"asWebComponent.js",stylePlaceHolder:"__VUE_CE_STYLES__"}){const{customElementFileName:n,stylePlaceHolder:r}=e;return{name:"vite-plugin-vue-custom-element-style-injector",enforce:"post",async transform(t,o){if(this.environment.mode!=="build")return;if(s.basename(o)===n){let l=t;return/defineCustomElement\s*\([^{]*\{[\s\S]*?styles\s*:/.test(t)||(l=t.replace(/(defineCustomElement\s*\(\s*[^,{]*,?\s*\{)/,`$1
30
- styles: ${r},`)),{code:l,map:null}}},generateBundle(t,o){let a="",l=[];const p=[];for(const d in o){const h=o[d];if(h.type==="chunk"&&h.code.includes(r)){a=d;break}}for(const d in o){const h=o[d];if(q(d)&&h.type==="asset"){let g=h.source.toString();g=g.replaceAll(":root",":host"),l.push(g),p.push(d)}}o[a].code=o[a].code.replace(r,JSON.stringify(l)),p.forEach(d=>{delete o[d]})}}}function q(e){return/\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/.test(e)}const _=C(async({mode:e,command:n})=>{const r=["VITE_","EODASH_"];return{base:i.base??"",cacheDir:Q,plugins:[J({features:{customElement:n==="build"&&i.lib},template:{transformAssetUrls:B,compilerOptions:{isCustomElement:t=>!t.includes("v-")&&t.includes("-")}}}),M({autoImport:!0}),e==="development"&&{name:"inject-html",configureServer:ee},i.lib&&Z()],customLogger:j,define:{__userConfigExist__:!!m,...n==="build"&&i.lib?{"process.env":"import.meta.env"}:{"process.env":{},...te(r)}},envPrefix:r,resolve:{alias:{"@":s.join(u,"core/client"),"^":s.join(u,"widgets"),"user:widgets":D,...m&&{"user:config":m}},extensions:[".js",".json",".jsx",".mjs",".ts",".tsx",".vue"]},server:{allowedHosts:!0,warmup:{clientFiles:[s.join(u,"core/client/**"),m]},port:i.port??3e3,open:i.open,fs:{allow:[W(process.cwd())]},host:i.host},root:u,...e==="development"&&{optimizeDeps:{include:["webfontloader","vuetify","vue","pinia","stac-js","urijs","loglevel","vega","vega-lite","vega-embed","@eox/map","@eox/map/src/plugins/advancedLayersAndSources","@eox/layercontrol","@eox/drawtools","@eox/chart","@eox/jsonform","@eox/layout","@eox/itemfilter","@eox/timecontrol","@eox/stacinfo","color-legend-element","@eox/map","@eox/map/src/plugins/advancedLayersAndSources","@eox/layercontrol","@eox/timecontrol","@eox/jsonform","@eox/layout","@eox/itemfilter","@eox/stacinfo","@eox/elements-utils"],noDiscovery:!0}},publicDir:i.publicDir===!1?!1:K,build:{outDir:w,emptyOutDir:!0,target:"esnext",cssMinify:!0,...i.lib&&n==="build"&&{minify:!1,lib:{entry:s.join(u,"core/client/asWebComponent.js"),fileName:(t,o)=>o==="asWebComponent"?"eo-dash.js":"templates.js",cssFileName:"eo-dash",formats:["es"],name:"@eodash/eodash"},rollupOptions:{input:{asWebComponent:s.join(u,"core/client/asWebComponent.js"),templates:s.join(u,"templates/index.js")},external:t=>{const o=t.includes("vuetify")||t.endsWith(".css")||t.endsWith("styles"),a=z.some(p=>t.startsWith(p));return!o&&a||t==="user:config"&&!m},treeshake:{moduleSideEffects:!0,preset:"smallest"}}}}}}),N=C(async e=>i.vite?U(await _(e),i.vite):_(e));async function ee(e){const n=[f,s.join(D,"**/*.vue")];m&&n.push(m),e.watcher.add(n);let r="";const t=j.info;return j.info=(o,a)=>{if(o.includes("core")){const l=o.split("/")[0].split(" ");l.pop();const p=l.join(" ")+" "+r.replace(c,"");return t(p,a)}return t(o,a)},e.watcher.on("change",async o=>{r=o,o===f&&e.ws.send({type:"full-reload",path:o})}),()=>{e.middlewares.use(async(o,a,l)=>{if(o.originalUrl==="/@fs/config.js"||o.originalUrl==="/config.js"){a.statusCode=200,a.setHeader("Content-Type","text/javascript"),v(f)&&await I(f).then(p=>{a.write(p)}),a.end();return}if(o.url?.endsWith(".html")){a.statusCode=200,a.setHeader("Content-Type","text/html");const p=await e.transformIndexHtml(o.url,k,o.originalUrl);a.end(p);return}l()})}}function te(e){G({quiet:!0});const n={};for(const r in process.env)e.some(t=>r.startsWith(t))&&(n["process.env."+r]=`"${process.env[r]}"`);return n}const oe=async()=>{const e=await O(await N({mode:"development",command:"serve"}));await e.listen(),e.printUrls(),e.bindCLIShortcuts({print:!0})},se=async()=>{const e=async()=>{const n=await N({mode:"production",command:"build"});await L(n),v(f)&&await V(f,s.join(w,"config.js"),{recursive:!0}).catch(r=>{console.error(r)})};if(i.lib)await e();else{const n=s.join(u,"/index.html");await T(n,k).then(async()=>{await e(),await R(n).catch(()=>{console.error("failed to remove index.html")})})}};async function ie(){(await A({root:c,base:i.base??"",preview:{port:isNaN(i.port)?8080:i.port,open:i.open,host:i.host},build:{outDir:w}})).printUrls()}const ne=process.argv?.[2];(async()=>{switch(ne){case"dev":await oe();break;case"build":await se();break;case"preview":await ie();break;default:console.error("command not found");break}})();
29
+ </html>`;function Z(e={customElementFileName:"asWebComponent.js",stylePlaceHolder:"__VUE_CE_STYLES__"}){const{customElementFileName:n,stylePlaceHolder:r}=e;return{name:"vite-plugin-vue-custom-element-style-injector",enforce:"post",async transform(o,i){if(this.environment.mode!=="build")return;if(t.basename(i)===n){let p=o;return/defineCustomElement\s*\([^{]*\{[\s\S]*?styles\s*:/.test(o)||(p=o.replace(/(defineCustomElement\s*\(\s*[^,{]*,?\s*\{)/,`$1
30
+ styles: ${r},`)),{code:p,map:null}}},generateBundle(o,i){let a="",p=[];const u=[];for(const d in i){const h=i[d];if(h.type==="chunk"&&h.code.includes(r)){a=d;break}}for(const d in i){const h=i[d];if(q(d)&&h.type==="asset"){let g=h.source.toString();g=g.replaceAll(":root",":host"),p.push(g),u.push(d)}}i[a].code=i[a].code.replace(r,JSON.stringify(p)),u.forEach(d=>{delete i[d]})}}}function q(e){return/\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/.test(e)}const _=C(async({mode:e,command:n})=>{const r=["VITE_","EODASH_"];return{base:s.base??"",cacheDir:Q,plugins:[J({features:{customElement:n==="build"&&s.lib},template:{transformAssetUrls:B,compilerOptions:{isCustomElement:o=>!o.includes("v-")&&o.includes("-")}}}),M({autoImport:!0}),e==="development"&&{name:"inject-html",configureServer:ee},s.lib&&Z()],customLogger:j,define:{__userConfigExist__:!!m,...n==="build"&&s.lib?{"process.env":"import.meta.env"}:{"process.env":{},...te(r)}},envPrefix:r,resolve:{alias:{"@":t.join(c,"core/client"),"^":t.join(c,"widgets"),"user:widgets":D,...m&&{"user:config":m}},extensions:[".js",".json",".jsx",".mjs",".ts",".tsx",".vue"]},server:{allowedHosts:!0,warmup:{clientFiles:[t.join(c,"core/client/**"),m]},port:s.port??3e3,open:s.open,fs:{allow:[W(process.cwd())]},host:s.host},root:c,...e==="development"&&{optimizeDeps:{include:["webfontloader","vuetify","vue","pinia","stac-js","urijs","loglevel","vega","vega-lite","vega-embed","@eox/map","@eox/map/src/plugins/advancedLayersAndSources","@eox/layercontrol","@eox/drawtools","@eox/chart","@eox/jsonform","@eox/layout","@eox/itemfilter","@eox/timecontrol","@eox/stacinfo","color-legend-element","@eox/map","@eox/map/src/plugins/advancedLayersAndSources","@eox/layercontrol","@eox/timecontrol","@eox/jsonform","@eox/layout","@eox/itemfilter","@eox/stacinfo","@eox/elements-utils","@eox/geosearch","@eox/timeslider"],noDiscovery:!0}},publicDir:s.publicDir===!1?!1:K,build:{outDir:w,emptyOutDir:!0,target:"esnext",cssMinify:!0,...!s.lib&&n==="build"&&{manifest:!0,rollupOptions:{input:{main:t.join(c,"index.html"),templates:t.join(c,"templates/index.js")}}},...s.lib&&n==="build"&&{minify:!1,lib:{entry:t.join(c,"core/client/asWebComponent.js"),fileName:(o,i)=>i==="asWebComponent"?"eo-dash.js":"templates.js",cssFileName:"eo-dash",formats:["es"],name:"@eodash/eodash"},rollupOptions:{input:{asWebComponent:t.join(c,"core/client/asWebComponent.js"),templates:t.join(c,"templates/index.js")},external:o=>{const i=o.includes("vuetify")||o.endsWith(".css")||o.endsWith("styles"),a=z.some(u=>o.startsWith(u));return!i&&a||o==="user:config"&&!m},treeshake:{moduleSideEffects:!0,preset:"smallest"}}}}}}),N=C(async e=>s.vite?O(await _(e),s.vite):_(e));async function ee(e){const n=[f,t.join(D,"**/*.vue")];m&&n.push(m),e.watcher.add(n);let r="";const o=j.info;return j.info=(i,a)=>{if(i.includes("core")){const p=i.split("/")[0].split(" ");p.pop();const u=p.join(" ")+" "+r.replace(l,"");return o(u,a)}return o(i,a)},e.watcher.on("change",async i=>{r=i,i===f&&e.ws.send({type:"full-reload",path:i})}),()=>{e.middlewares.use(async(i,a,p)=>{if(i.originalUrl==="/@fs/config.js"||i.originalUrl==="/config.js"){a.statusCode=200,a.setHeader("Content-Type","text/javascript"),v(f)&&await I(f).then(u=>{a.write(u)}),a.end();return}if(i.url?.endsWith(".html")){a.statusCode=200,a.setHeader("Content-Type","text/html");const u=await e.transformIndexHtml(i.url,k,i.originalUrl);a.end(u);return}p()})}}function te(e){G({quiet:!0});const n={};for(const r in process.env)e.some(o=>r.startsWith(o))&&(n["process.env."+r]=`"${process.env[r]}"`);return n}const oe=async()=>{const e=await A(await N({mode:"development",command:"serve"}));await e.listen(),e.printUrls(),e.bindCLIShortcuts({print:!0})},ie=async()=>{const e=async()=>{const n=await N({mode:"production",command:"build"});await L(n),v(f)&&await V(f,t.join(w,"config.js"),{recursive:!0}).catch(r=>{console.error(r)})};if(s.lib)await e();else{const n=t.join(c,"/index.html");await T(n,k).then(async()=>{await e(),await R(n).catch(()=>{console.error("failed to remove index.html")})})}};async function se(){(await U({root:l,base:s.base??"",preview:{port:isNaN(s.port)?8080:s.port,open:s.open,host:s.host},build:{outDir:w}})).printUrls()}const ne=process.argv?.[2];(async()=>{switch(ne){case"dev":await oe();break;case"build":await ie();break;case"preview":await se();break;default:console.error("command not found");break}})();
@@ -10,7 +10,7 @@ export class EodashCollection {
10
10
  source: {
11
11
  type: string;
12
12
  url: string;
13
- format: string;
13
+ projection: string;
14
14
  attributions: unknown;
15
15
  };
16
16
  properties: {
@@ -28,7 +28,10 @@ export class EodashCollection {
28
28
  source: {
29
29
  type: string;
30
30
  url: string | undefined;
31
- format: string;
31
+ format: {
32
+ type: string;
33
+ dataProjection: string | undefined;
34
+ };
32
35
  attributions: {}[];
33
36
  };
34
37
  properties: {
@@ -93,8 +96,15 @@ export class EodashCollection {
93
96
  })[];
94
97
  interactions: import("@eox/map/src/types").EOxInteraction[];
95
98
  } | null;
96
- /** @param {string} collectionUrl */
97
- constructor(collectionUrl: string);
99
+ /**
100
+ * @param {string} collectionUrl
101
+ * @param {boolean} isAPI
102
+ * @param {string | null} rasterEndpoint
103
+ */
104
+ constructor(collectionUrl: string, isAPI?: boolean, rasterEndpoint?: string | null);
105
+ isAPI: boolean;
106
+ /** @type {string | null} */
107
+ rasterEndpoint: string | null;
98
108
  /**
99
109
  * @type {import("stac-ts").StacLink
100
110
  * | import("stac-ts").StacItem
@@ -106,10 +116,10 @@ export class EodashCollection {
106
116
  get collectionStac(): import("stac-ts").StacCollection | undefined;
107
117
  /**
108
118
  * @async
109
- * @param {import('stac-ts').StacLink | Date} [linkOrDate]
110
- * @returns
119
+ * @param {import("stac-ts").StacItem | import('stac-ts').StacLink | Date } [itemOrDate]
120
+ * @returns {Promise<Record<string,any>[]>} layers
111
121
  */
112
- createLayersJson: (linkOrDate?: import("stac-ts").StacLink | Date) => Promise<Record<string, any>[]>;
122
+ createLayersJson: (itemOrDate?: import("stac-ts").StacItem | import("stac-ts").StacLink | Date) => Promise<Record<string, any>[]>;
113
123
  /**
114
124
  * @param {import("stac-ts").StacItem} item
115
125
  * @param {string} itemUrl
@@ -122,16 +132,20 @@ export class EodashCollection {
122
132
  fetchCollection(): Promise<import("stac-ts").StacCollection>;
123
133
  /**
124
134
  * Returns all item links sorted by datetime ascendingly
135
+ * @param {boolean} [fields=false] if true, fetch items from API with only properties
136
+ * @param {boolean} [first] - if true, returns the first page of items only (for API collections)
137
+ * @returns {Promise<import("stac-ts").StacLink[] | import("stac-ts").StacItem[] | undefined>}
125
138
  */
126
- getItems(): import("stac-ts").StacLink[] | undefined;
127
- getDates(): Date[] | undefined;
139
+ getItems(fields?: boolean, first?: boolean): Promise<import("stac-ts").StacLink[] | import("stac-ts").StacItem[] | undefined>;
140
+ getDates(): Promise<Date[]>;
128
141
  getExtent(): Promise<import("stac-ts").Extents | undefined>;
129
142
  /**
130
143
  * Get closest Item Link from a certain date,
131
144
  * get the latest if no date provided
132
145
  * @param {Date} [date]
146
+ * @return {Promise<import("stac-ts").StacItem | import("stac-ts").StacLink | undefined>} item
133
147
  **/
134
- getItem(date?: Date): import("stac-ts").StacLink | undefined;
148
+ getItem(date?: Date): Promise<import("stac-ts").StacItem | import("stac-ts").StacLink | undefined>;
135
149
  getToolTipProperties(): Promise<{
136
150
  id: string;
137
151
  title?: string;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Generic handler for possible authentications schemes as defined in STAC authentication extension.
3
+ * @param {import("../types").StacAuthItem } item
4
+ * @param {import("../types").StacAuthLink | import("../types").StacAuthAsset} linkOrAsset
5
+ * @returns {string}
6
+ */
7
+ export function handleAuthenticationOfLink(item: import("../types").StacAuthItem, linkOrAsset: import("../types").StacAuthLink | import("../types").StacAuthAsset): string;
@@ -15,7 +15,7 @@ export function createLayersFromAssets(collectionId: string, title: string, asse
15
15
  source: {
16
16
  type: string;
17
17
  url: string;
18
- format: string;
18
+ projection: string;
19
19
  attributions: unknown;
20
20
  };
21
21
  properties: {
@@ -33,7 +33,10 @@ export function createLayersFromAssets(collectionId: string, title: string, asse
33
33
  source: {
34
34
  type: string;
35
35
  url: string | undefined;
36
- format: string;
36
+ format: {
37
+ type: string;
38
+ dataProjection: string | undefined;
39
+ };
37
40
  attributions: {}[];
38
41
  };
39
42
  properties: {
@@ -63,4 +66,13 @@ export function createLayersFromAssets(collectionId: string, title: string, asse
63
66
  };
64
67
  style: import("../types").EodashStyleJson | undefined;
65
68
  })[]>;
66
- export function createLayersFromLinks(collectionId: string, title: string, item: import("stac-ts").StacItem, layerDatetime?: Record<string, any>, extraProperties?: object | null): Promise<Record<string, any>[]>;
69
+ /**
70
+ * Implementation of a function that creates a layer from the render extention
71
+ * @param {import("stac-ts").StacCollection | undefined | null} collection
72
+ * @param {import("stac-ts").StacItem | undefined | null} item
73
+ * @param {string} rasterURL
74
+ * @param {Record<string, any>} [extraProperties]
75
+ * @returns {import("@eox/map/src/layers").EOxLayerType<"Tile","XYZ">[]}
76
+ */
77
+ export function createLayerFromRender(rasterURL: string, collection: import("stac-ts").StacCollection | undefined | null, item: import("stac-ts").StacItem | undefined | null, extraProperties?: Record<string, any>): import("@eox/map/src/layers").EOxLayerType<"Tile", "XYZ">[];
78
+ export function createLayersFromLinks(collectionId: string, title: string, item: import("stac-ts").StacItem, itemUrl: string, layerDatetime?: Record<string, any>, extraProperties?: object | null): Promise<Record<string, any>[]>;
@@ -18,13 +18,18 @@ export function generateFeatures(links?: import("stac-ts").StacLink[], extraProp
18
18
  *
19
19
  * @param {string} collectionId
20
20
  * @param { import("../types").EodashStyleJson} [style]
21
+ * @param {Record<string,any>} [rasterJsonform]
21
22
  * */
22
- export function extractLayerConfig(collectionId: string, style?: import("../types").EodashStyleJson): {
23
- layerConfig: undefined;
24
- style: undefined;
23
+ export function extractLayerConfig(collectionId: string, style?: import("../types").EodashStyleJson, rasterJsonform?: Record<string, any>): {
24
+ layerConfig: {
25
+ schema: any;
26
+ legend: any;
27
+ type: string;
28
+ };
29
+ style: import("../types").EodashStyleJson | undefined;
25
30
  } | {
26
31
  layerConfig: Record<string, unknown> | undefined;
27
- style: import("../types").EodashStyleJson;
32
+ style: import("../types").EodashStyleJson | undefined;
28
33
  };
29
34
  /**
30
35
  * Function to extract collection urls from an indicator
@@ -64,11 +69,32 @@ export function generateLinksFromItems(items: import("stac-ts").StacItem[]): any
64
69
  export function revokeCollectionBlobUrls(collection: import("../eodashSTAC/EodashCollection.js").EodashCollection): void;
65
70
  /**
66
71
  *
67
- * @param {import("stac-ts").StacLink[]} [links]
72
+ * @param {import("stac-ts").StacLink[] | import("stac-ts").StacItem[] |undefined |null} [linksOrItems]
73
+ */
74
+ export function getDatetimeProperty(linksOrItems?: import("stac-ts").StacLink[] | import("stac-ts").StacItem[] | undefined | null): string | undefined;
75
+ /**
76
+ *
77
+ * @param {*} stacObject
78
+ * @returns {stacObject is import("stac-ts").StacItem}
79
+ */
80
+ export function isSTACItem(stacObject: any): stacObject is import("stac-ts").StacItem;
81
+ /**
82
+ * Fetch all STAC items from a STAC API endpoint.
83
+ * @param {string} itemsUrl
84
+ * @param {string} [query]
85
+ * @param {number} [limit=100] - The maximum number of items to fetch per request.
86
+ * @param {boolean} [returnFirst] - If true, only the first page of results will be returned.
87
+ * @param {number} [maxNumber=1000] - if the matched number of items exceed this, only the first page will be returned.
68
88
  */
69
- export function getDatetimeProperty(links?: import("stac-ts").StacLink[]): string | undefined;
89
+ export function fetchApiItems(itemsUrl: string, query?: string, limit?: number, returnFirst?: boolean, maxNumber?: number): Promise<import("stac-ts").StacItem[]>;
90
+ /**
91
+ * @param {import ("stac-ts").StacCollection | undefined | null} collection
92
+ * @returns {object}
93
+ */
94
+ export function extractLayerLegend(collection: import("stac-ts").StacCollection | undefined | null): object;
95
+ export function sanitizeBbox(bbox: number[]): number[];
70
96
  export function extractRoles(properties: Record<string, any>, linkOrAsset: import("stac-ts").StacLink | import("stac-ts").StacAsset): Record<string, any>;
71
- export function fetchStyle(item: import("stac-ts").StacItem, itemUrl: string): Promise<{
97
+ export function fetchStyle(item: import("stac-ts").StacItem, itemUrl: string, key?: string | undefined): Promise<{
72
98
  "fill-color"?: import("ol/style/flat.js").ColorExpression | undefined;
73
99
  "fill-pattern-src"?: import("ol/style/flat.js").StringExpression | undefined;
74
100
  "fill-pattern-size"?: import("ol/style/flat.js").SizeExpression | undefined;
@@ -446,18 +472,28 @@ export function fetchStyle(item: import("stac-ts").StacItem, itemUrl: string): P
446
472
  appendix?: string;
447
473
  }[];
448
474
  } | undefined>;
475
+ export function fetchAllStyles(item: import("stac-ts").StacItem, itemUrl: string): Promise<Array<import("../types").EodashStyleJson>>;
449
476
  export function getProjectionCode(projection?: string | number | {
450
477
  name: string;
451
478
  def: string;
452
479
  }): string;
453
- export function extractLayerDatetime(links?: import("stac-ts").StacLink[], currentStep?: string | null): {
454
- controlValues: string[];
455
- currentStep: string;
456
- slider: boolean;
457
- navigation: boolean;
458
- play: boolean;
459
- displayFormat: string;
460
- } | undefined;
480
+ export function extractLayerTimeValues(items?: import("stac-ts").StacLink[] | import("stac-ts").StacItem[] | undefined, currentStep?: string | null): {
481
+ layerDatetime: undefined;
482
+ timeControlValues: undefined;
483
+ } | {
484
+ layerDatetime: {
485
+ controlValues: string[];
486
+ currentStep: string;
487
+ slider: boolean;
488
+ navigation: boolean;
489
+ play: boolean;
490
+ displayFormat: string;
491
+ };
492
+ timeControlValues: {
493
+ date: string;
494
+ itemId: string;
495
+ }[];
496
+ };
461
497
  export function findLayer(layers: import("@eox/map").EoxLayer[], layer: string): import("@eox/map").EoxLayer | undefined;
462
498
  export function replaceLayer(currentLayers: import("@eox/map").EoxLayer[], oldLayer: string, newLayers: import("@eox/map").EoxLayer[]): import("@eox/map").EoxLayer[];
463
499
  export function getColFromLayer(indicators: import("../eodashSTAC/EodashCollection.js").EodashCollection[], layer: import("ol/layer").Layer): import("../eodashSTAC/EodashCollection.js").EodashCollection | undefined;
@@ -1,11 +1,11 @@
1
1
  export default vuetify;
2
2
  declare const vuetify: {
3
- install: (app: import("vue").App) => void;
3
+ install: (app: import("vue").App<any>) => void;
4
4
  unmount: () => void;
5
5
  defaults: import("vue").Ref<import("vuetify").DefaultsInstance, import("vuetify").DefaultsInstance>;
6
6
  display: import("vuetify").DisplayInstance;
7
7
  theme: import("vuetify").ThemeInstance & {
8
- install: (app: import("vue").App) => void;
8
+ install: (app: import("vue").App<any>) => void;
9
9
  };
10
10
  icons: {
11
11
  defaultSet: string;
@@ -13,17 +13,17 @@ declare const vuetify: {
13
13
  sets: Record<string, import("vuetify").IconSet>;
14
14
  };
15
15
  locale: {
16
- isRtl: import("vue").Ref<boolean>;
17
- rtl: import("vue").Ref<Record<string, boolean>>;
18
- rtlClasses: import("vue").Ref<string>;
19
16
  name: string;
20
17
  decimalSeparator: import("vue").ShallowRef<string>;
21
- messages: import("vue").Ref<import("vuetify").LocaleMessages>;
22
- current: import("vue").Ref<string>;
23
- fallback: import("vue").Ref<string>;
18
+ messages: import("vue").Ref<import("vuetify").LocaleMessages, import("vuetify").LocaleMessages>;
19
+ current: import("vue").Ref<string, string>;
20
+ fallback: import("vue").Ref<string, string>;
24
21
  t: (key: string, ...params: unknown[]) => string;
25
22
  n: (value: number) => string;
26
23
  provide: (props: import("vuetify").LocaleOptions) => import("vuetify").LocaleInstance;
24
+ isRtl: import("vue").Ref<boolean, boolean>;
25
+ rtl: import("vue").Ref<Record<string, boolean>, Record<string, boolean>>;
26
+ rtlClasses: import("vue").Ref<string, string>;
27
27
  };
28
28
  date: {
29
29
  options: {
@@ -35,7 +35,6 @@ declare const vuetify: {
35
35
  locale: Record<string, any>;
36
36
  };
37
37
  instance: {
38
- locale?: any;
39
38
  date: (value?: any) => unknown;
40
39
  format: (date: unknown, formatString: string) => string;
41
40
  toJsDate: (value: unknown) => Date;
@@ -43,7 +42,7 @@ declare const vuetify: {
43
42
  toISO: (date: unknown) => string;
44
43
  startOfDay: (date: unknown) => unknown;
45
44
  endOfDay: (date: unknown) => unknown;
46
- startOfWeek: (date: unknown, firstDayOfWeek?: number | string) => unknown;
45
+ startOfWeek: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown;
47
46
  endOfWeek: (date: unknown) => unknown;
48
47
  startOfMonth: (date: unknown) => unknown;
49
48
  endOfMonth: (date: unknown) => unknown;
@@ -65,10 +64,10 @@ declare const vuetify: {
65
64
  addMonths: (date: unknown, amount: number) => unknown;
66
65
  getYear: (date: unknown) => number;
67
66
  setYear: (date: unknown, year: number) => unknown;
68
- getDiff: (date: unknown, comparing: unknown, unit?: string) => number;
69
- getWeekArray: (date: unknown, firstDayOfWeek?: number | string) => unknown[][];
70
- getWeekdays: (firstDayOfWeek?: number | string, weekdayFormat?: "long" | "short" | "narrow") => string[];
71
- getWeek: (date: unknown, firstDayOfWeek?: number | string, firstWeekMinSize?: number) => number;
67
+ getDiff: (date: unknown, comparing: unknown, unit?: string | undefined) => number;
68
+ getWeekArray: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown[][];
69
+ getWeekdays: (firstDayOfWeek?: string | number | undefined, weekdayFormat?: "long" | "narrow" | "short" | undefined) => string[];
70
+ getWeek: (date: unknown, firstDayOfWeek?: string | number | undefined, firstDayOfYear?: string | number | undefined) => number;
72
71
  getMonth: (date: unknown) => number;
73
72
  setMonth: (date: unknown, month: number) => unknown;
74
73
  getDate: (date: unknown) => number;
@@ -79,6 +78,7 @@ declare const vuetify: {
79
78
  setHours: (date: unknown, hours: number) => unknown;
80
79
  getMinutes: (date: unknown) => number;
81
80
  setMinutes: (date: unknown, minutes: number) => unknown;
81
+ locale?: any;
82
82
  };
83
83
  };
84
84
  goTo: import("vuetify").GoToInstance;
@@ -1,5 +1,7 @@
1
1
  export function getLayers(): import("@eox/map").EoxLayer[];
2
2
  export function getCompareLayers(): import("@eox/map").EoxLayer[];
3
+ export function getChartSpec(): import("vega-embed").VisualizationSpec | null;
4
+ export function getCompareChartSpec(): import("vega-embed").VisualizationSpec | null;
3
5
  export function registerProjection(projection?: string | number | {
4
6
  name: string;
5
7
  def: string;