@xh/hoist 72.0.0-SNAPSHOT.1737150473558 → 72.0.0-SNAPSHOT.1737472364423
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/CHANGELOG.md +10 -1
- package/build/types/kit/onsen/index.d.ts +1 -1
- package/build/types/kit/swiper/index.d.ts +98 -0
- package/build/types/mobile/cmp/navigator/Navigator.d.ts +2 -6
- package/build/types/mobile/cmp/navigator/NavigatorModel.d.ts +18 -11
- package/build/types/mobile/cmp/navigator/impl/GestureRefresh.d.ts +8 -0
- package/build/types/mobile/cmp/navigator/impl/{swipe/SwiperModel.d.ts → GestureRefreshModel.d.ts} +1 -8
- package/build/types/mobile/cmp/navigator/impl/Utils.d.ts +9 -0
- package/cmp/ag-grid/AgGrid.scss +6 -0
- package/kit/onsen/index.ts +0 -1
- package/kit/onsen/theme.scss +0 -5
- package/kit/swiper/index.ts +14 -0
- package/kit/swiper/styles.scss +2 -0
- package/mobile/cmp/navigator/Navigator.scss +20 -0
- package/mobile/cmp/navigator/Navigator.ts +36 -19
- package/mobile/cmp/navigator/NavigatorModel.ts +156 -99
- package/mobile/cmp/navigator/impl/{swipe/Swiper.scss → GestureRefresh.scss} +6 -1
- package/mobile/cmp/navigator/impl/GestureRefresh.ts +55 -0
- package/mobile/cmp/navigator/impl/GestureRefreshModel.ts +86 -0
- package/mobile/cmp/navigator/impl/Page.scss +4 -2
- package/mobile/cmp/navigator/impl/Page.ts +10 -12
- package/mobile/cmp/navigator/impl/Utils.ts +107 -0
- package/package.json +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/types/mobile/cmp/navigator/impl/swipe/BackIndicator.d.ts +0 -6
- package/build/types/mobile/cmp/navigator/impl/swipe/RefreshIndicator.d.ts +0 -6
- package/build/types/mobile/cmp/navigator/impl/swipe/Swiper.d.ts +0 -8
- package/mobile/cmp/navigator/impl/swipe/BackIndicator.ts +0 -34
- package/mobile/cmp/navigator/impl/swipe/RefreshIndicator.ts +0 -36
- package/mobile/cmp/navigator/impl/swipe/Swiper.ts +0 -35
- package/mobile/cmp/navigator/impl/swipe/SwiperModel.ts +0 -153
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## v72.0.0-SNAPSHOT - unreleased
|
|
4
4
|
|
|
5
|
+
### 💥 Breaking Changes
|
|
6
|
+
|
|
7
|
+
* Mobile `Navigator` no longer supports `animation` prop, and `NavigatorModel` no longer supports
|
|
8
|
+
`swipeToGoBack`. Both of these properties are now managed internally by the `Navigator` component.
|
|
9
|
+
|
|
10
|
+
### 🎁 New Features
|
|
11
|
+
|
|
12
|
+
* Mobile `Navigator` has been rebuilt to support smooth swipe-based navigation. The API remains
|
|
13
|
+
largely the same, notwithstanding the minor breaking changes detailed above.
|
|
14
|
+
|
|
5
15
|
### 🐞 Bug Fixes
|
|
6
16
|
|
|
7
17
|
* Fixed `ViewManagerModel` unique name validation.
|
|
@@ -11,7 +21,6 @@
|
|
|
11
21
|
|
|
12
22
|
* Added support for providing custom `PersistenceProvider` implementations to `PersistOptions`.
|
|
13
23
|
|
|
14
|
-
|
|
15
24
|
### ⚙️ Typescript API Adjustments
|
|
16
25
|
|
|
17
26
|
* Improved signature of `HoistBase.markPersist`.
|
|
@@ -4,5 +4,5 @@ import 'onsenui/css/onsenui.css';
|
|
|
4
4
|
import { FunctionComponent } from 'react';
|
|
5
5
|
import './styles.scss';
|
|
6
6
|
import './theme.scss';
|
|
7
|
-
export declare const button: ElementFactory, Button: FunctionComponent<{}>, checkbox: ElementFactory, Checkbox: FunctionComponent<{}>, gestureDetector: ElementFactory, GestureDetector: FunctionComponent<{}>, input: ElementFactory, Input: FunctionComponent<{}>,
|
|
7
|
+
export declare const button: ElementFactory, Button: FunctionComponent<{}>, checkbox: ElementFactory, Checkbox: FunctionComponent<{}>, gestureDetector: ElementFactory, GestureDetector: FunctionComponent<{}>, input: ElementFactory, Input: FunctionComponent<{}>, searchInput: ElementFactory, SearchInput: FunctionComponent<{}>, select: ElementFactory, Select: FunctionComponent<{}>, switchControl: ElementFactory, SwitchControl: FunctionComponent<{}>;
|
|
8
8
|
export declare const dialog: ElementFactory, Dialog: FunctionComponent<{}>, listItem: ElementFactory, ListItem: FunctionComponent<{}>, page: ElementFactory, Page: FunctionComponent<{}>, tab: ElementFactory, Tab: FunctionComponent<{}>, tabbar: ElementFactory, Tabbar: FunctionComponent<{}>, toast: ElementFactory, Toast: FunctionComponent<{}>, toolbar: ElementFactory, Toolbar: FunctionComponent<{}>, bottomToolbar: ElementFactory, BottomToolbar: FunctionComponent<{}>;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Swiper, SwiperSlide } from 'swiper/react';
|
|
3
|
+
import { EffectCreative } from 'swiper/modules';
|
|
4
|
+
import './styles.scss';
|
|
5
|
+
export { Swiper, SwiperSlide, EffectCreative };
|
|
6
|
+
export declare const swiper: import("@xh/hoist/core").ElementFactory<import("react").RefAttributes<import("swiper/react").SwiperRef> & Omit<import("react").HTMLAttributes<HTMLElement>, "onClick" | "onKeyPress" | "onProgress" | "onResize" | "onDoubleClick" | "onTouchEnd" | "onTouchMove" | "onTouchStart" | "onScroll" | "onTransitionEnd"> & import("swiper/types").SwiperOptions & {
|
|
7
|
+
tag?: string;
|
|
8
|
+
wrapperTag?: string;
|
|
9
|
+
onSwiper?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
10
|
+
onAutoplayStart?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
11
|
+
onAutoplayStop?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
12
|
+
onAutoplayPause?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
13
|
+
onAutoplayResume?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
14
|
+
onAutoplayTimeLeft?: (swiper: import("swiper/types/swiper-class").default, timeLeft: number, percentage: number) => void;
|
|
15
|
+
onAutoplay?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
16
|
+
onHashChange?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
17
|
+
onHashSet?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
18
|
+
onKeyPress?: (swiper: import("swiper/types/swiper-class").default, keyCode: string) => void;
|
|
19
|
+
onScroll?: (swiper: import("swiper/types/swiper-class").default, event: WheelEvent) => void;
|
|
20
|
+
onScrollbarDragStart?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
21
|
+
onScrollbarDragMove?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
22
|
+
onScrollbarDragEnd?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
23
|
+
onNavigationHide?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
24
|
+
onNavigationShow?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
25
|
+
onNavigationPrev?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
26
|
+
onNavigationNext?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
27
|
+
onPaginationRender?: (swiper: import("swiper/types/swiper-class").default, paginationEl: HTMLElement) => void;
|
|
28
|
+
onPaginationUpdate?: (swiper: import("swiper/types/swiper-class").default, paginationEl: HTMLElement) => void;
|
|
29
|
+
onPaginationHide?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
30
|
+
onPaginationShow?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
31
|
+
onZoomChange?: (swiper: import("swiper/types/swiper-class").default, scale: number, imageEl: HTMLElement, slideEl: HTMLElement) => void;
|
|
32
|
+
onInit?: (swiper: import("swiper/types/swiper-class").default) => any;
|
|
33
|
+
onBeforeDestroy?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
34
|
+
onSlidesUpdated?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
35
|
+
onSlideChange?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
36
|
+
onSlideChangeTransitionStart?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
37
|
+
onSlideChangeTransitionEnd?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
38
|
+
onSlideNextTransitionStart?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
39
|
+
onSlideNextTransitionEnd?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
40
|
+
onSlidePrevTransitionStart?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
41
|
+
onSlidePrevTransitionEnd?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
42
|
+
onTransitionStart?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
43
|
+
onTransitionEnd?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
44
|
+
onTouchStart?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
45
|
+
onTouchMove?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
46
|
+
onTouchMoveOpposite?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
47
|
+
onSliderMove?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
48
|
+
onTouchEnd?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
49
|
+
onClick?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
50
|
+
onTap?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
51
|
+
onDoubleTap?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
52
|
+
onProgress?: (swiper: import("swiper/types/swiper-class").default, progress: number) => void;
|
|
53
|
+
onReachBeginning?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
54
|
+
onReachEnd?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
55
|
+
onToEdge?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
56
|
+
onFromEdge?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
57
|
+
onSetTranslate?: (swiper: import("swiper/types/swiper-class").default, translate: number) => void;
|
|
58
|
+
onSetTransition?: (swiper: import("swiper/types/swiper-class").default, transition: number) => void;
|
|
59
|
+
onResize?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
60
|
+
onObserverUpdate?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
61
|
+
onBeforeLoopFix?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
62
|
+
onLoopFix?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
63
|
+
onBreakpoint?: (swiper: import("swiper/types/swiper-class").default, breakpointParams: import("swiper/types").SwiperOptions) => void;
|
|
64
|
+
_beforeBreakpoint?: (swiper: import("swiper/types/swiper-class").default, breakpointParams: import("swiper/types").SwiperOptions) => void;
|
|
65
|
+
_containerClasses?: (swiper: import("swiper/types/swiper-class").default, classNames: string) => void;
|
|
66
|
+
_slideClass?: (swiper: import("swiper/types/swiper-class").default, slideEl: HTMLElement, classNames: string) => void;
|
|
67
|
+
_slideClasses?: (swiper: import("swiper/types/swiper-class").default, slides: {
|
|
68
|
+
slideEl: HTMLElement;
|
|
69
|
+
classNames: string;
|
|
70
|
+
index: number;
|
|
71
|
+
}[]) => void;
|
|
72
|
+
_swiper?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
73
|
+
_freeModeNoMomentumRelease?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
74
|
+
onActiveIndexChange?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
75
|
+
onSnapIndexChange?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
76
|
+
onRealIndexChange?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
77
|
+
onAfterInit?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
78
|
+
onBeforeInit?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
79
|
+
onBeforeResize?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
80
|
+
onBeforeSlideChangeStart?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
81
|
+
onBeforeTransitionStart?: (swiper: import("swiper/types/swiper-class").default, speed: number, internal: any) => void;
|
|
82
|
+
onChangeDirection?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
83
|
+
onDoubleClick?: (swiper: import("swiper/types/swiper-class").default, event: MouseEvent | PointerEvent | TouchEvent) => void;
|
|
84
|
+
onDestroy?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
85
|
+
onMomentumBounce?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
86
|
+
onOrientationchange?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
87
|
+
onSlideResetTransitionStart?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
88
|
+
onSlideResetTransitionEnd?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
89
|
+
onSliderFirstMove?: (swiper: import("swiper/types/swiper-class").default, event: TouchEvent) => void;
|
|
90
|
+
onSlidesLengthChange?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
91
|
+
onSlidesGridLengthChange?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
92
|
+
onSnapGridLengthChange?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
93
|
+
onUpdate?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
94
|
+
onLock?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
95
|
+
onUnlock?: (swiper: import("swiper/types/swiper-class").default) => void;
|
|
96
|
+
} & {
|
|
97
|
+
children?: import("react").ReactNode;
|
|
98
|
+
}>, swiperSlide: import("@xh/hoist/core").ElementFactory<import("swiper/react").SwiperSlideProps>;
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { HoistProps } from '@xh/hoist/core';
|
|
3
2
|
import '@xh/hoist/mobile/register';
|
|
3
|
+
import './Navigator.scss';
|
|
4
4
|
import { NavigatorModel } from './NavigatorModel';
|
|
5
|
-
export interface NavigatorProps extends HoistProps<NavigatorModel> {
|
|
6
|
-
/** Set animation style or turn off, default 'slide'. */
|
|
7
|
-
animation?: 'slide' | 'lift' | 'fade' | 'none';
|
|
8
|
-
}
|
|
9
5
|
/**
|
|
10
6
|
* Top-level Component within an application, responsible for rendering a stack of
|
|
11
7
|
* pages and managing transitions between pages.
|
|
12
8
|
*/
|
|
13
|
-
export declare const Navigator: import("react").FC<
|
|
9
|
+
export declare const Navigator: import("react").FC<import("@xh/hoist/core").DefaultHoistProps<NavigatorModel>>, navigator: import("@xh/hoist/core").ElementFactory<import("@xh/hoist/core").DefaultHoistProps<NavigatorModel>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { HoistModel, RefreshMode, RenderMode } from '@xh/hoist/core';
|
|
2
|
+
import { Swiper } from 'swiper/types';
|
|
3
3
|
import '@xh/hoist/mobile/register';
|
|
4
4
|
import { PageConfig, PageModel } from './PageModel';
|
|
5
5
|
export interface NavigatorConfig {
|
|
@@ -10,10 +10,13 @@ export interface NavigatorConfig {
|
|
|
10
10
|
* Viewing of each page will be tracked with the `oncePerSession` flag, to avoid duplication.
|
|
11
11
|
*/
|
|
12
12
|
track?: boolean;
|
|
13
|
-
/** True to enable 'swipe to go back' functionality. */
|
|
14
|
-
swipeToGoBack?: boolean;
|
|
15
13
|
/** True to enable 'pull down to refresh' functionality. */
|
|
16
14
|
pullDownToRefresh?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Time (in milliseconds) for the transition between pages on route change.
|
|
17
|
+
* Defaults to 500.
|
|
18
|
+
*/
|
|
19
|
+
transitionMs?: number;
|
|
17
20
|
/**
|
|
18
21
|
* Strategy for rendering pages. Can be set per-page via `PageModel.renderMode`.
|
|
19
22
|
* See enum for description of supported modes.
|
|
@@ -26,7 +29,7 @@ export interface NavigatorConfig {
|
|
|
26
29
|
refreshMode?: RefreshMode;
|
|
27
30
|
}
|
|
28
31
|
/**
|
|
29
|
-
* Model for handling stack-based navigation between
|
|
32
|
+
* Model for handling stack-based navigation between pages.
|
|
30
33
|
* Provides support for routing based navigation.
|
|
31
34
|
*/
|
|
32
35
|
export declare class NavigatorModel extends HoistModel {
|
|
@@ -34,22 +37,26 @@ export declare class NavigatorModel extends HoistModel {
|
|
|
34
37
|
stack: PageModel[];
|
|
35
38
|
pages: PageConfig[];
|
|
36
39
|
track: boolean;
|
|
37
|
-
swipeToGoBack: boolean;
|
|
38
40
|
pullDownToRefresh: boolean;
|
|
41
|
+
transitionMs: number;
|
|
39
42
|
renderMode: RenderMode;
|
|
40
43
|
refreshMode: RefreshMode;
|
|
41
|
-
private
|
|
44
|
+
private _swiper;
|
|
42
45
|
private _callback;
|
|
43
|
-
private
|
|
46
|
+
private _touchStartX;
|
|
44
47
|
get activePageId(): string;
|
|
45
48
|
get activePage(): PageModel;
|
|
46
|
-
|
|
49
|
+
get activePageIdx(): number;
|
|
50
|
+
get allowSlideNext(): boolean;
|
|
51
|
+
get allowSlidePrev(): boolean;
|
|
52
|
+
constructor({ pages, track, pullDownToRefresh, transitionMs, renderMode, refreshMode }: NavigatorConfig);
|
|
47
53
|
/**
|
|
48
54
|
* @param callback - function to execute (once) after the next page transition.
|
|
49
55
|
*/
|
|
50
56
|
setCallback(callback: () => void): void;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
/** @internal */
|
|
58
|
+
setSwiper(swiper: Swiper): void;
|
|
59
|
+
/** @internal */
|
|
54
60
|
onPageChange: () => void;
|
|
61
|
+
private onRouteChange;
|
|
55
62
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import './GestureRefresh.scss';
|
|
2
|
+
import { GestureRefreshModel } from './GestureRefreshModel';
|
|
3
|
+
/**
|
|
4
|
+
* Wrap the Navigator with gesture that triggers a refresh by pulling down.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare const gestureRefresh: import("@xh/hoist/core").ElementFactory<import("@xh/hoist/core").DefaultHoistProps<GestureRefreshModel>>;
|
package/build/types/mobile/cmp/navigator/impl/{swipe/SwiperModel.d.ts → GestureRefreshModel.d.ts}
RENAMED
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import { HoistModel } from '@xh/hoist/core';
|
|
2
|
-
import './Swiper.scss';
|
|
3
2
|
/**
|
|
4
3
|
* @internal
|
|
5
4
|
*/
|
|
6
|
-
export declare class
|
|
5
|
+
export declare class GestureRefreshModel extends HoistModel {
|
|
7
6
|
navigatorModel: any;
|
|
8
|
-
backProgress: any;
|
|
9
7
|
refreshProgress: any;
|
|
10
|
-
get backStarted(): boolean;
|
|
11
|
-
get backCompleted(): boolean;
|
|
12
|
-
backStart(): void;
|
|
13
|
-
backEnd(): void;
|
|
14
8
|
get refreshStarted(): boolean;
|
|
15
9
|
get refreshCompleted(): boolean;
|
|
16
10
|
refreshStart(): void;
|
|
@@ -19,5 +13,4 @@ export declare class SwiperModel extends HoistModel {
|
|
|
19
13
|
onDragStart: (e: any) => void;
|
|
20
14
|
onDrag: (e: any) => void;
|
|
21
15
|
onDragEnd: (e: any) => void;
|
|
22
|
-
isDraggingChild(e: any, dir: any): boolean;
|
|
23
16
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
export declare function hasScrollableParent(e: TouchEvent, axis: 'horizontal' | 'vertical'): boolean;
|
|
5
|
+
export declare function findScrollableParent(e: TouchEvent, axis: 'horizontal' | 'vertical'): HTMLElement;
|
|
6
|
+
export declare function isScrollableEl(el: HTMLElement, axis: 'horizontal' | 'vertical'): boolean;
|
|
7
|
+
export declare function hasDraggableParent(e: TouchEvent, direction: 'up' | 'right' | 'down' | 'left'): boolean;
|
|
8
|
+
export declare function findDraggableParent(e: TouchEvent, direction: 'up' | 'right' | 'down' | 'left'): HTMLElement;
|
|
9
|
+
export declare function isDraggableEl(el: HTMLElement, direction: 'up' | 'right' | 'down' | 'left'): boolean;
|
package/cmp/ag-grid/AgGrid.scss
CHANGED
|
@@ -26,6 +26,12 @@
|
|
|
26
26
|
.ag-floating-bottom {
|
|
27
27
|
overflow-y: hidden !important;
|
|
28
28
|
}
|
|
29
|
+
|
|
30
|
+
// Prevent the "bounce" overscroll effect for horizontal scrolling on mobile devices, as it
|
|
31
|
+
// conflicts with the drag management in the Navigator.
|
|
32
|
+
.ag-center-cols-viewport {
|
|
33
|
+
overscroll-behavior-x: none;
|
|
34
|
+
}
|
|
29
35
|
}
|
|
30
36
|
|
|
31
37
|
// Ag-Grid themes referenced here to help ensure a high enough level of specificity for our rules.
|
package/kit/onsen/index.ts
CHANGED
|
@@ -23,7 +23,6 @@ export const [button, Button] = wrappedCmp(ons.Button),
|
|
|
23
23
|
[checkbox, Checkbox] = wrappedCmp(ons.Checkbox),
|
|
24
24
|
[gestureDetector, GestureDetector] = wrappedCmp(ons.GestureDetector),
|
|
25
25
|
[input, Input] = wrappedCmp(ons.Input),
|
|
26
|
-
[navigator, Navigator] = wrappedCmp(ons.Navigator),
|
|
27
26
|
[searchInput, SearchInput] = wrappedCmp(ons.SearchInput),
|
|
28
27
|
[select, Select] = wrappedCmp(ons.Select),
|
|
29
28
|
[switchControl, SwitchControl] = wrappedCmp(ons.Switch);
|
package/kit/onsen/theme.scss
CHANGED
|
@@ -11,15 +11,10 @@
|
|
|
11
11
|
// Override styles provided in onsenui.css and onsen-css-components.css to use variable declarations
|
|
12
12
|
body.xh-app.xh-mobile {
|
|
13
13
|
// Background
|
|
14
|
-
.page,
|
|
15
|
-
.page__content,
|
|
16
|
-
.page__background,
|
|
17
14
|
.textarea {
|
|
18
15
|
background-color: var(--xh-bg);
|
|
19
16
|
}
|
|
20
17
|
|
|
21
|
-
.page--material,
|
|
22
|
-
.page--material__background,
|
|
23
18
|
.bottom-bar,
|
|
24
19
|
.tabbar {
|
|
25
20
|
background-color: var(--xh-bg-alt);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file belongs to Hoist, an application development toolkit
|
|
3
|
+
* developed by Extremely Heavy Industries (www.xh.io | info@xh.io)
|
|
4
|
+
*
|
|
5
|
+
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
|
+
*/
|
|
7
|
+
import {elementFactory} from '@xh/hoist/core';
|
|
8
|
+
import {Swiper, SwiperSlide} from 'swiper/react';
|
|
9
|
+
import {EffectCreative} from 'swiper/modules';
|
|
10
|
+
import './styles.scss';
|
|
11
|
+
|
|
12
|
+
export {Swiper, SwiperSlide, EffectCreative};
|
|
13
|
+
export const swiper = elementFactory(Swiper),
|
|
14
|
+
swiperSlide = elementFactory(SwiperSlide);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file belongs to Hoist, an application development toolkit
|
|
3
|
+
* developed by Extremely Heavy Industries (www.xh.io | info@xh.io)
|
|
4
|
+
*
|
|
5
|
+
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
|
+
*/
|
|
7
|
+
.xh-navigator {
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 100%;
|
|
10
|
+
|
|
11
|
+
.swiper-slide {
|
|
12
|
+
box-shadow:
|
|
13
|
+
0 0 0 1px var(--xh-border-color),
|
|
14
|
+
0 0 20px rgba(0, 0, 0, 0.3);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.div.swiper-container {
|
|
18
|
+
touch-action: pan-x;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -4,36 +4,53 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {hoistCmp,
|
|
8
|
-
import {
|
|
7
|
+
import {hoistCmp, uses} from '@xh/hoist/core';
|
|
8
|
+
import {swiper, swiperSlide, EffectCreative} from '@xh/hoist/kit/swiper';
|
|
9
9
|
import '@xh/hoist/mobile/register';
|
|
10
|
-
import
|
|
10
|
+
import './Navigator.scss';
|
|
11
11
|
import {NavigatorModel} from './NavigatorModel';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
animation?: 'slide' | 'lift' | 'fade' | 'none';
|
|
16
|
-
}
|
|
12
|
+
import {PageModel} from './PageModel';
|
|
13
|
+
import {gestureRefresh} from './impl/GestureRefresh';
|
|
14
|
+
import {page} from './impl/Page';
|
|
17
15
|
|
|
18
16
|
/**
|
|
19
17
|
* Top-level Component within an application, responsible for rendering a stack of
|
|
20
18
|
* pages and managing transitions between pages.
|
|
21
19
|
*/
|
|
22
|
-
export const [Navigator, navigator] = hoistCmp.withFactory<
|
|
20
|
+
export const [Navigator, navigator] = hoistCmp.withFactory<NavigatorModel>({
|
|
23
21
|
displayName: 'Navigator',
|
|
24
22
|
model: uses(NavigatorModel),
|
|
25
23
|
className: 'xh-navigator',
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return
|
|
29
|
-
|
|
24
|
+
render({model, className}) {
|
|
25
|
+
const {stack, allowSlideNext, allowSlidePrev} = model;
|
|
26
|
+
return gestureRefresh(
|
|
27
|
+
swiper({
|
|
30
28
|
className,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
allowSlideNext,
|
|
30
|
+
allowSlidePrev,
|
|
31
|
+
slidesPerView: 1,
|
|
32
|
+
modules: [EffectCreative],
|
|
33
|
+
effect: 'creative',
|
|
34
|
+
creativeEffect: {
|
|
35
|
+
prev: {
|
|
36
|
+
shadow: true,
|
|
37
|
+
translate: ['-15%', 0, -1]
|
|
38
|
+
},
|
|
39
|
+
next: {
|
|
40
|
+
translate: ['100%', 0, 0]
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
onSwiper: swiper => model.setSwiper(swiper),
|
|
44
|
+
items: stack.map(it => {
|
|
45
|
+
const {key} = it as PageModel;
|
|
46
|
+
return swiperSlide({
|
|
47
|
+
key: `slide-${key}`,
|
|
48
|
+
item: page({
|
|
49
|
+
key: `page-${key}`,
|
|
50
|
+
model: it
|
|
51
|
+
})
|
|
52
|
+
});
|
|
53
|
+
})
|
|
37
54
|
})
|
|
38
55
|
);
|
|
39
56
|
}
|