smoosic 1.0.25 → 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/src/application/exports.ts +1 -0
- 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,310 +1,310 @@
|
|
|
1
|
-
import { SuiInlineText, SuiTextBlock } from './textRender';
|
|
2
|
-
import { SuiRenderState } from './renderState';
|
|
3
|
-
import { SuiScroller } from './scroller';
|
|
4
|
-
import { OutlineInfo, StrokeInfo } from './svgHelpers';
|
|
5
|
-
import { SmoScoreText, SmoTextGroup } from '../../smo/data/scoreText';
|
|
6
|
-
import { SmoLyric } from '../../smo/data/noteModifiers';
|
|
7
|
-
import { SmoSelector } from '../../smo/xform/selections';
|
|
8
|
-
import { SvgBox, KeyEvent } from '../../smo/data/common';
|
|
9
|
-
import { SmoNote } from '../../smo/data/note';
|
|
10
|
-
import { SmoScore } from '../../smo/data/score';
|
|
11
|
-
import { SmoSelection } from '../../smo/xform/selections';
|
|
12
|
-
import { SvgPage } from './svgPageMap';
|
|
13
|
-
import { SuiScoreViewOperations } from './scoreViewOperations';
|
|
14
|
-
import { SvgPageMap } from './svgPageMap';
|
|
15
|
-
/**
|
|
16
|
-
* Basic parameters to create a text editor
|
|
17
|
-
* @category SuiRender
|
|
18
|
-
* @param context Vex renderer context
|
|
19
|
-
* @param scroller
|
|
20
|
-
* @param x initial x position
|
|
21
|
-
* @param y initial y position
|
|
22
|
-
* @param text initial text
|
|
23
|
-
*/
|
|
24
|
-
export interface SuiTextEditorParams {
|
|
25
|
-
pageMap: SvgPageMap;
|
|
26
|
-
context: SvgPage;
|
|
27
|
-
scroller: SuiScroller;
|
|
28
|
-
x: number;
|
|
29
|
-
y: number;
|
|
30
|
-
text: string;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* @category SuiRender
|
|
34
|
-
*/
|
|
35
|
-
export interface SuiLyricEditorParams extends SuiTextEditorParams {
|
|
36
|
-
lyric: SmoLyric;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* @category SuiRender
|
|
40
|
-
*/
|
|
41
|
-
export interface SuiTextSessionParams {
|
|
42
|
-
scroller: SuiScroller;
|
|
43
|
-
renderer: SuiRenderState;
|
|
44
|
-
scoreText: SmoScoreText;
|
|
45
|
-
text: string;
|
|
46
|
-
x: number;
|
|
47
|
-
y: number;
|
|
48
|
-
textGroup: SmoTextGroup;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* @category SuiRender
|
|
52
|
-
*/
|
|
53
|
-
export interface SuiLyricSessionParams {
|
|
54
|
-
score: SmoScore;
|
|
55
|
-
renderer: SuiRenderState;
|
|
56
|
-
scroller: SuiScroller;
|
|
57
|
-
view: SuiScoreViewOperations;
|
|
58
|
-
verse: number;
|
|
59
|
-
selector: SmoSelector;
|
|
60
|
-
}
|
|
61
|
-
export type SuiTextStrokeName = 'text-suggestion' | 'text-selection' | 'text-highlight' | 'text-drag' | 'inactive-text';
|
|
62
|
-
/**
|
|
63
|
-
* The heirarchy of text editing objects goes:
|
|
64
|
-
*
|
|
65
|
-
* `dialog -> component -> session -> editor`
|
|
66
|
-
*
|
|
67
|
-
* Editors and Sessions are defined in this module.
|
|
68
|
-
* ### editor
|
|
69
|
-
* handles low-level events and renders the preview using one
|
|
70
|
-
* of the text layout objects.
|
|
71
|
-
* ### session
|
|
72
|
-
* creates and destroys editors, e.g. for lyrics that have a Different
|
|
73
|
-
* editor instance for each note.
|
|
74
|
-
*
|
|
75
|
-
* ## SuiTextEditor
|
|
76
|
-
* The base text editor handles the positioning and inserting
|
|
77
|
-
* of text blocks into the text area. The derived class shoud interpret key events.
|
|
78
|
-
* A container class will manage the session for starting/stopping the editor
|
|
79
|
-
* and retrieving the results into the target object.
|
|
80
|
-
* @category SuiRender
|
|
81
|
-
* */
|
|
82
|
-
export declare class SuiTextEditor {
|
|
83
|
-
static get States(): Record<string, number>;
|
|
84
|
-
static textTypeToChar(textType: number): string;
|
|
85
|
-
static textTypeFromChar(char: string): number;
|
|
86
|
-
svgText: SuiInlineText | null;
|
|
87
|
-
context: SvgPage;
|
|
88
|
-
outlineInfo: OutlineInfo | null;
|
|
89
|
-
pageMap: SvgPageMap;
|
|
90
|
-
x: number;
|
|
91
|
-
y: number;
|
|
92
|
-
text: string;
|
|
93
|
-
textPos: number;
|
|
94
|
-
selectionStart: number;
|
|
95
|
-
selectionLength: number;
|
|
96
|
-
empty: boolean;
|
|
97
|
-
scroller: SuiScroller;
|
|
98
|
-
suggestionIndex: number;
|
|
99
|
-
cursorState: boolean;
|
|
100
|
-
cursorRunning: boolean;
|
|
101
|
-
textType: number;
|
|
102
|
-
fontWeight: string;
|
|
103
|
-
fontFamily: string;
|
|
104
|
-
fontSize: number;
|
|
105
|
-
state: number;
|
|
106
|
-
suggestionRect: OutlineInfo | null;
|
|
107
|
-
constructor(params: SuiTextEditorParams);
|
|
108
|
-
static get strokes(): Record<SuiTextStrokeName, StrokeInfo>;
|
|
109
|
-
_suggestionParameters(box: SvgBox, strokeName: SuiTextStrokeName): OutlineInfo;
|
|
110
|
-
_expandSelectionToSuggestion(): void;
|
|
111
|
-
_setSelectionToSugggestion(): void;
|
|
112
|
-
rerender(): void;
|
|
113
|
-
handleMouseEvent(ev: any): boolean;
|
|
114
|
-
_serviceCursor(): void;
|
|
115
|
-
_refreshCursor(): void;
|
|
116
|
-
get _endCursorCondition(): boolean;
|
|
117
|
-
_cursorPreResolve(): void;
|
|
118
|
-
_cursorPoll(): void;
|
|
119
|
-
startCursorPromise(): Promise<void>;
|
|
120
|
-
stopCursor(): void;
|
|
121
|
-
setTextPos(val: number): void;
|
|
122
|
-
moveCursorRight(): void;
|
|
123
|
-
moveCursorLeft(): void;
|
|
124
|
-
_updateSelections(): void;
|
|
125
|
-
_checkGrowSelectionLeft(): void;
|
|
126
|
-
_checkGrowSelectionRight(): void;
|
|
127
|
-
growSelectionLeft(): void;
|
|
128
|
-
growSelectionRight(): void;
|
|
129
|
-
_clearSelections(): void;
|
|
130
|
-
deleteSelections(): void;
|
|
131
|
-
parseBlocks(): void;
|
|
132
|
-
evKey(evdata: KeyEvent): Promise<boolean>;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* @category SuiRender
|
|
136
|
-
*/
|
|
137
|
-
export declare class SuiTextBlockEditor extends SuiTextEditor {
|
|
138
|
-
constructor(params: SuiTextEditorParams);
|
|
139
|
-
_highlightEditor(): void;
|
|
140
|
-
getText(): string;
|
|
141
|
-
evKey(evdata: any): Promise<boolean>;
|
|
142
|
-
stopEditor(): void;
|
|
143
|
-
}
|
|
144
|
-
export declare class SuiLyricEditor extends SuiTextEditor {
|
|
145
|
-
static get States(): {
|
|
146
|
-
RUNNING: number;
|
|
147
|
-
STOPPING: number;
|
|
148
|
-
STOPPED: number;
|
|
149
|
-
};
|
|
150
|
-
parseBlocks(): void;
|
|
151
|
-
getText(): string;
|
|
152
|
-
lyric: SmoLyric;
|
|
153
|
-
state: number;
|
|
154
|
-
constructor(params: SuiLyricEditorParams);
|
|
155
|
-
stopEditor(): void;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* @category SuiRender
|
|
159
|
-
*/
|
|
160
|
-
export declare class SuiChordEditor extends SuiTextEditor {
|
|
161
|
-
static get States(): {
|
|
162
|
-
RUNNING: number;
|
|
163
|
-
STOPPING: number;
|
|
164
|
-
STOPPED: number;
|
|
165
|
-
};
|
|
166
|
-
static get SymbolModifiers(): {
|
|
167
|
-
NONE: number;
|
|
168
|
-
SUBSCRIPT: number;
|
|
169
|
-
SUPERSCRIPT: number;
|
|
170
|
-
};
|
|
171
|
-
static toTextTypeChar(oldTextType: number, newTextType: number): string;
|
|
172
|
-
static toTextTypeTransition(oldTextType: number, result: number): string;
|
|
173
|
-
setTextType(textType: number): void;
|
|
174
|
-
_updateSymbolModifiers(): void;
|
|
175
|
-
_setSymbolModifier(char: string): boolean;
|
|
176
|
-
parseBlocks(): void;
|
|
177
|
-
getText(): string;
|
|
178
|
-
_addGlyphAt(ix: number, code: string): void;
|
|
179
|
-
unrender(): void;
|
|
180
|
-
evKey(evdata: any): Promise<boolean>;
|
|
181
|
-
lyric: SmoLyric;
|
|
182
|
-
constructor(params: SuiLyricEditorParams);
|
|
183
|
-
stopEditor(): void;
|
|
184
|
-
_markStopped(): void;
|
|
185
|
-
}
|
|
186
|
-
export interface SuiDragSessionParams {
|
|
187
|
-
context: SvgPageMap;
|
|
188
|
-
scroller: SuiScroller;
|
|
189
|
-
textGroup: SmoTextGroup;
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* @category SuiRender
|
|
193
|
-
*/
|
|
194
|
-
export declare class SuiDragSession {
|
|
195
|
-
pageMap: SvgPageMap;
|
|
196
|
-
page: SvgPage;
|
|
197
|
-
scroller: SuiScroller;
|
|
198
|
-
outlineBox: SvgBox;
|
|
199
|
-
textObject: SuiTextBlock;
|
|
200
|
-
dragging: boolean;
|
|
201
|
-
outlineRect: OutlineInfo | null;
|
|
202
|
-
textGroup: SmoTextGroup;
|
|
203
|
-
constructor(params: SuiDragSessionParams);
|
|
204
|
-
_outlineBox(): void;
|
|
205
|
-
unrender(): void;
|
|
206
|
-
scrolledClientBox(x: number, y: number): {
|
|
207
|
-
x: number;
|
|
208
|
-
y: number;
|
|
209
|
-
width: number;
|
|
210
|
-
height: number;
|
|
211
|
-
};
|
|
212
|
-
checkBounds(): void;
|
|
213
|
-
startDrag(e: any): void;
|
|
214
|
-
mouseMove(e: any): void;
|
|
215
|
-
endDrag(): void;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* session for editing plain text
|
|
219
|
-
* @category SuiRender
|
|
220
|
-
*/
|
|
221
|
-
export declare class SuiTextSession {
|
|
222
|
-
static get States(): {
|
|
223
|
-
RUNNING: number;
|
|
224
|
-
STOPPING: number;
|
|
225
|
-
STOPPED: number;
|
|
226
|
-
PENDING_EDITOR: number;
|
|
227
|
-
};
|
|
228
|
-
scroller: SuiScroller;
|
|
229
|
-
scoreText: SmoScoreText;
|
|
230
|
-
text: string;
|
|
231
|
-
x: number;
|
|
232
|
-
y: number;
|
|
233
|
-
textGroup: SmoTextGroup;
|
|
234
|
-
fontFamily: string;
|
|
235
|
-
fontWeight: string;
|
|
236
|
-
fontSize: number;
|
|
237
|
-
state: number;
|
|
238
|
-
editor: SuiTextBlockEditor | null;
|
|
239
|
-
renderer: SuiRenderState;
|
|
240
|
-
cursorPromise: Promise<any> | null;
|
|
241
|
-
constructor(params: SuiTextSessionParams);
|
|
242
|
-
get _isRefreshed(): boolean;
|
|
243
|
-
get isStopped(): boolean;
|
|
244
|
-
get isRunning(): boolean;
|
|
245
|
-
_markStopped(): void;
|
|
246
|
-
get _isRendered(): boolean;
|
|
247
|
-
_removeScoreText(): void;
|
|
248
|
-
startSession(): void;
|
|
249
|
-
stopSession(): Promise<void>;
|
|
250
|
-
evKey(evdata: KeyEvent): Promise<boolean>;
|
|
251
|
-
handleMouseEvent(ev: any): void;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Manage editor for lyrics, jupmping from note to note if asked
|
|
255
|
-
* @category SuiRender
|
|
256
|
-
*/
|
|
257
|
-
export declare class SuiLyricSession {
|
|
258
|
-
static get States(): {
|
|
259
|
-
RUNNING: number;
|
|
260
|
-
STOPPING: number;
|
|
261
|
-
STOPPED: number;
|
|
262
|
-
PENDING_EDITOR: number;
|
|
263
|
-
};
|
|
264
|
-
score: SmoScore;
|
|
265
|
-
renderer: SuiRenderState;
|
|
266
|
-
scroller: SuiScroller;
|
|
267
|
-
view: SuiScoreViewOperations;
|
|
268
|
-
parser: number;
|
|
269
|
-
verse: number;
|
|
270
|
-
selector: SmoSelector;
|
|
271
|
-
selection: SmoSelection | null;
|
|
272
|
-
note: SmoNote | null;
|
|
273
|
-
originalText: string;
|
|
274
|
-
lyric: SmoLyric | null;
|
|
275
|
-
text: string;
|
|
276
|
-
editor: SuiLyricEditor | null;
|
|
277
|
-
state: number;
|
|
278
|
-
cursorPromise: Promise<any> | null;
|
|
279
|
-
constructor(params: SuiLyricSessionParams);
|
|
280
|
-
_setLyricForNote(): void;
|
|
281
|
-
get _endLyricCondition(): boolean;
|
|
282
|
-
get _isRefreshed(): boolean;
|
|
283
|
-
get _isRendered(): boolean;
|
|
284
|
-
get _pendingEditor(): boolean;
|
|
285
|
-
_hideLyric(): void;
|
|
286
|
-
get isStopped(): boolean;
|
|
287
|
-
get isRunning(): boolean;
|
|
288
|
-
_markStopped(): void;
|
|
289
|
-
_startSessionForNote(): void;
|
|
290
|
-
startSession(): void;
|
|
291
|
-
stopSession(): Promise<void>;
|
|
292
|
-
_advanceSelection(isShift: boolean): Promise<void>;
|
|
293
|
-
advanceSelection(isShift: boolean): Promise<void>;
|
|
294
|
-
removeLyric(): Promise<void>;
|
|
295
|
-
_updateLyricFromEditor(): Promise<void>;
|
|
296
|
-
evKey(evdata: any): Promise<boolean>;
|
|
297
|
-
get textType(): number;
|
|
298
|
-
set textType(type: number);
|
|
299
|
-
handleMouseEvent(ev: any): void;
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* @category SuiRender
|
|
303
|
-
*/
|
|
304
|
-
export declare class SuiChordSession extends SuiLyricSession {
|
|
305
|
-
editor: SuiLyricEditor | null;
|
|
306
|
-
constructor(params: SuiLyricSessionParams);
|
|
307
|
-
evKey(evdata: KeyEvent): Promise<boolean>;
|
|
308
|
-
_setLyricForNote(): void;
|
|
309
|
-
_startSessionForNote(): void;
|
|
310
|
-
}
|
|
1
|
+
import { SuiInlineText, SuiTextBlock } from './textRender';
|
|
2
|
+
import { SuiRenderState } from './renderState';
|
|
3
|
+
import { SuiScroller } from './scroller';
|
|
4
|
+
import { OutlineInfo, StrokeInfo } from './svgHelpers';
|
|
5
|
+
import { SmoScoreText, SmoTextGroup } from '../../smo/data/scoreText';
|
|
6
|
+
import { SmoLyric } from '../../smo/data/noteModifiers';
|
|
7
|
+
import { SmoSelector } from '../../smo/xform/selections';
|
|
8
|
+
import { SvgBox, KeyEvent } from '../../smo/data/common';
|
|
9
|
+
import { SmoNote } from '../../smo/data/note';
|
|
10
|
+
import { SmoScore } from '../../smo/data/score';
|
|
11
|
+
import { SmoSelection } from '../../smo/xform/selections';
|
|
12
|
+
import { SvgPage } from './svgPageMap';
|
|
13
|
+
import { SuiScoreViewOperations } from './scoreViewOperations';
|
|
14
|
+
import { SvgPageMap } from './svgPageMap';
|
|
15
|
+
/**
|
|
16
|
+
* Basic parameters to create a text editor
|
|
17
|
+
* @category SuiRender
|
|
18
|
+
* @param context Vex renderer context
|
|
19
|
+
* @param scroller
|
|
20
|
+
* @param x initial x position
|
|
21
|
+
* @param y initial y position
|
|
22
|
+
* @param text initial text
|
|
23
|
+
*/
|
|
24
|
+
export interface SuiTextEditorParams {
|
|
25
|
+
pageMap: SvgPageMap;
|
|
26
|
+
context: SvgPage;
|
|
27
|
+
scroller: SuiScroller;
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
text: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @category SuiRender
|
|
34
|
+
*/
|
|
35
|
+
export interface SuiLyricEditorParams extends SuiTextEditorParams {
|
|
36
|
+
lyric: SmoLyric;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @category SuiRender
|
|
40
|
+
*/
|
|
41
|
+
export interface SuiTextSessionParams {
|
|
42
|
+
scroller: SuiScroller;
|
|
43
|
+
renderer: SuiRenderState;
|
|
44
|
+
scoreText: SmoScoreText;
|
|
45
|
+
text: string;
|
|
46
|
+
x: number;
|
|
47
|
+
y: number;
|
|
48
|
+
textGroup: SmoTextGroup;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @category SuiRender
|
|
52
|
+
*/
|
|
53
|
+
export interface SuiLyricSessionParams {
|
|
54
|
+
score: SmoScore;
|
|
55
|
+
renderer: SuiRenderState;
|
|
56
|
+
scroller: SuiScroller;
|
|
57
|
+
view: SuiScoreViewOperations;
|
|
58
|
+
verse: number;
|
|
59
|
+
selector: SmoSelector;
|
|
60
|
+
}
|
|
61
|
+
export type SuiTextStrokeName = 'text-suggestion' | 'text-selection' | 'text-highlight' | 'text-drag' | 'inactive-text';
|
|
62
|
+
/**
|
|
63
|
+
* The heirarchy of text editing objects goes:
|
|
64
|
+
*
|
|
65
|
+
* `dialog -> component -> session -> editor`
|
|
66
|
+
*
|
|
67
|
+
* Editors and Sessions are defined in this module.
|
|
68
|
+
* ### editor
|
|
69
|
+
* handles low-level events and renders the preview using one
|
|
70
|
+
* of the text layout objects.
|
|
71
|
+
* ### session
|
|
72
|
+
* creates and destroys editors, e.g. for lyrics that have a Different
|
|
73
|
+
* editor instance for each note.
|
|
74
|
+
*
|
|
75
|
+
* ## SuiTextEditor
|
|
76
|
+
* The base text editor handles the positioning and inserting
|
|
77
|
+
* of text blocks into the text area. The derived class shoud interpret key events.
|
|
78
|
+
* A container class will manage the session for starting/stopping the editor
|
|
79
|
+
* and retrieving the results into the target object.
|
|
80
|
+
* @category SuiRender
|
|
81
|
+
* */
|
|
82
|
+
export declare class SuiTextEditor {
|
|
83
|
+
static get States(): Record<string, number>;
|
|
84
|
+
static textTypeToChar(textType: number): string;
|
|
85
|
+
static textTypeFromChar(char: string): number;
|
|
86
|
+
svgText: SuiInlineText | null;
|
|
87
|
+
context: SvgPage;
|
|
88
|
+
outlineInfo: OutlineInfo | null;
|
|
89
|
+
pageMap: SvgPageMap;
|
|
90
|
+
x: number;
|
|
91
|
+
y: number;
|
|
92
|
+
text: string;
|
|
93
|
+
textPos: number;
|
|
94
|
+
selectionStart: number;
|
|
95
|
+
selectionLength: number;
|
|
96
|
+
empty: boolean;
|
|
97
|
+
scroller: SuiScroller;
|
|
98
|
+
suggestionIndex: number;
|
|
99
|
+
cursorState: boolean;
|
|
100
|
+
cursorRunning: boolean;
|
|
101
|
+
textType: number;
|
|
102
|
+
fontWeight: string;
|
|
103
|
+
fontFamily: string;
|
|
104
|
+
fontSize: number;
|
|
105
|
+
state: number;
|
|
106
|
+
suggestionRect: OutlineInfo | null;
|
|
107
|
+
constructor(params: SuiTextEditorParams);
|
|
108
|
+
static get strokes(): Record<SuiTextStrokeName, StrokeInfo>;
|
|
109
|
+
_suggestionParameters(box: SvgBox, strokeName: SuiTextStrokeName): OutlineInfo;
|
|
110
|
+
_expandSelectionToSuggestion(): void;
|
|
111
|
+
_setSelectionToSugggestion(): void;
|
|
112
|
+
rerender(): void;
|
|
113
|
+
handleMouseEvent(ev: any): boolean;
|
|
114
|
+
_serviceCursor(): void;
|
|
115
|
+
_refreshCursor(): void;
|
|
116
|
+
get _endCursorCondition(): boolean;
|
|
117
|
+
_cursorPreResolve(): void;
|
|
118
|
+
_cursorPoll(): void;
|
|
119
|
+
startCursorPromise(): Promise<void>;
|
|
120
|
+
stopCursor(): void;
|
|
121
|
+
setTextPos(val: number): void;
|
|
122
|
+
moveCursorRight(): void;
|
|
123
|
+
moveCursorLeft(): void;
|
|
124
|
+
_updateSelections(): void;
|
|
125
|
+
_checkGrowSelectionLeft(): void;
|
|
126
|
+
_checkGrowSelectionRight(): void;
|
|
127
|
+
growSelectionLeft(): void;
|
|
128
|
+
growSelectionRight(): void;
|
|
129
|
+
_clearSelections(): void;
|
|
130
|
+
deleteSelections(): void;
|
|
131
|
+
parseBlocks(): void;
|
|
132
|
+
evKey(evdata: KeyEvent): Promise<boolean>;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* @category SuiRender
|
|
136
|
+
*/
|
|
137
|
+
export declare class SuiTextBlockEditor extends SuiTextEditor {
|
|
138
|
+
constructor(params: SuiTextEditorParams);
|
|
139
|
+
_highlightEditor(): void;
|
|
140
|
+
getText(): string;
|
|
141
|
+
evKey(evdata: any): Promise<boolean>;
|
|
142
|
+
stopEditor(): void;
|
|
143
|
+
}
|
|
144
|
+
export declare class SuiLyricEditor extends SuiTextEditor {
|
|
145
|
+
static get States(): {
|
|
146
|
+
RUNNING: number;
|
|
147
|
+
STOPPING: number;
|
|
148
|
+
STOPPED: number;
|
|
149
|
+
};
|
|
150
|
+
parseBlocks(): void;
|
|
151
|
+
getText(): string;
|
|
152
|
+
lyric: SmoLyric;
|
|
153
|
+
state: number;
|
|
154
|
+
constructor(params: SuiLyricEditorParams);
|
|
155
|
+
stopEditor(): void;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* @category SuiRender
|
|
159
|
+
*/
|
|
160
|
+
export declare class SuiChordEditor extends SuiTextEditor {
|
|
161
|
+
static get States(): {
|
|
162
|
+
RUNNING: number;
|
|
163
|
+
STOPPING: number;
|
|
164
|
+
STOPPED: number;
|
|
165
|
+
};
|
|
166
|
+
static get SymbolModifiers(): {
|
|
167
|
+
NONE: number;
|
|
168
|
+
SUBSCRIPT: number;
|
|
169
|
+
SUPERSCRIPT: number;
|
|
170
|
+
};
|
|
171
|
+
static toTextTypeChar(oldTextType: number, newTextType: number): string;
|
|
172
|
+
static toTextTypeTransition(oldTextType: number, result: number): string;
|
|
173
|
+
setTextType(textType: number): void;
|
|
174
|
+
_updateSymbolModifiers(): void;
|
|
175
|
+
_setSymbolModifier(char: string): boolean;
|
|
176
|
+
parseBlocks(): void;
|
|
177
|
+
getText(): string;
|
|
178
|
+
_addGlyphAt(ix: number, code: string): void;
|
|
179
|
+
unrender(): void;
|
|
180
|
+
evKey(evdata: any): Promise<boolean>;
|
|
181
|
+
lyric: SmoLyric;
|
|
182
|
+
constructor(params: SuiLyricEditorParams);
|
|
183
|
+
stopEditor(): void;
|
|
184
|
+
_markStopped(): void;
|
|
185
|
+
}
|
|
186
|
+
export interface SuiDragSessionParams {
|
|
187
|
+
context: SvgPageMap;
|
|
188
|
+
scroller: SuiScroller;
|
|
189
|
+
textGroup: SmoTextGroup;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* @category SuiRender
|
|
193
|
+
*/
|
|
194
|
+
export declare class SuiDragSession {
|
|
195
|
+
pageMap: SvgPageMap;
|
|
196
|
+
page: SvgPage;
|
|
197
|
+
scroller: SuiScroller;
|
|
198
|
+
outlineBox: SvgBox;
|
|
199
|
+
textObject: SuiTextBlock;
|
|
200
|
+
dragging: boolean;
|
|
201
|
+
outlineRect: OutlineInfo | null;
|
|
202
|
+
textGroup: SmoTextGroup;
|
|
203
|
+
constructor(params: SuiDragSessionParams);
|
|
204
|
+
_outlineBox(): void;
|
|
205
|
+
unrender(): void;
|
|
206
|
+
scrolledClientBox(x: number, y: number): {
|
|
207
|
+
x: number;
|
|
208
|
+
y: number;
|
|
209
|
+
width: number;
|
|
210
|
+
height: number;
|
|
211
|
+
};
|
|
212
|
+
checkBounds(): void;
|
|
213
|
+
startDrag(e: any): void;
|
|
214
|
+
mouseMove(e: any): void;
|
|
215
|
+
endDrag(): void;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* session for editing plain text
|
|
219
|
+
* @category SuiRender
|
|
220
|
+
*/
|
|
221
|
+
export declare class SuiTextSession {
|
|
222
|
+
static get States(): {
|
|
223
|
+
RUNNING: number;
|
|
224
|
+
STOPPING: number;
|
|
225
|
+
STOPPED: number;
|
|
226
|
+
PENDING_EDITOR: number;
|
|
227
|
+
};
|
|
228
|
+
scroller: SuiScroller;
|
|
229
|
+
scoreText: SmoScoreText;
|
|
230
|
+
text: string;
|
|
231
|
+
x: number;
|
|
232
|
+
y: number;
|
|
233
|
+
textGroup: SmoTextGroup;
|
|
234
|
+
fontFamily: string;
|
|
235
|
+
fontWeight: string;
|
|
236
|
+
fontSize: number;
|
|
237
|
+
state: number;
|
|
238
|
+
editor: SuiTextBlockEditor | null;
|
|
239
|
+
renderer: SuiRenderState;
|
|
240
|
+
cursorPromise: Promise<any> | null;
|
|
241
|
+
constructor(params: SuiTextSessionParams);
|
|
242
|
+
get _isRefreshed(): boolean;
|
|
243
|
+
get isStopped(): boolean;
|
|
244
|
+
get isRunning(): boolean;
|
|
245
|
+
_markStopped(): void;
|
|
246
|
+
get _isRendered(): boolean;
|
|
247
|
+
_removeScoreText(): void;
|
|
248
|
+
startSession(): void;
|
|
249
|
+
stopSession(): Promise<void>;
|
|
250
|
+
evKey(evdata: KeyEvent): Promise<boolean>;
|
|
251
|
+
handleMouseEvent(ev: any): void;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Manage editor for lyrics, jupmping from note to note if asked
|
|
255
|
+
* @category SuiRender
|
|
256
|
+
*/
|
|
257
|
+
export declare class SuiLyricSession {
|
|
258
|
+
static get States(): {
|
|
259
|
+
RUNNING: number;
|
|
260
|
+
STOPPING: number;
|
|
261
|
+
STOPPED: number;
|
|
262
|
+
PENDING_EDITOR: number;
|
|
263
|
+
};
|
|
264
|
+
score: SmoScore;
|
|
265
|
+
renderer: SuiRenderState;
|
|
266
|
+
scroller: SuiScroller;
|
|
267
|
+
view: SuiScoreViewOperations;
|
|
268
|
+
parser: number;
|
|
269
|
+
verse: number;
|
|
270
|
+
selector: SmoSelector;
|
|
271
|
+
selection: SmoSelection | null;
|
|
272
|
+
note: SmoNote | null;
|
|
273
|
+
originalText: string;
|
|
274
|
+
lyric: SmoLyric | null;
|
|
275
|
+
text: string;
|
|
276
|
+
editor: SuiLyricEditor | null;
|
|
277
|
+
state: number;
|
|
278
|
+
cursorPromise: Promise<any> | null;
|
|
279
|
+
constructor(params: SuiLyricSessionParams);
|
|
280
|
+
_setLyricForNote(): void;
|
|
281
|
+
get _endLyricCondition(): boolean;
|
|
282
|
+
get _isRefreshed(): boolean;
|
|
283
|
+
get _isRendered(): boolean;
|
|
284
|
+
get _pendingEditor(): boolean;
|
|
285
|
+
_hideLyric(): void;
|
|
286
|
+
get isStopped(): boolean;
|
|
287
|
+
get isRunning(): boolean;
|
|
288
|
+
_markStopped(): void;
|
|
289
|
+
_startSessionForNote(): void;
|
|
290
|
+
startSession(): void;
|
|
291
|
+
stopSession(): Promise<void>;
|
|
292
|
+
_advanceSelection(isShift: boolean): Promise<void>;
|
|
293
|
+
advanceSelection(isShift: boolean): Promise<void>;
|
|
294
|
+
removeLyric(): Promise<void>;
|
|
295
|
+
_updateLyricFromEditor(): Promise<void>;
|
|
296
|
+
evKey(evdata: any): Promise<boolean>;
|
|
297
|
+
get textType(): number;
|
|
298
|
+
set textType(type: number);
|
|
299
|
+
handleMouseEvent(ev: any): void;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* @category SuiRender
|
|
303
|
+
*/
|
|
304
|
+
export declare class SuiChordSession extends SuiLyricSession {
|
|
305
|
+
editor: SuiLyricEditor | null;
|
|
306
|
+
constructor(params: SuiLyricSessionParams);
|
|
307
|
+
evKey(evdata: KeyEvent): Promise<boolean>;
|
|
308
|
+
_setLyricForNote(): void;
|
|
309
|
+
_startSessionForNote(): void;
|
|
310
|
+
}
|