@swmansion/react-native-bottom-sheet 0.5.0 → 0.5.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.
|
@@ -21,6 +21,7 @@ export const useBottomSheetPanGesture = ({
|
|
|
21
21
|
}) => {
|
|
22
22
|
const isDraggingSheet = useSharedValue(false);
|
|
23
23
|
const isDraggingFromScrollable = useSharedValue(false);
|
|
24
|
+
const panStartX = useSharedValue(0);
|
|
24
25
|
const panStartY = useSharedValue(0);
|
|
25
26
|
const panActivated = useSharedValue(false);
|
|
26
27
|
const dragStartTranslateY = useSharedValue(0);
|
|
@@ -35,6 +36,7 @@ export const useBottomSheetPanGesture = ({
|
|
|
35
36
|
isTouchWithinScrollable.set(false);
|
|
36
37
|
const touch = event.changedTouches[0] ?? event.allTouches[0];
|
|
37
38
|
if (touch !== undefined) {
|
|
39
|
+
panStartX.set(touch.absoluteX);
|
|
38
40
|
panStartY.set(touch.absoluteY);
|
|
39
41
|
if (hasScrollable.value) {
|
|
40
42
|
const layout = measure(scrollableRef);
|
|
@@ -51,11 +53,16 @@ export const useBottomSheetPanGesture = ({
|
|
|
51
53
|
if (panActivated.value) return;
|
|
52
54
|
const touch = event.changedTouches[0] ?? event.allTouches[0];
|
|
53
55
|
if (!touch) return;
|
|
56
|
+
const deltaX = touch.absoluteX - panStartX.value;
|
|
54
57
|
const deltaY = touch.absoluteY - panStartY.value;
|
|
55
58
|
if (hasScrollable.value && scrollOffset.value > 0 && isTouchWithinScrollable.value) {
|
|
56
59
|
return;
|
|
57
60
|
}
|
|
58
|
-
if (
|
|
61
|
+
if (Math.abs(deltaX) > Math.abs(deltaY)) {
|
|
62
|
+
stateManager.fail();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (Math.abs(deltaY) > Math.abs(deltaX) && (deltaY > 0 || translateY.value > 0)) {
|
|
59
66
|
panActivated.set(true);
|
|
60
67
|
stateManager.activate();
|
|
61
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Gesture","scheduleOnRN","measure","scrollTo","useSharedValue","findSnapTarget","useBottomSheetPanGesture","animationTarget","translateY","sheetHeight","detentsValue","isDraggableValue","currentIndex","scrollOffset","hasScrollable","isScrollableGestureActive","isScrollableLocked","scrollableRef","handleIndexChange","animateToIndex","isDraggingSheet","isDraggingFromScrollable","panStartY","panActivated","dragStartTranslateY","isTouchWithinScrollable","Pan","manualActivation","onTouchesDown","event","set","touch","changedTouches","allTouches","undefined","absoluteY","value","layout","withinX","
|
|
1
|
+
{"version":3,"names":["Gesture","scheduleOnRN","measure","scrollTo","useSharedValue","findSnapTarget","useBottomSheetPanGesture","animationTarget","translateY","sheetHeight","detentsValue","isDraggableValue","currentIndex","scrollOffset","hasScrollable","isScrollableGestureActive","isScrollableLocked","scrollableRef","handleIndexChange","animateToIndex","isDraggingSheet","isDraggingFromScrollable","panStartX","panStartY","panActivated","dragStartTranslateY","isTouchWithinScrollable","Pan","manualActivation","onTouchesDown","event","set","touch","changedTouches","allTouches","undefined","absoluteX","absoluteY","value","layout","withinX","pageX","width","withinY","pageY","height","onTouchesMove","stateManager","deltaX","deltaY","Math","abs","fail","activate","onBegin","NaN","onUpdate","isDraggingDown","translationY","canStartDrag","isScrollableActive","rawTranslate","nextTranslate","min","max","resolvedDetentValues","draggable","targetSnapIndex","targetSnapValue","i","length","detentValue","maxSnap","onEnd","wasDragging","allPositions","map","snapIndex","index","isDraggable","targetIndex","velocityY","hasIndexChanged","shouldApplyVelocity","Number","isFinite"],"sourceRoot":"../../src","sources":["useBottomSheetPanGesture.ts"],"mappings":";;AACA,SAASA,OAAO,QAAQ,8BAA8B;AACtD,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SACEC,OAAO,EACPC,QAAQ,EAGRC,cAAc,QACT,yBAAyB;AAEhC,SAASC,cAAc,QAAQ,uBAAoB;AAkBnD,OAAO,MAAMC,wBAAwB,GAAGA,CAAC;EACvCC,eAAe;EACfC,UAAU;EACVC,WAAW;EACXC,YAAY;EACZC,gBAAgB;EAChBC,YAAY;EACZC,YAAY;EACZC,aAAa;EACbC,yBAAyB;EACzBC,kBAAkB;EAClBC,aAAa;EACbC,iBAAiB;EACjBC;AAC2B,CAAC,KAAiB;EAC7C,MAAMC,eAAe,GAAGhB,cAAc,CAAC,KAAK,CAAC;EAC7C,MAAMiB,wBAAwB,GAAGjB,cAAc,CAAC,KAAK,CAAC;EACtD,MAAMkB,SAAS,GAAGlB,cAAc,CAAC,CAAC,CAAC;EACnC,MAAMmB,SAAS,GAAGnB,cAAc,CAAC,CAAC,CAAC;EACnC,MAAMoB,YAAY,GAAGpB,cAAc,CAAC,KAAK,CAAC;EAC1C,MAAMqB,mBAAmB,GAAGrB,cAAc,CAAC,CAAC,CAAC;EAC7C,MAAMsB,uBAAuB,GAAGtB,cAAc,CAAC,KAAK,CAAC;EAErD,OAAOJ,OAAO,CAAC2B,GAAG,CAAC,CAAC,CACjBC,gBAAgB,CAAC,IAAI,CAAC,CACtBC,aAAa,CAAEC,KAAK,IAAK;IACxB,SAAS;;IACTN,YAAY,CAACO,GAAG,CAAC,KAAK,CAAC;IACvBX,eAAe,CAACW,GAAG,CAAC,KAAK,CAAC;IAC1BV,wBAAwB,CAACU,GAAG,CAAC,KAAK,CAAC;IACnCf,kBAAkB,CAACe,GAAG,CAAC,KAAK,CAAC;IAC7BL,uBAAuB,CAACK,GAAG,CAAC,KAAK,CAAC;IAClC,MAAMC,KAAK,GAAGF,KAAK,CAACG,cAAc,CAAC,CAAC,CAAC,IAAIH,KAAK,CAACI,UAAU,CAAC,CAAC,CAAC;IAC5D,IAAIF,KAAK,KAAKG,SAAS,EAAE;MACvBb,SAAS,CAACS,GAAG,CAACC,KAAK,CAACI,SAAS,CAAC;MAC9Bb,SAAS,CAACQ,GAAG,CAACC,KAAK,CAACK,SAAS,CAAC;MAC9B,IAAIvB,aAAa,CAACwB,KAAK,EAAE;QACvB,MAAMC,MAAM,GAAGrC,OAAO,CAACe,aAAa,CAAC;QACrC,IAAIsB,MAAM,KAAK,IAAI,EAAE;UACnB,MAAMC,OAAO,GACXR,KAAK,CAACI,SAAS,IAAIG,MAAM,CAACE,KAAK,IAC/BT,KAAK,CAACI,SAAS,IAAIG,MAAM,CAACE,KAAK,GAAGF,MAAM,CAACG,KAAK;UAChD,MAAMC,OAAO,GACXX,KAAK,CAACK,SAAS,IAAIE,MAAM,CAACK,KAAK,IAC/BZ,KAAK,CAACK,SAAS,IAAIE,MAAM,CAACK,KAAK,GAAGL,MAAM,CAACM,MAAM;UACjDnB,uBAAuB,CAACK,GAAG,CAACS,OAAO,IAAIG,OAAO,CAAC;QACjD;MACF;IACF;EACF,CAAC,CAAC,CACDG,aAAa,CAAC,CAAChB,KAAK,EAAEiB,YAAY,KAAK;IACtC,SAAS;;IACT,IAAIvB,YAAY,CAACc,KAAK,EAAE;IACxB,MAAMN,KAAK,GAAGF,KAAK,CAACG,cAAc,CAAC,CAAC,CAAC,IAAIH,KAAK,CAACI,UAAU,CAAC,CAAC,CAAC;IAC5D,IAAI,CAACF,KAAK,EAAE;IACZ,MAAMgB,MAAM,GAAGhB,KAAK,CAACI,SAAS,GAAGd,SAAS,CAACgB,KAAK;IAChD,MAAMW,MAAM,GAAGjB,KAAK,CAACK,SAAS,GAAGd,SAAS,CAACe,KAAK;IAChD,IACExB,aAAa,CAACwB,KAAK,IACnBzB,YAAY,CAACyB,KAAK,GAAG,CAAC,IACtBZ,uBAAuB,CAACY,KAAK,EAC7B;MACA;IACF;IACA,IAAIY,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC,GAAGE,IAAI,CAACC,GAAG,CAACF,MAAM,CAAC,EAAE;MACvCF,YAAY,CAACK,IAAI,CAAC,CAAC;MACnB;IACF;IACA,IACEF,IAAI,CAACC,GAAG,CAACF,MAAM,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC,KAClCC,MAAM,GAAG,CAAC,IAAIzC,UAAU,CAAC8B,KAAK,GAAG,CAAC,CAAC,EACpC;MACAd,YAAY,CAACO,GAAG,CAAC,IAAI,CAAC;MACtBgB,YAAY,CAACM,QAAQ,CAAC,CAAC;IACzB;EACF,CAAC,CAAC,CACDC,OAAO,CAAC,MAAM;IACb,SAAS;;IACT/C,eAAe,CAACwB,GAAG,CAACwB,GAAG,CAAC;IACxBnC,eAAe,CAACW,GAAG,CAAC,KAAK,CAAC;IAC1BV,wBAAwB,CAACU,GAAG,CAAC,KAAK,CAAC;IACnCN,mBAAmB,CAACM,GAAG,CAACvB,UAAU,CAAC8B,KAAK,CAAC;EAC3C,CAAC,CAAC,CACDkB,QAAQ,CAAE1B,KAAK,IAAK;IACnB,SAAS;;IACT,IAAIV,eAAe,CAACkB,KAAK,EAAE;MACzB,IAAIjB,wBAAwB,CAACiB,KAAK,EAAE;QAClCnC,QAAQ,CAACc,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;MACtC;IACF,CAAC,MAAM;MACL,MAAMwC,cAAc,GAAG3B,KAAK,CAAC4B,YAAY,GAAG,CAAC;MAC7C,MAAMC,YAAY,GAChB,CAAC7C,aAAa,CAACwB,KAAK,IACpBzB,YAAY,CAACyB,KAAK,IAAI,CAAC,IACvB,CAACZ,uBAAuB,CAACY,KAAK;MAChC,IAAI,CAACqB,YAAY,IAAK,CAACF,cAAc,IAAIjD,UAAU,CAAC8B,KAAK,IAAI,CAAE,EAAE;QAC/D;MACF;MACA,MAAMsB,kBAAkB,GACtB9C,aAAa,CAACwB,KAAK,IAAIvB,yBAAyB,CAACuB,KAAK;MACxDlB,eAAe,CAACW,GAAG,CAAC,IAAI,CAAC;MACzBV,wBAAwB,CAACU,GAAG,CAC1B6B,kBAAkB,IAAIlC,uBAAuB,CAACY,KAChD,CAAC;MACDb,mBAAmB,CAACM,GAAG,CAACvB,UAAU,CAAC8B,KAAK,GAAGR,KAAK,CAAC4B,YAAY,CAAC;MAC9D1C,kBAAkB,CAACe,GAAG,CAACjB,aAAa,CAACwB,KAAK,CAAC;MAC3C,IAAIZ,uBAAuB,CAACY,KAAK,IAAIxB,aAAa,CAACwB,KAAK,EAAE;QACxDnC,QAAQ,CAACc,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;MACtC;IACF;IACA,MAAM4C,YAAY,GAAGpC,mBAAmB,CAACa,KAAK,GAAGR,KAAK,CAAC4B,YAAY;IACnE,MAAMI,aAAa,GAAGZ,IAAI,CAACa,GAAG,CAC5Bb,IAAI,CAACc,GAAG,CAACH,YAAY,EAAE,CAAC,CAAC,EACzBpD,WAAW,CAAC6B,KACd,CAAC;IACD9B,UAAU,CAACuB,GAAG,CAAC+B,aAAa,CAAC;IAC7B,IACE1C,eAAe,CAACkB,KAAK,IACrBuB,YAAY,GAAG,CAAC,IAChBnC,uBAAuB,CAACY,KAAK,IAC7BxB,aAAa,CAACwB,KAAK,EACnB;MACAlB,eAAe,CAACW,GAAG,CAAC,KAAK,CAAC;MAC1Bf,kBAAkB,CAACe,GAAG,CAAC,KAAK,CAAC;MAC7B,MAAMkC,oBAAoB,GAAGvD,YAAY,CAAC4B,KAAK;MAC/C,MAAM4B,SAAS,GAAGvD,gBAAgB,CAAC2B,KAAK;MACxC,IAAI6B,eAAe,GAAG,CAAC,CAAC;MACxB,IAAIC,eAAe,GAAG,CAAC,CAAC;MACxB,KAAK,IAAIC,CAAC,GAAGJ,oBAAoB,CAACK,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QACzD,MAAME,WAAW,GAAGN,oBAAoB,CAACI,CAAC,CAAC;QAC3C,IACEE,WAAW,KAAKpC,SAAS,KACxB+B,SAAS,CAACG,CAAC,CAAC,IAAI,IAAI,CAAC,IACtBE,WAAW,GAAGH,eAAe,EAC7B;UACAA,eAAe,GAAGG,WAAW;UAC7BJ,eAAe,GAAGE,CAAC;QACrB;MACF;MACA,IAAIF,eAAe,KAAK,CAAC,CAAC,EAAE;QAC1B,MAAMK,OAAO,GAAG/D,WAAW,CAAC6B,KAAK;QACjC,KAAK,IAAI+B,CAAC,GAAGJ,oBAAoB,CAACK,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;UACzD,IAAIJ,oBAAoB,CAACI,CAAC,CAAC,KAAKG,OAAO,EAAE;YACvCL,eAAe,GAAGE,CAAC;YACnB;UACF;QACF;MACF;MACA,IAAIF,eAAe,KAAK,CAAC,CAAC,EAAE;QAC1B,IAAIA,eAAe,KAAKvD,YAAY,CAAC0B,KAAK,EAAE;UAC1CrC,YAAY,CAACiB,iBAAiB,EAAEiD,eAAe,CAAC;QAClD;QACAhD,cAAc,CAACgD,eAAe,CAAC;MACjC;IACF;EACF,CAAC,CAAC,CACDM,KAAK,CAAE3C,KAAK,IAAK;IAChB,SAAS;;IACT,MAAM4C,WAAW,GAAGtD,eAAe,CAACkB,KAAK;IACzCtB,kBAAkB,CAACe,GAAG,CAAC,KAAK,CAAC;IAC7BX,eAAe,CAACW,GAAG,CAAC,KAAK,CAAC;IAC1BxB,eAAe,CAACwB,GAAG,CAACwB,GAAG,CAAC;IACxB,IAAI,CAACmB,WAAW,EAAE;MAChBvD,cAAc,CAACP,YAAY,CAAC0B,KAAK,CAAC;MAClC;IACF;IACA,MAAMkC,OAAO,GAAG/D,WAAW,CAAC6B,KAAK;IACjC,MAAM4B,SAAS,GAAGvD,gBAAgB,CAAC2B,KAAK;IACxC,MAAMqC,YAAY,GAAGjE,YAAY,CAAC4B,KAAK,CAACsC,GAAG,CAAC,CAACL,WAAW,EAAEM,SAAS,MAAM;MACvEC,KAAK,EAAED,SAAS;MAChBrE,UAAU,EAAEgE,OAAO,GAAGD,WAAW;MACjCQ,WAAW,EAAEb,SAAS,CAACW,SAAS,CAAC,IAAI;IACvC,CAAC,CAAC,CAAC;IACH,MAAMG,WAAW,GAAG3E,cAAc,CAChCG,UAAU,CAAC8B,KAAK,EAChBR,KAAK,CAACmD,SAAS,EACfrE,YAAY,CAAC0B,KAAK,EAClBqC,YACF,CAAC;IACD,MAAMO,eAAe,GAAGF,WAAW,KAAKpE,YAAY,CAAC0B,KAAK;IAC1D,IAAI4C,eAAe,EAAEjF,YAAY,CAACiB,iBAAiB,EAAE8D,WAAW,CAAC;IACjE,MAAMG,mBAAmB,GACvBD,eAAe,IAAIE,MAAM,CAACC,QAAQ,CAACvD,KAAK,CAACmD,SAAS,CAAC;IACrD9D,cAAc,CACZ6D,WAAW,EACXG,mBAAmB,GAAGrD,KAAK,CAACmD,SAAS,GAAG9C,SAC1C,CAAC;EACH,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBottomSheetPanGesture.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetPanGesture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAIjC,UAAU,2BAA2B;IACnC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,gBAAgB,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,yBAAyB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAChD,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED,eAAO,MAAM,wBAAwB,GAAI,2NActC,2BAA2B,KAAG,
|
|
1
|
+
{"version":3,"file":"useBottomSheetPanGesture.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetPanGesture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAIjC,UAAU,2BAA2B;IACnC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,gBAAgB,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,yBAAyB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAChD,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED,eAAO,MAAM,wBAAwB,GAAI,2NActC,2BAA2B,KAAG,UA8KhC,CAAC"}
|
package/package.json
CHANGED
|
@@ -44,6 +44,7 @@ export const useBottomSheetPanGesture = ({
|
|
|
44
44
|
}: BottomSheetPanGestureParams): PanGesture => {
|
|
45
45
|
const isDraggingSheet = useSharedValue(false);
|
|
46
46
|
const isDraggingFromScrollable = useSharedValue(false);
|
|
47
|
+
const panStartX = useSharedValue(0);
|
|
47
48
|
const panStartY = useSharedValue(0);
|
|
48
49
|
const panActivated = useSharedValue(false);
|
|
49
50
|
const dragStartTranslateY = useSharedValue(0);
|
|
@@ -60,6 +61,7 @@ export const useBottomSheetPanGesture = ({
|
|
|
60
61
|
isTouchWithinScrollable.set(false);
|
|
61
62
|
const touch = event.changedTouches[0] ?? event.allTouches[0];
|
|
62
63
|
if (touch !== undefined) {
|
|
64
|
+
panStartX.set(touch.absoluteX);
|
|
63
65
|
panStartY.set(touch.absoluteY);
|
|
64
66
|
if (hasScrollable.value) {
|
|
65
67
|
const layout = measure(scrollableRef);
|
|
@@ -80,6 +82,7 @@ export const useBottomSheetPanGesture = ({
|
|
|
80
82
|
if (panActivated.value) return;
|
|
81
83
|
const touch = event.changedTouches[0] ?? event.allTouches[0];
|
|
82
84
|
if (!touch) return;
|
|
85
|
+
const deltaX = touch.absoluteX - panStartX.value;
|
|
83
86
|
const deltaY = touch.absoluteY - panStartY.value;
|
|
84
87
|
if (
|
|
85
88
|
hasScrollable.value &&
|
|
@@ -88,7 +91,14 @@ export const useBottomSheetPanGesture = ({
|
|
|
88
91
|
) {
|
|
89
92
|
return;
|
|
90
93
|
}
|
|
91
|
-
if (
|
|
94
|
+
if (Math.abs(deltaX) > Math.abs(deltaY)) {
|
|
95
|
+
stateManager.fail();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (
|
|
99
|
+
Math.abs(deltaY) > Math.abs(deltaX) &&
|
|
100
|
+
(deltaY > 0 || translateY.value > 0)
|
|
101
|
+
) {
|
|
92
102
|
panActivated.set(true);
|
|
93
103
|
stateManager.activate();
|
|
94
104
|
}
|