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.
Files changed (187) hide show
  1. package/build/smoosic.js +1 -1
  2. package/package.json +1 -1
  3. package/release/smoosic.js +1 -1
  4. package/src/application/exports.ts +1 -0
  5. package/types/src/application/application.d.ts +102 -102
  6. package/types/src/application/common.d.ts +74 -74
  7. package/types/src/application/configuration.d.ts +74 -74
  8. package/types/src/application/dom.d.ts +8 -8
  9. package/types/src/application/dynamicInit.d.ts +1 -1
  10. package/types/src/application/eventHandler.d.ts +78 -78
  11. package/types/src/application/exports.d.ts +494 -493
  12. package/types/src/application/generateVexTests.d.ts +10 -10
  13. package/types/src/application/keyCommands.d.ts +90 -90
  14. package/types/src/common/bootstrap.bundle.d.ts +1138 -1138
  15. package/types/src/common/htmlHelpers.d.ts +105 -105
  16. package/types/src/common/jszip.d.ts +2 -2
  17. package/types/src/common/midi-parser.d.ts +38 -38
  18. package/types/src/common/promiseHelpers.d.ts +30 -30
  19. package/types/src/common/serializationHelpers.d.ts +29 -29
  20. package/types/src/common/textformatter.d.ts +140 -140
  21. package/types/src/common/vex.d.ts +222 -222
  22. package/types/src/render/audio/musicCursor.d.ts +25 -25
  23. package/types/src/render/audio/oscillator.d.ts +98 -98
  24. package/types/src/render/audio/player.d.ts +141 -141
  25. package/types/src/render/audio/samples.d.ts +56 -56
  26. package/types/src/render/sui/configuration.d.ts +12 -12
  27. package/types/src/render/sui/formatter.d.ts +151 -151
  28. package/types/src/render/sui/layoutDebug.d.ts +43 -43
  29. package/types/src/render/sui/mapper.d.ts +116 -116
  30. package/types/src/render/sui/piano.d.ts +46 -46
  31. package/types/src/render/sui/renderState.d.ts +88 -88
  32. package/types/src/render/sui/scoreRender.d.ts +93 -93
  33. package/types/src/render/sui/scoreView.d.ts +267 -267
  34. package/types/src/render/sui/scoreViewOperations.d.ts +594 -594
  35. package/types/src/render/sui/scroller.d.ts +34 -34
  36. package/types/src/render/sui/svgHelpers.d.ts +85 -85
  37. package/types/src/render/sui/svgPageMap.d.ts +318 -318
  38. package/types/src/render/sui/textEdit.d.ts +310 -310
  39. package/types/src/render/sui/textRender.d.ts +189 -189
  40. package/types/src/render/sui/tracker.d.ts +90 -90
  41. package/types/src/render/vex/glyphDimensions.d.ts +23 -23
  42. package/types/src/render/vex/smoAdapter.d.ts +46 -46
  43. package/types/src/render/vex/toVex.d.ts +13 -13
  44. package/types/src/render/vex/vxMeasure.d.ts +95 -95
  45. package/types/src/render/vex/vxNote.d.ts +55 -55
  46. package/types/src/render/vex/vxSystem.d.ts +64 -64
  47. package/types/src/smo/data/common.d.ts +220 -220
  48. package/types/src/smo/data/measure.d.ts +510 -510
  49. package/types/src/smo/data/measureModifiers.d.ts +506 -506
  50. package/types/src/smo/data/music.d.ts +438 -438
  51. package/types/src/smo/data/note.d.ts +485 -485
  52. package/types/src/smo/data/noteModifiers.d.ts +590 -590
  53. package/types/src/smo/data/partInfo.d.ts +162 -162
  54. package/types/src/smo/data/score.d.ts +395 -395
  55. package/types/src/smo/data/scoreModifiers.d.ts +433 -433
  56. package/types/src/smo/data/scoreText.d.ts +277 -277
  57. package/types/src/smo/data/staffModifiers.d.ts +767 -767
  58. package/types/src/smo/data/systemStaff.d.ts +238 -238
  59. package/types/src/smo/data/tuplet.d.ts +146 -146
  60. package/types/src/smo/midi/midiToSmo.d.ts +198 -198
  61. package/types/src/smo/midi/smoToMidi.d.ts +23 -23
  62. package/types/src/smo/mxml/smoToXml.d.ts +165 -165
  63. package/types/src/smo/mxml/xmlHelpers.d.ts +140 -140
  64. package/types/src/smo/mxml/xmlState.d.ts +257 -257
  65. package/types/src/smo/mxml/xmlToSmo.d.ts +92 -92
  66. package/types/src/smo/xform/beamers.d.ts +46 -46
  67. package/types/src/smo/xform/copypaste.d.ts +99 -99
  68. package/types/src/smo/xform/operations.d.ts +127 -127
  69. package/types/src/smo/xform/roadmap.d.ts +70 -70
  70. package/types/src/smo/xform/selections.d.ts +153 -153
  71. package/types/src/smo/xform/tickDuration.d.ts +155 -155
  72. package/types/src/smo/xform/tickMap.d.ts +34 -34
  73. package/types/src/smo/xform/undo.d.ts +142 -142
  74. package/types/src/smo/xform/updateAudio.d.ts +9 -9
  75. package/types/src/styles/font_metrics/Commissioner-Medium-Metrics.d.ts +871 -871
  76. package/types/src/styles/font_metrics/ConcertOne-Regular.d.ts +871 -871
  77. package/types/src/styles/font_metrics/Merriweather-Regular.d.ts +871 -871
  78. package/types/src/styles/font_metrics/arial_metrics.d.ts +870 -870
  79. package/types/src/styles/font_metrics/ssp-sans-metrics.d.ts +871 -871
  80. package/types/src/styles/font_metrics/ssp-serif-metrics.d.ts +871 -871
  81. package/types/src/styles/font_metrics/times_metrics.d.ts +870 -870
  82. package/types/src/ui/buttons/button.d.ts +95 -95
  83. package/types/src/ui/buttons/collapsable.d.ts +42 -42
  84. package/types/src/ui/buttons/display.d.ts +23 -23
  85. package/types/src/ui/buttons/ribbon.d.ts +76 -76
  86. package/types/src/ui/common.d.ts +45 -45
  87. package/types/src/ui/composable/draggable.d.ts +12 -12
  88. package/types/src/ui/configuration.d.ts +31 -31
  89. package/types/src/ui/dialogs/adapter.d.ts +107 -107
  90. package/types/src/ui/dialogs/addMeasure.d.ts +20 -20
  91. package/types/src/ui/dialogs/arpeggio.d.ts +2 -2
  92. package/types/src/ui/dialogs/articulation.d.ts +2 -2
  93. package/types/src/ui/dialogs/audioSettings.d.ts +32 -32
  94. package/types/src/ui/dialogs/chordChange.d.ts +35 -35
  95. package/types/src/ui/dialogs/clefChange.d.ts +2 -2
  96. package/types/src/ui/dialogs/components/baseComponent.d.ts +158 -158
  97. package/types/src/ui/dialogs/components/button.d.ts +54 -54
  98. package/types/src/ui/dialogs/components/buttonArray.d.ts +101 -101
  99. package/types/src/ui/dialogs/components/checkdrop.d.ts +27 -27
  100. package/types/src/ui/dialogs/components/dragText.d.ts +27 -27
  101. package/types/src/ui/dialogs/components/dropdown.d.ts +78 -78
  102. package/types/src/ui/dialogs/components/fileDownload.d.ts +28 -28
  103. package/types/src/ui/dialogs/components/fontComponent.d.ts +32 -32
  104. package/types/src/ui/dialogs/components/noteText.d.ts +98 -98
  105. package/types/src/ui/dialogs/components/pitch.d.ts +95 -95
  106. package/types/src/ui/dialogs/components/rocker.d.ts +66 -66
  107. package/types/src/ui/dialogs/components/staffComponents.d.ts +77 -77
  108. package/types/src/ui/dialogs/components/textCheck.d.ts +38 -38
  109. package/types/src/ui/dialogs/components/textInPlace.d.ts +90 -90
  110. package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
  111. package/types/src/ui/dialogs/components/tie.d.ts +41 -41
  112. package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
  113. package/types/src/ui/dialogs/components/tree.d.ts +46 -46
  114. package/types/src/ui/dialogs/customTuplets.d.ts +25 -25
  115. package/types/src/ui/dialogs/dialog.d.ts +201 -201
  116. package/types/src/ui/dialogs/durations.d.ts +2 -2
  117. package/types/src/ui/dialogs/dynamics.d.ts +37 -37
  118. package/types/src/ui/dialogs/endings.d.ts +61 -61
  119. package/types/src/ui/dialogs/factory.d.ts +15 -15
  120. package/types/src/ui/dialogs/fileDialogs.d.ts +4 -4
  121. package/types/src/ui/dialogs/fonts.d.ts +2 -2
  122. package/types/src/ui/dialogs/globalLayout.d.ts +2 -2
  123. package/types/src/ui/dialogs/gracenote.d.ts +2 -2
  124. package/types/src/ui/dialogs/hairpin.d.ts +35 -35
  125. package/types/src/ui/dialogs/instrument.d.ts +3 -3
  126. package/types/src/ui/dialogs/keySignature.d.ts +33 -33
  127. package/types/src/ui/dialogs/library.d.ts +70 -70
  128. package/types/src/ui/dialogs/lyric.d.ts +39 -39
  129. package/types/src/ui/dialogs/measureFormat.d.ts +52 -52
  130. package/types/src/ui/dialogs/microtones.d.ts +2 -2
  131. package/types/src/ui/dialogs/noteHead.d.ts +2 -2
  132. package/types/src/ui/dialogs/ornament.d.ts +2 -2
  133. package/types/src/ui/dialogs/pageLayout.d.ts +2 -2
  134. package/types/src/ui/dialogs/partInfo.d.ts +2 -2
  135. package/types/src/ui/dialogs/pedalMarking.d.ts +35 -35
  136. package/types/src/ui/dialogs/pitch.d.ts +2 -2
  137. package/types/src/ui/dialogs/preferences.d.ts +2 -2
  138. package/types/src/ui/dialogs/scoreId.d.ts +2 -2
  139. package/types/src/ui/dialogs/scoreView.d.ts +2 -2
  140. package/types/src/ui/dialogs/slur.d.ts +57 -57
  141. package/types/src/ui/dialogs/staffGroup.d.ts +2 -2
  142. package/types/src/ui/dialogs/tabNote.d.ts +32 -32
  143. package/types/src/ui/dialogs/tabStave.d.ts +43 -43
  144. package/types/src/ui/dialogs/tempo.d.ts +50 -50
  145. package/types/src/ui/dialogs/textBlock.d.ts +61 -61
  146. package/types/src/ui/dialogs/textBracket.d.ts +35 -35
  147. package/types/src/ui/dialogs/tie.d.ts +41 -41
  148. package/types/src/ui/dialogs/timeSignature.d.ts +34 -34
  149. package/types/src/ui/dialogs/transposeScore.d.ts +2 -2
  150. package/types/src/ui/dialogs/volta.d.ts +40 -40
  151. package/types/src/ui/eventSource.d.ts +63 -63
  152. package/types/src/ui/exceptions.d.ts +12 -12
  153. package/types/src/ui/fileio/fileInput.d.ts +12 -12
  154. package/types/src/ui/fileio/library.d.ts +40 -40
  155. package/types/src/ui/fileio/xhrLoader.d.ts +18 -18
  156. package/types/src/ui/help.d.ts +22 -22
  157. package/types/src/ui/i18n/language.d.ts +37 -37
  158. package/types/src/ui/i18n/language_ar.d.ts +5 -5
  159. package/types/src/ui/i18n/language_de.d.ts +1 -1
  160. package/types/src/ui/i18n/language_en.d.ts +18 -18
  161. package/types/src/ui/i18n/translationEditor.d.ts +14 -14
  162. package/types/src/ui/keyBindings/default/editorKeys.d.ts +7 -7
  163. package/types/src/ui/keyBindings/default/trackerKeys.d.ts +7 -7
  164. package/types/src/ui/menus/beams.d.ts +13 -13
  165. package/types/src/ui/menus/edit.d.ts +8 -8
  166. package/types/src/ui/menus/file.d.ts +26 -26
  167. package/types/src/ui/menus/help.d.ts +8 -8
  168. package/types/src/ui/menus/keySignature.d.ts +13 -13
  169. package/types/src/ui/menus/language.d.ts +12 -12
  170. package/types/src/ui/menus/manager.d.ts +57 -57
  171. package/types/src/ui/menus/measure.d.ts +8 -8
  172. package/types/src/ui/menus/menu.d.ts +136 -136
  173. package/types/src/ui/menus/note.d.ts +8 -8
  174. package/types/src/ui/menus/partSelection.d.ts +19 -19
  175. package/types/src/ui/menus/parts.d.ts +50 -50
  176. package/types/src/ui/menus/score.d.ts +20 -20
  177. package/types/src/ui/menus/staffModifier.d.ts +21 -21
  178. package/types/src/ui/menus/text.d.ts +8 -8
  179. package/types/src/ui/menus/timeSignature.d.ts +12 -12
  180. package/types/src/ui/menus/tuplets.d.ts +13 -13
  181. package/types/src/ui/menus/voices.d.ts +8 -8
  182. package/types/src/ui/modalDialogs.d.ts +1 -1
  183. package/types/src/ui/navigation.d.ts +15 -15
  184. package/types/src/ui/qwerty.d.ts +41 -41
  185. package/types/src/ui/ribbonLayout/default/defaultRibbon.d.ts +15 -15
  186. package/types/src/ui/ribbonLayout/default/tabletRibbon.d.ts +22 -22
  187. package/types/typedoc.d.ts +158 -158
@@ -1,57 +1,57 @@
1
- import { SvgBox } from '../../smo/data/common';
2
- import { UndoBuffer } from '../../smo/xform/undo';
3
- import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
4
- import { SuiTracker } from '../../render/sui/tracker';
5
- import { CompleteNotifier } from '../common';
6
- import { BrowserEventSource, EventHandler } from '../eventSource';
7
- import { KeyBinding } from '../../application/common';
8
- import { SuiMenuBase } from './menu';
9
- /**
10
- * @category SuiMenu
11
- */
12
- export interface SuiMenuManagerParams {
13
- view: SuiScoreViewOperations;
14
- eventSource: BrowserEventSource;
15
- completeNotifier: CompleteNotifier;
16
- undoBuffer: UndoBuffer;
17
- menuContainer?: HTMLElement;
18
- }
19
- /**
20
- * Handle key-binding that map to menus
21
- * @category SuiMenu
22
- */
23
- export declare class SuiMenuManager {
24
- view: SuiScoreViewOperations;
25
- eventSource: BrowserEventSource;
26
- completeNotifier: CompleteNotifier;
27
- undoBuffer: UndoBuffer;
28
- menuContainer: HTMLElement;
29
- bound: boolean;
30
- hotkeyBindings: Record<string, string>;
31
- closeMenuPromise: Promise<void> | null;
32
- menu: SuiMenuBase | null;
33
- keydownHandler: EventHandler | null;
34
- menuPosition: SvgBox;
35
- tracker: SuiTracker;
36
- menuBind: KeyBinding[];
37
- constructor(params: SuiMenuManagerParams);
38
- static get defaults(): {
39
- menuBind: KeyBinding[];
40
- menuContainer: string;
41
- };
42
- get closeModalPromise(): Promise<void> | null;
43
- setController(c: CompleteNotifier): void;
44
- get score(): import("../../application/exports").SmoScore;
45
- static get menuKeyBindingDefaults(): KeyBinding[];
46
- get optionElements(): any;
47
- _advanceSelection(inc: number): void;
48
- unattach(): void;
49
- attach(): void;
50
- captureMenuEvents(completeNotifier: CompleteNotifier): void;
51
- dismiss(): void;
52
- displayMenu(menu: SuiMenuBase | null): void;
53
- createMenu(action: string, notifier: CompleteNotifier): void;
54
- evKey(event: any): void;
55
- bindEvents(): void;
56
- }
57
- export declare const menuTranslationsInit: () => void;
1
+ import { SvgBox } from '../../smo/data/common';
2
+ import { UndoBuffer } from '../../smo/xform/undo';
3
+ import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
4
+ import { SuiTracker } from '../../render/sui/tracker';
5
+ import { CompleteNotifier } from '../common';
6
+ import { BrowserEventSource, EventHandler } from '../eventSource';
7
+ import { KeyBinding } from '../../application/common';
8
+ import { SuiMenuBase } from './menu';
9
+ /**
10
+ * @category SuiMenu
11
+ */
12
+ export interface SuiMenuManagerParams {
13
+ view: SuiScoreViewOperations;
14
+ eventSource: BrowserEventSource;
15
+ completeNotifier: CompleteNotifier;
16
+ undoBuffer: UndoBuffer;
17
+ menuContainer?: HTMLElement;
18
+ }
19
+ /**
20
+ * Handle key-binding that map to menus
21
+ * @category SuiMenu
22
+ */
23
+ export declare class SuiMenuManager {
24
+ view: SuiScoreViewOperations;
25
+ eventSource: BrowserEventSource;
26
+ completeNotifier: CompleteNotifier;
27
+ undoBuffer: UndoBuffer;
28
+ menuContainer: HTMLElement;
29
+ bound: boolean;
30
+ hotkeyBindings: Record<string, string>;
31
+ closeMenuPromise: Promise<void> | null;
32
+ menu: SuiMenuBase | null;
33
+ keydownHandler: EventHandler | null;
34
+ menuPosition: SvgBox;
35
+ tracker: SuiTracker;
36
+ menuBind: KeyBinding[];
37
+ constructor(params: SuiMenuManagerParams);
38
+ static get defaults(): {
39
+ menuBind: KeyBinding[];
40
+ menuContainer: string;
41
+ };
42
+ get closeModalPromise(): Promise<void> | null;
43
+ setController(c: CompleteNotifier): void;
44
+ get score(): import("../../application/exports").SmoScore;
45
+ static get menuKeyBindingDefaults(): KeyBinding[];
46
+ get optionElements(): any;
47
+ _advanceSelection(inc: number): void;
48
+ unattach(): void;
49
+ attach(): void;
50
+ captureMenuEvents(completeNotifier: CompleteNotifier): void;
51
+ dismiss(): void;
52
+ displayMenu(menu: SuiMenuBase | null): void;
53
+ createMenu(action: string, notifier: CompleteNotifier): void;
54
+ evKey(event: any): void;
55
+ bindEvents(): void;
56
+ }
57
+ export declare const menuTranslationsInit: () => void;
@@ -1,8 +1,8 @@
1
- import { SuiMenuParams, MenuDefinition, SuiConfiguredMenu } from './menu';
2
- /**
3
- * @category SuiMenu
4
- */
5
- export declare class SuiMeasureMenu extends SuiConfiguredMenu {
6
- static defaults: MenuDefinition;
7
- constructor(params: SuiMenuParams);
8
- }
1
+ import { SuiMenuParams, MenuDefinition, SuiConfiguredMenu } from './menu';
2
+ /**
3
+ * @category SuiMenu
4
+ */
5
+ export declare class SuiMeasureMenu extends SuiConfiguredMenu {
6
+ static defaults: MenuDefinition;
7
+ constructor(params: SuiMenuParams);
8
+ }
@@ -1,136 +1,136 @@
1
- import { SuiTracker } from '../../render/sui/tracker';
2
- import { SmoScore } from '../../smo/data/score';
3
- import { CompleteNotifier } from '../common';
4
- import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
5
- import { BrowserEventSource } from '../eventSource';
6
- import { UndoBuffer } from '../../smo/xform/undo';
7
- /**
8
- * Data for a menu choice. 'value' indicates which options selected
9
- * @category SuiMenu
10
- * @param icon - .icon class will be added to the choice
11
- * @param text - text to describe the choice
12
- * @param value - the value received by the menu loop
13
- * @param hotkey - optional key binding, if not supplied one is selected
14
- */
15
- export interface MenuChoiceDefinition {
16
- icon: string;
17
- text: string;
18
- value: string;
19
- hotkey?: string;
20
- }
21
- /**
22
- * Menu just array of choices
23
- * @category SuiMenu
24
- * @param label - Not currently displayed
25
- * @param menuItems - list of choices
26
- */
27
- export interface MenuDefinition {
28
- label: string;
29
- menuItems: MenuChoiceDefinition[];
30
- }
31
- /**
32
- * @category SuiMenu
33
- */
34
- export interface MenuTranslation {
35
- ctor: string;
36
- label: string;
37
- menuItems: MenuChoiceDefinition[];
38
- }
39
- export declare const MenuTranslations: MenuTranslation[];
40
- export declare const suiMenuTranslation: (menu: MenuDefinition, ctor: string) => {
41
- ctor: string;
42
- label: string;
43
- menuItems: MenuChoiceDefinition[];
44
- };
45
- /**
46
- * All menus take the same options. Menu choices can alter the score
47
- * directly, or call dialogs or even other menus
48
- * @category SuiMenu
49
- * @param ctor dialog constructor
50
- * @param position - menu position
51
- * @param view the MVVM object to change the score
52
- * @param score SmoScore, could also be read from the view
53
- * @param completeNotifier used to take over key/mouse control
54
- * @param closePromise resolved when the menu closes, used to syncronize with other modals
55
- * @param eventSource event source to register for additional events like mouseup
56
- * @param undoBuffer used to create undo
57
- */
58
- export interface SuiMenuParams {
59
- ctor: string;
60
- tracker: SuiTracker;
61
- score: SmoScore;
62
- completeNotifier: CompleteNotifier;
63
- closePromise: Promise<void> | null;
64
- view: SuiScoreViewOperations;
65
- eventSource: BrowserEventSource;
66
- undoBuffer: UndoBuffer;
67
- items?: MenuDefinition;
68
- }
69
- /**
70
- * Base class for menus, mostly for the interface and containing the
71
- * common parameters
72
- * @category SuiMenu
73
- */
74
- export declare abstract class SuiMenuBase {
75
- label: string;
76
- menuItems: MenuChoiceDefinition[];
77
- ctor: string;
78
- completeNotifier: CompleteNotifier;
79
- score: SmoScore;
80
- view: SuiScoreViewOperations;
81
- eventSource: BrowserEventSource;
82
- undoBuffer: UndoBuffer;
83
- focusIndex: number;
84
- closePromise: Promise<void> | null;
85
- tracker: SuiTracker;
86
- constructor(params: SuiMenuParams);
87
- abstract selection(ev: any): Promise<void>;
88
- abstract getDefinition(): MenuDefinition;
89
- /**
90
- * Base class can override this, called before display and event binding to
91
- * add or remove options from the static list
92
- */
93
- preAttach(): void;
94
- complete(): void;
95
- keydown(): void;
96
- }
97
- /**
98
- * Function to handle dislay a menu
99
- * @category SuiMenu
100
- */
101
- export type SuiMenuHandler = (menu: SuiMenuBase) => Promise<void>;
102
- /**
103
- * boolean function to decide to display a dialog, based on selections.
104
- * @category SuiMenu
105
- */
106
- export type SuiMenuShowOption = (menu: SuiMenuBase) => boolean;
107
- /**
108
- * Convenience interface. A menu option can be defined dynamically as a confiugured menu option,
109
- * and placed into an array.
110
- * @category SuiMenu
111
- */
112
- export interface SuiConfiguredMenuOption {
113
- menuChoice: MenuChoiceDefinition;
114
- handler: SuiMenuHandler;
115
- display: SuiMenuShowOption;
116
- }
117
- export declare const suiConfiguredMenuTranslate: (options: SuiConfiguredMenuOption[], label: string, ctor: string) => MenuTranslation;
118
- export type customizeMenuOptionsFcn = (menu: SuiConfiguredMenu) => void;
119
- /**
120
- * A menu of configured options.
121
- * @category SuiMenu
122
- */
123
- export declare class SuiConfiguredMenu extends SuiMenuBase {
124
- static menuCustomizations: Record<string, customizeMenuOptionsFcn | undefined>;
125
- menuOptions: SuiConfiguredMenuOption[];
126
- label: string;
127
- constructor(params: SuiMenuParams, label: string, options: SuiConfiguredMenuOption[]);
128
- selection(ev: any): Promise<void>;
129
- static definitionFromOptions(label: string, options: SuiConfiguredMenuOption[]): {
130
- label: string;
131
- menuItems: MenuChoiceDefinition[];
132
- };
133
- getDefinition(): MenuDefinition;
134
- preAttach(): void;
135
- }
136
- export declare const SuiMenuCustomizer: (fcn: customizeMenuOptionsFcn, ctor: string) => void;
1
+ import { SuiTracker } from '../../render/sui/tracker';
2
+ import { SmoScore } from '../../smo/data/score';
3
+ import { CompleteNotifier } from '../common';
4
+ import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
5
+ import { BrowserEventSource } from '../eventSource';
6
+ import { UndoBuffer } from '../../smo/xform/undo';
7
+ /**
8
+ * Data for a menu choice. 'value' indicates which options selected
9
+ * @category SuiMenu
10
+ * @param icon - .icon class will be added to the choice
11
+ * @param text - text to describe the choice
12
+ * @param value - the value received by the menu loop
13
+ * @param hotkey - optional key binding, if not supplied one is selected
14
+ */
15
+ export interface MenuChoiceDefinition {
16
+ icon: string;
17
+ text: string;
18
+ value: string;
19
+ hotkey?: string;
20
+ }
21
+ /**
22
+ * Menu just array of choices
23
+ * @category SuiMenu
24
+ * @param label - Not currently displayed
25
+ * @param menuItems - list of choices
26
+ */
27
+ export interface MenuDefinition {
28
+ label: string;
29
+ menuItems: MenuChoiceDefinition[];
30
+ }
31
+ /**
32
+ * @category SuiMenu
33
+ */
34
+ export interface MenuTranslation {
35
+ ctor: string;
36
+ label: string;
37
+ menuItems: MenuChoiceDefinition[];
38
+ }
39
+ export declare const MenuTranslations: MenuTranslation[];
40
+ export declare const suiMenuTranslation: (menu: MenuDefinition, ctor: string) => {
41
+ ctor: string;
42
+ label: string;
43
+ menuItems: MenuChoiceDefinition[];
44
+ };
45
+ /**
46
+ * All menus take the same options. Menu choices can alter the score
47
+ * directly, or call dialogs or even other menus
48
+ * @category SuiMenu
49
+ * @param ctor dialog constructor
50
+ * @param position - menu position
51
+ * @param view the MVVM object to change the score
52
+ * @param score SmoScore, could also be read from the view
53
+ * @param completeNotifier used to take over key/mouse control
54
+ * @param closePromise resolved when the menu closes, used to syncronize with other modals
55
+ * @param eventSource event source to register for additional events like mouseup
56
+ * @param undoBuffer used to create undo
57
+ */
58
+ export interface SuiMenuParams {
59
+ ctor: string;
60
+ tracker: SuiTracker;
61
+ score: SmoScore;
62
+ completeNotifier: CompleteNotifier;
63
+ closePromise: Promise<void> | null;
64
+ view: SuiScoreViewOperations;
65
+ eventSource: BrowserEventSource;
66
+ undoBuffer: UndoBuffer;
67
+ items?: MenuDefinition;
68
+ }
69
+ /**
70
+ * Base class for menus, mostly for the interface and containing the
71
+ * common parameters
72
+ * @category SuiMenu
73
+ */
74
+ export declare abstract class SuiMenuBase {
75
+ label: string;
76
+ menuItems: MenuChoiceDefinition[];
77
+ ctor: string;
78
+ completeNotifier: CompleteNotifier;
79
+ score: SmoScore;
80
+ view: SuiScoreViewOperations;
81
+ eventSource: BrowserEventSource;
82
+ undoBuffer: UndoBuffer;
83
+ focusIndex: number;
84
+ closePromise: Promise<void> | null;
85
+ tracker: SuiTracker;
86
+ constructor(params: SuiMenuParams);
87
+ abstract selection(ev: any): Promise<void>;
88
+ abstract getDefinition(): MenuDefinition;
89
+ /**
90
+ * Base class can override this, called before display and event binding to
91
+ * add or remove options from the static list
92
+ */
93
+ preAttach(): void;
94
+ complete(): void;
95
+ keydown(): void;
96
+ }
97
+ /**
98
+ * Function to handle dislay a menu
99
+ * @category SuiMenu
100
+ */
101
+ export type SuiMenuHandler = (menu: SuiMenuBase) => Promise<void>;
102
+ /**
103
+ * boolean function to decide to display a dialog, based on selections.
104
+ * @category SuiMenu
105
+ */
106
+ export type SuiMenuShowOption = (menu: SuiMenuBase) => boolean;
107
+ /**
108
+ * Convenience interface. A menu option can be defined dynamically as a confiugured menu option,
109
+ * and placed into an array.
110
+ * @category SuiMenu
111
+ */
112
+ export interface SuiConfiguredMenuOption {
113
+ menuChoice: MenuChoiceDefinition;
114
+ handler: SuiMenuHandler;
115
+ display: SuiMenuShowOption;
116
+ }
117
+ export declare const suiConfiguredMenuTranslate: (options: SuiConfiguredMenuOption[], label: string, ctor: string) => MenuTranslation;
118
+ export type customizeMenuOptionsFcn = (menu: SuiConfiguredMenu) => void;
119
+ /**
120
+ * A menu of configured options.
121
+ * @category SuiMenu
122
+ */
123
+ export declare class SuiConfiguredMenu extends SuiMenuBase {
124
+ static menuCustomizations: Record<string, customizeMenuOptionsFcn | undefined>;
125
+ menuOptions: SuiConfiguredMenuOption[];
126
+ label: string;
127
+ constructor(params: SuiMenuParams, label: string, options: SuiConfiguredMenuOption[]);
128
+ selection(ev: any): Promise<void>;
129
+ static definitionFromOptions(label: string, options: SuiConfiguredMenuOption[]): {
130
+ label: string;
131
+ menuItems: MenuChoiceDefinition[];
132
+ };
133
+ getDefinition(): MenuDefinition;
134
+ preAttach(): void;
135
+ }
136
+ export declare const SuiMenuCustomizer: (fcn: customizeMenuOptionsFcn, ctor: string) => void;
@@ -1,8 +1,8 @@
1
- import { SuiMenuParams, SuiConfiguredMenu } from './menu';
2
- /**
3
- * Stuff you can do to notes
4
- * @category SuiMenu
5
- */
6
- export declare class SuiNoteMenu extends SuiConfiguredMenu {
7
- constructor(params: SuiMenuParams);
8
- }
1
+ import { SuiMenuParams, SuiConfiguredMenu } from './menu';
2
+ /**
3
+ * Stuff you can do to notes
4
+ * @category SuiMenu
5
+ */
6
+ export declare class SuiNoteMenu extends SuiConfiguredMenu {
7
+ constructor(params: SuiMenuParams);
8
+ }
@@ -1,19 +1,19 @@
1
- import { SuiMenuBase, SuiMenuParams, MenuDefinition } from './menu';
2
- import { SmoPartInfo } from '../../smo/data/partInfo';
3
- /**
4
- * This is the menu that is always visible on the UI ribbon
5
- * @category SuiMenu
6
- */
7
- export declare class SuiPartSelectionMenu extends SuiMenuBase {
8
- partMap: {
9
- keys: number[];
10
- partMap: Record<number, SmoPartInfo>;
11
- };
12
- constructor(params: SuiMenuParams);
13
- static defaults: MenuDefinition;
14
- getDefinition(): MenuDefinition;
15
- selectPart(val: number): void;
16
- preAttach(): void;
17
- selection(ev: any): Promise<void>;
18
- keydown(): void;
19
- }
1
+ import { SuiMenuBase, SuiMenuParams, MenuDefinition } from './menu';
2
+ import { SmoPartInfo } from '../../smo/data/partInfo';
3
+ /**
4
+ * This is the menu that is always visible on the UI ribbon
5
+ * @category SuiMenu
6
+ */
7
+ export declare class SuiPartSelectionMenu extends SuiMenuBase {
8
+ partMap: {
9
+ keys: number[];
10
+ partMap: Record<number, SmoPartInfo>;
11
+ };
12
+ constructor(params: SuiMenuParams);
13
+ static defaults: MenuDefinition;
14
+ getDefinition(): MenuDefinition;
15
+ selectPart(val: number): void;
16
+ preAttach(): void;
17
+ selection(ev: any): Promise<void>;
18
+ keydown(): void;
19
+ }
@@ -1,50 +1,50 @@
1
- import { SuiMenuParams, SuiConfiguredMenuOption, SuiConfiguredMenu } from './menu';
2
- /**
3
- * @category SuiMenu
4
- */
5
- export declare const createNotePartMenuOption: SuiConfiguredMenuOption;
6
- /**
7
- * @category SuiMenu
8
- */
9
- export declare const removePartMenuOption: SuiConfiguredMenuOption;
10
- /**
11
- * @category SuiMenu
12
- */
13
- export declare const partPropertiesMenuOption: SuiConfiguredMenuOption;
14
- /**
15
- * @category SuiMenu
16
- */
17
- export declare const pageLayoutMenuOption: SuiConfiguredMenuOption;
18
- /**
19
- * @category SuiMenu
20
- */
21
- export declare const viewPartialScoreMenuOption: SuiConfiguredMenuOption;
22
- /**
23
- * @category SuiMenu
24
- */
25
- export declare const viewFullScoreMenuOption: SuiConfiguredMenuOption;
26
- /**
27
- * @category SuiMenu
28
- */
29
- export declare const editInstrumentMenuOption: SuiConfiguredMenuOption;
30
- /**
31
- * @category SuiMenu
32
- */
33
- export declare const tabStaveMenuOption: SuiConfiguredMenuOption;
34
- /**
35
- * @category SuiMenu
36
- */
37
- export declare const moveUpMenuOption: SuiConfiguredMenuOption;
38
- export declare const moveDownMenuOption: SuiConfiguredMenuOption;
39
- /**
40
- * Stuff you can do with parts.
41
- * @category SuiMenu
42
- */
43
- export declare const SuiPartMenuOptions: SuiConfiguredMenuOption[];
44
- /**
45
- * Stuff you can do with parts.
46
- * @category SuiMenu
47
- */
48
- export declare class SuiPartMenu extends SuiConfiguredMenu {
49
- constructor(params: SuiMenuParams);
50
- }
1
+ import { SuiMenuParams, SuiConfiguredMenuOption, SuiConfiguredMenu } from './menu';
2
+ /**
3
+ * @category SuiMenu
4
+ */
5
+ export declare const createNotePartMenuOption: SuiConfiguredMenuOption;
6
+ /**
7
+ * @category SuiMenu
8
+ */
9
+ export declare const removePartMenuOption: SuiConfiguredMenuOption;
10
+ /**
11
+ * @category SuiMenu
12
+ */
13
+ export declare const partPropertiesMenuOption: SuiConfiguredMenuOption;
14
+ /**
15
+ * @category SuiMenu
16
+ */
17
+ export declare const pageLayoutMenuOption: SuiConfiguredMenuOption;
18
+ /**
19
+ * @category SuiMenu
20
+ */
21
+ export declare const viewPartialScoreMenuOption: SuiConfiguredMenuOption;
22
+ /**
23
+ * @category SuiMenu
24
+ */
25
+ export declare const viewFullScoreMenuOption: SuiConfiguredMenuOption;
26
+ /**
27
+ * @category SuiMenu
28
+ */
29
+ export declare const editInstrumentMenuOption: SuiConfiguredMenuOption;
30
+ /**
31
+ * @category SuiMenu
32
+ */
33
+ export declare const tabStaveMenuOption: SuiConfiguredMenuOption;
34
+ /**
35
+ * @category SuiMenu
36
+ */
37
+ export declare const moveUpMenuOption: SuiConfiguredMenuOption;
38
+ export declare const moveDownMenuOption: SuiConfiguredMenuOption;
39
+ /**
40
+ * Stuff you can do with parts.
41
+ * @category SuiMenu
42
+ */
43
+ export declare const SuiPartMenuOptions: SuiConfiguredMenuOption[];
44
+ /**
45
+ * Stuff you can do with parts.
46
+ * @category SuiMenu
47
+ */
48
+ export declare class SuiPartMenu extends SuiConfiguredMenu {
49
+ constructor(params: SuiMenuParams);
50
+ }
@@ -1,20 +1,20 @@
1
- import { MenuDefinition, SuiMenuBase, SuiMenuParams } from './menu';
2
- /**
3
- * stuff you can do to a score
4
- * @category SuiMenu
5
- */
6
- export declare class SuiScoreMenu extends SuiMenuBase {
7
- static defaults: MenuDefinition;
8
- getDefinition(): MenuDefinition;
9
- preAttach(): void;
10
- constructor(params: SuiMenuParams);
11
- execStaffGroups(): void;
12
- execScoreId(): void;
13
- execPageLayout(): void;
14
- execFonts(): void;
15
- execGlobalLayout(): void;
16
- execPreferences(): void;
17
- execTransposeScore(): void;
18
- selection(ev: any): Promise<void>;
19
- keydown(): void;
20
- }
1
+ import { MenuDefinition, SuiMenuBase, SuiMenuParams } from './menu';
2
+ /**
3
+ * stuff you can do to a score
4
+ * @category SuiMenu
5
+ */
6
+ export declare class SuiScoreMenu extends SuiMenuBase {
7
+ static defaults: MenuDefinition;
8
+ getDefinition(): MenuDefinition;
9
+ preAttach(): void;
10
+ constructor(params: SuiMenuParams);
11
+ execStaffGroups(): void;
12
+ execScoreId(): void;
13
+ execPageLayout(): void;
14
+ execFonts(): void;
15
+ execGlobalLayout(): void;
16
+ execPreferences(): void;
17
+ execTransposeScore(): void;
18
+ selection(ev: any): Promise<void>;
19
+ keydown(): void;
20
+ }
@@ -1,21 +1,21 @@
1
- import { SuiMenuBase, SuiMenuParams, MenuDefinition } from './menu';
2
- import { SmoPedalMarking } from '../../smo/data/staffModifiers';
3
- import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
4
- /**
5
- * Dynamic function to add a pedal marking
6
- * @category SuiMenu
7
- * @param view
8
- * @param obj
9
- */
10
- export declare function addOrReplacePedalMarking(view: SuiScoreViewOperations, obj: SmoPedalMarking): Promise<void>;
11
- /**
12
- * the 'lines' menu, mostly staff modifiers.
13
- * @category SuiMenu
14
- */
15
- export declare class SuiStaffModifierMenu extends SuiMenuBase {
16
- constructor(params: SuiMenuParams);
17
- static defaults: MenuDefinition;
18
- getDefinition(): MenuDefinition;
19
- selection(ev: any): Promise<void>;
20
- keydown(): void;
21
- }
1
+ import { SuiMenuBase, SuiMenuParams, MenuDefinition } from './menu';
2
+ import { SmoPedalMarking } from '../../smo/data/staffModifiers';
3
+ import { SuiScoreViewOperations } from '../../render/sui/scoreViewOperations';
4
+ /**
5
+ * Dynamic function to add a pedal marking
6
+ * @category SuiMenu
7
+ * @param view
8
+ * @param obj
9
+ */
10
+ export declare function addOrReplacePedalMarking(view: SuiScoreViewOperations, obj: SmoPedalMarking): Promise<void>;
11
+ /**
12
+ * the 'lines' menu, mostly staff modifiers.
13
+ * @category SuiMenu
14
+ */
15
+ export declare class SuiStaffModifierMenu extends SuiMenuBase {
16
+ constructor(params: SuiMenuParams);
17
+ static defaults: MenuDefinition;
18
+ getDefinition(): MenuDefinition;
19
+ selection(ev: any): Promise<void>;
20
+ keydown(): void;
21
+ }
@@ -1,8 +1,8 @@
1
- import { SuiMenuParams, SuiConfiguredMenu } from './menu';
2
- /**
3
- * Stuff you can do with text.
4
- * @category SuiMenu
5
- */
6
- export declare class SuiTextMenu extends SuiConfiguredMenu {
7
- constructor(params: SuiMenuParams);
8
- }
1
+ import { SuiMenuParams, SuiConfiguredMenu } from './menu';
2
+ /**
3
+ * Stuff you can do with text.
4
+ * @category SuiMenu
5
+ */
6
+ export declare class SuiTextMenu extends SuiConfiguredMenu {
7
+ constructor(params: SuiMenuParams);
8
+ }