@eodash/eodash 5.1.0 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/core/client/components/DashboardLayout.vue +1 -2
  2. package/core/client/components/EodashOverlay.vue +4 -5
  3. package/core/client/components/MobileLayout.vue +42 -21
  4. package/core/client/composables/index.js +54 -60
  5. package/core/client/eodashSTAC/EodashCollection.js +199 -108
  6. package/core/client/eodashSTAC/auth.js +86 -0
  7. package/core/client/eodashSTAC/createLayers.js +234 -4
  8. package/core/client/eodashSTAC/helpers.js +281 -59
  9. package/core/client/eodashSTAC/parquet.js +0 -13
  10. package/core/client/eodashSTAC/triggers.js +1 -1
  11. package/core/client/store/actions.js +14 -0
  12. package/core/client/store/stac.js +46 -8
  13. package/core/client/store/states.js +6 -0
  14. package/core/client/types.ts +206 -3
  15. package/core/client/utils/bands-editor/arithmetic.js +144 -0
  16. package/core/client/utils/bands-editor/colors.js +36 -0
  17. package/core/client/utils/bands-editor/dom.js +196 -0
  18. package/core/client/utils/bands-editor/exampleSchema.json +1320 -0
  19. package/core/client/utils/bands-editor/index.js +68 -0
  20. package/core/client/utils/bands-editor/rgb.js +102 -0
  21. package/core/client/utils/index.js +5 -2
  22. package/core/client/views/Dashboard.vue +1 -1
  23. package/core/client/vite-env.d.ts +122 -0
  24. package/dist/client/{DashboardLayout-ByVs1DrY.js → DashboardLayout-Cq15p4TH.js} +5 -6
  25. package/dist/client/{DynamicWebComponent-C3W7HSQm.js → DynamicWebComponent-Cv-fPRG1.js} +1 -1
  26. package/dist/client/{EodashDatePicker-BIAf1sMT.js → EodashDatePicker-CPlJwEIO.js} +20 -22
  27. package/dist/client/{EodashItemFilter-DPznh8UB.js → EodashItemFilter-Ydebgbjj.js} +46 -31
  28. package/dist/client/EodashLayerControl-COhrkNEs.js +1517 -0
  29. package/dist/client/{EodashLayoutSwitcher-C5qTEffW.js → EodashLayoutSwitcher-pnKhTRZV.js} +4 -4
  30. package/dist/client/EodashMapBtns-Cj0Fx119.js +301 -0
  31. package/dist/client/{EodashStacInfo-CSvvF2jI.js → EodashStacInfo-Dadkg_Nj.js} +1 -1
  32. package/dist/client/EodashTimeSlider-CpoHX0S7.js +53 -0
  33. package/dist/client/{EodashTools-Cv1SXQ5y.js → EodashTools-UGBG7KC9.js} +10 -7
  34. package/dist/client/{ExportState-D-iuwaad.js → ExportState-GtJkAqeZ.js} +145 -121
  35. package/dist/client/{Footer-CyF0zRAk.js → Footer-D3ZPG5c4.js} +1 -1
  36. package/dist/client/{Header-CgD8jDKU.js → Header-z6AK-wpN.js} +2 -3
  37. package/dist/client/MobileLayout-BXNsNftb.js +118 -0
  38. package/dist/client/{PopUp-BsYLvWch.js → PopUp-BbQdjENV.js} +79 -44
  39. package/dist/client/{ProcessList-C2xsLU2_.js → ProcessList-C6VsdsYI.js} +18 -12
  40. package/dist/client/{VImg-OHe8YTs2.js → VImg-CxaMSB99.js} +203 -5
  41. package/dist/client/{VMain-PryTLU4a.js → VMain-Ds7yw0wj.js} +1 -1
  42. package/dist/client/{VTooltip-DZ0fjpB3.js → VTooltip-Cze6CEVh.js} +2 -3
  43. package/dist/client/{WidgetsContainer-B9LBadcC.js → WidgetsContainer-D66bj-JJ.js} +1 -1
  44. package/dist/client/asWebComponent-CWbNRdf9.js +8895 -0
  45. package/dist/client/{async-DkSu_u2K.js → async-BA7oWCMX.js} +69 -5
  46. package/dist/client/easing-CH0-9wR8.js +35 -0
  47. package/dist/client/eo-dash.js +1 -1
  48. package/dist/client/{VOverlay-yUn7p-Uf.js → forwardRefs-BUfxOIo-.js} +308 -28
  49. package/dist/client/{handling-CgmFXkW6.js → handling-DlNTtKB-.js} +27 -6
  50. package/dist/client/{helpers-Dy0Q13tP.js → helpers-CtE0W7iu.js} +595 -278
  51. package/dist/client/{index-skjhlH8u.js → index-CeEZIjO6.js} +26 -13
  52. package/dist/client/{index-Ch_HchK3.js → index-CsKbRDeN.js} +238 -77
  53. package/dist/client/{index-Dqj4tbx2.js → index-D4_NRKrf.js} +2 -2
  54. package/dist/client/index-DeECc3lV.js +571 -0
  55. package/dist/client/material-symbols-outlined.woff2 +0 -0
  56. package/dist/client/material-symbols-rounded.woff2 +0 -0
  57. package/dist/client/material-symbols-sharp.woff2 +0 -0
  58. package/dist/client/material-symbols-subset.woff2 +0 -0
  59. package/dist/client/templates.js +106 -49
  60. package/dist/client/{transition-C98Yn4Vo.js → transition-Byvp3L6Y.js} +1 -1
  61. package/dist/node/cli.js +6 -6
  62. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +24 -10
  63. package/dist/types/core/client/eodashSTAC/auth.d.ts +7 -0
  64. package/dist/types/core/client/eodashSTAC/createLayers.d.ts +15 -3
  65. package/dist/types/core/client/eodashSTAC/helpers.d.ts +51 -15
  66. package/dist/types/core/client/plugins/vuetify.d.ts +14 -14
  67. package/dist/types/core/client/store/actions.d.ts +2 -0
  68. package/dist/types/core/client/store/stac.d.ts +16 -7
  69. package/dist/types/core/client/store/states.d.ts +4 -0
  70. package/dist/types/core/client/types.d.ts +171 -3
  71. package/dist/types/core/client/utils/bands-editor/arithmetic.d.ts +8 -0
  72. package/dist/types/core/client/utils/bands-editor/colors.d.ts +15 -0
  73. package/dist/types/core/client/utils/bands-editor/dom.d.ts +42 -0
  74. package/dist/types/core/client/utils/bands-editor/index.d.ts +20 -0
  75. package/dist/types/core/client/utils/bands-editor/rgb.d.ts +15 -0
  76. package/dist/types/core/client/utils/index.d.ts +1 -1
  77. package/dist/types/templates/baseConfig.d.ts +87 -1
  78. package/dist/types/templates/compare.d.ts +0 -25
  79. package/dist/types/templates/expert.d.ts +17 -21
  80. package/dist/types/templates/explore.d.ts +67 -0
  81. package/dist/types/templates/index.d.ts +1 -1
  82. package/dist/types/templates/{light.d.ts → lite.d.ts} +9 -0
  83. package/dist/types/widgets/EodashItemCatalog/index.vue.d.ts +21 -0
  84. package/dist/types/widgets/EodashItemCatalog/methods/filters.d.ts +49 -0
  85. package/dist/types/widgets/EodashItemCatalog/methods/handlers.d.ts +4 -0
  86. package/dist/types/widgets/EodashItemCatalog/methods/map.d.ts +12 -0
  87. package/dist/types/widgets/EodashItemCatalog/types.d.ts +14 -0
  88. package/dist/types/widgets/{EodashMapBtns.vue.d.ts → EodashMap/EodashMapBtns.vue.d.ts} +6 -0
  89. package/dist/types/widgets/EodashMap/index.vue.d.ts +114 -0
  90. package/dist/types/widgets/EodashMap/methods/create-layers-config.d.ts +1 -1
  91. package/dist/types/widgets/EodashMap/methods/index.d.ts +1 -1
  92. package/dist/types/widgets/EodashProcess/methods/async.d.ts +1 -0
  93. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.d.ts +1 -1
  94. package/dist/types/widgets/EodashTimeSlider.vue.d.ts +7 -0
  95. package/dist/types/widgets/EodashTools.vue.d.ts +10 -10
  96. package/dist/types/widgets/ExportState.vue.d.ts +2 -0
  97. package/package.json +31 -28
  98. package/templates/baseConfig.js +10 -5
  99. package/templates/compare.js +2 -22
  100. package/templates/expert.js +19 -18
  101. package/templates/explore.js +62 -0
  102. package/templates/index.js +1 -1
  103. package/templates/{light.js → lite.js} +11 -2
  104. package/widgets/EodashDatePicker.vue +15 -18
  105. package/widgets/EodashItemCatalog/index.vue +161 -0
  106. package/widgets/EodashItemCatalog/methods/filters.js +216 -0
  107. package/widgets/EodashItemCatalog/methods/handlers.js +50 -0
  108. package/widgets/EodashItemCatalog/methods/map.js +144 -0
  109. package/widgets/EodashItemCatalog/types.ts +15 -0
  110. package/widgets/EodashItemFilter.vue +35 -28
  111. package/widgets/EodashLayerControl.vue +10 -6
  112. package/widgets/EodashLayoutSwitcher.vue +1 -1
  113. package/widgets/EodashMap/EodashMapBtns.vue +278 -0
  114. package/widgets/EodashMap/index.vue +263 -38
  115. package/widgets/EodashMap/methods/create-layers-config.js +9 -6
  116. package/widgets/EodashMap/methods/index.js +27 -13
  117. package/widgets/EodashProcess/ProcessList.vue +13 -1
  118. package/widgets/EodashProcess/index.vue +17 -1
  119. package/widgets/EodashProcess/methods/async.js +22 -1
  120. package/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.js +25 -3
  121. package/widgets/EodashProcess/methods/handling.js +2 -0
  122. package/widgets/EodashProcess/methods/outputs.js +1 -0
  123. package/widgets/EodashProcess/methods/utils.js +45 -1
  124. package/widgets/EodashTimeSlider.vue +40 -0
  125. package/widgets/EodashTools.vue +7 -3
  126. package/widgets/ExportState.vue +53 -22
  127. package/dist/client/EodashLayerControl-Bhxjw4V2.js +0 -154
  128. package/dist/client/EodashMapBtns-WoGq8MuV.js +0 -173
  129. package/dist/client/MobileLayout-EKQ_kpSh.js +0 -1226
  130. package/dist/client/asWebComponent-By_7_JjS.js +0 -19193
  131. package/dist/client/forwardRefs-BXxrv98s.js +0 -272
  132. package/dist/client/index-BuhOHXKv.js +0 -199
  133. package/widgets/EodashMapBtns.vue +0 -155
@@ -1,7 +1,6 @@
1
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, 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, ai as useLocation, aj as usePosition, M as useRounded, f as makeThemeProps, h as makeTagProps, O as makeRoundedProps, am as makePositionProps, an as makeLocationProps, P as makeElevationProps, J as makeDimensionProps, i as makeComponentProps, Q as makeBorderProps, av as useDefineWidgets } from './asWebComponent-By_7_JjS.js';
3
- import { m as makeVOverlayProps, V as VOverlay } from './VOverlay-yUn7p-Uf.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-BXxrv98s.js';
2
+ import { g as genericComponent, p as propsFactory, aj as PREFERS_REDUCED_MOTION, al as acceleratedEasing, am as deceleratedEasing, an as standardEasing, x as useProxiedModel, ao as IN_BROWSER, c as useRender, ap as focusableChildren, V as VDefaultsProvider, k as provideTheme, f as useBackgroundColor, h as useBorder, b as useDimension, i as useElevation, a8 as useLocation, a9 as usePosition, j as useRounded, q as makeThemeProps, m as makeTagProps, r as makeRoundedProps, ac as makePositionProps, ad as makeLocationProps, s as makeElevationProps, d as makeDimensionProps, e as makeComponentProps, t as makeBorderProps, aq as useDefineWidgets } from './asWebComponent-CWbNRdf9.js';
3
+ import { a as animate, g as getTargetBox, n as nullifyTransforms, u as useScopeId, f as forwardRefs, m as makeVOverlayProps, V as VOverlay } from './forwardRefs-BUfxOIo-.js';
5
4
 
6
5
  // Utilities
7
6
  const makeVDialogTransitionProps = propsFactory({
@@ -33,25 +32,34 @@ const VDialogTransition = genericComponent()({
33
32
  speed
34
33
  } = dimensions;
35
34
  saved.set(el, dimensions);
36
- const animation = animate(el, [{
37
- transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
38
- opacity: 0
39
- }, {}], {
40
- duration: 225 * speed,
41
- easing: deceleratedEasing
42
- });
43
- getChildren(el)?.forEach(el => {
35
+ if (PREFERS_REDUCED_MOTION()) {
44
36
  animate(el, [{
45
37
  opacity: 0
46
- }, {
47
- opacity: 0,
48
- offset: 0.33
49
38
  }, {}], {
50
- duration: 225 * 2 * speed,
51
- easing: standardEasing
39
+ duration: 125 * speed,
40
+ easing: deceleratedEasing
41
+ }).finished.then(() => done());
42
+ } else {
43
+ const animation = animate(el, [{
44
+ transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
45
+ opacity: 0
46
+ }, {}], {
47
+ duration: 225 * speed,
48
+ easing: deceleratedEasing
52
49
  });
53
- });
54
- animation.finished.then(() => done());
50
+ getChildren(el)?.forEach(el => {
51
+ animate(el, [{
52
+ opacity: 0
53
+ }, {
54
+ opacity: 0,
55
+ offset: 0.33
56
+ }, {}], {
57
+ duration: 225 * 2 * speed,
58
+ easing: standardEasing
59
+ });
60
+ });
61
+ animation.finished.then(() => done());
62
+ }
55
63
  },
56
64
  onAfterEnter(el) {
57
65
  el.style.removeProperty('pointer-events');
@@ -74,25 +82,34 @@ const VDialogTransition = genericComponent()({
74
82
  sy,
75
83
  speed
76
84
  } = dimensions;
77
- const animation = animate(el, [{}, {
78
- transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
79
- opacity: 0
80
- }], {
81
- duration: 125 * speed,
82
- easing: acceleratedEasing
83
- });
84
- animation.finished.then(() => done());
85
- getChildren(el)?.forEach(el => {
85
+ if (PREFERS_REDUCED_MOTION()) {
86
86
  animate(el, [{}, {
87
- opacity: 0,
88
- offset: 0.2
89
- }, {
90
87
  opacity: 0
91
88
  }], {
92
- duration: 125 * 2 * speed,
93
- easing: standardEasing
89
+ duration: 85 * speed,
90
+ easing: acceleratedEasing
91
+ }).finished.then(() => done());
92
+ } else {
93
+ const animation = animate(el, [{}, {
94
+ transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
95
+ opacity: 0
96
+ }], {
97
+ duration: 125 * speed,
98
+ easing: acceleratedEasing
94
99
  });
95
- });
100
+ animation.finished.then(() => done());
101
+ getChildren(el)?.forEach(el => {
102
+ animate(el, [{}, {
103
+ opacity: 0,
104
+ offset: 0.2
105
+ }, {
106
+ opacity: 0
107
+ }], {
108
+ duration: 125 * 2 * speed,
109
+ easing: standardEasing
110
+ });
111
+ });
112
+ }
96
113
  },
97
114
  onAfterLeave(el) {
98
115
  el.style.removeProperty('pointer-events');
@@ -184,10 +201,11 @@ const VDialog = genericComponent()({
184
201
  scopeId
185
202
  } = useScopeId();
186
203
  const overlay = ref();
187
- function onFocusin(e) {
204
+ async function onFocusin(e) {
188
205
  const before = e.relatedTarget;
189
206
  const after = e.target;
190
- if (before !== after && overlay.value?.contentEl &&
207
+ await nextTick();
208
+ if (isActive.value && before !== after && overlay.value?.contentEl &&
191
209
  // We're the topmost dialog
192
210
  overlay.value?.globalTop &&
193
211
  // It isn't the document or the dialog body
@@ -195,22 +213,39 @@ const VDialog = genericComponent()({
195
213
  // It isn't inside the dialog body
196
214
  !overlay.value.contentEl.contains(after)) {
197
215
  const focusable = focusableChildren(overlay.value.contentEl);
198
- if (!focusable.length) return;
199
- const firstElement = focusable[0];
200
- const lastElement = focusable[focusable.length - 1];
201
- if (before === firstElement) {
202
- lastElement.focus();
203
- } else {
204
- firstElement.focus();
205
- }
216
+ focusable[0]?.focus();
217
+ }
218
+ }
219
+ function onKeydown(e) {
220
+ if (e.key !== 'Tab' || !overlay.value?.contentEl) return;
221
+ const focusable = focusableChildren(overlay.value.contentEl);
222
+ if (!focusable.length) return;
223
+ const firstElement = focusable[0];
224
+ const lastElement = focusable[focusable.length - 1];
225
+ const active = document.activeElement;
226
+ if (e.shiftKey && active === firstElement) {
227
+ e.preventDefault();
228
+ lastElement.focus();
229
+ } else if (!e.shiftKey && active === lastElement) {
230
+ e.preventDefault();
231
+ firstElement.focus();
206
232
  }
207
233
  }
208
234
  onBeforeUnmount(() => {
209
235
  document.removeEventListener('focusin', onFocusin);
236
+ document.removeEventListener('keydown', onKeydown);
210
237
  });
211
238
  if (IN_BROWSER) {
212
239
  watch(() => isActive.value && props.retainFocus, val => {
213
- val ? document.addEventListener('focusin', onFocusin) : document.removeEventListener('focusin', onFocusin);
240
+ if (val) {
241
+ document.addEventListener('focusin', onFocusin, {
242
+ once: true
243
+ });
244
+ document.addEventListener('keydown', onKeydown);
245
+ } else {
246
+ document.removeEventListener('focusin', onFocusin);
247
+ document.removeEventListener('keydown', onKeydown);
248
+ }
214
249
  }, {
215
250
  immediate: true
216
251
  });
@@ -1,9 +1,9 @@
1
1
  import { ref, createVNode, normalizeStyle, normalizeClass, createElementVNode, toRefs, onMounted, createElementBlock, openBlock, createBlock, createCommentVNode, unref, withCtx, Fragment, renderList, toDisplayString, withDirectives, toRef } from 'vue';
2
2
  import { mdiUploadBox, mdiDownloadBox, mdiTrashCanOutline } from '@mdi/js';
3
- import { g as genericComponent, p as propsFactory, b as provideTheme, A as useDensity, a as useRender, f as makeThemeProps, h as makeTagProps, D as makeDensityProps, i as makeComponentProps, q as convertToUnit, _ as _export_sfc, Y as useSTAcStore, a6 as useOnLayersUpdate, V as VBtn } from './asWebComponent-By_7_JjS.js';
4
- import { C as compareIndicator, B as indicator } from './helpers-Dy0Q13tP.js';
5
- import { u as updateJobsStatus, l as loadProcess, j as downloadPreviousResults, k as deleteJob } from './async-DkSu_u2K.js';
6
- import { T as Tooltip } from './index-Dqj4tbx2.js';
3
+ import { g as genericComponent, p as propsFactory, k as provideTheme, U as useDensity, c as useRender, q as makeThemeProps, m as makeTagProps, W as makeDensityProps, e as makeComponentProps, o as convertToUnit, _ as _export_sfc, E as useSTAcStore, K as useOnLayersUpdate, G as VBtn } from './asWebComponent-CWbNRdf9.js';
4
+ import { G as compareIndicator, E as indicator } from './helpers-CtE0W7iu.js';
5
+ import { u as updateJobsStatus, j as getJobStatusUrl, l as loadProcess, k as downloadPreviousResults, m as deleteJob } from './async-BA7oWCMX.js';
6
+ import { T as Tooltip } from './index-D4_NRKrf.js';
7
7
 
8
8
  /**
9
9
  * The list of job result from the server
@@ -17,7 +17,7 @@ const jobs = ref([]);
17
17
  */
18
18
  const compareJobs = ref([]);
19
19
 
20
- const _style_0 = "div.v-table__wrapper{overflow:hidden!important;height:max-content!important}";
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
21
 
22
22
  const makeVTableProps = propsFactory({
23
23
  fixedHeader: Boolean,
@@ -70,9 +70,10 @@ const VTable = genericComponent()({
70
70
  }
71
71
  });
72
72
 
73
- const _hoisted_1 = { style: {"padding":"0px"} };
73
+ const _hoisted_1 = ["href"];
74
74
  const _hoisted_2 = { style: {"padding":"0px"} };
75
75
  const _hoisted_3 = { style: {"padding":"0px"} };
76
+ const _hoisted_4 = { style: {"padding":"0px"} };
76
77
 
77
78
  const _sfc_main = {
78
79
  __name: 'ProcessList',
@@ -128,9 +129,15 @@ return (_ctx, _cache) => {
128
129
  return (openBlock(), createElementBlock("tr", {
129
130
  key: item.jobID
130
131
  }, [
131
- createElementVNode("td", null, toDisplayString(new Date(item.job_start_datetime).toISOString().slice(0, 16)), 1 /* TEXT */),
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
+ ]),
132
139
  createElementVNode("td", null, toDisplayString(item.status), 1 /* TEXT */),
133
- createElementVNode("td", _hoisted_1, [
140
+ createElementVNode("td", _hoisted_2, [
134
141
  withDirectives(createVNode(VBtn, {
135
142
  disabled: item.status !== 'successful',
136
143
  color: "primary",
@@ -141,7 +148,7 @@ return (_ctx, _cache) => {
141
148
  [Tooltip, 'Load results to map']
142
149
  ])
143
150
  ]),
144
- createElementVNode("td", _hoisted_2, [
151
+ createElementVNode("td", _hoisted_3, [
145
152
  withDirectives(createVNode(VBtn, {
146
153
  disabled: item.status !== 'successful',
147
154
  color: "primary",
@@ -152,7 +159,7 @@ return (_ctx, _cache) => {
152
159
  [Tooltip, 'Download results']
153
160
  ])
154
161
  ]),
155
- createElementVNode("td", _hoisted_3, [
162
+ createElementVNode("td", _hoisted_4, [
156
163
  withDirectives(createVNode(VBtn, {
157
164
  color: "#ff5252",
158
165
  onClick: $event => (
@@ -172,8 +179,7 @@ return (_ctx, _cache) => {
172
179
  }), 128 /* KEYED_FRAGMENT */))
173
180
  ])
174
181
  ]),
175
- _: 1 /* STABLE */,
176
- __: [0]
182
+ _: 1 /* STABLE */
177
183
  }))
178
184
  : createCommentVNode("v-if", true)
179
185
  ]))
@@ -1,6 +1,6 @@
1
- import { createElementVNode, normalizeStyle, normalizeClass, computed, shallowRef, ref, watch, onBeforeMount, nextTick, onBeforeUnmount, toRef, withDirectives, createVNode, mergeProps, Fragment, vShow } from 'vue';
2
- import { at 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, au as getCurrentInstance, q as convertToUnit, O as makeRoundedProps } from './asWebComponent-By_7_JjS.js';
3
- import { m as makeTransitionProps, M as MaybeTransition } from './transition-C98Yn4Vo.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 { ai as SUPPORTS_INTERSECTION, g as genericComponent, aj as PREFERS_REDUCED_MOTION, 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-CWbNRdf9.js';
3
+ import { m as makeTransitionProps$1, M as MaybeTransition } from './transition-Byvp3L6Y.js';
4
4
 
5
5
  // Utilities
6
6
  function mounted(el, binding) {
@@ -47,6 +47,204 @@ 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: {
143
+ type: Boolean,
144
+ default: PREFERS_REDUCED_MOTION()
145
+ },
146
+ group: Boolean
147
+ },
148
+ setup(props, _ref2) {
149
+ let {
150
+ slots
151
+ } = _ref2;
152
+ const tag = props.group ? TransitionGroup : Transition;
153
+ return () => {
154
+ return h(tag, {
155
+ name: props.disabled ? '' : name,
156
+ css: !props.disabled,
157
+ // mode: props.mode, // TODO: vuejs/vue-next#3104
158
+ ...(props.disabled ? {} : functions)
159
+ }, slots.default);
160
+ };
161
+ }
162
+ });
163
+ }
164
+
165
+ // Utilities
166
+ function ExpandTransitionGenerator () {
167
+ let expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
168
+ let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
169
+ const sizeProperty = x ? 'width' : 'height';
170
+ const offsetProperty = camelize(`offset-${sizeProperty}`);
171
+ return {
172
+ onBeforeEnter(el) {
173
+ el._parent = el.parentNode;
174
+ el._initialStyle = {
175
+ transition: el.style.transition,
176
+ overflow: el.style.overflow,
177
+ [sizeProperty]: el.style[sizeProperty]
178
+ };
179
+ },
180
+ onEnter(el) {
181
+ const initialStyle = el._initialStyle;
182
+ if (!initialStyle) return;
183
+ el.style.setProperty('transition', 'none', 'important');
184
+ // Hide overflow to account for collapsed margins in the calculated height
185
+ el.style.overflow = 'hidden';
186
+ const offset = `${el[offsetProperty]}px`;
187
+ el.style[sizeProperty] = '0';
188
+
189
+ el.style.transition = initialStyle.transition;
190
+ if (expandedParentClass && el._parent) {
191
+ el._parent.classList.add(expandedParentClass);
192
+ }
193
+ requestAnimationFrame(() => {
194
+ el.style[sizeProperty] = offset;
195
+ });
196
+ },
197
+ onAfterEnter: resetStyles,
198
+ onEnterCancelled: resetStyles,
199
+ onLeave(el) {
200
+ el._initialStyle = {
201
+ transition: '',
202
+ overflow: el.style.overflow,
203
+ [sizeProperty]: el.style[sizeProperty]
204
+ };
205
+ el.style.overflow = 'hidden';
206
+ el.style[sizeProperty] = `${el[offsetProperty]}px`;
207
+
208
+ requestAnimationFrame(() => el.style[sizeProperty] = '0');
209
+ },
210
+ onAfterLeave,
211
+ onLeaveCancelled: onAfterLeave
212
+ };
213
+ function onAfterLeave(el) {
214
+ if (expandedParentClass && el._parent) {
215
+ el._parent.classList.remove(expandedParentClass);
216
+ }
217
+ resetStyles(el);
218
+ }
219
+ function resetStyles(el) {
220
+ if (!el._initialStyle) return;
221
+ const size = el._initialStyle[sizeProperty];
222
+ el.style.overflow = el._initialStyle.overflow;
223
+ if (size != null) el.style[sizeProperty] = size;
224
+ delete el._initialStyle;
225
+ }
226
+ }
227
+
228
+ createCssTransition('fab-transition', 'center center', 'out-in');
229
+
230
+ // Generic transitions
231
+ createCssTransition('dialog-bottom-transition');
232
+ createCssTransition('dialog-top-transition');
233
+ createCssTransition('fade-transition');
234
+ createCssTransition('scale-transition');
235
+ createCssTransition('scroll-x-transition');
236
+ createCssTransition('scroll-x-reverse-transition');
237
+ createCssTransition('scroll-y-transition');
238
+ createCssTransition('scroll-y-reverse-transition');
239
+ createCssTransition('slide-x-transition');
240
+ createCssTransition('slide-x-reverse-transition');
241
+ createCssTransition('slide-y-transition');
242
+ createCssTransition('slide-y-reverse-transition');
243
+
244
+ // Javascript transitions
245
+ const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator());
246
+ createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true));
247
+
50
248
  function useAspectStyles(props) {
51
249
  return {
52
250
  aspectStyles: computed(() => {
@@ -127,7 +325,7 @@ const makeVImgProps = propsFactory({
127
325
  ...makeVResponsiveProps(),
128
326
  ...makeComponentProps(),
129
327
  ...makeRoundedProps(),
130
- ...makeTransitionProps()
328
+ ...makeTransitionProps$1()
131
329
  }, 'VImg');
132
330
  const VImg = genericComponent()({
133
331
  name: 'VImg',
@@ -381,4 +579,4 @@ const VImg = genericComponent()({
381
579
  }
382
580
  });
383
581
 
384
- export { VImg as V };
582
+ export { VImg as V, VExpandTransition as a };
@@ -1,5 +1,5 @@
1
1
  import { createVNode, normalizeStyle, normalizeClass, createElementVNode } 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-By_7_JjS.js';
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-CWbNRdf9.js';
3
3
  import { u as useSsrBoot } from './ssrBoot-Zgc_Ttvi.js';
4
4
 
5
5
  const makeVMainProps = propsFactory({
@@ -1,7 +1,6 @@
1
1
  import { useId, toRef, ref, computed, mergeProps, createVNode } from 'vue';
2
- import { m as makeVOverlayProps, V as VOverlay } from './VOverlay-yUn7p-Uf.js';
3
- import { b as useScopeId, f as forwardRefs } from './forwardRefs-BXxrv98s.js';
4
- import { g as genericComponent, p as propsFactory, j as useProxiedModel, a as useRender, o as omit } from './asWebComponent-By_7_JjS.js';
2
+ import { u as useScopeId, f as forwardRefs, m as makeVOverlayProps, V as VOverlay } from './forwardRefs-BUfxOIo-.js';
3
+ import { g as genericComponent, p as propsFactory, x as useProxiedModel, c as useRender, Z as omit } from './asWebComponent-CWbNRdf9.js';
5
4
 
6
5
  const makeVTooltipProps = propsFactory({
7
6
  id: String,
@@ -1,5 +1,5 @@
1
1
  import { ref, onMounted, nextTick, createElementBlock, openBlock, Fragment, renderList, unref, createElementVNode, toDisplayString, normalizeStyle, createBlock, resolveDynamicComponent, mergeProps } from 'vue';
2
- import { av as useDefineWidgets, G as useLayout } from './asWebComponent-By_7_JjS.js';
2
+ import { aq as useDefineWidgets, a as useLayout } from './asWebComponent-CWbNRdf9.js';
3
3
  import 'animated-details';
4
4
 
5
5
  const _sfc_main = {