@alignable/bifrost 0.0.13 → 0.0.15

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 (136) hide show
  1. package/dist/chunk-4DL7N7Y5.js +17 -0
  2. package/dist/chunk-4DL7N7Y5.js.map +1 -0
  3. package/dist/chunk-ABW2IXO4.js +936 -0
  4. package/dist/chunk-ABW2IXO4.js.map +1 -0
  5. package/dist/chunk-AIK6VRNF.js +20 -0
  6. package/dist/chunk-AIK6VRNF.js.map +1 -0
  7. package/dist/chunk-CXNEKD7R.js +9 -0
  8. package/dist/chunk-CXNEKD7R.js.map +1 -0
  9. package/dist/chunk-EYYCKU6F.js +11 -0
  10. package/dist/chunk-EYYCKU6F.js.map +1 -0
  11. package/dist/chunk-LEUA73GT.js +26 -0
  12. package/dist/chunk-LEUA73GT.js.map +1 -0
  13. package/dist/chunk-RQ34EW7E.js +13 -0
  14. package/dist/chunk-RQ34EW7E.js.map +1 -0
  15. package/dist/index.d.ts +14 -8
  16. package/dist/index.js +8 -1
  17. package/dist/index.js.map +1 -0
  18. package/dist/internal-fe09ebc7.d.ts +72 -0
  19. package/dist/proxy/pages/+config.d.ts +2 -2
  20. package/dist/proxy/pages/+config.js +17 -12
  21. package/dist/proxy/pages/+config.js.map +1 -0
  22. package/dist/proxy/pages/Page.d.ts +3 -2
  23. package/dist/proxy/pages/Page.js +7 -3
  24. package/dist/proxy/pages/Page.js.map +1 -0
  25. package/dist/proxy/pages/onBeforeRender.d.ts +9 -3
  26. package/dist/proxy/pages/onBeforeRender.js +9 -5
  27. package/dist/proxy/pages/onBeforeRender.js.map +1 -0
  28. package/dist/proxy/pages/onRenderClient.d.ts +9 -3
  29. package/dist/proxy/pages/onRenderClient.js +59 -51
  30. package/dist/proxy/pages/onRenderClient.js.map +1 -0
  31. package/dist/proxy/pages/onRenderHtml.d.ts +11 -4
  32. package/dist/proxy/pages/onRenderHtml.js +54 -39
  33. package/dist/proxy/pages/onRenderHtml.js.map +1 -0
  34. package/dist/proxy/pages/restorationVisit/+config.d.ts +2 -2
  35. package/dist/proxy/pages/restorationVisit/+config.js +19 -14
  36. package/dist/proxy/pages/restorationVisit/+config.js.map +1 -0
  37. package/dist/proxy/pages/restorationVisit/onRenderClient.d.ts +9 -3
  38. package/dist/proxy/pages/restorationVisit/onRenderClient.js +49 -39
  39. package/dist/proxy/pages/restorationVisit/onRenderClient.js.map +1 -0
  40. package/dist/proxy/pages/restorationVisit/route.d.ts +3 -2
  41. package/dist/proxy/pages/restorationVisit/route.js +7 -3
  42. package/dist/proxy/pages/restorationVisit/route.js.map +1 -0
  43. package/dist/renderer/+config.d.ts +2 -5
  44. package/dist/renderer/+config.js +25 -14
  45. package/dist/renderer/+config.js.map +1 -0
  46. package/dist/renderer/_error/Page.d.ts +2 -3
  47. package/dist/renderer/_error/Page.js +11 -12
  48. package/dist/renderer/_error/Page.js.map +1 -0
  49. package/dist/renderer/getConfigOrPageContext.d.ts +9 -4
  50. package/dist/renderer/getConfigOrPageContext.js +7 -6
  51. package/dist/renderer/getConfigOrPageContext.js.map +1 -0
  52. package/dist/renderer/onBeforeRoute.d.ts +3 -2
  53. package/dist/renderer/onBeforeRoute.js +28 -20
  54. package/dist/renderer/onBeforeRoute.js.map +1 -0
  55. package/dist/renderer/onRenderClient.d.ts +9 -3
  56. package/dist/renderer/onRenderClient.js +53 -38
  57. package/dist/renderer/onRenderClient.js.map +1 -0
  58. package/dist/renderer/onRenderHtml.d.ts +11 -4
  59. package/dist/renderer/onRenderHtml.js +43 -23
  60. package/dist/renderer/onRenderHtml.js.map +1 -0
  61. package/dist/renderer/usePageContext.d.ts +7 -4
  62. package/dist/renderer/usePageContext.js +10 -21
  63. package/dist/renderer/usePageContext.js.map +1 -0
  64. package/dist/renderer/utils/buildHead.d.ts +9 -4
  65. package/dist/renderer/utils/buildHead.js +7 -10
  66. package/dist/renderer/utils/buildHead.js.map +1 -0
  67. package/dist/renderer/utils/getGlobalObject.d.ts +3 -2
  68. package/dist/renderer/utils/getGlobalObject.js +7 -8
  69. package/dist/renderer/utils/getGlobalObject.js.map +1 -0
  70. package/package.json +5 -4
  71. package/dist/index.d.ts.map +0 -1
  72. package/dist/lib/PageShell.d.ts +0 -7
  73. package/dist/lib/PageShell.d.ts.map +0 -1
  74. package/dist/lib/PageShell.js +0 -6
  75. package/dist/lib/getElementAttributes.d.ts +0 -2
  76. package/dist/lib/getElementAttributes.d.ts.map +0 -1
  77. package/dist/lib/getElementAttributes.js +0 -7
  78. package/dist/lib/renderReact.d.ts +0 -3
  79. package/dist/lib/renderReact.d.ts.map +0 -1
  80. package/dist/lib/renderReact.js +0 -14
  81. package/dist/lib/turbolinks/adapter.d.ts +0 -17
  82. package/dist/lib/turbolinks/adapter.d.ts.map +0 -1
  83. package/dist/lib/turbolinks/adapter.js +0 -1
  84. package/dist/lib/turbolinks/browser_adapter.d.ts +0 -28
  85. package/dist/lib/turbolinks/browser_adapter.d.ts.map +0 -1
  86. package/dist/lib/turbolinks/browser_adapter.js +0 -68
  87. package/dist/lib/turbolinks/controller.d.ts +0 -75
  88. package/dist/lib/turbolinks/controller.d.ts.map +0 -1
  89. package/dist/lib/turbolinks/controller.js +0 -219
  90. package/dist/lib/turbolinks/head_details.d.ts +0 -24
  91. package/dist/lib/turbolinks/head_details.d.ts.map +0 -1
  92. package/dist/lib/turbolinks/head_details.js +0 -97
  93. package/dist/lib/turbolinks/index.d.ts +0 -14
  94. package/dist/lib/turbolinks/index.d.ts.map +0 -1
  95. package/dist/lib/turbolinks/index.js +0 -55
  96. package/dist/lib/turbolinks/location.d.ts +0 -23
  97. package/dist/lib/turbolinks/location.d.ts.map +0 -1
  98. package/dist/lib/turbolinks/location.js +0 -75
  99. package/dist/lib/turbolinks/lruCache.d.ts +0 -8
  100. package/dist/lib/turbolinks/lruCache.d.ts.map +0 -1
  101. package/dist/lib/turbolinks/lruCache.js +0 -25
  102. package/dist/lib/turbolinks/mergeHead.d.ts +0 -2
  103. package/dist/lib/turbolinks/mergeHead.d.ts.map +0 -1
  104. package/dist/lib/turbolinks/mergeHead.js +0 -120
  105. package/dist/lib/turbolinks/progress_bar.d.ts +0 -24
  106. package/dist/lib/turbolinks/progress_bar.d.ts.map +0 -1
  107. package/dist/lib/turbolinks/progress_bar.js +0 -99
  108. package/dist/lib/turbolinks/types.d.ts +0 -7
  109. package/dist/lib/turbolinks/types.d.ts.map +0 -1
  110. package/dist/lib/turbolinks/types.js +0 -3
  111. package/dist/lib/turbolinks/util.d.ts +0 -18
  112. package/dist/lib/turbolinks/util.d.ts.map +0 -1
  113. package/dist/lib/turbolinks/util.js +0 -125
  114. package/dist/lib/turbolinks/visit.d.ts +0 -55
  115. package/dist/lib/turbolinks/visit.d.ts.map +0 -1
  116. package/dist/lib/turbolinks/visit.js +0 -163
  117. package/dist/proxy/pages/+config.d.ts.map +0 -1
  118. package/dist/proxy/pages/Page.d.ts.map +0 -1
  119. package/dist/proxy/pages/onBeforeRender.d.ts.map +0 -1
  120. package/dist/proxy/pages/onRenderClient.d.ts.map +0 -1
  121. package/dist/proxy/pages/onRenderHtml.d.ts.map +0 -1
  122. package/dist/proxy/pages/restorationVisit/+config.d.ts.map +0 -1
  123. package/dist/proxy/pages/restorationVisit/onRenderClient.d.ts.map +0 -1
  124. package/dist/proxy/pages/restorationVisit/route.d.ts.map +0 -1
  125. package/dist/renderer/+config.d.ts.map +0 -1
  126. package/dist/renderer/_error/Page.d.ts.map +0 -1
  127. package/dist/renderer/getConfigOrPageContext.d.ts.map +0 -1
  128. package/dist/renderer/onBeforeRoute.d.ts.map +0 -1
  129. package/dist/renderer/onRenderClient.d.ts.map +0 -1
  130. package/dist/renderer/onRenderHtml.d.ts.map +0 -1
  131. package/dist/renderer/usePageContext.d.ts.map +0 -1
  132. package/dist/renderer/utils/buildHead.d.ts.map +0 -1
  133. package/dist/renderer/utils/getGlobalObject.d.ts.map +0 -1
  134. package/dist/types/internal.d.ts +0 -64
  135. package/dist/types/internal.d.ts.map +0 -1
  136. package/dist/types/internal.js +0 -1
@@ -1,120 +0,0 @@
1
- import { createScriptElement } from "./util";
2
- const allHeadScriptsEverRun = {};
3
- let firstLoad = true;
4
- let lastTrackedScriptSignature;
5
- export async function mergeHead(head, trackScripts, reload) {
6
- const newHead = categorizeHead(head);
7
- const oldHead = categorizeHead(document.head);
8
- if (head
9
- .querySelector('meta[name="turbolinks-visit-control"]')
10
- ?.getAttribute("content") === "reload") {
11
- reload();
12
- }
13
- if (trackScripts) {
14
- lastTrackedScriptSignature =
15
- lastTrackedScriptSignature ||
16
- trackedElementSignature([...oldHead.scripts, ...oldHead.stylesheets]);
17
- if (lastTrackedScriptSignature !==
18
- trackedElementSignature([...newHead.scripts, ...newHead.stylesheets])) {
19
- reload();
20
- }
21
- }
22
- if (firstLoad) {
23
- // TODO: messy code
24
- for (const element of oldHead.scripts) {
25
- allHeadScriptsEverRun[element.outerHTML] = {
26
- tracked: elementIsTracked(element),
27
- };
28
- }
29
- firstLoad = false;
30
- }
31
- copyNewHeadStylesheetElements(newHead.stylesheets, oldHead.stylesheets);
32
- removeCurrentHeadProvisionalElements(oldHead.provisional);
33
- copyNewHeadProvisionalElements(newHead.provisional);
34
- return new Promise((resolve) => {
35
- copyNewHeadScriptElements(newHead.scripts, resolve);
36
- });
37
- }
38
- function trackedElementSignature(scripts) {
39
- return scripts
40
- .filter(elementIsTracked)
41
- .map((s) => s.outerHTML)
42
- .join();
43
- }
44
- function copyNewHeadStylesheetElements(next, prev) {
45
- const existing = prev.map((s) => s.outerHTML);
46
- for (const element of next) {
47
- if (!existing.includes(element.outerHTML)) {
48
- document.head.appendChild(element);
49
- }
50
- }
51
- }
52
- function copyNewHeadScriptElements(next, onScriptsLoaded) {
53
- let blockingLoaded = [];
54
- function dispatch() {
55
- onScriptsLoaded();
56
- }
57
- for (const element of next) {
58
- const runBefore = element.outerHTML in allHeadScriptsEverRun;
59
- if (!runBefore) {
60
- let cb;
61
- if (!element.defer && element.src) {
62
- const idx = blockingLoaded.length;
63
- cb = () => {
64
- blockingLoaded[idx] = true;
65
- if (blockingLoaded.every((v) => v)) {
66
- dispatch();
67
- }
68
- };
69
- blockingLoaded.push(false);
70
- }
71
- document.head.appendChild(createScriptElement(element, cb));
72
- allHeadScriptsEverRun[element.outerHTML] = {
73
- tracked: elementIsTracked(element),
74
- };
75
- }
76
- }
77
- if (blockingLoaded.length === 0) {
78
- // raf waits for react to finish
79
- requestAnimationFrame(dispatch);
80
- }
81
- }
82
- function removeCurrentHeadProvisionalElements(prev) {
83
- for (const element of prev) {
84
- document.head.removeChild(element);
85
- }
86
- }
87
- function copyNewHeadProvisionalElements(next) {
88
- for (const element of next) {
89
- document.head.appendChild(element);
90
- }
91
- }
92
- function elementIsTracked(element) {
93
- return element.getAttribute("data-turbolinks-track") == "reload";
94
- }
95
- function elementIsScript(element) {
96
- const tagName = element.tagName.toLowerCase();
97
- return tagName == "script";
98
- }
99
- function elementIsStylesheet(element) {
100
- const tagName = element.tagName.toLowerCase();
101
- return (tagName == "style" ||
102
- (tagName == "link" && element.getAttribute("rel") == "stylesheet"));
103
- }
104
- function categorizeHead(head) {
105
- const scripts = [];
106
- const stylesheets = [];
107
- const provisional = [];
108
- for (const element of head.children) {
109
- if (elementIsScript(element)) {
110
- scripts.push(element);
111
- }
112
- else if (elementIsStylesheet(element)) {
113
- stylesheets.push(element);
114
- }
115
- else {
116
- provisional.push(element);
117
- }
118
- }
119
- return { scripts, stylesheets, provisional };
120
- }
@@ -1,24 +0,0 @@
1
- export declare class ProgressBar {
2
- static animationDuration: number;
3
- static get defaultCSS(): string;
4
- readonly stylesheetElement: HTMLStyleElement;
5
- readonly progressElement: HTMLDivElement;
6
- hiding: boolean;
7
- trickleInterval?: number;
8
- value: number;
9
- visible: boolean;
10
- show(): void;
11
- hide(): void;
12
- setValue(value: number): void;
13
- installStylesheetElement(): void;
14
- installProgressElement(): void;
15
- fadeProgressElement(callback: () => void): void;
16
- uninstallProgressElement(): void;
17
- startTrickling(): void;
18
- stopTrickling(): void;
19
- trickle: () => void;
20
- refresh(): void;
21
- createStylesheetElement(): HTMLStyleElement;
22
- createProgressElement(): HTMLDivElement;
23
- }
24
- //# sourceMappingURL=progress_bar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress_bar.d.ts","sourceRoot":"","sources":["../../../lib/turbolinks/progress_bar.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW;IACtB,MAAM,CAAC,iBAAiB,SAAO;IAE/B,MAAM,KAAK,UAAU,WAkBpB;IAED,QAAQ,CAAC,iBAAiB,mBAAkC;IAC5D,QAAQ,CAAC,eAAe,iBAAgC;IAExD,MAAM,UAAS;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,SAAK;IACV,OAAO,UAAS;IAEhB,IAAI;IASJ,IAAI;IAYJ,QAAQ,CAAC,KAAK,EAAE,MAAM;IAOtB,wBAAwB;IAOxB,sBAAsB;IAOtB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,IAAI;IAKxC,wBAAwB;IAMxB,cAAc;IASd,aAAa;IAKb,OAAO,aAEL;IAEF,OAAO;IAMP,uBAAuB;IAOvB,qBAAqB;CAKtB"}
@@ -1,99 +0,0 @@
1
- import { unindent } from "./util";
2
- class ProgressBar {
3
- constructor() {
4
- this.stylesheetElement = this.createStylesheetElement();
5
- this.progressElement = this.createProgressElement();
6
- this.hiding = false;
7
- this.value = 0;
8
- this.visible = false;
9
- this.trickle = () => {
10
- this.setValue(this.value + Math.random() / 100);
11
- };
12
- }
13
- static get defaultCSS() {
14
- return unindent `
15
- .turbolinks-progress-bar {
16
- position: fixed;
17
- display: block;
18
- top: 0;
19
- left: 0;
20
- height: 3px;
21
- background: #0076ff;
22
- z-index: 9999;
23
- transition:
24
- width ${ProgressBar.animationDuration}ms ease-out,
25
- opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;
26
- transform: translate3d(0, 0, 0);
27
- }
28
- `;
29
- }
30
- show() {
31
- if (!this.visible) {
32
- this.visible = true;
33
- this.installStylesheetElement();
34
- this.installProgressElement();
35
- this.startTrickling();
36
- }
37
- }
38
- hide() {
39
- if (this.visible && !this.hiding) {
40
- this.hiding = true;
41
- this.fadeProgressElement(() => {
42
- this.uninstallProgressElement();
43
- this.stopTrickling();
44
- this.visible = false;
45
- this.hiding = false;
46
- });
47
- }
48
- }
49
- setValue(value) {
50
- this.value = value;
51
- this.refresh();
52
- }
53
- // Private
54
- installStylesheetElement() {
55
- document.head.insertBefore(this.stylesheetElement, document.head.firstChild);
56
- }
57
- installProgressElement() {
58
- this.progressElement.style.width = "0";
59
- this.progressElement.style.opacity = "1";
60
- document.documentElement.insertBefore(this.progressElement, document.body);
61
- this.refresh();
62
- }
63
- fadeProgressElement(callback) {
64
- this.progressElement.style.opacity = "0";
65
- setTimeout(callback, ProgressBar.animationDuration * 1.5);
66
- }
67
- uninstallProgressElement() {
68
- if (this.progressElement.parentNode) {
69
- document.documentElement.removeChild(this.progressElement);
70
- }
71
- }
72
- startTrickling() {
73
- if (!this.trickleInterval) {
74
- this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);
75
- }
76
- }
77
- stopTrickling() {
78
- window.clearInterval(this.trickleInterval);
79
- delete this.trickleInterval;
80
- }
81
- refresh() {
82
- requestAnimationFrame(() => {
83
- this.progressElement.style.width = `${10 + this.value * 90}%`;
84
- });
85
- }
86
- createStylesheetElement() {
87
- const element = document.createElement("style");
88
- element.type = "text/css";
89
- element.textContent = ProgressBar.defaultCSS;
90
- return element;
91
- }
92
- createProgressElement() {
93
- const element = document.createElement("div");
94
- element.className = "turbolinks-progress-bar";
95
- return element;
96
- }
97
- }
98
- ProgressBar.animationDuration = 300; /*ms*/
99
- export { ProgressBar };
@@ -1,7 +0,0 @@
1
- export type Action = "advance" | "replace" | "restore";
2
- export declare function isAction(action: any): action is Action;
3
- export type Position = {
4
- x: number;
5
- y: number;
6
- };
7
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/turbolinks/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,CAEtD;AAED,MAAM,MAAM,QAAQ,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -1,3 +0,0 @@
1
- export function isAction(action) {
2
- return action == "advance" || action == "replace" || action == "restore";
3
- }
@@ -1,18 +0,0 @@
1
- export declare function array<T>(values: ArrayLike<T>): T[];
2
- export declare const closest: (element: Element, selector: string) => Element | null;
3
- export declare function defer(callback: () => any): void;
4
- export type DispatchOptions = {
5
- target: EventTarget;
6
- cancelable: boolean;
7
- data: any;
8
- };
9
- export declare function dispatch(eventName: string, { target, cancelable, data }?: Partial<DispatchOptions>): Event & {
10
- data: any;
11
- };
12
- export declare function unindent(strings: TemplateStringsArray, ...values: any[]): string;
13
- export declare function uuid(): string;
14
- export declare function createScriptElement(element: Element, cb?: () => void): Element;
15
- export declare function copyElementAttributes(destinationElement: Element, sourceElement: Element): void;
16
- export declare function activateNewBodyScriptElements(newScriptElements: HTMLScriptElement[]): void;
17
- export declare function focusFirstAutofocusableElement(): void;
18
- //# sourceMappingURL=util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../lib/turbolinks/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAElD;AAED,eAAO,MAAM,OAAO,YAwBQ,OAAO,YAAY,MAAM,mBAGjD,CAAC;AAEL,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,QAExC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,wBAAgB,QAAQ,CACtB,SAAS,EAAE,MAAM,EACjB,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAE,OAAO,CAAC,eAAe,CAAM;UAEK,GAAG;EAkBpE;AASD,wBAAgB,QAAQ,CACtB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,GAAG,EAAE,GACf,MAAM,CAKR;AAaD,wBAAgB,IAAI,WAcnB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,WAepE;AAED,wBAAgB,qBAAqB,CACnC,kBAAkB,EAAE,OAAO,EAC3B,aAAa,EAAE,OAAO,QAKvB;AAQD,wBAAgB,6BAA6B,CAC3C,iBAAiB,EAAE,iBAAiB,EAAE,QAMvC;AAED,wBAAgB,8BAA8B,SAK7C"}
@@ -1,125 +0,0 @@
1
- export function array(values) {
2
- return Array.prototype.slice.call(values);
3
- }
4
- export const closest = (() => {
5
- const html = document.documentElement;
6
- const match = html.matches ||
7
- html.webkitMatchesSelector ||
8
- html.msMatchesSelector ||
9
- html.mozMatchesSelector;
10
- const closest = html.closest ||
11
- function (selector) {
12
- let element = this;
13
- while (element) {
14
- if (match.call(element, selector)) {
15
- return element;
16
- }
17
- else {
18
- element = element.parentElement;
19
- }
20
- }
21
- };
22
- return function (element, selector) {
23
- return closest.call(element, selector);
24
- };
25
- })();
26
- export function defer(callback) {
27
- setTimeout(callback, 1);
28
- }
29
- export function dispatch(eventName, { target, cancelable, data } = {}) {
30
- const event = document.createEvent("Events");
31
- event.initEvent(eventName, true, cancelable == true);
32
- event.data = data || {};
33
- // Fix setting `defaultPrevented` when `preventDefault()` is called
34
- // http://stackoverflow.com/questions/23349191/event-preventdefault-is-not-working-in-ie-11-for-custom-events
35
- if (event.cancelable && !preventDefaultSupported) {
36
- const { preventDefault } = event;
37
- event.preventDefault = function () {
38
- if (!this.defaultPrevented) {
39
- Object.defineProperty(this, "defaultPrevented", { get: () => true });
40
- }
41
- preventDefault.call(this);
42
- };
43
- }
44
- (target || document).dispatchEvent(event);
45
- return event;
46
- }
47
- const preventDefaultSupported = (() => {
48
- const event = document.createEvent("Events");
49
- event.initEvent("test", true, true);
50
- event.preventDefault();
51
- return event.defaultPrevented;
52
- })();
53
- export function unindent(strings, ...values) {
54
- const lines = trimLeft(interpolate(strings, values)).split("\n");
55
- const match = lines[0].match(/^\s+/);
56
- const indent = match ? match[0].length : 0;
57
- return lines.map((line) => line.slice(indent)).join("\n");
58
- }
59
- function trimLeft(string) {
60
- return string.replace(/^\n/, "");
61
- }
62
- function interpolate(strings, values) {
63
- return strings.reduce((result, string, i) => {
64
- const value = values[i] == undefined ? "" : values[i];
65
- return result + string + value;
66
- }, "");
67
- }
68
- export function uuid() {
69
- return Array.apply(null, { length: 36 })
70
- .map((_, i) => {
71
- if (i == 8 || i == 13 || i == 18 || i == 23) {
72
- return "-";
73
- }
74
- else if (i == 14) {
75
- return "4";
76
- }
77
- else if (i == 19) {
78
- return (Math.floor(Math.random() * 4) + 8).toString(16);
79
- }
80
- else {
81
- return Math.floor(Math.random() * 15).toString(16);
82
- }
83
- })
84
- .join("");
85
- }
86
- export function createScriptElement(element, cb) {
87
- if (element.getAttribute("data-turbolinks-eval") == "false") {
88
- return element;
89
- }
90
- else {
91
- const createdScriptElement = document.createElement("script");
92
- createdScriptElement.textContent = element.textContent;
93
- // async false makes scripts run in-order. it wont block js execution (thankfully)
94
- // https://github.com/turbolinks/turbolinks/issues/282#issuecomment-355731712
95
- createdScriptElement.async = false;
96
- copyElementAttributes(createdScriptElement, element);
97
- if (cb) {
98
- createdScriptElement.addEventListener("load", cb);
99
- }
100
- return createdScriptElement;
101
- }
102
- }
103
- export function copyElementAttributes(destinationElement, sourceElement) {
104
- for (const { name, value } of array(sourceElement.attributes)) {
105
- destinationElement.setAttribute(name, value);
106
- }
107
- }
108
- function replaceElementWithElement(fromElement, toElement) {
109
- const parentElement = fromElement.parentElement;
110
- if (parentElement) {
111
- return parentElement.replaceChild(toElement, fromElement);
112
- }
113
- }
114
- export function activateNewBodyScriptElements(newScriptElements) {
115
- for (const inertScriptElement of newScriptElements) {
116
- const activatedScriptElement = createScriptElement(inertScriptElement);
117
- replaceElementWithElement(inertScriptElement, activatedScriptElement);
118
- }
119
- }
120
- export function focusFirstAutofocusableElement() {
121
- const element = document.body.querySelector("[autofocus]");
122
- if (element && "focus" in element && typeof element.focus === "function") {
123
- element.focus();
124
- }
125
- }
@@ -1,55 +0,0 @@
1
- import { Adapter } from "./adapter";
2
- import { Controller } from "./controller.js";
3
- import { Location } from "./location";
4
- import { Action } from "./types";
5
- export declare enum TimingMetric {
6
- visitStart = "visitStart",
7
- requestStart = "requestStart",
8
- requestEnd = "requestEnd",
9
- visitEnd = "visitEnd"
10
- }
11
- export type TimingMetrics = Partial<{
12
- [metric in TimingMetric]: any;
13
- }>;
14
- export declare enum VisitState {
15
- initialized = "initialized",
16
- started = "started",
17
- canceled = "canceled",
18
- failed = "failed",
19
- completed = "completed"
20
- }
21
- export declare class Visit {
22
- readonly controller: Controller;
23
- readonly action: Action;
24
- readonly adapter: Adapter;
25
- readonly identifier: string;
26
- readonly restorationIdentifier: string;
27
- readonly timingMetrics: TimingMetrics;
28
- frame?: number;
29
- location: Location;
30
- progress: number;
31
- referrer?: Location;
32
- redirectedToLocation?: Location;
33
- snapshotCached: boolean;
34
- state: VisitState;
35
- requestInFlight: boolean;
36
- renderFn?: () => Promise<void>;
37
- constructor(controller: Controller, location: Location, action: Action, restorationIdentifier?: string);
38
- start(): void;
39
- cancel(): void;
40
- complete(): void;
41
- fail(): void;
42
- changeHistory(): void;
43
- issueRequest(): void;
44
- getCachedSnapshot(): import("./controller.js").Snapshot | undefined;
45
- hasCachedSnapshot(): boolean;
46
- loadCachedSnapshot(): void;
47
- loadResponse(): void;
48
- recordTimingMetric(metric: TimingMetric): void;
49
- getTimingMetrics(): TimingMetrics;
50
- shouldIssueRequest(): boolean;
51
- cacheSnapshot(): void;
52
- render(callback: () => Promise<void>): void;
53
- cancelRender(): void;
54
- }
55
- //# sourceMappingURL=visit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"visit.d.ts","sourceRoot":"","sources":["../../../lib/turbolinks/visit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;KAAG,MAAM,IAAI,YAAY,GAAG,GAAG;CAAE,CAAC,CAAC;AAEvE,oBAAY,UAAU;IACpB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,qBAAa,KAAK;IAChB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,SAAU;IAC7B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAM;IAE3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,SAAK;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oBAAoB,CAAC,EAAE,QAAQ,CAAC;IAChC,cAAc,UAAS;IACvB,KAAK,aAA0B;IAE/B,eAAe,UAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBAG7B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,GAAE,MAAe;IASxC,KAAK;IAQL,MAAM;IAQN,QAAQ;IASR,IAAI;IAOJ,aAAa;IAKb,YAAY;IAgBZ,iBAAiB;IAWjB,iBAAiB;IAIjB,kBAAkB;IAKlB,YAAY;IA+CZ,kBAAkB,CAAC,MAAM,EAAE,YAAY;IAIvC,gBAAgB,IAAI,aAAa;IAMjC,kBAAkB;IAIlB,aAAa;IAOb,MAAM,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAQpC,YAAY;CAMb"}
@@ -1,163 +0,0 @@
1
- import { navigate } from "vite-plugin-ssr/client/router";
2
- import { uuid } from "./util";
3
- export var TimingMetric;
4
- (function (TimingMetric) {
5
- TimingMetric["visitStart"] = "visitStart";
6
- TimingMetric["requestStart"] = "requestStart";
7
- TimingMetric["requestEnd"] = "requestEnd";
8
- TimingMetric["visitEnd"] = "visitEnd";
9
- })(TimingMetric || (TimingMetric = {}));
10
- export var VisitState;
11
- (function (VisitState) {
12
- VisitState["initialized"] = "initialized";
13
- VisitState["started"] = "started";
14
- VisitState["canceled"] = "canceled";
15
- VisitState["failed"] = "failed";
16
- VisitState["completed"] = "completed";
17
- })(VisitState || (VisitState = {}));
18
- export class Visit {
19
- constructor(controller, location, action, restorationIdentifier = uuid()) {
20
- this.identifier = uuid();
21
- this.timingMetrics = {};
22
- this.progress = 0;
23
- this.snapshotCached = false;
24
- this.state = VisitState.initialized;
25
- this.requestInFlight = false;
26
- this.controller = controller;
27
- this.location = location;
28
- this.action = action;
29
- this.adapter = controller.adapter;
30
- this.restorationIdentifier = restorationIdentifier;
31
- }
32
- start() {
33
- if (this.state == VisitState.initialized) {
34
- this.recordTimingMetric(TimingMetric.visitStart);
35
- this.state = VisitState.started;
36
- this.adapter.visitStarted(this);
37
- }
38
- }
39
- cancel() {
40
- if (this.state == VisitState.started) {
41
- this.requestInFlight = false;
42
- this.cancelRender();
43
- this.state = VisitState.canceled;
44
- }
45
- }
46
- complete() {
47
- if (this.state == VisitState.started) {
48
- this.recordTimingMetric(TimingMetric.visitEnd);
49
- this.state = VisitState.completed;
50
- this.adapter.visitCompleted(this);
51
- this.controller.visitCompleted(this);
52
- }
53
- }
54
- fail() {
55
- if (this.state == VisitState.started) {
56
- this.state = VisitState.failed;
57
- this.adapter.visitFailed(this);
58
- }
59
- }
60
- changeHistory() {
61
- // no-op since issueRequest calls navigate which handles all of this already
62
- return;
63
- }
64
- issueRequest() {
65
- if (!this.requestInFlight) {
66
- if (this.shouldIssueRequest()) {
67
- const url = new URL(this.location.toString(), this.location.getOrigin());
68
- navigate(url.pathname + url.hash + url.search, {
69
- overwriteLastHistoryEntry: this.action === "replace",
70
- }).catch(console.error);
71
- this.progress = 0;
72
- this.requestInFlight = true;
73
- }
74
- }
75
- }
76
- getCachedSnapshot() {
77
- const snapshot = this.controller.getCachedSnapshotForLocation(this.location);
78
- if (snapshot) {
79
- if (this.action == "restore") {
80
- return snapshot;
81
- }
82
- }
83
- }
84
- hasCachedSnapshot() {
85
- return this.getCachedSnapshot() != null;
86
- }
87
- loadCachedSnapshot() {
88
- // no-op since issueRequest calls navigate which handles all of this already
89
- return;
90
- }
91
- loadResponse() {
92
- this.render(async () => {
93
- if (!this.renderFn)
94
- throw new Error("Render details not set before rendering");
95
- this.cacheSnapshot();
96
- await this.renderFn();
97
- this.complete();
98
- });
99
- }
100
- // HTTP request delegate
101
- /*
102
- requestStarted() {
103
- this.recordTimingMetric(TimingMetric.requestStart);
104
- this.adapter.visitRequestStarted(this);
105
- }
106
-
107
- requestProgressed(progress: number) {
108
- this.progress = progress;
109
- if (this.adapter.visitRequestProgressed) {
110
- this.adapter.visitRequestProgressed(this);
111
- }
112
- }
113
-
114
- requestCompletedWithResponse(
115
- response: string,
116
- redirectedToLocation?: Location
117
- ) {
118
- this.response = response;
119
- this.redirectedToLocation = redirectedToLocation;
120
- this.adapter.visitRequestCompleted(this);
121
- }
122
-
123
- requestFailedWithStatusCode(statusCode: number, response?: string) {
124
- this.response = response;
125
- this.adapter.visitRequestFailedWithStatusCode(this, statusCode);
126
- }
127
-
128
- requestFinished() {
129
- this.recordTimingMetric(TimingMetric.requestEnd);
130
- this.adapter.visitRequestFinished(this);
131
- }
132
- */
133
- // Instrumentation
134
- recordTimingMetric(metric) {
135
- this.timingMetrics[metric] = new Date().getTime();
136
- }
137
- getTimingMetrics() {
138
- return { ...this.timingMetrics };
139
- }
140
- // Private
141
- shouldIssueRequest() {
142
- return this.action == "restore" ? !this.hasCachedSnapshot() : true;
143
- }
144
- cacheSnapshot() {
145
- if (!this.snapshotCached) {
146
- this.controller.cacheSnapshot();
147
- this.snapshotCached = true;
148
- }
149
- }
150
- render(callback) {
151
- this.cancelRender();
152
- this.frame = requestAnimationFrame(() => {
153
- delete this.frame;
154
- callback.call(this);
155
- });
156
- }
157
- cancelRender() {
158
- if (this.frame) {
159
- cancelAnimationFrame(this.frame);
160
- delete this.frame;
161
- }
162
- }
163
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"+config.d.ts","sourceRoot":"","sources":["../../../proxy/pages/+config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,wBAYgC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../proxy/pages/Page.tsx"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,UAAU,IAAI,SAE3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"onBeforeRender.d.ts","sourceRoot":"","sources":["../../../proxy/pages/onBeforeRender.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,wBAA8B,cAAc,CAAC,WAAW,EAAE,sBAAsB;;eAI/E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"onRenderClient.d.ts","sourceRoot":"","sources":["../../../proxy/pages/onRenderClient.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AASjE,wBAA8B,cAAc,CAC1C,WAAW,EAAE,sBAAsB,iBA4DpC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"onRenderHtml.d.ts","sourceRoot":"","sources":["../../../proxy/pages/onRenderHtml.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAKjE,wBAA8B,YAAY,CACxC,WAAW,EAAE,sBAAsB;;;;;;GAkEpC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"+config.d.ts","sourceRoot":"","sources":["../../../../proxy/pages/restorationVisit/+config.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,wBAcgC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"onRenderClient.d.ts","sourceRoot":"","sources":["../../../../proxy/pages/restorationVisit/onRenderClient.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAO9E,wBAA8B,cAAc,CAC1C,WAAW,EAAE,gCAAgC,iBA2C9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../proxy/pages/restorationVisit/route.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,UAAU,KAAK,YAE5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"+config.d.ts","sourceRoot":"","sources":["../../renderer/+config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAcgC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../renderer/_error/Page.tsx"],"names":[],"mappings":";AAAA,eAAe,IAAI,CAAC;AAIpB,iBAAS,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,eAiBzE"}