@trdrs/quickcharts 3.0.0 → 4.0.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/CHANGELOG.md +101 -0
- package/README.md +234 -23
- package/dist/adapters/rest.d.ts +1 -1
- package/dist/{ar-HLKX6L6O.js → ar-FXZ5QJUR.js} +205 -56
- package/dist/ar-FXZ5QJUR.js.map +1 -0
- package/dist/{assets-C1VjN7DP.d.ts → assets-Gg-UquDA.d.ts} +284 -61
- package/dist/{ca_ES-3ALUJ2FI.js → ca_ES-3WVKFBIF.js} +205 -56
- package/dist/ca_ES-3WVKFBIF.js.map +1 -0
- package/dist/chunk-C4MEVUNK.js +11449 -0
- package/dist/chunk-C4MEVUNK.js.map +1 -0
- package/dist/{de-GXKOZYHP.js → de-V72Q3OI7.js} +205 -56
- package/dist/de-V72Q3OI7.js.map +1 -0
- package/dist/drawings.d.ts +24 -13
- package/dist/drawings.js +5 -1
- package/dist/{es-R7WSUWO2.js → es-CNQ3OJ6E.js} +205 -56
- package/dist/es-CNQ3OJ6E.js.map +1 -0
- package/dist/feature-manifest.json +74 -11
- package/dist/{fr-EBUMQLPT.js → fr-5WQBCGR4.js} +205 -56
- package/dist/fr-5WQBCGR4.js.map +1 -0
- package/dist/{he_IL-GCAXKEWB.js → he_IL-WXKA77UE.js} +205 -56
- package/dist/he_IL-WXKA77UE.js.map +1 -0
- package/dist/{id_ID-6JYEEKEA.js → id_ID-XPBAYSWK.js} +205 -56
- package/dist/id_ID-XPBAYSWK.js.map +1 -0
- package/dist/index.d.ts +1775 -1660
- package/dist/index.js +4513 -1815
- package/dist/index.js.map +1 -1
- package/dist/{it-IMLHI5VO.js → it-DR2EBNWX.js} +205 -56
- package/dist/it-DR2EBNWX.js.map +1 -0
- package/dist/{ja-QDEQ2EYA.js → ja-URB2CPXO.js} +205 -56
- package/dist/ja-URB2CPXO.js.map +1 -0
- package/dist/{ko-MTA7BZI3.js → ko-OE47NYVP.js} +205 -56
- package/dist/ko-OE47NYVP.js.map +1 -0
- package/dist/{ms_MY-K4EAHE5J.js → ms_MY-BKCFRK2K.js} +205 -56
- package/dist/ms_MY-BKCFRK2K.js.map +1 -0
- package/dist/{pl-CIIDQ3SB.js → pl-3IKQRG3Y.js} +205 -56
- package/dist/pl-3IKQRG3Y.js.map +1 -0
- package/dist/{pt-3HA2PDUN.js → pt-PZHV5EZE.js} +205 -56
- package/dist/pt-PZHV5EZE.js.map +1 -0
- package/dist/quickcharts.css +1627 -422
- package/dist/{resources-C0cYryO9.d.ts → resources-Le6flcEn.d.ts} +1 -1
- package/dist/{ru-2F2VGHMW.js → ru-BAL6RQUV.js} +205 -56
- package/dist/ru-BAL6RQUV.js.map +1 -0
- package/dist/{sv-HCBRKFRZ.js → sv-Y6GBGDHM.js} +205 -56
- package/dist/sv-Y6GBGDHM.js.map +1 -0
- package/dist/{th-WWPM2QKB.js → th-MAMLMZKU.js} +205 -56
- package/dist/th-MAMLMZKU.js.map +1 -0
- package/dist/theme-manifest.json +148 -14
- package/dist/{tr-M57AMCWK.js → tr-3LQHINUZ.js} +205 -56
- package/dist/tr-3LQHINUZ.js.map +1 -0
- package/dist/{vi-YJHN2OK7.js → vi-GR4PSDKP.js} +205 -56
- package/dist/vi-GR4PSDKP.js.map +1 -0
- package/dist/{zh-AIFC65OE.js → zh-2RJ5VNAI.js} +205 -56
- package/dist/zh-2RJ5VNAI.js.map +1 -0
- package/dist/{zh_TW-2LLLW4H6.js → zh_TW-XEBSACHU.js} +205 -56
- package/dist/zh_TW-XEBSACHU.js.map +1 -0
- package/package.json +1 -1
- package/dist/ar-HLKX6L6O.js.map +0 -1
- package/dist/ca_ES-3ALUJ2FI.js.map +0 -1
- package/dist/chunk-DBJQXHLQ.js +0 -7003
- package/dist/chunk-DBJQXHLQ.js.map +0 -1
- package/dist/de-GXKOZYHP.js.map +0 -1
- package/dist/es-R7WSUWO2.js.map +0 -1
- package/dist/fr-EBUMQLPT.js.map +0 -1
- package/dist/he_IL-GCAXKEWB.js.map +0 -1
- package/dist/id_ID-6JYEEKEA.js.map +0 -1
- package/dist/it-IMLHI5VO.js.map +0 -1
- package/dist/ja-QDEQ2EYA.js.map +0 -1
- package/dist/ko-MTA7BZI3.js.map +0 -1
- package/dist/ms_MY-K4EAHE5J.js.map +0 -1
- package/dist/pl-CIIDQ3SB.js.map +0 -1
- package/dist/pt-3HA2PDUN.js.map +0 -1
- package/dist/ru-2F2VGHMW.js.map +0 -1
- package/dist/sv-HCBRKFRZ.js.map +0 -1
- package/dist/th-WWPM2QKB.js.map +0 -1
- package/dist/tr-M57AMCWK.js.map +0 -1
- package/dist/vi-YJHN2OK7.js.map +0 -1
- package/dist/zh-AIFC65OE.js.map +0 -1
- package/dist/zh_TW-2LLLW4H6.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,106 @@
|
|
|
1
1
|
# @trdrs/quickcharts
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
## 4.0.0
|
|
6
|
+
|
|
7
|
+
Settled settings dialogs and factory looks for every drawing tool, words typed on the chart, a rebuilt replay date picker, glyphs drawn as the chart's own artwork, recent picks narrowed by the selected class, and drawings the catalog cannot restore named as unreadable. 4.0 removes the content card and the catalog keys the settled dialogs do not read, and gives drawing props new names and meanings, so a host upgrades as the guide below says. A drawing saved by 3.x restores with the look it was saved with.
|
|
8
|
+
|
|
9
|
+
The built-in palettes retune their dialog and status colors: the veil behind a light modal is `rgba(156, 156, 156, 0.5)`, a select's chevron and a flyout's arrow read in `chrome.caret` (`#707070` light, `#8c8c8c` dark), the muted ink is `#6a6a6a` light and `#9b9b9b` dark, the status inks are `#078671`, `#df323f` and `#ac6600` in light and `#089981`, `#f34452` and `#ff9800` in dark, `drawing.line` is `#2962ff` in both modes, and `drawing.selected`, the ring of a selected drawing's handles, is `#2962ff` light and `#1e53e5` dark. Every ink reads at the WCAG 2.2 AA ratio on each ground it is drawn over.
|
|
10
|
+
|
|
11
|
+
The drawing settings dialog is a card at least 380px wide under a 68px header that carries the drawing's name at 20px, a pencil that renames it in place, and the close; a page strip of 16px tabs over a 4px track, the shown page carried by a bar that slides to the next; a two-column page whose labels share one column and whose rows stand 50px; list buttons that open their choices under them, several at once where a row takes several; and a footer with the Template list button, Cancel and Ok. `DrawingOptions.name` holds the name a viewer gives a drawing, saved with it, and a drawing without one is called by its tool's name.
|
|
12
|
+
|
|
13
|
+
A color in the drawing settings dialog opens one popover directly under its button, past the dialog's edge where it needs to, and keeps its whole width and height wherever it opens, moving left or above its button to stay in view rather than narrowing or scrolling; the settings bar's color panels keep theirs the same way: the offered colors on a ten-wide grid (the greys and ten hues, then six ramps of them), the colors the viewer added after a rule with the plus that adds one, the opacity as a track and a percent field, and for a stroke the Thickness and Line style rows as joined segments. Every choice applies to the drawing at once and the popover stays up for the next one, while Cancel still puts back everything from before the dialog opened. The plus opens a custom color editor with a hex field that takes three or six digits, a saturation and brightness area and a hue strip; a color added there joins the viewer's own colors, kept with the drawing preferences in `ChartStorage`, and is chosen. The arrows move over the grid and the rows, Enter or Space chooses, Tab stays in the popover, and Escape returns to the button. The line-end list is as wide as its rows, and both line-end marks are the chart's own drawing.
|
|
14
|
+
|
|
15
|
+
The line, shape and curve tools open with their factory looks: the line tools in `#2962ff` at 2px with 14px words (12px for a trend angle and the horizontal lines), and each shape and curve in its own hue at 2px with a background of that hue at a fifth, switched off on a curve. Their settings pages carry the rows their kinds offer: a line's ends, extensions, middle point, price labels and stats under Info, with `showPipsChange` counting the change in the symbol's smallest price move, `statsPosition` taking `auto`, and `alwaysShowStats` keeping them on screen when the line is not selected, since they otherwise show only while it is; a level's price label and a time line's time label; a rectangle's middle line in a stroke of its own; a shape's background switched by `fillBackground`; a curve's ends and its extensions along its end tangents; and a Text page whose words stand where `textVAlign` and `textHAlign` put them, with `textOrientation` turning a vertical line's words to run up it. `NO_COORDINATES_TAB` and `PRICE_ONLY_COORDS` join the settings capabilities, and the `bold` and `italic` icons draw the Text page's weight and slant toggles.
|
|
16
|
+
|
|
17
|
+
A Fibonacci retracement, a trend-based extension and a fib channel open on twenty-four levels, the eleven classic ratios shown and thirteen more to switch on, each in its own color, drawn at 2px with 12px labels over bands at a fifth; a retracement and an extension draw their trend line dashed in grey. Their Style pages carry the trend line, the levels' thickness and style, the extensions, the level grid two to a line, one color for every level, the bands' switch and opacity, Reverse, Prices, the labels' reading and place, the levels' own words and their place, the labels' size, and log price levels: `trendLine`, `trendLineColor`, `trendLineWidth`, `trendLineStyle`, `fillBackground`, `backgroundOpacity`, `coeffsAsPercents`, `labelsHAlign`, `labelsVAlign`, `showText`, `textHAlign`, `textVAlign` and `levelsOnLogScale`, with `Viewport.logScale` saying whether the price scale is logarithmic. A fib saved with its earlier `background` switch keeps its setting as `fillBackground`. A number field's stepper keeps every digit the value carries.
|
|
18
|
+
|
|
19
|
+
A fib time zone, a trend-based fib time, fib circles, speed resistance arcs, a fib wedge and a pitchfan open on their own levels, each in its own color and stroke, and their Style pages stand the levels one to a line, each level's switch, value and stroke (`FibLevel.width` and `FibLevel.style`), under the trend line or the median and over the one color, the bands' switch and opacity, and the rows of their own: a time zone's and a trend-based time's Labels and where they stand, a circle fib's Levels and Coeffs as percents, an arc fib's Levels and Full circles, and a wedge's Levels. A wedge has no Coordinates page. A speed resistance fan and a gann box divide their box on seven price and seven time divisions, `priceLevels` and `timeLevels`, each side under its section with its labels' switches; a fan adds its bands, a grid in a stroke of its own and Reverse, and a gann box its price and time bands on their own switches and opacities, its angles in a color of their own, and Reverse. A fan saved with one set of levels reads them as its price divisions and a gann box as both its price and its time divisions, and the settings bar's stroke color recolors every set of levels a tool holds.
|
|
20
|
+
|
|
21
|
+
The four pitchforks open on nine line pairs, the half in `#089981` and the tines in `#2962ff` shown and seven more to switch on, each pair in its own color at 2px, with a red median and bands at a fifth. Their Style pages carry Extend lines, the median's stroke (`medianColor`, `medianWidth`, `medianStyle`), the pairs one to a line with each pair's switch, value and stroke, the one color, the bands' switch and opacity (`fillBackground`, `backgroundOpacity`) and the construction in a Style list that switches it in place. A fork saved with its earlier `background` switch keeps its setting as `fillBackground`.
|
|
22
|
+
|
|
23
|
+
A fib spiral opens in `#00bcd4` at 2px, and its Style page carries its line and Counterclockwise, `counterclockwise` winding it the other way about its first point.
|
|
24
|
+
|
|
25
|
+
A gann square and a gann square fixed open on six grid lines, eleven fan lines (2x1, 1x1 and 1x2 shown) and eleven arcs, each in its own color at 2px over bands at a fifth, and their Style pages set the Levels, Fans and Arcs two to a line, each its switch with its place or its ratio and its stroke, then the one color, the bands' switch and opacity, and Reverse: `levels`, `fans` and `arcs` hold the lines, with `fillBackground`, `backgroundOpacity` and `reverse`. A gann square holds its second corner at `scaleRatio` price per bar, taken from the pane when it is first drawn, which its Price/bar ratio field shows and sets, and reads its ranges and ratio under it while `showLabels` is on, in the size, weight and slant its Ranges and ratio row sets. A gann fan opens on nine rays, 1/8 to 8/1, each in its own color and stroke over bands at a fifth, its page a line for each ray named by its ratio, the one color, the bands and Labels. A square or a fan saved with its earlier `background` switch keeps its setting as `fillBackground`, a square saved with its earlier levels paints them as it was saved until its settings change and then takes its factory lines, and the settings bar's stroke color recolors a square's fans and arcs with its grid.
|
|
26
|
+
|
|
27
|
+
A regression trend fits through any of nine sources (`BAR_PRICE_SOURCES`: open, high, low, close, volume, `hl2`, `hlc3`, `ohlc4`, `hlcc4`), opens with its line dashed red at 1px and its bands blue at 2px two deviations either side, and its pages carry Upper Deviation, Lower Deviation (counted down from the line, so a saved trend's lower deviation reads as its negative), their switches and the source on Inputs, and the line's and bands' switches and strokes, Extend lines and Pearson's R on Style: `baseLine`, `baseColor`, `baseWidth`, `baseStyle`, the same for `up` and `down`, `extendLines` and `showPearsons`. A parallel channel opens on seven levels, 0 and 1 shown at 2px and the half dashed at 1px, each in its own stroke, its page carrying them one to a line with the extensions and the background, and its Coordinates page its parallel's Price offset. A flat top/bottom and a disjoint channel open in `#ff9800` and `#089981` with no Coordinates page, their pages carrying the line and its ends, the extensions, the sides' prices in a text style of their own (`showPrices`, `pricesColor`, `pricesFontSize`, `pricesBold`, `pricesItalic`) and the background. Every channel opens with its body at a fifth and 14px words, and stands them above, inside or below it.
|
|
28
|
+
|
|
29
|
+
The six chart patterns open in their factory looks: an XABCD and a cypher pattern in `#2962ff`, an ABCD and a head and shoulders in `#089981`, a three drives and a triangle pattern in `#673ab7`, each at 2px with white 12px letters, the shaded ones shading their legs in their hue at fifteen percent. Their Style pages carry a Label row (the letters' color, size, weight and slant), the border, and for the shaded ones the background, switched by `fillBackground`; a pattern carries no words of its own and has no Text page unless a save brings some, and a pill grows with its letters. A three drives pattern stands on seven points, the reversal after its third drive the last, and one saved on six completes with its reversal on its third drive, drawing as it was saved.
|
|
30
|
+
|
|
31
|
+
The five Elliott wave counts open in their colors at 2px (an impulse and a correction in `#3d85c6`, a triangle in `#ff9800`, the combos in `#6aa84f`), and their Style pages carry the wave's color, the wave's switch and thickness (`showWave`) and the count's degree (`degree`, one of fifteen from supermillennium to minuscule), which writes each label ringed, in parentheses or bare, in roman numerals or figures, and in capitals or small letters. The labels take the wave's color, and `LABELED_PATTERNS` lists the six chart patterns alone.
|
|
32
|
+
|
|
33
|
+
Cyclic lines open in `#80ccdb` and the sine line and time cycles in `#159980`, each at 2px, the cyclic lines' and the sine line's Style pages naming their stroke Lines; a time cycle shades its humps in `#6aa84f` at half, switched by `fillBackground` on its Background row.
|
|
34
|
+
|
|
35
|
+
A forecast opens in `#2962ff` at 2px, its source a tenth see-through and its verdicts green and red, and its Style page sets the line and each of its ten colors on a row of its own. A sector shades the two halves of its slice in `color1` and `color2`, blue and purple at a fifth, inside a grey 2px border, with `fillBackground` switching them, and has no Coordinates page. A bars pattern paints its bars as their high-low or open-close ranges or as a line through one price of each (`mode`: `hl`, `oc`, `close`, `open`, `high`, `low`, `hl2`, `BARS_PATTERN_MODES`), a pattern saved painting candle sticks painting them (`candles`) until a mode is chosen, and has no Coordinates page. A ghost feed's page writes its candles' average span in the symbol's minimum ticks, its borders and wick on switches of their own, and its transparency on a track. `FILLABLE` leaves out the sector, whose backgrounds are its own.
|
|
36
|
+
|
|
37
|
+
A long and a short position open with grey 1px lines, white 12px words and a leverage of 10000, so the risk sets their quantity, and have no Coordinates page: their Inputs page carries the account size, the lot size, the risk as a percent or an amount in the symbol's currency, the entry price, the leverage, the target and the stop each as ticks from the entry and as a price, and how the quantity is written (`qtyPrecision`); their Style page the lines, the stop and target colors, the words' color and size, Price labels, the stats the tags read (`stats`, thirteen to choose from, all but the two levels' P&L at first), Compact stats mode and Always show stats (`alwaysShowStats`): the tags read while the position is hovered or selected, and at rest only while their stats always show. A drawing layer's `setCurrency` tells its drawings the currency the symbol is quoted in, and the widget passes it from the symbol's `currencyCode`.
|
|
38
|
+
|
|
39
|
+
An anchored VWAP weighs any of nine sources (`source`, the typical price at first) and stands up to three bands off its average in volume-weighted standard deviations or percents (`bandsMode`, `bandMultipliers`, `bandsOn`), each band's upper and lower line in a stroke of its own (`upperBands`, `lowerBands`), the first band's body in the drawing's fill (`fillBackground`) and its latest average on the price scale (`showPriceLabel`); its Inputs page carries the bands and the source, its Style page the average, each band line, the body and Price label, and it has no Coordinates page. A volume profile's pages carry Rows Layout, Row Size, Volume, Value Area Volume and, for a fixed range, Extend Right on Inputs, and on Style the histogram's switch (`showProfile`), its values (`showValues`, `valuesColor`), its width and edge, its four colors, VAH, VAL, POC, Developing POC and Developing VA each on a switch in a stroke of its own, the box's background (`boxColor`) and, for an anchored profile, its lines on the price scale (`showLabelsOnPriceScale`). A price range, a date range and a date and price range read the stats their Stats list chooses (`showPriceRange`, `showPercentChange`, `showPipsChange`, `showBarsRange`, `showDateTimeRange`, `showVolume`) in a label of their own (`labelColor`, `labelFontSize`, `fillLabelBackground`, `labelBackgroundColor`), switch their span's background, run a price range on to the left or right and a date range to the top or bottom, and border a date and price range on its switch (`drawBorder`, `borderColor`, `borderWidth`); a meter saved with its earlier stats keeps them.
|
|
40
|
+
|
|
41
|
+
The text and annotation tools open in their factory looks and pages. A text opens blue at 14px with no Coordinates page, its Text page carrying its background and border each on a switch (`fillBackground`, `drawBorder`) and Text wrap (`wordWrap`, `wordWrapWidth`); a text saved with its words centered keeps them so. A comment opens white on blue at 16px, its words' row named Text without weight or slant; a callout white on teal at 14px with a 2px border, its border's width on its Border row and Text wrap after it; a price label white and bold on blue, its Style page carrying its Text, Background and Border. A note stands on two points, the point it notes and its label, a line between them: its Style page carries Label background and Label border on their switches (`fillBackground`, `drawBorder`, `borderColor`) and Line color, and a note saved on one point keeps that point and stands its label's corner on it as it was drawn, the line showing once the label is moved off. A price note's Style page carries its tag's Label text, Label background and Label border (`labelTextColor`, `labelFontSize`, `labelBold`, `labelItalic`, `labelBackgroundColor`, `labelBorderColor`) and Line color, and its Text page where its words stand. A pin's Style page carries its marker's color under Label and its Text page its box's background and border. A signpost's Style page carries Emoji pin (`showImage`, with an emoji picker for `emoji`) and its plate's color, and its Coordinates page its vertical position over its bar (`position`) and its bar. A table opens on three by three dark cells, its dialog its Style and Visibility pages alone, the Style page carrying Background, Border, Text and Text alignment (`textHAlign`), its header band off at first; its cells, rows and columns are set on the chart, and `INERT_PROPS` lists its `cells` and `headerRow`. The arrow marks, the arrow marker and the flag open in their own colors, each named on its Style page for what it paints. `NO_STYLE_TAB` lists the text, the comment and the callout, `NO_STROKE` leaves out the comment, the callout and the price label, whose borders take the stroke, `NO_LINE_DECOR` lists the price label and `NO_DASH` the callout.
|
|
42
|
+
|
|
43
|
+
A brush opens teal at 2px with its background off (`fillBackground`) and its ends plain, and a path blue at 2px with an arrow at its last point, each stroke's ends set on its Line row (`leftEnd`, `rightEnd`); a brush saved with a fill shows it, its background switched on. A highlighter opens red at a fifth, 20px wide, its page carrying its color and its width in pixels. An emoji and a sticker open at 72px and an icon in blue at 40px, its page carrying its tint. The strokes, the glyphs and the image have no Coordinates page, and the emoji and the sticker open on their Visibility page. An image's page chooses its picture from a box that names the formats and the size the intake takes, and sets its transparency on a track.
|
|
44
|
+
|
|
45
|
+
`THEME_ROLES` gains five roles, each in both built-in palettes: `control.outline` outlines a dialog's Cancel at rest (`#2e2e2e` light, `#ffffff` dark), `control.onInk` inks a mark cut from the emphasis fill, such as a chosen thickness, line style or line end (`#ffffff` light, `#000000` dark), `control.selectEdgeHover` is a list button's edge under the pointer (`#a8a8a8` light, `#808080` dark), and `motion.durationGlide` (`100ms`) and `motion.easingInOut` (`ease-in-out`) time the drawing settings dialog's tab bar sliding to the page shown, the opacity knob gliding on `motion.durationGlide` too.
|
|
46
|
+
|
|
47
|
+
A drawing saves at `v: 3` (`SerializedDrawing.v`). A save at `v: 2` restores with the look it was saved with: each tool whose factory values, prop meanings or paint rules differ writes, as it restores, the values that paint the save as it was painted, and saves at `v: 3` with them, a pin's words on their dark plate, a price label's pill in its stroke color at 18% and a brush's fill among them. The looks a tool's pages do not set ride in props they do not offer, which `INERT_PROPS` lists: `bodyColor` on a regression trend, `textAtStart` on the channels, `bandsByPane`, `wordsInLabels` and `labelsAtStart` on a retracement, an extension and a fib channel, `roundPercents` on fib circles, `shadedBands` on the pitchforks, `tint` on a gann box, `pillRadius` on the patterns and the wave counts, `labelPills` on the wave counts, `candles` on a bars pattern, `outline` on the volume profiles, `borderWidth` on a callout, `labelTextStyle` on the range meters, and `extendLeft` and `extendRight` on a date and price range. They stay with the drawing: its tool's remembered default and the templates saved from it leave them out, and Apply defaults sets them to the tool's own. A gann square, a gann square fixed, a speed resistance fan, a pitchfan, a price note and a signpost saved at `v: 2` paint as they were saved, their settings held in `savedLook`, until their settings change, when they take their present design; Cancel puts the saved look back with the drawing's points. A trend angle draws the ends and words a save carries, and a pattern or a wave count draws the words a save carries above it, its Text page offered for them alone. A remembered default or a template written by an earlier format applies the setup it names as its tool reads a save's, a regression trend's lower deviation counted down from its line and a bars pattern's candles among them. A host that writes drawings itself writes `v: 3` for the tools' present looks.
|
|
48
|
+
|
|
49
|
+
The image tool takes a WEBP as well as a JPG or a PNG (`IMAGE_TYPES`, `IMAGE_ACCEPT`), its box reading "JPG, PNG or WEBP" and its refusal naming the three. `DrawingAssetPort.intakeImage` stores a PNG or a JPEG whatever the picked file was, so a saved chart opens everywhere: a host whose intake stores the picked file's own data URL decodes a WEBP and re-encodes it on a canvas, as a PNG where it has transparency and a JPEG otherwise.
|
|
50
|
+
|
|
51
|
+
The drawing settings dialog opens in place over an undimmed chart: it appears and leaves at once, and a press beside it still closes it. Its lists hang under the controls that open them, past the dialog's edge where they need to: a list of choices as wide as its longest choice and never narrower than its button, so no choice is cut short, a list of switches as wide as its button, each row ticking the checkbox the settings rows wear on the list's own ground rather than inverting, the keyboard ringing a row inside its own edge, and the Template menu sized to its words with the button ringed while it is open; a select's chevron turns on the standard timing. Apply defaults puts the tool's own look and setup on the drawing at once and keeps its words, and "Save as…" reads with an ellipsis. The Image tool's picker is a 380px card under the settings dialog's header, its drop box 8px under the header, its transparency a 180px track at the end of its own line, and its footer the settings dialog's, Cancel and Ok at its end in the same 34px buttons.
|
|
52
|
+
|
|
53
|
+
The drawing settings pages settle their geometry: a number field keeps 63px for its words and a 22 by 28 slot for its steppers whether they show or not, and a field that cannot be used keeps no slot; a price in a field (a point's, a position's entry, target and stop, a channel's offset) is written with as many decimals as the symbol's tick, cents where the host states none; a color or emoji well beside a switch that is off stands dimmed on the field's fill; a text, a note and a callout take a 172px text box; a list of inputs (a regression trend's, an anchored VWAP's and a volume profile's) sets its switches at 34px, nests a profile's histogram rows 26px under its switch and stands each VWAP band on one line; a level grid stands 412px across; a position's and a range meter's groups end with the room a group keeps; and an image's drop box states its call at 16px and its limits at 14px on a 4px corner. Every control in the chart reads in the chart's own font rather than the browser's control font, and a field that cannot be used reads in `text.disabled`.
|
|
54
|
+
|
|
55
|
+
The text, the comment, the note, the signpost, the callout and the pin type their words on the chart. The drawing paints the words as they are typed, with their caret, selection and placeholder, while a field nobody sees, laid exactly over them in their own type and line height, takes the keys: `TextEditSession.inline` (`TextInlineEdit`) says where the words stand (`TextEditFrame`), hears what the field holds (`TextDraft`), answers a double-click that opens the drawing's settings and Tab where the words take turns, and hears the viewer end the edit. Enter and Shift with Enter break the line; Escape, Ctrl or Cmd with Enter, and a press elsewhere commit the words exactly as typed, the drawing still selected after Escape. A click on the words of the selected drawing types again, and a double-click opens its settings. A text, a comment, a note or a signpost left without words stays while it is selected and goes once it is not, a callout left without words goes as its edit ends, and a pin keeps its place without words. `AttachDrawingsOptions.placeholder` names the words an empty drawing shows, read as it paints, and `AttachDrawingsOptions.inks` the chart's own inks (`DrawingInks`: a handle's ring and center, words and a quiet edge in the chart's ink, and its accent). A caret stands as tall as its type, and drawings paint their words in the chart's own font stack.
|
|
56
|
+
|
|
57
|
+
The text and annotation tools paint as measured. A text stands its words two pixels in from its point, a 2px frame just outside them while it is selected; a comment's bubble has its corner on its point and its others rounded at 21; a note's box stands centred on its label point under a soft shadow, its noted point dotted and tied to it; a signpost's plate is outlined below or above its bar on a grey post, a square handle on its point moving it up and down, and a preview follows the pointer while its tool is armed; a callout's box stands left of its point with a tail let into its outline toward its tip; a price label's body stands up and to the right of its point with a tail and a dot to it; a price note dots its first point and stands its tag on its second; a pin's marker is a holed head over a tip on its point, its box of words over it while it is hovered, selected or typed into; a flag stands on a grey pole; the arrow marks hang their tips on their points; and an arrow marker runs from its tail at its first point to a broad head at its second. A drawing of these saved at `v: 2` keeps the look it was saved with until its settings change (`savedLook`), an arrow marker's points turning to the present order. A price note opens no text editor as it lands (its `hasText` is off): its words, like the marks', are typed in its settings, which a double-click on any of these opens.
|
|
58
|
+
|
|
59
|
+
A table types into the cell a click on the selected table lands in, framed inside its grid lines, Tab moving on to the next cell and from the last to the first; each row stands as tall as its words, lines 1.3 times their size, and a table opens on three by three cells 120px wide. Its floating bar and the chart's menu over it add a column right of the cell last typed in and a row below it, or at the table's ends where no cell is, and the menu removes that cell's row and column: `chart.drawings.tableRemoveRow`, `chart.drawings.tableRemoveColumn`, `ChartMenuContext.table` and the `table-add-column`, `table-add-row`, `table-remove-row` and `table-remove-column` menu actions, with the `tableAddColumn` and `tableAddRow` icons. A hovered grid line wears a band and resizes its column or row, and the corners carry round handles that scale the table, no row shorter than its words.
|
|
60
|
+
|
|
61
|
+
Selection handles paint as rings in the chart's handle inks, round at a radius of 5.5 with a 2px ring or a rounded square, and a price label, a pin, a flag and the arrow marks wear a small ring on their points; the handle under a mouse stands in a halo. A right-click selects the drawing it lands on, and a right-click while a drawing is half placed takes it back and puts the tool down. The floating bar carries the text tools', the notes', the marks' and the table's own controls in their order. `IDrawing` gains `pointer` and `setPointer`, `hovered` and `setHovered`, and the members a drawing typed on the chart answers through: `textDraft`, `setTextDraft`, `textFrame`, `setTextPlaceholder`, `grabbedAnchors`, `wordsAt` and `dragAnchorTo`.
|
|
62
|
+
|
|
63
|
+
The content card drawing tool (`content_card`) leaves the catalog, which holds 89 tools, and its row in the Content section of the Text and notes group, its `tool.content_card` icon, the Link field of its settings dialog and its two catalog strings go with it. A saved chart or layout, a drawings document or a drawing list that carries a content card loads without it, quietly: the card is skipped, as a drawing of any type the catalog does not hold is; nothing throws, no notice is shown, and every other drawing loads as it was saved. The next save writes the chart without the card. A content card a viewer starred draws no arm on the favorites bar, and a bar with no other star stays hidden.
|
|
64
|
+
|
|
65
|
+
`DrawingDocumentApi.apply` and `reload`, a chart's `drawingResources`, name every drawing the catalog does not restore among the drawings they do not attach, with the reason `unreadable`, and leave it out of `applied`: a drawing of a type the catalog does not hold, and one whose anchors are not a list or whose options are null. The chart does not paint it, and every write of the document carries it as it was written, so a build that reads it still finds it.
|
|
66
|
+
|
|
67
|
+
A class chip in the symbol search narrows the recent picks the list leads with, as it narrows the feed's answer. With a class selected and nothing typed, the dialog lists only the recent picks whose `type` is that class or a narrower class offered beneath it. The All chip lists every recent pick, and the scope's own recents follow the same rule while its chip is on.
|
|
68
|
+
|
|
69
|
+
The chart's own glyphs are drawn from lines, arcs, circles and walled outlines on their grids, each at the size, weight and place it stands at: the controls, the chart styles, the empty-state illustrations, the spread operators, the highlighter and fixed gann square miniatures, and the layout arrangements. `chartIconArtwork` answers these drawings. A layout arrangement's glyph is drawn from the arrangement's own panes, so each tile shows the split it opens (`12c4` shows four columns of three rows), and every arrangement stands on the one frame the 21 by 19 glyph holds. No icon id or public name changes.
|
|
70
|
+
|
|
71
|
+
The replay bar's Select date dialog stands over the undimmed chart, a 302px card that appears and leaves at once and is carried by its title. Its date field opens with the keyboard in it, and on an intraday chart its time field's clock lists the day in quarter hours under the field. Its calendar shows one month of 34px days with no day of another month, the chosen day on the emphasis fill, today underlined and every day the loaded window does not cover disabled, and its heading turns the days into the months of the year and then into twenty years. Picking a day moves the choice and the dialog stays up, a chip moves the choice to the first available day and time, and Select starts replay at the first bar at or after them. The arrows walk the days, Page Up and Page Down turn the month (Shift for a year), Enter picks and Escape closes. Choosing Date… leaves replay asking where to start, so Cancel and Escape close the dialog and leave the question and the transport as they were; the starting-point menu marks the current starting point in the ink cut from its fill. The `calendar` and `clock` icons draw the dialog's field marks.
|
|
72
|
+
|
|
73
|
+
`THEME_ROLES` gains the quiet fill in both built-in palettes: `control.neutral` (`#f2f2f2` light, `#2e2e2e` dark) under a dialog's shortcut chip, the band over a calendar's columns and a chosen month or year, `control.neutralHover` (`#ebebeb`, `#3d3d3d`) and `control.neutralPressed` (`#dbdbdb`, `#4a4a4a`) under the pointer and while pressed, and `control.neutralInk` (`#000000`, `#ffffff`) for the words on it and the words and mark a quiet control brightens to under the pointer.
|
|
74
|
+
|
|
75
|
+
### Upgrading to 4.0
|
|
76
|
+
|
|
77
|
+
A major version may remove public names, and this guide lists each one. 4.0 removes the content card and the names that exist only for it, so drop each from what your page lists, offers or creates:
|
|
78
|
+
|
|
79
|
+
- The drawing tool type `content_card`: `drawingTools` does not hold it, `CARD_TYPES` holds `image` alone, and the feature manifest's `drawings` leave it out. A `drawingTools` list that names it is a setup error from `createChart`, and `armTool('content_card')` throws, as it does for any type the catalog does not hold.
|
|
80
|
+
- The icon id `tool.content_card`: `ChartIconId`, `CHART_ICON_IDS` and the feature manifest's `icons` leave it out, and an `icons` entry for it is a setup error from `createChart`.
|
|
81
|
+
- The catalog keys `tool.content_card` and `drawing.link`: `ChartMessageKey` leaves both out, and so does a dictionary of your own (`ChartCustomLocale`, `ChartDictionary`). The chart reads neither.
|
|
82
|
+
|
|
83
|
+
Saved state needs nothing from you: a save that carries a content card loads without it, as above. A drawings document keeps its content cards as they were written, unread, and so do the drawing templates and tool defaults your store keeps for `content_card`.
|
|
84
|
+
|
|
85
|
+
4.0 also settles the drawing settings dialogs, which narrows the catalog keys they read and gives drawing props new names and meanings. Change each where your code names it:
|
|
86
|
+
|
|
87
|
+
- The catalog keys `drawing.addColumn`, `drawing.addColumnShort`, `drawing.addRow`, `drawing.addRowShort`, `drawing.alignment`, `drawing.avgHl`, `drawing.bars`, `drawing.body`, `drawing.chooseEllipsis`, `drawing.customColor`, `drawing.drawBorders`, `drawing.drawWicks`, `drawing.failure`, `drawing.glyph`, `drawing.headerRow`, `drawing.lower`, `drawing.pointOfControl`, `drawing.priceChange`, `drawing.replaceEllipsis`, `drawing.sectionDeviation`, `drawing.size`, `drawing.success`, `drawing.tabTable`, `drawing.tableCell`, `drawing.target`, `drawing.upDownVolume`, `drawing.upper`, `drawing.valueAreaHigh`, `drawing.valueAreaLow`, `drawing.valueAreaUpDown`, `drawing.weight` and `drawing.width`: `ChartMessageKey` leaves them out, and so does a dictionary of your own (`ChartCustomLocale`, `ChartDictionary`), so a dictionary that sets one stops type-checking until it drops the key. The chart reads none of them.
|
|
88
|
+
- The drawing props that take new names. Code that reads or writes a drawing's props, through `updateProps`, the `chart.drawings.props` command, a template's or a tool default's props, or a `SerializedDrawing` it writes itself, uses the new names:
|
|
89
|
+
- `background` is `fillBackground` on a fib retracement, a trend-based fib extension, a fib channel, a fib time zone, a trend-based fib time, fib circles, speed resistance arcs, a fib wedge, a pitchfan, a speed resistance fan, the four pitchforks, a gann square, a gann square fixed and a gann fan.
|
|
90
|
+
- A gann box's `background` is `fillPriceBackground` and `fillTimeBackground`, its `levels` are `priceLevels` and `timeLevels`, and its `showLabels` is `showLeftLabels`, `showRightLabels`, `showTopLabels` and `showBottomLabels`. A speed resistance fan's `levels` are `priceLevels`, beside its `timeLevels`.
|
|
91
|
+
- A price range's, a date range's and a date and price range's `showPriceDelta`, `showPercent`, `showBars` and `showTimeSpan` are `showPriceRange`, `showPercentChange`, `showBarsRange` and `showDateTimeRange`, and their `extend` is `extendLeft` and `extendRight`, a date range's `extendTop` and `extendBottom`.
|
|
92
|
+
- A parallel channel's `showMiddle` is its half level's `visible`, in its `levels`.
|
|
93
|
+
- The drawing props whose meaning changes:
|
|
94
|
+
- A regression trend's `lowerDeviation` counts from its line in signed deviations, so the band two deviations below the line is `-2`, where 3.x wrote `2`.
|
|
95
|
+
- A bars pattern's `mode` takes `hl`, `oc`, `close`, `open`, `high`, `low` or `hl2` (`BARS_PATTERN_MODES`), and `bars` goes: candle sticks are `candles`, beside the mode.
|
|
96
|
+
- A gann square's and a gann square fixed's `levels` hold their grid lines, each its switch, place and stroke, with their `fans` and `arcs` beside them, rather than one set of fib levels.
|
|
97
|
+
- A note stands on two points, the point it notes and its label, and a three drives pattern on seven, its reversal the last (`anchors` in `drawingTools`).
|
|
98
|
+
- The drawing props that go: a comment's `align`, its words reading from its left; a flat top/bottom's and a disjoint channel's `showMiddle`; the `text` the chart patterns and the Elliott waves carried empty, since they carry words only where a save names some; a fib channel's `reverse`; the `extendLeft`, `extendRight`, `reverse` and `showPrices` of a fib time zone, a trend-based fib time, fib circles, speed resistance arcs, a fib wedge and a pitchfan, with a pitchfan's `showLevels`; a speed resistance fan's `extendLeft`, `extendRight`, `showLevels` and `showPrices`; and a gann square fixed's `showLabels`.
|
|
99
|
+
- The capability sets that narrow: `LABELED_PATTERNS` holds the six chart patterns alone, the Elliott waves leaving it; `FILLABLE` leaves out the sector, whose halves carry their own colors (`color1`, `color2`); `NO_STROKE` leaves out the comment, the callout and the price label, whose borders take the stroke; `NO_LINE_DECOR` leaves out the callout; and `NO_STYLE_TAB` leaves out the note, which has a Style page.
|
|
100
|
+
- `SerializedDrawing.v` is `2 | 3`, and a drawing saves at `v: 3` (`SERIAL_VERSION`). Code that reads `v` takes both, and code that writes a drawing itself writes `v: 3` with the present names and meanings.
|
|
101
|
+
|
|
102
|
+
A drawing saved by 3.x needs nothing from you: a save at `v: 2` restores with the look it was saved with, reading its earlier names and meanings as it restores, and saves at `v: 3`. A template or a tool default saved by 3.x applies the setup it names as its tool reads a save.
|
|
103
|
+
|
|
3
104
|
## 3.0.0
|
|
4
105
|
|
|
5
106
|
A search scope the viewer turns on and off, one box for the chart's dialog fields, and a drawing dialog that follows its drag. Each `SearchScope` carries the search within it, a required `search`, so a host that offers a scope upgrades as the guide below says. No public name changes.
|
package/README.md
CHANGED
|
@@ -1627,7 +1627,13 @@ chrome is painted from it and renders nothing without it.
|
|
|
1627
1627
|
asks where to begin rather than choosing a starting bar. Its starting-point menu answers with a
|
|
1628
1628
|
bar picked on the plot, a date, the first available date, or a random bar. The first available
|
|
1629
1629
|
date runs `chart.replay.startFirst`: the chart pages the feed's history back to its oldest bar,
|
|
1630
|
-
within the 20,000 bars one session holds, and starts there.
|
|
1630
|
+
within the 20,000 bars one session holds, and starts there. A date opens Select date over the
|
|
1631
|
+
undimmed chart, carried by its title: a date field, on an intraday chart a time field whose clock
|
|
1632
|
+
lists the day in quarter hours, a calendar of the loaded window whose heading turns to the months
|
|
1633
|
+
and the years, and a chip that moves the choice to the first available day. Picking moves the
|
|
1634
|
+
choice and the dialog stays up; Select starts replay at the first bar at or after the date and
|
|
1635
|
+
time, in UTC, and Cancel leaves replay asking where to start. The arrows walk the days, Page Up
|
|
1636
|
+
and Page Down turn the month, Enter picks and Escape closes. Undo and
|
|
1631
1637
|
redo step back and forward through the active chart's own content, and each names the change it
|
|
1632
1638
|
would move. Layout setup offers the arrangements and sync switches the chart offers (by default
|
|
1633
1639
|
the 55 arrangements and the five sync switches); the saved-layouts menu, shown with a layouts
|
|
@@ -2019,24 +2025,58 @@ inventory, and the built-in palettes and the generated stylesheet are built from
|
|
|
2019
2025
|
property names are private, so a color, a size or a radius is always set through a role. The
|
|
2020
2026
|
class names inside the stylesheet are private too, except the supported hooks below.
|
|
2021
2027
|
|
|
2028
|
+
### The built-in palettes
|
|
2029
|
+
|
|
2030
|
+
The two built-in palettes paint every dialog, menu and popover the chart opens from these roles,
|
|
2031
|
+
among the others `THEME_ROLES` lists:
|
|
2032
|
+
|
|
2033
|
+
| Role | Light | Dark | What it paints |
|
|
2034
|
+
|---|---|---|---|
|
|
2035
|
+
| `overlay.surface` | `#ffffff` | `#1f1f1f` | The ground of a dialog, menu or popover. |
|
|
2036
|
+
| `overlay.separator` | `#ebebeb` | `#4a4a4a` | The rule under a dialog header and over its footer, and between menu groups. |
|
|
2037
|
+
| `overlay.scrim` | `rgba(156, 156, 156, 0.5)` | `rgba(0, 0, 0, 0.5)` | The veil behind a modal dialog. |
|
|
2038
|
+
| `text.primary` | `#0f0f0f` | `#dbdbdb` | The ink of rows, labels and values. |
|
|
2039
|
+
| `text.muted` | `#6a6a6a` | `#9b9b9b` | A section title, a hint, a placeholder. |
|
|
2040
|
+
| `chrome.caret` | `#707070` | `#8c8c8c` | The chevron of a select and the arrow that opens a flyout. |
|
|
2041
|
+
| `text.link` | `#2962ff` | `#5b9cf6` | A text link. |
|
|
2042
|
+
| `state.hover` | `#f2f2f2` | `#2e2e2e` | The fill under the pointer. |
|
|
2043
|
+
| `state.pressed` | `#ebebeb` | `#3d3d3d` | The fill while the pointer is down. |
|
|
2044
|
+
| `control.outline` | `#2e2e2e` | `#ffffff` | The edge and the words of an outlined button at rest, such as a dialog's Cancel. |
|
|
2045
|
+
| `control.onInk` | `#ffffff` | `#000000` | A mark cut from the emphasis fill: a chosen thickness, line style or line end. |
|
|
2046
|
+
| `control.neutral` | `#f2f2f2` | `#2e2e2e` | The quiet fill: a dialog's shortcut chip, the band over a calendar's columns, a chosen month or year. |
|
|
2047
|
+
| `control.neutralHover` | `#ebebeb` | `#3d3d3d` | The quiet fill under the pointer. |
|
|
2048
|
+
| `control.neutralPressed` | `#dbdbdb` | `#4a4a4a` | The quiet fill while the pointer is down. |
|
|
2049
|
+
| `control.neutralInk` | `#000000` | `#ffffff` | The words on the quiet fill, and what a quiet control's words and mark brighten to under the pointer, such as a calendar's day. |
|
|
2050
|
+
| `status.positive` | `#078671` | `#089981` | A gain or a success. |
|
|
2051
|
+
| `status.negative` | `#df323f` | `#f34452` | A loss or a failure. |
|
|
2052
|
+
| `status.warning` | `#ac6600` | `#ff9800` | A condition to notice before acting. |
|
|
2053
|
+
|
|
2054
|
+
Every ink is held to the WCAG 2.2 AA ratio on each ground it is drawn over, so the light status
|
|
2055
|
+
inks are the darkest steps of their hues that still read at 4.5 to 1 on white, the dark red reads at
|
|
2056
|
+
4.5 to 1 on the dialog ground, and the muted ink reads at 4.5 to 1 over the hover and selected fills
|
|
2057
|
+
of a menu row and over the quiet fill. `drawing.line` is `#2962ff` in both modes; `drawing.selected`,
|
|
2058
|
+
the ring of a selected drawing's handles, is `#2962ff` light and `#1e53e5` dark, around a center of
|
|
2059
|
+
`drawing.handle`, the chart's own ground.
|
|
2060
|
+
|
|
2022
2061
|
### Fields
|
|
2023
2062
|
|
|
2024
2063
|
Every text field, select, number field and color well the chart draws in its dialogs and settings
|
|
2025
2064
|
is one box: 34px tall, a 1px edge with an 8px corner around a clear ground, and its words at 14 on
|
|
2026
|
-
18, 8px in from the edge. A select ends in an 18px chevron.
|
|
2027
|
-
paint the box, and the focus ring is `state.focusRing`:
|
|
2065
|
+
18, 8px in from the edge. A select ends in an 18px chevron in `chrome.caret`. Five roles in the
|
|
2066
|
+
`control` family paint the box, and the focus ring is `state.focusRing`:
|
|
2028
2067
|
|
|
2029
2068
|
| Role | Light | Dark | What it paints |
|
|
2030
2069
|
|---|---|---|---|
|
|
2031
2070
|
| `control.fieldEdge` | `#dbdbdb` | `#575757` | The edge of a field at rest. |
|
|
2032
2071
|
| `control.fieldEdgeHover` | `#a8a8a8` | `#707070` | The edge of a field under the pointer. |
|
|
2072
|
+
| `control.selectEdgeHover` | `#a8a8a8` | `#808080` | The edge of a list button under the pointer, such as a select on a drawing's settings page. |
|
|
2033
2073
|
| `control.fieldInvalid` | `#f23645` | `#f23645` | The edge and the focus ring of a field holding a value it refuses. |
|
|
2034
2074
|
| `control.fieldFill` | `#f2f2f2` | `#2e2e2e` | The ground of a field that is read-only or disabled. |
|
|
2035
2075
|
|
|
2036
2076
|
Focus draws a 2px ring over the edge, the edge itself and the pixel inside it, so the ring follows
|
|
2037
|
-
the corner and a dialog that scrolls never clips it.
|
|
2038
|
-
|
|
2039
|
-
|
|
2077
|
+
the corner and a dialog that scrolls never clips it. Only a value the chart refuses turns the edge
|
|
2078
|
+
`control.fieldInvalid`; a number past its bounds or off its step is clamped or rounded, so its
|
|
2079
|
+
field never turns red. The symbol search field draws its own outline in
|
|
2040
2080
|
`chrome.fieldBorder`.
|
|
2041
2081
|
|
|
2042
2082
|
### Motion
|
|
@@ -2052,21 +2092,25 @@ same values:
|
|
|
2052
2092
|
| `motion.durationModerate` | `250ms` | A control moving to its new state, such as a switch knob sliding. |
|
|
2053
2093
|
| `motion.durationSlow` | `350ms` | A small mark settling, such as a disclosure caret turning or a checkbox filling. |
|
|
2054
2094
|
| `motion.durationSlower` | `500ms` | A larger mark turning, such as the drawing toolbar's chevron. |
|
|
2095
|
+
| `motion.durationGlide` | `100ms` | A mark gliding to a new place, such as a dialog's tab bar or an opacity knob. |
|
|
2055
2096
|
| `motion.easingStandard` | `ease` | A modal dialog box, the replay row, a caret dip, a checkbox fill. |
|
|
2056
2097
|
| `motion.easingOut` | `ease-out` | A modal backdrop fading, a switch knob sliding. |
|
|
2057
2098
|
| `motion.easingLinear` | `linear` | A color or opacity change under the pointer. |
|
|
2058
2099
|
| `motion.easingSpring` | `cubic-bezier(0.175, 0.885, 0.32, 1.275)` | A caret or chevron turning with a slight overshoot. |
|
|
2100
|
+
| `motion.easingInOut` | `ease-in-out` | A dialog's tab bar sliding to the page shown. |
|
|
2059
2101
|
| `motion.scaleEnter` | `0.97` | The scale a modal dialog box grows from as it opens. |
|
|
2060
2102
|
|
|
2061
2103
|
Every modal dialog the chart opens (the symbol search, chart settings, the indicator browser and
|
|
2062
|
-
indicator settings, the saved-layouts browser, the name and confirm prompts,
|
|
2063
|
-
|
|
2104
|
+
indicator settings, the saved-layouts browser, the name and confirm prompts, and the drawing image
|
|
2105
|
+
picker and template prompts) opens with its backdrop fading in over
|
|
2064
2106
|
`motion.durationBase` on `motion.easingOut`, and its box fading in and growing from
|
|
2065
2107
|
`motion.scaleEnter` to full size over `motion.durationBase` on `motion.easingStandard`. It closes
|
|
2066
2108
|
with the same motion reversed. A closing dialog stops taking input and returns focus at once, and the
|
|
2067
2109
|
chart removes it when the same `motion.durationBase` has elapsed, so a duration you set times both
|
|
2068
2110
|
the transition and the removal. A dialog opened over another moves on its own and closes first, and
|
|
2069
|
-
a dialog the chart replaces or tears down goes at once.
|
|
2111
|
+
a dialog the chart replaces or tears down goes at once. The drawing settings dialog and the replay
|
|
2112
|
+
date picker work on the chart they stand over, so they open in place: they appear and leave at once,
|
|
2113
|
+
and their backdrop dims nothing while still taking the press that closes them.
|
|
2070
2114
|
|
|
2071
2115
|
A duration takes a CSS duration such as `200ms` or `0.2s`; an easing takes any CSS timing function,
|
|
2072
2116
|
such as `ease-in-out`, `steps(4)` or `cubic-bezier(0.2, 0, 0, 1)`; a scale takes a unitless factor
|
|
@@ -2772,7 +2816,7 @@ re-tile opens in the current one.
|
|
|
2772
2816
|
|
|
2773
2817
|
## Drawings
|
|
2774
2818
|
|
|
2775
|
-
The widget ships with a complete drawing product, on by default: every one of the
|
|
2819
|
+
The widget ships with a complete drawing product, on by default: every one of the 89 tools places
|
|
2776
2820
|
from the toolbar, the selected drawing gets a floating settings bar and a settings dialog, tool
|
|
2777
2821
|
defaults and named templates ride the adapter's template family, and a symbol's drawings persist
|
|
2778
2822
|
through the adapter's drawings family. Turn the whole layer off with `features.drawings: false`,
|
|
@@ -2847,11 +2891,164 @@ line style, the settings gear, lock, delete, and a More menu with the stacking m
|
|
|
2847
2891
|
per-timeframe visibility presets, clone, copy and hide. Every edit persists at once and becomes the
|
|
2848
2892
|
tool's default for the next drawing of that type. The settings dialog opens from the gear with
|
|
2849
2893
|
Inputs, Style, Text, Table, Coordinates and Visibility pages as the tool has them; its edits apply
|
|
2850
|
-
live, Cancel restores the drawing, and Ok commits the session as one edit.
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2894
|
+
live, Cancel restores the drawing, and Ok commits the session as one edit. Its header carries the
|
|
2895
|
+
drawing's name, the tool's own until the viewer renames it with the pencil beside it; the name is
|
|
2896
|
+
`DrawingOptions.name`, saved with the drawing, and Cancel restores it with the rest. A page shown
|
|
2897
|
+
puts the keyboard in its first field, and the dialog keeps its top edge where it opened as pages of
|
|
2898
|
+
other sizes come and go. Its lists hang under the controls that open them, past the dialog's edge
|
|
2899
|
+
where they need to. The Template menu saves the current setup under a name, applies a saved one,
|
|
2900
|
+
or applies the tool's defaults: its own look and setup, put on the drawing at once, with its words
|
|
2901
|
+
kept.
|
|
2902
|
+
|
|
2903
|
+
A color in the dialog opens its popover under the button that holds it: the offered colors, the
|
|
2904
|
+
colors the viewer added with the plus after them, and the opacity, and for a stroke its thickness
|
|
2905
|
+
and line style. Every choice applies at once and the popover stays up for the next one; Escape
|
|
2906
|
+
returns to the button. The plus opens a custom color editor that takes a hex of three or six digits
|
|
2907
|
+
or a pick on its saturation and brightness area and hue strip. A color added there joins the
|
|
2908
|
+
viewer's own, newest first, kept with the drawing preferences in `ChartStorage`, and the settings
|
|
2909
|
+
bar's palette offers them too.
|
|
2910
|
+
|
|
2911
|
+
The line tools' Style page carries the stroke with its two ends, the extensions, the middle point,
|
|
2912
|
+
the price labels and, under Info, the stats a line reads (price range, percent change, the change
|
|
2913
|
+
counted in the symbol's smallest price move, bars, date and time range, angle), where they stand
|
|
2914
|
+
(left, center, right, or auto, which keeps them inside the pane), and whether they show always or
|
|
2915
|
+
only while the line is selected. A horizontal line offers its price label, a vertical line its time
|
|
2916
|
+
label, a cross line both. A rectangle offers its extensions, its border, a middle line with a stroke
|
|
2917
|
+
of its own and its background; every other shape its border and background; a curve its stroke and
|
|
2918
|
+
ends, its extensions along the tangents it ends on, and its background. A background switched off
|
|
2919
|
+
keeps its color and opacity for when it is switched back on. The Text page sets the words' color,
|
|
2920
|
+
size, weight and slant on one line over the words, and where the tool places them, where they stand:
|
|
2921
|
+
above, on or below a line, above, inside or below a box, along it from left to right, and for a
|
|
2922
|
+
vertical line whether they read across it or run up it. `NO_COORDINATES_TAB` names the tools whose
|
|
2923
|
+
points are drawn rather than typed, and `PRICE_ONLY_COORDS` the levels that span every bar.
|
|
2924
|
+
|
|
2925
|
+
A retracement, a trend-based extension and a fib channel lay their levels out two to a line, each
|
|
2926
|
+
level its switch, its value and its color, under the thickness and style every level line is drawn
|
|
2927
|
+
in. The one color recolors every level at once, and shows the color the levels share or a split
|
|
2928
|
+
well while they differ. The bands between levels fill at `backgroundOpacity` while
|
|
2929
|
+
`fillBackground` holds them; `coeffsAsPercents` reads a level's ratio as a percent, and
|
|
2930
|
+
`labelsHAlign` and `labelsVAlign` stand the labels before, at the middle of or after the levels,
|
|
2931
|
+
above, on or below each line. A retracement and an extension draw their trend line through the
|
|
2932
|
+
swing points in a stroke of its own (`trendLine`, `trendLineColor`, `trendLineWidth`,
|
|
2933
|
+
`trendLineStyle`), stand each level's own words where `showText`, `textHAlign` and
|
|
2934
|
+
`textVAlign` put them, and with `levelsOnLogScale` divide the swing by log price while the price
|
|
2935
|
+
scale is logarithmic, which `Viewport.logScale` reports.
|
|
2936
|
+
|
|
2937
|
+
A time zone, a trend-based time, fib circles, speed resistance arcs, a fib wedge and a pitchfan
|
|
2938
|
+
stand their levels one to a line, each level its switch, its value and its own stroke: a level's
|
|
2939
|
+
`width` and `style` draw it apart from the drawing's own. A time zone and a trend-based time label
|
|
2940
|
+
their lines where `labelsHAlign` and `labelsVAlign` put them along and across the pane; a circle
|
|
2941
|
+
fib reads its ratios as percents with `coeffsAsPercents`; an arc fib closes its arcs into circles
|
|
2942
|
+
with `fullCircles`; the trend-based time, the circles, the arcs and the wedge draw a trend line in a
|
|
2943
|
+
stroke of its own, and a pitchfan its median (`medianColor`, `medianWidth`, `medianStyle`). A
|
|
2944
|
+
speed resistance fan and a gann box divide their box on `priceLevels` across it and `timeLevels`
|
|
2945
|
+
down it, each side's labels switched on their own; a fan draws a grid at the divisions in a stroke
|
|
2946
|
+
of its own, and a gann box shades its price and time bands on their own switches and draws its
|
|
2947
|
+
angles corner to corner in `anglesColor`. `reverse` counts a box's divisions from the other
|
|
2948
|
+
corner.
|
|
2949
|
+
|
|
2950
|
+
A pitchfork stands its line pairs one to a line the same way, each pair its switch, its value and
|
|
2951
|
+
its own stroke, under its median's stroke (`medianColor`, `medianWidth`, `medianStyle`) and over
|
|
2952
|
+
the bands between pairs, each in its outer pair's color at `backgroundOpacity` while
|
|
2953
|
+
`fillBackground` is on. `extendLines` runs every line back past the fork's start, and `variant`
|
|
2954
|
+
switches its construction in place: `original`, `schiff`, `modified_schiff` or `inside`.
|
|
2955
|
+
A fib spiral winds clockwise out from its first point, and `counterclockwise` winds it the other
|
|
2956
|
+
way.
|
|
2957
|
+
|
|
2958
|
+
A gann square and a gann square fixed draw a grid of six lines at their fifths (`levels`), fan
|
|
2959
|
+
lines from the corner they count from out to their far sides (`fans`) and arcs about that corner
|
|
2960
|
+
(`arcs`), each line its switch, its color and its width, a fan line or an arc at its ratio of the
|
|
2961
|
+
square's unit, `x` along the time side for `y` along the price side. Their pages set each set
|
|
2962
|
+
under its section, two to a line; the bands between arcs follow `fillBackground` and
|
|
2963
|
+
`backgroundOpacity`, and `reverse` counts from the other corner. A gann square holds its second
|
|
2964
|
+
corner at `scaleRatio` price for every bar between its corners, a ratio it takes from the pane
|
|
2965
|
+
when it is first drawn so it opens square, and typing a Price/bar ratio moves the corner to it; with
|
|
2966
|
+
`showLabels` it reads its price and bar ranges and their ratio under it. A square fixed stays
|
|
2967
|
+
square on the pane whatever its scale. A gann fan draws its rays at their price-to-time ratios, 1/8
|
|
2968
|
+
to 8/1, each in its own stroke, with the bands between them and each ray's ratio at its end.
|
|
2969
|
+
|
|
2970
|
+
A regression trend fits its line through the `source` of the bars between its points: a bar's
|
|
2971
|
+
open, high, low, close or volume, or one of the averages `hl2`, `hlc3`, `ohlc4` and `hlcc4`
|
|
2972
|
+
(`BAR_PRICE_SOURCES`). Its bands stand `upperDeviation` and `lowerDeviation` standard deviations
|
|
2973
|
+
from it, the lower counted down, each shown by `useUpper` and `useLower`; the line and each band
|
|
2974
|
+
switch and stroke on their own (`baseLine`, `upLine`, `downLine` with their colors, widths and
|
|
2975
|
+
styles), `extendLines` runs them to the pane's edges, and `showPearsons` reads the correlation
|
|
2976
|
+
under them.
|
|
2977
|
+
|
|
2978
|
+
A parallel channel draws its levels at ratios of its width, 0 its baseline and 1 the parallel through
|
|
2979
|
+
its third point, each level its switch, its value and its own stroke, over its body between 0 and 1.
|
|
2980
|
+
A flat top/bottom and a disjoint channel end their sides as `leftEnd` and `rightEnd` set and read
|
|
2981
|
+
each side's prices at its ends with `showPrices`, in `pricesColor`, `pricesFontSize`,
|
|
2982
|
+
`pricesBold` and `pricesItalic`. A channel's `fillBackground` switches its body, and its words
|
|
2983
|
+
stand above it, inside it or below it with `textVAlign`, at its start, middle or end with
|
|
2984
|
+
`textHAlign`. A parallel channel's Coordinates page writes its third point as the price its
|
|
2985
|
+
parallel stands from the baseline.
|
|
2986
|
+
|
|
2987
|
+
A sector shades the two halves of its slice, parted by the ray through its arc's middle, in `color1`
|
|
2988
|
+
and `color2` while `fillBackground` is on. A bars pattern paints its captured bars as `mode` says:
|
|
2989
|
+
`hl` their high-low ranges, `oc` their open-close ranges, or a line through each bar's close, open,
|
|
2990
|
+
high, low or `hl2`. A ghost feed's average candle span is held as a price and written on its page in
|
|
2991
|
+
the symbol's minimum ticks.
|
|
2992
|
+
|
|
2993
|
+
An anchored VWAP weighs the `source` of every bar since its point by the bar's volume, and stands
|
|
2994
|
+
its bands off the average by `bandMultipliers` standard deviations or, with `bandsMode`
|
|
2995
|
+
`percent`, percents of it, each band calculated while its `bandsOn` switch is on. A volume profile
|
|
2996
|
+
reads its rows' volumes beside them with `showValues` and its point of control and shown value
|
|
2997
|
+
area bounds on the price scale with `showLabelsOnPriceScale`. A range meter reads the stats its
|
|
2998
|
+
switches choose in a label of its own color, size and background.
|
|
2999
|
+
|
|
3000
|
+
A text's box switches its background (`fillBackground`) and its border (`drawBorder`, in the
|
|
3001
|
+
drawing's stroke color) on their own, and with `wordWrap` its words wrap at `wordWrapWidth` pixels;
|
|
3002
|
+
a callout's words wrap the same way inside a border at the drawing's width. A note ties a label to
|
|
3003
|
+
the point it notes: its first point is that point, its second the label's, with a line between them
|
|
3004
|
+
in the drawing's stroke color and the label's border in `borderColor`; a pin's words stand in a box
|
|
3005
|
+
of the same kind under its marker. A price note runs a line from its price to a tag that reads it,
|
|
3006
|
+
the tag in a text style and colors of its own (`labelTextColor`, `labelFontSize`, `labelBold`,
|
|
3007
|
+
`labelItalic`, `labelBackgroundColor`, `labelBorderColor`), its words along the line where
|
|
3008
|
+
`textVAlign` and `textHAlign` stand them. A signpost stands on its bar's high, or its low for a
|
|
3009
|
+
plate below the bar, its plate `position` percent of the pane's height away, so the plate keeps its
|
|
3010
|
+
height over the bar as the price scale moves; with `showImage` the plate leads with its `emoji`,
|
|
3011
|
+
and its words read in white or black, whichever reads on the plate. A table stands its cells' words
|
|
3012
|
+
at their left, middle or right with `textHAlign`, its border and grid in the drawing's stroke color.
|
|
3013
|
+
|
|
3014
|
+
A brush fills the area its stroke closes back to its start while `fillBackground` is on, and a brush
|
|
3015
|
+
and a path head their ends with arrows as `leftEnd` and `rightEnd` say, a path with an arrow at its
|
|
3016
|
+
last point at first. A highlighter's width is in pixels, 8 to 96 on its page. The emoji and the
|
|
3017
|
+
sticker have no settings beyond their visibility: a glyph's size is set by its grips on the chart. An
|
|
3018
|
+
icon's page sets its tint, and an image's page chooses its picture from a
|
|
3019
|
+
box that names the formats and the size the intake takes, and sets how see-through it is drawn.
|
|
3020
|
+
|
|
3021
|
+
The pattern tools are read by their letters and carry no words of their own: their Style page sets
|
|
3022
|
+
the letters' color, size, weight and slant on a Label row, then the border and, for the patterns
|
|
3023
|
+
that shade their legs, the background, which `fillBackground` switches off and on keeping its
|
|
3024
|
+
color. A three drives pattern stands on seven points, its reversal after the third drive the last.
|
|
3025
|
+
|
|
3026
|
+
An Elliott wave count writes its labels in its wave's color, as its `degree` writes them: the
|
|
3027
|
+
fifteen degrees from `supermillennium` to `minuscule` (`ELLIOTT_DEGREES`) stand in five threes,
|
|
3028
|
+
each three ringed, in parentheses and bare, in roman numerals or figures and in capitals or small
|
|
3029
|
+
letters. `showWave` switches the wave through its pivots, and the labels stand without it.
|
|
3030
|
+
|
|
3031
|
+
The text, the comment, the note, the signpost, the callout and the pin type their words on the
|
|
3032
|
+
chart. The drawing paints the words as they are typed, with their caret, selection and
|
|
3033
|
+
placeholder, while a field nobody sees, laid exactly over them in their own type and line height,
|
|
3034
|
+
takes the keys: the session's `inline` (`TextInlineEdit`) says where the words stand
|
|
3035
|
+
(`TextEditFrame`) and hears what the field holds (`TextDraft`). Enter and Shift with Enter break
|
|
3036
|
+
the line; Escape, Ctrl or Cmd with Enter, and a press elsewhere commit the words exactly as typed,
|
|
3037
|
+
the drawing still selected after Escape. A click on the words of the selected drawing types again,
|
|
3038
|
+
and a double-click opens its settings. A text, a comment, a note or a signpost left without words
|
|
3039
|
+
stays while it is selected and goes once it is not; a callout left without words goes as its edit
|
|
3040
|
+
ends; a pin keeps its place without words. `AttachDrawingsOptions.placeholder` names the words an
|
|
3041
|
+
empty drawing shows and `AttachDrawingsOptions.inks` the chart's own inks (`DrawingInks`).
|
|
3042
|
+
|
|
3043
|
+
A table types into the cell a click on the selected table lands in, Tab moving on to the next cell
|
|
3044
|
+
and from the last to the first. Its floating bar and the chart's menu over it add a column right of
|
|
3045
|
+
the cell last typed in and a row below it, or at the table's ends where no cell is, and the menu
|
|
3046
|
+
removes that cell's row and column (`chart.drawings.tableRemoveRow`,
|
|
3047
|
+
`chart.drawings.tableRemoveColumn`). A hovered grid line resizes its column or row, and the corners
|
|
3048
|
+
scale the table. The price label, the price note, the arrow marks, the arrow marker and the flag
|
|
3049
|
+
open no editor: their words, where they have any, are set in their settings, which a double-click
|
|
3050
|
+
opens. Any other text-bearing tool types in a box of its own: Ctrl or Cmd with Enter commits,
|
|
3051
|
+
Escape cancels, and a press on the chart commits.
|
|
2855
3052
|
|
|
2856
3053
|
Templates are named setups a viewer saves from either surface and applies on demand. They and
|
|
2857
3054
|
the remembered defaults ride `ChartSaveLoadAdapter.templates('drawing')`, so a host that keeps
|
|
@@ -2866,7 +3063,9 @@ adapter they last the page.
|
|
|
2866
3063
|
|
|
2867
3064
|
The image and glyph tools reach your host through `ChartWidgetOptions.assets`. `intakeImage`
|
|
2868
3065
|
turns a picked file into a payload within the caps and answers a refusal as a code the chart
|
|
2869
|
-
resolves through its own catalog
|
|
3066
|
+
resolves through its own catalog. The payload's `dataUrl` is always a PNG or a JPEG, whatever the
|
|
3067
|
+
picked file was, so a saved chart opens everywhere: decode a WEBP and re-encode it on a canvas, as a
|
|
3068
|
+
PNG where it has transparency and a JPEG otherwise; `glyphSource` answers the artwork URL an emoji or sticker draws
|
|
2870
3069
|
with, or null to draw the glyph as text. Emoji artwork from Twemoji is bundled and works without
|
|
2871
3070
|
an asset port or external requests. Omit `glyphSource` to use it. It is a chunk of its own, which
|
|
2872
3071
|
the chart imports the first time it draws an emoji, so a chart that never shows one never loads
|
|
@@ -2883,6 +3082,8 @@ layer.armTool('rectangle')
|
|
|
2883
3082
|
layer.destroy()
|
|
2884
3083
|
```
|
|
2885
3084
|
|
|
3085
|
+
A layer you mount yourself is told the symbol's grid, formatter and currency through `setTick`,
|
|
3086
|
+
`setPriceFormatter` and `setCurrency`; a position offers its risk as an amount in that currency.
|
|
2886
3087
|
A layer you mount yourself arms whatever you arm. Its `copies` option answers whether a new drawing
|
|
2887
3088
|
may be made as a copy of a drawing of a type: return false for a tool you do not offer, and clone,
|
|
2888
3089
|
paste and a Control- or Command-drag duplicate make nothing for its drawings, `canPaste` answers
|
|
@@ -2896,7 +3097,7 @@ never imports any of it.
|
|
|
2896
3097
|
```ts
|
|
2897
3098
|
import { buildDrawingToolbarGroups, drawingTools, parseDrawingsStore, restoreDrawings, serializeDrawingsStore } from '@trdrs/quickcharts/drawings'
|
|
2898
3099
|
|
|
2899
|
-
// The catalog:
|
|
3100
|
+
// The catalog: 89 tools in 14 categories, read-only.
|
|
2900
3101
|
const trendLine = drawingTools.get('trend_line')
|
|
2901
3102
|
const fibs = drawingTools.byCategory('fibonacci')
|
|
2902
3103
|
|
|
@@ -2936,8 +3137,9 @@ const preset = await templates.defaultFor('trend_line')
|
|
|
2936
3137
|
```
|
|
2937
3138
|
|
|
2938
3139
|
Image-backed and glyph tools reach the host through one explicit asset port. The library owns the
|
|
2939
|
-
rules (JPG or PNG, 2 MB, a 2000 px longest edge, downscaled
|
|
2940
|
-
refusal with a code that resolves through the chart's own
|
|
3140
|
+
rules (a JPG, a PNG or a WEBP, stored as a PNG or a JPEG, 2 MB, a 2000 px longest edge, downscaled
|
|
3141
|
+
rather than refused) and names each refusal with a code that resolves through the chart's own
|
|
3142
|
+
catalog; the host owns the bytes.
|
|
2941
3143
|
|
|
2942
3144
|
```ts
|
|
2943
3145
|
import { checkImageFile, fittedSize, IMAGE_ACCEPT, type DrawingAssetPort } from '@trdrs/quickcharts/drawings'
|
|
@@ -2947,7 +3149,8 @@ const assets: DrawingAssetPort = {
|
|
|
2947
3149
|
const bad = checkImageFile(file)
|
|
2948
3150
|
if (bad) return { ok: false, ...bad }
|
|
2949
3151
|
const { width, height } = fittedSize(1200, 900)
|
|
2950
|
-
|
|
3152
|
+
// A PNG or a JPEG whatever the picked file was: a WEBP is re-encoded before it is stored.
|
|
3153
|
+
return { ok: true, asset: { dataUrl: await myBackend.pngOrJpeg(file), width, height, downscaled: false } }
|
|
2951
3154
|
},
|
|
2952
3155
|
// Optional: glyphSource replaces the bundled emoji artwork.
|
|
2953
3156
|
// glyphSource: (glyph) => myBackend.emojiUrl(glyph),
|
|
@@ -2963,14 +3166,21 @@ What to know:
|
|
|
2963
3166
|
- **Every tool places.** Fixed-anchor tools place by press-drag-release or click then click; an
|
|
2964
3167
|
instant tool (the position tools) lands whole from one press; a multipoint tool adds a point per
|
|
2965
3168
|
click until a double-click ends the run; a freehand tool captures the drag as a stroke; a
|
|
2966
|
-
text-bearing tool opens the inline editor as it lands
|
|
2967
|
-
|
|
3169
|
+
text-bearing tool opens the inline editor as it lands; a right-click while a drawing is half
|
|
3170
|
+
placed takes it back and puts the tool down. `armTool` **throws** only for a name the catalog does
|
|
3171
|
+
not know, and `placeableByWidget(type)` answers in advance.
|
|
2968
3172
|
- **Persistence speaks a shared codec.** The store document (`{ [symbol]: SerializedDrawing[] }`,
|
|
2969
3173
|
via `parseDrawingsStore`/`serializeDrawingsStore`) is the SAME document every host of the codec
|
|
2970
3174
|
reads and writes, so drawings survive moving between hosts. A drawing bound to one chart (sync
|
|
2971
3175
|
off) lives in the adapter's chart-bound scope for the symbol; a shared drawing lives in the
|
|
2972
3176
|
symbol's scope, and a refused write merges the stored document over the layer's own before it
|
|
2973
3177
|
writes again.
|
|
3178
|
+
- **A save keeps its look.** A drawing saves at `v: 3`. A save at `v: 2` restores with the look it
|
|
3179
|
+
was saved with: its tool writes the values that paint it so and saves at `v: 3` with them, the
|
|
3180
|
+
looks the tool's pages do not set riding in the props `INERT_PROPS` lists. A gann square, a gann
|
|
3181
|
+
square fixed, a speed resistance fan, a pitchfan, the text and annotation tools, the marks and a
|
|
3182
|
+
table saved at `v: 2` paint as they were saved (`savedLook`) until their settings change. A host
|
|
3183
|
+
that writes drawings itself writes `v: 3`.
|
|
2974
3184
|
- **Keys run through the registry.** Delete and Backspace remove the selection, Escape cancels a
|
|
2975
3185
|
placement, disarms, or closes the inline editor, and Ctrl (or Cmd) with C and V copy and paste a
|
|
2976
3186
|
drawing. Each resolves to a `chart.drawings.*` command, so your access policy gates the keyboard
|
|
@@ -2982,7 +3192,8 @@ What to know:
|
|
|
2982
3192
|
a placed or dragged anchor onto the bar's own open, high, low or close; a locked drawing
|
|
2983
3193
|
selects, takes the Delete and Clone a viewer asks for by name, and refuses a move, a resize, a
|
|
2984
3194
|
text edit, the eraser and a Ctrl-drag copy; lock all suspends every edit, Delete and Clone
|
|
2985
|
-
included, until it is released.
|
|
3195
|
+
included, until it is released. A right-click selects the drawing it lands on, so the menu that
|
|
3196
|
+
follows acts on it, and the handle under a mouse stands out.
|
|
2986
3197
|
|
|
2987
3198
|
## Extensions
|
|
2988
3199
|
|
package/dist/adapters/rest.d.ts
CHANGED