@flemo/core 1.5.0 → 1.6.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.
@@ -2,12 +2,12 @@ import { History } from '../../history/store';
2
2
  import { NavigateStatus } from '../../navigate/store';
3
3
  import { SharedBarPresenceLike } from './createSwipeController';
4
4
  export interface BarRidingInput {
5
- appBar: HTMLElement | null;
5
+ topBar: HTMLElement | null;
6
6
  navBar: HTMLElement | null;
7
7
  isTopOrTopPrev: boolean;
8
8
  isActive: boolean;
9
9
  index: number;
10
- hasAppBar: boolean;
10
+ hasTopBar: boolean;
11
11
  hasNavBar: boolean;
12
12
  getStatus: () => NavigateStatus;
13
13
  getHistories: () => History[];
@@ -1,22 +1,22 @@
1
1
  import { Transition } from '../../transition/typing';
2
2
  import { Decorator } from '../../transition/decorator/typing';
3
3
  export interface SharedBarPresenceLike {
4
- appBar: boolean;
5
- navigationBar: boolean;
4
+ topBar: boolean;
5
+ bottomBar: boolean;
6
6
  }
7
7
  export interface SwipeControllerElements {
8
8
  scope: HTMLElement | null;
9
9
  screenContainer: HTMLElement | null;
10
10
  decorator: HTMLElement | null;
11
- sharedAppBar: HTMLElement | null;
12
- sharedNavigationBar: HTMLElement | null;
11
+ sharedTopBar: HTMLElement | null;
12
+ sharedBottomBar: HTMLElement | null;
13
13
  }
14
14
  export interface SwipeControllerConfig {
15
15
  getTransition: () => Transition;
16
16
  getDecorator: () => Decorator | undefined;
17
17
  getElements: () => SwipeControllerElements;
18
- hasSharedAppBar: () => boolean;
19
- hasSharedNavigationBar: () => boolean;
18
+ hasSharedTopBar: () => boolean;
19
+ hasSharedBottomBar: () => boolean;
20
20
  getViewportScrollHeight: () => number;
21
21
  isReadyForDrag: () => boolean;
22
22
  getPartnerBars: () => SharedBarPresenceLike | undefined;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,4 @@
1
+ import { HistoryDriver } from './historyDriver';
1
2
  import { HistoryStoreApi } from './store';
2
3
  import { NavigateStoreApi } from '../navigate/store';
3
4
  export interface HistorySyncDeps {
@@ -5,5 +6,7 @@ export interface HistorySyncDeps {
5
6
  history: HistoryStoreApi;
6
7
  navigate: NavigateStoreApi;
7
8
  };
9
+ driver?: HistoryDriver;
10
+ consume?: () => boolean;
8
11
  }
9
12
  export default function createHistorySync(deps: HistorySyncDeps): () => void;
@@ -1,2 +1,2 @@
1
1
  import { TransitionName } from '../transition/typing';
2
- export default function ensureWindowHistoryState(defaultTransitionName: TransitionName): void;
2
+ export default function ensureWindowHistoryState(routerKey: string | null, defaultTransitionName: TransitionName, rootParams?: object): void;
@@ -0,0 +1,14 @@
1
+ export interface HistoryNavEvent {
2
+ state: unknown;
3
+ pathname: string;
4
+ }
5
+ export interface HistoryDriver {
6
+ readState(): unknown;
7
+ readPathname(): string;
8
+ pushState(state: unknown, url: string): void;
9
+ replaceState(state: unknown, url: string): void;
10
+ go(delta: number): void;
11
+ back(): void;
12
+ subscribe(listener: (event: HistoryNavEvent) => void): () => void;
13
+ }
14
+ export default function createBrowserHistoryDriver(routerKey?: string): HistoryDriver;
@@ -0,0 +1,5 @@
1
+ import { HistoryDriver } from './historyDriver';
2
+ export default function createMemoryHistoryDriver(initial?: {
3
+ state?: unknown;
4
+ url?: string;
5
+ }): HistoryDriver;
@@ -9,11 +9,13 @@ export interface History {
9
9
  }
10
10
  export interface HistoryStore {
11
11
  index: number;
12
+ pendingIndex: number;
12
13
  histories: History[];
13
14
  addHistory: (history: History) => void;
14
15
  replaceHistory: (index: number) => void;
15
16
  popHistory: (index: number) => void;
16
17
  popHistories: (count: number) => void;
18
+ setPendingIndex: (index: number) => void;
17
19
  setTransitionName: (index: number, transitionName: TransitionName) => void;
18
20
  }
19
21
  export type HistoryStoreApi = StoreApi<HistoryStore>;
package/dist/index.d.ts CHANGED
@@ -3,8 +3,10 @@ export { default as createHistoryStore, type History, type HistoryStore, type Hi
3
3
  export { default as seedInitialHistory } from './history/seedInitialHistory';
4
4
  export { default as ensureWindowHistoryState } from './history/ensureWindowHistoryState';
5
5
  export { default as createHistorySync, type HistorySyncDeps } from './history/createHistorySync';
6
+ export { default as createBrowserHistoryDriver, type HistoryDriver, type HistoryNavEvent } from './history/historyDriver';
7
+ export { default as createMemoryHistoryDriver } from './history/memoryHistoryDriver';
6
8
  export { default as createNavigateStore, type NavigateStatus, type NavigateStore, type NavigateStoreApi } from './navigate/store';
7
- export { markSelfInducedPop, consumeSelfInducedPop } from './navigate/selfPopGuard';
9
+ export { markSelfInducedPop, consumeSelfInducedPop, createSelfPopGuard, type SelfPopGuard } from './navigate/selfPopGuard';
8
10
  export { default as createNavigationController, type NavigationControllerDeps, type DistanceOptions, type NavigateOptions, type PopOptions } from './navigate/createNavigationController';
9
11
  export { default as createScreenStore, type ScreenStore, type ScreenStoreApi, type SharedBarPresence } from './screen/store';
10
12
  export { default as createScreenSelector, type ScreenSelection } from './screen/createScreenSelector';