@eodash/eodash 5.0.0 → 5.2.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 (162) hide show
  1. package/README.md +1 -0
  2. package/core/client/App.vue +8 -2
  3. package/core/client/asWebComponent.js +5 -5
  4. package/core/client/components/DashboardLayout.vue +43 -26
  5. package/core/client/components/EodashOverlay.vue +5 -6
  6. package/core/client/components/ErrorAlert.vue +2 -2
  7. package/core/client/components/Footer.vue +4 -4
  8. package/core/client/components/Header.vue +3 -3
  9. package/core/client/components/MobileLayout.vue +47 -27
  10. package/core/client/composables/DefineEodash.js +38 -43
  11. package/core/client/composables/DefineTemplate.js +4 -2
  12. package/core/client/composables/DefineWidgets.js +14 -8
  13. package/core/client/composables/index.js +273 -23
  14. package/core/client/eodashSTAC/EodashCollection.js +84 -62
  15. package/core/client/eodashSTAC/createLayers.js +30 -0
  16. package/core/client/eodashSTAC/helpers.js +159 -28
  17. package/core/client/eodashSTAC/parquet.js +145 -0
  18. package/core/client/eodashSTAC/triggers.js +6 -3
  19. package/core/client/plugins/index.js +4 -3
  20. package/core/client/plugins/vuetify.js +3 -0
  21. package/core/client/store/actions.js +21 -4
  22. package/core/client/store/stac.js +93 -56
  23. package/core/client/store/states.js +15 -5
  24. package/core/client/types.ts +59 -43
  25. package/core/client/utils/index.js +79 -0
  26. package/core/client/utils/keys.js +2 -2
  27. package/core/client/utils/states.js +30 -5
  28. package/core/client/views/Dashboard.vue +36 -32
  29. package/core/client/vite-env.d.ts +7 -0
  30. package/dist/client/{DashboardLayout-CkWvOMOW.js → DashboardLayout-Dq9Kfe6O.js} +24 -13
  31. package/dist/client/{DynamicWebComponent-DYBbpvUK.js → DynamicWebComponent-DCBMXskE.js} +1 -1
  32. package/dist/client/{EodashDatePicker-CALmW3SI.js → EodashDatePicker-DtngxU6s.js} +59 -32
  33. package/dist/client/{EodashItemFilter-DlQiE713.js → EodashItemFilter-ClQebJQt.js} +20 -10
  34. package/dist/client/{EodashLayerControl-DEzEbft7.js → EodashLayerControl-BLBds28C.js} +29 -16
  35. package/dist/client/EodashLayoutSwitcher-DQ8SfVDd.js +61 -0
  36. package/dist/client/EodashMapBtns-B89_YBDw.js +326 -0
  37. package/dist/client/{EodashStacInfo-DPPxDkF6.js → EodashStacInfo-Dt1nF06x.js} +3 -18
  38. package/dist/client/{EodashTools-CUaL9s4H.js → EodashTools-DV5ykmWc.js} +13 -13
  39. package/dist/client/{ExportState-DjyIZVhl.js → ExportState-B6zZQUmE.js} +57 -52
  40. package/dist/client/{Footer-DyL0JoWt.js → Footer-DNhXs8k6.js} +15 -13
  41. package/dist/client/{Header-B5Dgty9l.js → Header-BjhN5JY4.js} +32 -28
  42. package/dist/client/MobileLayout-JelB6w1G.js +118 -0
  43. package/dist/client/{PopUp-BfB8s_ki.js → PopUp-CgpvNr3o.js} +18 -10
  44. package/dist/client/ProcessList-vecpxThi.js +198 -0
  45. package/dist/client/{VImg-FD1WVphJ.js → VImg-CETuikH2.js} +221 -26
  46. package/dist/client/{VMain-DJKG4SvM.js → VMain-Ci9DyaGU.js} +7 -7
  47. package/dist/client/{VTooltip-CfeefrXI.js → VTooltip-J4ac48X7.js} +12 -10
  48. package/dist/client/{WidgetsContainer-C2TaTdb6.js → WidgetsContainer-CCML4TyV.js} +1 -1
  49. package/dist/client/asWebComponent-ZyEzWOOf.js +19092 -0
  50. package/dist/client/async-B7jIrM53.js +804 -0
  51. package/dist/client/eo-dash.js +1 -1
  52. package/dist/client/{VOverlay-BzOdRu9h.js → forwardRefs-BQclvjMq.js} +332 -28
  53. package/dist/client/handling-BS24aG1q.js +1227 -0
  54. package/dist/client/helpers-wXK7Ywio.js +4556 -0
  55. package/dist/client/index-4UCzZi8B.js +376 -0
  56. package/dist/client/{index-4CT7Tz83.js → index-9KR-G20t.js} +2 -2
  57. package/dist/client/{index-CIHH_3dW.js → index-B2XpdgR6.js} +227 -86
  58. package/dist/client/material-symbols-outlined.woff2 +0 -0
  59. package/dist/client/material-symbols-rounded.woff2 +0 -0
  60. package/dist/client/material-symbols-sharp.woff2 +0 -0
  61. package/dist/client/material-symbols-subset.woff2 +0 -0
  62. package/dist/client/{ssrBoot-BP7SYRyC.js → ssrBoot-Zgc_Ttvi.js} +2 -2
  63. package/dist/client/templates.js +840 -0
  64. package/dist/client/transition-yBii4fu6.js +40 -0
  65. package/dist/node/cli.js +16 -6
  66. package/dist/node/types.d.ts +1 -1
  67. package/dist/types/core/client/App.vue.d.ts +2 -2
  68. package/dist/types/core/client/asWebComponent.d.ts +1 -1
  69. package/dist/types/core/client/components/DynamicWebComponent.vue.d.ts +1 -3
  70. package/dist/types/core/client/components/Footer.vue.d.ts +1 -105
  71. package/dist/types/core/client/components/IframeWrapper.vue.d.ts +1 -1
  72. package/dist/types/core/client/components/MobileLayout.vue.d.ts +1 -324
  73. package/dist/types/core/client/composables/DefineEodash.d.ts +2 -2
  74. package/dist/types/core/client/composables/DefineTemplate.d.ts +1 -1
  75. package/dist/types/core/client/composables/DefineWidgets.d.ts +4 -4
  76. package/dist/types/core/client/composables/index.d.ts +24 -2
  77. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +9 -6
  78. package/dist/types/core/client/eodashSTAC/helpers.d.ts +25 -5
  79. package/dist/types/core/client/eodashSTAC/parquet.d.ts +2 -0
  80. package/dist/types/core/client/plugins/vuetify.d.ts +7 -4
  81. package/dist/types/core/client/store/actions.d.ts +3 -2
  82. package/dist/types/core/client/store/stac.d.ts +16 -13
  83. package/dist/types/core/client/store/states.d.ts +14 -4
  84. package/dist/types/core/client/types.d.ts +46 -31
  85. package/dist/types/core/client/utils/index.d.ts +2 -0
  86. package/dist/types/core/client/utils/keys.d.ts +4 -4
  87. package/dist/types/core/client/utils/states.d.ts +59 -47
  88. package/dist/types/core/client/views/Dashboard.vue.d.ts +2 -2
  89. package/dist/types/templates/baseConfig.d.ts +4 -0
  90. package/dist/types/templates/compare.d.ts +185 -0
  91. package/dist/types/templates/expert.d.ts +147 -0
  92. package/dist/types/templates/index.d.ts +6 -0
  93. package/dist/types/templates/light.d.ts +154 -0
  94. package/dist/types/widgets/EodashDatePicker.vue.d.ts +1 -458
  95. package/dist/types/widgets/EodashItemFilter.vue.d.ts +3 -3
  96. package/dist/types/widgets/EodashLayerControl.vue.d.ts +14 -7
  97. package/dist/types/widgets/EodashLayoutSwitcher.vue.d.ts +1 -3
  98. package/dist/types/widgets/{EodashMapBtns.vue.d.ts → EodashMap/EodashMapBtns.vue.d.ts} +12 -8
  99. package/dist/types/widgets/EodashMap/index.vue.d.ts +9 -4
  100. package/dist/types/widgets/EodashProcess/ProcessList.vue.d.ts +8 -1
  101. package/dist/types/widgets/EodashProcess/index.vue.d.ts +8 -4
  102. package/dist/types/widgets/EodashProcess/methods/async.d.ts +19 -18
  103. package/dist/types/widgets/EodashProcess/methods/composables.d.ts +3 -2
  104. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/chart/index.d.ts +1 -0
  105. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/chart/sentinelhub-endpoint.d.ts +6 -0
  106. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.d.ts +4 -0
  107. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.d.ts +5 -0
  108. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/index.d.ts +1 -0
  109. package/dist/types/widgets/EodashProcess/methods/handling.d.ts +12 -5
  110. package/dist/types/widgets/EodashProcess/methods/outputs.d.ts +72 -41
  111. package/dist/types/widgets/EodashProcess/methods/utils.d.ts +41 -21
  112. package/dist/types/widgets/EodashProcess/states.d.ts +11 -0
  113. package/dist/types/widgets/EodashProcess/types.d.ts +41 -0
  114. package/dist/types/widgets/EodashStacInfo.vue.d.ts +14 -14
  115. package/dist/types/widgets/EodashTools.vue.d.ts +3 -3
  116. package/dist/types/widgets/ExportState.vue.d.ts +1 -1
  117. package/dist/types/widgets/PopUp.vue.d.ts +11 -16
  118. package/dist/types/widgets/WidgetsContainer.vue.d.ts +3 -6
  119. package/package.json +55 -45
  120. package/templates/baseConfig.js +68 -0
  121. package/templates/compare.js +142 -0
  122. package/templates/expert.js +124 -0
  123. package/templates/index.js +8 -0
  124. package/templates/light.js +139 -0
  125. package/widgets/EodashDatePicker.vue +80 -31
  126. package/widgets/EodashItemFilter.vue +26 -11
  127. package/widgets/EodashLayerControl.vue +20 -11
  128. package/widgets/EodashLayoutSwitcher.vue +6 -3
  129. package/widgets/EodashMap/EodashMapBtns.vue +269 -0
  130. package/widgets/EodashMap/index.vue +255 -45
  131. package/widgets/EodashMap/methods/create-layers-config.js +4 -3
  132. package/widgets/EodashMap/methods/index.js +33 -23
  133. package/widgets/EodashProcess/ProcessList.vue +47 -11
  134. package/widgets/EodashProcess/index.vue +55 -20
  135. package/widgets/EodashProcess/methods/async.js +99 -60
  136. package/widgets/EodashProcess/methods/composables.js +21 -14
  137. package/widgets/EodashProcess/methods/custom-endpoints/chart/index.js +35 -0
  138. package/widgets/EodashProcess/methods/custom-endpoints/chart/sentinelhub-endpoint.js +275 -0
  139. package/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.js +132 -0
  140. package/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.js +94 -0
  141. package/widgets/EodashProcess/methods/custom-endpoints/layers/index.js +33 -0
  142. package/widgets/EodashProcess/methods/handling.js +127 -80
  143. package/widgets/EodashProcess/methods/outputs.js +376 -125
  144. package/widgets/EodashProcess/methods/utils.js +442 -10
  145. package/widgets/EodashProcess/states.js +13 -0
  146. package/widgets/EodashProcess/types.ts +46 -0
  147. package/widgets/EodashStacInfo.vue +2 -17
  148. package/widgets/EodashTools.vue +13 -13
  149. package/widgets/WidgetsContainer.vue +1 -1
  150. package/core/client/eodash.js +0 -454
  151. package/dist/client/EodashLayoutSwitcher-CDeCV8F-.js +0 -52
  152. package/dist/client/EodashMapBtns-CktQCfa-.js +0 -131
  153. package/dist/client/MobileLayout-CRsg_5Q4.js +0 -1217
  154. package/dist/client/ProcessList-DTefwQZx.js +0 -484
  155. package/dist/client/asWebComponent-CLhcT715.js +0 -12479
  156. package/dist/client/eo-dash.css +0 -5
  157. package/dist/client/forwardRefs-Bon_Kku1.js +0 -245
  158. package/dist/client/index-Bm9cbtx5.js +0 -201
  159. package/dist/client/index-DiGDvTQU.js +0 -780
  160. package/dist/client/transition-C5I57hn6.js +0 -37
  161. package/dist/types/core/client/eodash.d.ts +0 -8
  162. package/widgets/EodashMapBtns.vue +0 -113
@@ -1,12 +1,12 @@
1
- import { createVNode, Transition, mergeProps, ref, onBeforeUnmount, watch, nextTick, toRef, mergeModels, useModel, createElementBlock, openBlock, withCtx, createBlock, createCommentVNode, resolveDynamicComponent, unref, renderSlot } from 'vue';
2
- import { g as genericComponent, p as propsFactory, j as useProxiedModel, I as IN_BROWSER, a as useRender, z as focusableChildren, N as VDefaultsProvider, b as provideTheme, B as useBackgroundColor, K as useBorder, H as useDimension, L as useElevation, az as useLocation, aA as usePosition, M as useRounded, f as makeThemeProps, h as makeTagProps, O as makeRoundedProps, aD as makePositionProps, aE as makeLocationProps, P as makeElevationProps, J as makeDimensionProps, i as makeComponentProps, Q as makeBorderProps, aN as useDefineWidgets } from './asWebComponent-CLhcT715.js';
3
- import { m as makeVOverlayProps, V as VOverlay } from './VOverlay-BzOdRu9h.js';
4
- import { a as animate, g as getTargetBox, n as nullifyTransforms, c as acceleratedEasing, d as deceleratedEasing, s as standardEasing, b as useScopeId, f as forwardRefs } from './forwardRefs-Bon_Kku1.js';
1
+ import { createVNode, Transition, mergeProps, ref, onBeforeUnmount, watch, nextTick, normalizeStyle, normalizeClass, mergeModels, useModel, createElementBlock, openBlock, withCtx, createBlock, createCommentVNode, resolveDynamicComponent, unref, renderSlot } from 'vue';
2
+ import { g as genericComponent, p as propsFactory, x as useProxiedModel, al as IN_BROWSER, c as useRender, am as focusableChildren, V as VDefaultsProvider, k as provideTheme, f as useBackgroundColor, h as useBorder, b as useDimension, i as useElevation, a7 as useLocation, a8 as usePosition, j as useRounded, q as makeThemeProps, m as makeTagProps, r as makeRoundedProps, ab as makePositionProps, ac as makeLocationProps, s as makeElevationProps, d as makeDimensionProps, e as makeComponentProps, t as makeBorderProps, an as useDefineWidgets } from './asWebComponent-ZyEzWOOf.js';
3
+ import { a as animate, g as getTargetBox, n as nullifyTransforms, b as acceleratedEasing, d as deceleratedEasing, s as standardEasing, u as useScopeId, f as forwardRefs, m as makeVOverlayProps, V as VOverlay } from './forwardRefs-BQclvjMq.js';
5
4
 
6
5
  // Utilities
7
6
  const makeVDialogTransitionProps = propsFactory({
8
7
  target: [Object, Array]
9
8
  }, 'v-dialog-transition');
9
+ const saved = new WeakMap();
10
10
  const VDialogTransition = genericComponent()({
11
11
  name: 'VDialogTransition',
12
12
  props: makeVDialogTransitionProps(),
@@ -23,13 +23,15 @@ const VDialogTransition = genericComponent()({
23
23
  await new Promise(resolve => requestAnimationFrame(resolve));
24
24
  await new Promise(resolve => requestAnimationFrame(resolve));
25
25
  el.style.visibility = '';
26
+ const dimensions = getDimensions(props.target, el);
26
27
  const {
27
28
  x,
28
29
  y,
29
30
  sx,
30
31
  sy,
31
32
  speed
32
- } = getDimensions(props.target, el);
33
+ } = dimensions;
34
+ saved.set(el, dimensions);
33
35
  const animation = animate(el, [{
34
36
  transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
35
37
  opacity: 0
@@ -58,13 +60,19 @@ const VDialogTransition = genericComponent()({
58
60
  },
59
61
  async onLeave(el, done) {
60
62
  await new Promise(resolve => requestAnimationFrame(resolve));
63
+ let dimensions;
64
+ if (!saved.has(el) || Array.isArray(props.target) || props.target.offsetParent || props.target.getClientRects().length) {
65
+ dimensions = getDimensions(props.target, el);
66
+ } else {
67
+ dimensions = saved.get(el);
68
+ }
61
69
  const {
62
70
  x,
63
71
  y,
64
72
  sx,
65
73
  sy,
66
74
  speed
67
- } = getDimensions(props.target, el);
75
+ } = dimensions;
68
76
  const animation = animate(el, [{}, {
69
77
  transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
70
78
  opacity: 0
@@ -208,7 +216,7 @@ const VDialog = genericComponent()({
208
216
  }
209
217
  function onAfterEnter() {
210
218
  emit('afterEnter');
211
- if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
219
+ if ((props.scrim || props.retainFocus) && overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
212
220
  overlay.value.contentEl.focus({
213
221
  preventScroll: true
214
222
  });
@@ -296,7 +304,7 @@ const VSheet = genericComponent()({
296
304
  const {
297
305
  backgroundColorClasses,
298
306
  backgroundColorStyles
299
- } = useBackgroundColor(toRef(props, 'color'));
307
+ } = useBackgroundColor(() => props.color);
300
308
  const {
301
309
  borderClasses
302
310
  } = useBorder(props);
@@ -316,8 +324,8 @@ const VSheet = genericComponent()({
316
324
  roundedClasses
317
325
  } = useRounded(props);
318
326
  useRender(() => createVNode(props.tag, {
319
- "class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
320
- "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
327
+ "class": normalizeClass(['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class]),
328
+ "style": normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style])
321
329
  }, slots));
322
330
  return {};
323
331
  }
@@ -0,0 +1,198 @@
1
+ import { ref, createVNode, normalizeStyle, normalizeClass, createElementVNode, toRefs, onMounted, createElementBlock, openBlock, createBlock, createCommentVNode, unref, withCtx, Fragment, renderList, toDisplayString, withDirectives, toRef } from 'vue';
2
+ import { mdiUploadBox, mdiDownloadBox, mdiTrashCanOutline } from '@mdi/js';
3
+ import { g as genericComponent, p as propsFactory, k as provideTheme, T as useDensity, c as useRender, q as makeThemeProps, m as makeTagProps, U as makeDensityProps, e as makeComponentProps, o as convertToUnit, _ as _export_sfc, E as useSTAcStore, P as useOnLayersUpdate, G as VBtn } from './asWebComponent-ZyEzWOOf.js';
4
+ import { D as compareIndicator, C as indicator } from './helpers-wXK7Ywio.js';
5
+ import { u as updateJobsStatus, j as getJobStatusUrl, l as loadProcess, k as downloadPreviousResults, m as deleteJob } from './async-B7jIrM53.js';
6
+ import { T as Tooltip } from './index-9KR-G20t.js';
7
+
8
+ /**
9
+ * The list of job result from the server
10
+ * {job_start_datetime: string, job_end_datetime: string,status: string}
11
+ * @type {import("vue").Ref<import("./types").AsyncJob[]>}
12
+ **/
13
+ const jobs = ref([]);
14
+ /**
15
+ * The list of jobs results from the server for the compare map
16
+ * @type {import("vue").Ref<import("./types").AsyncJob[]>}
17
+ */
18
+ const compareJobs = ref([]);
19
+
20
+ const _style_0 = "div.v-table__wrapper{overflow:hidden!important;height:max-content!important}.processUrl{text-decoration:none;color:var(--v-theme-primary)}";
21
+
22
+ const makeVTableProps = propsFactory({
23
+ fixedHeader: Boolean,
24
+ fixedFooter: Boolean,
25
+ height: [Number, String],
26
+ hover: Boolean,
27
+ striped: {
28
+ type: String,
29
+ default: null,
30
+ validator: v => ['even', 'odd'].includes(v)
31
+ },
32
+ ...makeComponentProps(),
33
+ ...makeDensityProps(),
34
+ ...makeTagProps(),
35
+ ...makeThemeProps()
36
+ }, 'VTable');
37
+ const VTable = genericComponent()({
38
+ name: 'VTable',
39
+ props: makeVTableProps(),
40
+ setup(props, _ref) {
41
+ let {
42
+ slots} = _ref;
43
+ const {
44
+ themeClasses
45
+ } = provideTheme(props);
46
+ const {
47
+ densityClasses
48
+ } = useDensity(props);
49
+ useRender(() => createVNode(props.tag, {
50
+ "class": normalizeClass(['v-table', {
51
+ 'v-table--fixed-height': !!props.height,
52
+ 'v-table--fixed-header': props.fixedHeader,
53
+ 'v-table--fixed-footer': props.fixedFooter,
54
+ 'v-table--has-top': !!slots.top,
55
+ 'v-table--has-bottom': !!slots.bottom,
56
+ 'v-table--hover': props.hover,
57
+ 'v-table--striped-even': props.striped === 'even',
58
+ 'v-table--striped-odd': props.striped === 'odd'
59
+ }, themeClasses.value, densityClasses.value, props.class]),
60
+ "style": normalizeStyle(props.style)
61
+ }, {
62
+ default: () => [slots.top?.(), slots.default ? createElementVNode("div", {
63
+ "class": "v-table__wrapper",
64
+ "style": {
65
+ height: convertToUnit(props.height)
66
+ }
67
+ }, [createElementVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
68
+ }));
69
+ return {};
70
+ }
71
+ });
72
+
73
+ const _hoisted_1 = ["href"];
74
+ const _hoisted_2 = { style: {"padding":"0px"} };
75
+ const _hoisted_3 = { style: {"padding":"0px"} };
76
+ const _hoisted_4 = { style: {"padding":"0px"} };
77
+
78
+ const _sfc_main = {
79
+ __name: 'ProcessList',
80
+ props: {
81
+ enableCompare: {
82
+ type: Boolean,
83
+ default: false,
84
+ },
85
+ mapElement: {
86
+ /** @type {import("vue").PropType<import("@eox/map").EOxMap | null>} */
87
+ type: Object,
88
+ default: () => null,
89
+ },
90
+ },
91
+ setup(__props) {
92
+
93
+
94
+ const { selectedStac, selectedCompareStac } = toRefs(useSTAcStore());
95
+ const currentJobs = __props.enableCompare ? compareJobs : jobs;
96
+ const currentIndicator = __props.enableCompare ? compareIndicator : indicator;
97
+ const currentStac = __props.enableCompare ? selectedCompareStac : selectedStac;
98
+
99
+ onMounted(() => {
100
+ updateJobsStatus(currentJobs, currentIndicator.value);
101
+ });
102
+
103
+ useOnLayersUpdate(() => updateJobsStatus(currentJobs, currentIndicator.value));
104
+
105
+ return (_ctx, _cache) => {
106
+
107
+
108
+
109
+
110
+ return (openBlock(), createElementBlock("div", null, [
111
+ (unref(currentJobs).length)
112
+ ? (openBlock(), createBlock(VTable, {
113
+ key: 0,
114
+ density: "compact",
115
+ style: {"background-color":"transparent"}
116
+ }, {
117
+ default: withCtx(() => [
118
+ _cache[0] || (_cache[0] = createElementVNode("thead", null, [
119
+ createElementVNode("tr", null, [
120
+ createElementVNode("th", { class: "text-left" }, "Executed on"),
121
+ createElementVNode("th", { class: "text-left" }, "Status"),
122
+ createElementVNode("th", { class: "text-left" }),
123
+ createElementVNode("th", { class: "text-left" }),
124
+ createElementVNode("th", { class: "text-left" })
125
+ ])
126
+ ], -1 /* CACHED */)),
127
+ createElementVNode("tbody", null, [
128
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(currentJobs), (item) => {
129
+ return (openBlock(), createElementBlock("tr", {
130
+ key: item.jobID
131
+ }, [
132
+ createElementVNode("td", null, [
133
+ createElementVNode("a", {
134
+ class: "processUrl",
135
+ target: "_blank",
136
+ href: unref(getJobStatusUrl)(item.jobID, unref(currentIndicator))
137
+ }, toDisplayString(new Date(item.job_start_datetime).toISOString().slice(0, 16)), 9 /* TEXT, PROPS */, _hoisted_1)
138
+ ]),
139
+ createElementVNode("td", null, toDisplayString(item.status), 1 /* TEXT */),
140
+ createElementVNode("td", _hoisted_2, [
141
+ withDirectives(createVNode(VBtn, {
142
+ disabled: item.status !== 'successful',
143
+ color: "primary",
144
+ onClick: $event => (unref(loadProcess)(item, unref(currentStac), __props.mapElement)),
145
+ icon: [unref(mdiUploadBox)],
146
+ variant: "text"
147
+ }, null, 8 /* PROPS */, ["disabled", "onClick", "icon"]), [
148
+ [Tooltip, 'Load results to map']
149
+ ])
150
+ ]),
151
+ createElementVNode("td", _hoisted_3, [
152
+ withDirectives(createVNode(VBtn, {
153
+ disabled: item.status !== 'successful',
154
+ color: "primary",
155
+ onClick: $event => (unref(downloadPreviousResults)(item, unref(currentStac))),
156
+ icon: [unref(mdiDownloadBox)],
157
+ variant: "text"
158
+ }, null, 8 /* PROPS */, ["disabled", "onClick", "icon"]), [
159
+ [Tooltip, 'Download results']
160
+ ])
161
+ ]),
162
+ createElementVNode("td", _hoisted_4, [
163
+ withDirectives(createVNode(VBtn, {
164
+ color: "#ff5252",
165
+ onClick: $event => (
166
+ unref(deleteJob)(
167
+ toRef(() => unref(currentJobs)),
168
+ item,
169
+ unref(currentIndicator),
170
+ )
171
+ ),
172
+ icon: [unref(mdiTrashCanOutline)],
173
+ variant: "text"
174
+ }, null, 8 /* PROPS */, ["onClick", "icon"]), [
175
+ [Tooltip, 'Remove job']
176
+ ])
177
+ ])
178
+ ]))
179
+ }), 128 /* KEYED_FRAGMENT */))
180
+ ])
181
+ ]),
182
+ _: 1 /* STABLE */,
183
+ __: [0]
184
+ }))
185
+ : createCommentVNode("v-if", true)
186
+ ]))
187
+ }
188
+ }
189
+
190
+ };
191
+ const ProcessList = /*#__PURE__*/_export_sfc(_sfc_main, [['styles',[_style_0]]]);
192
+
193
+ const ProcessList$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
194
+ __proto__: null,
195
+ default: ProcessList
196
+ }, Symbol.toStringTag, { value: 'Module' }));
197
+
198
+ export { ProcessList as P, ProcessList$1 as a, compareJobs as c, jobs as j };
@@ -1,6 +1,6 @@
1
- import { createVNode, computed, toRef, shallowRef, ref, watch, onBeforeMount, nextTick, onBeforeUnmount, withDirectives, mergeProps, Fragment, resolveDirective, vShow } from 'vue';
2
- import { aL as SUPPORTS_INTERSECTION, g as genericComponent, p as propsFactory, H as useDimension, a as useRender, J as makeDimensionProps, i as makeComponentProps, B as useBackgroundColor, M as useRounded, aM as getCurrentInstance, q as convertToUnit, O as makeRoundedProps } from './asWebComponent-CLhcT715.js';
3
- import { m as makeTransitionProps, M as MaybeTransition } from './transition-C5I57hn6.js';
1
+ import { h, TransitionGroup, Transition, camelize, createElementVNode, normalizeStyle, normalizeClass, computed, shallowRef, ref, watch, onBeforeMount, nextTick, onBeforeUnmount, toRef, withDirectives, createVNode, mergeProps, Fragment, vShow } from 'vue';
2
+ import { aj as SUPPORTS_INTERSECTION, g as genericComponent, p as propsFactory, b as useDimension, c as useRender, d as makeDimensionProps, e as makeComponentProps, f as useBackgroundColor, j as useRounded, ak as getCurrentInstance, o as convertToUnit, r as makeRoundedProps } from './asWebComponent-ZyEzWOOf.js';
3
+ import { m as makeTransitionProps$1, M as MaybeTransition } from './transition-yBii4fu6.js';
4
4
 
5
5
  // Utilities
6
6
  function mounted(el, binding) {
@@ -47,6 +47,201 @@ const Intersect = {
47
47
  unmounted
48
48
  };
49
49
 
50
+ // Utilities
51
+ const makeTransitionProps = propsFactory({
52
+ disabled: Boolean,
53
+ group: Boolean,
54
+ hideOnLeave: Boolean,
55
+ leaveAbsolute: Boolean,
56
+ mode: String,
57
+ origin: String
58
+ }, 'transition');
59
+ function createCssTransition(name, origin, mode) {
60
+ return genericComponent()({
61
+ name,
62
+ props: makeTransitionProps({
63
+ mode,
64
+ origin
65
+ }),
66
+ setup(props, _ref) {
67
+ let {
68
+ slots
69
+ } = _ref;
70
+ const functions = {
71
+ onBeforeEnter(el) {
72
+ if (props.origin) {
73
+ el.style.transformOrigin = props.origin;
74
+ }
75
+ },
76
+ onLeave(el) {
77
+ if (props.leaveAbsolute) {
78
+ const {
79
+ offsetTop,
80
+ offsetLeft,
81
+ offsetWidth,
82
+ offsetHeight
83
+ } = el;
84
+ el._transitionInitialStyles = {
85
+ position: el.style.position,
86
+ top: el.style.top,
87
+ left: el.style.left,
88
+ width: el.style.width,
89
+ height: el.style.height
90
+ };
91
+ el.style.position = 'absolute';
92
+ el.style.top = `${offsetTop}px`;
93
+ el.style.left = `${offsetLeft}px`;
94
+ el.style.width = `${offsetWidth}px`;
95
+ el.style.height = `${offsetHeight}px`;
96
+ }
97
+ if (props.hideOnLeave) {
98
+ el.style.setProperty('display', 'none', 'important');
99
+ }
100
+ },
101
+ onAfterLeave(el) {
102
+ if (props.leaveAbsolute && el?._transitionInitialStyles) {
103
+ const {
104
+ position,
105
+ top,
106
+ left,
107
+ width,
108
+ height
109
+ } = el._transitionInitialStyles;
110
+ delete el._transitionInitialStyles;
111
+ el.style.position = position || '';
112
+ el.style.top = top || '';
113
+ el.style.left = left || '';
114
+ el.style.width = width || '';
115
+ el.style.height = height || '';
116
+ }
117
+ }
118
+ };
119
+ return () => {
120
+ const tag = props.group ? TransitionGroup : Transition;
121
+ return h(tag, {
122
+ name: props.disabled ? '' : name,
123
+ css: !props.disabled,
124
+ ...(props.group ? undefined : {
125
+ mode: props.mode
126
+ }),
127
+ ...(props.disabled ? {} : functions)
128
+ }, slots.default);
129
+ };
130
+ }
131
+ });
132
+ }
133
+ function createJavascriptTransition(name, functions) {
134
+ let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in-out';
135
+ return genericComponent()({
136
+ name,
137
+ props: {
138
+ mode: {
139
+ type: String,
140
+ default: mode
141
+ },
142
+ disabled: Boolean,
143
+ group: Boolean
144
+ },
145
+ setup(props, _ref2) {
146
+ let {
147
+ slots
148
+ } = _ref2;
149
+ const tag = props.group ? TransitionGroup : Transition;
150
+ return () => {
151
+ return h(tag, {
152
+ name: props.disabled ? '' : name,
153
+ css: !props.disabled,
154
+ // mode: props.mode, // TODO: vuejs/vue-next#3104
155
+ ...(props.disabled ? {} : functions)
156
+ }, slots.default);
157
+ };
158
+ }
159
+ });
160
+ }
161
+
162
+ // Utilities
163
+ function ExpandTransitionGenerator () {
164
+ let expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
165
+ let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
166
+ const sizeProperty = x ? 'width' : 'height';
167
+ const offsetProperty = camelize(`offset-${sizeProperty}`);
168
+ return {
169
+ onBeforeEnter(el) {
170
+ el._parent = el.parentNode;
171
+ el._initialStyle = {
172
+ transition: el.style.transition,
173
+ overflow: el.style.overflow,
174
+ [sizeProperty]: el.style[sizeProperty]
175
+ };
176
+ },
177
+ onEnter(el) {
178
+ const initialStyle = el._initialStyle;
179
+ if (!initialStyle) return;
180
+ el.style.setProperty('transition', 'none', 'important');
181
+ // Hide overflow to account for collapsed margins in the calculated height
182
+ el.style.overflow = 'hidden';
183
+ const offset = `${el[offsetProperty]}px`;
184
+ el.style[sizeProperty] = '0';
185
+
186
+ el.style.transition = initialStyle.transition;
187
+ if (expandedParentClass && el._parent) {
188
+ el._parent.classList.add(expandedParentClass);
189
+ }
190
+ requestAnimationFrame(() => {
191
+ el.style[sizeProperty] = offset;
192
+ });
193
+ },
194
+ onAfterEnter: resetStyles,
195
+ onEnterCancelled: resetStyles,
196
+ onLeave(el) {
197
+ el._initialStyle = {
198
+ transition: '',
199
+ overflow: el.style.overflow,
200
+ [sizeProperty]: el.style[sizeProperty]
201
+ };
202
+ el.style.overflow = 'hidden';
203
+ el.style[sizeProperty] = `${el[offsetProperty]}px`;
204
+
205
+ requestAnimationFrame(() => el.style[sizeProperty] = '0');
206
+ },
207
+ onAfterLeave,
208
+ onLeaveCancelled: onAfterLeave
209
+ };
210
+ function onAfterLeave(el) {
211
+ if (expandedParentClass && el._parent) {
212
+ el._parent.classList.remove(expandedParentClass);
213
+ }
214
+ resetStyles(el);
215
+ }
216
+ function resetStyles(el) {
217
+ if (!el._initialStyle) return;
218
+ const size = el._initialStyle[sizeProperty];
219
+ el.style.overflow = el._initialStyle.overflow;
220
+ if (size != null) el.style[sizeProperty] = size;
221
+ delete el._initialStyle;
222
+ }
223
+ }
224
+
225
+ createCssTransition('fab-transition', 'center center', 'out-in');
226
+
227
+ // Generic transitions
228
+ createCssTransition('dialog-bottom-transition');
229
+ createCssTransition('dialog-top-transition');
230
+ createCssTransition('fade-transition');
231
+ createCssTransition('scale-transition');
232
+ createCssTransition('scroll-x-transition');
233
+ createCssTransition('scroll-x-reverse-transition');
234
+ createCssTransition('scroll-y-transition');
235
+ createCssTransition('scroll-y-reverse-transition');
236
+ createCssTransition('slide-x-transition');
237
+ createCssTransition('slide-x-reverse-transition');
238
+ createCssTransition('slide-y-transition');
239
+ createCssTransition('slide-y-reverse-transition');
240
+
241
+ // Javascript transitions
242
+ const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator());
243
+ createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true));
244
+
50
245
  function useAspectStyles(props) {
51
246
  return {
52
247
  aspectStyles: computed(() => {
@@ -77,16 +272,16 @@ const VResponsive = genericComponent()({
77
272
  const {
78
273
  dimensionStyles
79
274
  } = useDimension(props);
80
- useRender(() => createVNode("div", {
81
- "class": ['v-responsive', {
275
+ useRender(() => createElementVNode("div", {
276
+ "class": normalizeClass(['v-responsive', {
82
277
  'v-responsive--inline': props.inline
83
- }, props.class],
84
- "style": [dimensionStyles.value, props.style]
85
- }, [createVNode("div", {
278
+ }, props.class]),
279
+ "style": normalizeStyle([dimensionStyles.value, props.style])
280
+ }, [createElementVNode("div", {
86
281
  "class": "v-responsive__sizer",
87
- "style": aspectStyles.value
88
- }, null), slots.additional?.(), slots.default && createVNode("div", {
89
- "class": ['v-responsive__content', props.contentClass]
282
+ "style": normalizeStyle(aspectStyles.value)
283
+ }, null), slots.additional?.(), slots.default && createElementVNode("div", {
284
+ "class": normalizeClass(['v-responsive__content', props.contentClass])
90
285
  }, [slots.default()])]));
91
286
  return {};
92
287
  }
@@ -127,12 +322,12 @@ const makeVImgProps = propsFactory({
127
322
  ...makeVResponsiveProps(),
128
323
  ...makeComponentProps(),
129
324
  ...makeRoundedProps(),
130
- ...makeTransitionProps()
325
+ ...makeTransitionProps$1()
131
326
  }, 'VImg');
132
327
  const VImg = genericComponent()({
133
328
  name: 'VImg',
134
329
  directives: {
135
- intersect: Intersect
330
+ vIntersect: Intersect
136
331
  },
137
332
  props: makeVImgProps(),
138
333
  emits: {
@@ -148,7 +343,7 @@ const VImg = genericComponent()({
148
343
  const {
149
344
  backgroundColorClasses,
150
345
  backgroundColorStyles
151
- } = useBackgroundColor(toRef(props, 'color'));
346
+ } = useBackgroundColor(() => props.color);
152
347
  const {
153
348
  roundedClasses
154
349
  } = useRounded(props);
@@ -255,14 +450,14 @@ const VImg = genericComponent()({
255
450
  };
256
451
  poll();
257
452
  }
258
- const containClasses = computed(() => ({
453
+ const containClasses = toRef(() => ({
259
454
  'v-img__img--cover': props.cover,
260
455
  'v-img__img--contain': !props.cover
261
456
  }));
262
457
  const __image = () => {
263
458
  if (!normalisedSrc.value.src || state.value === 'idle') return null;
264
- const img = createVNode("img", {
265
- "class": ['v-img__img', containClasses.value],
459
+ const img = createElementVNode("img", {
460
+ "class": normalizeClass(['v-img__img', containClasses.value]),
266
461
  "style": {
267
462
  objectPosition: props.position
268
463
  },
@@ -282,7 +477,7 @@ const VImg = genericComponent()({
282
477
  "transition": props.transition,
283
478
  "appear": true
284
479
  }, {
285
- default: () => [withDirectives(sources ? createVNode("picture", {
480
+ default: () => [withDirectives(sources ? createElementVNode("picture", {
286
481
  "class": "v-img__picture"
287
482
  }, [sources, img]) : img, [[vShow, state.value === 'loaded']])]
288
483
  });
@@ -290,8 +485,8 @@ const VImg = genericComponent()({
290
485
  const __preloadImage = () => createVNode(MaybeTransition, {
291
486
  "transition": props.transition
292
487
  }, {
293
- default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createVNode("img", {
294
- "class": ['v-img__img', 'v-img__img--preload', containClasses.value],
488
+ default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createElementVNode("img", {
489
+ "class": normalizeClass(['v-img__img', 'v-img__img--preload', containClasses.value]),
295
490
  "style": {
296
491
  objectPosition: props.position
297
492
  },
@@ -308,7 +503,7 @@ const VImg = genericComponent()({
308
503
  "transition": props.transition,
309
504
  "appear": true
310
505
  }, {
311
- default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && createVNode("div", {
506
+ default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && createElementVNode("div", {
312
507
  "class": "v-img__placeholder"
313
508
  }, [slots.placeholder()])]
314
509
  });
@@ -319,14 +514,14 @@ const VImg = genericComponent()({
319
514
  "transition": props.transition,
320
515
  "appear": true
321
516
  }, {
322
- default: () => [state.value === 'error' && createVNode("div", {
517
+ default: () => [state.value === 'error' && createElementVNode("div", {
323
518
  "class": "v-img__error"
324
519
  }, [slots.error()])]
325
520
  });
326
521
  };
327
522
  const __gradient = () => {
328
523
  if (!props.gradient) return null;
329
- return createVNode("div", {
524
+ return createElementVNode("div", {
330
525
  "class": "v-img__gradient",
331
526
  "style": {
332
527
  backgroundImage: `linear-gradient(${props.gradient})`
@@ -362,9 +557,9 @@ const VImg = genericComponent()({
362
557
  "aria-label": props.alt,
363
558
  "role": props.alt ? 'img' : undefined
364
559
  }), {
365
- additional: () => createVNode(Fragment, null, [createVNode(__image, null, null), createVNode(__preloadImage, null, null), createVNode(__gradient, null, null), createVNode(__placeholder, null, null), createVNode(__error, null, null)]),
560
+ additional: () => createElementVNode(Fragment, null, [createVNode(__image, null, null), createVNode(__preloadImage, null, null), createVNode(__gradient, null, null), createVNode(__placeholder, null, null), createVNode(__error, null, null)]),
366
561
  default: slots.default
367
- }), [[resolveDirective("intersect"), {
562
+ }), [[Intersect, {
368
563
  handler: init,
369
564
  options: props.options
370
565
  }, null, {
@@ -381,4 +576,4 @@ const VImg = genericComponent()({
381
576
  }
382
577
  });
383
578
 
384
- export { VImg as V };
579
+ export { VImg as V, VExpandTransition as a };
@@ -1,6 +1,6 @@
1
- import { createVNode } from 'vue';
2
- import { g as genericComponent, p as propsFactory, H as useDimension, G as useLayout, a as useRender, h as makeTagProps, J as makeDimensionProps, i as makeComponentProps } from './asWebComponent-CLhcT715.js';
3
- import { u as useSsrBoot } from './ssrBoot-BP7SYRyC.js';
1
+ import { createVNode, normalizeStyle, normalizeClass, createElementVNode } from 'vue';
2
+ import { g as genericComponent, p as propsFactory, b as useDimension, a as useLayout, c as useRender, m as makeTagProps, d as makeDimensionProps, e as makeComponentProps } from './asWebComponent-ZyEzWOOf.js';
3
+ import { u as useSsrBoot } from './ssrBoot-Zgc_Ttvi.js';
4
4
 
5
5
  const makeVMainProps = propsFactory({
6
6
  scrollable: Boolean,
@@ -27,12 +27,12 @@ const VMain = genericComponent()({
27
27
  ssrBootStyles
28
28
  } = useSsrBoot();
29
29
  useRender(() => createVNode(props.tag, {
30
- "class": ['v-main', {
30
+ "class": normalizeClass(['v-main', {
31
31
  'v-main--scrollable': props.scrollable
32
- }, props.class],
33
- "style": [mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style]
32
+ }, props.class]),
33
+ "style": normalizeStyle([mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style])
34
34
  }, {
35
- default: () => [props.scrollable ? createVNode("div", {
35
+ default: () => [props.scrollable ? createElementVNode("div", {
36
36
  "class": "v-main__scroller"
37
37
  }, [slots.default?.()]) : slots.default?.()]
38
38
  }));