smoosic 1.0.34 → 1.0.35
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/html/smoosic.html +1 -0
- package/build/smoosic.js +36 -14
- package/package.json +1 -1
- package/release/html/smoosic.html +4 -3
- package/release/smoosic.js +36 -14
- package/release/styles/general.css +15 -0
- package/src/application/common.ts +20 -0
- package/src/application/eventHandler.ts +44 -8
- package/src/render/sui/NoteEntryCaret.ts +739 -0
- package/src/render/sui/NoteEntryMediator.ts +58 -0
- package/src/render/sui/mapper.ts +22 -4
- package/src/render/sui/scoreRender.ts +7 -7
- package/src/render/sui/scoreViewOperations.ts +46 -0
- package/src/render/sui/tracker.ts +93 -47
- package/src/render/vex/vxMeasure.ts +2 -1
- package/src/render/vex/vxNote.ts +1 -0
- package/src/smo/data/music.ts +17 -0
- package/src/smo/data/note.ts +3 -1
- package/src/smo/data/noteModifiers.ts +2 -0
- package/src/smo/data/scoreModifiers.ts +0 -3
- package/src/styles/general.css +22 -0
- package/src/ui/components/dialogs/scorePreferences.vue +1 -11
- package/types/src/application/application.d.ts +102 -102
- package/types/src/application/configuration.d.ts +74 -74
- 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 -494
- 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/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/svgPageMap.d.ts +318 -318
- package/types/src/render/sui/textEdit.d.ts +310 -310
- package/types/src/render/vex/vxMeasure.d.ts +95 -95
- 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/scoreModifiers.d.ts +433 -433
- package/types/src/smo/xform/selections.d.ts +153 -153
- package/types/src/ui/common.d.ts +45 -45
- package/types/src/ui/configuration.d.ts +31 -31
- package/types/src/ui/dialogs/chordChange.d.ts +35 -35
- 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/dropdown.d.ts +78 -78
- 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/textInPlace.d.ts +90 -90
- package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
- package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
- package/types/src/ui/dialogs/dialog.d.ts +201 -201
- package/types/src/ui/dialogs/endings.d.ts +61 -61
- 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/textBlock.d.ts +61 -61
- package/types/src/ui/exceptions.d.ts +12 -12
- package/types/src/ui/menus/manager.d.ts +57 -57
- package/types/src/ui/navigation.d.ts +15 -15
- package/types/typedoc.d.ts +158 -158
- package/release/styles/styles.css +0 -0
- package/src/styles/fonts/Roboto-Italic-VariableFont_wdth,wght.ttf +0 -0
- package/src/styles/fonts/Roboto-VariableFont_wdth,wght.ttf +0 -0
- package/src/styles/styles.css +0 -0
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { SuiComponentBase, SuiDialogNotifier, SuiComponentParent } from './baseComponent';
|
|
2
|
-
/**
|
|
3
|
-
* parameters for simple on-off toggle
|
|
4
|
-
* @category SuiDialog
|
|
5
|
-
*/
|
|
6
|
-
export interface SuiToggleComponentParams {
|
|
7
|
-
id: string;
|
|
8
|
-
classes: string;
|
|
9
|
-
type?: string;
|
|
10
|
-
increment?: number;
|
|
11
|
-
label: string;
|
|
12
|
-
smoName: string;
|
|
13
|
-
control: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Simple boolean checkbox component
|
|
17
|
-
* @category SuiDialog
|
|
18
|
-
*/
|
|
19
|
-
export declare class SuiToggleComponent extends SuiComponentBase {
|
|
20
|
-
defaultValue: boolean;
|
|
21
|
-
constructor(dialog: SuiDialogNotifier, parameter: SuiToggleComponentParams);
|
|
22
|
-
get html(): import("../../../common/htmlHelpers").DomBuilder;
|
|
23
|
-
_getInputElement(): any;
|
|
24
|
-
setValue(value: boolean): void;
|
|
25
|
-
getValue(): any;
|
|
26
|
-
bind(): void;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Params for toggle combined with another component
|
|
30
|
-
* @category SuiDialog
|
|
31
|
-
*/
|
|
32
|
-
export interface SuiToggleCompositeParams {
|
|
33
|
-
id: string;
|
|
34
|
-
classes: string;
|
|
35
|
-
type?: string;
|
|
36
|
-
increment?: number;
|
|
37
|
-
label: string;
|
|
38
|
-
smoName: string;
|
|
39
|
-
control: string;
|
|
40
|
-
disabledOption?: string;
|
|
41
|
-
defaultValue?: string | number;
|
|
42
|
-
dataType?: string;
|
|
43
|
-
parentControl: SuiComponentParent;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Dropdown component that can be part of a composite control.
|
|
47
|
-
* @category SuiDialog
|
|
48
|
-
*/
|
|
49
|
-
export declare class SuiToggleComposite extends SuiToggleComponent {
|
|
50
|
-
parentControl: SuiComponentParent;
|
|
51
|
-
constructor(dialog: SuiDialogNotifier, parameters: SuiToggleCompositeParams);
|
|
52
|
-
handleChanged(): void;
|
|
53
|
-
}
|
|
1
|
+
import { SuiComponentBase, SuiDialogNotifier, SuiComponentParent } from './baseComponent';
|
|
2
|
+
/**
|
|
3
|
+
* parameters for simple on-off toggle
|
|
4
|
+
* @category SuiDialog
|
|
5
|
+
*/
|
|
6
|
+
export interface SuiToggleComponentParams {
|
|
7
|
+
id: string;
|
|
8
|
+
classes: string;
|
|
9
|
+
type?: string;
|
|
10
|
+
increment?: number;
|
|
11
|
+
label: string;
|
|
12
|
+
smoName: string;
|
|
13
|
+
control: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Simple boolean checkbox component
|
|
17
|
+
* @category SuiDialog
|
|
18
|
+
*/
|
|
19
|
+
export declare class SuiToggleComponent extends SuiComponentBase {
|
|
20
|
+
defaultValue: boolean;
|
|
21
|
+
constructor(dialog: SuiDialogNotifier, parameter: SuiToggleComponentParams);
|
|
22
|
+
get html(): import("../../../common/htmlHelpers").DomBuilder;
|
|
23
|
+
_getInputElement(): any;
|
|
24
|
+
setValue(value: boolean): void;
|
|
25
|
+
getValue(): any;
|
|
26
|
+
bind(): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Params for toggle combined with another component
|
|
30
|
+
* @category SuiDialog
|
|
31
|
+
*/
|
|
32
|
+
export interface SuiToggleCompositeParams {
|
|
33
|
+
id: string;
|
|
34
|
+
classes: string;
|
|
35
|
+
type?: string;
|
|
36
|
+
increment?: number;
|
|
37
|
+
label: string;
|
|
38
|
+
smoName: string;
|
|
39
|
+
control: string;
|
|
40
|
+
disabledOption?: string;
|
|
41
|
+
defaultValue?: string | number;
|
|
42
|
+
dataType?: string;
|
|
43
|
+
parentControl: SuiComponentParent;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Dropdown component that can be part of a composite control.
|
|
47
|
+
* @category SuiDialog
|
|
48
|
+
*/
|
|
49
|
+
export declare class SuiToggleComposite extends SuiToggleComponent {
|
|
50
|
+
parentControl: SuiComponentParent;
|
|
51
|
+
constructor(dialog: SuiDialogNotifier, parameters: SuiToggleCompositeParams);
|
|
52
|
+
handleChanged(): void;
|
|
53
|
+
}
|
|
@@ -1,201 +1,201 @@
|
|
|
1
|
-
import { InputTrapper } from '../../common/htmlHelpers';
|
|
2
|
-
import { SmoModifier } from '../../smo/data/score';
|
|
3
|
-
import { SvgBox } from '../../smo/data/common';
|
|
4
|
-
import { SuiTracker } from '../../render/sui/tracker';
|
|
5
|
-
import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
|
|
6
|
-
import { CompleteNotifier } from '../common';
|
|
7
|
-
import { BrowserEventSource } from '../eventSource';
|
|
8
|
-
import { SuiDialogNotifier, DialogDefinitionElement, SuiComponentBase, DialogDefinitionOption } from './components/baseComponent';
|
|
9
|
-
import { SuiScroller } from '../../render/sui/scroller';
|
|
10
|
-
import { EventHandler } from '../eventSource';
|
|
11
|
-
import { SmoUiConfiguration } from '../configuration';
|
|
12
|
-
export type DialogCallback = () => Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Parameters for installing a dialog. VUE-based dialog logic.
|
|
15
|
-
* complete is a Ref that is set to true when the dialog is finished, used to
|
|
16
|
-
* hand off keyboard control between dialogs and menus.
|
|
17
|
-
* app is a VUE app, appParams are the parameters to pass to the app.
|
|
18
|
-
* we override commitCb, cancelCb, and removeCb to manage the dialog lifetime.
|
|
19
|
-
* root is the DOM id to mount the dialog in (without the '#')
|
|
20
|
-
* @category SuiDialog
|
|
21
|
-
*/
|
|
22
|
-
export interface DialogInstallParams {
|
|
23
|
-
root: string;
|
|
24
|
-
app: any;
|
|
25
|
-
appParams: any;
|
|
26
|
-
dialogParams: SuiDialogParams;
|
|
27
|
-
commitCb: DialogCallback;
|
|
28
|
-
cancelCb: DialogCallback;
|
|
29
|
-
removeCb?: DialogCallback;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* The callbacks can be confusing. Dialog CB button calls this callback,
|
|
33
|
-
* which in turn calls the user-supplied callback, and then hides the dialog.
|
|
34
|
-
* params.commitCb is the supplied callback,
|
|
35
|
-
* but appParams.commitCb is set to this function.
|
|
36
|
-
* @param params
|
|
37
|
-
*/
|
|
38
|
-
export declare const InstallDialog: (params: DialogInstallParams) => Promise<void>;
|
|
39
|
-
/**
|
|
40
|
-
* The JSON dialog template is a declaritive structore for the html of the dialog
|
|
41
|
-
* and components.
|
|
42
|
-
* @param label for the dialog itself
|
|
43
|
-
* @param elements a series of elements that define the component
|
|
44
|
-
* @param staticText a hash of text for the dialog and components to use
|
|
45
|
-
* @category SuiDialog
|
|
46
|
-
*/
|
|
47
|
-
export interface DialogDefinition {
|
|
48
|
-
label: string;
|
|
49
|
-
elements: DialogDefinitionElement[];
|
|
50
|
-
staticText: Record<string, string>[];
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* A translation of the labels in DialogDefintionElement
|
|
54
|
-
* @param label the component label
|
|
55
|
-
* @param id used as a key in translation tool
|
|
56
|
-
* @param options options for dropdown and other array components
|
|
57
|
-
* @category SuiDialog
|
|
58
|
-
*/
|
|
59
|
-
export interface DialogTranslationElement {
|
|
60
|
-
label: string;
|
|
61
|
-
id: string;
|
|
62
|
-
options?: DialogDefinitionOption[];
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* A translation of all the strings in the dialog itself, used
|
|
66
|
-
* when switching languages.
|
|
67
|
-
* @param ctor the constructor for the dialog class, used to call static methods
|
|
68
|
-
* @param label the translated label
|
|
69
|
-
* @param dialogElements the translated component json
|
|
70
|
-
* @param staticText translated misc text
|
|
71
|
-
* @category SuiDialog
|
|
72
|
-
*/
|
|
73
|
-
export interface DialogTranslation {
|
|
74
|
-
ctor: string;
|
|
75
|
-
label: string;
|
|
76
|
-
dialogElements: DialogTranslationElement[];
|
|
77
|
-
staticText: Record<string, string>;
|
|
78
|
-
}
|
|
79
|
-
export declare const DialogTranslations: DialogTranslation[];
|
|
80
|
-
/**
|
|
81
|
-
* Dialog params always contain basic information about the runtime
|
|
82
|
-
* for modal functionality
|
|
83
|
-
* @param ctor dialog constructor
|
|
84
|
-
* @param id DOM id for the dialog
|
|
85
|
-
* @param tracker to get and set selections
|
|
86
|
-
* @param completeNotifier used to take over key/mouse control
|
|
87
|
-
* @param startPromise used if this is called from another modal element
|
|
88
|
-
* @param view the MVVM object to change the score
|
|
89
|
-
* @param eventSource event source to register for additional events like mouseup
|
|
90
|
-
* @param undoBuffer used to create undo
|
|
91
|
-
* @category SuiDialog
|
|
92
|
-
*/
|
|
93
|
-
export interface SuiDialogParams {
|
|
94
|
-
ctor: string;
|
|
95
|
-
id: string;
|
|
96
|
-
tracker: SuiTracker;
|
|
97
|
-
completeNotifier: CompleteNotifier;
|
|
98
|
-
startPromise: Promise<void> | null;
|
|
99
|
-
view: SuiScoreViewOperations;
|
|
100
|
-
eventSource: BrowserEventSource;
|
|
101
|
-
modifier?: any;
|
|
102
|
-
config?: SmoUiConfiguration;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* internal interface used to create the DOM
|
|
106
|
-
* @internal
|
|
107
|
-
*/
|
|
108
|
-
export interface SuiDomParams {
|
|
109
|
-
id: string;
|
|
110
|
-
top: number;
|
|
111
|
-
left: number;
|
|
112
|
-
label: string;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* DOM interface for the dialog
|
|
116
|
-
* @internal
|
|
117
|
-
* @param element parent element
|
|
118
|
-
* @param trapper used to trap focus events for the dialog
|
|
119
|
-
*/
|
|
120
|
-
export interface DialogDom {
|
|
121
|
-
element: any;
|
|
122
|
-
trapper: any;
|
|
123
|
-
}
|
|
124
|
-
export declare const suiDialogTranslate: (dialog: DialogDefinition, ctor: string) => DialogTranslation;
|
|
125
|
-
/**
|
|
126
|
-
* Note: Most dialogs will inherit from SuiDialogAdapter, not SuiDialogBase.
|
|
127
|
-
* You will only want to inherit from SuiDialogBase under 2 conditions:
|
|
128
|
-
* 1. the dialog is triviailly simple, like an alert box that makes no changes to the score, or
|
|
129
|
-
* 2. the dialog is extremely complicated in how it interacts with the user, such that a form-based approach won't work
|
|
130
|
-
* @category SuiDialog
|
|
131
|
-
*/
|
|
132
|
-
export declare abstract class SuiDialogBase extends SuiDialogNotifier {
|
|
133
|
-
static get displayOptions(): Record<string, string>;
|
|
134
|
-
static getStaticText(staticText: Record<string, string>[]): Record<string, string>;
|
|
135
|
-
id: string;
|
|
136
|
-
ctor: string;
|
|
137
|
-
boundKeyboard: boolean;
|
|
138
|
-
components: SuiComponentBase[];
|
|
139
|
-
boundComponents: SuiComponentBase[];
|
|
140
|
-
cmap: Record<string, SuiComponentBase>;
|
|
141
|
-
scroller: SuiScroller;
|
|
142
|
-
closeDialogPromise: Promise<void>;
|
|
143
|
-
label: string;
|
|
144
|
-
staticText: Record<string, string>[];
|
|
145
|
-
startPromise: Promise<void> | null;
|
|
146
|
-
dialogElements: DialogDefinition;
|
|
147
|
-
eventSource: BrowserEventSource;
|
|
148
|
-
view: SuiScoreViewOperations;
|
|
149
|
-
completeNotifier: CompleteNotifier;
|
|
150
|
-
modifier: any;
|
|
151
|
-
dgDom: DialogDom;
|
|
152
|
-
displayOptions: string[];
|
|
153
|
-
keydownHandler: EventHandler | null;
|
|
154
|
-
constructor(dialogElements: DialogDefinition, parameters: SuiDialogParams);
|
|
155
|
-
display(): void;
|
|
156
|
-
bindElements(): void;
|
|
157
|
-
bindComponents(): void;
|
|
158
|
-
initialValue(): void;
|
|
159
|
-
changed(): void;
|
|
160
|
-
getId(): string;
|
|
161
|
-
getModifier(): SmoModifier | null;
|
|
162
|
-
getEventSource(): BrowserEventSource;
|
|
163
|
-
getStaticText(): Record<string, string>;
|
|
164
|
-
commit(): Promise<any>;
|
|
165
|
-
get closeModalPromise(): Promise<any>;
|
|
166
|
-
static position(box: SvgBox, dgDom: DialogDom, scroller: SuiScroller): void;
|
|
167
|
-
getView(): SuiScoreViewOperations;
|
|
168
|
-
applyDisplayOptions(): void;
|
|
169
|
-
position(box: SvgBox): void;
|
|
170
|
-
hideRemoveButton(): void;
|
|
171
|
-
positionFromModifier(): void;
|
|
172
|
-
positionGlobally(): void;
|
|
173
|
-
positionFromSelection(): void;
|
|
174
|
-
_constructDialog(dialogElements: DialogDefinition, parameters: SuiDomParams): {
|
|
175
|
-
element: any;
|
|
176
|
-
trapper: InputTrapper;
|
|
177
|
-
};
|
|
178
|
-
complete(): void;
|
|
179
|
-
makeDraggable(): void;
|
|
180
|
-
captureKeyboardPromise(): Promise<void>;
|
|
181
|
-
evKey(evdata: any): void;
|
|
182
|
-
bindKeyboard(): void;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Convenience functions
|
|
186
|
-
* @param type
|
|
187
|
-
* @param parameters
|
|
188
|
-
* @returns a new dialog of type T
|
|
189
|
-
* @category SuiDialog
|
|
190
|
-
*/
|
|
191
|
-
export declare function dialogConstructor<T extends SuiDialogBase>(type: {
|
|
192
|
-
new (parameters: SuiDialogParams): T;
|
|
193
|
-
}, parameters: SuiDialogParams): T;
|
|
194
|
-
/**
|
|
195
|
-
* Convenience function to display a dialog
|
|
196
|
-
* @category SuiDialog
|
|
197
|
-
* @param ctor
|
|
198
|
-
* @param parameters
|
|
199
|
-
* @returns
|
|
200
|
-
*/
|
|
201
|
-
export declare function createAndDisplayDialog<T extends SuiDialogBase>(ctor: new (parameters: SuiDialogParams) => T, parameters: SuiDialogParams): T;
|
|
1
|
+
import { InputTrapper } from '../../common/htmlHelpers';
|
|
2
|
+
import { SmoModifier } from '../../smo/data/score';
|
|
3
|
+
import { SvgBox } from '../../smo/data/common';
|
|
4
|
+
import { SuiTracker } from '../../render/sui/tracker';
|
|
5
|
+
import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
|
|
6
|
+
import { CompleteNotifier } from '../common';
|
|
7
|
+
import { BrowserEventSource } from '../eventSource';
|
|
8
|
+
import { SuiDialogNotifier, DialogDefinitionElement, SuiComponentBase, DialogDefinitionOption } from './components/baseComponent';
|
|
9
|
+
import { SuiScroller } from '../../render/sui/scroller';
|
|
10
|
+
import { EventHandler } from '../eventSource';
|
|
11
|
+
import { SmoUiConfiguration } from '../configuration';
|
|
12
|
+
export type DialogCallback = () => Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Parameters for installing a dialog. VUE-based dialog logic.
|
|
15
|
+
* complete is a Ref that is set to true when the dialog is finished, used to
|
|
16
|
+
* hand off keyboard control between dialogs and menus.
|
|
17
|
+
* app is a VUE app, appParams are the parameters to pass to the app.
|
|
18
|
+
* we override commitCb, cancelCb, and removeCb to manage the dialog lifetime.
|
|
19
|
+
* root is the DOM id to mount the dialog in (without the '#')
|
|
20
|
+
* @category SuiDialog
|
|
21
|
+
*/
|
|
22
|
+
export interface DialogInstallParams {
|
|
23
|
+
root: string;
|
|
24
|
+
app: any;
|
|
25
|
+
appParams: any;
|
|
26
|
+
dialogParams: SuiDialogParams;
|
|
27
|
+
commitCb: DialogCallback;
|
|
28
|
+
cancelCb: DialogCallback;
|
|
29
|
+
removeCb?: DialogCallback;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The callbacks can be confusing. Dialog CB button calls this callback,
|
|
33
|
+
* which in turn calls the user-supplied callback, and then hides the dialog.
|
|
34
|
+
* params.commitCb is the supplied callback,
|
|
35
|
+
* but appParams.commitCb is set to this function.
|
|
36
|
+
* @param params
|
|
37
|
+
*/
|
|
38
|
+
export declare const InstallDialog: (params: DialogInstallParams) => Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* The JSON dialog template is a declaritive structore for the html of the dialog
|
|
41
|
+
* and components.
|
|
42
|
+
* @param label for the dialog itself
|
|
43
|
+
* @param elements a series of elements that define the component
|
|
44
|
+
* @param staticText a hash of text for the dialog and components to use
|
|
45
|
+
* @category SuiDialog
|
|
46
|
+
*/
|
|
47
|
+
export interface DialogDefinition {
|
|
48
|
+
label: string;
|
|
49
|
+
elements: DialogDefinitionElement[];
|
|
50
|
+
staticText: Record<string, string>[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* A translation of the labels in DialogDefintionElement
|
|
54
|
+
* @param label the component label
|
|
55
|
+
* @param id used as a key in translation tool
|
|
56
|
+
* @param options options for dropdown and other array components
|
|
57
|
+
* @category SuiDialog
|
|
58
|
+
*/
|
|
59
|
+
export interface DialogTranslationElement {
|
|
60
|
+
label: string;
|
|
61
|
+
id: string;
|
|
62
|
+
options?: DialogDefinitionOption[];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A translation of all the strings in the dialog itself, used
|
|
66
|
+
* when switching languages.
|
|
67
|
+
* @param ctor the constructor for the dialog class, used to call static methods
|
|
68
|
+
* @param label the translated label
|
|
69
|
+
* @param dialogElements the translated component json
|
|
70
|
+
* @param staticText translated misc text
|
|
71
|
+
* @category SuiDialog
|
|
72
|
+
*/
|
|
73
|
+
export interface DialogTranslation {
|
|
74
|
+
ctor: string;
|
|
75
|
+
label: string;
|
|
76
|
+
dialogElements: DialogTranslationElement[];
|
|
77
|
+
staticText: Record<string, string>;
|
|
78
|
+
}
|
|
79
|
+
export declare const DialogTranslations: DialogTranslation[];
|
|
80
|
+
/**
|
|
81
|
+
* Dialog params always contain basic information about the runtime
|
|
82
|
+
* for modal functionality
|
|
83
|
+
* @param ctor dialog constructor
|
|
84
|
+
* @param id DOM id for the dialog
|
|
85
|
+
* @param tracker to get and set selections
|
|
86
|
+
* @param completeNotifier used to take over key/mouse control
|
|
87
|
+
* @param startPromise used if this is called from another modal element
|
|
88
|
+
* @param view the MVVM object to change the score
|
|
89
|
+
* @param eventSource event source to register for additional events like mouseup
|
|
90
|
+
* @param undoBuffer used to create undo
|
|
91
|
+
* @category SuiDialog
|
|
92
|
+
*/
|
|
93
|
+
export interface SuiDialogParams {
|
|
94
|
+
ctor: string;
|
|
95
|
+
id: string;
|
|
96
|
+
tracker: SuiTracker;
|
|
97
|
+
completeNotifier: CompleteNotifier;
|
|
98
|
+
startPromise: Promise<void> | null;
|
|
99
|
+
view: SuiScoreViewOperations;
|
|
100
|
+
eventSource: BrowserEventSource;
|
|
101
|
+
modifier?: any;
|
|
102
|
+
config?: SmoUiConfiguration;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* internal interface used to create the DOM
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
108
|
+
export interface SuiDomParams {
|
|
109
|
+
id: string;
|
|
110
|
+
top: number;
|
|
111
|
+
left: number;
|
|
112
|
+
label: string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* DOM interface for the dialog
|
|
116
|
+
* @internal
|
|
117
|
+
* @param element parent element
|
|
118
|
+
* @param trapper used to trap focus events for the dialog
|
|
119
|
+
*/
|
|
120
|
+
export interface DialogDom {
|
|
121
|
+
element: any;
|
|
122
|
+
trapper: any;
|
|
123
|
+
}
|
|
124
|
+
export declare const suiDialogTranslate: (dialog: DialogDefinition, ctor: string) => DialogTranslation;
|
|
125
|
+
/**
|
|
126
|
+
* Note: Most dialogs will inherit from SuiDialogAdapter, not SuiDialogBase.
|
|
127
|
+
* You will only want to inherit from SuiDialogBase under 2 conditions:
|
|
128
|
+
* 1. the dialog is triviailly simple, like an alert box that makes no changes to the score, or
|
|
129
|
+
* 2. the dialog is extremely complicated in how it interacts with the user, such that a form-based approach won't work
|
|
130
|
+
* @category SuiDialog
|
|
131
|
+
*/
|
|
132
|
+
export declare abstract class SuiDialogBase extends SuiDialogNotifier {
|
|
133
|
+
static get displayOptions(): Record<string, string>;
|
|
134
|
+
static getStaticText(staticText: Record<string, string>[]): Record<string, string>;
|
|
135
|
+
id: string;
|
|
136
|
+
ctor: string;
|
|
137
|
+
boundKeyboard: boolean;
|
|
138
|
+
components: SuiComponentBase[];
|
|
139
|
+
boundComponents: SuiComponentBase[];
|
|
140
|
+
cmap: Record<string, SuiComponentBase>;
|
|
141
|
+
scroller: SuiScroller;
|
|
142
|
+
closeDialogPromise: Promise<void>;
|
|
143
|
+
label: string;
|
|
144
|
+
staticText: Record<string, string>[];
|
|
145
|
+
startPromise: Promise<void> | null;
|
|
146
|
+
dialogElements: DialogDefinition;
|
|
147
|
+
eventSource: BrowserEventSource;
|
|
148
|
+
view: SuiScoreViewOperations;
|
|
149
|
+
completeNotifier: CompleteNotifier;
|
|
150
|
+
modifier: any;
|
|
151
|
+
dgDom: DialogDom;
|
|
152
|
+
displayOptions: string[];
|
|
153
|
+
keydownHandler: EventHandler | null;
|
|
154
|
+
constructor(dialogElements: DialogDefinition, parameters: SuiDialogParams);
|
|
155
|
+
display(): void;
|
|
156
|
+
bindElements(): void;
|
|
157
|
+
bindComponents(): void;
|
|
158
|
+
initialValue(): void;
|
|
159
|
+
changed(): void;
|
|
160
|
+
getId(): string;
|
|
161
|
+
getModifier(): SmoModifier | null;
|
|
162
|
+
getEventSource(): BrowserEventSource;
|
|
163
|
+
getStaticText(): Record<string, string>;
|
|
164
|
+
commit(): Promise<any>;
|
|
165
|
+
get closeModalPromise(): Promise<any>;
|
|
166
|
+
static position(box: SvgBox, dgDom: DialogDom, scroller: SuiScroller): void;
|
|
167
|
+
getView(): SuiScoreViewOperations;
|
|
168
|
+
applyDisplayOptions(): void;
|
|
169
|
+
position(box: SvgBox): void;
|
|
170
|
+
hideRemoveButton(): void;
|
|
171
|
+
positionFromModifier(): void;
|
|
172
|
+
positionGlobally(): void;
|
|
173
|
+
positionFromSelection(): void;
|
|
174
|
+
_constructDialog(dialogElements: DialogDefinition, parameters: SuiDomParams): {
|
|
175
|
+
element: any;
|
|
176
|
+
trapper: InputTrapper;
|
|
177
|
+
};
|
|
178
|
+
complete(): void;
|
|
179
|
+
makeDraggable(): void;
|
|
180
|
+
captureKeyboardPromise(): Promise<void>;
|
|
181
|
+
evKey(evdata: any): void;
|
|
182
|
+
bindKeyboard(): void;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Convenience functions
|
|
186
|
+
* @param type
|
|
187
|
+
* @param parameters
|
|
188
|
+
* @returns a new dialog of type T
|
|
189
|
+
* @category SuiDialog
|
|
190
|
+
*/
|
|
191
|
+
export declare function dialogConstructor<T extends SuiDialogBase>(type: {
|
|
192
|
+
new (parameters: SuiDialogParams): T;
|
|
193
|
+
}, parameters: SuiDialogParams): T;
|
|
194
|
+
/**
|
|
195
|
+
* Convenience function to display a dialog
|
|
196
|
+
* @category SuiDialog
|
|
197
|
+
* @param ctor
|
|
198
|
+
* @param parameters
|
|
199
|
+
* @returns
|
|
200
|
+
*/
|
|
201
|
+
export declare function createAndDisplayDialog<T extends SuiDialogBase>(ctor: new (parameters: SuiDialogParams) => T, parameters: SuiDialogParams): T;
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
|
|
2
|
-
import { DialogDefinition, SuiDialogParams } from './dialog';
|
|
3
|
-
import { SuiComponentAdapter, SuiDialogAdapterBase } from './adapter';
|
|
4
|
-
import { getButtonsFcn, SuiButtonArrayComponent } from './components/buttonArray';
|
|
5
|
-
import { SuiDialogNotifier, SuiBaseComponentParams } from './components/baseComponent';
|
|
6
|
-
/**
|
|
7
|
-
* @category SuiDialog
|
|
8
|
-
* Buttons with ending or repeat functions
|
|
9
|
-
* @returns SuiButtonArrayParameters
|
|
10
|
-
*/
|
|
11
|
-
export declare const endingsButtonFactory: getButtonsFcn;
|
|
12
|
-
/**
|
|
13
|
-
* @category SuiDialog
|
|
14
|
-
*/
|
|
15
|
-
export declare class SuiEndBarButtonComponent extends SuiButtonArrayComponent {
|
|
16
|
-
constructor(dialog: SuiDialogNotifier, parameter: SuiBaseComponentParams);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* @category SuiDialog
|
|
20
|
-
*/
|
|
21
|
-
export declare class SuiStartBarButtonComponent extends SuiButtonArrayComponent {
|
|
22
|
-
constructor(dialog: SuiDialogNotifier, parameter: SuiBaseComponentParams);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* @category SuiDialog
|
|
26
|
-
*/
|
|
27
|
-
export declare class SuiRepeatSymbolButtonComponent extends SuiButtonArrayComponent {
|
|
28
|
-
constructor(dialog: SuiDialogNotifier, parameter: SuiBaseComponentParams);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Smo dialog adapter for measure endings and repeats.
|
|
32
|
-
* @category SuiDialog
|
|
33
|
-
*/
|
|
34
|
-
export declare class SuiEndingsAdapter extends SuiComponentAdapter {
|
|
35
|
-
startBarCode: string;
|
|
36
|
-
endBarCode: string;
|
|
37
|
-
repeatSymbolCode: string;
|
|
38
|
-
constructor(view: SuiScoreViewOperations);
|
|
39
|
-
get repeatSymbolComponent(): string;
|
|
40
|
-
set repeatSymbolComponent(value: string);
|
|
41
|
-
get endBarComponent(): string;
|
|
42
|
-
set endBarComponent(value: string);
|
|
43
|
-
get startBarComponent(): string;
|
|
44
|
-
set startBarComponent(value: string);
|
|
45
|
-
commit(): Promise<void>;
|
|
46
|
-
cancel(): Promise<void>;
|
|
47
|
-
remove(): Promise<void>;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* @category SuiDialog
|
|
51
|
-
*/
|
|
52
|
-
export declare class SuiEndingsDialog extends SuiDialogAdapterBase<SuiEndingsAdapter> {
|
|
53
|
-
static get applyTo(): {
|
|
54
|
-
score: number;
|
|
55
|
-
selected: number;
|
|
56
|
-
remaining: number;
|
|
57
|
-
};
|
|
58
|
-
static dialogElements: DialogDefinition;
|
|
59
|
-
constructor(parameters: SuiDialogParams);
|
|
60
|
-
changed(): Promise<void>;
|
|
61
|
-
}
|
|
1
|
+
import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
|
|
2
|
+
import { DialogDefinition, SuiDialogParams } from './dialog';
|
|
3
|
+
import { SuiComponentAdapter, SuiDialogAdapterBase } from './adapter';
|
|
4
|
+
import { getButtonsFcn, SuiButtonArrayComponent } from './components/buttonArray';
|
|
5
|
+
import { SuiDialogNotifier, SuiBaseComponentParams } from './components/baseComponent';
|
|
6
|
+
/**
|
|
7
|
+
* @category SuiDialog
|
|
8
|
+
* Buttons with ending or repeat functions
|
|
9
|
+
* @returns SuiButtonArrayParameters
|
|
10
|
+
*/
|
|
11
|
+
export declare const endingsButtonFactory: getButtonsFcn;
|
|
12
|
+
/**
|
|
13
|
+
* @category SuiDialog
|
|
14
|
+
*/
|
|
15
|
+
export declare class SuiEndBarButtonComponent extends SuiButtonArrayComponent {
|
|
16
|
+
constructor(dialog: SuiDialogNotifier, parameter: SuiBaseComponentParams);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @category SuiDialog
|
|
20
|
+
*/
|
|
21
|
+
export declare class SuiStartBarButtonComponent extends SuiButtonArrayComponent {
|
|
22
|
+
constructor(dialog: SuiDialogNotifier, parameter: SuiBaseComponentParams);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @category SuiDialog
|
|
26
|
+
*/
|
|
27
|
+
export declare class SuiRepeatSymbolButtonComponent extends SuiButtonArrayComponent {
|
|
28
|
+
constructor(dialog: SuiDialogNotifier, parameter: SuiBaseComponentParams);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Smo dialog adapter for measure endings and repeats.
|
|
32
|
+
* @category SuiDialog
|
|
33
|
+
*/
|
|
34
|
+
export declare class SuiEndingsAdapter extends SuiComponentAdapter {
|
|
35
|
+
startBarCode: string;
|
|
36
|
+
endBarCode: string;
|
|
37
|
+
repeatSymbolCode: string;
|
|
38
|
+
constructor(view: SuiScoreViewOperations);
|
|
39
|
+
get repeatSymbolComponent(): string;
|
|
40
|
+
set repeatSymbolComponent(value: string);
|
|
41
|
+
get endBarComponent(): string;
|
|
42
|
+
set endBarComponent(value: string);
|
|
43
|
+
get startBarComponent(): string;
|
|
44
|
+
set startBarComponent(value: string);
|
|
45
|
+
commit(): Promise<void>;
|
|
46
|
+
cancel(): Promise<void>;
|
|
47
|
+
remove(): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @category SuiDialog
|
|
51
|
+
*/
|
|
52
|
+
export declare class SuiEndingsDialog extends SuiDialogAdapterBase<SuiEndingsAdapter> {
|
|
53
|
+
static get applyTo(): {
|
|
54
|
+
score: number;
|
|
55
|
+
selected: number;
|
|
56
|
+
remaining: number;
|
|
57
|
+
};
|
|
58
|
+
static dialogElements: DialogDefinition;
|
|
59
|
+
constructor(parameters: SuiDialogParams);
|
|
60
|
+
changed(): Promise<void>;
|
|
61
|
+
}
|