@eodash/eodash 5.2.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 (119) hide show
  1. package/core/client/components/DashboardLayout.vue +0 -1
  2. package/core/client/composables/index.js +53 -59
  3. package/core/client/eodashSTAC/EodashCollection.js +196 -94
  4. package/core/client/eodashSTAC/auth.js +86 -0
  5. package/core/client/eodashSTAC/createLayers.js +204 -4
  6. package/core/client/eodashSTAC/helpers.js +258 -58
  7. package/core/client/eodashSTAC/parquet.js +0 -13
  8. package/core/client/eodashSTAC/triggers.js +1 -1
  9. package/core/client/store/actions.js +14 -0
  10. package/core/client/store/stac.js +46 -8
  11. package/core/client/store/states.js +6 -0
  12. package/core/client/types.ts +206 -3
  13. package/core/client/utils/bands-editor/arithmetic.js +144 -0
  14. package/core/client/utils/bands-editor/colors.js +36 -0
  15. package/core/client/utils/bands-editor/dom.js +196 -0
  16. package/core/client/utils/bands-editor/exampleSchema.json +1320 -0
  17. package/core/client/utils/bands-editor/index.js +68 -0
  18. package/core/client/utils/bands-editor/rgb.js +102 -0
  19. package/core/client/utils/index.js +5 -2
  20. package/core/client/views/Dashboard.vue +1 -1
  21. package/core/client/vite-env.d.ts +122 -0
  22. package/dist/client/{DashboardLayout-Dq9Kfe6O.js → DashboardLayout-Cq15p4TH.js} +4 -5
  23. package/dist/client/{DynamicWebComponent-DCBMXskE.js → DynamicWebComponent-Cv-fPRG1.js} +1 -1
  24. package/dist/client/{EodashDatePicker-DtngxU6s.js → EodashDatePicker-CPlJwEIO.js} +20 -22
  25. package/dist/client/{EodashItemFilter-ClQebJQt.js → EodashItemFilter-Ydebgbjj.js} +46 -31
  26. package/dist/client/EodashLayerControl-COhrkNEs.js +1517 -0
  27. package/dist/client/{EodashLayoutSwitcher-DQ8SfVDd.js → EodashLayoutSwitcher-pnKhTRZV.js} +4 -4
  28. package/dist/client/EodashMapBtns-Cj0Fx119.js +301 -0
  29. package/dist/client/{EodashStacInfo-Dt1nF06x.js → EodashStacInfo-Dadkg_Nj.js} +1 -1
  30. package/dist/client/EodashTimeSlider-CpoHX0S7.js +53 -0
  31. package/dist/client/{EodashTools-DV5ykmWc.js → EodashTools-UGBG7KC9.js} +10 -7
  32. package/dist/client/{ExportState-B6zZQUmE.js → ExportState-GtJkAqeZ.js} +145 -120
  33. package/dist/client/{Footer-DNhXs8k6.js → Footer-D3ZPG5c4.js} +1 -1
  34. package/dist/client/{Header-BjhN5JY4.js → Header-z6AK-wpN.js} +2 -2
  35. package/dist/client/MobileLayout-BXNsNftb.js +118 -0
  36. package/dist/client/{PopUp-CgpvNr3o.js → PopUp-BbQdjENV.js} +79 -43
  37. package/dist/client/{ProcessList-vecpxThi.js → ProcessList-C6VsdsYI.js} +5 -6
  38. package/dist/client/{VImg-CETuikH2.js → VImg-CxaMSB99.js} +6 -3
  39. package/dist/client/{VMain-Ci9DyaGU.js → VMain-Ds7yw0wj.js} +1 -1
  40. package/dist/client/{VTooltip-J4ac48X7.js → VTooltip-Cze6CEVh.js} +2 -2
  41. package/dist/client/{WidgetsContainer-CCML4TyV.js → WidgetsContainer-D66bj-JJ.js} +1 -1
  42. package/dist/client/asWebComponent-CWbNRdf9.js +8895 -0
  43. package/dist/client/{async-B7jIrM53.js → async-BA7oWCMX.js} +2 -2
  44. package/dist/client/easing-CH0-9wR8.js +35 -0
  45. package/dist/client/eo-dash.js +1 -1
  46. package/dist/client/{forwardRefs-BQclvjMq.js → forwardRefs-BUfxOIo-.js} +58 -45
  47. package/dist/client/{handling-BS24aG1q.js → handling-DlNTtKB-.js} +12 -6
  48. package/dist/client/{helpers-wXK7Ywio.js → helpers-CtE0W7iu.js} +572 -277
  49. package/dist/client/{index-4UCzZi8B.js → index-CeEZIjO6.js} +26 -13
  50. package/dist/client/{index-B2XpdgR6.js → index-CsKbRDeN.js} +63 -36
  51. package/dist/client/{index-9KR-G20t.js → index-D4_NRKrf.js} +2 -2
  52. package/dist/client/index-DeECc3lV.js +571 -0
  53. package/dist/client/templates.js +82 -15
  54. package/dist/client/{transition-yBii4fu6.js → transition-Byvp3L6Y.js} +1 -1
  55. package/dist/node/cli.js +6 -6
  56. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +24 -10
  57. package/dist/types/core/client/eodashSTAC/auth.d.ts +7 -0
  58. package/dist/types/core/client/eodashSTAC/createLayers.d.ts +15 -3
  59. package/dist/types/core/client/eodashSTAC/helpers.d.ts +46 -15
  60. package/dist/types/core/client/plugins/vuetify.d.ts +14 -14
  61. package/dist/types/core/client/store/actions.d.ts +2 -0
  62. package/dist/types/core/client/store/stac.d.ts +16 -7
  63. package/dist/types/core/client/store/states.d.ts +4 -0
  64. package/dist/types/core/client/types.d.ts +170 -2
  65. package/dist/types/core/client/utils/bands-editor/arithmetic.d.ts +8 -0
  66. package/dist/types/core/client/utils/bands-editor/colors.d.ts +15 -0
  67. package/dist/types/core/client/utils/bands-editor/dom.d.ts +42 -0
  68. package/dist/types/core/client/utils/bands-editor/index.d.ts +20 -0
  69. package/dist/types/core/client/utils/bands-editor/rgb.d.ts +15 -0
  70. package/dist/types/core/client/utils/index.d.ts +1 -1
  71. package/dist/types/templates/baseConfig.d.ts +87 -1
  72. package/dist/types/templates/expert.d.ts +6 -6
  73. package/dist/types/templates/explore.d.ts +67 -0
  74. package/dist/types/templates/index.d.ts +1 -1
  75. package/dist/types/templates/{light.d.ts → lite.d.ts} +5 -5
  76. package/dist/types/widgets/EodashItemCatalog/index.vue.d.ts +21 -0
  77. package/dist/types/widgets/EodashItemCatalog/methods/filters.d.ts +49 -0
  78. package/dist/types/widgets/EodashItemCatalog/methods/handlers.d.ts +4 -0
  79. package/dist/types/widgets/EodashItemCatalog/methods/map.d.ts +12 -0
  80. package/dist/types/widgets/EodashItemCatalog/types.d.ts +14 -0
  81. package/dist/types/widgets/EodashMap/EodashMapBtns.vue.d.ts +2 -0
  82. package/dist/types/widgets/EodashMap/index.vue.d.ts +108 -2
  83. package/dist/types/widgets/EodashMap/methods/create-layers-config.d.ts +1 -1
  84. package/dist/types/widgets/EodashMap/methods/index.d.ts +1 -1
  85. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.d.ts +1 -1
  86. package/dist/types/widgets/EodashTimeSlider.vue.d.ts +7 -0
  87. package/dist/types/widgets/EodashTools.vue.d.ts +10 -10
  88. package/dist/types/widgets/ExportState.vue.d.ts +2 -0
  89. package/package.json +28 -27
  90. package/templates/baseConfig.js +10 -5
  91. package/templates/compare.js +2 -2
  92. package/templates/expert.js +5 -5
  93. package/templates/explore.js +62 -0
  94. package/templates/index.js +1 -1
  95. package/templates/{light.js → lite.js} +1 -1
  96. package/widgets/EodashDatePicker.vue +15 -18
  97. package/widgets/EodashItemCatalog/index.vue +161 -0
  98. package/widgets/EodashItemCatalog/methods/filters.js +216 -0
  99. package/widgets/EodashItemCatalog/methods/handlers.js +50 -0
  100. package/widgets/EodashItemCatalog/methods/map.js +144 -0
  101. package/widgets/EodashItemCatalog/types.ts +15 -0
  102. package/widgets/EodashItemFilter.vue +35 -28
  103. package/widgets/EodashLayerControl.vue +10 -6
  104. package/widgets/EodashLayoutSwitcher.vue +1 -1
  105. package/widgets/EodashMap/EodashMapBtns.vue +18 -9
  106. package/widgets/EodashMap/index.vue +22 -12
  107. package/widgets/EodashMap/methods/create-layers-config.js +9 -6
  108. package/widgets/EodashMap/methods/index.js +27 -13
  109. package/widgets/EodashProcess/index.vue +17 -1
  110. package/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.js +9 -3
  111. package/widgets/EodashProcess/methods/handling.js +2 -0
  112. package/widgets/EodashProcess/methods/outputs.js +1 -0
  113. package/widgets/EodashTimeSlider.vue +40 -0
  114. package/widgets/EodashTools.vue +7 -3
  115. package/widgets/ExportState.vue +53 -22
  116. package/dist/client/EodashLayerControl-BLBds28C.js +0 -154
  117. package/dist/client/EodashMapBtns-B89_YBDw.js +0 -326
  118. package/dist/client/MobileLayout-JelB6w1G.js +0 -118
  119. package/dist/client/asWebComponent-ZyEzWOOf.js +0 -19092
@@ -5,7 +5,60 @@ declare const _default: import("vue").DefineComponent<{}, {
5
5
  enableCursorCoordinates: boolean;
6
6
  enableScaleLine: boolean;
7
7
  btnsPosition: Record<string, any>;
8
- btns: Record<string, any>;
8
+ btns: {
9
+ enableExportMap?: boolean;
10
+ enableChangeProjection?: boolean;
11
+ enableBackToPOIs?: boolean;
12
+ enableSearch?: boolean;
13
+ enableZoom?: boolean;
14
+ enableCompareIndicators?: boolean | {
15
+ compareTemplate?: string;
16
+ fallbackTemplate?: string;
17
+ itemFilterConfig?: InstanceType<import("vue").DefineComponent<{}, {
18
+ $emit: (event: "select", ...args: any[]) => void;
19
+ enableCompare: boolean;
20
+ filtersTitle: string;
21
+ resultsTitle: string;
22
+ titleProperty: string;
23
+ imageProperty: string;
24
+ subTitleProperty: string;
25
+ resultType: string;
26
+ cssVars: string | Record<string, any>;
27
+ enableHighlighting: boolean;
28
+ expandMultipleFilters: boolean;
29
+ expandMultipleResults: boolean;
30
+ styleOverride: string;
31
+ filterProperties: {
32
+ keys: string[];
33
+ title: string;
34
+ type: string;
35
+ expanded?: boolean;
36
+ }[];
37
+ aggregateResults?: string | undefined;
38
+ $props: {
39
+ readonly enableCompare?: boolean | undefined;
40
+ readonly filtersTitle?: string | undefined;
41
+ readonly resultsTitle?: string | undefined;
42
+ readonly titleProperty?: string | undefined;
43
+ readonly imageProperty?: string | undefined;
44
+ readonly subTitleProperty?: string | undefined;
45
+ readonly resultType?: string | undefined;
46
+ readonly cssVars?: string | Record<string, any> | undefined;
47
+ readonly enableHighlighting?: boolean | undefined;
48
+ readonly expandMultipleFilters?: boolean | undefined;
49
+ readonly expandMultipleResults?: boolean | undefined;
50
+ readonly styleOverride?: string | undefined;
51
+ readonly filterProperties?: {
52
+ keys: string[];
53
+ title: string;
54
+ type: string;
55
+ expanded?: boolean;
56
+ }[] | undefined;
57
+ readonly aggregateResults?: string | undefined;
58
+ };
59
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>["$props"];
60
+ };
61
+ };
9
62
  center?: [number, number] | undefined;
10
63
  $props: {
11
64
  readonly enableCompare?: boolean | undefined;
@@ -14,7 +67,60 @@ declare const _default: import("vue").DefineComponent<{}, {
14
67
  readonly enableCursorCoordinates?: boolean | undefined;
15
68
  readonly enableScaleLine?: boolean | undefined;
16
69
  readonly btnsPosition?: Record<string, any> | undefined;
17
- readonly btns?: Record<string, any> | undefined;
70
+ readonly btns?: {
71
+ enableExportMap?: boolean;
72
+ enableChangeProjection?: boolean;
73
+ enableBackToPOIs?: boolean;
74
+ enableSearch?: boolean;
75
+ enableZoom?: boolean;
76
+ enableCompareIndicators?: boolean | {
77
+ compareTemplate?: string;
78
+ fallbackTemplate?: string;
79
+ itemFilterConfig?: InstanceType<import("vue").DefineComponent<{}, {
80
+ $emit: (event: "select", ...args: any[]) => void;
81
+ enableCompare: boolean;
82
+ filtersTitle: string;
83
+ resultsTitle: string;
84
+ titleProperty: string;
85
+ imageProperty: string;
86
+ subTitleProperty: string;
87
+ resultType: string;
88
+ cssVars: string | Record<string, any>;
89
+ enableHighlighting: boolean;
90
+ expandMultipleFilters: boolean;
91
+ expandMultipleResults: boolean;
92
+ styleOverride: string;
93
+ filterProperties: {
94
+ keys: string[];
95
+ title: string;
96
+ type: string;
97
+ expanded?: boolean;
98
+ }[];
99
+ aggregateResults?: string | undefined;
100
+ $props: {
101
+ readonly enableCompare?: boolean | undefined;
102
+ readonly filtersTitle?: string | undefined;
103
+ readonly resultsTitle?: string | undefined;
104
+ readonly titleProperty?: string | undefined;
105
+ readonly imageProperty?: string | undefined;
106
+ readonly subTitleProperty?: string | undefined;
107
+ readonly resultType?: string | undefined;
108
+ readonly cssVars?: string | Record<string, any> | undefined;
109
+ readonly enableHighlighting?: boolean | undefined;
110
+ readonly expandMultipleFilters?: boolean | undefined;
111
+ readonly expandMultipleResults?: boolean | undefined;
112
+ readonly styleOverride?: string | undefined;
113
+ readonly filterProperties?: {
114
+ keys: string[];
115
+ title: string;
116
+ type: string;
117
+ expanded?: boolean;
118
+ }[] | undefined;
119
+ readonly aggregateResults?: string | undefined;
120
+ };
121
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>["$props"];
122
+ };
123
+ } | undefined;
18
124
  readonly center?: [number, number] | undefined;
19
125
  };
20
126
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,4 +1,4 @@
1
- export function createLayersConfig(selectedIndicator: import("stac-ts").StacCatalog | import("stac-ts").StacCollection | import("stac-ts").StacItem | null, eodashCols: EodashCollection[], updatedTime?: string): Promise<{
1
+ export function createLayersConfig(selectedIndicator: import("stac-ts").StacCatalog | import("stac-ts").StacCollection | import("stac-ts").StacItem | null, eodashCols: EodashCollection[], timeOrItem?: string | import("stac-ts").StacItem | null): Promise<{
2
2
  type: string;
3
3
  properties: {
4
4
  id: string;
@@ -1,5 +1,5 @@
1
1
  export function useHandleMapMoveEnd(mapElement: import("vue").Ref<(HTMLElement & Record<string, any> & {
2
2
  map: import("ol").Map;
3
3
  }) | null>, mapPosition: import("vue").Ref<(number | undefined)[]>): void;
4
- export function useInitMap(mapElement: import("vue").Ref<import("@eox/map").EOxMap | null>, selectedIndicator: import("vue").Ref<import("stac-ts").StacCollection | null>, eodashCols: import("../../../core/client/eodashSTAC/EodashCollection").EodashCollection[], datetime: import("vue").Ref<string>, mapLayers: import("vue").Ref<Record<string, any>[]>, partnerMap: import("vue").Ref<import("@eox/map").EOxMap | null>, zoomToExtent: boolean): void;
4
+ export function useInitMap(mapElement: import("vue").Ref<import("@eox/map").EOxMap | null>, selectedIndicator: import("vue").Ref<import("stac-ts").StacCollection | null>, eodashCols: import("../../../core/client/eodashSTAC/EodashCollection").EodashCollection[], datetime: import("vue").Ref<string>, mapLayers: import("vue").Ref<Record<string, any>[]>, partnerMap: import("vue").Ref<import("@eox/map").EOxMap | null>, zoomToExtent: boolean, selectedItem?: import("vue").Ref<import("stac-ts").StacItem | import("stac-ts").StacLink | null>): void;
5
5
  export function useUpdateTooltipProperties(eodashCols: import("../../../core/client/eodashSTAC/EodashCollection").EodashCollection[], tooltipProperties: import("vue").Ref<Exclude<import("../../../core/client/types").EodashStyleJson["tooltip"], undefined>>): void;
@@ -2,4 +2,4 @@
2
2
  *
3
3
  * @param {import("../../../../EodashProcess/types").CustomEnpointInput} param0
4
4
  */
5
- export function handleEOxHubEndpoint({ links, jsonformValue, isPolling, selectedStac, jobs, enableCompare, }: import("../../../../EodashProcess/types").CustomEnpointInput): Promise<(import("@eox/map/src/layers").EOxLayerType<"Vector", "Vector"> | import("@eox/map/src/layers").EOxLayerType<"Vector", "FlatGeoBuf"> | import("@eox/map/src/layers").EOxLayerType<"Vector", "Cluster"> | import("@eox/map/src/layers").EOxLayerType<"VectorTile", "VectorTile"> | import("@eox/map/src/layers").EOxLayerType<"WebGLTile", "GeoTIFF"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "OSM"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "WMTSCapabilities"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "StadiaMaps"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "WMTS"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "XYZ"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileJSON"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileArcGISRest"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileDebug"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileImage"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileWMS"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "UrlTile"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "BingMaps"> | import("@eox/map/src/layers").EOxLayerType<"Image", "Image"> | import("@eox/map/src/layers").EOxLayerType<"Image", "ImageCanvas"> | import("@eox/map/src/layers").EOxLayerType<"Image", "ImageStatic"> | import("@eox/map/src/layers").EOxLayerType<"Image", "ImageWMS"> | import("@eox/map/src/layers").EOxLayerType<"Image", "Raster"> | import("@eox/map/src/layers").EOxLayerType<"Image", "IIIF"> | import("@eox/map/src/layers").EOxLayerTypeGroup)[] | undefined>;
5
+ export function handleEOxHubEndpoint({ links, jsonformValue, isPolling, selectedStac, jobs, enableCompare, }: import("../../../../EodashProcess/types").CustomEnpointInput): Promise<(import("@eox/map/src/layers").EOxLayerType<"Vector", "Vector"> | import("@eox/map/src/layers").EOxLayerType<"Vector", "FlatGeoBuf"> | import("@eox/map/src/layers").EOxLayerType<"Vector", "Cluster"> | import("@eox/map/src/layers").EOxLayerType<"VectorTile", "VectorTile"> | import("@eox/map/src/layers").EOxLayerType<"WebGLTile", "GeoTIFF"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "OSM"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "WMTSCapabilities"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "StadiaMaps"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "WMTS"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "XYZ"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileJSON"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileArcGISRest"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileDebug"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileImage"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "TileWMS"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "UrlTile"> | import("@eox/map/src/layers").EOxLayerType<"Tile", "BingMaps"> | import("@eox/map/src/layers").EOxLayerType<"Image", "Image"> | import("@eox/map/src/layers").EOxLayerType<"Image", "ImageCanvas"> | import("@eox/map/src/layers").EOxLayerType<"Image", "ImageStatic"> | import("@eox/map/src/layers").EOxLayerType<"Image", "ImageWMS"> | import("@eox/map/src/layers").EOxLayerType<"Image", "Raster"> | import("@eox/map/src/layers").EOxLayerType<"Image", "IIIF"> | import("@eox/map/src/layers").EOxLayerTypeMapboxStyle | import("@eox/map/src/layers").EOxLayerTypeGroup)[] | undefined>;
@@ -0,0 +1,7 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {
2
+ filters: unknown[];
3
+ $props: {
4
+ readonly filters?: unknown[] | undefined;
5
+ };
6
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
7
+ export default _default;
@@ -1,9 +1,4 @@
1
1
  declare const _default: import("vue").DefineComponent<{}, {
2
- showIndicatorsBtn: boolean;
3
- showLayoutSwitcher: boolean;
4
- layoutTarget: string;
5
- layoutIcon: string;
6
- indicatorBtnText: string;
7
2
  itemFilterConfig: Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never> & {
8
3
  readonly enableCompare?: boolean | undefined;
9
4
  readonly filtersTitle?: string | undefined;
@@ -25,12 +20,12 @@ declare const _default: import("vue").DefineComponent<{}, {
25
20
  }[] | undefined;
26
21
  readonly aggregateResults?: string | undefined;
27
22
  };
23
+ showIndicatorsBtn: boolean;
24
+ showLayoutSwitcher: boolean;
25
+ layoutTarget: string;
26
+ layoutIcon: string;
27
+ indicatorBtnText: string;
28
28
  $props: {
29
- readonly showIndicatorsBtn?: boolean | undefined;
30
- readonly showLayoutSwitcher?: boolean | undefined;
31
- readonly layoutTarget?: string | undefined;
32
- readonly layoutIcon?: string | undefined;
33
- readonly indicatorBtnText?: string | undefined;
34
29
  readonly itemFilterConfig?: (Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never> & {
35
30
  readonly enableCompare?: boolean | undefined;
36
31
  readonly filtersTitle?: string | undefined;
@@ -52,6 +47,11 @@ declare const _default: import("vue").DefineComponent<{}, {
52
47
  }[] | undefined;
53
48
  readonly aggregateResults?: string | undefined;
54
49
  }) | undefined;
50
+ readonly showIndicatorsBtn?: boolean | undefined;
51
+ readonly showLayoutSwitcher?: boolean | undefined;
52
+ readonly layoutTarget?: string | undefined;
53
+ readonly layoutIcon?: string | undefined;
54
+ readonly indicatorBtnText?: string | undefined;
55
55
  };
56
56
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
57
57
  export default _default;
@@ -1,7 +1,9 @@
1
1
  declare const _default: import("vue").DefineComponent<{}, {
2
2
  getLayers: Function;
3
+ getChartSpec: Function;
3
4
  $props: {
4
5
  readonly getLayers?: Function | undefined;
6
+ readonly getChartSpec?: Function | undefined;
5
7
  };
6
8
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
7
9
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eodash/eodash",
3
- "version": "5.2.0",
3
+ "version": "5.3.0",
4
4
  "type": "module",
5
5
  "types": "./dist/types/core/client/types.d.ts",
6
6
  "files": [
@@ -66,67 +66,68 @@
66
66
  },
67
67
  "dependencies": {
68
68
  "@eox/chart": "^1.0.1",
69
- "@eox/drawtools": "^1.1.2",
69
+ "@eox/drawtools": "^1.1.3",
70
70
  "@eox/geosearch": "^1.1.0",
71
- "@eox/itemfilter": "^1.10.3",
72
- "@eox/jsonform": "^1.3.2",
73
- "@eox/layercontrol": "^1.1.2",
71
+ "@eox/itemfilter": "^1.12.1",
72
+ "@eox/jsonform": "^1.4.2",
73
+ "@eox/layercontrol": "^1.3.1",
74
74
  "@eox/layout": "^1.0.0",
75
- "@eox/map": "^1.24.2",
75
+ "@eox/map": "^1.26.1",
76
76
  "@eox/stacinfo": "^1.0.1",
77
77
  "@eox/timecontrol": "^1.0.2",
78
+ "@eox/timeslider": "https://pkg.pr.new/EOX-A/EOxElements/@eox/timeslider@9873028",
78
79
  "@eox/ui": "^0.4.0",
79
80
  "@mdi/js": "^7.4.47",
80
81
  "@vitejs/plugin-vue": "^5.2.4",
81
- "@vueuse/core": "^13.6.0",
82
+ "@vueuse/core": "^13.9.0",
82
83
  "animated-details": "gist:2912bb049fa906671807415eb0e87188",
83
- "axios": "^1.11.0",
84
- "axios-cache-interceptor": "^1.8.0",
84
+ "axios": "^1.12.2",
85
+ "axios-cache-interceptor": "^1.8.3",
85
86
  "color-legend-element": "^1.3.0",
86
- "commander": "^14.0.0",
87
- "core-js": "^3.44.0",
88
- "dotenv": "^17.2.1",
89
- "hyparquet": "^1.17.1",
87
+ "commander": "^14.0.1",
88
+ "core-js": "^3.45.1",
89
+ "dotenv": "^17.2.3",
90
+ "hyparquet": "^1.20.1",
90
91
  "loglevel": "^1.9.2",
91
92
  "mustache": "^4.2.0",
92
93
  "pinia": "^3.0.3",
93
94
  "proj4": "^2.19.10",
94
- "sass": "^1.89.2",
95
- "stac-js": "^0.1.6",
95
+ "sass": "^1.93.2",
96
+ "stac-js": "^0.1.9",
96
97
  "stac-ts": "^1.0.4",
97
98
  "v-calendar": "3.0.0",
98
99
  "vega": "^5.33.0",
99
100
  "vega-embed": "^6.29.0",
100
101
  "vega-lite": "^5.23.0",
101
- "vite": "^6.3.5",
102
- "vite-plugin-vuetify": "^2.1.1",
102
+ "vite": "^6.3.6",
103
+ "vite-plugin-vuetify": "^2.1.2",
103
104
  "vue": "^3.5.17",
104
- "vuetify": "^3.9.2",
105
+ "vuetify": "^3.10.5",
105
106
  "webfontloader": "^1.6.28"
106
107
  },
107
108
  "devDependencies": {
108
- "@babel/types": "^7.28.2",
109
+ "@babel/types": "^7.28.4",
109
110
  "@eox/eslint-config": "^2.0.0",
110
111
  "@pinia/testing": "^1.0.2",
111
112
  "@types/json-schema": "^7.0.15",
112
113
  "@types/mustache": "^4.2.6",
113
- "@types/node": "^24.1.0",
114
+ "@types/node": "^24.7.0",
114
115
  "@types/openlayers": "^4.6.23",
115
116
  "@types/webfontloader": "^1.6.38",
116
- "cypress": "^14.5.3",
117
- "eslint": "^9.32.0",
117
+ "cypress": "^14.5.4",
118
+ "eslint": "^9.37.0",
118
119
  "eslint-plugin-vue": "^9.33.0",
119
120
  "pkg-pr-new": "^0.0.54",
120
121
  "prettier": "^3.6.2",
121
- "rollup": "^4.46.1",
122
+ "rollup": "^4.52.4",
122
123
  "terminate": "^2.8.0",
123
124
  "tsc-alias": "^1.8.16",
124
- "typedoc": "^0.28.8",
125
- "typedoc-plugin-markdown": "^4.7.1",
125
+ "typedoc": "^0.28.13",
126
+ "typedoc-plugin-markdown": "^4.9.0",
126
127
  "typedoc-plugin-vue": "^1.5.0",
127
128
  "typedoc-vitepress-theme": "^1.1.2",
128
- "typescript": "^5.8.3",
129
- "vitepress": "^1.6.3",
129
+ "typescript": "^5.9.3",
130
+ "vitepress": "^1.6.4",
130
131
  "vitest": "^3.2.4",
131
132
  "vue-tsc": "3.0.1"
132
133
  },
@@ -1,7 +1,8 @@
1
1
  import { deepmergeInto } from "deepmerge-ts";
2
- import light from "./light";
2
+ import lite from "./lite";
3
3
  import expert from "./expert";
4
4
  import compare from "./compare";
5
+ import explore from "./explore";
5
6
 
6
7
  /** @type {import("@/types").Eodash} */
7
8
  const baseConfig = {
@@ -9,8 +10,11 @@ const baseConfig = {
9
10
  options: {
10
11
  // useSubCode: true,
11
12
  },
12
- stacEndpoint:
13
- "https://esa-eodashboards.github.io/eodashboard-catalog/trilateral/catalog.json",
13
+ stacEndpoint: {
14
+ endpoint:
15
+ "https://esa-eodashboards.github.io/eodashboard-catalog/trilateral/catalog.json",
16
+ api: false,
17
+ },
14
18
  brand: {
15
19
  noLayout: true,
16
20
  name: "Demo",
@@ -50,14 +54,15 @@ const baseConfig = {
50
54
  footerText: "Demo configuration of eodash client",
51
55
  },
52
56
  templates: {
53
- light,
57
+ lite,
54
58
  expert,
55
59
  compare,
60
+ explore,
56
61
  },
57
62
  };
58
63
 
59
64
  /**
60
- * @param {Partial<import("@/types").Eodash>} config
65
+ * @param {import("vega-lite").DeepPartial<import("@/types").Eodash>} config
61
66
  */
62
67
  export const getBaseConfig = (config) => {
63
68
  const merged = /** @type {import("@/types").Eodash} */ ({});
@@ -33,7 +33,7 @@ export default {
33
33
  id: "Tools",
34
34
  type: "internal",
35
35
  title: "Tools",
36
- layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
36
+ layout: { x: 0, y: 0, w: "3/3/2", h: 2 },
37
37
  widget: {
38
38
  name: "EodashTools",
39
39
  properties: {
@@ -53,7 +53,7 @@ export default {
53
53
  id: "CompareTools",
54
54
  type: "internal",
55
55
  title: "Tools",
56
- layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 1 },
56
+ layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 2 },
57
57
  widget: {
58
58
  name: "EodashTools",
59
59
  properties: {
@@ -4,7 +4,7 @@ import { includesProcess } from "@/store/actions";
4
4
  /** @type {import("@/types").Template} */
5
5
  export default {
6
6
  loading: {
7
- id: Symbol(),
7
+ id: "loading",
8
8
  type: "web-component",
9
9
  widget: {
10
10
  // https://uiball.com/ldrs/
@@ -39,8 +39,8 @@ export default {
39
39
  btnsPosition: {
40
40
  x: "12/9/9",
41
41
  y: 1,
42
- gap: 16
43
- }
42
+ gap: 16,
43
+ },
44
44
  },
45
45
  },
46
46
  },
@@ -49,11 +49,11 @@ export default {
49
49
  id: "Tools",
50
50
  type: "internal",
51
51
  title: "Tools",
52
- layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
52
+ layout: { x: 0, y: 0, w: "3/3/2", h: 2 },
53
53
  widget: {
54
54
  name: "EodashTools",
55
55
  properties: {
56
- layoutTarget: "light",
56
+ layoutTarget: "lite",
57
57
  layoutIcon: mdiViewDashboard,
58
58
  itemFilterConfig: {
59
59
  resultType: "cards",
@@ -0,0 +1,62 @@
1
+ // import { includesProcess } from "@/store/actions";
2
+ /** @type {import("@/types").Template} */
3
+ export default {
4
+ gap: 16,
5
+ loading: {
6
+ id: "loading",
7
+ type: "web-component",
8
+ widget: {
9
+ // https://uiball.com/ldrs/
10
+ link: "https://cdn.jsdelivr.net/npm/ldrs/dist/auto/mirage.js",
11
+ tagName: "l-mirage",
12
+ properties: {
13
+ class: "align-self-center justify-self-center",
14
+ size: "120",
15
+ speed: "2.5",
16
+ color: "#004170",
17
+ },
18
+ },
19
+ },
20
+ background: {
21
+ id: "background-map",
22
+ type: "internal",
23
+ widget: {
24
+ name: "EodashMap",
25
+ properties: {
26
+ enableCompare: true,
27
+ btns: {
28
+ enableZoom: true,
29
+ enableExportMap: true,
30
+ enableChangeProjection: true,
31
+ enableCompareIndicators: {
32
+ fallbackTemplate: "explore",
33
+ itemFilterConfig: {
34
+ imageProperty: "assets.thumbnail.href",
35
+ },
36
+ },
37
+ enableSearch: true,
38
+ },
39
+ },
40
+ },
41
+ },
42
+ widgets: [
43
+ {
44
+ id: "Layercontrol",
45
+ type: "internal",
46
+ title: "Layers",
47
+ layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 12 },
48
+ widget: {
49
+ name: "EodashLayerControl",
50
+ },
51
+ },
52
+ {
53
+ id: "ItemCatalog",
54
+ title: "Catalog",
55
+ type: "internal",
56
+ layout: { x: 0, y: 0, w: "3/3/2", h: 12 },
57
+ widget: {
58
+ name: "EodashItemCatalog",
59
+ },
60
+ },
61
+ ],
62
+ };
@@ -1,6 +1,6 @@
1
1
  import { getBaseConfig } from "./baseConfig";
2
2
 
3
- export { default as light } from "./light";
3
+ export { default as lite } from "./lite";
4
4
  export { default as expert } from "./expert";
5
5
  export { default as compare } from "./compare";
6
6
  export { getBaseConfig };
@@ -42,7 +42,7 @@ export default {
42
42
  id: "tools-light",
43
43
  type: "internal",
44
44
  title: "Tools",
45
- layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
45
+ layout: { x: 0, y: 0, w: "3/3/2", h: 2 },
46
46
  widget: {
47
47
  name: "EodashTools",
48
48
  properties: {
@@ -129,7 +129,6 @@ import { mdiRayStartArrow, mdiRayEndArrow } from "@mdi/js";
129
129
  import { eodashCollections, eodashCompareCollections } from "@/utils/states";
130
130
  import log from "loglevel";
131
131
  import { useTransparentPanel } from "@/composables";
132
- import { getDatetimeProperty } from "@/eodashSTAC/helpers";
133
132
  import { storeToRefs } from "pinia";
134
133
 
135
134
  const { lgAndDown } = useDisplay();
@@ -149,6 +148,13 @@ const currentDate = customRef((track, trigger) => ({
149
148
  trigger();
150
149
  log.debug("Datepicker setting currentDate", datetime.value);
151
150
  const date = new Date(num);
151
+
152
+ // Validate the date before setting
153
+ if (isNaN(date.getTime())) {
154
+ log.warn("Invalid date value provided to datepicker:", num);
155
+ return;
156
+ }
157
+
152
158
  datetime.value = date.toISOString();
153
159
  //@ts-expect-error supports move method https://vcalendar.io/datepicker/basics.html#basics
154
160
  datePickerEl.value?.move({
@@ -247,24 +253,15 @@ async function fetchCollectionsAttributes(eodashCollections) {
247
253
 
248
254
  return await Promise.all(
249
255
  eodashCollections.map((ec, idx) => {
250
- return ec.fetchCollection().then(() => {
251
- const dateProperty = getDatetimeProperty(ec.getItems());
252
- if (!dateProperty) {
253
- return [];
256
+ return ec.fetchCollection().then(async () => {
257
+ const dates = await ec.getDates();
258
+ if (!dates || !dates.length) {
259
+ log.debug(
260
+ `Collection ${ec.collectionStac?.id} has no dates, skipping datepicker attribute`,
261
+ );
262
+ return undefined;
254
263
  }
255
- const dates = [
256
- ...new Set(
257
- ec.getItems()?.reduce((valid, item) => {
258
- const parsed = Date.parse(
259
- /** @type {string} */ (item[dateProperty]),
260
- );
261
- if (parsed) {
262
- valid.push(new Date(parsed));
263
- }
264
- return valid;
265
- }, /** @type {Date[]} */ ([])),
266
- ),
267
- ];
264
+
268
265
  return {
269
266
  key: "id-" + idx.toString() + Math.random().toString(16).slice(2),
270
267
  dot: {