smoosic 1.0.24 → 1.0.26
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/build/smoosic.js +1 -1
- package/package.json +1 -1
- package/release/smoosic.js +1 -1
- package/release/styles/ribbon.css +5 -10
- package/src/application/exports.ts +1 -0
- package/src/styles/ribbon.css +5 -10
- package/types/src/application/application.d.ts +102 -102
- package/types/src/application/common.d.ts +74 -74
- package/types/src/application/configuration.d.ts +74 -74
- package/types/src/application/dom.d.ts +8 -8
- package/types/src/application/dynamicInit.d.ts +1 -1
- package/types/src/application/eventHandler.d.ts +78 -78
- package/types/src/application/exports.d.ts +494 -493
- package/types/src/application/generateVexTests.d.ts +10 -10
- package/types/src/application/keyCommands.d.ts +90 -90
- package/types/src/common/bootstrap.bundle.d.ts +1138 -1138
- package/types/src/common/htmlHelpers.d.ts +105 -105
- package/types/src/common/jszip.d.ts +2 -2
- package/types/src/common/midi-parser.d.ts +38 -38
- package/types/src/common/promiseHelpers.d.ts +30 -30
- package/types/src/common/serializationHelpers.d.ts +29 -29
- package/types/src/common/textformatter.d.ts +140 -140
- package/types/src/common/vex.d.ts +222 -222
- package/types/src/render/audio/musicCursor.d.ts +25 -25
- package/types/src/render/audio/oscillator.d.ts +98 -98
- package/types/src/render/audio/player.d.ts +141 -141
- package/types/src/render/audio/samples.d.ts +56 -56
- package/types/src/render/sui/configuration.d.ts +12 -12
- package/types/src/render/sui/formatter.d.ts +151 -151
- package/types/src/render/sui/layoutDebug.d.ts +43 -43
- package/types/src/render/sui/mapper.d.ts +116 -116
- package/types/src/render/sui/piano.d.ts +46 -46
- package/types/src/render/sui/renderState.d.ts +88 -88
- package/types/src/render/sui/scoreRender.d.ts +93 -93
- package/types/src/render/sui/scoreView.d.ts +267 -267
- package/types/src/render/sui/scoreViewOperations.d.ts +594 -594
- package/types/src/render/sui/scroller.d.ts +34 -34
- package/types/src/render/sui/svgHelpers.d.ts +85 -85
- package/types/src/render/sui/svgPageMap.d.ts +318 -318
- package/types/src/render/sui/textEdit.d.ts +310 -310
- package/types/src/render/sui/textRender.d.ts +189 -189
- package/types/src/render/sui/tracker.d.ts +90 -90
- package/types/src/render/vex/glyphDimensions.d.ts +23 -23
- package/types/src/render/vex/smoAdapter.d.ts +46 -46
- package/types/src/render/vex/toVex.d.ts +13 -13
- package/types/src/render/vex/vxMeasure.d.ts +95 -95
- package/types/src/render/vex/vxNote.d.ts +55 -55
- package/types/src/render/vex/vxSystem.d.ts +64 -64
- package/types/src/smo/data/common.d.ts +220 -220
- package/types/src/smo/data/measure.d.ts +510 -510
- package/types/src/smo/data/measureModifiers.d.ts +506 -506
- package/types/src/smo/data/music.d.ts +438 -438
- package/types/src/smo/data/note.d.ts +485 -485
- package/types/src/smo/data/noteModifiers.d.ts +590 -590
- package/types/src/smo/data/partInfo.d.ts +162 -162
- package/types/src/smo/data/score.d.ts +395 -395
- package/types/src/smo/data/scoreModifiers.d.ts +433 -433
- package/types/src/smo/data/scoreText.d.ts +277 -277
- package/types/src/smo/data/staffModifiers.d.ts +767 -767
- package/types/src/smo/data/systemStaff.d.ts +238 -238
- package/types/src/smo/data/tuplet.d.ts +146 -146
- package/types/src/smo/midi/midiToSmo.d.ts +198 -198
- package/types/src/smo/midi/smoToMidi.d.ts +23 -23
- package/types/src/smo/mxml/smoToXml.d.ts +165 -165
- package/types/src/smo/mxml/xmlHelpers.d.ts +140 -140
- package/types/src/smo/mxml/xmlState.d.ts +257 -257
- package/types/src/smo/mxml/xmlToSmo.d.ts +92 -92
- package/types/src/smo/xform/beamers.d.ts +46 -46
- package/types/src/smo/xform/copypaste.d.ts +99 -99
- package/types/src/smo/xform/operations.d.ts +127 -127
- package/types/src/smo/xform/roadmap.d.ts +70 -70
- package/types/src/smo/xform/selections.d.ts +153 -153
- package/types/src/smo/xform/tickDuration.d.ts +155 -155
- package/types/src/smo/xform/tickMap.d.ts +34 -34
- package/types/src/smo/xform/undo.d.ts +142 -142
- package/types/src/smo/xform/updateAudio.d.ts +9 -9
- package/types/src/styles/font_metrics/Commissioner-Medium-Metrics.d.ts +871 -871
- package/types/src/styles/font_metrics/ConcertOne-Regular.d.ts +871 -871
- package/types/src/styles/font_metrics/Merriweather-Regular.d.ts +871 -871
- package/types/src/styles/font_metrics/arial_metrics.d.ts +870 -870
- package/types/src/styles/font_metrics/ssp-sans-metrics.d.ts +871 -871
- package/types/src/styles/font_metrics/ssp-serif-metrics.d.ts +871 -871
- package/types/src/styles/font_metrics/times_metrics.d.ts +870 -870
- package/types/src/ui/buttons/button.d.ts +95 -95
- package/types/src/ui/buttons/collapsable.d.ts +42 -42
- package/types/src/ui/buttons/display.d.ts +23 -23
- package/types/src/ui/buttons/ribbon.d.ts +76 -76
- package/types/src/ui/common.d.ts +45 -45
- package/types/src/ui/composable/draggable.d.ts +12 -12
- package/types/src/ui/configuration.d.ts +31 -31
- package/types/src/ui/dialogs/adapter.d.ts +107 -107
- package/types/src/ui/dialogs/addMeasure.d.ts +20 -20
- package/types/src/ui/dialogs/arpeggio.d.ts +2 -2
- package/types/src/ui/dialogs/articulation.d.ts +2 -2
- package/types/src/ui/dialogs/audioSettings.d.ts +32 -32
- package/types/src/ui/dialogs/chordChange.d.ts +35 -35
- package/types/src/ui/dialogs/clefChange.d.ts +2 -2
- package/types/src/ui/dialogs/components/baseComponent.d.ts +158 -158
- package/types/src/ui/dialogs/components/button.d.ts +54 -54
- package/types/src/ui/dialogs/components/buttonArray.d.ts +101 -101
- package/types/src/ui/dialogs/components/checkdrop.d.ts +27 -27
- package/types/src/ui/dialogs/components/dragText.d.ts +27 -27
- package/types/src/ui/dialogs/components/dropdown.d.ts +78 -78
- package/types/src/ui/dialogs/components/fileDownload.d.ts +28 -28
- package/types/src/ui/dialogs/components/fontComponent.d.ts +32 -32
- package/types/src/ui/dialogs/components/noteText.d.ts +98 -98
- package/types/src/ui/dialogs/components/pitch.d.ts +95 -95
- package/types/src/ui/dialogs/components/rocker.d.ts +66 -66
- package/types/src/ui/dialogs/components/staffComponents.d.ts +77 -77
- package/types/src/ui/dialogs/components/textCheck.d.ts +38 -38
- package/types/src/ui/dialogs/components/textInPlace.d.ts +90 -90
- package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
- package/types/src/ui/dialogs/components/tie.d.ts +41 -41
- package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
- package/types/src/ui/dialogs/components/tree.d.ts +46 -46
- package/types/src/ui/dialogs/customTuplets.d.ts +25 -25
- package/types/src/ui/dialogs/dialog.d.ts +201 -201
- package/types/src/ui/dialogs/durations.d.ts +2 -2
- package/types/src/ui/dialogs/dynamics.d.ts +37 -37
- package/types/src/ui/dialogs/endings.d.ts +61 -61
- package/types/src/ui/dialogs/factory.d.ts +15 -15
- package/types/src/ui/dialogs/fileDialogs.d.ts +4 -4
- package/types/src/ui/dialogs/fonts.d.ts +2 -2
- package/types/src/ui/dialogs/globalLayout.d.ts +2 -2
- package/types/src/ui/dialogs/gracenote.d.ts +2 -2
- package/types/src/ui/dialogs/hairpin.d.ts +35 -35
- package/types/src/ui/dialogs/instrument.d.ts +3 -3
- package/types/src/ui/dialogs/keySignature.d.ts +33 -33
- package/types/src/ui/dialogs/library.d.ts +70 -70
- package/types/src/ui/dialogs/lyric.d.ts +39 -39
- package/types/src/ui/dialogs/measureFormat.d.ts +52 -52
- package/types/src/ui/dialogs/microtones.d.ts +2 -2
- package/types/src/ui/dialogs/noteHead.d.ts +2 -2
- package/types/src/ui/dialogs/ornament.d.ts +2 -2
- package/types/src/ui/dialogs/pageLayout.d.ts +2 -2
- package/types/src/ui/dialogs/partInfo.d.ts +2 -2
- package/types/src/ui/dialogs/pedalMarking.d.ts +35 -35
- package/types/src/ui/dialogs/pitch.d.ts +2 -2
- package/types/src/ui/dialogs/preferences.d.ts +2 -2
- package/types/src/ui/dialogs/scoreId.d.ts +2 -2
- package/types/src/ui/dialogs/scoreView.d.ts +2 -2
- package/types/src/ui/dialogs/slur.d.ts +57 -57
- package/types/src/ui/dialogs/staffGroup.d.ts +2 -2
- package/types/src/ui/dialogs/tabNote.d.ts +32 -32
- package/types/src/ui/dialogs/tabStave.d.ts +43 -43
- package/types/src/ui/dialogs/tempo.d.ts +50 -50
- package/types/src/ui/dialogs/textBlock.d.ts +61 -61
- package/types/src/ui/dialogs/textBracket.d.ts +35 -35
- package/types/src/ui/dialogs/tie.d.ts +41 -41
- package/types/src/ui/dialogs/timeSignature.d.ts +34 -34
- package/types/src/ui/dialogs/transposeScore.d.ts +2 -2
- package/types/src/ui/dialogs/volta.d.ts +40 -40
- package/types/src/ui/eventSource.d.ts +63 -63
- package/types/src/ui/exceptions.d.ts +12 -12
- package/types/src/ui/fileio/fileInput.d.ts +12 -12
- package/types/src/ui/fileio/library.d.ts +40 -40
- package/types/src/ui/fileio/xhrLoader.d.ts +18 -18
- package/types/src/ui/help.d.ts +22 -22
- package/types/src/ui/i18n/language.d.ts +37 -37
- package/types/src/ui/i18n/language_ar.d.ts +5 -5
- package/types/src/ui/i18n/language_de.d.ts +1 -1
- package/types/src/ui/i18n/language_en.d.ts +18 -18
- package/types/src/ui/i18n/translationEditor.d.ts +14 -14
- package/types/src/ui/keyBindings/default/editorKeys.d.ts +7 -7
- package/types/src/ui/keyBindings/default/trackerKeys.d.ts +7 -7
- package/types/src/ui/menus/beams.d.ts +13 -13
- package/types/src/ui/menus/edit.d.ts +8 -8
- package/types/src/ui/menus/file.d.ts +26 -26
- package/types/src/ui/menus/help.d.ts +8 -8
- package/types/src/ui/menus/keySignature.d.ts +13 -13
- package/types/src/ui/menus/language.d.ts +12 -12
- package/types/src/ui/menus/manager.d.ts +57 -57
- package/types/src/ui/menus/measure.d.ts +8 -8
- package/types/src/ui/menus/menu.d.ts +136 -136
- package/types/src/ui/menus/note.d.ts +8 -8
- package/types/src/ui/menus/partSelection.d.ts +19 -19
- package/types/src/ui/menus/parts.d.ts +50 -50
- package/types/src/ui/menus/score.d.ts +20 -20
- package/types/src/ui/menus/staffModifier.d.ts +21 -21
- package/types/src/ui/menus/text.d.ts +8 -8
- package/types/src/ui/menus/timeSignature.d.ts +12 -12
- package/types/src/ui/menus/tuplets.d.ts +13 -13
- package/types/src/ui/menus/voices.d.ts +8 -8
- package/types/src/ui/modalDialogs.d.ts +1 -1
- package/types/src/ui/navigation.d.ts +15 -15
- package/types/src/ui/qwerty.d.ts +41 -41
- package/types/src/ui/ribbonLayout/default/defaultRibbon.d.ts +15 -15
- package/types/src/ui/ribbonLayout/default/tabletRibbon.d.ts +22 -22
- package/types/typedoc.d.ts +158 -158
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
import { FontInfo } from '../common/vex';
|
|
2
|
-
/**
|
|
3
|
-
* @internal
|
|
4
|
-
*/
|
|
5
|
-
export interface FontGlyph {
|
|
6
|
-
xMin: number;
|
|
7
|
-
xMax: number;
|
|
8
|
-
yMin: number;
|
|
9
|
-
yMax: number;
|
|
10
|
-
ha: number;
|
|
11
|
-
leftSideBearing: number;
|
|
12
|
-
advanceWidth: number;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* @internal
|
|
16
|
-
*/
|
|
17
|
-
export interface TextFormatterInfo extends Record<string, unknown> {
|
|
18
|
-
family: string;
|
|
19
|
-
resolution?: number;
|
|
20
|
-
glyphs?: Record<string, FontGlyph>;
|
|
21
|
-
serifs: boolean;
|
|
22
|
-
monospaced: boolean;
|
|
23
|
-
italic: boolean;
|
|
24
|
-
bold: boolean;
|
|
25
|
-
maxSizeGlyph?: string;
|
|
26
|
-
superscriptOffset?: number;
|
|
27
|
-
subscriptOffset?: number;
|
|
28
|
-
description: string;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Y information, 0 is baseline, yMin is lowest point.
|
|
32
|
-
* @internal
|
|
33
|
-
*/
|
|
34
|
-
export interface yExtent {
|
|
35
|
-
yMin: number;
|
|
36
|
-
yMax: number;
|
|
37
|
-
height: number;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @category SuiRender
|
|
41
|
-
*/
|
|
42
|
-
export declare class TextFormatter {
|
|
43
|
-
/**
|
|
44
|
-
* Return all registered font families.
|
|
45
|
-
*/
|
|
46
|
-
static getFontFamilies(): TextFormatterInfo[];
|
|
47
|
-
/**
|
|
48
|
-
* Call `TextFormatter.registerInfo(info)` to register font information before using this method.
|
|
49
|
-
*
|
|
50
|
-
* This method creates a formatter for the font that most closely matches the requested font.
|
|
51
|
-
* We compare font family, bold, and italic attributes.
|
|
52
|
-
* This method will return a fallback formatter if there are no matches.
|
|
53
|
-
*/
|
|
54
|
-
static create(requestedFont?: FontInfo): TextFormatter;
|
|
55
|
-
/**
|
|
56
|
-
* @param fontFamily used as a key to the font registry.
|
|
57
|
-
* @returns the same info object that was passed in via `TextFormatter.registerInfo(info)`
|
|
58
|
-
*/
|
|
59
|
-
static getInfo(fontFamily: string): TextFormatterInfo | undefined;
|
|
60
|
-
/**
|
|
61
|
-
* Apps may register their own fonts and metrics, and those metrics
|
|
62
|
-
* will be available to the app for formatting.
|
|
63
|
-
*
|
|
64
|
-
* Metrics can be generated from a font file using fontgen_text.js in the tools/fonts directory.
|
|
65
|
-
* @param info
|
|
66
|
-
* @param overwrite
|
|
67
|
-
*/
|
|
68
|
-
static registerInfo(info: TextFormatterInfo, overwrite?: boolean): void;
|
|
69
|
-
/** Font family. */
|
|
70
|
-
protected family: string;
|
|
71
|
-
/** Specified in `pt` units. */
|
|
72
|
-
protected size: number;
|
|
73
|
-
/** Font metrics are extracted at 1000 upem (units per em). */
|
|
74
|
-
protected resolution: number;
|
|
75
|
-
/**
|
|
76
|
-
* For text formatting, we do not require glyph outlines, but instead rely on glyph
|
|
77
|
-
* bounding box metrics such as:
|
|
78
|
-
* ```
|
|
79
|
-
* {
|
|
80
|
-
* x_min: 48,
|
|
81
|
-
* x_max: 235,
|
|
82
|
-
* y_min: -17,
|
|
83
|
-
* y_max: 734,
|
|
84
|
-
* ha: 751,
|
|
85
|
-
* leftSideBearing: 48,
|
|
86
|
-
* advanceWidth: 286,
|
|
87
|
-
* }
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
protected glyphs: Record<string, FontGlyph>;
|
|
91
|
-
protected description?: string;
|
|
92
|
-
protected serifs: boolean;
|
|
93
|
-
protected monospaced: boolean;
|
|
94
|
-
protected italic: boolean;
|
|
95
|
-
protected bold: boolean;
|
|
96
|
-
protected superscriptOffset: number;
|
|
97
|
-
protected subscriptOffset: number;
|
|
98
|
-
protected maxSizeGlyph: string;
|
|
99
|
-
protected cacheKey: string;
|
|
100
|
-
/**
|
|
101
|
-
* Use `TextFormatter.create(...)` to build an instance from information previously
|
|
102
|
-
* registered via `TextFormatter.registerInfo(info)`.
|
|
103
|
-
*/
|
|
104
|
-
private constructor();
|
|
105
|
-
get localHeightCache(): Record<string, yExtent | undefined>;
|
|
106
|
-
updateParams(params: TextFormatterInfo): void;
|
|
107
|
-
/** Create a hash with the current font data, so we can cache computed widths. */
|
|
108
|
-
updateCacheKey(): void;
|
|
109
|
-
/**
|
|
110
|
-
* The glyphs table is indexed by the character (e.g., 'C', '@').
|
|
111
|
-
* See: robotoslab_glyphs.ts & petalumascript_glyphs.ts.
|
|
112
|
-
*/
|
|
113
|
-
getGlyphMetrics(character: string): FontGlyph;
|
|
114
|
-
get maxHeight(): number;
|
|
115
|
-
/**
|
|
116
|
-
* Retrieve the character's advanceWidth as a fraction of an `em` unit.
|
|
117
|
-
* For the space character ' ' as defined in the:
|
|
118
|
-
* petalumascript_glyphs.ts: 250 advanceWidth in the 1000 unitsPerEm font returns 0.25.
|
|
119
|
-
* robotoslab_glyphs.ts: 509 advanceWidth in the 2048 unitsPerEm font returns 0.2485.
|
|
120
|
-
*/
|
|
121
|
-
getWidthForCharacterInEm(c: string): number;
|
|
122
|
-
/**
|
|
123
|
-
* Retrieve the character's y bounds (ymin, ymax) and height.
|
|
124
|
-
*/
|
|
125
|
-
getYForCharacterInPx(c: string): yExtent;
|
|
126
|
-
getYForStringInPx(str: string): yExtent;
|
|
127
|
-
/**
|
|
128
|
-
* Retrieve the total width of `text` in `em` units.
|
|
129
|
-
*/
|
|
130
|
-
getWidthForTextInEm(text: string): number;
|
|
131
|
-
/** The width of the text (in `em`) is scaled by the font size (in `px`). */
|
|
132
|
-
getWidthForTextInPx(text: string): number;
|
|
133
|
-
/**
|
|
134
|
-
* @param size in pt.
|
|
135
|
-
*/
|
|
136
|
-
setFontSize(size: number): this;
|
|
137
|
-
/** `this.size` is specified in points. Convert to pixels. */
|
|
138
|
-
get fontSizeInPixels(): number;
|
|
139
|
-
getResolution(): number;
|
|
140
|
-
}
|
|
1
|
+
import { FontInfo } from '../common/vex';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export interface FontGlyph {
|
|
6
|
+
xMin: number;
|
|
7
|
+
xMax: number;
|
|
8
|
+
yMin: number;
|
|
9
|
+
yMax: number;
|
|
10
|
+
ha: number;
|
|
11
|
+
leftSideBearing: number;
|
|
12
|
+
advanceWidth: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export interface TextFormatterInfo extends Record<string, unknown> {
|
|
18
|
+
family: string;
|
|
19
|
+
resolution?: number;
|
|
20
|
+
glyphs?: Record<string, FontGlyph>;
|
|
21
|
+
serifs: boolean;
|
|
22
|
+
monospaced: boolean;
|
|
23
|
+
italic: boolean;
|
|
24
|
+
bold: boolean;
|
|
25
|
+
maxSizeGlyph?: string;
|
|
26
|
+
superscriptOffset?: number;
|
|
27
|
+
subscriptOffset?: number;
|
|
28
|
+
description: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Y information, 0 is baseline, yMin is lowest point.
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export interface yExtent {
|
|
35
|
+
yMin: number;
|
|
36
|
+
yMax: number;
|
|
37
|
+
height: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @category SuiRender
|
|
41
|
+
*/
|
|
42
|
+
export declare class TextFormatter {
|
|
43
|
+
/**
|
|
44
|
+
* Return all registered font families.
|
|
45
|
+
*/
|
|
46
|
+
static getFontFamilies(): TextFormatterInfo[];
|
|
47
|
+
/**
|
|
48
|
+
* Call `TextFormatter.registerInfo(info)` to register font information before using this method.
|
|
49
|
+
*
|
|
50
|
+
* This method creates a formatter for the font that most closely matches the requested font.
|
|
51
|
+
* We compare font family, bold, and italic attributes.
|
|
52
|
+
* This method will return a fallback formatter if there are no matches.
|
|
53
|
+
*/
|
|
54
|
+
static create(requestedFont?: FontInfo): TextFormatter;
|
|
55
|
+
/**
|
|
56
|
+
* @param fontFamily used as a key to the font registry.
|
|
57
|
+
* @returns the same info object that was passed in via `TextFormatter.registerInfo(info)`
|
|
58
|
+
*/
|
|
59
|
+
static getInfo(fontFamily: string): TextFormatterInfo | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Apps may register their own fonts and metrics, and those metrics
|
|
62
|
+
* will be available to the app for formatting.
|
|
63
|
+
*
|
|
64
|
+
* Metrics can be generated from a font file using fontgen_text.js in the tools/fonts directory.
|
|
65
|
+
* @param info
|
|
66
|
+
* @param overwrite
|
|
67
|
+
*/
|
|
68
|
+
static registerInfo(info: TextFormatterInfo, overwrite?: boolean): void;
|
|
69
|
+
/** Font family. */
|
|
70
|
+
protected family: string;
|
|
71
|
+
/** Specified in `pt` units. */
|
|
72
|
+
protected size: number;
|
|
73
|
+
/** Font metrics are extracted at 1000 upem (units per em). */
|
|
74
|
+
protected resolution: number;
|
|
75
|
+
/**
|
|
76
|
+
* For text formatting, we do not require glyph outlines, but instead rely on glyph
|
|
77
|
+
* bounding box metrics such as:
|
|
78
|
+
* ```
|
|
79
|
+
* {
|
|
80
|
+
* x_min: 48,
|
|
81
|
+
* x_max: 235,
|
|
82
|
+
* y_min: -17,
|
|
83
|
+
* y_max: 734,
|
|
84
|
+
* ha: 751,
|
|
85
|
+
* leftSideBearing: 48,
|
|
86
|
+
* advanceWidth: 286,
|
|
87
|
+
* }
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
protected glyphs: Record<string, FontGlyph>;
|
|
91
|
+
protected description?: string;
|
|
92
|
+
protected serifs: boolean;
|
|
93
|
+
protected monospaced: boolean;
|
|
94
|
+
protected italic: boolean;
|
|
95
|
+
protected bold: boolean;
|
|
96
|
+
protected superscriptOffset: number;
|
|
97
|
+
protected subscriptOffset: number;
|
|
98
|
+
protected maxSizeGlyph: string;
|
|
99
|
+
protected cacheKey: string;
|
|
100
|
+
/**
|
|
101
|
+
* Use `TextFormatter.create(...)` to build an instance from information previously
|
|
102
|
+
* registered via `TextFormatter.registerInfo(info)`.
|
|
103
|
+
*/
|
|
104
|
+
private constructor();
|
|
105
|
+
get localHeightCache(): Record<string, yExtent | undefined>;
|
|
106
|
+
updateParams(params: TextFormatterInfo): void;
|
|
107
|
+
/** Create a hash with the current font data, so we can cache computed widths. */
|
|
108
|
+
updateCacheKey(): void;
|
|
109
|
+
/**
|
|
110
|
+
* The glyphs table is indexed by the character (e.g., 'C', '@').
|
|
111
|
+
* See: robotoslab_glyphs.ts & petalumascript_glyphs.ts.
|
|
112
|
+
*/
|
|
113
|
+
getGlyphMetrics(character: string): FontGlyph;
|
|
114
|
+
get maxHeight(): number;
|
|
115
|
+
/**
|
|
116
|
+
* Retrieve the character's advanceWidth as a fraction of an `em` unit.
|
|
117
|
+
* For the space character ' ' as defined in the:
|
|
118
|
+
* petalumascript_glyphs.ts: 250 advanceWidth in the 1000 unitsPerEm font returns 0.25.
|
|
119
|
+
* robotoslab_glyphs.ts: 509 advanceWidth in the 2048 unitsPerEm font returns 0.2485.
|
|
120
|
+
*/
|
|
121
|
+
getWidthForCharacterInEm(c: string): number;
|
|
122
|
+
/**
|
|
123
|
+
* Retrieve the character's y bounds (ymin, ymax) and height.
|
|
124
|
+
*/
|
|
125
|
+
getYForCharacterInPx(c: string): yExtent;
|
|
126
|
+
getYForStringInPx(str: string): yExtent;
|
|
127
|
+
/**
|
|
128
|
+
* Retrieve the total width of `text` in `em` units.
|
|
129
|
+
*/
|
|
130
|
+
getWidthForTextInEm(text: string): number;
|
|
131
|
+
/** The width of the text (in `em`) is scaled by the font size (in `px`). */
|
|
132
|
+
getWidthForTextInPx(text: string): number;
|
|
133
|
+
/**
|
|
134
|
+
* @param size in pt.
|
|
135
|
+
*/
|
|
136
|
+
setFontSize(size: number): this;
|
|
137
|
+
/** `this.size` is specified in points. Convert to pixels. */
|
|
138
|
+
get fontSizeInPixels(): number;
|
|
139
|
+
getResolution(): number;
|
|
140
|
+
}
|