@sudobility/music_types 0.11.32 → 0.11.33
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/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/model/position.d.ts +82 -0
- package/dist/model/position.d.ts.map +1 -0
- package/dist/model/position.js +24 -0
- package/dist/model/position.js.map +1 -0
- package/dist/model/selection-source.d.ts +53 -0
- package/dist/model/selection-source.d.ts.map +1 -0
- package/dist/model/selection-source.js +2 -0
- package/dist/model/selection-source.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ export * from "./model/score.js";
|
|
|
26
26
|
export * from "./model/schemas.js";
|
|
27
27
|
export * from "./model/generation.js";
|
|
28
28
|
export * from "./model/api.js";
|
|
29
|
+
export * from "./model/position.js";
|
|
30
|
+
export * from "./model/selection-source.js";
|
|
29
31
|
export * from "./platform/index.js";
|
|
30
32
|
export * from "./domain/pitch/pitch.js";
|
|
31
33
|
export * from "./domain/pitch/transpose.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAK5C,cAAc,qBAAqB,CAAC;AAMpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AAMjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAItD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -33,6 +33,8 @@ export * from "./model/score.js";
|
|
|
33
33
|
export * from "./model/schemas.js";
|
|
34
34
|
export * from "./model/generation.js";
|
|
35
35
|
export * from "./model/api.js";
|
|
36
|
+
export * from "./model/position.js";
|
|
37
|
+
export * from "./model/selection-source.js";
|
|
36
38
|
// ---------------------------------------------------------------------------
|
|
37
39
|
// 10. Platform interfaces (implementations live in @sudobility/music_io)
|
|
38
40
|
// ---------------------------------------------------------------------------
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,8EAA8E;AAC9E,+CAA+C;AAC/C,EAAE;AACF,8EAA8E;AAC9E,sEAAsE;AACtE,iEAAiE;AACjE,8EAA8E;AAC9E,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,8EAA8E;AAC9E,+CAA+C;AAC/C,EAAE;AACF,8EAA8E;AAC9E,sEAAsE;AACtE,iEAAiE;AACjE,8EAA8E;AAC9E,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAE5C,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAC9E,cAAc,qBAAqB,CAAC;AAEpC,8EAA8E;AAC9E,8DAA8D;AAC9D,8EAA8E;AAE9E,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AAEjD,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAE9E,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAEtD,yEAAyE;AACzE,yCAAyC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where playback is, as one number that everything reads.
|
|
3
|
+
*
|
|
4
|
+
* The editor has three things that follow the music — the caret, the note
|
|
5
|
+
* highlighting, and the piano keyboard — and they used to learn about it
|
|
6
|
+
* separately. The engine published a throttled `positionTick` on one channel
|
|
7
|
+
* and the sounding set on another, and the caret then *re-derived* its own
|
|
8
|
+
* position by dead-reckoning against `performance.now()` from whenever React
|
|
9
|
+
* happened to process the last report. Three consumers, three clocks: under
|
|
10
|
+
* load the caret's anchor was stamped late and drifted against notes that had
|
|
11
|
+
* lit up on the audio clock, so the three visibly disagreed.
|
|
12
|
+
*
|
|
13
|
+
* This is the interface that removes the possibility. One implementation owns
|
|
14
|
+
* the current tick — including the smoothing that keeps a caret gliding
|
|
15
|
+
* between engine reports — and playback *writes* it while everything that
|
|
16
|
+
* follows the music *reads* it. Two views of one number cannot disagree; three
|
|
17
|
+
* derivations of three numbers eventually will.
|
|
18
|
+
*
|
|
19
|
+
* Deliberately not a store slice: the value changes ~30 times a second and
|
|
20
|
+
* routing it through Zustand notifies every subscriber in the app at that rate,
|
|
21
|
+
* which is the cost the playback bus was built to avoid.
|
|
22
|
+
*/
|
|
23
|
+
/** Detaches a listener registered with {@link IMusicPosition.subscribe}. */
|
|
24
|
+
export type UnsubscribePosition = () => void;
|
|
25
|
+
/**
|
|
26
|
+
* The playhead, in **score ticks**.
|
|
27
|
+
*
|
|
28
|
+
* Score ticks, not performance ticks: repeats and jumps mean a bar can be
|
|
29
|
+
* played more than once, and every consumer here draws or highlights something
|
|
30
|
+
* on the page, where a bar exists exactly once. The translation happens at the
|
|
31
|
+
* transport boundary so nothing downstream has to know repeats exist.
|
|
32
|
+
*/
|
|
33
|
+
export interface IMusicPosition {
|
|
34
|
+
/**
|
|
35
|
+
* The current tick.
|
|
36
|
+
*
|
|
37
|
+
* Read this rather than remembering the last value from `subscribe`: an
|
|
38
|
+
* implementation may smooth between engine reports, in which case this is
|
|
39
|
+
* fresher than the last event and is the number the caret should draw at.
|
|
40
|
+
*/
|
|
41
|
+
readonly tick: number;
|
|
42
|
+
/** Whether the transport is advancing, which is when smoothing applies. */
|
|
43
|
+
readonly isPlaying: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Observe changes.
|
|
46
|
+
*
|
|
47
|
+
* Fires when the underlying position is *reported*, not once per animation
|
|
48
|
+
* frame — a consumer that paints every frame should read {@link tick} in its
|
|
49
|
+
* own loop rather than expect an event per frame.
|
|
50
|
+
*/
|
|
51
|
+
subscribe(listener: (tick: number) => void): UnsubscribePosition;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The writable side, held by whatever is driving playback.
|
|
55
|
+
*
|
|
56
|
+
* Split from the read interface so the split is visible in a signature: the
|
|
57
|
+
* transport takes this, and everything that merely follows the music takes
|
|
58
|
+
* {@link IMusicPosition} and cannot move the playhead by accident.
|
|
59
|
+
*/
|
|
60
|
+
export interface IMusicPositionSource extends IMusicPosition {
|
|
61
|
+
/**
|
|
62
|
+
* Report an authoritative position, in score ticks.
|
|
63
|
+
*
|
|
64
|
+
* `atSeconds` is the *engine's own* clock reading for this position, not the
|
|
65
|
+
* wall clock at the moment the report is handled. That distinction is the
|
|
66
|
+
* whole point: anchoring on receipt time folds event-loop latency into the
|
|
67
|
+
* playhead, which is what made the caret drift under load.
|
|
68
|
+
*/
|
|
69
|
+
report(tick: number, atSeconds?: number): void;
|
|
70
|
+
/** Start or stop smoothing, and set the rate ticks advance at. */
|
|
71
|
+
setPlaying(playing: boolean, ticksPerSecond?: number): void;
|
|
72
|
+
/**
|
|
73
|
+
* How fast ticks are passing right now.
|
|
74
|
+
*
|
|
75
|
+
* Separate from `setPlaying` because it changes *during* playback and must
|
|
76
|
+
* not re-anchor when it does: a score can slow into a fermata or change
|
|
77
|
+
* tempo at a rehearsal mark, and the projection between reports has to use
|
|
78
|
+
* the rate in force at that moment or the playhead glides past the hold.
|
|
79
|
+
*/
|
|
80
|
+
setRate(ticksPerSecond: number): void;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=position.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../src/model/position.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,mBAAmB,CAAC;CAClE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/C,kEAAkE;IAClE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5D;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where playback is, as one number that everything reads.
|
|
3
|
+
*
|
|
4
|
+
* The editor has three things that follow the music — the caret, the note
|
|
5
|
+
* highlighting, and the piano keyboard — and they used to learn about it
|
|
6
|
+
* separately. The engine published a throttled `positionTick` on one channel
|
|
7
|
+
* and the sounding set on another, and the caret then *re-derived* its own
|
|
8
|
+
* position by dead-reckoning against `performance.now()` from whenever React
|
|
9
|
+
* happened to process the last report. Three consumers, three clocks: under
|
|
10
|
+
* load the caret's anchor was stamped late and drifted against notes that had
|
|
11
|
+
* lit up on the audio clock, so the three visibly disagreed.
|
|
12
|
+
*
|
|
13
|
+
* This is the interface that removes the possibility. One implementation owns
|
|
14
|
+
* the current tick — including the smoothing that keeps a caret gliding
|
|
15
|
+
* between engine reports — and playback *writes* it while everything that
|
|
16
|
+
* follows the music *reads* it. Two views of one number cannot disagree; three
|
|
17
|
+
* derivations of three numbers eventually will.
|
|
18
|
+
*
|
|
19
|
+
* Deliberately not a store slice: the value changes ~30 times a second and
|
|
20
|
+
* routing it through Zustand notifies every subscriber in the app at that rate,
|
|
21
|
+
* which is the cost the playback bus was built to avoid.
|
|
22
|
+
*/
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=position.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../src/model/position.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The current selection, as an interface rather than a store shape.
|
|
3
|
+
*
|
|
4
|
+
* Same reasoning as `IMusicPosition` next door. What the user has selected —
|
|
5
|
+
* notes, measures, the active track — is read by things that have no business
|
|
6
|
+
* knowing which state library holds it: the renderer colouring noteheads, a
|
|
7
|
+
* command deciding what it applies to, a toolbar deciding what to disable.
|
|
8
|
+
* Depending on the store for that couples every one of them to zustand and to
|
|
9
|
+
* this app's particular slice layout.
|
|
10
|
+
*
|
|
11
|
+
* The rule that keeps it honest is the same one the playhead follows: there is
|
|
12
|
+
* exactly **one writer**. The store's own selection actions feed this, so it
|
|
13
|
+
* mirrors rather than duplicates, and the two cannot drift apart. Nothing here
|
|
14
|
+
* is a second copy of the truth that somebody has to remember to update.
|
|
15
|
+
*/
|
|
16
|
+
import type { ScoreSelection, UUID } from "../index.js";
|
|
17
|
+
/** Undoes a `subscribe`. */
|
|
18
|
+
export type UnsubscribeSelection = () => void;
|
|
19
|
+
/** Read access to what is currently selected. */
|
|
20
|
+
export interface IMusicSelection {
|
|
21
|
+
/** Ids of the selected note events. Empty when nothing is selected. */
|
|
22
|
+
readonly noteIds: readonly UUID[];
|
|
23
|
+
/** Ids of the selected measures. */
|
|
24
|
+
readonly measureIds: readonly UUID[];
|
|
25
|
+
/** Ids of tracks selected outright — *not* the active track, which is separate. */
|
|
26
|
+
readonly trackIds: readonly UUID[];
|
|
27
|
+
/**
|
|
28
|
+
* The track edits are aimed at.
|
|
29
|
+
*
|
|
30
|
+
* Distinct from `trackIds`: one track is always active (it is what the
|
|
31
|
+
* caret writes into and what the piano keyboard shows), whereas selecting a
|
|
32
|
+
* track is something the user does to a track and usually does not.
|
|
33
|
+
*/
|
|
34
|
+
readonly activeTrackId: UUID | null;
|
|
35
|
+
/** The whole selection, in the shape commands already take. */
|
|
36
|
+
readonly selection: ScoreSelection;
|
|
37
|
+
/** Called after any of the above changes. */
|
|
38
|
+
subscribe(listener: () => void): UnsubscribeSelection;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The write side, held by the store and by nothing else.
|
|
42
|
+
*
|
|
43
|
+
* Split from `IMusicSelection` so that a consumer can be handed the reading
|
|
44
|
+
* half and be structurally unable to change what it is reading — the same
|
|
45
|
+
* split `IMusicPositionSource` makes, and for the same reason.
|
|
46
|
+
*/
|
|
47
|
+
export interface IMusicSelectionSource extends IMusicSelection {
|
|
48
|
+
/** Replaces the selection wholesale. */
|
|
49
|
+
setSelection(selection: ScoreSelection): void;
|
|
50
|
+
/** Records which track edits are aimed at. */
|
|
51
|
+
setActiveTrackId(trackId: UUID | null): void;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=selection-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-source.d.ts","sourceRoot":"","sources":["../../src/model/selection-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExD,4BAA4B;AAC5B,MAAM,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC;AAE9C,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;IAElC,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC;IAErC,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;IAEnC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAEpC,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IAEnC,6CAA6C;IAC7C,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,oBAAoB,CAAC;CACvD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,wCAAwC;IACxC,YAAY,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAE9C,8CAA8C;IAC9C,gBAAgB,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-source.js","sourceRoot":"","sources":["../../src/model/selection-source.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED