@graview/react 0.1.38 → 0.1.40

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/dist/captions.js DELETED
@@ -1,61 +0,0 @@
1
- /** Wide enough for a full edge description before anything is cut. */
2
- export const MIN_CAPTION = 300;
3
- /** Cards in one row are within this many pixels of each other's top. */
4
- const SAME_ROW = 12;
5
- const GAP = 8;
6
- /** About how wide a caption's words are drawn: 0.75rem capitals, letter-spaced, on a padded ground. */
7
- const wordsWidth = (text) => text.length * 8.4 + 16;
8
- export function captionRuns(entries, room) {
9
- const groups = new Map();
10
- for (const entry of entries) {
11
- const held = groups.get(entry.key);
12
- if (held)
13
- held.push(entry);
14
- else
15
- groups.set(entry.key, [entry]);
16
- }
17
- // Each group over the FIRST row it stands in: the rows after it continue it.
18
- const runs = [...groups.values()].map((members) => {
19
- const top = Math.min(...members.map((member) => member.top));
20
- const row = members.filter((member) => member.top - top <= SAME_ROW);
21
- return {
22
- key: members[0].key,
23
- text: members[0].text,
24
- left: Math.min(...row.map((member) => member.left)),
25
- right: Math.max(...row.map((member) => member.right)),
26
- top,
27
- };
28
- });
29
- runs.sort((a, b) => a.top - b.top || a.left - b.left);
30
- /*
31
- * What each caption WANTS: its own run, or its words, whichever is wider,
32
- * centered on the run. A neighbor's ground is borrowed only as far as the
33
- * neighbor does not want it; where both want the gutter between them,
34
- * they split it.
35
- */
36
- const want = runs.map((run) => {
37
- const width = Math.max(run.right - run.left, Math.min(MIN_CAPTION, wordsWidth(run.text)));
38
- const mid = (run.left + run.right) / 2;
39
- return { left: mid - width / 2, right: mid + width / 2 };
40
- });
41
- return runs.map((run, index) => {
42
- const beside = runs
43
- .map((other, at) => ({ other, at }))
44
- .filter(({ other }) => other !== run && Math.abs(other.top - run.top) <= SAME_ROW);
45
- const floors = beside
46
- .filter(({ other }) => other.right <= run.left)
47
- .map(({ other, at }) => (want[at].right + GAP <= (other.right + run.left) / 2 ? want[at].right + GAP : (other.right + run.left + GAP) / 2));
48
- const ceilings = beside
49
- .filter(({ other }) => other.left >= run.right)
50
- .map(({ other, at }) => (want[at].left - GAP >= (run.right + other.left) / 2 ? want[at].left - GAP : (run.right + other.left - GAP) / 2));
51
- const floor = Math.max(room.left, ...floors);
52
- const ceiling = Math.min(room.right, ...ceilings);
53
- const own = run.right - run.left;
54
- const desired = want[index].right - want[index].left;
55
- const width = Math.max(own, Math.min(desired, ceiling - floor));
56
- const mid = (run.left + run.right) / 2;
57
- const left = own >= width ? run.left : Math.max(floor, Math.min(mid - width / 2, ceiling - width));
58
- return { key: run.key, text: run.text, left, width, top: run.top };
59
- });
60
- }
61
- //# sourceMappingURL=captions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"captions.js","sourceRoot":"","sources":["../src/captions.ts"],"names":[],"mappings":"AAsCA,sEAAsE;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,wEAAwE;AACxE,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,GAAG,GAAG,CAAC,CAAC;AACd,uGAAuG;AACvG,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;AAEpE,MAAM,UAAU,WAAW,CACzB,OAAgC,EAChC,IAAuD;IAEvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YACtB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,6EAA6E;IAC7E,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,QAAQ,CAAC,CAAC;QACrE,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,GAAG;YACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI;YACtB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrD,GAAG;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD;;;;;OAKG;IACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAI;aAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;aACnC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM;aAClB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;aAC9C,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChJ,MAAM,QAAQ,GAAG,MAAM;aACpB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC;aAC9C,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9I,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;QACnG,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC"}