@eodash/eodash 5.2.0 → 5.3.1

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 +254 -62
  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-BAstYnhU.js} +4 -5
  23. package/dist/client/{DynamicWebComponent-DCBMXskE.js → DynamicWebComponent-7v4_DFqP.js} +1 -1
  24. package/dist/client/{EodashDatePicker-DtngxU6s.js → EodashDatePicker-IVHLv9UN.js} +20 -22
  25. package/dist/client/{EodashItemFilter-ClQebJQt.js → EodashItemFilter-BPMpnXjo.js} +46 -31
  26. package/dist/client/EodashLayerControl-CSnQh2tb.js +1517 -0
  27. package/dist/client/{EodashLayoutSwitcher-DQ8SfVDd.js → EodashLayoutSwitcher-CPpGM8Pb.js} +4 -4
  28. package/dist/client/EodashMapBtns-C_jyUJ2x.js +301 -0
  29. package/dist/client/{EodashStacInfo-Dt1nF06x.js → EodashStacInfo-DjuWc0Iz.js} +1 -1
  30. package/dist/client/EodashTimeSlider-CDh9Lf02.js +53 -0
  31. package/dist/client/{EodashTools-DV5ykmWc.js → EodashTools-DSvDUUlL.js} +10 -7
  32. package/dist/client/{ExportState-B6zZQUmE.js → ExportState-BhjxS0jG.js} +145 -120
  33. package/dist/client/{Footer-DNhXs8k6.js → Footer-C3PPcdjv.js} +1 -1
  34. package/dist/client/{Header-BjhN5JY4.js → Header-E5NbT7HE.js} +2 -2
  35. package/dist/client/MobileLayout-DY7OHr1k.js +118 -0
  36. package/dist/client/{PopUp-CgpvNr3o.js → PopUp-CSPXdqKI.js} +79 -43
  37. package/dist/client/{ProcessList-vecpxThi.js → ProcessList-C3HV7G0b.js} +5 -6
  38. package/dist/client/{VImg-CETuikH2.js → VImg-FoXcOnWF.js} +6 -3
  39. package/dist/client/{VMain-Ci9DyaGU.js → VMain-Ck2g1QOG.js} +1 -1
  40. package/dist/client/{VTooltip-J4ac48X7.js → VTooltip-F_1Zcvhp.js} +2 -2
  41. package/dist/client/{WidgetsContainer-CCML4TyV.js → WidgetsContainer-Cq9uZEuN.js} +1 -1
  42. package/dist/client/asWebComponent-DZeEbWG0.js +8895 -0
  43. package/dist/client/{async-B7jIrM53.js → async-Dk79llLt.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-BbvoXHtj.js} +58 -45
  47. package/dist/client/{handling-BS24aG1q.js → handling-DxucYlYh.js} +12 -6
  48. package/dist/client/{helpers-wXK7Ywio.js → helpers-CI_7CUmn.js} +568 -281
  49. package/dist/client/index-BO5uGfUe.js +571 -0
  50. package/dist/client/{index-9KR-G20t.js → index-C13BiO9C.js} +2 -2
  51. package/dist/client/{index-4UCzZi8B.js → index-DcCcdbgR.js} +26 -13
  52. package/dist/client/{index-B2XpdgR6.js → index-KrGHjH-_.js} +63 -36
  53. package/dist/client/templates.js +82 -15
  54. package/dist/client/{transition-yBii4fu6.js → transition-Ctkv90El.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 +47 -16
  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
@@ -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,16 +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}
68
79
  */
69
- export function getDatetimeProperty(links?: import("stac-ts").StacLink[]): string | undefined;
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.
88
+ */
89
+ export function fetchApiItems(itemsUrl: string, query?: string, limit?: number, returnFirst?: boolean, maxNumber?: number): Promise<import("stac-ts").StacItem[]>;
70
90
  /**
71
91
  * @param {import ("stac-ts").StacCollection | undefined | null} collection
72
92
  * @returns {object}
73
93
  */
74
94
  export function extractLayerLegend(collection: import("stac-ts").StacCollection | undefined | null): object;
95
+ export function sanitizeBbox(bbox: number[]): number[];
75
96
  export function extractRoles(properties: Record<string, any>, linkOrAsset: import("stac-ts").StacLink | import("stac-ts").StacAsset): Record<string, any>;
76
- 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<{
77
98
  "fill-color"?: import("ol/style/flat.js").ColorExpression | undefined;
78
99
  "fill-pattern-src"?: import("ol/style/flat.js").StringExpression | undefined;
79
100
  "fill-pattern-size"?: import("ol/style/flat.js").SizeExpression | undefined;
@@ -451,21 +472,31 @@ export function fetchStyle(item: import("stac-ts").StacItem, itemUrl: string): P
451
472
  appendix?: string;
452
473
  }[];
453
474
  } | undefined>;
475
+ export function fetchAllStyles(item: import("stac-ts").StacItem, itemUrl: string): Promise<Array<import("../types").EodashStyleJson>>;
454
476
  export function getProjectionCode(projection?: string | number | {
455
477
  name: string;
456
478
  def: string;
457
479
  }): string;
458
- export function extractLayerDatetime(links?: import("stac-ts").StacLink[], currentStep?: string | null): {
459
- controlValues: string[];
460
- currentStep: string;
461
- slider: boolean;
462
- navigation: boolean;
463
- play: boolean;
464
- displayFormat: string;
465
- } | 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
+ };
466
497
  export function findLayer(layers: import("@eox/map").EoxLayer[], layer: string): import("@eox/map").EoxLayer | undefined;
467
498
  export function replaceLayer(currentLayers: import("@eox/map").EoxLayer[], oldLayer: string, newLayers: import("@eox/map").EoxLayer[]): import("@eox/map").EoxLayer[];
468
- export function getColFromLayer(indicators: import("../eodashSTAC/EodashCollection.js").EodashCollection[], layer: import("ol/layer").Layer): import("../eodashSTAC/EodashCollection.js").EodashCollection | undefined;
499
+ export function getColFromLayer(indicators: import("../eodashSTAC/EodashCollection.js").EodashCollection[], layer: import("ol/layer").Layer): Promise<import("../eodashSTAC/EodashCollection.js").EodashCollection | undefined>;
469
500
  export function createLayerID(collectionId: string, itemId: string, link: import("stac-ts").StacLink, projectionCode: string | import("ol/proj").ProjectionLike): string;
470
501
  export function createAssetID(collectionId: string, itemId: string, index: number): string;
471
502
  export function removeUnneededProperties(layers: Record<string, any>[]): Record<string, any>[];
@@ -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;
@@ -1,28 +1,37 @@
1
1
  export const useSTAcStore: import("pinia").StoreDefinition<"stac", Pick<{
2
+ stacEndpoint: import("vue").Ref<string | null, string | null>;
3
+ isApi: import("vue").Ref<boolean, boolean>;
2
4
  stac: import("vue").Ref<import("stac-ts").StacLink[] | null, import("stac-ts").StacLink[] | null>;
3
5
  init: (endpoint: import("../types").StacEndpoint) => void;
4
- loadSTAC: (url?: import("../types").StacEndpoint) => Promise<void>;
5
- loadSelectedSTAC: (relativePath?: string, isPoi?: boolean) => Promise<void>;
6
+ loadSTAC: (url?: string) => Promise<void>;
7
+ loadSelectedSTAC: (relativePath?: string, isPoi?: boolean, stacItem?: Object) => Promise<void>;
6
8
  loadSelectedCompareSTAC: (relativePath?: string, isPOI?: boolean) => Promise<void>;
7
9
  resetSelectedCompareSTAC: () => Promise<void>;
8
10
  selectedStac: import("vue").Ref<import("stac-ts").StacCollection | null, import("stac-ts").StacCollection | null>;
9
11
  selectedCompareStac: import("vue").Ref<import("stac-ts").StacCollection | null, import("stac-ts").StacCollection | null>;
10
- }, "stac" | "selectedStac" | "selectedCompareStac">, Pick<{
12
+ selectedItem: import("vue").Ref<import("stac-ts").StacLink | import("stac-ts").StacItem | null, import("stac-ts").StacLink | import("stac-ts").StacItem | null>;
13
+ }, "stacEndpoint" | "isApi" | "stac" | "selectedStac" | "selectedCompareStac" | "selectedItem">, Pick<{
14
+ stacEndpoint: import("vue").Ref<string | null, string | null>;
15
+ isApi: import("vue").Ref<boolean, boolean>;
11
16
  stac: import("vue").Ref<import("stac-ts").StacLink[] | null, import("stac-ts").StacLink[] | null>;
12
17
  init: (endpoint: import("../types").StacEndpoint) => void;
13
- loadSTAC: (url?: import("../types").StacEndpoint) => Promise<void>;
14
- loadSelectedSTAC: (relativePath?: string, isPoi?: boolean) => Promise<void>;
18
+ loadSTAC: (url?: string) => Promise<void>;
19
+ loadSelectedSTAC: (relativePath?: string, isPoi?: boolean, stacItem?: Object) => Promise<void>;
15
20
  loadSelectedCompareSTAC: (relativePath?: string, isPOI?: boolean) => Promise<void>;
16
21
  resetSelectedCompareSTAC: () => Promise<void>;
17
22
  selectedStac: import("vue").Ref<import("stac-ts").StacCollection | null, import("stac-ts").StacCollection | null>;
18
23
  selectedCompareStac: import("vue").Ref<import("stac-ts").StacCollection | null, import("stac-ts").StacCollection | null>;
24
+ selectedItem: import("vue").Ref<import("stac-ts").StacLink | import("stac-ts").StacItem | null, import("stac-ts").StacLink | import("stac-ts").StacItem | null>;
19
25
  }, never>, Pick<{
26
+ stacEndpoint: import("vue").Ref<string | null, string | null>;
27
+ isApi: import("vue").Ref<boolean, boolean>;
20
28
  stac: import("vue").Ref<import("stac-ts").StacLink[] | null, import("stac-ts").StacLink[] | null>;
21
29
  init: (endpoint: import("../types").StacEndpoint) => void;
22
- loadSTAC: (url?: import("../types").StacEndpoint) => Promise<void>;
23
- loadSelectedSTAC: (relativePath?: string, isPoi?: boolean) => Promise<void>;
30
+ loadSTAC: (url?: string) => Promise<void>;
31
+ loadSelectedSTAC: (relativePath?: string, isPoi?: boolean, stacItem?: Object) => Promise<void>;
24
32
  loadSelectedCompareSTAC: (relativePath?: string, isPOI?: boolean) => Promise<void>;
25
33
  resetSelectedCompareSTAC: () => Promise<void>;
26
34
  selectedStac: import("vue").Ref<import("stac-ts").StacCollection | null, import("stac-ts").StacCollection | null>;
27
35
  selectedCompareStac: import("vue").Ref<import("stac-ts").StacCollection | null, import("stac-ts").StacCollection | null>;
36
+ selectedItem: import("vue").Ref<import("stac-ts").StacLink | import("stac-ts").StacItem | null, import("stac-ts").StacLink | import("stac-ts").StacItem | null>;
28
37
  }, "init" | "loadSTAC" | "loadSelectedSTAC" | "loadSelectedCompareSTAC" | "resetSelectedCompareSTAC">>;
@@ -30,3 +30,7 @@ export const poi: import("vue").Ref<string, string>;
30
30
  * Selected point of interest for comparison, used for location collections
31
31
  */
32
32
  export const comparePoi: import("vue").Ref<string, string>;
33
+ /** @type {import("vue").Ref<import("@eox/chart").EOxChart | null>} */
34
+ export const chartEl: import("vue").Ref<import("@eox/chart").EOxChart | null>;
35
+ /** @type {import("vue").Ref<import("@eox/chart").EOxChart | null>} */
36
+ export const compareChartEl: import("vue").Ref<import("@eox/chart").EOxChart | null>;
@@ -94,6 +94,11 @@ export interface TEodashDatePicker {
94
94
  properties?: InstanceType<typeof import("../../widgets/EodashDatePicker.vue").default>["$props"];
95
95
  }
96
96
  /** @group Widgets */
97
+ export interface TEodashTimeSlider {
98
+ name: "EodashTimeSlider";
99
+ properties?: InstanceType<typeof import("../../widgets/EodashTimeSlider.vue").default>["$props"];
100
+ }
101
+ /** @group Widgets */
97
102
  export interface TEodashItemFilter {
98
103
  name: "EodashItemFilter";
99
104
  properties?: InstanceType<typeof import("../../widgets/EodashItemFilter.vue").default>["$props"];
@@ -128,6 +133,10 @@ export interface TEodashLayoutSwitcher {
128
133
  name: "EodashLayoutSwitcher";
129
134
  properties?: InstanceType<typeof import("../../widgets/EodashLayoutSwitcher.vue").default>["$props"];
130
135
  }
136
+ export interface TEodashItemCatalog {
137
+ name: "EodashItemCatalog";
138
+ properties?: InstanceType<typeof import("../../widgets/EodashItemCatalog/index.vue").default>["$props"];
139
+ }
131
140
  /** @group Widgets */
132
141
  export interface TExportState {
133
142
  name: "ExportState";
@@ -149,7 +158,7 @@ export interface TWidgetsContainer {
149
158
  * Referenced using their name without the .vue extention
150
159
  * @group Widgets
151
160
  */
152
- export type ComponentWidget = TEodashMap | TEodashDatePicker | TEodashItemFilter | TEodashLayerControl | TEodashStacInfo | TEodashProcess | TEodashMapBtns | TEodashTools | TEodashLayoutSwitcher | TExportState | TPopUp | TWidgetsContainer;
161
+ export type ComponentWidget = TEodashMap | TEodashDatePicker | TEodashItemFilter | TEodashLayerControl | TEodashStacInfo | TEodashProcess | TEodashMapBtns | TEodashTools | TEodashLayoutSwitcher | TEodashItemCatalog | TExportState | TPopUp | TWidgetsContainer | TEodashTimeSlider;
153
162
  /**
154
163
  * Widget type: `internal` API. Internal widgets are Vue components provided by
155
164
  * eodash.
@@ -232,7 +241,12 @@ export interface Template {
232
241
  /** @group Eodash */
233
242
  export type MultiTemplates = Record<string, Template>;
234
243
  /** @ignore */
235
- export type StacEndpoint = `${string}/catalog.json`;
244
+ export type StacEndpoint = string | {
245
+ endpoint: string;
246
+ api?: boolean;
247
+ rasterEndpoint?: string;
248
+ vectorEndpoint?: string;
249
+ };
236
250
  /** @group Eodash */
237
251
  export interface EodashFont {
238
252
  /**
@@ -363,4 +377,158 @@ export type EodashStyleJson = import("ol/style/flat").FlatStyleLike & {
363
377
  appendix?: string;
364
378
  }[];
365
379
  };
380
+ export type EodashRasterJSONForm = {
381
+ jsonform: Record<string, any>;
382
+ legend?: import("@eox/layercontrol/src/components/layer-config.js").EOxLayerControlLayerConfig["layerConfig"]["legend"];
383
+ };
384
+ /** @ignore */
366
385
  export type LayersEventBusKeys = "layers:updated" | "time:updated" | "process:updated" | "compareLayers:updated" | "compareTime:updated" | "compareProcess:updated";
386
+ /** @ignore */
387
+ export interface SearchParams {
388
+ /** Collection IDs to search within */
389
+ collections: string[];
390
+ /** Query parameters */
391
+ query: {
392
+ datetime?: {
393
+ eq?: string;
394
+ in?: string[];
395
+ };
396
+ geometry?: Record<string, any>;
397
+ };
398
+ /** Maximum number of results to return */
399
+ limit?: number;
400
+ }
401
+ export interface StacItemsAPIResponse {
402
+ type: "FeatureCollection";
403
+ features: import("stac-ts").StacItem[];
404
+ }
405
+ /** @ignore */
406
+ export interface Render {
407
+ /** REQUIRED. Array of asset keys referencing the assets that are used to make the rendering */
408
+ assets: string[];
409
+ /** Optional title of the rendering */
410
+ title?: string;
411
+ /** 2 dimensions array of delimited Min,Max range per band. If not provided, the data will not be rescaled. */
412
+ rescale?: number[][];
413
+ /** Nodata value to use for the referenced assets. */
414
+ nodata?: number | string;
415
+ /** Color map identifier that must be applied for a raster band */
416
+ colormap_name?: string;
417
+ /** Color map JSON definition that must be applied for a raster band */
418
+ colormap?: Record<string, unknown>;
419
+ /** Color formula that must be applied for a raster band */
420
+ color_formula?: string;
421
+ /** Resampling algorithm to apply to the referenced assets. See GDAL resampling algorithm for some examples. */
422
+ resampling?: string;
423
+ /** Band arithmetic formula to apply to the referenced assets. */
424
+ expression?: string;
425
+ /** Zoom levels range applicable for the visualization */
426
+ minmax_zoom?: number[];
427
+ }
428
+ /** @ignore */
429
+ export interface TitilerSTACParameters {
430
+ /** STAC Item URL. Required */
431
+ url: string;
432
+ /** asset names. */
433
+ assets?: string[];
434
+ /** rio-tiler's math expression with asset names (e.g Asset1_b1/Asset2_b1). */
435
+ expression?: string;
436
+ /** tell rio-tiler that each asset is a 1 band dataset, so expression Asset1/Asset2 can be passed. */
437
+ asset_as_band?: boolean;
438
+ /** Per asset band math expression (e.g Asset1|1,2,3). */
439
+ asset_bidx?: string[];
440
+ /** Overwrite internal Nodata value. */
441
+ nodata?: string | number;
442
+ /** Apply dataset internal Scale/Offset. */
443
+ unscale?: boolean;
444
+ /** RasterIO resampling algorithm. Defaults to nearest. */
445
+ resampling?: string;
446
+ /** WarpKernel resampling algorithm (only used when doing re-projection). Defaults to nearest. */
447
+ reproject?: string;
448
+ /** Comma (',') delimited Min,Max range (e.g rescale=0,1000, rescale=0,1000&rescale=0,3000&rescale=0,2000). */
449
+ rescale?: string[];
450
+ /** rio-color formula. */
451
+ color_formula?: string;
452
+ /** JSON encoded custom Colormap. */
453
+ colormap?: string;
454
+ /** rio-tiler color map name. */
455
+ colormap_name?: string;
456
+ /** Add mask to the output data. Default is True. */
457
+ return_mask?: boolean;
458
+ /** Buffer on each side of the given tile. It must be a multiple of 0.5. Output tilesize will be expanded to tilesize + 2 * buffer (e.g 0.5 = 257x257, 1.0 = 258x258). */
459
+ buffer?: number;
460
+ /** Padding to apply to each tile edge. Helps reduce resampling artefacts along edges. Defaults to 0. */
461
+ padding?: number;
462
+ /** Custom algorithm name (e.g hillshade). */
463
+ algorithm?: string;
464
+ /** JSON encoded algorithm parameters. */
465
+ algorithm_params?: string;
466
+ }
467
+ /**
468
+ * Generic GeoJSON Feature interface that can hold additional properties.
469
+ * @ignore
470
+ */
471
+ export interface GeoJsonFeature<T = Record<string, any>, G = GeoJSON.Geometry> {
472
+ type: "Feature";
473
+ geometry: G;
474
+ properties: T & Record<string, any>;
475
+ id?: string | number;
476
+ }
477
+ /**
478
+ * Generic GeoJSON FeatureCollection interface that can hold additional properties.
479
+ * @ignore
480
+ */
481
+ export interface GeoJsonFeatureCollection<T = Record<string, any>, G = GeoJSON.Geometry> {
482
+ type: "FeatureCollection";
483
+ features: Array<GeoJsonFeature<T, G>>;
484
+ properties?: T & Record<string, any>;
485
+ }
486
+ /**
487
+ * Partial STAC Authentication Extension v1.1.0
488
+ * Generated from https://stac-extensions.github.io/authentication/v1.1.0/schema.json
489
+ */
490
+ export interface AuthScheme {
491
+ /** Scheme keyword, e.g. http, s3, signedUrl, oauth2, apiKey, openIdConnect */
492
+ type: "http" | "s3" | "signedUrl" | "oauth2" | "apiKey" | "openIdConnect" | string;
493
+ description?: string;
494
+ name?: string;
495
+ in?: string;
496
+ scheme?: string;
497
+ flows?: Record<string, OAuth2Flow | SignedUrlFlow>;
498
+ openIdConnectUrl?: string;
499
+ }
500
+ export interface OAuth2Flow {
501
+ authorizationUrl?: string;
502
+ tokenUrl?: string;
503
+ refreshUrl?: string;
504
+ scopes: Record<string, string>;
505
+ }
506
+ /** Signed URL flow configuration */
507
+ export interface SignedUrlFlow {
508
+ authorizationApi: string;
509
+ method: string;
510
+ responseField?: string;
511
+ parameters?: Record<string, {
512
+ in: "query" | "header" | "body" | string;
513
+ required: boolean;
514
+ description?: string;
515
+ schema?: object;
516
+ }>;
517
+ }
518
+ export interface ApiKeyAuthScheme extends AuthScheme {
519
+ type: "apiKey";
520
+ name: string;
521
+ in: string;
522
+ }
523
+ import { StacItem, StacLink, StacAsset } from "stac-ts";
524
+ export interface StacAuthItem extends StacItem {
525
+ "auth:schemes": {
526
+ [key: string]: AuthScheme;
527
+ };
528
+ }
529
+ export interface StacAuthLink extends StacLink {
530
+ "auth:refs": [string];
531
+ }
532
+ export interface StacAuthAsset extends StacAsset {
533
+ "auth:refs": [string];
534
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Build the arithmetic expression interface
3
+ * @param {import("./index.js").BandsEditor} editor - The editor instance
4
+ * @param {Array<string>} colors - Array of color strings
5
+ * @param {Array<string>} bands - Array of band identifiers
6
+ * @param {Array<string>} bandTitles - Array of band titles
7
+ */
8
+ export function buildArithmeticInterface(editor: import("./index.js").BandsEditor, colors: Array<string>, bands: Array<string>, bandTitles: Array<string>): void;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Generate band colors for the editor
3
+ * @param {Record<string,any>} schema - JSON schema
4
+ * @param {string} format - Format type ("bands" or "bands-arithmetic")
5
+ * @returns {string[]} Array of color strings
6
+ */
7
+ export function generateBandColors(schema: Record<string, any>, format: string): string[];
8
+ /**
9
+ * Get color for a specific band
10
+ * @param {string} band - Band identifier
11
+ * @param {string[]} bands - Array of band identifiers
12
+ * @param {string[]} colors - Array of color strings
13
+ * @returns {string} Color string
14
+ */
15
+ export function getBandColor(band: string, bands: string[], colors: string[]): string;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Create band styles
3
+ * @param {string[]} bands - Array of band identifiers
4
+ * @param {string[]} colors - Array of color strings
5
+ * @param {string} additionalStyles - Additional CSS styles
6
+ * @returns {HTMLStyleElement} Style element
7
+ */
8
+ export function createBandStyles(bands: string[], colors: string[], additionalStyles?: string): HTMLStyleElement;
9
+ /**
10
+ * Create a draggable band element.
11
+ * @param {string} enumValue
12
+ * @param {string} title
13
+ */
14
+ export function createBandDiv(enumValue: string, title: string): HTMLDivElement;
15
+ /**
16
+ * Add draggable band elements
17
+ * @param {import("./index.js").BandsEditor} editor - The editor instance
18
+ * @param {Array<string>} bands - Array of band identifiers
19
+ * @param {Array<string>} bandTitles - Array of band titles
20
+ */
21
+ export function addDraggableBands(editor: import("./index.js").BandsEditor, bands: Array<string>, bandTitles: Array<string>): void;
22
+ /**
23
+ * Create unified styles for all slot types
24
+ * @param {string[]} bands - Array of band identifiers
25
+ * @param {string[]} colors - Array of color strings
26
+ * @returns {HTMLStyleElement} Style element with unified slot styles
27
+ */
28
+ export function createSlotStyles(bands: string[], colors: string[]): HTMLStyleElement;
29
+ /**
30
+ * Create a unified slot element for RGB or arithmetic use
31
+ * @param {string} identifier - RGB letter ("R", "G", "B") or variable name for arithmetic
32
+ * @param {(e: DragEvent) => void} onDrop - Drop handler function
33
+ * @returns {HTMLDivElement} Slot element
34
+ */
35
+ export function createSlot(identifier: string, onDrop: (e: DragEvent) => void): HTMLDivElement;
36
+ /**
37
+ * Fill a slot with a band
38
+ * @param {HTMLElement} slot - Slot element
39
+ * @param {string} enumValue - Band value
40
+ * @param {string} title - Band title
41
+ */
42
+ export function fillSlotWithBand(slot: HTMLElement, enumValue: string, title: string): void;
@@ -0,0 +1,20 @@
1
+ export class BandsEditor extends AbstractEditor {
2
+ /** @type {Record<string, HTMLElement[]>} */
3
+ variableSlots: Record<string, HTMLElement[]>;
4
+ /** @type {Record<string, string>} */
5
+ variableValues: Record<string, string>;
6
+ /** @type {string[]} */
7
+ bands: string[];
8
+ /** @type {string[]} */
9
+ bandTitles: string[];
10
+ /** @type {string[]} */
11
+ colors: string[];
12
+ control: HTMLDivElement | undefined;
13
+ }
14
+ export const bandsEditorInterface: {
15
+ type: string;
16
+ format: string;
17
+ func: typeof BandsEditor;
18
+ }[];
19
+ export default bandsEditorInterface;
20
+ import { AbstractEditor } from "@json-editor/json-editor/src/editor";
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Build the traditional RGB bands interface
3
+ * @param {import("./index.js").BandsEditor} editor - The editor instance
4
+ * @param {Array<string>} colors - Array of color strings
5
+ * @param {Array<string>} bands - Array of band identifiers
6
+ * @param {Array<string>} bandTitles - Array of band titles
7
+ */
8
+ export function buildRGBInterface(editor: import("./index.js").BandsEditor, colors: Array<string>, bands: Array<string>, bandTitles: Array<string>): void;
9
+ /**
10
+ * Add RGB slots for traditional bands interface using unified slot system
11
+ * @param {import("./index.js").BandsEditor} editor - The editor instance
12
+ * @param {Array<string>} bands - Array of band identifiers
13
+ * @param {Array<string>} bandTitles - Array of band titles
14
+ */
15
+ export function addRGBSlots(editor: import("./index.js").BandsEditor, bands: Array<string>, bandTitles: Array<string>): void;
@@ -1,5 +1,5 @@
1
1
  export function loadFont(fontConfig: import("../types").Eodash["brand"]["font"], isWebComponent: boolean): Promise<string[]>;
2
2
  export function copyToClipBoard(text: string, showIcon: import("vue").Ref<boolean>): Promise<void>;
3
3
  export function setCollectionsPalette(colors: string[]): void;
4
- export function updateEodashCollections(eodashCollections: import("../eodashSTAC/EodashCollection").EodashCollection[], selectedStac: import("stac-ts").StacCollection, absoluteUrl: string, colorPalette: string[]): Promise<void>;
4
+ export function updateEodashCollections(eodashCollections: import("../eodashSTAC/EodashCollection").EodashCollection[], selectedStac: import("stac-ts").StacCollection, absoluteUrl: string, colorPalette: string[], isAPI: boolean, rasterEndpoint?: string | null): Promise<void>;
5
5
  export function getElement(selector: Element | string): HTMLElement | null | undefined;
@@ -1,4 +1,90 @@
1
- export function getBaseConfig(config: Partial<import("../core/client/types").Eodash>): import("../core/client/types").Eodash;
1
+ export function getBaseConfig(config: import("vega-lite").DeepPartial<import("../core/client/types").Eodash>): ({
2
+ id?: string;
3
+ options?: {
4
+ useSubCode?: boolean;
5
+ };
6
+ stacEndpoint: import("../core/client/types").StacEndpoint;
7
+ brand: {
8
+ noLayout?: boolean;
9
+ errorMessage?: string;
10
+ font?: import("../core/client/types").EodashFont | {
11
+ body: import("../core/client/types").EodashFont;
12
+ headers: import("../core/client/types").EodashFont;
13
+ };
14
+ name: string;
15
+ logo?: string;
16
+ theme?: import("vuetify").ThemeDefinition & {
17
+ collectionsPalette?: string[];
18
+ };
19
+ footerText?: string;
20
+ };
21
+ } & {
22
+ templates: import("../core/client/types").MultiTemplates;
23
+ }) | {
24
+ id?: string | undefined;
25
+ options?: {
26
+ useSubCode?: boolean;
27
+ } | undefined;
28
+ stacEndpoint: import("../core/client/types").StacEndpoint & (string | {
29
+ endpoint: string;
30
+ api?: boolean;
31
+ rasterEndpoint?: string;
32
+ vectorEndpoint?: string;
33
+ });
34
+ brand: {
35
+ noLayout?: boolean;
36
+ errorMessage?: string;
37
+ font?: import("../core/client/types").EodashFont | {
38
+ body: import("../core/client/types").EodashFont;
39
+ headers: import("../core/client/types").EodashFont;
40
+ };
41
+ name: string;
42
+ logo?: string;
43
+ theme?: import("vuetify").ThemeDefinition & {
44
+ collectionsPalette?: string[];
45
+ };
46
+ footerText?: string;
47
+ } & {
48
+ name: string;
49
+ font?: import("../core/client/types").EodashFont | {
50
+ body: import("../core/client/types").EodashFont;
51
+ headers: import("../core/client/types").EodashFont;
52
+ } | undefined;
53
+ theme?: ({
54
+ dark?: boolean | undefined;
55
+ colors?: {
56
+ [x: string]: string | undefined;
57
+ background?: string | undefined;
58
+ surface?: string | undefined;
59
+ primary?: string | undefined;
60
+ secondary?: string | undefined;
61
+ success?: string | undefined;
62
+ warning?: string | undefined;
63
+ error?: string | undefined;
64
+ info?: string | undefined;
65
+ 'on-background'?: string | undefined;
66
+ 'on-surface'?: string | undefined;
67
+ 'on-primary'?: string | undefined;
68
+ 'on-secondary'?: string | undefined;
69
+ 'on-success'?: string | undefined;
70
+ 'on-warning'?: string | undefined;
71
+ 'on-error'?: string | undefined;
72
+ 'on-info'?: string | undefined;
73
+ } | undefined;
74
+ variables?: {
75
+ [x: string]: string | number | undefined;
76
+ } | undefined;
77
+ } & {
78
+ collectionsPalette?: string[];
79
+ }) | undefined;
80
+ noLayout?: boolean | undefined;
81
+ errorMessage?: string | undefined;
82
+ logo?: string | undefined;
83
+ footerText?: string | undefined;
84
+ };
85
+ template: import("../core/client/types").Template;
86
+ templates: import("../core/client/types").MultiTemplates;
87
+ };
2
88
  export default baseConfig;
3
89
  /** @type {import("../core/client/types").Eodash} */
4
90
  declare const baseConfig: import("../core/client/types").Eodash;