@graview/react 0.1.28 → 0.1.29

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 (106) hide show
  1. package/dist/affordances.d.ts +2 -1
  2. package/dist/affordances.d.ts.map +1 -1
  3. package/dist/affordances.js +2 -1
  4. package/dist/affordances.js.map +1 -1
  5. package/dist/beside-the-map.d.ts +13 -0
  6. package/dist/beside-the-map.d.ts.map +1 -0
  7. package/dist/beside-the-map.js +14 -0
  8. package/dist/beside-the-map.js.map +1 -0
  9. package/dist/channels.d.ts +2 -1
  10. package/dist/channels.d.ts.map +1 -1
  11. package/dist/channels.js +121 -22
  12. package/dist/channels.js.map +1 -1
  13. package/dist/connectors.d.ts +27 -2
  14. package/dist/connectors.d.ts.map +1 -1
  15. package/dist/connectors.js +135 -21
  16. package/dist/connectors.js.map +1 -1
  17. package/dist/context.d.ts +38 -2
  18. package/dist/context.d.ts.map +1 -1
  19. package/dist/context.js +63 -14
  20. package/dist/context.js.map +1 -1
  21. package/dist/drawn.d.ts +1 -1
  22. package/dist/drawn.d.ts.map +1 -1
  23. package/dist/drawn.js +1 -1
  24. package/dist/drawn.js.map +1 -1
  25. package/dist/edge-signs.d.ts +1 -1
  26. package/dist/edge-signs.d.ts.map +1 -1
  27. package/dist/edge-signs.js +52 -7
  28. package/dist/edge-signs.js.map +1 -1
  29. package/dist/index.d.ts +6 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +5 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/last-visit.d.ts +18 -0
  34. package/dist/last-visit.d.ts.map +1 -0
  35. package/dist/last-visit.js +79 -0
  36. package/dist/last-visit.js.map +1 -0
  37. package/dist/map-choice.d.ts +55 -0
  38. package/dist/map-choice.d.ts.map +1 -0
  39. package/dist/map-choice.js +73 -0
  40. package/dist/map-choice.js.map +1 -0
  41. package/dist/plots.d.ts +30 -24
  42. package/dist/plots.d.ts.map +1 -1
  43. package/dist/plots.js +168 -149
  44. package/dist/plots.js.map +1 -1
  45. package/dist/provider.d.ts +2 -1
  46. package/dist/provider.d.ts.map +1 -1
  47. package/dist/provider.js +3 -1
  48. package/dist/provider.js.map +1 -1
  49. package/dist/record-links-layer.d.ts +80 -0
  50. package/dist/record-links-layer.d.ts.map +1 -0
  51. package/dist/record-links-layer.js +127 -0
  52. package/dist/record-links-layer.js.map +1 -0
  53. package/dist/record-links.d.ts +58 -0
  54. package/dist/record-links.d.ts.map +1 -0
  55. package/dist/record-links.js +72 -0
  56. package/dist/record-links.js.map +1 -0
  57. package/dist/resolved-view.d.ts.map +1 -1
  58. package/dist/resolved-view.js +4 -0
  59. package/dist/resolved-view.js.map +1 -1
  60. package/dist/ribbon-width.d.ts +8 -0
  61. package/dist/ribbon-width.d.ts.map +1 -0
  62. package/dist/ribbon-width.js +15 -0
  63. package/dist/ribbon-width.js.map +1 -0
  64. package/dist/ribbons-layer.d.ts +56 -0
  65. package/dist/ribbons-layer.d.ts.map +1 -0
  66. package/dist/ribbons-layer.js +167 -0
  67. package/dist/ribbons-layer.js.map +1 -0
  68. package/dist/ribbons.d.ts +70 -0
  69. package/dist/ribbons.d.ts.map +1 -0
  70. package/dist/ribbons.js +400 -0
  71. package/dist/ribbons.js.map +1 -0
  72. package/dist/scene-camera.d.ts.map +1 -1
  73. package/dist/scene-camera.js +10 -4
  74. package/dist/scene-camera.js.map +1 -1
  75. package/dist/scene-covered.d.ts +8 -0
  76. package/dist/scene-covered.d.ts.map +1 -0
  77. package/dist/scene-covered.js +118 -0
  78. package/dist/scene-covered.js.map +1 -0
  79. package/dist/scene-hand.d.ts +15 -0
  80. package/dist/scene-hand.d.ts.map +1 -1
  81. package/dist/scene-hand.js +45 -1
  82. package/dist/scene-hand.js.map +1 -1
  83. package/dist/scene-lines.d.ts +15 -2
  84. package/dist/scene-lines.d.ts.map +1 -1
  85. package/dist/scene-lines.js +215 -85
  86. package/dist/scene-lines.js.map +1 -1
  87. package/dist/scene-options.d.ts +7 -2
  88. package/dist/scene-options.d.ts.map +1 -1
  89. package/dist/scene-options.js +22 -8
  90. package/dist/scene-options.js.map +1 -1
  91. package/dist/scene-root.d.ts +1 -0
  92. package/dist/scene-root.d.ts.map +1 -1
  93. package/dist/scene-root.js +197 -154
  94. package/dist/scene-root.js.map +1 -1
  95. package/dist/view-host.d.ts.map +1 -1
  96. package/dist/view-host.js +6 -1
  97. package/dist/view-host.js.map +1 -1
  98. package/dist/view-registry.d.ts +5 -0
  99. package/dist/view-registry.d.ts.map +1 -1
  100. package/dist/view-registry.js +2 -6
  101. package/dist/view-registry.js.map +1 -1
  102. package/dist/where-drawn.d.ts +3 -1
  103. package/dist/where-drawn.d.ts.map +1 -1
  104. package/dist/where-drawn.js +10 -16
  105. package/dist/where-drawn.js.map +1 -1
  106. package/package.json +5 -5
@@ -1,5 +1,6 @@
1
1
  import type { AnySchema } from "@graview/core";
2
- import { type Affordance, type AffordanceSet, type DeriveOptions } from "@graview/tools";
2
+ import { type DeriveOptions } from "@graview/tools/derive";
3
+ import type { Affordance, AffordanceSet } from "@graview/tools";
3
4
  /**
4
5
  * What can be done with the current selection, recomputed whenever the
5
6
  * selection or the graph changes.
@@ -1 +1 @@
1
- {"version":3,"file":"affordances.d.ts","sourceRoot":"","sources":["../src/affordances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAyD,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAWhJ;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAChD,OAAO,GAAE,aAAa,CAAC,CAAC,CAAC,GAAG;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,GACL,aAAa,CAwBf;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS;0BAI1B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;wBAE5C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EASnE"}
1
+ {"version":3,"file":"affordances.d.ts","sourceRoot":"","sources":["../src/affordances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAyD,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAWhE;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAChD,OAAO,GAAE,aAAa,CAAC,CAAC,CAAC,GAAG;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,GACL,aAAa,CAwBf;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS;0BAI1B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;wBAE5C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EASnE"}
@@ -1,5 +1,6 @@
1
1
  import { edgeOfSelection, kindsOf } from "@graview/layout/view";
2
- import { applyAffordance, deriveAffordances, previewAffordance } from "@graview/tools";
2
+ // From the deriving alone (`@graview/tools/derive`): the tools' index would bring the seat's whole surface with every face that draws an act.
3
+ import { applyAffordance, deriveAffordances, previewAffordance } from "@graview/tools/derive";
3
4
  import { useMemo } from "react";
4
5
  import { useGraph, useGraview } from "./context.js";
5
6
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"affordances.js","sourceRoot":"","sources":["../src/affordances.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAA2D,MAAM,gBAAgB,CAAC;AAChJ,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,UAOI,EAAE;IAEN,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,EAAK,CAAC;IAC3E,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,EAAK,CAAC;IAC5B,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,SAAS;aAC5B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,IAAI,EAAoC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACrE,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,mEAAmE;QACnE,OAAO,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE;YACzC,SAAS;YACT,aAAa;YACb,aAAa;YACb,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB;IAChC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,EAAK,CAAC;IAC7C,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,OAAO,EAAE,CAAC,UAAsB,EAAE,IAA8B,EAAE,EAAE,CAClE,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC;QAClD,KAAK,EAAE,CAAC,UAAsB,EAAE,IAA8B,EAAE,EAAE,CAChE,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE;YAC7C,gEAAgE;YAChE,kEAAkE;YAClE,MAAM,EAAE,SAAS;SAClB,CAAC;KACL,CAAC,EACF,CAAC,KAAK,EAAE,SAAS,CAAC,CACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"affordances.js","sourceRoot":"","sources":["../src/affordances.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAChE,8IAA8I;AAC9I,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,uBAAuB,CAAC;AAElH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,UAOI,EAAE;IAEN,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,EAAK,CAAC;IAC3E,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,EAAK,CAAC;IAC5B,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,SAAS;aAC5B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,IAAI,EAAoC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACrE,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,mEAAmE;QACnE,OAAO,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE;YACzC,SAAS;YACT,aAAa;YACb,aAAa;YACb,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB;IAChC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,EAAK,CAAC;IAC7C,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,OAAO,EAAE,CAAC,UAAsB,EAAE,IAA8B,EAAE,EAAE,CAClE,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC;QAClD,KAAK,EAAE,CAAC,UAAsB,EAAE,IAA8B,EAAE,EAAE,CAChE,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE;YAC7C,gEAAgE;YAChE,kEAAkE;YAClE,MAAM,EAAE,SAAS;SAClB,CAAC;KACL,CAAC,EACF,CAAC,KAAK,EAAE,SAAS,CAAC,CACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * WHETHER A PANEL BESIDE THE MAP LISTS A DISTRICT (`MapPanel` in
3
+ * `@graview/primitives`).
4
+ *
5
+ * The faces that draw the panel — the whole-page Shell and an embed's scene
6
+ * face — say so around the picture, and opening a district from altitude,
7
+ * by its "open" or by a double-click on a district with no picture of its
8
+ * own, then chooses the district, whose records the panel lists at a size a
9
+ * person reads. A scene drawn without the panel (the studio's, a product's
10
+ * own) keeps opening a district in place, as a card of its records.
11
+ */
12
+ export declare const BesideTheMap: import("react").Context<boolean>;
13
+ //# sourceMappingURL=beside-the-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beside-the-map.d.ts","sourceRoot":"","sources":["../src/beside-the-map.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,kCAAuB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { createContext } from "react";
2
+ /**
3
+ * WHETHER A PANEL BESIDE THE MAP LISTS A DISTRICT (`MapPanel` in
4
+ * `@graview/primitives`).
5
+ *
6
+ * The faces that draw the panel — the whole-page Shell and an embed's scene
7
+ * face — say so around the picture, and opening a district from altitude,
8
+ * by its "open" or by a double-click on a district with no picture of its
9
+ * own, then chooses the district, whose records the panel lists at a size a
10
+ * person reads. A scene drawn without the panel (the studio's, a product's
11
+ * own) keeps opening a district in place, as a card of its records.
12
+ */
13
+ export const BesideTheMap = createContext(false);
14
+ //# sourceMappingURL=beside-the-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beside-the-map.js","sourceRoot":"","sources":["../src/beside-the-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC"}
@@ -4,7 +4,7 @@ export interface Row {
4
4
  readonly bottom: number;
5
5
  readonly boxes: readonly Box[];
6
6
  }
7
- /** Boxes grouped into rows by vertical overlap, top to bottom, each row's boxes left to right. */
7
+ /** Boxes grouped into rows by vertical overlap (or touching), top to bottom, each row's boxes left to right. */
8
8
  export declare function bandRows(band: readonly Box[]): Row[];
9
9
  /**
10
10
  * The polyline from one chip to another through the band's gutters. `lane`
@@ -12,4 +12,5 @@ export declare function bandRows(band: readonly Box[]): Row[];
12
12
  * along the same gutter do not lie on one another.
13
13
  */
14
14
  export declare function channelRoute(from: Box, to: Box, band: readonly Box[], lane?: number): Point[];
15
+ export declare function cardRoute(card: Box, chip: Box, band: readonly Box[], lane?: number): Point[] | null;
15
16
  //# sourceMappingURL=channels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAiB9C,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC;CAChC;AAED,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,CAapD;AAgDD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,SAAI,GAAG,KAAK,EAAE,CA2BxF"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAiB9C,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC;CAChC;AAKD,gHAAgH;AAChH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,CAapD;AAgID;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,SAAI,GAAG,KAAK,EAAE,CAmBxF;AAWD,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,SAAI,GAAG,KAAK,EAAE,GAAG,IAAI,CAiB9F"}
package/dist/channels.js CHANGED
@@ -11,12 +11,14 @@
11
11
  * nothing needs clipping, and the whole line is one visible thing.
12
12
  */
13
13
  const CLEAR = 12;
14
- /** Boxes grouped into rows by vertical overlap, top to bottom, each row's boxes left to right. */
14
+ /** How near two boxes stand, one over the other, and are still one row: a caption hung just over its run is of the run's row. */
15
+ const TOUCHING = 3;
16
+ /** Boxes grouped into rows by vertical overlap (or touching), top to bottom, each row's boxes left to right. */
15
17
  export function bandRows(band) {
16
18
  const sorted = [...band].sort((a, b) => a.y - b.y || a.x - b.x);
17
19
  const rows = [];
18
20
  for (const box of sorted) {
19
- const row = rows.find((r) => box.y < r.bottom && box.y + box.height > r.top);
21
+ const row = rows.find((r) => box.y < r.bottom + TOUCHING && box.y + box.height > r.top - TOUCHING);
20
22
  if (row) {
21
23
  row.boxes.push(box);
22
24
  row.top = Math.min(row.top, box.y);
@@ -48,7 +50,7 @@ function clearX(rows, wanted) {
48
50
  let cursor = -Infinity;
49
51
  for (const box of row.boxes) {
50
52
  gaps.push({ from: cursor, to: box.x - CLEAR });
51
- cursor = box.x + box.width + CLEAR;
53
+ cursor = Math.max(cursor, box.x + box.width + CLEAR);
52
54
  }
53
55
  gaps.push({ from: cursor, to: Infinity });
54
56
  const next = [];
@@ -76,6 +78,83 @@ function clearX(rows, wanted) {
76
78
  }
77
79
  return best;
78
80
  }
81
+ /** A box turned upside down, so a road upward is worked out as a road downward. */
82
+ const flipped = (box) => ({ x: box.x, y: -(box.y + box.height), width: box.width, height: box.height });
83
+ const unflip = (points) => points.map((p) => ({ x: p.x, y: -p.y }));
84
+ /** Legs of no length are not corners, and neither is a point along a straight leg. */
85
+ function corners(points) {
86
+ const near = (m, n) => Math.abs(m - n) < 0.5;
87
+ const kept = points.filter((p, i) => i === 0 || !(near(p.x, points[i - 1].x) && near(p.y, points[i - 1].y)));
88
+ return kept.filter((p, i) => {
89
+ const a = kept[i - 1];
90
+ const b = kept[i + 1];
91
+ return !a || !b || !((near(a.x, p.x) && near(p.x, b.x)) || (near(a.y, p.y) && near(p.y, b.y)));
92
+ });
93
+ }
94
+ /**
95
+ * WHERE A ROAD COMING DOWN MEETS A BOX: on its top, over the box and clear
96
+ * of anything standing over it in its row (its run's caption is of its
97
+ * row); and where the caption's words cover the whole top, on its side,
98
+ * down a gap beside it. `x` is the vertical the road comes down at, and
99
+ * `tail` the points from there onto the box's edge.
100
+ */
101
+ function topPort(row, box, want) {
102
+ const over = row.boxes.filter((b) => !same(b, box) && b.y + b.height <= box.y + 1 && b.x < box.x + box.width && b.x + b.width > box.x);
103
+ let free = [{ from: box.x + 6, to: box.x + box.width - 6 }];
104
+ for (const b of over) {
105
+ free = free.flatMap((gap) => [
106
+ { from: gap.from, to: Math.min(gap.to, b.x - CLEAR / 2) },
107
+ { from: Math.max(gap.from, b.x + b.width + CLEAR / 2), to: gap.to },
108
+ ]).filter((gap) => gap.to >= gap.from);
109
+ }
110
+ let best = null;
111
+ for (const gap of free) {
112
+ const x = Math.min(Math.max(want, gap.from), gap.to);
113
+ if (best === null || Math.abs(x - want) < Math.abs(best - want))
114
+ best = x;
115
+ }
116
+ if (best !== null)
117
+ return { x: best, tail: [{ x: best, y: box.y }] };
118
+ // Its side, nearer the way the road comes from, down the gap beside it.
119
+ const left = want < box.x + box.width / 2;
120
+ const x = clearX([row], left ? box.x - CLEAR : box.x + box.width + CLEAR);
121
+ const y = box.y + box.height / 2;
122
+ return { x, tail: [{ x, y }, { x: x < box.x ? box.x : box.x + box.width, y }] };
123
+ }
124
+ /** Where a road going down leaves a box: its bottom, which nothing in its row stands under. */
125
+ function bottomPort(row, box, want) {
126
+ const turned = topPort({ top: -row.bottom, bottom: -row.top, boxes: row.boxes.map(flipped) }, flipped(box), want);
127
+ return { x: turned.x, head: unflip(turned.tail).reverse() };
128
+ }
129
+ /**
130
+ * THE LAST DESCENT: going down to a box in row `rt` at `x`, the highest row
131
+ * from which a straight drop at `x` meets nothing on the way.
132
+ */
133
+ function dropFrom(rows, rt, x, floor) {
134
+ let k = rt;
135
+ while (k > floor && !rows[k - 1].boxes.some((b) => x > b.x - CLEAR / 2 && x < b.x + b.width + CLEAR / 2))
136
+ k--;
137
+ return k;
138
+ }
139
+ /** How far a lane may stand off the middle of a channel this tall without touching its sides. */
140
+ const lanes = (lane, height) => ((lane % 3) - 1) * Math.max(0, Math.min(4, height / 2 - 3));
141
+ /**
142
+ * A road downward: from `head` (leaving row `rf`, or from above every row
143
+ * when `rf` is -1, at `startY`) at `x`, to the box `to` in row `rt`.
144
+ */
145
+ function downward(rows, rf, startY, depart, to, rt, want, lane) {
146
+ const gap = (above) => (above < 0 ? rows[0].top - startY : rows[above + 1].top - rows[above].bottom);
147
+ const channel = (above) => (above < 0 ? (startY + rows[0].top) / 2 : channelBetween(rows, above, above + 1)) + lanes(lane, gap(above));
148
+ const arrive = topPort(rows[rt], to, want);
149
+ const k = dropFrom(rows, rt, arrive.x, rf + 1);
150
+ const first = channel(rf);
151
+ if (k === rf + 1)
152
+ return corners([...depart.head, { x: depart.x, y: first }, { x: arrive.x, y: first }, ...arrive.tail]);
153
+ // Rows in between: cross them through a gap between chips, as near the far chip as one is.
154
+ const vx = clearX(rows.slice(rf + 1, k), arrive.x);
155
+ const last = channel(k - 1);
156
+ return corners([...depart.head, { x: depart.x, y: first }, { x: vx, y: first }, { x: vx, y: last }, { x: arrive.x, y: last }, ...arrive.tail]);
157
+ }
79
158
  /**
80
159
  * The polyline from one chip to another through the band's gutters. `lane`
81
160
  * staggers lines that share a channel by a few pixels so two relations
@@ -87,28 +166,48 @@ export function channelRoute(from, to, band, lane = 0) {
87
166
  const rt = rowOf(rows, to);
88
167
  const fx = from.x + from.width / 2;
89
168
  const tx = to.x + to.width / 2;
90
- const stagger = ((lane % 3) - 1) * 4;
91
169
  if (rf === rt) {
92
170
  // A U under the row (or over it, for the last row of several): out, along, and back in.
93
171
  const under = rf < rows.length - 1 || rows.length === 1;
94
- const y = (under ? channelBetween(rows, rf, rf + 1) : channelBetween(rows, rf - 1, rf)) + stagger;
95
- const a = under ? from.y + from.height : from.y;
96
- const b = under ? to.y + to.height : to.y;
97
- return [{ x: fx, y: a }, { x: fx, y }, { x: tx, y }, { x: tx, y: b }];
172
+ if (!under)
173
+ return unflip(channelRoute(flipped(from), flipped(to), band.map(flipped), lane));
174
+ const y = channelBetween(rows, rf, rf + 1) + lanes(lane, rf < rows.length - 1 ? rows[rf + 1].top - rows[rf].bottom : 2 * CLEAR);
175
+ const out = bottomPort(rows[rf], from, tx);
176
+ const back = bottomPort(rows[rf], to, fx);
177
+ return corners([...out.head, { x: out.x, y }, { x: back.x, y }, ...[...back.head].reverse()]);
98
178
  }
99
- const down = rt > rf;
100
- const step = down ? 1 : -1;
101
- const start = { x: fx, y: down ? from.y + from.height : from.y };
102
- const end = { x: tx, y: down ? to.y : to.y + to.height };
103
- const first = (down ? channelBetween(rows, rf, rf + 1) : channelBetween(rows, rf - 1, rf)) + stagger;
104
- const last = (down ? channelBetween(rows, rt - 1, rt) : channelBetween(rows, rt, rt + 1)) + stagger;
105
- if (Math.abs(rt - rf) === 1)
106
- return [start, { x: fx, y: first }, { x: tx, y: first }, end];
107
- // Rows in between: cross them through a gap between chips, as near the far chip as one is.
108
- const between = [];
109
- for (let r = rf + step; r !== rt; r += step)
110
- between.push(rows[r]);
111
- const vx = clearX(between, tx);
112
- return [start, { x: fx, y: first }, { x: vx, y: first }, { x: vx, y: last }, { x: tx, y: last }, end];
179
+ // A road upward is the same road downward, upside down.
180
+ if (rt < rf)
181
+ return unflip(channelRoute(flipped(from), flipped(to), band.map(flipped), lane));
182
+ const depart = bottomPort(rows[rf], from, tx);
183
+ return downward(rows, rf, rows[rf].bottom, depart, to, rt, fx, lane);
184
+ }
185
+ /*
186
+ * A TIE FROM THE RECORD'S CARD TO ONE OF ITS CHIPS, whole. It leaves the
187
+ * card's edge facing the band, drops through the open ground between them,
188
+ * crosses any rows on the way through a gap between their chips (and their
189
+ * captions' words, which are of the band too), runs along a gutter and
190
+ * arrives on the chip's own edge. Nothing is crossed, so nothing is
191
+ * clipped, and the line is one line. Null when the chip is not clear of
192
+ * the card above or below it: the band's own route stands then.
193
+ */
194
+ export function cardRoute(card, chip, band, lane = 0) {
195
+ if (chip.y + chip.height <= card.y) {
196
+ const up = cardRoute(flipped(card), flipped(chip), band.map(flipped), lane);
197
+ return up ? unflip(up) : null;
198
+ }
199
+ const edge = card.y + card.height;
200
+ if (chip.y < edge)
201
+ return null;
202
+ const rows = bandRows([...band.filter((box) => box.y >= edge && !same(box, chip)), chip]);
203
+ const rt = rowOf(rows, chip);
204
+ const tx = chip.x + chip.width / 2;
205
+ // Leave the card where the road will go down: over the chip, or over the gap it crosses the rows by.
206
+ const arrive = topPort(rows[rt], chip, tx);
207
+ const k = dropFrom(rows, rt, arrive.x, 0);
208
+ const vx = k === 0 ? arrive.x : clearX(rows.slice(0, k), arrive.x);
209
+ const room = Math.min(CLEAR, card.width / 2);
210
+ const x0 = Math.min(Math.max(vx, card.x + room), card.x + card.width - room);
211
+ return downward(rows, -1, edge, { x: x0, head: [{ x: x0, y: edge }] }, chip, rt, tx, lane);
113
212
  }
114
213
  //# sourceMappingURL=channels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.js","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"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"}
@@ -87,8 +87,19 @@ export interface Strand {
87
87
  readonly toAnchor: string;
88
88
  /** Every other drawn box, so the line can dive under cards it merely crosses. */
89
89
  readonly obstacles: readonly Box[];
90
- /** Both ends are chips of the relation band: every chip of it, so the line can take the gutters. */
90
+ /** Both ends are chips of the relation band, or one is the record's card: every chip of it and every caption over it, so the line can take the gutters. */
91
91
  readonly band?: readonly Box[];
92
+ /** One end is the focused record's card and the other a chip of the band: the card's box, and whether the card is the line's far (`to`) end. */
93
+ readonly tie?: {
94
+ readonly card: Box;
95
+ readonly chip: Box;
96
+ readonly cardIsTo: boolean;
97
+ /** The band's drawing it lands on, and the records that drawing stands for. */
98
+ readonly toward: string;
99
+ readonly holds: readonly string[];
100
+ };
101
+ /** The far records the tie stands for, when the card already names every one among its own: the card has said this relation. */
102
+ readonly said?: readonly string[];
92
103
  /**
93
104
  * The cards an end is drawn INSIDE, when it lands on a member: the line
94
105
  * is visible across them (that is what landing on a member means), but
@@ -116,6 +127,12 @@ type Quadratic = {
116
127
  c: Point;
117
128
  p1: Point;
118
129
  };
130
+ /**
131
+ * MEASURED STRANDS, MOVED WITH THE HAND: each end by as far as the layout
132
+ * has moved the card it belongs to since the measurement (`then` → `now`).
133
+ * The routes are worked out again from the moved boxes when drawn.
134
+ */
135
+ export declare function movedBy(strands: readonly Strand[], then: readonly SceneNode[], now: readonly SceneNode[]): Strand[];
119
136
  /**
120
137
  * THE VISIBLE RUNS of a curve: every stretch of it that lies outside the
121
138
  * given boxes, as exact pieces of the same curve.
@@ -139,7 +156,15 @@ export declare function clipQuadratic(q: Quadratic, boxes: readonly Box[]): Quad
139
156
  * restyle. The capture inside a `layoutsubtree` canvas is not disturbed,
140
157
  * because this sits outside it.
141
158
  */
142
- export declare function Connectors({ strands, result, scheme, overview, selection, emphasis, stageRef, liveOf, onPickEdge, }: {
159
+ export declare function Connectors({ strands, result, scheme, overview, selection, emphasis, stageRef, liveOf, onPickEdge, provisional, pointed, }: {
160
+ /** The record a pointer is on or the keyboard is at: a tie the card has said is drawn for it. */
161
+ readonly pointed?: string | null;
162
+ /**
163
+ * The links still provisional (FR-172), by their selection id, each with
164
+ * what to say of it: drawn in short dashes and quieter, and the sentence
165
+ * is the line's own on hover.
166
+ */
167
+ readonly provisional?: ReadonlyMap<string, string>;
143
168
  /** The lines to draw, resolved once per render by `connectorStrands`. */
144
169
  readonly strands: readonly Strand[];
145
170
  readonly overview: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../src/connectors.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../src/connectors.tsx"],"names":[],"mappings":"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"}