@maas/vue-equipment 0.25.1 → 0.25.3
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.
- package/dist/nuxt/module.json +1 -1
- package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +10 -9
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +15 -7
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.mjs +2 -6
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.d.ts +2 -1
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.mjs +6 -3
- package/package.json +1 -1
package/dist/nuxt/module.json
CHANGED
|
@@ -154,6 +154,15 @@ const {
|
|
|
154
154
|
removeScrollLockPadding,
|
|
155
155
|
} = drawerApi
|
|
156
156
|
|
|
157
|
+
// Make sure this is reactive
|
|
158
|
+
const disabled = computed(() => {
|
|
159
|
+
if (props.options.disabled === undefined) {
|
|
160
|
+
return defaultOptions.disabled
|
|
161
|
+
} else {
|
|
162
|
+
return props.options.disabled
|
|
163
|
+
}
|
|
164
|
+
})
|
|
165
|
+
|
|
157
166
|
const { onPointerdown, onClick, style, hasDragged } = useDrawerDrag({
|
|
158
167
|
id: props.id,
|
|
159
168
|
isActive,
|
|
@@ -171,6 +180,7 @@ const { initializeWheelListener, destroyWheelListener } = useDrawerWheel({
|
|
|
171
180
|
id: props.id,
|
|
172
181
|
elRef,
|
|
173
182
|
position,
|
|
183
|
+
disabled,
|
|
174
184
|
})
|
|
175
185
|
|
|
176
186
|
const { findState } = useDrawerState(props.id)
|
|
@@ -225,15 +235,6 @@ const contentTransition = computed(() => {
|
|
|
225
235
|
: mappedOptions.transitions?.content
|
|
226
236
|
})
|
|
227
237
|
|
|
228
|
-
// Make sure this is reactive
|
|
229
|
-
const disabled = computed(() => {
|
|
230
|
-
if (props.options.disabled === undefined) {
|
|
231
|
-
return defaultOptions.disabled
|
|
232
|
-
} else {
|
|
233
|
-
return props.options.disabled
|
|
234
|
-
}
|
|
235
|
-
})
|
|
236
|
-
|
|
237
238
|
// Private functions
|
|
238
239
|
function convertToPixels(value: string) {
|
|
239
240
|
const regex = /^(\d*\.?\d+)\s*(rem|px)$/
|
|
@@ -152,30 +152,30 @@ export function useDrawerDrag(args) {
|
|
|
152
152
|
case "bottom":
|
|
153
153
|
case "top":
|
|
154
154
|
if (velocityY > toValue(threshold).momentum) {
|
|
155
|
-
const
|
|
155
|
+
const snapPointY = findClosestSnapPoint({
|
|
156
156
|
draggedX: 0,
|
|
157
157
|
draggedY,
|
|
158
158
|
direction: relDirectionY.value
|
|
159
159
|
});
|
|
160
|
-
if (
|
|
160
|
+
if (snapPointY === drawerHeight.value) {
|
|
161
161
|
shouldClose.value = true;
|
|
162
162
|
} else {
|
|
163
|
-
interpolateTo.value =
|
|
163
|
+
interpolateTo.value = snapPointY;
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
break;
|
|
167
167
|
case "right":
|
|
168
168
|
case "left":
|
|
169
169
|
if (velocityX > toValue(threshold).momentum) {
|
|
170
|
-
const
|
|
170
|
+
const snapPointX = findClosestSnapPoint({
|
|
171
171
|
draggedX,
|
|
172
172
|
draggedY,
|
|
173
173
|
direction: relDirectionX.value
|
|
174
174
|
});
|
|
175
|
-
if (
|
|
175
|
+
if (snapPointX === drawerWidth.value) {
|
|
176
176
|
shouldClose.value = true;
|
|
177
177
|
} else {
|
|
178
|
-
interpolateTo.value =
|
|
178
|
+
interpolateTo.value = snapPointX;
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
break;
|
|
@@ -185,21 +185,29 @@ export function useDrawerDrag(args) {
|
|
|
185
185
|
switch (position) {
|
|
186
186
|
case "bottom":
|
|
187
187
|
const newDraggedB = clamp(y - originY.value, 0, toValue(overshoot) * -1);
|
|
188
|
+
if (newDraggedB === draggedY.value)
|
|
189
|
+
break;
|
|
188
190
|
relDirectionY.value = newDraggedB < draggedY.value ? "below" : "above";
|
|
189
191
|
draggedY.value = newDraggedB;
|
|
190
192
|
break;
|
|
191
193
|
case "top":
|
|
192
194
|
const newDraggedT = clamp(y - originY.value, 0, toValue(overshoot));
|
|
195
|
+
if (newDraggedT === draggedY.value)
|
|
196
|
+
break;
|
|
193
197
|
relDirectionY.value = newDraggedT < draggedY.value ? "below" : "above";
|
|
194
198
|
draggedY.value = newDraggedT;
|
|
195
199
|
break;
|
|
196
200
|
case "right":
|
|
197
201
|
const newDraggedR = clamp(x - originX.value, 0, toValue(overshoot) * -1);
|
|
202
|
+
if (newDraggedR === draggedX.value)
|
|
203
|
+
break;
|
|
198
204
|
relDirectionX.value = newDraggedR < draggedX.value ? "below" : "above";
|
|
199
205
|
draggedX.value = newDraggedR;
|
|
200
206
|
break;
|
|
201
207
|
case "left":
|
|
202
208
|
const newDraggedL = clamp(x - originX.value, 0, toValue(overshoot));
|
|
209
|
+
if (newDraggedL === draggedX.value)
|
|
210
|
+
break;
|
|
203
211
|
relDirectionX.value = newDraggedL < draggedX.value ? "below" : "above";
|
|
204
212
|
draggedX.value = newDraggedL;
|
|
205
213
|
break;
|
|
@@ -291,7 +299,7 @@ export function useDrawerDrag(args) {
|
|
|
291
299
|
snappedX.value = interpolateTo.value;
|
|
292
300
|
break;
|
|
293
301
|
}
|
|
294
|
-
} else
|
|
302
|
+
} else {
|
|
295
303
|
switch (position) {
|
|
296
304
|
case "bottom":
|
|
297
305
|
case "top":
|
|
@@ -238,9 +238,7 @@ export function useDrawerSnap(args) {
|
|
|
238
238
|
switch (position) {
|
|
239
239
|
case "bottom":
|
|
240
240
|
case "top":
|
|
241
|
-
if (
|
|
242
|
-
break;
|
|
243
|
-
} else {
|
|
241
|
+
if (!!toValue(draggedY2) || toValue(draggedY2) === 0) {
|
|
244
242
|
closest = findClosestNumber({
|
|
245
243
|
number: toValue(draggedY2),
|
|
246
244
|
numbers: mappedSnapPoints.value,
|
|
@@ -250,9 +248,7 @@ export function useDrawerSnap(args) {
|
|
|
250
248
|
}
|
|
251
249
|
case "right":
|
|
252
250
|
case "left":
|
|
253
|
-
if (
|
|
254
|
-
break;
|
|
255
|
-
} else {
|
|
251
|
+
if (!!toValue(draggedX2) || toValue(draggedX2) === 0) {
|
|
256
252
|
closest = findClosestNumber({
|
|
257
253
|
number: toValue(draggedX2),
|
|
258
254
|
numbers: mappedSnapPoints.value,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { type Ref, type MaybeRef } from 'vue';
|
|
1
|
+
import { type Ref, type MaybeRef, type ComputedRef } from 'vue';
|
|
2
2
|
import { type DefaultOptions } from '../../utils/defaultOptions.js';
|
|
3
3
|
type UseDrawerWheelArgs = {
|
|
4
4
|
id: MaybeRef<string>;
|
|
5
5
|
elRef: Ref<HTMLElement | undefined>;
|
|
6
6
|
position: MaybeRef<DefaultOptions['position']>;
|
|
7
|
+
disabled: ComputedRef<boolean>;
|
|
7
8
|
};
|
|
8
9
|
export declare function useDrawerWheel(args: UseDrawerWheelArgs): {
|
|
9
10
|
initializeWheelListener: () => void;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
computed,
|
|
3
|
+
toValue
|
|
4
|
+
} from "vue";
|
|
2
5
|
import { unrefElement } from "@vueuse/core";
|
|
3
6
|
import WheelGestures from "wheel-gestures";
|
|
4
7
|
import { useDrawerState } from "./useDrawerState.mjs";
|
|
5
8
|
export function useDrawerWheel(args) {
|
|
6
|
-
const { id, elRef, position } = args;
|
|
9
|
+
const { id, elRef, position, disabled } = args;
|
|
7
10
|
const { findState } = useDrawerState(toValue(id));
|
|
8
11
|
const { dragging, wheeling } = findState();
|
|
9
12
|
let startEvent;
|
|
@@ -18,7 +21,7 @@ export function useDrawerWheel(args) {
|
|
|
18
21
|
}
|
|
19
22
|
});
|
|
20
23
|
const wheelGestures = WheelGestures({
|
|
21
|
-
preventWheelAction: axis.value,
|
|
24
|
+
preventWheelAction: disabled ? false : axis.value,
|
|
22
25
|
reverseSign: [true, true, false]
|
|
23
26
|
// Reverse scroll direction for x and y axis
|
|
24
27
|
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maas/vue-equipment",
|
|
3
3
|
"description": "A magic collection of Vue composables, plugins, components and directives",
|
|
4
|
-
"version": "0.25.
|
|
4
|
+
"version": "0.25.3",
|
|
5
5
|
"author": "Robin Scholz <https://github.com/robinscholz>, Christoph Jeworutzki <https://github.com/ChristophJeworutzki>",
|
|
6
6
|
"devDependencies": {
|
|
7
7
|
"@antfu/ni": "^0.21.12",
|