@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
@@ -0,0 +1,21 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {
2
+ title: string;
3
+ filtersTitle: string;
4
+ resultsTitle: string;
5
+ imageProperty: string;
6
+ layoutTarget: string;
7
+ layoutIcon: string;
8
+ bboxFilter: boolean;
9
+ filters: import("./types").FiltersConfig;
10
+ $props: {
11
+ readonly title?: string | undefined;
12
+ readonly filtersTitle?: string | undefined;
13
+ readonly resultsTitle?: string | undefined;
14
+ readonly imageProperty?: string | undefined;
15
+ readonly layoutTarget?: string | undefined;
16
+ readonly layoutIcon?: string | undefined;
17
+ readonly bboxFilter?: boolean | undefined;
18
+ readonly filters?: import("./types").FiltersConfig | undefined;
19
+ };
20
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
21
+ export default _default;
@@ -0,0 +1,49 @@
1
+ export function createSubtitleProperty(filtersConfig: import("../types").FiltersConfig): (item: Record<string, any>) => string;
2
+ export function createFilterProperties(filtersConfig: Array<{
3
+ property: string;
4
+ type: "range" | "multiselect" | "select";
5
+ title?: string;
6
+ min?: number;
7
+ max?: number;
8
+ filterKeys?: string[];
9
+ state?: Record<string, boolean>;
10
+ placeholder?: string;
11
+ }>): ({
12
+ state?: {
13
+ [indicator.value]: boolean;
14
+ } | undefined;
15
+ key: string;
16
+ title: string;
17
+ type: string;
18
+ placeholder: string;
19
+ inline: boolean;
20
+ filterKeys: unknown[];
21
+ } | {
22
+ key: string;
23
+ title: string;
24
+ type: string;
25
+ expanded: boolean;
26
+ filterKeys: number[];
27
+ state: {
28
+ min: number;
29
+ max: number;
30
+ };
31
+ placeholder?: undefined;
32
+ inline?: undefined;
33
+ } | {
34
+ key: string;
35
+ title: string;
36
+ type: string;
37
+ placeholder: string;
38
+ filterKeys: string[];
39
+ state: Record<string, boolean> | undefined;
40
+ expanded?: undefined;
41
+ inline?: undefined;
42
+ } | null)[];
43
+ export function buildStacFilters(filters: Record<string, any>, propsFilters: import("../types").FiltersConfig): string;
44
+ export function buildSearchUrl(filters: Record<string, any>, propsFilters: Array<any>, bboxFilter: boolean): string;
45
+ export function createExternalFilter(propsFilters: import("../types").FiltersConfig, bboxFilter: boolean): (_items: Array<any>, filters: Record<string, any>) => {
46
+ url: string;
47
+ key: string;
48
+ };
49
+ import { indicator } from "../../../core/client/store/states";
@@ -0,0 +1,4 @@
1
+ export function createOnFilterHandler(currentItems: import("vue").Ref<import("../../../core/client/types").GeoJsonFeature[]>): (evt: CustomEvent) => void;
2
+ export function createOnSelectHandler(store: ReturnType<typeof import("../../../core/client/store/stac.js").useSTAcStore>): (evt: CustomEvent) => Promise<void>;
3
+ export function onMouseEnterResult(evt: CustomEvent): void;
4
+ export function onMouseLeaveResult(): void;
@@ -0,0 +1,12 @@
1
+ /**
2
+ *
3
+ * @param {import("../../../core/client/types").GeoJsonFeature[]} features
4
+ */
5
+ export function renderItemsFeatures(features: import("../../../core/client/types").GeoJsonFeature[]): void;
6
+ /**
7
+ *
8
+ * @param {import("vue").Ref<any>} itemfilterEl
9
+ */
10
+ export function useRenderOnFeatureHover(itemfilterEl: import("vue").Ref<any>): void;
11
+ export function useSearchOnMapMove(itemFilter: import("vue").Ref<any>, bboxFilter: boolean): void;
12
+ export function useRenderItemsFeatures(currentItems: import("vue").Ref<import("../../../core/client/types").GeoJsonFeature[]>): void;
@@ -0,0 +1,14 @@
1
+ export interface FilterConfigItem {
2
+ property: string;
3
+ type: "range" | "multiselect" | "select";
4
+ title?: string;
5
+ min?: number;
6
+ max?: number;
7
+ filterKeys?: string[];
8
+ state?: Record<string, boolean>;
9
+ placeholder?: string;
10
+ /** svg icon */
11
+ icon?: string;
12
+ unitLabel?: string;
13
+ }
14
+ export type FiltersConfig = FilterConfigItem[];
@@ -2,18 +2,24 @@ declare const _default: import("vue").DefineComponent<{}, {
2
2
  compareIndicators: boolean | {
3
3
  compareTemplate?: string;
4
4
  fallbackTemplate?: string;
5
+ itemFilterConfig?: Partial<InstanceType<import("vue").DefineComponent<object, object, unknown>>["$props"]>;
5
6
  };
6
7
  changeProjection: boolean;
7
8
  exportMap: boolean;
8
9
  backToPOIs: boolean;
10
+ enableSearch: boolean;
11
+ enableZoom: boolean;
9
12
  $props: {
10
13
  compareIndicators?: boolean | {
11
14
  compareTemplate?: string;
12
15
  fallbackTemplate?: string;
16
+ itemFilterConfig?: Partial<InstanceType<import("vue").DefineComponent<object, object, unknown>>["$props"]>;
13
17
  } | undefined;
14
18
  changeProjection?: boolean | undefined;
15
19
  exportMap?: boolean | undefined;
16
20
  backToPOIs?: boolean | undefined;
21
+ enableSearch?: boolean | undefined;
22
+ enableZoom?: boolean | undefined;
17
23
  };
18
24
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
19
25
  export default _default;
@@ -2,11 +2,125 @@ declare const _default: import("vue").DefineComponent<{}, {
2
2
  enableCompare: boolean;
3
3
  zoom: number;
4
4
  zoomToExtent: boolean;
5
+ enableCursorCoordinates: boolean;
6
+ enableScaleLine: boolean;
7
+ btnsPosition: 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
+ };
5
62
  center?: [number, number] | undefined;
6
63
  $props: {
7
64
  readonly enableCompare?: boolean | undefined;
8
65
  readonly zoom?: number | undefined;
9
66
  readonly zoomToExtent?: boolean | undefined;
67
+ readonly enableCursorCoordinates?: boolean | undefined;
68
+ readonly enableScaleLine?: boolean | undefined;
69
+ readonly btnsPosition?: 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;
10
124
  readonly center?: [number, number] | undefined;
11
125
  };
12
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;
@@ -43,3 +43,4 @@ export function loadPreviousProcess({ selectedStac, results, jobId, mapElement,
43
43
  export function deleteJob(jobs: import("vue").Ref<import("../types").AsyncJob[]>, jobObject: import("../types").AsyncJob, indicator: string): Promise<void>;
44
44
  export function downloadPreviousResults(jobObject: import("../types").AsyncJob, selectedStac: import("stac-ts").StacCollection | null): Promise<void>;
45
45
  export function loadProcess(jobObject: import("../types").AsyncJob, selectedStac: import("stac-ts").StacCollection | null, mapElement: import("@eox/map").EOxMap | null): Promise<void>;
46
+ export function getJobStatusUrl(jobID: string, indicator: string): string | undefined;
@@ -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.1.0",
3
+ "version": "5.3.0",
4
4
  "type": "module",
5
5
  "types": "./dist/types/core/client/types.d.ts",
6
6
  "files": [
@@ -66,65 +66,68 @@
66
66
  },
67
67
  "dependencies": {
68
68
  "@eox/chart": "^1.0.1",
69
- "@eox/drawtools": "^1.1.2",
70
- "@eox/itemfilter": "^1.10.3",
71
- "@eox/jsonform": "^1.3.2",
72
- "@eox/layercontrol": "^1.1.2",
69
+ "@eox/drawtools": "^1.1.3",
70
+ "@eox/geosearch": "^1.1.0",
71
+ "@eox/itemfilter": "^1.12.1",
72
+ "@eox/jsonform": "^1.4.2",
73
+ "@eox/layercontrol": "^1.3.1",
73
74
  "@eox/layout": "^1.0.0",
74
- "@eox/map": "^1.24.2",
75
+ "@eox/map": "^1.26.1",
75
76
  "@eox/stacinfo": "^1.0.1",
76
- "@eox/timecontrol": "^1.0.1",
77
+ "@eox/timecontrol": "^1.0.2",
78
+ "@eox/timeslider": "https://pkg.pr.new/EOX-A/EOxElements/@eox/timeslider@9873028",
77
79
  "@eox/ui": "^0.4.0",
78
80
  "@mdi/js": "^7.4.47",
79
81
  "@vitejs/plugin-vue": "^5.2.4",
80
- "@vueuse/core": "^13.6.0",
82
+ "@vueuse/core": "^13.9.0",
81
83
  "animated-details": "gist:2912bb049fa906671807415eb0e87188",
82
- "axios": "^1.11.0",
83
- "axios-cache-interceptor": "^1.8.0",
84
+ "axios": "^1.12.2",
85
+ "axios-cache-interceptor": "^1.8.3",
84
86
  "color-legend-element": "^1.3.0",
85
- "commander": "^14.0.0",
86
- "core-js": "^3.44.0",
87
- "dotenv": "^17.2.1",
88
- "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",
89
91
  "loglevel": "^1.9.2",
90
92
  "mustache": "^4.2.0",
91
93
  "pinia": "^3.0.3",
92
- "sass": "^1.89.2",
93
- "stac-js": "^0.1.6",
94
+ "proj4": "^2.19.10",
95
+ "sass": "^1.93.2",
96
+ "stac-js": "^0.1.9",
94
97
  "stac-ts": "^1.0.4",
95
98
  "v-calendar": "3.0.0",
96
99
  "vega": "^5.33.0",
97
100
  "vega-embed": "^6.29.0",
98
101
  "vega-lite": "^5.23.0",
99
- "vite": "^6.3.5",
100
- "vite-plugin-vuetify": "^2.1.1",
102
+ "vite": "^6.3.6",
103
+ "vite-plugin-vuetify": "^2.1.2",
101
104
  "vue": "^3.5.17",
102
- "vuetify": "^3.9.2",
105
+ "vuetify": "^3.10.5",
103
106
  "webfontloader": "^1.6.28"
104
107
  },
105
108
  "devDependencies": {
106
- "@babel/types": "^7.28.2",
109
+ "@babel/types": "^7.28.4",
107
110
  "@eox/eslint-config": "^2.0.0",
108
111
  "@pinia/testing": "^1.0.2",
109
112
  "@types/json-schema": "^7.0.15",
110
113
  "@types/mustache": "^4.2.6",
111
- "@types/node": "^24.1.0",
114
+ "@types/node": "^24.7.0",
112
115
  "@types/openlayers": "^4.6.23",
113
116
  "@types/webfontloader": "^1.6.38",
114
- "cypress": "^14.5.3",
115
- "eslint": "^9.32.0",
117
+ "cypress": "^14.5.4",
118
+ "eslint": "^9.37.0",
116
119
  "eslint-plugin-vue": "^9.33.0",
117
120
  "pkg-pr-new": "^0.0.54",
118
121
  "prettier": "^3.6.2",
119
- "rollup": "^4.46.1",
122
+ "rollup": "^4.52.4",
120
123
  "terminate": "^2.8.0",
121
124
  "tsc-alias": "^1.8.16",
122
- "typedoc": "^0.28.8",
123
- "typedoc-plugin-markdown": "^4.7.1",
125
+ "typedoc": "^0.28.13",
126
+ "typedoc-plugin-markdown": "^4.9.0",
124
127
  "typedoc-plugin-vue": "^1.5.0",
125
128
  "typedoc-vitepress-theme": "^1.1.2",
126
- "typescript": "^5.8.3",
127
- "vitepress": "^1.6.3",
129
+ "typescript": "^5.9.3",
130
+ "vitepress": "^1.6.4",
128
131
  "vitest": "^3.2.4",
129
132
  "vue-tsc": "3.0.1"
130
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: {
@@ -118,26 +118,6 @@ export default {
118
118
  },
119
119
  },
120
120
  },
121
- {
122
- defineWidget: (selected) => {
123
- return selected
124
- ? {
125
- id: "Buttons",
126
- layout: { x: "8/8/9", y: 0, w: 1, h: 2 },
127
- title: "Buttons",
128
- type: "internal",
129
- widget: {
130
- name: "EodashMapBtns",
131
- properties: {
132
- compareIndicators: {
133
- fallbackTemplate: "expert",
134
- },
135
- },
136
- },
137
- }
138
- : null;
139
- },
140
- },
141
121
  {
142
122
  defineWidget: (selectedSTAC) => {
143
123
  return selectedSTAC
@@ -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/
@@ -25,6 +25,22 @@ export default {
25
25
  name: "EodashMap",
26
26
  properties: {
27
27
  enableCompare: true,
28
+ zoomToExtent: true,
29
+ btns: {
30
+ enableZoom: true,
31
+ enableExportMap: true,
32
+ enableChangeProjection: true,
33
+ enableCompareIndicators: {
34
+ fallbackTemplate: "expert",
35
+ },
36
+ enableBackToPOIs: true,
37
+ enableSearch: true,
38
+ },
39
+ btnsPosition: {
40
+ x: "12/9/9",
41
+ y: 1,
42
+ gap: 16,
43
+ },
28
44
  },
29
45
  },
30
46
  },
@@ -33,11 +49,11 @@ export default {
33
49
  id: "Tools",
34
50
  type: "internal",
35
51
  title: "Tools",
36
- layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
52
+ layout: { x: 0, y: 0, w: "3/3/2", h: 2 },
37
53
  widget: {
38
54
  name: "EodashTools",
39
55
  properties: {
40
- layoutTarget: "light",
56
+ layoutTarget: "lite",
41
57
  layoutIcon: mdiViewDashboard,
42
58
  itemFilterConfig: {
43
59
  resultType: "cards",
@@ -92,21 +108,6 @@ export default {
92
108
  : null;
93
109
  },
94
110
  },
95
- {
96
- defineWidget: (selected) => {
97
- return selected
98
- ? {
99
- id: "Buttons",
100
- layout: { x: "8/8/9", y: 0, w: 1, h: 2 },
101
- title: "Buttons",
102
- type: "internal",
103
- widget: {
104
- name: "EodashMapBtns",
105
- },
106
- }
107
- : null;
108
- },
109
- },
110
111
  {
111
112
  defineWidget: (selectedSTAC) =>
112
113
  includesProcess(selectedSTAC) && {