swup 3.0.0-rc.4 → 3.0.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.
Files changed (68) hide show
  1. package/dist/Swup.cjs +1 -1
  2. package/dist/Swup.cjs.map +1 -1
  3. package/dist/Swup.modern.js +1 -1
  4. package/dist/Swup.modern.js.map +1 -1
  5. package/dist/Swup.module.js +1 -1
  6. package/dist/Swup.module.js.map +1 -1
  7. package/dist/Swup.umd.js +1 -1
  8. package/dist/Swup.umd.js.map +1 -1
  9. package/dist/types/Swup.d.ts +14 -14
  10. package/dist/types/__test__/index.test.d.ts +1 -0
  11. package/dist/types/helpers/fetch.d.ts +2 -2
  12. package/dist/types/helpers.d.ts +10 -10
  13. package/dist/types/index.d.ts +3 -3
  14. package/dist/types/modules/Cache.d.ts +2 -2
  15. package/dist/types/modules/enterPage.d.ts +1 -1
  16. package/dist/types/modules/{on.d.ts → events.d.ts} +4 -2
  17. package/dist/types/modules/fetchPage.d.ts +3 -3
  18. package/dist/types/modules/getAnimationPromises.d.ts +1 -1
  19. package/dist/types/modules/getPageData.d.ts +2 -2
  20. package/dist/types/modules/leavePage.d.ts +2 -2
  21. package/dist/types/modules/loadPage.d.ts +1 -1
  22. package/dist/types/modules/plugins.d.ts +1 -1
  23. package/dist/types/modules/renderPage.d.ts +2 -2
  24. package/dist/types/modules/updateTransition.d.ts +1 -1
  25. package/dist/types/utils.d.ts +1 -1
  26. package/package.json +16 -8
  27. package/readme.md +2 -2
  28. package/src/Swup.ts +24 -26
  29. package/src/__test__/index.test.ts +52 -0
  30. package/src/helpers/createHistoryRecord.ts +1 -1
  31. package/src/helpers/fetch.ts +2 -2
  32. package/src/helpers/getDataFromHtml.ts +1 -1
  33. package/src/helpers/markSwupElements.ts +1 -1
  34. package/src/helpers/updateHistoryRecord.ts +1 -1
  35. package/src/helpers.ts +10 -10
  36. package/src/index.ts +3 -3
  37. package/src/modules/Cache.ts +3 -3
  38. package/src/modules/enterPage.ts +2 -2
  39. package/src/modules/events.ts +71 -0
  40. package/src/modules/fetchPage.ts +4 -4
  41. package/src/modules/getAnchorElement.ts +1 -1
  42. package/src/modules/getAnimationPromises.ts +2 -2
  43. package/src/modules/getPageData.ts +3 -3
  44. package/src/modules/leavePage.ts +2 -2
  45. package/src/modules/loadPage.ts +3 -3
  46. package/src/modules/plugins.ts +1 -1
  47. package/src/modules/renderPage.ts +3 -3
  48. package/src/modules/updateTransition.ts +1 -1
  49. package/src/utils.ts +1 -1
  50. package/dist/helpers.cjs +0 -2
  51. package/dist/helpers.cjs.map +0 -1
  52. package/dist/helpers.modern.js +0 -2
  53. package/dist/helpers.modern.js.map +0 -1
  54. package/dist/helpers.module.js +0 -2
  55. package/dist/helpers.module.js.map +0 -1
  56. package/dist/types/helpers/index.d.ts +0 -11
  57. package/dist/types/helpers/versionSatisfies.d.ts +0 -11
  58. package/dist/types/modules/off.d.ts +0 -3
  59. package/dist/types/modules/triggerEvent.d.ts +0 -3
  60. package/dist/utils.cjs +0 -2
  61. package/dist/utils.cjs.map +0 -1
  62. package/dist/utils.modern.js +0 -2
  63. package/dist/utils.modern.js.map +0 -1
  64. package/dist/utils.module.js +0 -2
  65. package/dist/utils.module.js.map +0 -1
  66. package/src/modules/off.ts +0 -21
  67. package/src/modules/on.ts +0 -33
  68. package/src/modules/triggerEvent.ts +0 -21
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.modern.js","sources":["../src/utils/index.ts"],"sourcesContent":["export const query = (selector: string, context: Document | Element = document) => {\n\treturn context.querySelector<HTMLElement>(selector);\n};\n\nexport const queryAll = (\n\tselector: string,\n\tcontext: Document | Element = document\n): HTMLElement[] => {\n\treturn Array.from(context.querySelectorAll(selector));\n};\n\nexport const nextTick = (callback: () => void) => {\n\trequestAnimationFrame(() => {\n\t\trequestAnimationFrame(() => {\n\t\t\tcallback();\n\t\t});\n\t});\n};\n\nexport const escapeCssIdentifier = (ident: string) => {\n\t// @ts-ignore this is for support check, so it's correct that TS complains\n\tif (window.CSS && window.CSS.escape) {\n\t\treturn CSS.escape(ident);\n\t} else {\n\t\treturn ident;\n\t}\n};\n\n// Fix for Chrome below v61 formatting CSS floats with comma in some locales\nexport const toMs = (s: string) => {\n\treturn Number(s.slice(0, -1).replace(',', '.')) * 1000;\n};\n"],"names":["query","selector","context","document","querySelector","queryAll","Array","from","querySelectorAll","nextTick","callback","requestAnimationFrame","escapeCssIdentifier","ident","window","CSS","escape","toMs","s","Number","slice","replace"],"mappings":"AAAaA,MAAAA,EAAQ,CAACC,EAAkBC,EAA8BC,aACtDC,cAA2BH,GAG9BI,EAAW,CACvBJ,EACAC,EAA8BC,WAEvBG,MAAMC,KAAKL,EAAQM,iBAAiBP,IAG/BQ,EAAYC,IACxBC,sBAAsB,KACrBA,sBAAsB,KACrBD,GACD,EACD,IAGYE,EAAuBC,GAE/BC,OAAOC,KAAOD,OAAOC,IAAIC,OAClBD,IAACC,OAAOH,GAEXA,EAKII,EAAQC,GAC8B,IAA3CC,OAAOD,EAAEE,MAAM,GAAI,GAAGC,QAAQ,IAAK"}
@@ -1,2 +0,0 @@
1
- const e=function(e,r){return void 0===r&&(r=document),r.querySelector(e)},r=function(e,r){return void 0===r&&(r=document),Array.from(r.querySelectorAll(e))},n=e=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e()})})},o=e=>window.CSS&&window.CSS.escape?CSS.escape(e):e,t=e=>1e3*Number(e.slice(0,-1).replace(",","."));export{o as escapeCssIdentifier,n as nextTick,e as query,r as queryAll,t as toMs};
2
- //# sourceMappingURL=utils.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.module.js","sources":["../src/utils/index.ts"],"sourcesContent":["export const query = (selector: string, context: Document | Element = document) => {\n\treturn context.querySelector<HTMLElement>(selector);\n};\n\nexport const queryAll = (\n\tselector: string,\n\tcontext: Document | Element = document\n): HTMLElement[] => {\n\treturn Array.from(context.querySelectorAll(selector));\n};\n\nexport const nextTick = (callback: () => void) => {\n\trequestAnimationFrame(() => {\n\t\trequestAnimationFrame(() => {\n\t\t\tcallback();\n\t\t});\n\t});\n};\n\nexport const escapeCssIdentifier = (ident: string) => {\n\t// @ts-ignore this is for support check, so it's correct that TS complains\n\tif (window.CSS && window.CSS.escape) {\n\t\treturn CSS.escape(ident);\n\t} else {\n\t\treturn ident;\n\t}\n};\n\n// Fix for Chrome below v61 formatting CSS floats with comma in some locales\nexport const toMs = (s: string) => {\n\treturn Number(s.slice(0, -1).replace(',', '.')) * 1000;\n};\n"],"names":["query","selector","context","document","querySelector","queryAll","Array","from","querySelectorAll","nextTick","callback","requestAnimationFrame","escapeCssIdentifier","ident","window","CSS","escape","toMs","s","Number","slice","replace"],"mappings":"AAAaA,MAAAA,EAAQ,SAACC,EAAkBC,GACvC,YADuC,IAAAA,IAAAA,EAA8BC,UACvDD,EAACE,cAA2BH,EAC3C,EAEaI,EAAW,SACvBJ,EACAC,GAEA,YAFA,IAAAA,IAAAA,EAA8BC,UAElBG,MAACC,KAAKL,EAAQM,iBAAiBP,GAC5C,EAEqBQ,EAAIC,IACxBC,sBAAsB,KACrBA,sBAAsB,KACrBD,GAAQ,EAEV,EACD,EAEgCE,EAAIC,GAE/BC,OAAOC,KAAOD,OAAOC,IAAIC,OAClBD,IAACC,OAAOH,GAEXA,EAKQI,EAAIC,GAC8B,IAArCC,OAACD,EAAEE,MAAM,GAAI,GAAGC,QAAQ,IAAK"}
@@ -1,21 +0,0 @@
1
- import Swup from '../Swup.js';
2
- import { EventType, Handler } from './on.js';
3
-
4
- export const off = function off(this: Swup, event?: EventType, handler?: Handler) {
5
- if (event && handler) {
6
- // Remove specific handler
7
- if (this._handlers[event].includes(handler)) {
8
- this._handlers[event] = this._handlers[event].filter((h) => h !== handler);
9
- } else {
10
- console.warn(`Handler for event '${event}' not found.`);
11
- }
12
- } else if (event) {
13
- // Remove all handlers for specific event
14
- this._handlers[event] = [];
15
- } else {
16
- // Remove all handlers for all events
17
- Object.keys(this._handlers).forEach((event) => {
18
- this._handlers[event as EventType] = [];
19
- });
20
- }
21
- };
package/src/modules/on.ts DELETED
@@ -1,33 +0,0 @@
1
- import Swup from '../Swup.js';
2
-
3
- export type EventType =
4
- | 'animationInDone'
5
- | 'animationInStart'
6
- | 'animationOutDone'
7
- | 'animationOutStart'
8
- | 'animationSkipped'
9
- | 'clickLink'
10
- | 'contentReplaced'
11
- | 'disabled'
12
- | 'enabled'
13
- | 'openPageInNewTab'
14
- | 'pageLoaded'
15
- | 'pageRetrievedFromCache'
16
- | 'pageView'
17
- | 'popState'
18
- | 'samePage'
19
- | 'samePageWithHash'
20
- | 'serverError'
21
- | 'transitionStart'
22
- | 'transitionEnd'
23
- | 'willReplaceContent';
24
- export type Handler = (event?: Event) => void;
25
- export type Handlers = Record<EventType, Handler[]>;
26
-
27
- export const on = function on(this: Swup, event: EventType, handler: Handler) {
28
- if (this._handlers[event]) {
29
- this._handlers[event].push(handler);
30
- } else {
31
- console.warn(`Unsupported event ${event}.`);
32
- }
33
- };
@@ -1,21 +0,0 @@
1
- import { EventType } from './on.js';
2
- import Swup from '../Swup.js';
3
-
4
- export const triggerEvent = function (
5
- this: Swup,
6
- eventName: EventType,
7
- originalEvent?: PopStateEvent | MouseEvent
8
- ): void {
9
- // call saved handlers with "on" method and pass originalEvent object if available
10
- this._handlers[eventName].forEach((handler) => {
11
- try {
12
- handler(originalEvent);
13
- } catch (error) {
14
- console.error(error);
15
- }
16
- });
17
-
18
- // trigger event on document with prefix "swup:"
19
- const event = new CustomEvent(`swup:${eventName}`, { detail: eventName });
20
- document.dispatchEvent(event);
21
- };