swup 4.5.2 → 4.6.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.
- package/README.md +2 -0
- package/dist/Swup.cjs +1 -1
- package/dist/Swup.cjs.map +1 -1
- package/dist/Swup.modern.js +1 -1
- package/dist/Swup.modern.js.map +1 -1
- package/dist/Swup.module.js +1 -1
- package/dist/Swup.module.js.map +1 -1
- package/dist/Swup.umd.js +1 -1
- package/dist/Swup.umd.js.map +1 -1
- package/dist/types/Swup.d.ts +1 -4
- package/dist/types/Swup.d.ts.map +1 -1
- package/dist/types/modules/Visit.d.ts +2 -0
- package/dist/types/modules/Visit.d.ts.map +1 -1
- package/dist/types/modules/awaitAnimations.d.ts +0 -9
- package/dist/types/modules/awaitAnimations.d.ts.map +1 -1
- package/dist/types/modules/navigate.d.ts.map +1 -1
- package/dist/types/modules/replaceContent.d.ts +2 -8
- package/dist/types/modules/replaceContent.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +0 -4
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +4 -1
- package/src/Swup.ts +0 -12
- package/src/modules/Visit.ts +2 -0
- package/src/modules/awaitAnimations.ts +14 -27
- package/src/modules/getAnchorElement.ts +3 -3
- package/src/modules/navigate.ts +8 -1
- package/src/modules/renderPage.ts +1 -1
- package/src/modules/replaceContent.ts +7 -14
- package/src/utils/index.ts +0 -14
package/dist/types/Swup.d.ts
CHANGED
|
@@ -93,9 +93,7 @@ export default class Swup {
|
|
|
93
93
|
awaitAnimations: typeof awaitAnimations;
|
|
94
94
|
protected renderPage: (this: Swup, visit: Visit, page: import("./modules/fetchPage.js").PageData) => Promise<void>;
|
|
95
95
|
/** Replace the content after page load */
|
|
96
|
-
replaceContent: (this: Swup,
|
|
97
|
-
containers: string[];
|
|
98
|
-
}) => boolean;
|
|
96
|
+
replaceContent: (this: Swup, visit: Visit) => boolean;
|
|
99
97
|
protected animatePageIn: (this: Swup, visit: Visit) => Promise<void>;
|
|
100
98
|
protected animatePageOut: (this: Swup, visit: Visit) => Promise<void>;
|
|
101
99
|
protected scrollToContent: (this: Swup, visit: Visit) => boolean;
|
|
@@ -110,7 +108,6 @@ export default class Swup {
|
|
|
110
108
|
/** Check if two URLs resolve to the same location */
|
|
111
109
|
protected isSameResolvedUrl: typeof isSameResolvedUrl;
|
|
112
110
|
constructor(options?: Partial<Options>);
|
|
113
|
-
protected checkRequirements(): boolean;
|
|
114
111
|
/** Enable this instance, adding listeners and classnames. */
|
|
115
112
|
enable(): Promise<void>;
|
|
116
113
|
/** Disable this instance, removing listeners and classnames. */
|
package/dist/types/Swup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Swup.d.ts","sourceRoot":"","sources":["../../src/Swup.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Swup.d.ts","sourceRoot":"","sources":["../../src/Swup.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ export interface VisitTo {
|
|
|
13
13
|
hash?: string;
|
|
14
14
|
/** The HTML content of the next page */
|
|
15
15
|
html?: string;
|
|
16
|
+
/** The parsed document of the next page, available during visit */
|
|
17
|
+
document?: Document;
|
|
16
18
|
}
|
|
17
19
|
export interface VisitAnimation {
|
|
18
20
|
/** Whether this visit is animated. Default: `true` */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visit.d.ts","sourceRoot":"","sources":["../../../src/modules/Visit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAErE,kDAAkD;AAGlD,MAAM,WAAW,SAAS;IACzB,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,OAAO;IACvB,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Visit.d.ts","sourceRoot":"","sources":["../../../src/modules/Visit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAErE,kDAAkD;AAGlD,MAAM,WAAW,SAAS;IACzB,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,OAAO;IACvB,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC9B,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,gGAAgG;IAChG,IAAI,EAAE,OAAO,CAAC;IACd,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,MAAM,EAAE,OAAO,CAAC;IAChB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,EAAE,CAAC;IACxC,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC3B,4EAA4E;IAC5E,KAAK,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC5B,6CAA6C;IAC7C,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,2CAA2C;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IAC1B,yEAAyE;IACzE,IAAI,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,KAAK,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC5B,qIAAqI;IACrI,MAAM,EAAE,aAAa,CAAC;IACtB,wEAAwE;IACxE,QAAQ,EAAE,OAAO,CAAC;IAClB,4FAA4F;IAC5F,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;CACd;AAkBD,yDAAyD;AACzD,qBAAa,KAAK;IACjB,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IAGX,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,oCAAoC;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,mDAAmD;IACnD,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,kDAAkD;IAClD,SAAS,EAAE,cAAc,CAAC;IAC1B,gCAAgC;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,oCAAoC;IACpC,KAAK,EAAE,UAAU,CAAC;IAClB,6CAA6C;IAC7C,OAAO,EAAE,YAAY,CAAC;IACtB,oCAAoC;IACpC,MAAM,EAAE,WAAW,CAAC;gBAER,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB;IA2CjD,8DAA8D;IAC9D,IAAI,IAAI,IAAI,OAAO,CAElB;CACD;AAED,iCAAiC;AACjC,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK,CAExE"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type Swup from '../Swup.js';
|
|
2
2
|
import type { Options } from '../Swup.js';
|
|
3
|
-
declare const TRANSITION = "transition";
|
|
4
|
-
declare const ANIMATION = "animation";
|
|
5
|
-
type AnimationTypes = typeof TRANSITION | typeof ANIMATION;
|
|
6
3
|
export type AnimationDirection = 'in' | 'out';
|
|
7
4
|
/**
|
|
8
5
|
* Return a Promise that resolves when all CSS animations and transitions
|
|
@@ -12,10 +9,4 @@ export declare function awaitAnimations(this: Swup, { elements, selector }: {
|
|
|
12
9
|
selector: Options['animationSelector'];
|
|
13
10
|
elements?: NodeListOf<HTMLElement> | HTMLElement[];
|
|
14
11
|
}): Promise<void>;
|
|
15
|
-
export declare function getTransitionInfo(element: Element, expectedType?: AnimationTypes): {
|
|
16
|
-
type: AnimationTypes | null;
|
|
17
|
-
timeout: number;
|
|
18
|
-
propCount: number;
|
|
19
|
-
};
|
|
20
|
-
export {};
|
|
21
12
|
//# sourceMappingURL=awaitAnimations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awaitAnimations.d.ts","sourceRoot":"","sources":["../../../src/modules/awaitAnimations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"awaitAnimations.d.ts","sourceRoot":"","sources":["../../../src/modules/awaitAnimations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAU1C,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,KAAK,CAAC;AAE9C;;;GAGG;AACH,wBAAsB,eAAe,CACpC,IAAI,EAAE,IAAI,EACV,EACC,QAAQ,EACR,QAAQ,EACR,EAAE;IACF,QAAQ,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW,EAAE,CAAC;CACnD,GACC,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../../src/modules/navigate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAAc,KAAK,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,KAAK,EAAc,MAAM,YAAY,CAAC;AAS3E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,WAAW,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEtE,wCAAwC;AACxC,KAAK,iBAAiB,GAAG;IACxB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qIAAqI;IACrI,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CACvB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAiB,GAAG,YAAiB,EAC9C,IAAI,GAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAM,QAgBvC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,iBAAiB,GAAG,YAAiB,GAC5C,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../../src/modules/navigate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAAc,KAAK,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,KAAK,EAAc,MAAM,YAAY,CAAC;AAS3E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,WAAW,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEtE,wCAAwC;AACxC,KAAK,iBAAiB,GAAG;IACxB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qIAAqI;IACrI,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CACvB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAiB,GAAG,YAAiB,EAC9C,IAAI,GAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAM,QAgBvC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,iBAAiB,GAAG,YAAiB,GAC5C,OAAO,CAAC,IAAI,CAAC,CAwKf"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import type Swup from '../Swup.js';
|
|
2
|
-
import type {
|
|
3
|
-
import type { PageData } from './fetchPage.js';
|
|
2
|
+
import type { Visit } from './Visit.js';
|
|
4
3
|
/**
|
|
5
4
|
* Perform the replacement of content after loading a page.
|
|
6
5
|
*
|
|
7
|
-
* It takes an object with the page data as returned from `fetchPage` and a list
|
|
8
|
-
* of container selectors to replace.
|
|
9
|
-
*
|
|
10
6
|
* @returns Whether all containers were replaced.
|
|
11
7
|
*/
|
|
12
|
-
export declare const replaceContent: (this: Swup,
|
|
13
|
-
containers: Options['containers'];
|
|
14
|
-
}) => boolean;
|
|
8
|
+
export declare const replaceContent: (this: Swup, visit: Visit) => boolean;
|
|
15
9
|
//# sourceMappingURL=replaceContent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replaceContent.d.ts","sourceRoot":"","sources":["../../../src/modules/replaceContent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"replaceContent.d.ts","sourceRoot":"","sources":["../../../src/modules/replaceContent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,cAAc,SAAmB,IAAI,SAAS,KAAK,KAAG,OAyClE,CAAC"}
|
|
@@ -13,8 +13,4 @@ export declare function runAsPromise(func: Function, args?: unknown[]): Promise<
|
|
|
13
13
|
* @see https://stackoverflow.com/a/21665117/3759615
|
|
14
14
|
*/
|
|
15
15
|
export declare function forceReflow(element?: HTMLElement): void;
|
|
16
|
-
/** Escape a string with special chars to not break CSS selectors. */
|
|
17
|
-
export declare const escapeCssIdentifier: (ident: string) => string;
|
|
18
|
-
/** Fix for Chrome below v61 formatting CSS floats with comma in some locales. */
|
|
19
|
-
export declare const toMs: (s: string) => number;
|
|
20
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,eAAO,MAAM,KAAK,aAAc,MAAM,YAAW,QAAQ,GAAG,OAAO,uBAElE,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,aACV,MAAM,YACP,QAAQ,GAAG,OAAO,KACzB,WAAW,EAEb,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,QAAQ,QAAO,QAAQ,IAAI,CAQvC,CAAC;AAEF,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAMhE;AAED,wFAAwF;AAExF,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CASnF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAGvD
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,eAAO,MAAM,KAAK,aAAc,MAAM,YAAW,QAAQ,GAAG,OAAO,uBAElE,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,aACV,MAAM,YACP,QAAQ,GAAG,OAAO,KACzB,WAAW,EAEb,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,QAAQ,QAAO,QAAQ,IAAI,CAQvC,CAAC;AAEF,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAMhE;AAED,wFAAwF;AAExF,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CASnF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAGvD"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swup",
|
|
3
3
|
"amdName": "Swup",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.6.1",
|
|
5
5
|
"description": "Versatile and extensible page transition library for server-rendered websites",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"source": "./src/Swup.ts",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"lint": "npm run lint:ts && npm run lint:es",
|
|
31
31
|
"lint:ts": "tsc --noEmit --skipLibCheck",
|
|
32
32
|
"lint:es": "npx eslint .",
|
|
33
|
+
"lint:compat": "npx eslint --config .eslintrc.compat.cjs --no-eslintrc .",
|
|
33
34
|
"lint:prettier": "prettier 'src/**/*.ts'",
|
|
34
35
|
"prepublishOnly": "npm run build",
|
|
35
36
|
"postinstall": "opencollective-postinstall || true",
|
|
@@ -73,6 +74,8 @@
|
|
|
73
74
|
"@typescript-eslint/parser": "^6.3.0",
|
|
74
75
|
"eslint": "^8.46.0",
|
|
75
76
|
"eslint-config-prettier": "^9.0.0",
|
|
77
|
+
"eslint-plugin-compat": "^4.2.0",
|
|
78
|
+
"eslint-plugin-ecmascript-compat": "^3.2.0",
|
|
76
79
|
"eslint-plugin-prettier": "^5.0.1",
|
|
77
80
|
"husky": "^8.0.0",
|
|
78
81
|
"istanbul-lib-coverage": "^3.2.0",
|
package/src/Swup.ts
CHANGED
|
@@ -156,21 +156,9 @@ export default class Swup {
|
|
|
156
156
|
|
|
157
157
|
this.currentHistoryIndex = (window.history.state as HistoryState)?.index ?? 1;
|
|
158
158
|
|
|
159
|
-
if (!this.checkRequirements()) {
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
159
|
this.enable();
|
|
164
160
|
}
|
|
165
161
|
|
|
166
|
-
protected checkRequirements() {
|
|
167
|
-
if (typeof Promise === 'undefined') {
|
|
168
|
-
console.warn('Promise is not supported');
|
|
169
|
-
return false;
|
|
170
|
-
}
|
|
171
|
-
return true;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
162
|
/** Enable this instance, adding listeners and classnames. */
|
|
175
163
|
async enable() {
|
|
176
164
|
// Add event listener
|
package/src/modules/Visit.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { queryAll
|
|
1
|
+
import { queryAll } from '../utils.js';
|
|
2
2
|
import type Swup from '../Swup.js';
|
|
3
3
|
import type { Options } from '../Swup.js';
|
|
4
4
|
|
|
@@ -108,7 +108,7 @@ function awaitAnimationsOnElement(element: Element): Promise<void> | false {
|
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
function getTransitionInfo(element: Element) {
|
|
112
112
|
const styles = window.getComputedStyle(element) as AnimationStyleDeclarations;
|
|
113
113
|
|
|
114
114
|
const transitionDelays = getStyleProperties(styles, `${TRANSITION}Delay`);
|
|
@@ -118,31 +118,14 @@ export function getTransitionInfo(element: Element, expectedType?: AnimationType
|
|
|
118
118
|
const animationDurations = getStyleProperties(styles, `${ANIMATION}Duration`);
|
|
119
119
|
const animationTimeout = calculateTimeout(animationDelays, animationDurations);
|
|
120
120
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
propCount = transitionDurations.length;
|
|
130
|
-
}
|
|
131
|
-
} else if (expectedType === ANIMATION) {
|
|
132
|
-
if (animationTimeout > 0) {
|
|
133
|
-
type = ANIMATION;
|
|
134
|
-
timeout = animationTimeout;
|
|
135
|
-
propCount = animationDurations.length;
|
|
136
|
-
}
|
|
137
|
-
} else {
|
|
138
|
-
timeout = Math.max(transitionTimeout, animationTimeout);
|
|
139
|
-
type = timeout > 0 ? (transitionTimeout > animationTimeout ? TRANSITION : ANIMATION) : null;
|
|
140
|
-
propCount = type
|
|
141
|
-
? type === TRANSITION
|
|
142
|
-
? transitionDurations.length
|
|
143
|
-
: animationDurations.length
|
|
144
|
-
: 0;
|
|
145
|
-
}
|
|
121
|
+
const timeout = Math.max(transitionTimeout, animationTimeout);
|
|
122
|
+
const type =
|
|
123
|
+
timeout > 0 ? (transitionTimeout > animationTimeout ? TRANSITION : ANIMATION) : null;
|
|
124
|
+
const propCount = type
|
|
125
|
+
? type === TRANSITION
|
|
126
|
+
? transitionDurations.length
|
|
127
|
+
: animationDurations.length
|
|
128
|
+
: 0;
|
|
146
129
|
|
|
147
130
|
return {
|
|
148
131
|
type,
|
|
@@ -166,3 +149,7 @@ function calculateTimeout(delays: string[], durations: string[]): number {
|
|
|
166
149
|
|
|
167
150
|
return Math.max(...durations.map((duration, i) => toMs(duration) + toMs(delays[i])));
|
|
168
151
|
}
|
|
152
|
+
|
|
153
|
+
function toMs(time: string): number {
|
|
154
|
+
return parseFloat(time) * 1000;
|
|
155
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { query } from '../utils.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Find the anchor element for a given hash.
|
|
@@ -21,8 +21,8 @@ export const getAnchorElement = (hash?: string): Element | null => {
|
|
|
21
21
|
let element =
|
|
22
22
|
document.getElementById(hash) ||
|
|
23
23
|
document.getElementById(decoded) ||
|
|
24
|
-
query(`a[name='${escape(hash)}']`) ||
|
|
25
|
-
query(`a[name='${escape(decoded)}']`);
|
|
24
|
+
query(`a[name='${CSS.escape(hash)}']`) ||
|
|
25
|
+
query(`a[name='${CSS.escape(decoded)}']`);
|
|
26
26
|
|
|
27
27
|
if (!element && hash === 'top') {
|
|
28
28
|
element = document.body;
|
package/src/modules/navigate.ts
CHANGED
|
@@ -79,6 +79,7 @@ export async function performNavigation(
|
|
|
79
79
|
} else {
|
|
80
80
|
// Currently navigating and content not loaded? Abort running visit
|
|
81
81
|
await this.hooks.call('visit:abort', this.visit, undefined);
|
|
82
|
+
delete this.visit.to.document;
|
|
82
83
|
this.visit.state = VisitState.ABORTED;
|
|
83
84
|
}
|
|
84
85
|
}
|
|
@@ -138,10 +139,14 @@ export async function performNavigation(
|
|
|
138
139
|
return args.page;
|
|
139
140
|
});
|
|
140
141
|
|
|
141
|
-
|
|
142
|
+
/**
|
|
143
|
+
* When the page is loaded: mark the visit as loaded and save
|
|
144
|
+
* the raw html and a parsed document of the received page in the visit object
|
|
145
|
+
*/
|
|
142
146
|
page.then(({ html }) => {
|
|
143
147
|
visit.advance(VisitState.LOADED);
|
|
144
148
|
visit.to.html = html;
|
|
149
|
+
visit.to.document = new DOMParser().parseFromString(html, 'text/html');
|
|
145
150
|
});
|
|
146
151
|
|
|
147
152
|
// Create/update history record if this is not a popstate call or leads to the same URL
|
|
@@ -229,5 +234,7 @@ export async function performNavigation(
|
|
|
229
234
|
|
|
230
235
|
// Go back to the actual page we're still at
|
|
231
236
|
window.history.back();
|
|
237
|
+
} finally {
|
|
238
|
+
delete visit.to.document;
|
|
232
239
|
}
|
|
233
240
|
}
|
|
@@ -28,7 +28,7 @@ export const renderPage = async function (this: Swup, visit: Visit, page: PageDa
|
|
|
28
28
|
if (visit.animation.animate) {
|
|
29
29
|
this.classes.add('is-rendering');
|
|
30
30
|
}
|
|
31
|
-
const success = this.replaceContent(
|
|
31
|
+
const success = this.replaceContent(visit);
|
|
32
32
|
if (!success) {
|
|
33
33
|
throw new Error('[swup] Container mismatch, aborting');
|
|
34
34
|
}
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
import type Swup from '../Swup.js';
|
|
2
|
-
import type { Options } from '../Swup.js';
|
|
3
2
|
import { query, queryAll } from '../utils.js';
|
|
4
|
-
import type {
|
|
3
|
+
import type { Visit } from './Visit.js';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Perform the replacement of content after loading a page.
|
|
8
7
|
*
|
|
9
|
-
* It takes an object with the page data as returned from `fetchPage` and a list
|
|
10
|
-
* of container selectors to replace.
|
|
11
|
-
*
|
|
12
8
|
* @returns Whether all containers were replaced.
|
|
13
9
|
*/
|
|
14
|
-
export const replaceContent = function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
{ containers }: { containers: Options['containers'] } = this.options
|
|
18
|
-
): boolean {
|
|
19
|
-
const incomingDocument = new DOMParser().parseFromString(html, 'text/html');
|
|
10
|
+
export const replaceContent = function (this: Swup, visit: Visit): boolean {
|
|
11
|
+
const incomingDocument = visit.to.document;
|
|
12
|
+
if (!incomingDocument) return false;
|
|
20
13
|
|
|
21
14
|
// Update browser title
|
|
22
15
|
const title = incomingDocument.querySelector('title')?.innerText || '';
|
|
@@ -26,12 +19,12 @@ export const replaceContent = function (
|
|
|
26
19
|
const persistedElements = queryAll('[data-swup-persist]:not([data-swup-persist=""])');
|
|
27
20
|
|
|
28
21
|
// Update content containers
|
|
29
|
-
const replaced = containers
|
|
22
|
+
const replaced = visit.containers
|
|
30
23
|
.map((selector) => {
|
|
31
24
|
const currentEl = document.querySelector(selector);
|
|
32
25
|
const incomingEl = incomingDocument.querySelector(selector);
|
|
33
26
|
if (currentEl && incomingEl) {
|
|
34
|
-
currentEl.replaceWith(incomingEl);
|
|
27
|
+
currentEl.replaceWith(incomingEl.cloneNode(true));
|
|
35
28
|
return true;
|
|
36
29
|
}
|
|
37
30
|
if (!currentEl) {
|
|
@@ -54,5 +47,5 @@ export const replaceContent = function (
|
|
|
54
47
|
});
|
|
55
48
|
|
|
56
49
|
// Return true if all containers were replaced
|
|
57
|
-
return replaced.length === containers.length;
|
|
50
|
+
return replaced.length === visit.containers.length;
|
|
58
51
|
};
|
package/src/utils/index.ts
CHANGED
|
@@ -52,17 +52,3 @@ export function forceReflow(element?: HTMLElement): void {
|
|
|
52
52
|
element = element || document.body;
|
|
53
53
|
element?.getBoundingClientRect();
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
/** Escape a string with special chars to not break CSS selectors. */
|
|
57
|
-
export const escapeCssIdentifier = (ident: string) => {
|
|
58
|
-
// @ts-ignore this is for support check, so it's correct that TS complains
|
|
59
|
-
if (window.CSS && window.CSS.escape) {
|
|
60
|
-
return CSS.escape(ident);
|
|
61
|
-
}
|
|
62
|
-
return ident;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
/** Fix for Chrome below v61 formatting CSS floats with comma in some locales. */
|
|
66
|
-
export const toMs = (s: string) => {
|
|
67
|
-
return Number(s.slice(0, -1).replace(',', '.')) * 1000;
|
|
68
|
-
};
|