smoosic 1.0.24 → 1.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/build/smoosic.js +1 -1
  2. package/package.json +1 -1
  3. package/release/smoosic.js +1 -1
  4. package/release/styles/ribbon.css +5 -10
  5. package/src/application/exports.ts +1 -0
  6. package/src/styles/ribbon.css +5 -10
  7. package/types/src/application/application.d.ts +102 -102
  8. package/types/src/application/common.d.ts +74 -74
  9. package/types/src/application/configuration.d.ts +74 -74
  10. package/types/src/application/dom.d.ts +8 -8
  11. package/types/src/application/dynamicInit.d.ts +1 -1
  12. package/types/src/application/eventHandler.d.ts +78 -78
  13. package/types/src/application/exports.d.ts +494 -493
  14. package/types/src/application/generateVexTests.d.ts +10 -10
  15. package/types/src/application/keyCommands.d.ts +90 -90
  16. package/types/src/common/bootstrap.bundle.d.ts +1138 -1138
  17. package/types/src/common/htmlHelpers.d.ts +105 -105
  18. package/types/src/common/jszip.d.ts +2 -2
  19. package/types/src/common/midi-parser.d.ts +38 -38
  20. package/types/src/common/promiseHelpers.d.ts +30 -30
  21. package/types/src/common/serializationHelpers.d.ts +29 -29
  22. package/types/src/common/textformatter.d.ts +140 -140
  23. package/types/src/common/vex.d.ts +222 -222
  24. package/types/src/render/audio/musicCursor.d.ts +25 -25
  25. package/types/src/render/audio/oscillator.d.ts +98 -98
  26. package/types/src/render/audio/player.d.ts +141 -141
  27. package/types/src/render/audio/samples.d.ts +56 -56
  28. package/types/src/render/sui/configuration.d.ts +12 -12
  29. package/types/src/render/sui/formatter.d.ts +151 -151
  30. package/types/src/render/sui/layoutDebug.d.ts +43 -43
  31. package/types/src/render/sui/mapper.d.ts +116 -116
  32. package/types/src/render/sui/piano.d.ts +46 -46
  33. package/types/src/render/sui/renderState.d.ts +88 -88
  34. package/types/src/render/sui/scoreRender.d.ts +93 -93
  35. package/types/src/render/sui/scoreView.d.ts +267 -267
  36. package/types/src/render/sui/scoreViewOperations.d.ts +594 -594
  37. package/types/src/render/sui/scroller.d.ts +34 -34
  38. package/types/src/render/sui/svgHelpers.d.ts +85 -85
  39. package/types/src/render/sui/svgPageMap.d.ts +318 -318
  40. package/types/src/render/sui/textEdit.d.ts +310 -310
  41. package/types/src/render/sui/textRender.d.ts +189 -189
  42. package/types/src/render/sui/tracker.d.ts +90 -90
  43. package/types/src/render/vex/glyphDimensions.d.ts +23 -23
  44. package/types/src/render/vex/smoAdapter.d.ts +46 -46
  45. package/types/src/render/vex/toVex.d.ts +13 -13
  46. package/types/src/render/vex/vxMeasure.d.ts +95 -95
  47. package/types/src/render/vex/vxNote.d.ts +55 -55
  48. package/types/src/render/vex/vxSystem.d.ts +64 -64
  49. package/types/src/smo/data/common.d.ts +220 -220
  50. package/types/src/smo/data/measure.d.ts +510 -510
  51. package/types/src/smo/data/measureModifiers.d.ts +506 -506
  52. package/types/src/smo/data/music.d.ts +438 -438
  53. package/types/src/smo/data/note.d.ts +485 -485
  54. package/types/src/smo/data/noteModifiers.d.ts +590 -590
  55. package/types/src/smo/data/partInfo.d.ts +162 -162
  56. package/types/src/smo/data/score.d.ts +395 -395
  57. package/types/src/smo/data/scoreModifiers.d.ts +433 -433
  58. package/types/src/smo/data/scoreText.d.ts +277 -277
  59. package/types/src/smo/data/staffModifiers.d.ts +767 -767
  60. package/types/src/smo/data/systemStaff.d.ts +238 -238
  61. package/types/src/smo/data/tuplet.d.ts +146 -146
  62. package/types/src/smo/midi/midiToSmo.d.ts +198 -198
  63. package/types/src/smo/midi/smoToMidi.d.ts +23 -23
  64. package/types/src/smo/mxml/smoToXml.d.ts +165 -165
  65. package/types/src/smo/mxml/xmlHelpers.d.ts +140 -140
  66. package/types/src/smo/mxml/xmlState.d.ts +257 -257
  67. package/types/src/smo/mxml/xmlToSmo.d.ts +92 -92
  68. package/types/src/smo/xform/beamers.d.ts +46 -46
  69. package/types/src/smo/xform/copypaste.d.ts +99 -99
  70. package/types/src/smo/xform/operations.d.ts +127 -127
  71. package/types/src/smo/xform/roadmap.d.ts +70 -70
  72. package/types/src/smo/xform/selections.d.ts +153 -153
  73. package/types/src/smo/xform/tickDuration.d.ts +155 -155
  74. package/types/src/smo/xform/tickMap.d.ts +34 -34
  75. package/types/src/smo/xform/undo.d.ts +142 -142
  76. package/types/src/smo/xform/updateAudio.d.ts +9 -9
  77. package/types/src/styles/font_metrics/Commissioner-Medium-Metrics.d.ts +871 -871
  78. package/types/src/styles/font_metrics/ConcertOne-Regular.d.ts +871 -871
  79. package/types/src/styles/font_metrics/Merriweather-Regular.d.ts +871 -871
  80. package/types/src/styles/font_metrics/arial_metrics.d.ts +870 -870
  81. package/types/src/styles/font_metrics/ssp-sans-metrics.d.ts +871 -871
  82. package/types/src/styles/font_metrics/ssp-serif-metrics.d.ts +871 -871
  83. package/types/src/styles/font_metrics/times_metrics.d.ts +870 -870
  84. package/types/src/ui/buttons/button.d.ts +95 -95
  85. package/types/src/ui/buttons/collapsable.d.ts +42 -42
  86. package/types/src/ui/buttons/display.d.ts +23 -23
  87. package/types/src/ui/buttons/ribbon.d.ts +76 -76
  88. package/types/src/ui/common.d.ts +45 -45
  89. package/types/src/ui/composable/draggable.d.ts +12 -12
  90. package/types/src/ui/configuration.d.ts +31 -31
  91. package/types/src/ui/dialogs/adapter.d.ts +107 -107
  92. package/types/src/ui/dialogs/addMeasure.d.ts +20 -20
  93. package/types/src/ui/dialogs/arpeggio.d.ts +2 -2
  94. package/types/src/ui/dialogs/articulation.d.ts +2 -2
  95. package/types/src/ui/dialogs/audioSettings.d.ts +32 -32
  96. package/types/src/ui/dialogs/chordChange.d.ts +35 -35
  97. package/types/src/ui/dialogs/clefChange.d.ts +2 -2
  98. package/types/src/ui/dialogs/components/baseComponent.d.ts +158 -158
  99. package/types/src/ui/dialogs/components/button.d.ts +54 -54
  100. package/types/src/ui/dialogs/components/buttonArray.d.ts +101 -101
  101. package/types/src/ui/dialogs/components/checkdrop.d.ts +27 -27
  102. package/types/src/ui/dialogs/components/dragText.d.ts +27 -27
  103. package/types/src/ui/dialogs/components/dropdown.d.ts +78 -78
  104. package/types/src/ui/dialogs/components/fileDownload.d.ts +28 -28
  105. package/types/src/ui/dialogs/components/fontComponent.d.ts +32 -32
  106. package/types/src/ui/dialogs/components/noteText.d.ts +98 -98
  107. package/types/src/ui/dialogs/components/pitch.d.ts +95 -95
  108. package/types/src/ui/dialogs/components/rocker.d.ts +66 -66
  109. package/types/src/ui/dialogs/components/staffComponents.d.ts +77 -77
  110. package/types/src/ui/dialogs/components/textCheck.d.ts +38 -38
  111. package/types/src/ui/dialogs/components/textInPlace.d.ts +90 -90
  112. package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
  113. package/types/src/ui/dialogs/components/tie.d.ts +41 -41
  114. package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
  115. package/types/src/ui/dialogs/components/tree.d.ts +46 -46
  116. package/types/src/ui/dialogs/customTuplets.d.ts +25 -25
  117. package/types/src/ui/dialogs/dialog.d.ts +201 -201
  118. package/types/src/ui/dialogs/durations.d.ts +2 -2
  119. package/types/src/ui/dialogs/dynamics.d.ts +37 -37
  120. package/types/src/ui/dialogs/endings.d.ts +61 -61
  121. package/types/src/ui/dialogs/factory.d.ts +15 -15
  122. package/types/src/ui/dialogs/fileDialogs.d.ts +4 -4
  123. package/types/src/ui/dialogs/fonts.d.ts +2 -2
  124. package/types/src/ui/dialogs/globalLayout.d.ts +2 -2
  125. package/types/src/ui/dialogs/gracenote.d.ts +2 -2
  126. package/types/src/ui/dialogs/hairpin.d.ts +35 -35
  127. package/types/src/ui/dialogs/instrument.d.ts +3 -3
  128. package/types/src/ui/dialogs/keySignature.d.ts +33 -33
  129. package/types/src/ui/dialogs/library.d.ts +70 -70
  130. package/types/src/ui/dialogs/lyric.d.ts +39 -39
  131. package/types/src/ui/dialogs/measureFormat.d.ts +52 -52
  132. package/types/src/ui/dialogs/microtones.d.ts +2 -2
  133. package/types/src/ui/dialogs/noteHead.d.ts +2 -2
  134. package/types/src/ui/dialogs/ornament.d.ts +2 -2
  135. package/types/src/ui/dialogs/pageLayout.d.ts +2 -2
  136. package/types/src/ui/dialogs/partInfo.d.ts +2 -2
  137. package/types/src/ui/dialogs/pedalMarking.d.ts +35 -35
  138. package/types/src/ui/dialogs/pitch.d.ts +2 -2
  139. package/types/src/ui/dialogs/preferences.d.ts +2 -2
  140. package/types/src/ui/dialogs/scoreId.d.ts +2 -2
  141. package/types/src/ui/dialogs/scoreView.d.ts +2 -2
  142. package/types/src/ui/dialogs/slur.d.ts +57 -57
  143. package/types/src/ui/dialogs/staffGroup.d.ts +2 -2
  144. package/types/src/ui/dialogs/tabNote.d.ts +32 -32
  145. package/types/src/ui/dialogs/tabStave.d.ts +43 -43
  146. package/types/src/ui/dialogs/tempo.d.ts +50 -50
  147. package/types/src/ui/dialogs/textBlock.d.ts +61 -61
  148. package/types/src/ui/dialogs/textBracket.d.ts +35 -35
  149. package/types/src/ui/dialogs/tie.d.ts +41 -41
  150. package/types/src/ui/dialogs/timeSignature.d.ts +34 -34
  151. package/types/src/ui/dialogs/transposeScore.d.ts +2 -2
  152. package/types/src/ui/dialogs/volta.d.ts +40 -40
  153. package/types/src/ui/eventSource.d.ts +63 -63
  154. package/types/src/ui/exceptions.d.ts +12 -12
  155. package/types/src/ui/fileio/fileInput.d.ts +12 -12
  156. package/types/src/ui/fileio/library.d.ts +40 -40
  157. package/types/src/ui/fileio/xhrLoader.d.ts +18 -18
  158. package/types/src/ui/help.d.ts +22 -22
  159. package/types/src/ui/i18n/language.d.ts +37 -37
  160. package/types/src/ui/i18n/language_ar.d.ts +5 -5
  161. package/types/src/ui/i18n/language_de.d.ts +1 -1
  162. package/types/src/ui/i18n/language_en.d.ts +18 -18
  163. package/types/src/ui/i18n/translationEditor.d.ts +14 -14
  164. package/types/src/ui/keyBindings/default/editorKeys.d.ts +7 -7
  165. package/types/src/ui/keyBindings/default/trackerKeys.d.ts +7 -7
  166. package/types/src/ui/menus/beams.d.ts +13 -13
  167. package/types/src/ui/menus/edit.d.ts +8 -8
  168. package/types/src/ui/menus/file.d.ts +26 -26
  169. package/types/src/ui/menus/help.d.ts +8 -8
  170. package/types/src/ui/menus/keySignature.d.ts +13 -13
  171. package/types/src/ui/menus/language.d.ts +12 -12
  172. package/types/src/ui/menus/manager.d.ts +57 -57
  173. package/types/src/ui/menus/measure.d.ts +8 -8
  174. package/types/src/ui/menus/menu.d.ts +136 -136
  175. package/types/src/ui/menus/note.d.ts +8 -8
  176. package/types/src/ui/menus/partSelection.d.ts +19 -19
  177. package/types/src/ui/menus/parts.d.ts +50 -50
  178. package/types/src/ui/menus/score.d.ts +20 -20
  179. package/types/src/ui/menus/staffModifier.d.ts +21 -21
  180. package/types/src/ui/menus/text.d.ts +8 -8
  181. package/types/src/ui/menus/timeSignature.d.ts +12 -12
  182. package/types/src/ui/menus/tuplets.d.ts +13 -13
  183. package/types/src/ui/menus/voices.d.ts +8 -8
  184. package/types/src/ui/modalDialogs.d.ts +1 -1
  185. package/types/src/ui/navigation.d.ts +15 -15
  186. package/types/src/ui/qwerty.d.ts +41 -41
  187. package/types/src/ui/ribbonLayout/default/defaultRibbon.d.ts +15 -15
  188. package/types/src/ui/ribbonLayout/default/tabletRibbon.d.ts +22 -22
  189. 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
+ }