@fusion.dev/helix-headless 0.194.0 → 0.196.0
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/api.json +1 -1
- package/custom-elements.json +348 -42
- package/dist/spatial-heatmap/projection.d.ts +35 -3
- package/dist/spatial-heatmap/projection.js +58 -3
- package/dist/spatial-heatmap/root/spatial-heatmap-root.d.ts +51 -29
- package/dist/spatial-heatmap/root/spatial-heatmap-root.js +106 -27
- package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.d.ts +17 -6
- package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.js +30 -4
- package/dist/spatial-scatter-chart/view.d.ts +55 -0
- package/dist/spatial-scatter-chart/view.js +114 -17
- package/dist/spatial-surface-chart/grid.d.ts +3 -0
- package/dist/spatial-surface-chart/grid.js +3 -2
- package/dist/spatial-surface-chart/root/spatial-surface-chart-root.d.ts +18 -7
- package/dist/spatial-surface-chart/root/spatial-surface-chart-root.js +26 -5
- package/examples.json +1 -1
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +54 -56
- package/types/vue.d.ts +7 -13
package/custom-elements.json
CHANGED
|
@@ -152198,6 +152198,52 @@
|
|
|
152198
152198
|
}
|
|
152199
152199
|
],
|
|
152200
152200
|
"description": "Every reading as a prism, filling down each column of `rows` and then\nacross, as the flat heatmap does, seen from `camera`.\n\n**Columns run down to the right and rows down to the left, from the\nisometric camera, so there the order of the readings is the order to paint\nthem in.** A prism can only cover the neighbors behind it, which are the one\nbefore it in its column and the one in the same row of the column before,\nand both come earlier in the table. Turned, the order comes from how near\nthe camera each prism stands, which is `order`.\n\n`footprint` is how much of its cell a prism covers along each edge, so `1`\nleaves no gap between neighbors."
|
|
152201
|
+
},
|
|
152202
|
+
{
|
|
152203
|
+
"kind": "function",
|
|
152204
|
+
"name": "labelPlaces",
|
|
152205
|
+
"return": {
|
|
152206
|
+
"type": {
|
|
152207
|
+
"text": "{ end: Point; start: Point }"
|
|
152208
|
+
}
|
|
152209
|
+
},
|
|
152210
|
+
"parameters": [
|
|
152211
|
+
{
|
|
152212
|
+
"name": "outline",
|
|
152213
|
+
"type": {
|
|
152214
|
+
"text": "readonly Point[]"
|
|
152215
|
+
}
|
|
152216
|
+
},
|
|
152217
|
+
{
|
|
152218
|
+
"name": "corners",
|
|
152219
|
+
"type": {
|
|
152220
|
+
"text": "{ end: Point; start: Point }"
|
|
152221
|
+
}
|
|
152222
|
+
},
|
|
152223
|
+
{
|
|
152224
|
+
"name": "sizes",
|
|
152225
|
+
"type": {
|
|
152226
|
+
"text": "{ end: LabelSize; start: LabelSize }"
|
|
152227
|
+
}
|
|
152228
|
+
},
|
|
152229
|
+
{
|
|
152230
|
+
"name": "span",
|
|
152231
|
+
"type": {
|
|
152232
|
+
"text": "number"
|
|
152233
|
+
}
|
|
152234
|
+
},
|
|
152235
|
+
{
|
|
152236
|
+
"name": "gap",
|
|
152237
|
+
"type": {
|
|
152238
|
+
"text": "number"
|
|
152239
|
+
}
|
|
152240
|
+
},
|
|
152241
|
+
{
|
|
152242
|
+
"name": "lowest",
|
|
152243
|
+
"default": "Number.POSITIVE_INFINITY"
|
|
152244
|
+
}
|
|
152245
|
+
],
|
|
152246
|
+
"description": "Where the strip's first and last labels stand, as the top left of each,\non a page where the drawing's `outline` and its front edge's `corners`\nstand where given and the labels may run from 0 to `span` across.\n\n**Under its corner, and clear of the drawing.** A label runs away from the\nfront edge, so the edge does not fall across it, and stays inside the\nspan, which can move it under the edge; it then stands as far down as the\noutline reaches over it, and no lower than `lowest`, where a renderer's\ndrawing is cut. Where the two would meet, as when the strip is seen end on,\nthe last stands under the first, or beside it where there is no room below."
|
|
152201
152247
|
}
|
|
152202
152248
|
],
|
|
152203
152249
|
"exports": [
|
|
@@ -152248,6 +152294,14 @@
|
|
|
152248
152294
|
"name": "reliefOf",
|
|
152249
152295
|
"module": "src/spatial-heatmap/projection.ts"
|
|
152250
152296
|
}
|
|
152297
|
+
},
|
|
152298
|
+
{
|
|
152299
|
+
"kind": "js",
|
|
152300
|
+
"name": "labelPlaces",
|
|
152301
|
+
"declaration": {
|
|
152302
|
+
"name": "labelPlaces",
|
|
152303
|
+
"module": "src/spatial-heatmap/projection.ts"
|
|
152304
|
+
}
|
|
152251
152305
|
}
|
|
152252
152306
|
]
|
|
152253
152307
|
},
|
|
@@ -152257,33 +152311,21 @@
|
|
|
152257
152311
|
"declarations": [
|
|
152258
152312
|
{
|
|
152259
152313
|
"kind": "class",
|
|
152260
|
-
"description": "The same strip as `Heatmap`, seen from above at an angle. Each reading is a\nprism: its top face takes the cell's tone, and its height repeats the value,\nmeasured from zero against the highest reading in the table. `rows=\"7\"`\nmakes a contribution graph, with each week a column running down to the\nright.\n\n**The height says what the tone says.** Read the exact value from the tooltip\nor the table, and compare readings by tone. A tall reading at the front can\nhide a short one behind it, so the newest column stands at the front, where\nnothing covers it.\n\n**Everything else is `Heatmap`.** The table named by `for`, the tones and\nthresholds, the keys, the tooltip, the overview, `selection-mode`, and the\nevents all work as they do there. The class extends the headless heatmap,\nand its own entry point carries the drawing, so a page using only `Heatmap`\nloads none of it.\n\n**It was `helix-isometric-heatmap` until 0.190.0**, and\n`helix-headless-isometric-heatmap` in the headless tier. The old tags are\ngone, and so are the `--isometric-heatmap-*` hooks, which are\n`--spatial-heatmap-*`, and the words key, which is `helix-spatial-heatmap`.\nThe two shade hooks now take a step of lightness, such as `0.07`, where they\ntook a percentage mixed toward black. Every attribute, part, and event kept\nits name.\n\n**`flat` lays every prism down** at no height, which leaves the tones on a\nplane at the same angle.\n\n**The prisms stand on a slab**, the `base`, which reaches a little past the\ngrid, so the relief reads as one object. The `start` and `end` slots name\nthe two ends of the front edge, which is
|
|
152314
|
+
"description": "The same strip as `Heatmap`, seen from above at an angle. Each reading is a\nprism: its top face takes the cell's tone, and its height repeats the value,\nmeasured from zero against the highest reading in the table. `rows=\"7\"`\nmakes a contribution graph, with each week a column running down to the\nright.\n\n**The height says what the tone says.** Read the exact value from the tooltip\nor the table, and compare readings by tone. A tall reading at the front can\nhide a short one behind it, so the newest column stands at the front, where\nnothing covers it.\n\n**Everything else is `Heatmap`.** The table named by `for`, the tones and\nthresholds, the keys, the tooltip, the overview, `selection-mode`, and the\nevents all work as they do there. The class extends the headless heatmap,\nand its own entry point carries the drawing, so a page using only `Heatmap`\nloads none of it.\n\n**It was `helix-isometric-heatmap` until 0.190.0**, and\n`helix-headless-isometric-heatmap` in the headless tier. The old tags are\ngone, and so are the `--isometric-heatmap-*` hooks, which are\n`--spatial-heatmap-*`, and the words key, which is `helix-spatial-heatmap`.\nThe two shade hooks now take a step of lightness, such as `0.07`, where they\ntook a percentage mixed toward black. Every attribute, part, and event kept\nits name.\n\n**`flat` lays every prism down** at no height, which leaves the tones on a\nplane at the same angle.\n\n**The prisms stand on a slab**, the `base`, which reaches a little past the\ngrid, so the relief reads as one object. The `start` and `end` slots name\nthe two ends of the front edge, the long edge nearer the reader, which is\nthe strip's first and last column. The component measures where each label\nstands under its corner, clear of the drawing, and writes it on the label as\n`--spatial-heatmap-label-x` and `--spatial-heatmap-label-y`. A renderer\ntells the chart where it draws those corners, so the labels stand at them\nthere too, and follow them as the view turns.\n\n**`gap` and `min-cell` set the smallest cell.** The drawing scales as a\nwhole, so a wider box draws larger cells and the gap grows with them. A box\ntoo narrow for every column at `min-cell` draws the newest that fit.\n\n**The drawing is SVG and holds still.** It scales with its box through its\n`viewBox`, needs no WebGL, and has no motion to pause. A drag turns it and\ntilts it, and Shift with an arrow turns it a step, from the isometric view\nit starts at.\n**Under `selection-mode`, the prisms are painted back to front for the\nview, and the grid's rows and cells stand beside them in the table's\norder**, holding no drawing of their own, so a turned view paints\ncorrectly and a screen reader still reads the grid in order.\n\n**A renderer can draw it in 3D instead.** Put a box for it in the\n`renderer` slot, and `connectSpatialHeatmap` from `@fusion.dev/helix-plot`,\ngiven `threeHeatmapDriver` from `@fusion.dev/helix-plot/three`, draws the\nprisms in it with three.js, lit, in the same tones, in a view\nthat drags round and zooms. The chart publishes its readings in `field`,\nand its own drawing stays under the renderer's, unseen, where a screen\nreader and the keys still reach it. Shift with an arrow turns the view,\nexcept under `selection-mode=\"multiple\"`, where it selects.\n\n**Keyboard.** The keys are `Heatmap`'s. Down moves to the next reading in a\ncolumn, drawn down to the left, and Right to the same reading in the next\ncolumn, drawn down to the right.\n\n| Key | What it does |\n|---|---|\n| Tab | Moves focus to the strip and shows the first cell. |\n| Down, Up | Moves to the next or the previous cell. |\n| Right, Left | Moves a column on or back, a week with `rows=\"7\"`. On a right-to-left page, Left moves on. |\n| Home, End | Moves to the first or the last cell. |\n| Page Down, Page Up | Moves a month on or back where the rows carry dates, and four columns otherwise. |\n| Enter, Space | Presses the cell, which sends `helix-reading-press`, and selects it or lets it go under `selection-mode`. |\n| Shift with an arrow, Home, End, Page Up or Page Down | Selects every cell from the last one pressed to where the key went, under `selection-mode=\"multiple\"`. |\n| Shift with an arrow | Turns the view a step, or a renderer's where one is connected, except under `selection-mode=\"multiple\"`. |\n| Escape | Puts the cell's tooltip away. |",
|
|
152261
152315
|
"name": "HelixHeadlessSpatialHeatmap",
|
|
152262
152316
|
"cssProperties": [
|
|
152263
152317
|
{
|
|
152264
|
-
"description": "
|
|
152265
|
-
"name": "--spatial-heatmap-
|
|
152266
|
-
},
|
|
152267
|
-
{
|
|
152268
|
-
"description": "Where the front edge ends, under the newest column, across the drawing, from 0 at its inline start to 1. The component writes it on the footer, and a stylesheet that stands the `end` label there reads it.",
|
|
152269
|
-
"name": "--spatial-heatmap-end-x"
|
|
152318
|
+
"description": "Where the `start` or the `end` label stands clear of the drawing, from the footer's inline start, in pixels. The component measures it and writes it on the label, with `data-placed`, as the view turns.",
|
|
152319
|
+
"name": "--spatial-heatmap-label-x"
|
|
152270
152320
|
},
|
|
152271
152321
|
{
|
|
152272
|
-
"description": "
|
|
152273
|
-
"name": "--spatial-heatmap-
|
|
152322
|
+
"description": "Where the `start` or the `end` label stands clear of the drawing, from the footer's top, in pixels. The component measures it and writes it on the label, with `data-placed`, as the view turns.",
|
|
152323
|
+
"name": "--spatial-heatmap-label-y"
|
|
152274
152324
|
},
|
|
152275
152325
|
{
|
|
152276
152326
|
"description": "How many cells the drawing spans across: its columns and its rows together. The component writes it on the strip, and a stylesheet that caps the cell size reads it.",
|
|
152277
152327
|
"name": "--spatial-heatmap-span"
|
|
152278
152328
|
},
|
|
152279
|
-
{
|
|
152280
|
-
"description": "Where the front edge starts, under the first column, across the drawing, from 0 at its inline start to 1: 0 in the chart's own drawing, and wherever a renderer draws it. The component writes it on the footer, and a stylesheet that stands the `start` label there reads it.",
|
|
152281
|
-
"name": "--spatial-heatmap-start-x"
|
|
152282
|
-
},
|
|
152283
|
-
{
|
|
152284
|
-
"description": "How far down the drawing the front edge starts, under the first column, as a share of the drawing's width. The component writes it on the footer, and a stylesheet that stands the `start` label there reads it.",
|
|
152285
|
-
"name": "--spatial-heatmap-start-y"
|
|
152286
|
-
},
|
|
152287
152329
|
{
|
|
152288
152330
|
"description": "How many rows the strip lays out. The component writes it from the data, and the stylesheet that draws the strip reads it.",
|
|
152289
152331
|
"name": "--heatmap-rows",
|
|
@@ -152809,7 +152851,68 @@
|
|
|
152809
152851
|
},
|
|
152810
152852
|
"privacy": "private",
|
|
152811
152853
|
"default": "ISOMETRIC",
|
|
152812
|
-
"description": "Where the chart's own drawing is seen from, which Shift with an arrow turns."
|
|
152854
|
+
"description": "Where the chart's own drawing is seen from, which a drag or Shift with an arrow turns."
|
|
152855
|
+
},
|
|
152856
|
+
{
|
|
152857
|
+
"kind": "field",
|
|
152858
|
+
"name": "labelSizes",
|
|
152859
|
+
"type": {
|
|
152860
|
+
"text": "ResizeObserver | undefined"
|
|
152861
|
+
},
|
|
152862
|
+
"privacy": "private",
|
|
152863
|
+
"default": "undefined",
|
|
152864
|
+
"description": "What places the first and last labels again when one of them, or the footer, changes size."
|
|
152865
|
+
},
|
|
152866
|
+
{
|
|
152867
|
+
"kind": "method",
|
|
152868
|
+
"name": "observeLabels",
|
|
152869
|
+
"privacy": "private",
|
|
152870
|
+
"return": {
|
|
152871
|
+
"type": {
|
|
152872
|
+
"text": "void"
|
|
152873
|
+
}
|
|
152874
|
+
},
|
|
152875
|
+
"description": "Places the labels again whenever one of them or the footer changes size,\nas a webfont arriving after the first measure changes a label's width,\nand with it how far down the front edge reaches over it. Once the footer\nis rendered, and guarded because Lit SSR provides no `ResizeObserver`."
|
|
152876
|
+
},
|
|
152877
|
+
{
|
|
152878
|
+
"kind": "field",
|
|
152879
|
+
"name": "drag",
|
|
152880
|
+
"privacy": "private",
|
|
152881
|
+
"readonly": true,
|
|
152882
|
+
"default": "new DragTurn( (next) => { this.camera = next(this.camera) }, () => this.requestUpdate(), )",
|
|
152883
|
+
"description": "A drag across the chart's own drawing, which turns its view."
|
|
152884
|
+
},
|
|
152885
|
+
{
|
|
152886
|
+
"kind": "field",
|
|
152887
|
+
"name": "onDrawingDown",
|
|
152888
|
+
"privacy": "private",
|
|
152889
|
+
"readonly": true
|
|
152890
|
+
},
|
|
152891
|
+
{
|
|
152892
|
+
"kind": "field",
|
|
152893
|
+
"name": "onDrawingMove",
|
|
152894
|
+
"privacy": "private",
|
|
152895
|
+
"readonly": true
|
|
152896
|
+
},
|
|
152897
|
+
{
|
|
152898
|
+
"kind": "field",
|
|
152899
|
+
"name": "onDrawingUp",
|
|
152900
|
+
"privacy": "private",
|
|
152901
|
+
"readonly": true
|
|
152902
|
+
},
|
|
152903
|
+
{
|
|
152904
|
+
"kind": "field",
|
|
152905
|
+
"name": "onStripUp",
|
|
152906
|
+
"privacy": "private",
|
|
152907
|
+
"readonly": true,
|
|
152908
|
+
"description": "A tap shows the prism under it, unless the touch was a drag, which turned the view."
|
|
152909
|
+
},
|
|
152910
|
+
{
|
|
152911
|
+
"kind": "field",
|
|
152912
|
+
"name": "onPrismOver",
|
|
152913
|
+
"privacy": "private",
|
|
152914
|
+
"readonly": true,
|
|
152915
|
+
"description": "A pointer passing over a prism shows it, unless it is turning the view."
|
|
152813
152916
|
},
|
|
152814
152917
|
{
|
|
152815
152918
|
"kind": "field",
|
|
@@ -152834,7 +152937,7 @@
|
|
|
152834
152937
|
"kind": "field",
|
|
152835
152938
|
"name": "corners",
|
|
152836
152939
|
"type": {
|
|
152837
|
-
"text": "
|
|
152940
|
+
"text": "DrawnCorners | undefined"
|
|
152838
152941
|
},
|
|
152839
152942
|
"privacy": "private",
|
|
152840
152943
|
"description": "Where the renderer draws the two ends of the front edge, which the first and last labels stand at."
|
|
@@ -152947,13 +153050,13 @@
|
|
|
152947
153050
|
{
|
|
152948
153051
|
"name": "at",
|
|
152949
153052
|
"type": {
|
|
152950
|
-
"text": "
|
|
153053
|
+
"text": "DrawnCorners | undefined"
|
|
152951
153054
|
}
|
|
152952
153055
|
}
|
|
152953
153056
|
],
|
|
152954
153057
|
"description": "Says where the renderer draws the two ends of the front edge, under the\nfirst column and the last, as fractions of the strip from its top left,\nor `undefined` while they are out of view, where the labels keep the\nlast place they had. The `start` and `end` labels stand there. Called by\nthe connector.",
|
|
152955
153058
|
"type": {
|
|
152956
|
-
"text": "placeCorners(at:
|
|
153059
|
+
"text": "placeCorners(at: DrawnCorners | undefined) => void"
|
|
152957
153060
|
}
|
|
152958
153061
|
},
|
|
152959
153062
|
{
|
|
@@ -153052,22 +153155,14 @@
|
|
|
153052
153155
|
},
|
|
153053
153156
|
{
|
|
153054
153157
|
"kind": "method",
|
|
153055
|
-
"name": "
|
|
153158
|
+
"name": "placeLabels",
|
|
153056
153159
|
"privacy": "private",
|
|
153057
153160
|
"return": {
|
|
153058
153161
|
"type": {
|
|
153059
|
-
"text": "
|
|
153162
|
+
"text": "void"
|
|
153060
153163
|
}
|
|
153061
153164
|
},
|
|
153062
|
-
"
|
|
153063
|
-
{
|
|
153064
|
-
"name": "relief",
|
|
153065
|
-
"type": {
|
|
153066
|
-
"text": "Relief"
|
|
153067
|
-
}
|
|
153068
|
-
}
|
|
153069
|
-
],
|
|
153070
|
-
"description": "Where the front edge's two ends stand, for the labels that name them.\n**As shares of the drawing's width**, the one length a percentage margin\nis measured against, so a sheet places a label with no height to read."
|
|
153165
|
+
"description": "Stands the first and last labels under their ends of the front edge,\nclear of the drawing, as the page lays them out: on each label,\n`--spatial-heatmap-label-x` from the footer's inline start and\n`--spatial-heatmap-label-y` from its top, and `data-placed` once it has\na place. **Measured**, because a label is the page's type and the\ndrawing scales with its box, so neither size is known before layout."
|
|
153071
153166
|
},
|
|
153072
153167
|
{
|
|
153073
153168
|
"kind": "method",
|
|
@@ -155180,7 +155275,7 @@
|
|
|
155180
155275
|
"declarations": [
|
|
155181
155276
|
{
|
|
155182
155277
|
"kind": "class",
|
|
155183
|
-
"description": "A 3D scatter chart shows how three measures relate. The table's first\nthree numeric columns are measured across, up, and in depth, and each row\nis one point. `group-by` names a column of text, such as a team or a\ncluster, and each group is drawn in its own color.\n\n**Helix draws the frame, and a renderer draws the points in 3D.** Put a\nbox for the renderer inside the chart, and `connectSpatialScatterChart` from\n`@fusion.dev/helix-plot` draws the points in it with three.js and
|
|
155278
|
+
"description": "A 3D scatter chart shows how three measures relate. The table's first\nthree numeric columns are measured across, up, and in depth, and each row\nis one point. `group-by` names a column of text, such as a team or a\ncluster, and each group is drawn in its own color.\n\n**Helix draws the frame, and a renderer draws the points in 3D.** Put a\nbox for the renderer inside the chart, and `connectSpatialScatterChart` from\n`@fusion.dev/helix-plot`, given `threeScatterDriver` from\n`@fusion.dev/helix-plot/three`, draws the points in it with three.js and\nkeeps it in step with the chart. Until a renderer has drawn, and where none is\nconnected, the chart draws the points in 3D itself, in SVG, from the same\nplace the renderer's camera starts: a picture a print and a page without\nWebGL show too, which a drag or Shift with an arrow turns.\n\n**The table is the reading.** Every number is in it, and screen readers\nread it. The `summary` part names the three measures and the number of\npoints, and describes the plot.\n\n**The plot is read by key.** It takes focus, named by `label` or the\ncaption. The left and right arrows move from point to point in the table's\norder, Home and End go to the first and the last, and the up and down\narrows move among the measures the readout says first. The `live` part\nsays the point's row in words, and the renderer marks it. Shift with an\narrow turns the view, and Escape lets the point go.\n\n**A reading shows its row in a tooltip**, as on every chart: the point a\nmouse or a pen rests on in the drawing, the point tapped, or the one the\nkeys move to, once a renderer has drawn.\n\n**Readings are sent as every chart sends them.** `helix-reading-change`\nsays each move of the reading, by pointer or key, and `helix-reading-press`\na point clicked, tapped, or pressed with Enter or Space, each with the row\nof the table in `index`.\n\n**Keyboard.** The plot is one tab stop once it has points.\n\n| Key | What it does |\n|---|---|\n| Tab | Moves focus to the plot. |\n| Right, Left | Moves to the next or the previous point, in the table's order. |\n| Up, Down | Moves among the point's measures, which the readout says first. |\n| Home, End | Moves to the first or the last point. |\n| Shift with an arrow | Turns the view across, or tilts it up and down. |\n| Enter, Space | Presses the point, which sends `helix-reading-press`. |\n| Escape | Lets the point go. |",
|
|
155184
155279
|
"name": "HelixHeadlessSpatialScatterChart",
|
|
155185
155280
|
"cssParts": [
|
|
155186
155281
|
{
|
|
@@ -155391,7 +155486,15 @@
|
|
|
155391
155486
|
},
|
|
155392
155487
|
"privacy": "private",
|
|
155393
155488
|
"default": "SPATIAL_VIEW",
|
|
155394
|
-
"description": "Where the chart's own drawing is seen from, which Shift with an arrow turns."
|
|
155489
|
+
"description": "Where the chart's own drawing is seen from, which a drag or Shift with an arrow turns."
|
|
155490
|
+
},
|
|
155491
|
+
{
|
|
155492
|
+
"kind": "field",
|
|
155493
|
+
"name": "drag",
|
|
155494
|
+
"privacy": "private",
|
|
155495
|
+
"readonly": true,
|
|
155496
|
+
"default": "new DragTurn( (next) => { this.camera = next(this.camera) }, () => this.requestUpdate(), )",
|
|
155497
|
+
"description": "A drag across the chart's own drawing, which turns its view."
|
|
155395
155498
|
},
|
|
155396
155499
|
{
|
|
155397
155500
|
"kind": "field",
|
|
@@ -155449,6 +155552,15 @@
|
|
|
155449
155552
|
"description": "The table read as points, axes, and groups. **The first three numeric\ncolumns are across, up, and in depth**, and a row lacking any of them is\nleft out. A renderer reads it.",
|
|
155450
155553
|
"readonly": true
|
|
155451
155554
|
},
|
|
155555
|
+
{
|
|
155556
|
+
"kind": "field",
|
|
155557
|
+
"name": "memo",
|
|
155558
|
+
"type": {
|
|
155559
|
+
"text": "{ field: PlotField; groupBy: string; rows: unknown } | undefined"
|
|
155560
|
+
},
|
|
155561
|
+
"privacy": "private",
|
|
155562
|
+
"description": "The field last read, and what it was read from."
|
|
155563
|
+
},
|
|
155452
155564
|
{
|
|
155453
155565
|
"kind": "field",
|
|
155454
155566
|
"name": "active",
|
|
@@ -155553,6 +155665,19 @@
|
|
|
155553
155665
|
"readonly": true,
|
|
155554
155666
|
"description": "A mouse or a pen over the chart's own drawing puts the reading on the point nearest it."
|
|
155555
155667
|
},
|
|
155668
|
+
{
|
|
155669
|
+
"kind": "field",
|
|
155670
|
+
"name": "onDrawingDown",
|
|
155671
|
+
"privacy": "private",
|
|
155672
|
+
"readonly": true
|
|
155673
|
+
},
|
|
155674
|
+
{
|
|
155675
|
+
"kind": "field",
|
|
155676
|
+
"name": "onDrawingCancel",
|
|
155677
|
+
"privacy": "private",
|
|
155678
|
+
"readonly": true,
|
|
155679
|
+
"description": "A press the browser took back, such as for a scroll, which ends a drag as a release does."
|
|
155680
|
+
},
|
|
155556
155681
|
{
|
|
155557
155682
|
"kind": "field",
|
|
155558
155683
|
"name": "onDrawingLeave",
|
|
@@ -155564,7 +155689,7 @@
|
|
|
155564
155689
|
"name": "onDrawingTap",
|
|
155565
155690
|
"privacy": "private",
|
|
155566
155691
|
"readonly": true,
|
|
155567
|
-
"description": "A tap is a touch reader's hover: it shows the point nearest it until a tap lands elsewhere."
|
|
155692
|
+
"description": "A tap is a touch reader's hover, unless it was a drag, which turned the\nview: it shows the point nearest it until a tap lands elsewhere."
|
|
155568
155693
|
},
|
|
155569
155694
|
{
|
|
155570
155695
|
"kind": "method",
|
|
@@ -156825,6 +156950,150 @@
|
|
|
156825
156950
|
}
|
|
156826
156951
|
],
|
|
156827
156952
|
"description": "The reading drawn nearest the pointer, within `reach` pixels of it, or\n`-1`. **Measured on the screen**, through the drawing's own transform, so\na small point is found from as far as a large one, at any size the\ndrawing is shown."
|
|
156953
|
+
},
|
|
156954
|
+
{
|
|
156955
|
+
"kind": "class",
|
|
156956
|
+
"description": "A drag across a spatial chart's own drawing, which turns its view as the\npointer moves: across turns it, and down tilts it. **A press that moves\nless than a few pixels is a press**, so a click still puts the reading on\na point, and the click that ends a drag is the drag's: `dragged` says so,\nfor the chart to keep it from pressing anything.\n\n**The drawing turns in place.** Through a drag, `frame` holds the drawing\nat the size it had when the drag began, with the middle of the data where\nit stood, as the renderer's camera turns round its target. The drawing\nmay reach past its edges as it turns, and nothing on the page moves. Once\nthe drag ends, it settles into the frame that fits it.\n\nA touch turns the view when it moves across, and the page's stylesheet\nleaves a touch moving up and down to scroll the page.",
|
|
156957
|
+
"name": "DragTurn",
|
|
156958
|
+
"members": [
|
|
156959
|
+
{
|
|
156960
|
+
"kind": "field",
|
|
156961
|
+
"name": "held",
|
|
156962
|
+
"type": {
|
|
156963
|
+
"text": "{ id: number; moved: boolean; x: number; y: number } | undefined"
|
|
156964
|
+
},
|
|
156965
|
+
"privacy": "private"
|
|
156966
|
+
},
|
|
156967
|
+
{
|
|
156968
|
+
"kind": "field",
|
|
156969
|
+
"name": "last",
|
|
156970
|
+
"type": {
|
|
156971
|
+
"text": "{ frame: Frame; middle: PagePoint } | undefined"
|
|
156972
|
+
},
|
|
156973
|
+
"privacy": "private",
|
|
156974
|
+
"description": "The frame and the middle of the data, as the last render drew them."
|
|
156975
|
+
},
|
|
156976
|
+
{
|
|
156977
|
+
"kind": "field",
|
|
156978
|
+
"name": "kept",
|
|
156979
|
+
"type": {
|
|
156980
|
+
"text": "{ frame: Frame; middle: PagePoint } | undefined"
|
|
156981
|
+
},
|
|
156982
|
+
"privacy": "private",
|
|
156983
|
+
"description": "The frame held through a drag, and where the middle of the data stands in it."
|
|
156984
|
+
},
|
|
156985
|
+
{
|
|
156986
|
+
"kind": "field",
|
|
156987
|
+
"name": "settling",
|
|
156988
|
+
"type": {
|
|
156989
|
+
"text": "{ from: Frame; start: number } | undefined"
|
|
156990
|
+
},
|
|
156991
|
+
"privacy": "private",
|
|
156992
|
+
"description": "The frame a drag ended on, and when it ended, while the drawing settles."
|
|
156993
|
+
},
|
|
156994
|
+
{
|
|
156995
|
+
"kind": "field",
|
|
156996
|
+
"name": "dragged",
|
|
156997
|
+
"type": {
|
|
156998
|
+
"text": "boolean"
|
|
156999
|
+
},
|
|
157000
|
+
"default": "false",
|
|
157001
|
+
"description": "Whether the press that ended last was a drag."
|
|
157002
|
+
},
|
|
157003
|
+
{
|
|
157004
|
+
"kind": "field",
|
|
157005
|
+
"name": "moving",
|
|
157006
|
+
"type": {
|
|
157007
|
+
"text": "boolean"
|
|
157008
|
+
},
|
|
157009
|
+
"description": "Whether a drag is moving the view now.",
|
|
157010
|
+
"readonly": true
|
|
157011
|
+
},
|
|
157012
|
+
{
|
|
157013
|
+
"kind": "method",
|
|
157014
|
+
"name": "down",
|
|
157015
|
+
"return": {
|
|
157016
|
+
"type": {
|
|
157017
|
+
"text": "void"
|
|
157018
|
+
}
|
|
157019
|
+
},
|
|
157020
|
+
"parameters": [
|
|
157021
|
+
{
|
|
157022
|
+
"name": "event",
|
|
157023
|
+
"type": {
|
|
157024
|
+
"text": "PointerEvent"
|
|
157025
|
+
}
|
|
157026
|
+
}
|
|
157027
|
+
]
|
|
157028
|
+
},
|
|
157029
|
+
{
|
|
157030
|
+
"kind": "method",
|
|
157031
|
+
"name": "move",
|
|
157032
|
+
"return": {
|
|
157033
|
+
"type": {
|
|
157034
|
+
"text": "boolean"
|
|
157035
|
+
}
|
|
157036
|
+
},
|
|
157037
|
+
"parameters": [
|
|
157038
|
+
{
|
|
157039
|
+
"name": "event",
|
|
157040
|
+
"type": {
|
|
157041
|
+
"text": "PointerEvent"
|
|
157042
|
+
}
|
|
157043
|
+
}
|
|
157044
|
+
],
|
|
157045
|
+
"description": "Turns the view for a drag, and says whether the event was one."
|
|
157046
|
+
},
|
|
157047
|
+
{
|
|
157048
|
+
"kind": "method",
|
|
157049
|
+
"name": "up",
|
|
157050
|
+
"return": {
|
|
157051
|
+
"type": {
|
|
157052
|
+
"text": "boolean"
|
|
157053
|
+
}
|
|
157054
|
+
},
|
|
157055
|
+
"parameters": [
|
|
157056
|
+
{
|
|
157057
|
+
"name": "event",
|
|
157058
|
+
"type": {
|
|
157059
|
+
"text": "PointerEvent"
|
|
157060
|
+
}
|
|
157061
|
+
}
|
|
157062
|
+
],
|
|
157063
|
+
"description": "Ends a press, and says whether it was a drag."
|
|
157064
|
+
},
|
|
157065
|
+
{
|
|
157066
|
+
"kind": "method",
|
|
157067
|
+
"name": "frame",
|
|
157068
|
+
"return": {
|
|
157069
|
+
"type": {
|
|
157070
|
+
"text": "Frame"
|
|
157071
|
+
}
|
|
157072
|
+
},
|
|
157073
|
+
"parameters": [
|
|
157074
|
+
{
|
|
157075
|
+
"name": "fits",
|
|
157076
|
+
"type": {
|
|
157077
|
+
"text": "Frame"
|
|
157078
|
+
}
|
|
157079
|
+
},
|
|
157080
|
+
{
|
|
157081
|
+
"name": "middle",
|
|
157082
|
+
"type": {
|
|
157083
|
+
"text": "PagePoint"
|
|
157084
|
+
}
|
|
157085
|
+
}
|
|
157086
|
+
],
|
|
157087
|
+
"description": "The frame to draw in, given the one that fits the drawing now and where\nthe middle of the data stands on the page. Called on every render."
|
|
157088
|
+
},
|
|
157089
|
+
{
|
|
157090
|
+
"kind": "field",
|
|
157091
|
+
"name": "click",
|
|
157092
|
+
"readonly": true,
|
|
157093
|
+
"description": "Keeps the click that ends a drag from pressing a reading."
|
|
157094
|
+
}
|
|
157095
|
+
],
|
|
157096
|
+
"helix": {}
|
|
156828
157097
|
}
|
|
156829
157098
|
],
|
|
156830
157099
|
"exports": [
|
|
@@ -156923,6 +157192,14 @@
|
|
|
156923
157192
|
"name": "nearestTo",
|
|
156924
157193
|
"module": "src/spatial-scatter-chart/view.ts"
|
|
156925
157194
|
}
|
|
157195
|
+
},
|
|
157196
|
+
{
|
|
157197
|
+
"kind": "js",
|
|
157198
|
+
"name": "DragTurn",
|
|
157199
|
+
"declaration": {
|
|
157200
|
+
"name": "DragTurn",
|
|
157201
|
+
"module": "src/spatial-scatter-chart/view.ts"
|
|
157202
|
+
}
|
|
156926
157203
|
}
|
|
156927
157204
|
]
|
|
156928
157205
|
},
|
|
@@ -157051,7 +157328,7 @@
|
|
|
157051
157328
|
"declarations": [
|
|
157052
157329
|
{
|
|
157053
157330
|
"kind": "class",
|
|
157054
|
-
"description": "A 3D surface chart shows how one measure varies over two others, such as\nload by hour and by day. Each row of the table is one reading: **the\nfirst numeric column is across, the second is in depth, and the third is\nthe height.** The readings make a grid from every distinct place across\nand in depth, and a place with no reading is left open.\n\n**Helix draws the frame, and a renderer draws the surface in 3D.** Put a\nbox for the renderer inside the chart, and `connectSpatialSurfaceChart` from\n`@fusion.dev/helix-plot` draws the surface in it with three.js
|
|
157331
|
+
"description": "A 3D surface chart shows how one measure varies over two others, such as\nload by hour and by day. Each row of the table is one reading: **the\nfirst numeric column is across, the second is in depth, and the third is\nthe height.** The readings make a grid from every distinct place across\nand in depth, and a place with no reading is left open.\n\n**Helix draws the frame, and a renderer draws the surface in 3D.** Put a\nbox for the renderer inside the chart, and `connectSpatialSurfaceChart` from\n`@fusion.dev/helix-plot`, given `threeSurfaceDriver` from\n`@fusion.dev/helix-plot/three`, draws the surface in it with three.js,\nshaded from low to high in the theme's colors. Until a renderer has drawn, and where\nnone is connected, the chart draws the surface in 3D itself, in SVG, from\nthe same place the renderer's camera starts: a picture a print and a page\nwithout WebGL show too, which a drag or Shift with an arrow turns.\n\n**The table is the reading.** Every number is in it, and screen readers\nread it. The `summary` part names the measures, the number of readings,\nand the range of heights, and describes the plot.\n\n**The plot is read by key, across and in depth.** It takes focus, named by\n`label` or the caption. The left and right arrows move across, the down\nand up arrows move in depth, forward and back, and Home and End go to the\nfirst and the last place. The `live` part says the reading at the place in\nwords, and the renderer marks it. Shift with an arrow turns the view, and\nEscape lets the place go.\n\n**A reading shows its row in a tooltip**, as on every chart: the place a\nmouse or a pen rests on in the drawing, the place tapped, or the one the\nkeys move to, once a renderer has drawn. A place with no reading shows\nnone.\n\n**Readings are sent as every chart sends them.** `helix-reading-change`\nsays each move of the reading, and `helix-reading-press` a place clicked or\npressed with Enter or Space, each with the row of the table in `index`, or\n`-1` for a place with no reading.\n\n**Keyboard.** The plot is one tab stop once it has readings.\n\n| Key | What it does |\n|---|---|\n| Tab | Moves focus to the plot. |\n| Right, Left | Moves across to the next or the previous place. |\n| Down, Up | Moves in depth to the next or the previous place. |\n| Home, End | Moves to the first or the last place. |\n| Shift with an arrow | Turns the view across, or tilts it up and down. |\n| Enter, Space | Presses the place, which sends `helix-reading-press`. |\n| Escape | Lets the place go. |",
|
|
157055
157332
|
"name": "HelixHeadlessSpatialSurfaceChart",
|
|
157056
157333
|
"cssProperties": [
|
|
157057
157334
|
{
|
|
@@ -157271,7 +157548,15 @@
|
|
|
157271
157548
|
},
|
|
157272
157549
|
"privacy": "private",
|
|
157273
157550
|
"default": "SPATIAL_VIEW",
|
|
157274
|
-
"description": "Where the chart's own drawing is seen from, which Shift with an arrow turns."
|
|
157551
|
+
"description": "Where the chart's own drawing is seen from, which a drag or Shift with an arrow turns."
|
|
157552
|
+
},
|
|
157553
|
+
{
|
|
157554
|
+
"kind": "field",
|
|
157555
|
+
"name": "drag",
|
|
157556
|
+
"privacy": "private",
|
|
157557
|
+
"readonly": true,
|
|
157558
|
+
"default": "new DragTurn( (next) => { this.camera = next(this.camera) }, () => this.requestUpdate(), )",
|
|
157559
|
+
"description": "A drag across the chart's own drawing, which turns its view."
|
|
157275
157560
|
},
|
|
157276
157561
|
{
|
|
157277
157562
|
"kind": "field",
|
|
@@ -157296,11 +157581,10 @@
|
|
|
157296
157581
|
"kind": "field",
|
|
157297
157582
|
"name": "last",
|
|
157298
157583
|
"type": {
|
|
157299
|
-
"text": "
|
|
157584
|
+
"text": "SurfaceField | undefined"
|
|
157300
157585
|
},
|
|
157301
157586
|
"privacy": "private",
|
|
157302
|
-
"
|
|
157303
|
-
"description": "The field last read, kept so a change of it can be told."
|
|
157587
|
+
"description": "The field last told, kept so a change of it can be told."
|
|
157304
157588
|
},
|
|
157305
157589
|
{
|
|
157306
157590
|
"kind": "field",
|
|
@@ -157329,6 +157613,15 @@
|
|
|
157329
157613
|
"description": "The table read as a grid of heights. **The first numeric column is\nacross, the second is in depth, and the third is the height.** A\nrenderer reads it.",
|
|
157330
157614
|
"readonly": true
|
|
157331
157615
|
},
|
|
157616
|
+
{
|
|
157617
|
+
"kind": "field",
|
|
157618
|
+
"name": "memo",
|
|
157619
|
+
"type": {
|
|
157620
|
+
"text": "{ field: SurfaceField; rows: unknown } | undefined"
|
|
157621
|
+
},
|
|
157622
|
+
"privacy": "private",
|
|
157623
|
+
"description": "The field last read, and the rows it was read from."
|
|
157624
|
+
},
|
|
157332
157625
|
{
|
|
157333
157626
|
"kind": "field",
|
|
157334
157627
|
"name": "active",
|
|
@@ -157459,6 +157752,19 @@
|
|
|
157459
157752
|
"readonly": true,
|
|
157460
157753
|
"description": "A mouse or a pen over the chart's own drawing puts the reading on the\nplace nearest it: over a face, the face's nearest corner on the screen,\nso any point of the surface finds a reading, and otherwise a place\nwithin reach. The face under the pointer is the one in front, since the\nfaces are painted back to front."
|
|
157461
157754
|
},
|
|
157755
|
+
{
|
|
157756
|
+
"kind": "field",
|
|
157757
|
+
"name": "onDrawingDown",
|
|
157758
|
+
"privacy": "private",
|
|
157759
|
+
"readonly": true
|
|
157760
|
+
},
|
|
157761
|
+
{
|
|
157762
|
+
"kind": "field",
|
|
157763
|
+
"name": "onDrawingCancel",
|
|
157764
|
+
"privacy": "private",
|
|
157765
|
+
"readonly": true,
|
|
157766
|
+
"description": "A press the browser took back, such as for a scroll, which ends a drag as a release does."
|
|
157767
|
+
},
|
|
157462
157768
|
{
|
|
157463
157769
|
"kind": "field",
|
|
157464
157770
|
"name": "onDrawingLeave",
|
|
@@ -157470,7 +157776,7 @@
|
|
|
157470
157776
|
"name": "onDrawingTap",
|
|
157471
157777
|
"privacy": "private",
|
|
157472
157778
|
"readonly": true,
|
|
157473
|
-
"description": "A tap is a touch reader's hover: it shows the place nearest it until a tap lands elsewhere."
|
|
157779
|
+
"description": "A tap is a touch reader's hover, unless it was a drag, which turned the\nview: it shows the place nearest it until a tap lands elsewhere."
|
|
157474
157780
|
},
|
|
157475
157781
|
{
|
|
157476
157782
|
"kind": "method",
|
|
@@ -209056,6 +209362,6 @@
|
|
|
209056
209362
|
],
|
|
209057
209363
|
"helix": {
|
|
209058
209364
|
"package": "@fusion.dev/helix-headless",
|
|
209059
|
-
"version": "0.
|
|
209365
|
+
"version": "0.196.0"
|
|
209060
209366
|
}
|
|
209061
209367
|
}
|
|
@@ -57,14 +57,19 @@ export interface Relief {
|
|
|
57
57
|
y: number;
|
|
58
58
|
};
|
|
59
59
|
/**
|
|
60
|
-
* The two ends of the front edge, at the foot of the slab
|
|
61
|
-
*
|
|
62
|
-
*
|
|
60
|
+
* The two ends of the front edge, the long edge at the foot of the slab
|
|
61
|
+
* nearer the reader: `start` under the first column, and `end` under the
|
|
62
|
+
* last. From the isometric camera they are the left corner and the bottom
|
|
63
|
+
* one. The strip's first and last labels stand there.
|
|
63
64
|
*/
|
|
64
65
|
corners: {
|
|
65
66
|
end: Point;
|
|
66
67
|
start: Point;
|
|
67
68
|
} | undefined;
|
|
69
|
+
/** The middle of the grid, halfway up the tallest prism, which a drag turns the view round. */
|
|
70
|
+
middle: Point;
|
|
71
|
+
/** The corners of the box the slab and the tallest prism fill, which every face stands inside. */
|
|
72
|
+
outline: Point[];
|
|
68
73
|
/**
|
|
69
74
|
* The prisms' places in `prisms`, back to front, the order to paint them
|
|
70
75
|
* in. From the isometric camera it is the order of the readings.
|
|
@@ -104,3 +109,30 @@ export declare const highestOf: (values: readonly (number | undefined)[]) => num
|
|
|
104
109
|
* leaves no gap between neighbors.
|
|
105
110
|
*/
|
|
106
111
|
export declare const reliefOf: (heights: readonly number[], rows: number, footprint: number, camera?: Camera) => Relief;
|
|
112
|
+
/** A label's size on the page. */
|
|
113
|
+
export interface LabelSize {
|
|
114
|
+
height: number;
|
|
115
|
+
width: number;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Where the strip's first and last labels stand, as the top left of each,
|
|
119
|
+
* on a page where the drawing's `outline` and its front edge's `corners`
|
|
120
|
+
* stand where given and the labels may run from 0 to `span` across.
|
|
121
|
+
*
|
|
122
|
+
* **Under its corner, and clear of the drawing.** A label runs away from the
|
|
123
|
+
* front edge, so the edge does not fall across it, and stays inside the
|
|
124
|
+
* span, which can move it under the edge; it then stands as far down as the
|
|
125
|
+
* outline reaches over it, and no lower than `lowest`, where a renderer's
|
|
126
|
+
* drawing is cut. Where the two would meet, as when the strip is seen end on,
|
|
127
|
+
* the last stands under the first, or beside it where there is no room below.
|
|
128
|
+
*/
|
|
129
|
+
export declare const labelPlaces: (outline: readonly Point[], corners: {
|
|
130
|
+
end: Point;
|
|
131
|
+
start: Point;
|
|
132
|
+
}, sizes: {
|
|
133
|
+
end: LabelSize;
|
|
134
|
+
start: LabelSize;
|
|
135
|
+
}, span: number, gap: number, lowest?: number) => {
|
|
136
|
+
end: Point;
|
|
137
|
+
start: Point;
|
|
138
|
+
};
|