diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:10:59 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:41:44 +0800 |
| commit | fc87c009806dcc98867f6b58efe29b042aa01dee (patch) | |
| tree | 8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/swup/src/modules/Visit.ts | |
| parent | 3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff) | |
node: updatemain
Diffstat (limited to 'node_modules/swup/src/modules/Visit.ts')
| -rw-r--r-- | node_modules/swup/src/modules/Visit.ts | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/node_modules/swup/src/modules/Visit.ts b/node_modules/swup/src/modules/Visit.ts deleted file mode 100644 index 17ed6c7d..00000000 --- a/node_modules/swup/src/modules/Visit.ts +++ /dev/null @@ -1,174 +0,0 @@ -import type Swup from '../Swup.js'; -import type { Options } from '../Swup.js'; -import type { HistoryAction, HistoryDirection } from './navigate.js'; - -/** See below for the class Visit {} definition */ -// export interface Visit {} - -export interface VisitFrom { - /** The URL of the previous page */ - url: string; - /** The hash of the previous page */ - hash?: string; -} - -export interface VisitTo { - /** The URL of the next page */ - url: string; - /** The hash of the next page */ - hash?: string; - /** The HTML content of the next page */ - html?: string; - /** The parsed document of the next page, available during visit */ - document?: Document; -} - -export interface VisitAnimation { - /** Whether this visit is animated. Default: `true` */ - animate: boolean; - /** Whether to wait for the next page to load before starting the animation. Default: `false` */ - wait: boolean; - /** Name of a custom animation to run. */ - name?: string; - /** Whether this animation uses the native browser ViewTransition API. Default: `false` */ - native: boolean; - /** Elements on which to add animation classes. Default: `html` element */ - scope: 'html' | 'containers' | string[]; - /** Selector for detecting animation timing. Default: `[class*="transition-"]` */ - selector: Options['animationSelector']; -} - -export interface VisitScroll { - /** Whether to reset the scroll position after the visit. Default: `true` */ - reset: boolean; - /** Anchor element to scroll to on the next page. */ - target?: string | false; -} - -export interface VisitTrigger { - /** DOM element that triggered this visit. */ - el?: Element; - /** DOM event that triggered this visit. */ - event?: Event; -} - -export interface VisitCache { - /** Whether this visit will try to load the requested page from cache. */ - read: boolean; - /** Whether this visit will save the loaded page in cache. */ - write: boolean; -} - -export interface VisitHistory { - /** History action to perform: `push` for creating a new history entry, `replace` for replacing the current entry. Default: `push` */ - action: HistoryAction; - /** Whether this visit was triggered by a browser history navigation. */ - popstate: boolean; - /** The direction of travel in case of a browser history navigation: backward or forward. */ - direction: HistoryDirection | undefined; -} - -export interface VisitInitOptions { - to: string; - from?: string; - hash?: string; - el?: Element; - event?: Event; -} - -/** @internal */ -export const VisitState = { - CREATED: 1, - QUEUED: 2, - STARTED: 3, - LEAVING: 4, - LOADED: 5, - ENTERING: 6, - COMPLETED: 7, - ABORTED: 8, - FAILED: 9 -} as const; - -/** @internal */ -export type VisitState = (typeof VisitState)[keyof typeof VisitState]; - -/** An object holding details about the current visit. */ -export class Visit { - /** A unique ID to identify this visit */ - id: number; - /** The current state of this visit @internal */ - state: VisitState; - /** The previous page, about to leave */ - from: VisitFrom; - /** The next page, about to enter */ - to: VisitTo; - /** The content containers, about to be replaced */ - containers: Options['containers']; - /** Information about animated page transitions */ - animation: VisitAnimation; - /** What triggered this visit */ - trigger: VisitTrigger; - /** Cache behavior for this visit */ - cache: VisitCache; - /** Browser history behavior on this visit */ - history: VisitHistory; - /** Scroll behavior on this visit */ - scroll: VisitScroll; - /** User-defined metadata */ - meta: Record<string, unknown>; - - constructor(swup: Swup, options: VisitInitOptions) { - const { to, from, hash, el, event } = options; - - this.id = Math.random(); - this.state = VisitState.CREATED; - this.from = { url: from ?? swup.location.url, hash: swup.location.hash }; - this.to = { url: to, hash }; - this.containers = swup.options.containers; - this.animation = { - animate: true, - wait: false, - name: undefined, - native: swup.options.native, - scope: swup.options.animationScope, - selector: swup.options.animationSelector - }; - this.trigger = { el, event }; - this.cache = { - read: swup.options.cache, - write: swup.options.cache - }; - this.history = { - action: 'push', - popstate: false, - direction: undefined - }; - this.scroll = { - reset: true, - target: undefined - }; - this.meta = {}; - } - - /** @internal */ - advance(state: VisitState) { - if (this.state < state) { - this.state = state; - } - } - - /** @internal */ - abort() { - this.state = VisitState.ABORTED; - } - - /** Is this visit done, i.e. completed, failed, or aborted? */ - get done(): boolean { - return this.state >= VisitState.COMPLETED; - } -} - -/** Create a new visit object. */ -export function createVisit(this: Swup, options: VisitInitOptions): Visit { - return new Visit(this, options); -} |
