forgebook 0.1.5 → 0.1.6
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 +7 -1
- package/dist/bin/forgebook/agentClient.d.ts.map +1 -1
- package/dist/bin/forgebook/agentClient.js +2 -2
- package/dist/bin/forgebook/agentClient.js.map +1 -1
- package/dist/bin/forgebook/agentLoopCommands.d.mts.map +1 -1
- package/dist/bin/forgebook/agentLoopCommands.mjs +24 -3
- package/dist/bin/forgebook/agentLoopCommands.mjs.map +1 -1
- package/dist/bin/forgebook/agents.md +3 -2
- package/dist/bin/forgebook/errorsRun.d.ts.map +1 -1
- package/dist/bin/forgebook/errorsRun.js +14 -1
- package/dist/bin/forgebook/errorsRun.js.map +1 -1
- package/dist/bin/forgebook/importers/storybook.d.ts.map +1 -1
- package/dist/bin/forgebook/importers/storybook.js +41 -7
- package/dist/bin/forgebook/importers/storybook.js.map +1 -1
- package/dist/bin/forgebook/initCommands.d.mts.map +1 -1
- package/dist/bin/forgebook/initCommands.mjs +5 -2
- package/dist/bin/forgebook/initCommands.mjs.map +1 -1
- package/dist/bin/forgebook/mcpTools.d.ts.map +1 -1
- package/dist/bin/forgebook/mcpTools.js +14 -2
- package/dist/bin/forgebook/mcpTools.js.map +1 -1
- package/dist/bin/forgebook/touchWindowRun.d.ts.map +1 -1
- package/dist/bin/forgebook/touchWindowRun.js +2 -1
- package/dist/bin/forgebook/touchWindowRun.js.map +1 -1
- package/dist/src/catalogue.d.ts +3 -1
- package/dist/src/catalogue.d.ts.map +1 -1
- package/dist/src/catalogue.js +2 -1
- package/dist/src/catalogue.js.map +1 -1
- package/dist/src/controlKeys.d.ts +4 -4
- package/dist/src/controlKeys.d.ts.map +1 -1
- package/dist/src/controlKeys.js +12 -8
- package/dist/src/controlKeys.js.map +1 -1
- package/dist/src/frame/frameView.d.ts.map +1 -1
- package/dist/src/frame/frameView.js +7 -2
- package/dist/src/frame/frameView.js.map +1 -1
- package/dist/src/frame/spillOutline.d.ts.map +1 -1
- package/dist/src/frame/spillOutline.js +2 -0
- package/dist/src/frame/spillOutline.js.map +1 -1
- package/dist/src/frame/touchLayer.d.ts.map +1 -1
- package/dist/src/frame/touchLayer.js +90 -40
- package/dist/src/frame/touchLayer.js.map +1 -1
- package/dist/src/frame/touchScroll.d.ts.map +1 -1
- package/dist/src/frame/touchScroll.js +29 -12
- package/dist/src/frame/touchScroll.js.map +1 -1
- package/dist/src/namedViews.d.ts +10 -1
- package/dist/src/namedViews.d.ts.map +1 -1
- package/dist/src/namedViews.js +24 -0
- package/dist/src/namedViews.js.map +1 -1
- package/dist/src/shell/ComponentPage.d.ts +6 -1
- package/dist/src/shell/ComponentPage.d.ts.map +1 -1
- package/dist/src/shell/ComponentPage.js +11 -3
- package/dist/src/shell/ComponentPage.js.map +1 -1
- package/dist/src/shell/Example.d.ts +5 -0
- package/dist/src/shell/Example.d.ts.map +1 -1
- package/dist/src/shell/Example.js +18 -2
- package/dist/src/shell/Example.js.map +1 -1
- package/dist/src/shell/FrameView.d.ts +7 -0
- package/dist/src/shell/FrameView.d.ts.map +1 -1
- package/dist/src/shell/FrameView.js +12 -0
- package/dist/src/shell/FrameView.js.map +1 -1
- package/dist/src/shell/InfoTip.d.ts.map +1 -1
- package/dist/src/shell/InfoTip.js +3 -1
- package/dist/src/shell/InfoTip.js.map +1 -1
- package/dist/src/shell/NamedViews.d.ts.map +1 -1
- package/dist/src/shell/NamedViews.js +2 -2
- package/dist/src/shell/NamedViews.js.map +1 -1
- package/dist/src/shell/PinnedControl.d.ts.map +1 -1
- package/dist/src/shell/PinnedControl.js +12 -1
- package/dist/src/shell/PinnedControl.js.map +1 -1
- package/dist/src/shell/Shell.d.ts.map +1 -1
- package/dist/src/shell/Shell.js +20 -2
- package/dist/src/shell/Shell.js.map +1 -1
- package/dist/src/shell/UsedIn.d.ts +4 -3
- package/dist/src/shell/UsedIn.d.ts.map +1 -1
- package/dist/src/shell/UsedIn.js +11 -7
- package/dist/src/shell/UsedIn.js.map +1 -1
- package/dist/src/shell/ViewMenu.d.ts +4 -2
- package/dist/src/shell/ViewMenu.d.ts.map +1 -1
- package/dist/src/shell/ViewMenu.js +7 -3
- package/dist/src/shell/ViewMenu.js.map +1 -1
- package/dist/src/shell/controlCycle.d.ts.map +1 -1
- package/dist/src/shell/controlCycle.js +3 -2
- package/dist/src/shell/controlCycle.js.map +1 -1
- package/dist/src/shell/shell.css +8 -0
- package/dist/src/shell/storyTouch.d.ts +52 -0
- package/dist/src/shell/storyTouch.d.ts.map +1 -0
- package/dist/src/shell/storyTouch.js +33 -0
- package/dist/src/shell/storyTouch.js.map +1 -0
- package/dist/src/shell/strings.d.ts +2 -2
- package/dist/src/shell/strings.d.ts.map +1 -1
- package/dist/src/shell/strings.js +2 -2
- package/dist/src/shell/strings.js.map +1 -1
- package/dist/src/shell/useFold.d.ts.map +1 -1
- package/dist/src/shell/useFold.js +2 -0
- package/dist/src/shell/useFold.js.map +1 -1
- package/dist/src/shell/useFrameMessages.d.ts +5 -2
- package/dist/src/shell/useFrameMessages.d.ts.map +1 -1
- package/dist/src/shell/useFrameMessages.js +1 -1
- package/dist/src/shell/useFrameMessages.js.map +1 -1
- package/dist/src/shell/useLiveView.d.ts +8 -1
- package/dist/src/shell/useLiveView.d.ts.map +1 -1
- package/dist/src/shell/useLiveView.js +14 -4
- package/dist/src/shell/useLiveView.js.map +1 -1
- package/dist/src/shell/useWorstCase.d.ts +2 -2
- package/dist/src/shell/useWorstCase.d.ts.map +1 -1
- package/dist/src/shell/useWorstCase.js +10 -3
- package/dist/src/shell/useWorstCase.js.map +1 -1
- package/dist/src/storyTree.d.ts +2 -0
- package/dist/src/storyTree.d.ts.map +1 -1
- package/dist/src/storyTree.js +1 -0
- package/dist/src/storyTree.js.map +1 -1
- package/dist/src/switches.d.ts +16 -0
- package/dist/src/switches.d.ts.map +1 -1
- package/dist/src/switches.js +21 -3
- package/dist/src/switches.js.map +1 -1
- package/dist/src/viewState.d.ts +24 -1
- package/dist/src/viewState.d.ts.map +1 -1
- package/dist/src/viewState.js +31 -0
- package/dist/src/viewState.js.map +1 -1
- package/dist/src/vite/agentRoutes.d.ts +7 -0
- package/dist/src/vite/agentRoutes.d.ts.map +1 -1
- package/dist/src/vite/agentRoutes.js +15 -2
- package/dist/src/vite/agentRoutes.js.map +1 -1
- package/dist/src/vite/forgebookPlugin.d.ts.map +1 -1
- package/dist/src/vite/forgebookPlugin.js +11 -16
- package/dist/src/vite/forgebookPlugin.js.map +1 -1
- package/dist/src/vite/indexStoryFile.d.ts +1 -1
- package/dist/src/vite/indexStoryFile.d.ts.map +1 -1
- package/dist/src/vite/indexStoryFile.js +14 -1
- package/dist/src/vite/indexStoryFile.js.map +1 -1
- package/dist/src/vite/mcpProtocol.d.ts.map +1 -1
- package/dist/src/vite/mcpProtocol.js +9 -1
- package/dist/src/vite/mcpProtocol.js.map +1 -1
- package/dist/src/vite/storyFilesModule.d.ts +17 -11
- package/dist/src/vite/storyFilesModule.d.ts.map +1 -1
- package/dist/src/vite/storyFilesModule.js +22 -10
- package/dist/src/vite/storyFilesModule.js.map +1 -1
- package/dist/src/vite/touchMedia.d.ts.map +1 -1
- package/dist/src/vite/touchMedia.js +128 -33
- package/dist/src/vite/touchMedia.js.map +1 -1
- package/dist/src/vite/usageGraph.d.ts.map +1 -1
- package/dist/src/vite/usageGraph.js +25 -1
- package/dist/src/vite/usageGraph.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The keys that cycle the toolbar's controls: one character per control, pressed without a modifier (Shift goes the
|
|
3
|
-
* other way), ignored while typing, as `/` and `[` `]` are.
|
|
3
|
+
* other way), ignored while typing, as `/` and `[` `]` are; a letter, never one of the shell's own keys.
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
* The catalogue sets the key of any control, its switches and Forgebook's own alike (`keys` in its configuration, by
|
|
7
7
|
* control id; `false` takes one away); the ready-made switches have one by default. A reader changes or removes one
|
|
8
|
-
* for themself (kept in their browser), over the catalogue's. A key is one
|
|
9
|
-
*
|
|
8
|
+
* for themself (kept in their browser), over the catalogue's. A key is one letter (the shell's own keys are not letters),
|
|
9
|
+
* never one another control has. Pure: keys and a view in, keys or a view out.
|
|
10
10
|
*
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
@@ -18,7 +18,7 @@ export type ControlKeys = Readonly<Record<string, string>>;
|
|
|
18
18
|
/** A reader's own keys, by control id: a key, or `null` for one they took away. */
|
|
19
19
|
export type ReaderKeys = Readonly<Record<string, string | null>>;
|
|
20
20
|
/**
|
|
21
|
-
* A key as the shell keeps it: one
|
|
21
|
+
* A key as the shell keeps it: one letter, lower case; none when the text is not one.
|
|
22
22
|
*
|
|
23
23
|
* @param text - the key as written or pressed.
|
|
24
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlKeys.d.ts","sourceRoot":"","sources":["../../src/controlKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,mGAAmG;AACnG,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKzD,CAAC;
|
|
1
|
+
{"version":3,"file":"controlKeys.d.ts","sourceRoot":"","sources":["../../src/controlKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,mGAAmG;AACnG,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKzD,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3D,mFAAmF;AACnF,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAI7C,CAAC;AAeF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,SAAS,MAAM,EAAE,EAC7B,MAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAM,KACjD,WAAW,GAAG,MAkBhB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,WAAW,WAAW,EAAE,QAAQ,UAAU,KAAG,WAInE,CAAC;AAEL;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,WAAW,EACtB,QAAQ,UAAU,EAClB,IAAI,MAAM,EACV,KAAK,MAAM,GAAG,IAAI,KACjB,UAAU,GAAG,MAQf,CAAC;AAEF,0CAA0C;AAC1C,MAAM,MAAM,QAAQ,GAAG;IACrB,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,WAAW,EACjB,OAAO,QAAQ,KACd;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;CAAE,GAAG,SAKnD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,EAAE,QAAQ,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAG,MAI9F,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,UAAU,KAAG,MAAM,EAA6C,CAAC"}
|
package/dist/src/controlKeys.js
CHANGED
|
@@ -5,16 +5,15 @@ export const DEFAULT_KEYS = {
|
|
|
5
5
|
lang: "l",
|
|
6
6
|
dir: "d"
|
|
7
7
|
};
|
|
8
|
-
/** The keys the shell answers already: the search, the previous and the next story. */
|
|
9
|
-
const RESERVED_KEYS = ["/", "[", "]"];
|
|
10
8
|
/**
|
|
11
|
-
* A key as the shell keeps it: one
|
|
9
|
+
* A key as the shell keeps it: one letter, lower case; none when the text is not one.
|
|
12
10
|
*
|
|
13
11
|
* @param text - the key as written or pressed.
|
|
14
12
|
*/
|
|
15
13
|
export const keyOf = (text) => {
|
|
16
14
|
const key = text.toLowerCase();
|
|
17
|
-
|
|
15
|
+
// a letter only: Shift turns a digit or a sign into another character, and the cycle could not go back
|
|
16
|
+
return /^\p{L}$/u.test(key) ? key : undefined;
|
|
18
17
|
};
|
|
19
18
|
/**
|
|
20
19
|
* Why a key cannot be given to a control, or none.
|
|
@@ -25,9 +24,7 @@ export const keyOf = (text) => {
|
|
|
25
24
|
*/
|
|
26
25
|
const keyProblem = (key, id, keys) => {
|
|
27
26
|
if (keyOf(key) !== key)
|
|
28
|
-
return `"${key}" is not one
|
|
29
|
-
if (RESERVED_KEYS.includes(key))
|
|
30
|
-
return `"${key}" is the shell's own`;
|
|
27
|
+
return `"${key}" is not one letter in lower case`;
|
|
31
28
|
const holder = Object.entries(keys).find(([other, held]) => other !== id && held === key)?.[0];
|
|
32
29
|
return holder === undefined ? undefined : `"${key}" is ${holder}'s already`;
|
|
33
30
|
};
|
|
@@ -43,8 +40,9 @@ export const catalogueKeys = (controlIds, set = {}) => {
|
|
|
43
40
|
if (unknown !== undefined)
|
|
44
41
|
return `The keys name "${unknown}", which is no control of the catalogue`;
|
|
45
42
|
const keys = {};
|
|
43
|
+
// the keys the catalogue sets first, each checked against the others; then a default where its key is still free
|
|
46
44
|
for (const id of controlIds) {
|
|
47
|
-
const key = set[id]
|
|
45
|
+
const key = set[id];
|
|
48
46
|
if (key === false || key === undefined)
|
|
49
47
|
continue;
|
|
50
48
|
const problem = keyProblem(key, id, keys);
|
|
@@ -52,6 +50,12 @@ export const catalogueKeys = (controlIds, set = {}) => {
|
|
|
52
50
|
return `The key of ${id}: ${problem}`;
|
|
53
51
|
keys[id] = key;
|
|
54
52
|
}
|
|
53
|
+
for (const id of controlIds) {
|
|
54
|
+
const key = DEFAULT_KEYS[id];
|
|
55
|
+
if (set[id] !== undefined || key === undefined || keyProblem(key, id, keys) !== undefined)
|
|
56
|
+
continue;
|
|
57
|
+
keys[id] = key;
|
|
58
|
+
}
|
|
55
59
|
return keys;
|
|
56
60
|
};
|
|
57
61
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlKeys.js","sourceRoot":"","sources":["../../src/controlKeys.ts"],"names":[],"mappings":"AAcA,mGAAmG;AACnG,MAAM,CAAC,MAAM,YAAY,GAAqC;IAC5D,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;CACT,CAAC;
|
|
1
|
+
{"version":3,"file":"controlKeys.js","sourceRoot":"","sources":["../../src/controlKeys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameView.d.ts","sourceRoot":"","sources":["../../../src/frame/frameView.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,KAAK,QAAQ,EAAY,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA8E1E;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,WAAW,EACjB,MAAM,QAAQ,EACd,WAAW,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,WAAW,CAAC,KAC3D,
|
|
1
|
+
{"version":3,"file":"frameView.d.ts","sourceRoot":"","sources":["../../../src/frame/frameView.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,KAAK,QAAQ,EAAY,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA8E1E;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,WAAW,EACjB,MAAM,QAAQ,EACd,WAAW,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,WAAW,CAAC,KAC3D,IAeF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,WAAW,EAAE,MAAM,SAAS,KAAG,MAAM,EAIvE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAU,UAAU,QAAQ,EAAE,MAAM,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAc1F,CAAC"}
|
|
@@ -98,10 +98,15 @@ const applySwitch = (root, each, value) => {
|
|
|
98
98
|
export const applyView = (root, view, catalogue) => {
|
|
99
99
|
for (const each of catalogue.switches)
|
|
100
100
|
applySwitch(root, each, view.switches[each.id]);
|
|
101
|
-
// a language read right to left draws the story right to left
|
|
101
|
+
// a language read right to left draws the story right to left; leaving it gives the root its own direction back,
|
|
102
|
+
// unless a switch writes `dir` itself (the direction switch, applied above)
|
|
102
103
|
const language = switchWithRole(catalogue.switches, "language");
|
|
103
|
-
|
|
104
|
+
const isRightToLeft = language !== undefined && switchValueOf(language, view.switches[language.id])?.isRightToLeft === true;
|
|
105
|
+
const isDirWritten = catalogue.switches.some((each) => each.apply.kind === "attribute" && each.apply.name === "dir");
|
|
106
|
+
if (isRightToLeft)
|
|
104
107
|
root.setAttribute("dir", "rtl");
|
|
108
|
+
else if (!isDirWritten)
|
|
109
|
+
root.removeAttribute("dir");
|
|
105
110
|
root.style.fontSize = `${view.text}%`;
|
|
106
111
|
const backdrop = catalogue.backdrops.find((each) => each.id === view.backdrop);
|
|
107
112
|
applyBackdrop(root.ownerDocument, backdropSheet(backdrop, schemeOf(view, catalogue.switches)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameView.js","sourceRoot":"","sources":["../../../src/frame/frameView.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"frameView.js","sourceRoot":"","sources":["../../../src/frame/frameView.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spillOutline.d.ts","sourceRoot":"","sources":["../../../src/frame/spillOutline.ts"],"names":[],"mappings":"AAyBA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,QAAQ,EAClB,cAAc,MAAM,EACpB,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAC/B,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"spillOutline.d.ts","sourceRoot":"","sources":["../../../src/frame/spillOutline.ts"],"names":[],"mappings":"AAyBA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,QAAQ,EAClB,cAAc,MAAM,EACpB,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAC/B,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAiD1B,CAAC"}
|
|
@@ -55,6 +55,8 @@ export const spillOutline = (document, rootSelector, onCount) => {
|
|
|
55
55
|
characterData: true,
|
|
56
56
|
attributeFilter: ["class", "style", "hidden"]
|
|
57
57
|
});
|
|
58
|
+
// the root's direction, text size and switches (its attributes) change the story's layout without touching its body
|
|
59
|
+
mutations.observe(document.documentElement, { attributes: true });
|
|
58
60
|
const resizes = new ResizeObserver(schedule);
|
|
59
61
|
resizes.observe(document.body);
|
|
60
62
|
schedule();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spillOutline.js","sourceRoot":"","sources":["../../../src/frame/spillOutline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,kEAAkE;AAClE,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAE/C,oDAAoD;AACpD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAEzC,yCAAyC;AACzC,MAAM,WAAW,GACf,IAAI,eAAe,qDAAqD;IACxE,wFAAwF,CAAC;AAE3F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,QAAkB,EAClB,YAAoB,EACpB,OAAgC,EACL,EAAE;IAC7B,IAAI,IAA8B,CAAC;IACnC,MAAM,KAAK,GAAG,GAAiB,EAAE;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;QACpB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,SAA6B,CAAC;QAClC,IAAI,OAA2B,CAAC;QAChC,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,OAAO,GAAG,SAAS,CAAC;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC;YAC/D,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChC,SAAS,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,0FAA0F;QAC1F,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,OAAO,KAAK,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,sFAAsF;QACtF,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,QAAQ,EAAE,CAAC;QACX,OAAO,GAAS,EAAE;YAChB,SAAS,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,OAAO,KAAK,SAAS;gBAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACzD,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,eAAe,GAAG,CAAC;gBACrE,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,CAAC,IAAa,EAAQ,EAAE;QAC7B,IAAI,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,GAAG,KAAK,EAAE,CAAC;aAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,EAAE,CAAC;YACP,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"spillOutline.js","sourceRoot":"","sources":["../../../src/frame/spillOutline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,kEAAkE;AAClE,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAE/C,oDAAoD;AACpD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAEzC,yCAAyC;AACzC,MAAM,WAAW,GACf,IAAI,eAAe,qDAAqD;IACxE,wFAAwF,CAAC;AAE3F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,QAAkB,EAClB,YAAoB,EACpB,OAAgC,EACL,EAAE;IAC7B,IAAI,IAA8B,CAAC;IACnC,MAAM,KAAK,GAAG,GAAiB,EAAE;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;QACpB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,SAA6B,CAAC;QAClC,IAAI,OAA2B,CAAC;QAChC,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,OAAO,GAAG,SAAS,CAAC;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC;YAC/D,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChC,SAAS,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,0FAA0F;QAC1F,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,OAAO,KAAK,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,sFAAsF;QACtF,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;SAC9C,CAAC,CAAC;QACH,oHAAoH;QACpH,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,QAAQ,EAAE,CAAC;QACX,OAAO,GAAS,EAAE;YAChB,SAAS,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,OAAO,KAAK,SAAS;gBAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACzD,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,eAAe,GAAG,CAAC;gBACrE,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,CAAC,IAAa,EAAQ,EAAE;QAC7B,IAAI,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,GAAG,KAAK,EAAE,CAAC;aAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,EAAE,CAAC;YACP,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"touchLayer.d.ts","sourceRoot":"","sources":["../../../src/frame/touchLayer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"touchLayer.d.ts","sourceRoot":"","sources":["../../../src/frame/touchLayer.ts"],"names":[],"mappings":"AAkdA;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,KAAG,IAehD,CAAC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* starts scrolling, when the pointer is cancelled as the browser cancels it (`touchScroll.ts`); a lift sends
|
|
8
8
|
* `pointerup` and `touchend`. A tap then sends the mouse's compatibility events and its own click of the `touch` type
|
|
9
9
|
* in place of the real one, so a button, a link or a checkbox reacts as it would; a press held half a second sends `contextmenu`. A moving mouse with
|
|
10
|
-
* no button down sends nothing: a finger does not hover. Shift fixes a centre
|
|
10
|
+
* no button down sends nothing: a finger does not hover. Shift fixes a centre beside the mouse (the second finger shows 80 px to its left); a press then puts a
|
|
11
11
|
* second finger mirrored around it, so dragging pinches and rotates. The real cursor is hidden and the fingers are
|
|
12
12
|
* dots (`touchDots.ts`). While it is on, `navigator.maxTouchPoints` and `ontouchstart` say touch, and capturing a
|
|
13
13
|
* simulated pointer works. A simulation: the events are not trusted, so the browser's own scrolling, focus from a
|
|
@@ -18,25 +18,27 @@
|
|
|
18
18
|
import { isRealTouchWindow } from "../realTouch.js";
|
|
19
19
|
import { touchDots } from "./touchDots.js";
|
|
20
20
|
import { sendClick, sendMouse, sendPointer, sendTouch } from "./touchEvents.js";
|
|
21
|
-
import {
|
|
21
|
+
import { dragAxis, isDragging, LONG_PRESS_MS, mirroredFinger } from "./touchGesture.js";
|
|
22
22
|
import { endPan, panBy, panOf } from "./touchScroll.js";
|
|
23
23
|
/** The root's attribute that turns the simulation on. */
|
|
24
24
|
const TOUCH_ATTRIBUTE = "data-forgebook-touch";
|
|
25
25
|
/** The simulated pointers' ids: apart from the real mouse's, so the browser never confuses them. */
|
|
26
26
|
const FINGER_IDS = [100, 101];
|
|
27
|
-
/**
|
|
28
|
-
const
|
|
27
|
+
/** How far apart two fingers start, in CSS px: Shift fixes the centre half of it to the left of the mouse. */
|
|
28
|
+
const START_SPREAD_PX = 80;
|
|
29
|
+
/** A finger held still longer than this before it lifts, in ms, lifts without a fling. */
|
|
30
|
+
const STILL_MS = 80;
|
|
29
31
|
/** The real events that never reach the story while touch is simulated (the hover a finger does not have). */
|
|
30
32
|
const SWALLOWED = ["mousedown", "mouseup", "mousemove", "mouseover", "mouseout", "mouseenter", "mouseleave"];
|
|
31
33
|
/** The real pointer events that never reach the story: the fingers send their own. */
|
|
32
34
|
const SWALLOWED_POINTER = ["pointerover", "pointerout", "pointerenter", "pointerleave"];
|
|
33
35
|
/**
|
|
34
|
-
* The two-finger centre
|
|
36
|
+
* The two-finger centre Shift fixes when it goes down with the mouse at a point: half the fingers' spread to its left,
|
|
37
|
+
* so the second finger shows at once beside the first, and moves mirrored from then on.
|
|
35
38
|
*
|
|
36
|
-
* @param
|
|
37
|
-
* @param point - where the press is.
|
|
39
|
+
* @param point - where the mouse is.
|
|
38
40
|
*/
|
|
39
|
-
const
|
|
41
|
+
const shiftCenter = (point) => ({ x: point.x - START_SPREAD_PX / 2, y: point.y });
|
|
40
42
|
/**
|
|
41
43
|
* The fingers' dots: the fingers of a press, or the mouse (and the second finger to come, with Shift) between presses.
|
|
42
44
|
*
|
|
@@ -52,10 +54,8 @@ const drawDots = (state) => {
|
|
|
52
54
|
state.dots.draw([]);
|
|
53
55
|
return;
|
|
54
56
|
}
|
|
55
|
-
// the second finger where a press will put it:
|
|
56
|
-
const second = center === undefined
|
|
57
|
-
? []
|
|
58
|
-
: [{ point: mirroredFinger(spreadCenter(center, mouse), mouse), isPressed: false }];
|
|
57
|
+
// the second finger where a press will put it: mirrored around Shift's centre
|
|
58
|
+
const second = center === undefined ? [] : [{ point: mirroredFinger(center, mouse), isPressed: false }];
|
|
59
59
|
state.dots.draw([{ point: mouse, isPressed: false }, ...second]);
|
|
60
60
|
};
|
|
61
61
|
/**
|
|
@@ -80,8 +80,7 @@ const pressDown = (state, event) => {
|
|
|
80
80
|
state.stopFling();
|
|
81
81
|
const point = { x: event.clientX, y: event.clientY };
|
|
82
82
|
const target = event.target instanceof Element ? event.target : state.document.documentElement;
|
|
83
|
-
const
|
|
84
|
-
const center = shiftCenter === undefined ? undefined : spreadCenter(shiftCenter, point);
|
|
83
|
+
const center = event.shiftKey ? (state.center ?? shiftCenter(point)) : undefined;
|
|
85
84
|
// the first finger goes down where the real press did, on the element the browser found under it
|
|
86
85
|
const fingers = [
|
|
87
86
|
{ id: FINGER_IDS[0], isPrimary: true, point, startTarget: target, captureTarget: target }
|
|
@@ -175,18 +174,25 @@ const pressMove = (state, press, event) => {
|
|
|
175
174
|
*
|
|
176
175
|
* @param state - the simulation's state.
|
|
177
176
|
* @param press - the press.
|
|
178
|
-
* @param isCancel - whether the browser cancelled the real pointer.
|
|
177
|
+
* @param isCancel - whether the browser cancelled the real pointer, or the layer stops mid-press.
|
|
178
|
+
* @param time - when, as the events' `timeStamp`.
|
|
179
179
|
*/
|
|
180
|
-
const pressUp = (state, press, isCancel) => {
|
|
180
|
+
const pressUp = (state, press, isCancel, time) => {
|
|
181
181
|
window.clearTimeout(press.timer);
|
|
182
|
-
|
|
182
|
+
// a finger that stopped before it lifted throws nothing
|
|
183
|
+
if (time - press.last.time > STILL_MS)
|
|
184
|
+
press.speed = { x: 0, y: 0 };
|
|
183
185
|
if (press.pan === undefined) {
|
|
186
|
+
// the press is still the layer's while its pointer ends: a story's pointerup may release its capture
|
|
184
187
|
for (const finger of press.fingers) {
|
|
185
188
|
sendPointer(isCancel ? "pointercancel" : "pointerup", finger, false);
|
|
189
|
+
// a touch pointer is captured from its press on (by its target, or where the story moved it), and lost here
|
|
190
|
+
sendPointer("lostpointercapture", finger, false);
|
|
186
191
|
sendPointer("pointerout", finger, false);
|
|
187
192
|
sendPointer("pointerleave", finger, false);
|
|
188
193
|
}
|
|
189
194
|
}
|
|
195
|
+
state.press = undefined;
|
|
190
196
|
const isEndCancelled = !sendTouch(isCancel ? "touchcancel" : "touchend", [], press.fingers, press.pan === undefined);
|
|
191
197
|
if (press.pan !== undefined)
|
|
192
198
|
state.stopFling = endPan(press.pan, press.speed);
|
|
@@ -201,15 +207,21 @@ const pressUp = (state, press, isCancel) => {
|
|
|
201
207
|
drawDots(state);
|
|
202
208
|
};
|
|
203
209
|
/**
|
|
204
|
-
* A real event the
|
|
205
|
-
* drag's or a long press's is none), a text selection or an image dragged by the finger, the right
|
|
210
|
+
* A real event the layer handles apart from the pointer's, before the story: the mouse's click (a tap's is sent again as
|
|
211
|
+
* a finger's, a drag's or a long press's is none), a text selection or an image dragged by the finger, the right
|
|
212
|
+
* button's menu. A click from the keyboard (Enter or Space on a button, Enter in a form) and the keyboard's menu key
|
|
213
|
+
* reach the story as they are: a finger changes nothing of the keyboard.
|
|
206
214
|
*
|
|
207
215
|
* @param state - the simulation's state.
|
|
208
216
|
* @param event - the real event.
|
|
209
|
-
* @returns whether
|
|
217
|
+
* @returns whether the event was one of them, handled here.
|
|
210
218
|
*/
|
|
211
|
-
const
|
|
219
|
+
const handledApart = (state, event) => {
|
|
220
|
+
const isMouseEvent = event instanceof MouseEvent;
|
|
212
221
|
if (event.type === "click") {
|
|
222
|
+
// a click the keyboard made has no press behind it (`detail` 0) and no tap waiting for it
|
|
223
|
+
if (state.tapper === undefined && isMouseEvent && event.detail === 0)
|
|
224
|
+
return true;
|
|
213
225
|
event.preventDefault();
|
|
214
226
|
event.stopImmediatePropagation();
|
|
215
227
|
const finger = state.tapper;
|
|
@@ -217,9 +229,14 @@ const blockedDefault = (state, event) => {
|
|
|
217
229
|
// after the real click's dispatch: cancelling it undoes a checkbox's toggle at its end, a click sent inside it too
|
|
218
230
|
const { target } = event;
|
|
219
231
|
if (finger !== undefined && target !== null)
|
|
220
|
-
window.setTimeout(() =>
|
|
232
|
+
state.clickTimer = window.setTimeout(() => {
|
|
233
|
+
state.clickTimer = undefined;
|
|
234
|
+
sendClick(target, finger);
|
|
235
|
+
}, 0);
|
|
221
236
|
return true;
|
|
222
237
|
}
|
|
238
|
+
if (event.type === "contextmenu" && !(isMouseEvent && event.button === 2))
|
|
239
|
+
return true;
|
|
223
240
|
if (event.type !== "selectstart" && event.type !== "dragstart" && event.type !== "contextmenu")
|
|
224
241
|
return false;
|
|
225
242
|
event.preventDefault();
|
|
@@ -227,35 +244,52 @@ const blockedDefault = (state, event) => {
|
|
|
227
244
|
return true;
|
|
228
245
|
};
|
|
229
246
|
/**
|
|
230
|
-
*
|
|
231
|
-
* between presses.
|
|
247
|
+
* The mouse moves: a press under way follows it (or lifts, when its button came up out of sight), the dots follow it
|
|
248
|
+
* between presses, and Shift held fixes the two-finger centre.
|
|
232
249
|
*
|
|
233
250
|
* @param state - the simulation's state.
|
|
234
|
-
* @param event - the real pointer
|
|
251
|
+
* @param event - the real pointer's move.
|
|
235
252
|
*/
|
|
236
|
-
const
|
|
253
|
+
const pointerMove = (state, event) => {
|
|
237
254
|
const { press } = state;
|
|
238
|
-
if (
|
|
239
|
-
|
|
240
|
-
|
|
255
|
+
if (press !== undefined && (event.buttons & 1) === 0) {
|
|
256
|
+
// the button came up where the frame could not see it (outside the window): the finger lifts here
|
|
257
|
+
state.mouse = { x: event.clientX, y: event.clientY };
|
|
258
|
+
pressUp(state, press, false, event.timeStamp);
|
|
241
259
|
}
|
|
242
|
-
else if (
|
|
243
|
-
pressDown(state, event);
|
|
244
|
-
else if (event.type === "pointermove" && press !== undefined)
|
|
260
|
+
else if (press !== undefined)
|
|
245
261
|
pressMove(state, press, event);
|
|
246
|
-
else
|
|
262
|
+
else {
|
|
247
263
|
// Shift read from the pointer, which carries it even when the frame has no focus (the shell usually does): held,
|
|
248
|
-
// it fixes the two-finger centre
|
|
264
|
+
// it fixes the two-finger centre beside the mouse
|
|
249
265
|
if (!event.shiftKey)
|
|
250
266
|
state.center = undefined;
|
|
251
267
|
else
|
|
252
|
-
state.center ??= state.mouse ?? { x: event.clientX, y: event.clientY };
|
|
268
|
+
state.center ??= shiftCenter(state.mouse ?? { x: event.clientX, y: event.clientY });
|
|
253
269
|
state.mouse = { x: event.clientX, y: event.clientY };
|
|
254
270
|
drawDots(state);
|
|
255
271
|
}
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* What the simulation does with one real pointer event: the press, the move and the lift of the fingers, the dots
|
|
275
|
+
* between presses.
|
|
276
|
+
*
|
|
277
|
+
* @param state - the simulation's state.
|
|
278
|
+
* @param event - the real pointer event.
|
|
279
|
+
*/
|
|
280
|
+
const pointerInput = (state, event) => {
|
|
281
|
+
const { press } = state;
|
|
282
|
+
if (event.type === "pointermove")
|
|
283
|
+
pointerMove(state, event);
|
|
284
|
+
else if (event.type === "pointerout" && event.relatedTarget === null && press === undefined) {
|
|
285
|
+
state.mouse = undefined;
|
|
286
|
+
drawDots(state);
|
|
287
|
+
}
|
|
288
|
+
else if (event.type === "pointerdown" && event.button === 0 && press === undefined)
|
|
289
|
+
pressDown(state, event);
|
|
256
290
|
else if ((event.type === "pointerup" || event.type === "pointercancel") && press !== undefined) {
|
|
257
291
|
state.mouse = { x: event.clientX, y: event.clientY };
|
|
258
|
-
pressUp(state, press, event.type === "pointercancel");
|
|
292
|
+
pressUp(state, press, event.type === "pointercancel", event.timeStamp);
|
|
259
293
|
}
|
|
260
294
|
};
|
|
261
295
|
/**
|
|
@@ -265,7 +299,7 @@ const pointerInput = (state, event) => {
|
|
|
265
299
|
* @param event - the real event (the story's own dispatched events are left alone).
|
|
266
300
|
*/
|
|
267
301
|
const intercept = (state, event) => {
|
|
268
|
-
if (!event.isTrusted ||
|
|
302
|
+
if (!event.isTrusted || handledApart(state, event))
|
|
269
303
|
return;
|
|
270
304
|
event.stopImmediatePropagation();
|
|
271
305
|
if (event instanceof PointerEvent)
|
|
@@ -290,8 +324,13 @@ const pretendTouch = (state) => {
|
|
|
290
324
|
has: proto.hasPointerCapture
|
|
291
325
|
};
|
|
292
326
|
const fingerOf = (id) => state.press?.fingers.find((finger) => finger.id === id);
|
|
327
|
+
// a simulated pointer's id never reaches the browser, which knows no such pointer: once its finger lifted, setting its
|
|
328
|
+
// capture fails as the browser fails it, releasing it does nothing
|
|
329
|
+
const isSimulated = (id) => FINGER_IDS.some((each) => each === id);
|
|
293
330
|
proto.setPointerCapture = function setPointerCapture(id) {
|
|
294
331
|
const finger = fingerOf(id);
|
|
332
|
+
if (finger === undefined && isSimulated(id))
|
|
333
|
+
throw new DOMException("No active pointer with the given id is found.", "NotFoundError");
|
|
295
334
|
if (finger === undefined) {
|
|
296
335
|
native.set.call(this, id);
|
|
297
336
|
return;
|
|
@@ -302,7 +341,8 @@ const pretendTouch = (state) => {
|
|
|
302
341
|
proto.releasePointerCapture = function releasePointerCapture(id) {
|
|
303
342
|
const finger = fingerOf(id);
|
|
304
343
|
if (finger === undefined) {
|
|
305
|
-
|
|
344
|
+
if (!isSimulated(id))
|
|
345
|
+
native.release.call(this, id);
|
|
306
346
|
return;
|
|
307
347
|
}
|
|
308
348
|
sendPointer("lostpointercapture", finger, true);
|
|
@@ -310,7 +350,9 @@ const pretendTouch = (state) => {
|
|
|
310
350
|
};
|
|
311
351
|
proto.hasPointerCapture = function hasPointerCapture(id) {
|
|
312
352
|
const finger = fingerOf(id);
|
|
313
|
-
|
|
353
|
+
if (finger === undefined)
|
|
354
|
+
return isSimulated(id) ? false : native.has.call(this, id);
|
|
355
|
+
return finger.captureTarget === this;
|
|
314
356
|
};
|
|
315
357
|
return () => {
|
|
316
358
|
Reflect.deleteProperty(view.navigator, "maxTouchPoints");
|
|
@@ -347,6 +389,7 @@ const startTouch = (document) => {
|
|
|
347
389
|
center: undefined,
|
|
348
390
|
press: undefined,
|
|
349
391
|
tapper: undefined,
|
|
392
|
+
clickTimer: undefined,
|
|
350
393
|
stopFling: () => undefined
|
|
351
394
|
};
|
|
352
395
|
const restore = pretendTouch(state);
|
|
@@ -355,7 +398,8 @@ const startTouch = (document) => {
|
|
|
355
398
|
const onKey = (event) => {
|
|
356
399
|
if (event.key !== "Shift" || state.press !== undefined)
|
|
357
400
|
return;
|
|
358
|
-
state.center =
|
|
401
|
+
state.center =
|
|
402
|
+
event.type === "keydown" && state.mouse !== undefined ? shiftCenter(state.mouse) : undefined;
|
|
359
403
|
drawDots(state);
|
|
360
404
|
};
|
|
361
405
|
const view = document.defaultView;
|
|
@@ -364,6 +408,12 @@ const startTouch = (document) => {
|
|
|
364
408
|
view?.addEventListener("keydown", onKey);
|
|
365
409
|
view?.addEventListener("keyup", onKey);
|
|
366
410
|
return () => {
|
|
411
|
+
// a press under way is cancelled, as the browser cancels a touch it takes over: its timers, its scroll's snapping
|
|
412
|
+
// and a tap's click to come end with it
|
|
413
|
+
if (state.press !== undefined)
|
|
414
|
+
pressUp(state, state.press, true, performance.now());
|
|
415
|
+
window.clearTimeout(state.clickTimer);
|
|
416
|
+
state.tapper = undefined;
|
|
367
417
|
for (const type of CAUGHT)
|
|
368
418
|
view?.removeEventListener(type, onEvent, { capture: true });
|
|
369
419
|
view?.removeEventListener("keydown", onKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"touchLayer.js","sourceRoot":"","sources":["../../../src/frame/touchLayer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"touchLayer.js","sourceRoot":"","sources":["../../../src/frame/touchLayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"touchScroll.d.ts","sourceRoot":"","sources":["../../../src/frame/touchScroll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAA0B,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAErF,gCAAgC;AAChC,MAAM,MAAM,GAAG,GAAG;IAChB,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"touchScroll.d.ts","sourceRoot":"","sources":["../../../src/frame/touchScroll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAA0B,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAErF,gCAAgC;AAChC,MAAM,MAAM,GAAG,GAAG;IAChB,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC,CAAC;AA0CF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,QAAQ,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,KAAG,GAAG,GAAG,SAQ9D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,GAAG,EAAE,MAAM,KAAK,EAAE,IAAI,KAAK,KAAG,IAKrD,CAAC;AAkDL;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,GAAG,EAAE,OAAO,KAAK,KAAG,CAAC,MAAM,IAAI,CAkB1D,CAAC"}
|
|
@@ -19,9 +19,16 @@ const SNAP_AIM_MS = 250;
|
|
|
19
19
|
* @param axis - the axis.
|
|
20
20
|
*/
|
|
21
21
|
const scrollsOn = (element, axis) => {
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
22
|
+
const property = axis === "x" ? "overflowX" : "overflowY";
|
|
23
|
+
const document = element.ownerDocument;
|
|
24
|
+
const overflow = getComputedStyle(element)[property];
|
|
25
|
+
// the document scrolls unless its root or its body hides its overflow (a story that locks it behind a dialog)
|
|
26
|
+
const isDocument = element === document.scrollingElement;
|
|
27
|
+
const isDocumentLocked = [document.documentElement, document.body].some((each) => {
|
|
28
|
+
const value = getComputedStyle(each)[property];
|
|
29
|
+
return value === "hidden" || value === "clip";
|
|
30
|
+
});
|
|
31
|
+
const isScrollable = isDocument ? !isDocumentLocked : overflow === "auto" || overflow === "scroll";
|
|
25
32
|
const size = axis === "x" ? element.scrollWidth - element.clientWidth : element.scrollHeight - element.clientHeight;
|
|
26
33
|
return isScrollable && size > 0;
|
|
27
34
|
};
|
|
@@ -84,7 +91,8 @@ const fling = (pan, speed) => {
|
|
|
84
91
|
let last = view.performance.now();
|
|
85
92
|
let frame = 0;
|
|
86
93
|
const step = (now) => {
|
|
87
|
-
|
|
94
|
+
// a frame's time may come before the time the fling started at
|
|
95
|
+
const ms = Math.max(0, now - last);
|
|
88
96
|
last = now;
|
|
89
97
|
pan.scroller.scrollBy({ left: -current.x * ms, top: -current.y * ms, behavior: "instant" });
|
|
90
98
|
current = { x: flungSpeed(current.x, ms), y: flungSpeed(current.y, ms) };
|
|
@@ -95,20 +103,28 @@ const fling = (pan, speed) => {
|
|
|
95
103
|
return () => view.cancelAnimationFrame(frame);
|
|
96
104
|
};
|
|
97
105
|
/**
|
|
98
|
-
* Where a snapping container's items
|
|
106
|
+
* Where a snapping container's items snap along an axis, in its scroll coordinates: its children that snap, each by
|
|
107
|
+
* its `scroll-snap-align` (start, center or end; the container's `scroll-padding` is not read).
|
|
99
108
|
*
|
|
100
109
|
* @param scroller - the container.
|
|
101
110
|
* @param axis - the axis.
|
|
102
111
|
*/
|
|
103
112
|
const snapPoints = (scroller, axis) => {
|
|
104
113
|
const box = scroller.getBoundingClientRect();
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
114
|
+
const room = axis === "x" ? scroller.clientWidth : scroller.clientHeight;
|
|
115
|
+
const scrolled = axis === "x" ? scroller.scrollLeft : scroller.scrollTop;
|
|
116
|
+
return [...scroller.children].flatMap((child) => {
|
|
117
|
+
const aligns = getComputedStyle(child).scrollSnapAlign.split(/\s+/);
|
|
118
|
+
// one value aligns both axes; two give the block axis (y) then the inline one (x)
|
|
119
|
+
const align = (axis === "x" ? aligns[1] : aligns[0]) ?? aligns[0] ?? "none";
|
|
120
|
+
if (align === "none")
|
|
121
|
+
return [];
|
|
108
122
|
const childBox = child.getBoundingClientRect();
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
123
|
+
const start = (axis === "x" ? childBox.left - box.left : childBox.top - box.top) + scrolled;
|
|
124
|
+
const size = axis === "x" ? childBox.width : childBox.height;
|
|
125
|
+
if (align === "center")
|
|
126
|
+
return [start + size / 2 - room / 2];
|
|
127
|
+
return [align === "end" ? start + size - room : start];
|
|
112
128
|
});
|
|
113
129
|
};
|
|
114
130
|
/**
|
|
@@ -132,6 +148,7 @@ export const endPan = (pan, speed) => {
|
|
|
132
148
|
// snapping comes back only now: back on, it would snap the place the finger left before the target is read
|
|
133
149
|
scroller.style.scrollSnapType = pan.pausedSnap;
|
|
134
150
|
scroller.scrollTo({ [axis === "x" ? "left" : "top"]: target, behavior: "smooth" });
|
|
135
|
-
|
|
151
|
+
// a new touch stops the smooth scroll where it is, as a finger stops a scrolling list
|
|
152
|
+
return () => scroller.scrollTo({ left: scroller.scrollLeft, top: scroller.scrollTop, behavior: "instant" });
|
|
136
153
|
};
|
|
137
154
|
//# sourceMappingURL=touchScroll.js.map
|